单片机RS-485多机通讯的实现
时间:07-19
来源:互联网
点击:
发送的第九位数据位(若发送地址帧时)和停止位尚未发出。如果在这是关闭发送控制,势必造成发送帧数据不完整。如果单片机多机通讯采用较高的波特率,几条操作指令的延时就可能超过2位(或1位)数据的发送时间,问题或许不会出现。但是如果采用较低波特率,如9600,发送一位数据需100μs左右,单靠几条操作指令的延时远远不够,问题就明显地暴露出来。接收数据时也同样如此,单片机在接收完8个数据位后就建立起RI信号,但此时还未接收到第九位数据位(若接收地址帧时)和停止位。所以,接收端必须延时大于2位数据位的时间(1位数据位时间=1/波特率),再作应答,否则会发生总线冲突。 注:延时T秒的取值
3) 总线上所连接的各单机的发送控制信号在时序上完全隔开。
为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权必须进行分配才能避免竞争,连接到总线上的单机,其发送控制信号在时间上要完全隔离。
总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开,避免总线争端。
程序流程框图,参见图4。其中:a)为发送流程图;b)为接收流程图。
图4 程序流程图
(1) 传送地址帧时,T>2X(1/波特率),可以选取T=2.5X(1/波特率)。
(2) 传送数据帧时,T>1X(1/波特率),可以选取T=1.5X(1/波特率)。
- 基于RS-485总线的水轮机温度监测系统(12-20)
- RS-485总线通信故障的处理(12-19)
- RS-485总线通信故障处理方法(12-16)
- RS-485总线布线规则及方法——(RS485总线系统应用之4)(12-15)
- 基于RS-485总线的温湿度监测系统——(RS485总线系统应用之5)(12-15)
- RS-485总线的可靠性(12-14)