毛刺与CAN功能安全的关系 v2.

毛刺与CAN功能安全的关系 v2.

CAN协议中有关毛刺处理的不完善有可能引起功能安全问题,对实时通信而言功能安全有2个重要得内容,一是在规定的时限内帧的内容能否送达,其二是是否有错帧被漏检。毛刺都会破坏这二个要求。

CAN是事件触发的通信协议,它根据消息的优先等级和节点的状态自动地调度消息的传送。一个连有许多节点的CAN系统必须经过的最坏响应时间分析,才能确定在规定的时限内帧的内容能否送达。

最坏响应时间是指节点内消息已经就绪之后,到实际送达接收节点所需要的时间,例如一个周期为10ms的控制消息能否在10ms内送达,如果不能保证送达,那么系统内就发生丢包了。丢包是一个功能安全攸关的问题。

最坏情况是指消息就绪时正好有一个最长的低优先帧刚开始了传送,接着又被优先级高的就绪的帧阻挡。而是否有高优先级帧就绪是一个递归的问题,需要数值解法。它与帧的周期、抖动、帧的长度有关,也与帧的优先级设定有关。这里不详细引述有关的分析方法。但是需要指出的是优先级的设定很关键,在某些情况下,即使总线的负载率不重,未设定妥当的情况下,系统也是不可调度的。例如在总线利用率为9.2%时,对10条消息也不能进行调度。总线利用率<30%的经验数据并不是保证。

最坏响应时间分析是理想化的,有人还进行了出错情况下的分析。另外,虽然没有出现出错与报错,但是对毛刺可能使优先级倒置的情况没有考虑:它破坏了调度分析中高优先级消息总能优先发送的基本假设。

ISO 11898-1:2015(E)中关于发送的规定是:总线空闲时可开始发SOF位,在服务间隔第3喂读到D时接受为读到SOF并在下一位开始发帧的ID最高位。所有节点以SOF的前沿作同步。

在这里插入图片描述

图1,SOF 的规定
在这里插入图片描述

图2 SOF处毛刺的处理造成优先级倒置

CAN控制器在总线空闲时不断测试总线上是否有跳变沿,由于位时间的单位是1Tq,如节点有发送请求,检测到无跳变沿时它就可以在下个Tq时刻发送SOF。图2中T2在t1前1Tq内有发送请求(Request)时,它将在t1测试是否有D。如果没有D,它就在t2发自己的SOF。当t1时发现有一个局部毛刺会引起假的硬同步,它就会认为总线上已有传送,它就挂起发送请求。因为节点间存在传送延迟tprop,所以另一个节点T1在࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值