看門狗計時器用于監(jiān)視和最小化代碼執(zhí)行錯誤。內(nèi)部看門狗定時器容易受到代碼執(zhí)行問題的影響,使得外部看門狗電路在防止系統(tǒng)鎖定方面非常寶貴。
本文檔有助于為不同類型的應(yīng)用選擇正確的看門狗/監(jiān)控產(chǎn)品時間,以及如何在沒有軟件代碼的情況下應(yīng)用電路。
以前使用專用硬件實現(xiàn)的許多電路功能現(xiàn)在都在軟件中實現(xiàn),部分原因是當(dāng)今低成本微處理器(μP)的廣泛選擇。雖然軟件通常是解決問題的成本最低、最靈活的方法,但它迫使設(shè)計人員采取額外措施來確保系統(tǒng)可靠性。雖然沒有代碼錯誤的程序,但仔細的測試可以將錯誤數(shù)量減少到每 1000 行代碼 10 到 10 個。因此,設(shè)計人員必須期望在具有 000,<> 行代碼的典型控制軟件程序中至少出現(xiàn) <> 個代碼錯誤。
導(dǎo)致系統(tǒng)崩潰的桌面應(yīng)用程序軟件錯誤并不嚴(yán)重,因為用戶可以重新啟動系統(tǒng),而只有輕微的數(shù)據(jù)丟失。但是,對于工業(yè)控制軟件,系統(tǒng)必須能夠在沒有人為干預(yù)的情況下從代碼錯誤中恢復(fù)。此功能對于兩個主要類別至關(guān)重要:具有高可用性的系統(tǒng),例如服務(wù)器、電話系統(tǒng)和生產(chǎn)線;以及必須高度可靠的系統(tǒng),因為碰撞可能導(dǎo)致受傷,例如汽車、醫(yī)療器械、工業(yè)控制、機器人和自動門。即使這些標(biāo)準(zhǔn)都不適用,也最好在沒有用戶干預(yù)(按復(fù)位或電源循環(huán))的情況下進行系統(tǒng)崩潰/恢復(fù)。如果設(shè)備在沒有人為干預(yù)的情況下從錯誤中恢復(fù),則此設(shè)備的感知質(zhì)量良好,因為用戶不知道設(shè)備內(nèi)部出了問題。實現(xiàn)這種改進的系統(tǒng)可靠性的一種簡單有效的方法是使用看門狗。
看門狗
監(jiān)視器是必須在監(jiān)視器超時期限內(nèi)清除的計數(shù)器。如果未進行清除,監(jiān)視器將生成重置以導(dǎo)致系統(tǒng)重新啟動或創(chuàng)建不可屏蔽中斷 (NMI),從而導(dǎo)致程序分支進入故障恢復(fù)子例程。大多數(shù)看門狗都是邊緣觸發(fā)的。因此,看門狗輸入 (WDI) 上的上升沿或下降沿將清除計數(shù)器。WDI 引腳連接到處理器 I/O 引腳,該引腳由軟件切換(圖 1)。
圖1.微處理器通過WDI引腳上的脈沖清除看門狗定時器,以防止復(fù)位。
清除看門狗計數(shù)器的命令必須發(fā)生在主程序循環(huán)中(圖2)。如果未清除監(jiān)視程序,則進行重置,軟件分支到地址 0000(啟動例程)。計算執(zhí)行主循環(huán)所需的時間通常很困難,因為可能會調(diào)用許多子例程,具體取決于系統(tǒng)的輸入。因此,設(shè)計人員通常選擇比最長測量或計算的環(huán)路時間長得多的看門狗超時。
圖2.該圖顯示了在主循環(huán)中生成WDI信號的典型程序流程。
圖3顯示了正常操作時的看門狗和復(fù)位信號(看門狗在超時期限內(nèi)清除)。在圖4中,看門狗計數(shù)器達到超時后生成復(fù)位。行業(yè)標(biāo)準(zhǔn)看門狗電路的超時范圍為100ms至2s,盡管有可調(diào)和定制的看門狗覆蓋更寬的范圍(30ms至分鐘)。如果主環(huán)路的執(zhí)行時間對于看門狗來說太長,設(shè)計人員可以在主環(huán)路的不同部分實現(xiàn)多個看門狗切換命令,或使用超時更長的設(shè)備。
圖3.如果WDI引腳始終在看門狗超時內(nèi)切換,則不會生成復(fù)位。
圖4.一旦看門狗計數(shù)器達到超時值,就會生成復(fù)位。
防止系統(tǒng)卡在寄生環(huán)路中的一種技術(shù)是在主環(huán)路開始時將相關(guān)I/O引腳設(shè)置為高電平,并在主環(huán)路的另一部分將其設(shè)置為低電平。如果軟件在主環(huán)路開始時卡在寄生環(huán)路中,則看門狗超時,系統(tǒng)恢復(fù),因為WDI保持高電平(圖5)。如果使用低-高-低脈沖(如圖2所示),看門狗將被清除,但系統(tǒng)將保持卡住狀態(tài)。對于具有需要監(jiān)視的多個任務(wù)的程序,可能需要更復(fù)雜的方案。每個任務(wù)設(shè)置一個標(biāo)志,只有在設(shè)置了所有標(biāo)志時,才會切換監(jiān)視器。所有任務(wù)的持續(xù)時間必須短于監(jiān)視器超時期限。與實際程序相比,圖 2 和圖 5 可能看起來很簡單,但它們說明了相關(guān)概念。還應(yīng)監(jiān)視更復(fù)雜的系統(tǒng)中的其他潛在問題,例如內(nèi)存泄漏和堆棧溢出。這超出了本文的范圍,但通常通過使用合適的設(shè)計過程、執(zhí)行仔細的代碼審查和使用專門的軟件工具來完成。
圖5.改進的程序流程具有兩個獨立的看門狗切換命令,這些命令在 WDI 引腳上生成上升沿和下降沿信號。這可以防止程序卡在寄生循環(huán)中。
內(nèi)部與外部看門狗
許多μP具有集成的可編程看門狗,可在軟件控制下禁用。內(nèi)部看門狗容易出現(xiàn)代碼錯誤,因此不能提供與獨立外部看門狗相同的保護。對于安全關(guān)鍵型應(yīng)用(即自動門、醫(yī)療設(shè)備、機器人),內(nèi)部看門狗是不可接受的。監(jiān)管機構(gòu)要求使用單獨的外部監(jiān)管機構(gòu)。因此,最好使用外部看門狗來降低關(guān)鍵系統(tǒng)故障的風(fēng)險。
簡單的看門狗加復(fù)位
由于看門狗超時通常會復(fù)位系統(tǒng),因此大多數(shù)看門狗都集成了μP復(fù)位功能,該復(fù)位器還監(jiān)視處理器電源電壓。復(fù)位由看門狗或欠壓條件激活。圖823所示的MAX825-MAX6系列結(jié)合了這兩種功能,提供標(biāo)準(zhǔn)復(fù)位電壓、一個標(biāo)稱看門狗、一個復(fù)位超時,電流消耗僅為6μA。這些器件采用超小型SC70封裝。
圖6.MAX823-MAX825系列集成了兩種常用功能:看門狗和復(fù)位。
工廠預(yù)設(shè)看門狗系列
MAX6316-MAX6322系列提供26路工廠預(yù)設(shè)復(fù)位電壓、1路標(biāo)稱看門狗和<>路標(biāo)稱復(fù)位超時以及<>種輸出配置(見表<>)。
應(yīng)用 | 家庭 | 電壓監(jiān)控 | 看門狗超時(分鐘) | 復(fù)位超時(分鐘) | 特殊功能 |
簡單加復(fù)位 |
MAX823/ MAX824 |
工廠預(yù)設(shè) 2.5V、3.0V、3.3V 或 5V | 1.12 | 140毫秒 | SOT23 或 SC70 封裝 |
定制 |
MAX6316- MAX6322 |
工廠預(yù)設(shè),步長為 100mV 2.5V 至 5V | 4.3毫秒, 71毫秒, 1.12秒, 17.9秒 | 1毫秒, 20毫秒, 140毫秒, 1.12秒 | 推挽式、漏極開路或雙向輸出 |
電容可調(diào) |
MAX6746- MAX6753 |
出廠預(yù)設(shè),或通過分壓器調(diào)節(jié) 1.575V 至 5V | 700ms 至 70s,兩個范圍,100pF 至 100nF 電容器 | 預(yù)設(shè),或電容0.5ms至5s | SOT23-8,最小/最大窗口選項 |
MAX6301- MAX6304 |
SO 或 DIP 封裝 | ||||
長啟動,引腳可選 |
MAX6369- MAX6374 |
雙工廠預(yù)設(shè) 1.8V、2.5V、3.0V、3.3V 或 5.0V | 30ms 至 60s ;200ms 至 60s 首次邊緣激活 | 僅看門狗 | 雙模式、引腳可編程啟動延遲 |
多電源 |
MAX6369- MAX6360 |
雙固定1.8V、2.5V、3.0V、3.3V、5V;或雙 固定加一個可調(diào) | 1.6s 正常 | 100毫秒 | 手動復(fù)位、電源失效比較器、雙復(fù)位、 復(fù)位加復(fù)位輸出 |
MAX6721- MAX6767 |
25.6秒啟動 | ||||
窗口 |
MAX6323/ MAX6324 雙路模式 |
工廠預(yù)設(shè) 2.5V、3V、3.3V 或 5V | 1.5毫秒至719毫秒(最小值);10ms 至 1.3s(最大值)窗口 | 100毫秒 | 八個工廠修剪選項;僅在定義的窗口內(nèi)接受超時復(fù)位脈沖 |
電容可調(diào)看門狗
如果應(yīng)用需要靈活的看門狗超時,設(shè)計人員可以使用可調(diào)電路。MAX6746-MAX6753系列提供工廠預(yù)設(shè)或分壓器可編程復(fù)位電壓,以及看門狗和復(fù)位超時的外部電容調(diào)整。圖7顯示了一個典型的工作電路,其中:
復(fù)位電壓由分壓器R1/R2確定,
復(fù)位超時由電容決定,以設(shè)置復(fù)位超時(C.SRT),和
看門狗超時由電容器設(shè)置,以設(shè)置看門狗超時(C斯威特).
圖7.圖中給出了電容可調(diào)看門狗系列MAX6346-MAX6353的典型應(yīng)用電路。
圖 8 顯示了 C 的看門狗超時范圍斯威特值從 100pF 到 100nF。憑借如此廣泛的看門狗超時范圍,設(shè)計人員可以為任何應(yīng)用提供解決方案。MAX6301-MAX6304系列與MAX6746-MAX6753系列具有基本相同的特性,但提供SO和DIP封裝。
圖8.此圖顯示了各種可用的看門狗超時。
引腳可選看門狗,具有更長的啟動/超時
如果啟動例程很長(參見圖 2),則需要具有兩種不同超時的看門狗:較長的初始超時和較短的正常操作超時。MAX6369-MAX6374系列具有引腳可編程的啟動延遲,可選擇200ms至60s,看門狗超時范圍為30ms至60s。某些版本提供看門狗的首次邊緣激活,為更長的啟動例程提供解決方案。對于這些芯片,看門狗在啟動期間被禁用,并由μP相關(guān)I/O引腳的第一個邊沿激活。
具有多個電源電壓的看門狗
對于雙電源系統(tǒng),MAX6358-MAX6360系列可以 監(jiān)視兩個標(biāo)準(zhǔn)電壓,并提供具有長啟動和正常超時的看門狗。對于具有三路電源電壓或同時需要高電平有效和低電平有效復(fù)位功能的系統(tǒng),設(shè)計人員可以使用MAX6721-MAX6729系列。這些器件具有雙模式看門狗,具有較長的啟動時間以及正常的超時。它們可監(jiān)測兩個標(biāo)準(zhǔn)電源電壓(MAX6721-MAX6722)或兩個標(biāo)準(zhǔn)電源電壓加第三個可調(diào)電源電壓(MAX6723-MAX6724)。這些器件提供手動復(fù)位輸入、電源失效比較器、雙復(fù)位輸出以及復(fù)位和/復(fù)位輸出。
具有超高可靠性的窗口看門狗
為實現(xiàn)超高可靠性,設(shè)計人員可以使用MAX6323/MAX6324窗口看門狗。對于這些器件,看門狗的脈沖清除必須在明確指定的時間窗口內(nèi)發(fā)生。有效脈沖可能最早在最后一個脈沖后1.5ms到達,也可能在最后一個脈沖后10ms到達(有關(guān)其他范圍,請參見表1)。利用MAX6323/MAX6324,系統(tǒng)從寄生環(huán)路中恢復(fù),如果清除看門狗命令在環(huán)路內(nèi),可以產(chǎn)生快速脈沖序列。這些脈沖將清除正常的看門狗,并且不會產(chǎn)生復(fù)位。使用窗口看門狗可以避免這種情況,因為它們需要看門狗脈沖之間的最小延遲。這些器件的典型應(yīng)用是防抱死制動系統(tǒng)或其他汽車電路、高安全要求的工業(yè)和醫(yī)療應(yīng)用,或系統(tǒng)可用性至關(guān)重要的應(yīng)用。
結(jié)論
由于每個軟件程序都有代碼錯誤,設(shè)計人員必須確保系統(tǒng)不會鎖定。噪聲和EMI也會影響系統(tǒng)中的數(shù)據(jù),并導(dǎo)致不可預(yù)測的系統(tǒng)行為??撮T狗是提高系統(tǒng)可靠性的一種簡單、廉價的方法。外部看門狗可防止系統(tǒng)卡住,并在看門狗超時期限內(nèi)未切換WDI時復(fù)位μP。由于當(dāng)今的看門狗種類繁多,設(shè)計人員一定會找到符合器件要求的器件。
審核編輯:郭婷
-
電源
+關(guān)注
關(guān)注
185文章
18364瀏覽量
256212 -
emi
+關(guān)注
關(guān)注
53文章
3750瀏覽量
131098 -
微處理器
+關(guān)注
關(guān)注
11文章
2383瀏覽量
84159
發(fā)布評論請先 登錄
如何利用看門狗電路改善系統(tǒng)可靠性
單片機應(yīng)用中看門狗技術(shù)

利用看門狗提高系統(tǒng)可靠性

基于CPLD的系統(tǒng)硬件看門狗設(shè)計

STM32看門狗配置(獨立看門狗IWDG和窗口看門狗WWDG)

uC/OS-II 系統(tǒng)的多任務(wù)看門狗設(shè)計
STM32中的獨立看門狗和窗口看門狗
安利給工程師!看門狗相關(guān)知識

評論