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.

[参考译文] ISO1042:CAN 总线上的 ACK 电平过高

Guru**** 2391415 points
Other Parts Discussed in Thread: ISO1042, ISO1044

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

https://e2e.ti.com/support/isolation-group/isolation/f/isolation-forum/939938/iso1042-ack-level-too-high-on-can-bus

器件型号:ISO1042
主题中讨论的其他器件: ISO1044

当我将一定数量的 CAN 节点连接到网络时、CAN 总线不再正常工作。 据我所知、原因是 收发器的输出电平(仅 ACK)过高。 对于一个器件、总线看起来仍然正常。 对于每个额外的参与者、ACK 级别会变得越来越高。
这是一个问题、因为系统的静态寄生电容、RX 侧的 ACK 信号 比应有的长约260ns。 作为响应、CAN 接口返回一个总线错误、并且系统不可靠地工作。

如何解决此问题?

非常感谢!

很少的参与者:

一些与会者:

ACK 电平太高、因此它是延迟的 RX 信号

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

    user6436938、

    欢迎并感谢您使用 e2e!  

    我欣赏波形。 好的、看看它们、我可以看到工作时的寄生电容。 我有几次请求、希望获得一些有助于调试的更多信息。

    1.您要向总线添加多少个设备? 在变速器变得不可靠之前有多少?

    2.您能否提供 CAN 收发器及其相关组件的原理图? 我想知道您是如何终止总线的。

    3.您将哪种线束用于总线? 它是正确的双绞线吗?

    尊敬的、

    Lucas Schulte

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

    大家好、欢迎观看 E2E 视频!

    这是一个大型 CAN 网络所能实现的完美演示。 在仲裁和 ACK 阶段、多个 CAN 节点可能同时驱动总线。 通常在 ACK 位期间、许多接收节点(如果不是所有接收节点)将同时驱动总线、从而产生非常强的等效驱动强度。 如果 RC 特性不允许显性到隐性边缘在可接受的时间段内转换、则驱动如此大的差分信号可能会成为一个问题。

    要解决此问题、您可以考虑一些方法。 第一个是解决总线的 RC 特性、以减少显性到隐性的转换时间。 这可以通过降低总线电容(源极包括长电缆、多余的节点或包括去混电容器)或降低 CANH 和 CANL 之间的电阻值来实现(可以使用稍小的终端电阻器来实现这一目的。 请注意、负载不会变得太大、以至于任何一个节点都无法单独驱动有效的差分)。 第二种目标较低的方法是简单地减少总线上活动节点的数量。 这可能是更难实现的解决方案、因为它将包括识别未涉及的节点并从总线上删除(永久或临时)这些节点。 如果您的设计中不希望选择第一个选项、请告诉我您是否想了解有关如何完成第二个选项的更多信息。  

    我最初的建议是尽可能消除杂散总线电容、然后考虑降低端接电阻器的值。 如果这不起作用、请分享经测试的端接值和位置以及您所进行的任何总线电容测量。  

    如果您有任何其他问题、请告诉我。  

    此致、
    Eric

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

    您好 Lucas、

    感谢您的回答。

    1.如果添加的设备超过45个,则会出现“Bus Errors (总线错误)”。 但是、只要我添加五个以上的值、我就能够测量更高的电平。  

    2.

    3.没有有线总线 这是一个包含 PCB 的系统、它通过背板连接。

    谢谢!

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

    StefanG、

    端接看起来很好。 您只会终止 CAN 网络的端点、对吧? 并非每个节点都应终止。

    它看起来像是总线上电容中的敌人。 PCB 背板很可能在某种程度上造成这种情况。 此外、TVS 二极管还会增加一定的电容。 我在原理图上看不到器件型号、因此看不到它是否不合理地高。 我会检查它是否是。

    尊敬的、

    卢卡斯

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

    您好 Lucas、

    感谢您的回答。

    TVS 二极管在250MHz 时的额定电容约为60fF。 因此、这应该不是问题。 在最坏的情况下、它会增加大约4、2pF 的差分电容。

    今天我将进行一些测试、您将获得一些反馈。

    谢谢! :-)

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

    StefanG、

    让我知道测试是如何进行的。

    您还可以将端接电阻降低到能够克服总线上的杂散电容的点。 代价是总线负载较重、您很可能无法在网络上拥有大量节点。  

    尊敬的、

    卢卡斯

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

    StefanG、

    我一段时间没有听到你的声音。 希望您能够解决该问题。 我现在将此标记为已解决、但如果您有更多问题、请随时创建新主题。  

    尊敬的、

    卢卡斯

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

    尊敬的 Eric:

    抱歉、我的回答延迟了。  

    我已经测试了您和您的同事无法提供的可能解决方案。  

    1.降低电容
    我无法减少任何电缆、因为没有。 整个系统基于 PCB、并通过背板进行连接。

    2.降低端接电阻
    不幸的是、我未能尽可能减小电阻。 其主要原因是、我用相同的裕度降低了总线上的整个电平。 因此、这一点很有帮助、但没有我需要的那么多。 给出的例子有:50R、375R 和20R 端接电阻。  

    无额外电阻(60R)

     50R 时

    37、5R

    20R 时:

    另一个想法是提供给我的后言。 我应该使用一些串联的二极管来"切断"某个点的电压。 但这也不是成功的。  

    我接下来要做的是降低波特率、可能需要另一个不会将电压升高到指定值以上的收发器。  

    如果您对我如何解决这个问题有任何想法、我将不胜感激。

    您是否知道是否可以通过软件定义"应答特性"? (例如、如果 ID 不匹配、则不发送任何 ACK)

    非常感谢你们的支持:-)

    此致  

    Stefan

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

    您好 Lucas、

    您可能正好位于背板上。 我将进行检查。  

    TVS 二极管的额定 C 约为0.1pF。 我不认为,这会是一个问题。  

    谢谢! :-)

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

    StefanG、

    在这里、我只能想做几件事。

    降低数据速率可能会有所帮助、也可能是最简单的方法。

    另一个建议是使用 具有较低差分输入电容 C (ID)的 CAN 收发器。  这本质上是收发器本身向总线添加的电容。 一个具有较低 C (ID)的收发器是 ISO1044、但其封装与 ISO1042不同。  

    尊敬的、

    Lucas Schulte

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

    您好 Lucas、

    我通过将波特率降低到500k 来使系统工作。 总线负载现在在最大值以下非常高 应力条件(~55%)、但工作正常。

    非常感谢您的帮助。

    此致
    Stefan