會以 WD_STAT_WA 寄存器中 TOKEN[3:0] 和 ANSW_CNT[1:0] 狀態位的組合形式向 MCU 提出問題。ANSW_CNT[1:0] 的默認值為 ANSW_CNT[1:0] = 11b,當問題得到正確回答時,該值會遞減。當問題回答不正確或良好事件結束時,ANSW_CNT[1:0] 的值會復位為 ANSW_CNT[1:0] = 11b。
看門狗使用令牌計數器(圖 7-12 中的 TOKEN_CNT[3:0] 位)和線性反饋移位寄存器 (LFSR) 生成 4 位 TOKEN[3:0]。如圖 7-12 所示,可以使用 BANK1 中 WDT_QA_CFG 寄存器中的 POLY[1:0] 配置 LFSR 架構。在典型應用中,無需更改 POLY[1:0] 的默認值 00b。然而,如果需要不同的 LFSR 架構,可以配置 POLY[1:0]。圖 7-11 中的示意圖表明看門狗如何生成問題。
在看門狗啟動狀態期間,LFSR 用初始值 SEED[3:0] 設置,該值位于 BANK1 的 WDT_QA_CFG 寄存器中。SEED[3:0] 的默認值為 0000b。
在良好事件結束時,令牌計數器會遞增,由于圖 7-12 中所示的多路復用器和邏輯組合,token[3:0] 的值發生變化。
一旦令牌計數器達到最大值 1111b,該計數器會復位并向 LFSR 提供一個時鐘脈沖。時鐘脈沖將存儲在 LFSR 中的值左移,這會更改 TOKEN[3:0] 的值。在 SEED[3:0] = 0000b 的特殊情況下,LFSR 的位 0 在令牌計數器首次復位時遞增。隨后的令牌計數器復位提供左移 LFSR 的典型時鐘脈沖。如圖 7-12 中所列,左移時,種子周期的值在 1 到 15 之間循環。
可以使用 FDBK[1:0](BANK1 中的 WDT_QA_CFG 寄存器)來配置生成 TOKEN[3:0] 的多路復用器器件。無需更改 FDBK[1:0] 的默認值 00b,需要重點注意的是,更改 FDBK[1:0] 也會改變計算參考應答所需的邏輯公式。下面列出了不同的參考應答邏輯公式:
對于 FDBK[1:0] = 00b:
- 參考應答[0] = TOKEN[0] XOR (TOKEN[3] XOR ANSW_CNT[1])
- 參考應答[1] = TOKEN[0] XOR (TOKEN[1] XOR TOKEN[2]) XOR ANSW_CNT[1]
- 參考應答[2] = TOKEN[0] XOR (TOKEN[3] XOR TOKEN[1]) XOR ANSW_CNT[1]
- 參考應答[3] = TOKEN[2] XOR (TOKEN[0] XOR TOKEN[3]) XOR ANSW_CNT[1]
- 參考應答[4] = TOKEN[1] XOR ANSW_CNT[0]
- 參考應答[5] = TOKEN[3] XOR ANSW_CNT[0]
- 參考應答[6] = TOKEN[0] XOR ANSW_CNT[0]
- 參考應答[7] = TOKEN[2] XOR ANSW_CNT[0]
對于 FDBK[1:0] = 01b:
- 參考應答[0] = TOKEN[1] XOR (TOKEN[2] XOR ANSW_CNT[1])
- 參考應答[1] = TOKEN[1] XOR (TOKEN[1] XOR TOKEN[1]) XOR ANSW_CNT[1]
- 參考應答[2] = TOKEN[3] XOR (TOKEN[2] XOR TOKEN[1]) XOR ANSW_CNT[1]
- 參考應答[3] = TOKEN[1] XOR (TOKEN[3] XOR TOKEN[3]) XOR ANSW_CNT[1]
- 參考應答[4] = TOKEN[0] XOR ANSW_CNT[0]
- 參考應答[5] = TOKEN[2] XOR ANSW_CNT[0]
- 參考應答[6] = TOKEN[3] XOR ANSW_CNT[0]
- 參考應答[7] = TOKEN[1] XOR ANSW_CNT[0]
對于 FDBK[1:0] = 10b:
- 參考應答[0] = TOKEN[2] XOR (TOKEN[1] XOR ANSW_CNT[1])
- 參考應答[1] = TOKEN[2] XOR (TOKEN[0] XOR TOKEN[1]) XOR ANSW_CNT[1]
- 參考應答[2] = TOKEN[1] XOR (TOKEN[1] XOR TOKEN[1]) XOR ANSW_CNT[1]
- 參考應答[3] = TOKEN[0] XOR (TOKEN[2] XOR TOKEN[3]) XOR ANSW_CNT[1]
- 參考應答[4] = TOKEN[2] XOR ANSW_CNT[0]
- 參考應答[5] = TOKEN[1] XOR ANSW_CNT[0]
- 參考應答[6] = TOKEN[2] XOR ANSW_CNT[0]
- 參考應答[7] = TOKEN[0] XOR ANSW_CNT[0]
對于 FDBK[1:0] = 11b
- 參考應答[0] = TOKEN[3] XOR (TOKEN[0] XOR ANSW_CNT[1])
- 參考應答[1] = TOKEN[3] XOR (TOKEN[3] XOR TOKEN[1]) XOR ANSW_CNT[1]
- 參考應答[2] = TOKEN[1] XOR (TOKEN[0] XOR TOKEN[1]) XOR ANSW_CNT[1]
- 參考應答[3] = TOKEN[3] XOR (TOKEN[1] XOR TOKEN[3]) XOR ANSW_CNT[1]
- 參考應答[4] = TOKEN[3] XOR ANSW_CNT[0]
- 參考應答[5] = TOKEN[0] XOR ANSW_CNT[0]
- 參考應答[6] = TOKEN[1] XOR ANSW_CNT[0]
- 參考應答[7] = TOKEN[3] XOR ANSW_CNT[0]
圖 7-13 中包含 FDBK[1:0] = 00b 時的應答計算示例代碼。
圖 7-13 FDBK[1:0] = 00b 時的看門狗應答計算代碼