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