CAN总线通过Propagation Segment和位时序机制对Tx到Rx延时进行了补偿,这种设计使得仲裁和通信在合理范围内的延迟下依然稳定工作。
在总线上发送 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):引入时间触发机制,规避延时问题。