嵌入式系統的復位電路簡介
本文介紹嵌入式系統的復位電路的功能,復位電路或者芯片類型和特點。
復位電路是一種用來使電路恢復到起始狀態的電路設計。為確保嵌入式系統中電路穩定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。復位電路最簡單的只有電阻和電容組合,復雜就有專門的芯片等配合程序來進行了。
嵌入式系統的“復位”,其作用就是通過相關復位電路產生“復位信號”讓嵌入式主控能在上電后或者運行中恢復到默認的起始狀態。“復位”動作之后嵌入式主控會產生一系列的重置操作,例如I/O口默認的模式和狀態、相關寄存器的默認取值、所有標志位的狀態重置、通信/定時相關的數據內容設定等等。
由此可見,復位的意義就是讓嵌入式主控相關單元進行初始重置且程序從內存起始地址重新執行 。
要讓嵌入式主控正確復位就需要在RST引腳(等同于RESET引腳)上產生符合復位要求的有效信號,有的嵌入式主控需要高電平復位信號,有的則需要低電平復位信號。
名稱:
1)復位脈沖寬度(Reset Pulse Width,時間)
以經典51單片機高電平復位為例,單片機正常運行時RST引腳應保持低電平。當需要復位時應拉高RST引腳的電平,并維持“系統時鐘源、內部電路單元穩定周期+2個機器周期”的時間長度( 為保證有效復位,復位信號應持續20至200ms為宜 ),就是復位脈沖寬度。
2)POR(Power On Reset)/ Power-down Reset/ Brown-out Reset
(上電復位/掉電復位/欠壓復位)
上電復位電路POR電路在芯片上電后會產生一個內部復位脈沖并使器件保持靜態,直至電源電壓達到穩定閾值后再釋放復位信號。
欠壓保護功能是當輸入電壓VIN低于正常工作所需的電壓時停止開關工作的保護功能。
3)WDT(Watch Dog)
中文名為看門狗。是一個定時器電路,一般有一個輸入,叫喂狗,一個輸出到MCU的RST端,MCU正常工作的時候,每隔一段時間輸出一個信號到喂狗端,給 WDT 清零,如果超過規定的時間不喂狗,(一般在程序跑飛時),WDT 定時超過,就會給出一個復位信號到MCU,使MCU復位. 防止MCU死機. 看門狗的作用就是防止程序發生死循環,或者說程序跑飛。
一般來說,復位電路主要有簡單的阻容復位,復位芯片,看門狗復位芯片三種 。
1、阻容式復位電路
常見的阻容式微分復位電路如圖1(a)所示,電路中的“Reset”電氣網絡節點連接至單片機“RST”引腳。該電路上電后的波形如圖1(b),其波形在上電后先是高電平,經過100ms后跌落到了1V以下最終保持低電平狀態,我們常將其稱為“高電平”復位電路。
(a)
(b)
圖1 微分型高電平復位電路原理圖
分析阻容復位電路,該電路的組成十分簡單,其核心實現僅有1個電阻和1個電容組成,外加的S1按鍵主要實現手動復位功能,當S1按下時“Reset”電路網絡節點被強制拉高實現復位。在設計該電路時一定要先根據單片機工作的時鐘頻率去考慮阻容的取值,若系統選用12MHz石英晶振,則1個機器周期就是1us,復位信號的脈沖寬度最小也要2us以上,但是真正設計時最好不要貼近理論值去構造電路,復位信號脈沖寬度最好是20至200ms為宜。當晶振頻率大于或等于12MHz時,常見取值C1為10uF,R1為10k。當系統上電時C1相當于通路,“Reset”電氣網絡上電瞬間為高電平,隨著R1不斷泄放C1的電荷,“Reset”電氣網絡的電壓逐漸降低,最終降到低電平區間。在放電的過程中“Reset”電氣網絡的高電平持續了100ms左右才跌落到1V以下,這遠大于2個機器周期的復位時間要求,即復位有效。
阻容式復位電路非常簡單,成本也很低,但可靠性確實不高。首先來說,阻容器件本身存在器件誤差,誤差會直接導致RC時間常數和充放電時間的差異,批量制造時難以保證產品的一致性。其次,阻容器件存在老化現象和溫漂問題,在長期使用或者嚴苛溫度環境中容易造成較大誤差導致失效。最后,簡單的阻容復位電路會有電容的遲滯充放電問題,導致復位信號可能不滿足復位電平閾值要求,且面對來自電源的波動或者快速開關機情況會出現無法復位的問題。
可能有的朋友還是不滿意這種RC充放電電路產生的復位波形,能不能有什么電路或者器件使用簡單又能產生類似方波一樣的復位波形呢?答案是肯定的,想要高可靠復位單元可以選擇專用的復位監控芯片。集成度的提高使抗干擾能力和溫度適應性都得到了大幅提高,可以保證系統在不同的異常條件下進行可靠的復位。其原理其實是通過確定的電壓閾值啟動復位操作,同時排除瞬間干擾的影響,又有防止單片機在電源啟動和關閉期間的誤操作效果,以保證程序的正常執行。
2.專用復位芯片
LM809和LM810微處理器監控電路可用于監控微處理器和數字系統中的電源。它們在上電、掉電和欠壓條件下為微處理器提供復位。該LM809和LM810的功能是監控VCC電源電壓,每當此電壓下降低于工廠編程復位閾值,就產生復位信號。在VCC上升到閾值以上之后,復位信號在240 ms內保持有效。該LM809具有低電平有效復位輸出,而LM810具有高電平有效復位輸出。七個標準復位電壓選項可供選擇,適用于監測5-V,3.3-V和3-V電源電壓。LM809具有僅15 A的低電源電流。
中文名為看門狗。是一個定時器電路,一般有一個輸入,叫喂狗,一個輸出到MCU的RST端,MCU正常工作的時候,每隔一段時間輸出一個信號到喂狗端,給 WDT 清零,如果超過規定的時間不喂狗,(一般在程序跑飛時),WDT 定時超過,就會給出一個復位信號到MCU,使MCU復位. 防止MCU死機. 看門狗的作用就是防止程序發生死循環,或者說程序跑飛。
工作原理:在系統運行以后也就啟動了看門狗的計數器,看門狗就開始自動計數,如果到了一定的時間還不去清看門狗,那么看門狗計數器就會溢出從而引起看門狗中斷,造成系統復位。所以在使用有看門狗的芯片時要注意清看門狗。
硬件看門狗是利用了一個定時器,來監控主程序的運行,也就是說在主程序的運行過程中,我們要在定時時間到之前對定時器進行復位如果出現死循環,或者說PC指針不能回來。那么定時時間到后就會使單片機復位。
軟件看門狗技術的原理和這差不多,只不過是用軟件的方法實現,我們還是以51系列來講,我們知道在51單片機中有兩個定時器,我們就可以用這兩個定時器來對主程序的運行進行監控。我們可以對T0設定一定的定時時間,當產生定時中斷的時候對一個變量進行賦值,而這個變量在主程序運行的開始已經有了一個初值,在這里我們要設定的定時值要小于主程序的運行時間,這樣在主程序的尾部對變量的值進行判斷,如果值發生了預期的變化,就說明T0中斷正常,如果沒有發生變化則使程序復位。對于T1我們用來監控主程序的運行,我們給T1設定一定的定時時間,在主程序中對其進行復位,如果不能在一定的時間里對其進行復位,T1 的定時中斷就會使單片機復位。在這里T1的定時時間要設的大于主程序的運行時間,給主程序留有一定的的裕量。而T1的中斷正常與否我們再由T0定時中斷子程序來監視。這樣就構成了一個循環,T0監視T1,T1監視主程序,主程序又來監視T0,從而保證系統的穩定運行。
1)看門狗定時器介紹以及重要性
看門狗定時器就像名流錢包上的小狗掛飾一樣,通常將其視為無用之物或認為其太過復雜。然而,將兩者直接相提并論無法體現看門狗的巨大價值。與“錢包狗”不同,看門狗為系統添加了重要的監控功能,用戶可在內部和外部監控系統故障并在發生故障時采取相應措施。
2)那么,何為看門狗定時器?
簡而言之,看門狗定時器是一種監控器件。如果其在特定時間范圍內并未從處理器接收到周期性脈沖信號,就會將復位輸出置為有效。一種實施方案是將處理器的數字信號輸出(通用輸入/輸出)饋入外部看門狗定時器的看門狗輸入,如圖 1 所示。TPS3851 是一款集成看門狗定時器的監控器。它既可以監控微控制器 (MCU) 的電源軌,也可以從外部監控 MCU 發出的數字脈沖。
圖1 看門狗功能
處理器周期性地向看門狗定時器發送脈沖,指示系統軟件是否正常運行。如果看門狗定時器在給定時間范圍內并未接收到該脈沖(稱為看門狗超時),看門狗定時器會將復位輸出置為有效。
此復位輸出可以通知系統處理器處于掛起或凍結狀態,或直接將處理器復位。圖 2 給出了在看門狗超時期間內接收的脈沖和看門狗超時結束后接收的脈沖。
圖 2 標準看門狗定時器的運行
3)看門狗定時器為什么如此重要?
看門狗定時器提供了一種在處理器軟件處于凍結或掛起狀態時,向系統發出報警或將處理器復位的方法。雖然軟件凍結不是蓄意制造的設計問題,但優秀的系統設計人員應該事先制定故障應對方案,未雨綢繆永遠最明智的做法。如果不實施此類監控,處理器可能無限期地處于凍結狀態,導致更嚴重的系統故障。超時間隔可以調節的外部看門狗定時器(如 TPS3851)可以在數毫秒內識別出此類軟件凍結問題并相應 地復位系統或處理器。在嵌入式或遠程系統中,這項功能更加不可或缺,因為手動復位這類系統不可行,甚至根本無法 實現。安全因素至關重要的應用也需要使用外部看門狗,從而在系統的處理器可能凍結或掛起時為其添加關鍵冗余。
4)如何在嵌入式系統中使用看門狗定時器?
看門狗定時器的實施方案主要有兩種:
● 使用集成看門狗功能的處理器。包括 MSP430F5529 系列在內的許多微控制器均集成了看門狗功能。它易于實施并且不需要額外使用集成電路,頗具實用價值。然而,此類產品有一點需要格外注意:集成看門狗可能無法一直按照預期的方式工作,因為導致MCU出現故障的代碼問題也可能無意中禁用看門狗定時器。此外,軟件需要以內部看門狗應能檢測到任何凍結或掛起的方式編寫。然而,采取額外措施,以冗余方式監控看門狗輸入有助于解決代碼中無法預料的錯誤。針對這種情況,德州儀器 (TI) 提供 TPS3431 等獨立的看門狗定時器,幫助用戶解決問題。
● 使用具有看門狗定時器的電壓監控器。借助TPS3851 或 TPS3110 等具有看門狗定時器功能的監控器,用戶能夠以外部冗余方式監控電源電壓和看門狗信號。如果處理器的內置看門狗未能檢測到錯誤或丟失的脈沖,外部看門狗定時器將增加一個無法實現的檢測級別。
看門狗定時器的功能在原則上并不是錯綜復雜的。但是,它在保障系統可靠性方面的重要性不言而喻。在發生故障時無法或很難人為啟動系統復位 的情況下,尤為如此。
一般來說,絕大多數嵌入式主控(或者SOC),在芯片內部集成了片上復位電路:片內復位電路和WDT(Watch Dog)電路。但基于可靠性考慮,很多應用通常建議客戶在嵌入式主控(或者SOC)外部添加硬件復位電路,通過控制嵌入式主控(或者SOC)的RST引腳,或者嵌入式主控(或者SOC)的供地電源來實現掉電復位。
-
電阻
+關注
關注
86文章
5507瀏覽量
171929 -
電路設計
+關注
關注
6673文章
2451瀏覽量
204167 -
復位電路
+關注
關注
13文章
322瀏覽量
44586
發布評論請先 登錄
相關推薦
評論