主题中讨论的其他器件:TCAN337
您好,
我对 CAN 通信有普遍的疑问、我在设计中使用的是 TCAN337收发器。
CAN 总线上的20个节点。 如果节点1 CANH 或 CANL 接地短路、则完整总线将短路、其他19个节点将如何通信。
控制器如何知道哪个节点短路。 它看起来像所有节点 SOP 通信。
请提出您的意见。
谢谢、
分辨率
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Reshma、
感谢您将此内容引入 E2E。 对于启动器、如果 CANL 对地短路、很可能仍然能够进行 CAN 通信、对于 CANH 短接到 VCC 也是如此。 因此、存在一些故障条件、仍允许进行通信。
但是、如果这是另一种方法、则 CAN 控制器上有内置的机制可以处理这种情况。 在 CAN 协议内、有内置的错误处理。 这种错误处理的工作方式是递增错误计数器并发送错误帧(错误激活错误帧为6个显性位、错误被动错误帧为6个隐性位)。 一旦这些计数器达到特定阈值、它们将更改其错误状态。 最后、如果导致错误的条件仍然存在、控制器将进入 BUSOFF 状态、此时它将不再发送到总线。 该计数器的工作方式是发送器将递增8、错误接收器将只递增1。 因此、导致错误的传输节点将增加并更快地到达总线关闭状态、而接收节点将增加1、但仍然正常。
现在、如果所有节点都因为电缆束短路而受到影响、那么所有节点将根据其错误状态传输错误帧、 但实际上、由于传输误差使计数器更快地增加到 BUSOFF、问题节点会被处理、这将使该器件停止完全传输并将总线引脚设置为高阻抗。 一旦发生这种情况、 其他节点将能够 进行传输。 如果故障是沿电缆发生的、则这不是特定于一个节点、所有节点都将显示错误。
此致、
Eric Hackett