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

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

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

搜索附件  
左侧广告
附件中心&附件聚合2.0
For Discuz! X2.5 © hgcad.com

一文了解CAN DBC文件w8.jpg

 

一文了解CAN DBC文件:
为了解析CAN通讯的收发数据,需要DBC文件将二进制/十六进制格式的数据与物理信号互转,所以DBC文件是广大工程师或研发人员能接触到的一个文件,DBC文件看着有点复杂,但实际上并不复杂,关键在于了解整个文件的结构,或者说了解CAN通讯矩阵。

本人之前分享过两篇关于CAN通讯矩阵/DBC的文章,可以参考:

    一文了解CAN矩阵与DBC文件 (qq.com)CAN矩阵和DBC里有哪些隐藏信息?(qq.com)
如果对这篇文章的内容基本掌握了,那么DBC文件就容易看明白。Anyway,本着分享汽车研发基础知识的初心,本文将介绍DBC文件的几个关键信息:节点(Node)、报文(Message)、信号(Signal)以及它们之间的联系,以此形成对DBC文件的完整认识。

1 为什么需要DBC文件  
汽车控制器主要采用CAN总线进行通信,当采用高速CAN的数据帧进行数据传输,那么每一帧报文将能传递8个字节,即64个bit的数据,每个bit能传输0/1。当然利用CAN通讯是为了传输物理信号,而不只是没有物理/实际意义的二进制数值,比如将MCU的电机转速传输给VCU,VCU最终希望获得是电机转速多少rpm,而不是一个没有实际意义的二进制/十进制/十六进制数值,此时就希望有这样一份“密码本”,可以将没有物理/实际意义的数据转换为有意义的物理信号,如下所示:   


Source: 什么是dbc(汽车CAN总线DBC文件简介)DBC文件就是这份“密码本”,因此DBC文件是主机厂的绝密文件,其他厂商进行竞品分析时,要耗费很大的人力物力来破解部分内容。因此不难理解,DBC文件是描述汽车网络拓扑上所有ECU之间CAN通讯信息的数据库文件,其中包含了CAN总线协议中协议数据及其所代表的具体意义,它可以用来监测和分析CAN网络上的报文数据,也可以用来模拟某个ECU的CAN节点。通常一个DBC文件只能包含一个CAN网络的节点信息,为了描述整车的网络拓扑信息,会需要多个DBC文件。
2 DBC文件详解  
接下来就从节点开始,逐个介绍节点(Node)、报文(Message)、信号(Signal)以及它们之间的关系。2.1 节点Nodes

在介绍节点之前,先回顾下整车网络拓扑,以一个经典的网路拓扑为例,如下所示:


Source: 未来智能网联汽车新一代整车架构-CANFDNET系列

假如这里DBC文件描述的辅助驾驶CAN,那么当你打开DBC文件,看到的Node会有BSD、 PAS和IEC。

同理,假设某路CAN有两个控制器ACU和CCU,那么,DBC文件的ECUs和Network nodes就应该有这两个控制器,如下所示:   


source 如何制作DBC文件_dbc制作因此,对于DBC文件中的ECUs和Network nodes中具有哪些控制器,其来源于整车网络拓扑。当ECU明确了有ACU和CCU之后,那么接下来关注的它俩分别会接收哪些报文(Tx Messages)以及发送哪些报文(Rx Messages)。2.2 报文Messages

将视线转到DBC文件中的Messages,这里将包含整个DBC文件的所有接收和发送的报文,如下示意:   


source 如何制作DBC文件_dbc制作
对于一条报文,其信息包括:
    定义Definition,包括报文的名字、报文类型(标准格式/扩展格式)、ID、长度和报文种类(周期型/事件型)等信息;信号Signals,此报文包含哪些信号,可见上图;收发方,如果该报文发送方,那么接收方是哪些ECU;如果该报文是接收方,那么发送方是哪个ECU;信号排列Layout,报文所包含的信号是怎样排列在这64bit中, 也见上图。   


source 如何制作DBC文件_dbc制作也就是通过对报文进行编辑和配置,那么一方面Message与Network Nodes已经建立了联系,该条报文属于哪个ECU的Tx messages,哪个ECU的Rx messages,即报文的存在一定有发送方也一定有接收方;另一方面Message与Signals也建立了联系,Messages配置完整的前提一定是明确了包含哪些信号。2.3 信号Signals

其实在进行报文配置的同时,就要开始进行信号的配置,只有信号配置好了,报文的配置才能完成,那么对于信号的配置,关键点是定义Definition,这决定了CAN数据帧的64bit数据能否被正确地解析为物理信号,Definition的配置根据CAN通讯矩阵的具体定义,另外个人认为对于值的描述Value Description(枚举量)也非常重要,非常便于相关人员快速获取信号的物理意义,如下所示:   

source 如何制作DBC文件_dbc制作          2.4 三者的关系

通过上述的三个小结分别介绍了节点(Nodes)、报文(Messages)和信号(Signals),每一项都需要有哪些配置内容,然后从节点—>报文—>信号,以此形成了一个有层次的结构,如下所示:

这样理清了三者之间的关系,那么再来看DBC的内容,思路就会十分的清晰。即使DBC文件包含的报文或信号数量非常多,当你需要找一个信号时,也不会觉得难找。这时找信号的思路是:   
    第一个关注点是哪个ECU接收还是发送的;第二个关注点是在哪条报文(ID);第三个关注点是信号的具体定义。


3 DBC使用常见问题有感

DBC使用过程中可能会遇到一些问题,个人体会有以下几点:
    关于报文采集,DBC文件是用来将CAN报文解析成具有实际意义的信号,没有DBC文件不会影响用设备(周立功,PCAN和CANalyzer等)去采集报文信号,在Trace界面仍然能看到不同报文及其数据在不断刷新。关于DBC文件版本,DBC文件版本要确认好,不然会出现解析出来的信号异常或有偏差,有时情况很明显,信号一看就不正常,有时情况不明显,信号一点偏差,刚开始没发现,大量数据分析结果之后总觉得数据有点不对。关于DBC文件加载,DBC文件该加载到设备哪个通道,经常会碰到不同的人用不同配置去采集报文数据,比如A的配置是设备的通道1采CAN1,通道2采CAN2,而B却反之,结果A打开B采的数据,没看不到。其实两个通道还好,如果多几个呢?这里分享一个不要问别人的配置DBC文件的技巧,即试错法,拖着DBC文件依次放在不同通道上,数据出来就配对了。关于DBC文件创建,最好学习下如何自动生成DBC文件,手写太费时。
以上就是关于DBC基础使用过程中需要关注的一些点,更多DBC文件的内容可持续关注后续文章!
创作不易,欢迎点赞再看收藏关注!

汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员。
一文了解CAN DBC文件w8.jpg
         同一主题附件:
    一文了解CAN DBC文件w1.jpg
    一文了解CAN DBC文件w2.jpg
    一文了解CAN DBC文件w3.jpg
    一文了解CAN DBC文件w4.jpg
    一文了解CAN DBC文件w5.jpg
    一文了解CAN DBC文件w6.jpg
    一文了解CAN DBC文件w7.jpg
    一文了解CAN DBC文件w8.jpg
    一文了解CAN DBC文件w9.jpg

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

GMT+8, 20-2-2025 06:52 , Processed in 0.333211 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.