欢迎来到天天文库
浏览记录
ID:1248498
大小:982.37 KB
页数:9页
时间:2017-11-09
《intel与motorola的编码格式区别》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Intel格式与Motorola格式的区别-CAN总线信号的编码方式之我见在进行CAN总线通信设计或者测试过程中,经常看到CAN总线信号的编码格式有两种定义:Intel格式与Motorola格式。究竟两种编码格式有什么样的区别呢?设计者、dbc文件编辑者或者测试人员又该如何判断两种格式,并进行有效正确的配置和解析呢?下面作者给出自己在设计和测试过程中的一点体会和见解,希望能够总结出来加深一下印象和理解。在编码优缺点上,Motorola格式与Intel格式并没有孰优孰劣之分,只不过根据设计者的习惯
2、,由用户自主选择罢了。当时,对于使用者来讲,在进行解析之前,就必须要知道编码的格式是哪一种,否则,就不能保证正确地解析信号的含义。以下就以8位字节编码方式的CAN总线信号为例,详细分析一下两者之间的区别。首先,介绍一下CAN总线的数据传输规则,首先传输一个字节的高位(msb),最后传输该字节的低位(lsb)。如下图所示。bytexbit(8*x+7)bit(8*x)msblsb注:x=0,1,2,3……7一般情况下,主机厂在定义CAN总线信号定义时,都会明确定义字节的发送顺序,即:以首先发送by
3、te0(LSB),然后byte1,byte2,……(MSB)的发送顺序;还是以首先发送byte7(MSB),然后byte6,byte5,……(LSB)的发送顺序。据作者了解到的多个主机厂定义的CAN总线字节发送顺序均为前者(即:首先发送LSB,最后发送MSB)。这一点可以从目前主流的CAN总线信号数据库编辑器德国verctor公司的CANoe软件工具的定义上看出,CANoe中的CANdb++编辑器中默认定义的CAN数据场的字节结构及每一位的排布入下图所示。在这种情况下,如果主机厂采用的是首先发送
4、LSB,最后发送MSB的发送顺序,则在上表中可直接按照从左至右,从上至下的顺序依次对信号进行排布即可;但是,如果主机厂采用的是首先发送MSB,最后发送LSB的发送顺序,则在上表中需要从下至上,从右至左的顺序依次对信号进行排布,这样就比较难以对应,而且信号与数据场各字节之间的映射关系也不太直观。所以,一般来讲,主机厂会采用首先发送LSB,最后发送MSB的发送顺序。下面就以CAN总线报文的发送顺序为首先发送LSB,最后发送MSB的方式为前提,介绍Intel格式与Motorola格式这两种编码方式的不
5、同之处。一、采用Intel格式编码当一个信号的数据长度不超过1个字节(8位)并且信号在一个字节内实现(即,该信号没有跨字12节实现)时,该信号的高位(S_msb)将被放在该字节的高位,信号的低位(S_lsb)将被放在该字节3的低位。这样,信号的起始位就是该字节的低位。下图分别以4位和8位数据长度的两种信号为例进行了说明,并给出了某一车型的通信矩阵CANoe中的CAN数据库实现的图片说明。4位数据长度的信号byte1byte1bit15bit8举例bit15bit8S_msbS_lsb0101Si
6、gnalSignal的数据值为0x058位数据长度的信号byte3byte3bit131bit24举例bit31bit24S_msbS_lsb10100101SignalSignal的数据值为0xA5当一个信号的数据长度超过1个字节(8位)或者数据长度不超过一个字节但是采用跨字节方式实现时,该信号的高位(S_msb)将被放在高字节(MSB)的高位,信号的低位(S_lsb)将被放在低字节(LSB)的低位。这样,信号的起始位就是低字节的低位。对于一个信号的数据长度不超过一个字节,但是采用跨字节方式实
7、现的这种情况,因其对信号解析和编码以及信号完整性都存在不利因素,所以主机厂在定义某一车型(系)的整车通信矩阵时,不太可能设计出这种编码结构。本文就不再考虑和分析这种较为特殊的情况,但其原理与本文讨论的其他情况是相同的。下图分别以12位和16位数据长度的两种信号为例进行了说明,并给出了CANoe中的某一车型的通信矩阵的CAN数据库的图片说明。12位数据长度的信号byte0byte1bit7bit0bit15bit11bit8S_lsbS_msblsbhalfofSignalmsbhalfofSig
8、nal举例Signal的数据值为0x6A5byte0byte1bit7bit0bit15bit11bit8101001010110lsbhalfofSignalmsbhalfofSignal12位数据长度的信号byte2byte3bit23bit20bit16bit31bit24S_lsbS_msblsbhalfofSignalmsbhalfofSignal举例Signal的数据值为0x6A5byte2byte3bit23bit20bit16bit31bit24010101101010lsbha
此文档下载收益归作者所有