天天看点

【DBC】DBC中CAN信号多路复用DBC文件信号多路复用详解

DBC文件信号多路复用详解

1何时定义

有些信号比较长,但是又不常用,就可以定义多路复用信号以节约空间。

2具体定义

2.1定义一个短信号来当做“控制开关”。

【若定义1bit,则有2种可能0x00和0x01,复用两路】

【若定义2bit,则有4种可能0x00和0x01和0x10和0x11,复用四路】…

所以说,这个短信号的长度和你想复用多少路有关,多长?放在什么位置?由定义者决定

2.2节约空间是如何体现的

现在有两个信号都是8bit【信号A】【信号B】,都不怎么常用,现在想复用这两路信号,把他们放在同样的位置,再定义一个1bit的短信号,用于控制。这样原来需要8+8=16bit空间,现在只需要8+1=9bit空间。

3CANoe-DBCEditor上如何配置

双击Messages下某个帧的某个信号

【DBC】DBC中CAN信号多路复用DBC文件信号多路复用详解

下拉框有三种

1.signal就是普通信号,不复用

2.multiplexor signal是作为【控制开关】的信号

3.multiplexed signal是复用的信号,还需要设置multiplex value

【DBC】DBC中CAN信号多路复用DBC文件信号多路复用详解

【信号X】设置成multiplexor signal

【信号A】设置成multiplexed signal并且multiplex value=0x01,

【信号B】设置成multiplexed signal并且multiplex value=0x02

当【信号X】的值为0x01时,【信号A】表示显性

当【信号X】的值为0x02时,【信号B】表示显性

4DBC文件上的显示

BO_ 110 MessageName: 8 Vector__XXX

SG_ Signal_X M : 23|[email protected] (1,0) [0|0] “” Vector__XXX

SG_ Signal_A m1 : 7|[email protected] (1,0) [0|0] “” Vector__XXX

SG_ Signal_B m2 : 7|[email protected] (1,0) [0|0] “” Vector__XXX

注:小m后面跟的是十进制数

继续阅读