当前位置:   article > 正文

DBC 文件详解_如何看dbc文件

如何看dbc文件

1. DBC文件解读

  • DBC是由vector公司定义的CAN网络通信文件格式,具体规范可参考《DBC File Format Document》。
  • DBC文件常用Vector CANdb++ Editor工具打开。
    在这里插入图片描述
  • Network nodes中定义了本DBC文件所有报文的发送及接收节点;展开节点NEO可查看该节点的发送及接收报文。
    在这里插入图片描述
  • Node Name定义了报文的发送节点;Massage Name定义了报文名称。
    在这里插入图片描述
  • Name还是对应报文名称;ID对应报文ID,十六机制,每个CAN报文都有自己唯一对应的ID号;DLC为该报文的长度,单位为Byte;Cycle Time为循环发送时间,即应每隔多久发送一次,此处为0。
    在这里插入图片描述
  • Signals为该帧报文包含的信号;Transmitters为该报文的发送节点;Receivers为该报文的接收节点;
    在这里插入图片描述
  • Layout的排版格式如上,具体含义需结合下面的信号格式解读。
    在这里插入图片描述
  • 注意左上角标题:Node Rx Signal’LAT_DIST’,即某节点的接收信号,而报文的左上角标题为’Massage’,注意区分。
  • Node Name定义了信号的发送节点;Massage Name定义了信号所在的报文名称;Signal Name定义了信号名称。
    在这里插入图片描述
  • 由于该面板是在Massage选项框下的,故所有信息均为报文TRACK_3的信息。
    在这里插入图片描述
  • 该面板是在Signal选项框下的,故所有信息均为信号LAT_DIST的信息。
  • 长为10个bit;Layout对应的排序方式为Motorola;单位为m;数据类型为有符号整型;初始值为0;精度为0.0625;偏移量为0;最小值0;最大值63.5。
  • 该信号所代表的实际物理值 = 原始值(二进制转为十进制)*因子+偏移量。
    在这里插入图片描述
  • Motorola格式,从起始位开始自右向左倒退。
    在这里插入图片描述
  • Inter格式,从起始位开始自右向左前进。

2. DBC文件的底层实现逻辑

  • 用记事本或Nodepad++打开一份DBC文件,如下:
VERSION ""

NS_ :
	NS_DESC_
	CM_
	BA_DEF_
	BA_
	VAL_
	...
	BU_SG_REL_
	BU_EV_REL_
	BU_BO_REL_
	SG_MUL_VAL_

BS_:

BU_: K182_PACM K43_PSCM K17_EBCM NEO K124_ASCM
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • VERSION:定义DBC文件的版本信息,这里并未给出。
  • NS_(New Symbol) :定义DBC文件使用的命名空间,该信息在创建DBC文件时自动生成,一般无需理会。
  • BS_:用于定义CAN网络通讯的波特率,内容可以省略,但该关键字必须存在。
  • BU_:定义总线上的节点,在这个例子中有5个节点:K182_PACM、K43_PSCM、K17_EBCM、NEO和K124_ASCM。
    在这里插入图片描述
BO_ 823 PACMParkAssitCmd: 7 NEO
 SG_ RollingCounter : 35|2@0+ (1,0) [0|0] ""  NEO
 SG_ SteeringWheelChecksum : 47|16@0+ (1,0) [0|0] ""  NEO
 SG_ SteeringWheelCmd : 23|16@0+ (1,0) [0|0] ""  NEO
  • 1
  • 2
  • 3
  • 4
  • BO_:定义了一个数据帧,即一帧报文,其ID为823(十六进制对应0x337);该帧报文的名称为:PACMParkAssitCmd;整个报文长为7个字节,CAN 2.0最长为8字节,CAN FD最长为64字节;发送节点为NEO。如果该报文没有指定发送节点,则发送节点处设置为” Vector__XXX”。
    在这里插入图片描述
    在这里插入图片描述
  • SG_:定义了该报文包含的信号,共RollingCounter、SteeringWheelChecksum和SteeringWheelCmd,3个信号。
    在这里插入图片描述
// BO_ 1073 TRACK_1: 8 RADAR
 SG_ LONG_DIST : 7|12@0+ (0.0625,0) [0|255.5] "m"  NEO
  • 1
  • 2
  • 定义了一个名为LONG_DIST的信号;从第7位开始;长为12个bit;@0表示信号的字节顺序,0代表Motorola,1代表Inter;+表示无符号数,-表示有符号数;Factor=0.0625;OffSet=0;min=0;max=255.5;单位为"m ";接收节点为NEO。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
 SIG_GROUP_ 896 VehBattU 1 : VehBattUSysU VehBattUSysUQf;
  • 1
  • 定义信号组VehBattU,包含两个信号VehBattUSysU和VehBattUSysUQf。
    在这里插入图片描述
CM_ SG_ 1024 RADAR_STATE "need to find out more diagnostic values";
  • 1
  • CM_(Comment):用于添加备注和注释,方便用户理解文件内容。上述代码的含义为:RADAR_STATE的信号ID为1024(十六机制为0x400),含义为"need to find out more diagnostic values"。
  • 可以进行注解的对象类型不仅限于信号,还可以是节点“BU_”、报文“BO_”等。
    在这里插入图片描述
VAL_ 1024 RADAR_STATE 121 "ok" 110 "faulted" 105 "wrong_config";
  • 1
  • VAL_(Value Table):给信号添加值域描述。定义报文ID为1024(十六机制为0x400)的信号RADAR_STATE为枚举变量,当其值为121时表示"ok";110时表示"faulted";105时表示"wrong_config"。
    在这里插入图片描述

参考资料Author:bitbug123

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/585898
推荐阅读
相关标签
  

闽ICP备14008679号