市場(chǎng)上比較流行的單片機(jī)種類主要有Intel公司、Atmel公司和Philip公司的8051系列單片機(jī),Motorola 公司的M6800系列單片機(jī),Intel公司的MCS96系列單片機(jī)以及Microchip公司的PIC系列單片機(jī)。無(wú)論用戶使用哪種類型的單片機(jī),總要涉及到單片機(jī)復(fù)位電路的設(shè)計(jì)。而單片機(jī)復(fù)位電路設(shè)計(jì)的好壞,直接影響到整個(gè)系統(tǒng)工作的可靠性。許多用戶在設(shè)計(jì)完單片機(jī)系統(tǒng),并在實(shí)驗(yàn)室調(diào)試成功后,在現(xiàn)場(chǎng)卻出現(xiàn)了“死機(jī)”、“程序走飛”等現(xiàn)象,這主要是單片機(jī)的復(fù)位電路設(shè)計(jì)不可靠引起的。圖1是一個(gè)單片機(jī)與大功率LED八段顯示器共享一個(gè)電源,并采用微分復(fù)位電路的實(shí)例。在這種情況下,系統(tǒng)有時(shí)會(huì)出現(xiàn)一些不可預(yù)料的現(xiàn)象,如無(wú)規(guī)律可循的“死機(jī)”、“程序走飛”等。而用仿真器調(diào)試時(shí)卻無(wú)此現(xiàn)象發(fā)生或極少發(fā)生此現(xiàn)象。又如圖2所示,在此圖中單片機(jī)復(fù)位采用另外一種復(fù)位電路。在此電路的應(yīng)用中,用戶有時(shí)會(huì)發(fā)現(xiàn)在關(guān)閉電源后的短時(shí)間內(nèi)再次開(kāi)啟電源,單片機(jī)可能會(huì)工作不正常。這些現(xiàn)象,都可認(rèn)為是由于單片機(jī)復(fù)位電
路的設(shè)計(jì)不當(dāng)引起的。
目前為止,單片機(jī)復(fù)位電路主要有四種類型:(1)微分型復(fù)位電路;(2)積分型復(fù)位電路;(3)比較器型復(fù)位電路;(4)看門(mén)狗型復(fù)位電路。另外,Maxim等公司也推出了專用于復(fù)位的專用芯片[1]。
1 復(fù)位電路的數(shù)學(xué)模型及可靠性分析
1.1 微分型復(fù)位電路
微分型復(fù)位電路的等效電路如圖3所示。以高電平復(fù)位為例。建立如下方程:
電源上電時(shí),可以認(rèn)為Us為階躍信號(hào),即
。其中U0是由于下拉電阻R在CPU復(fù)位端引起的電壓值,一般為0.3V以下。但在實(shí)際應(yīng)用中,Us不可能為理想的階躍信號(hào)。其主要原因有兩點(diǎn):(1)穩(wěn)壓電源的輸出開(kāi)關(guān)特性;(2)設(shè)計(jì)人員在設(shè)計(jì)電路時(shí),為保證電源電壓穩(wěn)定性,往往在電源的輸入端并聯(lián)一個(gè)大電容,從而導(dǎo)致了Us不可能為階躍信號(hào)特征。由于第一種情況與第二種情況在本質(zhì)上是一樣的,即對(duì)Us的上升斜率產(chǎn)生影響,從而影響了的URST的復(fù)位特性。為此假Us的上升斜率為k,從0V~Us需要T 時(shí)間,即:
當(dāng)T<<τ時(shí),Us上電時(shí)可等效為階躍信號(hào)。與前相同,當(dāng)T>>τ時(shí),令A(yù)=T/τ,則:
即此時(shí)的復(fù)位
可靠性較前面的好。
另一種情況就是設(shè)計(jì)人員將一些開(kāi)關(guān)性質(zhì)的功率器件,如大功率LED發(fā)不管與單片機(jī)系統(tǒng)共享一個(gè)穩(wěn)壓電源,而單片機(jī)系統(tǒng)的復(fù)位端采用微分復(fù)位電路,由此也將造成復(fù)位的不正?,F(xiàn)象。具體分析如圖4所示。
將器件等效為電阻RL,其中開(kāi)關(guān)特性即RL很小或RL很大兩種工作狀態(tài)。而穩(wěn)壓電源的基本工作原理是:ΔRL→ΔI→ΔU→-ΔI→-ΔU。從中可以看出,負(fù)載的變化必然引電流的變化。為了分析簡(jiǎn)單,假設(shè)R>RL,并且R>>R0.這樣,可以近似地鈄以上電路網(wǎng)絡(luò)看作兩個(gè)網(wǎng)絡(luò)的組合,并且網(wǎng)絡(luò)之間的負(fù)載效應(yīng)可以忽略不計(jì)。
第一個(gè)電路網(wǎng)絡(luò)等效為一個(gè)分壓電路。當(dāng)RL從RLmin→Rlmax時(shí),使其變化為階躍性持,則UA為一個(gè)賦的階躍信號(hào)。
UA(t)=[Rlmax/(Rlmax+R0)]U t≥0
UA(t)=[Rlmin/(Rlmin+R0)]U t<0
用此階躍信號(hào)作為第二個(gè)電路網(wǎng)絡(luò),一階微分電路的輸入,則可得下式:
(d/dt)UA(t)=(1/RC)URST(t)+(d/dt)URST(t)
URST(0)=0
解之得:
從上式可以看出,由于負(fù)載的突變和穩(wěn)壓電源的穩(wěn)壓作用,將在復(fù)位端引入一個(gè)類脈沖,從而導(dǎo)致CPU工作不正常。
1.2 積分型復(fù)位電路
此電路的等效電路如圖5所示。仍以高電平復(fù)位為例,同樣可以建立如下方程:
當(dāng)系統(tǒng)上電時(shí),假設(shè)Us(t)=AU(t)為階躍函數(shù),U0=0,則:
當(dāng)反相器正常工作后,Uc若仍能保持在VIL以下,
則其輸出就可以為高電平;而且如果從反相器正常工作后開(kāi)始,經(jīng)過(guò)不小于復(fù)位脈沖寬度的時(shí)間TR后,Uc才能達(dá)到VIL以上,那么上電復(fù)位就能保證可靠。所以在實(shí)際應(yīng)用中,設(shè)計(jì)人員常常將R、CF的值增大以提高時(shí)間常數(shù),并且應(yīng)用具有斯密特輸入的CMOS反相器以提高抗干擾性。然而此復(fù)位電路常常在二次電源開(kāi)關(guān)相對(duì)較短的時(shí)間間隔情況下出現(xiàn)異常。這主要是由于放電回路與充電回路相同,導(dǎo)致放電時(shí)間常數(shù)較大,從而導(dǎo)致UC電壓下降過(guò)度。為此有文獻(xiàn)[2]介紹如圖 6所示的改進(jìn)電路。
從圖6可以看出放電回路的時(shí)間常數(shù)一般遠(yuǎn)遠(yuǎn)小于充電時(shí)間常數(shù)。這時(shí),上面所提到的重復(fù)開(kāi)關(guān)電源而造成上電復(fù)位不可靠的現(xiàn)象就可以得到控制。然而,由于放電時(shí)間常數(shù)過(guò)短,降低了此復(fù)位電路在工作中對(duì)電源電壓波動(dòng)的不敏感性。例如,當(dāng)電源電壓有波動(dòng)時(shí),此時(shí)由于放電過(guò)快,從而有可能造成Uc低于反相器的VIL電壓值,帶來(lái)不必要的復(fù)位脈沖。此現(xiàn)象在單片機(jī)工作于Sleep方式與Active方式切換,而電源輸出功率又相對(duì)較弱時(shí)可能出現(xiàn)。為此提出針對(duì)以上現(xiàn)象的改進(jìn)積分型復(fù)位電路(如圖7所示)。圖7中,R1<<R2,適當(dāng)調(diào)整R1值的大小就可避免以上情況發(fā)生。
1.3 比較器型復(fù)位電路
比較器型復(fù)位電路的基本原理如圖8所示。上電復(fù)位時(shí),由于組成了一個(gè)RC低通網(wǎng)絡(luò),所以比較器的正相輸入端的電壓比負(fù)相端輸入電壓延遲一定時(shí)間。而比較器的負(fù)相端網(wǎng)絡(luò)的時(shí)間常數(shù)遠(yuǎn)遠(yuǎn)小于正相端RC網(wǎng)絡(luò)的時(shí)間常數(shù),因此在正端電壓還沒(méi)有超過(guò)負(fù)端電壓時(shí),比較器輸出低電平,經(jīng)反相器后產(chǎn)生高電平。復(fù)位脈沖的寬度主要取決于正常電壓上升的速度。由于負(fù)端電壓放電回路時(shí)間常數(shù)較大,因此對(duì)電源電壓的波動(dòng)不敏感。但是容易產(chǎn)生以下二種不利現(xiàn)象:(1)電源二次開(kāi)關(guān)間隔太短時(shí),復(fù)位不可靠;(2)當(dāng)電源電壓中有浪涌現(xiàn)象時(shí),可能在浪涌消失后不能產(chǎn)生復(fù)位脈沖。為此,將改進(jìn)比較器重定電路,如圖9所示。這個(gè)改進(jìn)電路可以消除第一種現(xiàn)象,并減少第二種現(xiàn)象的產(chǎn)生。為了徹底消除這二種現(xiàn)象,可以利用數(shù)字邏輯的方法與比較器配合,設(shè)計(jì)如圖10所示的比較器重定電路。此電路稍加改進(jìn)即可作為上電復(fù)位與看門(mén)狗復(fù)位電路共同復(fù)位的電路,大大提高了復(fù)位的可靠性。
1.4 看門(mén)狗型復(fù)位電路
看門(mén)狗型復(fù)位電路主要利用CPU正常工作時(shí),定時(shí)復(fù)位計(jì)數(shù)器,使得計(jì)數(shù)器的值不超過(guò)某一值;當(dāng)CPU不能正常工作時(shí),由于計(jì)數(shù)器不能被復(fù)位,因此其計(jì)數(shù)會(huì)超過(guò)某一值,從而產(chǎn)生復(fù)位脈沖,使得CPU恢復(fù)正常工作狀態(tài)。典型應(yīng)用的Watchdog復(fù)位電路如圖11所示。此復(fù)位電路的可靠性主要取決于軟件設(shè)計(jì),即將定時(shí)向復(fù)位電路發(fā)出脈沖的程序放在何處。一般設(shè)計(jì),將此段程序放在定時(shí)器中斷服務(wù)子程序中。然而,有時(shí)這種設(shè)計(jì)仍然會(huì)引起程序走飛或工作不正常[3]。原因主要是:當(dāng)程序“走飛”發(fā)生時(shí)定時(shí)器初始化以及開(kāi)中斷之后的話,這種“走飛”情況就有可能不能由Watchdog復(fù)位電路校正回來(lái)。因?yàn)槎〞r(shí)器中斷一真在產(chǎn)生,即使程序不正常,Watchdog也能被正常復(fù)位。為此提出定時(shí)器加預(yù)設(shè)的設(shè)計(jì)方法。即在初始化時(shí)壓入堆棧一個(gè)地址,在此地址內(nèi)執(zhí)行的是一條關(guān)中斷和一條死循環(huán)語(yǔ)句。在所有不被程序代碼占用的地址盡可能地用子程序返回指令RET代替。這樣,當(dāng)程序走飛后,其進(jìn)入陷阱的可能性將大大增加。而一旦進(jìn)入陷阱,定時(shí)器停止工作并且關(guān)閉中斷,從而使Watchdog復(fù)位電路會(huì)產(chǎn)生一個(gè)復(fù)位脈沖將CPU復(fù)位。當(dāng)然這種
技術(shù)用于實(shí)時(shí)性較強(qiáng)的控制或處理軟件中有一定的困難。
2 專用復(fù)位芯片簡(jiǎn)介(MAX813L)
目前,在市場(chǎng)上有許多流行的專用復(fù)位芯片,了解它們的工作原理對(duì)電路可靠性的分析及設(shè)計(jì)至關(guān)重要。以Maxim公司生產(chǎn)的MAX813L為例,解剖專用復(fù)位芯片的一般工作原理。對(duì)于其它芯片,可根據(jù)本文所提供的四種復(fù)位電路一一對(duì)其分析即可求得結(jié)論。
MAX813L具有上電復(fù)位、Watchdog輸出、掉電電壓監(jiān)視、手動(dòng)復(fù)位四大功能。具體原理框圖如圖12所示。本文局限于討論復(fù)位電路部分及看門(mén)狗定時(shí)器部分。
從圖12中可以看出,WDI(Watchdog Input)主要是作為Watchdog計(jì)數(shù)器重定用的。在1.6秒內(nèi)若CPU不觸發(fā)復(fù)位看門(mén)狗定時(shí)器,則WDO(Watchdog Output)將輸出低電平。復(fù)位電路分為手工復(fù)位與上電復(fù)位。從原理圖12中可以看出,上電復(fù)位與本文圖10所提到的電路原理相同,即用比較器產(chǎn)生觸發(fā)信號(hào)觸發(fā)觸發(fā)器,以此產(chǎn)生復(fù)位信號(hào)。同時(shí),對(duì)時(shí)基產(chǎn)生的脈沖進(jìn)行定,當(dāng)復(fù)位時(shí)間達(dá)140毫秒時(shí),Reset發(fā)生器產(chǎn)生一脈沖使復(fù)位信號(hào)無(wú)效。上電復(fù)位時(shí),只要電壓低于4.63V,復(fù)位信號(hào)Reset就有效;當(dāng)電源電壓超過(guò)4.63V時(shí),Reset信號(hào)仍將繼續(xù)保持140毫秒左右,以保證CPU復(fù)位可靠后無(wú)效。手動(dòng)復(fù)位時(shí),MR(Manual Reset)接地時(shí)間不小于150納秒,則可產(chǎn)生一個(gè)手動(dòng)復(fù)位過(guò)程。即在復(fù)位端產(chǎn)生140毫秒的有效復(fù)位信號(hào)(高電平有效)。若將WDO端與MR連接,則可組成上電復(fù)位及看門(mén)狗復(fù)位電路。
3 復(fù)位電路設(shè)計(jì)時(shí)的注意點(diǎn)
本文所提到的各種復(fù)位電路中,微分復(fù)位電路簡(jiǎn)單,但易引入干擾沒(méi)有監(jiān)控CPU運(yùn)行的能力;積分復(fù)位電路簡(jiǎn)單可靠,但由于對(duì)電源電壓波動(dòng)不敏感,從而有可能出現(xiàn)CPU由于電源電壓的瞬間過(guò)低而造成工作不正常的情況;比較器復(fù)位電路電路較復(fù)雜,工作可靠;Watchdog復(fù)位電路電路較復(fù)雜,工作可靠并且具有監(jiān)控CPU運(yùn)行的能力。在使用中應(yīng)根據(jù)電路板的空間、電源電壓特性、系統(tǒng)運(yùn)行現(xiàn)場(chǎng)等情況,綜合考慮而定。般有以下幾條可供參考:
(1)在使用微分型復(fù)位電路并且使用穩(wěn)壓電源時(shí),應(yīng)考慮在電容輸入端加入適當(dāng)?shù)碾姼幸詼p少負(fù)載突變而引起的干擾復(fù)位脈沖的產(chǎn)生。在電路板空間有限的情況下可以選用此復(fù)位電路。
(2)在使用積分型復(fù)位電路時(shí),一方面應(yīng)著重考慮上電復(fù)位時(shí)電源電壓的上升率,特別在電源電壓上升率較小時(shí),應(yīng)考慮用較為復(fù)雜的比較型復(fù)位電路。另一方面應(yīng)考慮電路是否有降壓舉措以降低功耗,若有則應(yīng)考慮二極管的正向壓降對(duì)復(fù)位電路的影響。
(3)在設(shè)計(jì)比較器型復(fù)位電路時(shí),應(yīng)著重考慮電源電壓的波動(dòng)性。當(dāng)系統(tǒng)工作在惡劣環(huán)境下時(shí),外界干擾的竄入可能引起毛刺電壓,從而導(dǎo)致不正常的復(fù)位。為此有必要根據(jù)手刺電壓的峰峰值以及脈寬采取以下措施:(a)當(dāng)毛剌電壓峰峰值沒(méi)有達(dá)到電源電壓的正常值與系統(tǒng)正常工作所需最低電壓值之差時(shí),可適當(dāng)降低比較器的復(fù)位電壓下限;(b)當(dāng)毛刺電壓峰峰值超過(guò)電源電壓的正常值與系統(tǒng)正常工作所需電壓之差時(shí),一方面應(yīng)采取措施降低毛刺電壓,另一方面應(yīng)采用較為復(fù)雜的比較器型上電復(fù)位電路(如圖10所示)。
(4)在選用或自己設(shè)計(jì)Watchdog型復(fù)位電路時(shí),應(yīng)注意輸入Watchdog的“喂狗”信號(hào)應(yīng)該是沿信號(hào),而不是電平信號(hào),同時(shí)應(yīng)考慮撤銷復(fù)位電壓的電源電壓值應(yīng)大于系統(tǒng)最小正常電壓值。
評(píng)論