DBC的故事

摘要:
格式:VAL_ IDNamekey1“value1”key2“value2”;示例:VAL_ 100VehSpdValid1“有效”0“无效”;定义:帧ID=0x64,信号名称=VehSpdValid,枚举值4.DBC分辨率上面已经介绍了DBC格式。接下来,介绍如何使用DBC从原始消息中解析物理值。MSB是高位优先的MSB,LSB是低位优先的MSB,大多数MSB使用MSB。

DBC的故事第1张

欢迎关注《汽车软件技术》公众号,回复关键字获取资料。

1.DBC定义

DBC(data base CAN)是汽车ECU间进行CAN通讯的报文内容,有了它相互之间才能听懂。

2.DBC查看

DBC是文本文件,可以用记事本打开,一般都用CANdb++,可以更方便的查看和编辑。

3.DBC组成

DBC是由一系列的Message和Signal组成,文件定义了Message和Signal的属性,可参考vector文档(回复“DBC文档”获取)。下面介绍几个重要的关键字:

1)BO_

BO_是对Message的定义。

  • 格式:BO_ IDName: DLCTransmiter
  • 例子:BO_ 100 ESP_01: 8 ESP
  • 释义:发送方=ESP,帧名称=ESP_01,帧ID=0x64,报文长度=8个字节

2)SG_

SG_是对Signal的定义。

  • 格式:SG_ Name : StartBit | Length @ ByteOrderSignedFlag (Factor,Offset)  [Minimum | Maximum] "Unit"   Receiver1,Receiver2
  • 例子:SG_ VehSpd : 7|16@0+ (0.01,0) [0|655.35]  "km/h"  ECM.TCM
  • 释义:信号名称=VehSpd,起始地址=7,长度=16,字节顺序=MSB(大端),符号位=无符号,系数=0.01,偏移=0,最小值=0,最大值=655.35,单位=km/h,接收方=ECM和TCM

3)VAL_

VAL_是对Signal枚举值的定义。

  • 格式:VAL_ IDName key1  "value1key2 "value2"  ;
  • 例子:VAL_ 100 VehSpdValid  1 "Valid" 0 "Invalid" ;
  • 释义:帧ID=0x64,信号名称=VehSpdValid,枚举值(0x0=Invalid,0x1=Valid)

4.DBC解析

上文已经介绍了DBC的格式,接下来介绍如何使用DBC从原始报文中解析出物理值。在此之前要先理解MSB(大端)和LSB(小端)。MSB是高位在前,LSB是低位在前,大多数都用的MSB。

1)原始值

假设有3个信号:signal1、signal2和signal3,长度分别是16、4、12。这3个信号包括了3种类型:完整字节,部分字节和跨字节。用Layout来比较。下面使用了位操作指令:&是按位与,<<是左移,>>是右移。

  • MSB

 DBC的故事第2张

MSB高位在前。

signal1:起始地址=7,值=Byte0<<8+Byte1。(Byte0是高位,Byte1是低位)

signal2:起始地址=23,值=(Byte2&0xf0)>>4。(取Byte2的高4位)

signal3:起始地址=19,值=(Byte2&0x0f)<<8+Byte3。(取Byte2的低4位,作为高位)

  • LSB

 DBC的故事第3张

LSB是低位在前。

signal1:起始地址=0,值=Byte0+Byte1<<8。(Byte0是低位,Byte1是高位)

signal2:起始地址=16,值=Byte2&0x0f。

signal3:起始地址=20,值=(Byte2&0xf0)>>4+Byte3<<4。(Byte2是低位,Byte3是高位)

2)物理值

物理值=原始值*Factor+Offset

3)代码实现

以.NET(C#)为例,绘制layout,计算出数值。

(回复“DBC例子”获取源代码)

  • MSB

 DBC的故事第4张

  • LSB

 DBC的故事第5张

5.DBC开源资料

(回复“DBC开源”随机获取)

免责声明:文章转载自《DBC的故事》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇uniapp获取用户信息 getuserinfopostcss-pxtorem插件相关配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

stegsolve使用方法

Stegsolve使用方法(是因为ctf题总是遇到并且目前百度没有十分详细的探究说明) 这个没什么好说的,打开文件 ,保存,退出 在分析里面从上到下的依次意思是 File Format:文件格式 Data Extract:数据提取 Steregram Solve:立体试图 可以左右控制偏移 Frame Browser:帧浏览器 Image Combin...