掌桥专利:专业的专利平台
掌桥专利
首页

基于CAN通讯的DBC文件生成方法、装置、设备及介质

文献发布时间:2023-06-19 16:06:26



技术领域

本发明涉及车载控制器开发软件技术领域,具体涉及一种基于CAN通讯的DBC文件生成方法、装置、设备及介质。

背景技术

随着汽车网络中CAN节点不断增加,网络中数据也越来越庞大,因此,为了便于整车的设计和维护,现有技术中提出采用DBC文件对汽车CAN数据进行解析和管理技术方案。形成DBC文件的传统实现方法包括以下三种:1、通过系统建模软件新建DBC,根据通信设计文档,按照DBC格式要求形成当前车辆或零部件专有的DBC文件。2、购买能实现对汽车的DBC数据库文件进行解析的设备读取CAN文件。现有技术存在以下技术问题:技术方案1通过CAN通讯协议在上位机软件中逐一进行报文详细解析,随着通信数据量增大,需在系统建模中进行大量重复工作,开发效率低,出错率提高。技术方案2购买能实现对汽车的DBC数据库文件进行解析的设备实现对汽车的DBC数据库文件进行编制,价格较高,配置要求较通用,若要实现定制化开发,仍然会产生大量的费用。

为了解决上述技术问题,现有技术中提出了自主软件开发设计,例如:公开号为CN107132832A的中国发明专利申请《一种基于CAN通讯的DBC文件解析及其程序》,提出了通过设置CAN通讯参数配置、创建DBC文件报文、编写DBC文件解析程序、动态创建DBC所含信息(如:帧名称、ID、信号名称、信号值定义等)、将每一帧报文实现收发功能。但其仅支持标准帧和<8字节扩展帧定义,无法实现J1939协议多包传输的编制及解析,导致其适用性不高。且未对生成的DBC文件进行验证,导致生成的DBC文件不可靠。

因此,现在亟需一种基于CAN通讯的DBC文件生成方法、装置、设备及介质来解决现有技术中存在的生成的DBC文件的适用性和可靠性较低的技术问题。

发明内容

有鉴于此,有必要提供一种基于CAN通讯的DBC文件生成方法、装置、设备及介质,用以解决现有技术中存在的生成的DBC文件的适用性和可靠性较低的技术问题。

一方面,本发明提供了一种基于CAN通讯的DBC文件生成方法,包括:

获取CAN数据库文件,并对所述CAN数据库文件进行解析,获得多种关键要素;

获取通信矩阵,并根据所述通信矩阵生成通信数据表,所述通信数据表中包括多条通信数据;

根据所述关键要素逐条解析所述通信数据,获得多个通信字符串;

合并所述多个通信字符串,获得DBC文件;

基于预设的CAN软件验证所述DBC文件的完整性,并获得目标DBC文件。

在一些可能的实现方式中,所述CAN数据库文件包括标准帧数据库文件以及拓展帧J1939数据库文件。

在一些可能的实现方式中,所述多种关键要素包括版本与新字符定义、波特率定义、网络节点定义、报文帧定义、信号定义、注解定义、属性定义、数值表定义以及J1939协议专有定义。

在一些可能的实现方式中,所述根据所述关键要素逐条解析所述通信数据,获得多个通信字符串,包括:

建立一个可变长的初始字符串;

根据所述关键要素解析所述通信数据,获取所述通信数据中的版本与新字符定义、波特率定义、网络节点定义、报文帧定义、信号定义、注解定义、属性定义、数值表定义以及J1939协议专有定义;

将所述通信数据中的版本与新字符定义、波特率定义、网络节点定义、报文帧定义、信号定义、注解定义、属性定义、数值表定义以及J1939协议专有定义写入至所述初始字符串,获得所述通信字符串。

在一些可能的实现方式中,所述合并所述多个通信字符串,获得DBC文件,包括:

构建DBC空文件;

将所述多个通信字符串写入至所述DBC空文件并合并,获得所述DBC文件。

在一些可能的实现方式中,所述基于预设的CAN软件验证所述DBC文件的完整性,并获得目标DBC文件,包括:

基于预设的CAN软件加载所述DBC文件,并判断加载是否成功;

若加载成功,则所述DBC文件完整,所述DBC文件为所述目标DBC文件;

若加载不成功,则修正所述通信矩阵,获得修正通信矩阵,并基于所述修正通信矩阵获得所述目标DBC文件。

在一些可能的实现方式中,所述基于CAN通讯的DBC文件生成方法,还包括:

建立CAN网络仿真界面,并基于所述CAN网络仿真界面加载所述目标DBC文件,进行网络仿真,生成网络仿真结果和/或仿真报文;

根据所述仿真报文和所述通信矩阵确定所述目标DBC文件的完整性;

根据所述网络仿真结果验证CAN网络的网络性能。

另一方面,本发明还提供了一种基于CAN通讯的DBC文件生成装置,包括:

数据库文件解析单元,用于获取CAN数据库文件,并对所述CAN数据库文件进行解析,获得多种关键要素;

通信矩阵处理单元,用于获取通信矩阵,并根据所述通信矩阵生成通信数据表,所述通信数据表中包括多条通信数据;

通信数据解析单元,用于根据所述关键要素逐条解析所述通信数据,获得多个通信字符串;

DBC文件生成单元,用于合并所述多个通信字符串,获得DBC文件;

完整性验证单元,用于基于预设的CAN软件验证所述DBC文件的完整性,并获得目标DBC文件。

另一方面,本发明还提供了一种电子设备,包括存储器和处理器,其中,

所述存储器,用于存储程序;

所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现上述任意一种实现方式中所述的基于CAN通讯的DBC文件生成方法中的步骤。

另一方面,本发明还提供了一种计算机可读存储介质,用于存储计算机可读取的程序或指令,所述程序或指令被处理器执行时能够实现上述任意一种实现方式中所述的基于CAN通讯的DBC文件生成方法中的步骤。

采用上述实施例的有益效果是:本发明提供的基于CAN通讯的DBC文件生成方法,通过获取CAN数据库文件,并对CAN数据库文件进行解析,获得多种关键要素,然后根据关键要素逐条解析由通信矩阵生成的通信数据,获得多个通信字符串,再合并多个通信字符串,获得DBC文件。由于对CAN数据库文件进行解析,获得多种关键要素,可实现对不同模板格式的CAN数据库进行解析,从而可实现对拓展帧和标准帧数据库结构建立DBC文件,提高基于CAN通讯的DBC文件生成方法的适用性。

进一步地,本发明通过设置基于预设的CAN软件验证DBC文件的完整性,并获得目标DBC文件,可确保目标DBC文件的可靠性,进而可提高后续对整车网络的开发效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的基于CAN通讯的DBC文件生成方法的一个实施例流程示意图;

图2为本发明图1中S103的一个实施例流程示意图;

图3为本发明图1中S104的一个实施例流程示意图;

图4为本发明图1中S105的一个实施例流程示意图;

图5为本发明提供的对目标DBC文件进行仿真验证的一个实施例流程示意图;

图6为本发明提供的基于CAN通讯的DBC文件生成装置的一个实施例结构示意图;

图7为本发明提供的电子设备的一个实施例结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,示意性的附图并未按实物比例绘制。本发明中使用的流程图示出了根据本发明的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本发明内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。

在本发明实施例的描述中,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如:A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。

附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器系统和/或微控制器系统中实现这些功能实体。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本发明实施例提供了一种基于CAN通讯的DBC文件生成方法、装置、设备及介质,在对实施例进行展开描述之前,先对CAN通讯和DBC文件进行解释。

CAN通讯是指基于控制器局域网络(Controller Area Network,CAN)进行通讯的技术。CAN是ISO国际标准化的一种串行通信协议,由于它具有极好的抗干扰能力、极强的差错检测和处理能力,在汽车电子等领域得到了日益广泛的应用。

DBC(Database CAN)文件指的是CAN的数据库文件。

图1为本发明提供的基于CAN通讯的DBC文件生成方法的一个实施例流程示意图,如图1所示,基于CAN通讯的DBC文件生成方法包括:

S101、获取CAN数据库文件,并对CAN数据库文件进行解析,获得多种关键要素;

S102、获取通信矩阵,并根据通信矩阵生成通信数据表(DataTable),通信数据表中包括多条通信数据;

S103、根据关键要素逐条解析通信数据,获得多个通信字符串;

S104、合并多个通信字符串,获得DBC文件;

S105、基于预设的CAN软件验证DBC文件的完整性,并获得目标DBC文件。

与现有技术相比,本发明实施例提供的基于CAN通讯的DBC文件生成方法,通过获取CAN数据库文件,并对CAN数据库文件进行解析,获得多种关键要素,然后根据关键要素逐条解析由通信矩阵生成的通信数据,获得多个通信字符串,再合并多个通信字符串,获得DBC文件。由于对CAN数据库文件进行解析,获得多种关键要素,可实现对不同模板格式的CAN数据库进行解析,从而可实现对拓展帧和标准帧数据库结构建立DBC文件,提高基于CAN通讯的DBC文件生成方法的适用性。

进一步地,本发明实施例通过设置基于预设的CAN软件验证DBC文件的完整性,并获得目标DBC文件,可确保目标DBC文件的可靠性,进而可提高后续对整车网络的开发效率。

在本发明的具体实施例中,步骤S101中的CAN数据库文件包括但不限于标准帧数据库文件以及拓展帧J1939数据库文件。

本发明实施例通过设置CAN数据库文件包括标准帧数据库文件以及拓展帧J1939数据库文件,可生成商用车的J1939数据库文件对应的DBC文件,提高基于CAN通讯的DBC文件生成方法的适用性。

其中,J1939数据库文件指的是符合J1939多包通信协议的数据库文件。

应当理解的是:CAN数据库文件还可包括除标准帧数据库文件以及拓展帧J1939数据库文件的其他数据库文件,例如:由CANoe软件的DBediter自定义生成的数据库文件等。

在本发明的具体实施例中,步骤S101中的多种关键要素包括版本与新字符定义、波特率定义、网络节点定义、报文帧定义、信号定义、注解定义、属性定义、数值表定义以及J1939协议专有定义。具体地:

1、版本与新字符定义

版本的格式如下:version“”,version“”可以为空,也可以由用户自己定义;

新字符的格式如下:NS_,这个信息在生成DBC文件过程中会自动生成,默认即可。

2、波特率定义

格式如下:BS_:[baudrate:BTR1,BTR2];

其中BS_为关键字,用于定义CAN网络的波特率;[]内容表示为可选部分,可以省略。

3、网络节点定义

格式如下:BU_:Nodename1 Nodename2 Nodename3……;

其中BU_为关键字,表示网络节点,格式中的Nodename1、Nodename2表示定义的网络节点名字,由用户自己定义。

4、报文帧定义

格式如下:BO_MessageId(10进制数表示)MessageName:MessageSizeTransmitter;

分别表示:关键字_报文ID、报文的名字、报文数据域字节数、报文数据域字节数、报文的网络节点。

5、信号定义

格式如下:SG_SignalName:StartBit|SignalSize@ByteOrderValueType(Factor,Offset)[Min|Max]Unit Receiver;

分别表示:关键字_信号的名字、起始位、信号长度@字节顺序、数值类型、偏移量、最小值和最大值、信号的单位、接收节点;

如一个信号为:SG_HUD_BrightnessLv:15|4@0+(1,0)[0|15]“lv”ACU,AVNT表示定义了一个命名为HUD_BrightnessLv的信号,其起始位是第15位,信号长度4个位;信号是Motorola格式,数值类型为无符号类型数;因子为1,偏移量为0;信号取值范围为0到15;信号单位为字符串“lv”;该信号接收节点为ACU、AVNT这两个节点。

6、注解定义

格式如下:CM_Object MessageId/NodeName“Comment”;

分别表示:关键字_注解的对象类型、进行注解的对象、进行注解的文本信息。

7、属性定义

包括两个格式,分别为第一格式和第二格式;

第一格式如下:BA_DEF_Object AttributeNameValueType Min Max;

分别表示:关键字_属性定义的对象类型、进行定义的属性名字、属性值的类型、属性值的上下最值;

第二格式如下:BA_DEF_DEF_AttributeNameDefaultValue;

分别表示:关键字_属性的初始值。

8、数值表定义

格式如下:VAL_MessageIdSignalName N“DefineN”……0“Define0”;

分别表示:关键字_数值表定义、信号所属的报文ID、信号名、数值表内容。

9、J1939协议专有定义

格式如下:BA_DEF_SG_、BA_DEF_BO_、BA_DEF_BU_、BA_DEF_、BA_DEF_DEF_

分别表示:信号属性、报文帧属性、网络节点属性、第一格式属性以及第二格式属性。

在本发明的一些实施例中,通信矩阵为Excel格式,步骤S102具体为:使用编程工具Visual Studio建立C#工程,导入通信矩阵,生成通信数据表(DataTable)。

其中,通信数据表表示内存中数据的一个表,DataTable中包括多个数据行(DataRow)、数据列(DataColumn),可通过DataRow、DataColumn来查看、操作其中的数据。

在本发明的一些实施例中,每条通信数据包括多行,步骤S103具体为:对每条通信数据的每一行进行解析。

在本发明的一些实施例中,如图2所示,步骤S103包括:

S201、建立一个可变长的初始字符串;

S202、根据关键要素解析通信数据,获取通信数据中的版本与新字符定义、波特率定义、网络节点定义、报文帧定义、信号定义、注解定义、属性定义、数值表定义以及J1939协议专有定义;

S203、将通信数据中的版本与新字符定义、波特率定义、网络节点定义、报文帧定义、信号定义、注解定义、属性定义、数值表定义以及J1939协议专有定义写入至初始字符串,获得通信字符串。

在本发明的一些实施例中,如图3所示,步骤S104包括:

S301、构建DBC空文件;

S302、将多个通信字符串写入至DBC空文件并合并,获得DBC文件。

由于生成的目标DBC文件需要满足CAN软件可读,为了避免CAN软件无法读取生成的目标DBC文件,导致目标DBC文件不可用的技术问题,在本发明的一些实施例中,如图4所示,步骤S105包括:

S401、基于预设的CAN软件加载DBC文件,并判断加载是否成功;

S402、若加载成功,则DBC文件完整,DBC文件为目标DBC文件;

S403、若加载不成功,则修正通信矩阵,获得修正通信矩阵,并基于修正通信矩阵获得目标DBC文件。

本发明实施例通过基于预设的CAN软件加载DBC文件,当可以加载成功时,DBC文件才为目标DBC文件,当加载不成功时,修正通信矩阵,重新获得目标DBC文件,确保了生成的DBC文件的可靠性。

其中,步骤S401中的CAN软件可为现有技术中的任意一种CAN软件,在此不做具体限定。

步骤S403中的基于修正通信矩阵获得目标DBC文件具体可为:将修正通信矩阵作为通信矩阵,并重复步骤S102-S105。

进一步地,步骤S101-S105实现了目标DBC文件的生成,在实际网络开发过程中,还需要确认生成的目标DBC文件是否支持网络仿真功能,并且还需通过网络仿真进一步验证目标DBC文件的完整性,因此,在本发明的一些实施例中,如图5所示,基于CAN通讯的DBC文件生成方法,还包括:

S501、建立CAN网络仿真界面,并基于CAN网络仿真界面加载目标DBC文件,进行网络仿真,生成网络仿真结果和/或仿真报文;

S502、根据仿真报文和通信矩阵确定目标DBC文件的完整性;

S503、根据网络仿真结果验证CAN网络的网络性能。

本发明实施例通过根据仿真报文和通信矩阵确定目标DBC文件的完整性,可进一步确保目标DBC文件的完整性和可靠性。本发明实施例通过根据网络仿真结果验证CAN网络的网络性能,可实现对CAN网络的方正,提高后续整车网络开发效率。

具体地,步骤S501具体为:建立CAN网络仿真界面,加载当前生成的目标DBC文件进行网络仿真,在CAN网络仿真界面同步目标DBC文件定义的网段上所有节点数据内容,同时在目标DBC文件属性中,协议类型加载仿真.dll文档。配置完成后,在加载J1939配置的CAN软件可直接点击仿真运行,软件可按照J1939协议将多包报文合并为一包进行解析,CAN网络仿真界面会根据目标DBC文件定义的内容生成网络仿真结果和/或仿真报文。

具体地,步骤S502为:将仿真报文与通信矩阵放在一个excel界面,通过预设的比对算法进行对比,识别通信矩阵及仿真报文的差异,通过差异验证目标DBC文件的完整性。

具体地,网络仿真结果包括但不限于CAN网络的负载率、周期偏差等,通过CAN网络的负载率、周期偏差可获得CAN网络的网络性能。

为了更好实施本发明实施例中的基于CAN通讯的DBC文件生成方法,在基于CAN通讯的DBC文件生成方法基础之上,对应的,如图6所示,本发明实施例还提供了一种基于CAN通讯的DBC文件生成装置,基于CAN通讯的DBC文件生成装置600包括:

数据库文件解析单元601,用于获取CAN数据库文件,并对CAN数据库文件进行解析,获得多种关键要素;

通信矩阵处理单元602,用于获取通信矩阵,并根据通信矩阵生成通信数据表,通信数据表中包括多条通信数据;

通信数据解析单元603,用于根据关键要素逐条解析通信数据,获得多个通信字符串;

DBC文件生成单元604,用于合并多个通信字符串,获得DBC文件;

完整性验证单元605,用于基于预设的CAN软件验证DBC文件的完整性,并获得目标DBC文件。

上述实施例提供的基于CAN通讯的DBC文件生成装置600可实现上述自基于CAN通讯的DBC文件生成方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述基于CAN通讯的DBC文件生成方法实施例中的相应内容,此处不再赘述。

如图7所示,本发明还相应提供了一种电子设备700。该电子设备700包括处理器701、存储器702及显示器703。图7仅示出了电子设备700的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

处理器701在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器702中存储的程序代码或处理数据,例如本发明中的基于CAN通讯的DBC文件生成方法。

在一些实施例中,处理器701可以是单个服务器或服务器组。服务器组可为集中式或分布式的。在一些实施例中,处理器701可为本地的或远程的。在一些实施例中,处理器701可实施于云平台。在本发明的一些实施例中,云平台可包括私有云、公共云、混合云、社区云、分布式云、多重云等,或以上的任意组合。

存储器702在一些实施例中可以是电子设备700的内部存储单元,例如电子设备700的硬盘或内存。存储器702在另一些实施例中也可以是电子设备700的外部存储设备,例如电子设备700上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。

进一步地,存储器702还可既包括电子设备700的内部储存单元也包括外部存储设备。存储器702用于存储安装电子设备700的应用软件及各类数据。

显示器703在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器703用于显示在电子设备700的信息以及用于显示可视化的用户界面。电子设备700的部件701-703通过系统总线相互通信。

在本发明的一些实施例中,当处理器701执行存储器702中的基于CAN通讯的DBC文件生成程序时,可实现以下步骤:

获取CAN数据库文件,并对CAN数据库文件进行解析,获得多种关键要素;

获取通信矩阵,并根据通信矩阵生成通信数据表,通信数据表中包括多条通信数据;

根据关键要素逐条解析通信数据,获得多个通信字符串;

合并多个通信字符串,获得DBC文件;

基于预设的CAN软件验证DBC文件的完整性,并获得目标DBC文件。

应当理解的是:处理器701在执行存储器702中的基于CAN通讯的DBC文件生成程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面相应方法实施例的描述。

进一步地,本发明实施例对提及的电子设备700的类型不做具体限定,电子设备700可以为手机、平板电脑、个人数字助理(personal digitalassistant,PDA)、可穿戴设备、膝上型计算机(laptop)等便携式电子设备。便携式电子设备的示例性实施例包括但不限于搭载IOS、android、microsoft或者其他操作系统的便携式电子设备。上述便携式电子设备也可以是其他便携式电子设备,诸如具有触敏表面(例如触控面板)的膝上型计算机(laptop)等。还应当理解的是,在本发明其他一些实施例中,电子设备700也可以不是便携式电子设备,而是具有触敏表面(例如触控面板)的台式计算机。

相应地,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储计算机可读取的程序或指令,程序或指令被处理器执行时,能够实现上述各方法实施例提供的基于CAN通讯的DBC文件生成方法中的步骤或功能。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件(如处理器,控制器等)来完成,计算机程序可存储于计算机可读存储介质中。其中,计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

以上对本发明所提供的基于CAN通讯的DBC文件生成方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术分类

06120114704066