CAN总线仲裁如何补偿发送到接收的延时?
CAN总线仲裁如何补偿发送到接收的延时?
CAN总线在汽车电子和工业控制领域中被广泛应用,其仲裁机制的设计对于确保通信的稳定性和可靠性至关重要。本文将详细介绍CAN总线如何通过Propagation Segment和位时序机制来补偿发送到接收的延时问题。
在总线上发送 dominant(逻辑“0”)比发送 recessive(逻辑“1”)优先级高。发送节点需要在发送每一位时,实时监测总线上实际的电平状态,以确认是否发生冲突。
CAN协议中,为了确保仲裁的正确性,采用以下机制来补偿或规避这些延时问题。
(1)时间量化与位定时(Bit Timing)
CAN总线使用严格定义的位时序(bit timing)来同步通信。每个位被分为多个时间段:同步段(Sync Segment)、传播段(Propagation Segment)、相位段1(Phase Segment 1)和相位段2(Phase Segment 2)。
Propagation Segment专门用于补偿信号的传播延时(包括 Tx 到 Rx 的延时)。通过调整Propagation Segment的长度,可以在一定程度上吸收这些延时的影响。
(2)采样点与同步机制
采样点通常在每个位的70-90%处,允许一定的延时补偿空间。如果发送方的监听信号由于传播延时未及时返回到控制器,但仍在采样点之前完成,仲裁可以继续正常进行。
(3)传播时间的行业标准
CAN协议规定了传播时间限制。根据 ISO 11898 标准,总线的物理特性和波特率决定了允许的最大延迟。例如,在 1 Mbps 的波特率下,总线的单向传播延迟通常需要小于260纳秒。
延迟的实际影响通过网络设计(短总线长度、高质量电缆)和物理层优化(高速收发器)来减小。对于高波特率(如1 Mbps及以上)的网络,延时的影响变得更加显著。这时通常会:
- 降低总线长度:减少信号的物理传播时间。
- 提高收发器性能:选用高速、低延迟的 CAN 收发器。
- 使用Time Triggered CAN(TTCAN):引入时间触发机制,规避延时问题。
本文内容来源于腾讯云开发者社区,原文链接:https://cloud.tencent.com/developer/article/2482086