1.can就是controller area network,是面向汽车的通信协议,通俗来讲就是在汽车电子控制领域中的不同部分进行通信的(传输数据)。
2.can报文有标准帧和扩展帧两种,也就是can和canfd,canfd是can的升级版,最长支持64字节(byte,=64*8 bits),并且传输速率更快,帧包含更多的内容。
3.can报文有三种:应用报文(APP报文)、网络管理报文(NM报文)和诊断报文。app报文就是自己新建的can报文,一般用于通信,nm报文用于控制网络中的节点的状态,诊断报文用于诊断。
4.can dbc是 database can,用于描述can网络中的节点信息,can dbc是一种基于ASCII的文件,这种文件能够描述CAN的帧数据,来帮助识别帧数据。也就是,在can dbc中包含了新建的can报文内容。
5.CANDB++:是用来新建can dbc的一个软件,有一下常用的名词:
Messages:报文
Signals:信号,报文上的具体内容
DLC:数据长度
Environment_variables:环境变量:定义了用于系统仿真和剩余总线仿真工具的环境变量。
转换公式:信号值*精度值+偏移量
’6.如何使用CANDB++新建自己想要的报文:
1.新建dbc:file-create database-CANFDTemplate.dbc(现有的dbc可以根据networks的具体信息查看是can还是canfd类型,通常是canfd类型)
2.can的属性配置:在新建完之后,可以配置can的attribution definition,可以手动配置修改,也可以导入某个dbc的配置(file选中import attribution definition)。
3.新建signal:右键new:byte order 字节顺序,length一般小于等于32(mcu一般是32位),value type一般选择unsigned,intel 低字节在前(高位)motorola 高字节在前(高位)(一般是摩托罗拉),配置相关信息(根据通信协议配置单位等),计算最小和最大值(calculate),comment添加注释等,也可以 配置属于哪个报文。
4.新建枚举表并添加到signal:view-value tables-右键new-value descriptions-add,可以修改具体的值和描述;选中signal右键edit-value table选中。(有时候的信号可能只有两种情况,比如0是关闭1是打开,可以使用此功能)
5.新建messages:右键new-填写属性(要根据networks中的vmc的属性设置message的属性can或者canfd,一般选择canfd standard)-添加signals-选中要添加的signal-ok-add;-layout可以拖拽信号(可以看信号所占的位)(要修改报文ID,如果默认为0的话会有错),可以修改报文发送的周期(一般为20ms)
6.新建节点(右键选中network nodes新建并配置),并配置报文发送和报文接收:配置报文发送:在network nodes中选择节点 -右键edit-TxMessages-add。配置报文接收,无法直接配置报文,要通过配置信号接收。在network nodes中选择节点 -右键edit-mapped Rx Sig.-add。
7.删除报文:选中报文右键删除,删除信号和报文即可,节点会自动删除