對于多線程,實時和多任務(wù)嵌入式系統(tǒng)的全部復(fù)雜性,它已成為越來越難以知道什么時候一個微型的行為不端。有了這么多的服務(wù)程序操作略微獨立是非常有可能的,有人還活著,而其他人都被鎖定,死亡,或執(zhí)行無意義的代碼。因此,現(xiàn)在是比較困難的嵌入式系統(tǒng)設(shè)計師來保護(hù)整個系統(tǒng)從在一些低服務(wù)程序或內(nèi)核,走入歧途發(fā)生的故障。本文著眼于更先進(jìn)的看門狗功能不斷變化的需求和技術(shù)的工程師可以使用,以確??煽康?u>MCU操作。它探討了需要用軟件來解決這兩個外部硬件和內(nèi)部缺陷和看樣品看門狗的部分。所有部件,數(shù)據(jù)表,教程和發(fā)展引用在這里可以在網(wǎng)上對Digi-Key的網(wǎng)站上找到。
簡單的保護(hù)
對于需要看門狗功能涵蓋了從4位到先進(jìn)的32位機和超越。它不是經(jīng)??梢钥吹胶唵蔚奶幚砥鲌?zhí)行的潛在的危險情況。例如,一個油門控制回路可以僅局部地需要一種簡單的混合信號的8位微控制器,以提供穩(wěn)定的閉環(huán)控制。它可以通過命令汽車的CAN總線,可以卸載所有的處理從遠(yuǎn)程車載電腦。但是,如果簡單的處理器出現(xiàn)故障,全油門可能是致命的??梢杂邪盐盏卣f,幾乎每一個現(xiàn)代的微控制器包含了一些基本的看門狗功能,無論是可用于實現(xiàn)軟件控制的看門狗功能的專用看門狗硬件模塊或通用定時器。這些都是同步到所述處理器的系統(tǒng)時鐘。隨著處理器變得更加復(fù)雜,因此也可以超頻處理器本身內(nèi)部結(jié)構(gòu)和時鐘分配。振蕩器可以是特別容易受到ESD命中,例如,如果時鐘走下來,同步監(jiān)督機構(gòu)也沒有好處。的R / C振蕩器和時間常數(shù)可以是舊的學(xué)校,但可以提供獨立的時鐘機制和復(fù)位機制作為后備或備份。同樣的,冗余的內(nèi)部 - 外部振蕩器源可以提供某種形式的心跳,保持監(jiān)測電路正常工作時的不良故障。可選擇融合時鐘也很重要,因為是在樹的時鐘(圖1)的位置。
圖1:結(jié)合系統(tǒng)時鐘進(jìn)行備份的R / C振蕩器可以降低功耗和系統(tǒng)時鐘被破壞了可靠的獨立備份時鐘監(jiān)視功能在事件。注意如何兩個R / C振蕩器用于更換預(yù)定同樣適用于低電壓檢測電路。而基本的精度可以使用內(nèi)部電壓基準(zhǔn),比較器和檢測器來實現(xiàn),外部電路可以提供更高的分辨率和更精確的電壓電平選擇性。例如,如果你的電壓故障模式軟件的一部分,包括寫入EEPROM,你可能想提前跳閘低電壓檢測器的閾值,使電容內(nèi)的電荷儲存足夠的時間以有序的方式關(guān)閉之前執(zhí)行EEPROM寫。現(xiàn)代的電壓檢測器可以實現(xiàn)電壓的分辨率降低到0.05 V為精確使用的所有能源。這通常是一個更好的分辨率比,你會發(fā)現(xiàn)在內(nèi)部具有微。的是,單獨的最大超時并不總是有效的另一件事情要注意。大多數(shù)看門狗方案基本上實現(xiàn)再觸發(fā)的,單穩(wěn)態(tài)觸發(fā)器(重新觸發(fā)的1次)的功能。如果軟件或硬件循環(huán)時鐘不一個最大允許時間幀,看門狗行程內(nèi)復(fù)位定時器并復(fù)位處理器(或啟動故障恢復(fù)服務(wù)程序)。最短時間要求也感興趣。如果一個服務(wù)程序,例如,與一個60赫茲的電力線的零交叉同步,則脈沖應(yīng)8.33毫秒分開。如果他們到達(dá)的早晚,噪聲或故障情況,必須加以處理,往往與安全的后果。多處理器和多核心的設(shè)計有特殊的情況。個別監(jiān)督者應(yīng)設(shè)置為監(jiān)視每個處理器核心或與該處理器當(dāng)時運行的代碼的獨特條件。這意味著針對在多核環(huán)境中的核心,應(yīng)該隨身攜帶它的具體監(jiān)督情況表明發(fā)生故障的特定代碼塊的軟件開發(fā)的一部分。此外,看門狗報告應(yīng)該是分層的。每個核心應(yīng)報告給更高級別的看門狗來自所有subcores和過程報告的所有的故障模式聯(lián)系在一起。作為上位系統(tǒng)的功能,一個看門狗行政工作的手在手與主任務(wù)執(zhí)行該分配碼塊以特定的核。它也應(yīng)該與外部監(jiān)督系統(tǒng)的緊密合作。線或型多看門狗塊可以很容易地擴(kuò)展到使用I / O具體到一個核心中(圖2)報告。它可以是FPGA或CPLD內(nèi)部的一個獨立的邏輯塊和處理多個處理器和街區(qū),可輕松擴(kuò)展。的寄存器可以積累所有報告塊的獨立地位,試圖單獨恢復(fù)的核心。正如你可能想象,恢復(fù)程序變得更加復(fù)雜,在這個級別一樣如何重新引導(dǎo)內(nèi)核,而讓系統(tǒng)運行的其余部分。
圖2:看門狗層次的頂層可以使用可膨脹的線或功能,以允許所有萬分之一或內(nèi)核,在他們自己的報告率在。每1次應(yīng)該允許它被監(jiān)測的時間間隔進(jìn)行編程的過程。它監(jiān)視每一個參數(shù)的代碼塊進(jìn)行。
零件進(jìn)行特殊的看門狗功能
幾萬分之一擁有獨特的或不同的功能,當(dāng)談到他們?nèi)绾螌崿F(xiàn)自己的監(jiān)督者。就拿16位馬克西姆MAXQ系列,它結(jié)合了靈活的定時器種類豐富巧妙的電路,以提高實用性。如Maxim的MAXQ2000-RBX +部件有戒備二級。如果沒有維修和MAXQ2000的WDT溢出,引發(fā)與512額外的系統(tǒng)時鐘周期的額外計數(shù)中斷。然后,將所有如果沒有禁用或覆蓋。這種中斷提供了“最后一次機會”來保存調(diào)試信息,大多數(shù)的設(shè)計師達(dá)成了共識,電路開發(fā)和故障排除過程中非常有用的機會。更重要的是,而不是保存調(diào)試信息,中斷可用于從錯誤中恢復(fù)和清除看門狗。這后一種方法,但是,可以破壞系統(tǒng)的可靠性,如果一個系統(tǒng)存在故障。像其他內(nèi)部WDTS,MAXQ2000的看門狗可以通過軟件禁止。但是,請注意,此功能是一個雙刃劍:失控代碼可以禁用看門狗,然后繼續(xù)橫行。一些微處理器他們WDT到內(nèi)部振蕩器獨立于系統(tǒng)時鐘。有些使用內(nèi)部或外部的R / C振蕩器,有些可以同時使用。一個有趣的功能存在于馬克西姆MAXQ2000的WDT派生看門狗定時由系統(tǒng)時鐘,但將切換到備份RC振蕩器在主振蕩器一個故障的情況下。另一個有趣的MCU具有獨特的看門狗功能是STM32F100系列意法半導(dǎo)體萬分之一,其中有兩個看門狗定時器。像STM32F100CBT6B零件的目標(biāo)需要有可靠的智能電網(wǎng)和智能醫(yī)療應(yīng)用。像大多數(shù)萬分之一,它有多個定時器,在這種情況下6,與另兩個16位的定時器專用于看門狗功能。每個看門狗具有一個可選擇的預(yù)分頻器(從1到64 K),可用于時鐘看門狗定時器也能觸發(fā)DMA請求和捕獲比較通道。還有一個獨立的看門狗是基于一個112位的遞減計數(shù)器和8位預(yù)分頻器由一個獨立的40 kHz內(nèi)部的R / C振蕩器時鐘。請注意這兩個部分是如何依賴于R / C元件的超可靠的備份技術(shù)。意法半導(dǎo)體部分的一個有趣的特點是模擬看門狗功能。精確監(jiān)測的從A / Ds的一個或多個轉(zhuǎn)換后的電壓電平可以跳閘復(fù)位如果模擬水平編程閾值之外。這對于其中傳感器連接到一個身體區(qū)域網(wǎng)絡(luò)健康監(jiān)測或活性藥物分配(圖3)的醫(yī)療應(yīng)用中是有用的。作為一個輔助設(shè)計,意法半導(dǎo)體為工程師提供醫(yī)療保健和健康設(shè)計一個產(chǎn)品培訓(xùn)模塊。
圖3:作為醫(yī)療裝置集成更積極地與我們的身體區(qū)域網(wǎng)絡(luò),一些設(shè)備(起搏器,除顫器,胰島素泵等)可能是極其重要的維持生命??煽勘O(jiān)督者需要被工程化到這些系統(tǒng)。
在外面看
有幾個不錯的積木式的外部解決方案,包括簡單的R / C門檻發(fā)電機,偏置的晶體管,低功耗定時器和專用的上電復(fù)位和看門狗伴侶處理器。此外,開發(fā)環(huán)境提供了鼓勵試驗和易用性測試。德州儀器(TI)提供了一個有趣的解決方案以其TPL5000納米功耗可編程定時器,吸引了30 nA的在寬1.8至5 VCC。該TPL5000EVM評估套件可讓您測試和一個可愛的小自包含的模塊優(yōu)化此功能。幾個離散的監(jiān)督者可結(jié)合其他有用的功能,例如實時時鐘和監(jiān)控功能。一個有趣的組合是來自萊迪思半導(dǎo)體公司,其ISPPAC-POWR607-01SN32I電源監(jiān)控器,看門狗和復(fù)位發(fā)生器(圖4)。注1%的模擬跳變點步長和在系統(tǒng)可編程宏小區(qū)的狀態(tài)機和組合定制。
圖4:在系統(tǒng)用戶可編程參數(shù)允許看門狗功能,動態(tài)決定通過使用組合和狀態(tài)機為基礎(chǔ)的用戶可配置邏輯。
結(jié)論
請記住,有次在那里不會有任何幫助恢復(fù)系統(tǒng)。有些故障模式是不可恢復(fù)的。例如,如果系統(tǒng)內(nèi)存損壞,沒有別的可以信任。另一種情況是,如果有非常高的水平的噪音。即使看門狗復(fù)位處理器,噪聲可以與看門狗級的處理器的初始化干擾。如果看門狗功能ca的不被初始化,這是因為如果沒有看門狗可言。沒有人可以依靠任何MCU對100%的無故障運行所有的時間。 MICROS可能會出現(xiàn)偏差。但是,聰明的利用內(nèi)部和外部資源可以做一個溫和的故障和災(zāi)難性的財產(chǎn)損失,甚至失去生命之間的差異。