总线干扰神器——VH6501

前不久小怿介绍了一款高效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的功能用途需要大家在实际应用中去解锁,我们下期见啦~

 

  • 9
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值