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