王 琦,王 壯,程 翥,苗可可
(1.國防科技大學(xué) 電子科學(xué)與工程學(xué)院,湖南 長沙410073;2.95972部隊,甘肅 酒泉735000)
數(shù)據(jù)采集記錄系統(tǒng)的本質(zhì)是信號的變換和存儲,一個好的、全面的、穩(wěn)定的多通道高速數(shù)據(jù)采集記錄系統(tǒng)[1,2]需要解決好高速模擬-數(shù)字轉(zhuǎn)換、精準(zhǔn)時鐘同步、精確數(shù)據(jù)同步、高速數(shù)據(jù)傳輸、大數(shù)據(jù)存儲、數(shù)據(jù)控制、硬件接口、通道擴展以及采集功能模式設(shè)計等問題。目前,大部分多通道高速數(shù)據(jù)采集記錄系統(tǒng)均采用單板設(shè)計模式,即將實際需求的所有采集通道設(shè)計在一個電路板上,使用單個或多個FPGA 等控制運算單元進(jìn)行數(shù)據(jù)控制,然后通過標(biāo)準(zhǔn)接口將數(shù)據(jù)發(fā)送至存儲單元存儲。這樣的設(shè)計通用性較差、采集通道很難擴展、采集控制和人機交互設(shè)計比較復(fù)雜。
為解決這些問題,本文運用模塊式思想設(shè)計了一種通道可擴展的多通道高速數(shù)據(jù)采集同步記錄系統(tǒng),并對其核心模塊進(jìn)行了邏輯設(shè)計。整體設(shè)計方面,系統(tǒng)由時鐘模塊、采集模塊、存儲模塊和主板控制器組成,各模塊接口均采用通用標(biāo)準(zhǔn)協(xié)議,數(shù)量可以任意擴展。
如圖1所示,系統(tǒng)由主板控制器通過PCIE[3]接口分別控制時鐘模塊、采集模塊、存儲模塊;時鐘模塊輸出的精準(zhǔn)同步時鐘信號與觸發(fā)信號控制采集模塊,使得各采集通道同步采集,各路采集數(shù)據(jù)同步存儲;采集模塊通過ADC芯片、時鐘芯片、SDRAM、FPGA 芯片等[4],將模擬信號模數(shù)轉(zhuǎn)換、打包、緩存、發(fā)送,同時能夠條件式輸出判決信號,觸發(fā)時鐘模塊,實現(xiàn)對周期脈沖等特定信號的采集,F(xiàn)PGA 內(nèi)設(shè)計的各功能通過Wishbone總線[5]進(jìn)行控制;存儲模塊采用raid陣列[6],通過控制多塊固態(tài)硬盤,實現(xiàn)數(shù)據(jù)的高速存儲。主板控制器集成有INFINIBAND (IB)高速數(shù)據(jù)互聯(lián)接口,用于系統(tǒng)整體擴展時,系統(tǒng)間的數(shù)據(jù)共享。
系統(tǒng)工作時,外部模擬信號耦合輸入采集模塊,在時鐘模塊的同步時鐘控制下,采集模塊對數(shù)據(jù)進(jìn)行采集,并對數(shù)據(jù)進(jìn)行統(tǒng)計運算,與閾值比較后會產(chǎn)生判決信號觸發(fā)時鐘板輸出同步觸發(fā)信號。當(dāng)觸發(fā)條件滿足時,時鐘模塊輸出的同步觸發(fā)信號觸發(fā)采集模塊對數(shù)據(jù)進(jìn)行打包、緩存與上傳,主板控制器將采集模塊上傳的數(shù)據(jù)寫入存儲模塊,存儲模塊對寫入的數(shù)據(jù)進(jìn)行永久存儲。
系統(tǒng)可以主板內(nèi)各模塊擴展,也可以主板間整體擴展,如圖2所示,主板控制器0控制時鐘模塊0、其它主板控制器和人機交互以及觸發(fā)信號的選擇工作。在IB 交換機下,各主板通過高速IB 接口實現(xiàn)交叉互聯(lián),由主機統(tǒng)一控制,各模塊產(chǎn)生的觸發(fā)信號也由主機控制選擇,選擇的觸發(fā)信號輸出到時鐘模塊觸發(fā)其輸出觸發(fā)信號。若每個采集模塊能夠?qū)崿F(xiàn)8路AD 采集,時鐘模塊能輸出4 路時鐘信號和觸發(fā)信號,那么時鐘模塊一級級聯(lián)可以實現(xiàn)128路同步AD采集,所有采集通道均在時鐘模塊0的控制下高速同步采集,在同一觸發(fā)信號的控制下高速同步存儲。
整個系統(tǒng)中,采集模塊是核心模塊,其工作性能直接影響到整個系統(tǒng)的性能,因此下面重點介紹了采集模塊的結(jié)構(gòu)設(shè)計和FPGA 內(nèi)的功能程序設(shè)計。
為了提高系統(tǒng)的擴展性能,采集模塊采用通用接口,為了實現(xiàn)高數(shù)數(shù)據(jù)采集、運算,使用基于硬件電路處理的FPGA 作為運算與控制單元。
圖1 系統(tǒng)整體結(jié)構(gòu)
圖2 系統(tǒng)采集通道擴展結(jié)構(gòu)
如圖3所示,采集模塊使用FPGA 芯片作為控制和運算單元,外設(shè)包括高速AD 芯片、精確時鐘芯片、大容量SDRAM、Flash芯片等。一塊FPGA 芯片可以外設(shè)多路AD、多塊SDRAM,同時采集板上集成有外部時鐘輸入、外部觸發(fā)輸入、判決信號輸出、PCIE等接口。
圖3 采集模塊硬件結(jié)構(gòu)
外部輸入的同步時鐘信號通過精確時鐘芯片分配給各路AD 芯片,控制數(shù)據(jù)采集,保證同模塊各路之間和不同模塊之間的采集時鐘同步;觸發(fā)信號輸入FPGA,控制數(shù)據(jù)傳輸轉(zhuǎn)存,保證同模塊各路之間和不同模塊之間的數(shù)據(jù)同步存儲;大容量SDRAM 組對數(shù)據(jù)進(jìn)行緩存,緩存數(shù)據(jù)通過PCIE接口輸出[7],上位機的控制命令也通過PCIE 接口[8]發(fā)送至FPGA;Flash存儲硬件程序、初始化參數(shù)、校準(zhǔn)數(shù)據(jù)等。
為了保證數(shù)據(jù)高效采集傳輸,關(guān)鍵在于采集模塊的邏輯設(shè)計,需要重點解決兩個問題:采集模塊FPGA 各外設(shè)與邏輯功能的控制問題和FPGA 采集數(shù)據(jù)的傳輸問題[9]。采集模塊外設(shè)的邏輯控制需要設(shè)計片上總線,F(xiàn)PGA 采集數(shù)據(jù)的傳輸需要設(shè)計板間數(shù)據(jù)高速互聯(lián)接口。
由于采集模塊FPGA 外設(shè)多,F(xiàn)PGA 內(nèi)部邏輯功能繁雜,必須有一個可靠的、統(tǒng)一的、可擴展的控制總線進(jìn)行控制管理,結(jié)構(gòu)如圖4片上總線協(xié)議虛線框中所示。片上總線架構(gòu)有很多,目前使用較多的幾種片上總線標(biāo)準(zhǔn)有ARM 的AMBA 總線、Silicore的Wishbone總線、IBM 公司的CoreConnect總線、Altera的Avalon總線和OCP-IP設(shè)計的OCP 總線,而Wishbone總線除了共享總線互聯(lián)外,還能實現(xiàn)交叉總線、點對點總線的互聯(lián)方式,因此在采集模塊功能控制中采用Wishbone總線[5]。
圖4 FPGA 邏輯結(jié)構(gòu)
圖4中FPGA 邏輯結(jié)構(gòu)主要包括兩大部分內(nèi)容,數(shù)據(jù)上行模塊和片上總線模塊,此外還有外設(shè)的AD 芯片、時鐘芯片、Flash芯片等的驅(qū)動模塊以及PCIE數(shù)據(jù)互聯(lián)模塊。
數(shù)據(jù)上行要解決數(shù)據(jù)同步采集、同步數(shù)據(jù)傳輸、分路打包[10]、數(shù)據(jù)緩存等問題,圖4數(shù)據(jù)上行虛線框中為數(shù)據(jù)上行邏輯結(jié)構(gòu)。數(shù)據(jù)進(jìn)入FPGA 后,數(shù)據(jù)預(yù)處理模塊對每一路采集的信號進(jìn)行預(yù)處理,包括增益校準(zhǔn)、直流校準(zhǔn)、前視緩存、觸發(fā)統(tǒng)計判決量計算、數(shù)字下變頻 (DDC)[11]、數(shù)據(jù)打包等,在觸發(fā)信號有效情況下按照VITA-49格式對數(shù)據(jù)打包,包頭信息內(nèi)含點數(shù)、時間、通道編號、包編號和用戶可鍵盤輸入的參數(shù)等信息,通過路由控制進(jìn)入SDRAM 緩存,數(shù)據(jù)從SDRAM 出來后,與溫度報警信號、溢出報警信號等數(shù)據(jù)進(jìn)行幀打包,通過PCIE接口上傳。
圖5所示為數(shù)據(jù)預(yù)處理模塊的數(shù)據(jù)控制邏輯結(jié)構(gòu)。主要包括AD 數(shù)據(jù)接收、前視FIFO 緩存、數(shù)據(jù)校準(zhǔn)、DDC、數(shù)據(jù)位調(diào)整等模塊。
采集數(shù)據(jù)進(jìn)入FPGA 后,分兩路分別進(jìn)行處理:一路進(jìn)行統(tǒng)計判決量計算,得到判決信號輸出;另一路進(jìn)入前視FIFO,從前視FIFO 出來之后經(jīng)過校準(zhǔn)、DDC、數(shù)據(jù)位調(diào)整后進(jìn)行打包,數(shù)據(jù)打包要在同一觸發(fā)信號下進(jìn)行,其模塊設(shè)計如圖6所示。前視FIFO 前視大小、數(shù)據(jù)校準(zhǔn)等都可通過寄存器控制。
圖5 數(shù)據(jù)預(yù)處理模塊邏輯結(jié)構(gòu)
圖6 數(shù)據(jù)打包模塊邏輯結(jié)構(gòu)
外部觸發(fā)信號進(jìn)入FPGA 使得觸發(fā)有效或者寄存器設(shè)置觸發(fā)有效后,觸發(fā)信號產(chǎn)生模塊會根據(jù)寄存器設(shè)置,產(chǎn)生寬度可設(shè)定的單穩(wěn)觸發(fā)信號,或者產(chǎn)生有效寬度可設(shè)定、間隔可設(shè)定、周期可設(shè)定的自恢復(fù)觸發(fā)信號;這些觸發(fā)信號經(jīng)過選擇器控制VITA-49包頭信息產(chǎn)生、數(shù)據(jù)堆疊,產(chǎn)生的包頭信息進(jìn)入緩存,調(diào)整與緩存中堆疊的AD 數(shù)據(jù)進(jìn)行對齊,再按照打包標(biāo)準(zhǔn)數(shù)據(jù)寬度并行輸出。
按照前文設(shè)計,實現(xiàn)了一套由一個時鐘模塊、兩個采集模塊、兩個存儲模塊和一個主板控制器構(gòu)成的采集系統(tǒng),實現(xiàn)了16通道、14bit、180 MHz連續(xù)采集,并對獲得的數(shù)據(jù)進(jìn)行了測試。
實現(xiàn)的系統(tǒng)中,時鐘模塊采用Xilinx FPGA 控制TICDCE72010時鐘芯片輸出4路同步時鐘信號,同時輸出4路同步觸發(fā)信號,設(shè)計有外部時鐘輸入、觸發(fā)輸入接口和8line PCIE gen1 接口。存儲模塊使用raid陣列管理控制器搭載8塊250 MB 固態(tài)硬盤進(jìn)行高速存儲,存儲速度可達(dá)3.2GB/s。采集模塊使用Xilinx V6FPGA 作為控制和運算單元,結(jié)構(gòu)如圖7所示。
圖7中,實際設(shè)計的采集模塊硬件結(jié)構(gòu)使用PCIE gen2接口,F(xiàn)PGA 外設(shè)4個最高250M 采樣頻率、14bit采樣位數(shù)、2 通道的 LTC2157-14 AD 采集芯片,1 個 TICDCE72010時鐘芯片,4 個1GB SDRAM 芯片,1 個128 MB Flash芯片,設(shè)計有外部時鐘輸入、觸發(fā)輸入接口和8line PCIE gen2接口,輸入采用交流耦合輸入,輸入峰-峰值為1.5V。
圖7 實現(xiàn)的采集模塊硬件結(jié)構(gòu)
采集模塊采用PCIE gen2X8接口,數(shù)據(jù)實際傳輸速度可以達(dá)到3GB/s,在主板控制器控制下,AD 采集數(shù)據(jù)永久記錄速度平均為2.8GB/s,可實現(xiàn)8路14bit 180 MHz連續(xù)采集。前視大小最大為8192 個點,可以鍵盤觸發(fā)、GPS觸發(fā)、信號幅度觸發(fā)、帶寬能量觸發(fā),觸發(fā)門限等參數(shù)可設(shè)置,采集樣式有單穩(wěn)采集、自恢復(fù)采集,采集點數(shù)、間隔、周期等參數(shù)可設(shè)置。圖8為用200 MHz對峰-峰值1 V、頻率10 MHz的正弦信號進(jìn)行采集后計算的功率譜。如圖8所示,相對峰峰值1V 的正弦信號,系統(tǒng)各頻點噪聲功率均在-100dB以下。
圖8 10 MHz正弦信號功率譜
圖9所示為不同采集模塊上的兩路AD 用200 MHz對峰-峰值1V、頻率1 MHz的同一個正弦信號進(jìn)行采集后計算的相位差隨時間的抖動。如圖9所示,由系統(tǒng)噪聲、采樣頻率等引起的兩路信號相位差在固定均值兩邊隨機抖動,均值為-0.1030度,標(biāo)準(zhǔn)差1.58×10-4度,可以看出兩路信號是在固定相位差周圍小范圍內(nèi)抖動的,固定相位差可以通過調(diào)整時鐘芯片與數(shù)據(jù)對齊進(jìn)行補償,相位差小范圍的抖動需要根據(jù)實際需求進(jìn)行相應(yīng)評估。
圖10 所示為采集模塊某一AD 采集通道對1 K-100 MHz信號的帶通特性。圖10中,采集模塊的3dB 帶寬為50K-100 MHz,500K-100 MHz內(nèi)帶寬平坦度較好。
圖9 不同板AD 采集同一信號的相位差與時間關(guān)系
圖10 1K-100 MHz信號帶通特性曲線
整個系統(tǒng)在系統(tǒng)結(jié)構(gòu)、各模塊結(jié)構(gòu)、運算單元程序設(shè)計等方面均采用模塊化設(shè)計,使得系統(tǒng)采集通道數(shù)、各個功能等都能夠擴展,并且上位機容易控制,方便二次開發(fā)。
實現(xiàn)的系統(tǒng)采集模塊采用PCIE 2.0X8 接口,數(shù)據(jù)采集記錄速度達(dá)到2.8GB/s以上,能夠14bit 180 MHz的連續(xù)采樣,時鐘模塊一級級聯(lián)能夠?qū)崿F(xiàn)128路同步采集記錄。系統(tǒng)同步性能穩(wěn)定,信號通帶較平坦,系統(tǒng)噪聲較小。
[1]ZHAO Ruiguo,MA Jie,HE Zhiyong,et al.Design and application of high-speed acquisition database for liquid rocket engine[J].Journal of Rocket Propulsion,2011,37 (3):60-64(in Chinese).[趙瑞國,馬杰,何志勇,等.液體火箭發(fā)動機高速采集數(shù)據(jù)工程數(shù)據(jù)庫設(shè)計與應(yīng)用[J].火箭推進(jìn),2011,37 (3):60-64.]
[2]FENG Ni,ZHANG Huixin.Design and application of highspeed acquisition and storage system of telemetry digital video signal[J].Computer Measurement and Control,2013,21(1):279-281 (in Chinese).[馮妮,張會新.遙測數(shù)字視頻信號高速采集存儲系統(tǒng)的設(shè)計與應(yīng)用 [J].計算機測量與控制,2013,21 (1):279-281.]
[3]Keron MJ,Gardner FM.Interpolation in PCIE fundamentals[J].IEEE Transaction on Communications,2010,41 (3):501-507.
[4]WANG Jialiang,ZHAO Shuguang.PCI-E Interface implementation and DMA engine design with FPGA [J].Computer Technology and Development,2011,21 (6):181-184 (in Chinese). [王嘉良,趙曙光.用FPGA 實現(xiàn)PCI-E 接口和DMA 控制器設(shè)計 [J].計算機技術(shù)與發(fā)展,2011,21 (6):181-184.]
[5]XIA Hong,HAO Chun’e,YAN Jiangyu.Design and verification of AHB-WISHBONE bidirectional bridge [J].Computer Engineering and Design,2011,32 (6):2201-2204 (in Chinese). [夏宏,郝春娥,閆江毓.雙向AHB-WISHBONE 總線橋的設(shè)計與驗證 [J].計算機工程與設(shè)計,2011,32 (6):2201-2204.]
[6]ZHANG Yuankai,CAI Huizhi,LIU Yao,et al.High speed storage system based on PCIe and RAID5 [J].Control and Automation Publication Group,2010,26 (12):3-4 (in Chinese).[張元凱,蔡惠智,劉垚,等.基于PCIe和RAID5的高速存儲系統(tǒng)設(shè)計[J].微計算機信息,2010,26 (12):3-4.]
[7]SUN Xiaoye.High Speed SG DMA data transmission system based on PCIE [J].Computer Technology and Development,2013,23 (9):195-198 (in Chinese). [孫曉曄.基于PCIE的SG DMA 高速數(shù)據(jù)傳輸系統(tǒng) [J].計算機技術(shù)與發(fā)展,2013,23 (9):195-198.]
[8]LI Muguo,HUANG Ying,LIU Yuzhi.Design of DMA transmission with PCIe bus interface based on FPGA [J].Computer Measurement and Control,2013,21 (1):233-235 (in Chinese).[李木國,黃影,劉于之.基于FPGA 的PCIe總線接口的DMA 傳輸設(shè)計 [J].計算機測量與控制,2013,21(1):233-235.]
[9]LI Lisi,CUI Zhihua,YIN Ye,et al.Design and verification of DMA controller of PCIe based on FPGA [J].Computer Measurement and Control,2014,22 (4):1166-1168 (in Chinese).[李麗斯,崔志華,殷曄,等.基于FPGA 的PCIe總線DMA 控制器的設(shè)計與驗證 [J].計算機測量與控制,2014,22 (4):1166-1168.]
[10]SUN Tingting,HUANG Jie.Reassemble packets of 3Gcore network based on FPGA [J].Computer Engineering and Design,2010,31 (8):1641-1644 (in Chinese).[孫婷婷,黃杰.基于FPGA 的3G 核心網(wǎng)數(shù)據(jù)包重組方法 [J].計算機工程與設(shè)計,2010,31 (8):1641-1644.]
[11]TIAN Liyu,YUAN Yidan,LI Xiaoyang,et al.Design and implementation of the on-line configurable digital down converter(DDC)based on FPGA [J].Transactions of Beijing Institute of Technology,2013,33 (3):311-316 (in Chinese).[田黎育,袁一丹,李曉陽,等.基于FPGA 的在線可重配置數(shù)字下變頻的設(shè)計與實現(xiàn) [J].北京理工大學(xué)學(xué)報,2013,33 (3):311-316.]