国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種高精度多通道USB地震數(shù)據(jù)采集器設(shè)計(jì)

2018-11-26 02:32韓智明李亞南郭麗麗
關(guān)鍵詞:固件驅(qū)動(dòng)程序采集器

孟 娟,洪 利,韓智明,李亞南,郭麗麗

(防災(zāi)科技學(xué)院,河北 三河 065201)

0 引 言

精確、可靠的獲取地震信號(hào)是進(jìn)行地震觀測(cè)、地震速報(bào)、地震預(yù)報(bào)及研究的重要前提,因此,地震數(shù)據(jù)采集器的設(shè)計(jì)與研發(fā)成為業(yè)界關(guān)注焦點(diǎn)。目前,有多種方案實(shí)現(xiàn)地震數(shù)據(jù)采集器,如基于嵌入式[1-2]、FPGA[2-4]、及Labview[5-6]等。近年來,地震數(shù)據(jù)采集器的實(shí)際應(yīng)用要求不斷提升,如采樣通道數(shù)更多,采集速度更快,采樣精度更高,成本更低廉等。尤其是隨著城市化進(jìn)程的加劇,測(cè)試環(huán)境背景噪聲愈發(fā)復(fù)雜,在提高采集信號(hào)的抗干擾能力的同時(shí),還要采用更高效的數(shù)字信號(hào)處理算法以得到理想的采集數(shù)據(jù)。傳統(tǒng)的基于嵌入式微處理器技術(shù)的采集器,運(yùn)算速度較低、存儲(chǔ)容量少,不利于高復(fù)雜度高性能信號(hào)處理算法,也不利于提高地震數(shù)據(jù)采集的精度?;贚abview技術(shù)的采集系統(tǒng)的精度和成本嚴(yán)重依賴于數(shù)據(jù)采集卡,且不利于復(fù)雜信號(hào)處理算法的實(shí)施。FPGA具有運(yùn)行速度快、支持高速I/O、實(shí)時(shí)性高等特點(diǎn),采用并行處理的工作方式,便于進(jìn)行高速信號(hào)處理,更適合高速、多通道、高精度的地震信號(hào)采集系統(tǒng)設(shè)計(jì)。

本課題以高精度、多通道、高速為目標(biāo),設(shè)計(jì)了一種基于FPGA的高速8通道地震動(dòng)信號(hào)采集器。相比以往傳統(tǒng)采集器通過提高數(shù)據(jù)轉(zhuǎn)換精度提高地震信號(hào)檢測(cè)性能,該采集器基于前端調(diào)理電路提高地震信號(hào)的抗干擾能力,并采用24位高精度ADC芯片ADS1278,以FPGA為主控芯片實(shí)現(xiàn)8路地震信號(hào)的同步準(zhǔn)確采集;同時(shí)設(shè)計(jì)了FPGA與PC的USB接口,便于采集數(shù)據(jù)的快速傳輸、處理與存儲(chǔ),可極大提高地震數(shù)據(jù)采集系統(tǒng)性能。

1 系統(tǒng)模型

如圖1所示,傳感器信號(hào)在AD轉(zhuǎn)換前先進(jìn)行調(diào)理,使其信號(hào)幅度匹配ADC芯片量程,并盡可能減少干擾和噪聲;ADC選用ADS1278芯片,其采樣分辨率24 位,8路同步采樣率為128 Ks/s,可滿足地震采集需求。為提高信號(hào)抗干擾能力,采用差分輸入方式。綜合考慮性能、IO資源、成本等要求,選用CycloneII系列的EP2C8Q208C8作為主控芯片,控制ADS1278采集數(shù)據(jù)并將數(shù)據(jù)保存至FPGA內(nèi)部的FIFO緩存,并利用USB微控制器CY7C68013A將數(shù)據(jù)實(shí)時(shí)傳輸至PC,CY7C68013A工作在Slave FIFO模式,可實(shí)現(xiàn)采集數(shù)據(jù)的快速傳輸存儲(chǔ)。由于各芯片電壓需求不一樣,為使系統(tǒng)穩(wěn)定工作,通過電源轉(zhuǎn)換芯片獲取芯片所需電壓。

圖1 地震數(shù)據(jù)采集系統(tǒng)架構(gòu)

2 系統(tǒng)硬件設(shè)計(jì)

系統(tǒng)硬件主要包括前端調(diào)理電路、AD轉(zhuǎn)換電路、FPGA控制電路、USB接口電路等。

2.1 前端調(diào)理電路

地震傳感器獲取的地震信號(hào)較微弱,通常為毫伏甚至為微伏級(jí),且采集信號(hào)中易混入噪聲和干擾,因此無法直接進(jìn)行A/D轉(zhuǎn)換,必須進(jìn)行濾波和放大,使調(diào)理后的地震信號(hào)的幅度匹配ADC電壓輸入量程,同時(shí)盡可能去除噪聲。

在濾波前先進(jìn)行前置放大,采用失真度小的儀表放大器AD620放大,并利用八階開關(guān)電容低通濾波芯片MAX291進(jìn)行濾波。一般地震儀記錄的地震波頻帶范圍在200 Hz以內(nèi),因此設(shè)計(jì)截止頻率為200 Hz的低通濾波器,以濾除信號(hào)中高頻噪聲,電路如圖2。

圖2 前置放大與濾波電路

圖3 二級(jí)放大與差分電路

為匹配ADC量程,需對(duì)濾波信號(hào)進(jìn)行二級(jí)放大,同時(shí)為提高信號(hào)在傳輸過程中的抗干擾能力,采用差分方式采集。如圖3所示,選用可設(shè)置增益儀表放大器AD8253放大,該芯片可靈活設(shè)置增益(1~1000),能適應(yīng)不同地震傳感器的輸出幅度和靈敏度;同時(shí),利用差分放大器THS4524將單端輸入信號(hào)轉(zhuǎn)換為差分信號(hào),以消除干擾,高效驅(qū)動(dòng)ADC。

2.2 AD轉(zhuǎn)換電路

因同時(shí)采集8路傳感器信號(hào),因此選用8通道,24位ADC芯片ADS1278進(jìn)行AD轉(zhuǎn)換。ADS1278芯片的AD轉(zhuǎn)換輸出值與D=Vin/Vref0x7fffff,其中Vref為參考電壓,Vin為輸入電壓,Vref精度和穩(wěn)定性很重要,選用REF5025和OPA2350來提供穩(wěn)定參考電壓源,如圖4。

ADS1278采用二進(jìn)制補(bǔ)碼輸出,有高速、高分辨率、低功耗、低速等4種工作模式,通過配置MODE[1:0]來確定;其數(shù)據(jù)輸出的接口協(xié)議和輸出格式,通過FORMAT[2:0]來設(shè)置,SCLK通過FPGA時(shí)鐘分頻得到,SYNC控制內(nèi)部8個(gè)轉(zhuǎn)換器是否處于同步,PWDN[8:1]控制是否打開該通道[7]。設(shè)置ADS1278的FORMAT[2:0]= 001b,MODE [1:0]=00b,PWDN[8:1]=11111111b,Test[1:0]=00b,則ADS1278打開8個(gè)通道,在高速模式下,基于SPI協(xié)議通過DOUT1引腳(TDM模式)移位輸出轉(zhuǎn)換數(shù)據(jù)。ADS 1278轉(zhuǎn)換電路如圖5,由FPGA提供控制所需的控制信號(hào)。

圖5 基于ADS1278的AD轉(zhuǎn)換電路

2.3 FPGA控制電路

FPGA是整個(gè)系統(tǒng)的控制核心,負(fù)責(zé)提供AD轉(zhuǎn)換所需的時(shí)序信號(hào),及轉(zhuǎn)換數(shù)據(jù)到FPGA內(nèi)部 FIFO所需控制信號(hào),完成數(shù)據(jù)采集控制,實(shí)現(xiàn)采集數(shù)據(jù)到PC的傳輸。

ADS1278工作所需的相關(guān)控制信號(hào)由FPGA提供,如設(shè)置工作模式/數(shù)據(jù)輸出格式,進(jìn)行通道選擇等,F(xiàn)PGA與ADS1278間關(guān)鍵端口的連接如圖6所示。

圖6 FPGA 與ADS1278控制接口電路

FPGA為EP2C8Q208C8,工作時(shí)鐘為48 MHZ,采用3.3V/48MHZ有源晶振,其輸出連接至FPGA的時(shí)鐘CLK,其配置芯片為EPCS4N,用于保存FPGA的配置信息,程序啟動(dòng)代碼。系統(tǒng)內(nèi)存選用64M/SDRAM芯片HY57V641620ETP-7,用作程序運(yùn)行空間,其地址、數(shù)據(jù)、控制信號(hào)都直接連接到FPGA的IO引腳,由FPGA內(nèi)部的SDRAM控制核控制。

依賴于FPGA強(qiáng)大的計(jì)算能力,能夠?qū)崿F(xiàn)復(fù)雜高性能信號(hào)處理算法在地震數(shù)據(jù)采集系統(tǒng)中的應(yīng)用,從而克服了單純依賴ADC精度進(jìn)行地震信號(hào)檢測(cè)存在的瓶頸,有利于整個(gè)系統(tǒng)檢測(cè)精度的提高。

2.4 USB接口電路

USB接口具有高速、即插即用的特點(diǎn),在高速數(shù)據(jù)采集系統(tǒng)中使用廣泛。系統(tǒng)采用Cypress公司的CY7C68013A芯片進(jìn)行USB接口設(shè)計(jì),在Salve FIFO模式下,可選擇同步或異步方式,為使數(shù)據(jù)傳輸更有效和可靠,采用異步方式。此時(shí),CY7C68013A與FPGA完成如圖7所示的關(guān)鍵引腳信號(hào)的連接,通過片選、寫入/讀取信號(hào)實(shí)現(xiàn)雙向通信[8]。

圖7 CY7C68013A與FPGA的USB接口電路

其中,IFCLK是時(shí)鐘信號(hào),由CY7C68013A芯片內(nèi)部提供,F(xiàn)D[15…0]為16位雙向數(shù)據(jù)總線,F(xiàn)LAGA/FLAGB/FLAGC為CY7C68013A內(nèi)FIFO標(biāo)志管腳,SLOE使能數(shù)據(jù)總線FD的輸出,F(xiàn)IFOADR[1…0]用于選擇和數(shù)據(jù)總線FO連接的端點(diǎn)緩沖區(qū),SLRD和SLWR為FIFO的讀寫選通信號(hào),F(xiàn)LAGD/SLCS# 為FIFO模式狀態(tài)標(biāo)志位/Slave FIFO模式使能引腳。

CY7C68013A使用24 MHZ晶振作為時(shí)鐘輸入,采用E2PROM芯片24LC64作為存儲(chǔ)器,用于存放固件程序。需要注意的是,USB協(xié)議采用端點(diǎn)作為數(shù)據(jù)收發(fā)器,本系統(tǒng)使用EP2為上位PC機(jī)OUT端點(diǎn),接收PC機(jī)傳送的數(shù)據(jù);EP6為IN端點(diǎn),往PC機(jī)發(fā)送采集數(shù)據(jù),將二者配置為1024 B的雙緩沖、塊傳輸模式。

3 軟件設(shè)計(jì)

系統(tǒng)軟件部分主要包括FPGA程序設(shè)計(jì)、系統(tǒng)固件程序設(shè)計(jì)、USB驅(qū)動(dòng)程序設(shè)計(jì)、應(yīng)用程序設(shè)計(jì)。

3.1 FPGA程序設(shè)計(jì)

FPGA程序主要完成AD轉(zhuǎn)換的時(shí)序控制,以及FPGA和USB接口的傳輸控制。

3.1.1 AD轉(zhuǎn)換時(shí)序控制

AD轉(zhuǎn)換控制主要完成對(duì)ADS1278的時(shí)序控制,以讀取ADS1278輸出的數(shù)據(jù)。在SPI模式下,ADS1278的時(shí)序邏輯如圖8。

圖8 ADS1278工作時(shí)序圖

當(dāng)ADS1278數(shù)據(jù)轉(zhuǎn)換完成,/DRDY變?yōu)榈碗娖?,通過SPI串行時(shí)鐘SCLK的控制,F(xiàn)PGA從ADS1278的DOUT1引腳讀取24位數(shù)據(jù)。具體的,在SCLK的第1個(gè)上升沿讀取第1位數(shù)據(jù);SCLK第1個(gè)下降沿后, /DRDY變?yōu)楦唠娖?,直至下一個(gè)數(shù)據(jù)準(zhǔn)備好。在SCLK的下降沿后,第2位數(shù)據(jù)準(zhǔn)備好,SCLK變上升沿,第2個(gè)上升沿時(shí)讀取第2位數(shù)據(jù),如此反復(fù),直到數(shù)據(jù)的24位全被讀取。據(jù)此時(shí)序圖,將FPGA系統(tǒng)時(shí)鐘分頻,得到ADS1278需要的時(shí)鐘,將時(shí)鐘送入ADS1278即可實(shí)現(xiàn)FPGA對(duì)ADS1278的控制。

3.1.2 USB接口程序設(shè)計(jì)

由于ADS1278、FPGA、CY7C68013A的數(shù)據(jù)處理速度不同,為防止數(shù)據(jù)丟失,將數(shù)據(jù)暫存到FIFO中。本系統(tǒng)設(shè)計(jì)的AD轉(zhuǎn)換數(shù)據(jù)隨時(shí)被送到USB接口傳送到PC,因此,不需要大的緩存FIFO,利用FPGA內(nèi)部資源定制即可。本設(shè)計(jì)中,定制的異步FIFO是8bit×1024的存儲(chǔ)單元,采用Altera的宏功能,通過quartus II中的MegaWizard管理器完成FIFO模塊的配置。當(dāng)FIFO中存儲(chǔ)滿1K字節(jié)數(shù)據(jù)時(shí),USB接口即將數(shù)據(jù)傳送至PC,直到把FIFO讀空為止,停止讀取數(shù)據(jù),直到下一次FIFO滿。

USB接口程序需要將FPGA內(nèi)FIFO數(shù)據(jù)傳給USB芯片,因此需要產(chǎn)生讀/寫控制信號(hào)實(shí)現(xiàn)雙方通信。在異步Slave FIFO模式下,F(xiàn)PGA對(duì)USB微控制器的操作實(shí)際是對(duì)CY7C68013A提供的FIFO存儲(chǔ)器的操作,采用讀/寫2個(gè)有限狀態(tài)機(jī)完成對(duì)FIFO的讀寫操作[8]。

異步Slave FIFO寫和讀的操作類似,其中寫操作的狀態(tài)機(jī)設(shè)計(jì)如下:

S0:S0為初始化狀態(tài),當(dāng)寫事件發(fā)生,跳到S1;

S1:使FIFOADR[1…0]指向FIFO IN,即將FIFOADR[1…0]配置為’ 10’指向EP6,跳到S2;

S2: 若 “FIFO滿”標(biāo)志為假,即FIFO沒滿,則跳到S3,否則停在S2;

S3:送數(shù)據(jù)到數(shù)據(jù)總線,使SLWR有效,再置為無效,使FIFO寫指針遞增,跳到S4;

S4:若有更多數(shù)據(jù)傳輸,跳到S2,否則跳到S0。

3.2 USB固件設(shè)計(jì)

USB固件程序是CY7C68013A內(nèi)部8051單片機(jī)工作程序,負(fù)責(zé)設(shè)備初始化、處理PC端各種設(shè)備請(qǐng)求,并與外圍電路進(jìn)行數(shù)據(jù)傳輸。Cypress公司提供了固件開發(fā)框架,只需在框架上完成USB描述符表,添加接收/發(fā)送數(shù)據(jù)及相關(guān)控制外圍電路的代碼即可[9]。固件框架提供了如初始化函數(shù)TD_Init(),重復(fù)調(diào)用函數(shù)TD_Poll(),設(shè)備工作狀態(tài)配置函數(shù)TD_Suspend()等接口函數(shù),在固件程序中添加這些函數(shù),并在對(duì)應(yīng)函數(shù)中添加代碼就可實(shí)現(xiàn)相關(guān)功能。

根據(jù)固件程序開發(fā)流程[10],在TD_Init()中添加初始化代碼,設(shè)置USB工作模式、選擇端點(diǎn)、配置FIFO大小等。在異步slave FIFO模式下,為實(shí)現(xiàn)高速傳輸,CY7C68013A內(nèi)部低速CPU不參與數(shù)據(jù)傳輸,端點(diǎn)在接收到FPGA的AD轉(zhuǎn)換數(shù)據(jù)后,等待PC讀取,USB芯片僅作為一個(gè)數(shù)據(jù)傳輸通道,讀寫 FIFO 由 FPGA 來完成,因此在TD_Poll()中無需添加用戶代碼[11]。

3.3 USB驅(qū)動(dòng)程序設(shè)計(jì)

USB驅(qū)動(dòng)程序是用戶訪問設(shè)備的接口,利用Cypress的驅(qū)動(dòng)程序Cyusb.sys簡(jiǎn)化驅(qū)動(dòng)程序編寫。通過編寫相應(yīng)的安裝信息向?qū)募?,?INF文件,用于查找合適USB設(shè)備的驅(qū)動(dòng)程序。具體的,在CyUSB.INF中修改自己的PID/VID代碼;當(dāng)USB設(shè)備連接時(shí),系統(tǒng)將根據(jù)硬件PID/VID代碼查找INF文件中對(duì)應(yīng)驅(qū)動(dòng),若未找到,則提示用戶自己安裝支持該USB的驅(qū)動(dòng)程序。

3.4 應(yīng)用程序設(shè)計(jì)

應(yīng)用程序以驅(qū)動(dòng)程序?yàn)闃蛄?,?shí)現(xiàn)對(duì)USB設(shè)備的控制和數(shù)據(jù)采集,具體流程如圖9。應(yīng)用程序是基于VC++,利用Cypress提供的CyAPI控制函數(shù)類庫方法完成。在程序中加入CyAPI.h和CyAPI.lib,再調(diào)用CyAPI函數(shù)庫中的基礎(chǔ)函數(shù)完成USB應(yīng)用程序的編程[12]。

圖9 應(yīng)用程序流程圖

在該程序流程中,主要使用的是設(shè)備控制類CCyUSBDevice()下的open()函數(shù)打開USB設(shè)備,讀取二進(jìn)制數(shù)據(jù),并對(duì)接收數(shù)據(jù)進(jìn)行處理,而對(duì)USB的FIFO讀寫控制主要使用CCyUSBEndPoint類下的BeginDataXfer(),TimeOut(),WaitForXfer()函數(shù),結(jié)束調(diào)用CCyUSBDevice()下的Close()函數(shù)。

4 系統(tǒng)測(cè)試

為測(cè)試系統(tǒng)的性能和可靠性,本文首先對(duì)系統(tǒng)短路噪聲進(jìn)行了測(cè)試;同時(shí)對(duì)函數(shù)發(fā)生器產(chǎn)生的對(duì)典型正弦信號(hào)進(jìn)行采集,測(cè)量系統(tǒng)誤差范圍,并對(duì)通道間的一致性進(jìn)行了測(cè)試;最后對(duì)實(shí)際的地震動(dòng)信號(hào)進(jìn)行了采集和顯示。

4.1 系統(tǒng)噪聲測(cè)試

為測(cè)試系統(tǒng)噪聲,將系統(tǒng)輸入端口直接接地采集系統(tǒng)短路噪聲,并用Matlab 對(duì)短路噪聲數(shù)據(jù)進(jìn)行處理,單通道所采集的短路噪聲序如圖10所示,噪聲均勻分布,系統(tǒng)短路噪聲峰峰值在 70 μV以內(nèi),無明顯直流偏移,且通道間的噪聲峰峰值差異在20 μV 以內(nèi)。

圖10 單通道短路噪聲序列

4.2 典型正弦信號(hào)測(cè)試

使用本系統(tǒng)采集函數(shù)發(fā)生器產(chǎn)生的典型正弦波進(jìn)行測(cè)試,信號(hào)頻率為100 Hz,輸入信號(hào)范圍為±1 V。如圖11左側(cè)所示,采集到的波形與信源波形一致,圖11右側(cè)是采集信號(hào)經(jīng)FFT運(yùn)算后的信號(hào)幅頻特性圖,如圖所示,頻率準(zhǔn)確度高,表明系統(tǒng)可進(jìn)行準(zhǔn)確的信號(hào)采集。

圖11 正弦波采集信號(hào)及FFT運(yùn)算后信號(hào)幅頻特性

為測(cè)試系統(tǒng)誤差,對(duì)函數(shù)發(fā)生器產(chǎn)生的正弦波信號(hào)進(jìn)行采集,對(duì)采集信號(hào)FFT和求模值后的幅頻特性,如表1所示,信號(hào)幅值的誤差在1.8%以內(nèi),,表明系統(tǒng)具有較高的精度。

為測(cè)試通道間的幅值差異,對(duì)同一信號(hào)源,不同通道采集到的幅值最大差值為0.12 mV,表明多通道間具有較好的一致性。

表1 正弦波信號(hào)采集幅值誤差

4.3 實(shí)際地震動(dòng)信號(hào)測(cè)試

為進(jìn)一步測(cè)試系統(tǒng)可靠性及性能,基于中國地震局工程力學(xué)研究所的三分量拾震器及本文設(shè)計(jì)的采集器,獲取地面震動(dòng)信號(hào)。如圖12,當(dāng)有人員經(jīng)過時(shí),采集器可實(shí)時(shí)獲取地面震動(dòng)信號(hào),并清晰識(shí)別出地震動(dòng)信號(hào)的波形幅度隨腳步落地的變化。

圖12 人員經(jīng)過時(shí)的地面震動(dòng)波形圖

多次實(shí)驗(yàn)證明,研制的地震數(shù)據(jù)采集器可同步采集8通道數(shù)據(jù),且該系統(tǒng)作為自研實(shí)驗(yàn)設(shè)備已被本校防災(zāi)減災(zāi)裝備實(shí)驗(yàn)室的研究生用于實(shí)際的地震信號(hào)采集,采集數(shù)據(jù)準(zhǔn)確可靠,可作為后續(xù)地震資料分析的基礎(chǔ),具有較強(qiáng)的實(shí)用價(jià)值。

5 結(jié) 語

基于FPGA的USB多通道地震數(shù)據(jù)采集器,提高了采集信號(hào)的抗干擾能力,以準(zhǔn)確拾取微弱信號(hào),并可實(shí)現(xiàn)多通道同時(shí)采集,大大提高傳輸速率。系統(tǒng)根據(jù)ADS1278的工作特性,以FPGA為主控制器,實(shí)現(xiàn)數(shù)據(jù)采集和控制;同時(shí)基于CY7C68013A,采用Slave FIFO模式,實(shí)現(xiàn)了PC與外設(shè)間USB接口的數(shù)據(jù)傳輸。系統(tǒng)可滿足設(shè)計(jì)需求,不僅為高速、低成本、多通道的地震數(shù)據(jù)采集器研發(fā)提供參考,還可進(jìn)行實(shí)際的地震動(dòng)信號(hào)采集,具有較強(qiáng)的實(shí)用價(jià)值。需要注意的是,本系統(tǒng)側(cè)重?cái)?shù)據(jù)采集,下一步將對(duì)采集數(shù)據(jù)進(jìn)行濾波和去噪,以進(jìn)一步提升采集數(shù)據(jù)的精度。

猜你喜歡
固件驅(qū)動(dòng)程序采集器
COVID-19大便標(biāo)本采集器的設(shè)計(jì)及應(yīng)用
阻止Windows Update更新驅(qū)動(dòng)程序
計(jì)算機(jī)硬件設(shè)備驅(qū)動(dòng)程序分析
基于Cortex-M4的油氣管道微功耗數(shù)據(jù)采集器軟件設(shè)計(jì)應(yīng)用
多傳感器通道多點(diǎn)數(shù)據(jù)并行高速采集器設(shè)計(jì)
降雨徑流采集器的無功損耗分析及節(jié)能電路設(shè)計(jì)
基于SHA1的SCADA系統(tǒng)PLC固件完整性驗(yàn)證方法
基于固件的遠(yuǎn)程身份認(rèn)證
英特爾發(fā)布免費(fèi)固件引擎
提取ROM固件中的APP