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