[发明专利]一种通用的串口数据接收处理方法在审
申请号: | 202110665882.3 | 申请日: | 2021-06-16 |
公开(公告)号: | CN113392060A | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 赵昶宇 | 申请(专利权)人: | 天津津航计算技术研究所 |
主分类号: | G06F13/42 | 分类号: | G06F13/42 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 李晶尧 |
地址: | 300000 天津市*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通用 串口 数据 接收 处理 方法 | ||
本发明涉及一种通用的串口数据接收处理方法,属于串口通讯技术领域;串口数据的格式为:数据帧头+有效数据+数据校验+数据帧尾;在destiBuff中寻找正确的数据帧头;判断数据帧尾是否正确;当数据帧尾正确,判断数据校验是否正确;当数据校验正确时,判断接收的该串口数据正确,对该串口数据中的有效数据进行串口通讯协议处理,并在destiBuff中删除当前数据帧尾及之前的所有字节数据;并将当前数据帧尾下一个字节开始的数据作为destiBuff最早接收的数据,重新寻找正确的数据帧头;本发明能够提高串口接收程序的可靠性、健壮性和通用性,使得程序能够同时正确接收处理多个报文长度、数据帧头和数据帧尾均不相同的串口报文。
技术领域
本发明属于串口通讯技术领域,涉及一种通用的串口数据接收处理方法。
背景技术
串行接口是计算机应用系统中的常用接口,串口通讯是指外设和计算机之间通过数据信号线、地线和控制线等,按位进行传输数据的一种通讯方式。通常,串口通讯协议中约定的每一包串口数据由数据帧头、有效数据、数据校验和以及数据帧尾构成。对接收到的串口数据,需要解析并判断数据帧头、有效数据、数据校验和和数据帧尾。
目前,业内已有的接收串口数据方法主要分为以下两种:
(1)根据接收的字节长度和通讯协议内容接收和解析串口数据
该方法对接收到的串口数据以“一个字节”为单位进行处理,每收到一个字节,将接收计数加一。当接收的字节长度满足协议中的某种报文的数据帧头时进行相应处理。该方法的优点是能够实现对串口数据报文的正确解析,缺点是当串口报文的种类较多且报文长度各不相同时,程序结构非常复杂;而且一旦串口通讯协议发生改变,程序需要改动的地方很多,可维护性不强。
(2)利用状态机接收和解析串口数据
该方法将串口接收分为好几个字符状态机,它的最大优点是简化了协议的实现难度,解析单一类型报文时具有较高的容错能力;缺点是当串口报文的种类较多且报文长度各不相同时,程序设计逻辑比较繁琐,该方法也不具备通用性,一旦串口通讯协议发生改变,就需要改变状态机。
串口接收程序的可靠性、健壮性和通用性不高,程序无法同时正确接收处理多个报文长度、数据帧头和数据帧尾均不相同的串口报文。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提出一种通用的串口数据接收处理方法,能够提高串口接收程序的可靠性、健壮性和通用性,使得程序能够同时正确接收处理多个报文长度、数据帧头和数据帧尾均不相同的串口报文。
本发明解决技术的方案是:
一种通用的串口数据接收处理方法,包括如下步骤:
步骤一、设定本次总共接收到的串口数据长度为dataLength;设定存储接收到的串口数据缓冲区为sourceBuff;设定对接收到的串口数据进行解析处理的缓冲区为destiBuff;设定当前处理的串口数据长度为pu8MessLength,且pu8MessLength的初始值为0;
步骤二、将sourceBuff中的串口数据传输至destiBuff进行解析处理,每处理一个字节,pu8MessLength的计数加一;串口数据的格式为:数据帧头+有效数据+数据校验+数据帧尾;
步骤三、在destiBuff中寻找正确的数据帧头;
步骤四、提取正确数据帧头对应串口数据的数据帧尾内容,并判断数据帧尾是否正确;当数据帧尾正确,进入步骤五;当数据帧尾不正确,返回步骤三,重新寻找正确的数据帧头;
步骤五、判断数据校验是否正确;当数据校验错误时,返回步骤三,重新寻找正确的数据帧头;当数据校验正确时,判断接收的该串口数据正确,进入步骤六;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110665882.3/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置