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.

[参考译文] TMS570LS0714:在进行 RTR 干扰时、TMS570 CAN 总线#39;t ENTER 至 BUSOFF

Guru**** 2614265 points
Other Parts Discussed in Thread: TMS570LS0714, TMS320F28035

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/758506/tms570ls0714-tms570-can-bus-can-t-enter-to-busoff-when-doing-the-rtr-interference

主题中讨论的其他器件:TMS570LS0714TMS320F28035

大家好、

客户正在测试 TMS570LS0714上的 BUSOFF 功能、但他们发现、如果他们使用 设备来干扰 CAN 消息的 CRC 位、TMS570 CAN 模块可以进入脱离总线状态、然后 正常恢复。 但是、如果它们干扰 RTR 位、CAN 模块就不能进入脱离总线状态。  有人要评论吗? 非常感谢。

1. CAN 配置:

2、干扰 CRC 位、可进入总线关闭、并在1秒后恢复:

3.干扰 RTR 位、CAN 总线上有错误帧、但 TMS570不能进入脱离总线状态:

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

    由于美国假日、在这一特定的 E2E 主题中、我们的响应可能会延迟到2019年1月2日这一周。

    最热烈的祝愿,祝大家假期愉快,新年快乐!

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

    为了监控总线运行状况、CAN 控制器有两个计数器、称为发送和接收错误计数器。 根据 CAN 标准指定的一组规则、它们从零开始、并且递增(发生错误时)和递减(每当控制器成功执行 TX/Rx 时)。

    这些计数器的值影响控制器的错误处理模式(错误激活与错误被动)。 当发送错误计数器的值超过255时、转换到总线关闭状态。 是否检查计数器中的值?

    为什么客户使用 RTR 来创建 CAN 总线关闭? 我不确定 RTR 是否会导致总线关闭。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 QJ、

    节日快乐! 非常感谢您的快速响应、即使在您的假期也是如此。

    他们的终端客户需要使用 RTR 测试总线关闭功能。 由于它们使用 相同的方法在 F28035上测试了 RTR 和 CRC、因此器件可以正常进入总线关闭。 他们假设 RTR 和 CRC 也可在 TMS570上使用以导致总线关闭。 那么、您能否帮助仔细检查 RTR 是否会导致 TMS570上的总线关闭?

    非常感谢。

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

    尊敬的 David:

    为了检测损坏的消息、CAN 协议定义了五种机制:位监控(位0错误、位1错误)、消息格式监控(表单检查)、位编码监控(填充检查)、确认评估(ACK 检查)和校验和验证(循环冗余检查)。

    每个 CAN 控制器都有一个 TEC (发送错误计数器)和一个 REC (接收错误计数器)。 如果数据帧或远程帧传输成功、相关的错误计数器将递减(TEC=TEC-1;REC=REC-1)。 检测和随后发送错误标志会导致相应的错误计数器根据特定规则递增。 对于发件人,适用以下规则:TEC=TEC+8。 错误检测接收器最初将其 REC 增加一个单元(REC=REC+1)。 对于导致接收器的错误:REC=REC+8。

    我不知道如何通过干扰 RTR 位来生成这些误差。 如果 RTR (远程传输请求)为隐性状态、则为远程帧。 如果 RTR 为显性状态、则为数据帧。 您能否提供有关如何生成错误的更多详细信息?  

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

    您好 QJ、

    客户进行了测试、将 TEC 和 REC 最大错误计数器寄存器(DCAN ERRC)存储到 CAN 消息字节4和字节5中、如下所示。

    1、当它们干扰 CRC 时、TEC 最大值为0xFB、REC 最大值为0x77、当0xf8+8 = 0x100时、CAN 总线进入 BUSOFF 状态。

    但是 RTR 干扰结果如下、TEC 只能计数 到0x80、所以 CAN 总线根本不能进入 BUSOFF 状态。

     

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

    如何干扰 RTR:干扰请求的数据帧? 或干扰 RTR 位? 或干扰远程帧的任何位?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 QJ、
    客户使用专业 CAN 测试工具(CANesterDR)、由引导程序生成。 它会干扰 CAN 帧的任何位。 查看下面的另一张图片、灰色表示正常 CAN 波形、黄色表示干扰后的错误波形。


    使用 TMS320F28035时、干扰波形如下所示。 32次干扰后、28035进入 BUSOFF 状态。



    使用 TMS570LS0714时、RTR 干扰行为如下所示:


    它在发出干扰后无法识别 CAN 总线中的位错误、因此无法进入 BUSOFF 状态。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于 RTR 位在 CAN 数据帧中始终处于显性状态、因此当一个或多个具有相同 CAN-ID 的 CAN 远程帧同时发送时、CAN 数据帧将赢得总线仲裁。 通常情况下、CAN 远程帧不用于维修数据对象、紧急情况和安全相关数据。

    CAN 数据链路层标准(ISO 11898-1)未指定 CAN 远程帧的实现方式。

    数据帧和远程帧之间有两种差异。
    1. RTR = 0;在数据帧中占主导地位
    Rtr = 1;远程帧中的隐性状态

    DLC 字段:数据帧中已发送消息的数据长度
    DLC 字段:远程帧中请求的消息的数据长度

    如果通过干扰将 RTR 更改为1、则数据帧变为远程帧。 基于 ISO 11898-1、它不必生成错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 David:

    数据帧: ID--RTR--控制位(IDE、R0、DLC)--数据--CRC -- ACK
    远程帧: ID--RTR--控制位(IDE、R0、DLC)-- CRC -- ACK

    在干扰 RTR 位之后、RTR 位从显性更改为隐性。 CAN 帧从数据帧更改为远程帧。 您将得到 CRC 错误、形式错误。 错误应出现在数据字段的第1位。 我不知道为什么在 F28035器件的 DLC 字段发生错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    与 FAE 和离线客户一起处理此问题。