DBC motorola和intel的对比

  • 大端(big endian)与小端(little endian)

如果向内存中写入一个为:0x1234的数据,大端和小端的存储方式如下。

大端(big endian):低地址存储高字节,高地址存储低字节

内存地址 0x0001 0x0002
数据 0x12 0x34

小端(little endian):低地址存储低字节,高地址存储高字节

内存地址 0x0001 0x0002
数据 0x34 0x12
  • lsb 与 msb

lsb:least significant bit,最低有效位,二进制中代表最低值的比特位

msb:most significant bit,最高有效位,二进制中代表最高值的比特位

比如数据0x12的二进制形式为[msb] 0b00010010 [lsb]

  • Motolora 与 Intel

Motolora 与 Intel为dbc中(CAN报文)常用的两种数据格式,当CAN报文的信号不超过一个字节(8bit)时,两种格式没有区别;超过一个字节(8bit),两种格式有区别,Motolora为“大端”,Intel为“小端”

Motorola(12bit数据)

起始位从8开始

如果要存储0x36A这个数据,其存储方式如下,橙色为起始位,红色为终止位。

CANOE运行结果

Motorola跨字节(从12bit开始)

如果要存储0x36A这个数据,其存储方式如下,橙色为起始位,红色为终止位。

CANOE运行结果

Intel(12bit数据)

起始位从0开始

如果要存储0x36A这个数据,其存储方式如下,橙色为起始位,红色为终止位。

CANOE运行结果

Motolora和Intel(16bit数据)CANOE运行结果

数据0x1234

posted @ 2023-02-19 00:45  荒诞的X  阅读(1793)  评论(0编辑  收藏  举报