嵌入式係統設計中的掉電保護方案
發布時間: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)用(yong)ARM7係列芯片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:產生掉電信號,捕捉掉電信號,處理掉電信號和數據以及現場狀態的恢複。
如果不引入操作係統,直接對存儲單元進行數據操作,每次操作的數據量小,可以利用中斷服務的方式進行掉電保護;而用文件的方式進行數據操作,數據量 一(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,就(jiu)要(yao)求(qiu)微(wei)處(chu)理(li)器(qi)具(ju)有(you)刷(shua)新(xin)控(kong)製(zhi)邏(luo)輯(ji),或(huo)在(zai)係(xi)統(tong)中(zhong)另(ling)外(wai)加(jia)入(ru)刷(shua)新(xin)控(kong)製(zhi)邏(luo)輯(ji)電(dian)路(lu),特(te)別(bie)的(de)情(qing)況(kuang)是(shi)在(zai)係(xi)統(tong)失(shi)電(dian)後(hou),要(yao)采(cai)取(qu)一(yi)種(zhong)有(you)效(xiao)的(de)機(ji)製(zhi)確(que)保(bao)將(jiang)sDRAM中 的數據寫入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可編程電源,賦能高端裝備製造
技術文章更多>>
- 邊緣AI的發展為更智能、更可持續的技術鋪平道路
- 每台智能體PC,都是AI時代的新入口
- IAR作為Qt Group獨立BU攜兩項重磅汽車電子應用開發方案首秀北京車展
- 構建具有網絡彈性的嵌入式係統:來自行業領袖的洞見
- 數字化的線性穩壓器
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
Future
GFIVE
GPS
GPU
Harting
HDMI
HDMI連接器
HD監控
HID燈
I/O處理器
IC
IC插座
IDT
IGBT
in-cell
Intersil
IP監控
iWatt
Keithley
Kemet
Knowles
Lattice
LCD
LCD模組
LCR測試儀
lc振蕩器
Lecroy
LED
LED保護元件
LED背光


