基于A(yíng)RM和FPGA的便攜人工地震數據采集系統設計
2 系統軟件設計概要
Linux因其源代碼開(kāi)放性特點(diǎn),成為嵌入式系統中應用最為廣泛的操作系統之一。本系統采用嵌入式操作系統Linux-2.6.30內核,交叉編譯工具使用arm-none-linux-gnueabi-gcc,底層硬件驅動(dòng)和數字信號FIR/IIR濾波程序使用C語(yǔ)言,部分代碼使用嵌入式匯編語(yǔ)言,上層應用程序開(kāi)發(fā)則使用C、C++。本系統的軟件設計主要任務(wù)包括操作系統的移植、驅動(dòng)程序開(kāi)發(fā)(包括數據采集驅動(dòng)、系統控制及標定驅動(dòng)程序等模塊)以及嵌入式應用軟件和上位PC機應用軟件開(kāi)發(fā)。
2.1 嵌入式操作系統Linux-2.6.30的裁剪
下載解壓縮內核源文件。修改頂層目錄下的Makefile文件,設定目標硬件ARCH=arm,指定交叉編譯環(huán)境路徑CROSS_COMPILE=/usr/locaL/arm-2007q1/bin/arm-none-linux- gnueabi-。使用圖形界面或文本行界面進(jìn)行內核配置,根據硬件電路和軟件系統功能對內核模塊進(jìn)行剪裁,完成操作系統鏡像的定制、編譯與調試,并在此環(huán)境上進(jìn)行應用軟件和驅動(dòng)程序的開(kāi)發(fā)。在A(yíng)RM中植入嵌入式linux平臺,首先根據目標設備的硬件配置及需要,對linux-2.6.30內核進(jìn)行基本定制,開(kāi)發(fā)并安裝驅動(dòng)程序,增加CPU動(dòng)態(tài)調頻特性,生成鏡像文件。JTAG將U-boot寫(xiě)入Flash后,通過(guò)網(wǎng)卡將鏡像文件下載到目標設備中進(jìn)行調試,最終把U-boot、linux-2.6.30內核及文件系統映像文件等燒寫(xiě)入Flash存儲器。
2.2 A/D數據采集驅動(dòng)
設備驅動(dòng)程序是操作系統內核與硬件之間的接口,屬于內核的一部分。根據功能劃分,設備驅動(dòng)程序代碼有以下幾個(gè)部分:(1)驅動(dòng)程序的注冊與注銷(xiāo);(2)設備的打開(kāi)與釋放;(3)設備的讀/寫(xiě)操作;(4)設備的控制操作;(5)數據采集中斷處理程序和PPS_INTERRUPT中斷處理程序。AD驅動(dòng)程序最終實(shí)現一個(gè)字符設備驅動(dòng),為了使該驅動(dòng)程序能夠被上層的應用程序方便地調用,需要實(shí)現以下的接口函數:
(1)open調用:打開(kāi)數據采集通道,需要注意的是open調用不應該自動(dòng)啟動(dòng)AD采樣,而應該由ioctl調用提供顯式的控制接口。
(2)read調用:讀取采樣數據,阻塞式讀取,以字節數返回讀取到的數據量。
(3)release調用:關(guān)閉數據采集通道,釋放系統資源。
(4)ioctl調用:提供以下一些設置命令。DS—ADC—START:?jiǎn)?dòng)AD采樣,每次開(kāi)始都會(huì )清空上次未讀走的數據。DS—ADC—ST0P:停止AD采樣。DS—ADC—SET—SAMPIE_RATE:設定采樣率。DS—AdC—GET—COUNT:獲取內存環(huán)行緩沖區中已存儲的采樣數據。
2.3 應用軟件設計
應用軟件包括嵌入式應用軟件和PC機應用軟件。嵌入式應用軟件運行在采集器ARM處理器上,具體實(shí)現為一個(gè)命令解析服務(wù)器,通過(guò)Socket接口連接到上位PC機,并接收PC機端發(fā)送來(lái)的控制命令,執行相應的操作。PC機應用軟件由主線(xiàn)程和數據通信線(xiàn)程組成。主線(xiàn)程為文檔—視圖結構,實(shí)現參數查詢(xún)與設置操作、實(shí)時(shí)波形顯示與波形存儲等功能;數據通信線(xiàn)程與硬件通信,接收波形數據。主要功能包括,(1)實(shí)時(shí)接收、存儲波形數據;(2)實(shí)時(shí)瀏覽波形;(3)查詢(xún)、設置系統工作參數;(4)查詢(xún)GPS信息;(5)查詢(xún)、設置標定參數、啟動(dòng)停止標定;(6)查詢(xún)、設置觸發(fā)參數;(7)設置數據采集器通信參數。
3 動(dòng)態(tài)電源管理
在本設計中,從微處理器和A/D等芯片的選型到電源系統設計都充分考慮低功耗設計,為了進(jìn)一步降低系統功耗,設計中引入了CPU動(dòng)態(tài)調頻技術(shù)。位于系統內核的負載監控器Load Monitor負責統計核算負載信息,并根據系統負載輕重,驅動(dòng)電源管理控制器Power Controller對CUP工作頻率和相關(guān)設備能效狀態(tài)做出調整。該模型對應用層程序完全透明,但應用程序也可通過(guò)proc接口顯式調整系統狀態(tài)。在開(kāi)發(fā)板的初步實(shí)驗中,在測試程序為while死循環(huán)情況下,測得系統在三個(gè)頻率點(diǎn)上的總功率為169 mA×12 V@400 MHz,133 mA×12 V@
200 MHz,112 mA×12 V@99 MHz,系統存在可觀(guān)的降耗空間。值得注意的是,動(dòng)態(tài)調頻對系統穩定性造成很大挑戰,調頻代碼需進(jìn)一步完善。
本文主要討論了基于低功耗微處理器AT91SAM9G20和可編程邏輯門(mén)陣列器件(FPGA)的地震數據采集系統的硬件設計和嵌入式Linux軟件開(kāi)發(fā)思路。值得一提的是,在系統中引入動(dòng)態(tài)調頻技術(shù),為進(jìn)一步降低系統動(dòng)態(tài)功耗以至總體功耗做了有益探索。本設計是在對當前地震測量技術(shù)發(fā)展研究的基礎上,提出的一種功耗低、體積小、野外使用安裝便捷的實(shí)現方案,對降低數據采集成本、延長(cháng)系統有效工作時(shí)間、提高野外工作效率有著(zhù)積極意義。
參考文獻
[1] 杜春雷.Arm體系結構與編程[M].北京:清華大學(xué)出版社,2003.
[2] CHARLES H.ROTH,Jr.數字系統設計與VHDL[M].北京:電子工業(yè)出版社,2008.
[3] GROUT I著(zhù).基于FPGA和CPLD的數字系統設計[M].北京:電子工業(yè)出版社,2009.
[4] 劉淼.嵌入式系統接口設計與Linux驅動(dòng)程序開(kāi)發(fā)[M].北京:北京航空航天出版社,2O06.
[5] 宋寶華.Linux設備驅動(dòng)開(kāi)發(fā)詳解[M].北京:人民郵電出版社,2008.
[6] Jens Ha kov,著(zhù).地震觀(guān)測技術(shù)與儀器[M].趙仲,趙建和譯.北京:地震出版社,2007.
[7] 張朋.嵌入式系統在工程地震儀的應用研究[J].計算機與數字工程,2008,36(2):l37-l39.
評論