[发明专利]一种面向离散数据流的可靠异步通信方法有效
申请号: | 201710256778.2 | 申请日: | 2017-04-19 |
公开(公告)号: | CN107135049B | 公开(公告)日: | 2020-08-14 |
发明(设计)人: | 高飞;崔宇;刘思东;邱枫;隋强强;丁万兵;叶绍凯;李慧;张磊;仲宇 | 申请(专利权)人: | 北京航天自动控制研究所;中国运载火箭技术研究院 |
主分类号: | H04L1/00 | 分类号: | H04L1/00;H04L29/06 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 庞静 |
地址: | 100854 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 离散 数据流 可靠 异步 通信 方法 | ||
1.一种面向离散数据流的可靠异步通信方法,其特征在于通过下述步骤实现:
(1)定义数据的结构化协议:
帧头 数据区 校验区 数据长度 帧尾
发送顺序为从帧头到帧尾,其中:帧头至少包含2字节,每个字节至少包含4组以上采用不同数值的相邻位;数据区由1~166个有效字节构成,用于传输需要传输的数据;校验区包含2个字节,前面字节固定为0,后面字节为校验码;数据长度由1个字节构成,表示数据区的字节的个数,帧尾至少包含2字节,每个字节至少包含4组以上采用不同数值的相邻位,并保证与帧头不同;将帧尾定义为整个数据帧中一个唯一的标识符,以收到真正的帧尾作为收到一个完整数据帧的一个重要标志;数据长度包含有效数据和插入的转义字符,有效范围为1~249,其中有效数据最多166字节;帧尾由2字节构成,用0x5A,0xFE表示,0x5A在前,0xFE在后;所述的转义字符为0x00;
(2)发送方按照上述定义的数据结构化协议对离散的数据流进行组帧,以查询或中断方式将整帧数据发出;
(3)接收方以查询或中断方式将接收到的数据帧存入缓冲队列中,然后根据数据的结构化协议对缓冲队列中的数据帧进行提取和解析,从而获取数据帧中的有效数据;
所述提取和解析步骤如下:
(3.1)从缓冲队列头开始向后,遍历每个元素,直到找到一个数据帧帧尾;
(3.2)从帧尾位置沿队列向前移动一个字节找到数据长度字段以及校验区;
(3.3)根据数据长度计算出帧头所在的位置,并沿队列向前找到帧头位置的队列元素值,校验帧头的正确性,若正确,则转(3.4),否则将帧尾之前的所有数据作为错误数据进行处理,并从缓冲队列中删除,转步骤(3.5);
(3.4)根据帧头的位置获取缓冲队列中紧随其后的数据区的数据,根据数据区的数据计算校验码,并与(3.2)中校验区中的校验码进行校核,若二者一致,则提取数据区内的数据并剔除转义字符,并将帧头至帧尾所有数据从缓冲队列中删除,完成本数据帧的提取;否则,将帧尾之前的所有数据作为错误数据进行处理,并从缓冲队列中删除,转步骤(3.5);
(3.5)判断缓冲队列是否为空,若不为空,则转步骤(3.1),否则处理结束。
2.根据权利要求1所述的方法,其特征在于:步骤(2)中的组帧步骤如下:
(2.1)根据定义的数据结构化协议确定本次通信过程中的帧头及帧尾以及数据区的有效字节个数,将离散数据流中的每个数据按顺序依次排列到帧头之后,若数据中出现与帧尾一致的数据,则在该数据前插入一个转义字符,直至数据区有效字节排列完毕;
(2.2)根据数据区内的数据确定校验码,填写校验区;
(2.3)根据数据区的有效字节个数、转义字符的个数计算数据长度并占用1个字节;
(2.4)在数据长度之后排列(2.1)中确定的帧尾,得到一个数据帧。
3.根据权利要求1所述的方法,其特征在于:步骤(3)中对缓冲队列中的数据帧进行提取和解析,获取数据帧中的有效数据必须识别一个完整合格帧,识别完整合格帧必须同时具备如下条件:
a)收到合格的帧尾标识;
b)收到帧头标识;
c)校验码正确。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航天自动控制研究所;中国运载火箭技术研究院,未经北京航天自动控制研究所;中国运载火箭技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710256778.2/1.html,转载请声明来源钻瓜专利网。