《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于ARM和FPGA的便攜人工地震數據采集系統設計
基于ARM和FPGA的便攜人工地震數據采集系統設計
來源:電子技術應用2011年第1期
李從慶1,2,王夫運2,薛 兵3
(1.中國地震局地球物理研究所,北京100081;2.中國地震局地球物理勘探中心,河南 鄭州4500
摘要: 介紹了一種基于Atmel AT91SAM9G20(ARM926EJ-S核)低功耗微處理器和Actel AGL600(低功耗Flash-based FPGA)并融合嵌入式Linux技術的便攜式人工地震數據采集系統的設計原理和實現方法。該設計引入動態電源管理技術,根據系統負載自動進行微處理器工作頻率調節和外圍I/O設備的工作模式調整。本數據采集系統功耗低、體積小,野外使用安裝便捷,對降低數據采集成本、延長系統有效工作時間、提高野外工作效率有著積極意義。
中圖分類號: TP29
文獻標識碼: A
文章編號: 0258-7998(2011)01-0038-04
The portable artificial seismic data acquisition system based on ARM and FPGA
Li Congqing1,2,Wang Fuyun2,Xue Bing3
1.Institute of Geophysics,CEA,Beijing 100081,China; 2.Geophysical Exploration Center of CEA,Zhengzhou 450002,China; 3.Beijing Gangzhen Mechanical & Electronic Technology Co.,Ltd,Beijing 102628,China
Abstract: This article describes the design principles and implementation methods of an artificial seismic sounding data acquisition system,which is based on ARM926EJ-S core processor(Atmel AT91SAM9G20) and ultra low-power FPGA chip(Actel AGL600) in combination with embedded Linux technology. By making use of existing seismic instruments and embedded technology,design a sounding seismic seismograph equipment that features low power,small size,easy to carry and internet access. Besides, dynamic CPU frequency scaling is introduced in this design to further reduce watt loss.
Key words : embedded Linux;AT91SAM9G20;FPGA;CPU frequency scaling


    近年來,隨著可編程邏輯器件(CPLD/FPGA)的迅猛發展,可編程邏輯器件在數據采集、邏輯接口設計、電平接口轉換和高性能數字信號處理等領域取得越來越廣泛的應用。CPLD/FPGAD不僅可以解決電子系統小型化、低功耗、高可靠性等問題,而且開發周期短、投入少,同時不斷下降的芯片價格極大推動了CPLD/FPGA器件在廣泛應用領域的使用。本文介紹一種ARM微處理器+FPGA的硬件設計,融合嵌入式Linux技術,實現一種小型化、移動性強、網絡耦合度高的便攜式人工地震數據采集系統。該系統以滿足人工地震觀測的需要、減小儀器尺寸和重量、降低功耗、降低野外工作強度和提高數據采集工作效率為目標。
1 系統硬件設計
    采集系統由CPU核心板、A/D數據采集板和電源板組成,系統原理如圖1所示。CPU板以Atmel  AT91SAM9G20微處理器為核心,通過總線和GPIO分別與64 MB SDRAM、16 MB Norflas和FPGA A3P250接口。板上大容量CF卡安裝有FAT文件系統,用于地震波形數據的本地存儲。網絡接口提供遠程登錄、數據傳輸及系統控制功能,包括實時數據流傳輸。LCD屏顯示系統工作參數,如溫度、經緯度、高程、系統網絡IP地址等信息。串口用于輸出調試信息,也被SAM-BA軟件用來下載燒寫引導加載程序U-boot和嵌入式Linux操作系統內核映像文件。A/D采集板上有三路模數轉換數據采集通道,標定信號發生器和檢波器控制信號調理電路。高效的電源轉換電路是實現系統低功耗的基礎。電源板主要提供CPU等數字電路+3.3 V/+1.8 V電源,地震計反饋電路供電±12 V、±4 V,參考電壓±2.5 V,標定電路和檢波器控制電路供電。GPS系統提供時間服務和地理位置信息。

    AT91SAM9G20是Atmel公司推出的一款基于ARM926EJ-S核的低功耗SoC。ARM核工作頻率高達400 MHz,具有DSP指令擴展,支持Java硬件加速,具備全功能的MMU。內部集成2個容量為16 KB的高速SRAM,具有豐富的片上I/O設備,包括以太網MAC、USB主機和設備接口、通用同/異步發送接收器USART、SPI接口、同步串行接口SSC、多媒體存儲接口等。電源管理控制器(PMC)提供了CPU動態調頻的硬件支持。
1.1 FPGA邏輯設計
    FPGA芯片的功能主要包括:(1)采集三個通道的A/D數據。當三路數據準備就緒,nDRDY1、nDRDY2、nDRDY3信號全部拉低,啟動由FPGA實現的SPI數據傳輸狀態機,地震波形數據被緩沖到FPGA內部的16 bit寬的FIFO_2k_ADC_DATA中。當FIFO_2k_ADC_DATA中數據達到一個閾值時,向ARM微處理器觸發AD_INT中斷。在中斷處理程序ad_irq_rx()中,通過系統數據總線把FIFO中數據轉移到內存緩沖區ad_data_buff[]中。之后,調用schedule_work(&tasklet)把諸如數字信號濾波等耗時任務放到中斷下半部中進行處理。(2)根據標定數據文件,控制DAC生成模擬標定波形輸出。標定波形類型有正弦波、方波等。(3)檢波器控制電路驅動地震計調零電機動作。(4)IRIG讀碼。生成IRIG-B數據幀,通過PPS_interrupt觸發CPU中斷,pps_irq_handle()中斷處理程序負責把IRIG碼存儲到內存變量irig_frame中,等待解碼以提取時間、經緯度、高程等信息。下面是spi實體的Top-level行為級VHDL語言描述。
ENTITY spi IS
    PORT (    CLK        :in  STD_LOGIC;--4.096 MHz
            CLK40    :in  STD_LOGIC;--40 MHz
            SYNC    :out STD_LOGIC;--PINMODE模式下,
使用復位信號同步數據采集信號
            DOUT1    :in STD_LOGIC;
            SCLK1    :out STD_LOGIC;--第一通道的
ADS1281模數轉換器的SPI時鐘
            nDRDY1,nDRDY2,nDRDY3:in STD_LOGIC;
--ADS1281數據就緒等待采集信號
            spi_clk    :out STD_LOGIC;--擴展SPI時鐘
            spi_mosi    :out STD_LOGIC;--擴展SPI主機
發送從機接收數據信號線
            spi_cs1    :out  STD_LOGIC;--擴展SPI片選
信號
            EINT1,EINT2:out STD_LOGIC;--FIFO半滿數
據采集中斷信號AD_INT,
和DAC數據請求中斷信號INT
            ENABLE1,A2,A3,A4,A5:in STD_LOGIC;
            DATA:inout STD_LOGIC_VECTOR(15 downto 0);
--ARM處理器數據總線
            led_drv:out STD_LOGIC;--LED狀態指示
            PPS_interrupt:out  STD_LOGIC;--1 Hz,
GPS秒脈沖
            nRESET:in STD_LOGIC;
            GPS_IRIGL:in STD_LOGIC;--IRIG碼讀寫
            nRD:in STD_LOGIC;--ARM讀
            nWR:in STD_LOGIC;--ARM寫
            nCS:in STD_LOGIC);--ARM片選
END spi;
1.2 A/D數據采集通道
    A/D轉換器采用TI公司的ADS1281。該A/D轉換器具有高分辨率、高精度特性,內置4階穩定的ΔΣ調制器,可配置SINC、FIR和IIR濾波器,數據率250 S/s~4 KS/s,特別適合地震數據觀測環境。在本設計中,模擬地動波形信號經差分放大后輸入到AD1281的AINP和AINN端。SCLK由FPGA分頻產生的1.024 MHz的時鐘驅動,用于串行輸出A/D數據到FPGA FIFO。當A/D完成數據轉化后,CH1_DRDY拉低向FPGA表示數據準備就緒,等待讀取。CH1_ DOUT連接至FPGA的DOUT1端口,用于數據到FPGA FIFO的串行傳輸。AD_CLK由4.096 MHz時鐘驅動,是A/D的工作時鐘。A/D轉換原理電路如圖2所示。

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 色综合天天综合中文网 | 嘿嘿嘿视频免费网站在线观看 | 免费人成网站线观看合集 | 中国毛片网 | 首页 国产 日韩 欧美 动漫 | 欧美啊v在线 | 男女午夜特黄毛片免费 | 免费在线资源 | 三级经典欧美激情 | 国产亚洲欧洲国产综合一区 | 成人黄网大全在线观看 | 亚洲国产激情在线一区 | 国产欧美日韩亚洲精品区2345 | 99精彩视频 | 一级免费黄色片 | 老子影院午夜伦不卡不四虎卡 | 五月婷婷在线视频 | 天天草狠狠干 | 日韩最新视频一区二区三 | 亚洲成av人在线视 | 国产 日韩 欧美 在线 | 看黄的网址 | 一级黄色录像大片 | 欧美一级片 在线播放 | 丁香网五月 | 午夜在线免费视频 | 成人午夜在线观看国产 | 久久亚洲欧美成人精品 | 91成人免费在线视频 | 天天干天天澡 | 日韩2页| 国产欧美成人一区二区三区 | 欧美超强性xxxxx | 久久99精品久久久久久园产越南 | 亚洲精品国产综合一线久久 | 1024国产你懂的日韩 | 亚洲欧美日韩中文不卡 | 色播五月激情五月 | h网站免费在线观看 | 免费一级毛片在线播放视频 | 免费日批 |