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下某个帧的某个信号
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR5kMnpWT5lkaNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5IjNzAzNzITMyEDMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
下拉框有三种
1.signal就是普通信号,不复用
2.multiplexor signal是作为【控制开关】的信号
3.multiplexed signal是复用的信号,还需要设置multiplex value
若
【信号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后面跟的是十进制数