解決系統(tǒng)上電和掉電可靠性的一種處理方法_第1頁
解決系統(tǒng)上電和掉電可靠性的一種處理方法_第2頁
解決系統(tǒng)上電和掉電可靠性的一種處理方法_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、部解決系統(tǒng)上電和掉電可靠性的一種處理方法目前,在一分采用單片機的智能儀表中,其軟件往往采用無限循環(huán)的結(jié)構(gòu)如,圖1(a)所示。這種結(jié)構(gòu)看上去程序是從上面的箭頭開始,但實際上比這要晚,因為系統(tǒng)上電需要一定的時間。這種結(jié)構(gòu)看上去沒有結(jié)束,而實際上是有的,這就是系統(tǒng)的掉電。掉電可能發(fā)生在程序運行的任何地方。在上電和掉電這一過渡階段中,單片機管腳的邏輯電平是不確定的。由于上述原因,會造成單片機程序運行不正常,例如:進入不該進入的外部中斷,讀了不正確的鍵值,亂寫了EEPROM等等。為了提高程序運行的可靠性,必須妥善處理這兩個問題。本文采用AT89C51進行介紹,其它有些單片機也可參考這種方法解決。 1.

2、程序(開始)上電的處理這一部分比較容易處理,只要在程序開始時先運行一段延時(等待)子程序(約210s,視情況而定)等待系統(tǒng)上電完畢(參見圖1)。在延時子程序內(nèi)可以做顯示、自檢等工作,但是所有與管腳電平有關(guān)的工作如讀鍵盤、開中斷、讀寫EEPROM等都不能進行。等延時結(jié)束后,系統(tǒng)已完成上電的過渡過程,各個管腳的電平已經(jīng)正常,上述工作就可以進行了。 圖12. 程序(結(jié)束)掉電的處理程序掉電的處理也可以參考上面的方法用延時子程序等待系統(tǒng)掉電完畢,但由于掉電可以在程序的任意一點發(fā)生,用純軟件方法很難實現(xiàn)。本人找到的辦法是:利用一些硬件檢測電壓降低的情況,如電壓低于某一數(shù)值后接著產(chǎn)生復(fù)位信號即可將程序轉(zhuǎn)向

3、程序開頭的延時程序去執(zhí)行,當延時還沒有結(jié)束時掉電就已完成了。至于檢測掉電并且產(chǎn)生復(fù)位信號的電路有不少,例如可以采用電源電壓監(jiān)視芯片TL7705CP,如圖2所示,其工作原理如下:當+5V電壓降到4.75V以下時,TL7705CP第7腳sense檢測到這一點,從而使第6腳reset產(chǎn)生正的復(fù)位信號給89C51第9腳RST;而89C51一旦復(fù)位就會執(zhí)行本文第1部分所講的延時程序。電路中R1是手動復(fù)位上拉電阻,R2是正復(fù)位信號輸出下拉電阻,C1決定復(fù)位脈沖寬度,C2是旁路電容。 圖23. 結(jié)論經(jīng)實際應(yīng)用證明,上述措施有效地防止了89C51一上電就亂進外部中斷以及上電/掉電時亂讀鍵、亂寫EEPROM等混

4、亂現(xiàn)象的發(fā)生。E2PROM是可電擦除的數(shù)據(jù)存儲器。這種存儲器的優(yōu)點是數(shù)據(jù)可永久保存,無需外加電源。正是因為這個原因,E2PROM在單片機中得到了廣泛的應(yīng)用。E2PROM的缺點是數(shù)據(jù)的寫入次數(shù)是有限的且讀寫速度較慢,以現(xiàn)在流行的串行E2PROM為例,壽命一般在10萬次左右。這雖然能滿足多數(shù)用戶的要求,但當要進行大量的數(shù)據(jù)讀寫操作時,難免發(fā)生數(shù)據(jù)寫入錯誤,因此必須提供多個單元來存儲統(tǒng)一數(shù)據(jù),以提高E2PROM的寫入壽命。本文采用滾動地址指針的方法,實現(xiàn)多單元數(shù)據(jù)指針的自動定位。一、數(shù)據(jù)指針定位數(shù)據(jù)指針就是指向存儲數(shù)據(jù)的E2PROM單元地址。為了便于數(shù)據(jù)指針的自動定位,我們用一鎖鏈式隊列來存儲數(shù)據(jù),

5、將數(shù)據(jù)和地址混合存儲(數(shù)據(jù)+地址指針),并事先規(guī)定數(shù)據(jù)重復(fù)存儲的數(shù)量為2的冪次。如果數(shù)據(jù)重復(fù)存儲的數(shù)量為2I,數(shù)據(jù)指針的字長為J,第K個數(shù)據(jù)的自動指針K = K Mod 2I = K Mod 2J。為了便于理解,我們選單一字節(jié)地址作為地址指針,這樣同一數(shù)據(jù)重復(fù)存儲的次數(shù)依次可以是2、4、8、16、32、64、128。我們用0255來代表不同的地址單元。圖1給出了一個重復(fù)K次的鎖鏈式隊列。圖1中的每個地址都是一個數(shù)據(jù)存儲的首地址。我們用K表示一個數(shù)據(jù)E2PROM中開辟存儲單元的個數(shù)。數(shù)據(jù)在E2PROM中一般按連續(xù)地址存放,所以,后一個數(shù)據(jù)的地址一定為前一個數(shù)據(jù)的地址加1。這樣,就不難給出當前地址

6、指針:圖1  數(shù)據(jù)存儲方式如果地址指針的P字長為K,則它可以表示地址數(shù)為2K,自動地址指針的最大數(shù)字2K1,當?shù)刂分羔槼^2K時,將自動回0。由于為同一數(shù)據(jù)開辟的地址單元都限定為2的冪次,所以,最后存入數(shù)據(jù)的地址指針與下一個地址指針一定不是連續(xù)數(shù),這樣即取得了數(shù)據(jù)的當前指針。只要對讀取的地址指針取模運算,即可得到實際數(shù)據(jù)的存儲地址。理論上可以證明,只要數(shù)據(jù)重復(fù)單元的數(shù)量為2的冪次,且不超地址指針的范圍,則最后寫入數(shù)據(jù)的單元的下一個單元的兩個地址一定是間斷的。二、四字節(jié)鎖鏈隊列下面介紹數(shù)據(jù)在X25045中多單元重復(fù)存儲的方法,并給出16次重復(fù)存儲的數(shù)據(jù)指針定位實用程序(限于篇幅,程序部分從略,需要者可從本刊網(wǎng)上查詢帶實用程序的全文)。我們知道,X25045一次最多只能寫入4字節(jié)的數(shù)據(jù)。如果要存儲的某個數(shù)據(jù)為3個字節(jié),則可將第4個字節(jié)作為地址指針存儲,從而形成4字節(jié)的鎖鏈隊列。假定用100H開始的64個連續(xù)地址存儲數(shù)據(jù),則第4字節(jié)的數(shù)據(jù)指針內(nèi)容可能是表1中的數(shù)據(jù)。由表1可見,最后寫入數(shù)據(jù)的地址指針的下一地址是間斷的,只要對表中數(shù)據(jù)取16的模即可得到實際的數(shù)據(jù)存儲地址。表中1、2、3行地

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論