前不久小怿介绍了一款高效CAN总线报文解析工具——Scope,不知道大家还记不记得呢?今天小怿接着为大家介绍经常与之配合进行ECU的CAN网络一致性测试的工具——VH6501。为了测试一个系统在信号干扰和失效的情况下是否仍能稳定工作,需要一种仪器用来面向对象再现CAN总线信号、总线物理属性和逻辑电位(隐形或显性)的干扰,VH6501的功能就是如此,因此它也有一个更通俗的名字——干扰仪。

图1 VH6501

VH6501是将CAN/CAN FD干扰硬件和CANoe网络接口卡集成在一起的一款设备,它是替代CANstress的高阶产品,允许为CAN/CAN FD一致性进行简单的测试设置而无需额外的网络接口和专用线缆。它的主要功能是数字干扰和模拟干扰,可以自定义任意显性或隐性序列实现干扰,也可以实现CAN线对地或对电源短路以及CAN线高低之间的短路或者改变两者之间的电容值来进行干扰。当然,当我们不使用它的干扰功能时,它还可以被当作一个网络接口卡来使用。

它的优点也显而易见,相对于CANstress,VH6501可以对CAN FD进行干扰,它的干扰硬件和网络接口结合在一个紧凑的USB设备中,最突出的优点还是它能与CANoe无缝集成,通过编写CAPL脚本实现个性化测试。VH6501所有干扰功能都必须通过CAPL实现,不具备CAPL脚本编写能力的同学们看到这里是不是犯愁了?不用担心,要不我们怎么常说CANoe功能强大呢,CANoe里提供的示例工程已经把VH6501的功能集成好了,代码逻辑已经编译好,我们只需根据需求配置相关参数就行。下面我们就以bus-off测试为例来介绍如何实现VH6501的干扰功能。

Bus-off测试背景

为避免某一通信节点故障而影响其他节点通信,CAN网络具有严格的错误处理机制,每个CAN控制器中有一个发送错误计数器(TEC)和一个接收错误计数器(REC),根据计数值不同,节点会处于不同的错误状态,并根据计数值的变化进行状态转换,状态转换及错误计数的详细规则总结如下图所示。

图2 状态转换及错误计数规则

节点进入bus-off状态后,存在三种恢复情况:第一种是MCU开启了CAN控制器的自动恢复功能,节点只需检测到128次11个连续的隐性位便可以恢复通信,这也是我们常说的快恢复。由此我们也可以得到快恢复最快的时间是在总线空闲时128×11bit,最慢是在128帧正常报文发送完成用时128×133bit;第二种恢复情况是MCU没有开启CAN控制器的子回复功能,也不敢与总线关闭错误,节点将一直无法主动恢复总线通信,只能通过重新上电的方式使节点恢复;第三种恢复情况是我们最常用的,MCU对CAN控制器的恢复过程进行编程处理,此时,节点的恢复行为由具体的编程逻辑决定,各厂家普遍采用先快恢复后慢恢复的恢复策略,恢复过程如下图,于是我们就需要对快恢复定义的时间、次数以及慢恢复时间进行验证。

图3 MCU实现总线关闭恢复流程

测试准备

首先我们需要按示意图搭建好测试环境;

图4 连接示意图

然后打开CANoe,找到示例工程Disturbance(CAN)打开;

图5 示例工程

接着需要将VH6501的CAN通道分配给工程里的软件通道CAN1,有一点需要注意的是,使用到VH6501的干扰功能时需要在硬件配置里勾选Activate,如果没有勾选就只是一个普通的接口卡了。

图6 通道配置和使能勾选

测试过程

图7 MainConfigPanel

通过Panel打开MainConfigPanel面板,点击面板中的TriggerConfiguration按钮打开对应的配置面板TriggerConfigurationPanel,如果是干扰所有报文,保持默认状态就行;如果是干扰单个ID的报文,则需将ID转换成二进制填到IDBase里。干扰位置可根据测试要求选择,一般我们选择特定极性位,如AckDEL位,这里需要注意的是面板中设置的干扰位是实际干扰位的前一位,我们想干扰AckDEL位那我们设置的就是AckSlot位,旁边的TriggerOffset可以帮助我们实现干扰某一位场中具体到某一字节。

图8 TriggerConfigurationPanel

然后我们回到主面板,点击Sequence Configuration按钮打开SequencePanel面板,配置波特率和插入序列片数,干扰极性根据需要设置,这里我们干扰AckDEL位就设置成显性Dominant,需要注意的是设置干扰成隐性需要选择RecessiveStress而不是Recessive,设置好后点击Add Segment。

图9 SequencePanel

我们再回到主面板,确认通道信息,设置好干扰次数和循环次数,如图示,然后我们启动CANoe工程,在Trace窗口可以看到正常的报文。

图10 干扰前Trace窗口

然后我们点击面板中的Enable On Device按钮就开始进行干扰了。

图11 设置干扰次数和循环次数实施干扰

干扰结果及分析

在触发位后连续插入干扰序列,改变干扰位的显隐性特征,使其判定为错误帧,并发出错误帧,我们会在Trace窗口查看到错误帧,因为进入bus-off需要TEC计数大于255,所以每32帧错误帧之后,节点会按设计进行快慢恢复逻辑,我们查看Trace窗口里报文时间差就能获取到快恢复时间及次数和慢恢复时间。

图12 快恢复查看

图13 慢恢复查看

我们还可以接入CANoe Scope来监测实施干扰前后的报文波形,具体怎么配置可以参照《CANoe Scope—高效解析总线报文》,我们可以对比干扰前后的波形。

图14 正常报文AckDEL隐性

图15 干扰后报文AckDEL显性

到这里我们就完成了整个bus-off测试,希望通过以上介绍大家能有所收获,更多关于VH6501的功能用途需要大家在实际应用中去解锁,我们下期见啦~

总线干扰神器——VH6501相关推荐

  1. 实操教程:CANoe在CAN总线测试中的应用

    随着新能源.智能网联等概念发展,车载CAN总线环境变得复杂且紊乱,CAN节点质量不稳定会给主机厂带来极大威胁,所以CAN总线测试已成为保证CAN网络安全运行的重要手段. 而CANoe作为一款支持多种总 ...

  2. 如何进行CAN总线高效测试?

    CAN总线自BOSCH公司发明以来,在汽车通信网络中的应用得到了广泛认可.随着汽车电子技术的发展,车上的电子模块越来越多,汽车内部的CAN总线节点也随之增多. 一般汽车内部CAN节点少则10个,多则3 ...

  3. 波特率_不同波特率CAN总线系统如何进行数据收发

    产品型号: USBCAN-II-PRO 产品型号: GCAN-206 USBCAN-IIPRO功能介绍: 波特率自动识别 标准波特率识别.全范围波特率识别(设置识别范围.全面匹配) 总线分析功能 可以 ...

  4. [STM32学习]——一文搞懂I2C总线

    目录 I2C总线的概念 I2C最重要的功能包括: I2C的物理层 I2C主要特点: I2C的高阻态 I2C物理层总结: I2C的协议层 初始(空闲)状态 开始信号: 停止信号 数据有效性 应答信号 I ...

  5. 科普系列: CAN/CAN FD 采样点及其测试简介

    当ECU之间使用CAN来进行通信时,总线上发生了什么?我们可以借助示波器来观察总线上的电平,而从示波器上我们可以看到一串连续的高低起伏的"线条"--波形.无论是电磁波或者是总线上变 ...

  6. FlexRay车载网络标准

    FlexRay车载网络标准已经成为同类产品的基准,将在未来很多年内,引导整个汽车电子产品控制结构的发展方向.FlexRay是继CAN 和LIN之后的最新研发成果,可以有效管理多重安全和舒适功能:譬如, ...

  7. 未知usb设备(设备描述请求失败)_USB 之传输事务

    来源:公众号[鱼鹰谈单片机] 作者:鱼鹰Osprey ID   :emOsprey 前面的笔记,鱼鹰介绍了如何通过两根数据线完成 USB 数据的差分传输,知道了最底层的传输是如何进行的,但是仅仅知道这 ...

  8. 如何处理CU2X0-2 (DP)变频器的F01910故障

    问题 如何处理CU2X0-2 (DP)变频器的F01910故障 USS(MODBUS)或 PROFIBUS 都可能出现 F01910 故障,不同通讯有不同的处理方法,参见下文. 1. PROFIBUS ...

  9. 深入探析CAN收发器各项参数

    CAN收发器是连接CAN控制系统与CAN总线网络的桥梁,当选型CAN收发器时应该注意哪些参数?本文将带大家深入的了解收发器的每项参数与其在实际应用中的意义.输入特性 对于隔离CAN收发器,输入主要指连 ...

最新文章

  1. 坚持是一件很难的事情
  2. SpringBoot 配置环境属性
  3. Basic Calculator
  4. 客户端是选择Java Swing还是C# Winform
  5. android怎么设置适配器,Android之自定义实现BaseAdapter(通用适配器三)
  6. /proc/sys/net/ipv4 详解2
  7. SAP MM 如何取到供应商付款条款描述信息?
  8. 装机经验-某些服务器安装系统困难,需要BIOS设置
  9. Julia :HDF5数据文件读写与更新
  10. 配置好网络文件还是连不上外网
  11. 电容式 触摸按键 原理
  12. java+biz+impl_为何在UserBizImpl实体类注入时…-体系课
  13. C语言字谜游戏(函数嵌套、指针)
  14. css:text-decoration给文字增加上划线、删除线、下划线
  15. 常见ABO血型遗传规律表
  16. 【雷达信号处理】脉冲多普勒PD及其MATLAB实现
  17. 《计算机网络》学习总结——数据链路层(完整理解)
  18. python 分布式 调度 管理_分布式云调度处理系统
  19. 股票入门基础知识1:什么是股票和股份?
  20. TCP四次挥手断开连接

热门文章

  1. hosts文件如何修改?已解决
  2. 打码进行中-JavaScript高级程序设计-第1章-什么是javaScript
  3. 计算机高中期末总结作文,高中期末总结:高一期末总结作文
  4. MacOS下iterm,Dracula主题配置
  5. 《现代操作系统》读书笔记之——进程间通信
  6. linux挂载硬盘下载电影,Windows上通过迅雷基于Samba往Pi3B上mount的移动硬盘下载电影...
  7. 【裸金属服务器】安装VMware ESXi
  8. 作为一个程序员应该看的书籍
  9. USACO-The Robot Plow G
  10. JS——canvas基础及其应用