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

嵌入式Linux開發(fā)教程之嵌入式系統(tǒng)介紹資料免費(fèi)下載

嵌入式系統(tǒng)教程之嵌入式系統(tǒng)的IO模塊詳細(xì)資料說明

嵌入式系統(tǒng)應(yīng)用實例的詳細(xì)資料介紹
嵌入式系統(tǒng)介紹

嵌入式系統(tǒng)簡單介紹

嵌入式系統(tǒng)

什么是嵌入式系統(tǒng)

嵌入式linux_嵌入式系統(tǒng)基礎(chǔ)知識(一): 系統(tǒng)結(jié)構(gòu)和嵌入式Linux

評論