总线通信数据管理及解析方法
期刊目录网通信论文发表2020-08-04 11:47关注(1)
在航空电子系统中RS422是一种常见的异步串行总线,可同时实现互连设备双方的发送与接收,且灵活、简单、可移植性强。然而由于RS422总线对传输数据缺少限制,数据格式多变,在异步传输的过程中极易出现数据不完整、丢包、错误解析等情况。文章针对这一问题提出了一种RS422总线通信数据管理及解析方法,针对不同格式的数据,设计出通用的解包算法。该方法在机载系统多型产品中实际运用,总线通信稳定有效。
关键词:RS422总线;数据管理;解包算法
RS422总线采用差分传输方式,具有全双工的特性,即具有4根信号线,接收发送互不干扰。通信双方在同一周期内完成数据互换,根据指定长度即可获取正确的数据包。然而当双方设备的任务周期出现偏差,底层数据接收晚于上层应用调度时,常常会出现半包数据丢失,找不到包头包尾等问题[1]。RS422总线普遍应用于各类场景,其包头、包尾、校验位、计算方式、长度等多变且难以统一[2],甚至消息数量也存在不确定性,不同应用需求导致开发者多次重复开发,费时费力,没有形成一套统一的配置管理方法。电子通信环境复杂,总线数据传输可能出现偶发干扰,从而引入非正常数据[3],因此组包过程需要具备一定的抗冗余能力,保证在不丢包的基础上正确解析[4]。
1串行通信协议
UART是一种异步全双工串行通信协议,因为没有参考时钟信号,所以通信的双方必须约定串口波特率、数据位宽、奇偶校验位、停止位等配置参数,从而按照相同的速率方式进行通信。异步通信以一个字符为传输单位,通信中两个字符间的时间间隔是不固定的,然而在同一个字符中的两个相邻位的时间间隔是固定的,可通过波特率进行设置,即每秒传送的二进制位数。每一个传送字符包含1个起始位,8个数据位,1个奇偶校验位,1个停止位,如图1所示。图1串行通信协议数据格式在实际通信中,起始位常发送一个逻辑“0”信号,表示传输字符的开始。数据位可以是8位的逻辑“0”或“1”,一般采用小端传输,即LSB先发,MSB后发。在数据位后加上奇偶校验位,使得字符中逻辑“1”的位数为偶数(偶校验)或奇数(奇校验)。停止位是一个字符的结束标志,可以是1位、1.5位、2位的高电平,用于保持双方同步,停止时间间隔越长,传送的容错能力就越强。针对上述协议,RS422总线的初始化配置至少应包含表1内容,其中循环标志设定了总线的工作状态。
2数据管理配置
根据串行通信协议特点,针对不同应用进行统一的开发管理,本文对RS422总线的收发数据进行了如下配置,详见表2,具体包括通道号、消息标识、包长、包头、包尾、校验类型、停止位等,可采用结构体的形式在初始化阶段进行配置。需要说明的是,表2为应用层数据设置,上述表1位传输协议配置。开发者可根据自身需求,对各配置项进行裁剪增添。RS422总线是在RS232总线基础上发展而来的,不同于RS232总线点对点的通信规范,RS422总线支持同一线路单机发送、多机接收,且其特有的电气特性使传输距离和传输速率得以提升。“一对多”式通信协议不仅可以提升传输效率,还能在一定程度上节约网络资源,此时就需要对软件的收发通道进行合理编号,用以区分不同的发送源数据。另外,通过设置消息标识符,接收方可对消息进行筛选,有目的地进行数据包解析。包长、包头、包尾限定出一个完整的数据段,校验和则用于保证数据的正确性,防止因受干扰而出现数据错乱,一般有加和及补码两种方式。
3数据收发流程
发送数据时,首先利用表2中的发送结构体进行数据配置,设置包头、包尾、标识符、消息长度等相关信息,然后根据校验类型,向待发送数据包填写校验和,最后调用发送驱动,读取UART线状态寄存器,当发送FIFO存储器不为空时保持等待,直到条件满足后逐字节写入发送保持寄存器。数据接收过程涉及数据存储、整合、解析、组包等,具体流程见图2。首先应判断当前通道接收的消息数量是否单一,若单一则直接获取序号,进行接收解包流程,若不为一,则需通过标识位判断是否为目标消息。在确认待接收数据为目标消息后,根据包头、包长、校验位等进行解包,解包算法详见下一章节。
4数据解包算法
本节以某型直升机机电系统RS422总线通信为背景,介绍一种普适性较高的解包算法,开发者可根据实际应用中的数据特性,进一步细化。首先建立一个适当容量的环形缓冲区,软件实现可采用结构体,包含读、写指针,一维数组,数组长度,并在读写过程中循环遍历数组元素。由于RS422总线是异步串行通信,收发时差可能导致数据缺失,故需要将每周期接收到的数据依次存放在环形缓冲区,并在接收数据长度大于目标数据长度后,进行搜索解包。环形缓冲区利用写指针进行存储,读指针进行解析,解包成功后读指针将跳过当前数据包,以避免重复解析,如此循环首尾相接。图3所示为环形缓冲区,目标包头为0xAA55,标识位0x01,消息长度0x08,check为补码校验位。当环形缓冲区(a)的数据长度大于目标数据包长度时,开始从strat处搜索解包,读取前4个字节,读指针移动见(b),依次判断包头、字节长度是否正确,若正确则进行校验和计算,读指针移动至(e),根据校验结果取出或丢弃当前数据包。当包头判断错误时,读指针需要回退3个字节,如(c)所示,此时需要考虑0xAAAA55的情况。当包头正确,字节长度错误时,读指针需要回退2个字节,如(d)所示,此时需要考虑0xAA55AA55的情况,以避免丢包。当接收消息不唯一时还需要判断标识位,同理可利用上述方法,但需要注意读指针回退的字节长度。另外,环形缓冲区每次写入和读出都需要判断是否发生溢出,即读、写指针移动到存储数组的最后一个字节时,返回起始strat位置,重新开始下一轮的解析。
5结语
本文研究了一种RS422总线通信数据管理及解析方法,对使用RS422总线遇到的常见问题进行了分析,并针对接收丢包、重复开发、缺乏统一管理等问题设计了一套通用的管理解析方法。依次介绍了数据管理配置、发送接收流程以及解包算法。经实际工程验证,该方法有效解决了丢包等问题,并在一定程度上提升了开发效率,可应用于不同的需求场景。
参考文献:
[1]姬进.一种通用可配置RS422总线管理技术[J].电子测试,2018,000(003):164-165.
[2]邢达波,艾波.机载RS422总线采集技术应用研究[J].中国科技信息,2016,000(021):73-74.
[3]邢达波,李铁林,艾波.机载RS422总线数据异常分析研究[J].中国科技信息,2017(2):28-29.
[4]王彦庆,宁亚峰,谷计划.浅论机载RS422总线采集技术应用研究[J].工程技术(引文版),2017(1):00312-00312.
作者:宋丫 宁慧君 白曦
总线通信数据管理及解析方法相关论文:
无介质浮空成像技术在移动通信
油气场站通信后备电源优化方案
5G通信技术对新闻传播挑战
大数据下异常通信信号智能检测
LTE技术下地铁车地无线通信干
上一篇:卫星通信极化误差危害调整方法
下一篇:5G移动通信前传关键技术
- 测控技术测绘技术论文发表核心期刊
- 系统仿真技术杂志国家级期刊征收论文格式核心期刊
- 电力电子技术电力工程论文核心期刊
- 电气电子教学学报电子科学论文核心期刊
- 广东电力电力工程师职称论文核心期刊
- 工程设计学报机电一体化论文核心期刊
- 光谱学与光谱分析光学论文发表核心期刊
- 电源学报电子技术论文发表核心期刊
- 热力发电杂志最新工程师论文查询核心期刊
- 《计算机研究与发展》核心电子期刊方式核心期刊
需求单填写(快速填写,为您解答)
- 《计算机研究与发展》核心电子期刊方式
- 《计算机技术与发展》核心电子期刊
- 《计算机时代》电子核心论文期刊
- 计算机周刊杂志是什么级别刊物
- 自动化与信息工程杂志广东省科学院主管刊物
- 中国机电工业杂志论文字体要求
- 信息通信技术杂志是国家级期刊吗
- 今日电子杂志2017年7期论文目录查询
- 当代通信杂志通信工程师期刊
- 电力工程技术江苏电力期刊
- 期刊影响因子越高说明越难发表吗
- 刊号后面的字母什么意思
- 微生物领域顶级期刊有哪些
- 补刊是什么意思
- 工程科技是什么级别
- 名师在线是核心期刊吗
- 建设科技是核心期刊吗
- 比较教育研究是SCI期刊吗
- 临床肺科是什么级别
- 财会类期刊有哪些
- 农艺师升高级农艺师什么条件可破格
- 江苏一级播音员职称评审条件
- 论文第二作者对评职称有用吗
- 一级教师职称评定的条件
- 评职称需要什么条件呢
- 护理副高职称评审条件有哪些
- 专业技术初级晋升中级条件有哪些
- 河南省工程系列正高级职称申报评审条件
- 江西省地质高级工程师职称评定条件
- 林业工程师高级职称评定要求有哪些
- decision in process一般多久
- 审稿时间越长退稿可能性越大
- 论文终审被退稿的几率大吗
- 什么是教改论文?
- 论文第三作者可以写几个人
- 医学论文格式要求及字体大小
- 贵州省评职称论文发表的刊物有哪些
- 本科生毕业论文的格式要求
- 论文状态with editor是什么意思
- 论文的作者和通讯作者有什么区别
- 学术论文的主要构成部分有哪些
- 论文一级标题是什么
- 文章主动撤稿有什么后果
- 英文综述的查重率控制在多少为宜
- 学术论文的标准格式以及字号
- 论文盲审阶段被拒稿是什么原因
- sci论文的格式要求是什么
- 论文署名格式范例
- 文献综述可以直接抄原句吗
- 一般核心论文加急能成功吗