CN113067821A - 基于单个或多个dbc文件的can报文的解析方法 - Google Patents
基于单个或多个dbc文件的can报文的解析方法 Download PDFInfo
- Publication number
- CN113067821A CN113067821A CN202110299499.0A CN202110299499A CN113067821A CN 113067821 A CN113067821 A CN 113067821A CN 202110299499 A CN202110299499 A CN 202110299499A CN 113067821 A CN113067821 A CN 113067821A
- Authority
- CN
- China
- Prior art keywords
- data frame
- dbc
- message
- data
- current
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Abstract
基于单个或多个DBC文件的CAN报文的解析方法,涉及CAN报文解析技术领域,特别是属于一种基于单个或多个DBC文件的CAN报文的解析方法。包括以下步骤:s1:将所需的CAN报文文件、DBC文件读取到开发平台;s2:读取CAN报文的第i行数据帧,并记录CAN报文的数据帧ID信息;s3:读取第j个DBC文件的数据帧ID信息;s4:判断当前DBC文件是否为当前数据帧的通信格式。本方法可以忽略对于多种DBC文件进行手动查找录入的过程,减少人为因素带来的时间成本。本发明通过针对DBC文件库的检索,对CAN报文进行逐条解析,极大程度上冗余了各种DBC文件,并节省了查找对应DBC文件的时间。
Description
技术领域
本发明涉及CAN报文解析技术领域,特别是属于一种基于单个或多个DBC 文件的CAN报文的解析方法。
背景技术
随着整车控制器在汽车上的应用越来越广泛,CAN总线在车上的使用也越来越多。当前的汽车生产厂家,多数整车控制器都是从厂商处购进,不具备具体技术。在汽车发生故障时,能否快速的针对CAN总线读取的报文进行解析,对于快速找到故障点起着至关重要的作用。
目前,汽车生产商针对不同的车型有不同的DBC传输协议,大大增加了CAN 报文解析的难度,这样,对于汽车的故障点排查就造成了巨大困难。另外,现有市面上的解析工具多是针对单DBC文件来解析CAN报文,对于多DBC协议的 CAN报文解析需要多次执行,解析效率较低,过程繁琐。
发明内容
本发明的目的即在于提供一种基于单个或多个DBC文件的CAN报文的解析方法,以达到能够对基于不同DBC传输协议的CAN报文进行读取,并将读取到数据帧解析为简单直观的文本数据进行显示的目的。
本发明所提供的基于单个或多个DBC文件的CAN报文的解析方法,其特征在于,包括以下步骤:
s1:将所需的CAN报文文件、DBC文件读取到开发平台;
s2:读取CAN报文的第i行数据帧,并记录CAN报文的数据帧ID信息,并将CAN报文的数据帧ID转换为字符串格式,当i>M时,解析结束;其中,i定义为当前CAN报文的数据帧的行数,M为当前CAN报文数据帧的最大行数;
s3:读取第j个DBC文件的数据帧ID信息,并将DBC的数据帧ID转换为字符串格式,当j>N时,定义j=1,i=i+1,返回步骤s2;其中,j定义为当前调用DBC文件的顺序,N为当前所有的DBC文件的个数,
s4:判断当前DBC文件是否为当前数据帧的通信格式,包括以下事件处理机制:
事件a:DBC的数据帧ID信息与当前CAN报文的数据帧ID相同,记录当前DBC的数据帧ID的数据量的名称、起始位、数据长度、高低位设置、增益和偏移量等赋值到对应变量,写入Excel中,作为对应解析所得数据的表头;当前CAN报文根据读取当前DBC的数据帧ID进行对应信息检索,检索出的目标数据帧通过数据解析计算,将CAN报文解析为直观读取的实际值,对应设定的表头存入Excel中对应的数据分类下,保存Excel,此时,定义j=1,i=i+1,返回步骤s2;
事件b:DBC的数据帧ID信息与当前CAN报文的数据帧ID不同,此时,定义j=j+1,返回步骤s3。
进一步的,在事件a中,上述数据解析计算过程如下:
1)调用检索出的目标数据帧中信号变量的起始位和数据长度,并读取信号变量的数据帧;
2)判断信号变量数据帧的高低位是否高位在前,是则进行十位制转换,否则进行高低位互换;
3)判断是否有偏移量,根据偏移量还原数据;
4)判断是否有增益,根据增益还原数据;
5)得到CAN报文所对应的可直观读取的实际值。
进一步的,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本发明的基于单个或多个DBC文件的 CAN报文的解析方法的步骤。
本发明所提供的基于单个或多个DBC文件的CAN报文的解析方法,通过对应的DBC格式的协议与含有此协议的CAN报文,可直接解析出所需的数据信息并存入Excel中,从而将CAN报文解析为可以直观读取的实际值。本方法可以忽略对于多种DBC文件进行手动查找录入的过程,减少人为因素带来的时间成本。本发明通过针对DBC文件库的检索,对CAN报文进行逐条解析,极大程度上冗余了各种DBC文件,并节省了查找对应DBC文件的时间。对于CAN 总线同时包含多个DBC协议,向多个目标传输数据,本发明可以在只进行依次操作的情况下,就能够将所有需要的数据帧全部解析。另外,本发明可以根据实际工作的要求,随时修改DBC文件库,可以有目的的解析所需数据帧。综上所述,本发明具有提高CAN报文解析效率的积极效果。
附图说明
图1为本发明的算法流程图;
图2为本发明的数据解析计算的算法流程图;
图3为本发明解析所得的数据量信息示意图;
图4-5为本发明生成information.xls的Excel文件的部分内容示意图。
具体实施方式
如图1-2所示,本发明所提供的基于单个或多个DBC文件的CAN报文的解析方法,具体实现过程如下:
s1:将所需的CAN报文文件、DBC文件读取到开发平台;
s2:读取CAN报文的第i行数据帧,并记录CAN报文的数据帧ID信息,并将 CAN报文的数据帧ID转换为字符串格式,当i>M时,解析结束;其中,i定义为当前CAN报文的数据帧的行数,i≤M,M为当前CAN报文数据帧的最大行数;
s3:读取第j个DBC文件的数据帧ID信息,并将DBC的数据帧ID转换为字符串格式,当j>N时,定义j=1,i=i+1,返回步骤s2;其中,j定义为当前调用DBC文件的顺序,且j≤N,N为当前所有的DBC文件的个数, s4:判断当前DBC文件是否为当前数据帧的通信格式,包括以下事件处理机制:
事件a:DBC的数据帧ID信息与当前CAN报文的数据帧ID相同,记录当前DBC的数据帧ID的数据量的名称、起始位、数据长度、高低位设置、增益和偏移量等赋值到对应变量,写入Excel中,作为对应解析所得数据的表头;当前CAN报文根据读取当前DBC的数据帧ID进行对应信息检索,检索出的目标数据帧通过数据解析计算,将CAN报文解析为直观读取的实际值,对应设定的表头存入Excel中对应的数据分类下,保存Excel,此时,定义j=1,i=i+1,返回步骤s2。事件b:DBC的数据帧ID信息与当前CAN报文的数据帧ID不同,此时,定义j=j+1,返回步骤s3。其中,在事件a中,上述数据解析计算主要通过如下过程实现:
1)调用检索出的目标数据帧中信号变量的起始位和数据长度,并读取信号变量的数据帧;
2)判断信号变量数据帧的高低位是否高位在前,是则进行十位制转换,否则进行高低位互换;
3)判断是否有偏移量,根据偏移量还原数据;
4)判断是否有增益,根据增益还原数据;
5)得到CAN报文所对应的可直观读取的实际值。
下面,通过一个具体的例子,对本发明的上述数据解析计算过程做进一步的描述说明。
DBC文件中,BO开头为对应CAN报文的数据帧ID,本实例中的对应CAN 报文ID设置如下:
“BO_2350847233VCU发给BMS:8VCU”
根据DBC协议ID的生成过程,我们可反推出此DBC对应的CAN报文ID 为0x0cef7d03。
以下为数据帧实例中的一条实际读取的帧ID为0x0cef7d03的一个数据帧:
现选取DBC中电池最高单体电压作为验证实例,电池最高单体电压的DBC 通信设定如下:“SG_电池最高单体电压_W:24|16@1+(0.001,0)[0|0]"" Vector__XXX”
从上述设定,我们可以看出:电池最高单体电压信号的起始位为24,数据长度为16,高低位设置为1,增益为0.001,偏移量为0。根据数据帧的数据 0e 69 6f 93 0c 3f 660c,将其转换为2进制可得如下信息:
00001110 0110 1001 0110 1111 1001 0011 0000 1100 0011 1111 0110 01100000 1100
由电池最高单体电压信号的起始位为24,数据长度为16,我们可以看出 10010011 0000 1100为对应的数据位。由高低位设置为1,增益为0.001,偏移量为0,我们可知原数据是先增大1000倍,然后加0,按照先高位后低位的顺序生成的数据位,因此,我们可以得到对应的电池最高单体电压为37.644。
本发明还提供了一种计算机可读存储介质,作为解析工具。解析工具上存储有计算机程序,计算机程序被处理器执行时实现本发明的基于单个或多个 DBC文件的CAN报文的解析方法的步骤。以下,为基于本发明的方法对DBC 协议下的CAN报文解析验证。
将所需的DBC文件与CAN报文文件分别以test.dbc,test.xls命名,并与解析工具放在同一根目录下。执行解析工具,如图3所示,桌面会弹出解析所得的数据量信息,如图4-5所示,生成具有所需的数据信息的information.xls 的Excel文件,其中,本次解析CAN报文30000帧,生成实际可读数据31566 条。本次运行约5秒。
Claims (3)
1.一种基于单个或多个DBC文件的CAN报文的解析方法,其特征在于,包括以下步骤:
包括以下步骤:
s1:将所需的CAN报文文件、DBC文件读取到开发平台;
s2:读取CAN报文的第i行数据帧,并记录CAN报文的数据帧ID信息,并将CAN报文的数据帧ID转换为字符串格式,当i>M时,解析结束;其中,i为当前CAN报文的数据帧的行数,M为当前CAN报文数据帧的最大行数;
s3:读取第j个DBC文件的数据帧ID信息,并将DBC的数据帧ID转换为字符串格式,当j>N时,定义j=1,i=i+1,返回步骤s2;其中,j为当前调用DBC文件的顺序,N为当前所有的DBC文件的个数;
s4:判断当前DBC文件是否为当前数据帧的通信格式,包括以下事件处理机制:
事件a:DBC的数据帧ID信息与当前CAN报文的数据帧ID相同,记录当前DBC的数据帧ID的数据量的名称、起始位、数据长度、高低位设置、增益和偏移量等赋值到对应变量,写入Excel中,作为对应解析所得数据的表头;当前CAN报文根据读取当前DBC的数据帧ID进行对应信息检索,检索出的目标数据帧通过数据解析计算,将CAN报文解析为直观读取的实际值,对应设定的表头存入Excel中对应的数据分类下,保存Excel,此时,定义j=1,i=i+1,返回步骤s2;
事件b:DBC的数据帧ID信息与当前CAN报文的数据帧ID不同,此时,定义j=j+1,返回步骤s3。
2.根据权利要求1所述的基于单个或多个DBC文件的CAN报文的解析方法,其特征还在于,在事件a中,上述数据解析计算过程如下:
1)调用检索出的目标数据帧中信号变量的起始位和数据长度,并读取信号变量的数据帧;
2)判断信号变量数据帧的高低位是否高位在前,是则进行十位制转换,否则进行高低位互换;
3)判断是否有偏移量,根据偏移量还原数据;
4)判断是否有增益,根据增益还原数据;
5)得到CAN报文所对应的可直观读取的实际值。
3.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,计算机程序被处理器执行时实现权利要求1-2中任意一项所述的基于单个或多个DBC文件的CAN报文的解析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110299499.0A CN113067821A (zh) | 2021-03-22 | 2021-03-22 | 基于单个或多个dbc文件的can报文的解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110299499.0A CN113067821A (zh) | 2021-03-22 | 2021-03-22 | 基于单个或多个dbc文件的can报文的解析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113067821A true CN113067821A (zh) | 2021-07-02 |
Family
ID=76563314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110299499.0A Pending CN113067821A (zh) | 2021-03-22 | 2021-03-22 | 基于单个或多个dbc文件的can报文的解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113067821A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114390119A (zh) * | 2021-12-28 | 2022-04-22 | 杭州鸿泉物联网技术股份有限公司 | 自适应多车型can数据自动解析方法及系统 |
CN114448744A (zh) * | 2022-01-28 | 2022-05-06 | 航天科工火箭技术有限公司 | 复用标识号的can数据解析方法、装置、设备及介质 |
CN114979314A (zh) * | 2022-06-30 | 2022-08-30 | 重庆长安新能源汽车科技有限公司 | 一种汽车can数据自动解析方法及系统、计算机可读存储介质、电子设备 |
CN114448744B (zh) * | 2022-01-28 | 2024-05-03 | 航天科工火箭技术有限公司 | 复用标识号的can数据解析方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107132832A (zh) * | 2016-02-29 | 2017-09-05 | 株洲南车时代电气股份有限公司 | 一种基于can通讯的dbc文件解析及其程序设计方法 |
CN107347101A (zh) * | 2016-08-19 | 2017-11-14 | 武汉英泰斯特电子技术有限公司 | 一种车联网can数据采集方法 |
CN107992026A (zh) * | 2017-12-13 | 2018-05-04 | 南京越博动力系统股份有限公司 | 一种基于labveiw的解析dbc分析报文的方法 |
CN108415408A (zh) * | 2018-03-16 | 2018-08-17 | 宁波杉杉汽车有限公司 | 基于can通讯的汽车报文解析及故障诊断方法 |
CN108600192A (zh) * | 2018-04-03 | 2018-09-28 | 南京越博动力系统股份有限公司 | 一种基于正则表达式的dbc文件解析及报文分析方法 |
CN110380842A (zh) * | 2019-08-08 | 2019-10-25 | 北方工业大学 | 适用于智慧网联汽车的can总线报文签名方法、装置和系统 |
-
2021
- 2021-03-22 CN CN202110299499.0A patent/CN113067821A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107132832A (zh) * | 2016-02-29 | 2017-09-05 | 株洲南车时代电气股份有限公司 | 一种基于can通讯的dbc文件解析及其程序设计方法 |
CN107347101A (zh) * | 2016-08-19 | 2017-11-14 | 武汉英泰斯特电子技术有限公司 | 一种车联网can数据采集方法 |
CN107992026A (zh) * | 2017-12-13 | 2018-05-04 | 南京越博动力系统股份有限公司 | 一种基于labveiw的解析dbc分析报文的方法 |
CN108415408A (zh) * | 2018-03-16 | 2018-08-17 | 宁波杉杉汽车有限公司 | 基于can通讯的汽车报文解析及故障诊断方法 |
CN108600192A (zh) * | 2018-04-03 | 2018-09-28 | 南京越博动力系统股份有限公司 | 一种基于正则表达式的dbc文件解析及报文分析方法 |
CN110380842A (zh) * | 2019-08-08 | 2019-10-25 | 北方工业大学 | 适用于智慧网联汽车的can总线报文签名方法、装置和系统 |
Non-Patent Citations (1)
Title |
---|
花信风ZQ: "CAN报文DBC解析的编程方法说明", 《个人图书馆》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114390119A (zh) * | 2021-12-28 | 2022-04-22 | 杭州鸿泉物联网技术股份有限公司 | 自适应多车型can数据自动解析方法及系统 |
CN114448744A (zh) * | 2022-01-28 | 2022-05-06 | 航天科工火箭技术有限公司 | 复用标识号的can数据解析方法、装置、设备及介质 |
CN114448744B (zh) * | 2022-01-28 | 2024-05-03 | 航天科工火箭技术有限公司 | 复用标识号的can数据解析方法、装置、设备及介质 |
CN114979314A (zh) * | 2022-06-30 | 2022-08-30 | 重庆长安新能源汽车科技有限公司 | 一种汽车can数据自动解析方法及系统、计算机可读存储介质、电子设备 |
CN114979314B (zh) * | 2022-06-30 | 2023-04-25 | 重庆长安新能源汽车科技有限公司 | 一种汽车can数据自动解析方法及系统、计算机可读存储介质、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107273280B (zh) | 一种日志处理方法、装置、电子设备和存储介质 | |
CN107656520B (zh) | Can总线数据解析方法及计算机可读存储介质 | |
CN113067821A (zh) | 基于单个或多个dbc文件的can报文的解析方法 | |
US20210291843A1 (en) | Method and apparatus for acquiring sample deviation data, and electronic device | |
CN111258290A (zh) | 整车控制器自动化测试方法及系统 | |
CN110769002A (zh) | 基于LabVIEW的报文解析方法、系统、电子设备和介质 | |
CN112416775A (zh) | 基于人工智能的软件自动化测试方法、装置及电子设备 | |
CN110569230A (zh) | 数据库设计模型与设计文档互相转换方法、系统及设备 | |
CN113010473B (zh) | 一种编辑yaml文件的方法和设备 | |
CN107679159B (zh) | 故障诊断类问题答复的生成方法、装置、服务器及存储介质 | |
CN109657127A (zh) | 一种答案获取方法、装置、服务器及存储介质 | |
CN113609008A (zh) | 测试结果分析方法、装置和电子设备 | |
CN111427917A (zh) | 搜索数据处理方法及相关产品 | |
CN108132783A (zh) | 一种Web App的配置方法及装置 | |
CN116629606A (zh) | 一种基于电力数据的产业链预警方法、装置、设备及介质 | |
CN107515720B (zh) | 一种消息处理方法、介质、装置和计算设备 | |
CN116226681A (zh) | 一种文本相似性判定方法、装置、计算机设备和存储介质 | |
CN110888920B (zh) | 一种项目功能相似度的确定方法及装置 | |
CN110853327B (zh) | 一种基于单片机的船舶机舱设备数据现场调试采集方法及装置 | |
CN114171107A (zh) | 固态硬盘vpd信息的检测方法、装置、设备及存储介质 | |
CN116450487B (zh) | 一种ufs日志分析方法、装置、可读存储介质及电子设备 | |
CN112162951A (zh) | 一种信息检索方法、服务器及存储介质 | |
CN110471961A (zh) | 一种产品需求获取方法、装置、设备和存储介质 | |
CN114124992B (zh) | 整车域控制器的运行状态监控方法、装置、设备和系统 | |
CN110609990B (zh) | 一种基于人工智能的结构化数据文本编辑方法及系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210702 |