摘 要: 給出了高速采集" title="高速采集">高速采集系統(tǒng)的實(shí)現(xiàn)架構(gòu)及控制原理,并在分析數(shù)據(jù)采集系統(tǒng)現(xiàn)狀的基礎(chǔ)上,針對(duì)高速采集系統(tǒng)存在的采集和傳輸速度" title="傳輸速度">傳輸速度、資源利用不合理以及硬件成本偏高等問(wèn)題,給出了一種共享總線、同步采集、分時(shí)讀取的方法。實(shí)踐表明,采用該方法提高了系統(tǒng)的采集和傳輸速度,實(shí)現(xiàn)了對(duì)多通道、高分辨率并行A/D" title="A/D">A/D同步采集的有效控制,節(jié)省了FPGA系統(tǒng)資源,降低了硬件成本。
關(guān)鍵詞: 高速采集 FPGA 分時(shí)操作
工程應(yīng)用中經(jīng)常需要對(duì)一些具有長(zhǎng)時(shí)間域、瞬變特征的信號(hào)進(jìn)行檢測(cè),由于信號(hào)波形具有時(shí)域位置不確定等特點(diǎn),特別在航天測(cè)控、故障診斷、定位等系統(tǒng)中,所以往往還需要同時(shí)對(duì)多個(gè)參數(shù)進(jìn)行采集[1~3]。一般暫態(tài)過(guò)程中還有豐富的有用信息,能夠?yàn)楣收显\斷、失效分析等提供有力的理論依據(jù);連續(xù)大容量數(shù)據(jù)信息對(duì)于趨勢(shì)預(yù)測(cè)、壽命診斷、檢測(cè)以及系統(tǒng)參數(shù)估計(jì)和辨識(shí)具有重要的意義。因此,這對(duì)數(shù)據(jù)采集、存儲(chǔ)和傳輸速度及精度提出了較高要求。由于一般處理器主頻和資源的限制,無(wú)法達(dá)到高速數(shù)據(jù)采樣、高分辨率、大數(shù)據(jù)量存儲(chǔ)的目的;DSP等高性能處理器雖然可以滿足一定場(chǎng)合的高速采集的需要,但過(guò)于頻繁的中斷使CPU效率降低,響應(yīng)速度變差。
目前,一般采用CPLD 或FPGA直接控制A/D轉(zhuǎn)換的方式達(dá)到高速采集的目的。但采用CPLD或FPGA控制A/D轉(zhuǎn)換的很多應(yīng)用中,同樣存在一些問(wèn)題,主要為一般都外掛數(shù)據(jù)緩沖區(qū),降低了系統(tǒng)的傳輸速度,同時(shí)增加了硬件成本[4];另外對(duì)于高精度、多通道、并行轉(zhuǎn)換A/D系統(tǒng),使得接入FPGA的管腳數(shù)增多,這樣造成FPGA等系統(tǒng)資源的嚴(yán)重浪費(fèi)和成本的增加。本文給出了一種共享總線、同步采集、分時(shí)讀取的方法,提高了系統(tǒng)采集和傳輸速度,達(dá)到對(duì)多通道、高分辨率并行A/D同步采集的有效控制,合理利用了FPGA系統(tǒng)資源,降低了硬件成本。
1 系統(tǒng)基本原理與設(shè)計(jì)
多通道同步高速采集系統(tǒng)結(jié)構(gòu)如圖1所示[5]。由圖1可知,系統(tǒng)主要包括信號(hào)調(diào)理、A/D數(shù)據(jù)采集與控制、數(shù)據(jù)傳輸存儲(chǔ)、EMIF總線接口、DSP部分以及PCI接口等。6路輸入模擬信號(hào)經(jīng)過(guò)信號(hào)調(diào)理電路后送入A/D轉(zhuǎn)換器,數(shù)據(jù)經(jīng)A/D控制單元存入FPGA內(nèi)部緩沖區(qū),由EMIF接口模塊送至DSP外部存儲(chǔ)區(qū),最后經(jīng)PCI總線上傳給PCI104上位機(jī)。
1.1 基本原理
總線共享、同步采集、分時(shí)讀取的方法主要是借鑒了分時(shí)操作系統(tǒng)的思想,按照時(shí)間片對(duì)A/D轉(zhuǎn)換結(jié)果進(jìn)行輪循讀取。從圖1可知,在硬件設(shè)計(jì)上,6路A/D轉(zhuǎn)換器共享采樣時(shí)鐘信號(hào)" title="時(shí)鐘信號(hào)">時(shí)鐘信號(hào)adclk、讀寫(xiě)控制信號(hào)adwr、片選信號(hào)adcs;AD1、AD3、AD5共享一路數(shù)據(jù)總線ADCD14~27,AD0、AD2、AD4共享另一路數(shù)據(jù)總線ADCD0~13;AD0、AD1共享輸出使能信號(hào)ADOE0、AD2、AD3共享輸出使能信號(hào)ADOE1,AD4、AD5共享輸出使能信號(hào)ADOE2。6路A/D轉(zhuǎn)換器共享采樣時(shí)鐘信號(hào)adclk、片選信號(hào)adcs保證了采樣的同步問(wèn)題,共享數(shù)據(jù)總線節(jié)約了FPGA管腳,合理利用FPGA資源,通過(guò)分別使能ADOE信號(hào),在A/D轉(zhuǎn)換完成后數(shù)據(jù)有效的時(shí)間內(nèi),分時(shí)讀取轉(zhuǎn)換結(jié)果,達(dá)到了并行采集的目的;不同數(shù)據(jù)總線的2路A/D轉(zhuǎn)換器共享OE信號(hào),保證在同一時(shí)間片內(nèi)并行讀取2路A/D轉(zhuǎn)換結(jié)果。
1.2 A/D數(shù)據(jù)采集與控制
本文使用TI公司的THS1408 A/D轉(zhuǎn)換芯片。THS1408具有14bit分辨率,最高采樣速率達(dá)到8 MSPS,采用流水線結(jié)構(gòu),14位并行接口[6]。本文最高采樣頻率為5MHz,并行采集6路模擬電壓或電流信號(hào)。A/D轉(zhuǎn)換采樣時(shí)序如圖2所示,在CLK為高電平的半個(gè)時(shí)鐘周期加上td(輸出延時(shí)時(shí)間)的時(shí)間內(nèi),轉(zhuǎn)換后的數(shù)據(jù)都是有效的。因此,在CLK為高電平的半個(gè)時(shí)鐘周期內(nèi),讀取轉(zhuǎn)換結(jié)果是最穩(wěn)定和可靠的。
?
圖3為A/D采樣結(jié)果讀取時(shí)序,其中,為片選信號(hào),低電平有效;為輸出激活信號(hào),低電平有效;D[13:0]為雙向數(shù)據(jù)總線;A[1:0]為地址輸入信號(hào),可尋址四個(gè)地址,其中0地址存放轉(zhuǎn)換結(jié)果,另外三個(gè)地址為控制、增益設(shè)定和偏移設(shè)定寄存器;tsu(OE-ACS)為地址以及片選建立時(shí)間,要求最小為4ns;ten為輸出使能時(shí)間,最大為15ns;tdis為輸出關(guān)斷時(shí)間,典型值為10ns;th(A)為地址保持,最小為1ns;th(CS)為片選保持時(shí)間,最小為0ns。從圖2和圖3可以得出,完成A/D采樣和讀取控制的步驟如下:
(1)首先,為ADC提供采樣時(shí)鐘信號(hào)CLK;
(2)在CLK時(shí)鐘信號(hào)上升沿,使片選信號(hào)有效,地址信號(hào)A[1:0]輸出為0,使輸出激活信號(hào)有效;
(3)至少延時(shí)tsu(OE-ACS)+ten=19ns;
(4)從數(shù)據(jù)總線D[13:0]讀取轉(zhuǎn)換結(jié)果;
(5)使片選信號(hào)無(wú)效,無(wú)效。
2 環(huán)形隊(duì)列數(shù)據(jù)存儲(chǔ)" title="數(shù)據(jù)存儲(chǔ)">數(shù)據(jù)存儲(chǔ)與控制
本文在FPGA內(nèi)部采用環(huán)形隊(duì)列結(jié)構(gòu),用于暫存采集數(shù)據(jù),并采用乒乓方式切換數(shù)據(jù)存儲(chǔ)區(qū),提高數(shù)據(jù)傳輸和數(shù)據(jù)暫存的可靠性。定時(shí)觸發(fā)DSP的EDMA(Enhanced Direct Memory Access)事件,通過(guò)EMIF(External Memory Interface)總線接口完成高速數(shù)據(jù)傳輸。環(huán)形隊(duì)列內(nèi)存要求較小,不易丟失數(shù)據(jù),控制邏輯復(fù)雜,采用乒乓方式觸發(fā)數(shù)據(jù)傳輸事件,保證了采樣和傳輸?shù)牟婚g斷進(jìn)行。
3 FPGA的邏輯控制功能的實(shí)現(xiàn)
采用Xilinx Spartan-II E系列40萬(wàn)門FPGA完成邏輯控制功能,主要包括采集時(shí)鐘處理、6路并行A/D采集與控制、數(shù)據(jù)存儲(chǔ)與傳輸控制、與DSP的EMIF接口、EDMA事件觸發(fā)控制等。
3.1 A/D控制模塊
通過(guò)上面對(duì)A/D控制分析可以知道,在采樣時(shí)鐘CLK為高電平的半個(gè)時(shí)鐘周期內(nèi),讀取轉(zhuǎn)換結(jié)果是可靠和穩(wěn)定的,由于片選、地址建立時(shí)間以及輸出激活時(shí)間的要求,在5MHz時(shí)鐘信號(hào)的半個(gè)周期內(nèi),以共享總線方式可以控制三路A/D轉(zhuǎn)換器,那么通過(guò)兩路總線,就可以完成對(duì)六路并行數(shù)據(jù)的采集。圖4為三路A/D轉(zhuǎn)換器共享數(shù)據(jù)總線的控制時(shí)序圖,采用ModelSim仿真工具完成。其中,adcclk為A/D采樣時(shí)鐘;inclk0為外接時(shí)鐘,經(jīng)過(guò)PLL輸出main_clk作為系統(tǒng)的主時(shí)鐘,時(shí)鐘周期為10ns;adc_oe1、 adc_oe2、adc_oe3為三路A/D輸出使能信號(hào),通過(guò)分時(shí)有效的方法,讀取各路A/D轉(zhuǎn)換結(jié)果,每個(gè)時(shí)間片長(zhǎng)度為30 ns;adc_cs為A/D片選信號(hào),該信號(hào)建立需要一定時(shí)間,為實(shí)現(xiàn)多路A/D并行采樣,將六路A/D片選信號(hào)連接在一起,一直有效;fpga_reset為FPGA復(fù)位信號(hào)。
3.2 環(huán)形數(shù)據(jù)存儲(chǔ)模塊
FPGA內(nèi)部通過(guò)將雙口RAM與地址控制器結(jié)合構(gòu)成環(huán)形隊(duì)列數(shù)據(jù)存儲(chǔ)模塊,數(shù)據(jù)存儲(chǔ)器大小為16KB,每136.53μs觸發(fā)一次DSP的EDMA事件,經(jīng)過(guò)EMIF數(shù)據(jù)總線,將采集數(shù)據(jù)存儲(chǔ)到DSP的外部存儲(chǔ)器SDRAM中,當(dāng)有異常發(fā)生時(shí),通過(guò)PCI總線上傳到PCI104存儲(chǔ)介質(zhì)中。圖5為FPGA綜合后的數(shù)據(jù)存儲(chǔ)模塊邏輯圖,通過(guò)對(duì)地址模塊和雙口RAM的讀寫(xiě)達(dá)到對(duì)數(shù)據(jù)的有效存儲(chǔ)和傳輸。
4 實(shí)驗(yàn)數(shù)據(jù)與波形
圖6為實(shí)測(cè)其中一路A/D控制的時(shí)序圖,A路為A/D輸出使能信號(hào),在每個(gè)采樣時(shí)鐘的上升沿有效,有效時(shí)間為30ns;B路為5MHz采樣時(shí)鐘信號(hào)。圖7為實(shí)際捕獲的瞬變信號(hào)圖形,圖8為漸變信號(hào)變化的實(shí)測(cè)圖形。由于系統(tǒng)具有較高的采樣速率,高速的數(shù)據(jù)傳輸和大容量的數(shù)據(jù)存儲(chǔ)能力,無(wú)論是對(duì)瞬態(tài)變化的信號(hào),還是漸變信號(hào)的特征,都可以達(dá)到捕捉的目的。
?
系統(tǒng)采用FPGA實(shí)現(xiàn)邏輯控制、數(shù)據(jù)傳輸?shù)墓δ埽瑢?shù)據(jù)緩沖部分在FPGA內(nèi)部實(shí)現(xiàn),提高了存儲(chǔ)、讀取速度,節(jié)省了硬件成本;采用分時(shí)操作系統(tǒng)思想,以共享總線的方式,完成對(duì)多路A/D同步采集的功能,合理利用了資源、節(jié)省了硬件成本。實(shí)踐證明,該系統(tǒng)可以滿足多通道高速采集、大數(shù)據(jù)存儲(chǔ)的要求。
參考文獻(xiàn)
1 曾祥君, 尹項(xiàng)根, 陳 浩等. 電力系統(tǒng)暫態(tài)過(guò)程同步記錄的研究. 電力系統(tǒng)及其自動(dòng)化學(xué)報(bào), 2001;(1)
2 劉蘇宜, 王國(guó)榮, 郭烈恩等. 一種基于ISA總線的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì). 華南理工大學(xué)學(xué)報(bào), 2004;(8)
3 王志華, 尹項(xiàng)根, 張小波等. 利用CVT捕捉電壓行波實(shí)現(xiàn)故障測(cè)距的分析與實(shí)踐. 電力系統(tǒng)自動(dòng)化, 2004;(8)
4 林長(zhǎng)青, 孫勝利. 基于FPGA的多路高速數(shù)據(jù)采集系統(tǒng).電測(cè)與儀表, 2005;(5)
5 Zhang Donglai, Zhang Dongsheng, Zhang Jian et al. Data sampling system with high speed and high timing synchron-ization precision for power line fault position detection based on dual ports traveling wave distance measurement method. IEEE/PES T&D, 2005
6 THS1408datasheet. Texas Instruments Incorporated,2002