当前位置:巨优公文网>范文大全 > 公文范文 > 提高RS-485总线通信的可靠性

提高RS-485总线通信的可靠性

时间:2022-11-10 18:05:50 公文范文 来源:网友投稿

摘要:针对RS-485总线通信使用过程中容易出现的问题,分析了问题产生的的原因并给出了解决问题的方法。

关键词:RS-485总线、通信、可靠性

一、引 言

RS-485总线是一种半双工异步通信总线。具有高噪声抑制、宽共模范围、长传输距离、组网方便的优点。它被广泛应用于工业控制、仪器仪表、空调控制系统等领域。使用RS-485总线的通信系统结构图如图1所示。

RS-485总线要采用手拉手结构,而不能采用星形结构。星形结构会产生反射信号,从而影响到485通信。总线到每个终端设备的分支线长度应尽量短,一般不宜超出5米。分支线如果没有接终端,会有反射信号,对通讯产生较强的干扰,应将其去掉。

由于工程现场的复杂性,使用RS-485总线时,如果简单地按常规方式设计电路,往往通信的可靠性不高,在实际工程应用中可能会遇到以下几个问题:一是通信数据收发的可靠性。二是多机通信时,多个结点通讯故障;三是共模干扰和EMI问题。这些问题通常会使整个通信系统的通信出现故障,由于一般工程结点分布较散,故障排查也很不方便。

针对以上问题,对RS-485总线通信的硬件、软件设计采取了一些改进措施。

二、硬件电路的设计

现以NEC的μPD78F0511单片机自带的异步通信口0,外接MAX487芯片转换成RS-485总线为例,电路如图2所示。

为提高通信电路的可靠性,在设计电路时注意了以下几个问题:

2.1 光耦隔离电路的参数选取

在实际应用中,由于要实时监控现场情况并及时做出响应,通信波特率往往较高,一般不低于9600bps(比特/秒)。制约通信波特率提高的因素并不是现场的通信线(一般使用普通双绞线),而是在与单片机系统进行信号隔离的光耦电路上,此处选用的光耦是PC817。电路设计时可以考虑采用高传输速率的光耦,也可以通过优化普通光耦电路参数,使其工作在最佳状态。在此电路中,电阻R1、R2的阻值可以在510Ω-1KΩ之间选取,电阻R8的阻值可以在680Ω-1KΩ之间选取。

2.2 485通信总线上电复位防瘫痪设计

在实际应用中,一般主机与从机距离较远,往往不在同一个时间上电。如果此时某个从机MAX487芯片的发送接收使能控制端(MAX487芯片的第3管脚)一直处于高电平,那么RS-485总线将会处于发送状态,也即占用了通信总线,这样其它的从机就无法与主机进行通信。这种情况尤其表现在某个从机出现异常情况下,会导致整个通信系统瘫痪。因此在电路设计时,应保证系统上电复位时MAX487芯片的第3管脚为低电平。由于在上电复位后,程序将P1.5端口置为高电平,故光耦U19无法导通,可以有效保证图2电路在上电复位后RS-485总线处于接收状态,不会使总线在上电复位时出现瘫痪状态。

2.3 485通信总线输出级电路设计

输出电路的设计要充分考虑到线路上的各种干扰及线路特性阻抗的匹配。由于工程环境比较复杂,现场常有各种形式的干扰源,所以RS-485总线的输出端一定要加有保护措施。在电路设计中D13、D21采用能够抗浪涌的TVS二极管。

考虑到某个从机节点的485芯片被击穿短路的特殊情况,为防止总线中其它从机的通信受到影响,在MAX487芯片的485信号输出端串联了两个36Ω的电阻R50、R51,这样某一个从机的硬件故障就不会使整个总线的通信受到影响,该串联电阻的阻值可在20Ω-51Ω之间选取。

由于485通信芯片的特性,接收器的检测灵敏度为土200mV,即差分输入端VA-VB≥+200mV,输出逻辑“1”,VA-VB≤-200mV,输出逻辑“0”;而A、B端电位差的绝对值小于200mV时,输出为不确定状态。如果在总线上所有发送器被禁止时,接收器输出逻辑“0”,这会被误认为通信帧的起始状态引起工作不正常。解决这个问题的办法是人为地使A端电位高于B两端电位,选样单片机的RXD端的电平在RS-485总线空闲时呈现确定的高电平状态,单片机就不会误接收进入接收中断。通过在RS-485总线的A输出端接上拉电阻R61、B输出端接下拉电阻R60,即可以较好地解决这个问题。上下拉电阻的阻值需要根据具体的485芯片和通信结点数确定。

还有一个需要注意的是终端负载电阻问题,在设备少、距离短的情况下不加终端负载电阻整个网络能很好地工作,但随着距离的增加性能将降低。有一条经验性的原则可以用来判断在什么样的通信速率和通信线长度时需要进行匹配:当信号的转换时间(上升或下降时间)超过电信号沿总线单向传输所需时间的3倍以上时就可以不加匹配。一般终端匹配采用·终端电阻方法,应在RS-485总线的开始和末端都并接一个终端电阻。终端电阻的阻值在120Ω左右。相当于通信线特性阻抗的电阻,因为大多数双绞线电缆特性阻抗大约在100-120Ω。

此外还可以在串联电阻R50、R51和485芯片之间(或串联电阻与总线输出端之间)加滤波电容,以提高通信电路的EMC性能,电容的具体值根据通信波特率和通信线长度实际测试结果确定。

2.4 通信总线上各结点共信号地

RS-485总线采用差分信号负逻辑。+2V-+6V表示逻辑“0”,-6V--2V表示逻辑“1”。RS-485总线一般采用的是两线制接线方式,通常连接RS-485通信线路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来,而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却有很大的隐患,主要是两个方面的问题,一是共模干扰问题。RS-485接口采用差分方式传输信号方式,并不需要相对于某个参考点来检测信号,系统只_需检测两线之间的电位差就可以了。但收发器有一定的共模电压范围,RS-485收发器共模电压范围为-7-+12V,只有满足上述条件,整个网络才能正常工作。当网络线路中共模电压超出此范围时就会影响通信的稳定性和可靠性,甚至损坏接口。另一个是EMI问题。发送驱动器输出信号中的共模部分需要一个返回通路,如果没有一个低阻抗的返回通道(信号地),就会以辐射的形式返回源端,整个通信总线就会像一个巨大的天线向外辐射电磁波。所以在连接各结点时,最好将各结点的信号地也连接到一起。

三、软件编程

3.1 通信协议制定

485芯片的软件编程对控制系统的可靠性有着很大的影响。由于RS-485总线是异步半双工的通信总线,在某一个时刻,总线只可能呈现一种状态,所以这种方式一般适用于主机对从机的查询方式通信,总线上必然有一台始终处于主机地位的设备,其循环查询总线上各从机的状态,所以需要制定一套合理的通信

协议来协调总线的主从机通信。此处采用数据帧通信方式。通信数据是分帧发送的,每帧数据都有引导码、地址码、帧码、长度码、命令码、数据有效内容、校验码等部分组成。其中引导码是用于同步每一帧数据用的,可用一个字节或多个字节来表示;长度码是这一帧数据的总长度,命令码是主机点名从机或从机回复主机的控制命令-地址码分为两部分,一部分是接收结点地址,一部分是发送结点地址,帧码是用于识别一串较长数据分多帧发送时的帧号;“内容”是这一帧数据里的各种有效信息;校验码是这一帧数据的校验标志,可以采用奇偶校验、求和校验、循环冗余校验等不同校验方式。

3.2 发送中断的选择

一般单片机的串行异步通信发送机制是有一个发送缓冲区,先将发送寄存器中的数据转移到发送缓冲区中,再从缓冲区将数据发送到TXD端口上。与此对应的有两个中断源,一个是发送完成中断,一个是发送缓冲区空中断,如果要将数据全部发送到总线上,一般要查询发送缓冲区空中断标志位,如果查询发送完成标志位,则最后一个数据可能在发送缓冲区无法发送出去,造成发送数据的丢失。

3.3 发送与接收状态的切换

在RS-485总线通信中,尤其要注意对485芯片发送接收使能控制端的切换。为了实现通信系统可靠的工作,在RS-485总线状态切换时需要做适当延时,再进行数据的接收和发送。在数据发送状态下,先将发送接收使能控制端置为高电平,然后延时约1ms左右的时间,再向总线发送有效数据;所有帧数据发送完成后再延时约lms左右的时间,将发送接收使能控制端置为低电平,使总线处于接收数据状态。这样一来总线在状态切换时有个稳定的过程。

3.4 从机延时回复主机数据

为使通信主从机数据之间留有足够的总线空闲时间,同时避免数据冲突并方便识别两串数据,一般从机接收到主机的点名帧后最好在“6T-20T”(T为一个字节的传输时间)之间发出回复帧的第一个数据。

四、结 语

以上RS-485总线通信的软硬件设计,通信系统的可靠性大大提高,在通常的环境下,1000小时连续工作,系统的通信始终正常,满足实际工程的需要。

在珠海格力电器股份有限公司开发的商用空调控制系统中,已广泛使用上面的RS-485总线通信电路,通讯网络的稳定性和可靠性很好。

尽管RS-485,总线也存在一些缺点,例如总线不能自动仲裁、主机故障会引起系统瘫痪等等,但由于其电路设计简单、成本较低、控制方便,只要合理地使用,在某些应用领域仍然能发撺其良好作用。

推荐访问:总线 可靠性 提高 通信 RS

版权所有:巨优公文网 2018-2024 未经授权禁止复制或建立镜像[巨优公文网]所有资源完全免费共享

Powered by 巨优公文网 © All Rights Reserved.。备案号:沪ICP备18054162号-1