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後面跟的是十進制數