看門狗是綜合系統(tǒng)的重要組成部分,必須充分理解才能充分利用其功能。大多數(shù)看門狗都是有窗口的,這需要比非窗口看門狗更精確的計時,但允許更大的功能。設(shè)計人員可以使用窗口看門狗來實現(xiàn)上電擴展開窗、鎖存功能和可編程保持時間等功能。
介紹
本應(yīng)用筆記描述了MAX20478和MAX20480系列產(chǎn)品中窗口看門狗的工作原理。這些看門狗具有可編程擴展窗口、可編程 RESETx 保持時間、單個或連續(xù)看門狗故障斷言以及 RESETx 鎖存功能。本應(yīng)用筆記提供了對看門狗及其功能的更全面的了解。
看門狗操作基礎(chǔ)知識
看門狗是系統(tǒng)中用于確保片上系統(tǒng) (SoC) 設(shè)備或微控制器 (MCU) 正常運行的功能。這可能意味著檢測到陷入無限循環(huán)、執(zhí)行任務(wù)時間過長甚至完全關(guān)閉的 SoC。在系統(tǒng)中使用看門狗要求 SoC 定期向看門狗發(fā)送信號,此步驟稱為服務(wù)/刷新。一旦 SoC 為監(jiān)視器提供服務(wù),監(jiān)視器就會確認(rèn) SoC 的正常運行,然后開始一個新的周期,在該周期中,它等待來自 SoC 的另一個服務(wù)命令。如果 SoC 在監(jiān)視器設(shè)置的持續(xù)時間內(nèi)未為監(jiān)視器提供服務(wù),則會斷言故障。此操作描述了一個非窗口看門狗,本應(yīng)用筆記將不涉及該看門狗。窗口監(jiān)視器以非常相似的方式運行,但具有一個服務(wù)周期,該周期分為“關(guān)閉”和“打開”持續(xù)時間,稱為窗口。這需要對有效服務(wù)進行更精確的計時,因為服務(wù)僅在窗口周期中的特定時間有效。
這些窗口的持續(xù)時間由IC看門狗時鐘定義。看門狗時鐘源自IC系統(tǒng)時鐘,通常從系統(tǒng)時鐘的1/32開始,通常為1.28MHz。某些器件具有可編程的WDIV場,允許對該時鐘進行更多劃分,以允許更長的窗口時間。在以下示例中,看門狗周期為200μs,所用公式特定于MAX20478(圖1)。
圖1.根據(jù)MAX20478看門狗公式的閉合和開窗長度組合示例
監(jiān)視程序周期的 OPEN 窗口期間的監(jiān)視器服務(wù)被視為有效服務(wù)。有效服務(wù)后,無論打開窗口中剩余的時間如何,OPEN 窗口都將立即轉(zhuǎn)換為關(guān)閉窗口。圖 2 顯示了一個有效看門狗周期的示例。
圖2.打開窗口期間有效的監(jiān)視器刷新。緊隨其后的是新的關(guān)閉和開放。
在監(jiān)視器周期的 CLOSED 窗口中來自 SoC 的監(jiān)視器服務(wù)將被監(jiān)視器解釋為故障。如果在“關(guān)閉”和“打開”窗口都經(jīng)過時沒有服務(wù)發(fā)生,則監(jiān)視器將斷言故障。要了解關(guān)閉窗口如何在窗口監(jiān)視程序中運行,必須首先探索擴展窗口。
擴展窗口
在大多數(shù)系統(tǒng)中,SoC 和 MCU 需要額外的時間來上電或執(zhí)行除維護看門狗之外的其他更重要的任務(wù)。因此,系統(tǒng)可能會使具有“關(guān)閉”和“打開”窗口的正常窗口監(jiān)視程序框架失敗。為了解決這個問題,ADI產(chǎn)品具有擴展窗口。這些窗口在首次開機時和每次 RESETx 斷言之后發(fā)生,并作為 OPEN 窗口運行,在該窗口期間的任何時間,服務(wù)都被視為有效。
在正常操作期間,如果 OPEN 窗口中有有效的監(jiān)視程序服務(wù),監(jiān)視器將在有效刷新后立即啟動新的循環(huán)。這意味著一個新的關(guān)閉窗口,然后是一個打開窗口。在具有擴展窗口的監(jiān)視器中,如果發(fā)生任何故障,監(jiān)視器將立即停止當(dāng)前所在的任何窗口,并在 RESETx 保持時間過后啟動新的擴展窗口。此擴展窗口沒有 CLOSED 持續(xù)時間,并將接受任何監(jiān)視程序服務(wù)在窗口持續(xù)時間內(nèi)有效。如果監(jiān)視程序在此窗口中提供服務(wù),則擴展窗口將立即停止,并遵循正常的關(guān)閉/打開循環(huán)。如果未在擴展窗口中為監(jiān)視器提供服務(wù),RESETx 將斷言保持時間,隨后將出現(xiàn)另一個擴展窗口。重復(fù)此操作,直到為監(jiān)視器提供服務(wù)。
圖 3 和圖 4 顯示了無效刷新的兩種潛在計時情況。
圖3.RESETx 將立即斷言 WD 是否在 CLO 窗口期間刷新。EXT 窗口將在 RESETx 取消斷言后啟動。擴展窗口繼續(xù)重復(fù),直到為監(jiān)視器提供服務(wù)。
圖4.如果監(jiān)視器未刷新,RESETx 將在 OPN 窗口結(jié)束后立即斷言。RESETx 取消斷言后將啟動一個新的 EXT 窗口。EXT 窗口將繼續(xù)重復(fù),直到刷新監(jiān)視器。
可變復(fù)位x 保持時間
系統(tǒng)在為監(jiān)視器提供服務(wù)失敗后進入中斷過程是很常見的。這些中斷例程可能需要幾毫秒才能完成,SoC 或 MCU 才能再次刷新看門狗。這可能會導(dǎo)致監(jiān)視器再次斷言 RESETx,并可能重復(fù)進入中斷例程。此問題可以通過更改 RESETx 保持時間的持續(xù)時間以允許 SoC 或 MCU 完成中斷例程來解決。可變RESETx保持時間功能將在發(fā)生故障后將IC的RESETx引腳保持低電平一段時間。如果發(fā)生故障,看門狗將立即停止其所在的窗口,并在由保持時間確定的設(shè)定持續(xù)時間內(nèi)置位IC的RESETx引腳。一旦RESETx取消斷言,看門狗將恢復(fù)正常運行,SoC或MCU可以為看門狗提供服務(wù)。在圖 3 和圖 4 中,省略了 RESETx 保持時間長度以簡化圖表。圖 5 和圖 6 描述了兩種不同的 RESETx 保持時間。
圖5.RESETx 保持時間的持續(xù)時間是可編程的。ADI器件具有多個設(shè)定的持續(xù)時間,在制造器件時進行編程。請參考ADI IC數(shù)據(jù)手冊,了解RESETx保持時間的確切信息。
圖6.在此圖中,RESETx 保持時間的持續(xù)時間設(shè)置為 8 毫秒。請參考ADI IC數(shù)據(jù)手冊,了解RESETx保持時間的確切信息。
單/連續(xù)WD故障計數(shù)器
在某些實現(xiàn)監(jiān)視器的系統(tǒng)中,RESETx 斷言不一定構(gòu)成系統(tǒng)問題。即使系統(tǒng)運行正常,系統(tǒng)中也可能會出現(xiàn)錯誤的 RESETx 斷言。為解決這一問題,ADI看門狗具有看門狗故障計數(shù)器,允許在單個或雙看門狗故障上發(fā)生RESETx斷言。
如果選擇了單個故障計數(shù)器選項,則只需要一個監(jiān)視器故障(無服務(wù)、CLO 窗口期間的服務(wù)等)即可斷言 RESETx。如果選擇雙故障選項,則第一個看門狗故障將增加看門狗故障計數(shù)器,第二個故障將置位RESETx。要在一次看門狗故障后重置故障計數(shù)器,需要連續(xù)兩次有效服務(wù)看門狗。圖 7 到 10 對此進行了描述。
圖7.如果在 CLO 窗口期間刷新 WD,RESETx 計數(shù)器將增加到 2。在下一個 OPN 窗口結(jié)束后不刷新會將計數(shù)器增加到 0。這會導(dǎo)致 RESETx 斷言,RESETx 取消斷言后將啟動 EXT 窗口,并且故障計數(shù)器 RESETx 為 <>。RESETx 在 EXT 窗口或 OPN 窗口期間未刷新后再次斷言。
圖8.如果在第一個 OPN 窗口期間未刷新監(jiān)視器,則 RESETx 計數(shù)器將增加到 1。將出現(xiàn)另一個正常的 CLO 和 OPEN。如果沒有刷新,RESETx 計數(shù)器將達到 2 并斷言。
圖9.第一個 OPN 窗口后不刷新會將故障計數(shù)器增加到 1。下一幀刷新,但故障計數(shù)器仍為 1。下一個 OPN 窗口未收到刷新,因此計數(shù)器增加到 2。斷言錯誤,EXT 窗口在 RESETx 取消斷言后啟動。
圖 10.No 第一個 OPN 將故障計數(shù)器增加到 1 后的刷新。下一幀刷新,但計數(shù)器仍為 1。第三個窗口也接收刷新,因此計數(shù)器被清除為 0。接下來的兩個幀不會收到刷新,因此計數(shù)器達到 2,EXT 窗口遵循取消斷言。
復(fù)位x鎖存功能
ADI看門狗的另一個特性是能夠鎖存RESETx斷言。如果系統(tǒng)發(fā)現(xiàn)故障情況的時間超過可能的最長 RESETx 保持時間,則繼續(xù)保持 RESETx 直到故障條件消除可能是有益的。例如,如果 SoC 無法為監(jiān)視器提供服務(wù),則正常的 RESETx 保持時間將意味著 RESETx 將在延長窗口的持續(xù)時間內(nèi)取消斷言,然后在保留持續(xù)時間內(nèi)斷言。這意味著RESETx信號將在斷言和取消斷言之間切換。使用 RESETx 鎖存器功能,此示例中的 RESETx 信號將保持置位狀態(tài),直到 SoC 重新獲得為看門狗提供服務(wù)的能力。此功能也可用作其他信號的啟用/禁用。例如,如果檢測到故障,看門狗鎖存功能可用于禁用所有CAN總線通信。當(dāng)SoC解決系統(tǒng)故障時,CAN總線上的所有通信都將停止。
如果看門狗尚未完成首次上電,則 SoC 只需要一個有效服務(wù)即可解除鎖存的 RESETx 信號。上電后,無論是否使用連續(xù)故障計數(shù)器功能,SoC 都需要兩個連續(xù)的有效服務(wù)來解除鎖存的 RESETx 信號。圖 11 對此進行了描述。
圖 11.上面的示例顯示看門狗RESETx信號將鎖存,直到再次維護看門狗。它顯示由于在關(guān)閉的窗口期間刷新而導(dǎo)致的錯誤,但對于任何 RESETx 錯誤都是如此。RESETx 保持時間的持續(xù)時間實際上是 SoC 正確維護監(jiān)視器所需的時間。正常的 CLO/OPN 窗口在復(fù)位鎖存期間出現(xiàn)。
質(zhì)詢/響應(yīng)看門狗
某些ADI看門狗的另一個特點是能夠使用質(zhì)詢/響應(yīng)通過I2C.在某些系統(tǒng)中,僅僅要求SoC發(fā)送脈沖是不夠的。要求 SoC 執(zhí)行任務(wù)或計算以確保 SoC 完全正常運行可能是有益的。這就是質(zhì)詢/響應(yīng)看門狗可以滿足此要求的地方。在質(zhì)詢/響應(yīng)服務(wù)中,IC中有一個鍵值寄存器,SoC必須讀取該寄存器。讀取寄存器后,SoC 必須使用此值來計算相應(yīng)的響應(yīng)。然后,該響應(yīng)通過I發(fā)送回IC2C. 使用正確的響應(yīng)更新寄存器后,監(jiān)視程序已得到維護。看門狗的操作方式與窗口設(shè)置中的操作方式相同,唯一的變化是更新密鑰寄存器,而不是使用上升沿刷新看門狗。該 IC 包含一個線性反饋移位寄存器,多項式為 x8+x6+x5+x4+1。這會將所有位向上移向 MSb,并將計算出的位作為新的 LSb 插入。SoC必須以這種方式計算響應(yīng),并將其發(fā)送回IC中的寄存器。圖 12 對此進行了描述。
圖 12.質(zhì)詢/響應(yīng)看門狗的時間與窗口看門狗非常相似。密鑰寄存器由 SoC 通過 I 讀取2C 并且只需要出現(xiàn)一次。一旦SoC讀取了密鑰寄存器,就會使用前一個值計算下一個值。計算響應(yīng),然后寫回IC中的寄存器。在下一個時鐘沿,答案得到確認(rèn),并立即啟動一個新的 CLO/OPN 窗口。
表1顯示了一個特性列表,其中包含多個包含看門狗的ADI IC。ADI公司為那些想要了解更多信息的人提供了幾種設(shè)計計算器。請聯(lián)系A(chǔ)DI公司,獲取更多技術(shù)資料以及所列任何器件的數(shù)據(jù)手冊。
部件號 | ASIL 評級 | 可編程復(fù)位保持時間 | 擴展窗口 | 復(fù)位閂鎖 | 挑戰(zhàn)/回應(yīng) | 我2C 能力 |
MAX20478 | ASIL-D | x | x | x | ||
MAX20480 | ASIL-D | x | x | x | x |
結(jié)論
隨著窗口看門狗變得越來越普遍,對其操作有一個基本的了解非常重要。本應(yīng)用筆記介紹了窗口看門狗的幾個特性,供讀者了解MAX20478和MAX20480產(chǎn)品系列的一般知識。這些功能包括可編程擴展窗口、可編程 RESETx 保持時間、單個或連續(xù)看門狗故障斷言以及 RESETx 鎖存功能。借助這些功能,設(shè)計師可以更自由地將更復(fù)雜的設(shè)計整合到他們的項目中。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7496瀏覽量
151083 -
看門狗
+關(guān)注
關(guān)注
10文章
559瀏覽量
70754 -
soc
+關(guān)注
關(guān)注
38文章
4124瀏覽量
217964
發(fā)布評論請先 登錄
相關(guān)推薦
評論