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