<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 電路保護 > 正文

    嵌入式系統(tǒng)設(shè)計中的掉電保護方案

    發(fā)布時間:2012-11-09 責(zé)任編輯:rexliu

    【導(dǎo)讀】掉電保護是指在正常供電電源掉電時,迅速用備用直流電源供電,以保證在一段時間內(nèi)信息不會丟失,當(dāng)主電源恢復(fù)供電時,又自動切換為主電源供電。本文介紹的是在用ARM7系列芯片S3C4510B和μClinux構(gòu)建的嵌入式平臺上實現(xiàn)的掉電保護。

    在嵌入式系統(tǒng)設(shè)計過程中,系統(tǒng)的掉電保護應(yīng)用較多。本文介紹的是在用ARM7系列芯片S3C4510B和μClinux構(gòu)建的嵌入式平臺上實現(xiàn)的掉電保護。整個掉電保護實現(xiàn)的基本思路是:產(chǎn)生掉電信號,捕捉掉電信號和處理掉電信號。重點介紹這個過程的具體實現(xiàn)。

    在嵌入式系統(tǒng)設(shè)計與開發(fā)中,由于操作系統(tǒng)的引入,數(shù)據(jù)的讀寫往往是 通過文件的方式完成,而不是直接對存儲單元地址操作。用文件讀寫方式操作數(shù)據(jù),在程序的運行過程中往往將數(shù)據(jù)暫存在易失性的存儲空間,如SDRAM,一旦意外失電,這些數(shù)據(jù)往往被丟失。因此,當(dāng)系統(tǒng)意外失電時必須采取一定的措施進行系統(tǒng)的掉電保護,以避免系統(tǒng)產(chǎn)生混亂。防掉電程序的思路是:產(chǎn)生掉電信號,捕捉掉電信號,處理掉電信號和數(shù)據(jù)以及現(xiàn)場狀態(tài)的恢復(fù)。

    如果不引入操作系統(tǒng),直接對存儲單元進行數(shù)據(jù)操作,每次操作的數(shù)據(jù)量小,可以利用中斷服務(wù)的方式進行掉電保護;而用文件的方式進行數(shù)據(jù)操作,數(shù)據(jù)量 一般比較大,因此基于中斷服務(wù)的方式進行掉電保護已經(jīng)不再可靠。本文研究的對象是基于操作系統(tǒng)的較為復(fù)雜的嵌入式系統(tǒng)設(shè)計過程中的掉電保護。

    1 掉電保護方案實現(xiàn)的系統(tǒng)基礎(chǔ)

    掉電保護是在由ARM體系的硬件平臺和μClinux嵌入式操作系統(tǒng)的基礎(chǔ)上實現(xiàn)的。

    ARM7系列的微處理器支持八種類型的中斷處理。外部中斷請求會在外部中斷引腳有效(一般是低電平),并且程序狀態(tài)寄存器相關(guān)位(即CPSR的I控 制位)設(shè)置為允許時得到處理器響應(yīng)。響應(yīng)后處理器進入中斷工作模式,PC被裝人中斷向量0x00000018。在這個地址單元存放中斷服務(wù)程序人口地址, 中斷服務(wù)程序就可以被執(zhí)行。在掉電保護方案中,中斷服務(wù)程序很簡單,就是將表示掉電的全局變量置位即可。這樣可以縮短程序執(zhí)行時間。

    Flash存儲器是一種可在系統(tǒng)(in system)進行電擦寫,電后信息不丟失的存儲器。它具有低功耗、大容量、可整片或分扇區(qū)在系統(tǒng)編程(燒寫)、擦除等特點,并且可由內(nèi)部嵌入的算法完成 對芯片的操作,因而在各種嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。作為一種非易失性存儲器。Flash在系統(tǒng)中通常用于存放程序代碼、常量表以及一些在系統(tǒng)掉電后 需要保存的用戶數(shù)據(jù)等。常用的Flash為8位或16位的數(shù)據(jù)寬度,編程電壓為單3.3V。與Flash存儲器相比較,SDRAM不具有掉電保持數(shù)據(jù)的特 性,但其存取速度大大高于Flash存儲器,且具有讀/寫的屬性,因此,SDRAM在系統(tǒng)中主要用作程序的運行空間、數(shù)據(jù)及堆棧區(qū)。當(dāng)系統(tǒng)啟動時,CPU 首先從復(fù)位地址0x0處讀取啟動代碼,在完成系統(tǒng)的初始化后,程序代碼一般應(yīng)調(diào)入SDRAM中運行,以提高系統(tǒng)的運行速度,同時,系統(tǒng)及用戶堆棧、運行數(shù) 據(jù)也都放在SDRAM中。SDRAM的存儲單元可以理解為一個電容,總是傾向于放電,為避免數(shù)據(jù)丟失,必須定時刷新(充電)。因此,要在系統(tǒng)中使用 SDRAM,就要求微處理器具有刷新控制邏輯,或在系統(tǒng)中另外加入刷新控制邏輯電路,特別的情況是在系統(tǒng)失電后,要采取一種有效的機制確保將sDRAM中 的數(shù)據(jù)寫入F1ash中。

    2 基于掉電保護方案的硬件設(shè)計

    圖1是一種。系統(tǒng)的微處理器采用S3c4510B,是基于ARM7體系結(jié)構(gòu)的。SDRAM是一種易失性存儲器作為程序 的運行空間,類似于PC機的內(nèi)存;Flash作為程序存儲空間是非易失性的。程序運行過程中的數(shù)據(jù)往往緩存在sDRAM中,在系統(tǒng)失電時必須寫往 Flash。
     
     
    典型的嵌入式系統(tǒng)硬件設(shè)計方案

    在系統(tǒng)中,需要使用5V和3.3V的直流穩(wěn)壓電源。其中,S3C4510B及部分外圍器件需3.3V電源,另外部分器件需5V電源。為簡化系統(tǒng)電源 電路的設(shè)計,要求整個系統(tǒng)的輸入電壓為高質(zhì)量的5V的直流穩(wěn)壓電源。有別于一般的電源回路設(shè)計,本系統(tǒng)的電源回路設(shè)計過程中增加了有關(guān)掉電保護的設(shè)計。包 含這個設(shè)計的系統(tǒng)電源電路如圖2所示。
     
     系統(tǒng)電源電路
     
    這個電源回路除了可以提供5v和3.3v的電源以外,還為系統(tǒng)掉電保護提供了延時及預(yù)警功能,通過軟件的配合可以實現(xiàn)系統(tǒng)的掉電保護機制。正常情況 下,由供電回路1給整個系統(tǒng)供電。當(dāng)系統(tǒng)由于意外原因掉電時,由于輸入的比較電壓降低,這樣MAX809 模塊輸出電壓產(chǎn)生翻轉(zhuǎn)為系統(tǒng)提供掉電中斷預(yù)警信號,中斷請求通過外部中斷引腳XREQ0產(chǎn)生;同時供電回路2開始啟用。通過大電容C3、c4放電,繼續(xù)為 系統(tǒng)提供一段供電電壓,支持掉電中斷服務(wù)程序完成。供電回路2只給最小系統(tǒng)供電,并不給耗電量大的外圍部件供電。這樣,給最小系統(tǒng)的供電時間足夠長,可以 完成敏感數(shù)據(jù)的保護操作。

    通過軟件測算,電容放電可供最小系統(tǒng)工作時間在0.5~4.5S之間。這種測算方法很簡單.編寫一個掉電中斷服務(wù)子程序,這個程序只是不斷進行時間 刷新操作。同樣,可以通過軟件測定在這段時間里向Flash擦寫2~3MB。可見,在采用這種硬件體制的情況下,系統(tǒng)掉電保護能夠得到可靠的保證。

    3 掉電信號處理軟件方法的實現(xiàn)


    在μClinux系統(tǒng)下,掉電信號的捕捉有兩種方式可以進行。一種是運用系統(tǒng)調(diào)用,即采用 void(*signal(intslg,void(*func)(int)))(int)。這個函數(shù)可以為特定的中斷信號安排制訂的執(zhí)行函數(shù),用參數(shù) func傳遞。在μCllnux中,共有31個系統(tǒng)中斷信號,其中掉電信號為SIGPWR。假設(shè)掉電中斷服務(wù)處理程序為void interrupt-service(int),則中斷服務(wù)與信號關(guān)聯(lián)的方式為:signal(SIGPWR,interrupt_service)。這 種方式充分利用系統(tǒng)調(diào)用,實現(xiàn)簡單。在掉電保護方案設(shè)計初期也是采用這種機制。但事實證明這種機制并不可靠,其原因是Linux內(nèi)核產(chǎn)生和管理信號的機制 并不完善,有可能存在信號丟失。查閱有關(guān)Unix或L1nux的相關(guān)資料,可以發(fā)現(xiàn)這種狀況也普遍存在于某些其他版本的Linux和Unix中。

    另一種方式是采用守候進程的方式,開通一個進程,此進程專門等待中斷信號。主程序根據(jù)數(shù)據(jù)操作對象的不同,將自己的流程方案劃分成若干原子操作,所 謂原子操作即劃定的程序塊要么完全執(zhí)行,要么不執(zhí)行。每個操作對應(yīng)惟一狀態(tài)標志。在每個原子操作前,主進程都將會通過管道通信的方式閱讀中斷信號。如果中 斷信號產(chǎn)生,主進程首先保存狀態(tài)標志,然后將相關(guān)數(shù)據(jù)寫往Flash后退出,電源恢復(fù)后,主進程首先根據(jù)標志字確定系統(tǒng)恢復(fù)方案。圖3用流程圖的方式實現(xiàn) 這一過程。
     
    流程
     
    下面是實現(xiàn)這一過程的程序片斷:
     
    程序片斷
     
    結(jié)語
    基于該方案設(shè)計的稅控收款機在實際運行過程中,掉電保護功能完備。此掉電保護設(shè)計方法應(yīng)用對象基于ARM和μClinux構(gòu)建的嵌入式系統(tǒng),在32位嵌入式系統(tǒng)開學(xué)中具有典玨型代表意義。因此在嵌人式系統(tǒng)設(shè)計中具有推廣價值。

    要采購微處理器么,點這里了解一下價格!
    特別推薦
    技術(shù)文章更多>>
    技術(shù)白皮書下載更多>>
    熱門搜索
    ?

    關(guān)閉

    ?

    關(guān)閉

    午夜不卡久久精品无码免费| 中文字幕无码久久精品青草| 国产精品亚洲w码日韩中文| 亚洲日韩激情无码一区| 好硬~好爽~别进去~动态图, 69式真人无码视频免 | 亚洲人成影院在线无码观看| 人妻精品久久久久中文字幕| 国产乱人伦Av在线无码| 免费无码国产在线观国内自拍中文字幕 | 最近的中文字幕在线看视频| 亚洲AV无码久久寂寞少妇| 亚洲欧美综合中文| 无码中文字幕乱在线观看| 2022中文字字幕久亚洲| 老司机亚洲精品影院无码| 中文字幕在线观看亚洲| a级毛片无码兔费真人久久 | 乱人伦人妻中文字幕无码| 无码免费又爽又高潮喷水的视频 | 久久99久久无码毛片一区二区| 成年无码av片完整版| 一本无码中文字幕在线观| 欧洲Av无码放荡人妇网站| 婷婷五月六月激情综合色中文字幕| 精品无码久久久久久国产| 亚洲一区精品无码| 亚洲av中文无码| 中文字幕无码乱人伦| 国产三级无码内射在线看| 中文字幕无码第1页| 最好看2019高清中文字幕| 国产免费黄色无码视频| 少妇无码一区二区二三区| 中文字幕亚洲综合久久菠萝蜜| 中文字幕无码久久人妻| 国产AV无码专区亚洲精品| 午夜无码A级毛片免费视频| 久久久无码精品亚洲日韩蜜臀浪潮| 久久亚洲精精品中文字幕| 中文字幕网伦射乱中文| 成人无码免费一区二区三区|