一、什么是單片機復位
單片機復(fu)位(wei)(wei)(wei)是(shi)單片機上的(de)復(fu)位(wei)(wei)(wei)電(dian)(dian)路的(de)復(fu)位(wei)(wei)(wei)操作,作用是(shi)使電(dian)(dian)路恢復(fu)到起始狀態(tai),為確保微機系統中電(dian)(dian)路穩定(ding)可靠(kao)工作,復(fu)位(wei)(wei)(wei)電(dian)(dian)路是(shi)必不(bu)可少(shao)的(de)一部分(fen)。
簡單來(lai)說,單片機復位(wei),就(jiu)是(shi)把數(shu)據清零,從頭(tou)再來(lai)的意思,一般單片機在運(yun)算過程中,由于干(gan)擾等外界(jie)原因,造(zao)成寄存器中數(shu)據混(hun)亂,不能使其正常繼(ji)續執行程序(xu),或產生(sheng)的結果不正確(que)時(shi),需要復位(wei),以(yi)使程序(xu)重新開始運(yun)行。
二、單片機復位方式有幾種
復位(wei)的功(gong)能是(shi)將單(dan)(dan)片機里的重新開始,主(zhu)要(yao)防止程序(xu)混(hun)亂,也就是(shi)跑飛、或者(zhe)死機等現(xian)象,單(dan)(dan)片機的復位(wei)方式主(zhu)要(yao)有以下幾種:
1、上電復位
當電(dian)(dian)源(yuan)電(dian)(dian)壓VCC低于上電(dian)(dian)/掉電(dian)(dian)復位(wei)電(dian)(dian)路(lu)(lu)的門檻電(dian)(dian)壓時(shi),所(suo)有的邏輯電(dian)(dian)路(lu)(lu)都會被復位(wei)。當VCC重新恢(hui)復到正常電(dian)(dian)壓時(shi),單片機延遲32768個時(shi)鐘后(hou),上電(dian)(dian)復位(wei)/掉電(dian)(dian)復位(wei)狀態(tai)結束。
2、看門狗復位
在(zai)工(gong)業應(ying)用中,絕大多數(shu)應(ying)用系(xi)(xi)統(tong)(tong)都會用到看(kan)(kan)門(men)(men)狗(gou)(gou)(gou)(gou)(Watch Dog Timer)。在(zai)工(gong)業控制(zhi)/汽車電子/航空航天等(deng)高可靠(kao)系(xi)(xi)統(tong)(tong)中,為了防止系(xi)(xi)統(tong)(tong)在(zai)異(yi)常情況下受到干擾(rao)導致MCU長時間(jian)異(yi)常工(gong)作、程(cheng)序跑(pao)飛,通常是引(yin)進看(kan)(kan)門(men)(men)狗(gou)(gou)(gou)(gou)。如果(guo)CPU不在(zai)規定時間(jian)內訪(fang)問(wen)看(kan)(kan)門(men)(men)狗(gou)(gou)(gou)(gou),看(kan)(kan)門(men)(men)狗(gou)(gou)(gou)(gou)就認(ren)為系(xi)(xi)統(tong)(tong)出了問(wen)題,會強制(zhi)將系(xi)(xi)統(tong)(tong)進行(xing)(xing)復位,使系(xi)(xi)統(tong)(tong)從頭開(kai)始執行(xing)(xing)程(cheng)序。
3、軟件復位
單(dan)(dan)片(pian)(pian)機(ji)系(xi)統在(zai)運行過(guo)程中,有時難(nan)免會遇到需要軟件(jian)復位(wei)的(de)(de)(de)情況。有些古老的(de)(de)(de)單(dan)(dan)片(pian)(pian)機(ji)在(zai)硬(ying)件(jian)上(shang)可能不(bu)支持軟件(jian)復位(wei)功能,所以(yi)我們就需要去模擬(ni)軟件(jian)復位(wei)的(de)(de)(de)過(guo)程。比較常(chang)(chang)用的(de)(de)(de)方(fang)法是(shi)跳(tiao)(tiao)轉(zhuan)到程序的(de)(de)(de)入(ru)口地址,利用匯(hui)編LJMP、JMP等跳(tiao)(tiao)轉(zhuan)語句跳(tiao)(tiao)到程序的(de)(de)(de)初始入(ru)口。但是(shi)現在(zai)常(chang)(chang)用的(de)(de)(de)一些單(dan)(dan)片(pian)(pian)機(ji)(8051、STM32等)在(zai)硬(ying)件(jian)上(shang)都(dou)支持軟件(jian)復位(wei),配置專門(men)的(de)(de)(de)寄(ji)存(cun)器就可以(yi)實現復位(wei)功能。例如常(chang)(chang)用的(de)(de)(de)8051單(dan)(dan)片(pian)(pian)機(ji),有專門(men)的(de)(de)(de)ISP_CONTER寄(ji)存(cun)器來支持復位(wei)。
4、按鍵復位
如果系統內(nei)部(bu)不能正常復位或者軟件復位無效(xiao)的時候,可以(yi)依(yi)靠(kao)外部(bu)的按(an)鍵進行復位。
三、單片機復位原理是什么
無論使用上面的哪種復位方式,其本質都是在操作RST復位引腳。8051單片機的(de)(de)(de)(de)RST引腳(jiao)只需要保持2個機(ji)器(qi)周(zhou)期的(de)(de)(de)(de)高電(dian)(dian)(dian)(dian)平即(ji)可產生復位。利(li)用(yong)電(dian)(dian)(dian)(dian)容(rong)(rong)電(dian)(dian)(dian)(dian)壓不可突變(bian)的(de)(de)(de)(de)性質,適當選取(qu)電(dian)(dian)(dian)(dian)容(rong)(rong)充放電(dian)(dian)(dian)(dian)的(de)(de)(de)(de)參數(電(dian)(dian)(dian)(dian)容(rong)(rong)值、電(dian)(dian)(dian)(dian)阻值)即(ji)可達到要求。剛開始上(shang)電(dian)(dian)(dian)(dian)時,由于電(dian)(dian)(dian)(dian)容(rong)(rong)電(dian)(dian)(dian)(dian)壓(0V)不能突變(bian),所(suo)以(yi)電(dian)(dian)(dian)(dian)容(rong)(rong)兩(liang)端電(dian)(dian)(dian)(dian)壓為(wei)(wei)(wei)0V,RST此時的(de)(de)(de)(de)電(dian)(dian)(dian)(dian)壓為(wei)(wei)(wei)VCC。電(dian)(dian)(dian)(dian)容(rong)(rong)慢(man)慢(man)充電(dian)(dian)(dian)(dian),充電(dian)(dian)(dian)(dian)結束后,電(dian)(dian)(dian)(dian)容(rong)(rong)兩(liang)端的(de)(de)(de)(de)電(dian)(dian)(dian)(dian)壓為(wei)(wei)(wei)VCC,所(suo)以(yi)此時RST的(de)(de)(de)(de)電(dian)(dian)(dian)(dian)勢(shi)為(wei)(wei)(wei)0V。電(dian)(dian)(dian)(dian)容(rong)(rong)的(de)(de)(de)(de)這一段充電(dian)(dian)(dian)(dian)時間要大(da)于單(dan)片機(ji)的(de)(de)(de)(de)2個機(ji)器(qi)周(zhou)期。
軟件復位和看門狗(gou)復位方式的原理都是使RST的高電平持續(xu)時間能夠(gou)維(wei)持2個機(ji)器周期。