中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 648查看
  • 0回复

[试验设备] 读懂CAN DBC文件

[复制链接]
  • TA的每日心情
    奋斗
    29-5-2022 14:32
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 29-5-2022 18:49:05 | 显示全部楼层 |阅读模式

    汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


    CAN DBC 指的是CAN 报文的数据库。简单地说,通过CAN 总线通信的数据类型可以用DBC 文件来读取和理解。DBC 是一种基于ASCII 的翻译,是在20世纪90年代发展起来的标准文件,现在正在被全世界的汽车工业所使用。这些文件可以通过描述CAN 帧内的数据来帮助识别它。作为这些CAN 数据库,文本文件包含了将原始CAN 总线解码为物理值的信息。因此,它也在作为一个信号库发挥作用。



    微信图片_20220515202134.png



    对于DBC 文件来说,信号不是一个电气输入或输出,而是一个物理参数,如温度、发动机转速、电压等。DBC 是处理8字节十六进制CAN 报文和原始CAN 数据的识别和转换的最常用方法。一个CAN 帧中的数据可以分成8个单byte的值、64个单bit值、一个64-bit 值或这些值的任何组合。数据字段最多可以包含8个字节的数据。一个CAN 帧可以包含0到64个单独的信号(对于64个通道,它们都将是二进制的)。



    DBC文件包含以下信息:

    ● 当前信号报文的CAN ID

    ● 信号在CAN 报文中出现的位置

    ● 信号的字节顺序

    ● 信号的转换细节

    ● 信号的单位



    微信图片_20220515202259.jpg



    现在让我们借助使用 Influx Dialog 软件的例子来详细了解一下。



    DBC 中定义的名为ECU 的报文中的RPM(发动机转速)信号



    ★ 报文的定义:



    微信图片_20220515202303.png



    该报文定义包含以下信息:

    ● CAN ID:传输报文时使用的CAN ID

    ● 报文的名称

    ● CAN 报文的类型(CAN 标准帧/扩展帧或CAN FD 标准帧/扩展帧)

    ● 数据长度代码(DLC)--CAN 报文中数据的长度

    ● 发送器:传输报文的CAN 节点/控制单元



    ★ 信号的定义:



    微信图片_20220515202308.png



    该信号定义包含以下信息:

    ● 信号名称:消息中存在的信号的名称

    ● 单位:信号中存在的物理数据的单位

    ● 起始位:信号的起始位

    ● 位计数:信号的位计数

    ● Byte Order:信号的字节顺序,摩托罗拉(Big Endian)/英特尔(Little Endian)

    ● 类型:数据类型

    ● Factor(系数):信号的转换系数

    ● Offset(偏移):信号的转换偏移

    ● 最小和最大的信号值


    ★ 界定信号出现的位置



    微信图片_20220515202311.png



    ● bit 的位置是由起始位、位数和字节序定义的。

    ● 对于案例中的这个信号,起始位是48,位数是16,摩托罗拉的字节顺序是48。

    ● 因此,从收到的原始CAN 报文中,64位的CAN 数据,在摩托罗拉字节顺序中,从48到63的16位数据是发动机的转速数据。



    微信图片_20220515202315.png



    ★ 使用来自DBC的信息在接收到的原始数据中应用转换公式



    举例来说:

    从DBC中,我们得到的信息是:转换系数是0.25,偏移量是0。

    因此,当我们将其应用于转换公式((A*raw)+B)时

    因子A=0.25,偏移量B=0。

    十六进制的0xFFFF是十进制的65535

    (0.25*65535+0) =16383.75



    我们知道这个DBC 信号的单位是RPM,所以物理值是16383.75 RPM。



    由此可见,DBC 文件有助于了解哪些数据是通过CAN 总线进行通信的。手动完成这些翻译看起来可能是一项不可能完成的任务,但通过软件将使其变得快速而简单。

    许多Windows 应用程序可以在PC 上读取DBC 文件,包括 Influx Dialog Plus、Influx Module Analyser、Influx ReXdesk,Mathworks 的MATLAB Vehicle Network Toolbox、Vector 的CAN db++等等。

    另外,用Windows Notepad 也可以读取和编辑DBC 文件,但相比之下有些复杂。



    Influx Dialog 软件是一个创建/编辑DBC 的有效工具。



    微信图片_20220515202320.png



    补充内容 (1-6-2022 14:31):
    欢迎致电交流学习:15911801108

    补充内容 (1-6-2022 14:32):
    欢迎致电交流学习:15911801108

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 18-4-2024 20:40 , Processed in 0.222119 second(s), 31 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.