一、什么是DBC?
DBC(CAN data base)是描述网络上所有电子节点(ECU)之间CAN通信信息的数据库文件。注意三个关键词:网络、电子节点和CAN信息,DBC文件只用于描述CAN通信,通常一个DBC文件只能包含一个CAN网络的节点信息,因此,为了描述整车的网络拓扑信息,需要多个DBC文件。
例如下面的整车网络拓扑示意图:

众多电子节点划分为不同的功能区块,区块内的节点通过CAN总线相互连接形成独立的功能子网(如动力子网PTCAN、车身子网BodyCAN等),中央网关(GateWay)将不同的功能子网相连为跨网通信提供支持,不同子网上的节点还可以通过单独连接建立私有通信,某些节点(如BCM)还会通过LIN总线建立下属网络。这里功能子网的通信就需要用DBC来描述,并且每一个功能子网都有自己的DBC文件。
二、如何打开DBC?
使用Vector CANdb++ Editor工具可以打开、编辑以及创建DBC文件,通常在安装了CANoe或CANalyzer软件之后会带有该工具:CANdb.exe,执行文件位于软件安装目录下的Exec32文件夹下:

一般如果安装了CANdb工具系统会自动关联DBC文件格式(.dbc),这样便可以直接双击DBC文件打开。
DBC文件也可以通过文本方式打开(如使用windows系统的记事本程序),但是可读性远不如CANdb工具,但这种方式在研究DBC某些内容或想要通过脚本解析DBC文件时比较有用。
另外,需要说明的是CANdb工具分两个版本,CANdb++ Standard和CANdb++ Admin,Admin版支持的功能更多更强,我们一般使用的都是Standard版,后文介绍均基于该版本进行。
三、DBC里有什么?
下图是用CANdb工具打开DBC文件后的窗口界面,左侧窗格含有一个树型导航目录,右侧窗格展示当前选中目标的详细内容:

树型目录的分类与前面提到的三个关键词刚好对应:
Networks —— 网络
Network nodes —— 电子节点
Messages & Signals —— CAN信息
除此之外,这里还有ECUs和Environment variables两项,ECUs下包含的其实是每个ECU的Network Node和Environment Variables,Network Node就是上面说的电子节点,这个在后面会讲,Environment Variables在使用CANoe仿真节点时会用到。
-
Networks
Networks从网络的视角来观察总线上存在的节点、报文及信号,我们展开Networks下的PTCAN网络可以看到下面包括Tx Messages、Signals和本网络上的多个节点,如下图所示:

Tx Messages下列出了该网络总线上所有的报文,其实就是每个节点发送报文的集合。Signals下列出了该网络总线上所有的信号。节点部分列出了每个节点自身的发送和接收信号。
下面来看一下Network的属性参数,通过右击网络名(PTCAN)选择Edit Network打开网络编辑对话框,在Attributes选项卡下可以查看当前支持的参数项:

下面简要说明一下图示中各项属性参数的含义:
| 参数项 |
说明 |
| NmType |
指定网络管理类型:NmAsr(AutosarNm) |
| NmAsrBaseAddress |
指定网络报文ID的基址,即此网络上所有节点的网络报文ID要基于此地址增加不同的偏移量来确定,这里为0x600,那么其它节点网络报文ID为0x6XX,如0x610、0x611、0x612等 |
| NmAsrCanMsgCycleTime |
指定网络报文的周期时间:500ms |
| NmAsrMessageCount< |

DBC是描述CAN网络通信的数据库文件,用于定义电子节点和CAN信息。本文介绍了DBC的打开方式,使用CANdb++ Editor工具进行编辑,并详细解析了DBC中的网络、节点、消息和信号等内容,阐述了DBC在软件开发和测试中的应用。
最低0.47元/天 解锁文章
9565

被折叠的 条评论
为什么被折叠?



