这篇文章主要是记录学习过程中的一些收获。在CAN通信中,DBC文件是必不可少的,DBC文件是一个数据库属性的文件,通过加载DBC文件,可以对报文中的数据进行转化处理,得到相应的数字量。
在学习过程中,我使用的软件是Kvaser DataBase editer,是Kvaser公司出版的一款软件,在Kvaser官网就可以直接下载。功能还是比较全面的,操作使用也比较容易上手,个人觉得对于像我这样的小白比较友好。
1.操作界面
首先是界面。
进入Kvaser DB editer可以直接看到这个界面,点击open可以打开并编辑以有的DBC文件。也可以直接在这个界面创建新的节点,信息,信号等等,然后在Save保存生成新的DBC文件。
在第一个界面Messages&Signal可以直接通过右上角的加号减号创建或删除信息与信号。
第二个界面ALL Signal可以直接显示每个信号与信息的管理,也可以看到各个属性值。
第三个界面Node List和第一个界面类似,也可以直接创建删除节点。
最后一个界面是Communication Matrix,将节点与信息关联,设置发出与接收。
2.属性
接下来是信号的属性,在添加新的信号之后,需要对信号的各个属性值进行设置。
以这个DBC文件为例子,选中一个信号,就可以查看这个信号的属性,比较重要的一些属性值是:Byteorder(字位顺序),Bitpos(起始位),Length(长度),Factor(影响因子),Offset(偏移量)。这些属性值是DBC文件最重要的一部分,DBC文件能够解读CAN总线的报文信息都与这些属性有关。
- Byteorder(字位顺序):有Int和Motolora两种模式,方便对应了小端序和大端序。
- Bitpos(起始位):代表了这个信号在数据报文中的起始位置,只有设置了就可以在右上角的图中可以看到。
- Length(长度):这个很好理解,就是信号的字节长度。
- Factor(影响因子):这个是信号读取到的对应报文位置转化后的数字,然后再与Factor相乘,得到一个结果。
- Offset(偏移量):这个是信号上面经过转化相乘得到的结果在与Offset相加得到的最终量。
3.信号与信息的关联
在这个界面点右上方的加号可以创建Message,选中Message之后再点击下面的加号就可以创建新的Signal,然后设置前面讲的那些参数。需要注意的是设置的信号所占据的报文字节位置,需要注意起始位与信号长度。设置的同时可以在右上角的图中看到占据的位置与长度。所有的信号的长度相加不能超过64,不然会超过定义范围,需要重新创建一个Message。一个Message可以添加很多个Signal。
在第二个界面可以看到所以信号显示,包括它们的属性,归属的Message等等。
其他的还有节点与Message的关联,但是目前我还没有应用到那一步,这里就不解释了。