DBC编辑_文本形式编辑

1. DBC
DBC是Data Base CAN的缩写。DBC文件是用来描述CAN网络通信信号的一种格式文件。ECU之间的通信、信息的交互以及相互之间的关系,都是通过DBC文件来管理的,也就是ECU之间的通信都要以DBC文件中的内容为标准。DBC文件中定义了总线系统中各个ECU所需要发送和接收的报文,以及每个报文所有Bit的具体定义,同时还定义了个报文/信号的通信属性,例如:通信周期、通信方式、取值范围等。我们可以通过DBC文件来监测与分析CAN网络上的报文数据,也可以通过DBC文件来模拟某个CAN节点(ECU节点)。

2. CANdb++ Editor
Vector公司的CANoe软件提供了CANdb++Editor工具,用来新建或编辑一个DBC文件。CANdb++Editor的编辑界面如下:
在这里插入图片描述

CANdb++Editor中新建或编辑DBC文件,大家可以参考书籍《CANoe开发从入门到精通》或者在互联网上查找相关内容,再有就是查看CANdb++Editor的帮助文档(Help-> CANdb++ Help)。 本文中主要介绍用文本形式来编辑DBC文件。

3. 文本编辑DBC
DBC文件是可以用文本工具打开的,例如Notepad++。掌握了DBC文件的标准格式后,我们就可以通过文本的形式来编辑DBC文件了。dbc文件中主要包含了如下的信息:
 版本与新符号
 波特率定义
 网络节点的定义
 报文的定义
 信号的定义
 注解部分
 属性定义部分
 数值表部分
其中波特率定义、网络节点的定义是必须要有的,缺少这两项的dbc文件是不能用CANdb++ Editor软件打开的。
4. DBC 标准格式说明
4.1 版本与新符号
VERSION “版本号”
VERSION是关键字。
例:VERSION“V1.0.0”
代表DBC文件的版本号是V1.0.0,“版本号”内容可以为空。
NS_ :新符号
NS_ 是关键字,。
例:如下图
在这里插入图片描述

新符号就是定义在DBC中要使用的关键字,上述新符号的信息在我们用CANdb++Editor创建dbc文件时就已经自动生成了,默认即可。
4.2 波特率定义
BS_:[baudrate:BTR1,BTR2];
BS_是关键字,用于定义CAN网络的波特率。
[ ]内容表示为可选部分,可以省略。但关键字”BS_:”必须存在,省略则会出错。
4.3 网络节点的定义
BU_:Nodename1 Nodename2 Nodename3 ……
BU_ 是关键字,用于定义网络节点。
Nodename1、Nodename2表示定义的网络节点名字,由用户自己定义;但需保证节点命名的唯一性。
例:BU_: IVI GW
代表定义网络节点IVI、GW。
4.4 报文的定义
BO_ MessageId(10进制数表示) MessageName: MessageSize Transmitter
BO_ 是关键字,用于定义报文。
MessageId为定义的报文ID,是以10进制数表示的;
MessageName表示该报文的名字,命名规则和C语言变量相同;
MessageSize表示该报文数据域字节数,为无符号整型数据;
Transmitter表示发送该报文的网络节点;如果该报文没有指定发送节点,则该值需设置为” Vector__XXX”。
例:BO_ 555 ATC_11: 8 GW
555代表报文ID是0x22B。
ATC_11代表报文名是ATC_11。
8代表报文数据长度是8字节。
GW代表发送节点是GW。
4.5 信号的定义
SG_ SignalName : StartBit|SignalSize@ByteOrder ValueType (Factor,Offset) [Min|Max] Unit Receiver
SG_ 是关键字,用于定义信号。
SignalName、 StartBit、 SignalSize分别表示该信号的名字、起始位、信号长度;
ByteOrder表示信号的字节顺序:0代表Motorola格式,1代表Inter格式;
ValueType 表示该信号的数值类型:+表示无符号数,-表示有符号数;
Factor表示因子,Offset表示偏移量;这两个值于该信号的原始值与物理值之间的转换。转换公式:物理值=原始值*因子+偏移量;
Min|Max表示该信号的最小值和最大值,即指定了该信号值的范围;这两个值为double类型;
Unit表示该信号的单位,为字符串类型;
Receiver表示该信号的接收节点;若该信号没有指定的接收节点,则必须设置为” Vector__XXX”。
例:SG_ IVI_Time_Day : 40|7@1+ (1,0) [1|128] “day” IC
IVI_Time_Day代表信号名IVI_Time_Day。
40代表起始位40。
7代表信号长度7。
@1代表编码格式Intel格式(@0是Motorola格式)。
+代表信号数据是无符号数据(1代表信号数据是有符号数据)。
(1,0)代表factor值是1,offset值是0。
[1|128]代表最小值是1,最大值是128。
“day"代表信号的单位是"day”。
IC代表接收节点是IC。
4.6 注解部分
CM_ Object MessageId/NodeName “Comment”
CM_ 是关键字,表示注释信息。
Object表示进行注解的对象类型,可以是节点“BU_”、报文“BO_”、消息”SG_”。
MessageId/NodeName 表示进行注解的对象,若前面的对象类型是信号或者报文,则这里的值应为报文的ID(10进制数表示),若前面的对象类型为节点,则这里的值应为节点的名字。
Comment表示进行注解的文本信息;
例:CM_ SG_ 900 IVI_Time_Day “Indicates the day sent by IVI.”;
900代表信号所在的报文ID是900(0x384)。
IVI_Time_代表信号名字是IVI_Time_Day。
“Indicates the day sent by IVI.“代表注释内容是"Indicates the day sent by IVI.”。
4.7 属性定义部分
BA_DEF_ Object AttributeName ValueType Min Max;
BA_DEF_DEF_ AttributeName DefaultValue;
BA_DEF_为关键字,表示属性定义。
Object表示属性定义的对象类型,可以是节点“BU_”、报文“BO_”、信号”SG_”、网络节点” ”(用空格表示)等。
AttributeName表示进行定义的属性名字。
ValueType表示属性值的类型,可以是整型、字符串、浮点型、枚举类型等。
Min/Max表示属性值的上下最值,即指定了取值范围(字符串类型没有此项)。
BA_DEF_DEF_为关键字,表示定义属性的初始值;
DefaultValue表示该属性的初始值。
例:BA_DEF_ SG_ “Sv_AutoRestoreInactiveValue” ENUM “No”,“Yes”;
BA_DEF_DEF_ “Sv_AutoRestoreInactiveValue” “No”;
“Sv_AutoRestoreInactiveValue"代表一个信号类型的属性"Sv_AutoRestoreInactiveValue”,属性的类型是枚举类型,属性的取值范围是"No”,“Yes”。
属性"Sv_AutoRestoreInactiveValue"的初期值是"No"。
属性"Sv_AutoRestoreInactiveValue"定义好之后,在CANdb++Editor的信号属性中会显示自定义的属性"Sv_AutoRestoreInactiveValue"。如下:
在这里插入图片描述

BA_ AttributeName Object AttributeValue;
BA_ 是关键字,表示属性的设置。
例1:BA_ “GenMsgCycleTime” BO_ 555 100;
代表ID为555(0x22B)的报文的循环周期时100ms,属性GenMsgCycleTime代表报文的循环周期。
例2:BA_ “SystemSignalLongSymbol” SG_ 741 FDM_AutoChangeStatus_RearSunShad “FDM_AutoChangeStatus_RearSunShade”;
代表ID为741(0x2E5)的报文中的信号“FDM_AutoChangeStatus_RearSunShad“的相关属性设定。用"FDM_AutoChangeStatus_RearSunShade"来代替FDM_AutoChangeStatus_RearSunShad。
注1:属性“GenMsgCycleTime”和"SystemSignalLongSymbol"是CANdb++Editor自带得标准属性,类似的标准属性的含义参考CANdb++Editor得帮助文档。
注2:用到的属性都需要通过BA_DEF_和BA_DEF_DEF_定义过。
4.8 数值表部分
VAL_ MessageId SignalName N “DefineN” …… 0 “Define0”;
VAL_为关键字,表示数值表定义;
MessageId表示该信号所属的报文ID(10进制数表示);
SignalName表示信号名;
N “DefineN” …… 0 “Define0”表示定义的数值表内容,即该信号的有效值分别用什么符号表示 。
例:VAL_ 272 WorkingSt_AEB 0 “Off” 1 “Standby” 2 “Active” ;
代表ID为272 (0x110)的报文中的” WorkingSt_AEB”的信号,进行其数值表的定义;用” Off”代替0;用” Standby”代替1,用"Active"代替2。
数值表可以在IG 模拟发送信号时使用,或者在Graphics界面中查看信号值时使用。如下:
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DBC编辑工具v2.0是一款功能强大的数据编辑工具。它主要用于编辑DBC文件,DB,即Database,是指在车辆网络系统中用于数据交换的文件格式。DBC文件包含了车辆网络系统各个节点之间的数据通信规则和信号定义。 DBC编辑工具v2.0具有以下几个主要特点: 1. 友好的用户界面:DBC编辑工具v2.0采用直观简洁的用户界面设计,使用户能够轻松进行数据编辑和操作。用户可以通过工具栏、菜单和快捷键来快速访问各种编辑功能。 2. 支持多种数据编辑操作:DBC编辑工具v2.0支持对DBC文件中的各种数据进行编辑操作,如添加、删除、修改信号、节点和备注等。用户可以根据实际需求对数据进行灵活的操作,以满足不同的项目需求。 3. 实时预览功能:DBC编辑工具v2.0还具有实时预览功能,用户可以随时查看对数据的修改效果。这对于调试和验证数据定义的正确性非常有帮助,可以提高工作效率和准确性。 4. 导入导出功能:DBC编辑工具v2.0支持将数据导入导出为常见的文件格式,如CSV、Excel等。这使得数据的共享和交流更加便捷,方便与其他团队成员进行协作。 5. 自动校验功能:DBC编辑工具v2.0还具备自动校验功能,可以自动检查数据的合法性和一致性。这可以确保在编辑过程中不会产生错误或冲突的数据定义,提高工作的准确性和可靠性。 总之,DBC编辑工具v2.0是一款功能丰富、易于使用的工具,适用于车辆网络系统的数据编辑工作。它能够提高工作效率,减少错误,帮助用户轻松完成数据编辑任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值