電子產業(yè)一站式賦能平臺

PCB聯盟網

搜索
查看: 3419|回復: 1
收起左側

工控嵌入式培訓_基于ARM7系列芯片嵌入式平臺

[復制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉到指定樓層
樓主
發(fā)表于 2020-8-14 16:57:13 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
工控嵌入式培訓_基于ARM7系列芯片嵌入式平臺,   



嵌入式c語言缺點, 嵌入式新硬件移植, 嵌入式軟件什么, avr嵌入式系統(tǒng), 鐳音王嵌入式點歌機, 2012系統(tǒng)嵌入式, 嵌入式gui動畫, 嵌入式圖像處理是啥, 嵌入式系統(tǒng)的設備分類, 避免使用嵌入式匯編, 嵌入式工業(yè)控制, 嵌入式src, 嵌入式開發(fā)學哪些, 嵌入式軟件開發(fā)網課, 富威雙嵌入式導航, 嵌入式消息隊列開源, 嵌入式pinmod, 車載嵌入式導航, 嵌入式電機控制系統(tǒng), uooc嵌入式系統(tǒng), arm嵌入式視屏, 嵌入式與單片機, 計算機嵌入式產品,

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

系統(tǒng)防掉電設計的目的是:采用一種機制,使得系統(tǒng)在意外失去供電的情況下,可以保證系統(tǒng)運行狀態(tài)的確定性以及記錄數據的完整性;當系統(tǒng)供電恢復后,現場數據可以及時恢復,避免應用系統(tǒng)產生混亂。我們知道,在嵌入式系統(tǒng)設計與開發(fā)中越來越多地應用嵌入式操作系統(tǒng)。由于操作系統(tǒng)的引入,數據的讀寫往往是通過文件的方式完成,而不是直接對存儲單元地址操作。用文件讀寫方式操作數據,在程序的運行過程中往往將數據暫存在易失性的存儲空間,如SDRAM,一旦系統(tǒng)意外失電,這些數據往往被丟失。因此,當系統(tǒng)意外失電時必須采取一定的措施進行系統(tǒng)的掉電保護,以避免系統(tǒng)產生混亂?偟恼f來,防掉電程序的主要思路就是:產生掉電信號,捕捉掉電信號,處理掉電信號和數據以及現場狀態(tài)的恢復。

如果不引入操作系統(tǒng),直接對存儲單元進行數據操作,每次操作的數據量小,可以利用中斷服務的方式進行掉電保護;而用文件的方式進行數據操作,數據量一般比較大,因此基于中斷服務的方式進行掉電保護已經不再可靠。本文研究的對象是基于操作系統(tǒng)的較為復雜的嵌入式系統(tǒng)設計過程中的掉電保護。

1掉電保護方案實現的系統(tǒng)基礎

掉電保護是在由ARM體系的硬件平臺和μClinux嵌入式操作系統(tǒng)的基礎上實現的。

ARM7系列的微處理器支持八種類型的中斷處理。外部中斷請求會在外部中斷引腳有效(一般是低電平),并且程序狀態(tài)寄存器相關位(即CPSR的I控制位)設置為允許時得到處理器響應。響應后處理器進入中斷工作模式,PC被裝人中斷向量0x00000018.在這個地址單元存放中斷服務程序人口地址,中斷服務程序就可以被執(zhí)行。在掉電保護方案中,中斷服務程序很簡單,就是將表示掉電的全局變量置位即可。這樣可以縮短程序執(zhí)行時間。

Flash存儲器是一種可在系統(tǒng)(in system)進行電擦寫,電后信息不丟失的存儲器。它具有低功耗、大容量、可整片或分扇區(qū)在系統(tǒng)編程(燒寫)、擦除等特點,并且可由內部嵌入的算法完成對芯片的操作,因而在各種嵌入式系統(tǒng)中得到了廣泛的應用。作為一種非易失性存儲器。Flash在系統(tǒng)中通常用于存放程序代碼、常量表以及一些在系統(tǒng)掉電后需要保存的用戶數據等。常用的Flash為8位或16位的數據寬度,編程電壓為單3.3V.與Flash存儲器相比較,SDRAM不具有掉電保持數據的特性,但其存取速度大大高于Flash存儲器,且具有讀/寫的屬性,因此,SDRAM在系統(tǒng)中主要用作程序的運行空間、數據及堆棧區(qū)。當系統(tǒng)啟動時,CPU首先從復位地址0x0處讀取啟動代碼,在完成系統(tǒng)的初始化后,程序代碼一般應調入SDRAM中運行,以提高系統(tǒng)的運行速度,同時,系統(tǒng)及用戶堆棧、運行數據也都放在SDRAM中。SDRAM的存儲單元可以理解為一個電容,總是傾向于放電,為避免數據丟失,必須定時刷新(充電)。因此,要在系統(tǒng)中使用SDRAM,就要求微處理器具有刷新控制邏輯,或在系統(tǒng)中另外加入刷新控制邏輯電路,特別的情況是在系統(tǒng)失電后,要采取一種有效的機制確保將sDRAM中的數據寫入F1ash中。

2基于掉電保護方案的硬件設計

圖1是一種典型的嵌入式系統(tǒng)硬件設計方案。系統(tǒng)的微處理器采用S3c4510B,是基于ARM7體系結構的。SDRAM是一種易失性存儲器作為程序的運行空間,類似于PC機的內存;Flash作為程序存儲空間是非易失性的。程序運行過程中的數據往往緩存在sDRAM中,在系統(tǒng)失電時必須寫往Flash.


圖1 典型的嵌入式系統(tǒng)硬件設計方案

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


圖2 電源電路管理

這個電源回路除了可以提供5v和3.3v的電源以外,還為系統(tǒng)掉電保護提供了延時及預警功能,通過軟件的配合可以實現系統(tǒng)的掉電保護機制。正常情況下,由供電回路1給整個系統(tǒng)供電。當系統(tǒng)由于意外原因掉電時,由于輸入的比較電壓降低,這樣MAX809模塊輸出電壓產生翻轉為系統(tǒng)提供掉電中斷預警信號,中斷請求通過外部中斷引腳XREQ0產生;同時供電回路2開始啟用。通過大電容C3、c4放電,繼續(xù)為系統(tǒng)提供一段供電電壓,支持掉電中斷服務程序完成。供電回路2只給最小系統(tǒng)供電,并不給耗電量大的外圍部件供電。這樣,給最小系統(tǒng)的供電時間足夠長,可以完成敏感數據的保護操作。

通過軟件測算,電容放電可供最小系統(tǒng)工作時間在0.5~4.5S之間。這種測算方法很簡單。編寫一個掉電中斷服務子程序,這個程序只是不斷進行時間刷新操作。同樣,可以通過軟件測定在這段時間里向Flash擦寫2~3MB.可見,在采用這種硬件體制的情況下,系統(tǒng)掉電保護能夠得到可靠的保證。

3掉電信號處理軟件方法的實現

在μClinux系統(tǒng)下,掉電信號的捕捉有兩種方式可以進行。一種是運用系統(tǒng)調用,即采用void(*signal(intslg,void(*func)(int)))(int)。這個函數可以為特定的中斷信號安排制訂的執(zhí)行函數,用參數func傳遞。在μCllnux中,共有31個系統(tǒng)中斷信號,其中掉電信號為SIGPWR.假設掉電中斷服務處理程序為void interrupt-service(int),則中斷服務與信號關聯的方式為:signal(SIGPWR,interrupt_service)。這種方式充分利用系統(tǒng)調用,實現簡單。在掉電保護方案設計初期也是采用這種機制。但事實證明這種機制并不可靠,其原因是Linux內核產生和管理信號的機制并不完善,有可能存在信號丟失。查閱有關Unix或L1nux的相關資料,可以發(fā)現這種狀況也普遍存在于某些其他版本的Linux和Unix中。

另一種方式是采用守候進程的方式,開通一個進程,此進程專門等待中斷信號。主程序根據數據操作對象的不同,將自己的流程方案劃分成若干原子操作,所謂原子操作即劃定的程序塊要么完全執(zhí)行,要么不執(zhí)行。每個操作對應惟一狀態(tài)標志。在每個原子操作前,主進程都將會通過管道通信的方式閱讀中斷信號。如果中斷信號產生,主進程首先保存狀態(tài)標志,然后將相關數據寫往Flash后退出,電源恢復后,主進程首先根據標志字確定系統(tǒng)恢復方案。圖3用流程圖的方式實現這一過程。


圖3 利用守候進程方式捕捉掉電信號


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



結語

基于該方案設計的稅控收款機在實際運行過程中,掉電保護功能完備。此掉電保護設計方法應用對象基于ARM和μClinux構建的嵌入式系統(tǒng),在32位嵌入式系統(tǒng)開學中具有典玨型代表意義。因此在嵌人式系統(tǒng)設計中具有推廣價值。
回復

使用道具 舉報

發(fā)表回復

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關閉

站長推薦上一條 /1 下一條


聯系客服 關注微信 下載APP 返回頂部 返回列表