CN114357946A - 一种基于dbc和excel文件生成嵌入式代码的方法 - Google Patents
一种基于dbc和excel文件生成嵌入式代码的方法 Download PDFInfo
- Publication number
- CN114357946A CN114357946A CN202210060233.5A CN202210060233A CN114357946A CN 114357946 A CN114357946 A CN 114357946A CN 202210060233 A CN202210060233 A CN 202210060233A CN 114357946 A CN114357946 A CN 114357946A
- Authority
- CN
- China
- Prior art keywords
- dbc
- file
- signal
- configuration
- excel
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
一种基于DBC和EXCEL文件生成嵌入式代码的方法,包括:(1)、DBC和EXCEL文件配置,DBC文件配置包括发送周期和是否需要生命信号关键字的配置;EXCEL文件配置是对所需转发的CAN报文进行配置;(2)、加载DBC文件和EXCEL文件,当完成发送CAN报文的发送周期配置和生命信号关键字的配置后自动加载DBC文件;当有CAN报文需要转发时,加载EXCEL文件;(3)、解析DBC文件和EXCEL文件;(4)、生成嵌入式代码。本发明生成嵌入式代码方法,配置灵活,功能多样,代码执行高效,减少程序员的工作量,降低人力和时间成本,同时减少代码的错误率,提高设计效率,缩短项目开发周期。
Description
技术领域
本发明涉及汽车通信技术领域,具体的说是指一种基于DBC和EXCEL文件生成嵌入式代码的方法。
背景技术
随着汽车工业的发展,无论是传统汽车还是新能源汽车,车载电子控制单元(ECU)在原有数量较多的基础上为了进一步实现功能安全等有效的性能,单个ECU的运算能力也要求相应提高。但随着ECU更多功能的集成化,所处理的运算代码量越来越庞大,比如整车控制器(VCU)以及目前主流发展的域控制器(DCU),在选用高性能的主控芯片(CPU)的同时,其运算代码量的大小和代码质量的高低等因素更是直接影响和体现ECU的性能。
CAN通信是汽车各ECU之间最基本也是最重要的通讯方式,各通信节点及其信号的基本物理信息包含在多个CAN数据库中,即DBC(Database CAN)文件。CAN通信信号自身存在的多样性和复杂性,以及处理CAN通信信号的接收、发送和计算等问题,势必造成此功能代码较为繁复,较多的代码会影响代码质量,如果没有快速且合理的处理方式,会进一步造成整个ECU的性能缺失。一般而言,传统的处理方式是,程序员根据DBC文件或CAN通信矩阵文件逐个或跳跃性的对所用信号进行比对,并根据特定的情况对信号进行接收、发送和计算等处理,工作量繁重且浪费时间。同时,可能因为惯性思维等因素而造成代码问题较多,虽然后续可以通过仿真等手段发现问题,但再次修改代码同样浪费大量的人力。另外,对于不同的项目或不同的程序员,CAN通信协议可能也存在较大差异,CAN通信代码设计也各有不同,所以随着设计的长时间持续和深入,代码版本会越来越多,没有统一的规范和标准,不利于项目的管控和后续设计的开展。
发明内容
本发明提供一种基于DBC和EXCEL文件生成嵌入式代码的方法,其主要目的在于解决现有汽车CAN通信功能代码较多较为繁复,处理工作量繁重且浪费时间等问题。
为解决上述技术问题,本发明采用如下技术方案:
一种基于DBC和EXCEL文件生成嵌入式代码的方法,包括如下步骤:(1)、根据项目工程对所用到的CAN通信信号进行DBC文件配置和EXCEL文件配置,其中,所述DBC文件配置是对信息ID的名称进行配置,包括发送周期和是否需要生命信号关键字的配置;所述EXCEL文件配置是对所需转发的CAN报文进行配置;(2)、加载DBC文件和EXCEL文件,当完成发送CAN报文的发送周期配置和生命信号关键字的配置后自动加载DBC文件;当有CAN报文需要转发时,加载EXCEL文件;(3)、解析DBC文件和EXCEL文件,根据DBC和EXCEL文件中的关键字等信息将有用的信息取出并一一放入所分配的计算机内存中;(4)、生成嵌入式代码。
进一步地,上述步骤(1)的DBC文件配置是建立DBC文件,并对其进行输入、输出、所属通道的分类, 分别放入所对应的文件路径。
更进一步地,若上述DBC文件已在所对应的文件路径下,则不用再次重新建立,只需根据实际的项目工程对DBC文件进行增加、删除和修改的操作。
进一步地,上述步骤(1)中发送周期关键字的配置是用于确定发送CAN报文的发送周期;上述步骤(1)中是否需要生命信号关键字的配置用于没有配置生命信号同时嵌入式代码需要用到生命信号的CAN报文。
进一步地,上述步骤(1)中对所需转发的CAN报文进行配置,具体是分别对CAN接收报文的ID、接收通道和数量,CAN转发报文的ID、转发目标通道和转发标志位进行配置。
进一步地,上述步骤(4)生成的嵌入式代码,包括根据发送CAN报文ID名称配置的发送周期生成的报文发送代码、根据是否需要生命信号的配置生成的CAN报文生命代码、根据EXCEL文件生成的需要转发的CAN报文代码以及生成的所有接收和发送的CAN信号的接口函数代码,以上所有代码为有机的整体。
进一步地,上述生成的所有接收和发送的CAN信号的接口函数代码,包括从DBC文件中解析出的CAN报文整体数据信息及各信号的起始位、长度和排列格式信息。
进一步地,上述生成的所有接收和发送的CAN信号的接口函数代码,在嵌入式底层代码分别设计有供其调用的信号处理函数。
进一步地,上述信号处理函数包括信号接收处理函数和信号发送处理函数两种类型,其中,信号接收处理函数根据所述解析出的接收数据帧信号的起始位、长度和排列格式的信息进行分类和移位运算,并将运算结果赋值给每个解析出的应用层信号;信号发送处理函数通过对应用层信号的运算数值、起始位、长度和排列格式的信息进行分类和移位等计算,并将计算结果填充至该信号所在数据帧中的位置。
由上述对本发明的描述可知,和现有技术相比,本发明产生的有益效果在于:
1、本发明基于DBC和EXCEL文件生成嵌入式代码的方法,配置DBC文件时,在发送CAN报文ID名称中配置该报文的发送周期,生成嵌入式代码时,根据该发送周期作为关键字将其取出,然后将其配置到嵌入式发送代码中,实现CAN报文的周期发送;如果需要处理某个CAN报文的生命信号而该报文的信号中没有生命信号,可以在该CAN报文ID名称中设置生命信号字符,生成嵌入式代码时,根据该生命信号字符作为关键字将其取出,在嵌入式代码中将其赋值一个动态的中间变量,实现在应用层或底层代码中对该生命信号的运算处理。在EXCEL文件中,配置接收CAN报文的ID、接收通道和数量,配置转发CAN报文的ID、转发目标通道和转发标志位,可生成CAN报文的转发功能代码。故本发明生成嵌入式代码方法,配置灵活,功能多样,代码执行高效,减少程序员的工作量,降低人力和时间成本,同时减少代码的错误率,提高设计效率,缩短项目开发周期。
2、本发明对代码生成的CAN信号接口函数,底层代码设计有供其调用的信号处理函数,包括信号接收处理函数和信号发送处理函数两种类型,运算速度快,执行效率高。
附图说明
图1为本发明中生成嵌入式代码方法的流程图。
图2为本发明中配置有发送周期的ID名称示意图。
图3为本发明中配置有生命信号的ID名称示意图。
图4为本发明中需要转发的EXCEL文件配置示意图。
图5为本发明中底层代码设计的信号接收处理函数示意图。
具体实施方式
下面参照附图说明本发明的具体实施方式。为了全面理解本发明,下面描述到许多细节,但对于本领域技术人员来说,无需这些细节也可实现本发明。
一种基于DBC和EXCEL文件生成嵌入式代码的方法,参照图1,主要包括以下步骤:
第一,根据项目工程实际需求对所用到的CAN通信信号进行DBC文件配置和EXCEL文件配置。
上述DBC文件进行配置,最重要的是对信息ID的名称进行配置,信息ID名称进行配置。参照图2,此名称为配置有发送周期的ID名称,其中字符“T”为关键字,字符“500”为发送周期,具体地,此名称的ID报文发送周期为500ms;参照图3,此名称为配置有生命信号的ID名称,其中字符串“L0F1”为关键字,具体地,ID名称为“Motor_Run_Data”的报文没有配置生命信号同时嵌入式代码需要用到生命信号。
建立上述DBC文件,并对其进行输入、输出、所属通道的分类, 分别放入所对应的文件路径。如果上述DBC文件已在所对应的文件路径下,则不用再次重新建立,只需根据实际的项目工程对DBC文件进行增加、删除和修改的操作。
上述EXCEL文件配置,是对所需转发的CAN报文进行配置,如图4所示,具体是分别对CAN接收报文的ID、接收通道和数量,CAN转发报文的ID、转发目标通道和转发标志位进行配置。具体地,字符“数量”为关键字,以此确定需要转发的报文数量;字符“转发标志位”为关键字,以此确认相对应的报文转发的标志位是什么,若无标志位则直接转发。
第二,自动加载DBC和EXCEL文件。当完成发送CAN报文的发送周期配置和生命信号关键字的配置后自动加载DBC文件;当有CAN报文需要转发时,加载EXCEL文件。
第三,解析DBC文件和EXCEL文件。自动加载DBC和EXCEL文件后,根据DBC和EXCEL文件中的关键字等信息将有用的信息取出并一一放入所分配的计算机内存中。
第四,生成嵌入式代码。嵌入式代码,包括根据发送CAN报文ID名称配置的发送周期生成的报文发送代码,根据是否需要生命信号的配置生成的CAN报文生命代码,根据EXCEL文件生成的需要转发的CAN报文代码,还有生成的所有接收和发送的CAN信号的接口函数代码。以上这些代码并不是独立的部分,而是有机的整体。
上述生成的接收和发送的CAN信号的接口函数代码,包含了从DBC文件中解析出的CAN报文整体数据信息及各信号的起始位、长度和排列格式等信息。
上述生成的接收和发送的CAN信号的接口函数代码,在嵌入式底层代码设计有供其调用的信号处理函数,该信号处理函数包括信号接收处理函数和信号发送处理函数两种类型,其中,信号接收处理函数如图5所示,具体说明如下:根据解析出的数据帧ID名称,代码生成时会定义一个与之相对应的联合体,该联合体有两个成员变量组成,分别为包含2个元素的32位数组和包含8个元素的8位数组,接收到报文数据后,该报文的8个字节的数据会存放于与之相对应的联合体中,该接收函数会根据排列格式(Intel格式或Motorola格式)进行分类处理,处理过程中会再根据信号起始位和长度的逻辑运算判断该信号是否在单个32位数据或跨2个32位数据,然后分类将此单个或2个32位数据进行移位等运算,最后将运算结果返回并赋值给该信号变量;信号发送处理函数通过对应用层信号的运算数值、起始位、长度和排列格式的信息进行分类和移位等计算,并将计算结果填充至该信号所在数据帧中的位置。
本发明配置DBC文件时,在发送CAN报文ID名称中配置该报文的发送周期,生成嵌入式代码时,根据该发送周期作为关键字将其取出,然后将其配置到嵌入式发送代码中,实现CAN报文的周期发送。
配置DBC文件时,如果需要处理某个CAN报文的生命信号而该报文的信号中没有生命信号,可以在该CAN报文ID名称中设置生命信号字符,生成嵌入式代码时,根据该生命信号字符作为关键字将其取出,在嵌入式代码中将其赋值一个动态的中间变量,实现在应用层或底层代码中对该生命信号的运算处理。
在EXCEL文件中,配置接收CAN报文的ID、接收通道和数量,配置转发CAN报文的ID、转发目标通道和转发标志位,可生成CAN报文的转发功能代码。具体地,如图4所示,假设关键字“数量”为1,在“接收通道1”中接收到“接收ID1”的数据后,在关键字“转发标志位1”的条件下,将数据以ID为“转发ID1”转发至“转发通道1”。
上述仅为本发明的具体实施方式,但本发明的设计构思并不局限于此,凡利用此构思对本发明进行非实质性的改动,均应属于侵犯本发明保护范围的行为。
Claims (9)
1.一种基于DBC和EXCEL文件生成嵌入式代码的方法,其特征在于,包括如下步骤:
(1)、根据项目工程对所用到的CAN通信信号进行DBC文件配置和EXCEL文件配置,其中,所述DBC文件配置是对信息ID的名称进行配置,包括发送周期和是否需要生命信号关键字的配置;所述EXCEL文件配置是对所需转发的CAN报文进行配置;
(2)、加载DBC文件和EXCEL文件,当完成发送CAN报文的发送周期配置和生命信号关键字的配置后自动加载DBC文件;当有CAN报文需要转发时,加载EXCEL文件;
(3)、解析DBC文件和EXCEL文件,根据DBC和EXCEL文件中的关键字等信息将有用的信息取出并一一放入所分配的计算机内存中;
(4)、生成嵌入式代码。
2.如权利要求1所述的一种基于DBC和EXCEL文件生成嵌入式代码的方法,其特征在于:所述步骤(1)的DBC文件配置是建立DBC文件,并对其进行输入、输出、所属通道的分类, 分别放入所对应的文件路径。
3.如权利要求2所述的一种基于DBC和EXCEL文件生成嵌入式代码的方法,其特征在于:若所述DBC文件已在所对应的文件路径下,则不用再次重新建立,只需根据实际的项目工程对DBC文件进行增加、删除和修改的操作。
4.如权利要求1所述的一种基于DBC和EXCEL文件生成嵌入式代码的方法,其特征在于:所述步骤(1)中发送周期关键字的配置是用于确定发送CAN报文的发送周期;所述步骤(1)中是否需要生命信号关键字的配置用于没有配置生命信号同时嵌入式代码需要用到生命信号的CAN报文。
5.如权利要求1所述的一种基于DBC和EXCEL文件生成嵌入式代码的方法,其特征在于:所述步骤(1)中对所需转发的CAN报文进行配置,具体是分别对CAN接收报文的ID、接收通道和数量,CAN转发报文的ID、转发目标通道和转发标志位进行配置。
6.如权利要求1所述的一种基于DBC和EXCEL文件生成嵌入式代码的方法,其特征在于:所述步骤(4)生成的嵌入式代码,包括根据发送CAN报文ID名称配置的发送周期生成的报文发送代码、根据是否需要生命信号的配置生成的CAN报文生命代码、根据EXCEL文件生成的需要转发的CAN报文代码以及生成的所有接收和发送的CAN信号的接口函数代码,以上所有代码为有机的整体。
7.如权利要求6所述的一种基于DBC和EXCEL文件生成嵌入式代码的方法,其特征在于:所述生成的所有接收和发送的CAN信号的接口函数代码,包括从DBC文件中解析出的CAN报文整体数据信息及各信号的起始位、长度和排列格式信息。
8.如权利要求6所述的一种基于DBC和EXCEL文件生成嵌入式代码的方法,其特征在于:所述生成的所有接收和发送的CAN信号的接口函数代码,在嵌入式底层代码分别设计有供其调用的信号处理函数。
9.如权利要求8所述的一种基于DBC和EXCEL文件生成嵌入式代码的方法,其特征在于:所述信号处理函数包括信号接收处理函数和信号发送处理函数两种类型,其中,信号接收处理函数根据所述解析出的接收数据帧信号的起始位、长度和排列格式的信息进行分类和移位运算,并将运算结果赋值给每个解析出的相对应的应用层信号;信号发送处理函数通过对应用层信号的运算数值、起始位、长度和排列格式的信息进行分类和移位等计算,并将计算结果填充至该信号所在数据帧中的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210060233.5A CN114357946A (zh) | 2022-01-19 | 2022-01-19 | 一种基于dbc和excel文件生成嵌入式代码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210060233.5A CN114357946A (zh) | 2022-01-19 | 2022-01-19 | 一种基于dbc和excel文件生成嵌入式代码的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114357946A true CN114357946A (zh) | 2022-04-15 |
Family
ID=81091870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210060233.5A Pending CN114357946A (zh) | 2022-01-19 | 2022-01-19 | 一种基于dbc和excel文件生成嵌入式代码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114357946A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987865A (zh) * | 2022-11-28 | 2023-04-18 | 重庆长安汽车股份有限公司 | 一种路由代码生成方法、装置、矩阵检测方法及储存介质 |
CN116301881A (zh) * | 2023-02-01 | 2023-06-23 | 浙江万里扬新能源驱动有限公司杭州分公司 | 一种基于dbc的协议层代码生成方法及生成工具 |
-
2022
- 2022-01-19 CN CN202210060233.5A patent/CN114357946A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987865A (zh) * | 2022-11-28 | 2023-04-18 | 重庆长安汽车股份有限公司 | 一种路由代码生成方法、装置、矩阵检测方法及储存介质 |
CN116301881A (zh) * | 2023-02-01 | 2023-06-23 | 浙江万里扬新能源驱动有限公司杭州分公司 | 一种基于dbc的协议层代码生成方法及生成工具 |
CN116301881B (zh) * | 2023-02-01 | 2024-05-10 | 浙江万里扬新能源驱动有限公司杭州分公司 | 一种基于dbc的协议层代码生成方法及生成工具 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114357946A (zh) | 一种基于dbc和excel文件生成嵌入式代码的方法 | |
CN106950864B (zh) | 一种整车控制器的can通信程序生成方法及装置 | |
CN1869965A (zh) | 经由神经网络选择网格执行器的方法和设备 | |
EP2512163A1 (en) | Method, system for defining message in machine-to-machine platform, and machine-to-machine platform | |
CN111061678B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN1079973C (zh) | 软件编码,译码方法及软件编码,译码系统 | |
CN110502799B (zh) | 一种芯片引脚自动化配置方法与装置 | |
CN111427940A (zh) | 一种自适应数据库转换方法及装置 | |
CN114513410A (zh) | 一种设备快速接入物联网平台的方法和系统 | |
CN112202798A (zh) | 数据的协议转化方法、系统、电子设备及存储介质 | |
CN108763127B (zh) | 源数据与目标数据相互转换的Modbus适配器的实现方法 | |
CN113377363B (zh) | 对多种电控端私有协议自动生成源代码的云端实现方法 | |
CN114860228A (zh) | 基于Module Federation技术实现的模块中心化共享系统 | |
US20020173943A1 (en) | Method for parallel simulation on a single microprocessor using meta-models | |
CN112685625B (zh) | 一种实现浮动关键字匹配的深度可编程转发系统、方法及装置 | |
CN115129395A (zh) | Someip代码生成方法、装置、计算机终端及存储介质 | |
CN1667585A (zh) | 一种数字信号处理器软件调试信息输出方法 | |
CN113268430A (zh) | 一种基于数据分析的can总线模糊测试方法 | |
CN110995815B (zh) | 一种基于Gaia大数据分析系统的信息传输方法 | |
CN112702701B (zh) | 一种蓝牙芯片的广播通道实现方法及装置 | |
CN1767524A (zh) | 消息处理系统及其处理方法 | |
CN115796239B (zh) | Ai算法架构的实现装置、卷积计算装置及相关方法与设备 | |
CN115567340B (zh) | Can总线的测试工程生成方法、装置、设备及介质 | |
CN113419777B (zh) | 一种可编程交换机的指令块转换执行方法及系统 | |
CN115080653A (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 |