CN113542086B - Can信号起始位置计算方法、dbc文件生成方法 - Google Patents
Can信号起始位置计算方法、dbc文件生成方法 Download PDFInfo
- Publication number
- CN113542086B CN113542086B CN202110721365.3A CN202110721365A CN113542086B CN 113542086 B CN113542086 B CN 113542086B CN 202110721365 A CN202110721365 A CN 202110721365A CN 113542086 B CN113542086 B CN 113542086B
- Authority
- CN
- China
- Prior art keywords
- signal
- file
- dbc
- writing
- dbc file
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种CAN信号起始位置计算方法及DBC文件生成方法,属于汽车检测控制技术领域,包括:基于逆推算方法计算出CAN信号起始位置,从CAN信号列表中提取帧报文信息和基本属性信息;基于CAN信号起始位置、帧报文信息和基本属性信息,按照DBC标准文件结构编写DBC文件。本发明可实现运行程序后自动生成标准的DBC文件。
Description
技术领域
本发明涉及汽车检测控制技术领域,特别涉及一种DBC文件中CAN信号起始位置计算方法及DBC文件生成方法。
背景技术
目前CAN通信依然是汽车行业主流通讯方式,大部分主机厂使用Excel管理及发布维护CAN信号,如图1所示。而这些CAN消息少则几十个,多则几百个。现阶段大部分供应商基于AUTOSAR工具链导入DBC文件后生成CAN通信代码,其存在的缺陷在于:一是,在拿到客户CAN通信矩阵后使用CANdb工具手动编辑这些CAN信号会非常耗时、效率低下;二是,若在自动生成DBC文件时,以Motorola格式低位(LSB)在前,高位(MSB)在后的方式,使用LSB作为DBC信号的起始位置进行编辑,会造成信号映射错误;三是,人为因素将增加信号编辑错误的概率;四是,项目在开发周期内,存在CAN信号的增加及减少,若客户信号变更还需手动编辑DBC文件,存在编辑错误的风险,造成管理及维护不方便。
发明内容
本发明的目的在于克服现有技术存在的缺陷,自动准确的生成标准的DBC文件。
为实现以上目的,一方面,本发明采用一种CAN信号起始位置计算方法,包括:
获取CAN信号列表的信号起始位LSB的值和信号的长度;
根据信号起始位LSB的值,查找该值所在的行m和列n,m和n分别为二维数组Matrix[m][n]的行数和列数,0≤m≤7,0≤n≤7;
令j=n+1,j表示从起始位LSB所在的行向右数的次数;
判断i是否小于或等于信号的长度;
若否,返回Matrix[m][n],得到CAN信号起始位置;
若是,令j=j-1,并判断j是否等于零;
若否,令j=j-1;
若是,令m=m-1和j=8,并重新判断i是否小于或等于信号的长度。
进一步地,所述二维数组Matrix[m][n]为预先按照Motorola格式的DBC文件定义得到。
进一步地,所述二维数组Matrix[m][n]=
[7,6,5,4,3,2,1,0],
[15,14,13,12,11,10,9,8],
[23,22,21,20,19,18,17,16],
[31,30,29,28,27,26,25,24],
[39,38,37,36,35,34,33,32],
[47,46,45,44,43,42,41,40],
[55,54,53,52,51,50,49,48],
[63,62,61,60,59,58,57,56]。
第二方面,采用一种DBC文件生成方法,利用如上所述的CAN信号起始位置计算方法计算出CAN信号起始位置,包括:
从CAN信号列表中提取帧报文信息和基本属性信息;
基于CAN信号起始位置、帧报文信息和基本属性信息,按照DBC标准文件结构编写DBC文件。
进一步地,所述帧报文信息包括报文的ID、起始位、信号长度、精度和偏置、最大和最小值以及发送和接收的网络节点内容;
所述基本属性信息包括信号名称、文件基本参数及信号内容描述。
进一步地,所述基于CAN信号起始位置和帧报文信息,按照DBC标准文件结构编写DBC文件,包括:
基于Python使用写入文件函,编写DBC文件的版本信息及符号定义段和波特率定义段;
将读取网络节点内容写入DBC文件的网络节点定义段;
将CAN信号起始位置和帧报文信息写入DBC文件的报文帧定义段和CAN消息定义段;
将所述基本属性信息分别写入DBC文件的信号注解说明段、文件基本参数及属性定义段以及数值表定义段。
进一步地,所述将所述基本属性信息分别写入DBC文件的信号注解说明段、文件基本参数及属性定义段以及数值表定义段,包括:
将所述信号名称写入DBC文件的所述信号注解说明段;
将所述文件基本参数写入DBC文件的所述文件基本参数及属性定义段;
将所述信号描述写入DBC文件的所述数值表定义段。
进一步地,在所述将CAN信号起始位置和帧报文信息写入DBC文件的报文帧定义段和CAN消息定义段之前,还包括:
使用正则表达式将16进制的所述CAN信号起始位置和帧报文信息转换为10进制数据。
进一步地,在所述将所述信号内容描述写入DBC文件的所述数值表定义段之前,还包括:
使用正则表达式将16进制的所述信号内容描述转换为10进制数据。
第三方面,采用一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行可实现如上所述的CAN信号起始位置计算方法。
与现有技术相比,本发明存在以下技术效果:本发明通过定义二维数组结构,利用二维数组逆推算计算CAN信号起始位置在DBC文件中的实际值,实现了运行程序以后自动生成标准的DBC文件。
附图说明
下面结合附图,对本发明的具体实施方式进行详细描述:
图1是一种CAN信号起始位置计算方法流程图;
图2是Motorola格式的DBC文件示例;
图3是DBC文件生成方法流程图;
图4是CAN信号列表;
图5是DBC文件结构图。
具体实施方式
为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。
如图1所示,本实施例公开了一种CAN信号起始位置计算方法,包括如下步骤S101至S109:
S101、获取CAN信号列表的信号起始位LSB的值和信号的长度;
S102、根据信号起始位LSB的值,查找该值所在的行m和列n,m和n分别为二维数组Matrix[m][n]的行数和列数,0≤m≤7,0≤n≤7;
S103、令j=n+1,j表示从起始位LSB所在的行向右数的次数;
S104、判断i是否小于或等于信号的长度,若否执行步骤S105,若是执行步骤S106;
S105、返回Matrix[m][n],得到CAN信号起始位置;
S106、令j=j-1;
S107、判断j是否等于零,若否执行步骤S108,若是执行步骤S109;
S108、令j=j-1;
S109、令m=m-1和j=8,并重新执行步骤S104。
本实施例利用定义的二维数组,通过逆运算使用CAN信号列表的信号起始位LSB的值Start_postion和信号的长度Signal_Length,计算信号MSB位的数值,作为DBC文件的信号起始位。
作为进一步优选的技术方案,如图2所示,本实施例中的二维数组Matrix[m][n]为8行8列的二维数组,是预先按照Motorola格式的DBC文件定义得到,具体为:Matrix[m][n]=
[7,6,5,4,3,2,1,0],
[15,14,13,12,11,10,9,8],
[23,22,21,20,19,18,17,16],
[31,30,29,28,27,26,25,24],
[39,38,37,36,35,34,33,32],
[47,46,45,44,43,42,41,40],
[55,54,53,52,51,50,49,48],
[63,62,61,60,59,58,57,56]。
如图3所示,本实施例公开了一种DBC文件生成方法,利用如上实施例所述的CAN信号起始位置计算方法计算出CAN信号起始位置,包括如下步骤S201至S202:
S201、从CAN信号列表中提取帧报文信息和基本属性信息;
S202、基于CAN信号起始位置、帧报文信息和基本属性信息,按照DBC标准文件结构编写DBC文件。
本实施例通过Python语言编写程序从如图4所示的CAN信号列表
中提取帧报文信息比如一帧报文的ID、信号名称、长度、起始位置等信
息,并根据逆推算法计算CAN信号起始位置在DBC文件中的实际值,按照如图5所示的DBC标准文件结构进行编写,实现了运行程序以后自动生成标准的DBC文件。
作为进一步优选的技术方案,所述帧报文信息包括报文的ID、起始位、信号长度、精度和偏置、最大和最小值以及发送和接收的网络节点内容;所述基本属性信息包括信号名称、文件基本参数、报文ID、信号的收发类型和周期以及信号内容描述。
作为进一步优选的技术方案,所述步骤S201:从CAN信号列表中提取帧报文信息和基本属性信息,具体包括:
打开CAN信号列表,通过For循环逐行遍历信号列表,在判断网络节点需要接收或者发送信号时,读取CAN信号列表当前行的内容,并提取报文的ID、起始位LSB、信号长度、精度和偏置、最大和最小值以及发送和接收的内容;
从CAN信号列表中遍历信号名称;
从CAN信号列表中遍历信号描述的内容。
作为进一步优选的方案,利用上述的CAN信号起始位置计算方法计算出CAN信号起始位置,具体为:基于二维数组,利用起始位LSB和信号长度进行逆推算,计算信号MSB的值作为信号的起始位。
作为进一步优选的技术方案,所述步骤S202:基于CAN信号起始位置和帧报文信息,按照DBC标准文件结构编写DBC文件,包括:
基于Python使用写入文件函,编写DBC文件的版本信息及符号定义段和波特率定义段;
将网络节点内容写入DBC文件的网络节点定义段;
将CAN信号起始位置和帧报文信息写入DBC文件的报文帧定义段和CAN消息定义段;
将所述基本属性信息分别写入DBC文件的信号注解说明段、文件基本参数及属性定义段以及数值表定义段。
作为进一步优选的技术方案,所述将所述基本属性信息分别写入DBC文件的信号注解说明段、文件基本参数及属性定义段以及数值表定义段,包括:
将所述信号名称写入DBC文件的所述信号注解说明段;
将所述信号的基本参数、报文ID、信号的收发类型及周期写入DBC文件的所述基本参数及属性定义段;
需要说明的是,基本参数来自于DBC文件初始模板,报文ID、信号的收发类型及周期通过图4所示的CAN信号列表获取。
将所述信号描述写入DBC文件的所述数值表定义段。
作为进一步优选的技术方案,在所述将CAN信号起始位置和帧报文信息写入DBC文件的报文帧定义段和CAN消息定义段之前,还包括:
使用正则表达式将16进制的所述CAN信号起始位置和帧报文信息转换为10进制数据。
作为进一步优选的技术方案,在所述将所述信号内容描述写入DBC文件的所述数值表定义段之前,还包括:
使用正则表达式将16进制的所述信号内容描述转换为10进制数据。
本实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行可实现如上所述的CAN信号起始位置计算方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种CAN信号起始位置计算方法,其特征在于,包括:
获取CAN信号列表的信号起始位LSB的值和信号的长度;
根据信号起始位LSB的值,查找该值所在的行m和列n,m和n分别为二维数组Matrix[m][n]的行数和列数,0≤m≤7,0≤n≤7;
根据信号长度确定拟推算法需要执行的次数,逆推算法执行的次数使用变量i定义,i取值范:1<=i<=信号长度Signal_Strength,初始值令i=Signal_Strength;
令j=n+1,j表示信号的起始位LSB所在的列依次向信号的MSB位逆推次数;
判断i是否大于等于1且小于等于信号的长度;
若否,n=j-1;返回Matrix[m][n],得到CAN信号起始位置;
若是,令j=j-1,i=i-1;
判断j是否等于零;
若否,令j=j-1,i=i-1;
若是,令m=m-1和j=8,并重新判断i是否大于等于1并且小于或等于信号的长度;
所述二维数组Matrix[m][n]为预先按照Motorola格式的DBC文件定义得到。
2.如权利要求1所述的CAN信号起始位置计算方法,其特征在于,所述二维数组Matrix[m][n]=
[7,6,5,4,3,2,1,0],
[15,14,13,12,11,10,9,8],
[23,22,21,20,19,18,17,16],
[31,30,29,28,27,26,25,24],
[39,38,37,36,35,34,33,32],
[47,46,45,44,43,42,41,40],
[55,54,53,52,51,50,49,48],
[63,62,61,60,59,58,57,56]。
3.一种DBC文件生成方法,其特征在于,利用如权利要求1或2所述的CAN信号起始位置计算方法计算出CAN信号起始位置,包括:
从CAN信号列表中提取帧报文信息和基本属性信息;
基于CAN信号起始位置、帧报文信息和基本属性信息,按照DBC标准文件结构编写DBC文件。
4.如权利要求3所述的DBC文件生成方法,其特征在于,所述帧报文信息包括报文的ID、起始位、信号长度、精度和偏置、最大和最小值以及发送和接收的网络节点内容;
所述基本属性信息包括信号名称、文件基本参数及信号内容描述。
5.如权利要求4所述的DBC文件生成方法,其特征在于,所述基于CAN信号起始位置和帧报文信息,按照DBC标准文件结构编写DBC文件,包括:
基于Python使用写入文件函,编写DBC文件的版本信息及符号定义段和波特率定义段;
将网络节点内容写入DBC文件的网络节点定义段;
将CAN信号起始位置和帧报文信息写入DBC文件的报文帧定义段和CAN消息定义段;
将所述基本属性信息分别写入DBC文件的信号注解说明段、文件基本参数及属性定义段以及数值表定义段。
6.如权利要求5所述的DBC文件生成方法,其特征在于,所述将所述基本属性信息分别写入DBC文件的信号注解说明段、文件基本参数及属性定义段以及数值表定义段,包括:
将所述信号名称写入DBC文件的所述信号注解说明段;
将所述文件基本参数写入DBC文件的所述文件基本参数及属性定义段;
将所述信号描述写入DBC文件的所述数值表定义段。
7.如权利要求6所述的DBC文件生成方法,其特征在于,在所述将CAN信号起始位置和帧报文信息写入DBC文件的报文帧定义段和CAN消息定义段之前,还包括:
使用正则表达式将16进制的所述CAN信号起始位置和帧报文信息转换为10进制数据。
8.如权利要求7所述的DBC文件生成方法,其特征在于,在所述将所述信号内容描述写入DBC文件的所述数值表定义段之前,还包括:
使用正则表达式将16进制的所述信号内容描述转换为10进制数据。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行可实现如权利要求1或2所述的CAN信号起始位置计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110721365.3A CN113542086B (zh) | 2021-06-28 | 2021-06-28 | Can信号起始位置计算方法、dbc文件生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110721365.3A CN113542086B (zh) | 2021-06-28 | 2021-06-28 | Can信号起始位置计算方法、dbc文件生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113542086A CN113542086A (zh) | 2021-10-22 |
CN113542086B true CN113542086B (zh) | 2023-03-10 |
Family
ID=78126134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110721365.3A Active CN113542086B (zh) | 2021-06-28 | 2021-06-28 | Can信号起始位置计算方法、dbc文件生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113542086B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691605B (zh) * | 2022-02-25 | 2024-05-14 | 智己汽车科技有限公司 | 一种dbc信号起始位格式转换方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600192A (zh) * | 2018-04-03 | 2018-09-28 | 南京越博动力系统股份有限公司 | 一种基于正则表达式的dbc文件解析及报文分析方法 |
CN111309684A (zh) * | 2020-03-13 | 2020-06-19 | 佛山市飞驰汽车制造有限公司 | 一种基于脚本工具解析汽车网络dbc文件的方法 |
CN112347047A (zh) * | 2019-08-09 | 2021-02-09 | 广州汽车集团股份有限公司 | 一种车辆数据文件生成方法及装置 |
CN112799321A (zh) * | 2020-12-14 | 2021-05-14 | 东风汽车集团有限公司 | 一种遵循can总线通信协议的dbc文件快速创建方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11780389B2 (en) * | 2019-12-13 | 2023-10-10 | Ut-Battelle, Llc | Controller area network decoder (CAN-D) |
-
2021
- 2021-06-28 CN CN202110721365.3A patent/CN113542086B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600192A (zh) * | 2018-04-03 | 2018-09-28 | 南京越博动力系统股份有限公司 | 一种基于正则表达式的dbc文件解析及报文分析方法 |
CN112347047A (zh) * | 2019-08-09 | 2021-02-09 | 广州汽车集团股份有限公司 | 一种车辆数据文件生成方法及装置 |
CN111309684A (zh) * | 2020-03-13 | 2020-06-19 | 佛山市飞驰汽车制造有限公司 | 一种基于脚本工具解析汽车网络dbc文件的方法 |
CN112799321A (zh) * | 2020-12-14 | 2021-05-14 | 东风汽车集团有限公司 | 一种遵循can总线通信协议的dbc文件快速创建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113542086A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113542086B (zh) | Can信号起始位置计算方法、dbc文件生成方法 | |
CN108241744A (zh) | 一种日志读取方法和装置 | |
CN115169568A (zh) | 量子计算处理方法、装置及电子设备 | |
CN106776779B (zh) | 基于Mac平台的JSON数据生成实体文件的方法 | |
CN115099210A (zh) | 一种清算文件构造方法及系统 | |
CN112016321B (zh) | 用于邮件处理的方法、电子设备和存储介质 | |
CN110598466B (zh) | 离线字段校验方法、装置、设备及计算机可读存储介质 | |
CN111026972B (zh) | 物联网中的订阅数据推送方法、装置、设备及存储介质 | |
CN114141236B (zh) | 语言模型更新方法、装置、电子设备及存储介质 | |
CN107506339B (zh) | 一种基于字符偏移的scd节点校验出错定位方法及装置 | |
CN112241445B (zh) | 一种标注方法及装置、电子设备、存储介质 | |
CN114492324A (zh) | 组件数据统计方法及装置 | |
CN112433954B (zh) | 一种测试用例数据的解析提取和导入方法及装置 | |
CN112162951A (zh) | 一种信息检索方法、服务器及存储介质 | |
CN108415814B (zh) | 自动记录字段变化方法、应用服务器及计算机可读存储介质 | |
CN113052325A (zh) | 在线模型的优化方法、装置、设备、存储介质及程序产品 | |
CN117478769A (zh) | 队列报文分析方法、系统、装置、设备及计算机存储介质 | |
CN116643902B (zh) | 接口数据模拟方法、装置、设备、存储介质和程序产品 | |
CN116340363B (zh) | 一种基于关系型数据库的数据存储、加载方法及相关装置 | |
CN117194403A (zh) | 数据质量检测方法、装置、设备及存储介质 | |
CN113127484A (zh) | 一种高效快捷的数据入库方法及设备 | |
CN114996208A (zh) | 一种信息的读取方法及装置、电子设备、存储介质 | |
CN118095214A (zh) | 一种基于产业数据的数据规范方法及系统 | |
CN117271466A (zh) | 分布式计算系统的日志处理方法、装置以及电子设备 | |
CN114936161A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |