CN117743230A - 一种基于串口通讯协议的数据处理方法、存储介质和电子设备 - Google Patents
一种基于串口通讯协议的数据处理方法、存储介质和电子设备 Download PDFInfo
- Publication number
- CN117743230A CN117743230A CN202311812558.5A CN202311812558A CN117743230A CN 117743230 A CN117743230 A CN 117743230A CN 202311812558 A CN202311812558 A CN 202311812558A CN 117743230 A CN117743230 A CN 117743230A
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- bytes
- communication protocol
- global array
- 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.)
- Pending
Links
- 230000006854 communication Effects 0.000 title claims abstract description 68
- 238000004891 communication Methods 0.000 title claims abstract description 62
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 24
- 230000002159 abnormal effect Effects 0.000 claims abstract description 4
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Communication Control (AREA)
Abstract
本发明公开一种基于串口通讯协议的数据处理方法,该方法包括:步骤1:对串口通讯的两端进行串口初始化操作;步骤2:当前数据发送方按照通讯协议以帧格式组建数据帧并发送,所述帧格式依次包含帧头、帧类型、帧长度、数据内容和校验位;步骤3:当前数据接收方将接收到的数据帧所有字节按照接收顺序存储在全局数组中,并更新全局数组的计数变量;步骤4:对全局数组中的所有字节遍历查询符合通讯协议的帧头,通过帧头位置获取帧数据进行校验,若数据帧校验通过,则将完整可靠的可用数据帧输出至业务进程处理,若数据帧校验未通过,则将未通过校验的异常数据帧暂存全局数组内。步骤5:对全局数组内所有字节进行遍历查询校验后,将可用数据帧及可用帧之前的所有字节从全局数组中删除,若全局数组内有剩余未被删除的字节,则将剩余字节移动至数组开头的位置,更新计数变量,数据接收方等待将下一次接收数据帧拼接至剩余字节结尾后方;步骤6:当前发送数据方重复步骤2不断封装并发送数据,当前数据接收方重复步骤3、4、5,不断接收并解析出符合通讯协议的数据。本发明通过在串口通讯的过程中以通讯协议作为判断依据,以全局数组作为存储介质对多次发送的数据内容进行合理的拼凑和地毯式遍历处理,从而解决因串口通讯过程中数据截断和出现乱码导致的数据丢失问题。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于串口通讯协议的数据处理方法、存储介质和电子设备。
背景技术
在目前使用串口通讯技术的设备当中,串口通讯一是采用周期性重复发送的方式,即发送方周期性重复发送必要的数据,接收方重复接收数据并实时更新所需的内容。如申请号“202010481430.5”一种基于FreeRTOS的串行通信数据同步方法,该专利公开了根据数据通信协议先进行帧头的判断,然后查询帧头其他字节校验与校验码校验的判断,校验通过则数据同步成功,否则数据同步失败。而在串口通讯过程中,数据截断和数据出现乱码是一种常见现象,即接收方单次接收到的数据可能并不完整或出现多余乱码,校验失败导致丢包,数据更新的实时性有所下降。
二是采用一问一答的形式进行通讯,等待应答,若等待超时则重新发送,此种通讯方式确保了数据一定会送达,但仍然存在因数据截断和出现乱码现象导致的效率低问题。所以需要对现有技术进一步优化以提升通讯效率和准确性。
发明内容
为了克服现有技术中的问题,本发明的目的在于提供一种基于串口通讯协议的数据处理方法,有效处理串口通讯过程中发生的数据截断现象和数据乱码现象,提升通讯效率。
为实现上述目的,本发明提供一种基于串口通讯协议的数据处理方法,包括以下步骤:
步骤1:对串口通讯的两端进行串口初始化操作;
步骤2:当前数据发送方按照通讯协议以帧格式组建数据帧并发送,所述帧格式依次包含帧头、帧类型、帧长度、数据内容和校验位;
步骤3:当前数据接收方将接收到的数据帧所有字节按照接收顺序存储在全局数组中,并更新全局数组的计数变量;
步骤4:对全局数组中的所有字节遍历查询符合通讯协议的帧头,通过帧头位置获取帧数据进行校验,若数据帧校验通过,则将完整可靠的可用数据帧输出至业务进程处理,若数据帧校验未通过,则将未通过校验的异常数据帧暂存全局数组内;
步骤5:对全局数组内所有字节进行遍历查询校验后,将可用数据帧及可用帧之前的所有字节从全局数组中删除,若全局数组内有剩余未被删除的字节,则将剩余字节移动至数组开头的位置,更新计数变量,数据接收方等待将下一次接收数据帧拼接至剩余字节结尾后方;
步骤6:当前发送数据方重复步骤2不断封装并发送数据,当前数据接收方重复步骤3、4、5,不断接收并解析出符合通讯协议的数据。
进一步,步骤2中,帧头用于分辨一组数据帧的起始,固定格式0xAA55,固定占用2字节;
帧类型用于表示此帧为何种类型的帧,固定占用1字节;
帧长度用于表示从帧头至帧数据结束所占用字节数,固定占用1字节;所述帧数据用来携带数据信息内容,不固定占用字节数;
校验位是将帧数据内所有字节相加取低字节进行填充得到,用于保证一组帧数据的准确,固定占用1字节。
进一步,对数据帧进行校验的方法为:对符合通讯协议的数据帧首先确定帧头位置,然后获取帧长度字节信息确定该数据帧的结尾位置,最后取出校验位字节进行校验。
进一步,串口两端的通讯方式包含单工通讯,半双工通讯和全双工通讯。
本发明还在于提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现如上述任一项基于串口通讯协议的数据处理的方法。
本发明还在于提供一种电子设备,包括:存储器、处理器;所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现如上述任一项基于串口通讯协议的数据处理的方法。
本发明通过在串口通讯的过程中以通讯协议作为判断依据,以全局数组作为存储介质对多次发送的数据内容进行合理的拼凑和地毯式遍历处理,从而解决因串口通讯过程中数据截断和出现乱码导致的数据丢失问题,同时能提高接收方数据处理效率和准确性,又具备逻辑简单,高速,可靠性高的优势,其具备科学性,实用性,适应性强的优点。
附图说明
图1为本发明提供的基于串口通讯协议的数据处理方法;
图2 为本发明提供的符合通讯协议数据帧的格式结构图。
具体实施方式
本发明在于提供一种基于串口通讯协议的数据处理方法,其方法流程如图1所示,具体步骤为步骤:
步骤1:对串口通讯的两端进行串口初始化操作;
步骤2:当前数据发送方按照通讯协议以帧格式组建数据帧并发送,所述帧格式如图2所示,依次包含帧头、帧类型、帧长度、数据内容和校验位;
步骤3:当前数据接收方将接收到的数据帧所有字节按照接收顺序存储在全局数组中,并更新全局数组的计数变量;
步骤4:对全局数组中的所有字节遍历查询符合通讯协议的帧头,通过帧头位置获取帧数据进行校验,若数据帧校验通过,则将完整可靠的可用数据帧输出至业务进程处理,若数据帧校验未通过,则将未通过校验的异常数据帧暂存全局数组内;
步骤5:对全局数组内所有字节进行遍历查询校验后,将可用数据帧及可用帧之前的所有字节从全局数组中删除,若全局数组内有剩余未被删除的字节,则将剩余字节移动至数组开头的位置,更新计数变量,数据接收方等待将下一次接收数据帧拼接至剩余字节结尾后方;
步骤6:当前发送数据方重复步骤2不断封装并发送数据,当前数据接收方重复步骤3、4、5,不断接收并解析出符合通讯协议的数据。
为了更好地理解本发明,下面结合实施例一、实施例二对本发明的技术方案做进一步说明。
实施例一
步骤1:对串口通讯的两端进行串口初始化操作,串口两端的通讯方式包含单工通讯,半双工通讯和全双工通讯,本发明不限通讯模式,在本实施例中采用单一发送方与接收方的通讯方式。
步骤2:当前数据发送方按照通讯协议以帧格式组建帧内容并发送,帧格式为帧头+帧类型+帧长度+数据+校验位,帧头为固定两个字节[0xAA55];帧类型为一个字节,可根据需要进行自定义用以区分不同的数据;帧长度为一个字节,包含帧头至数据结束,不包含校验位字节;数据字长可变,帧长度所携带的信息与其保持一致即可;校验位处于最后为一个字节,校验方式为所有字节相加取低字节进行填充。
在本实施例中,当前数据发送方发送的数据帧序列为[0xAA 55 A8 0A 11 22 3344 55 66 16],[0xAA55]为帧头,[0xA8]为帧类型,[0x0A]为帧长度,[0x112233445566]为数据,[0x16]为校验位。
步骤3:当前数据接收方将接收到的数据帧所有字节按照接收顺序存储在全局数组中,并更新全局数组的计数变量。
所述全局数组为ARR[],所述计数变量为count, ARR[]中已有10个字节的内容,则count为10;将新接收到的数据存储在ARR[count]之后的位置,并更新计数变量count=count +新接收到的数据帧字节数。本实施例中新接收到的数据帧字节数为11,所述更新后计数变量count=21。
步骤4: 首先通过对全局数组从头进行遍历找寻帧头[0xAA55],然后获取本数据帧长度字节为[0x0A]确定该帧的结尾位置,最后取出校验位字节[0x16]进行校验,校验方式如步骤2 所述。该数据帧校验通过后,则将完整可靠的可用数据帧输出至业务进程处理。
步骤5:对全局数组内21字节进行遍历查询校验后,将可用数据帧及可用帧之前的所有字节从全局数组中删除,在本实施例中,所述数据帧被确认是符合通讯协议的可用数据帧,将所述数据帧所有字节包含全局数组内原有的10个字节全部删除,更新计数变量,此时count=0,数据接收方等待将下一次接收数据。
步骤6:当前发送数据方重复步骤2不断封装并发送数据,当前数据接收方重复步骤3、4、5,不断接收并解析出符合通讯协议的数据。
实施例二
本实施例在于提供一种基于串口通讯协议的数据处理方法。步骤1所实施例一相同,与实施例一不同的是,在步骤2中,本实施例中数据发送方先后发送第一数据帧和第二数据帧,第一数据帧序列为[0xAA 55 A8 07 11 22 33 14],第二数据帧序列为[0xAA 55A8 07 44 55 66 AD],其中第二数据帧发送过程中受到干扰出现数据截断的情况。
数据接收方所首先接收到的数据帧序列为[0xAA 55 A8 07 11 22 33 14 0xAA55 A8 07 44],全局数组为ARR[],计数变量为count,假设ARR[]中暂时没有字节的内容,则count为0;将新接收到的数据存储在ARR[count]之后的位置,并更新当前计数变量count= 13。
在步骤4中,本实施例对全局数组ARR[count]从头开始进行遍历找寻,首先找到符合通讯协议第一数据帧帧头[0xAA55],然后获取长度字节为[0x07]确定该帧的结尾位置,并取出校验位字节[0x14]进行校验。该数据帧校验通过后,则将完整可靠的可用数据帧输出至业务进程处理,则下一次遍历的位置该可用帧之后的字节,若未通过则遍历位置向后移动一个字节继续寻找帧头[0xAA55],直至找寻完所述全局数组ARR[count]中计数变量13个字节。当数据接收方找寻到第二数据帧的帧头[0xAA55],并获取数据长度为[0x07],但由于数据中断未获取到校验位,第二数据帧未能够通过校验,暂时存留至全局数组内。
在步骤5中,对全局数组内13个字节进行遍历查询校验后,将符合通讯协议的第一数据帧[0xAA 55 A8 07 11 22 33 14]从全局数组中删除,将剩余字节[0xAA 55 A8 0744]移动至数组开头的位置并更新计数变量,此时count = 5。
步骤6:当前发送数据方重复步骤2不断封装并发送数据,当前数据接收方重复步骤3、4、5,不断接收并解析出符合通讯协议的数据。
重复步骤2:当前数据发送发再次发送被截断的第二数据帧后半部分字节,序列为[55 66 AD]。
重复步骤3:数据接收方将其拼接至剩余字节[0xAA 55 A8 07 44]结尾后方,此时全局数据内字节序列为[0xAA 55 A8 07 44 55 66 AD],并更新计数变量count = 8。
重复步骤4:对全局数组内8个字节从头进行遍历校验,确认第二数据帧[0xAA 55A8 07 44 55 66 AD] 符合通讯协议。
重复步骤5:将第二数据帧输出至业务进程处理并从全局数组内删除,再次更新技术变量,此时count=0。
Claims (6)
1.一种基于串口通讯协议的数据处理方法,其特征在于,包括以下步骤:
步骤1:对串口通讯的两端进行串口初始化操作;
步骤2:当前数据发送方按照通讯协议以帧格式组建数据帧并发送,所述帧格式依次包含帧头、帧类型、帧长度、数据内容和校验位;
步骤3:当前数据接收方将接收到的数据帧所有字节按照接收顺序存储在全局数组中,并更新全局数组的计数变量;
步骤4:对全局数组中的所有字节遍历查询符合通讯协议的帧头,通过帧头位置获取帧数据进行校验,若数据帧校验通过,则将完整可靠的可用数据帧输出至业务进程处理,若数据帧校验未通过,则将未通过校验的异常数据帧暂存全局数组内;
步骤5:对全局数组内所有字节进行遍历查询校验后,将可用数据帧及可用帧之前的所有字节从全局数组中删除,若全局数组内有剩余未被删除的字节,则将剩余字节移动至数组开头的位置,更新计数变量,数据接收方等待将下一次接收数据帧拼接至剩余字节结尾后方;
步骤6:当前发送数据方重复步骤2不断封装并发送数据,当前数据接收方重复步骤3、4、5,不断接收并解析出符合通讯协议的数据。
2.根据权利要求1所述一种基于串口通讯协议的数据处理方法,其特征在于,在所述步骤2中,所述帧头用于分辨一组数据帧的起始,固定格式为0xAA55,固定占用2字节;
所述帧类型用于表示此帧为何种类型的帧,固定占用1字节;
所述帧长度用于表示从帧头至帧数据结束所占用字节数,固定占用1字节;
所述帧数据用来携带数据信息内容,不固定占用字节数;
所述校验位是将帧数据内所有字节相加取低字节进行填充得到,用于保证一组帧数据的准确,固定占用1字节。
3.根据权利要求1所述一种基于串口通讯协议的数据处理方法,其特征在于,在所述步骤4中,所述对数据帧进行校验的方法为:对符合通讯协议的数据帧首先确定帧头位置,然后获取帧长度字节信息确定该数据帧的结尾位置,最后取出校验位字节进行校验。
4.根据权利要求1所述一种基于串口通讯协议的数据处理方法,其特征在于,在所述步骤1中,所述串口两端的通讯方式包含单工通讯,半双工通讯和全双工通讯。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-4中任一项所述的方法。
6.一种电子设备,其特征在于,包括:存储器、处理器;所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311812558.5A CN117743230A (zh) | 2023-12-27 | 2023-12-27 | 一种基于串口通讯协议的数据处理方法、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311812558.5A CN117743230A (zh) | 2023-12-27 | 2023-12-27 | 一种基于串口通讯协议的数据处理方法、存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117743230A true CN117743230A (zh) | 2024-03-22 |
Family
ID=90259129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311812558.5A Pending CN117743230A (zh) | 2023-12-27 | 2023-12-27 | 一种基于串口通讯协议的数据处理方法、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117743230A (zh) |
-
2023
- 2023-12-27 CN CN202311812558.5A patent/CN117743230A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0195598A2 (en) | Universal protocol data receiver | |
WO2018171641A1 (zh) | 网络管理信息的收发方法、装置、发送设备和接收设备 | |
CN109257143B (zh) | 用于有长度限制的网络传输协议中分片传输数据包的方法 | |
CN107682311B (zh) | 一种硬件实现的多链接tcp数据重组系统 | |
US11050665B2 (en) | Data transmission method, apparatus, transmitting end, receiving end and system | |
US9565251B2 (en) | Method and apparatus to reduce FLASH memory device programming time over a C.A.N. bus | |
CN112929455B (zh) | 基于udp的数据传输方法、装置、设备和可读存储介质 | |
CN113392060A (zh) | 一种通用的串口数据接收处理方法 | |
CN114584560A (zh) | 一种分片帧重组方法及装置 | |
CN112436998A (zh) | 一种数据传输方法及电子设备 | |
CN104967498A (zh) | 一种基于历史的卫星网络数据包压缩传输方法 | |
CN112737995B (zh) | 以太网帧的处理方法、装置、设备及存储介质 | |
CN113609518A (zh) | 一种基于关联容器map的报文协议超时重发方法及系统 | |
CN117743230A (zh) | 一种基于串口通讯协议的数据处理方法、存储介质和电子设备 | |
WO2023098430A1 (zh) | 一种数据包的处理方法、通信装置及通信系统 | |
CN111770055A (zh) | 一种应用于电能表的多协议通讯帧快速判别方法 | |
CN106789440B (zh) | 一种ip包包头检测方法及装置 | |
CN114579490A (zh) | 一种数据传输方法、装置、电子设备和存储介质 | |
WO2003079612A1 (en) | Method and apparatus for direct data placement over tcp/ip | |
CN108733598A (zh) | 一种数据传输方法和数据传输装置 | |
CN105843759B (zh) | 一种基于hdlc的多串口通信方法 | |
US11979479B1 (en) | Packet sorting and reassembly circuit module | |
US20240236212A9 (en) | Packet sorting and reassembly circuit module | |
CN116192341B (zh) | 运载火箭遥测系统pcm/fm码流传输方法 | |
US20230403219A1 (en) | High speed data packet pcap capture and storage with error detection-correction |
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 |