【控制器局域网】CAN报文学习笔记(四)之 字节排序、信号提取实例1

以下面的表格来表示字节顺序和位顺序,用红色表示高位MSB,蓝色表示低位LSB,绿色为LSB到MSB的过度

Bit oder MSB LSB
Byte oder \ Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
MSB Byte0 7 6 5 4 3 2 1 0
Byte1 15 14 13 12 11 10 9 8
Byte2 23 22 21 20 19 18 17 16
Byte3 31 30 29 28 27 26 25 24
Byte4 39 38 37 36 35 34 33 32
Byte5 47 46 45 44 43 42 41 40
Byte6 55 54 53 52 51 50 49 48
LSB Byte7 63 62 61 60 59 58 57 56

下面以起始位36,长度为16的信号详细说明MSB与LSB的区别

Motorola Forward MSB (Big-Endian) 大端序

矩阵文档中的起始位置是MSB的起始位36,往高字节借位
在这里插入图片描述

填入 十六进制整数0x8FC0 , 对应二进制 1000 1111 1100 0000,如下图

在这里插入图片描述

要注意其箭头的增长方向,这样我们在提取该信号的值为:

MotorolaSignal = (Byte2 & 0b00011111) +(Byte3 << 3) + (Byte4 >> 5)

Motorola Forward LSB (Little-Endian) 小端序

矩阵文档中的起始位置是LSB的起始位36,往低字节借位
在这里插入图片描述

填入 十六进制整数0x8FC0 , 对应二进制 1000 1111 1100 0000,如下图
在这里插入图片描述

要注意其箭头的增长方向,这样我们在提取该信号的值为:

MotorolaSignal = (Byte2 & 0b00001111) +(Byte3 << 4) + (Byte4 >> 4)

最近更新

  1. TCP协议是安全的吗?

    2023-12-21 10:14:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-21 10:14:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-21 10:14:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-21 10:14:05       18 阅读

热门阅读

  1. 【数据爬取】Jsoup爬取数据的使用

    2023-12-21 10:14:05       40 阅读
  2. 支付宝单笔转账开发

    2023-12-21 10:14:05       42 阅读
  3. 拿到服务器该做的事和升级docker engine

    2023-12-21 10:14:05       43 阅读
  4. 记一次gunicorn启动报错

    2023-12-21 10:14:05       36 阅读
  5. AcWing算法进阶课-1.1.1EK求最大流

    2023-12-21 10:14:05       56 阅读
  6. docker-compose_redis_cluster

    2023-12-21 10:14:05       30 阅读