喻 鵬,肖大為,姬 慶
?
基于FPGA的水下多路數據采集存儲系統
喻 鵬,肖大為,姬 慶
(海軍工程大學,武漢430033)
設計了以FPGA器件SPARTAN-6系列為核心的多通道數據采集存儲系統,通過FPGA對擴展AD和存儲卡的工作時序控制,實現數據采集存儲功能。該系統具有可靠性強,采集速度快,體積小,存儲空間大和功耗較低的特點。
FPGA 數據采集 數據存儲
隨著對海洋開發力度的加大,水下信號采集在軍事、民用上需求越來越大。相比于陸地上,水下數據采集存在著工作環境復雜,數據通訊困難的問題,所以一般均采用先采集存儲后取出來進行數據分析的方法。這對采集可靠性、采集工作時長、存儲容量要求較高。
本系統初步設計具有6個采集通道,實現對聲信號(聲信號和聲包絡信號)、磁信號(磁信號分x、y、z三路)、水壓信號的采集存儲。通過對聲、磁、水壓信號的提取不僅可以對水下目標的特征進行識別,同時也能夠對目標方位進行判別,這對軍用及民用探測領域都有一定的使用價值。本系統工作效率高,能連續工作100 h,存儲容量大(32G)、成本低,應用性強。
水下采集的信號首先經過信號調理模塊進行處理,然后經過AD采樣送入FPGA中,經過數據處理后存儲到存儲器中。與A/D芯片的接口采用FPGA,A/D的串行數據需要經過內部的FIR濾波器進行濾波后串行輸出給FPGA,FPGA完成數據處理,存入FIFO(先進先出存儲器),當數據存儲量達到一定狀態時,進行位校驗運算,校驗完成后將數據寫入FLASH。
整體設計如下:

圖1 物理場采集模塊原理框圖
FPGA選用的XILINX公司出品的SPARTAN-6系列的XC6SLX9芯片,它擁有144個管腳,接近100個可用管腳,含4個時鐘倍頻器。
AD芯片選用AD7671。由于本系統的采樣速率要求高,采樣字長為16位,選擇美國AD公司生產的AD7671作為采集電路模塊的模數轉換器。該芯片單+5V供電,最大功耗僅為112mW,符合低功耗設計原則,適合于電池供電系中應用;精度為16位;采樣速率為800KSPS(正常模式),可滿足系統要求。
存儲芯片選用三星公司生產的K9GB08U0A型,它屬于NAND型FLASH存儲器,容量32G,3.3V供電,體積小,數據讀取存儲速度快。FLASH型存儲介質具有高密度、高速體系結構、低價格,高可靠性、低功耗等特點,成為記錄器系統最常用的存儲介質。而NAND型FLASH的數據線與地址線分時復用,這樣就大大減小了芯片的封裝體積,讀寫操作以頁為單位,擦除以塊為單位,因此編程和擦除的速度快,體積小,價格低[1],基本滿足要求。
2.1信號調理模塊設計
信號調理模塊對傳感器輸出信號進行放大、濾波等信號預處理,滿足信號采集要求。主要包含電源變換模塊、放大濾波電路和數字濾波電路。其中數字濾波電路實現各個信號數字濾波。電源變換電路如圖2。
水聲信號在傳播過程中衰減得非常嚴重,換能器接收到的水聲信號通常比較微弱,一般為μV級信號,不適合A/D轉換器直接采樣。因此,必須先經過信號調理電路的處理[2]。為實現對聲信號采集,聲信號調理電路需要完成對聲傳感器輸出信號的調理功能。其主要參數為:10Hz~10 kHz的帶通濾波,帶內波動≤1dB,通帶增益40dB,輸出端噪聲≤ 5mV,±5V供電,輸出聲調理信號和聲包絡信號,電路原理如圖3所示。

圖2電源變換電路

圖3 聲調理電路原理
2.2采集和存儲模塊設計
采集和存儲模塊設計了六路模擬信號輸入,分別為聲、聲包絡、水壓、磁場X、磁場Y和磁場Z,設計分辨率為65 μV,總記錄深度為32G字節,設計功耗<600mW。

圖4 FPGA與AD連接電路圖
與A/D芯片的接口采用的FPGA不僅接收A/D的數據,同時它也是A/D的時鐘提供者。在設計上,FPGA使用了20MHz的外部晶振,經過分頻后輸出給6路A/D,其中聲采樣采用320 kHz采樣(A/D的FIR濾波器會8分頻數據),輸出40 kHz,其他5路采用320Hz采樣,40Hz輸出。A/D的串行數據輸出到FPGA后,FPGA完成串并轉換,并進行電壓轉換,完成電壓值的矯正。
設置AD7671轉換器工作在正常模式,輸入模擬信號電壓范圍為±5V,數據吞吐量800kSPS,轉換結果串行輸出。需要三組電源:模擬5V電源(AVDD),數字5V電源(DVDD),3.3V邏輯參考電源(OVDD與FPGA一致)。由于一共有6路信號需要采樣,則需要通過FPGA分別控制6個AD采樣器的進行流水采集和數據傳輸。為降低干擾,提高采樣精度,參考數據手冊,設計如圖4采集電路。
AD傳送的數據首先存入FIFO(先進先出存儲器),當數據達到一定狀態滿時,進行位校驗運算,校驗完成后將數據寫入FLASH,存儲模塊電路圖如圖5。
本存儲芯片采用數據線與地址線復用的方式讀取和存儲數據,讀寫操作以頁為單位,擦除以塊為單位[3]。存儲時,首先由8路I/O口傳送寫命令,然后由I/0分4次寫入地址,并進行鎖存,之后再由I/O口寫入數據,寫入結束后傳輸寫入結束命令,寫入完成。讀操作、擦除操作過程與上述寫操作基本一致。
FPGA芯片控制整個電路時序,FPGA使用了20 MHz的外部晶振,經過分頻后輸出給6路A/D以及存儲芯片作為時鐘信號,同時通過部分I/O口控制各個芯片的工作時序。

圖5 FPGA與FLASH連接電路圖
利用QUARTUS軟件仿真采集模塊的工作時序。FPGA輸出信號有SCLK(子時鐘),CS(片選信號),CNVST(啟動采集轉換信號),輸入信號為BUSY(采集轉換狀態信號),SDOUT(串行輸出數據)。部分仿真圖如圖6。

圖6 采集時序仿真圖
其工作過程為:由CNVST窄脈寬信號獨立促發芯片開始采樣,采樣完成并進行轉換之后BUSY由高電平變為低電平,FPGA檢測BUSY信號,通過控制CS信號對AD轉換后數據進行讀取,其中SCLK信號為FPGA提供的同步信號,由SDOUT串行輸入轉換結果。
本文設計了以FPGA為核心控制器件,多片A /D器件流水高速采集并利用FLASH進行大量存儲的系統,重點對采集和存儲模塊進行介紹,設計了采集模塊和存儲模塊的硬件電路,并利用verilog語言編程仿真實現。本系統采集通道的可依據需要進行擴展,通用性較強,在水下信號采集領域具有一定的應用價值。
[1] 任勇峰. FLASH存儲器的高速寫入方法. 電腦開發與應用, 2001, (5): 5~6.
[2] 趙志剛.舷側陣主、被動自導實驗系統的硬件設計[D]. 西安: 西北工業大學, 2007.
[3] 李士照,任勇峰. 某水下用記錄器的設計及實現. 中北大學碩士學位論文, 2013.
[4] 王彥. 基于FPGA的工程設計與應用[M]. 西安: 西安電子科技大學出版社, 2007.
Multi-channel Signals Sampling/Storage System Based on FPGA
Yu Peng, Xiao Dawei, Ji Qing
(Naval University of Engineering, Wuhan 430033, China)
TP273
A
1003-4862(2016)10-0058-03
2016-05-09
喻鵬(1992-),男,碩士在讀。研究方向:軍用目標特性及探測。