使用CANOE进行CAN总线的DBC文件制作.docxVIP

使用CANOE进行CAN总线的DBC文件制作.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用CANOE进行CAN总线的DBC文件制作

使用CANOE进行CAN总线的设计 信号定义与分配 DBC文件制作 我们在进行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格式中的第一种排布形式为Motorola Forward LSB,即从小端开始,它的起始位为lsb(16);第二种排布形式为Motorola Forward MSB,即从大端开始,它的起始位为msb(11);第三种排布形式为Motorola Backward,它的起始位为第8位,这种形式基本不采用,因为排布规律相对于前两种比较复杂。如下图所示; 图4 针对上述Motorola格式第一种排布形式,信号的起始位为高字节的低位。在CANdb++中的具体体现如图所示。 图5 在CANdb++中,无法区别这三种排布形式,它的起始位也是自动定义的,所以我们在设计通讯矩阵时,一般都会采用第一种,即Motorola Forward LSB。只是有的工程师根据自己的个人习惯,去改变起始位,但我们需要明确一点就是,在Canoe软件中,一种格式的信号排布是没有区别的。 二、Intel编码格式 如果我们选择使用Intel编码格式,它在CANdb++中也有两种信号排布方式。我们假设一个信号位长为12,它也是要跨字节排布。 第一种排布形式为Intel Standard,即标准形式,它的起始位为lsb(12)。信号的起始位为低字节的低位。如下图所示: 图6 图7 第二种排布形式为Intel Sequential,即顺序排布形式或者叫颠倒排布。这种形式不太常用,但我们也需要了解,它的起始位为lsb(11)。如下图所示: 图8 以上文字介绍了当信号的位长超过一个字节的情况下,信号分别以Motorola编码格式和Intel编码格式排布时的区别。我们现在假设一个信号的位长为4,观察在CANdb++中信号的排布有什么区别。 Motorola编码格式下的信号排布:(绿色信号) 图9 Intel编码格式下的信号排布:(绿色信号) 图10 由图可知,两种格式的起始位不同,但是他们的排布方式相同,都是信号的高位放在该字节的高位(msb),信号的低位放在该字节的低位(lsb)。所以,当一个信号的位长小于8时,那么两种编码格式没有区别。如果信号的位长大于8,那么两种编码格式将会产生很大差别。这是我们在网络通讯设计初期必须要掌握的。 下面我们说一下一些工程师在做通讯矩阵的设

文档评论(0)

189****8221 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档