當前位置:首頁 > 單片機 > 單片機
[導讀]0 前言在MCU的節(jié)電措施中,除了降低工作頻率與工作電壓以外,剩下的就是如何選擇MCU的節(jié)電模式了。由于節(jié)電的機理是設(shè)法停掉片內(nèi)一部分電路的工作,因此節(jié)電效果最好的是片內(nèi)電路全停的掉電方式。以MCS51系列的AT89C

0 前言

MCU節(jié)電措施中,除了降低工作頻率與工作電壓以外,剩下的就是如何選擇MCU的節(jié)電模式了。由于節(jié)電的機理是設(shè)法停掉片內(nèi)一部分電路的工作,因此節(jié)電效果最好的是片內(nèi)電路全停的掉電方式。以MCS51系列的AT89C2051為例,其休閑方式(CPU凍結(jié),但振蕩器、中斷、定時器與串行口等仍繼續(xù)運行)的耗電約為850uA,而掉電方式(片內(nèi)所有電路均停止工作,僅保持I/O端口引腳狀態(tài)和片內(nèi)RAM內(nèi)容不變)的耗電僅為1uA不到。顯然,對于那些正常運行中存在等待狀態(tài)的MCU應(yīng)用項目來說,應(yīng)當盡可能地選擇這種掉電方式來作節(jié)電設(shè)計。但由于掉電狀態(tài)下MCU片內(nèi)的時鐘和中斷系統(tǒng)均不工作,所以無法以片外中斷方式喚醒片內(nèi)的CPU,而只能以復(fù)位方式予以喚醒。然而實際應(yīng)用需求往往對MCU的喚醒速度有所要求,而在一般概念中MCU的復(fù)位速度是很慢的(如上電復(fù)位),且相關(guān)的數(shù)據(jù)手冊和應(yīng)用資料均未對此給出明確清晰的說明,因此MCU掉電時的復(fù)位喚醒速度便成了能否采用這種節(jié)電方式的關(guān)鍵所在。為此,有必要從理論和實踐兩方面進行探討并尋求相關(guān)答案。

1 MCU的復(fù)位方式及其特點

一般說來,MCU的復(fù)位操作通常可分為上電復(fù)位、手動復(fù)位、看門狗復(fù)位、失電復(fù)位、以及節(jié)電方式下的掉電復(fù)位。根據(jù)這些復(fù)位操作發(fā)生時的系統(tǒng)狀態(tài)又可將它們歸為三類:上電復(fù)位、運行復(fù)位、掉電復(fù)位。下面分別對這三類復(fù)位操作及其特點進行具體分析。

1.1  上電復(fù)位

上電復(fù)位幾乎是所有MCU應(yīng)用系統(tǒng)都在使用的啟動方式,它是指系統(tǒng)加電開始運行時的自動復(fù)位,一般是在電源上升穩(wěn)定后利用模擬或數(shù)字的延時環(huán)節(jié)給MCU提供一定時間進行片內(nèi)復(fù)位操作。常見的復(fù)位電路有片外RC延時電路[1]和片內(nèi)復(fù)位定時器等[5]。

對于該上電復(fù)位操作所需的時間,一般的MCU數(shù)據(jù)手冊都給出了相應(yīng)的說明。以Intel公司的MCS51 PDF文檔為例[1] :①振蕩器起振到穩(wěn)定的時間大約為1ms~10ms,(即10MHz的晶振為1ms,1MHZ的晶振為10ms);②為確??煽繌?fù)位,RST引腳上的高電平必須保持到振蕩器起振再加兩個機器周期;③上電時VCC必須在10ms左右的時間內(nèi)完成其上升。

以上三點說明給人的印象是上電復(fù)位所需的時間是很長的,而且很容易造成這樣的錯覺:上電復(fù)位所需時間=電源上升時間+振蕩器起振時間+片內(nèi)初態(tài)建立時間。這也影響了某些文獻關(guān)于上電復(fù)位時間的相關(guān)論述[3][4]。也正因為如此,在實際設(shè)計中為了確??煽繌?fù)位,設(shè)計者通常都把片外復(fù)位電路的RC數(shù)值取得較大(文獻[1]的推薦值是8.2K與10uF)。

然而事實并非如此。圖一給出了AT89C51的一個測試實例:當電源電壓上升到2V左右時振蕩器開始起振(此時距電源上升起點約1ms),爾后其振蕩幅度基本上跟隨電源電壓逐步攀升,直至2.3ms時兩者均達最大(VCC=5V,Vx2≈5Vpp);與此同時,復(fù)位時片內(nèi)初態(tài)的設(shè)置操作將I/O引腳(圖一中P1.4)電平抬高發(fā)生在VCC上升到50%時,此后若將RST引腳的高電平拉低,MCU將立即開始執(zhí)行程序,而不必等到振蕩器振幅達到最大。(以上兩個時間參數(shù)系指振蕩器的片外定時元件為4MHz陶瓷諧振器)。


       圖一AT89C51上電復(fù)位時的起振時序

由此可以得出這樣的結(jié)論:上電時的復(fù)位操作(初態(tài)設(shè)置+振蕩器起振)在電源電壓上升到其50%時便可完成,而不是在片內(nèi)振蕩器振幅穩(wěn)定的兩個機器周期之后(即片內(nèi)初態(tài)的建立并不依賴于片內(nèi)振蕩器的狀態(tài))。此后RST引腳的電平是否變低決定了MCU何時開始取指執(zhí)行。但為避免在電源電壓不足時倉促執(zhí)行程序可能對片外帶來的意外結(jié)果,復(fù)位信號還是應(yīng)當持續(xù)到電源電壓上升結(jié)束時方可撤除。從這一點出發(fā)可以認為,上電復(fù)位所需時間完全取決于電源電壓的上升時間。由于此處電源電壓上升的實測時間為2.3ms,因而可以確定文獻[1]的推薦值選得過大(8.2k×10uF=82ms),會使上電開機時間拖得太長。

1.2  運行復(fù)位

運行復(fù)位是指系統(tǒng)異常時的手動復(fù)位、程序跑飛時的看門狗復(fù)位、電源電壓下降時的失電復(fù)位等。它們的共同點是片內(nèi)振蕩器及其它電路都在正常運行,CPU正在執(zhí)行程序。

由文獻[1]中相關(guān)的運行復(fù)位時序圖可知,此時提供給MCU的RST引腳上的復(fù)位信號必須不小于兩個機器周期。這是因為MCU每個機器周期只對片外的 RST引腳采樣一次。為了避免RST引腳上的干擾信號導致復(fù)位的誤動作,必須連續(xù)采樣到兩次有效的片外RST復(fù)位信號,MCU才會啟動片內(nèi)的復(fù)位流程,使片內(nèi)的RESET信號有效(直到此時片外的RST信號方可撤去),并以此片內(nèi)RESET信號去設(shè)置片內(nèi)各部件的初始狀態(tài)以及控制隨后的取指執(zhí)行。考慮到送達片外RST引腳上的復(fù)位信號有可能正好發(fā)生在一次片內(nèi)采樣之后,所以為實現(xiàn)運行時的可靠復(fù)位RST引腳上的復(fù)位信號至少得維持2個機器周期。

1.3  掉電復(fù)位

掉電復(fù)位是指MCU處于節(jié)電的掉電狀態(tài)下以復(fù)位方式將其喚醒重新執(zhí)行指令的操作。掉電后MCU片內(nèi)的所有電路均已停止工作,但其片內(nèi)RAM內(nèi)容和各端口引腳的狀態(tài)保持不變,而且MCU的供電電壓也大都保持不變(也有少數(shù)應(yīng)用中將掉電狀態(tài)下的MCU供電電壓降為2V以求最大限度的節(jié)電)。這種情況下的復(fù)位操作與上電復(fù)位所實現(xiàn)的目標是相同的:振蕩器起振并穩(wěn)定、片內(nèi)相關(guān)部件建立初態(tài)。但與上電復(fù)位不同的是:MCU的工作電壓仍然存在。

從上電復(fù)位的討論中可以得知,其可靠復(fù)位所需時間主要取決于電源電壓的上升時間;那么對于此處掉電復(fù)位來說,當已沒有了電源電壓上升的問題時(對于那種掉電后電源電壓下降到2V者,則應(yīng)先將電源電壓上升到正常值后方可對RST引腳施加復(fù)位信號),復(fù)位所需時間又取決于什么?對于這一點,相關(guān)的數(shù)據(jù)手冊并未給出確切說明,只說“復(fù)位信號激活了振蕩器,復(fù)位信號必須保持有效到使振蕩器起振并達穩(wěn)定(一般少于10ms)” [1],這似乎是說該MCU的掉電復(fù)位喚醒時間約為數(shù)毫秒。然而,該數(shù)據(jù)手冊提供的相關(guān)內(nèi)部電路框圖[1]以及筆者所作的實際測試均表明,情況并非完全如此。

從文獻[1]中與掉電方式有關(guān)的內(nèi)部電路框圖可見,片內(nèi)振蕩器的起振和向后傳輸均受控于掉電控制位PD,因此掉電復(fù)位時必定是先進行片內(nèi)初始狀態(tài)的設(shè)置(其中包含PD位清零),然后才能使片內(nèi)振蕩器起振并后傳。同時,也正由于片內(nèi)振蕩器的起振是由片內(nèi)初態(tài)進行控制的,所以片內(nèi)初態(tài)一旦可靠建立,片外復(fù)位信號就沒有必要一直保留到使片內(nèi)振蕩器振幅趨于穩(wěn)定。以下測試證實了這一點。

圖二給出了AT89C51在掉電復(fù)位喚醒時的實際測試結(jié)果,此時其片內(nèi)振蕩器的片外定時元件為4MHz的陶瓷諧振器。


圖二 AT89C51在掉電狀態(tài)下復(fù)位時的起振時序

由圖二可見,當復(fù)位信號前沿到來時,片內(nèi)振蕩器立即在1/2VCC(2.5V)左右處開始起振。在起始的3us時段內(nèi)其振幅很小,4us~9us期間其振幅迅速增加,到10us~15us內(nèi)則漸趨穩(wěn)定。由此可得以下幾點結(jié)論:首先,片內(nèi)振蕩器的起振速度大大快于數(shù)據(jù)手冊[1]中所說的“一般少于10ms”。其次,當復(fù)位信號到來時,片內(nèi)振蕩器并未象上電復(fù)位那樣等了一段時間以后再起振,而是立即起振。這是由于在掉電復(fù)位喚醒前,電源電壓依然存在,使得片內(nèi)振蕩器的某些靜態(tài)工作點仍然維持著,所以一旦復(fù)位操作清除了掉電控制位PD,振蕩器便立即在工作點處(1/2VCC=2.5V)開始起振,顯然比上電復(fù)位時省掉了一段逐步建立工作點所需的啟動時間。

為了確切了解AT89C51的可靠復(fù)位喚醒要求片外所加的復(fù)位信號至少應(yīng)保持多少寬度,筆者以另一MCU發(fā)出的窄脈沖作為被測MCU的復(fù)位信號,并不斷改變其寬度,再以觀察被測MCU的一個I/O引腳電平的變化來判斷是否可靠地完成了復(fù)位喚醒操作,即在MCU進入掉電狀態(tài)之前先將該引腳用指令置為低電平,隨后掉電復(fù)位喚醒發(fā)生時的片內(nèi)初態(tài)設(shè)置操作又會把該引腳強制置為高電平,最后,由掉電復(fù)位喚醒結(jié)束后的第一條指令再將其立即拉為低電平。測試結(jié)果顯示,當外加的復(fù)位信號寬度為1us~6us時,被測MCU有時不能可靠復(fù)位,具體表現(xiàn)為該I/O引腳被復(fù)位的初態(tài)設(shè)置操作強制拉高后又可能隨著復(fù)位信號的撤除而立即下降。而當外加的復(fù)位信號寬度大于8us后,被測MCU就能可靠復(fù)位喚醒并在外加復(fù)位信號撤除后能順利開始執(zhí)行程序。這個結(jié)果表明:①復(fù)位時MCU的端口引腳跟隨復(fù)位信號的高電平前沿立即變高,滯后小于1us;②復(fù)位喚醒時MCU的片內(nèi)初態(tài)的設(shè)置領(lǐng)先于片內(nèi)振蕩器的起振。③復(fù)位喚醒時外加的復(fù)位信號寬度最小只需幾個us即可,不必等到振蕩器振幅達到最大就可使MCU開始執(zhí)行指令(上述8us處的振蕩幅度大約為160mVpp),這可能是因為在片內(nèi)振蕩器后面有一級分頻器,將振蕩器在1/2VCC處的小幅度振蕩整形為滿幅度時鐘信號了。

由此可知,掉電狀態(tài)下MCU的復(fù)位喚醒雖與片內(nèi)振蕩器有關(guān),但其喚醒時間并不等同于片內(nèi)振蕩器從起振到穩(wěn)定的時間。若想獲得最快的復(fù)位喚醒速度,還可考慮使用片外振蕩器,以便MCU的掉電操作對振蕩器不構(gòu)成影響。

對于非MCS51的其它MCU系列,其掉電喚醒的復(fù)位操作和時序大致與上述相同,只是具體時間參數(shù)上可能有所差異。以MICROCHIP的 PIC12F508為例[5],其片內(nèi)主管復(fù)位延時的定時器DRT的延時值分為兩類,一類是上電復(fù)位時的延時值為18ms,另一類是采用片內(nèi)RC振蕩器或片外時鐘輸入時用作復(fù)位喚醒的延時值為10us。稍顯不足的是,該文檔還聲稱當采用片外晶振時其DRT的延時值仍為18ms,這顯然與本文所測數(shù)據(jù)相差甚遠。 

2.結(jié)束語

能否以硬件復(fù)位對MCU實行快速喚醒是妨礙采用掉電方式進行MCU節(jié)電設(shè)計的一道門檻,其關(guān)鍵在于MCU掉電時的復(fù)位喚醒時間是否可知、是否夠快。本文工作就這兩點給出了答案。結(jié)論是明確的:采用片內(nèi)振蕩器時,掉電狀態(tài)下的復(fù)位喚醒時間小于片內(nèi)振蕩器從起振到穩(wěn)定的時間(且遠小于上電復(fù)位時間),采用陶瓷諧振器時,該時間可快至10微秒左右,若想進一步加快則可采用片外時鐘方案。

參考文獻
[1] MCS 51 MICROCONTROLLER FAMILY USER’S MANUAL?!ww6.informatik.tu-muenchen.de/lehre/vorlesungen/script_ez_2000 /intel-mcs51.pdf。1994,2。P.3-26~P.3-29
[2] Oscillators for Microcontrollers。www.intel.com/design/mcs51/applnots/23065901.pdf。1983,6。P. 3~P.7
[3] 孫涵芳、徐愛卿。MCS-51/96系列單片機原理及應(yīng)用[M]。北京:北京航空航天大學出版社。1988,2。P.77
[4] 何立民。單片機高級教程:應(yīng)用與設(shè)計[M]。北京:北京航空航天大學出版社。2000,8。P.109
 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉