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

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


image.png

下面以起始位位34,長度位12的信號(hào)來做演示來區(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ū)別,如果計(jì)算錯(cuò)了會(huì)導(dǎo)致發(fā)送的報(bào)文或解析的報(bào)文異常。其次要注意起始位是從第幾位開始計(jì)算,Motorola Forward MSB以高位MSB為起始位,Motorola Forward LSB則以低位LSB為起始位。

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


image.png

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

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

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

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

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