DBC的故事(二)
阿新 • • 發佈:2018-05-13
value signed bsp 解析 解決 正數 有符號數 分享圖片 byte
上篇介紹了MSB和LSB,此篇介紹更復雜的:有符號和無符號數。
1.信號符號
CAN信號有其物理意義,如溫度、扭矩等,這些信號是有負值的,常見的解決方案有2種:
1)把offset設成負值
如溫度offset=-40,則溫度最小值-40。
2)CAN信號類型設為有符號
上篇文章中提到signal定義中有SignedFlag,當SignedFlag是負號時,表示此信號是由符號的。
- 格式:SG_ Name : StartBit | Length @ ByteOrder SignedFlag (Factor,Offset) [Minimum | Maximum] "Unit" Receiver1
2.信號傳輸
比較長度是一個byte(8個bit)數據傳輸。
1)無符號數
數值範圍:0~255(2^8-1),傳輸原碼。例如:7=00000111。
2)有符號數
最高位是符號位,數值範圍:-128~127,正數傳輸原碼,負數傳輸補碼。例如-7,原碼=10000111,補碼(除符號位按位取反,再加1)=11111001。網絡傳輸的就是補碼。
3.信號解析
在上篇文章基礎上,更新了《dbcvalue》項目,比較有無符號數據的值。回復“DBC例子”獲取。
1)無符號數
2)有符號數
DBC的故事(二)