下载此文档

CAN总线的编码方式样本.doc


文档分类:论文 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
对CAN总线常见编码格式解析我们在进行CAN总线通讯设计过程中,对于通讯矩阵建立,我们常常会选择一个编码方法,最常见编码格式是Intel格式和Motorola格式。不过往往大家全部是以一个习惯去选择,到底两种格式具体区分在哪里呢?我们需要明白两种格式对信号是怎样排布,又是根据什么次序进行正确解析。本篇文章就是作者依据在整理通讯矩阵和dbc文件中碰到部分问题,提出自己部分体会和见解,期望大家经过此篇文章对两种格式有愈加深刻了解。我们在设计早期,全部会首先选择一个编码格式,这种选择大多全部是依据设计者自己习惯,具体Intel格式和Motorola格式哪个更有优势问题,在这里没有区分。不过就使用者而言,需要对接收到数据帧进行正确解析,不然就无法得到想要信号。下面我们就来说一下两种格式区分。首先我们需要明确一点,不管是Intel格式还是Motorola格式,在每个字节中,数据传输次序全部是从高位(msb)传向低位(lsb)。以下图所表示。图1通常主机厂设计人员在设计早期全部会定义好字节发送次序,定义Byte0为LSB,Byte7为MSB。第一个情况:先发送Byte0,然后Byte1到Byte7;第二种情况:先发送Byte7,然后Byte6到Byte0。依据我了解到大部分主机厂全部会采取第一个发送方法,极少会采取后者。我们在用CANoe中CANdb++编辑数据库时,肯定会用到以下图所表示编辑界面。图2结合工作中出现问题,有网络设计者会在排布信号时候出现误区。上图中用是比较常规排布方法,即位在字节中索引是从右至左,还有一个是颠倒过来,即从左至右。以下图所表示。图3我们现在以第一个矩阵模式进行说明。在这种情况下,假如主机厂在早期定义先发送LSB,再发送MSB形式,那么数据信号能够根据从上到下,从左到右次序发送,很方便,接收器解析起来也比较轻易。假如主机厂定义先发送MSB再发送LSB形式,那样数据传输比较复杂,所以通常全部不提议用这种方案。至于设计者常出现错误我们在下文中会关键说明,下面我们先了解一下Intel格式和Motorola格式在CANdb++中区分。一、Motorola编码格式:假如我们选择使用Motorola编码格式,那需要知道它在CANdb++中3种信号排布方法。这三种排布关键区分在于它们起始位不一样。我们假设一个信号位长为12,那么它就要跨字节排布。在Motorola格式中第一个排布形式为MotorolaForwardLSB,即从小端开始,它起始位为lsb(16);第二种排布形式为MotorolaForwardMSB,即从大端开始,它起始位为msb(11);第三种排布形式为MotorolaBackward,它起始位为第8位,这种形式基础不采取,因为排布规律相对于前两种比较复杂。以下图所表示;图4针对上述Motorola格式第一个排布形式,信号起始位为高字节低位。在CANdb++中具体表现图所表示。图5在CANdb++中,无法区分这三种排布形式,它起始位也是自动定义,所以我们在设计通讯矩阵时,通常全部会采取第一个,即MotorolaForwardLSB。只是有工程师依据自己个人习惯,去改变起始位,但我们需要明确一点就是,在Canoe软件中,一个格式信号排布是没有区分。二、Intel编码格式假如我们选择使用Intel编码格式,它在CANdb++中也有两种

CAN总线的编码方式样本 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息