下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、对CAN总线的常见编码格式解析我们在进行CAN总线的通讯设计过程中,对于通讯矩阵的建立,我们常常会选择一种编码方式,最常见的编码格式是In tel格式和Motorola格式。但是往往人们都是以一种习惯去选择,究竟两种格式具体的区别在哪里呢?我们需要明 白两种格式对信号是如何排布的,又是按照什么顺序进行正确解析的。本篇文章 就是作者根据在整理通讯矩阵和 dbc文件中遇到的一些问题,提出的自己的一些 体会和见解,希望大家通过此篇文章对两种格式有更加深刻的理解。我们在设计初期,都会首先选择一种编码格式,这种选择大多都是根据设计者 自己的习惯,具体In tel格式和Motorola格式哪个更有优势的问
2、题,在这里没 有区别。但是就使用者而言,需要对接收到数据帧进行正确的解析,否那么就无法得到想要的信号。下面我们就来说一下两种格式的区别。首先我们需要明确一点,无论是In tel格式还是Motorola格式,在每个字节 中,数据传输顺序都是从高位msb传向低位lsb。如以下列图所示。byte xbit(8* x+7)bit(8* x)msblsb注:x=0,1,2,3 7图1一般主机厂设计人员在设计初期都会定义好字节的发送顺序,定义Byte0为LSB Byte7为MSB第一种情况:先发送 Byte0,然后Byte1到Byte7;第二种 情况:先发送Byte7,然后Byte6到Byte0。根据我了
3、解到的大局部主机厂都会 采取第一种发送方法,很少会采取后者。我们在用CANoe中的CANdb+编辑数据库时,肯定会用到如以下列图所示的编辑界面。图2结合工作中的出现的问题,有的网络设计者会在排布信号的时候出现误区。 上 图中用的是比较常规的排布方式,即位在字节中的索引是从右至左,还有一种是 颠倒过来的,即从左至右。如以下列图所示。°12345 G100123458789W11121J I111511E1?W192Q21222322425262?'25293031332333435363738394呱414243444546475495051525365号5G5F5359创61
4、也G37图3我们现在以第一种矩阵模式进行说明。 在这种情况下,如果主机厂在初期定义 先发送LSB再发送的MSB勺形式,那么数据信号可以按照从上到下,从左到右 的顺序发送,非常方便,接收器解析起来也比较容易。如果主机厂定义先发送 MSB!发送LSB的形式,那样数据传输比较复杂,所以一般都不建议用这种方案。 至于设计者常出现的错误我们在下文中会重点说明,下面我们先了解一下Intel 格式和Motorola格式在CANdb+中的区别。一、Motorola编码格式:如果我们选择使用 Motorola编码格式,那需要知道它在 CANdb+中的3种信 号排布方式。这三种排布的主要区别在于它们的起始位不同。
5、我们假设一个信号的位长为12,那么它就要跨字节排布。在 Motorola格式中的第一种排布形式为 Motorola Forward LSB,即从小端开始,它的起始位为lsb 16第二种排布形式为Motorola Forward MSB,即从大端开始,它的起始位为 msb 11第三 种排布形式为Motorola Backward,它的起始位为第8位,这种形式根本不采用, 因为排布规律相对于前两种比较复杂。如以下列图所示;765432 100msb1Xlsb23图4针对上述Motorola格式第一种排布形式,信号的起始位为高字节的低位。在 CANdb+中的具体表达如以下列图。在CANdb+中,无法
6、区别这三种排布形式,它的起始位也是自动定义的,所以 我们在设计通讯矩阵时,一般都会采用第一种,即Motorola Forward LSB。只是有的工程师根据自己的个人习惯,去改变起始位,但我们需要明确一点就是, 在Canoe软件中,一种格式的信号排布是没有区别的。二、In tel编码格式如果我们选择使用In tel编码格式,它在CANdb+中也有两种信号排布方式。 我们假设一个信号位长为12,它也是要跨字节排布。第一种排布形式为In tel Sta ndard ,即标准形式,它的起始位为lsb 12。信 号的起始位为低字节的低位。如以下列图所示:165432 1 00<lsb1msb一r
7、-23图6图7第二种排布形式为Intel Seque ntial ,即顺序排布形式或者叫颠倒排布。这种 形式不太常用,但我们也需要了解,它的起始位为 lsb 11。如以下列图所示:01234510<lsb1msb-Mr=13图8以上文字介绍了当信号的位长超过一个字节的情况下,信号分别以Motorola编码格式和Intel编码格式排布时的区别。我们现在假设一个信号的位长为 4, 观察在CANdb+中信号的排布有什么区别。Motorola编码格式下的信号排布:绿色信号图9Intel编码格式下的信号排布:绿色信号图10由图可知,两种格式的起始位不同,但是他们的排布方式相同,都是信号的高 位放在
8、该字节的高位msb,信号的低位放在该字节的低位lsb。所以,当一 个信号的位长小于8时,那么两种编码格式没有区别。如果信号的位长大于8,那么两种编码格式将会产生很大差异。这是我们在网络通讯设计初期必须要掌握 的。下面我们说一下一些工程师在做通讯矩阵的设计时,常会出现的几个问题:1. 在编写通讯矩阵时,在起始位的编写中,常会将Intel格式和Motorola格式 弄混。例如:如以下列图所示的通讯矩阵位恢序 bit orderMSBLSB字节願序13yte orderbit 7bitebitsbit 4bit 3bit 2bit1bitO !MSBByte 0105431IByte 1141211
9、g8IByte 2 |232221201918117r is4Byte 3'31"302928272625244Byte 43938373635343332丄Byte 54746454443424140Byte ®55&4535251504948LSBByte?63 '62616059 5857P 56如果一个信号的位长为 4,那么假设是 Motorola 编码格式,那它的起始位就是 4 ;而假设是 Intel 编码格式,那它的起始位就是 0 。2. 在CANdb+中进行通讯矩阵的调整时,首先应明确信号选取的编码格式,然 后进行拖曳,有的工程师常常在
10、没有区分编码格式,凭借主观感觉对通讯矩 阵进行调整,这往往会导致信号的传输错误。3. 在信号跨字节排布中,未明确 msb和lsb,在拖曳过程中会出现错误。综上所述, Motorola 编码格式和 Intel 编码格式主要区别还是在信号位长大于8或者信位长不超过8但是跨字节的情况下,前者的规那么:该信号的高位S_msb 将被放在低字节MSB的高位,信号的低位S_lsb丨将被放在高字节LSB 的低位;后者的规那么:该信号的高位S_msb将被放在高字节MSB的高位, 信号的低位S_lsb丨将被放在低字节LSB的低位。希望大家能从此篇文章中收获一些经验。文中术语解释及定义:1. 信号的高位,即最能表达信号特性的因子,比方:车速信号 500km/h 按 照给定的公式,转换成十六进制数为0x6A5,因为6代表的数量级最大162,那么其中 6 就是其信号的高位。2. 信号的低位,即最不能表达信号特性的因子,比方:车速信号 500km/h 按照给
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省豫南九校2026届高二生物第一学期期末联考试题含解析
- 2026届福建省福州市第十一中学高一数学第一学期期末调研试题含解析
- 国外医院绩效分配公平性模式借鉴
- 2026届广东名校三校联考高三数学第一学期期末教学质量检测试题含解析
- 固定成本结构优化与医院运营韧性
- 噪声暴露工人听力保护依从性提升方案
- 器官移植慢性排斥反应的病理诊断与报告
- 2026届湖师范大学附属中学生物高一上期末调研试题含解析
- 哮喘患者康复训练路径设计
- 品管圈降低住院患者跌倒发生率实践
- 2023-2024学年北京市海淀区清华附中八年级(上)期末数学试卷(含解析)
- GB/T 18457-2024制造医疗器械用不锈钢针管要求和试验方法
- 电信营业厅运营方案策划书(2篇)
- 手机维修单完整版本
- 流感防治知识培训
- 呼吸内科进修汇报课件
- 康复治疗进修汇报
- 牵引供电系统短路计算-三相对称短路计算(高铁牵引供电系统)
- 离婚协议书模板(模板)(通用)
- (完整版)第一性原理
- 降低住院患者口服药缺陷率教学课件
评论
0/150
提交评论