一、什么是單片機復位
單片機復位是單片機上的復位電路的復位操作,作用是使電路恢復到起始狀態(tài),為確保微機系統(tǒng)中電路穩(wěn)定可靠工作,復位電路是必不可少的一部分。
簡單來說,單片機復位,就是把數(shù)據(jù)清零,從頭再來的意思,一般單片機在運算過程中,由于干擾等外界原因,造成寄存器中數(shù)據(jù)混亂,不能使其正常繼續(xù)執(zhí)行程序,或產(chǎn)生的結果不正確時,需要復位,以使程序重新開始運行。
二、單片機復位方式有幾種
復位的功能是將單片機里的重新開始,主要防止程序混亂,也就是跑飛、或者死機等現(xiàn)象,單片機的復位方式主要有以下幾種:
1、上電復位
當電源電壓VCC低于上電/掉電復位電路的門檻電壓時,所有的邏輯電路都會被復位。當VCC重新恢復到正常電壓時,單片機延遲32768個時鐘后,上電復位/掉電復位狀態(tài)結束。
2、看門狗復位
在工業(yè)應用中,絕大多數(shù)應用系統(tǒng)都會用到看門狗(Watch Dog Timer)。在工業(yè)控制/汽車電子/航空航天等高可靠系統(tǒng)中,為了防止系統(tǒng)在異常情況下受到干擾導致MCU長時間異常工作、程序跑飛,通常是引進看門狗。如果CPU不在規(guī)定時間內(nèi)訪問看門狗,看門狗就認為系統(tǒng)出了問題,會強制將系統(tǒng)進行復位,使系統(tǒng)從頭開始執(zhí)行程序。
3、軟件復位
單片機系統(tǒng)在運行過程中,有時難免會遇到需要軟件復位的情況。有些古老的單片機在硬件上可能不支持軟件復位功能,所以我們就需要去模擬軟件復位的過程。比較常用的方法是跳轉到程序的入口地址,利用匯編LJMP、JMP等跳轉語句跳到程序的初始入口。但是現(xiàn)在常用的一些單片機(8051、STM32等)在硬件上都支持軟件復位,配置專門的寄存器就可以實現(xiàn)復位功能。例如常用的8051單片機,有專門的ISP_CONTER寄存器來支持復位。
4、按鍵復位
如果系統(tǒng)內(nèi)部不能正常復位或者軟件復位無效的時候,可以依靠外部的按鍵進行復位。
三、單片機復位原理是什么
無論使用上面的哪種復位方式,其本質都是在操作RST復位引腳。8051單片機的RST引腳只需要保持2個機器周期的高電平即可產(chǎn)生復位。利用電容電壓不可突變的性質,適當選取電容充放電的參數(shù)(電容值、電阻值)即可達到要求。剛開始上電時,由于電容電壓(0V)不能突變,所以電容兩端電壓為0V,RST此時的電壓為VCC。電容慢慢充電,充電結束后,電容兩端的電壓為VCC,所以此時RST的電勢為0V。電容的這一段充電時間要大于單片機的2個機器周期。
軟件復位和看門狗復位方式的原理都是使RST的高電平持續(xù)時間能夠維持2個機器周期。