一种基于字段描述的通信协议解析方法和系统技术方案

技术编号:25842741 阅读:22 留言:0更新日期:2020-10-02 14:21
本发明专利技术提供一种基于字段描述的通信协议解析方法和系统,将通信协议数据帧分解为一系列的字段描述,基于字段描述,对输入的通信报文由先至后的每个字节数据,对照字段描述由先至后进行解析,每个字段数据解析包含如下步骤:首先计算存在条件判断公式;依据字段描述的引用定义属性,获取所引用字段的具体属性参数;初始化当前字段的重复次数计数器为字段的重复次数值;判断字段的数据类型,如果为字段块类型,则采用嵌套方式,执行每个子字段的解析;如果不为字段块类型,则依据字段的数据长度获取通信报文中的数据;计算协议识别判断条件的公式,如果结果错误,则输出解析错误提示;如果结果正确,则执行下一步;输出当前字段的字符串解析结果。

【技术实现步骤摘要】
一种基于字段描述的通信协议解析方法和系统
本专利技术涉及数字通信
,具体涉及一种基于字段描述的通信协议解析方法和系统。
技术介绍
大量不同的工业现场为了满足数据采集和通信需要,定义和采用了多种多样的通讯协议标准。若要在装置和设备中实现这些协议,需要投入大量的编程实现工作量。尤其是基于编程语言实现时,基于C、Java等编程语言开发和调试复杂,工作量大。在协议发生修改升级时,需要走读和查看代码,进一步编程和调试测试。中国专利技术专利《一种可配置的通信协议识别与解析处理系统》(专利号:201410012234.8),提出了一种可配置的通信协议识别与解析处理系统。参照图1,该系统通过协议识别器和解析分析器来建立各协议的识别和解析的规范,然后根据提取到的操作码参数去操作处理器,执行对数据的查询、访问处理,从数据操作处理器中提取操作信息去执行相应操作,把相应的数据操作状态和结果返回给协议识别器或解析分析器,协议识别器输出协议识别结果,解析分析器对协议识别器已识别的通信数据作解析处理并输出解析结果。该系统通过重新配置相应的协议识别器和解析分析器的参数,无需改动协议识别与解析工具本身,从而实现了协议的可扩展性。但是,该系统采用的协议配置是基于数据操作指令的方式,这些数据操作指令包括读取、比较、转换、显示等。这些操作指令虽能完成协议解析功能,但并非协议本质架构的描述,对通信协议的配置编辑和分析解析处理非常繁琐,不方便掌握和使用。
技术实现思路
本专利技术为解决上述技术问题,提供了一种基于字段描述的通信协议解析方法和系统,改用基于字段的属性描述,进而基于该描述方式实现依据字段属性的参数化处理流程完成协议解析的新处理方式。本专利技术采用的技术方案如下:本专利技术所提出一种于字段描述的通信协议解析方法,将通信协议数据帧分解为一系列的字段描述,每个字段描述包含字段名称、存在条件、数据类型、数据长度、重复次数、大小端格式、注释、协议识别判断条件和引用定义属性;其中,存在条件包含存在条件判断公式,当存在条件判断公式返回正确时该字段存在,否则该字段不存在;注释对应该字段实际接收数据的输出显示格式;协议识别判断条件包含对协议标准参数的判断公式,当对协议标准参数的判断公式返回真时所接收的数据符合当前协议标准参数限制,否则所接收的数据不符合当前协议标准;当字段的数据类型为字段块类型时,该字段由后续括号中的一组若干子字段描述组成;引用定义属性的参数输入为已经定义的字段、字段块,用于表示当前字段和已经定义的字段、字段块结构相同;基于这些字段描述,对输入的通信报文由先至后的每个字节数据,对照字段描述由先至后进行解析,具体每个字段数据解析包含如下步骤:步骤1,首先计算存在条件判断公式,如果结果返回错误,则当前字节数据不读取,获取下一字段属性进行解析,仍然执行本步;如果存在条件判断公式返回正确,则执行下一步;步骤2,依据字段描述的引用定义属性,获取所引用字段的具体属性参数;步骤3,初始化当前字段的重复次数计数器为字段的重复次数值;步骤4,判断字段的数据类型,如果数据类型为字段块类型,则采用嵌套方式,从上述步骤1开始执行每个子字段的解析,解析完成后返回字段块的总数据长度;如果数据类型不为字段块类型,则依据字段的数据长度获取通信报文中的数据,当大小端格式为小端时将字节顺序由后至先排序组合,当大小端格式为大端时将字节顺序由先至后排序组合,获得字段数据;步骤5,计算协议识别判断条件的公式,如果结果错误,则输出解析错误提示,并结束报文解析;如果结果正确,则执行下一步;步骤6,将步骤4获得的字段数据依据注释属性定义的输出显示格式,输出当前字段的字符串解析结果;步骤7,当前字段的重复次数计数器减1计数,如果重复次数计数器不为0,则转至步骤4继续执行,否则执行下一步;步骤8,如果当前解析字段不是最后一个字段,则返回步骤1继续解析下一个字段,否则解析结束。本专利技术所提出一种基于字段描述的通信协议解析系统,该系统包含如下部分:通信报文接收接口,将输入的通信信号转换为通信报文;数据缓存区,将来自通信报文接收接口的通信报文存储下来,供解析处理部分读取每个字段数据;协议配置文件,按照由先至后顺序记录通信协议的字段描述,供解析处理部分读取每个字段描述;解析处理部分,依据每个字段表述分析和获取数据缓存区提供的每个字段数据,并依据字段的注释属性,输出每个字段的解析字符串结果。本专利技术的有益效果:本专利技术能够基于字段属性描述实现对通信报文的流程化解析处理过程,这种通信协议的字段描述方式是对协议本质属性的归纳,不依赖程序语言。本专利技术的解析方法和系统,不再采用已有解析处理的数据操作,而采用基于存在条件、数据类型、数据长度、重复次数、大小端格式的处理流程;不再采用协议识别处理,而采用基于协议识别判断条件的公式处理;最终,本专利技术解析字符串的输出也是通过对注释属性的处理执行所完成。由此,本专利技术的解析处理能够通过对每个字段属性参数逐一处理,完成对报文的解析过程。附图说明图1是相关技术中一种可配置的通信协议识别与解析处理系统的原理框图;图2是本专利技术实施例基于字段描述的通信协议解析方法的处理流程;图3是本专利技术实施例基于字段描述的通信协议解析系统结构图;图4是本专利技术实施例实现的电脑软件对通信报文的解析结果。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。专利技术实施例基于字段描述的通信协议解析方法的处理流程如图2所示。本专利技术的一个具体实施方式所提出一种基于字段描述的通信协议解析方法,其中通信协议的描述和编辑方法,将通信协议数据帧分解为一系列的字段描述,这些字段描述通过XML语言中的元素属性关键字及其赋值完成定义。每个字段的元素属性描述包括:字段名称对应FieldName属性。例如FieldName="前导码",定义的字段名称为“前导码”。该属性是字段的一个基本属性,必须存在。存在条件对应ExistCond属性。存在条件主要用于字段的分支描述。ExistCond="TRUE"则本字段存在,ExistCond="FALSE"则本字段不存在;存在条件也可以通过公式来计算。数据类型对应FieldType属性。类型值既可以是基本数据类型,也可以是结构化类型。例如:FieldType="INT8U"对应8比特的无符号整数类型,FieldType="record"对应字段块类型,FieldType="Bitstring"对应单比特的数据串类型。数据长度采用FieldByteLen和FieldBitLen属性。FieldByteLen属性为表示对应字段的字节个数,FieldBitLen属本文档来自技高网...

【技术保护点】
1.一种基于字段描述的通信协议解析方法,将通信协议数据帧分解为一系列的字段描述,每个字段描述包含字段名称、存在条件、数据类型、数据长度、重复次数、大小端格式、注释、协议识别判断条件和引用定义属性;其中,存在条件包含存在条件判断公式,当存在条件判断公式返回正确时该字段存在,否则该字段不存在;注释对应该字段实际接收数据的输出显示格式;协议识别判断条件包含对协议标准参数的判断公式,当对协议标准参数的判断公式返回真时所接收的数据符合当前协议标准参数限制,否则所接收的数据不符合当前协议标准;当字段的数据类型为字段块类型时,该字段由后续括号中的一组若干子字段描述组成;引用定义属性的参数输入为已经定义的字段、字段块,用于表示当前字段和已经定义的字段、字段块结构相同;/n基于这些字段描述,对输入的通信报文由先至后的每个字节数据,对照字段描述由先至后进行解析,具体每个字段数据解析包含如下步骤:/n步骤1,首先计算存在条件判断公式,如果结果返回错误,则当前字节数据不读取,获取下一字段属性进行解析,仍然执行本步;如果存在条件判断公式返回正确,则执行下一步;/n步骤2,依据字段描述的引用定义属性,获取所引用字段的具体属性参数;/n步骤3,初始化当前字段的重复次数计数器为字段的重复次数值;/n步骤4,判断字段的数据类型,如果数据类型为字段块类型,则采用嵌套方式,从上述步骤1开始执行每个子字段的解析,解析完成后返回字段块的总数据长度;如果数据类型不为字段块类型,则依据字段的数据长度获取通信报文中的数据,当大小端格式为小端时将字节顺序由后至先排序组合,当大小端格式为大端时将字节顺序由先至后排序组合,获得字段数据;/n步骤5,计算协议识别判断条件的公式,如果结果错误,则输出解析错误提示,并结束报文解析;如果结果正确,则执行下一步;/n步骤6,将步骤4获得的字段数据依据注释属性定义的输出显示格式,输出当前字段的字符串解析结果;/n步骤7,当前字段的重复次数计数器减1计数,如果重复次数计数器不为0,则转至步骤4继续执行,否则执行下一步;/n步骤8,如果当前解析字段不是最后一个字段,则返回步骤1继续解析下一个字段,否则解析结束。/n...

【技术特征摘要】
1.一种基于字段描述的通信协议解析方法,将通信协议数据帧分解为一系列的字段描述,每个字段描述包含字段名称、存在条件、数据类型、数据长度、重复次数、大小端格式、注释、协议识别判断条件和引用定义属性;其中,存在条件包含存在条件判断公式,当存在条件判断公式返回正确时该字段存在,否则该字段不存在;注释对应该字段实际接收数据的输出显示格式;协议识别判断条件包含对协议标准参数的判断公式,当对协议标准参数的判断公式返回真时所接收的数据符合当前协议标准参数限制,否则所接收的数据不符合当前协议标准;当字段的数据类型为字段块类型时,该字段由后续括号中的一组若干子字段描述组成;引用定义属性的参数输入为已经定义的字段、字段块,用于表示当前字段和已经定义的字段、字段块结构相同;
基于这些字段描述,对输入的通信报文由先至后的每个字节数据,对照字段描述由先至后进行解析,具体每个字段数据解析包含如下步骤:
步骤1,首先计算存在条件判断公式,如果结果返回错误,则当前字节数据不读取,获取下一字段属性进行解析,仍然执行本步;如果存在条件判断公式返回正确,则执行下一步;
步骤2,依据字段描述的引用定义属性,获取所引用字段的具体属性参数;
步骤3,初始化当前字段的重复次数计数器为字段的重复次数值;
步骤4,判断字段的数据类型,如果数据类型为字段块类型,...

【专利技术属性】
技术研发人员:庞浩成映华金永双周波
申请(专利权)人:常州昊云工控科技有限公司
类型:发明
国别省市:江苏;32

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

1