CN110752909B - 一种485总线半双工通信的软件处理方法 - Google Patents
一种485总线半双工通信的软件处理方法 Download PDFInfo
- Publication number
- CN110752909B CN110752909B CN201810820565.2A CN201810820565A CN110752909B CN 110752909 B CN110752909 B CN 110752909B CN 201810820565 A CN201810820565 A CN 201810820565A CN 110752909 B CN110752909 B CN 110752909B
- Authority
- CN
- China
- Prior art keywords
- bus
- data
- receiving
- sending
- fifo
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/14—Two-way operation using the same type of signal, i.e. duplex
- H04L5/16—Half-duplex systems; Simplex/duplex switching; Transmission of break signals non-automatically inverting the direction of transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Communication Control (AREA)
- Bidirectional Digital Transmission (AREA)
Abstract
本发明涉及一种485总线半双工通信的软件处理方法,包括系统发送与接收状态的使能操作,系统发送与接收的时序控制,系统接收与发送fifo的有效处理。本发明主要针对485在半双工的通信模式下,数据接收与发送需要分时复用数据总线,快速的数据发送和接收过程中,存在数据丢包和错包的情况。本发明优化了数据接收与发送的控制流程,确保了在485总线在半双工通信模式下,数据接收与发送的实时性与正确性。
Description
技术领域
本发明属于机载总线通信技术领域,涉及一种485总线半双工通信的软件处理方法。
背景技术
RS485总线是由RS232发展而来的接口标准,适用于单点到多点或者多点之间的通信,弥补了RS232接口标准的互联问题。RS485总线以其接口简单、成本低廉、通信距离长、可靠性高等优势在交通、航空、航天、自动控制领域被广泛使用。
RS485网络的通信方式分主从式和总线式2种。工业控制中通常采用主从的工作方式,而总线通信方式有着良好的扩展性和通用性。当RS485总线工作在半双工通信方式,同一时刻只能有一个节点处于发送状态,否则会引起总线冲突。为了减少总线冲突,采用总线侦听方式。在发送端发送数据帧之前,先侦听总线状态,判断是否空闲。若总线空闲,则向总线广播总线申请帧,然后发送数据,否则循环等待。在航空领域机载嵌入式系统中,由于系统对实时性要求较高,通常采用应答的方式,从节点收到信息后,按照预定的时间序列向主节点发送数据。当RS485总线网络组建方法设为两线方式,发送和接收是复用一组数据线,传统的总线通信下会存在很大噪声,本发明针对这个问题,提出了软件处理方法,实现总线在半双工通信方式下,数据的高可靠性接收与发送。
发明内容
本发明的目的是:485总线在半双工的通信模式下,采用两线方式组建的网络中,快速的数据发送和接收过程中,存在数据丢包和错包的情况。为解决该问题提出一种485总线半双工通信的优化算法。
本发明的技术方案是:优化485总线的应答响应逻辑,考虑到数据接收与发送过程中,数据传输需要的时间,引入信号量操作和fifo特殊处理,确保同一时刻下,总线上传输的数据不会发生冲突。
所述的一种485总线半双工通信的优化算法,包括以下步骤:
1)485总线接收使能打开,判断485总线接收开始标志rx_flag的状态,如果满足接收条件,则rx_flag==1,执行步骤2),否则,执行步骤5);
2)获取485总线接收fifo的长度,如果长度不为零,则读取fifo内的所有数据,执行步骤3);否则,执行步骤5);
3)对接收的数据进行校验,如果校验结果正确,数据接收过程结束,进入数据发送程序,执行步骤4);否则,执行步骤5);
4)打开485总线发送数据使能,将485总线接收开始标志置零,rx_flag=0,进行数据的发送程序;完成数据发送后,对发送fifo的长度进行判断,如果为0进入步骤5);否则,执行步骤6);
5)将485总线接收开始标志置1,rx_flag=1,485总线发送使能关闭,同时清空接收fifo;完成后执行步骤6);
6)485总线本次接收与发送结束,执行下一个周期任务,重新进入步骤1)。
优选地,上述所有步骤采用应答模式,只有485总线收到数据后,才执行数据的发送任务。
优选地,所述软件处理方法适用于485总线在半双工的通信模式下,数据接收与发送需要分时复用485总线。其特征在于,485总线半双工通信是周期任务,通信频率高。且采用应答模式,只有485总线收到数据后,才执行数据的发送任务。
附图说明
图1为本发明的方法流程示意图。
图2为传统485总线处理流程示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步说明:请参阅图1,本发明中使用的RS485总线采用半双工,两线方式。数据与接收复用数据总线。飞控管理计算机(VMC)每20ms向伺服控制器(ACE)发送数据,ACE收到数据且校验核正确后,将自己的状态组包发送给VMC。
ACE的运行周期为1ms,VMC向ACE发送的数据长度为20,ACE向VMC发送的数据长度为30,数据传输的波特率设定为115200bps。VMC发送给ACE的20帧数据需要1.4ms,ACE向VMC发送的30帧数据需要2.1ms。为避免发送数据和接收数据不在同一组复用的数据总线上冲突,且要求满足VMC和ACE的实时性。因此软件不能通过加入延时函数来解决该问题,软件应用层定义了信号量rx_flag,初始化为1表示当前可以进入数据接收状态。ACE通过周期查询的方式,判断数据是否传输完成,可以从接收转为发送状态,或者从发送状态转为接收状态。
举例对过程进行完整描述。使用本发明提出的一种485总线半双工通信的优化算法的步骤用例如下:
1)ACE先将485总线接收使能打开,判断总线接收开始标志(rx_flag),如果满足接收条件(rx_flag==1),进入步骤2)。否则进入步骤5);
2)获取VMC通过485总线给ACE发送数据的fifo长度,如果长度大于等于20,则读取fifo内的所有数据,进入步骤3)。否则进入步骤5);
3)对接收的数据进行校验,如果校验结果正确,数据接收过程结束,进入ACE向VMC数据发送过程,进入步骤4)。否则,进入步骤5);
4)ACE将485总线发送使能打开,将485接收开始标志置零(rx_flag=0),开始数据的发送。完成数据发送后,对发送fifo的长度进行判断,如果为0进入步骤5)。否则进入步骤6);
5)ACE将总线接收开始标志置1(rx_flag=1),485总线发送使能关闭,同时清空接收fifo。完成后进入步骤6);
6)485总线本次接收与发送结束,进入下一个周期任务进入步骤1)。
步骤1)中的数据接收开始标志(rx_flag)确保数据接收与数据发送的互斥性,虽然程序是流水线顺序执行,但是无论是数据的接收和发送都是按照固定的波特率传送,需要考虑接收数据与发送数据需要的时间。
步骤5)中,对接收fifo清空操作,确保在数据接收模式下接收fifo内没有垃圾数据干扰。由于485总线半双工工作模式下,接收和发送数据线分时复用统一数据总线,数据在发送时会影响到接收端的fifo内数据,因此需要完成数据发送后,对接收fifo清空。
本发明提出了一种485总线半双工通信的优化算法,避免发送的数据与接收的数据在传输过程中发生冲突,且保证数据传输的实时性。实现了485总线高频收数与发数的可靠性与稳定性。
Claims (3)
1.一种485总线半双工通信的软件处理方法,其特征在于,包括以下步骤:
1)485总线接收使能打开,判断485总线接收开始标志rx_flag的状态,如果满足接收条件,则rx_flag=1,执行步骤2),否则,执行步骤5);
2)获取485总线接收fifo的长度,如果长度不为零,则读取fifo内的所有数据,执行步骤3);否则,执行步骤5);
3)对接收的数据进行校验,如果校验结果正确,数据接收过程结束,进入数据发送程序,执行步骤4);否则,执行步骤5);
4)打开485总线发送数据使能,将485总线接收开始标志置零,rx_flag=0,进行数据的发送程序;完成数据发送后,对发送fifo的长度进行判断,如果为0进入步骤5);否则,执行步骤6);
5)将485总线接收开始标志置1,rx_flag=1,485总线发送使能关闭的同时清空接收fifo;完成后执行步骤6);
6)485总线本次接收与发送结束,执行下一个周期任务,重新进入步骤1)。
2.如权利要求1所述的软件处理方法,其特征在于,所有步骤采用应答模式,只有485总线收到数据后,才执行数据的发送任务。
3.如权利要求1所述的软件处理方法,其特征在于,所述软件处理方法适用于485总线在半双工的通信模式下,数据接收与发送需要分时复用485总线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810820565.2A CN110752909B (zh) | 2018-07-24 | 2018-07-24 | 一种485总线半双工通信的软件处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810820565.2A CN110752909B (zh) | 2018-07-24 | 2018-07-24 | 一种485总线半双工通信的软件处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110752909A CN110752909A (zh) | 2020-02-04 |
CN110752909B true CN110752909B (zh) | 2022-05-27 |
Family
ID=69275538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810820565.2A Active CN110752909B (zh) | 2018-07-24 | 2018-07-24 | 一种485总线半双工通信的软件处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110752909B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464407B (zh) * | 2020-02-28 | 2021-11-09 | 湖北三江航天红峰控制有限公司 | 一种基于半双工总线的通信装置及方法 |
CN112713910B (zh) * | 2020-12-30 | 2022-08-23 | 重庆芯讯通无线科技有限公司 | Rs485收发状态的转换方法、系统、设备及介质 |
CN115150218A (zh) * | 2021-03-30 | 2022-10-04 | 广东博智林机器人有限公司 | 一种上位机与驱动器的串行通信方法、装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787473A (zh) * | 2004-12-08 | 2006-06-14 | 中兴通讯股份有限公司 | 采用485接口实现抢占式总线通信的方法 |
CN102355507A (zh) * | 2011-09-29 | 2012-02-15 | 南京国电南自轨道交通工程有限公司 | 一种新型的带自检和冲突检测的串行通信接口 |
CN102546141A (zh) * | 2012-02-20 | 2012-07-04 | 杭州海康威视系统技术有限公司 | 485总线系统及其异步半双工通信方法 |
CN103746890A (zh) * | 2013-06-09 | 2014-04-23 | 国家电网公司 | 竞争式rs-485总线多主通讯系统及其工作方法 |
CN105354159A (zh) * | 2015-09-28 | 2016-02-24 | 上海海视电子有限公司 | 一种基于rs485分布式总线系统的控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7630395B2 (en) * | 2004-05-24 | 2009-12-08 | The United States Of America As Represented By The Secretary Of The Air Force | Apparatus and method for providing a data interface to a plurality of radio transceivers |
-
2018
- 2018-07-24 CN CN201810820565.2A patent/CN110752909B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787473A (zh) * | 2004-12-08 | 2006-06-14 | 中兴通讯股份有限公司 | 采用485接口实现抢占式总线通信的方法 |
CN102355507A (zh) * | 2011-09-29 | 2012-02-15 | 南京国电南自轨道交通工程有限公司 | 一种新型的带自检和冲突检测的串行通信接口 |
CN102546141A (zh) * | 2012-02-20 | 2012-07-04 | 杭州海康威视系统技术有限公司 | 485总线系统及其异步半双工通信方法 |
CN103746890A (zh) * | 2013-06-09 | 2014-04-23 | 国家电网公司 | 竞争式rs-485总线多主通讯系统及其工作方法 |
CN105354159A (zh) * | 2015-09-28 | 2016-02-24 | 上海海视电子有限公司 | 一种基于rs485分布式总线系统的控制方法 |
Non-Patent Citations (2)
Title |
---|
"RS-485总线系统实时通信可靠性分析";陶国正;《江苏电器》;20050804;全文 * |
"RS-485的多机通信方案探究";魏金文等;《单片机与嵌入式系统应用》;20121221;第76-78页,正文第3.3、3.4小节 * |
Also Published As
Publication number | Publication date |
---|---|
CN110752909A (zh) | 2020-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110752909B (zh) | 一种485总线半双工通信的软件处理方法 | |
CN102571251B (zh) | 多总线控制器局域网系统中使用时间同步的数据传感器协调 | |
CN100496048C (zh) | 多主通信系统 | |
CN107346980B (zh) | 一种多从站电缆防盗监控系统的组网通信方法 | |
CN101977094A (zh) | 一种适于多主通信的星载can总线通信方法 | |
CN102355507B (zh) | 一种带自检和冲突检测的串行通信接口 | |
CN107071829B (zh) | 一种面向数据收集任务的水声网络媒体接入控制方法 | |
CN101626334B (zh) | 通讯总线控制方法和装置 | |
CN101047615B (zh) | 一种以太网数据流量控制方法 | |
CN105324960A (zh) | 控制器局域网络灵活的数据率 | |
KR20050010049A (ko) | 시간 구동 및 이벤트 구동 이더넷 메시지를 전송하기 위한교신 방법 및 시스템 | |
CN110601943B (zh) | 基于rs485总线的通信系统及其通信方法 | |
WO2019196484A1 (zh) | 空调系统及空调系统中机组间的通信方法 | |
CN101005427A (zh) | 一种485总线系统和传送数据的方法 | |
CN108365944A (zh) | 一种半双工总线的通信方法、系统及房控系统 | |
CN111277478A (zh) | 一种基于不同波特率从设备的rs485总线复用控制方法 | |
CN105183687A (zh) | 一种分时串口通信方法及系统 | |
CN104035901A (zh) | 一种ttcan总线对时及发送数据的方法 | |
CN103441914B (zh) | As5643总线中包含等时数据包的传输方法 | |
CN102957586B (zh) | 基于无冲突协议的全双工rs485总线通信方法 | |
CN114826812B (zh) | 一种rs485通信多主站的实现方法及系统 | |
CN102929830A (zh) | 一种软件模拟快速通信协议 | |
CN114124279B (zh) | 一种时间触发以太网tt业务时间确定性传输设计方法 | |
CN107995080B (zh) | 基于二线制总线的多主机通信方法 | |
CN103268301A (zh) | 一种自动流的半双工uart接口电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |