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