Motorola和Intel格式報文解析的區別


 

結論:無論用的Motorola,還是Intel格式,只在單個信號跨字節時解析才有區別。

先看下Vector的CANoe中dbc編輯器是如何呈現報文的:

圖1 CAN報文中byte與bit順序

從圖中可以看出,每行表示一個字節的8個位,從右到左依次是bit0, bit1...bit7. 一共有8行,從上到下依次是byte0, byte1...byte7.這也正是每幀CAN報文數據能容納的最多數據——8個byte,共64個bit(bit位序從byte0到byte7依次遞增排序)。

 

關於CAN報文,用的Motorola,還是Intel格式,只在單個信號跨字節時解析才有區別。

舉例:

(1)配置CAN報文信號為Motorola格式

圖2 Motorola格式信號

 

圖3 Motorola格式信號排布

 

 報文中相應信號用上述Motorola格式解析出來的結果如下:

圖4 Motorola格式信號解析

 

 (2)配置CAN報文信號為Intel格式

圖5 Intel格式信號

 

圖6 Intel格式信號排布

 

報文中相應信號用上述Intel格式解析出來的結果如下:

圖7 Intel格式信號解析 

 

對比:

a)跨字節信號ins_p和Treserved:兩種格式解析結果不同。按照byte0, byte1...的先后順序,Motorola格式大字節在前,小字節在后,如ins_p解析為0x3884。而Intel格式小字節在前,大字節在后,如ins_p解析為0x438。(此處的大字節指的是高位bit所在的字節,小字節指的是低位bit所在的字節)

b)非跨字節信號VolAD:兩種格式解析的結果相同,都是0xC0,也即192。

注:

a)需要明確:8個byte的順序不變,每個byte中8個bit的順序不變,如圖1所示。

b)從圖3和圖6的箭頭方向可以看出每個信號不同格式下bit的排布順序。其中紅色箭頭指向首尾bit,白色箭頭指向跨字節的銜接bit。紅色箭頭的首為LSB(Least Significant Bit),尾為MSB(the Most Significant Bit)。


免責聲明!

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



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