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