CAN总线的NoAck测试方法

    勤能补拙是良训,一分辛劳一分才,初出茅庐,这是写的第一篇文章,以下都是自己在工作中的一些经验,这里写下来是想总结一下怕以后忘了O(∩_∩)O哈哈~,也希望能和大家分享下工作的经验,如果文中有不对的地方欢迎大家批评指正。

    CAN的基础知识这里不再赘述。那么NoAck是什么呢?简单说明,NoAck就是当总线网络中节点A发出报文后,该报文没有被总线上任意一个节点接收到,原理是CAN的数据帧结尾部分存在ACK填充区(槽),正常情况下该区域由接收到报文的节点进行填充(由隐形变为显性)。如果当节点A的报文没有被其他节点接收到,ACK填充区未被填充,这时节点A就会触发NoAck机制,开始的向总线发错误帧,由主动错误到被动错误,再到总线关闭。我们所要测试的就是总线上NoAck错误帧的时间,简称TNoAck,和总线关闭的时间,简称Tpause。

在实际测试当中,TNoAck的时间会分为两种,分别为上电时和运行时触发的TNoAck,通常上电的控制器会有初始化的过程,为了避开初始诊断时间,第一帧TNoAck的时间会更长,可能不同的企业标准会有差异,目前我所测TNoAck的范围为,上电时TNoAck为1.5s~2s之间,运行时TNoAck在100ms~200ms之间,Tpause的时间固定在100ms~200ms之间。

     常用的测试方法有两种,一是使用示波器抓波形,二是使用CAN总线的监测工具(例如CANoe),下面来分别说一下具体的测试步骤。

示波器测试

上电前,用两个通道分别来捕捉供电电压和总线上的数据,调整好合适的采样周期,准备上电。

上电时候的NoAck波形

运行时NoAck波形

使用示波器测试的优点是清晰直观,使用方便,当然缺点就是解析麻烦,如果出现高精度的问题很难发现。

CANoe测试

首先配置硬件和CANoe的连接,在oe中关闭Channel x的ACK,并使用Trace监测该通道的报文。操作上可以在总线上多加一个节点用来触发NoAck故障,也可以使用CAPL操作。手头暂时没设备就不上图啦~哈哈哈。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值