8位单片机的多主机通讯方案

发布者:陈书记最新更新时间:2015-04-13 来源: eechina关键字:8位单片机  多主机通讯  M37546 手机看文章 扫描二维码
随时随地手机看文章
多主机通讯方案使用了瑞萨的8位单片机M37546,该单片机具有两个独立的串口,可以配置为同步或异步串口使用。使用了N沟道漏极开路总线结构与UART通讯协议,在同一根电缆上完成数据的发送和接收;同时加入了冲突检测功能,可以保证在不丢失信息的情况下,完成仲裁,实现多主机通讯。
在这个系统中的所有M37546的TxD1与RxD1都接到同一根总线上。所有数据都是在这一根线上传递的,一个主机发送的数据除了会被其他主机收到外,也会被自己的RxD1收到,这也是使用总线冲突检测功能仲裁的必要条件之一。除此以外还需要将P11/TxD1管脚设置为N沟道开路输出方式,构成N沟开漏总线结构。电路见图1。

本方案使用了CAP0外部中断对总线进行监控,以避免多个设备同时发送的问题。M37546的P10/RxD/CAP0管脚既是串口1的输入RxD1,同时还是输入捕捉功能的输入CAP0。因为UART帧的起始位一定是低电平,所以发送开始时会触发CAP0中断。在中断处理程序中检查串口1发送结束标志位,如果发送结束标志位是“1”,说明本机的发送过程并没有启动,必然是其它主机启动的发送,应该立刻进入接收状态,直到对方发送结束;如果发送结束标志是“0”,说明本机启动了发送,可以结束对总线状态的监控(禁止CAP0中断)转而继续后面的发送过程。这个监控过程也是对多个发送信号进行同步筛选的过程,因为只有多个主机同时或在很短时间间隔(小于CAP0中断响应时间)内发送起始位时,才能成功启动发送过程。只有保证了发送过程的同步,才能应用后面的位仲裁方式。
位仲裁是依靠M37546的总线冲突检测功能完成的,其工作方式为:当串口开始接收后,在对每一位接收采样的同时,比较TxD发送的与RxD收到的数据,如果两者不同就会产生UART1总线冲突检测(U1BC)中断。
仲裁过程利用了带上拉的N沟开漏总线的特点——“线与”。当某一个主机发送“1”的时候,如果其它主机正在发送“0”,“1”就不会出现在总线上。而发送“1”的主机从总线上收到的是“0”,这会触发U1BC中断。收到中断后,这个主机应该立刻停止发送,转为接收状态,以保证其它主机发送的数据不被破坏。
本方案除了物理层的内容外,还在UART协议的基础上加入了数据帧的概念。总线上的所有设备都会收到整个数据帧。如果发现自己的ID与目的ID相同,那么对后面的数据进行接收并校验,并发出应答。其它设备收到数据帧后只提取帧的长度信息,丢弃后面的数据、校验和应答段。当后续字节达到数据长度+2后,认为此帧正常结束,总线回到空闲状态,可以启动发送。数据帧的格式见图2。

另外,协议还规定了总线等待时间。如果在一个数据帧的过程中数据中断时间超过等待时间,可以认为此次发送为非正常结束。总线回到空闲状态。
发送方如果收到不正常应答(校验出错)或者未收到应答,可以选择重新发送,但是重发的帧有可能会与其它主机发送的数据帧竞争。
保留全零ID为广播地址,以广播地址为目的ID的帧会被所有主机接收。并且不需要应答。
以上格式都是针对一般的系统而设计的,用户可以根据自己的需要来调整。比如,对于重要的数据可以用CRC校验方式代替校验和;设备较多时可以增加ID段长度等。
关键字:8位单片机  多主机通讯  M37546 引用地址:8位单片机的多主机通讯方案

上一篇:基于MSP430单片机的液晶LCD048应用程序
下一篇:ARM、FPGA和DSP的特点和区别是什么?

推荐阅读最新更新时间:2024-03-16 13:58

低成本光电寻迹智能车设计与实现
  智能车竞速比赛以及多种智能车的应用场合中,需要智能车沿着某条轨迹快速前进,使用普通红外传感器、激光传感器、摄像头识别均可有效提取路面轨道信息而解决这一问题,现在常见使用16位单片机作为控制核心。普通红外传感器因为易受干扰、前瞻距离短等缺点已经较少使用,摄像头有丰富的数据信息,但是低成本8位单片机不能很好的处理这些信息。激光传感器成本适中,处理的信号便于8位单片机处理,能够有效的节省硬件成本。针对寻迹智能车进行了软硬件设计,采用3位freescale单片机MC9S08AC16作为控制核心,使用激光传感器提取赛道信息,采用低成本的红外测速方案,算法使用以PID为基础的枚举查表法,做到了处理快速高效。整个设计既满足了竞速小车的响应迅
[单片机]
低成本光电寻迹智能车设计与实现
8位单片机,大数运算,可以运算任意位数的乘除法
#include #include stdio.h #include string.h #include intrins.h #define BIT 10 //WriteBy :Rlogin Xukaiming void BigNumMul(char szByNum , char szNum , char aryResult ) { int nByNumLen, nNumLen, nTempLen, nResultLen ; int i,j,k,l; //结果长度 nByNumLen
[单片机]
PIC16F 8位单片机汇编指令集
1。ADDWF f, d,f寄存器内容与W寄存器相加,d=1时结果放在f,d=0是结果在W,影响STATUS的C,DC和Z标志。该条指令影响的状态与MCS51一致,有进位时C=1,有半进位时DC=1;否则相反。结果为0时Z标志置位。 2。 ANDWF f, d,f寄存器内容与W寄存器相与,d=1时结果回存至f,d=0时结果存至W,结果影响STATUS的Z标志位。 3。CLRF ( CLEAR File Register), 清空页寄存器,STATUS的Z标志位置位 4。CLRW (CLEAR WREG),清空W寄存器,STATUS的Z标志位置位,可以用MOVLW 0H等同使用 5。COMF f, d,f
[单片机]
低成本光电寻迹智能车设计与实现
  智能车竞速比赛以及多种智能车的应用场合中,需要智能车沿着某条轨迹快速前进,使用普通红外传感器、激光传感器、摄像头识别均可有效提取路面轨道信息而解决这一问题,现在常见使用16位单片机作为控制核心。普通红外传感器因为易受干扰、前瞻距离短等缺点已经较少使用,摄像头有丰富的数据信息,但是低成本8位单片机不能很好的处理这些信息。激光传感器成本适中,处理的信号便于8位单片机处理,能够有效的节省硬件成本。针对寻迹智能车进行了软硬件设计,采用3位freescale单片机MC9S08AC16作为控制核心,使用激光传感器提取赛道信息,采用低成本的红外测速方案,算法使用以PID为基础的枚举查表法,做到了处理快速高效。整个设计既满足了竞速小车的响应迅
[电源管理]
低成本光电寻迹智能车设计与实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved