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

上传人:b****4 文档编号:6456383 上传时间:2023-05-06 格式:DOCX 页数:8 大小:206KB
下载 相关 举报
使用CANOE进行CAN总线的DBC文件制作Word文件下载.docx_第1页
第1页 / 共8页
使用CANOE进行CAN总线的DBC文件制作Word文件下载.docx_第2页
第2页 / 共8页
使用CANOE进行CAN总线的DBC文件制作Word文件下载.docx_第3页
第3页 / 共8页
使用CANOE进行CAN总线的DBC文件制作Word文件下载.docx_第4页
第4页 / 共8页
使用CANOE进行CAN总线的DBC文件制作Word文件下载.docx_第5页
第5页 / 共8页
使用CANOE进行CAN总线的DBC文件制作Word文件下载.docx_第6页
第6页 / 共8页
使用CANOE进行CAN总线的DBC文件制作Word文件下载.docx_第7页
第7页 / 共8页
使用CANOE进行CAN总线的DBC文件制作Word文件下载.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《使用CANOE进行CAN总线的DBC文件制作Word文件下载.docx》由会员分享,可在线阅读,更多相关《使用CANOE进行CAN总线的DBC文件制作Word文件下载.docx(8页珍藏版)》请在冰点文库上搜索。

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

我们在设计初期,都会首先选择一种编码格式,这种选择大多都是根据设计者自己的习惯,具体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++中也有两种信号排布方式。

我们假设一个信号位长为12,它也是要跨字节排布。

第一种排布形式为IntelStandard,即标准形式,它的起始位为lsb(12)。

信号的起始位为低字节的低位。

如下图所示:

图6

图7

第二种排布形式为IntelSequential,即顺序排布形式或者叫颠倒排布。

这种形式不太常用,但我们也需要了解,它的起始位为lsb(11)。

图8

以上文字介绍了当信号的位长超过一个字节的情况下,信号分别以Motorola编码格式和Intel编码格式排布时的区别。

我们现在假设一个信号的位长为4,观察在CANdb++中信号的排布有什么区别。

Motorola编码格式下的信号排布:

(绿色信号)

图9

Intel编码格式下的信号排布:

图10

由图可知,两种格式的起始位不同,但是他们的排布方式相同,都是信号的高位放在该字节的高位(msb),信号的低位放在该字节的低位(lsb)。

所以,当一个信号的位长小于8时,那么两种编码格式没有区别。

如果信号的位长大于8,那么两种编码格式将会产生很大差别。

这是我们在网络通讯设计初期必须要掌握的。

下面我们说一下一些工程师在做通讯矩阵的设计时,常会出现的几个问题:

1.

2.在编写通讯矩阵时,在起始位的编写中,常会将Intel格式和Motorola格式弄混。

例如:

如下图所示的通讯矩阵

如果一个信号的位长为4,那么若是Motorola编码格式,那它的起始位就是4;

而若是Intel编码格式,那它的起始位就是0。

3.

4.在CANdb++中进行通讯矩阵的调整时,首先应明确信号选取的编码格式,然后进行拖曳,有的工程师常常在没有区分编码格式,凭借主观感觉对通讯矩阵进行调整,这往往会导致信号的传输错误。

5.

6.在信号跨字节排布中,未明确msb和lsb,在拖曳过程中会出现错误。

综上所述,Motorola编码格式和Intel编码格式主要区别还是在信号位长大于8或者信位长不超过8但是跨字节的情况下,前者的规则:

该信号的高位(S_msb)将被放在低字节(MSB)的高位,信号的低位(S_lsb)将被放在高字节(LSB)的低位;

后者的规则:

该信号的高位(S_msb)将被放在高字节(MSB)的高位,信号的低位(S_lsb)将被放在低字节(LSB)的低位。

希望大家能从此篇文章中收获一些经验。

 

文中术语解释及定义:

2.信号的高位,即最能表达信号特性的因子,比如:

车速信号500km/h按照给定的公式,转换成十六进制数为0x6A5,因为6代表的数量级最大(162),那么其中6就是其信号的高位。

4.信号的低位,即最不能表达信号特性的因子,比如:

车速信号500km/h按照给定的公式,转换成十六进制数为0x6A5,因为5代表的数量级最小(160),那么其中5就是其信号的低位。

6.信号的起始位,一般来讲,主机厂在定义整车CAN总线通信矩阵时,其每一个信号都从其最低位开始填写,这样也符合使用习惯。

所以信号的起始位就是信号的最低位。

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2