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