【CANoe制作DataBase(DBC文件)】

        本篇是CANoe使用制作DBC文件,DBC是Database Can的缩写,其代表的是CAN的数据库文件,里面定义了CAN总线上有哪些CAN节点、每个节点各自发出什么CAN报文,每个报文下又有哪些信号,CAN总线不管是开发、测试还是分析,DBC文件都是必不可少的。

目录

        本篇是CANoe使用制作DBC文件,DBC是Database Can的缩写,其代表的是CAN的数据库文件,里面定义了CAN总线上有哪些CAN节点、每个节点各自发出什么CAN报文,每个报文下又有哪些信号,CAN总线不管是开发、测试还是分析,DBC文件都是必不可少的。

一、新建DBC文件

二、新建节点

三、创建CAN报文

四、创建CAN报文的信号

五、将信号与报文相关联

六、为报文设置发送者和接收者


一、新建DBC文件

        1.1、打开CANoe,在CANoe的Tools菜单栏内,点击CANdb++Editor 打开DBC编辑软件

DBC编辑器打开后的界面如下

点击File,在弹出的窗口中选择Create DataBase

弹出如下窗口,用于选择DBC模板,我一般选择CANoeTemplate或者CAN Template

本次选择CAN Template,点击ok,在随后弹出的窗口中,选择一个文件夹作为这个DBC的路径,点击保存即可。

保存后的界面如图所示,点击一下放大按钮把界面放大便于观看

二、新建节点

节点(NODE)是本DBC中所有报文的发送者和接收者的定义(可以简单认为是ECU)。

在Network node处右击鼠标,点击NEW 新建一个节点(ECU),给这个节点赋予一个名称,随后点击确定即可,新建两个节点ECU001和ECU002来进行互相的收发

节点创建好后,界面如下

三、创建CAN报文

CAN总线,CAN报文自然是核心,接下来我们创建两条CAN报文。

同样的,在message处,右键鼠标,选择new,新建一个message

  • Name处输入本条CAN message的名称,注意(不得使用中文,不得以数字开头)
  • Type处选择CAN Standard(标准CAN)
  • ID处填入此CAN报文的CAN ID
  • DLC处写入此报文的长度(单位是字节)
  • 随后点击OK

再次创建第二条CAN报文,完成后如图所示。

四、创建CAN报文的信号
  • 信号代表的是CAN报文中的各个bit位的值含义。
  • 一个信号既可以只占一个bit,如代表电机的运行状态(0是静止,1是电机正在运行)
  • 通常来说,一个信号占多长的长度,取决于这个信号会有多少种可能得值,比如说A信号的取值从0~12,总共需要13个数,那么它所需要的长度就至少是4Bit(4Bit可以表示0~0xF,总共16个值)
  • 具体的信号需要占用多少个bit位,可以查看客户给予的CAN矩阵表,或者自己根据需要定义。
  • 首先新建一个信号。
  • 同样的,在Signals处右击new一个信号

  • Name处键入此信号的名称
  • Length处填入此信号的长度(单位为Bit)
  • Byte Order(字节序)选择以Intel型填充还是以Motorola型填充。
  • Intel型 :小端字节序,字节内部bit排序从高位开始
  • Motorola型:大端字节序,字节内部bit排序从低位开始
  • ValueType:值的类型,有符号整数和无符号整数以及浮点数类型

此处以Intel格式为例

偏移系数和最大值最小值可以不填

如下填写后点击ok

随后再次以同样的方式创建三个信号

四个信号都创建完成后,如下图所示:四个信号

五、将信号与报文相关联

既然信号是报文中某几个bit位的含义,那么信号就应当与报文一一对应起来

接下来,我们将信号与报文进行绑定(把信号放到报文中去)

在左侧双击CAN报文0x111  打开CAN报文界面

点击Signals切换到信号栏下

点击右下角的Add将信号添加到报文中

选择需要添加进去的信号,然后ok。这里我将0x111的两个信号Signal01和signal02放进来

再点击右下角的确定按钮,信号就添加完成了。

点击后如果DLC设置得比添加进去的信号所占的字节数多,就会弹出这个窗口,点击否(N)即可,如果点击是(Y),系统会修改这条CAN报文的长度为刚刚添加进去的信号所占的字节数

添加完成后如图所示,右边会列出这个报文里所有的信号,以及信号所占的字节和起始位。

此时,如果想修改信号在报文中,所占的位置,可以双击红框中的Startbit处修改起始位

随后点击确定即可。

也可以在这条CAN报文的Layout中通过鼠标拖动修改信号所处的位置。

双击左侧CAN报文,在弹出的窗口中点击layout,鼠标按住方框中标记的信号拖动即可改变信号所在的位置

接下来以同样的方法,把另外两个信号添加到0x222的CAN报文中去

添加完后在左侧展开两个CAN报文,即可看到这样的界面

六、为报文设置发送者和接收者

我们现在已经有了两条完整的CAN报文,但是还没有规定这两条报文由谁进行收和发

接下来,我们需要为报文指定接收者和发送者。

在左侧点击红框中的+号,展开节点视图

可以看到,节点ECU001和ECU002下都是空的,TX message和RX message都没有。

双击节点ECU01,在MappedRXSig里面Add需要接收的报文中的信号

再切换到Tx message栏目,把该节点发送的报文Add进来,随后点击确定

此时我们展开左侧,可以看到ECU01已经有了对应的tx 和rx报文以及信号

完成后如图所示,ECU01和ECU02都已经具有了Tx和Rx报文。

ECU001发送0x111,接收0x222

ECU002发送0x222,接收0x111

        至此,一个简略版的CAN DBC就制作完成了。

  • 37
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值