嵌入式係統設計中的掉電保護方案
發布時間:2012-11-09 責任編輯:rexliu
【導讀】diaodianbaohushizhizaizhengchanggongdiandianyuandiaodianshi,xunsuyongbeiyongzhiliudianyuangongdian,yibaozhengzaiyiduanshijianneixinxibuhuidiushi,dangzhudianyuanhuifugongdianshi,youzidongqiehuanweizhudianyuangongdian。benwenjieshaodeshizaiyongARM7係列芯片S3C4510B和μClinux構建的嵌入式平台上實現的掉電保護。
在嵌入式係統設計過程中,係統的掉電保護應用較多。本文介紹的是在用ARM7係列芯片S3C4510B和μClinux構建的嵌入式平台上實現的掉電保護。整個掉電保護實現的基本思路是:產生掉電信號,捕捉掉電信號和處理掉電信號。重點介紹這個過程的具體實現。
在嵌入式係統設計與開發中,由於操作係統的引入,數據的讀寫往往是 通(tong)過(guo)文(wen)件(jian)的(de)方(fang)式(shi)完(wan)成(cheng),而(er)不(bu)是(shi)直(zhi)接(jie)對(dui)存(cun)儲(chu)單(dan)元(yuan)地(di)址(zhi)操(cao)作(zuo)。用(yong)文(wen)件(jian)讀(du)寫(xie)方(fang)式(shi)操(cao)作(zuo)數(shu)據(ju),在(zai)程(cheng)序(xu)的(de)運(yun)行(xing)過(guo)程(cheng)中(zhong)往(wang)往(wang)將(jiang)數(shu)據(ju)暫(zan)存(cun)在(zai)易(yi)失(shi)性(xing)的(de)存(cun)儲(chu)空(kong)間(jian),如(ru)SDRAM,一(yi)旦(dan)意(yi)外(wai)失(shi)電(dian),這(zhe)些(xie)數(shu)據(ju)往(wang)往(wang)被(bei)丟(diu)失(shi)。因(yin)此(ci),當(dang)係(xi)統(tong)意(yi)外(wai)失(shi)電(dian)時(shi)必(bi)須(xu)采(cai)取(qu)一(yi)定(ding)的(de)措(cuo)施(shi)進(jin)行(xing)係(xi)統(tong)的(de)掉(diao)電(dian)保(bao)護(hu),以(yi)避(bi)免(mian)係(xi)統(tong)產(chan)生(sheng)混(hun)亂(luan)。防(fang)掉(diao)電(dian)程(cheng)序(xu)的(de)思(si)路(lu)是(shi):產生掉電信號,捕捉掉電信號,處理掉電信號和數據以及現場狀態的恢複。
如果不引入操作係統,直接對存儲單元進行數據操作,每次操作的數據量小,可以利用中斷服務的方式進行掉電保護;而用文件的方式進行數據操作,數據量 yibanbijiaoda,yincijiyuzhongduanfuwudefangshijinxingdiaodianbaohuyijingbuzaikekao。benwenyanjiudeduixiangshijiyucaozuoxitongdejiaoweifuzadeqianrushixitongshejiguochengzhongdediaodianbaohu。
1 掉電保護方案實現的係統基礎
掉電保護是在由ARM體係的硬件平台和μClinux嵌入式操作係統的基礎上實現的。
ARM7係列的微處理器支持八種類型的中斷處理。外部中斷請求會在外部中斷引腳有效(一般是低電平),並且程序狀態寄存器相關位(即CPSR的I控 製位)設置為允許時得到處理器響應。響應後處理器進入中斷工作模式,PC被裝人中斷向量0x00000018。在這個地址單元存放中斷服務程序人口地址, zhongduanfuwuchengxujiukeyibeizhixing。zaidiaodianbaohufanganzhong,zhongduanfuwuchengxuhenjiandan,jiushijiangbiaoshidiaodiandequanjubianliangzhiweijike。zheyangkeyisuoduanchengxuzhixingshijian。
Flash存儲器是一種可在係統(in system)進行電擦寫,電後信息不丟失的存儲器。它具有低功耗、大容量、可整片或分扇區在係統編程(燒寫)、擦除等特點,並且可由內部嵌入的算法完成 對芯片的操作,因而在各種嵌入式係統中得到了廣泛的應用。作為一種非易失性存儲器。Flash在係統中通常用於存放程序代碼、常量表以及一些在係統掉電後 需要保存的用戶數據等。常用的Flash為8位或16位的數據寬度,編程電壓為單3.3V。與Flash存儲器相比較,SDRAM不具有掉電保持數據的特 性,但其存取速度大大高於Flash存儲器,且具有讀/寫的屬性,因此,SDRAM在係統中主要用作程序的運行空間、數據及堆棧區。當係統啟動時,CPU 首先從複位地址0x0處讀取啟動代碼,在完成係統的初始化後,程序代碼一般應調入SDRAM中運行,以提高係統的運行速度,同時,係統及用戶堆棧、運行數 據也都放在SDRAM中。SDRAM的存儲單元可以理解為一個電容,總是傾向於放電,為避免數據丟失,必須定時刷新(充電)。因此,要在係統中使用 SDRAM,jiuyaoqiuweichuliqijuyoushuaxinkongzhiluoji,huozaixitongzhonglingwaijiarushuaxinkongzhiluojidianlu,tebiedeqingkuangshizaixitongshidianhou,yaocaiquyizhongyouxiaodejizhiquebaojiangsDRAM中 的數據寫入F1ash中。
2 基於掉電保護方案的硬件設計
圖1是一種。係統的微處理器采用S3c4510B,是基於ARM7體係結構的。SDRAM是一種易失性存儲器作為程序 的運行空間,類似於PC機的內存;Flash作為程序存儲空間是非易失性的。程序運行過程中的數據往往緩存在sDRAM中,在係統失電時必須寫往 Flash。

在係統中,需要使用5V和3.3V的直流穩壓電源。其中,S3C4510B及部分外圍器件需3.3V電源,另外部分器件需5V電源。為簡化係統電源 電路的設計,要求整個係統的輸入電壓為高質量的5V的直流穩壓電源。有別於一般的電源回路設計,本係統的電源回路設計過程中增加了有關掉電保護的設計。包 含這個設計的係統電源電路如圖2所示。

這個電源回路除了可以提供5v和3.3v的電源以外,還為係統掉電保護提供了延時及預警功能,通過軟件的配合可以實現係統的掉電保護機製。正常情況 下,由供電回路1給整個係統供電。當係統由於意外原因掉電時,由於輸入的比較電壓降低,這樣MAX809 模塊輸出電壓產生翻轉為係統提供掉電中斷預警信號,中斷請求通過外部中斷引腳XREQ0產生;同時供電回路2開始啟用。通過大電容C3、c4放電,繼續為 係統提供一段供電電壓,支持掉電中斷服務程序完成。供電回路2隻給最小係統供電,並不給耗電量大的外圍部件供電。這樣,給最小係統的供電時間足夠長,可以 完成敏感數據的保護操作。
通過軟件測算,電容放電可供最小係統工作時間在0.5~4.5S之間。這種測算方法很簡單.編寫一個掉電中斷服務子程序,這個程序隻是不斷進行時間 刷新操作。同樣,可以通過軟件測定在這段時間裏向Flash擦寫2~3MB。可見,在采用這種硬件體製的情況下,係統掉電保護能夠得到可靠的保證。
3 掉電信號處理軟件方法的實現
在μClinux係統下,掉電信號的捕捉有兩種方式可以進行。一種是運用係統調用,即采用 void(*signal(intslg,void(*func)(int)))(int)。這個函數可以為特定的中斷信號安排製訂的執行函數,用參數 func傳遞。在μCllnux中,共有31個係統中斷信號,其中掉電信號為SIGPWR。假設掉電中斷服務處理程序為void interrupt-service(int),則中斷服務與信號關聯的方式為:signal(SIGPWR,interrupt_service)。這 種方式充分利用係統調用,實現簡單。在掉電保護方案設計初期也是采用這種機製。但事實證明這種機製並不可靠,其原因是Linux內核產生和管理信號的機製 並不完善,有可能存在信號丟失。查閱有關Unix或L1nux的相關資料,可以發現這種狀況也普遍存在於某些其他版本的Linux和Unix中。
lingyizhongfangshishicaiyongshouhoujinchengdefangshi,kaitongyigejincheng,cijinchengzhuanmendengdaizhongduanxinhao。zhuchengxugenjushujucaozuoduixiangdebutong,jiangzijideliuchengfanganhuafenchengruoganyuanzicaozuo,suo 謂wei原yuan子zi操cao作zuo即ji劃hua定ding的de程cheng序xu塊kuai要yao麼me完wan全quan執zhi行xing,要yao麼me不bu執zhi行xing。每mei個ge操cao作zuo對dui應ying惟wei一yi狀zhuang態tai標biao誌zhi。在zai每mei個ge原yuan子zi操cao作zuo前qian,主zhu進jin程cheng都dou將jiang會hui通tong過guo管guan道dao通tong信xin的de方fang式shi閱yue讀du中zhong斷duan信xin號hao。如ru果guo中zhong 斷信號產生,主進程首先保存狀態標誌,然後將相關數據寫往Flash後退出,電源恢複後,主進程首先根據標誌字確定係統恢複方案。圖3用流程圖的方式實現 這一過程。

下麵是實現這一過程的程序片斷:

結語
基於該方案設計的稅控收款機在實際運行過程中,掉電保護功能完備。此掉電保護設計方法應用對象基於ARM和μClinux構建的嵌入式係統,在32位嵌入式係統開學中具有典玨型代表意義。因此在嵌人式係統設計中具有推廣價值。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 具身智能成最大亮點!CITE 2026開幕峰會釋放產業強信號
- 助力醫療器械產業高質量發展 派克漢尼汾閃耀2026 ICMD
- 比異步時鍾更隱蔽的“芯片殺手”——跨複位域(RDC)問題
- 數據之外:液冷技術背後的連接器創新
- “眼在手上”的嵌入式實踐:基於ROS2與RK3576的機械臂跟隨抓取方案
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索




