嵌入式係統設計中的掉電保護方案
發布時間:2012-11-09 責任編輯:rexliu
【導讀】掉diao電dian保bao護hu是shi指zhi在zai正zheng常chang供gong電dian電dian源yuan掉diao電dian時shi,迅xun速su用yong備bei用yong直zhi流liu電dian源yuan供gong電dian,以yi保bao證zheng在zai一yi段duan時shi間jian內nei信xin息xi不bu會hui丟diu失shi,當dang主zhu電dian源yuan恢hui複fu供gong電dian時shi,又you自zi動dong切qie換huan為wei主zhu電dian源yuan供gong電dian。本ben文wen介jie紹shao的de是shi在zai用yongARM7係列芯片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,如ruSDRAM,yidanyiwaishidian,zhexieshujuwangwangbeidiushi。yinci,dangxitongyiwaishidianshibixucaiquyidingdecuoshijinxingxitongdediaodianbaohu,yibimianxitongchanshenghunluan。fangdiaodianchengxudesilushi:產生掉電信號,捕捉掉電信號,處理掉電信號和數據以及現場狀態的恢複。
如果不引入操作係統,直接對存儲單元進行數據操作,每次操作的數據量小,可以利用中斷服務的方式進行掉電保護;而用文件的方式進行數據操作,數據量 一yi般ban比bi較jiao大da,因yin此ci基ji於yu中zhong斷duan服fu務wu的de方fang式shi進jin行xing掉diao電dian保bao護hu已yi經jing不bu再zai可ke靠kao。本ben文wen研yan究jiu的de對dui象xiang是shi基ji於yu操cao作zuo係xi統tong的de較jiao為wei複fu雜za的de嵌qian入ru式shi係xi統tong設she計ji過guo程cheng中zhong的de掉diao電dian保bao護hu。
1 掉電保護方案實現的係統基礎
掉電保護是在由ARM體係的硬件平台和μClinux嵌入式操作係統的基礎上實現的。
ARM7係列的微處理器支持八種類型的中斷處理。外部中斷請求會在外部中斷引腳有效(一般是低電平),並且程序狀態寄存器相關位(即CPSR的I控 製位)設置為允許時得到處理器響應。響應後處理器進入中斷工作模式,PC被裝人中斷向量0x00000018。在這個地址單元存放中斷服務程序人口地址, 中(zhong)斷(duan)服(fu)務(wu)程(cheng)序(xu)就(jiu)可(ke)以(yi)被(bei)執(zhi)行(xing)。在(zai)掉(diao)電(dian)保(bao)護(hu)方(fang)案(an)中(zhong),中(zhong)斷(duan)服(fu)務(wu)程(cheng)序(xu)很(hen)簡(jian)單(dan),就(jiu)是(shi)將(jiang)表(biao)示(shi)掉(diao)電(dian)的(de)全(quan)局(ju)變(bian)量(liang)置(zhi)位(wei)即(ji)可(ke)。這(zhe)樣(yang)可(ke)以(yi)縮(suo)短(duan)程(cheng)序(xu)執(zhi)行(xing)時(shi)間(jian)。
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中。
另ling一yi種zhong方fang式shi是shi采cai用yong守shou候hou進jin程cheng的de方fang式shi,開kai通tong一yi個ge進jin程cheng,此ci進jin程cheng專zhuan門men等deng待dai中zhong斷duan信xin號hao。主zhu程cheng序xu根gen據ju數shu據ju操cao作zuo對dui象xiang的de不bu同tong,將jiang自zi己ji的de流liu程cheng方fang案an劃hua分fen成cheng若ruo幹gan原yuan子zi操cao作zuo,所suo weiyuanzicaozuojihuadingdechengxukuaiyaomewanquanzhixing,yaomebuzhixing。meigecaozuoduiyingweiyizhuangtaibiaozhi。zaimeigeyuanzicaozuoqian,zhujinchengdoujianghuitongguoguandaotongxindefangshiyueduzhongduanxinhao。ruguozhong 斷信號產生,主進程首先保存狀態標誌,然後將相關數據寫往Flash後退出,電源恢複後,主進程首先根據標誌字確定係統恢複方案。圖3用流程圖的方式實現 這一過程。

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

結語
基於該方案設計的稅控收款機在實際運行過程中,掉電保護功能完備。此掉電保護設計方法應用對象基於ARM和μClinux構建的嵌入式係統,在32位嵌入式係統開學中具有典玨型代表意義。因此在嵌人式係統設計中具有推廣價值。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索



