【導讀】本文為實現對水聲信號的多通道同步采集并存儲,提出了基于FPGA的多通道信號同步采集、高速大容量實時存儲的系統設計方案,并完成系統的軟硬件設計。該系統的硬件部分采用模塊化設計,通過FPGA豐富的外圍接口實現模塊間的數據交互,軟件部分采用Verilog HDL硬件描述語言進行編程,能夠靈活的實現信號的采集及存儲。實際應用表明,該設計具有功耗低,可高速實時存儲,存儲容量大,通用性強,易于擴展升級等特點。水聲信號采集存儲系統是海洋環境調查儀器的重要組成部分。開展水聲環境調查所使用的海洋儀器要求設備通道多、同步性好、采樣率高、數據存儲容量大。
市場上常見的數據采集器多是采集某些固定種類的信號,動態范圍比較小,通道數一般也比較少,有些還要求與主機進行接口等,這些都限制了其在水聲信號采集中的應用。為滿足需要,本文設計了適合于水聲數據采集存儲的較為通用的系統,系統單板具有8個采集通道,多個單板級聯可實現多通道同步采集、USB高速存儲。
1 總體設計
該系統總體結構如圖1所示,上級電路通過級聯接口發送采集指令,單片機初始化控制FPGA,控制FPGA首先判斷單板是否為級聯單板,再初始化相應的FPGA。采集模塊的FPGA向需要同步采集的通道對應的A/D芯片提供統一的時鐘,使得A/D同步的選擇相應的通道進行數據的同步采樣和轉換,其結果傳給負責緩存的FPGA,緩存在DDR對應的存儲空間,然后由ARM控制存儲模塊的FPGA從DDR空間讀取數據進行本地存儲。
圖1:系統總體結構圖
2 系統硬件設計
系統硬件主要由控制模塊、數據采集模塊、緩存模塊、存儲模塊幾部分組成,系統硬件結構圖如圖2所示。單片機功耗低、接口豐富、可靠性高,被系統用做上電引導芯片;FPGA器件具有集成度高、內部資源豐富、特別適合處理多路并行數據等明顯優于普通微處理器的特點,所以系統采用XILINX公司不同型號的FPGA作為不同模塊的主控芯片。針對系統設計中對采集存儲實時性和同步性的要求,存儲模塊采用FPGA與ARM相結合的設計,采集主控制邏輯用ARM實現,FPGA負責數據的高速傳輸和存儲。
圖2:系統硬件結構圖
控制模塊相當于系統的值班電路,當系統作為從板工作時,只有控制模塊和數據采集模塊帶電,其他模塊關閉。由于FPGA內核電壓只有1.2 V,在這種情況下系統工作電流不大于1 A,低功耗的設計保證系統可在無人值守的情況下長時間連續進行采集存儲工作。系統需要多通道數據同時采集存儲時,用戶通過配置主板的控制模塊參數設定8、16或32通道采集,主控FPGA通過級聯接口發送統一的采集時鐘到系統從板,從而實現系統多通道水聲信號的同步采集及存儲。另外,通過單片機接口也可以隨時監控系統工作狀態,系統具有修復功能,采集存儲過程中出現錯誤時,可根據用戶配置自動進行相應的錯誤處理。
數據采集模塊具有8路數據采集存儲通道,每通道采用TI公司的24位高精度模數轉換器ADS1258,A/D采用15.36 MHz的外部輸入時鐘。設計中數字電源、模擬電源、參考電壓單獨布線,保證8通道信號隔離度幾乎為零,降低了系統測量噪聲。模塊中FPGA并行控制多路數據轉換,包括轉換啟動、轉換同步、轉換停止、轉換數據輸出等。
數據緩存模塊采用64M byte的DDR作為緩存,因為DDR在一個時鐘周期內進行兩次數據傳輸操作,它能夠在時鐘的上升沿和下降沿各傳輸一次數據,具有雙倍的數據傳輸量,DDR可以在與SDRAM相同的總線頻率下達到更高的數據傳輸率。緩存模塊中的FPGA對DDR的數據寫入和存儲
模塊中的FPGA對數據的讀取是通過兵乓傳輸結構實現的。當FPGA寫滿DDR上半區后,向存儲模塊申請中斷,存儲模塊響應中斷后,讀出上半區數據到存儲模塊;同時FPGA向DDR的下半區寫數據,寫滿下半區后也向存儲模塊發出中斷,通知存儲模塊讀出下半區數據。通過乒乓傳輸保證了系統數據采集和數據傳輸可連續進行。
數據存儲模塊的作用是將多通道24 bit數據經過緩存模塊,按采樣的時間順序,以低字節到高字節的次序,依次將其寫入電子硬盤。系統采用IPD的iPD-USB型300G電子硬盤作為存儲器。由于它沒有普通硬盤的旋轉介質,因而抗震性極佳,同時工作溫度很寬,可工作在-40~+85℃,再加上重量較硬盤輕很多,非常適用于水下聲信號采集存儲設備。根據系統要求,采用USB底層芯片配合存儲模塊實現大容量高速USB存儲,速度可達480Mbit/s,比全速USB存儲快了40倍。
[page]
3 系統軟件設計
程序設計采用Verilog HDL硬件描述語言,軟件采用模塊化設計,提高了程序的可移植性和可維護性。系統的軟件主要分為初始化模塊、水聲數據采集模塊、數據緩存模塊、數據存儲模塊、中斷服務程序模塊等構成。初始化程序僅在系統復位及程序開始時執行一次,完成各模塊主控芯片及外圍電路的初始化;數據采集模塊通過模擬量輸入端口采集水聲信號;數據緩存模塊負責將DDR中緩存的數據依次輸出給存儲模塊;數據存儲模塊每分鐘向電子硬盤中寫入一個文件。軟件設計的流程圖如圖3所示。
圖3:軟件系統流程圖
4 試驗應用
4.1 實驗室測試結果
系統的性能測試是保證系統穩定,可靠工作的重要手段。在實驗室測試過程中,主要對系統的整體性能進行考察,其中包括:多通道采集同步誤差、數據吞吐量、系統功耗、自噪聲等。測試結果如表1所示。
4. 2 海上試驗結果
本系統應用的海洋環境噪聲測量潛標在中國某海域進行了海上實驗,系統連續工作3個月,性能穩定可靠,并獲取了大量完整有效的海洋環境噪聲數據。測量的海洋環境噪聲功率譜符合海洋環境噪聲的自然分布規律。實測海洋環境噪聲功率譜如圖4所示。
圖4:海洋環境噪聲功率譜
本系統采用多FPGA相結合的設計,很好的完成了高速多通道數據采集與存儲,并且詳細介紹了FPGA各模塊的設計方法。本系統設計靈活,能很容易的擴展為多通道數據采集存儲系統,也能很容易的修改為與其他的A/D轉換芯片接口。
相關閱讀:
技術達人:音頻信號采集與AGC算法的DSP實現
霍爾傳感器信號采集與顯示系統設計
麥克風陣列信號系統采集的設計