隨著現代工業生產和科學研究對數據采集的要求日益提高,在瞬態信號測量、圖像信號處理等一些高速、高精度的測量中,都迫切需要進行高速數據采集(如雷達信號分析、超音波信號分析);而進行數字處理的先決條件是將所研究的對象數字化,因此數據采集與處理技術日益得到重視。在圖像信號處理、瞬態信號檢測、工業過程檢測和監控等領域,更是要求高速度、高精度、高實時性的數據采集與處理技術。現在的高速數據采集處理卡一般采用高性能數字信號處理器(DSP)和高速總線技術的框架結構。DSP用于完成計算量巨大的實時處理算法,高速總線技術則完成處理結果或者采樣數據的快速傳輸。DSP主要采用TI和ADI公司的產品,高速總線可以采用ISA、PCI、USB等總線技術。其中PCI卡或ISA卡安裝麻煩,價格昂貴,受計算機插槽數量、地址、中斷資源的限制,可擴展性差,在一些電磁干擾性強的測試現場,無法專門對其做電磁屏蔽,易導致采集的數據失真。通用串行總線USB是為解決傳統總線不足而推廣的一種新型的通信標準。該總線接口具有安裝方便、高帶寬、易于擴展等優點,已逐漸成為現代數據發展趨勢。基于USB的高速數據采集卡充分利用USB總線的上述優點,有效地克服了傳統高速數據采集卡的缺陷。 1 系統硬件設計 本系統主要是基于USB2.O的S1ave FIFO模式,在FPGA控制下完成雙通道、不同速率的數據的采集和發送,全兼容USB2.O總線接口標準,其數據的采樣率可高達65 Msps;適用于較高速動態信號的實時記錄采集,其硬件系統總體結構框圖如圖1所示。 該系統主要由信號調理模塊、A/D轉換模塊、觸發模塊、基于FPGA的主控模塊、USB收發控制模塊、片外存儲器及其他輔助電路組成。調理電路與A/D轉換器,將傳感器采集的模擬信號進行相關的信號調理后送入AD9244芯片轉換為數字信號。處理后的數據送往FPGA主控模塊,根據相關的控制信息,選擇通過直接傳輸給上位機,或者先存儲在外部SDRAM,然后經過相關的數字處理后再傳輸給上位機。 2 系統模塊介紹 2.1 USB2.0專用微處理器CY7C68013A CY7C68013A是Cypress Semiconductor公司生產的一款集成USB2.O的微處理器。它有3種封裝形式——56SSOP、100TQFP和128TQFP,其結構框圖如圖2所示。 CY7C68013集成了USB2.O收發器、SIE、增強的8051微控制器和可編程的外圍接口部件。其SIE可在全速(12 Mb/s)和高速(480 Mb/s)兩種模式下運行,同樣可以使用內部RAM來進行程序和數據的存儲。GPIF和Master/Slave端口FIFO為ATA、UTOHA、EPP、PCM—CIA和DSP等提供了簡單和無需附加邏輯的連接接口。其編程可以根據設計的需要進行,不需要CPU的干預,只需通過CPU的一些標志和中斷即可進行通信。CY7C68013共有7個輸入輸出端口:EP0、EPlOUT、EPlIN、EP2、EP4、EP6、EP8,其中EP2、EP4、EP6、EP8可以分別被配置為批量/中斷/同步傳輸模式,傳輸方向均可配置為I/O,端口EP2、EP6的緩沖區大小可編程為512或1 024字節,深度可編程為2/3/4倍大小;端口EP4、EP8的緩沖區大小固定為512字節,深度為2倍,采用不同的配置方式,可實現特定帶寬和速率要求的數據傳輸。 2.2 主控電路FPGA芯片 EP2C8Q208EP2C8Q208主控電路如圖3所示。 FPGA芯片也是一種特殊的ASIC芯片,屬于可編程邏輯器件,它是在PAL、GAL等邏輯器件的基礎上發展起來的。同以往的PAL、GAL等相比,FPGA規模比較大,適合于時序、組合等邏輯電路應用。本文選用A1tera公司的FPGA芯片EP2C8Q208,完成數據采集卡的時序和地址譯碼電路設計。由于EP2C8Q208有36個M4K RAM,在FPGA內部設計一個16位寬度、4 KB深度的FIFO,使用FIFO提高數據采集卡對多通道信號的采集存儲能力。FIFO有半滿、全滿、空標志位,當檢測到半滿標志位時,FIFO同時讀寫;全滿時只讀不寫;空時只寫不讀。A/D采樣控制信號通過FPGA控制;PC機對采集后的數據作進一步處理,以提高精度,其中2選1模塊,由主控制模塊來控制,選擇是直接將采集數據送給PC機處理,還是在內部進行DSP處理后再送給PC機。 由于Nios是一個位于FPGA中的處理器軟核,定制其外設就顯得比較容易,在SOPC Builder(集成到Quartus II工具中的為建立SOPC系統設計,提供標準化的圖形設計環境。其由CPU、存儲器接口、標準外圍設備和用戶自定義的外圍設備組成)環境下,其定制邏輯的結構框圖如圖4所示。 自定制的Avalon外設按照對總線操作的方式可分為:Avalon Slave外設和Avalon Streaming Slave(流模式)外設。在SOPC Builder圖形設計界面下添加需要的內核。通過自動分配系統基地址和系統中斷向量,手動分配CPU復位地址為外設Flash、CPU溢出地址為片上RAM和CPU調試斷點地址為JTAG調試地址,就可由系統報告得知系統是否定制成功,如圖5所示。 2.3 ADC芯片及外圍電路設計 ADC外圍電路框圖如圖6所示。 信號調理部分選用高精度、低噪聲、低輸入偏置電流、寬帶運算場效應放大器AD8ll進行信號的放大。模擬信號處理是影響系統性能的重要因素之一,設計時必須考慮兩個方面:一是要保證信號質量,提高信噪比,盡量減少畸變;二是將信號變換成適合A/D處理的幅度并提供足夠的驅動能力。這里選用ADI公司的寬帶運放AD811為放大器。AD8ll是一種電流反饋型的放大器,它具有10 MHz的低失真和單位增益帶寬很寬的特點,使AD81l成為理想的高分辨率ADC緩沖器。之后針對信號進行檔速變換。檔速變換選用ADG系列產品。本設計選用的是一款四路獨立選擇的單片CMOS開關芯片,其設計基于增強的lc2mos進程、可以提供低功耗、高轉換速度和低阻抗性,當信號滿足A/D變換的要求后,根據采集要求將其由單端輸入變換為差分的雙端輸出,芯片選用AD8138。AD8138具有較寬的模擬帶寬(320 MHz,一3dB,增益為1),可以將單端輸入變成差分輸出。A/D轉換的觸發則由信號放大芯片AD811采集信號和D/A轉換芯片信號進行比較,當有效時,發出ADn_TRIG信號,其中D/A轉換芯片的輸入標準信號(數字輸入端)由FPGA來提供。當ADn_TRIG有效時,FPGA向AD924.4發出控制命令(DIN、FORMAT、MODE、SCLK、sYNC、FSYNC信號),啟動A/D轉換。 A/D轉換器的精密時鐘由DDS電路AD9859YSV提供。 3 軟件設計及實現 系統軟件設計包括3部分:固件程序、USB設備驅動程序和應用程序。整個軟件實現的功能包括系統初始化、采樣控制、數據傳輸和波形顯示。 3.1 固件程序設計 固件程序輔助硬件實現設備雙向交換數據,以完成USB通信,其主要功能是:接收并處理USB驅動程序的請求及應用程序的控制指令,控制A/D轉換器的采樣。當首次插入USB時,FX2通過USB電纜會自動枚舉且下載固件和USB描述符表;接下來,FX2再次枚舉,這次主要通過下載的信息來定義設備。這兩個步驟叫作重枚舉。固件程序流程如圖7所示。初始化包含各個初值的設置和關鍵點的電平檢測。 在Cypress公司的網站上,可下載CY7(368013芯片的開發工具包。該開發包提供了一些開發固件程序所需的資源:Keil u Vision2集成開發環境(限制版)、Cypress C51固件框架程序以及一些例子程序。KeilCSl是一種專為8051單片機設計的高效率C語言編譯器,符合ANSI標準,生成的程序代碼運行速度極高,所需要的存儲空間極小,完全可與匯編語言相媲美。同時,C51具有豐富的庫函數,多達1O0多種功能函數。因此,采用C語言作為開發語言,以Keil uVision2作為工程開發平臺,完成源代碼的編寫、仿真、調試,將在相當程度上降低固件開發難度,提高開發效率。 3.2 USB設備驅動設計 USB設備驅動程序的設計是基于WDM(WindowsDriver Model,驅動程序模型)的。WDM采用分層驅動程序模型,分為較高級的USB設備驅動程序和較低級的USB函數層。其中USB函數層由兩部分組成:較高級的通用串行總線模塊(us—BD)和較低級的主控制器驅動程序模塊(HCD)。 本設計用WinDK3.O開發了Win2000下的驅動程序,實現了控制傳輸、中斷傳輸和批傳輸的標準接口函數。在應用程序開發中,可用VC++編制應用程序。把USB設備當成文件來操作,用Create—File得到USB句柄,用DevieeloControl來進行控制傳輸,用ReadFile、WriteFile進行批量傳輸。 3.3 應用程序設計 應用程序流程如圖8所示。用戶應用程序是數據采集系統的核心,其主要功能為:開啟或關閉USB設備、檢測USB設備、設置USB數據傳輸管道、設置A/D狀態和數據采集端口、實時從USB接口采集數據、顯示并分析數據。 4 結 論 用FPGA作為采集處理部分,可以提高系統處理的速度,大大增強系統的靈活性和適應性。FPGA技術和USB的組合,使得數據處理能力得到了極大的提高,且有利于系統升級。USB芯片采用了Cpyress公司的高性能USB2.0芯片CY7C68013,可以完全勝任大數據量的傳送。該實例還可應用于實時數據采集、音頻及壓縮視頻數據傳輸等領域。 |