文章目录
背景
CAN总线的时钟同步需求
CAN总线采用异步通信机制,各节点基于本地晶振生成位时间(Bit Time)。由于晶振的制造公差、温度漂移等因素,不同节点的实际时钟频率可能存在±100ppm(百万分之一)甚至更大的偏差。例如,标称1 MHz的时钟在±100ppm误差下,实际频率范围为0.9999 MHz至1.0001 MHz。这种频率差异会导致节点间的位时间逐渐偏离,若不及时补偿,将引发位采样错误,最终导致通信失败。
同步机制的分类
CAN协议定义了两种同步机制以应对时钟偏差:
硬同步(Hard Synchronization)
仅在帧起始(SOF,Start of Frame)的下降沿触发,强制所有节点将当前位时间重置为同步段(Sync_Seg)的起点。此过程确保所有节点在帧开始时对齐。
重同步(Resynchronization)
在帧传输的后续位边沿(如数据位或ACK位)检测到相位偏差时触发,通过调整相位缓冲段的长度,逐步校准时钟差异。