美文网首页
Can报文的字节排序(Motorola Forward MSB和

Can报文的字节排序(Motorola Forward MSB和

作者: 还是做个码农 | 来源:发表于2022-10-01 00:27 被阅读0次

    本篇只描述Motorola格式的字节排序方式,Intel格式的不作介绍。
    首先以下面的表格来表示字节顺序和位顺序,用红色背景表示高位MSB,蓝色背景表示地位LSB,绿色为LSB到MSB的过渡。


    image.png

    下面以起始位位34,长度位12的信号来做演示来区分Motorola Forward MSB和Motorola Forward LSB的区别。
    Motorola Forward MSB(大端在前):
    矩阵文档中起始位置则为MSB的起始位34,往高字节借位。


    image.png

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


    image.png

    Motorola Forward LSB(小端在前):
    矩阵文档中起始位置则为LSB的起始位34,往低字节借位。


    image.png

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


    image.png

    注意的是Motorola格式主要在于跨字节的区别,如果计算错了会导致发送的报文或解析的报文异常。其次要注意起始位是从第几位开始计算,Motorola Forward MSB以高位MSB为起始位,Motorola Forward LSB则以低位LSB为起始位。

    知识补充1:什么是内存的高低地址?
    如下图所示,以8个字节长度为例,Byte0为低字节,Byte7为高地址。


    image.png

    知识补充2:什么是高低字节?
    比如说对于0xFF22来说,FF就叫做数据的高字节部分,22就是低字节部分。

    知识补充3:什么是MSB和LSB?
    MSB(most significant bit)即最高有效位,LSB(least significant bit)即最低有效位。字节计算就是从LSB到MSB的计算过程。

    相关文章

      网友评论

          本文标题:Can报文的字节排序(Motorola Forward MSB和

          本文链接:https://www.haomeiwen.com/subject/wuozortx.html