CAN总线常见的两种编码格式(Intel/Motorola)

在汽车电子行业的开发或者测试中,我们经常会看到CAN总线信号的常见的两种编码格式:Intel格式与Motorola格式

讲解这两种格式之前,我们先来了解一些大端模式小端模式,会对后面理解这两种编码格式有很大的帮助。

一、大端模式和小端模式

大端模式(Big-Endian):高字节存低地址,低字节存高地址

小端模式(Little-Endian):高字节存高地址,低字节存低地址

单纯的从概念描述上可能比较难理解,我们来看一个实例,十六进制数---0x12345678,分别来看一下这个数据在两种模式下的存储情况:

数据0x12345678,共四个字节,从高字节到低字节依次为12、34、56、78

 

将这个数据以大端的方式存放在数组data[3]中为:

   

 

将这个数据以小的方式存放在数组data[3]中为:

 

    

 

二、Intel格式与Motorola格式

1.当一个信号的长度不超过1个字节(8bit),且不跨字节时,Intel格式与Motorola格式编码结果是完全一样的,如图:

 

 

 

 

2.当一个信号的长度不超过1个字节(8bit),但是跨字节时,Intel格式与Motorola格式编码结果是不一样的

MSB:高位字节    LSB:低位字节

Motorola格式(类似于大端模式):从高地址开始存储

 

 

Intel格式(类似于小端模式):从低地址开始存储

posted on 2021-12-07 16:01  UP的小刺猬  阅读(6690)  评论(0编辑  收藏  举报