什么是dbc文件?
dbc是Datebase CAN的缩写,是CAN网络的数据库文件,可定义CAN网络的节点(Network node)、报文(Message)、信号(signal),包括各个节点会发送哪些报文和接受那些报文,每个报文包含哪些信号,每个信号每个信号位于报文的哪个位置等。
制作dbc文件有什么用?
可以通过定义好的dbc文件,将CAN网络中数据解析成具体的报文(Message)和信号(signal),以方便我们对其进行分析。 DBC文件的作用就是帮助我们直接得到报文数据代表的含义,省去了查通讯协议这步骤,直接得到报文数据表示的是什么数据。
1.建立工程
2.点击File -> Create database 再选择模板,然后确定好名字和保存路径
3.添加信号
创建Signals,右键Signals 选择NEW 创建信号,会弹出下面窗口
创建一个名字(Name):Max_CellVolt
字节长度(Lenght):16bit
字节顺序(Byte Order):Motorola (字节顺序有两种模式:一种为Intel,另外一种为Motorola;区别为Intel 高字节(8bit)在后,低字节(8bit)在前;Motorola高字节(8bit)在前,低字节(8bit)在后。
例如:5330 数值用十六进制表示时,若用Motorola格式:14 D2;若用Intel格式:D2 14)
数值类型(Value Type):Unsigned 无符号 (数值类型有4种格式:Signed ,Unsigned,IEEE Float ,IEEE Double)
“Factor:” 表示分辨率; “Offset:” 表示偏移量;
“Minimum:”和“Maximum”表示该信号实际范围;比如,截图中最大值是30 即信号值3000*0.01(Factor) = 30,即信号的最大值是3000.
“Init.Value:” 表示该信号的初始值;
“Unit:”表示单位。 解析数据时:实际的信号物理值 = 分辨率 * CAN信号值 + 偏移量
最小值与最大值可以点击 Calculate minimum and maximum 自行生成(这里的最大最小值是根据你选的字节长度和数值类型决定的)。
4.添加报文(message)
选中左侧的message,鼠标右击,选择NEW
Name:” 表示新增ID的名称;
Type:标准帧还是扩展帧;
“ID:” 用十六进制表示,如果是标准帧,范围:0~0x7FF;
“DLC:” 表示新增message的实际的长度,最大为8
然后添加该message的signals,点击Add,添加。
5.根据需求添加节点
6.完成节点与信号的mapped 关系 例如下图
节点与报文发送添加;
7.导入和属性设置
导入属性,我们选择一个vector自带的dbc文件作为导入文件
导入后可以再修改
主要关注报文周期和发送类型这两个,比如报文周期,多久发一帧,总要定义吧,发送类型,是周期发送还是不发送,也要定义。
8.一致性检查
没错就可以。
还有对信号中的值增加描述信息可参考下文
增加 值描述
选项卡 View 下 ValueTables,根据需求新建定义及值描述如下图,
新建好值描述后,在信号中的Value Table中添加。
本文学习笔记 参考资料如下,都是写的很好的。
(13条消息) 从零开始学习CANoe(二)—— CANdb++ 创建 dbc文件_蚂蚁小兵的博客-优快云博客_canoe导入dbc文件(13条消息) CANdb++的使用教程_Ashton_Li的博客-优快云博客_candb++