专利名称:基于无冲突协议的全双工rs485总线通信装置及方法
技术领域:
本发明属于RS485总线通讯技术领域。具体涉及一种基于无总线冲突协议的全双工RS485总线通信方法。
背景技术:
RS485总线具有抗干扰能力强、传输距离远、组网灵活、性价比高等特点,在工业控制自动化、交通控制自动化等系统中得到广泛应用。但在一些工业监控系统中,由于监控节点多,单节点上传数据量巨大,同时系统对数据的实时性有较强要求,因而采用传统单双工通信的RS485总线不能满足系统监控需求。目前国内采用全双工通信方式的RS485总线系统中对于总线冲突的解决方式多采用冲突重发机制,无论是采用定时器进行冲突检测、总线空闲监听,或者采用用带数据缓冲区的虚拟全双工工作方式,或者采用CSMA/CD协议或查表法的边发送边接听的冲突解决方案都存在总线数据冲突的情况。而采用总线节点分组方式处理冲突等待时间的方式,虽然通过大量分组最终可以使总线冲突降为0,但是这样带来了总线设备地址受到很大的限制的问题,实际应用中受到较大限制和影响。
发明内容
本发明的目的是在不改变全双工RS485总线的连接方式的前提下,提供一种有效数据帧在数据链路层的无冲突传输,从而保证全双工RS485总线数据传输的高效、可靠,同时提高总线的终端设备兼容性和工程的可实施性的基于无冲突协议的全双工RS485总线通信装置及方法。为实现上述目的,本发明基于无冲突协议的全双工RS485总线通信装置采用的技术解决方案是一种基于无冲突协议的全双工RS485总线通信装置,包括RS485数据发送总线和RS485数据接收总线,其特征在于还包括由高频率PLD芯片及外围总线数据发送电路、总线数据侦听电路和MCU接口电路构成的RS485总线数据接收电路;由中央控制器MCU集成电路和PLD接口电路构成的数据处理电路;其中,总线数据发送电路和总线数据侦听电路分别与RS485数据发送总线连接,总线数据接收电路与RS485数据接收总线连接,MCU接口电路和PLD接口电路连接在高频率PLD芯片与MCU集成电路之间。本发明基于无冲突协议的全双工RS485总线通信装置的技术解决方案中所述的总线数据发送电路及总线数据接收电路均由光耦隔离器电路、总线EMI、ESD保护电路和过温保护电路构成。本发明基于无冲突协议的全双工RS485总线通信方法采用的技术解决方案是一种基于无冲突协议的全双工RS485总线通信装置的通信方法,其特征在于包括以下步骤
①数据处理电路先通过RS485数据接收总线接收命令帧,并将需要发送的数据帧发送到PLD的数据缓冲区;
②总线数据侦听电路侦听RS485发送总线数据,并将其反馈给PLD芯片用于内部计算;
③当RS485数据发送总线被释放时,高频率PLD芯片根据当前波特率和内部无冲突协议发送固定数据位时间长度的总线探测数据帧,并根据总线侦听电路接收的总线数据及二进制倒计数算法判断总线竞争情况,计算数据发送延迟时间因子,并决定帧数据发送时机;
④当时间延迟因子为O时则抢占RS485数据发送总线并继续发送数据缓冲区的有效数据帧;
⑤当时间因子不为O时则按照其实际值延迟一定时间继续发送总线探测帧并判断总线竞争情况,计算时间延迟因子;· ⑥直至将PLD的缓冲区内需要发送的数据帧发送完毕,并再次进入总线侦听状态,同时总线数据接收电路进入总线数据接收状态;
⑦RS485总线服务器端接收数据发送总线上的数据,并根据探测帧数据格式在接收数据处理中去除探测帧数据内容。本发明基于无冲突协议的全双工RS485总线通信方法的技术解决方案中所述的第③步骤中的探测帧数据内容是根据总线终端设备地址、总线数据侦听电路的最小数据检测周期及PLD的计算周期计算得到的指定数据位时间长度的数据得来。本发明基于无冲突协议的全双工RS485总线通信方法的技术解决方案中所述的第③步骤中的判断总线竞争情况基于二进制倒计数法、通讯波特率设置及无冲突协议规定的位检测时间。时间延迟因子由二进制倒计数算法中探测帧数据位与总线数据侦听电路得到的数据帧位不一致的情况所决定。本发明基于无冲突协议的全双工RS485总线通信方法的技术解决方案中所述的第⑦步骤中的本发明的总线服务器端的数据接收需要根据无冲突协议规定的探测帧数据格式自动屏蔽总线探测帧数据内容。本发明的有益效果是该技术方案实现了 RS485数据发送总线上有效数据帧的无冲突发送,数据发送总线上不存在总线空闲状态。按照无冲突协议计算得到的时间延迟因子可以有效减少发送探测帧时的总线竞争情况。指定波特率情况下由发送总线探测帧数据位时长固定,并可以随着PLD的计算频率提高而适当降低,而根据内部无冲突协议及探测帧数据的发送可以保证有效数据帧的无冲突传输,因此该方案不仅有效降低了数据发送的总线冲突概率而且极大提高了发送数据总线的利用效率。本发明具有在不改变全双工RS485总线的连接方式的前提下,实现有效数据帧在数据链路层的无冲突传输,实现数据发送总线无总线空闲状态,从而保证全双工RS485总线数据传输的高效、可靠,提高总线的设备兼容性和工程的可实施性特点。本发明主要用于一种基于无总线冲突协议的全双工RS485总线通信方法。
图I为本发明的硬件功能方框示意图。图2为本发明的PLD芯片工作流程框图。图3为本发明仅采用总线冲突检测的发送数据总线时序图。图4为本发明采用无冲突协议算法的发送数据总线时序图。
具体实施例方式下面结合附图和实施例对本发明作进一步说明。如图I所示。本发明所采用的基于无冲突协议的全双工RS485总线通信装置由RS485数据发送总线、RS485数据接收总线、RS485总线接口电路和数据处理电路构成。其中,RS485总线接口电路由高频率PLD芯片及外围总线数据发送电路、总线数据侦听电路和MCU接口电路构成,总线数据发送电路和总线数据侦听电路分别与RS485数据发送总线连接,总线数据发送电路由光耦隔离器电路、总线EMI、ESD保护电路和过温保护电路构成。数据处理电路由中央控制器MCU集成电路及外围总线数据接收电路和PLD接口电路构成,总线数据接收电路与RS485总线数据接收电路连接,总线数据接收电路由光耦隔离器电路、总线EMI、ESD保护电路和过温保护电路构成。MCU接口电路和PLD接口电路连接在高频率PLD芯片与MCU集成电路之间。以上各电路均为常规电路。 如图2所示。PLD工作流程为开始后先对帧结束判断,确定竞争周期内总线占用情况;无总线占用则发送总线探测帧,并计算数据发送延迟时间因子;有总线占用则返回对帧结束判断;延迟时间为零则发送有效数据帧直到结束;延迟时间不为零则返回对帧结束判断。如图3、图4所示。采用无冲突协议算法的发送数据总线时序图与仅采用总线冲突检测的发送数据总线时序图相比,明显少了总线等待。本发明基于无冲突协议的全双工RS485总线通信方法的具体实施步骤
①数据处理电路先通过RS485数据接收总线接收命令帧,并将需要发送的数据帧发送到PLD的数据缓冲区;
②总线数据侦听电路侦听RS485发送总线数据,并将其反馈给PLD芯片用于内部计
算;
③当RS485数据发送总线被释放时,高频率PLD芯片根据当前波特率和内部无冲突协议发送固定数据位时间长度的总线探测数据帧,并根据总线侦听电路接收的总线数据及二进制倒计数算法判断总线竞争情况,计算数据发送延迟时间因子,并决定帧数据发送时机;
④当时间延迟因子为O时则抢占RS485数据发送总线并继续发送数据缓冲区的有效数据帧;
⑤当时间因子不为O时则按照其实际值延迟一定时间继续发送总线探测帧并判断总线竞争情况,计算时间延迟因子;
⑥直至将PLD的缓冲区内需要发送的数据帧发送完毕,并再次进入总线侦听状态,同时总线数据接收电路进入总线数据接收状态;
⑦RS485总线服务器端接收数据发送总线上的数据,并根据探测帧数据格式在接收数据处理中去除探测帧数据内容。本发明技术方案通过内部的无冲突协议及数据发送总线上的探测帧数据发送实现了总线竞争判断和有效数据帧的无冲突发送,减少了总线冲突概率,实现了发送数据总线无空闲等待状态,极大的提高了全双工RS485总线数据发送的效率和稳定性。
权利要求
1.一种基于无冲突协议的全双工RS485总线通信装置,包括RS485数据发送总线和RS485数据接收总线,其特征在于还包括由高频率PLD芯片及外围总线数据发送电路、总线数据侦听电路和MCU接口电路构成的RS485总线数据接收电路;由中央控制器MCU集成电路和PLD接口电路构成的数据处理电路;其中,总线数据发送电路和总线数据侦听电路分别与RS485数据发送总线连接,总线数据接收电路与RS485数据接收总线连接,MCU接口电路和PLD接口电路连接在高频率PLD芯片与MCU集成电路之间。
2.根据权利要求I所述的基于无冲突协议的全双工RS485总线通信装置,其特征在于所述的总线数据发送电路及总线数据接收电路均由光耦隔离器电路、总线EMI、ESD保护电路和过温保护电路构成。
3.一种采用权利要求I或2所述的基于无冲突协议的全双工RS485总线通信装置的通信方法,其特征在于包括以下步骤 ①数据处理电路先通过RS485数据接收总线接收命令帧,并将需要发送的数据帧发送到PLD的数据缓冲区; ②总线数据侦听电路侦听RS485发送总线数据,并将其反馈给PLD芯片用于内部计算; ③当RS485数据发送总线被释放时,高频率PLD芯片根据当前波特率和内部无冲突协议发送固定数据位时间长度的总线探测数据帧,并根据总线侦听电路接收的总线数据及二进制倒计数算法判断总线竞争情况,计算数据发送延迟时间因子,并决定帧数据发送时机; ④当时间延迟因子为O时则抢占RS485数据发送总线并继续发送数据缓冲区的有效数据帧; ⑤当时间因子不为O时则按照其实际值延迟一定时间继续发送总线探测帧并判断总线竞争情况,计算时间延迟因子; ⑥直至将PLD的缓冲区内需要发送的数据帧发送完毕,并再次进入总线侦听状态,同时总线数据接收电路进入总线数据接收状态; ⑦RS485总线服务器端接收数据发送总线上的数据,并根据探测帧数据格式在接收数据处理中去除探测帧数据内容。
4.根据权利要求3所述的基于无冲突协议的全双工RS485总线通信方法,其特征在于所述的第③步骤中的固定数据位时间长度是根据总线终端设备地址、总线数据侦听电路的最小数据检测周期及PLD的计算周期计算得到指定位时间长度的数据得来。
5.根据权利要求3所述的基于无冲突协议的全双工RS485总线通信方法,其特征在于所述的第③步骤中的判断总线竞争情况基于二进制倒计数法,时间延迟因子由二进制倒计数算法中探测帧数据位与总线数据侦听电路得到的数据帧位不一致的情况所决定。
6.根据权利要求3所述的基于无冲突协议的全双工RS485总线通信方法,其特征在于所述的第⑦步骤中的本发明的总线服务器端需要根据无冲突协议内容及当前总线波特率设置自动屏蔽总线探测帧数据内容。
全文摘要
本发明的名称为基于无冲突协议的全双工RS485总线通信装置及方法。属于RS485总线通讯技术领域。它主要是解决现有RS485总线不能满足对监控节点多、单节点上传数据量巨大的实时系统监控需求的问题。它的主要特征是总线数据侦听电路将发送总线上的数据反馈给PLD芯片;PLD芯片电路通过总线探测帧的发送判断总线被占用状态并计算数据发送延迟时间因子;为0则抢占RS485数据发送总线发送;不为0则延迟一定时间;直至发送完毕。本发明具有实现RS485数据发送总线上有效数据帧的无冲突发送,消除了数据发送总线上的总线空闲时间,有效减少了发送探测帧的总线冲突概率,极大提高发送数据总线利用效率的特点,主要是一种用于基于无总线冲突协议的全双工RS485总线通信方法。
文档编号H04L12/40GK102957586SQ20111024208
公开日2013年3月6日 申请日期2011年8月23日 优先权日2011年8月23日
发明者赵世运, 孟德峰 申请人:万洲电气股份有限公司