RS-485网络多主机接口解决方案
扫描二维码
随时随地手机看文章
作者:白伟,雨辰,刘桓裕
北京瑞赛特科贸有限责任公司
摘要:提出了一种在多主机的RS-485网络中,避免发生总线竞争冒险的解决方案。首先介绍了RS-485网络的特点,说明了多主机RS-485网络中总线上发生竞争冒险,然后详细介绍了避免发生竞争冒险模块的设计原理以及由此模块构成的RS-485网络总线数据传输的工作流程。
关键字:RS-485;竞争冒险;自动流向控制;可重触发单稳态触发器
The solution of many host RS-485 bus network interface
BAI wei, YU chen, LIU huan yu
(Beijing Resite Science & Technology Trade Co.,Ltd.,Beijing 100098,China)
Abstract: This paper introduces a many host RS-485 bus network in order to avoid bus competition risky solution. First introduced the RS-485 bus network features shows that many host RS-485 bus network on a competitive risk, and then described in detail to avoid competition risky module design principle and the resulting module consisting of RS-485 bus network for data transmission workflow.
Key words: RS-485; Competition risky; Automatic flow control; Re-trigger Monostable Trigger
引言:
在RS-485网络(以下简称为485网络)中,经常需要多台主机控制多台从机。当多台主机同时发送数据时,将发生竞争冒险。本文采用可重触发单稳态触发器74123作为延时控制,设计了一款多主机485网络中避免RS-485总线(以下简称为485总线)竞争冒险、保持数据完整性的模块。经过长时间测试,多主机发送数据在485总线上发生竞争冒险的概率降至0.1%以下,取得了显著的效果。
RS-485网络综述
RS-485是一种符合工业通讯标准的数据传输总线,它是美国电子工业协会(EIA)制定的平衡发送、差分接收的标准异步串行总线。RS-485传输数据线路少,易于
实现和扩展,传输距离远,最大传输距离可达1200米;它的通讯速率高,数据最高传输速率为10Mbps;它从根本上消除了信号地线,具有很强的抗干扰能力。它易于实现一对多点的通讯,接口总线上可连接32个站点,加中继器后可达255个站点。
竞争冒险
RS-485为半双工接口,采用双向单信道通信方式。在485网络中,同一个时刻只能有一个站点发送数据,其它站点处于接收状态,以免发生485总线竞争冒险。
485网络中,一台主机控制多台从机,采用主/从通信方式,从机不主动发送数据。每次通信均从主机发起,不会出现485总线竞争冒险。在有些工业现场,需要多台主机同时控制从机,如果将主机与从机直接互连,每台主机发送数据为主动的且随机的,直接互连势必出现两台以上主机同时发送数据的情况,数据同时发送到485总线上,造成485总线竞争冒险。为了避免此错误的发生,在多台主机与485总线之间分别加入一个模块,使多台主机在同一个时刻只能有一台主机数据发送到485总线上,屏蔽其它主机发送信号。屏蔽原则:在空闲状态下,第一个发送数据的主机不屏蔽,在该主机发送数据结束之前,屏蔽其它主机发送的数据。这样有效地降低了485总线竞争冒险的概率。
硬件设计
本设计采用74123可重触发单稳态触发器构成屏蔽信号电路,监听485总线数据,当485总线空闲时,主机发送数据可以通过485芯片输出到485总线上;当485总线有数据时,自动屏蔽该主机发送的数据,待485总线空闲时,该主机发送端的数据方可输送到485总线上。下面先简单介绍一下74123芯片和485芯片,然后详细介绍硬件设计原理。
74123为双可重触发单稳态触发器(有清除端)。其管脚图如下图:
RS-485接口芯片(以下简称为485芯片)有两个控制使能端,接收使能端/RE和发送使能端DE。其中/RE为低电平有效,DE为高电平有效。将/RE和DE短接,用一个控制信号即可控制接收和发送两种状态。/RE和DE为“1”时,发送端接通,数据通过DI脚发送到485总线上;/RE和DE为“0”时,接收端接通,如果485总线上有数据,则通过485芯片转换,有RO脚输出高低电平信号。
图2中自动流向控制电路IC1(以下简称IC1)从DataI信号采集,输出控制485芯片的/RE和DE端。空闲时,DataI保持高电平,IC1输出低电平,485芯片处于接收状态;当DataI有数据时,IC1输出控制信号,使485芯片输出端接通,DataI信号输送到485总线上;当DataI数据传输结束后,DataI保持高电平,IC1输出低电平,485芯片转为接收状态。
图3所示电路是在图2的基础上加入可重触发单稳态触发器电路IC2(以下简称IC2)。
当空闲时,即DataI保持高电平、485总线空闲,即485总线上无数据(A为“1”、B为“0”),此时IC1输出低电平,经过“与”门IC3(以下简称IC3)输出低电平控制485芯片的/RE和DE端,485芯片保持接收状态,DataO保持高电平,IC2的负脉冲输出端/Q输出高电平。
当485总线上有数据输入、DataI空闲时,485芯片处于接收状态,DataO有数据,IC2电路被触发,负脉冲输出端/Q输出低电平,IC3被锁住持续输出低电平,485芯片保持接收状态。直到485总线上连续数据包传输结束之前,IC2连续被触发,负脉冲输出端/Q一直输出低电平,485芯片一直保持接收状态。在此过程中,DataI有数据输入时,因为485芯片处于接收状态,DataI数据被屏蔽,485总线数据不受输入端DataI数据的干扰,即不会发生竞争冒险,保证总线数据的完整性。当485总线连续数据包发送结束后,IC2负脉冲输出端/Q低电平脉冲结束,恢复到高电平,IC3输出端随IC1输出信号变化,即485芯片收发直接由IC1控制,此时DataI有数据时,可以经过485芯片输送到485总线上。
当485总线无数据、DataI有数据输入时,此时DataO保持高电平,IC1从DataI采集到电平信号,输出控制信号,使485芯片输出端接通,DataI数据输出到485总线上。直到DataI连续数据包发送结束之前,485芯片一直处于发送状态。因为DataO保持高电平,IC2的负脉冲输出端/Q保持高电平,485芯片的控制端/RE和DE直接由IC1输出控制。当DataI连续数据包结束后,IC1输出低电平,485芯片转为接收状态。
通过调节IC2电路的R和C值可控制/Q输出的负脉冲的脉宽tW。当C≥1000pF时, tW=K·R·C
其中K为常数,与外界温度及外接电容C有关,在0.2~0.6间选择。
当C≤1000pF时,tW估计值如下: tW=6+0.05C(pF)+0.45R(kΩ)C+11.6R
图4为模块硬件电路原理图。左侧与主机485接口连接,右侧连接485总线。
图5为两台主机与两台从机组成的485网络。其中主机与485总线之间经过图4中的模块连接。从机不主动发送数据,每次通信均从主机端发起。开始时485总线空闲,即两台主机与两台从机均没有发送数据,此时模块I和模块II及两台从机的485接口芯片均处于接收状态。
某一时刻起,主机I开始发送数据,两台从机收到数据,同时模块II收到数据,将主机II发送端屏蔽。在主机I数据没有发送结束之前,模块II一直接收485总线数据,持续屏蔽主机II发送端。直到主机I数据发送结束后,模块II自动解除主机II发送端的屏蔽。在主机I发送数据过程中,两台从在等待数据发送结束后才返回数据,所以两台从机不发送数据;主机II随时可能发送数据,由于模块II在检测到485总线上有数据屏蔽了主机II的发送端,所以485总线上只有一个站点——主机I在发送数据,避免了发生竞争冒险,保证了主机I发送的数据的完整性。同理当485总线空闲时,由主机II发起的一次通信过程中,模块I自动屏蔽主机I的发送端,避免了发生竞争冒险,保证主机II发送数据的完整性。
从机在接到主机命令后,返回数据过程中,模块I和模块II自动屏蔽发送端。从机发送结束后,485总线空闲,模块I和模块II自动解除发送端的屏蔽,等待下一次通信。
图5中仅在主机与485总线之间连接了此模块,如果从机数量比较多,为了防止两台以上从机同时发送数据,在从机与485总线之间接入此模块,确保在同一时刻485总线上只有一个站点发送数据,其它站点处于接收状态。
结束语
在多主机的485网络中,接入本文设计的模块,通过总线上数据信号屏蔽主机发送信号,使总线传输数据不受影响,解决了主机随机发送数据发生总线竞争冒险,大大提高了RS-485总线通信的质量。
参考文献
【1】阎石主编.数字电子技术基础(第4版).北京:高等教育出版社,2001
【2】康华光主编.电子技术基础(第3版).北京:高等教育出版社,1988
【3】刘必虎,沈建国编著.数字逻辑电路.北京:科学出版社,2000
【4】电子工程手册编委会,集成电路手册分编委会编.标准集成电路数据手册 TTL电路(增补本).北京:电子工业出版社,1994
【5】【美】Jan Axelson.Serial Port Complete Programming and Circuits for RS-232 and RS-485 Links and Networks.北京:中国电力出版社,2001