一种CANopen协议报文的识别方法和系统技术方案

技术编号:18599938 阅读:68 留言:0更新日期:2018-08-04 21:05
根据本发明专利技术实施例提供了一种CANopen协议报文的识别方法和系统,涉及通信协议解析技术领域,包括:截取CAN总线中的待识别数据流;对截取到的待识别数据流进行解析,得到待识别数据流的数据格式;将得到的数据格式与预先定义的CANopen协议的标准数据格式进行比较,以确定待识别数据流是否为采用CANopen协议的数据。本发明专利技术解决了现有技术中无法识别CAN总线中未知数据流是否为基于CANopen协议的数据流的技术问题。

A method and system for recognition of CANopen protocol message

According to the embodiment of the invention, a method and system for identifying the CANopen protocol message is provided, which involves the technical field of communication protocol analysis, including the interception of the data stream to be identified in the CAN bus, the analysis of the intercepted data flow to be identified, the format of the data stream to be identified, the obtained data format and the advance. The standard data formats of the CANopen protocol defined are compared to determine whether the data stream to be identified is data using the CANopen protocol. The invention solves the technical problem in the prior art that the unknown data stream in the CAN bus can not be identified as a data stream based on CAN open protocol.

【技术实现步骤摘要】
一种CANopen协议报文的识别方法和系统
本专利技术涉及通信协议解析
,尤其是涉及一种CANopen协议报文的识别方法和系统。
技术介绍
CAN总线协议是工业控制中常用到的一种现场总线,其协议很简单,只定义了物理层、数据链路层和应用层。在此基础上,各生产商根据自己的意图开发使用不同的上层协议,如CANopen、DeviceNet、J1939等,但各设备生产商运用的CAN高层协议是保密的,想要通过CAN总线来获取有用的实时信息就必须要解析出该CAN网络系统运用的CAN高层协议。目前,并没有一套完整的系统,可以专门用于判断CAN网络中的未知数据流是否采用了CANopen协议。针对以上问题,还未提出有效解决方案。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种CANopen协议报文的识别方法和系统,以解决现有技术中无法识别CAN总线中未知数据流是否为基于CANopen协议的数据流的技术问题。根据本专利技术实施例提供了一种CANopen协议报文的识别方法,所述方法包括:截取CAN总线中的待识别数据流;对截取到的所述待识别数据流进行解析,得到所述待识别数据流的数据格式;将所述数据格式与预先定义的CANopen协议的标准数据格式进行比较,以确定所述待识别数据流是否为采用CANopen协议的数据。进一步地,对截取到的所述待识别数据流进行解析,得到所述待识别数据流的数据格式包括:通过第一结构体变量确定一个数据包,所述数据包中包括:预设字符识别码CID,预设数据长度,预设数据值;基于确定的所述数据包对截取到的所述待识别数据流进行解析,得到所述待识别数据流的数据格式。进一步地,将所述数据格式与预先定义的CANopen协议的标准数据格式进行比较,以确定所述待识别数据流是否为采用CANopen协议的数据包括:使用第二结构体变量来预先定义所述CANopen协议的标准数据格式;将所述数据格式与所述CANopen协议的标准数据格式进行比较,以确定所述待识别数据流是否为采用CANopen协议的数据。进一步地,所述方法还包括:在确定所述待识别数据流为采用CANopen协议的数据之后,对所述待识别数据流进行解析,得到解析结果,其中,所述解析结果中包括所述待识别数据流中的数据内容。进一步地,对所述待识别数据流进行解析,得到解析结果包括:分别对所述待识别数据流的对象字典和通信机制进行解析,得到所述解析结果,其中,所述通信机制包括:过程数据对象,服务数据对象和网络管理对象。根据本专利技术实施例还提供了一种CANopen协议报文的识别系统,所述系统包括:数据截取模块,用于截取CAN总线中的待识别数据流;格式解析模块,用于对截取到的所述待识别数据流进行解析,得到所述待识别数据流的数据格式;数据确定模块,用于将所述数据格式与预先定义的CANopen协议的标准数据格式进行比较,以确定所述待识别数据流是否为采用CANopen协议的数据。进一步地,所述格式解析模块包括:第一确定单元,用于通过第一结构体变量确定一个数据包,所述数据包中包括:预设字符识别码CID,预设数据长度,预设数据值;格式解析单元,用于基于确定的所述数据包对截取到的所述待识别数据流进行解析,得到所述待识别数据流的数据格式。进一步地,所述数据确定模块包括:定义单元,用于使用第二结构体变量来预先定义所述CANopen协议的标准数据格式;第二确定单元,用于将所述数据格式与所述CANopen协议的标准数据格式进行比较,以确定所述待识别数据流是否为采用CANopen协议的数据。进一步地,所述系统还包括:数据解析模块,用于在确定所述待识别数据流为采用CANopen协议的数据之后,对所述待识别数据流进行解析,得到解析结果,其中,所述解析结果中包括所述待识别数据流中的数据内容。进一步地,所述数据解析模块包括:数据解析单元,用于分别对所述待识别数据流的对象字典和通信机制进行解析,得到所述解析结果,其中,所述通信机制包括:过程数据对象,服务数据对象和网络管理对象。根据本专利技术实施例提供了一种CANopen协议报文的识别方法,包括:截取CAN总线中的待识别数据流;对截取到的待识别数据流进行解析,得到待识别数据流的数据格式;将得到的数据格式与预先定义的CANopen协议的标准数据格式进行比较,以确定待识别数据流是否为采用CANopen协议的数据。本专利技术解决了现有技术中无法识别CAN总线中未知数据流是否为基于CANopen协议的数据流的技术问题,从而实现了通过识别截取的数据流是否采用了CANopen协议,进而对确定使用了CANopen协议的数据流进行解析,并基于解析结果对CAN总线连接的设备进行实时监测的技术效果。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本专利技术实施例提供的一种CANopen协议报文的识别方法的流程图;图2是根据本专利技术实施例提供的一种CANopen设备的模型图;图3是根据本专利技术实施例提供的一种CANopen协议报文的识别系统的结构示意图;图4是根据本专利技术实施例提供的另一种CANopen协议报文的识别系统的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一:图1是根据本专利技术实施例提供的一种CANopen协议报文的识别方法的流程图。如图1所示,该CANopen协议报文的识别方法包括如下步骤:步骤S102,截取CAN总线中的待识别数据流;步骤S104,对截取到的待识别数据流进行解析,得到待识别数据流的数据格式;步骤S106,将数据格式与预先定义的CANopen协议的标准数据格式进行比较,以确定待识别数据流是否为采用CANopen协议的数据。根据本专利技术实施例提供了一种CANopen协议报文的识别方法,包括:截取CAN总线中的待识别数据流;对截取到的待识别数据流进行解析,得到待识别数据流的数据格式;将得到的数据格式与预先定义的CANopen协议的标准数据格式进行比较,以确定待识别数据流是否为采用CANopen协议的数据。本专利技术解决了现有技术中无法识别CAN总线中未知数据流是否为基于CANopen协议的数据流的技术问题。在一个可选的实施方式中,步骤S104,对截取到的待识别数据流进行解析,得到待识别数据流的数据格式包括如下步骤:步骤S1041,通过第一结构体变量确定一个数据包,数据包中包括:预设字符识别码CID,预设数据长度,预设数据值;步骤S1042,基于确定的数据包对截取到的待识别数据流进行解析,得到待识别数据流的数据格式。在本专利技术实施例中,第一结构体变量为变量CAN_PACKET,通过使用CAN_PACKET变量来定义一个未知应用层的数据包,该数据包中包括预设字符识别码CID,预设数据长度,预设数据值等内本文档来自技高网...

【技术保护点】
1.一种CANopen协议报文的识别方法,其特征在于,所述方法包括:截取CAN总线中的待识别数据流;对截取到的所述待识别数据流进行解析,得到所述待识别数据流的数据格式;将所述数据格式与预先定义的CANopen协议的标准数据格式进行比较,以确定所述待识别数据流是否为采用CANopen协议的数据。

【技术特征摘要】
1.一种CANopen协议报文的识别方法,其特征在于,所述方法包括:截取CAN总线中的待识别数据流;对截取到的所述待识别数据流进行解析,得到所述待识别数据流的数据格式;将所述数据格式与预先定义的CANopen协议的标准数据格式进行比较,以确定所述待识别数据流是否为采用CANopen协议的数据。2.根据权利要求1所述的方法,其特征在于,对截取到的所述待识别数据流进行解析,得到所述待识别数据流的数据格式包括:通过第一结构体变量确定一个数据包,所述数据包中包括:预设字符识别码CID,预设数据长度,预设数据值;基于确定的所述数据包对截取到的所述待识别数据流进行解析,得到所述待识别数据流的数据格式。3.根据权利要求1所述的方法,其特征在于,将所述数据格式与预先定义的CANopen协议的标准数据格式进行比较,以确定所述待识别数据流是否为采用CANopen协议的数据包括:使用第二结构体变量来预先定义所述CANopen协议的标准数据格式;将所述数据格式与所述CANopen协议的标准数据格式进行比较,以确定所述待识别数据流是否为采用CANopen协议的数据。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在确定所述待识别数据流为采用CANopen协议的数据之后,对所述待识别数据流进行解析,得到解析结果,其中,所述解析结果中包括所述待识别数据流中的数据内容。5.根据权利要求4所述的方法,其特征在于,对所述待识别数据流进行解析,得到解析结果包括:分别对所述待识别数据流的对象字典和通信机制进行解析,得到所述解析结果,其中,所述通信机制包括:过程数据对象,服务数据对象和网...

【专利技术属性】
技术研发人员:杨艳军郭东张森
申请(专利权)人:北京半导体专用设备研究所中国电子科技集团公司第四十五研究所
类型:发明
国别省市:北京,11

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

1