CN102957586B - 基于无冲突协议的全双工rs485总线通信方法 - Google Patents
基于无冲突协议的全双工rs485总线通信方法 Download PDFInfo
- Publication number
- CN102957586B CN102957586B CN201110242086.5A CN201110242086A CN102957586B CN 102957586 B CN102957586 B CN 102957586B CN 201110242086 A CN201110242086 A CN 201110242086A CN 102957586 B CN102957586 B CN 102957586B
- Authority
- CN
- China
- Prior art keywords
- bus
- data
- circuit
- collision
- pld
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明的名称为基于无冲突协议的全双工RS485总线通信方法。属于RS485总线通讯技术领域。它主要是解决现有RS485总线不能满足对监控节点多、单节点上传数据量巨大的实时系统监控需求的问题。它的主要特征是:总线数据侦听电路将发送总线上的数据反馈给PLD芯片;PLD芯片电路通过总线探测帧的发送判断总线被占用状态并计算数据发送延迟时间因子;为0则抢占RS485数据发送总线发送;不为0则延迟一定时间;直至发送完毕。本发明具有实现RS485数据发送总线上有效数据帧的无冲突发送,消除了数据发送总线上的总线空闲时间,有效减少了发送探测帧的总线冲突概率,极大提高发送数据总线利用效率的特点,主要是一种用于基于无总线冲突协议的全双工RS485总线通信方法。
Description
技术领域
本发明属于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集成电路之间,总线数据发送电路及总线数据接收电路均由光耦隔离器电路、总线EMI、ESD保护电路和过温保护电路构成;方法包括以下步骤:
①MCU通过数据接收处理电路先通过从RS485数据发送总线接收命令帧,并经过PLD与MCU的接口电路将需要发送的数据帧发送到PLD的数据缓冲区;
②总线数据侦听电路侦听RS485发送总线数据,并将其反馈给PLD芯片用于内部计算;
③当RS485数据发送总线被释放时,高频率PLD芯片根据当前波特率和内部无冲突协议发送固定数据位时间长度的总线探测数据帧,并根据总线侦听电路接收的总线数据及二进制倒计数算法判断总线竞争情况,计算数据发送延迟时间因子,并决定帧数据发送时机;
④当时间延迟因子为0时则抢占RS485数据发送总线并通过数据发送电路继续发送数据缓冲区的有效数据帧到RS485接收总线上;
⑤当时间因子不为0时则按照其实际值延迟一定时间继续发送总线探测帧并判断总线竞争情况,计算时间延迟因子;
⑥直至将PLD的缓冲区内需要发送的数据帧发送完毕,并再次进入总线侦听状态,同时总线数据接收电路进入总线数据接收状态;
⑦RS485总线服务器端接收数据接收总线上的数据,并根据探测帧数据格式在接收数据处理中去除探测帧数据内容。
本发明基于无冲突协议的全双工RS485总线通信方法的技术解决方案中所述的第③步骤中的探测帧数据内容是根据总线终端设备地址、总线数据侦听电路的最小数据检测周期及PLD的计算周期计算得到的指定数据位时间长度的数据得来。
本发明基于无冲突协议的全双工RS485总线通信方法的技术解决方案中所述的第③步骤中的判断总线竞争情况基于二进制倒计数法、通讯波特率设置及无冲突协议规定的位检测时间。时间延迟因子由二进制倒计数算法中探测帧数据位与总线数据侦听电路得到的数据帧位不一致的情况所决定。
本发明基于无冲突协议的全双工RS485总线通信方法的技术解决方案中所述的第⑦步骤中的本发明的总线服务器端的数据接收需要根据无冲突协议规定的探测帧数据格式自动屏蔽总线探测帧数据内容。
本发明的有益效果是:该技术方案实现了RS485数据发送总线上有效数据帧的无冲突发送,数据发送总线上不存在总线空闲状态。按照无冲突协议计算得到的时间延迟因子可以有效减少发送探测帧时的总线竞争情况。指定波特率情况下由发送总线探测帧数据位时长固定,并可以随着PLD的计算频率提高而适当降低,而根据内部无冲突协议及探测帧数据的发送可以保证有效数据帧的无冲突传输,因此该方案不仅有效降低了数据发送的总线冲突概率而且极大提高了发送数据总线的利用效率。
本发明具有在不改变全双工RS485总线的连接方式的前提下,实现有效数据帧在数据链路层的无冲突传输,实现数据发送总线无总线空闲状态,从而保证全双工RS485总线数据传输的高效、可靠,提高总线的设备兼容性和工程的可实施性特点。本发明主要用于一种基于无总线冲突协议的全双工RS485总线通信方法。
附图说明
图1为本发明的硬件功能方框示意图。
图2为本发明的PLD芯片工作流程框图。
图3为仅采用总线冲突检测的发送数据总线时序图。
图4为本发明采用无冲突协议算法的发送数据总线时序图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
如图1所示。本发明所采用的基于无冲突协议的全双工RS485总线通信装置由RS485数据发送总线、RS485数据接收总线、RS485总线接口电路和数据处理电路构成。其中,RS485总线接口电路由高频率PLD芯片及外围总线数据发送电路、总线数据侦听电路和MCU接口电路构成,总线数据发送电路和总线数据侦听电路分别与RS485数据发送总线连接,总线数据发送电路由光耦隔离器电路、总线EMI、ESD保护电路和过温保护电路构成。数据处理电路由中央控制器MCU集成电路及外围总线数据接收电路和PLD接口电路构成,总线数据接收电路与RS485总线数据接收电路连接,总线数据接收电路由光耦隔离器电路、总线EMI、ESD保护电路和过温保护电路构成。MCU接口电路和PLD接口电路连接在高频率PLD芯片与MCU集成电路之间。以上各电路均为常规电路。
如图2所示。PLD工作流程为:开始后先对帧结束判断,确定竞争周期内总线占用情况;无总线占用则发送总线探测帧,并计算数据发送延迟时间因子;有总线占用则返回对帧结束判断;延迟时间为零则发送有效数据帧直到结束;延迟时间不为零则返回对帧结束判断。
如图3、图4所示。采用无冲突协议算法的发送数据总线时序图(图4)与目前仅采用总线冲突检测的发送数据总线时序图(图3)相比,无需图3中的总线冲突检测bus confliction detection,明显少了总线等待bus waiting。
本发明基于无冲突协议的全双工RS485总线通信方法的具体实施步骤(如图1所示):
①MCU通过数据接收处理电路Data Receiving Circuit先通过从RS485数据发送总线RS-485 data sending bus接收命令帧,并经过PLD与MCU的接口电路MCU/PLD interface circuit将需要发送的数据帧发送到PLD的数据缓冲区;
②总线数据侦听电路Data Listening Circuit侦听RS485发送总线数据,并将其反馈给PLD芯片用于内部计算;
③当RS485数据发送总线被释放时,高频率PLD芯片根据当前波特率和内部无冲突协议发送固定数据位时间长度的总线探测数据帧,并根据总线侦听电路接收的总线数据及二进制倒计数算法判断总线竞争情况,计算数据发送延迟时间因子,并决定帧数据发送时机;
④当时间延迟因子为0时则抢占RS485数据发送总线并通过数据发送电路Data Sending Circuit继续发送数据缓冲区的有效数据帧到RS485接收总线上;
⑤当时间因子不为0时则按照其实际值延迟一定时间继续发送总线探测帧并判断总线竞争情况,计算时间延迟因子;
⑥直至将PLD的缓冲区内需要发送的数据帧发送完毕,并再次进入总线侦听状态,同时总线数据接收电路进入总线数据接收状态;
⑦RS485总线服务器端接收数据接收总线上的数据,并根据探测帧数据格式在接收数据处理中去除探测帧数据内容。
本发明技术方案通过内部的无冲突协议及数据发送总线上的探测帧数据发送实现了总线竞争判断和有效数据帧的无冲突发送,减少了总线冲突概率,实现了发送数据总线无空闲等待状态,极大的提高了全双工RS485总线数据发送的效率和稳定性。
Claims (4)
1.一种基于无冲突协议的全双工RS485总线通信方法,其特征在于:采用基于无冲突协议的全双工RS485总线通信装置,包括RS485数据发送总线和RS485数据接收总线,还包括由高频率PLD芯片及外围总线数据发送电路、总线数据侦听电路和MCU接口电路构成的RS485总线数据接收电路;由中央控制器MCU集成电路和PLD接口电路构成的数据处理电路;其中,总线数据发送电路和总线数据侦听电路分别与RS485数据发送总线连接,总线数据接收电路与RS485数据接收总线连接,MCU接口电路和PLD接口电路连接在高频率PLD芯片与MCU集成电路之间,总线数据发送电路及总线数据接收电路均由光耦隔离器电路、总线EMI、ESD保护电路和过温保护电路构成;方法包括以下步骤:
①MCU通过数据接收处理电路(Data Receiving Circuit)先通过从RS485数据发送总线(RS-485 data sending bus)接收命令帧,并经过PLD与MCU的接口电路(MCU/PLD interface circuit)将需要发送的数据帧发送到PLD的数据缓冲区;
②总线数据侦听电路(Data Listening Circuit)侦听RS485发送总线数据,并将其反馈给PLD芯片用于内部计算;
③当RS485数据发送总线被释放时,高频率PLD芯片根据当前波特率和内部无冲突协议发送固定数据位时间长度的总线探测数据帧,并根据总线侦听电路接收的总线数据及二进制倒计数算法判断总线竞争情况,计算数据发送延迟时间因子,并决定帧数据发送时机;
④当时间延迟因子为0时则抢占RS485数据发送总线并通过数据发送电路(Data Sending Circuit)继续发送数据缓冲区的有效数据帧到RS485接收总线上;
⑤当时间因子不为0时则按照其实际值延迟一定时间继续发送总线探测帧并判断总线竞争情况,计算时间延迟因子;
⑥直至将PLD的缓冲区内需要发送的数据帧发送完毕,并再次进入总线侦听状态,同时总线数据接收电路进入总线数据接收状态;
⑦RS485总线服务器端接收数据接收总线上的数据,并根据探测帧数据格式在接收数据处理中去除探测帧数据内容。
2.根据权利要求1所述的基于无冲突协议的全双工RS485总线通信方法,其特征在于:所述的第③步骤中的固定数据位时间长度是根据总线终端设备地址、总线数据侦听电路的最小数据检测周期及PLD的计算周期计算得到指定位时间长度的数据得来。
3.根据权利要求1所述的基于无冲突协议的全双工RS485总线通信方法,其特征在于:所述的第③步骤中的判断总线竞争情况基于二进制倒计数法,时间延迟因子由二进制倒计数算法中探测帧数据位与总线数据侦听电路得到的数据帧位不一致的情况所决定。
4.根据权利要求1所述的基于无冲突协议的全双工RS485总线通信方法,其特征在于:所述的第⑦步骤中的本发明的总线服务器端需要根据无冲突协议内容及当前总线波特率设置自动屏蔽总线探测帧数据内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110242086.5A CN102957586B (zh) | 2011-08-23 | 2011-08-23 | 基于无冲突协议的全双工rs485总线通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110242086.5A CN102957586B (zh) | 2011-08-23 | 2011-08-23 | 基于无冲突协议的全双工rs485总线通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102957586A CN102957586A (zh) | 2013-03-06 |
CN102957586B true CN102957586B (zh) | 2015-11-04 |
Family
ID=47765847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110242086.5A Active CN102957586B (zh) | 2011-08-23 | 2011-08-23 | 基于无冲突协议的全双工rs485总线通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102957586B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2565488C1 (ru) * | 2014-11-21 | 2015-10-20 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ разрешения конфликта адресации узлов в асинхронных сетях с топологией "общая шина" |
CN105677608B (zh) * | 2015-12-31 | 2019-01-04 | 浙江众合科技股份有限公司 | 一种多主rs485总线仲裁方法及系统 |
CN109150680B (zh) * | 2018-08-30 | 2020-10-16 | 青岛科技大学 | 一种适用于rs485总线的自适应确定地址组网电路及方法 |
CN111385172B (zh) * | 2018-12-27 | 2021-11-26 | 杭州萤石软件有限公司 | 一种基于总线的控制系统、控制方法及存储介质 |
CN109995632B (zh) * | 2019-05-16 | 2021-11-02 | 阳光电源股份有限公司 | 多机通信系统的通信方法、装置及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1777137A (zh) * | 2005-12-02 | 2006-05-24 | 浙江中控技术有限公司 | 一种基于以太网和串行通信技术的数据转发装置及系统 |
CN1787473A (zh) * | 2004-12-08 | 2006-06-14 | 中兴通讯股份有限公司 | 采用485接口实现抢占式总线通信的方法 |
CN1964300A (zh) * | 2005-11-11 | 2007-05-16 | 贵州以太科技信息产业有限责任公司 | 可读写的串行接口总线通信控制器 |
CN101873242A (zh) * | 2010-05-24 | 2010-10-27 | 杭州海康威视数字技术股份有限公司 | 一种网络码分器及对前端设备的控制方法 |
CN102025579A (zh) * | 2009-09-21 | 2011-04-20 | 董亮 | 一种便于扩展的现场总线通讯方法 |
CN202206412U (zh) * | 2011-08-23 | 2012-04-25 | 万洲电气集团有限公司 | 基于无冲突协议的全双工rs485总线通信装置 |
-
2011
- 2011-08-23 CN CN201110242086.5A patent/CN102957586B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787473A (zh) * | 2004-12-08 | 2006-06-14 | 中兴通讯股份有限公司 | 采用485接口实现抢占式总线通信的方法 |
CN1964300A (zh) * | 2005-11-11 | 2007-05-16 | 贵州以太科技信息产业有限责任公司 | 可读写的串行接口总线通信控制器 |
CN1777137A (zh) * | 2005-12-02 | 2006-05-24 | 浙江中控技术有限公司 | 一种基于以太网和串行通信技术的数据转发装置及系统 |
CN102025579A (zh) * | 2009-09-21 | 2011-04-20 | 董亮 | 一种便于扩展的现场总线通讯方法 |
CN101873242A (zh) * | 2010-05-24 | 2010-10-27 | 杭州海康威视数字技术股份有限公司 | 一种网络码分器及对前端设备的控制方法 |
CN202206412U (zh) * | 2011-08-23 | 2012-04-25 | 万洲电气集团有限公司 | 基于无冲突协议的全双工rs485总线通信装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102957586A (zh) | 2013-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102957586B (zh) | 基于无冲突协议的全双工rs485总线通信方法 | |
CN102780705B (zh) | Ethernet-CAN协议转换器 | |
CN103049414B (zh) | Fc总线与can总线间数据的转换及传输方法 | |
JP3184817B2 (ja) | フロー制御方法、一時停止制御システムおよびノード | |
CN107342833A (zh) | 一种时间触发以太网交换控制器及其控制方法 | |
CN101741766B (zh) | 一种can网到以太网转换装置 | |
CN111277478B (zh) | 一种基于不同波特率从设备的rs485总线复用控制方法 | |
CN104572574A (zh) | 基于千兆以太网视觉协议的以太网控制器ip核及方法 | |
CN201191856Y (zh) | Rs-485数据收发装置 | |
CN101719791A (zh) | 具有远程监控功能的光纤收发器及数据传输方法 | |
CN105553795B (zh) | 一种在工业以太网中传输标准以太网数据的方法 | |
CN109062847A (zh) | 片上系统、用于rs485串口通讯的ip核及其控制方法 | |
CN202206412U (zh) | 基于无冲突协议的全双工rs485总线通信装置 | |
CN109922537B (zh) | 无线模块及其实现方法 | |
CN114650612A (zh) | 一种基于载波侦听技术的LoRa组网方法 | |
CN110752909B (zh) | 一种485总线半双工通信的软件处理方法 | |
CN116991121A (zh) | 一种多协议兼容的epa调度方法及装置 | |
CN107659456A (zh) | 一种基于rs485通信的数据冲突传输方法 | |
CN105530245A (zh) | 一种提高非专网goose报文传输可靠性的系统 | |
CN104009901A (zh) | 基于lpc1768平台的can中继器及数据转发方法 | |
CN104486187B (zh) | 一种动态同步的can通讯设备和方法 | |
CN102420734A (zh) | 一种can总线拓扑结构实现系统 | |
CN113904762B (zh) | 一种带环形缓冲区的全双工485总线通信系统及方法 | |
CN202513948U (zh) | 以太网至profibus-dp的主从式协议转换网关 | |
CN110297795B (zh) | 基于以太网phy芯片实现单路串行数据传输系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |