Skip to main content

CANbus 诊断

硬件故障诊断

大多数 CAN 问题可追溯到错误接线或有故障的 CAN 设备。潜在错误包括以下内容:

  • 终端电阻缺失或尺寸不正确

    总线必须在开始和结束时使用 120 Ω 终端电阻精确终止。

  • 不同的波特率

    所有用户都必须使用相同的波特率。

  • CANLow、CANHigh、CANGround、V+之间短路

  • CANLow 和 CANHigh 互换

  • CANHigh和CANLow的不同长度

  • CANHigh 和 CANLow 不是双绞线。结果,可以更容易地中断信号。

  • CANGround 的不同接地源

  • CAN总线电缆两侧接地

    当 CAN 总线电缆的屏蔽两端都接地时,会形成接地回路,从而导致中断。

  • 总线电缆太长

    最大总线长度取决于设置的波特率(见表格)。

比特率

电缆长度

10 kbps

6.7公里

20 kbps

3.3公里

50 kbps

1.0公里

125 kbps

500米

250 kbps

250米

500 kbps

125米

1 Mbps

25米

检测硬件故障

_can_img_error_hw1.png
过程. 检查终端电阻

终端电阻用于使节点的阻抗适应所使用的传输电缆的阻抗。当阻抗不匹配时,传输的信号不会被负载完全吸收,部分会反射回传输电缆。如果源、传输电缆和负载的阻抗相同,则可以消除这些反射。在此测试中,测量 CAN 数据对电缆和连接的终端电阻的串联电阻。

  1. 关闭所有 CAN 节点的电源。

  2. 测量网络中间和末端CAN_H和CAN_L之间的电阻。

    测量值应在 50 Ω 和 70 Ω 之间。该值应该在网络中的所有位置都相同。

  3. 如果该值小于 50 Ω,请确保以下几点:

    • CAN_H 和 CAN_L 电缆之间没有短路。

    • 存在的终端电阻不超过两个。

    • 节点没有有缺陷的收发器。

  4. 如果该值大于 70 Ω,请确保以下事项:

    • CAN_H 和 CAN_L 电缆的接线不存在开路。

    • 总线系统有两个终端电阻,每个 120 Ω – 每端一个。

_can_img_error_hw2.png
过程. CAN_H/CAN_L 电压

每个节点都包含一个发送不同信号的 CAN 收发器。当网络通信空闲时,电压 CAN_H 和 CAN_L 约为 2.5 V。有故障的收发器会导致开路电压变化并中断网络通信。

  1. 关闭所有 CAN 节点的电源。

  2. 停止所有网络通信。

  3. 测量 CAN_H 和 GND 之间的直流电流。

    测量值应在 2.0 V 和 4.0 V 之间。如果小于 2.0 V 或大于 4.0 V,则可能是一个或多个节点的收发器出现故障。

  4. 在电压低于 2.0 V 时,您需要检查 CAN_H 和 CAN_L 电缆的导通性。

  5. 在电压大于 4.0 V 时,您需要检查是否过压。

_can_img_error_hw3.png
过程. 地面

CAN 网络的屏蔽层可能仅在一处接地。该测试表明屏蔽是否在多个位置接地。

  1. 将屏蔽层与地面分开。

  2. 测量屏蔽层与地之间的直流电阻。

  3. 将屏蔽层接地。

    电阻应大于 1 MΩ。如果它较低,那么您需要寻找额外的屏蔽接地。

_can_img_error_hw4.png
过程. CAN收发器电阻检查

CAN 收发器有一个控制 CAN_H 的电路和另一个控制 CAN_L 的电路。经验表明,一个或两个电路的电气损坏会增加这些电路中的漏电流。

使用电阻测量仪测量泄漏电流。

  1. 将节点与网络分开。让节点没有任何电流。

  2. 测量 CAN_H 和 CAN_GND 之间的直流电阻。

  3. 测量 CAN_L 和 CAN_GND 之间的直流电阻。

    通常电阻应在 1 MΩ 和 4 MΩ 之间或更高。如果低于此范围,则 CAN 收发器可能有故障。

_can_img_error_hw5.png

CAN控制器的错误处理

错误处理集成到 CAN 协议中,对 CAN 系统的性能极为重要。错误处理旨在检测 CAN 消息中的错误,以便发送方可以重新发送失败的消息。每个 CAN 控制器都试图检测消息中的错误。当发现错误时,检测节点会发送错误标志,从而中断总线流量。其他节点将检测由错误标志引起的错误(如果它们尚未检测到原始错误)。他们将采取适当的措施并拒绝当前消息。

这些计数器以及总线状态通常在诊断 CAN 错误时提供对错误原因的初步了解。该信息可在 CODESYS 通过用户界面和应用程序。