Can報文的字節(jié)排序(Motorola Forward MSB和Motorola Forward LSB的區(qū)別)

本篇只描述Motorola格式的字節(jié)排序方式,Intel格式的不作介紹。
首先以下面的表格來表示字節(jié)順序和位順序,用紅色背景表示高位MSB,藍色背景表示地位LSB,綠色為LSB到MSB的過渡。


image.png

下面以起始位位34,長度位12的信號來做演示來區(qū)分Motorola Forward MSB和Motorola Forward LSB的區(qū)別。
Motorola Forward MSB(大端在前):
矩陣文檔中起始位置則為MSB的起始位34,往高字節(jié)借位。


image.png

填入0xB79,即101101111001,如下圖:


image.png

Motorola Forward LSB(小端在前):
矩陣文檔中起始位置則為LSB的起始位34,往低字節(jié)借位。


image.png

填入0xB79,即101101111001,如下圖:


image.png

注意的是Motorola格式主要在于跨字節(jié)的區(qū)別,如果計算錯了會導(dǎo)致發(fā)送的報文或解析的報文異常。其次要注意起始位是從第幾位開始計算,Motorola Forward MSB以高位MSB為起始位,Motorola Forward LSB則以低位LSB為起始位。

知識補充1:什么是內(nèi)存的高低地址?
如下圖所示,以8個字節(jié)長度為例,Byte0為低字節(jié),Byte7為高地址。


image.png

知識補充2:什么是高低字節(jié)?
比如說對于0xFF22來說,F(xiàn)F就叫做數(shù)據(jù)的高字節(jié)部分,22就是低字節(jié)部分。

知識補充3:什么是MSB和LSB?
MSB(most significant bit)即最高有效位,LSB(least significant bit)即最低有效位。字節(jié)計算就是從LSB到MSB的計算過程。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容