CN110752909B - 一种485总线半双工通信的软件处理方法 - Google Patents

一种485总线半双工通信的软件处理方法 Download PDF

Info

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
Application number
CN201810820565.2A
Other languages
English (en)
Other versions
CN110752909A (zh
Inventor
李泽林
董少阳
苏二峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Flight Automatic Control Research Institute of AVIC
Original Assignee
Xian Flight Automatic Control Research Institute of AVIC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Flight Automatic Control Research Institute of AVIC filed Critical Xian Flight Automatic Control Research Institute of AVIC
Priority to CN201810820565.2A priority Critical patent/CN110752909B/zh
Publication of CN110752909A publication Critical patent/CN110752909A/zh
Application granted granted Critical
Publication of CN110752909B publication Critical patent/CN110752909B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/14Two-way operation using the same type of signal, i.e. duplex
    • H04L5/16Half-duplex systems; Simplex/duplex switching; Transmission of break signals non-automatically inverting the direction of transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus 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总线半双工通信的软件处理方法
技术领域
本发明属于机载总线通信技术领域,涉及一种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总线。
CN201810820565.2A 2018-07-24 2018-07-24 一种485总线半双工通信的软件处理方法 Active CN110752909B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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