[发明专利]一种定长单字节格式报文协议下串口接收预处理方法有效
| 申请号: | 201710453289.6 | 申请日: | 2017-06-15 |
| 公开(公告)号: | CN107395565B | 公开(公告)日: | 2020-03-17 |
| 发明(设计)人: | 侯师;李正新;王琳;周军;马力超 | 申请(专利权)人: | 北京机械设备研究所 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06 |
| 代理公司: | 北京天达知识产权代理事务所(普通合伙) 11386 | 代理人: | 庞许倩;马东伟 |
| 地址: | 100854 北京市海淀区永*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 定长 字节 格式 报文 协议 串口 接收 预处理 方法 | ||
本发明涉及一种定长单字节格式报文协议下串口接收预处理方法,该方法对单字节头、单字节校验、单字节尾的定长串口数据通信,设计了一种串口数据接收预处理架构,作用于底层串口数据接收之后,应用层根据协议处理之前,对于符合协议约束的数据,送入报文解析函数接口,对于不符合协议约束的数据,进行逐字节的剔除。若存在剩余不足一帧报文的数据,仍可将其与下一组数据,进行组包后,再次逐字节判别处理,有效的使用了每个串口数据,使得串口数据接收使用率达到了100%,避免了误丢包现象的发生,显著提高了产品和系统的可靠性,间接减少了产品和系统维护等人力物力成本,创造了一定的经济效益。
技术领域
本发明涉及串口接收技术领域,尤其涉及一种定长单字节格式报文协议下串口接收预处理方法。
背景技术
在产品设计中,串口数据通信是普遍采用的一种信息交互方式。然而在其通信过程中,对于接收数据不以设计者理想的整包接收的情况,经常会出现有效数据丢失的现象;对于多于一包数据接收的情况,会出现舍弃一包外多余部分数据的现象。对于高可靠性要求的产品和系统来说,每包数据都是至关重要的,丢失数据这是不能容忍的故障。而目前,在应用层设计中,并没有完整、规范、通用可移植的方法。
发明内容
鉴于上述的分析,本发明旨在提供一种定长单字节格式报文协议下串口接收预处理方法,可以实现串口数据接收后对接收的数据与协议报文格式进行比对和预处理,防止出现有效数据丢失的现象。
本发明的目的主要是通过以下技术方案实现的:
一种定长单字节格式报文协议下串口接收预处理方法的具体实现步骤如下:
步骤一、接收串口数据;
步骤二、检查在本次接收数据之前,是否存在不足一包协议字节数的剩余数据,若存在,则将所述剩余数据与本次接收到的数据进行合并组成一个数据包;若无,则本次接收到数据作为一个单独的数据包;
步骤三、按照协议约束对所述数据包进行判别处理,当符合协议约束时,则进入下一步处理;当不符合协议约束时,则返回步骤一;
步骤四、判别字节头是否符合要求,若不满足,则将首字节移除,返回步骤三;若满足,则进行下一步处理;
步骤五、判别字节尾是否符合要求,若不满足,则将首字节移除,返回步骤三;若满足,则进行下一步处理;
步骤六、判别校验和是否符合要求,若不满足,则将首字节移除,返回步骤三;若满足,则将所述报文协议规定的字节长度的数据发送用于后续处理,发送完成后,移除上述报文协议规定的字节长度的数据,返回步骤三。
进一步地,步骤五中根据报文协议规定的字节长度在数据包中确定字节尾。
进一步地,步骤一中串口接收数据的工作方式为阻塞形式。
进一步地,通过剩余字节个数变量来判断是否存在不足一包协议字节数的数据,所述剩余字节个数变量初始化为0,若在一次接收处理后仍有剩余字节数,该变量值被刷新为该次剩余字节数的个数。
进一步地,步骤二中所述数据的合并方式是按照发送方的字节数据顺序组包。
进一步地,步骤三中所述协议约束为定长报文约定的数据长度。
进一步地,所述数据移位是以存放数据的缓存数组的下标为索引进行数据移位。
进一步地,所述校验和为报文校验字,为报文内容N个字节内容的总和。
进一步地,所述步骤四至六均通过缓存数组移位的方式将首字节移除。
本发明有益效果如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京机械设备研究所,未经北京机械设备研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710453289.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:互联网预选机动车号牌的防抢号方法和系统
- 下一篇:认证方法及装置





