CN114282519A - Can数据的解析方法及装置 - Google Patents
Can数据的解析方法及装置 Download PDFInfo
- Publication number
- CN114282519A CN114282519A CN202111514547.XA CN202111514547A CN114282519A CN 114282519 A CN114282519 A CN 114282519A CN 202111514547 A CN202111514547 A CN 202111514547A CN 114282519 A CN114282519 A CN 114282519A
- Authority
- CN
- China
- Prior art keywords
- signal
- message
- target
- basic information
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000007405 data analysis Methods 0.000 title claims abstract description 7
- 238000004458 analytical method Methods 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 34
- 238000013507 mapping Methods 0.000 claims description 30
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000012163 sequencing technique Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开一种CAN数据的解析方法及装置,包括:获取根据CAN数据库文件生成的XML文件;将XML文件中CAN报文参数信息存储到报文数据结构,CAN信号参数信息存储到信号数据结构;从待解析的CAN报文中获取目标CAN通道标识和目标CAN报文标识;对CAN报文进行解析获得目标CAN报文基本信息,根据报文数据结构使用目标CAN报文基本信息更新由目标CAN通道标识和目标CAN报文标识的组合对应的初始化的CAN报文基本信息,即更新目标初始化的CAN报文基本信息;对CAN报文进行解析获得由目标CAN通道标识和目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息,根据信号数据结构使用目标CAN信号基本信息更新目标CAN信号标识对应的初始化的CAN信号基本信息。
Description
技术领域
本发明涉及车辆技术领域,具体而言,涉及一种CAN数据的解析方法及装置。
背景技术
CAN(Controller Area Network,控制器局域网络)是国际标准化的串行通信协议,车辆内部各个执行器间可以利用CAN总线传输数据。整车中的ECU(Electronic ControlUnit,电子控制单元)在基于CAN总线进行通信时,ECU会将物理信号发送到CAN总线上,再根据DBC(Database Can,CAN数据库)文件将CAN总线上收到的报文进行解析,并转化为数据或者再转化为信号发送到CAN总线上。其中,DBC文件是根据整车通信所需的通信矩阵编写而成的一种标准文件,该标准文件描述了整车中CAN信号网络中的报文结构、格式以及相应的信息。然而,当通信矩阵变化,产生新的DBC文件后,就需要花费大量时间修改ECU嵌入式程序中CAN报文的解析相关软件代码,并且基于DBC文件对CAN报文进行解析的过程也比较复杂,从而目前基于DBC文件解析CAN报文的方法不仅前期开发成本高,而且解析效率低。
发明内容
本发明提供了一种CAN数据的解析方法及装置,能够提高前期开发成本和CAN报文解析效率。
具体的技术方案如下:
第一方面,本发明实施例提供了一种CAN数据的解析方法,所述方法包括:
获取根据控制器局域网络CAN数据库文件生成的可扩展标记语言XML文件,其中,所述XML文件包括CAN报文参数信息、CAN信号参数信息、用于根据所述CAN报文参数信息对CAN报文进行解析的第一解析规则和用于根据所述CAN信号参数信息对CAN报文进行解析的第二解析规则;
将所述CAN报文参数信息存储到报文数据结构中,以及将所述CAN信号参数信息存储到信号数据结构中,其中,所述报文数据结构包括所述CAN报文参数信息中CAN通道标识、CAN报文标识和初始化的CAN报文基本信息之间的映射关系,所述信号数据结构包括CAN信号标识与所述CAN信号参数信息中初始化的CAN信号基本信息之间的映射关系,所述CAN信号标识包括所述CAN通道标识、所述CAN报文标识和所述CAN信号参数信息中的CAN信号名称;
获取待解析的CAN报文,并从所述待解析的CAN报文中获取目标CAN通道标识和目标CAN报文标识;
根据所述第一解析规则对所述待解析的CAN报文进行解析获得目标CAN报文基本信息,并使用所述目标CAN报文基本信息更新目标初始化的CAN报文基本信息,其中,所述目标初始化的CAN报文基本信息为与所述目标CAN通道标识和所述目标CAN报文标识的组合对应的初始化的CAN报文基本信息;
根据所述第二解析规则对所述待解析的CAN报文进行解析获得由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息,并使用所述目标CAN信号基本信息更新所述目标CAN信号标识对应的所述初始化的CAN信号基本信息。
在一种实施方式中,当所述初始化的CAN报文基本信息包括CAN报文字节序和CAN报文长度,所述目标CAN报文基本信息包括CAN报文16进制值和CAN报文接收时间时,根据所述第一解析规则对所述待解析的CAN报文进行解析获得目标CAN报文基本信息,包括:
将接收到所述待解析的CAN报文的时间确定为所述目标CAN报文基本信息中的CAN报文接收时间;
若所述目标初始化的CAN报文基本信息中的CAN报文字节序为Motorola字节序,则将所述待解析的CAN报文中包含的长度为所述CAN报文长度的16进制值确定为所述目标CAN报文基本信息中的CAN报文16进制值;
若所述目标初始化的CAN报文基本信息中的CAN报文字节序为Intel字节序,则对所述待解析的CAN报文中包含的长度为所述CAN报文长度的16进制值以一个字节为单位进行逆向排序,并将逆向排序后的16进制值确定为所述目标CAN报文基本信息中的CAN报文16进制值。
在一种实施方式中,使用所述目标CAN报文基本信息更新目标初始化的CAN报文基本信息,包括:
在所述目标初始化的CAN报文基本信息基础上增加所述目标CAN报文基本信息。
在一种实施方式中,所述方法还包括:
在对所述报文数据结构和所述信号数据结构更新后,获取第一请求方发送的第一回调函数、待查询的CAN通道标识和待查询CAN报文标识;
从所述报文数据结构中查询由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的CAN报文基本信息,并从查询到的CAN报文基本信息中获取CAN报文16进制值;
通过所述第一回调函数将获取到的CAN报文16进制值反馈给所述第一请求方。
在一种实施方式中,当所述目标CAN报文基本信息还包括CAN通道标识和CAN报文标识的组合与信号数据结构的链接之间映射关系时,在从所述报文数据结构中查询由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的CAN报文基本信息之后,所述方法还包括:
从CAN通道标识和CAN报文标识的组合与信号数据结构的链接之间映射关系中获取由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的信号数据结构的链接;
将获取到的链接所对应的信号数据结构或者所述获取到的链接所对应的信号数据结构中由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的所有CAN信号标识下的CAN信号物理值反馈给所述第一请求方。
在一种实施方式中,当所述初始化的CAN信号基本信息包括CAN信号起始位、CAN信号长度、用于表征CAN信号有无符号的符号标识、CAN信号的因子和CAN信号的偏移量,所述目标CAN信号基本信息包括CAN信号16进制值、CAN信号接收时间和CAN信号物理值时,根据所述第二解析规则对所述待解析的CAN报文进行解析获得由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息,包括:
将所述目标CAN报文基本信息中的CAN报文接收时间确定为所述目标CAN信号基本信息中的CAN信号接收时间;
将所述目标CAN报文基本信息中的CAN报文16进制值转换为CAN报文二进制值;
在按照所述CAN报文二进制值从右向左的排序条件下,根据所述目标CAN信号标识对应的初始化的CAN信号基本信息中的CAN信号起始位和CAN信号长度,从所述CAN报文二进制值中选取长度为所述CAN信号长度的二进制值作为CAN信号二进制值;
将所述CAN信号二进制值转换为CAN信号16进制值,将转换得到的CAN信号16进制值作为所述目标CAN信号基本信息中的CAN信号16进制值;
若所述目标CAN信号标识对应的初始化的CAN信号基本信息中符号标识表示无符号,则根据无符号的转换规则将所述CAN信号二进制值转换为CAN信号十进制值,若所述目标CAN信号标识对应的初始化的CAN信号基本信息中符号标识表示有符号,则根据有符号的转换规则将所述CAN信号二进制值转换为CAN信号十进制值;
根据所述目标CAN信号标识对应的初始化的CAN信号基本信息中CAN信号的因子和CAN信号的偏移量对所述CAN信号十进制值进行计算得到所述目标CAN信号基本信息中的CAN信号物理值。
在一种实施方式中,使用所述目标CAN信号基本信息更新所述目标CAN信号标识对应的所述初始化的CAN信号基本信息,包括:
在所述目标CAN信号标识对应的所述初始化的CAN信号基本信息的基础上增加所述目标CAN信号基本信息。
在一种实施方式中,所述方法还包括:
在对所述报文数据结构和所述信号数据结构更新后,获取第二请求方发送的第二回调函数和待查询的CAN信号标识;
从所述信号数据结构中查询所述待查询的CAN信号标识对应的CAN信号物理值;
通过所述第二回调函数将查询到的CAN信号物理值反馈给所述第二请求方。
在一种实施方式中,所述报文数据结构以表格形式存储在报文MAP表中,和/或,所述信号数据结构以表格形式存储在信号MAP表中。
第二方面,本发明实施例提供了一种CAN数据的解析装置,所述装置包括:
第一获取单元,用于获取根据控制器局域网络CAN数据库文件生成的可扩展标记语言XML文件,其中,所述XML文件包括CAN报文参数信息、CAN信号参数信息、用于根据所述CAN报文参数信息对CAN报文进行解析的第一解析规则和用于根据所述CAN信号参数信息对CAN报文进行解析的第二解析规则;
存储单元,用于将所述CAN报文参数信息存储到报文数据结构中,以及将所述CAN信号参数信息存储到信号数据结构中,其中,所述报文数据结构包括所述CAN报文参数信息中CAN通道标识、CAN报文标识和初始化的CAN报文基本信息之间的映射关系,所述信号数据结构包括CAN信号标识与所述CAN信号参数信息中初始化的CAN信号基本信息之间的映射关系,所述CAN信号标识包括所述CAN通道标识、所述CAN报文标识和所述CAN信号参数信息中的CAN信号名称;
第二获取单元,用于获取待解析的CAN报文,并从所述待解析的CAN报文中获取目标CAN通道标识和目标CAN报文标识;
第一解析单元,用于根据所述第一解析规则对所述待解析的CAN报文进行解析获得目标CAN报文基本信息;
第一更新单元,用于使用所述目标CAN报文基本信息更新目标初始化的CAN报文基本信息,其中,所述目标初始化的CAN报文基本信息为与所述目标CAN通道标识和所述目标CAN报文标识的组合对应的初始化的CAN报文基本信息;
第二解析单元,用于根据所述第二解析规则对所述待解析的CAN报文进行解析获得由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息;
第二更新单元,用于使用所述目标CAN信号基本信息更新所述目标CAN信号标识对应的所述初始化的CAN信号基本信息。
在一种实施方式中,第一解析单元,包括:
第一确定模块,用于当所述初始化的CAN报文基本信息包括CAN报文字节序和CAN报文长度,所述目标CAN报文基本信息包括CAN报文16进制值和CAN报文接收时间时,将接收到所述待解析的CAN报文的时间确定为所述目标CAN报文基本信息中的CAN报文接收时间;
第二确定模块,用于若所述目标初始化的CAN报文基本信息中的CAN报文字节序为Motorola字节序,则将所述待解析的CAN报文中包含的长度为所述CAN报文长度的16进制值确定为所述目标CAN报文基本信息中的CAN报文16进制值,若所述目标初始化的CAN报文基本信息中的CAN报文字节序为Intel字节序,则对所述待解析的CAN报文中包含的长度为所述CAN报文长度的16进制值以一个字节为单位进行逆向排序,并将逆向排序后的16进制值确定为所述目标CAN报文基本信息中的CAN报文16进制值。
在一种实施方式中,第一更新单元,用于在所述目标初始化的CAN报文基本信息基础上增加所述目标CAN报文基本信息。
在一种实施方式中,所述装置还包括:
第三获取单元,用于在对所述报文数据结构和所述信号数据结构更新后,获取第一请求方发送的第一回调函数、待查询的CAN通道标识和待查询CAN报文标识;
第一查询单元,用于从所述报文数据结构中查询由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的CAN报文基本信息,并从查询到的CAN报文基本信息中获取CAN报文16进制值;
第一反馈单元,用于通过所述第一回调函数将获取到的CAN报文16进制值反馈给所述第一请求方。
在一种实施方式中,第三获取单元,还用于当所述目标CAN报文基本信息还包括CAN通道标识和CAN报文标识的组合与信号数据结构的链接之间映射关系时,在从所述报文数据结构中查询由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的CAN报文基本信息之后,从CAN通道标识和CAN报文标识的组合与信号数据结构的链接之间映射关系中获取由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的信号数据结构的链接;
第一反馈单元,还用于将获取到的链接所对应的信号数据结构或者所述获取到的链接所对应的信号数据结构中由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的所有CAN信号标识下的CAN信号物理值反馈给所述第一请求方。
在一种实施方式中,第二解析单元,包括:
第三确定模块,用于当所述初始化的CAN信号基本信息包括CAN信号起始位、CAN信号长度、用于表征CAN信号有无符号的符号标识、CAN信号的因子和CAN信号的偏移量,所述目标CAN信号基本信息包括CAN信号16进制值、CAN信号接收时间和CAN信号物理值时,将所述目标CAN报文基本信息中的CAN报文接收时间确定为所述目标CAN信号基本信息中的CAN信号接收时间;
转换模块,用于将所述目标CAN报文基本信息中的CAN报文16进制值转换为CAN报文二进制值;
选取模块,用于在按照所述CAN报文二进制值从右向左的排序条件下,根据所述目标CAN信号标识对应的初始化的CAN信号基本信息中的CAN信号起始位和CAN信号长度,从所述CAN报文二进制值中选取长度为所述CAN信号长度的二进制值作为CAN信号二进制值;
转换模块,还用于将所述CAN信号二进制值转换为CAN信号16进制值,将转换得到的CAN信号16进制值作为所述目标CAN信号基本信息中的CAN信号16进制值,若所述目标CAN信号标识对应的初始化的CAN信号基本信息中符号标识表示无符号,则根据无符号的转换规则将所述CAN信号二进制值转换为CAN信号十进制值,若所述目标CAN信号标识对应的初始化的CAN信号基本信息中符号标识表示有符号,则根据有符号的转换规则将所述CAN信号二进制值转换为CAN信号十进制值;
计算模块,用于根据所述目标CAN信号标识对应的初始化的CAN信号基本信息中CAN信号的因子和CAN信号的偏移量对所述CAN信号十进制值进行计算得到所述目标CAN信号基本信息中的CAN信号物理值。
在一种实施方式中,第二更新单元,用于在所述目标CAN信号标识对应的所述初始化的CAN信号基本信息的基础上增加所述目标CAN信号基本信息。
在一种实施方式中,所述装置还包括:
第四获取单元,用于在对所述报文数据结构和所述信号数据结构更新后,获取第二请求方发送的第二回调函数和待查询的CAN信号标识;
第二查询单元,用于从所述信号数据结构中查询所述待查询的CAN信号标识对应的CAN信号物理值;
第二反馈单元,用于通过所述第二回调函数将查询到的CAN信号物理值反馈给所述第二请求方。
在一种实施方式中,所述报文数据结构以表格形式存储在报文MAP表中,和/或,所述信号数据结构以表格形式存储在信号MAP表中。
第三方面,本发明实施例提供了一种存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面中任一实施方式所述的方法。
第四方面,本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现第一方面中任一项实施方式所述的方法。
由上述内容可知,本发明实施例提供的CAN数据的解析方法及装置,能够先获取根据CAN数据库文件生成的包括CAN报文参数信息、CAN信号参数信息以及用于根据CAN报文参数信息对CAN报文进行解析的第一解析规则和用于根据CAN信号参数信息对CAN报文进行解析的第二解析规则的XML(Extensible Markup Language,可扩展标记语言)文件,再将CAN报文参数信息存储到报文数据结构中,使得报文数据结构包括CAN报文参数信息中CAN通道标识、CAN报文标识和初始化的CAN报文基本信息之间的映射关系,以及将CAN信号参数信息存储到信号数据结构中,使得信号数据结构包括CAN信号标识(包括CAN通道标识、CAN报文标识和CAN信号参数信息中的CAN信号名称)与CAN信号参数信息中初始化的CAN信号基本信息之间的映射关系,当接收到待解析的CAN报文时,可以先从该CAN报文中获取目标CAN通道标识和目标CAN报文标识,再根据第一解析规则对CAN报文进行解析获得目标CAN报文基本信息,并使用目标CAN报文基本信息更新由目标CAN通道标识和目标CAN报文标识的组合对应的初始化的CAN报文基本信息(简称目标初始化的CAN报文基本信息),以及根据第二解析规则对CAN报文进行解析获得由目标CAN通道标识和目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息,并使用目标CAN信号基本信息更新目标CAN信号标识对应的初始化的CAN信号基本信息。由此可知,本发明实施例在对CAN报文进行解析的过程中无需使用CAN数据库文件(即DBC)进行解析,而直接使用结构简单可供计算机直接运行的XML文件,从而提高了CAN报文的解析效率,并且当通信矩阵发生变化而导致DBC文件发生变化时,无需花费大量时间修改ECU嵌入式程序中CAN报文的解析相关软件代码,而只需稍微修改XML中的参数等信息即可,XML文件的更新效率远远大于DBC文件对应的ECU嵌入式程序中CAN报文的解析相关软件代码的更新效率。
本发明实施例还可以取得的技术效果至少包括:
1、当用户想要查询CAN报文值(即CAN报文16进制值)时,可以通过提供第一回调函数、待查询的CAN通道标识和待查询CAN报文标识,来让本发明实施例的电子设备在报文数据结构中查询对应的CAN报文16进制值,并通过第一回调函数给予反馈;当用户想要查询CAN信号值(即CAN信号物理值)时,可以通过提供第二回调函数、待查询的CAN信号标识(包括CAN通道标识、CAN报文标识和CAN信号名称),来让本发明实施例的电子设备在信号数据结构中查询对应的CAN信号物理值,并通过第二回调函数给予反馈。由此可知,本发明实施例可以快速查询CAN报文值和CAN信号值。
2、当用户需要查询信号数据结构时,还可以通过报文数据结构中存储的CAN报文标识与信号数据结构的链接之间映射关系来查找待查询的CAN通道标识和待查询CAN报文标识对应的信号数据结构的链接,根据该链接查找并反馈对应的信号数据结构,此外还可以将链接到的信号数据结构中的CAN信号物理值也反馈给请求方。由此可知,本发明实施可以通过使得报文数据结构与信号数据结构进行关联,来快速查询信号数据结构和信号数据结构中的CAN信号物理值。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种CAN数据的解析方法的流程示意图;
图2为本发明实施例提供的一种报文MAP表和信号MAP表的示例图;
图3为本发明实施例提供的一种CAN数据的解析系统架构的示例图;
图4为本发明实施例提供的一种CAN数据的解析装置的组成框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含的一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
本发明实施例提供了一种CAN数据的解析方法及装置,能够提高前期开发成本和CAN报文解析效率。本发明实施例所提供的方法,可以应用于任一具有计算能力的电子设备,该电子设备可以为车辆,如具体为嵌入式设备TBOX(Telematics BOX,远程信息处理终端)。
下面对本发明实施例进行详细说明。
图1为本发明实施例提供的一种CAN数据的解析方法的流程示意图,该方法可以包括如下步骤:
S100:获取根据CAN数据库文件生成的XML文件。
XML文件是技术人员根据CAN数据库文件(即DBC文件)编写而成的便于计算机执行的配置文件。XML文件包括CAN报文参数信息、CAN信号参数信息、用于根据所述CAN报文参数信息对CAN报文进行解析的第一解析规则和用于根据所述CAN信号参数信息对CAN报文进行解析的第二解析规则。CAN报文参数信息包括CAN通道标识、CAN报文标识和初始化的CAN报文基本信息,CAN信号参数信息包括CAN信号名称、初始化的CAN信号基本信息,初始化的CAN报文基本信息包括CAN报文字节序、CAN报文长度,初始化的CAN信号基本信息包括CAN信号起始位、CAN信号长度、用于表征CAN信号有无符号的符号标识、CAN信号的因子和CAN信号的偏移量。CAN报文标识可以仅有CAN报文ID组成,也可以由CAN报文ID和CAN报文名称组成,当CAN报文标识仅包括CAN报文ID时,CAN报文参数信息中还可以包括CAN报文名称。
示例性的,下述矩形框内文本为一个XML文件的部分内容(默认为CAN相关数据,下述省略了CAN一词),该XML文件中所有报文的字节序是相同的,例如为Motorola字节序,该XML文件中包括通道1和通道2,通道1中包括报文1和报文2,用于描述报文1的参数有3个,分别为报文ID、报文名(即上述提及CAN报文名称)和报文长度,报文1包括信号1和信号2,其中用于描述信号1的参数包括信号名(即上述提及CAN信号名称)、起始位、信号长度、信号值偏移(即上述提及的CAN信号的偏移量)、信号的因子、有无符号(即上述提及的符号标识)。
需要补充的是,为了避免人为修改XML文件,从而导致CAN报文解析错误或者解析失败,可以将XML文件存储到只允许读而不允许写的特定路径下。当需要获取XML文件时(如嵌入式设备上电后),可以从特定路径中获取XML文件。
S110:将CAN报文参数信息存储到报文数据结构中,以及将CAN信号参数信息存储到信号数据结构中。
通过上述文本可知,虽然XML文件本身隐含了CAN报文参数信息中各参数的映射关系以及CAN信号参数信息中各参数的映射关系,但是为了进一步提高计算机查找参数的效率,可以将CAN报文参数信息存储到报文数据结构,将CAN信号参数信息存储到信号数据结构中。数据结构是带有结构特性的数据元素的集合,通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率,本发明实施例可以选择MAP表形式的数据结构,即报文数据结构以表格形式存储在报文MAP表中,和/或,信号数据结构以表格形式存储在信号MAP表中,当然也可以选择其他数据结构表现形式。报文MAP表和信号MAP表可以为二叉树表。
报文数据结构包括所述CAN报文参数信息中CAN通道标识、CAN报文标识和初始化的CAN报文基本信息之间的映射关系,所述信号数据结构包括CAN信号标识与所述CAN信号参数信息中初始化的CAN信号基本信息之间的映射关系,所述CAN信号标识包括所述CAN通道标识、所述CAN报文标识和所述CAN信号参数信息中的CAN信号名称。
MAP表时由key和value组成一个对照表。当报文数据结构为报文MAP表时,key可以为CAN通道标识和CAN报文标识,value可以为其他报文信息;当信号数据结构为信号MAP表时,key可以为CAN信号标识(即CAN通道标识+CAN报文标识和+CAN信号名称),value可以为其他信号信息。
S120:获取待解析的CAN报文,并从待解析的CAN报文中获取目标CAN通道标识和目标CAN报文标识。
当CAN总线传输过来CAN报文后,记录CAN报文接收时间,并从CAN报文中获取目标CAN通道标识和目标CAN报文标识。
S130:根据第一解析规则对待解析的CAN报文进行解析获得目标CAN报文基本信息,并使用目标CAN报文基本信息更新目标初始化的CAN报文基本信息。
初始化的CAN报文基本信息包括CAN报文字节序和CAN报文长度,目标CAN报文基本信息包括CAN报文16进制值和CAN报文接收时间,目标初始化的CAN报文基本信息为与所述目标CAN通道标识和所述目标CAN报文标识的组合对应的初始化的CAN报文基本信息,所以目标初始化的CAN报文基本信息也包括CAN报文字节序和CAN报文长度。
根据第一解析规则对待解析的CAN报文进行解析获得目标CAN报文基本信息的具体实现方法包括:将接收到所述待解析的CAN报文的时间确定为所述目标CAN报文基本信息中的CAN报文接收时间;若由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的所述初始化的CAN报文基本信息(即目标初始化的CAN报文基本信息)中的CAN报文字节序为Motorola字节序,则将所述待解析的CAN报文中包含的长度为所述CAN报文长度的16进制值确定为所述目标CAN报文基本信息中的CAN报文16进制值;若由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的所述初始化的CAN报文基本信息(即目标初始化的CAN报文基本信息)中的CAN报文字节序为Intel字节序,则对所述待解析的CAN报文中包含的长度为所述CAN报文长度的16进制值以一个字节为单位进行逆向排序,并将逆向排序后的16进制值确定为所述目标CAN报文基本信息中的CAN报文16进制值。其中,字节序是指字节在计算机中存放时的序列与输入(输出)时的序列是先到的在前还是后到的在前。Motorola字节序是先到的在前,后到的在后,即高位在前低位在后,所以可以直接将Motorola字节序的16进制值作为所需的CAN报文16进制值;Intel字节序是后到的在前,先到的在后,即低位在前高位在后,所以需要先将Intel字节序的16进制值重新排序,再将重新排序后的16进制值作为所需的CAN报文16进制值。
使用目标CAN报文基本信息更新由目标CAN通道标识和目标CAN报文标识的组合对应的初始化的CAN报文基本信息的具体实现方法包括:在由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的所述初始化的CAN报文基本信息(即目标初始化的CAN报文基本信息)基础上增加所述目标CAN报文基本信息,即更新后的目标初始化CAN报文基本信息包括CAN报文长度、CAN报文16进制值和CAN报文接收时间。
在对由目标CAN通道标识和目标CAN报文标识的组合对应的初始化的CAN报文基本信息(即目标初始化的CAN报文基本信息)更新后,若再接收到由目标CAN通道标识和目标CAN报文标识的组合对应的新CAN报文,可以将针对新CAN报文解析出的CAN报文16进制值和CAN报文接收时间替换之前解析出的CAN报文16进制值和CAN报文接收时间。
S140:根据第二解析规则对待解析CAN报文进行解析获得由目标CAN通道标识和目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息,并使用目标CAN信号基本信息更新目标CAN信号标识对应的初始化的CAN信号基本信息。
初始化的CAN信号基本信息包括CAN信号起始位、CAN信号长度、用于表征CAN信号有无符号的符号标识、CAN信号的因子和CAN信号的偏移量,目标CAN信号基本信息包括CAN信号16进制值、CAN信号接收时间和CAN信号物理值,CAN信号物理值是指CAN信号真实值。
根据第二解析规则对待解析CAN报文进行解析获得由目标CAN通道标识和目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息的具体实现方式包括:将所述目标CAN报文基本信息中的CAN报文接收时间确定为所述目标CAN信号基本信息中的CAN信号接收时间;将所述目标CAN报文基本信息中的CAN报文16进制值转换为CAN报文二进制值;在按照所述CAN报文二进制值从右向左的排序条件下,根据所述目标CAN信号标识对应的初始化的CAN信号基本信息中的CAN信号起始位和CAN信号长度,从所述CAN报文二进制值中选取长度为所述CAN信号长度的二进制值作为CAN信号二进制值;将所述CAN信号二进制值转换为CAN信号16进制值,将转换得到的CAN信号16进制值作为所述目标CAN信号基本信息中的CAN信号16进制值;若所述目标CAN信号标识对应的初始化的CAN信号基本信息中符号标识表示无符号,则根据无符号的转换规则将所述CAN信号二进制值转换为CAN信号十进制值,若所述目标CAN信号标识对应的初始化的CAN信号基本信息中符号标识表示有符号,则根据有符号的转换规则将所述CAN信号二进制值转换为CAN信号十进制值;根据所述目标CAN信号标识对应的初始化的CAN信号基本信息中CAN信号的因子和CAN信号的偏移量对所述CAN信号十进制值进行计算得到所述目标CAN信号基本信息中的CAN信号物理值。其中,根据所述目标CAN信号标识对应的初始化的CAN信号基本信息中CAN信号的因子和CAN信号的偏移量对所述CAN信号十进制值进行计算的计算公式包括CAN信号物理值=CAN信号十进制值*CAN信号的因子+CAN信号的偏移量。
示例性的,假设初始化的CAN信号基本信息中的CAN信号起始位为1,CAN信号长度为5,符号标识表示无符号,CAN信号的因子为0.32,CAN信号的偏移量为10,接收到的待解析的CAN报文的16进制值为0x1234,那么先将CAN报文16进制值转换为CAN报文二进制值00010010 0011 0100,再将该CAN报文二进制值从右向左查询第1位到第6位(即CAN信号起始位为1,CAN信号长度为5)后得到的CAN信号二进制值为11010,将二进制值为11010转换为16进制值,获得CAN信号16进制值为1A,将二进制值11010转换为十进制值为26,最后通过计算26*0.32+10就得到CAN信号物理值18.32。若符号标识表示有符号,需要CAN信号二进制值11010转换为十进制值-6,最后通过计算-6*0.32+10就得到CAN信号物理值8.08。
使用目标CAN信号基本信息更新目标CAN信号标识对应的初始化的CAN信号基本信息的具体实现方法包括:在所述目标CAN信号标识对应的所述初始化的CAN信号基本信息的基础上增加所述目标CAN信号基本信息,即更新后的初始化的CAN信号基本信息包括CAN信号起始位、CAN信号长度、CAN信号表示的值有无符号、CAN信号的因子、CAN信号的偏移量、CAN信号16进制值、CAN信号接收时间和CAN信号物理值。
在对所述目标CAN信号标识对应的所述初始化的CAN信号基本信息更新后,若再接收到由目标CAN信号标识对应的新CAN报文,可以将针对新CAN报文解析出的CAN信号16进制值、CAN信号接收时间和CAN信号物理值替换之前解析出的CAN信号16进制值、CAN信号接收时间和CAN信号物理值。
需要补充的是,报文数据结构中还可以包括用于存储报文数据结构中涉及的参数信息的容器,信号数据结构中还可以包括用于存储信号数据结构中涉及的参数信息的容器。
本发明实施例提供的CAN数据的解析方法,能够先获取根据CAN数据库文件生成的包括CAN报文参数信息、CAN信号参数信息以及用于根据CAN报文参数信息对CAN报文进行解析的第一解析规则和用于根据CAN信号参数信息对CAN报文进行解析的第二解析规则的XML文件,再将CAN报文参数信息存储到报文数据结构中,使得报文数据结构包括CAN报文参数信息中CAN通道标识、CAN报文标识和初始化的CAN报文基本信息之间的映射关系,以及将CAN信号参数信息存储到信号数据结构中,使得信号数据结构包括CAN信号标识(包括CAN通道标识、CAN报文标识和CAN信号参数信息中的CAN信号名称)与CAN信号参数信息中初始化的CAN信号基本信息之间的映射关系,当接收到待解析的CAN报文时,可以先从该CAN报文中获取目标CAN通道标识和目标CAN报文标识,再根据第一解析规则对CAN报文进行解析获得目标CAN报文基本信息,并使用目标CAN报文基本信息更新由目标CAN通道标识和目标CAN报文标识的组合对应的初始化的CAN报文基本信息(简称目标初始化的CAN报文基本信息),以及根据第二解析规则对CAN报文进行解析获得由目标CAN通道标识和目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息,并使用目标CAN信号基本信息更新目标CAN信号标识对应的初始化的CAN信号基本信息。由此可知,本发明实施例在对CAN报文进行解析的过程中无需使用CAN数据库文件(即DBC)进行解析,而直接使用结构简单可供计算机直接运行的XML文件,从而提高了CAN报文的解析效率,并且当通信矩阵发生变化而导致DBC文件发生变化时,无需花费大量时间修改ECU嵌入式程序中CAN报文的解析相关软件代码,而只需稍微修改XML中的参数等信息即可,XML文件的更新效率远远大于DBC文件对应的ECU嵌入式程序中CAN报文的解析相关软件代码的更新效率。
在一种实施方式中,在通过执行步骤S100-S140之后,可以实现对报文数据结构和信号数据结构的更新后,为了能够让用户快速查询CAN报文相关信息和CAN信号相关信息,本发明实施例提供了基于回调函数的查询方法。
下面分别针对CAN报文查询和CAN信号查询进行阐述:
(1)CAN报文查询:获取第一请求方发送的第一回调函数、待查询的CAN通道标识和待查询CAN报文标识;从所述报文数据结构中查询由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的CAN报文基本信息,并从查询到的CAN报文基本信息中获取CAN报文16进制值;通过所述第一回调函数将获取到的CAN报文16进制值反馈给所述第一请求方。
第一请求方可以在CAN报文数据结构中注册第一回调函数,并发送待查询的CAN通道标识和待查询CAN报文标识,当能够查询到由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的CAN报文基本信息时,嵌入式设备将查询到的CAN报文16进制值通过第一回调函数发送给第一请求方。注册的第一回调函数可以存储在报文数据结构的回调函数容器中。
(2)CAN信号查询:获取第二请求方发送的第二回调函数和待查询的CAN信号标识;从所述信号数据结构中查询所述待查询的CAN信号标识对应的CAN信号物理值;通过所述第二回调函数将查询到的CAN信号物理值反馈给所述第二请求方。
第二请求方可以在信号数据结构中注册第二回调函数,并发送待查询的CAN信号标识,当能够查询到待查询的CAN信号标识对应的CAN信号基本信息时,嵌入式设备将查询到的CAN信号物理值通过第二回调函数发送给第二请求方。第一请求方和第二请求方可以为同一个请求方,也可以为不同请求方,且请求方可以位于应用层,用户通过应用层的应用程序进行CAN报文和CAN信号查询。注册的第二回调函数可以存储在信号数据结构的回调函数容器中。
此外,当所述目标CAN报文基本信息还包括CAN通道标识和CAN报文标识的组合与信号数据结构的链接之间映射关系(该映射关系可以存储在链接容器中)时,在从所述报文数据结构中查询由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的CAN报文基本信息之后,从CAN通道标识和CAN报文标识的组合与信号数据结构的链接之间映射关系中获取由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的信号数据结构的链接;将获取到的链接所对应的信号数据结构或者所述获取到的链接所对应的信号数据结构中由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的所有CAN信号标识下的CAN信号物理值反馈给所述第一请求方。
示例性的,如图2所示,当报文数据结构为报文MAP表,信号数据结构为信号MAP表时,报文MAP表包含n个报文,CAN报文1与其对应的信号MAP表具有链接关系,可以通过该链接获取到信号MAP表,可以获取到信号MAP表中CAN信号1至CAN信号m中所有CAN信号物理值。
在一种实施方式中,请求方也可以通过嵌入式设备为其提供的软件接口进行查询,即通过该软件接口输入待查询的CAN通道标识和待查询CAN报文标识可查询得到对应的CAN报文16进制值,通过该软件结构输入待查询的CAN信号标识可查询到对应的CAN信号物理值。
在一种实施方式中,如图3所示,CAN报文产生于驱动层,对CAN报文的解析过程位于应用服务程序层,当CAN驱动产生CAN报文时,CAN驱动可以向应用服务程序层上报CAN报文(即图3中上报的CAN数据),以便应用服务程序层对CAN报文进行解析。在应用服务程序层中,当系统(即可执行本发明实施例的系统)上电后,先读取XML文件,再将XML文件中的数据保存到数据结构中(包括报文数据结构和信号数据结构),当接收驱动层发送的待解析的CAN报文后,可以根据数据结构解析该CAN报文,并将解析结果保存到CAN报文MAP表和CAN信号MAP表中。当用户想要基于应用层的应用程序查询MAP表中的CAN报文数据或者CAN信号数据时,可以基于应用服务程序提供的软件接口直接获取(即图中的主动获取),也可以在MAP表中注册回调函数,通过回调的方式获取数据。
相应于上述方法实施例,本发明实施例提供了一种CAN数据的解析装置,如图4所示,所述装置包括:
第一获取单元21,用于获取根据控制器局域网络CAN数据库文件生成的可扩展标记语言XML文件,其中,所述XML文件包括CAN报文参数信息、CAN信号参数信息、用于根据所述CAN报文参数信息对CAN报文进行解析的第一解析规则和用于根据所述CAN信号参数信息对CAN报文进行解析的第二解析规则。
存储单元22,用于将所述CAN报文参数信息存储到报文数据结构中,以及将所述CAN信号参数信息存储到信号数据结构中,其中,所述报文数据结构包括所述CAN报文参数信息中CAN通道标识、CAN报文标识和初始化的CAN报文基本信息之间的映射关系,所述信号数据结构包括CAN信号标识与所述CAN信号参数信息中初始化的CAN信号基本信息之间的映射关系,所述CAN信号标识包括所述CAN通道标识、所述CAN报文标识和所述CAN信号参数信息中的CAN信号名称。
第二获取单元23,用于获取待解析的CAN报文,并从所述待解析的CAN报文中获取目标CAN通道标识和目标CAN报文标识。
第一解析单元24,用于根据所述第一解析规则对所述待解析的CAN报文进行解析获得目标CAN报文基本信息。
第一更新单元25,用于使用所述目标CAN报文基本信息更新目标初始化的CAN报文基本信息,其中,所述目标初始化的CAN报文基本信息为与所述目标CAN通道标识和所述目标CAN报文标识的组合对应的初始化的CAN报文基本信息。
第二解析单元26,用于根据所述第二解析规则对所述待解析的CAN报文进行解析获得由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息。
第二更新单元27,用于使用所述目标CAN信号基本信息更新所述目标CAN信号标识对应的所述初始化的CAN信号基本信息。
在一种实施方式中,第一解析单元24,包括:
第一确定模块,用于当所述初始化的CAN报文基本信息包括CAN报文字节序和CAN报文长度,所述目标CAN报文基本信息包括CAN报文16进制值和CAN报文接收时间时,将接收到所述待解析的CAN报文的时间确定为所述目标CAN报文基本信息中的CAN报文接收时间。
第二确定模块,用于若由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的所述初始化的CAN报文基本信息中的CAN报文字节序为Motorola字节序,则将所述待解析的CAN报文中包含的长度为所述CAN报文长度的16进制值确定为所述目标CAN报文基本信息中的CAN报文16进制值,若由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的所述初始化的CAN报文基本信息中的CAN报文字节序为Intel字节序,则对所述待解析的CAN报文中包含的长度为所述CAN报文长度的16进制值以一个字节为单位进行逆向排序,并将逆向排序后的16进制值确定为所述目标CAN报文基本信息中的CAN报文16进制值。
在一种实施方式中,第一更新单元25,用于在由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的所述初始化的CAN报文基本信息基础上增加所述目标CAN报文基本信息。
在一种实施方式中,所述装置还包括:
第三获取单元,用于在对所述报文数据结构和所述信号数据结构更新后,获取第一请求方发送的第一回调函数、待查询的CAN通道标识和待查询CAN报文标识。
第一查询单元,用于从所述报文数据结构中查询由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的CAN报文基本信息,并从查询到的CAN报文基本信息中获取CAN报文16进制值。
第一反馈单元,用于通过所述第一回调函数将获取到的CAN报文16进制值反馈给所述第一请求方。
在一种实施方式中,第三获取单元,还用于当所述目标CAN报文基本信息还包括CAN通道标识和CAN报文标识的组合与信号数据结构的链接之间映射关系时,在从所述报文数据结构中查询由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的CAN报文基本信息之后,从CAN通道标识和CAN报文标识的组合与信号数据结构的链接之间映射关系中获取由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的信号数据结构的链接。
第一反馈单元,还用于将获取到的链接所对应的信号数据结构或者所述获取到的链接所对应的信号数据结构中由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的所有CAN信号标识下的CAN信号物理值反馈给所述第一请求方。
在一种实施方式中,第二解析单元26,包括:
第三确定模块,用于当所述初始化的CAN信号基本信息包括CAN信号起始位、CAN信号长度、用于表征CAN信号有无符号的符号标识、CAN信号的因子和CAN信号的偏移量,所述目标CAN信号基本信息包括CAN信号16进制值、CAN信号接收时间和CAN信号物理值时,将所述目标CAN报文基本信息中的CAN报文接收时间确定为所述目标CAN信号基本信息中的CAN信号接收时间。
转换模块,用于将所述目标CAN报文基本信息中的CAN报文16进制值转换为CAN报文二进制值。
选取模块,用于在按照所述CAN报文二进制值从右向左的排序条件下,根据所述目标CAN信号标识对应的初始化的CAN信号基本信息中的CAN信号起始位和CAN信号长度,从所述CAN报文二进制值中选取长度为所述CAN信号长度的二进制值作为CAN信号二进制值。
转换模块,还用于将所述CAN信号二进制值转换为CAN信号16进制值,将转换得到的CAN信号16进制值作为所述目标CAN信号基本信息中的CAN信号16进制值,若所述目标CAN信号标识对应的初始化的CAN信号基本信息中符号标识表示无符号,则根据无符号的转换规则将所述CAN信号二进制值转换为CAN信号十进制值,若所述目标CAN信号标识对应的初始化的CAN信号基本信息中符号标识表示有符号,则根据有符号的转换规则将所述CAN信号二进制值转换为CAN信号十进制值。
计算模块,用于根据所述目标CAN信号标识对应的初始化的CAN信号基本信息中CAN信号的因子和CAN信号的偏移量对所述CAN信号十进制值进行计算得到所述目标CAN信号基本信息中的CAN信号物理值。
在一种实施方式中,第二更新单元27,用于在所述目标CAN信号标识对应的所述初始化的CAN信号基本信息的基础上增加所述目标CAN信号基本信息。
在一种实施方式中,所述装置还包括:
第四获取单元,用于在对所述报文数据结构和所述信号数据结构更新后,获取第二请求方发送的第二回调函数和待查询的CAN信号标识。
第二查询单元,用于从所述信号数据结构中查询所述待查询的CAN信号标识对应的CAN信号物理值。
第二反馈单元,用于通过所述第二回调函数将查询到的CAN信号物理值反馈给所述第二请求方。
在一种实施方式中,所述报文数据结构以表格形式存储在报文MAP表中,和/或,所述信号数据结构以表格形式存储在信号MAP表中。
基于上述方法实施例,本发明的另一实施例提供了一种存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现如上所述的方法。
基于上述方法实施例,本发明的另一实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
上述系统、装置实施例与方法实施例相对应,与该方法实施例具有同样的技术效果,具体说明参见方法实施例。装置实施例是基于方法实施例得到的,具体的说明可以参见方法实施例部分,此处不再赘述。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (10)
1.一种CAN数据的解析方法,其特征在于,所述方法包括:
获取根据控制器局域网络CAN数据库文件生成的可扩展标记语言XML文件,其中,所述XML文件包括CAN报文参数信息、CAN信号参数信息、用于根据所述CAN报文参数信息对CAN报文进行解析的第一解析规则和用于根据所述CAN信号参数信息对CAN报文进行解析的第二解析规则;
将所述CAN报文参数信息存储到报文数据结构中,以及将所述CAN信号参数信息存储到信号数据结构中,其中,所述报文数据结构包括所述CAN报文参数信息中CAN通道标识、CAN报文标识和初始化的CAN报文基本信息之间的映射关系,所述信号数据结构包括CAN信号标识与所述CAN信号参数信息中初始化的CAN信号基本信息之间的映射关系,所述CAN信号标识包括所述CAN通道标识、所述CAN报文标识和所述CAN信号参数信息中的CAN信号名称;
获取待解析的CAN报文,并从所述待解析的CAN报文中获取目标CAN通道标识和目标CAN报文标识;
根据所述第一解析规则对所述待解析的CAN报文进行解析获得目标CAN报文基本信息,并使用所述目标CAN报文基本信息更新目标初始化的CAN报文基本信息,其中,所述目标初始化的CAN报文基本信息为与所述目标CAN通道标识和所述目标CAN报文标识的组合对应的初始化的CAN报文基本信息;
根据所述第二解析规则对所述待解析的CAN报文进行解析获得由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息,并使用所述目标CAN信号基本信息更新所述目标CAN信号标识对应的所述初始化的CAN信号基本信息。
2.如权利要求1所述的方法,其特征在于,当所述初始化的CAN报文基本信息包括CAN报文字节序和CAN报文长度,所述目标CAN报文基本信息包括CAN报文16进制值和CAN报文接收时间时,根据所述第一解析规则对所述待解析的CAN报文进行解析获得目标CAN报文基本信息,包括:
将接收到所述待解析的CAN报文的时间确定为所述目标CAN报文基本信息中的CAN报文接收时间;
若所述目标初始化的CAN报文基本信息中的CAN报文字节序为Motorola字节序,则将所述待解析的CAN报文中包含的长度为所述CAN报文长度的16进制值确定为所述目标CAN报文基本信息中的CAN报文16进制值;
若所述目标初始化的CAN报文基本信息中的CAN报文字节序为Intel字节序,则对所述待解析的CAN报文中包含的长度为所述CAN报文长度的16进制值以一个字节为单位进行逆向排序,并将逆向排序后的16进制值确定为所述目标CAN报文基本信息中的CAN报文16进制值。
3.如权利要求2所述的方法,其特征在于,使用所述目标CAN报文基本信息更新目标初始化的CAN报文基本信息,包括:
在所述目标初始化的CAN报文基本信息基础上增加所述目标CAN报文基本信息。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
在对所述报文数据结构和所述信号数据结构更新后,获取第一请求方发送的第一回调函数、待查询的CAN通道标识和待查询CAN报文标识;
从所述报文数据结构中查询由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的CAN报文基本信息,并从查询到的CAN报文基本信息中获取CAN报文16进制值;
通过所述第一回调函数将获取到的CAN报文16进制值反馈给所述第一请求方。
5.如权利要求4所述的方法,其特征在于,当所述目标CAN报文基本信息还包括CAN通道标识和CAN报文标识的组合与信号数据结构的链接之间映射关系时,在从所述报文数据结构中查询由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的CAN报文基本信息之后,所述方法还包括:
从CAN通道标识和CAN报文标识的组合与信号数据结构的链接之间映射关系中获取由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的信号数据结构的链接;
将获取到的链接所对应的信号数据结构或者所述获取到的链接所对应的信号数据结构中由所述待查询的CAN通道标识和所述待查询CAN报文标识的组合对应的所有CAN信号标识下的CAN信号物理值反馈给所述第一请求方。
6.如权利要求2所述的方法,其特征在于,当所述初始化的CAN信号基本信息包括CAN信号起始位、CAN信号长度、用于表征CAN信号有无符号的符号标识、CAN信号的因子和CAN信号的偏移量,所述目标CAN信号基本信息包括CAN信号16进制值、CAN信号接收时间和CAN信号物理值时,根据所述第二解析规则对所述待解析的CAN报文进行解析获得由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息,包括:
将所述目标CAN报文基本信息中的CAN报文接收时间确定为所述目标CAN信号基本信息中的CAN信号接收时间;
将所述目标CAN报文基本信息中的CAN报文16进制值转换为CAN报文二进制值;
在按照所述CAN报文二进制值从右向左的排序条件下,根据所述目标CAN信号标识对应的初始化的CAN信号基本信息中的CAN信号起始位和CAN信号长度,从所述CAN报文二进制值中选取长度为所述CAN信号长度的二进制值作为CAN信号二进制值;
将所述CAN信号二进制值转换为CAN信号16进制值,将转换得到的CAN信号16进制值作为所述目标CAN信号基本信息中的CAN信号16进制值;
若所述目标CAN信号标识对应的初始化的CAN信号基本信息中符号标识表示无符号,则根据无符号的转换规则将所述CAN信号二进制值转换为CAN信号十进制值,若所述目标CAN信号标识对应的初始化的CAN信号基本信息中符号标识表示有符号,则根据有符号的转换规则将所述CAN信号二进制值转换为CAN信号十进制值;
根据所述目标CAN信号标识对应的初始化的CAN信号基本信息中CAN信号的因子和CAN信号的偏移量对所述CAN信号十进制值进行计算得到所述目标CAN信号基本信息中的CAN信号物理值。
7.如权利要求6所述的方法,其特征在于,使用所述目标CAN信号基本信息更新所述目标CAN信号标识对应的所述初始化的CAN信号基本信息,包括:
在所述目标CAN信号标识对应的所述初始化的CAN信号基本信息的基础上增加所述目标CAN信号基本信息。
8.如权利要求6所述的方法,其特征在于,所述方法还包括:
在对所述报文数据结构和所述信号数据结构更新后,获取第二请求方发送的第二回调函数和待查询的CAN信号标识;
从所述信号数据结构中查询所述待查询的CAN信号标识对应的CAN信号物理值;
通过所述第二回调函数将查询到的CAN信号物理值反馈给所述第二请求方。
9.如权利要求1-8中任一项所述的方法,其特征在于,所述报文数据结构以表格形式存储在报文MAP表中,和/或,所述信号数据结构以表格形式存储在信号MAP表中。
10.一种CAN数据的解析装置,其特征在于,所述装置包括:
第一获取单元,用于获取根据控制器局域网络CAN数据库文件生成的可扩展标记语言XML文件,其中,所述XML文件包括CAN报文参数信息、CAN信号参数信息、用于根据所述CAN报文参数信息对CAN报文进行解析的第一解析规则和用于根据所述CAN信号参数信息对CAN报文进行解析的第二解析规则;
存储单元,用于将所述CAN报文参数信息存储到报文数据结构中,以及将所述CAN信号参数信息存储到信号数据结构中,其中,所述报文数据结构包括所述CAN报文参数信息中CAN通道标识、CAN报文标识和初始化的CAN报文基本信息之间的映射关系,所述信号数据结构包括CAN信号标识与所述CAN信号参数信息中初始化的CAN信号基本信息之间的映射关系,所述CAN信号标识包括所述CAN通道标识、所述CAN报文标识和所述CAN信号参数信息中的CAN信号名称;
第二获取单元,用于获取待解析的CAN报文,并从所述待解析的CAN报文中获取目标CAN通道标识和目标CAN报文标识;
第一解析单元,用于根据所述第一解析规则对所述待解析的CAN报文进行解析获得目标CAN报文基本信息;
第一更新单元,用于使用所述目标CAN报文基本信息更新目标初始化的CAN报文基本信息,其中,所述目标初始化的CAN报文基本信息为与所述目标CAN通道标识和所述目标CAN报文标识的组合对应的初始化的CAN报文基本信息;
第二解析单元,用于根据所述第二解析规则对所述待解析的CAN报文进行解析获得由所述目标CAN通道标识和所述目标CAN报文标识的组合对应的目标CAN信号标识下的目标CAN信号基本信息;
第二更新单元,用于使用所述目标CAN信号基本信息更新所述目标CAN信号标识对应的所述初始化的CAN信号基本信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111514547.XA CN114282519B (zh) | 2021-12-13 | 2021-12-13 | Can数据的解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111514547.XA CN114282519B (zh) | 2021-12-13 | 2021-12-13 | Can数据的解析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114282519A true CN114282519A (zh) | 2022-04-05 |
CN114282519B CN114282519B (zh) | 2024-06-21 |
Family
ID=80872017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111514547.XA Active CN114282519B (zh) | 2021-12-13 | 2021-12-13 | Can数据的解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114282519B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225424A (zh) * | 2022-09-21 | 2022-10-21 | 质子汽车科技有限公司 | 基于多核SoC的CAN总线信号解析方法、装置和系统 |
CN115277882A (zh) * | 2022-06-22 | 2022-11-01 | 东风汽车集团股份有限公司 | Can报文数据库建立方法、装置、车载电子设备及存储介质 |
CN115529110A (zh) * | 2022-09-30 | 2022-12-27 | 潍柴动力股份有限公司 | 数据处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888595A (zh) * | 2017-11-15 | 2018-04-06 | 许昌智能继电器股份有限公司 | 一种基于xml技术的嵌入式装置can规约解析方法 |
CN111797098A (zh) * | 2020-06-30 | 2020-10-20 | 北京经纬恒润科技有限公司 | 一种报文解析方法、装置及车载终端 |
-
2021
- 2021-12-13 CN CN202111514547.XA patent/CN114282519B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888595A (zh) * | 2017-11-15 | 2018-04-06 | 许昌智能继电器股份有限公司 | 一种基于xml技术的嵌入式装置can规约解析方法 |
CN111797098A (zh) * | 2020-06-30 | 2020-10-20 | 北京经纬恒润科技有限公司 | 一种报文解析方法、装置及车载终端 |
Non-Patent Citations (1)
Title |
---|
钟文浩: "电动汽车CAN报文的解析及应用", 《汽车电器》, no. 6, 20 June 2017 (2017-06-20), pages 13 - 16 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277882A (zh) * | 2022-06-22 | 2022-11-01 | 东风汽车集团股份有限公司 | Can报文数据库建立方法、装置、车载电子设备及存储介质 |
CN115277882B (zh) * | 2022-06-22 | 2023-08-29 | 东风汽车集团股份有限公司 | Can报文数据库建立方法、装置、车载电子设备及存储介质 |
CN115225424A (zh) * | 2022-09-21 | 2022-10-21 | 质子汽车科技有限公司 | 基于多核SoC的CAN总线信号解析方法、装置和系统 |
CN115529110A (zh) * | 2022-09-30 | 2022-12-27 | 潍柴动力股份有限公司 | 数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114282519B (zh) | 2024-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114282519A (zh) | Can数据的解析方法及装置 | |
CN110032459B (zh) | 消息队列配置方法、装置、计算机设备及存储介质 | |
CN110933146B (zh) | 一种数据转换方法、装置和服务器 | |
US8095622B1 (en) | Methods and systems for collecting information transmitted over a network | |
CN109460219B (zh) | 快速序列化接口控制文件的方法 | |
CN108881251B (zh) | 一种任意二进制设备接入解析与标准化的系统及方法 | |
CN110022289A (zh) | 数据传输方法、装置及系统 | |
CN110263222B (zh) | 一种数据获取方法、装置、设备及介质 | |
CN111552838A (zh) | 数据处理方法及装置、计算机设备、存储介质 | |
CN105049256A (zh) | 一种通用自定义接口报文实现方法及系统 | |
CN101807205A (zh) | 用于处理xml数据的处理模块、设备和方法 | |
CN114025027B (zh) | 数据传输脚本的运行方法、装置、存储介质和电子装置 | |
CN111385379A (zh) | eSIM终端的物联网标识方法及装置 | |
CN111694990B (zh) | 车辆数据的处理方法、装置及存储介质 | |
US20110282889A1 (en) | Method and Device for Distributed Configuration of Telematics Services in Motor Vehicle Systems | |
CN116346961A (zh) | 金融报文处理方法、装置、电子设备及存储介质 | |
CN112835573B (zh) | 数据查询方法和装置、电子设备及存储介质 | |
CN112866294B (zh) | 一种多协议适配方法、装置及可读存储介质 | |
CN112769741B (zh) | 一种消息通信方法及电子设备 | |
CN114330246A (zh) | 一种通用性数据流解析方法及系统 | |
CN111711605B (zh) | 一种用于物联网平台的数据协议主动解析方法 | |
CN113608889A (zh) | 消息数据处理方法、装置、设备和存储介质 | |
EP2719123B1 (en) | Message interoperability between platforms | |
CN112054955A (zh) | 基于网关的设备通信方法 | |
US20140156700A1 (en) | Method and apparatus for querying at least one value of at least one parameter of a module, and method and module for providing at least one value of at least one parameter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Room 601, Building 4, Jingwei Hengrun R&D Center, No. 2, Huixiang Road, Zhangjiawo Town, Xiqing District, Tianjin, 300380 Applicant after: Jingwei Hengrun (Tianjin) research and Development Co.,Ltd. Address before: 300380 Room 308, No. 9, Fengze Road, Xiqing automobile industrial zone (Zhangjiawo Industrial Zone), Xiqing District, Tianjin Applicant before: Jingwei Hengrun (Tianjin) research and Development Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |