大端 vs 小端 —— Motorola vs Intel

前两篇文章我们介绍了大端小端的概念和在车内通信中的应用,今天我们来具体介绍大端和小端,也就是Motorola和Intel两个格式在信号排布时候的区别。

原创 车载以太网王师傅大端 vs 小端 —— Motorola vs Intel

大端 vs 小端

Motorola vs Intel

前两篇文章我们介绍了大端小端的概念和在车内通信中的应用,今天我们来具体介绍大端和小端,也就是Motorola和Intel两个格式在信号排布时候的区别。

✦ + +

基础规则

上篇文章中提到了,Intel和Motorola一共有六种排列格式:

Intel 有两种:

Intel standard

Intel sequential

Motorola 有四种:

Motorola forward LSB

Motorola forward MSB

Motorola sequential

Motorola backward

Intel为小端,低地址(序号小的Byte)存放最低有效字节(LSByte),高地址(序号大的Byte)存放最高有效字节(MSByte);Motorola为大端,低地址存放最高有效字节(MSByte),高地址存放最低有效字节(LSByte)。

为了方便阅读,本文中最高有效字节(MSByte)统称为高字节,最低有效字节(LSByte)统称为低字节;同理,最高有效位(MSBit)统称为高位,最低有效位统称为低位(LSBit),详细含义在大小端的第一篇文章《 大端 vs 小端 —— 基础原理 》中有过介绍,这里就不过多赘述了。

如果要排布的信号不跨字节,Intel和Motorola没有区别,信号的高位(MSBit)放在字节的高位,信号的低位(LSBit)放在字节的低位即可。

如果要排布的信号跨字节, 信号的高位(MSBit) 放在高字节(MSByte) 的高位,信号的低位(LSBit)放在低字节(LSByte)的低位,但因为Intel和Motorola的高低字节位置不同,所以跨字节的时候就有了区别。

排信号的时候,除了格式,还有两个重要的参数是起始位(Start bit)和信号长度(Length,单位Bit), 下面我们通过排列一个长度为12 Bit,起始位为28的信号来具体了解下这几种排列格式的区别。

✦ + +

示例

Intel格式的起始位都是LSBbit,我们先来对比下Intel standard和Motorola forward LSB,对Intel和Motorola有个大概的了解。

Intel standard:

Start bit 26,Length 12

起始位:LSBit,最高有效字节:Byte 7

大端 vs 小端 —— Motorola vs Intel

Motorola forward LSB:

Start bit 26,Length 12

起始位:LSBit,最高有效字节:Byte 0

大端 vs 小端 —— Motorola vs Intel

Intel standard和Motorola forward LSB的排列方式一致,起始位是低位(LSBit),但高低字节的位置不同。Intel standard格式中Byte 0为低字节,Byte 7为高字节,所以跨字节排列时,信号向下排列;Motorola forward LSB格式中Byte 0为高字节,Byte 7为低字节,所以跨字节排列时,信号向上排列。

紧接着我们来对比上面的Motorola forward LSB和Motorola forward MSB的区别:

Motorola forward MSB:

Start bit 26,Length 12

起始位:MSBit,最高有效字节:Byte 0

大端 vs 小端 —— Motorola vs Intel

这两种格式的区别为起始位不同,从名字也能看出,Motorola forward LSB的起始位是LSBit,Motorola forward MSB的起始位是MSBit。

下面这种Motorola backward是最奇怪的一种格式,甚至无法在CANdb++ Editor中显示。比特的序号是Motorola forward格式完全颠倒过来,如下图

Motorola backward:

Start bit 26,Length 12

起始位:LSBit,最高有效字节:Byte 0

大端 vs 小端 —— Motorola vs Intel

上篇文章《大端 vs 小端 —— 车内通信》中介绍了比特位的编号顺序有两种,分别是Sawtooth和Sequential,上面四种格式使用的都是Sawtooth顺序,比特的序号是不连续的。而下面两种格式则使用Sequential顺序,比特的序号是连续的。

注意

如果使用Sequential顺序,想在CANdb++ Editor中正确显示的话,需要勾选Bit index中的Inverted,否则显示的序号是错乱的。

大端 vs 小端 —— Motorola vs Intel

如果在软件的设置中将显示格式都选为Sequential,CANdb++Editor会自动跳出个提示框,询问是否使用反转格式,如下图

大端 vs 小端 —— Motorola vs Intel

大端 vs 小端 —— Motorola vs Intel

Intel sequential:

Start bit 26,Length 12

起始位:LSBit,最高有效字节:Byte 7

大端 vs 小端 —— Motorola vs Intel

Intel sequential的排列规则其实和Intel standard一致,只不过比特的编号顺序不同。同理,Motorola sequential和Motorola forward MSB的排列规则也一致。

Motorola sequential:

Start bit 26,Length 12

起始位:MSBit,最高有效字节:Byte 0

大端 vs 小端 —— Motorola vs Intel

今天的分享就到这里,本文介绍了在信号排布的时候Intel和Motorola几种排列格式的区别。

封面图片作者

Oliver Widder

图片来源

https://geek-and-poke.com

通过这三篇文章,王师傅分别介绍了大端小端的基础原理、车内通信的场景以及Intel和Motorola几种格式的区别。接下来,王师傅会分享更多车载以太网的相关知识,敬请期待。

END

声明:本站内容资源均来源于网友分享及网络公开合法渠道,但我们不对这些内容的观点、描述的准确性负责,也不保证所有信息的原创性、真实性、完整性及即时性。对于本站所含文章或资料的版权问题,如您发现有侵犯版权的情况,请联系我们进行处理。同时,我们提倡将本站内容用于个人学习交流,严禁未授权的商业用途,否则由此产生的法律后果由使用者自行承担。感谢支持!
技术分享车载通讯

大端 vs 小端 — 车内通 信

2024-6-1 17:28:19

三电系统技术分享

如何玩转永磁同步电机堵转状态发热?

2024-6-2 12:16:54

2 条回复 A文章作者 M管理员
  1. user369

    厉害

个人中心
今日签到
有新私信 私信列表
搜索