一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种可靠的串口数据传输方法与流程

2022-07-16 12:45:03 来源:中国专利 TAG:


1.本发明涉及一种通信管理技术,具体是一种可靠的串口数据传输方法。


背景技术:

2.航空电子系统中有大量的处理单元之间使用串口进行通信。传统的串口通信是由处理单元上的一个任务负责收发所有的串口数据,在串口通信产生误码时,会导致数据丢失。关键性数据丢失则会导致系统故障的发生。


技术实现要素:

3.本发明的目的:在航空电子系统中,由于串口传输产生误码而导致数据丢失,导致系统故障。为了解决上述问题,本发明提出一种可靠的串口数据传输方法,由发送方缓冲历史数据包,在数据丢失时重传丢失的数据包,提高了航空电子系统的可靠性。
4.本系统可靠的串口数据传输方法是基于丢失数据重传的思想。发送方在发送数据时,将该数据进行缓存;接收方接收到数据并通过校验后,向发送方回复确认标识;发送方在规定的时间内没有收到确认标记,则从历史数据中重新发送该数据包;发送方接收到确认标识后,从历史数据中将该数据清除。
5.可靠的串口数据传输方法分为三个部分:数据发送器、数据接收器和数据重传器。数据发送器负责缓存历史数据包;数据接收器接收到数据包后,向数据发送器发送确认标记;数据重发器定负责丢失数据的重传。
6.完成可靠的串口数据传输需要历史数据缓存表、crc8校验的支撑。
7.历史数据包缓存表:记录发送方已发送但没有收到确认标识的数据包。包括数据包标识、数据包长度、数据包内容、重传时间、超时时间、校验码、传输开始时间。数据重传器依据历史数据包缓冲表中信息,在数据包传输中丢失时重传数据包。
8.crc8校验:数据通信领域中常用的一种差错校验码,用于检测传输的数据包是否产生了误码。
9.本系统可靠的串口数据传输方法有效的解决了串口传输误码导致数据丢失的问题,提高了航空电子系统的可靠性。
附图说明
10.图1是可靠传输的原理图
11.图2是数据重传器原理图
12.表1是历史数据包缓存表
具体实施方式
13.在航空电子系统中,串口传输产生误码,会导致数据丢失,从而造成系统故障。为了解决上述问题,本发明提出一种可靠的串口数据传输方法,在数据丢失时重传数据。该方
法解决了关键性的串口数据丢失而导致系统功能丧失的问题,提高了航空电子系统的可靠性。
14.基于数据丢失重传的思想。应用软件将数据发送给数据发送器,数据发送器将发送的数据进行缓存,并发送给数据接收器;数据接收器接收到数据并通过校验后,向数据发送器回复确认标记;数据发送方在发出数据后,在规定的时间内没有收到确认标记,则从历史数据中重新发送该数据包,直至收到确认标记后,从历史数据中将该数据包删除;接收方的应用软件从数据接收器中获取数据。
15.完成串口数据可靠传输需要历史数据缓存表、crc8校验的支撑。
16.历史数据包缓存表:记录发送方已发送但没有收到确认标识的数据包。包括数据包标识、数据包长度、数据包内容、重传时间、超时时间、校验码、传输开始时间。数据包标识packetnum是该数据包在发送方的唯一标识,为一个32位的数,为0时无效,系统初始值为1。数据包长度packlen为一个8位的数据,为该数据包的长度;数据包内容data为一个有4096个成员的字符数组。重传时间replaytime为一个32位的数,单位为ms,表示发送方在多长时间内没有收到确认标识,发起重传数据包。超时时间timeout为32位的数,单位为ms,表示发送方在多长时间内没有收到确认标识则向应用软件发送超时标记。校验码checknum为一个8位数据,该数据包中有效数据的crc8校验码。传输开始时间begintime为一个32位的数据,表示该数据开始传输的时间。
17.crc8校验:数据通信领域中常用的一种差错校验码,用于检测传输的数据包是否产生了误码。
18.系统运行方案的如下:
19.1.系统初始化
20.在系统启动时,将packetnum初始化为1,并启动数据重传器。
21.2.串口数据帧的组装
22.应用软件将数据包发送给数据发送器(包括数据长度和数据包的内容);数据发送器使用crc8计算数据包的校验码;将数据包标识packetnum、crc8校验码、数据包的长度、数据包的内容组装成串口通信的数据帧,将ack确认码设置为0(0表示正常通信帧,1表示数据包接收确认帧)。
23.3.数据的发送和缓存
24.数据发送器通过访问串口设备将串口数据帧进行发送,同时查找历史数据包缓存表中第一个packetnum为0x0的地址,如果没有找到则向应用发送历史缓冲区数据满的事件,否则将该数据帧的信息填充到历史数据缓冲表中,并获取系统时间,将时间填到对应的数据包的begintime中。并将packetnum加1。
25.4.发送确认标识
26.数据接收器在接收到数据包时,解析数据包格式,如果ack确认码为0时,校验有效数据的正确性,如果正确,则将该数据反馈给应用软件。
27.用该有效数据包的packetnum填充网络帧的数据包标识,将ack码填充为1(表示该数据帧是确认帧),将数据包长度填充为0,组装成数据确认帧发送给发送方。
28.5.清除历史数据
29.数据接收器接收到数据后,解析数据包格式,如果ack确认码为1时,则依据该数据
包的标识在在历史数据缓冲表中存放的地址,将该历史数据清除(将历史数据缓冲表中对应的packetnum设置为0)。
30.6.重传数据
31.数据重传器为一个定时的任务(周期为1ms),查找历史数据缓冲表中packetnum不为0x0的数据包,获取当前系统时间currenttime,如果(currenttime-begintime)大于等于timeout,则向应用软件发送数据超时事件。
32.如果(currenttime-begintime)是replaytime的整数倍,则使用历史缓冲数据表中的填充串口数据帧,重新发送该数据包。
33.以下是本实例中使用的表格:
34.表1历史数据包缓存表
35.packetnumpacketlendatareplaytimetimeoutchecknumbegintime0x110

10100
……
0x215

10100
……
0x320

10100
………………………
0x00

0x0100
……


技术特征:
1.一种可靠的串口数据传输方法,其特征在于:所述发送方将发送的历史数据进行缓存;接收方在接收到数据包时向发送方回复确认标记;发送方在接收到确认标记后,将其数据包从历史数据中清除;发送方定时的查看历史数据中是否存在确认超时的数据包,存在则将该数据包重新发送。2.根据权利要求1所述可靠的串口数据传输的方法,应用软件发送的数据包由数据发送器进行缓存,特征在于:所述应用软件将数据包发送给数据发送器,数据发送器将数据包通过串口设备进行发送,并将其数据包缓存在历史数据中。3.根据权利要求1所述可靠的串口数据传输的方法,接收方在接收到数据包后需要向发送方发送确认标识,特征在于:所述接收方的数据接收器在接收到数据包时,进行校验,通过校验后,向数据发送方回复接收收到该数据包的标识。4.根据权利要求1所述可靠的串口数据传输的方法,丢失的数据包重传,特征在于:所述发送方的数据接收器接收到数据包确认标识后,从历史数据中将该数据包删除;数据重传器定时的查看历史数据中是否有数据包接收确认标记超时的数据包,如果有则重新发送该数据包。

技术总结
本发明公开了一种可靠的串口数据传输方法,用于解决传统航空电子系统的由串口通信误码率高而导致数据包丢失的问题。本发明基于数据包丢失重传的思想,发送方在发送数据时,将该数据进行缓存;接收方接收到数据后,向发送方回复确认标识;发送方在规定的时间内没有收到确认标记,则从历史数据中重新发送该数据包;发送方接收到确认标识后,从历史数据中将该数据清除。本发明能够有效的解决串口传输误码率高而导致数据丢失的问题,提高了航空电子系统的可靠性。系统的可靠性。系统的可靠性。


技术研发人员:段海军 范超 赵琳 刘伟 占水旺 高锡新
受保护的技术使用者:沈阳飞机设计研究所扬州协同创新研究院有限公司
技术研发日:2022.04.02
技术公布日:2022/7/15
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献