一、復位電路概述
復位信號在數(shù)字電路里面的重要性僅次于時鐘信號。對電路的復位往往是指對觸發(fā)器的復位,也就是說電路的復位中的這個“電路”,往往是指觸發(fā)器,這是需要注意的。
有的電路需要復位信號,就像是有的電路需要時鐘信號那樣,而有的電路是不需要復位信號的。復位又分為同步復位和異步復位,這兩種各有優(yōu)缺點。
下面我們主要來說說復位信號的用途和不需要復位信號的情況。
1、復位的目的
復位最基本的目的就是使電路(主要是觸發(fā)器)進入一個能穩(wěn)定操作的確定狀態(tài)(主要是觸發(fā)器在在某個確定的狀態(tài)),主要表現(xiàn)為下面兩點:
1)使電路在復位后從確定的初始狀態(tài)運行:
上電的時候,為了避免上電后進入隨機狀態(tài)而使電路紊亂,這個時候你就需要上電復位有時候,電路在某個狀態(tài)下,你想或者別人要求你從電路的初始狀態(tài)開始進行延時你的電路功能,這個時候你就要對你的電路進行復位,讓它從最初的狀態(tài)開始運行。2)使電路從錯誤狀態(tài)回到可以控制的確定狀態(tài):
有的時候,你的電路發(fā)生了異常,比如說狀態(tài)機跑飛了、系統(tǒng)供電炸了之類的,總之就是電路運行得不正常了,這個時候你就要對電路進行復位,讓它從錯誤的狀態(tài)回到一個正常的狀態(tài)。上面說的都是和實際電路有關的,下面我們就從電路仿真的角度看一下復位信號的重要性。
2、復位電路仿真的要求
復位信號在仿真里面主要是使電路仿真時具有可知的初始值:
在仿真的時候,信號在初始狀態(tài)是未知狀態(tài)(也就是所謂的x,不過對信號初始化之后的這種情況除外,因為仿真的時候?qū)π盘柍跏蓟褪切盘栍辛顺跏贾?,這就不是x了)。
對于數(shù)據(jù)通路(數(shù)字系統(tǒng)一般分為數(shù)據(jù)通路和控制通路,數(shù)據(jù)通路一般是對輸入的數(shù)據(jù)進行處理,控制通路則是對運行的情況進行操作),在實際電路中,只要輸入是有效數(shù)據(jù)(開始的時候可能不是有效的),輸出后的狀態(tài)也是確定的;在仿真的時候,也是輸入數(shù)據(jù)有效了,輸出也就確定了。也就是說,初始不定態(tài)對數(shù)據(jù)通路的影響不明顯。
對于控制通路,在實際電路中,只要控制通路完備(比如說控制通路的狀態(tài)機是完備的),即使初始狀態(tài)即使是不定態(tài),在經(jīng)過一定的循環(huán)后,還是能回到正確的狀態(tài)上;然而在仿真的時候就不行了,仿真的時候由于初始狀態(tài)為未知態(tài),控制電路一開始就陷入了未知態(tài);仿真跟實際電路不同,仿真是“串行”的,仿真時控制信號的初始不定態(tài)會導致后續(xù)的控制信號結果都是不定態(tài),也就是說,初始的不定態(tài)對控制通道是致命的。
3、不需要復位信號的一些情況
復位信號很重要,但是并不是每一部分的電路都需要復位電路,一方面是復位電路也消耗邏輯資源、占用芯片面積,另一方面是復位信號會增加電路設計的復雜性(比如要考慮復位的策略、復位的布局布線等等)。
當某個電路的輸出在任何時刻都可以不受到復位信號的控制就有正確的值時,比如說數(shù)據(jù)通路中的對數(shù)據(jù)進行處理的部分。在某些情況下,當流水線的寄存器(移位寄存觸發(fā)器)在高速應用中時,應該去掉某些寄存器的復位信號以使設計達到更高的性能,因為帶復位的觸發(fā)器比不帶復位的觸發(fā)器更復雜,反應也更慢。
復位電路是一種用來使電路恢復到起始狀態(tài)的電路設備,它的操作原理與計算器有著異曲同工之妙,只是啟動原理和手段有所不同。
復位電路都是比較簡單的大都是只有電阻和電容組合就可以辦到了,再復雜點就有三極管等配合程序來進行了。為確保微機系統(tǒng)中電路穩(wěn)定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。一般微機電路正常工作需要供電電源為5V±5%,即4.75~5.25V。由于微機電路是時序數(shù)字電路,它需要穩(wěn)定的時鐘信號,因此在電源上電時,只有當VCC超過4.75V低于5.25V以及晶體振蕩器穩(wěn)定工作時,復位信號才會撤除,微機電路開始正常工作。
在上電或復位過程中,控制CPU的復位狀態(tài):這段時間內(nèi)讓CPU保持復位狀態(tài),而不是一上電或剛復位完畢就工作,防止CPU發(fā)出錯誤的指令、執(zhí)行錯誤操作,也可以提高電磁兼容性能。
無論用戶使用哪種類型的單片機,總要涉及到單片機復位電路的設計。而單片機復位電路設計的好壞,直接影響到整個系統(tǒng)工作的可靠性。許多用戶在設計完單片機系統(tǒng),并在實驗室調(diào)試成功后,在現(xiàn)場卻出現(xiàn)了“死機”、“程序走飛”等現(xiàn)象,這主要是單片機的復位電路設計不可靠引起的。
單片機在啟動時都需要復位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。89系列單片機的復位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以響應并將系統(tǒng)復位。單片機系統(tǒng)的復位方式有:手動按鈕復位和上電復位 典型復位電路圖
手動按鈕復位需要人為在復位輸入端RST上加入高電平(圖1)。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕。當人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端。手動按鈕復位的電路如所示。由于人的動作再快也會使按鈕保持接通達數(shù)十毫秒,所以,完全能夠滿足復位的時間要求。
復位電路由電容串聯(lián)電阻構成,由圖并結合"電容電壓不能突變"的性質(zhì),可以知道,當系統(tǒng)一上電,RST腳將會出現(xiàn)高電平,并且,這個高電平持續(xù)的時間由電路的RC值來決定.典型的51單片機當RST腳的高電平持續(xù)兩個機器周期以上就將復位,所以,適當組合RC的取值就可以保證可靠的復位.
一般教科書推薦C 取10u,R取8.2K.當然也有其他取法的,原則就是要讓RC組合可以在RST腳上產(chǎn)生不少于2個機周期的高電平.至于如何具體定量計算,可以參考電路分析相關書籍. 晶振電路:典型的晶振取11.0592MHz(因為可以準確地得到9600波特率和19200波特率,用于有串口通訊的場合)/12MHz(產(chǎn)生精確的uS級時歇,方便定時操作)
常見的復位電路
80C51單片機復位電路
單片機的復位有上電復位和按鈕手動復位兩種。如圖2(a)所示為上電復位電路,圖(b)所示為上電按鍵復位電路。