一种通用异步串行数据解析方法及装置制造方法及图纸

技术编号:32608778 阅读:19 留言:0更新日期:2022-03-12 17:33
本发明专利技术涉及一种通用异步串行数据解析方法及装置,方法包括:建立异步串行数据的接收参数化配置表,根据从通讯接收端口待读入数据的数据格式,对参数化配置表进行配置;从通讯接收端口读入数据,移位缓存入接收缓存区中,同时记录存入接收缓存区内的数据长度;当存入接收缓存区内的数据长度大于参数化配置表中配置的接收报文的判断长度时,对接收缓存区中的数据进行处理;若缓存区中数据为卫星数据,则进行卫星报文解析处理;若缓存区中数据为异步串行数据,则按照参数化配置表中异步串行数据格式配置参数,进行报文解析处理。本发明专利技术支持多种典型格式的报文数据解析;对于定长、变长报文均支持解析,支持对缓存区数据进行遍历多帧处理。多帧处理。多帧处理。

【技术实现步骤摘要】
一种通用异步串行数据解析方法及装置


[0001]本专利技术涉及通信
,尤其是一种通用异步串行数据解析方法及装置。

技术介绍

[0002]在存在多个串行低速通讯端口的嵌入式系统中,各个端口的接口特性定义通常不一样,因此软件在解析协议报文时要针对每个端口设计不同的接收报文处理逻辑,这样导致整个系统软件比较庞大和臃肿,也不利于针对后续对协议解析进行维护和管理。

技术实现思路

[0003]鉴于上述的分析,本专利技术旨在提供一种通用异步串行数据解析方法及装置;解决多端口多种协议格式情况下,实时解析异步串行数据问题。
[0004]本专利技术公开了一种通用异步串行数据解析方法,包括以下步骤:
[0005]建立异步串行数据的接收参数化配置表,根据从通讯接收端口待读入数据的数据格式,对参数化配置表进行配置;所述参数化配置表包括对NAME0183协议制式卫星数据和多种异步串行数据格式的配置参数;
[0006]从通讯接收端口读入数据,并将读入的数据移位缓存入接收缓存区中,同时记录存入接收缓存区内的数据长度;
[0007]当存入接收缓存区内的数据长度大于参数化配置表中配置的接收报文的判断长度时,对接收缓存区中的数据进行处理;所述处理包括,若缓存区中数据的格式为NAME0183协议制式卫星数据,则进行卫星报文解析处理;若缓存区中数据为某一种异步串行数据,则按照参数化配置表中对应的异步串行数据格式配置参数,确定缓存区中数据的报文格式,查找报文中报文头的个数和报文头索引位置,解析得到报文数据。
[0008]进一步地,所述参数化配置表中报文参数配置根据要从通讯接收端口读入的数据格式进行配置,共包括报文头的判据配置、接收报文的判断长度配置、报文格式配置、报文长度索引配置、报文接收解析回调函数配置和报文头判断回调函数配置。
[0009]进一步地,根据要从通讯接收端口读入的数据格式,在所述参数化配置表中将所述报文数据的第一个字节、第二个字节或第三个字节配置为报文头的判据。
[0010]进一步地,根据要从通讯接收端口读入的数据格式,在所述参数化配置表中将所述报文格式配置成以下报文格式的一种;
[0011]第一种:报文头+命令字+数据+校验和定义;
[0012]第二种:报文头+数据+校验和;
[0013]第三种:报文头+长度+命令字+数据+校验;
[0014]第四种:卫星数据NAME0183协议制式。
[0015]进一步地,根据要从通讯接收端口读入的数据格式,在所述参数化配置表中将所述报文长度索引配置成以下四种格式的一种;
[0016]第一种:报文长度固定、报文中含有报文长度;
[0017]第二种:位置索引位于报文第二个字节、报文中含有报文长度;
[0018]第三种:位置索引位于报文第三个字节、报文中含有报文长度;
[0019]第四种:位置索引位于报文第四个字节、报文中含有报文长度。
[0020]进一步地,从通讯接收端口读入数据时,数据缓冲区的剩余空间不能够存储本次接收的数据,首先清除接收缓存区内数据,并将接收数据大小清0,然后缓存当前接收的数据。
[0021]进一步地,对收缓存区内缓存的异步串行数据进行解析时,根据参数化配置表中配置的报文格式、报文头固定字节和报文头判断回调函数,依次判断接收缓存区内数据的报文头,同时记录报文头的个数和报文头的索引位置,当查找的报文个数不大于配置的处理报文的最大个数时,继续查找报文头,否则停止查找;并根据查找的报文头,对数据进行解析处理。
[0022]进一步地,依据报文头个数分三种情况数据解析处理,具体为:
[0023]0个报文头,清空当前接收缓存区和清零接收计数;
[0024]1个报文头,依据报文格式获取报文长度,如果接收缓存区存在一帧完成的报文,则采用解析回调函数解析报文,同时清空当前接收缓存区和清零接收计数;如果缓存区内报文不够解析,则将从报文头位置开始的报文移动至接收缓存区的开始,同时更新报文计数;
[0025]多个报文头,依次依据报文格式获取报文长度,查看两个报文头之间的数据个数是否与报文长度相等,如相等则采用解析回调函数解析报文,否则移动至下一个报文头进行处理,直到最后一个报文。
[0026]进一步地,对NAME0183协议制式卫星数据的解析包括以下步骤:
[0027]轮循接收缓存区查找

$

报文头,同时记录报文头的个数和报文头的索引位置,当查找的报文个数不大于配置的处理报文的最大个数时,继续查找报文头,否则停止查找;
[0028]轮循查找报文尾,当报文尾序号大于对应的报文头序号,记录报文尾的个数和报文尾的索引位置,同时调用回调函数解析报文,如果报文尾个数超出了报文头个数则停止查找报文尾。
[0029]如果未找到报文头,则清空当前接收缓存区和清零接收计数;如果未找到报文尾而有报文头,则从最后一个报文头位置开始的报文移动至接收缓存区的开始,同时更新报文计数。
[0030]本专利技术还公开了一种根据如上所述的通用异步串行数据解析方法的装置,包括参数化配置表模块、接收缓存区模块和数据处理模块;
[0031]所述参数化配置表模块,用于将所述接收缓存区模块和数据处理模块中的处理参数配置成与待读入数据的数据格式相匹配的参数;包括对NAME0183协议制式卫星数据和多种异步串行数据格式的参数进行配置;
[0032]所述接收缓存区模块,用于缓存从通讯接收端口读入的数据,记录存入接收缓存区内的数据长度;
[0033]所述数据处理模块与所述参数化配置表模块和所述接收缓存区模块分别连接,从所述参数化配置表模块获取配置的参数信息,从所述接收缓存区模块接收所述存入接收缓存区内的数据长度;当存入接收缓存区内的数据长度大于参数化配置表中配置的接收报文
的判断长度时,对接收缓存区中的数据进行处理;若缓存区中数据的格式为NAME0183协议制式卫星数据,则进行卫星报文解析处理;若缓存区中数据为某一种异步串行数据,则按照参数化配置表中对应的异步串行数据格式配置参数,确定缓存区中数据的报文格式,查找报文中报文头的个数和报文头索引位置,解析得到报文数据。
[0034]本专利技术的有益效果如下:
[0035]本专利技术通过对接收参数化配置表中参数的配置,实现了对异步串行数据的实时解析;支持多种典型格式(包括NAME0183格式)的报文数据解析;对于定长、变长报文均支持解析;具有数据缓存区设计,支持对缓存区数据进行遍历多帧处理。
附图说明
[0036]附图仅用于示出具体实施例的目的,而并不认为是对本专利技术的限制,在整个附图中,相同的参考符号表示相同的部件。
[0037]图1为本实施例一中的通用异步串行数据解析方法流程图;
[0038]图2为本实施例二中的通用异步串行数据解析装置原理示意图。
具体实施方式
[0039]下面结合附图来具体描述本专利技术的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通用异步串行数据解析方法,其特征在于,包括以下步骤:建立异步串行数据的接收参数化配置表,根据从通讯接收端口待读入数据的数据格式,对参数化配置表进行配置;所述参数化配置表包括对NAME0183协议制式卫星数据和多种异步串行数据格式的配置参数;从通讯接收端口读入数据,并将读入的数据移位缓存入接收缓存区中,同时记录存入接收缓存区内的数据长度;当存入接收缓存区内的数据长度大于参数化配置表中配置的接收报文的判断长度时,对接收缓存区中的数据进行处理;所述处理包括,若缓存区中数据的格式为NAME0183协议制式卫星数据,则进行卫星报文解析处理;若缓存区中数据为某一种异步串行数据,则按照参数化配置表中对应的异步串行数据格式配置参数,确定缓存区中数据的报文格式,查找报文中报文头的个数和报文头索引位置,解析得到报文数据。2.根据权利要求1所述的通用异步串行数据解析方法,其特征在于,所述参数化配置表中报文参数配置根据要从通讯接收端口读入的数据格式进行配置,共包括报文头的判据配置、接收报文的判断长度配置、报文格式配置、报文长度索引配置、报文接收解析回调函数配置和报文头判断回调函数配置。3.根据权利要求2所述的通用异步串行数据解析方法,其特征在于,根据要从通讯接收端口读入的数据格式,在所述参数化配置表中将所述报文数据的第一个字节、第二个字节或第三个字节配置为报文头的判据。4.根据权利要求3所述的通用异步串行数据解析方法,其特征在于,根据要从通讯接收端口读入的数据格式,在所述参数化配置表中将所述报文格式配置成以下报文格式的一种;第一种:报文头+命令字+数据+校验和定义;第二种:报文头+数据+校验和;第三种:报文头+长度+命令字+数据+校验;第四种:卫星数据NAME0183协议制式。5.根据权利要求4所述的通用异步串行数据解析方法,其特征在于,根据要从通讯接收端口读入的数据格式,在所述参数化配置表中将所述报文长度索引配置成以下四种格式的一种;第一种:报文长度固定、报文中含有报文长度;第二种:位置索引位于报文第二个字节、报文中含有报文长度;第三种:位置索引位于报文第三个字节、报文中含有报文长度;第四种:位置索引位于报文第四个字节、报文中含有报文长度。6.根据权利要求1-5任一项所述的通用异步串行数据解析方法,其特征在于,从通讯接收端口读入数据时,数据缓冲区的剩余空间不能够存储本次接收的数据,首先清除接收缓存区内数据,并将接收数据大小清0,然后缓存当前接收的数据。7.根据权利要求6所述的通用异步串行数据解析方法,其特征在于,对收缓存区内缓存的异步串行数据进行解析时,根据参数化配置表中配置的报文格式、报文头固定字节和报文头判断回调函数,依次判断接收缓存区内数据的报文头,同时记录报文头的个数...

【专利技术属性】
技术研发人员:高文劭陈炤屹
申请(专利权)人:北京机械设备研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1