DBC格式解析(數據部分)


dbc格式說明: DBC Format
 
實戰:
我們先來看一段數據
BO_ 1024 VOLTAGE01: 8 BMS2
 SG_ V01 : 7|16@0+ (0.001,0) [0|0] "" Vector__XXX
 SG_ V02 : 23|16@0+ (0.001,0) [0|0] "Unit2" Vector__XXX
 SG_ V04 : 42|16@0+ (0.001,0) [0|0] "Unit3" Vector__XXX
 SG_ V03 : 28|12@0+ (0.001,0) [0|0] "" Vector__XXX

SG_ V01 : 7|16@0+

此處的7是起始位置,

|16表示數據長度是16位

@0表示是Motorola格式(Intel格式是1),+表示是無符號數據

關於7的起始位置,和Intel格式或者是Motorola格式是有關的,如果是Intel格式,起始位通常是0。

(0.001,0)

應該是說結果應該乘以0.001,通常兩個字節表示的數字可能是一個很大的整數,起始我們是需要浮點數的,這樣通過乘以這個0.001就能得到正確的數字。

0表示偏移量。偏移量是干什么用的呢,比如我們計算溫度的時候,用無符號型數據,但是溫度有零下,怎么表示呢,我們用0這個偏移量,比如(0.5,-40)就表示得這個數據乘以0.5,再減去40,這樣就能表示零下40度的數據,精度是0.5度。兩個字節最大能表示255,乘以0.5大概剩下127.5,然后減掉40,就得出,我們數據的范圍是從(-40度到87.5度)這樣的數據范圍顯然是無法滿足我們的要求的,所以可能要1個半字節甚至2個字節才能表達完整的溫度,或者犧牲精度為代價。

[0,0]

是表示最大值和最小值,定義一個范圍,通常不用管

用下面兩幅圖來說明起始位置,也許能幫助理解

起始位置是7:

起始位置是0:

起始這個是和大端小端是相關的,起始位置是7,應該是大端(單片機),起始位置是0,應該是小端(PC)。可以理解成高低位在前還是在后。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM