文章目录
dbc概述
DBC(CAN data base)是描述网络上所有电子节点(ECU)之间CAN通信信息的数据库文件。
注意三个关键词:网络、电子节点和CAN信息,通常一个DBC文件只能包含一个CAN网络的节点信息。
dbc文件的编辑
安装 CANoe 软件后会带有 CANdb.exe 工具,使用此工具可以打开、编辑和创建 dbc 文件。
dbc 属性
不同的DBC属性决定不同功能的报文, 一般实际项目中涉及的报文为4类:应用报文,诊断报文,网络管理报文,XCP报文。不同作用的报文其在协议栈中的信号流路径是不同的。
报文类型 | Type |
---|---|
应用报文 | Norma / APP |
网络管理报文 | NM |
诊断报文 | DIAG |
xcp报文 | XCP |
dbc 文件内容浅析
左侧树形目录对应:
Networks —— 网络
Network nodes —— 电子节点
Messages & Signals —— CAN信息
除此之外,还有ECUs和Environment variables两项,ECUs下包含的其实是每个ECU的Network Node和Environment Variables,Environment Variables在使用CANoe仿真节点时会用到。
dbc - Networks
Networks 从网络的视角来观察总线上存在的节点、报文和信号。
注意:Networks下面只有一个CAN网络信息
Tx Messages: 列出该网络上所有的报文,实际就是每个节点发送报文的集合。
Signals: 列出该网络总线上所有的信号。
各个节点: 单个节点的收发信号
dbc - ECUs
在ECUS 下有各个 Network Node, 在这个节点下有 Environment variables 和 Network Node两项。
其中 Network Node 下的是单个节点的收发信号。
dbc - Network nodes
在与Networks不同,Nodes部分从单个节点的视角来观察与节点相关的总线报文及信号,以 BMS 节点为例,展开后下面包含Tx Messages、Rx Messages、Mapped Tx Signals(映射Tx信号)以及Mapped Rx Signals(映射Rx信号)。
- Tx Messages:节点发送报文
- Rx Messages:节点接收报文
- Mapped Tx Signals:节点发送信号
- Mapped Rx Signals:节点接收信号
那这里的收发报文信号和树型目录最下部的Messages和Signals有什么区别呢:
Messages与Signals下包含的报文信号比节点下的报文信号要多,并且有可能会包含实际没用到的报文信号,因为所有创建的报文信号都会在Messages与Signals下显示,但只有映射到节点的报文信号才会在Network及Node下显示。
dbc - Messages
Message是CAN总线上传输信息的最小单位,一条Message最大包含8个Byte的数据(CAN FD则最大支持64个Byte的数据)
Messages从用途角度可以分为三大类:应用(APP/Normal)报文、网络(NM)报文和诊断(DIAG)报文。
dbc - Signals
Signal 是 Message 里最小的元素单位,通过在某条报文上右击选择Edit Message打开报文编辑窗口,然后选择Layout选项卡可以查看当前报文的信号布局:
dbc的用途
软件开发方面主要配合Vector的Geny或Davinic Configuration协议栈配置工具来实现CAN通信栈的配置及代码生成;
软件测试主要用Vector的CANoe等测试工具来实现节点仿真、报文解析等功能。