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变量和信号_CANoe的经验总结及如何进行 CAN Signal layout相关推荐

  1. 【Python】条件变量、信号变量、事件

    条件变量.信号变量.事件 信号量:信号量是用来解决线程同步和互斥的通用工具, 和互斥量类似, 信号量也可以用作于资源互斥访问, 但信号量没有所有者的概念,在应用上比互斥量更广泛,信号量比较简单, 不能 ...

  2. 心电信号去噪(part4)--经验模态分解法(EMD)

    本系列上一篇(数学形态学)指路:https://blog.csdn.net/m0_37422217/article/details/90744326 注:这里是以小型手持心电图机为研究对象的(单导联) ...

  3. 短线上岸西安电子科技大学考研811信号与电路分析经验分享

    一.初试成绩 二.个人情况 三.复习规划 四.总结 五.评论区给个回复鼓励,点击首条评论,进入西电考研大家庭 一.初试成绩 811的初试共四门:数学一,英语一,政治,811电路,信号与系统. 短时间复 ...

  4. 高速串行总线走线难点在哪?重要线信号的处理经验分享

    转自:电子发烧友网 串行总线的发展一共目前可以总结分为 3 个环节时期: 时钟并行总线:小于 200MHZ,比如CPCI,PCIX,SDRAM,ISA,PIC 源同步时钟并行总线:小于 3200Mbp ...

  5. lmd matlab 信号处理程序,LMD经验模态分解matlab程序.doc

    LMD经验模态分解matlab程序 LMD经验模态分解matlab程序--原味的 曾经也用滑动平均写过LMD,其实滑动平均的EMD才是原汁原味的居于均值分解. 分享给有需要的人,程序写的不好,只是希望 ...

  6. vs添加系统环境变量不识别_项目经验不重样!3个基于SpringBoot 的图片识别处理系统送给你...

    转载:https://mp.weixin.qq.com/s/WDMyIfOi2ogw0mKl3XxQdQ 最近看了太多读者小伙伴的简历,发现各种商城/秒杀系统/在线教育系统真的是挺多的.推荐一下昨晚找 ...

  7. 常见信号的模拟仿真(matlab)(spike signal)

    1. 一维信号 构造离散时间向量: Fs = 1000; % sampling frequency,采样频率 T = 1/Fs; % sampling period,采样周期 L = 1000; % ...

  8. 电磁场强度公式与能量信号的定义原理(The Derivation of Power Signal)

    电磁波动方程      1.麦克斯韦方程组:                 H为磁场强度,D为电通量密度,E为电场强度,B为磁通密度.J为电流密度,,ρ为电荷密度. (1)电位移的散度等于该点处自由 ...

  9. vhdl和c语言,VHDL语言中的信号、变量与常量异同比较(转)

    在VHDL中,对象是指用来保持数据的一些客体单元.VHDL中的对象主要有4种:常量(CONSTANT).变量(VARIABLE).信号(SIGNAL)和文件(FILE).本文主要讨论前面三种在实际应用 ...

最新文章

  1. python参数类型限定_python限定方法参数类型、返回值类型、变量类型等|python3教程|python入门|python教程...
  2. How Does Maven Work
  3. 打开word2007弹出未设置对象变量_【跟我学LabVIEW】什么是全局变量?如何创建及使用全局变量?...
  4. C# 声明方法关键字
  5. 部署 Job (第二部分)
  6. java中13%(-3)_Java面试题汇总(十三)《算法分析及手写代码661-675》
  7. 自定义Writable类型
  8. tkMessageBox only show one window
  9. 解决问题“Parsing Data for android-23 failed Unsupported major.minor version 51.0”
  10. Python教你找到最心仪的对象
  11. python立方体类_python学习12类
  12. 互联网原创表情论坛举行 探索设计师盈利新生态
  13. 团队项目计划、人员安排以及开发方法
  14. c语言计算增长率的程序,国民生产总值增长率计算的编程设计
  15. Android数据编码之Base64
  16. ps后期调色教程,ps怎么后期调色步骤图
  17. 从数据库得到数据导出指定格式的xml文件,上传到NC接口,返回回执到本地一个xml文件
  18. 计算机的用户名是哪个,电脑默认用户名是什么?
  19. 初学者c语言编程软件_C初学者手册:仅需几个小时即可学习C编程语言基础知识
  20. Amazon AWS

热门文章

  1. android学习笔记---57_采用方向传感器实现指南针,android设备传感器介绍,以及使用方法
  2. 评测百万分之一时的精度指标
  3. 去除序号(正则表达式with sublime text)
  4. 使用setsockopt TCP_NODELAY禁用 Nagle算法
  5. 随想录(写给自己的C++编程规范)
  6. 嵌入式操作系统内核原理和开发(基础)
  7. 计算机软件乘除,基于单片机的智能计算机程序 可以实现加减乘除运算
  8. curl查看swift状态命令_微服务之——docker高级命令
  9. java hbase流量日志,Spark+Hbase 亿级流量分析实战(日志存储设计)
  10. dtoj#4179. 排行(rank)