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.

[参考译文] TCAN1044AV-Q1:CAN 收发器芯片 TCAN1044和 CAN 通信问题

Guru**** 657980 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1261415/tcan1044av-q1-can-transceiver-chip-tcan1044-and-can-communication-problems

器件型号:TCAN1044AV-Q1

大家好,

问题背景:通信结构如图1所示。 当上部计算机发送指令时、由于某些原因、CAN 总线将触发总线 BUSOFF、从而导致总线无法接收随后的指令传送。 在了解原因后、发现 CAN 总线上以及 MCU 与 CAN 收发器之间的通信信号受到干扰、如图2和图3所示、图4是总线正常传输的信号。 图3中的蓝色波形是 MCU 的 GPIO 状态、逻辑是当遇到 BUSOFF 时、电平会翻转一次、用于捕获由 BUSOFF 触发的时刻中的其他信号。 CAN 总线状态与 RX 电平一致、表示 CAN 总线此时处于将 DSP 数据传回 MCU 的状态、因为异常的 RX 信号会导致 MCU 识别 BUSOFF 并关闭总线。

要求1:在图2所示的红色框中、TCAN1044是否有任何会影响 CAN 总线电平的机制?

要求2:如图3中的红色框所示、CAN 总线处于返回数据的状态、电平略有升高。 此异常提升零件是如何受到影响的? 它是否由 TX 的低电平信号引起?

要求3:如图3所示、当 MCU 发送数据并同时接收返回数据时、总线处于返回状态。 此时、总线是否可以接收 MCU 发送到总线的数据?

图1:

图片2:

图片3:

图片4:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Zhixia:

    感谢您在 E2E 上分享您的问题、并包含您调查结果的详细波形。  

    图2和3显示了本地节点对其在 CAN 总线上发现的错误做出响应。 该节点通过驱动总线上的6个连续的显性位来指示它已发现错误。 我们可以看到、TXD 信号在正确的时长内变为低电平。 这也与总线上升高的差分电压保持一致、因为多个收发器同时驱动显性信号。 在此之前、我没有看到 CAN 帧有任何问题、因此很难解释为什么节点驱动了错误帧。 节点是否报告了特定错误? 例如 CRC 错误、BIT1错误等。 如果您共享一张示波器屏幕截图、其中显示了位可见的整个 CAN 帧、我们可以告诉您在帧的哪一部分识别出了错误。

    捕捉还有些奇怪:在错误帧结束后、通常期望总线返回到空闲隐性状态。 然而、在这种情况下、我们看到总线在~3ms 的时间内保持显性状态。 这与 CAN 收发器的显性状态超时时间一致、因此我怀疑发送节点的 TXD 信号一直处于低电平。 这对于 CAN 系统来说并不常见、因此在此故障期间、收发器的失效防护功能会阻止节点覆盖总线。 您知道发射节点为什么会将 TXD 信号保持在低电平吗?

    这里的模拟波形看起来不错、似乎收发器运行良好。 这很可能是系统中 CAN 控制器运行的问题。 这可能是配置问题、时序问题、IO 问题或其他类似问题。  

    如果其中有任何内容不清楚、或者如果您对 CAN 控制器的作用可能是这样的有任何想法、敬请告知。

    此致、  
    埃里克·肖特  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Eric

    1、以下内容是对完整 CAN 帧波形数据和原理图部分的补充:

    图片1:MCU 到 CAN 总线原理图部分

    图2:其他三个收发器的原理图部分

    图3:CAN 通信正常传输波形

    图4:CAN 异常节点波形

    2、问题1:请根据故障触发的完整 CAN 帧帮助查找一些问题的方向、或确定哪个帧操作错误、谢谢。

    问题2:图4中的 CAN 数据对应于 RXD 数据、总线状态是将数据发送回 MCU。 是否可以通过这种方式来理解它?

    问题3:如果问题2得到正确理解、那么 CAN 总线何时发回数据、TXD 发送数据与总线发回的数据状态有冲突吗? 如果问题2的描述错误、请帮助描述当前的 CAN 总线发送和接收状态、谢谢。

    问题 4:异常总线是 TXD 的异常低电平导致的、您能理解它吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Zhixia:

    感谢您提供额外的原理图和额外波形信息。 此时、我仍不确定导致此问题的原因、因为我们在图4中观察到的节点似乎在按预期运行。 我认为可能是其他一些节点出现了错误行为并导致这种奇数总线状态。  

    问题1:请根据故障触发的完整 CAN 帧来帮助查找一些问题的方向,或确定哪个帧操作错误,谢谢。

    在图4中、我们看到本地节点向总线传输数据。 CAN 总线和 RXD 信号与在 TXD 上传输的信号相匹配、整个帧向上、直到出现 CAN 帧的 ACK 阶段。 此时、我们可以看到 TXD 信号变为空闲状态、而 CAN 总线和 RXD 信号变为显性状态一位时间。 这是另一个确认已接收到传输且没有任何错误的节点。 所有这一切都是正常的、在 propper CAN 通信中是预期的。  

    奇数部分是接下来发生的情况:本地节点在 ACK (最后一个 TXD 低电平脉冲)之后很快再次驱动为总线显性、其他节点立即重新驱动错误帧(CAN 总线上的 VOD 升高)。 如果本地节点尝试传输而无需等待 CAN 帧之间的正确任务间时间、这是预期的系统行为。 同样、如果本地节点行为异常、这是预期的响应。  

    不过、这之后是一种意想不到的行为:CAN 总线保持显性的时间太长。 CAN 的 IDLE 状态始终为隐性(逻辑1)、因为这种状态可被需要驱动显性状态(逻辑0)以启动通信的任何器件覆盖。 任何控制器都不应使总线保持显性状态这么长的时间、问题节点最终会激活其收发器的失效防护显性超时功能并将其自身禁用、从而使总线返回隐性状态。  

    我建议找出哪个节点长时间保持总线显性状态、并将其与总线断开。 我想知道这是否能解决这两个问题、或者仅能解决总线卡滞状态。 要查找节点、请探测 TXD 信号并查找保持低电平超过2ms 的信号。

    问题2:图4中的 CAN 数据对应于 RXD 数据,总线状态是将数据传输回 MCU。

    我不确定您说"返回到 MCU"时的参考方向。 在此设置中、您是否有可以与我分享的数据路径参考方框图?

    此致、

    埃里克·肖特  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Eric

    下面提供了通信架构和波形。 图1中的红色框标记对应于图2中的 TX/RX、蓝色框标记对应于图3中的 TX/RX。 通信路径是从主机到 MCU 再到 PFC DSP (LLC DSP 和 DC DSP 不工作)、这两种方式都是双向通信。

    图1:

    图2:

    图3:

    图4:

    问题1:根据图3中的分析、PFC DSP TX 信号具有10ms 的异常低电平。 此电平是否会导致总线处于显性状态并导致 BUSOFF 失效? 是否可以因为 DSP 发送的异常数据节点而将 CAN 总线视为异常?

    问题2:图3中的 RX 为什么具有2.975ms 的低电平? 此状态是否由 DSP 发送的 TX 数据异常低电平引起?

    问题3:PFC DSP TX 具有10ms 的低电平、当 TX 进入 TCAN1044芯片时触发 TXD 显式超时保护、CAN 信号异常时间达到2.975ms 并复位、因此图2中 MCU 的 RX 波形只有2.975ms。 我们能否这样理解它?

    此致、

    白志霞

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Zhixia:

    问题1:根据图3中的分析、PFC DSP TX 信号的异常低电平为10ms。 此电平是否会导致总线处于显性状态并导致 BUSOFF 失效? 是否可以因为 DSP 发送的异常数据节点而将 CAN 总线视为异常?

    是的、如此长的显性状态是一个问题、会导致总线进入脱离总线状态。  

    问题2:图3中的 RX 为什么具有2.975ms 的低电平? 此状态是否由 DSP 发送的 TX 数据异常低电平引起?

    问题3:PFC DSP TX 具有10ms 的低电平、当 TX 进入 TCAN1044芯片时触发 TXD 显式超时保护、CAN 信号异常时间达到2.975ms 并复位、因此图2中 MCU 的 RX 波形只有2.975ms。 我们能否这样理解它?

    [/报价]

    DSP 在 TXD 上的10ms 显性状态异常、应进行分析以解决此问题。 ~3ms 超时是 TCAN1044A 的一项特性、可在 TXD 卡在低电平时禁用驱动器、以允许总线恢复。 这是收发器的预期行为。

    此致、  
    埃里克·肖特