<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Reset與嵌入式系統(tǒng)應(yīng)用的穩(wěn)定性

          Reset與嵌入式系統(tǒng)應(yīng)用的穩(wěn)定性

          作者: 時(shí)間:2014-01-09 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/256984.htm

          的應(yīng)用領(lǐng)域越來(lái)越廣泛,干擾或者惡劣環(huán)境常影響運(yùn)行的穩(wěn)定性和可靠性。Reset是維護(hù)系統(tǒng)穩(wěn)定的一個(gè)關(guān)鍵因素,正確地設(shè)計(jì)復(fù)位電路,巧妙地應(yīng)用復(fù)位操作,能使整個(gè)系統(tǒng)更可靠、穩(wěn)定地運(yùn)行。本文結(jié)合實(shí)際項(xiàng)目經(jīng)驗(yàn)分析Reset的相關(guān)應(yīng)用與設(shè)計(jì),展示Reset對(duì)系統(tǒng)穩(wěn)定性的重要性。


          引言

          電子設(shè)備的運(yùn)行中,當(dāng)出現(xiàn)程序跑飛的情況或程序跳轉(zhuǎn)時(shí),可用手動(dòng)或自動(dòng)的方法發(fā)信號(hào)給硬件特定接口,使軟件的運(yùn)行恢復(fù)到特定的程序段運(yùn)行,這一操作就是復(fù)位(Reset);這一過(guò)程中,手動(dòng)或自動(dòng)發(fā)給硬件特定接口的信號(hào),就是復(fù)位信號(hào)。為了克服系統(tǒng)由于內(nèi)因(時(shí)鐘振蕩源的穩(wěn)定性)和外因(射頻干擾)所引起的運(yùn)行不穩(wěn)定的情況,在嵌入式系統(tǒng)軟件和硬件上,必須作相應(yīng)的處理和保護(hù)。復(fù)位操作是一種行之有效的保護(hù)措施,同時(shí)復(fù)位系統(tǒng)本身也是引起嵌入式系統(tǒng)運(yùn)行不穩(wěn)定的因素,在設(shè)計(jì)時(shí)需特別注意。

          本文結(jié)合筆者親身經(jīng)歷的實(shí)例來(lái)說(shuō)明Reset的重要性,巧妙地運(yùn)用Reset使系統(tǒng)工作更穩(wěn)定可靠。

          1 Reset方式及手段

          在嵌入式應(yīng)用系統(tǒng)中,復(fù)位操作包括兩個(gè)方面——處理器本身的復(fù)位和系統(tǒng)中外設(shè)(外接功能模塊)的復(fù)位,如圖1所示。



          總的說(shuō)來(lái),嵌入式復(fù)位方式主要分和軟件復(fù)位。,即采用硬件的手段、通過(guò)信號(hào)對(duì)系統(tǒng)處理器或者外設(shè)進(jìn)行復(fù)位。只要在RST端出現(xiàn)一定時(shí)間(具體看系統(tǒng)和處理器的機(jī)器周期)的復(fù)位電平信號(hào),由CPU采樣復(fù)位信號(hào),啟動(dòng)復(fù)位時(shí)序,即可完成復(fù)位操作。硬件復(fù)位一般包括、按鍵復(fù)位、電壓監(jiān)控復(fù)位和等,這些復(fù)位信號(hào),在系統(tǒng)設(shè)計(jì)時(shí)可用邏輯電路組合起來(lái)加載到系統(tǒng)的RST端。軟件復(fù)位,即通過(guò)軟件手段,在軟件框架里對(duì)系統(tǒng)復(fù)位,重新初始化系統(tǒng)。

          按處理器內(nèi)外來(lái)劃分,又分為芯片內(nèi)復(fù)位和芯片外復(fù)位。于是,硬件復(fù)位又分外部硬件復(fù)位和內(nèi)部硬件復(fù)位。

          對(duì)于硬件復(fù)位,按復(fù)位信號(hào)電平高低又可分為高電平復(fù)位和低電平復(fù)位。高電平復(fù)位是高電平有效,并在復(fù)位脈沖的下降沿完成復(fù)位過(guò)程;低電平復(fù)位是低電平有效,并在復(fù)位脈沖的上升沿完成復(fù)位。具體用什么復(fù)位信號(hào),視嵌入式系統(tǒng)本身而定,但大多采用低電平復(fù)位,這與TTL的功耗有關(guān),因?yàn)門(mén)TL電路中高電平的吸收電流要遠(yuǎn)小于低電平的吸收電流。

          2的實(shí)現(xiàn)及穩(wěn)定性設(shè)計(jì)

          2.1

          上電復(fù)位(Power On Reset,POR),即系統(tǒng)上電時(shí)通過(guò)復(fù)位電路,在RST引腳提供一個(gè)足夠長(zhǎng)時(shí)間的復(fù)位電平信號(hào),直至系統(tǒng)電源穩(wěn)定后,再撤銷(xiāo)復(fù)位電平。在嵌入式系統(tǒng)中,上電復(fù)位是系統(tǒng)啟動(dòng)初始化復(fù)位,全面而系統(tǒng)地復(fù)位處理器內(nèi)的所有邏輯單元與模塊,將初始化內(nèi)部邏輯操作,如存儲(chǔ)器控制器、中斷控制器和I/O引腳等的配置。



          上電復(fù)位是保證嵌入式系統(tǒng)正常運(yùn)行的基本操作。通常處理器芯片內(nèi)部自帶上電復(fù)位電路,圖2(a)所示為某MCU(微控制器)Reset引腳示意圖,內(nèi)部自帶上電復(fù)位電路。MCU芯片上電時(shí),片內(nèi)POR將產(chǎn)生內(nèi)部復(fù)位信號(hào)以初始化芯片內(nèi)的數(shù)字模塊,其時(shí)序如圖2(b)所示。

          有的處理器芯片通過(guò)在片外添加RC延時(shí)電路來(lái)得到上電復(fù)位信號(hào)。RC復(fù)位電路的復(fù)位脈沖寬度由芯片要求的復(fù)位時(shí)間決定,持續(xù)時(shí)間取決于RC電路參數(shù),電容太大復(fù)位時(shí)間很長(zhǎng),電容太小復(fù)位時(shí)間不夠,不足以穩(wěn)定復(fù)位。

          2.2上電復(fù)位失效及應(yīng)對(duì)措施

          實(shí)際工作時(shí),由于各方面的原因,上電復(fù)位會(huì)失效。由于受到干擾、電源波動(dòng)、誤操作等原因,短暫的電壓下降造成供電恢復(fù)時(shí)由于電壓沒(méi)有滿(mǎn)足POR的發(fā)生條件,復(fù)位端的低電平復(fù)位信號(hào)無(wú)法再次啟動(dòng)系統(tǒng)重新復(fù)位工作,此時(shí)會(huì)出現(xiàn)系統(tǒng)死機(jī);電源二次開(kāi)關(guān)時(shí)間間隔太短時(shí),復(fù)位不可靠;當(dāng)電源電壓中有浪涌現(xiàn)象時(shí),可能在浪涌消失后不能產(chǎn)生復(fù)位脈沖。這些現(xiàn)象盡管并不頻繁,但對(duì)于某些特殊應(yīng)用場(chǎng)景,如不能隨時(shí)進(jìn)行手動(dòng)復(fù)位的遠(yuǎn)程自動(dòng)控制系統(tǒng),卻是致命的。

          出現(xiàn)失效時(shí),常采用提高復(fù)位門(mén)限來(lái)應(yīng)對(duì),使復(fù)位門(mén)限位于處理器正常工作電壓范圍內(nèi),且接近處理器正常工作時(shí)的最低門(mén)限。另一應(yīng)對(duì)措施是延長(zhǎng)復(fù)位信號(hào)時(shí)間,讓復(fù)位信號(hào)在電壓值恢復(fù)后維持足夠長(zhǎng)的時(shí)間。電源穩(wěn)定后還要經(jīng)過(guò)一定的延時(shí)才撤銷(xiāo)復(fù)位信號(hào),以防止電源開(kāi)關(guān)或電源捕頭分一合過(guò)程中引起的抖動(dòng)影響復(fù)位。另外,為了解決電源毛刺和電源緩慢下降(電池電壓不足)等問(wèn)題引起的POR不可靠現(xiàn)象,有設(shè)計(jì)人員在RC電路中增加了二極管放電回路,在電源電壓瞬間下降時(shí)使電容迅速放電,這樣,一定寬度的電源毛刺也可令系統(tǒng)可靠復(fù)位。

          2.3實(shí)例分析:快速開(kāi)關(guān)機(jī)單片機(jī)啟動(dòng)不穩(wěn)定

          筆者曾經(jīng)做過(guò)一個(gè)ZigBee物聯(lián)網(wǎng)項(xiàng)目,采用ZigBeeSoC芯片,硬件結(jié)構(gòu)如圖3所示,主要包括一個(gè)8051的MCU核和ZigBee收發(fā)器。調(diào)試時(shí),發(fā)現(xiàn)ZigBee模塊快速關(guān)機(jī)然后快速開(kāi)機(jī),即二次開(kāi)機(jī)時(shí)不穩(wěn)定,有時(shí)啟動(dòng)不正常,功能不能實(shí)現(xiàn)。在軟件里加Trace信息,發(fā)現(xiàn)當(dāng)快速開(kāi)關(guān)機(jī)時(shí)MCU并沒(méi)有正常啟動(dòng),沒(méi)有進(jìn)入所需要的初始化和主循環(huán)。避免快速關(guān)機(jī)開(kāi)機(jī),則可以正常啟動(dòng)。當(dāng)嵌入式系統(tǒng)關(guān)機(jī)后立即再開(kāi)機(jī),有時(shí)不能正常工作,是因?yàn)閺?fù)位不充分,這是嵌入式系統(tǒng)的共同點(diǎn)。



          最后發(fā)現(xiàn),由于SoC芯片里有內(nèi)部POR,所以片外沒(méi)有加RC復(fù)位電路。而工作電源VDD_3V上有20μF電容,下電時(shí)不能快速放電。添加外部RC復(fù)位電路(100 kΩ電阻和1μF電容),延長(zhǎng)復(fù)位時(shí)間,電源穩(wěn)定后再取消復(fù)位。Reset功能在芯片上下電時(shí)更穩(wěn)定,問(wèn)題得以解決。有時(shí)候電阻電容這種“小器件”往往可以解決“大問(wèn)題”。

          3電壓檢測(cè)復(fù)位

          為了防止系統(tǒng)在上電、突然掉電或者電網(wǎng)瞬間欠壓引起嵌入式系統(tǒng)操作失誤,更常用和有效的方法是采用具有復(fù)位信號(hào)輸出的電壓監(jiān)測(cè)電路。電壓監(jiān)測(cè)電路提供多種保護(hù)功能:在系統(tǒng)上電、瞬間欠壓時(shí)提供系統(tǒng)復(fù)位信號(hào);系統(tǒng)突然斷電、瞬間欠壓時(shí)輸出監(jiān)測(cè)信號(hào),以供系統(tǒng)實(shí)施保護(hù)措施,如數(shù)據(jù)保護(hù)、I/O安全設(shè)置;可連接備用電源,保證備用電源的投、切控制。

          對(duì)于供電系統(tǒng)的容差范圍較大、壓值精度較低的情況,或者是遇到電網(wǎng)長(zhǎng)期工作在欠壓狀態(tài)下時(shí),可能會(huì)造成系統(tǒng)在正常工作條件下頻繁復(fù)位。這種情況更應(yīng)該監(jiān)控電源電壓,當(dāng)監(jiān)測(cè)到電壓波動(dòng)時(shí),監(jiān)控芯片向處理器發(fā)送電壓異常信號(hào),處理器響應(yīng)該信號(hào)并中斷正在運(yùn)行的程序,進(jìn)入掉電保護(hù)子程序,設(shè)置復(fù)位狀態(tài)寄存器,避免下次上電時(shí)由于寄存器狀態(tài)錯(cuò)誤而無(wú)法啟動(dòng)上電復(fù)位。



          電壓監(jiān)測(cè)復(fù)位,可以解決電源毛刺等造成系統(tǒng)不穩(wěn)定。復(fù)位電路可以采用分立元件搭建,目前常用專(zhuān)用集成電路芯片,閾值電壓和復(fù)位信號(hào)有些可通過(guò)編程修改。圖4是一個(gè)典型的電壓監(jiān)控復(fù)位芯片與微處理器的連接圖。

          4

          (即程序運(yùn)行監(jiān)視復(fù)位)可保證程序非正常運(yùn)行時(shí)能及時(shí)進(jìn)入復(fù)位狀態(tài)??撮T(mén)狗分硬件看門(mén)狗和軟件看門(mén)狗。



          4.1硬件看門(mén)狗復(fù)位

          硬件看門(mén)狗的基本原理是,為電路提供一個(gè)用于監(jiān)視系統(tǒng)運(yùn)行的信號(hào)線,當(dāng)系統(tǒng)正常運(yùn)行時(shí),應(yīng)在規(guī)定的時(shí)間內(nèi)給信號(hào)線提供一個(gè)特定信號(hào);如在規(guī)定的時(shí)間內(nèi)無(wú)這個(gè)信號(hào),自動(dòng)復(fù)位電路就認(rèn)為系統(tǒng)運(yùn)行不正常,并重新對(duì)系統(tǒng)進(jìn)行復(fù)位。具體方式是通過(guò)處理器的定時(shí)復(fù)位計(jì)數(shù)器來(lái)實(shí)現(xiàn)。此復(fù)位電路的可靠性還與軟件有關(guān),即將向復(fù)位電路發(fā)出脈沖的程序放在何處,在哪里插入“喂狗”指令,需作優(yōu)化。

          硬件看門(mén)狗復(fù)位主要有三種形式:使用內(nèi)部帶WDT功能單元的電路,外部增設(shè)WDT電路和專(zhuān)用集成WDT芯片。圖5是一個(gè)看門(mén)狗芯片的工作方式圖。

          4.2軟件復(fù)位

          軟件復(fù)位可以節(jié)約電路板的空間和成本;軟件復(fù)位方式更靈活,更便捷。尤其是對(duì)一些功能模塊或者外設(shè)的監(jiān)控,借鑒硬件看門(mén)狗思想,采用軟件看門(mén)狗更有優(yōu)越性。用軟件來(lái)監(jiān)測(cè)功能模塊或者外設(shè)的工作情況,一旦認(rèn)為功能模塊或者外設(shè)工作異常,通過(guò)設(shè)定特殊的標(biāo)記,達(dá)到Reset判據(jù)時(shí),則通過(guò)處理器強(qiáng)行復(fù)位并重新初始化工作異常的功能模塊或者外設(shè),而其他功能模塊或者外設(shè)照常工作。當(dāng)然,有時(shí)也需要重新復(fù)位并初始化整個(gè)系統(tǒng),使系統(tǒng)更穩(wěn)定地運(yùn)行。有些系統(tǒng)人為操作硬件復(fù)位(按鍵復(fù)位或者上下電)很不方便時(shí),或者有些系統(tǒng)和產(chǎn)品不便于讓用戶(hù)知道其重啟時(shí),就可采用軟件復(fù)位。

          4.3實(shí)例分析:手機(jī)找網(wǎng)問(wèn)題

          筆者做過(guò)一個(gè)功能手機(jī)(feature phone)項(xiàng)目,由于手機(jī)平臺(tái)剛推出,平臺(tái)不太穩(wěn)定,軟件存在一些Bug,尤其是底層Layer1部分。手機(jī)找不到網(wǎng),或者手機(jī)有網(wǎng)但過(guò)一段時(shí)間又沒(méi)有網(wǎng)的現(xiàn)象,發(fā)生概率很小,很難Debug.當(dāng)時(shí)軟件找了很長(zhǎng)時(shí)間的Bug,并把問(wèn)題反饋給平臺(tái)廠商,但沒(méi)能及時(shí)給出解決方法。情急之下,只好做了應(yīng)急之便,采用軟件復(fù)位的方法來(lái)救急。

          激光二極管相關(guān)文章:激光二極管原理

          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();