YUE Xiaozhong,PEI Dongxing,WANG Jian
(North University of China Science and Technology on Electronic Test and Measurement Laboratory,Taiyuan 030051,China)
The Design of High-Speed Data Acquisition System Based on the USB3.0 Interface
YUE Xiaozhong,PEI Dongxing*,WANG Jian
(North University of China Science and Technology on Electronic Test and Measurement Laboratory,Taiyuan 030051,China)
To meet the problem of current existing in the explosion field measurement memory test system,the data transmission is slow and often lost some data.The high-speed data acquisition system based on USB3.0 is designed by using the data collection technology,memory test technology and parallel sampling techniques.The system achieved the high-speed parallel data acquisition with two sampling rates of up to 500 Msample/s A/D chip.It can bring the analog signal from the XX Explosion power test field to the FPGA after A/D conversion,and transmit to the PC by the USB3.0 interface.Data storage can use the time-storage technology.The design method can solved the problem of high-speed transmission and large data storage during the data collection effectively.
memory testing;USB3.0 interface;data acquisition;high-speed transmission
隨著信息技術的發展,特別是各種數字處理器處理速度的提高,在一些惡劣環境和無法實時傳輸數據的情況下,還必須使用存儲測試方法。人們對數據采集系統的要求越來越高,特別是在一些需要在極短時間內完成大量數據采集,進行實時處理的場合,對數據采集系統的速度提出了非常高的要求。相應地,人們對數據采集系統的存儲能力,接口能力以及抗干擾能力也提出更高的要求,這是數據采集發展的方向。高速穩定可靠的數據傳輸技術在高速數據采集系統中扮演著重要的角色,而隨著數據傳輸速度越來越快,對數據的抗干擾性的要求也越來越高,本實驗室以前一直使用的是USB2.0接口,傳輸速率最高達到480 Mbit/s,隨著以Gbyte為單位的大容量數據傳輸要求的出現,傳統的數據傳輸標準[1-2],例如RS-422,RS485,SCSI和PECL等傳輸標準己無法滿足設計高速數據采集系統的設計要求,而USB3.0技術的出現無疑解決了一般傳輸標準無法滿足高速數據傳輸的要求的窘困[3]。在諸如遙測、遙感等采集操作的數據傳輸速率高、需要采集保存的數據量大的場合,無法做到實時分析和處理,而必須將采集到的數據以適當的方式存儲起來,以便分析和處理。所以,在本設計中分時存儲技術使得這一問題也得到了很好的解決。本設計提出了選用USB3.0芯片CYUSB3014作為USB3.0控制芯片,不僅提高了數據傳輸的速率還能保證數據傳輸的準確性與穩定性[4]。
1.1系統結構組成及工作原理
本文設計的數據采集系統主要包含3部分:A/D轉換器,可編程邏輯器件FPGA和USB3.0傳輸接口。A/D為系統的核心芯片,負責將經過調理通道后的模擬信號轉換成數字信號。系統選用Aimel公司的AT84AD004模數轉換芯片。FPGA選用ATLERA公司的EPZS15F484CS,含有LVDS接收模塊可以直接與A/D轉換后的數據不需要其他的匹配直接進行數據傳輸。FPGA主要包含一些硬件電路的設計,A/D控制碼發送電路、數據轉換電路、存儲電路和時鐘電路。USB3.0則完成把數據高速傳輸至上位機完成處理。該高速數據采集系統以FPGA芯片為主控制器,其硬件上與GPIFⅡ接口相連接,通過FPGA與GPIFⅡ之間的邏輯配合,實現FX3同步從FIFO寫模式的數據傳輸,將數據傳輸至上位機[5]。圖1高速數據采集系統的硬件連接框圖。

圖1 硬件連接框圖
首先通過FPGA與GPIFⅡ的邏輯配合使得內部電路向A/D的寄存器寫入控制字,選擇A/D的工作模式;然后FPGA內部的鎖相環對輸入時鐘進行倍頻,將倍頻后的時鐘送到外部的鎖相環,外部鎖相環產生A/D轉換器的采樣時,A/D開始模擬信號到數字信號的轉換,并將轉換后的數據送入FPGA中,最后通過USB3.0傳輸至上位機[6-7]。
本設計中,模擬信號調理電路將傳感器輸出的模擬信號進行放大、濾波等處理,因此利用ADI公司的運放芯片AD8138將單端的模擬輸入信號轉換為差分格式的信號,提供給A/D轉換器。
2.1A/D轉換模塊
系統的A/D轉換芯片AT84AD004也采用差分模擬輸入差分結構對模擬輸入信號的偶次諧波有較高的抑制性,該芯片內部含有兩個分辨率為8位,最高采樣率為500 Msample/s、信號帶寬達1 GHz的A/D轉換器,芯片集成了采樣保持器,提高了系統的動態性能。芯片還有輸出數據分配器,降低對后面接口電路的要求;輸出數據格式為LVDS,而且對共模噪聲有著非常好的抑制作用,適合高速數據傳輸[8]。
A/D芯片的寄存器寫操作通過三線串行口寫入,三線串行口由串行時鐘輸入口SCLK,串行裝載使能口SLDN和串行數據輸入口SDATA構成,該三線串行口提供了訪問A/D芯片內部的8個只寫寄存器的路徑。利用FPGA內部的串并轉換電路模塊對經過LVDS接收機轉換格式后的數據進行降速,降速系數設定為2,對數據進行2倍降速。ADCQ[7…0]為A/D輸出的8位數據,CKLQ為外部提供的差分時鐘由專用的時鐘IO口進入,設計中需要在內部的Megawizardplug一InManager中設置輸入的通道數目、降速系數、數據的速率。RX_Q[15…0]為2倍降速下串并轉換后得到的16 bit數據。圖2是模數轉換及數據傳輸框圖。

圖2 模數轉換及數據傳輸框圖
2.2存儲模塊
對于高速數據采集系統而言,如果采用存取速度很高的高速FIFO,必定會提高設計成本,所以考慮采用分時存儲的方法[9],分時存儲技術利用一個高速鎖存器將采集的高速數據鎖存,而后利用多個相對慢速的存儲器對數據進行存儲以保證數據存儲的可靠性。由于多個靜態存儲器分時參與了數據存儲的過程,使得多個慢速靜態存儲器分時存儲操作過程進行了疊加,其效果等效于一個高速靜態存儲器的操作。采用兩片FIFO,在不同的寫時鐘作用下,交替地將采樣數據按一定的順序寫入到兩個FIFO中去。同步FIFO其特點為讀寫指針連續推進,可同時進行讀寫操作,同時有空、滿、可以編程的邏輯空和可以編程的邏輯滿等標志位信號,便于和USB3.0控制器模塊進行數據傳輸握手。圖3是分時存儲的設計。

圖3 分時存儲的設計
3.1系統流程介紹
軟件設計的目的是實現數據采集系統正常工作,完成了從系統上電開始,A/D采樣輸入信號到采樣處理數據的工作。主要包括系統初始化、采樣控制的選擇,而采樣控制包括A/D工作模式的選擇、時鐘的控制、數據處理。在USB3.0初始化后,需要對A/D工作模式進行選擇,其模式選擇是通過控制FPGA內部串行碼發送電路實現的。首先,通過兩次寫操作將A/D所需的19 bit碼值寫入FPGA內部,通過內部鎖存電路將寫入的碼值鎖存起來,然后啟動FPGA內部的串行碼發送電路,將19 bit串行碼值依次寫入A/D,以實現A/D工作模式的選擇。在A/D工作模式選擇結束后,需要對A/D采樣時鐘進行控制,然后開放采樣時鐘觸發A/D采樣,清空FIFO,然后打開FIFO寫使能,等待數據寫入FIFO,一旦FIFO寫滿后,會產生一個寫滿標志位,當上位機檢測到該標志位時,關斷寫使能,停止FIFO寫操作,同時,關斷A/D的采樣時鐘,最后開啟讀使能,讀取FIFO中存儲的數據。圖4是系統流程圖。

圖4 系統流程圖
3.2下位機程序設計
用于系統測試的外圍設備使用FPGA作為邏輯控制器,其硬件上與GPIFⅡ接口相連接,通過FPGA與GPIFⅡ之間的邏輯配合,實現FX3同步從FIFO寫模式的數據傳輸,將數據從存儲器中將數據傳輸至上位機。數據傳輸系統的接口時鐘是由FPGA提供的,時鐘頻率為80 MHz。設置SLWR為低電平、SLCS為低電平、PKEND為高電平、SLRD為高電平,這幾種情況同時發生的時,GPIF接口可以進行寫操作。圖5同步寫時序仿真圖。

圖5 同步寫時序仿真圖
FX3的FIFO與Socket(套接字)相關聯。GPIFⅡ一側的套接字相當于端點。FX3可提供多達4個物理線程用于GPIFⅡ數據傳輸,將要使用的套接字須映射至某個線程上,這種映射由固件完成。GPIFⅡ接口上的信號A0:A1表示要訪問的線程,數據傳輸時,DMA結構將數據路由至映射到該線程上的套接字。當A0:A1=0時,數據被路由至映射到線程0的套接字1[10]。FPGA根據系統要求配置A1:A0線程選擇地址信號。
FLAGA和FLAGB都是FX3固件配置的標志限號,它們可以配置為空、滿、局部空或局部滿信號。這些由FX3內部的DMA硬件引擎控制。標志語特定的線程相關聯,可顯示當前映射至該線程的套接字狀態。標志會在數據從套接字中讀出時只是空/非空狀態,也會在數據寫入套接字時只是滿/不滿狀態。數據傳輸系統接口中應用FLAGA作為當前線程套接字的滿/不滿狀態標志。FIFO地址由A0:A1=0確定線程0,FLAGA信號為高電平,表示套接字緩沖區不滿,SLCS一直為低電平使能狀態,當應用程序通過GPIFⅡ的INT接口向FPGA發送一個高電平脈沖時,SLWR下拉至低電平,數據開始從時鐘上升沿向套接字緩沖區寫入數據,緊接著FX3會啟動DMA通道,當緩沖區被裝滿數據,FLAGA信號下拉至低電平,相應的DMA回調函數被調用,回調函數將數據送到U端口,然后從U端口傳送至上位機。FPGA邏輯控制程序波形仿真圖如圖6所示。

圖6 FPGA邏輯控制程序波形仿真圖
圖7是由某次靶場實驗結果分析得到的記錄毀傷威力場中振動加速度的變化曲線。左圖是振動加速度曲線沖擊波完整信號,右圖是數據傳輸系統在接口時鐘為80 MHz時測試得出的數據傳輸速率,達到了113 700 kbyte/s的超高速度,比以往使用的USB2.0接口傳輸速率更快,并且無點的丟失。由實驗結果分析,在爆炸威力試驗場相同距離的測點沖擊波到達時間基本一致[11],可以看出超壓峰值基本符合沖擊波衰減規律,完好的數據顯示了本設計的高速采集與傳輸系統在測試中的可靠性和實用性,也表明本數據采集系統可控性強、同步性好、數據完整,傳輸速率快,是一套成功、實用的采集系統。

圖7 采集數據曲線與傳輸速度速率
本設計的采集系統有很多優點,通過USB3.0接口的超高速傳輸特性進行高速數據采集卡的設計和分時存儲的設計,可有效地解決高速數據采集中的數據傳輸和存儲問題,測量結果誤差小,可信度高有利于實現數據的實時處理[12]。采用Cypress公司的USB3.0專用接口芯片CYUSB3014與FPGA連接完成了采樣數據的高速傳輸測試,經過多次測試,USB3.0接口的準確、超高速、實時等性能得到了充分的體現。
[1]張文棟.存儲測試系統的設計理論及其應用[M].北京:高等教育出版社,2002:32-36.
[2]崔亮飛.USB總線技術在大容量存儲測試系統中的應用[J].儀表技術,2010(11):62-64.
[3]高振江.USB3.0通用串行接口技術[J].電子元器件應用,2009(7):77-80.
[4]蘆艷芳,郭林.USB3.0兼容性與電源分配方案[J].電腦知識與技術,2010(27):7649-7650.
[5]吳鵬,陶正蘇,胡宇貞.基于單片機USB接口的PC主機驅動程序和應用程序設計[J].電子器件,2005(3):612-614.
[6]劉瑞芳,丁衛平,胡文靜,等.基于USB3.0高速數據采集系統的研究與設計[J].現代計算機,2011(12):39-43.
[7]白同云.電磁兼容設計[M].北京:北京郵電大學出版社,2011.
[8]劉澤西,程晶晶,孔力.基于USB2.0接口的高速實時數據采集系統[J].測控技術,2007,26(2):34-37.
[9]沈蘭蓀.高速數據采集系統原理及應用[M].北京:人民郵電出版社,1995:80-82.
[10]Hewlett-Packard Company,Intel Corporation,Microsoft Corporation,et al.Universal Serial Bus3.0 Specification[R].Revision 1.0,November 12,2008.
[11]仲倩.爆炸源毀傷效應測評方法研究[D].南京理工大學,2007.
[12]費業泰.誤差理論與數據處理[M].5版.北京:機械工業出版社,2006:24-29.

岳孝忠(1987-),男,漢族,山西省呂梁市人,中北大學碩士研究生,主要研究方向為動態測試與智能儀器,514789733 @qq.com;

裴東興(1970-),男,教授,研究方向為動態測試、數據壓縮、動態校準;近年獲得國防科技進步二等獎兩項,國防科工委鑒定兩項,通過省科委鑒定3項,發表論文多篇,peidongxing@nuc.edu.cn。
EEACC:7210G10.3969/j.issn.1005-9490.2015.01.030
基于USB3.0接口高速數據采集系統的設計
岳孝忠,裴東興*,王健
(中北大學電子測試技術重點實驗室,太原030051)
針對當前爆炸場測量中存在存儲測試系統數據傳輸慢,經常出現丟點問題,綜合運用數據采集技術、存儲測試技術,設計了一種基于USB3.0的高速數據采集系統,采用并行采樣技術,用兩片采樣率高達500 Msample/s的A/D芯片,實現高速并行數據采集,該采集系統將在XX爆炸威力試驗場的模擬信號,經過模數轉換送入FPGA中,再通過USB3.0接口高速傳輸給上位機,數據存儲采用分時存儲技術;該設計方法有效地解決了大容量數據采集過程中的數據的高速傳輸和存儲問題。
存儲測試;USB3.0接口;數據采集;高速傳輸
TP334.7
A文獻標識碼:1005-9490(2015)01-0140-04
2014-01-10修改日期:2014-02-20