新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式系統(tǒng)的掉電保護設(shè)計

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

        作者: 時間:2013-10-17 來源:網(wǎng)絡(luò) 收藏

        通過軟件測算,電容放電可供最小系統(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)標(biāo)志。在每個原子操作前,主進程都將會通過管道通信的方式閱讀中斷信號。如果中斷信號產(chǎn)生,主進程首先保存狀態(tài)標(biāo)志,然后將相關(guān)數(shù)據(jù)寫往Flash后退出,電源恢復(fù)后,主進程首先根據(jù)標(biāo)志字確定系統(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è)計中具有推廣價值。


        上一頁 1 2 下一頁

        關(guān)鍵詞: 掉電保護 F1ash 中斷處理

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 铜川市| 丹阳市| 龙岩市| 武冈市| 宾川县| 乌拉特后旗| 安陆市| 邻水| 崇阳县| 高邮市| 崇礼县| 乌什县| 越西县| 洪湖市| 新巴尔虎左旗| 淮北市| 贺兰县| 怀柔区| 象州县| 永泰县| 通道| 富阳市| 祥云县| 景谷| 七台河市| 丹寨县| 体育| 新建县| 宜昌市| 黄石市| 象州县| 修武县| 大渡口区| 华亭县| 河池市| 太湖县| 萍乡市| 湘西| 龙山县| 舒兰市| 策勒县|