近年來,隨著可編程邏輯器件(CPLD/FPGA)的迅猛發(fā)展,可編程邏輯器件在數(shù)據(jù)采集、邏輯接口設(shè)計、電平接口轉(zhuǎn)換和高性能數(shù)字信號處理等領(lǐng)域取得越來越廣泛的應(yīng)用。CPLD/FPGAD不僅可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問題,而且開發(fā)周期短、投入少,同時不斷下降的芯片價格極大推動了CPLD/FPGA器件在廣泛應(yīng)用領(lǐng)域的使用。本文介紹一種ARM微處理器+FPGA的硬件設(shè)計,融合嵌入式Linux技術(shù),實現(xiàn)一種小型化、移動性強、網(wǎng)絡(luò)耦合度高的便攜式人工地震數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)以滿足人工地震觀測的需要、減小儀器尺寸和重量、降低功耗、降低野外工作強度和提高數(shù)據(jù)采集工作效率為目標(biāo)。
1 系統(tǒng)硬件設(shè)計
采集系統(tǒng)由CPU核心板、A/D數(shù)據(jù)采集板和電源板組成,系統(tǒng)原理如圖1所示。CPU板以Atmel AT91SAM9G20微處理器為核心,通過總線和GPIO分別與64 MB SDRAM、16 MB Norflas和FPGA A3P250接口。板上大容量CF卡安裝有FAT文件系統(tǒng),用于地震波形數(shù)據(jù)的本地存儲。網(wǎng)絡(luò)接口提供遠(yuǎn)程登錄、數(shù)據(jù)傳輸及系統(tǒng)控制功能,包括實時數(shù)據(jù)流傳輸。LCD屏顯示系統(tǒng)工作參數(shù),如溫度、經(jīng)緯度、高程、系統(tǒng)網(wǎng)絡(luò)IP地址等信息。串口用于輸出調(diào)試信息,也被SAM-BA軟件用來下載燒寫引導(dǎo)加載程序U-boot和嵌入式Linux操作系統(tǒng)內(nèi)核映像文件。A/D采集板上有三路模數(shù)轉(zhuǎn)換數(shù)據(jù)采集通道,標(biāo)定信號發(fā)生器和檢波器控制信號調(diào)理電路。高效的電源轉(zhuǎn)換電路是實現(xiàn)系統(tǒng)低功耗的基礎(chǔ)。電源板主要提供CPU等數(shù)字電路+3.3 V/+1.8 V電源,地震計反饋電路供電±12 V、±4 V,參考電壓±2.5 V,標(biāo)定電路和檢波器控制電路供電。GPS系統(tǒng)提供時間服務(wù)和地理位置信息。
AT91SAM9G20是Atmel公司推出的一款基于ARM926EJ-S核的低功耗SoC。ARM核工作頻率高達(dá)400 MHz,具有DSP指令擴展,支持Java硬件加速,具備全功能的MMU。內(nèi)部集成2個容量為16 KB的高速SRAM,具有豐富的片上I/O設(shè)備,包括以太網(wǎng)MAC、USB主機和設(shè)備接口、通用同/異步發(fā)送接收器USART、SPI接口、同步串行接口SSC、多媒體存儲接口等。電源管理控制器(PMC)提供了CPU動態(tài)調(diào)頻的硬件支持。
1.1 FPGA邏輯設(shè)計
FPGA芯片的功能主要包括:(1)采集三個通道的A/D數(shù)據(jù)。當(dāng)三路數(shù)據(jù)準(zhǔn)備就緒,nDRDY1、nDRDY2、nDRDY3信號全部拉低,啟動由FPGA實現(xiàn)的SPI數(shù)據(jù)傳輸狀態(tài)機,地震波形數(shù)據(jù)被緩沖到FPGA內(nèi)部的16 bit寬的FIFO_2k_ADC_DATA中。當(dāng)FIFO_2k_ADC_DATA中數(shù)據(jù)達(dá)到一個閾值時,向ARM微處理器觸發(fā)AD_INT中斷。在中斷處理程序ad_irq_rx()中,通過系統(tǒng)數(shù)據(jù)總線把FIFO中數(shù)據(jù)轉(zhuǎn)移到內(nèi)存緩沖區(qū)ad_data_buff[]中。之后,調(diào)用schedule_work(&tasklet)把諸如數(shù)字信號濾波等耗時任務(wù)放到中斷下半部中進(jìn)行處理。(2)根據(jù)標(biāo)定數(shù)據(jù)文件,控制DAC生成模擬標(biāo)定波形輸出。標(biāo)定波形類型有正弦波、方波等。(3)檢波器控制電路驅(qū)動地震計調(diào)零電機動作。(4)IRIG讀碼。生成IRIG-B數(shù)據(jù)幀,通過PPS_interrupt觸發(fā)CPU中斷,pps_irq_handle()中斷處理程序負(fù)責(zé)把IRIG碼存儲到內(nèi)存變量irig_frame中,等待解碼以提取時間、經(jīng)緯度、高程等信息。下面是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模式下,使用復(fù)位信號同步數(shù)據(jù)采集信號
DOUT1 :in STD_LOGIC;
SCLK1 :out STD_LOGIC;--第一通道的ADS1281模數(shù)轉(zhuǎn)換器的SPI時鐘
nDRDY1,nDRDY2,nDRDY3:in STD_LOGIC;
--ADS1281數(shù)據(jù)就緒等待采集信號
spi_clk :out STD_LOGIC;--擴展SPI時鐘
spi_mosi :out STD_LOGIC;--擴展SPI主機發(fā)送從機接收數(shù)據(jù)信號線
spi_cs1 :out STD_LOGIC;--擴展SPI片選信號
EINT1,EINT2:out STD_LOGIC;--FIFO半滿數(shù)據(jù)采集中斷信號AD_INT,和DAC數(shù)據(jù)請求中斷信號INT
ENABLE1,A2,A3,A4,A5:in STD_LOGIC;
DATA:inout STD_LOGIC_VECTOR(15 downto 0);
--ARM處理器數(shù)據(jù)總線
led_drv:out STD_LOGIC;--LED狀態(tài)指示
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;
評論
查看更多