电工基础知识_电工技术-电工最常见电路移动版

电工基础主页 > 电工电子

CAN网络上的仲裁异常分析以及特性与测试建议

随着工业技术不断发展,CAN总线已广泛应用于,车辆、航空、医疗等高安全要求领域。高频发送CAN报文也成为安全测试的必要组成部分。在信号正常的网络上高负载率发送测试时,总线上偶然会出现许多意想不到的问题,例如出现大量错误报文、被测设备报文周期出现异常、甚至总线锁死等。这个时候我们则需要考虑一下CAN网络上的仲裁是否发生了异常。

首先我们来了解一下CAN总线仲裁机制。

CAN总线仲裁机制

CAN总线作为现场总线,每个节点可以同时侦测到网络上正在发送的数据,当总线空闲时每个节点均可以发起自身报文发送。如果多个节点同时发起报文发送请求,由哪个节点占用总线就是仲裁机制的主要用途。

首先CAN总线物理层通常是双绞线。当逻辑“1” 被写进总线时,CANH和CANL的电平都是2.5V,这种状态并被定义为“隐性”位;当逻辑“0”被写进总线时CANH会上拉到为5V,CANL被下拉到地0V,这种状态被定义为“显性”位。如果显性位和隐性位被不同的节点同时写进总线时,总线会表现为“显性”位。“显性位覆盖隐性位”是CAN总线冲突检测的基础。

当节点开始传送它们各自的报文时,如果一个节点写进了隐性位而读回显性位,节点会知道另一个高优先权节点正在占用总线,该节点会停止传送报文并继续接收总线报文。这种技术叫做“非破坏性逐位”仲裁。

CAN网络上的仲裁异常分析以及特性与测试建议

图2 CAN仲裁场区域

依据仲裁场范围,CAN总线仲裁流程如图3 所示。

CAN网络上的仲裁异常分析以及特性与测试建议

图4 仲裁场后数据传输不一致

如图4 所示当两个节点发送的仲裁场相同,在仲裁场后DLC段发生数据不同情况。发送单元1发现自己本身需要发送的隐性电平而收到的是显性电平,识别到数据不一致现象后立即发出错误帧信息(6个显性位)。发送单元1发送错误信息过程中,发送单元2也将捕获到自己某个隐性位发送与收取的不一致,从而也发出主动错误帧。最终造成类似图4 总线电平特征。

需要注意,大部分CAN收发器在发送过程中因为没有占用到总线或者发送失败,会在下一次总线空闲到来时再次占用总线发送相同的数据。因此当出现仲裁场数据相同,后续数据不同时,有极大的可能造成总线错误后两个节点再次同时占用总线,再次进行仲裁并总线错误,甚至反复进入错误造成网络锁死等严重情况。 (责任编辑:admin)

相关文章