概況
如果主板上沒有ISA總線,也就是8XX系列芯片組的主板,IDE的復位直接來自于南橋,在兩者之間通常也會有一個非門或是反向電子開關,PCI總線的復位直接來自于南橋,有些主板會在兩者之間加有跟隨器,此跟隨器起緩沖延時作用。且PCI的常態為3.3V或5V,復位時為0V,AGP總線的復位信號和PCI總線的復位信號是同路產生。也有的主板AGP總線的復位也是由南橋直接供給,常態時為高電平,復位時為低電平,對于北橋的復位信號也是和PCI總線的復位信號同路產生,也就是說PCI總線的復位信號,AGP總線的復位信號和北橋的復位信號通常是串在一根線上的,復位信號都相同,對于CPU的復位信號,不同的主板都是由北橋供給,I/O的復位信號是由南橋直接供給,通常是3.3V或5V。在8XX系列芯片組的主板中,固件中心(B205)和時鐘發生器芯片也有復位信號,且復位信號由南橋直接供給,常態為3.3V,復位時為0V。
復位電路工作原理如右圖所示,VCC上電時,C充電,在10K電阻上出現電壓,使得單片機復位;幾個毫秒后,C充滿,10K電阻上電流降為0,電壓也為0,使得單片機進入工作狀態。工作期間,按下S,C放電。
S松手,C又充電,在10K電阻上出現電壓,使得單片機復位。幾個毫秒后,單片機進入工作狀態。
復位方式
單片機在啟動時都需要復位,以使CPU及系統各部件處于確定的初始狀態,并從初態開始工作。89系列單片機的復位信號是從RST引腳輸入到芯片內的施密特觸發器中的。當系統處于正常工作狀態時,且振蕩器穩定后,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以響應并將系統復位。單片機系統的復位方式有:手動按鈕復位和上電復位。
1、手動按鈕復位
手動按鈕復位需要人為在復位輸入端RST上加入高電平(圖1)。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕。當人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端。手動按鈕復位的電路如所示。由于人的動作再快也會使按鈕保持接通達數十毫秒,所以,完全能夠滿足復位的時間要求。
2、上電復位
AT89C51的上電復位電路如圖2所示,只要在RST復位輸入引腳上接一電容至Vcc端,下接一個電阻到地即可。對于CMOS型單片機,由于在RST端內部有一個下拉電阻,故可將外部電阻去掉,而將外接電容減至1uF。上電復位的工作過程是在加電時,復位電路通過電容加給RST端一個短暫的高電平信號,此高電平信號隨著Vcc對電容的充電過程而逐漸回落,即RST端的高電平持續時間取決于電容的充電時間。為了保證系統能夠可靠地復位,RST端的高電平信號必須維持足夠長的時間。上電時,Vcc的上升時間約為10ms,而振蕩器的起振時間取決于振蕩頻率,如晶振頻率為10MHz,起振時間為1ms;晶振頻率為1MHz,起振時間則為10ms。在圖2的復位電路中,當Vcc掉電時,必然會使RST端電壓迅速下降到0V以下,但是,由于內部電路的限制作用,這個負電壓將不會對器件產生損害。另外,在復位期間,端口引腳處于隨機狀態,復位后,系統將端口置為全“l”態。如果系統在上電時得不到有效的復位,則程序計數器PC將得不到一個合適的初值,因此,CPU可能會從一個未被定義的位置開始執行程序。
3、積分型上電復位
常用的上電或開關復位電路如圖3所示。上電后,由于電容C3的充電和反相門的作用,使RST持續一段時間的高電平。當單片機已在運行當中時,按下復位鍵K后松開,也能使RST為一段時間的高電平,從而實現上電或開關復位的操作。
根據實際操作的經驗,下面給出這種復位電路的電容、電阻參考值。
C=1uF,Rl=lk,R2=10k
分類
單片機復位電路主要有四種類型:
(1)微分型復位電路:
(2)積分型復位電路:
(3)比較器型復位電路:
比較器型復位電路的基本原理。上電復位時,由于組成了一個RC低通網絡,所以比較器的正相輸入端的電壓比負相端輸入電壓延遲一定時間.而比較器的負相端網絡的時間常數遠遠小于正相端RC網絡的時間常數,因此在正端電壓還沒有超過負端電壓時,比較器輸出低電平,經反相器后產生高電平.復位脈沖的寬度主要取決于正常電壓上升的速度.由于負端電壓放電回路時間常數較大,因此對電源電壓的波動不敏感.但是容易產生以下二種不利現象:
(1)電源二次開關間隔太短時,復位不可靠:
(2)當電源電壓中有浪涌現象時,可能在浪涌消失后不能產生復位脈沖。
為此,將改進比較器重定電路,如圖9所示.這個改進電路可以消除第一種現象,并減少第二種現象的產生.為了徹底消除這二種現象,可以利用數字邏輯的方法和比較器配合,設計的比較器重定電路。此電路稍加改進即可作為上電復位和看門狗復位電路共同復位的電路,大大提高了復位的可靠性。
(4)看門狗型復位電路.
看門狗型復位電路主要利用CPU正常工作時,定時復位計數器,使得計數器的值不超過某一值;當CPU不能正常工作時,由于計數器不能被復位,因此其計數會超過某一值,從而產生復位脈沖,使得CPU恢復正常工作狀態.此復位電路的可靠性主要取決于軟件設計,即將定時向復位電路發出脈沖的程序放在何處.一般設計,將此段程序放在定時器中斷服務子程序中.然而,有時這種設計仍然會引起程序走飛或工作不正常.原因主要是:當程序"走飛"發生時定時器初始化以及開中斷之后的話,這種"走飛"情況就有可能不能由Watchdog復位電路校正回來.因為定時器中斷一真在產生,即使程序不正常,Watchdog也能被正常復位.為此提出定時器加預設的設計方法.即在初始化時壓入堆棧一個地址,在此地址內執行的是一條關中斷和一條死循環語句.在所有不被程序代碼占用的地址盡可能地用子程序返回指令RET代替.這樣,當程序走飛后,其進入陷阱的可能性將大大增加.而一旦進入陷阱,定時器停止工作并且關閉中斷,從而使Watchdog復位電路會產生一個復位脈沖將CPU復位.當然這種技術用于實時性較強的控制或處理軟件中有一定的困難。