Edit online

功能描述

16 Aug 2024
Read time: 2 minute(s)

WDOG 工作流程

WDOG 工作流程涉及以下参数和步骤:


1. WDOG 工作流程
  1. 计时器使能 (CNT_EN = 1) 并开始计时。计时以每个 32K 时钟周期为单位加一。

    使能计时器后,建议用户切换为写保护模式,具体配置可查看寄存器写保护功能

  2. 计时器达到清零阈值 (CNT > CLR_THD)。
    • 如系统运行正常,即可通过 CPU 执行 OP_CNT_CLR 对计时器进行清零。此时不会产生中断或者复位。

      关于 OP_CNT_CLR 的操作说明,可查看 功能描述

    • 如系统出现异常,无法通过 CPU 对计时器进行清零,则计时器继续计时:
      注: 为了最大化防止以下中断或复位情况中 WDOG 功能被关闭,可设置寄存器写保护功能
      1. 计时器先达到中断阈值 (CNT > IRQ_THD):计时器产生 CLR TIMEOUT_IRQ 中断,保存异常现场,该中断可被清除。
      2. 计时器达到复位阈值 (CNT > RST_THD):计时器产生复位,复位整个系统。

        如需系统强制复位,设置 RST_THD 的值为较小值(例如 32),并执行 OP_CNT_CLR 进行复位。

寄存器写保护功能

WDOG 具有寄存器写保护功能,针对异常状态下处理器的未知行为,以防止 WDOG 功能被关闭。寄存器写保护功能使能后,只有 OP 寄存器和 IRQ_STA 寄存器可被访问,只能执行 OP 指令和清中断操作。关于 OP 指令的详细说明,可查看 功能描述

寄存器写保护功能具有多种模式,可通过 REG_WR_DIS 位域进行配置,具体模式和配置说明如下:
注: 关于 REG_WR_DIS 的说明,可查看寄存器描述
  • 写允许 (REG_WR_DIS = 0):正常写寄存器,在 WDOG 初始化时使用。

    设置 CNT_EN = 1 后建议切换为写失效模式。

  • 写保护 (REG_WR_DIS = 1/2):在需要动态配置 WDOG 的方案中使用。

    配置此寄存器前需先执行 OP_WR_EN,寄存器配置完成后再配置 REG_WR_DIS = 1/2,可以保护异常下不被误写。

  • 写失效 (REG_WR_DIS = 3):在无需动态配置 WDOG 方案中使用。

    配置完成后设置 CNT_EN = 1 && REG_WR_DIS = 3,运行期间配置不再被改写。

如有多场景需求且无需进行动态配置参数,可在初始化时完成多个场景配置后,设置 REG_WR_DIS = 3,应用过程只需要进行场景切换。 场景切换详细描述见场景切换

场景切换

WDOG 是基于 CLR_THD、IRQ_THD 和 RST_THD 三个参数为一组配置工作的,每个参数各有四个参数寄存器,用 n 进行区分,n = 0 ~ 3,详情可查看对应的寄存器描述。通过设置参数寄存器,可组成不同的场景配置。WDOG 可支持保存最多四种组合场景,切换场景的 OP 指令分别为 OP_SW_CFG0、OP_SW_CFG1、OP_SW_CFG2 和 OP_SW_CFG3。

进行场景切换需要执行 OP 指令:
  1. 执行 OP_SW_CFGn (n=0~3) 切换到配置好的第 n 个场景。

    若只需要一种场景,为了最大化防止异常情况下误切换了场景,可以把四个场景配置为相同参数。

  2. 执行 OP_CNT_CLR 将计数器清零。

    新的一轮计数将按照新的场景参数运行。

关于 OP 指令的详细说明,可查看操作指令

操作指令

OP 寄存器是写失效下唯一可以进行写操作的寄存器, 通过连续两个写操作数与序列匹配,启动对应的指令。

现有支持指令如下表所示:

1. OP 指令定义
指令操作 指令名称 写操作数序列 备注
计时清零 OP_CNT_CLR 0xA1C55555 → 0xA1CAAAAA 需要满足 CNT > CLR_THD,操作才生效。
切换到配置 0 OP_SW_CFG0 0xA1C5A5A0 → 0xA1CA5A50 -
切换到配置 1 OP_SW_CFG1 0xA1C5A5A1 → 0xA1CA5A51 -
切换到配置 2 OP_SW_CFG2 0xA1C5A5A2 → 0xA1CA5A52 -
切换到配置 3 OP_SW_CFG3 0xA1C5A5A3 → 0xA1CA5A53 -
写使能 OP_WR_EN 0xA1C99999 → 0xA1C66666 在 REG_WR_DIS = 3 下无效。