基于RS485总线的多机通信系统设计

2.2  RS-485
RS-485标准接口是单片机系统种常用的一种串行总线之一。RS-485通信方式RS-485标准是由EIA(电子工业协会)TIA(通讯工业协会)抠像热缩管共同制订和开发的。RS-485作为一种多点差分数据传输的电气规范,已成为业界最广泛应用的标准通信接口之一。理论上,RS-485标准最多接入32个设备(受芯片驱动能力的影响),可以工作在半双工或全双工模式下,最大传输距离约为1219,最大传输速率约为10Mbps[1]。然而通常RS-485网络采用平衡双绞线作为传输媒体,平衡双绞线的长度与传输速率成反比,只有在20Kbps的传输速率下,才可能达到最大传输距离。一般2001年南充案15米长的双绞线最大传输速率仅为1Mbps。不过对于速率要求不是很高的控制系统来说已经足够了。
RS-485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。两条传输线通常使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高。同时,最大传输速率和最大传输距离也大大提高。如果以10Kbps速率传输数据时传输距离可达12m,而用100Kbps时传输距离可达1.2km。如果降低波特率,传输距离还可进一步
提高。另外RS-485实现了多点互连,最多可达256台驱动器和256台接收器,非常便于多器件的连接。不仅可以实现半双工通信,而且可以实现全双工通信。
2.3  多机通信原理
在多机通信中,每台从机均分配有一个从机地址,主机与从机之间进行串行通信时,通常是主机先呼叫某从机地址,唤醒被叫从机后,主、从两机之间进行数据交换。而未被呼叫的从机则继续进行各自的工作。可是,如果在主机与某被呼叫从机进行数据交换过程中,其他从机如果不采取相应的数据识别技术,则这些从机就会因为串行通信线上有数据传输而时时被打断,影响正常的工作。利用单片机的串口工作方式2、方式3可以很好解决上述问题。在多机通信过程中,从机首先要解决的是如何识别主机发送的是地址信息还是数据信息。当发送的是地址信息时,各从机都响应串口中断,接收主机下发的一帧地址数据。而当主机发送数据帧时,无关从机可不响应串口中断。解决的方法是:当主机发送一帧地址信息时,应保持这帧数据的第9位为1(即TB8=1)firefox 8。从机按照工作方式2或工作方式3运行时,将串口寄存器SCON中的控制位SM2置为1,当所接收的一帧数据的第9位为1,所有从机都产生串口中断,接收这一帧地址数据并与各自的从机地址进行比较,以判断主机是
否要与本机通信。接收到的地址数据与从机地址相等达到为被呼叫从机,该从机将串口控制寄存器SCON中的控制位SM2清为0,去接收主机发送来的数据帧(数据帧的第9位为0),此时不管接收到的第9位数据是否为1或0,都要产生串口中断,这就保证了主机与被呼叫从机间的正常数据通信。数据通信结束后,该从机又重新将串行口控制寄存器SCON中的控制位SM2置为1,为下一次与主机进行通信做好准备。其他从机则一直在SM2=1下继续自己的工作,不会因为主、从机之间的数据通信而被打断。
多机通信的实现,主要靠主、从机正确地设置与判断多机通信控制位SM2和发送或接收的第9位数据(TB8或RB8)。当主机给从机发送信息时,要根据发送信息的性质来设置TB8,发送地址信号时,设置TB8=1;发送数据或命令时,设置TB8=0。当从机的SM2为1时,该从机只接收地址帧(RB8位为1),对数据帧(RB8位为0)将不予理睬。而当SM2为0时,该从机接收所有发送来的信息多机通信过程如下:
(1)使所有从机的SM2置1,处于只接收地址帧的状态(即从机复位);
华罗庚优选法(2)主机发送一地址帧信息,其中包含8位地址,第9位为地址、数据标志位,第9位置1表示发送的是地址;
(3)从机接收到地址帧后,各自中断CPU,把接收到的地址与本地址作比较;
液碱
(4)地址相符的从机,使SM2清零以接收主机随后发来的所有信息,对于地址不相符的从机,仍保持SM2=1状态,对主机随后发送的数据不予理睬,直到主机发送来帧;
(5)主机发送数据或控制信息给被寻址的从机;
(6)被寻址的从机,因SM2=0,可以接收主机发送过来的所有数据,当从机接收数据结束时,置位SM2,返回接收地址帧状态(复位状态);
(7)当主机改为与另外从机联系时,可再发地址帧寻址其从机,而先前被寻址过的从机恢复SM2=1。
第4章  系统问题及其解决
4.1  通信规则
  由于MAX485通讯是一种半双工通讯,发送和接收共用同一物理信道。在任意时刻只允许
一台单机处于发送状态。因此要求应答的单机必须在侦听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答。半双工通讯对主机和从机的发送和接收时序有严格的要求。如果在时序上配合不好,就会发生总线冲突,使整个系统的通讯瘫痪,无法正常工作。要做到总线上的设备在时序上的严格配合,必须要遵从以下几项原则:
  (1) 复位时,主从机都应该处于接收状态。
  MAX485芯片的发送和接收功能转换是由芯片的 RE* ,DE端控制的。RE*=1,DE=1时,MAX485发送状态;RE*=0,DE=0时,MAX485处于接收状态。一般使用单片机的一根口线连接RE*,DE端。在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息。因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入MAX485的控制端,使上电时MAX485处于接收状态。

本文发布于:2024-09-23 13:23:29,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/135030.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:发送   接收   地址   信号   状态   数据   工作   传输
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议