CAN总线采样点不一致的危害
目录
1、确定网络参数
2、计算时间量子(tq)
3、分配位时间段
4、 使用位定时计算工具
5、遵循行业标准
采样点不一致是CAN总线网络中常见的配置错误,可能导致位错误、同步问题、错误帧增加、节点总线关闭、仲裁失败和确认错误等严重后果。
CAN总线的位时间由四个非重叠的时间段组成,每个段由时间量子(Time Quanta,tq)构成,时间量子是位定时配置的最小单位。
以下是各段的定义:
- 同步段(Sync_Seg):用于同步网络中的各个节点,期望在此段内检测到总线电平边沿。
- 传播段(Prop_Seg):用于补偿网络中的信号传播延迟,包括总线长度和收发器的延迟。
- 相位段1(Phase_Seg1):用于补偿正相位误差(位转换晚于Sync_Seg),可在重新同步时延长。
- 相位段2(Phase_Seg2):用于补偿负相位误差(位转换早于Sync_Seg),可在重新同步时缩短。
采样点位于Phase_Seg1和Phase_Seg2之间,其位置通常以位时间的百分比表示。例如,采样点为87.5%意味着在位时间的87.5%处读取总线状态。以下图示说明了位时间的分段和采样点位置:
当CAN网络中的节点配置了不同的采样点时,会引发以下严重问题:
- 位错误,不同节点在不同时间采样可能导致对同一位的解释不一致。例如,在存在噪声或信号失真的情况下,一个采样点为50%的节点可能在信号稳定前采样,而采样点为87.5%的节点可能正确采样。这种差异会导致位错误,进而导致数据损坏。
- 同步问题,CAN总线通过硬同步和重新同步机制确保节点时间对齐。硬同步在帧开始时重启位时间,重新同步通过调整Phase_Seg1或Phase_Seg2补偿相位误差。如果采样点不一致,同步机制可能无法有效补偿,导致节点失去时间对齐,通信失败。
- 错误帧增加,当节点检测到位错误时,会发送错误帧通知其他节点。采样点不一致可能导致频繁的位错误,产生大量错误帧。这些错误帧会占用总线带宽,降低网络效率,甚至可能导致总线拥堵。
- 节点进入总线关闭状态,CAN协议规定,节点在检测到过多错误后会进入错误被动状态或总线关闭状态。在总线关闭状态下,节点停止参与通信,可能导致网络部分或完全失效。采样点不一致是导致此类状态的常见原因之一。
- 仲裁失败,在CAN总线的仲裁阶段,节点通过比较发送和接收的位值决定消息优先级。如果采样点不一致,节点可能对仲裁位做出错误判断,导致消息冲突或优先级反转,影响实时通信。
- 确认(ACK)错误,每条消息的末尾包含一个确认位,用于验证消息是否被正确接收。采样点不一致可能导致节点无法正确采样确认位,触发重传,降低网络效率。
假设一个汽车CAN网络包含多个电子控制单元(ECU),目标位速率为500 kbps,总线长度为50米。其中一个ECU的采样点配置为50%,而其他ECU配置为87.5%。在高噪声环境下,采样点为50%的ECU可能在信号未稳定时采样,导致位错误。该ECU会发送错误帧,干扰其他节点的通信。如果错误持续发生,该ECU可能进入总线关闭状态,导致关键功能(如刹车控制)失效。
相反,如果所有ECU的采样点统一配置为87.5%,即使存在一定噪声,节点也能在信号稳定后采样,显著降低错误率。以下表格展示了两种配置的对比:
为避免采样点不一致的危害,工程师应遵循以下步骤配置位定时:
1、确定网络参数
收集网络的物理特性,包括总线长度、收发器延迟和系统时钟频率。例如,假设系统时钟为16 MHz,目标位速率为500 kbps,总线长度为50米。
2、计算时间量子(tq)
时间量子由波特率预分频器(BRP)和系统时钟频率决定。公式为:
例如,BRP=4,fsys = 16 MHz,则tq = 4/16 = 0.25 μs。
3、分配位时间段
位时间由多个时间量子组成,通常为8至25个tq。采样点位置由以下公式确定:
为实现87.5%的采样点,可设置Sync_Seg=1 tq,Prop_Seg=5 tq,Phase_Seg1=8 tq,Phase_Seg2=2 tq,总计16 tq。
4、 使用位定时计算工具
许多制造商提供位定时计算工具,如Kvaser位定时计算器,可帮助工程师快速确定合适的参数。
5、遵循行业标准
CiA推荐采样点为87.5%,并提供详细的位定时指南(如CiA 601-3文档)。工程师应参考这些标准,确保所有节点配置一致。
为确保网络可靠性,工程师必须为所有节点配置一致的位定时参数,遵循CiA等行业标准,并使用位定时计算工具。通过合理的配置和测试,CAN总线可以实现高效、稳定的通信,满足汽车和工业应用的严格要求。