淺談單片機(jī)系統(tǒng)與掉電保護(hù)電路的可靠性提高方案
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 問(wèn)題的提出
在以單片機(jī)為核心的智能儀表及過(guò)程控制系統(tǒng)中常常需要長(zhǎng)時(shí)間保存實(shí)時(shí)參數(shù)。通??刹捎肊2PROM、FLASH MEMORY以及以隨機(jī)存貯器為基礎(chǔ)內(nèi)置電池的非易失芯片來(lái)實(shí)現(xiàn)。E2PROM、 FLASHMEMORY屬于可在線修改的ROM器件,它解決了應(yīng)用系統(tǒng)中實(shí)時(shí)參數(shù)掉電保存的難題,但這類芯片寫入速度慢(ms級(jí)),擦寫次數(shù)有限(萬(wàn)次級(jí)),有些器件擦寫次數(shù)雖達(dá)百萬(wàn)次,對(duì)某些應(yīng)用系統(tǒng)而言,其寫入次數(shù)仍然是有限的。因此這類芯片只能用在需要保護(hù)的數(shù)據(jù)量小且寫入不頻繁的系統(tǒng)中。對(duì)那些需要大容量高速反復(fù)存取實(shí)時(shí)參數(shù)的系統(tǒng),只能用隨機(jī)存貯器RAM加掉電保護(hù)電路實(shí)現(xiàn)。實(shí)現(xiàn)上述原理的掉電保護(hù)方法很多,某些廠商甚至以RAM為基礎(chǔ)內(nèi)置電池開(kāi)發(fā)出自掉電保護(hù)芯片,用這類獨(dú)立的掉電保護(hù)芯片或電路構(gòu)成的單片機(jī)系統(tǒng),實(shí)際應(yīng)用中有時(shí)會(huì)出現(xiàn)工作不穩(wěn)定現(xiàn)象。經(jīng)分析發(fā)現(xiàn):若系統(tǒng)電源的變化使RAM先處于保護(hù)狀態(tài),而系統(tǒng)尚未復(fù)位,單片機(jī)仍正常工作,這時(shí)就出現(xiàn)寫不進(jìn),讀不出的現(xiàn)象,引發(fā)系統(tǒng)故障。對(duì)于這種單片機(jī)復(fù)位電平與掉電保護(hù)電平不一致而影響系統(tǒng)可靠性的問(wèn)題,本文提出用微處理器監(jiān)控電路使單片機(jī)復(fù)位與掉電保護(hù)聯(lián)動(dòng)的解決方案。RAM在單片機(jī)復(fù)位時(shí)處于保護(hù)狀態(tài),工作時(shí)正常存取,從而有效地解決前述問(wèn)題。
單片機(jī)自動(dòng)完成賦予它的任務(wù)的過(guò)程,也就是單片機(jī)執(zhí)行程序的過(guò)程,即一條條執(zhí)行的指令的過(guò)程,所謂指令就是把要求單片機(jī)執(zhí)行的各種操作用的命令的形式寫下來(lái),這是在設(shè)計(jì)人員賦予它的指令系統(tǒng)所決定的,一條指令對(duì)應(yīng)著一種基本操作;單片機(jī)所能執(zhí)行的全部指令,就是該單片機(jī)的指令系統(tǒng),不同種類的單片機(jī),其指令系統(tǒng)亦不同。為使單片機(jī)能自動(dòng)完成某一特定任務(wù),必須把要解決的問(wèn)題編成一系列指令(這些指令必須是選定單片機(jī)能識(shí)別和執(zhí)行的指令),這一系列指令的集合就成為程序,程序需要預(yù)先存放在具有存儲(chǔ)功能的部件——存儲(chǔ)器中。存儲(chǔ)器由許多存儲(chǔ)單元(最小的存儲(chǔ)單位)組成,就像大樓房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出并執(zhí)行就像大樓房的每個(gè)房間的被分配到了唯一一個(gè)房間號(hào)一樣,每一個(gè)存儲(chǔ)單元也必須被分配到唯一的地址號(hào),該地址號(hào)稱為存儲(chǔ)單元的地址,這樣只要知道了存儲(chǔ)單元的地址,就可以找到這個(gè)存儲(chǔ)單元,其中存儲(chǔ)的指令就可以被取出,然后再被執(zhí)行。
2 MAX791[1]芯片介紹
MAX791是MAXIM公司生產(chǎn)的高性能微處理器電源監(jiān)視電路,它與AMDA公司的AMD791性能相同可以互換。功能包括微處理器復(fù)位、備用電池切換、看門狗電路、CMOS-RAM寫入保護(hù)及電源故障告警等,邏輯框圖如圖2—1[1]。圖中VCC、VOUT分別為電源輸入、輸出,VBATT為電池輸入,為電源低輸出,和為RAM芯片使能輸入與輸出,為復(fù)位輸出,為人工復(fù)位輸入,為低將強(qiáng)制RESET有效,SWT、WDI、、分別為看門狗定時(shí)設(shè)置、觸發(fā)輸入、超時(shí)輸出和超時(shí)脈沖。PFI和分別為電源故障輸入和輸出,PFI低于1.25 V時(shí)變低。MAX791的復(fù)位時(shí)序如圖2—2[1]所示。
3 掉電保護(hù)電路設(shè)計(jì)
3.1 硬件設(shè)計(jì)
圖3—1給出了一種帶掉電保護(hù)的MCS-51[2]、[3]單片機(jī)應(yīng)用系統(tǒng)的原理圖。76C88是CMOS型的RAM芯片,其容量為8K×8,它有兩個(gè)片選端和CS2,只有為低電平同時(shí)CS2為高電平時(shí)芯片才被選中。因此將CS2接MAX791的輸出端,同時(shí)寫允許信號(hào)通過(guò)MAX791的使能控制輸入端和輸出端,間接從MCS-51的引入,保證在系統(tǒng)復(fù)位期間不能讀寫,有效地保護(hù)了76C88中的數(shù)據(jù)。結(jié)合圖2—2 MAX791的復(fù)位時(shí)序,圖3—1的電路工作原理分析如下?! ?/p>
上電過(guò)程:當(dāng)VCC從OV上升到復(fù)位門限1.65V, 輸出仍將維持有效電平200ms的時(shí)間,保證電源電壓正常后系統(tǒng)的有效復(fù)位。
有效期間76C88的CS2處于低電平,即片選信號(hào)無(wú)效,保證上電過(guò)程中片內(nèi)數(shù)據(jù)不被改寫。當(dāng)VCC大于VBATT時(shí),VOUT自動(dòng)切換到與VCC相接,76C88轉(zhuǎn)由VCC供電。
RAM(隨機(jī)存取存儲(chǔ)器)RAM -random access memory 隨機(jī)存儲(chǔ)器。存儲(chǔ)單元的內(nèi)容可按需隨意取出或存入,且存取的速度與存儲(chǔ)單元的位置無(wú)關(guān)的存儲(chǔ)器。這種存儲(chǔ)器在斷電時(shí)將丟失其存儲(chǔ)內(nèi)容,故主要用于存儲(chǔ)短時(shí)間使用的程序。 按照存儲(chǔ)信息的不同,隨機(jī)存儲(chǔ)器又分為靜態(tài)隨機(jī)存儲(chǔ)器(Static RAM,SRAM)和動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Dynamic RAM,DRAM)。
正常工作:在此狀態(tài)下,CS2為高電平,通過(guò)MAX791的使能電路復(fù)制,單片機(jī)可對(duì)76C88進(jìn)行讀寫操作。為防止程序跑飛,提高系統(tǒng)的可靠性,在程序中插入看門狗觸發(fā)指令,當(dāng)程序跑飛超過(guò)1.6 s不能觸發(fā)看門狗時(shí),輸出低電平,通過(guò)MR使系統(tǒng)復(fù)位。
掉電過(guò)程:當(dāng)VCC從正常電壓下降到復(fù)位門限4.65V時(shí),立即有效,CS2變成低電平,76C88進(jìn)入保護(hù)狀態(tài),保證掉電過(guò)程中片內(nèi)數(shù)據(jù)不被改寫。當(dāng)VCC小于VBATT時(shí),VOUT自動(dòng)切換到與VBATT相接,76C88轉(zhuǎn)由后備電池供電。 對(duì)多數(shù)應(yīng)用系統(tǒng),上電復(fù)位后程序從頭開(kāi)始即能滿足要求, 利用MAX791的電源報(bào)警功能,能方便地達(dá)到這一目的:分析圖2-2,當(dāng)VCC下降到4.65V+150mV時(shí),產(chǎn)生負(fù)跳變,向單片機(jī)發(fā)中斷請(qǐng)求,因貯能效應(yīng),VCC從4.8 V降到4.65 V有幾個(gè)ms的時(shí)間,足夠單片機(jī)執(zhí)行幾百條甚至上千條指令,利用這段時(shí)間在中斷服務(wù)程序中保護(hù)斷點(diǎn)及實(shí)時(shí)參數(shù)。重新來(lái)電后轉(zhuǎn)入斷點(diǎn)繼續(xù)執(zhí)行。
3.2 軟件設(shè)計(jì)
圖3—1所示單片機(jī)系統(tǒng)的軟件可分成主程序和電源報(bào)警中斷服務(wù)程序兩部分。主程序中必須插入指令經(jīng)常觸發(fā)WDI,且間隔時(shí)間不能超過(guò)1.6s,報(bào)警中斷必須設(shè)置為非屏蔽中斷沒(méi)有可以將設(shè)置成唯一的一個(gè)高級(jí)中斷以替代。程序流程圖如圖3—2。
4 結(jié)束語(yǔ)
將復(fù)位與掉電保護(hù)聯(lián)動(dòng),能有效解決掉電保護(hù)與復(fù)位不協(xié)調(diào)引起的系統(tǒng)工作不穩(wěn)定現(xiàn)象,提高掉電保護(hù)電路及單片機(jī)應(yīng)用系統(tǒng)的可靠性。以MAX791微處理器監(jiān)控電路構(gòu)成的單片機(jī)掉電保護(hù)系統(tǒng),在電力、石化等工業(yè)現(xiàn)場(chǎng)應(yīng)用效果十分理想。