Edit online

运行模式

3 Mar 2025
Read time: 2 minute(s)
控制器包含四种运行模式:
  • 单发模式:Transmission Primary Single Shot (TPSS) 或者 Transmission Secondary Single Shot mode(TSSS)

    对于信息发送,有时只需要单次发送,可以通过置位 TPSS (用于 PTB)或者置位 TSSS (用于 STB)实现。

    当传输不成功时,将发生以下情况:

    • 若 TPIE = 1,则 TPIF 被置位,相应的发送缓冲器数据被清除。
    • 若发生错误,KOER 和错误计数器相应更新。同时,若 BEIE = 1,则 BEIF 被置位,其它错误中断标志将相应地起作用。
    • 在仲裁丢失的情况下,若 ALIE = 1,则 ALIF 被置位。
    • 如果总线被另一个帧占用,则 CANFD 控制器等待直到总线空闲再尝试单发模式传输数据。
    注: 如果单发模式与 TSALL 一起使用并且 STB 中有一个以上的帧信息,则对每个帧信息进行一次单发传输,CANFD 控制器会前进到下一帧并在 STB 为空时停止。
  • 监听模式:Listen Only Mode

    监听模式在不对总线产生任何影响的情况下监控 CAN 总线,CANFD 控制器的监听模式与 CANFD 规范中定义的总线监控功能兼容。监听模式可以用于自动比特率检测,能监视错误 (KOER、BEIF)。

    监听模式有以下特点:

    • 控制器无法将显性位写入总线,也不生成显性 ACK 响应,只生成隐性错误标志。
    • 无论发生任何错误情况,错误计数器都保持不变。
    • 若接收到的帧信息 ACK 错误后存在主动或被动错误标志,则监听模式下的控制器节点能够检测为 ACK 错误。
    注: 应用监听模式过程中,需要注意:
    • 当传输处于活动状态时,不应激活监听模式。
    • 如果启用监听模式,则无法启动传输操作。
    • 外部回环模式 (LBME) 对监听模式的行为起着重要作用:
      • 如果禁用 LBME,则监听模式下节点不作任何传输操作,无法将任何显性位写入总线。
      • 如果使能 LBME,则允许节点传输帧。LBME 只允许传输包含可选 ACK 响应 (SACK) 的帧,但节点不会对来自其它节点的帧作出 ACK 响应,也不会生成错误或过载帧。
  • 回环模式:Loop Back Mode
    CANFD 控制器支持两种回环模式,用于系统自测:
    • 内部回环模式 LBMI:CANFD 控制器与 CAN 总线断开连接,CANFD_TX 输出设置为隐性。输出数据流在内部反馈到输入。
      注: 在 LBMI 模式下,节点生成 ACK 确认,以避免 ACK 错误。
    • 外部回环模式 LBME:CANFD 控制器可以通过以下两种方式获取自己发送出去的帧信息。
      1. 只需要短接控制器引出的 CANFD_TX 和 CANFD_RX 引脚,不需要外部收发器。
      2. 通过 CANFD_TX 和 CANFD_RX 引脚连接外部收发器芯片,收发器将 CANFD_TX 送过来的信号通过 CANFD_RX 回送给控制器。
        • 如果 SACK = 0,则不产生 ACK 确认,帧传输时会出现以下两种可能的结果,另一个节点也收到帧并生成 ACK:
          • 传输和接收均成功。
          • 没有其它节点连接到总线,导致 ACK 错误。
        • 如果 SACK = 1,产生 ACK 确认,没有其它节点连接到总线,导致 ACK 错误。
  • 休眠模式:Standby Mode

    无总线活动,控制外部 Transceiver 收发器进入低功耗模式。

    使用寄存器位 STBY 驱动输出 CANFD_STB 引脚信号,可用于控制外部收发器的待机模式。
    • 传输激活(TPE、TSONE 或 TSALL 已置位)和休眠模式 (置位 STBY ),只能二选一。
    • 如果置位 STBY,收发器进入休眠模式。收发器无法全速接收帧,但会监控 CAN 总线的显性状态。
      • 如果显性状态在收发器数据表中定义的时间内处于活动状态,则收发器会将 CANFD_RX 信号拉低。
      • 如果 CANFD_RX 为低 CANFD 控制器自动将 STBY 清零,禁用收发器的休眠模式。操作过程不会中断 CANFD 控制器。
    收发器从休眠模式切换到工作模式需要时间,过程中无法成功接收初始唤醒帧。因此,最近处于待机状态的节点将不回应 ACK 响应。
    • 如果总线上没有 CAN 节点使用 ACK 响应唤醒帧,则会导致唤醒帧的发送节点出现 ACK 错误。此时,发送节点将自动重复帧发送。
    • 重复帧发送期间,收发器将回到工作模式,CANFD 控制器将接收帧并回以 ACK 响应。STBY 不受位 RESET 的影响。
    • 一个节点发送一个帧用于唤醒。如果所有其它节点都处于待机模式,则发送节点收到 ACK 错误并将自动重复该帧。