【问题标题】:CAN Network With Single Node (CAN protocol)单节点 CAN 网络(CAN 协议)
【发布时间】:2023-03-07 19:41:01
【问题描述】:

我是 CAN 协议的新手,正在阅读 Robert Bosch 的 CAN 规范 ver2.0 Part B。我无法理解第 63 页的以下几行

" 注意: 启动/唤醒: 如果在启动过程中只有一个节点在线,并且如果该节点发送了一些消息,它将得不到确认,检测到错误并重复该消息。由于这个原因,它可能会变成“错误被动”,但不会变成“总线关闭”。”

据我了解,当发送器检测到错误(如确认错误)时,它会重新发送消息并将发送错误计数 (TEC) 增加 8。因此,如果只有一个节点,则其 TEC 应增加 8每次它传输一条消息并且一旦 TEC 超过 255 就应该进入“总线关闭”状态。

有人能解释一下为什么规范说它只能“错误被动”而不是“总线关闭”吗?

【问题讨论】:

    标签: can-bus


    【解决方案1】:

    我认为您错过了规范的这一部分:

    “例外一:

    如果 TRANSMITTER 是“被动错误”并且由于未检测到“显性”ACK 而检测到 ACKNOWLEDGMENT ERROR,并且在发送其被动错误标志时未检测到“显性”位。 "

    在这种情况下,TEC没有改变!

    因此,在您的情况下,当网络中唯一的节点每次都重新传输并且 TEC 变为 >= 128 时,它变为“错误被动”。那么上面的异常情况就生效了! TEC不再改变!因此没有“巴士关闭”。

    【讨论】:

      【解决方案2】:

      是的,这是正确的,就像 Tx ECU 没有从 CAN 网络中的任何 ECU 接收到任何 ACK 一样,那么它将保持错误被动状态。 因为当 CAN 网络中有多个系统可用并且网络中没有可用的 ECU 时,网络协议需要,那么这并不意味着 ECU 有问题,因此与其进入 CAN 总线关闭状态,不如保持在错误被动状态。 要了解更多关于CAN错误的信息,您可以点击以下链接:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-17
        • 1970-01-01
        • 2021-03-17
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 2015-10-19
        • 1970-01-01
        相关资源
        最近更新 更多