基于FPGA的高速數(shù)據(jù)處理系統(tǒng)設(shè)計
隨著光纖傳感技術(shù)的發(fā)展,光纖傳感器已成功應(yīng)用于周界入侵探測等安全防范領(lǐng)域。目前,已經(jīng)應(yīng)用于光纖微擾動傳感器或相似系統(tǒng)的數(shù)據(jù)處理方案比較多,有DSP、FPGA、FPGA+DSP、labview等多種方案。但是目前的解決方案大多是對信號進行前期處理,實現(xiàn)PGC解調(diào)或者是濾波等功能,僅僅對實驗方案進行驗證,擾動判別和定位等工作需要上傳到PC機上進行。
然而,PC機不是專用的數(shù)據(jù)處理器,與專用數(shù)據(jù)處理器相比,PC機體積大、功耗大、處理速度慢。而且在通常的實時信號處理中,專業(yè)處理芯片外圍電路比較少,一般來說一塊電路板就可以完成所需功能,功耗大大減少,而且相比PC機龐大的體積,可以使系統(tǒng)更緊湊,節(jié)約空間。FPGA由于其高度的并行和靈活的配置特性,以高速、實時、低成本、高靈活性的優(yōu)點應(yīng)用于數(shù)字信號處理領(lǐng)域。本文敘述了采用FPGA
實現(xiàn)光纖微擾動傳感器的數(shù)據(jù)處理的具體方案,提供了一種高速實時數(shù)據(jù)處理方法。本系統(tǒng)的主要工作是通過基于FPGA的嵌入式系統(tǒng),實現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)存儲、LCD顯示、USB數(shù)據(jù)傳輸和數(shù)據(jù)處理,完成光纖微擾動傳感的擾動識別和定位功能。
1 系統(tǒng)結(jié)構(gòu)和硬件設(shè)計
1.1 系統(tǒng)結(jié)構(gòu)
光纖微擾動傳感器采用馬赫-澤德/馬赫-澤德(M-Z/M-Z)混合干涉儀方案作為傳感方案。而馬赫-澤德/馬赫-澤德混合干涉儀方案是通過測量兩路光信號到達測量端的時間差來確定擾動位置的一種方案。根據(jù)傳感方案的特點,本系統(tǒng)應(yīng)該先將所得的光信號轉(zhuǎn)換為數(shù)字化信號,然后再對信號進行處理,所以根據(jù)系統(tǒng)的特點,系統(tǒng)結(jié)構(gòu)圖如圖1所示。
從結(jié)構(gòu)框圖中可以看出系統(tǒng)由以數(shù)據(jù)處理核心,光電轉(zhuǎn)換、模數(shù)轉(zhuǎn)換、LCD顯示、數(shù)據(jù)存儲和USB通信等外圍功能模塊構(gòu)造而成。由于光纖微擾動傳感器的傳感采用的是光纖,所以首先需要將信號經(jīng)過光電轉(zhuǎn)換和A/D轉(zhuǎn)換,將信號轉(zhuǎn)換為適于FPGA處理的數(shù)字信號。然后,在FP-GA中進行數(shù)據(jù)處理,判斷接收信號是否是入侵行為。如果存在入侵行為,則同時將采集到的信號存入存儲器,并在LCD上顯示入侵位置;如果沒有入侵行為,則在LED上顯示正常,采集到的數(shù)據(jù)釋放。USB通信模塊只在系統(tǒng)和PC機相連的時候,將存儲器中數(shù)據(jù)上傳到PC機中。
1.2 系統(tǒng)硬件設(shè)計
馬赫-澤德/馬赫-澤德混合干涉儀方案將擾動位置求解問題就轉(zhuǎn)化為測量兩路信號到達測量端的時間差,因此求擾動點的位置的問題轉(zhuǎn)換為求兩路信號的時間延遲估計問題。對于時間延遲估計問題,目前大多采用相關(guān)檢測方法計算。系統(tǒng)采用相關(guān)檢測算法,需要進行大量互相關(guān)計算?;ハ嚓P(guān)計算的具體實現(xiàn)是由大量的乘法和加法組成的,所以對數(shù)據(jù)處理速度要求很高。計算量很大,不過比較適合并行計算。系
統(tǒng)的數(shù)據(jù)處理部分采用的是XC4VSX25,Virtex-4 SX系列是Virtex-4平臺中專門為了高性能數(shù)字信號處理(DSP)應(yīng)用解決方案而設(shè)計的。XC4-VSX25中含有128個XtremeDSPSlice,而每個XtremeDSPTMSlice包含1個18×18位帶補數(shù)功能的有符號乘法器、加法器邏輯和1個48位累加器。每個乘法器或累加器都能獨立使用。
XC4VSX25中含有多個XtremeDSP Slice,而且FPGA中的XtremeDSP Slice可通過IP核的形式方便地調(diào)用。同時XtremeDSP Slice中每個乘法器或累加器都能獨立使用,在XC4VSX25中可方便地將乘法器和累加器組合,構(gòu)成所需要的數(shù)據(jù)處理結(jié)構(gòu),所以采用XC4VSX25為系統(tǒng)的數(shù)據(jù)處理器。
光電轉(zhuǎn)換部分采用PINFET,是目前比較通用的光電轉(zhuǎn)換器件。模數(shù)轉(zhuǎn)換模塊采用的是12位雙通道差分輸入SAR型AD7356,結(jié)構(gòu)簡單實用。大容量存儲模塊采用SUMSUNG公司具有200 μs的頁寫速度的1 GB容量K9K8G08UOM型Flash,可以滿足系統(tǒng)的實時性,并能夠存儲較長時間的擾動信號。LCD模塊采用的是3.3 V單電源供電的320x240大屏幕點陣液晶ZXM320240E1,有足夠的空間將多路的情況同時顯示在屏幕上,而且由于系統(tǒng)選用FPGA的管腳電壓為3.3V,可以避免電平轉(zhuǎn)換,電路簡潔。USB通信模塊采用的是集成了8051單片機的CY7C68013A型USB控制器。
其中A/D轉(zhuǎn)換部分由于系統(tǒng)要求16路.每路12位1~5 M采樣速率,并且由于系統(tǒng)的擾動定位算法采用相關(guān)檢測法,是對時間延遲進行檢測,因此需要在A/D轉(zhuǎn)換的過程盡量減小因為轉(zhuǎn)換而帶來的時間延遲誤差。選用12位雙通道差分輸入SAR型AD7356,該A/D為雙通道型,所以兩路信號的轉(zhuǎn)換是同時進行,減小了因轉(zhuǎn)換帶來的時間延遲。而且AD7356的采樣頻率由輸入時鐘信號決定,因此可以很方便的改變系統(tǒng)的采樣頻率,滿足系統(tǒng)1~5 M的采樣速率要求。
另外,比較各A/D轉(zhuǎn)換器的復(fù)雜程度發(fā)現(xiàn)多通道(4路或以上)A/D由于其設(shè)計的多功能性,導(dǎo)致結(jié)構(gòu)復(fù)雜,使用比較繁瑣,而AD7356采用16引腳的TSSOP封裝,外圍電路簡單。另外該A/D采用單2.5 V供電,可與FPGA共用電源,使系統(tǒng)的供電系統(tǒng)簡潔。而高速A/D轉(zhuǎn)換器的輸入是差分式,如圖2所示,使用AD8138單端至差分轉(zhuǎn)換驅(qū)動AD7357的差分輸入。
系統(tǒng)中有模擬地和數(shù)字地之分,同時A/D轉(zhuǎn)換器由于其特殊性,處于模擬地和數(shù)字地之間,所以對于AD7357的管腳連接應(yīng)注意。AD7357的REFA和REFB管腳需要通過10μF的退耦電容連接到REFGND管腳,而REFGND管腳則需要連接到AGND管腳。而A/D轉(zhuǎn)換器要求AGND和DGND之間
的電平相差不能超過0.3 V,所以需要將AGND和DGND連接起來。為了避免模擬電路和數(shù)字電路之間的干擾,一般情況需要對地分割,但是本系統(tǒng)有多個A/D轉(zhuǎn)換器,所以使用統(tǒng)一地,通過對器件合理擺放來減小模擬和數(shù)字電路間的干擾。
2 數(shù)據(jù)處理設(shè)計
2.1 數(shù)據(jù)處理結(jié)構(gòu)
本系統(tǒng)的數(shù)據(jù)處理結(jié)構(gòu)如圖3所示,首先是采集一定長度的信號存儲到雙口RAM中,然后經(jīng)過擾動識別決定是否需要進行擾動定位計算。由于擾動識別和定位計算需要將采集到的數(shù)據(jù)保存到數(shù)據(jù)處理完畢,所以FPGA中的雙口RAM要有足夠的空間,在數(shù)據(jù)處理的同時繼續(xù)存儲采集到的數(shù)據(jù)。而在工作時,由于采用了高速的AD7356,最高采樣速率可以達到5 M/s,所以要求擾動識別和定位計算速度足夠快。
擾動識別部分由于采用的是平方后積分并與閾值比較的模式,屬于順序計算,耗時不多,數(shù)據(jù)處理耗時的主要部分是擾動定位計算。擾動定位計算采用的是相關(guān)計算,其所消耗的時間在計算速度固定時,由數(shù)據(jù)長度L和相關(guān)長度(移位次數(shù))n決定。進行一次相關(guān)計算的計算量為Ln次乘法和(L-1)n次加法。
在FPGA數(shù)據(jù)處理方面,當資源成本為主要制約時,根據(jù)速度要求,采用串行結(jié)構(gòu)實現(xiàn)或DA結(jié)構(gòu)實現(xiàn);當速度成為主要制約時,則根據(jù)資源成本因素,采用并行結(jié)構(gòu)實現(xiàn)或DA結(jié)構(gòu)實現(xiàn)。而DA結(jié)構(gòu)主要是通過對資源合理的利用來減小資源的空閑時間,從而提高系統(tǒng)的速度。但是對于本系統(tǒng),在計算過程中各資源幾乎是在全速運行,DA結(jié)構(gòu)并不能提高系統(tǒng)的速度,所以需通過并行結(jié)構(gòu)(圖4)來提高系統(tǒng)運行速度。通過圖4可以看出,如果采用串行結(jié)構(gòu),整個相關(guān)計算由1個XtremeDSP Slice(或者1個單核處理器)完成,每完成一次互相關(guān)運算,整個數(shù)據(jù)段移位一次,共移位n次。因此為了及時處理采集到的數(shù)據(jù),串行結(jié)構(gòu)的計算速度至少是采集速度的n倍(根據(jù)傳感長度不同,n最大可達2 500)。而AD7356最高采樣速率可以達到5 M/s,因此計算速度過快,單個XtremeDSP Slice不可能完成。而如果采用s個XtremeDSP Slice并行結(jié)構(gòu),則一次互相關(guān)計算相當于串行結(jié)構(gòu)時的s次互相關(guān)計算,而本來需要移位n次完成的計算,現(xiàn)在只需要m(圖4中變量m=n/s)次移位,每次移位s,即可完成。因此,每個XtremeDSP Slice的計算速度為采集速度的m倍,可以有效減少對計算速度的要求。
2.2 仿真實驗結(jié)果
為了比較串行結(jié)構(gòu)和并行結(jié)構(gòu)的計算速度,在Xilinx 7.1ISE平臺中(Virtex-4器件的最低版本要求),選用Virtex-4系列的XC4VSX25器件,用Verilog HDL語言設(shè)計串行結(jié)構(gòu)和并行結(jié)構(gòu),并在ModelSim中對兩種結(jié)構(gòu)進行仿真比較。由于仿真時間長度的限制,采用5位128長度的三角波模擬采集到數(shù)據(jù),并將XtremeDSP? Slice的計算速率設(shè)定在250 M/s,仿真波形結(jié)果如圖5所示。
從圖5中可看出,采用串行結(jié)構(gòu),計算耗時約為15.8 ms,而采用4個XtremeDSP Slice的并行計算結(jié)構(gòu),計算耗時約為4.2 ms。從仿真結(jié)果的比較可知,串行結(jié)構(gòu)耗時約為并行結(jié)構(gòu)的4倍。因此,在本系統(tǒng)中并型結(jié)構(gòu)的計算速度是正比于并行度的,這與理論上并行計算可以成倍減少計算時間的分析一致。
3 結(jié)束語
通過以XC4VSX25為核心的嵌入式系統(tǒng),實現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)存儲、LCD顯示、USB數(shù)據(jù)傳輸和數(shù)據(jù)處理,完成光纖微擾動傳感的擾動識別和定位功能,具有高速、實時、低成本、高靈活性的優(yōu)點。本系統(tǒng)利用系統(tǒng)內(nèi)特有的硬件結(jié)構(gòu)XtremeDSP Slice實現(xiàn)高效高速的數(shù)據(jù)處理,同時在ISE軟件中XtremeDSP Slice以IP核形式使用,無需自己構(gòu)造乘法器和加法器,既節(jié)省了大量FPGA資源又大大減少開發(fā)難度。通過仿真比較可以看出,本系統(tǒng)中并型結(jié)構(gòu)的計算速度是正比于并行度的,因此可以通過提高并行度來提高系統(tǒng)的計算速度,滿足高速實時的數(shù)據(jù)處理要求。