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

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

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

一、大端模式和小端模式

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

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

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

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

CAN总线常见的两种编码格式(Intel/Motorola)_第1张图片

 

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

   CAN总线常见的两种编码格式(Intel/Motorola)_第2张图片

 

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

 

    CAN总线常见的两种编码格式(Intel/Motorola)_第3张图片

 

二、Intel格式与Motorola格式

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

CAN总线常见的两种编码格式(Intel/Motorola)_第4张图片

 

 

CAN总线常见的两种编码格式(Intel/Motorola)_第5张图片

 

 

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

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

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

 

 CAN总线常见的两种编码格式(Intel/Motorola)_第6张图片

 

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

CAN总线常见的两种编码格式(Intel/Motorola)_第7张图片

你可能感兴趣的:(CAN总线常见的两种编码格式(Intel/Motorola))