首页 理论教育 CAN总线传输仲裁机制优化方案

CAN总线传输仲裁机制优化方案

时间:2023-06-25 理论教育 版权反馈
【摘要】:为了避免发生这种情况,CAN 数据总线系统就必须决定哪个控制单元的数据列首先进行发送,总线采用传输仲裁,原则是具有最高优先权的数据首先发送。3 个控制单元同时发送数据列,此时,在CAN 数据传输线上进行一位一位的比较,如果1 个控制单元发送了1 个低电位而检测到1 个高电位,那么该控制单元就停止发送数据列而转为接收器。图2-30优先权判定CAN 数据总线举例表2-4给出了3 组不同数据列的优先权。

CAN总线传输仲裁机制优化方案

如果多个电控单元要同时发送各自的数据列,那么数据总线上就必然会发生数据冲突。为了避免发生这种情况,CAN 数据总线系统就必须决定哪个控制单元的数据列首先进行发送,总线采用传输仲裁,原则是具有最高优先权的数据首先发送。控制单元是如何实现仲裁的呢?

①每个控制单元在发送信息时,通过发送标识符来识别优先级

②所有的控制单元都是通过各自的RX 线来跟踪总线上的一举一动并获知总线的状态。

③每个发射器将TX 线和RX 线的状态逐位进行比较。

④数据传输总线的调整规则:用标识符中位于前部的“0” 的个数代表信息的重要程度,“0” 的位数越多越优先,从而保证按重要程度的顺序来发送信息。越早出现“1” 的控制单元,越早退出发送状态而转为接收状态。基于安全考虑,涉及安全系统的数据优先发送。

例如,由ABS/EDL 电控单元提供的数据比自动变速器控制单元提供的数据(驾驶舒适)更重要,因此具有优先权。数据列的状态域是由11 位组成的编码,其数据的组合形式决定了数据的优先权,如图2-30所示。3 个控制单元同时发送数据列,此时,在CAN 数据传输线上进行一位一位的比较,如果1 个控制单元发送了1 个低电位而检测到1 个高电位,那么该控制单元就停止发送数据列而转为接收器。

(www.xing528.com)

图2-30 优先权判定CAN 数据总线举例

表2-4给出了3 组不同数据列的优先权。例如,如图2-31所示,在数据列的状态域位1,ABS/EDL 控制单元发送了1 个高电位,发动机控制单元也发送了1 个高电位,自动变速器控制单元发送了1 个低电位而检测到1 个高电位,那么自动变速器控制单元将失去优先权而转为接收器。在数据列的状态域位2,ABS/EDL 控制单元发送了1 个高电位,发动机控制单元发送了1 个低电位并检测到1 个高电位,那么,发动机控制单元失去优先权而转为接收器。在数据列的状态域位3,ABS/EDL 控制单元拥有最高优先权并接收分配的数据,该优先权保证其持续发送数据直至发送终了,ABS/EDL 控制单元结束发送数据后,其他控制单元再发送各自的数据。

表2-4 不同数据列的优先权

图2-31 数据列优先权的判定

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈