Motorola与Intel格式的区别

Motorola高字节在前,Intel低字节在前。

         

在进行CAN总线通信设计或者测试过程中,经常看到CAN总线信号的编码格式有两种定义:Motorola与Intel格式。究竟两种编码格式有什么样的区别呢?设计者、dbc文件编辑者或者测试人员又该如何判断两种格式,并进行有效正确的配置和解析呢?下面作者给出自己在设计和测试过程中的一点体会和见解,希望能够总结出来加深一下印象和理解。 

在编码优缺点上,Motorola格式与Intel格式并没有孰优孰劣之分,只不过根据设计者的习惯,由用户自主选择罢了。当时,对于使用者来讲,在进行解析之前,就必须要知道编码的格式是哪一种,否则,就不能保证正确地解析信号的含义。以下就以8位字节编码方式的CAN总线信号为例,详细分析一下两者之间的区别。 

首先,介绍一下CAN总线的数据传输规则,首先传输一个字节的高位(msb),最后传输该字节的低位(lsb)。如下图所示。 

一般情况下,主机厂在定义CAN总线信号定义时,都会明确定义字节的发送顺序,即:以首先发送byte0(LSB),然后byte1,byte2,……(MSB)的发送顺序;还是以首先发送byte7(MSB),然后byte6,byte5,……(LSB)的发送顺序。据作者了解到的多个主机厂定义的CAN总线字节发送顺序均为前者(即:首先发送LSB,最后发送MSB)。这一点可以从目前主流的CAN总线信号数据库编辑器德国verctor公司的CANoe软件工具的定义上看出,CANoe中的CANdb++编辑器中默认定义的CAN数据场的字节结构及每一位的排布入下图所示。

在这种情况下,如果主机厂采用的是首先发送LSB,最后发送MSB的发送顺序,则在上表中可直接按照从左至右,从上至下的顺序依次对信号进行排布即可;但是,如果主机厂采用的是首先发送MSB,最后发送LSB的发送顺序,则在上表中需要从下至上,从右至左的顺序依次对信号进行排布,这样就比较难以对应,而且信号与数据场各字节之间的映射关系也不太直观。所以,一般来讲,主机厂会采用首先发送LSB,最后发送MSB的发送顺序。 

下面就以CAN总线报文的发送顺序为首先发送LSB,最后发送MSB的方式为前提,介绍Motorola与Intel格式这两种编码方式的不同之处。 

一、 采用Motorola格式编码 

当一个信号的数据长度不超过1个字节(8位)并且信号在一个字节内实现(即,该信号没有跨字节实现)时,信号的高位(S_msb)将被放在该字节的高位,信号的低位(S_lsb)将被放在该字节的低位。这样,信号的起始位就是该字节的低位。下图分别以4位和8位数据长度的两种信号为例进行了说明,并给出了某一车型的通信矩阵在CANoe中CAN数据库实现的图片说明。

当一个信号的数据长度超过1个字节(8位)或者数据长度不超过一个字节但是采用跨字节方式实现时,该信号的高位(S_msb)将被放在低字节(MSB)的高位,信号的低位(S_lsb)将被放在高字节(LSB)的低位。这样,信号的起始位就是高字节的低位。对于一个信号的数据长度不超过一个字节,但是采用跨字节方式实现的这种情况,因其对信号解析和编码以及信号完整性都存在不利因素,所以主机厂在定义某一车型(系)的整车通信矩阵时,不太可能设计出这种编码结构。本文就不再考虑和分析这种较为特殊的情况,但其原理与本文讨论的其他情况是相同的。下图分别以12位和16位数据长度的两种信号为例进行了说明,并给出了CANoe中的某一车型的通信矩阵的CAN数据库的图片说明。

二、 采用Intel格式编码 

当一个信号的数据长度不超过1个字节(8位)并且信号在一个字节内实现(即,该信号没有跨字节实现)时,该信号的高位(S_msb)1将被放在该字节的高位,信号的低位(S_lsb)2将被放在该字节的低位。这样,信号的起始位3就是该字节的低位。下图分别以4位和8位数据长度的两种信号为例进行了说明,并给出了某一车型的通信矩阵CANoe中的CAN数据库实现的图片说明。

当一个信号的数据长度超过1个字节(8位)或者数据长度不超过一个字节但是采用跨字节方式实现时,该信号的高位(S_msb)将被放在高字节(MSB)的高位,信号的低位(S_lsb)将被放在低字节(LSB)的低位。这样,信号的起始位就是低字节的低位。对于一个信号的数据长度不超过一个字节,但是采用跨字节方式实现的这种情况,因其对信号解析和编码以及信号完整性都存在不利因素,所以主机厂在定义某一车型(系)的整车通信矩阵时,不太可能设计出这种编码结构。本文就不再考虑和分析这种较为特殊的情况,但其原理与本文讨论的其他情况是相同的。下图分别以12位和16位数据长度的两种信号为例进行了说明,并给出了CANoe中的某一车型的通信矩阵的CAN数据库的图片说明。

由上,可以看出,当一个信号的数据长度不超过1个字节(8位)时,Intel与Motorola两种格式的编码结果没有什么不同,完全一样。当信号的数据长度超过1个字节(8位)时,两者的编码结果出现了明显的不同。

文中术语解释及定义: 

1. 信号的高位,即最能表达信号特性的因子,比如:车速信号500km/h按照给定的公

式,转换成十六进制数为0x6A5,因为6代表的数量级最大(162),那么其中6就是其信号的高位。 

2. 信号的低位,即最不能表达信号特性的因子,比如:车速信号500km/h按照给定的

公式,转换成十六进制数为0x6A5,因为5代表的数量级最小(160),那么其中5就是其信号的低位。 

3. 信号的起始位,一般来讲,主机厂在定义整车CAN总线通信矩阵时,其每一个信

号都从其最低位开始填写,这样也符合使用习惯。所以信号的起始位就是信号的最

低位。这也与CANoe中CANdb++的定义Startbit含义一致。

 

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Motorola SPI规范是一种序列外设接口规范,用于在不同的电子设备之间传输数据。SPI代表串行外设接口,是一种常见的通信协议,在许多电子设备中被广泛应用。 Motorola SPI规范定义了一套标准的通信协议和物理连接标准,用于在主设备(通常是微控制器或处理器)和外设设备之间进行双向通信。该规范包含了时序、数据传输、寄存器映射等方面的详细规定,以确保通信的准确性和可靠性。 SPI通信是基于主从式架构的,主设备通过控制时钟脉冲和数据传输线与外设设备通信。主设备产生时钟信号,根据时钟信号的边沿来传输和接收数据。外设设备根据主设备的控制信号进行相应的数据传输和处理。 Motorola SPI规范还规定了不同的数据传输模式,例如全双工、半双工和多主模式等。全双工模式允许主设备和外设设备同时进行双向数据传输,而半双工模式只允许数据在一个方向上进行传输。多主模式允许多个主设备共享同一个总线,通过优先级设置来进行数据传输。 SPI规范还定义了数据传输的位数、字节序和时钟频率等细节。这些参数可以根据具体应用的需求进行配置,以达到最佳的数据传输效率和可靠性。 总之,Motorola SPI规范是一种重要的通信接口规范,为不同的电子设备之间的数据传输提供了标准化和可靠的解决方案。该规范的广泛应用使得各种电子设备之间的通信更加简便和可靠。 ### 回答2: Motorola SPI规范是指由摩托罗拉公司制定的串行外围接口(SPI)通信协议的规范。SPI是一种全双工、同步、串行数据传输协议,用于在电子设备之间进行高速的数据通信。 Motorola SPI规范定义了SPI总线的物理连接方式、时序要求以及数据传输格式。根据该规范,SPI总线通常由一个主设备和一个或多个从设备组成。 SPI总线的物理连接方式是通过四条线来传输数据,包括主设备发送数据的MOSI线、主设备接收数据的MISO线、时钟信号线和片选信号线。时序要求规定了数据传输的时钟频率以及数据的传输顺序。 根据规范,SPI总线的数据传输是由主设备发起的,主设备通过片选信号选择要与之通信的从设备,并通过时钟信号控制数据的传输速率。SPI通信是同步的,主设备和从设备的时钟信号保持同步。主设备通过MOSI线发送数据到从设备,从设备通过MISO线将响应的数据返回给主设备。 Motorola SPI规范还定义了数据传输的格式。数据在SPI总线上传输时以字节为单位,每个字节包含8位二进制数据。根据具体的应用需求,数据传输可以是全双工或半双工模式。 总之,Motorola SPI规范是一套用于串行外围接口通信的标准。它定义了SPI总线的物理连接方式、时序要求和数据传输格式,为设备之间高速稳定的数据通信提供了指导。在电子设备的设计和开发过程中,遵循Motorola SPI规范可以确保设备之间的兼容性和可靠性。 ### 回答3: Motorola SPI规范是指Motorola公司定义的一种串行外设接口规范,它是一种通信协议,用于在集成电路之间传输数据。SPI全名为Serial Peripheral Interface,它支持全双工通信,常用于多个集成电路之间的通信,如微控制器和外部设备之间的数据传输。 Motorola SPI规范定义了SPI总线的工作原理和通信规则。SPI总线通常由一个主设备和一个或多个从设备组成。主设备在通信中担任主导地位,从设备被动地响应主设备的请求。主设备通过4根信号线来控制通信,分别是时钟线(SCLK)、主输入/输出线(MISO)、主输出/输入线(MOSI)和片选线(SS)。 根据Motorola SPI规范,通信的数据以字节为单位进行传输,主设备通过时钟线控制数据的传输速率。主设备通过将片选线拉低来选择特定的从设备进行通信。在数据传输过程中,主设备通过MOSI线将数据发送到从设备,从设备通过MISO线将响应数据发送回主设备。 Motorola SPI规范还定义了一些可选的特性,如数据传输模式、时钟极性和相位等。不同的设备可以根据需要选择不同的特性来进行通信。 总之,Motorola SPI规范为集成电路之间的串行通信提供了一种简单可靠的解决方案。它在许多应用中被广泛使用,如存储器、显示屏、传感器等设备的控制和数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值