CANoe Scope——高效解析总线报文
随着汽车电子技术的发展,越来越多的电子控制单元应用到汽车上,而传统汽车里面电器信号都是通过线束的连接来实现的,更多的线束无疑会导致整车开发成本的增加和可靠性的降低,于是具有突出可靠性、实时性和灵活性的CAN总线应运而生。由于汽车电控系统日益复杂,在CAN总线网络的开发过程中,需要提前对设计结果进行仿真评价和故障分析,以确定所设计的总线网络是否完善、设计的协议是否能够符合要求。今天我们介绍的CANoe Scope就可以帮助我们高效地解析CAN总线报文。
图 1 PicoScope
与传统示波器相比,CANoe Scope能够更快地定位和分析协议错误,更容易进行自动化测试,下面我们就来介绍如何在CANoe中利用Scope解析总线报文。
硬件连接
首先,我们分析总线的时候,需要利用报文来触发Scope进行数据采集,因此我们需要带有同步功能的CAN接口卡(例如VN1630、VN1640)来配合Scope进行硬件的连接,硬件连接的示例如下:
图 2 PicoScope5444B与2路CAN总线连接
CANoe中配置Scope
硬件连接好后我们需要在CANoe里对接入的Scope进行相关配置,首先我们打开CANoe,在Analysis功能区找到Scope按钮打开,然后根据我们实际连接的Scope型号进行参数的配置,主要需要配置的内容有示波器引脚的配置以及采样的时间和采样点的数量配置,为了使示波器的波形曲线更平滑,我们需要设置一个合适的每位采样点数量。
图 3 示波器配置
示波器参数配置好后,我们需要对示波器的采集进行配置,也就是设置我们的trigger条件,Scope有多种触发条件可选,包括帧触发、错误帧触发以及I/O触发。这里我们以帧触发为例来进行配置,在配置好的示波器参数上右击选择Add trigger condition,然后选CAN Frame就能进入帧触发配置窗口,如果选择报文触发,则填入目标报文ID即可。
图 4 Trigger配置
集和分析
做完硬件连接和配置的准备工作之后,我们的Scope就可以正常工作了,在示波器窗口点击Scope硬件连接按钮,启动工程,点击Scope的触发测量按钮,触发成功后我们可以在示波器图窗口看到采集到的波形。
图 5 设备启动、触发
在分析示波器图的时候,我们可以和分析graphics窗口数据一样,选取一个光标对采集到的图形上任意一点进行查看,或者利用两个光标对不同的两点进行对比查看分析,可以直接显示选中点对应的时间和电压值以及两点的时间差和电压差。
图 6 CAN报文波形
CANoe Scope能够更快地分析和定位协议错误的主要原因是它有专门的数据链路层Trace窗口,与示波器图完全对应它会完整地显示我们采集到的报文帧的具体信息。当我们选中某一位场时,示波器图会用交替的阴影覆盖选中的位场的波形图,以交替的深浅色来区分每一位,填充位还会额外用橘黄色来区分,使我们能高效的对照协议分析数据。
图 6 CAN报文波形
到这里,Scope的使用方法大家都了解了,能不能实现自动化测试呢?答案是肯定的。CANoe Scope支持通过CAPL脚本来控制报文的捕获、波形的分析等,还为其创建了很多功能强大的函数接口,使得它更容易用于ECU的自动化测试。例如我们想获取上升沿和下降沿的时间,我们只需要利用函数testGetWaitScopeSignalTransitionTime就可以了。
图 8 函数示例
更多实用小技能请关注“怿星科技”公众号哦。
CANoe Scope——高效解析总线报文相关推荐
- can总线用java怎么解析_CAN报文DBC解析的编程方法说明
主要内容1. 概述2. 我们要做一件什么事情在软件框架中的位置 DBC介绍3. 我们怎么去做这件事情数据存储 输入输出1概述前面介绍过PEAK的所有CAN卡都有提供如下图所示这些二次开发包,非常适合于 ...
- 使用CANOE scope测试物理层与数据链路层
使用CANOE scope测试物理层与数据链路层 准备 步骤 准备 硬件:CANOE(1630).CAN Disturbance Interface(6501).PicoScope 软件:CANOE ...
- LIN总线协议详解2(LIN总线报文帧结构)
目录 一.LIN总线报文帧结构 (Message Frame ) 1.报文整体机构 2.同步间隔段(Break Field) 3.同步段(Sync Byte Field) 4.受保护 ID 段(Pro ...
- 解析 http 请求 header 错误_详解http报文(2)-web容器是如何解析http报文的
摘要 在详解http报文一文中,详细介绍了http报文的文本结构.那么作为服务端,web容器是如何解析http报文的呢?本文以jetty和undertow容器为例,来解析web容器是如何处理http报 ...
- urllib.request.urlopen(req).read().decode解析http报文报“‘utf-8‘ codec can‘t decode”错处理
urllib.request.urlopen(req).read().decode解析http报文报"'utf-8' codec can't decode"错处理:https:// ...
- C解析8583报文55域
以下这段代码是C解析8583报文,我直接从我们系统粘贴出来的,供大家参考.打日志log部分,请自行更改,TAG标签也可以根据你的55域做相应删减. typedef struct { c ...
- Java解析XML报文内容及标签属性
前言 JSON格式的报文解析,虽然json串短小精悍,也能有效表达层次结构,但是每个元素只能找到对应的元素值,不能体现更丰富的样式特征.比如某个元素除了要传输它的字符串文本,还想传输该文本的类型.字体 ...
- 详解CAN总线:CAN总线报文格式—遥控帧
目录 1.遥控帧格式 2.数据帧和遥控帧的区别 CAN总线上传输的信息称为报文,当总线空闲时任何连接的单元都可以开始发送新的报文. CAN通信是通过以下5种类型的帧进行的: 数据帧 遥控帧 错误帧 过 ...
- 详解CAN总线:CAN总线报文格式—帧间隔
CAN总线上传输的信息称为报文,当总线空闲时任何连接的单元都可以开始发送新的报文. CAN通信是通过以下5种类型的帧进行的: 数据帧 遥控帧 错误帧 过载帧 帧间隔 另外,数据帧和遥控帧有标准格式和扩 ...
最新文章
- vc++学习篇(三)——预处理命令之条件编译(#ifdef,#else,#endif,#if等)
- Uber无人车撞人视频公布,究竟哪儿出问题了?
- 单链表的基本操作(增删查总结)
- 关于Spring的构造函数,init-method,和依赖注入的先后顺序
- android 系统gpu 调试_【资讯】高通公布首批可OTA更新GPU驱动手机:谷歌Pixel 4/三星S10在列...
- Codeforces Global Round 13 C
- 莫烦Matplotlib可视化第五章动画代码学习
- 数据库主键和索引区别
- matlab米氏方程作图,根据米氏方程,符合[S]与Km 关系的是
- php 获取 url 的操作 非常有用!
- 金笛JDMail邮件服务器帮你应付电子邮件归档危机
- 题目244-16进制的简单运算
- r语言代码html,R语言的R Markdown创建html
- 修改程序版本工具(ResHacker)使用说明20140902
- 基因治疗最新研究进展(2022年5月)
- 16种床上动作的内涵图,你都看懂了吗?
- 【Bootstrap】<前端框架>Bootstrap布局容器栅格网格系统
- 垃圾回收器——CMS与G1
- ORA-01455: converting column overflows integer datatype
- PMP成本管理中的几个英文缩写