一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

電子設(shè)計 ? 來源:網(wǎng)絡(luò)整理 ? 作者:工程師1 ? 2018-04-18 16:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

系統(tǒng)防掉電設(shè)計的目的是:采用一種機制,使得系統(tǒng)在意外失去供電的情況下,可以保證系統(tǒng)運行狀態(tài)的確定性以及記錄數(shù)據(jù)的完整性;當系統(tǒng)供電恢復(fù)后,現(xiàn)場數(shù)據(jù)可以及時恢復(fù),避免應(yīng)用系統(tǒng)產(chǎn)生混亂。我們知道,在嵌入式系統(tǒng)設(shè)計與開發(fā)中越來越多地應(yīng)用嵌入式操作系統(tǒng)。由于操作系統(tǒng)的引入,數(shù)據(jù)的讀寫往往是通過文件的方式完成,而不是直接對存儲單元地址操作。用文件讀寫方式操作數(shù)據(jù),在程序的運行過程中往往將數(shù)據(jù)暫存在易失性的存儲空間,如SDRAM,一旦系統(tǒng)意外失電,這些數(shù)據(jù)往往被丟失。因此,當系統(tǒng)意外失電時必須采取一定的措施進行系統(tǒng)的掉電保護,以避免系統(tǒng)產(chǎn)生混亂??偟恼f來,防掉電程序的主要思路就是:產(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ū)。當系統(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)硬件設(shè)計方案。系統(tǒng)的微處理器采用S3c4510B,是基于ARM7體系結(jié)構(gòu)的。SDRAM是一種易失性存儲器作為程序的運行空間,類似于PC機的內(nèi)存;Flash作為程序存儲空間是非易失性的。程序運行過程中的數(shù)據(jù)往往緩存在sDRAM中,在系統(tǒng)失電時必須寫往Flash。

在系統(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所示。

這個電源回路除了可以提供5v和3.3v的電源以外,還為系統(tǒng)掉電保護提供了延時及預(yù)警功能,通過軟件的配合可以實現(xiàn)系統(tǒng)的掉電保護機制。正常情況下,由供電回路1給整個系統(tǒ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)開學中具有典玨型代表意義。因此在嵌人式系統(tǒng)設(shè)計中具有推廣價值。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19678

    瀏覽量

    317791
  • ARM7
    +關(guān)注

    關(guān)注

    3

    文章

    207

    瀏覽量

    51159
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    運行在嵌入式系統(tǒng)上的emApps

    在當今快節(jié)奏的嵌入式系統(tǒng)世界中,靈活性和適應(yīng)性是嵌入式系統(tǒng)實現(xiàn)的關(guān)鍵。SEGGER推出了其最新創(chuàng)新:Embedded apps(emApps)應(yīng)用,類似于手機上的應(yīng)用程序,可以運行在
    的頭像 發(fā)表于 06-18 09:53 ?308次閱讀
    運行在<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>上的emApps

    嵌入式主板開發(fā)詳細指南

    嵌入式主板開發(fā)涉及硬件設(shè)計、軟件集成、系統(tǒng)優(yōu)化等多個環(huán)節(jié),需要結(jié)合具體應(yīng)用場景進行深度定制。以下是嵌入式主板開發(fā)的詳細指南,涵蓋關(guān)鍵步驟、工具、挑戰(zhàn)及實際案例:一、開發(fā)流程與關(guān)鍵步驟1.需求分析
    的頭像 發(fā)表于 04-02 11:35 ?559次閱讀
    <b class='flag-5'>嵌入式</b>主板開發(fā)詳細指南

    Python在嵌入式系統(tǒng)中的應(yīng)用場景

    你想把你的職業(yè)生涯提升到一個新的水平?Python在嵌入式系統(tǒng)中正在成為一股不可缺少的新力量。盡管傳統(tǒng)上嵌入式開發(fā)更多地依賴于C和C++語言,Python的優(yōu)勢在于其簡潔的語法、豐富的庫和快速的開發(fā)周期,這使得它在某些
    的頭像 發(fā)表于 03-19 14:10 ?726次閱讀

    使用Lattice mVision打造嵌入式視覺系統(tǒng)解決方案

    嵌入式視覺是嵌入式系統(tǒng)與機器視覺技術(shù)的集合,嵌入式視覺系統(tǒng)硬件集成攝像頭模組和處理板,將圖像捕獲和圖像處理功能結(jié)合在一臺設(shè)備中。
    的頭像 發(fā)表于 03-06 16:09 ?836次閱讀

    嵌入式主板的概述與發(fā)展

    隨著科技的迅猛發(fā)展,嵌入式系統(tǒng)在現(xiàn)代電子產(chǎn)品中扮演著越來越重要的角色。嵌入式主板作為嵌入式系統(tǒng)的核心組件之一,承擔著控制、處理和通訊等多種功
    的頭像 發(fā)表于 01-13 16:30 ?794次閱讀
    <b class='flag-5'>嵌入式</b>主板的概述與發(fā)展

    什么是嵌入式人工智能

    嵌入式人工智能是指將人工智能技術(shù)應(yīng)用于嵌入式系統(tǒng)中的一種技術(shù)。嵌入式系統(tǒng)嵌入到其他設(shè)備或
    的頭像 發(fā)表于 12-11 09:23 ?1018次閱讀
    什么是<b class='flag-5'>嵌入式</b>人工智能

    嵌入式系統(tǒng)開發(fā)與硬件的關(guān)系 嵌入式系統(tǒng)開發(fā)常見問題解決

    嵌入式系統(tǒng)開發(fā)與硬件的關(guān)系 嵌入式系統(tǒng)是專為特定應(yīng)用設(shè)計的計算機系統(tǒng),它們通常嵌入在所控制的設(shè)備
    的頭像 發(fā)表于 12-09 09:38 ?988次閱讀

    mmc卡在嵌入式系統(tǒng)中的使用

    。多媒體卡(MultiMediaCard,簡稱MMC)作為一種小型、高性能、低成本的存儲解決方案,被廣泛應(yīng)用于嵌入式系統(tǒng)中。 1. MMC卡的工作原理 MMC卡是一種基于閃存技術(shù)的存儲卡,最初由西門子和東芝共同開發(fā)。它遵循SD卡
    的頭像 發(fā)表于 11-25 09:58 ?1189次閱讀

    什么是嵌入式操作系統(tǒng)?

    什么是嵌入式操作系統(tǒng)? 想象一下,如果一個智能設(shè)備,比如你口袋里的智能手機,是一個有頭腦的機器人,那么嵌入式操作系統(tǒng)(Embedded Operating System,簡稱EOS)就
    發(fā)表于 11-08 15:07

    嵌入式系統(tǒng)與物聯(lián)網(wǎng)的結(jié)合

    隨著科技的飛速發(fā)展,嵌入式系統(tǒng)和物聯(lián)網(wǎng)(IoT)已經(jīng)成為現(xiàn)代技術(shù)領(lǐng)域的重要組成部分。嵌入式系統(tǒng)是指嵌入到設(shè)備或
    的頭像 發(fā)表于 11-06 10:23 ?1120次閱讀

    什么是嵌入式?一文讀懂嵌入式主板

    在現(xiàn)代科技浪潮中,嵌入式技術(shù)已成為支撐各種智能設(shè)備和系統(tǒng)運行的核心力量。那么,究竟什么是嵌入式嵌入式系統(tǒng),顧名思義,是將計算機的硬件和軟件
    的頭像 發(fā)表于 10-16 10:14 ?2629次閱讀

    AMD 面向嵌入式系統(tǒng)推出高能效 EPYC 嵌入式 8004 系列

    領(lǐng)先地位。 ? AMD EPYC 嵌入式 8004 系列處理器專為計算密集型嵌入式系統(tǒng)所設(shè)計,可為高需求工作負載提供卓越性能,同時以緊湊的尺寸規(guī)格最大限度為空間和功率受限型應(yīng)用提升能效。它還集成了一整套
    發(fā)表于 10-11 13:58 ?1077次閱讀

    嵌入式系統(tǒng)的原理和應(yīng)用

    嵌入式系統(tǒng)是一種專用的計算機系統(tǒng),其設(shè)計初衷是執(zhí)行特定任務(wù),而非作為通用計算機使用。這類系統(tǒng)通常作為更大系統(tǒng)的一部分,起到控制、監(jiān)控或輔助的
    的頭像 發(fā)表于 10-05 17:03 ?2224次閱讀

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統(tǒng)的核心組件,是一種用于控制和數(shù)據(jù)處理的計算機硬件,其設(shè)計旨在嵌入特定設(shè)備中執(zhí)行專門任務(wù)。嵌入式主板如同是設(shè)備
    的頭像 發(fā)表于 09-30 10:05 ?1632次閱讀

    嵌入式系統(tǒng)的未來趨勢有哪些?

    嵌入式系統(tǒng)是指將我們的操作系統(tǒng)和功能軟件集成于計算機硬件系統(tǒng)之中,形成一個專用的計算機系統(tǒng)。那么嵌入式
    發(fā)表于 09-12 15:42