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.

[参考译文] TCAN1144-Q1:CANLGND 不可靠检测

Guru**** 664280 points
Other Parts Discussed in Thread: TCAN1145EVM, TCAN1144-Q1
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1314513/tcan1144-q1-canlgnd-unreliable-detection

器件型号:TCAN1144-Q1
主题中讨论的其他器件:TCAN1145EVM

您好!

我已经对 TCAN1144进行了测试、并对其进行了原型设计、从而将其实施到一些现有硬件中。

通过自定义 spidev 程序测试的总线故障检测功能、该程序每1秒轮询 INTCANBUS 寄存器并报告故障状态。

除了偶尔检测到的 CANLGND 之外、CANLGND 还能成功检测到所述的所有故障。 而且、它每时每刻都错误地检测到半端接。

芯片的配置方式与此类似、INH 和 WAKE 因其未使用而被拉至 GND。

然而、电源、SPI 和 CAN 连接都与分线板断开、并焊接到预先存在的 PCB 的焊盘上、因此设置起来并不困难。

要测试收发器的 CAN 总线长度相当短、因此这应该不是问题。

之前、该芯片使用 TCAN1145EVM 进行了测试、其中 TX、RX 和 SPI 导线从预先存在的 PCB 馈送到 EVM、发现其工作原理相当可靠。 但在采用新设置时、情况并非如此。

有没有想法知道在检测到该错误时、什么样的差异/条件会导致芯片工作不正常?

此致、

最大值

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

    小更新、

    只要通过总线发送流量、收发器就会在发生 CANLGND 故障时一直检测到该故障情况 不是从它自己 发生时)、但在 INT_CANBUS 寄存器已清除且故障仍然存在后、无法复位寄存器。

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

    您好、Max:

    该器件的总线故障检测电路可监测 CAN 引脚的输出电流、以确定 CAN 总线是否异常。 当驱动 CAN 总线上的显性状态时、收发器希望通过 CANH 和 CANL 产生对称且一致的电流。 如果检测到通过 CANH 和 CANL 的电流大小不同、器件会将其解释为 CAN 线之一(CANH 到 Vcc、CANH 到 GND、CANL 到 Vcc、CANL 到 GND)上的短路。 它将使用从两个驱动器引脚测得的电流来确定要报告哪些故障。 例如、如果 CANL 输出小电流或无电流、而 CANH 输出的电流大于典型值、器件会将这种情况解释为 CANL 短接至 GND。  

    请注意、收发器仅在主动驱动总线上的显性状态时才能够检测总线故障。 这是因为只有一小部分电流用于偏置隐性状态(逻辑1和空闲状态)、这不足以可靠地测量总线故障状态。 只要 CAN 驱动器处于显性状态已持续足够长时间并转换为隐性状态、收发器就会测量总线故障电路。 在收发器以500kbps 或更慢的速率进行传输时、通常会发生这种情况。 如果收发器检测到连续四次显性到隐性转换的故障情况、则会设置 INT_CANBUS 寄存器中的相应位。 MCU 一旦识别到此标志已设置、就需要通过向此寄存器的相应位字段写入1来手动清除它。  

    总线故障检测电流阈值在器件内部设定、并且在满足典型 CAN 系统之外的条件时将被超过。 这可能包括 CAN 总线上的过多串联电阻、CAN 信号线上的过大泄漏、CMC、总线电容器和寄生效应等无源器件产生的振铃或其他复杂的交流行为、以及其他几个总线特性。 由于您描述的从电路板到收发器的 CAN 连接不太理想、我怀疑这可能是在 CANL 到 GND 检测中发挥作用。  

    为了实现这一特性、我建议将来自总线故障检测的信息与来自系统的其他信息结合使用。 例如、如果在系统中发送或接收数据时 CAN 错误没有增加、那么收发器报告的 CAN 总线上存在非理想情况在很大程度上可能无关紧要、因为这些情况不足以影响信号可靠性。 但是、如果在 CAN 错误增加或总线关闭状态的同时进行检测、 收发器报告的总线故障状况可能是技术人员的有用诊断数据、技术人员试图排除其他潜在问题、从而将其范围缩小为电缆线束或类似的硬件故障。  

    如果这些信息很清楚、或者您还有任何问题、请告诉我。  

    此致、  
    埃里克·肖特  

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

    感谢您的回复 Eric、

    我对下面的代码有一点困惑、

    "例如、如果 CANL 输出极小的电流或无电流、而 CANH 输出的电流大于典型值、器件会将这种情况解释为 CANL 短接至 GND。 "我本来以为 CANL 是电流大于典型值的导线、因为它短接至 GND、收发器试图将其驱动至~1.5伏特。

    此外、您是否还想知道收发器为什么能够在故障发生时检测到故障 、而不是在故障发生后检测到故障? 出现故障或类似情况时、需要更大的初始电流?

    此致、

    最大值

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

    检查 https://www.ti.com/lit/时 ta / ssztbo8/ssztbo8.pdf . 您所说的内容现在很有意义、我对收发器驱动总线的想法有了不同的看法。

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

    您好、Max:

    是的、正如您从本文档中看到的那样、CANL 引脚正在驱动至接地电势、所以这个信号引脚上的接地短路将导致几乎没有电流从引脚中流出。  

    某些故障的零星检测通常是数据流中出现的显性时间长度造成的。 当在总线上驱动更长的显性(逻辑0)位串时、由于系统有更多的时间来稳定至稳态、收发器能够获得更准确的总线状态读数。 较短的显性字符串可能会导致漏报或误报、原因是系统在从隐性状态变为显性状态时会出现振铃。 这可以解释您在测试中看到的零星检测行为。

    此致、  
    埃里克·肖特  

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

    这回答了我的问题、非常感谢 Eric。

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

    抱歉再次打开该主题、但它与上述信息如此相关、我认为这可能是最佳选择。 根据您所得到的信息进行进一步测试时、确定是否检测到错误和是否是零星的半端接的实际上是位显性字符串的长度。

    在我的设置中、必须至少为电压连续驱动3个显性位(因此电流和阻抗应大致恒定)、以达到足够高的电平、当存在 CANLGND 时可以进行检测。 (我认为这是杂散电容造成的)

    摘自以下产品说明书(www.ti.com/.../tcan1144-q1.pdf)的这一报价:

    "如果在四个显性向隐性转换期间存在故障、且每个显性位均为≥2 μs、则会进行检测并记录该故障"

    我需要上面波形中的其中四个尖峰才能检测到故障。 这些尖峰对应于 id 000 (0F-EMC)中的一个帧 FF-FF-FF-FF-FF-FF-FF。 这似乎与上述引语明显有关。

    比特率为250kbps、因此单个位的宽度为4uS、满足2uS 要求。

    位填充位似乎被正确地解释为显性位、但我猜是它们不符合上述引用中"显性"的要求。

    您认为这是对发生情况的准确表示吗? 是否有关于触发条件所需最大电流量的数据?

    除了降低杂散电容外、您是否有关于如何保持设置更可靠的建议/提示?

    目前、如果 CANLGND 状态出现一次、则该计划可能只是发送一些全部为零的诊断 CAN 帧来检查其状态(它确实偶尔出现、因为有时帧会符合上述要求)。

    非常感谢您的帮助、

    最大值

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

    您好、Max:

    感谢您的测试更新。 这一切听起来都与器件的预期行为一致。 我们通常建议发送像这样具有所有显性位有效载荷的"故障检测帧"、因为该帧可以满足收发器故障检测功能的所有要求、并为总线提供尽可能长的时间在填充位之间稳定而无需修改 CAN 数据速率。  

    收发器具有设定的用于故障检测功能的最小显性时间、在短于此时间内放弃显性驱动状态的任何测量。 然而、如您所见、系统稳定至适当状态实际所需的最短时间可能比此时间更长。 遗憾的是、在这方面、故障检测电路中的电流和电压阈值比较乐观、 因此、当显性时间过短时、它们更有可能识别不到故障、因为考虑寄生效应的许多实际 CAN 系统的运行时间比2µs 长。 造成这种情况的主要原因之一实际上是共模扼流圈、因为这即使在故障状态下也能改善信号对称性。  

    您是否有任何建议/提示可以做些什么来保持设置更可靠

    这是复杂的、因为为了提高信号对故障的响应时间、从而更可靠地检测它、我们可能会在标称情况下使系统不太稳定。 例如、CMC 可以在总线故障条件下使信号保持稳定的时间长于2µs、如果没有它、我们可能会在2µs 之前看到故障、并能够更可靠地检测此情况。 但是、如果没有 CMC、 当不 存在故障时、我们会在系统中允许出现更多共模噪声、并且与使用 CMC 的相同系统相比、这可能会导致性能下降。 我们还可以举一个示例、在某些故障条件下、由于系统进行的少量改进、通信正常工作、这也会导致故障检测电路的假负读数。 在这种情况下、我们将在以下两种系统中进行选择:一种系统可以在故障情况下发送(但可能出现一些 CAN 错误)但无法识别 故障、另一种系统可以始终识别故障但在故障期间无法进行通信。 如果结合在检测到 CAN 错误时发送故障检测帧的可能性、第一种情况似乎对我更可取。  

    请告诉我您最终会使用什么、因为我一直很想看看系统稳定时间超过器件最短时间的这种情况的处理方式。  

    此致、  
    埃里克·肖特