本发明涉及数据传输领域,尤其涉及一种基于改进的usart协议的数据传输方法。
背景技术:
1、usart(universal synchronous/asynchronous receiver/transmitter)是一种通用的串行通信接口协议,常用于微控制器和外围设备之间的数据传输。它支持同步和异步传输模式,能够以较高的速度进行数据传输。
2、然而,usart协议在工业环境或电磁干扰较强的环境下容易受到噪声影响,导致数据传输错误率上升,可靠性降低。此外,usart协议本身也存在一些缺陷:
3、(1)缺乏数据应答机制:发送方无法确认接收方是否成功接收数据,可能导致数据丢失。
4、(2)传输错误检测和纠正机制不足:无法及时识别和重传数据传输过程中丢失的数据,降低了传输可靠性。
5、(3)校验位功能有限:仅能检测单个位错误,无法有效保证数据完整性,也无法防止数据被篡改或损坏。
6、这些缺陷严重影响了对数据传输可靠性要求较高的应用场景。
技术实现思路
1、针对现有技术的不足,本发明提供了一种基于改进的usart协议的数据传输方法,以解决usart协议在工业环境或电磁干扰较强的环境下容易受到噪声影响,导致数据传输错误率上升,可靠性降低等问题。
2、本发明的技术方案为:
3、一种基于改进的usart协议的数据传输方法,在usart协议基础上,增加数据应答机制以使得发送端判断接收端是否成功接收到数据,增加传输错误检测和纠正机制以识别和处理数据传输过程中出现的丢帧现象,增加数据完整性验证机制,以检测数据在传输过程中是否被篡改或损坏;
4、所述数据应答机制,具体包括如下步骤:
5、a1:发送端将待传输的数据划分成长度不超过接收端缓冲区容量的等长的数据段;
6、a2:根据数据段的传输顺序为每个数据段分配一个数据序列号,并将每个数据段进行封装,得到数据帧;所述数据序列号用于标识数据段的传输顺序;
7、所述数据段按照rutf的帧格式进行封装具体为:
8、首部:用于标志rutf的起始;
9、标志位:用于标志该帧是数据帧还是应答帧,若该标志位的值为0,则代表该帧是数据帧,若该标志位的值为1,则代表该帧是应答帧;
10、序列号:用于记录当前数据帧的数据序列号或当前应答帧的应答序列号;所述应答序列号为接收端在成功接收到一个数据段并验证其完整性后,在应答帧中附带的序列号,用于告知发送端该数据段已被成功接收;
11、数据:待发送的数据,即划分得到的数据段;
12、crc校验码:用于校验数据在传输的过程中是否被篡改或损坏;
13、尾部:用于标志rutf的结束;
14、a3:发送端将数据帧通过若干个usart协议规定格式的数据帧发送到接收端;
15、a4:接收端接收发送端发送的数据帧并进行验证,验证通过则接受该数据帧并发送应答帧到发送端,否则丢弃该数据帧;所述应答帧同样按rutf的帧格式进行封装;
16、具体的,接收端在接收到包含首部的usart协议规定格式的数据帧后开始缓存数据帧,并在接收到包含尾部的usart协议规定格式的数据帧后结束该数据帧的接收,从而获得完整的数据帧,接收端初始化应答序列号,并在每次发送应答帧时附带当前的应答序列号,每次接收到数据帧时验证数据帧中的数据序列号是否与当前应答序列号相同,相同则接受该数据帧并发送应答帧,同时递增应答序列号,不同则丢弃该数据帧;
17、a5:若发送端接收到应答帧,则表示接收端成功接收到数据,若未接收到应答帧则认为数据传输失败,发送端会在设定时间后重新发送该数据帧,直至成功接收到应答帧为止;
18、所述传输错误检测和纠正机制,具体包括如下步骤:
19、b1:发送端根据维护的数据序列号向接收端发送对应的数据帧;
20、b2:启动一个定时器,并设定一个超时时间;
21、b3:如果在定时器达到超时时间之前发送端没有收到接收端发送的应答帧,则认为该数据帧丢失或接收端反馈的应答帧丢失返回b1,直至发送端收到接收端发送的应答帧;
22、所述接收端发送应答帧的过程具体为:接收端根据数据帧中的数据序列号判断是否有数据帧重复接收,若没有则将该数据帧接收,并发送具有与该数据帧中的数据序列号相同的应答序列号的应答帧以告知发送端已接收到该数据帧;若有则将该重复接收的数据帧丢弃,并再次发送具有与该数据帧中的数据序列号相同的应答序列号的应答帧以告知发送端已接收到该数据帧;
23、所述数据完整性验证机制,具体包括如下步骤:
24、c1:选择用于crc计算的多项式;
25、c2:根据所选择的多项式的位数,设定一个具有相同位数的crc寄存器,并为该crc寄存器赋上初始值;
26、c3:利用crc寄存器结合所选择的多项式计算每个数据段的crc校验码;
27、具体的,发送端将数据段的每个数据位与crc寄存器的值的最高有效位进行异或,如果异或结果为1,将crc寄存器中的值左移一位,并与选择的多项式进行异或操作;如果异或结果为0,则仅将crc寄存器中的值左移一位,完成数据段的所有数据位的处理后,crc寄存器中的值即为计算得到的crc校验码;
28、c4:将计算得到的crc校验码附加到rutf格式的数据帧的crc校验码部分一起发送给接收端;
29、c5:接收端在接收到rutf格式的数据帧中的数据段和crc校验码后,使用选择的多项式和crc寄存器的初始值根据接收到的数据段重新计算crc校验码;
30、c6:接收端将接收到的crc校验码与计算得到的crc校验码进行比较,如果两个crc校验码相同则说明数据段没有被篡改或损坏,反之则说明数据段已在传输过程中被篡改或损坏。
31、与现有技术相比较,本发明的有益效果为:
32、(1)数据应答机制:通过制定数据应答机制,确保发送方能够判断接收方是否成功接收到数据。
33、(2)传输错误检测和纠正机制:制定传输错误检测和纠正机制,及时识别和重传数据传输过程中丢失的数据。
34、(3)数据完整性验证机制:制定数据完整性验证机制,检测数据在传输过程中是否被篡改或损坏。
35、通过以上改进,可以降低usart协议在工业环境或嘈杂电磁环境下的数据传输错误率,提高数据传输的可靠性。
1.一种基于改进的usart协议的数据传输方法,其特征在于,在usart协议基础上,增加数据应答机制以使得发送端判断接收端是否成功接收到数据,增加传输错误检测和纠正机制以识别和处理数据传输过程中出现的丢帧现象,增加数据完整性验证机制,以检测数据在传输过程中是否被篡改或损坏。
2.根据权利要求1所述的一种基于改进的usart协议的数据传输方法,其特征在于,所述数据应答机制,具体包括如下步骤:
3.根据权利要求2所述的一种基于改进的usart协议的数据传输方法,其特征在于,
4.根据权利要求2所述的一种基于改进的usart协议的数据传输方法,其特征在于,a4具体为:
5.根据权利要求1所述的一种基于改进的usart协议的数据传输方法,其特征在于,所述传输错误检测和纠正机制,具体包括如下步骤:
6.根据权利要求1所述的一种基于改进的usart协议的数据传输方法,其特征在于,所述数据完整性验证机制,具体包括如下步骤:
7.根据权利要求6所述的一种基于改进的usart协议的数据传输方法,其特征在于,c3具体为: