我是靠谱客的博主 落后学姐,最近开发中收集的这篇文章主要介绍CANoe的经验总结及如何进行 CAN Signal layout1、CANoe工程的新建2、Channel Mapping3、CAN DBC中报文及信号的属性4、信号在报文中的Layout问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

CANoe,全称叫CAN Open Environment,是德国Vector公司为汽车总线的开发而设计的一款总线开发环境,集合了网络监控、数据获取/记录、节点仿真、诊断、自动测试等功能。

1、CANoe工程的新建

打开CANoe软件,在工具栏的”File”中点击”New”,双击选择创建的模板 ,再保存创建的cfg工程文件。如下:

2、Channel Mapping

每个CAN网络都有所属的Channel,称之为Application Channel,如果在Real BUS的环境下要映射到相应的硬件接口单元及相应的Transceiver。 下图为网络上的各个网络(Comfort和Powertrain),及其网络中的Can控制器节点和DBC文件。

通过Hardware-Channel Mapping实现逻辑上通道和物理通道的映射,当你发现trace上没有报文时,第一检查一下你通过DB9的接插件是否插在正确的硬件通道上了。

3、CAN DBC中报文及信号的属性

CAN通信中物理层中一帧由以下几个部分组成:

  • 报文ID
  • 报文数据
  • 报文长度

Identifier type 指定 CAN 报文标识符是 Standard 还是 Extended 类型。默认值为 Standard。标准标识符是 11 位标识符,扩展标识符是 29 位标识符。

Remote frame 将 CAN 报文指定为远程帧。

Start bit 指定数据的开始位。开始位是从报文数据的开头计数的最低有效位。开始位必须是 0 到 63 之间的整数。信号的起始位,一般来讲,主机厂在定义整车CAN总线通信矩阵时,其每一个信号都从其最低位开始填写,

Length (bits) 指定信号在报文中占用的位数。长度必须是 1 到 64 之间的整数。 Data type 指定信号如何解释分配的位中的数据。从下列各项中选择:

  • signed(默认值)

  • unsigned

  • single

  • double

4、信号在报文中的Layout问题

CAN 报文中的比特流有两方面要注意,第一是字节序,第二是bit numbering。 字节序也叫大小端,决定如何去解析一系列字节来组装成有意义的数据。 即小端支持从低字节向高字节去排布信号。

即大端支持高字节向低字节去排布信号。

注意:字节内的位的重要性(Significant)的顺序是一定的,不随两种格式的变化而变化。

bit numbering,即报文中支持两种方式的计数方式:

  • 从右向左

这种情况的报文一般是Byte0_bit7的位最先被发送,然后是bit6,,,最后是Byte7_bit56位被发送。这种方式在汽车工业中是最通用的方式,为各大主机厂采用,在Vector的DBC中也按照这种排布方式去布局信号的index。

-从左向右

这种情况的报文一般是Byte0_bit0的位最先被发送,然后是bit1,,,最后是Byte7_bit63位被发送。 相应地和上述两种bit numbering对应的就是两种message的Layout,

1)字节中的位序为从右到左 2)字节中的位序为从左到右

通常在DBC中选择Byte order时,可以选择以下任一选项: LE:其中字节顺序为 little-endian 格式 (Intel®)。在这种格式中,从开始位(最低有效位)到最高有效位(具有最高位索引)进行计数。例如,如果以 little-endian 格式打包数据的一个字节0x12(默认其他信号为0),并且开始位为 29,则数据位表类似于下图(从最低有效位到最高地址计数的 Little-Endian 字节顺序)所示。 则我们接收到的8字节的Can报文消息为:00 00 02 01 00 00 00 00,字节2和字节3的layou如下表所示:

Bytes23
Hex0x020x01
Bits0000 00100000 0001

BE:其中字节顺序为 big-endian 格式 (Motorola®)。在这种格式中,从开始位(最低有效位)到最高有效位进行计数。例如,如果以 big-endian 格式打包数据的一个字节,并且开始位为 29,则数据位表类似于下图(从最低有效位到最低地址计数的 Big-Endian 字节顺序)所示。

则我们接收到的8字节的Can报文消息为:00 01 20 00 00 00 00 00,字节1和字节2的layou如下表所示:

Bytes12
Hex0x010x20
Bits0000 00010010 0000

总结: Intel格式编码:信号的低位(lsb)将被放在低字节(LSB)的低位。信号的起始位就是低字节的低位,从低字节向高字节去排布信号。 Motorola格式编码 :信号的低位(lsb)将被放在高字节(MSB)的低位。这样,信号的起始位就是高字节的低位,从高字节向低字节去排布信号。

最后

以上就是落后学姐为你收集整理的CANoe的经验总结及如何进行 CAN Signal layout1、CANoe工程的新建2、Channel Mapping3、CAN DBC中报文及信号的属性4、信号在报文中的Layout问题的全部内容,希望文章能够帮你解决CANoe的经验总结及如何进行 CAN Signal layout1、CANoe工程的新建2、Channel Mapping3、CAN DBC中报文及信号的属性4、信号在报文中的Layout问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部