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