由于多線(xiàn)程、實(shí)時(shí)和多任務(wù)嵌入式系統(tǒng)的情況紛繁復(fù)雜,使我們?cè)絹?lái)越難以預(yù)料微處理器會(huì)在什么時(shí)候出現(xiàn)問(wèn)題。 在某種程度上獨(dú)立運(yùn)行的服務(wù)程序是如此之多,其中一些很有可能會(huì)生存下來(lái),而其它的則被鎖定、廢棄或者執(zhí)行無(wú)用代碼。
因此,嵌入式系統(tǒng)設(shè)計(jì)人員要在一些低級(jí)別服務(wù)程序或者內(nèi)核出現(xiàn)偏差時(shí)保護(hù)整個(gè)系統(tǒng)并防止出現(xiàn)故障,現(xiàn)在已是難上加難。
本文介紹看門(mén)狗功能的發(fā)展需要,且技術(shù)工程師們能通過(guò)這些功能確保 MCU 可靠工作。 本文將詳細(xì)考察需要在硬件中從外部、在軟件中從內(nèi)部克服的不足之處,并介紹一些看門(mén)狗零件樣件。
簡(jiǎn)單保護(hù)
從 4 位到至高級(jí)的 32 位及以上的機(jī)器都需要有看門(mén)狗功能。 在潛在危險(xiǎn)情況下工作的簡(jiǎn)單處理器不在少數(shù)。 例如,一個(gè)節(jié)流閥控制回路僅需一個(gè)簡(jiǎn)單的 8 位混合信號(hào)微控制器,以本地方式實(shí)現(xiàn)穩(wěn)定的閉環(huán)控制。 該控制器能夠在車(chē)輛 CAN 總線(xiàn)上接受指令,從遠(yuǎn)程車(chē)載電腦卸載全部處理任務(wù)。 然而,如果這個(gè)簡(jiǎn)單的處理器出現(xiàn)故障,那么整個(gè)節(jié)流閥將起不到任何作用。
可以肯定地說(shuō),幾乎每一個(gè)現(xiàn)代微控制器都具有一些簡(jiǎn)單的看門(mén)狗功能——專(zhuān)門(mén)的看門(mén)狗硬件塊或者能夠用來(lái)執(zhí)行軟件控制型看門(mén)狗功能的定時(shí)器。 這些設(shè)備均與處理器中的系統(tǒng)時(shí)鐘實(shí)現(xiàn)了同步。
隨著處理器越來(lái)越復(fù)雜,處理器內(nèi)部的時(shí)鐘結(jié)構(gòu)和時(shí)鐘分布也更加復(fù)雜。 振蕩器特別容易遭受 ESD 沖擊,例如,如果時(shí)鐘性能下降,同步看門(mén)狗將毫無(wú)用處。
R/C 振蕩器和時(shí)間常數(shù)雖然保守,但能提供獨(dú)立時(shí)鐘機(jī)制和復(fù)位機(jī)制,作為應(yīng)急或后備之用。 同樣,冗余型內(nèi)部和外部振蕩器源能實(shí)現(xiàn)某種形式的心跳效果,以確保在嚴(yán)重故障期間監(jiān)視電路。 此外,可選擇的時(shí)鐘集成性與結(jié)構(gòu)樹(shù)中的時(shí)鐘位置同樣重要(圖 1)。
圖 1:系統(tǒng)時(shí)鐘和后備 R/C 振蕩器組合在一起可節(jié)省功耗,并能在系統(tǒng)時(shí)鐘崩潰時(shí)提供一個(gè)可靠獨(dú)立的后備時(shí)鐘,確保看門(mén)狗功能正常。 請(qǐng)注意此處兩個(gè) R/C 振蕩器的使用方式。
對(duì)于低壓檢測(cè)電路來(lái)說(shuō),也是如此。 雖然采用內(nèi)部電壓基準(zhǔn)、比較器和檢測(cè)器能夠?qū)崿F(xiàn)基本精度,但通過(guò)外部電路可實(shí)現(xiàn)更高的分辨率和更精確的電壓電平選擇性。 例如,如果您的部分電壓故障模式軟件包括寫(xiě)入 EEPROM 功能,您可能希望低壓檢測(cè)器閾值提早跳變,以使容性電荷存儲(chǔ)器有足夠的時(shí)間在按順序關(guān)斷之前執(zhí)行 EEPROM 寫(xiě)入功能。 現(xiàn)代電壓檢測(cè)器能夠達(dá)到低至 0.05 V 的電壓分辨率,以便精確使用所有能量。 通常,這個(gè)分辨率要遠(yuǎn)勝于您利用微控制器從內(nèi)部實(shí)現(xiàn)的分辨率。
還需要了解的一點(diǎn)是單獨(dú)的最大超時(shí)并非始終有效。 大多數(shù)看門(mén)狗解決方案基本上在執(zhí)行一個(gè)可再觸發(fā)式單穩(wěn)態(tài)多諧振蕩器(可再觸發(fā)式單觸發(fā))的功能。 如果軟件或者硬件周期時(shí)鐘不能在最大允許時(shí)間幀內(nèi)使定時(shí)器復(fù)位,看門(mén)狗跳變并會(huì)使處理器復(fù)位(或者啟動(dòng)故障恢復(fù)服務(wù)程序)。
最小時(shí)間要求也應(yīng)考慮。 例如,如果一個(gè)服務(wù)程序與 60 Hz 電源線(xiàn)的過(guò)零點(diǎn)同步,那么脈沖間隔應(yīng)是 8.33 ms。 如果這些脈沖過(guò)早達(dá)到,則必須克服通常會(huì)影響安全的噪聲或者故障條件。
多處理器和多核設(shè)計(jì)的情況特殊。 應(yīng)對(duì)單獨(dú)的看門(mén)狗進(jìn)行設(shè)置,以利用當(dāng)時(shí)在每個(gè)理器中運(yùn)行的唯一代碼條件來(lái)監(jiān)視這些處理器或內(nèi)核。 也就是說(shuō),針對(duì)多核環(huán)境中某個(gè)內(nèi)核的部分軟件開(kāi)發(fā)應(yīng)帶有能指示特定代碼塊故障的看門(mén)狗條件。
此外,看門(mén)狗報(bào)告應(yīng)采用層級(jí)結(jié)構(gòu)。 每個(gè)內(nèi)核應(yīng)向更高層級(jí)的看門(mén)狗報(bào)告,該看門(mén)狗把由所有子核和流程報(bào)告的全部故障模式聯(lián)系在一起。 作為一個(gè)高層級(jí)系統(tǒng)功能,看門(mén)狗執(zhí)行程序與為特定內(nèi)核分配代碼塊的主任務(wù)執(zhí)行程序同步工作。 另外,也與外部看門(mén)狗系統(tǒng)密切合作。
線(xiàn)或類(lèi)型多看門(mén)狗模功能塊能很容易地進(jìn)行擴(kuò)展,以使用特定于某個(gè)內(nèi)核的 I/O 進(jìn)行報(bào)告(圖 2)。 該功能塊可以是 FPGA 或者 CPLD 中的獨(dú)立邏輯塊,且易于擴(kuò)展,能應(yīng)對(duì)多個(gè)處理器和功能塊。 寄存器能夠累加所有報(bào)告功能塊的獨(dú)立狀態(tài),以試圖單獨(dú)恢復(fù)那個(gè)內(nèi)核。 如您所想,這個(gè)層級(jí)的恢復(fù)程序會(huì)變得更復(fù)雜,就像在保持系統(tǒng)其余部分運(yùn)行的同時(shí)重新啟動(dòng)內(nèi)核那樣。
圖 2:看門(mén)狗層級(jí)結(jié)構(gòu)的頂層能使用可擴(kuò)展線(xiàn)或功能,以使所有微處理器或內(nèi)核能按照各自的速率進(jìn)行報(bào)告。 每個(gè)“單觸發(fā)”都應(yīng)允許受其監(jiān)視的進(jìn)程按持續(xù)間隔進(jìn)行編程。 每個(gè)代碼塊均攜帶看門(mén)狗參數(shù)。
具有特殊看門(mén)狗功能的零件
在涉及到如何實(shí)現(xiàn)看門(mén)狗功能時(shí),有多種微處理器具有唯一或不同的功能。 以 16 位 Maxim MaxQ 系列微控制器為例,為提升有用性,該系列將類(lèi)型豐富而靈活地定時(shí)器和設(shè)計(jì)巧妙的電路組合在一起。 象 Maxim MAXQ2000-RBX+ 這樣的零件具有次級(jí)報(bào)警。 如果沒(méi)有報(bào)警且 MAXQ2000 的看門(mén)狗 (WTD) 發(fā)生溢出,那么,再次經(jīng)過(guò)另外 512 個(gè)系統(tǒng)時(shí)鐘周期計(jì)數(shù)后該微控制器會(huì)觸發(fā)一個(gè)中斷。 然后,如果未被禁用或覆蓋,它會(huì)使全部定時(shí)器復(fù)位。
這種中斷為保存調(diào)試信息提供了“最后的機(jī)會(huì)”——一個(gè)得到了大多數(shù)設(shè)計(jì)人員的一致認(rèn)可、在電路開(kāi)發(fā)、故障清除期間非常有用的機(jī)會(huì)。 而且,該中斷可用于將看門(mén)狗從錯(cuò)誤中恢復(fù)并將其清空,而不是保存調(diào)試信息。 然而,后一種方法在系統(tǒng)發(fā)生故障時(shí)會(huì)削弱系統(tǒng)可靠性。
與其它內(nèi)部 WDT 類(lèi)似,MAXQ2000 的看門(mén)狗可通過(guò)軟件禁用。 不過(guò)應(yīng)當(dāng)注意,這種功能就像一把雙刃劍:失控代碼禁用看門(mén)狗后仍處于失控狀態(tài)。
一些微處理器的 WDT 會(huì)與獨(dú)立于系統(tǒng)時(shí)鐘的內(nèi)部振蕩器連接。 還有一些微處理器使用內(nèi)部或外部 R/C 振蕩器,有的同時(shí)使用這些振蕩器。 Maxim MAXQ2000 的 WDT 上有一個(gè)令人感興趣的功能:雖然從系統(tǒng)時(shí)鐘驅(qū)動(dòng)看門(mén)狗定時(shí)功能,但能在主振蕩器故障時(shí)切換至備用振蕩器。
另一種讓人關(guān)注并具有獨(dú)特看門(mén)狗功能的 MCU 便是采用兩個(gè)看門(mén)狗定時(shí)器的 STM32F100 系列(由 STMicroelectronics 提供)。 象 STM32F100CBT6B 這樣的零件均針對(duì)要求高可靠性的智能電網(wǎng)和智能健康應(yīng)用。 同大多數(shù)微處理器一樣,該器件也采用了多個(gè)定時(shí)器(此處為六個(gè)),且另外有兩個(gè) 16 位定時(shí)器專(zhuān)用于看門(mén)狗功能。
每個(gè)看門(mén)狗都具有一個(gè)為看門(mén)狗定時(shí)器提供時(shí)鐘的可選擇預(yù)分頻器 (1 - 64 K),同時(shí)還能觸發(fā) DMA 請(qǐng)求并捕獲比較通道。 另一種獨(dú)立的看門(mén)狗基于一個(gè) 112 位下變頻器和 8 位預(yù)分頻器,并采用獨(dú)立的 40 kHz 內(nèi)部 R/C 振蕩器提供時(shí)鐘。 注意這兩種零件如何依賴(lài) R/C 元件,將其作為超可靠的后備技術(shù)。
STMicroelectronics 零件吸引人的一個(gè)特性就是模擬看門(mén)狗功能。 對(duì)經(jīng)過(guò) A/D 轉(zhuǎn)換的一個(gè)或兩個(gè)電壓電平進(jìn)行精確監(jiān)視,能在模擬電平超過(guò)預(yù)設(shè)閾值時(shí)使復(fù)位跳變。 對(duì)于那些通過(guò)傳感器與人體局域網(wǎng)連接且用于健康監(jiān)視或主動(dòng)給藥的醫(yī)療應(yīng)用,該功能會(huì)非常有用(圖 3)。 為方便設(shè)計(jì),STMicroelectronics 向工程師們提供有關(guān)健康和醫(yī)療保健設(shè)計(jì)的產(chǎn)品培訓(xùn)模塊。
圖 3:隨著醫(yī)療設(shè)備越來(lái)越積極地與我們的人體局域網(wǎng)集成在一起,一些設(shè)備(心臟起搏器、除顫器、胰島素泵等)在維持人的生命中可能會(huì)發(fā)揮至關(guān)重要的作用。 需要在這些系統(tǒng)中集成可靠的看門(mén)狗。
由外向內(nèi)看
許多好的構(gòu)造塊外部解決方案包括簡(jiǎn)單的 R/C 閾值發(fā)生器、偏置晶體管、低功耗定時(shí)器,以及專(zhuān)用上電復(fù)位和看門(mén)狗協(xié)處理器。 此外,現(xiàn)在已有可用的開(kāi)發(fā)環(huán)境,鼓勵(lì)人們進(jìn)行實(shí)驗(yàn)和簡(jiǎn)化測(cè)試。Texas Instruments 利用其 TPL5000 毫微功耗可編程定時(shí)器提供了一種令人感興趣的解決方案,該方案在 1.8 - 5 VCC 寬電壓范圍內(nèi)的電流消耗僅 30 nA。 TPL5000EVM 評(píng)估套件能讓您在一個(gè)小而精致的自足式模塊中測(cè)試、優(yōu)化該功能。
目前,已有多種分立式看門(mén)狗可與其它有用的功能組合在一起,如實(shí)時(shí)時(shí)鐘 和 監(jiān)視功能。 Lattice Semiconductor 提供了一個(gè)值得關(guān)注的組合品,帶有其 ISPPAC-POWR607-01SN32I 電源監(jiān)控器、看門(mén)狗和復(fù)位發(fā)生器(圖 4)。 請(qǐng)注意 1% 的模擬跳變點(diǎn)步長(zhǎng)值以及用于狀態(tài)機(jī)和組合式定制的在系統(tǒng)編程宏單元。
圖 4:利用在系統(tǒng)用戶(hù)可編程參數(shù),可通過(guò)使用組合式和基于狀態(tài)機(jī)的用戶(hù)可配置邏輯,實(shí)現(xiàn)看門(mén)狗功能的動(dòng)態(tài)確定。
總結(jié)
謹(jǐn)記有時(shí)候做何事情都無(wú)助于系統(tǒng)恢復(fù)。 有些故障是不可恢復(fù)的。 例如,如果系統(tǒng)存儲(chǔ)器崩潰,那么就再?zèng)]有什么可值得信任了。
另一種情況是如果存在很高級(jí)別的噪音。 即使看門(mén)狗使處理器復(fù)位,這種噪聲仍能影響處理器的看門(mén)狗級(jí)初始化。 如果看門(mén)狗功能未被初始化,看門(mén)狗就如形同虛設(shè)。
任何人都不能指望任何 MCU 在任何時(shí)候都能百分之百無(wú)故障運(yùn)行。 微處理器也可能出錯(cuò)。 然而,是僅出現(xiàn)輕微故障,還是災(zāi)難性財(cái)產(chǎn)損壞或者甚至死亡,關(guān)鍵在于能否合理使用內(nèi)外資源。
-
mcu
+關(guān)注
關(guān)注
146文章
17918瀏覽量
362839 -
嵌入式
+關(guān)注
關(guān)注
5146文章
19597瀏覽量
316298 -
微處理器
+關(guān)注
關(guān)注
11文章
2378瀏覽量
84027
發(fā)布評(píng)論請(qǐng)先 登錄
STM32中的獨(dú)立看門(mén)狗和窗口看門(mén)狗是什么

MCU獨(dú)立看門(mén)狗和窗口看門(mén)狗的區(qū)別
單片機(jī)獨(dú)立看門(mén)狗和窗口看門(mén)狗的區(qū)別

stm32看門(mén)狗時(shí)間計(jì)算 獨(dú)立看門(mén)狗和窗口看門(mén)狗的特性是什么
什么是stm32看門(mén)狗?獨(dú)立看門(mén)狗和窗口看門(mén)狗工作原理解析

STM32看門(mén)狗配置(獨(dú)立看門(mén)狗IWDG和窗口看門(mén)狗WWDG)

對(duì)于MCU看門(mén)狗IIWDG WWDG喂狗時(shí)間的配置參考

MCU獨(dú)立看門(mén)狗與窗口看門(mén)狗的區(qū)別

MCU獨(dú)立看門(mén)狗與窗口看門(mén)狗的區(qū)別

【MCU】基于STM32CubeMX 實(shí)現(xiàn)窗口看門(mén)狗 WWDG

STM32中的獨(dú)立看門(mén)狗和窗口看門(mén)狗
STM32中的獨(dú)立看門(mén)狗和窗口看門(mén)狗

MCU如何集成看門(mén)狗的功能

什么是看門(mén)狗,工業(yè)路由器看門(mén)狗技術(shù)的功能優(yōu)勢(shì)

評(píng)論