張津碩,雷志勇
(1.西安工業大學 兵器科學與技術學院,西安 710021;2.西安工業大學 電子信息工程學院,西安 710021)
大數據時代的來臨體現在數據逐步復雜化、多元化。單通道傳感器已經慢慢離開人們的視野,取而代之的是多通道傳感器或者多傳感器。對于信號處理相關實驗來說,保證信號高速采集、快速緩存、高速傳輸是實驗成功的前提[1]。
由于多通道傳感器存在采樣率過高、采樣精度過高等原因使得采集到的數據量十分龐大,導致在設計系統時需要考慮大數據量的處理,緩存器以及傳輸方式。常見的數據處理芯片有微控制單元(MCU)和現場可編程門陣列(FPGA),在兩者的對比之下,FPGA 以其出色的并行處理能力,在數據處理上所占的優勢遠大于MCU,同時FPGA 在使用時靈活多變,有非常豐富的板載資源供系統使用。故本系統選用Xilinx 公司型號為XC7K325TFFG676-2的FPGA 芯片作為核心控制器。一般存儲手段有Flash、RAM、DDR3。三者對比,RAM 作為FPGA 自帶的資源,存儲量小且價格貴;Flash 屬于非易失性存儲器,使用起來比較麻煩;對比其他兩種DDR3 SDRAM 不論在價格上還是在存儲大小和速度上占有明顯優勢,且使用方式比較簡單,故本系統選用DDR3 SDRAM 作為數據緩存模塊。數據傳輸模塊本系統使用千兆以太網UDP 協議作為數據傳輸方式,傳輸速度快且性能穩定,可以通過物理接口RJ45 實現遠距離的數據傳輸[2-3]。
本系統總體設計如圖1 所示,系統由電源、AD7606芯片、FPGA、DDR3 SDRAM 和以太網PHY 芯片組成。FPGA 內部邏輯模塊設計主要有采集控制模塊、AXI_MASTER 模塊以及以太網通信模塊組成。

圖1 系統總體設計Fig.1 Overall system design
上位機向FPGA 發送采集控制命令后,AD7606開始采集信號[4],8 通道信號采集結束并轉換完成時發出寫請求,將數據寫入FIFO 讀寫控制模塊,經由AXI_MASTER 進行接口轉換后將數據存入DDR3 SDRAM 中。設置AXI4 總線的突發長度,當DDR3 SDRAM 中的數據存夠一次突發時,將數據從DDR3 SDRAM 中讀出,通過AXI_MASTER 接口轉換后,將數據通過FIFO 讀寫模塊傳至以太網通信模塊,由以太網傳輸模塊完成分層打包后,傳至上位機中進行顯示。
本系統采用模數轉換器芯片型號為AD7606,該器件產自于亞德諾公司,是一款最高采樣率為200KSPS、采樣精度為16 位、8 通道且具有串行與并行數據輸出兩種模式。芯片本身內置有模擬輸入箝位保護、二階抗混疊濾波器、跟蹤放大器。此芯片最大的特點是芯片內部沒有寄存器資源,所以不需要對其進行配置,只需要對I/O 口進行管腳配置即可控制,故使用起來比較簡單。本系統使用并行數據輸出模式,8 通道的采樣率均為200KSPS。FPGA 與AD7606 接口連接圖如圖2 所示[5]。

圖2 FPGA 與AD7606 接口Fig.2 FPGA and AD7606 interface
本系統采用鎂光公司型號為MT41J256M16 的DDR3 SDRAM。該芯片與FPGA 之間的控制由Xilinx官方的AXI4 接口的MIG 核來控制。由AXI4 總線最大突發長度為256,該緩存芯片內存為4 G bits,在設計DDR3 讀寫時,將DDR3 內部劃分為8 個存儲區域,對應從FIFO 出來的8 個通道地址。采用地址自加一的模式,完成對數據的讀寫。DDR3 的時鐘為800 MHz,用戶時鐘設置為200 MHz[6]。
以太網模型分為2 種,一種是OSI 模型共7 層,另一種為TCP/IP 模型共4 層。本系統采用4 層TCP/IP 結構模型,其分別為應用層、傳輸層、網絡層和鏈路連接層。其中在鏈路連接層要實現硬件連接。本系統采用型號為RTL8211E 的PHY 芯片,通過調用FPGA 內部的MAC 核與PHY 芯片連接,PHY 芯片與MAC 之間的接口為RGMII。PHY 芯片與PC 端之間的連接方式為物理連接,通過RJ45 接口進行連接。FPGA 與PHY 芯片之間的接口信息如圖3 所示[7]。

圖3 RGMII 接口Fig.3 RGMII interface
從圖3 可以看出,對于千兆以太網來說,RGMII接口數據位寬為4 bit,所以RGMII 采用雙沿采樣模式,上升沿發送1~4 位數據,下降沿發送5~8 位數據。
由上位機下發采集命令至采集控制模塊,由采集控制模塊進行命令解析并向數模轉換器發送開始采集命令,完成信號采集。在此模塊中設計狀態機來實現AD7606 工作時序圖,如圖4 所示。

圖4 AD7606 狀態轉移圖Fig.4 AD7606 state transition diagram
AD7606 數據輸出流程為器件開始采集,拉低復位信號一個周期后,CONVST A/B 分辨表示1~4、5~8 通道數據進行轉換,當出現Busy 信號時表示轉換完畢。拉低器件的片選信號,每出現一個RD 會讀取一個通道數據,讀完第8 個通道后AD7606 一次數據的輸出完成。
設計AXI_MASTER 模塊是將FIFO 接口轉為AXI4 接口,從而采用AXI4 接口的MIG 核來實現DDR3 的讀寫操作。此模塊完成對各個參數的配置以及AXI4 總線時序,從而能達到使用的目的。AXI_MASTER 模塊如圖5 所示。其中最大突發長度設置為256,突發大小為64 位[8]。

圖5 AXI_MASTER 模塊Fig.5 AXI_ MASTER module
此模塊使用TCP/IP 模型,其中Ethernet Header和CRC(校驗)由MAC 生成,UDP Header 由傳輸層生成,IP Header 由網絡層生成[9]。
數據由應用層產生并傳遞到傳輸層,有傳輸層給數據加上8 字節的UDP 包頭,其中根據源端口號與目的端口號在相應位置進行設置,數據長度設置為1032 個字節,檢查位全部置為0。
IP 包頭設計主要是對版本、包頭長度、總長度、標識碼、TTL、protocol、源IP 地址和目的IP 地址做定義。本系統設計IP 版本為4,包頭長度為20 字節,總長度為1052,TTL 為80 個周期,Protocol 為17,定義源IP 地址為192.168.0.2,目的IP 地址為192.168.0.3,以太網IP 包頭設計如圖6 所示。

圖6 以太網IP 包頭設計Fig.6 Ethernet IP header design
整個以太網幀結構如圖7 所示。數據段總共設計1052 個字節。為了保證發送數據的正確性,在發送數據之前發送一個標志包,代表數據傳輸的開始[10]。

圖7 以太網幀結構Fig.7 Ethernet frame structure
驗證模塊性能,使用Verilog 編寫testbench 對AD7606 時序進行仿真,結果如圖8 所示,與設計的狀態機相符,實現了AD7606 時序。

圖8 AD7606 時序仿真Fig.8 AD7606 timing simulation
搭建系統測試平臺,使用上位機軟件對系統的IP、端口號、采樣率進行設置。設置完成之后開始采樣,將采樣數據保存至PC 端,通過MATLAB 將其打開,采樣結果如圖9 所示。

圖9 系統測試結果Fig.9 System test results
為了實現多通道信號采集傳輸,本系統選用AD7606 作為信號采集芯片,采集結果真實。該系統可用于其他信號采集上,只需要對選用的模數轉換器進行邏輯上的實現即可。若使用多傳感器,則只需要根據數據量來考慮FIFO 的存儲數據量以及DDR3 的帶寬即可。本系統為信號采集傳輸的設計提供了參考。