《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 80C51單片機(jī)上電復(fù)位和復(fù)位延時(shí)的時(shí)序分析
80C51單片機(jī)上電復(fù)位和復(fù)位延時(shí)的時(shí)序分析
摘要: 80C51單片機(jī)的上電復(fù)位POR(Power On Reset)實(shí)質(zhì)上就是上電延時(shí)復(fù)位,也就是在上電延時(shí)期間把單片機(jī)鎖定在復(fù)位狀態(tài)上。為什么在每次單片機(jī)接通電源時(shí),都需要加入一定的延遲時(shí)間呢?分析如下。
關(guān)鍵詞: 51單片機(jī) C51 上電復(fù)位
Abstract:
Key words :
  80C51單片機(jī)上電復(fù)位POR(Power On Reset)實(shí)質(zhì)上就是上電延時(shí)復(fù)位,也就是在上電延時(shí)期間把單片機(jī)鎖定在復(fù)位狀態(tài)上。為什么在每次單片機(jī)接通電源時(shí),都需要加入一定的延遲時(shí)間呢?分析如下。

  1  上電復(fù)位時(shí)序

  在單片機(jī)及其應(yīng)用電路每次上電的過(guò)程中,由于電源回路中通常存在一些容量大小不等的濾波電容,使得單片機(jī)芯片在其電源引腳VCC和VSS之間所感受到的電源電壓值VDD,是從低到高逐漸上升的。該過(guò)程所持續(xù)的時(shí)間一般為1~100 ms(記作taddrise)。上電延時(shí)taddrise的定義是電源電壓從10% VDD上升到90% VDD所需的時(shí)間,如圖1所示。

按此在新窗口瀏覽圖片

圖1  上電延時(shí)taddrise和起振延時(shí)tosc實(shí)測(cè)結(jié)果

  在單片機(jī)電源電壓上升到適合內(nèi)部振蕩電路運(yùn)行的范圍并且穩(wěn)定下來(lái)之后,時(shí)鐘振蕩器開(kāi)始了啟動(dòng)過(guò)程(具體包括偏置、起振、鎖定和穩(wěn)定幾個(gè)過(guò)程)。該過(guò)程所持續(xù)的時(shí)間一般為1~50 ms(記作tosc)。起振延時(shí)tosc的定義是時(shí)鐘振蕩器輸出信號(hào)的高電平達(dá)到Vih1所需的時(shí)間。從圖1所示的實(shí)際測(cè)量圖中也可以看得很清楚。這里的Vih1是單片機(jī)電氣特性中的一個(gè)普通參數(shù),代表XTAL1和RST引腳上的輸入邏輯高電平。例如,對(duì)于常見(jiàn)的單片機(jī)型號(hào)AT89C51和AT89S51,廠家給出的Vih1值為0.7VDD~VDD+0.5 V。

  從理論上講,單片機(jī)每次上電復(fù)位所需的最短延時(shí)應(yīng)該不小于treset。這里,treset等于上電延時(shí)taddrise與起振延時(shí)tosc之和,如圖1所示。從實(shí)際上講,延遲一個(gè)treset往往還不夠,不能夠保障單片機(jī)有一個(gè)良好的工作開(kāi)端。

  在單片機(jī)每次初始加電時(shí),首先投入工作的功能部件是復(fù)位電路。復(fù)位電路把單片機(jī)鎖定在復(fù)位狀態(tài)上并且維持一個(gè)延時(shí)(記作TRST),以便給予電源電壓從上升到穩(wěn)定的一個(gè)等待時(shí)間;在電源電壓穩(wěn)定之后,再插入一個(gè)延時(shí),給予時(shí)鐘振蕩器從起振到穩(wěn)定的一個(gè)等待時(shí)間;在單片機(jī)開(kāi)始進(jìn)入運(yùn)行狀態(tài)之前,還要至少推遲2個(gè)機(jī)器周期的延時(shí),如圖2所示。

按此在新窗口瀏覽圖片

圖2  復(fù)位信號(hào)釋放的時(shí)機(jī)

  2  上電復(fù)位電路3款

  上述一系列的延時(shí),都是利用在單片機(jī)RST引腳上外接一個(gè)RC支路的充電時(shí)間而形成的。典型復(fù)位電路如圖3(a)所示,其中的阻容值是原始手冊(cè)中提供的。在經(jīng)歷了一系列延時(shí)之后,單片機(jī)才開(kāi)始按照時(shí)鐘源的工作頻率,進(jìn)入到正常的程序運(yùn)行狀態(tài)。從圖2所示的實(shí)測(cè)曲線中可以同時(shí)看到4條曲線: VDD、Vrst、XTAL2和ALE。在電源電壓以及振蕩器輸出信號(hào)穩(wěn)定之后,又等待了一段較長(zhǎng)的延時(shí)才釋放RST信號(hào),使得CPU脫離復(fù)位鎖定狀態(tài);而RST信號(hào)一旦被釋放,立刻在ALE引腳上就可檢測(cè)到持續(xù)的脈沖信號(hào)。

按此在新窗口瀏覽圖片

圖3  上電復(fù)位延時(shí)電路

  由于標(biāo)準(zhǔn)80C51的復(fù)位邏輯相對(duì)簡(jiǎn)單,復(fù)位源只有RST一個(gè)(相對(duì)新型單片機(jī)來(lái)說(shuō),復(fù)位源比較單一),因此各種原因所導(dǎo)致的復(fù)位活動(dòng)以及復(fù)位狀態(tài)的進(jìn)入,都要依靠在外接引腳RST上施加一定時(shí)間寬度的高電平信號(hào)來(lái)實(shí)現(xiàn)。

  標(biāo)準(zhǔn)80C51不僅復(fù)位源比較單一,而且還沒(méi)有設(shè)計(jì)內(nèi)部上電復(fù)位的延時(shí)功能,因此必須借助于外接阻容支路來(lái)增加延時(shí)環(huán)節(jié),如圖3(a)所示。其實(shí),外接電阻R還是可以省略的,理由是一些CMOS單片機(jī)芯片內(nèi)部存在一個(gè)現(xiàn)成的下拉電阻Rrst。例如,AT89系列的Rrst阻值約為50~200 kΩ;P89V51Rx2系列的Rrst阻值約為40~225 kΩ,如圖4所示。因此,在圖3(a)基礎(chǔ)上,上電復(fù)位延時(shí)電路還可以精簡(jiǎn)為圖3(b)所示的簡(jiǎn)化電路(其中電容C的容量也相應(yīng)減小了)。

按此在新窗口瀏覽圖片

圖4  復(fù)位引腳RST內(nèi)部電路

  在每次單片機(jī)斷電之后,須使延時(shí)電容C上的電荷立刻放掉,以便為隨后可能在很短的時(shí)間內(nèi)再次加電作好準(zhǔn)備。否則,在斷電后C還沒(méi)有充分放電的情況下,如果很快又加電,那么RC支路就失去了它應(yīng)有的延遲功能。因此,在圖3(a)的基礎(chǔ)上添加一個(gè)放電二極管D,上電復(fù)位延時(shí)電路就變成了如圖3(c)所示的改進(jìn)電路。也就是說(shuō),只有RC支路的充電過(guò)程對(duì)電路是有用的,放電過(guò)程不僅無(wú)用,而且會(huì)帶來(lái)潛在的危害。于是附加一個(gè)放電二極管D來(lái)大力縮短放電持續(xù)時(shí)間,以便消除隱患。二極管D只有在單片機(jī)斷電的瞬間(即VCC趨近于0 V,可以看作VCC對(duì)地短路)正向?qū)?,平時(shí)一直處于反偏截止?fàn)顟B(tài)。

  3  上電復(fù)位失敗的2種案例分析

  假如上電復(fù)位延遲時(shí)間不夠或者根本沒(méi)有延時(shí)過(guò)程,則單片機(jī)可能面臨以下2種危險(xiǎn),從而導(dǎo)致CPU開(kāi)始執(zhí)行程序時(shí)沒(méi)有一個(gè)良好的初始化,甚至陷入錯(cuò)亂狀態(tài)。

 ?、僭跁r(shí)鐘振蕩器輸出的時(shí)鐘脈沖還沒(méi)有穩(wěn)定,甚至還沒(méi)有起振之前,就因釋放RST信號(hào)的鎖定狀態(tài)而放縱CPU開(kāi)始執(zhí)行程序。這將會(huì)導(dǎo)致程序計(jì)數(shù)器PC中首次抓取的地址碼很可能是0000H之外的隨機(jī)值,進(jìn)而引導(dǎo)CPU陷入混亂狀態(tài)。參考圖5所示的實(shí)測(cè)信號(hào)曲線。

按此在新窗口瀏覽圖片

圖5  在時(shí)鐘未穩(wěn)定前釋放RST的情況

 ?、谠陔娫措妷哼€沒(méi)有上升到合適范圍之前(自然也是時(shí)鐘尚未穩(wěn)定之前),就釋放RST信號(hào)的鎖定狀態(tài),將會(huì)使單片機(jī)永遠(yuǎn)感受不到復(fù)位信號(hào)、經(jīng)歷不到復(fù)位過(guò)程、包含PC在內(nèi)的各個(gè)SFR內(nèi)容沒(méi)有被初始化而保留了隨機(jī)值,從而導(dǎo)致CPU從一個(gè)隨機(jī)地址開(kāi)始執(zhí)行程序,進(jìn)而也陷入混亂狀態(tài)。參考圖6所示的實(shí)測(cè)信號(hào)曲線。

按此在新窗口瀏覽圖片

圖6  在電源和時(shí)鐘均未穩(wěn)定前釋放RST的情況

  4  外接監(jiān)控器MAX810x

  為了提高單片機(jī)應(yīng)用系統(tǒng)的穩(wěn)定性,以及保障單片機(jī)應(yīng)用系統(tǒng)的可靠復(fù)位,許多世界著名的半導(dǎo)體公司,陸續(xù)推出了種類(lèi)繁多、功能各異、封裝微小的專(zhuān)用集成電路。本文僅以帶有電源電壓跌落復(fù)位和上電延遲復(fù)位功能的3腳芯片MAX810x為例,簡(jiǎn)單說(shuō)明。

  MAX810x(x = L、M、J、T、S或R)是美國(guó)Maxim公司研制的一組CMOS電源監(jiān)控電路,能夠?yàn)榈凸?font class="f14">微控制器MCU(或μC)、微處理器MPU(或μP)或數(shù)字系統(tǒng)監(jiān)視3~5 V的電源電壓。在電源上電、斷電和跌落期間產(chǎn)生脈寬不低于140 ms的復(fù)位脈沖。與采用分立元件或通用芯片構(gòu)成的欠壓檢測(cè)電路相比,將電壓檢測(cè)和復(fù)位延時(shí)等功能集成到一片3引腳封裝的小芯片內(nèi),大大降低了系統(tǒng)電路的復(fù)雜性,減少了元器件的數(shù)量,顯著提高了系統(tǒng)可靠性和精確度。應(yīng)用電路如圖7所示。

按此在新窗口瀏覽圖片

圖7  外接帶延時(shí)功能的電壓檢測(cè)復(fù)位電路

  MAX810x系列產(chǎn)品提供高電平復(fù)位信號(hào),并且還能提供6種固定的檢測(cè)門(mén)限(4.63 V、4.38 V、4.00 V、3.08 V、2.93 V和2.63 V)。例如,MAX810M的檢測(cè)門(mén)限電壓就是4.38 V,回差電壓約為0.16 V。

  對(duì)于MAX810,在電源上電、斷電或跌落期間,只要VCC還高于1.1 V,就能保證RESET引腳輸出高電壓。在VCC上升期間RESET維持高電平,直到電源電壓升至復(fù)位門(mén)限以上。在超過(guò)此門(mén)限后,內(nèi)部定時(shí)器大約再維持240 ms后釋放RESET,使其返回低電平。無(wú)論何時(shí)只要電源電壓降低到復(fù)位門(mén)限以下(即電源跌落),RESET引腳就會(huì)立刻變高。

  關(guān)于MAX810芯片的更多信息,可以參考該器件的產(chǎn)品手冊(cè)。



 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。