【摘要】本課題設計了一套基于FPGA和USB2.0的便攜高速數(shù)據(jù)采集系統(tǒng),以FPGA最小片上系統(tǒng)為控制核心,對A/D轉換芯片TLC5510和USB2.0接口芯片CY7C68013的控制,來實現(xiàn)對信號的高速采集和傳輸。
【關鍵詞】數(shù)據(jù)采集;FPGA;USB2.0;A/D轉換
一、引言
近年來,對于數(shù)據(jù)采集系統(tǒng)的要求與日俱增,現(xiàn)代數(shù)據(jù)采集系統(tǒng)已經(jīng)從傳統(tǒng)的試驗測量中的數(shù)據(jù)采集與處理跨入到工業(yè)與過程控制。它已成為現(xiàn)代工業(yè)自動化的不可缺少的一個組成部分。
本課題是對EDA技術的應用,即利用EDA工具實現(xiàn)基于FPGA的數(shù)據(jù)采集。本文按照EDA開發(fā)流程,采用Verilog語言對FPGA進行編程來實現(xiàn)數(shù)據(jù)采集和傳輸?shù)墓δ?。用Verilog語言編寫代碼,進行時序仿真,各模塊都在邏輯綜合工具QuartusⅡ下進行綜合,并編程下載到FPGA芯片Cyclone IV系列EP4CE30F23C6芯片,經(jīng)A/D轉換器將模擬數(shù)據(jù)轉換成數(shù)字數(shù)據(jù),再通過USB2.0接口電路送入PC機輸出。
二、系統(tǒng)總體設計
該系統(tǒng)主要由FPGA控制模塊、A/D轉換、USB接口部分組成,如圖1所示。
A/D轉換器將所要采集的模擬信號轉換成數(shù)字信號,由FPGA接收、緩沖、存儲,經(jīng)USB2.0端口傳回至主機工作站。高速A/D轉換器采用轉換速率為20MHz的TLC5510。
FPGA利用內部的SRAM提供數(shù)據(jù)輸入/輸出的雙緩沖功能。采用雙緩沖的原因同USB中的大端點所配置的雙緩沖類似,均是防止數(shù)據(jù)的溢出和保證數(shù)據(jù)傳輸?shù)倪B續(xù)性。本文選用Altera公司的Cyclone系列芯片EP4CE30F23C6。
CY7C68013是Cypress公司推出的EZ-USB FX2系列智能USB接口芯片。其作用是把A/D轉換器采集的數(shù)據(jù)以高速的數(shù)據(jù)序列形式發(fā)送到主機。其中,USB2.0端口提供一個能和計算機連接的數(shù)據(jù)傳輸接口。
系統(tǒng)工作過程為:A/D轉換器在FPGA的ADC接口控制電路控制下,把模擬信號轉換成數(shù)字信號,并將指定通道的采樣數(shù)據(jù)存入FPGA內部FIFO緩存。同時,F(xiàn)PGA的USB接口控制邏輯查詢CY7C68013是否空閑,如果空閑,那么由FPGA的USB接口控制邏輯將指定通道的采樣結果,從FPGA內部FIFO緩存送入CY7C68013的內部FIFO。當內部的FIFO容量達到一定程度后,CY7C68013自動將數(shù)據(jù)打包傳送到PC機。由于固件程序把CY7C68013設置為特定的自動模式,因此CY7C68013把數(shù)據(jù)送往PC機期間的所有操作無需CY7C68013中CPU的干預,從而保證足夠的數(shù)據(jù)傳輸速率。采樣過程中FPGA的USB接口控制邏輯依次取走批量數(shù)據(jù),在USB接口打包傳送時A/D轉換持續(xù)進行,F(xiàn)PGA內部FIFO也被持續(xù)寫入轉換結果。
圖1 系統(tǒng)總體框圖
三、硬件設計
本系統(tǒng)的硬件主要分為兩個部分:A/D轉換芯片TLC5510和FPGA構成的數(shù)據(jù)采集模塊,另一部分由FPGA和USB控制芯片CY7C68013構成的數(shù)據(jù)傳輸模塊。
(1)數(shù)據(jù)采集模塊
經(jīng)過處理后的信號進入模數(shù)轉換電路,選用的高速A/D芯片是TI公司的TLC5510。它是一種采用CMOS工藝制造的8位高阻抗并行A/D芯片,能提供的最小采樣率為20MSPS。由于TLC5510采用了半閃速結構及CMOS工藝,因而大大減少了器件中比較器的數(shù)量,而且在高速轉換的同時能夠保持較低的功耗。TLC5510與FPGA的接口電路如圖2所示。
FPGA提供TLC5510 20MHz的工作時鐘和使能輸出信號OE,低電平有效。模擬信號經(jīng)過TLC5510轉換成數(shù)字信號后,將采樣數(shù)據(jù)傳給FPGA的FIFO保存。
圖2 FPGA與TLC5510的接口電路圖
(2)數(shù)據(jù)傳輸模塊
在數(shù)據(jù)傳輸模塊中,采用的是Cypress公司的EZ-USB FX2芯片CY7C68013。這是一款性能較高的USB2.0微控制器。在單芯片上集成了USB2.0收發(fā)器、SIE(串行接口引擎)、增強的8051微控制器和可編程的外圍接口。
為了保證較高的傳輸速度,使用不經(jīng)過CPU的SLAVE FIFO(從FIFO)控制工作模式。在該方式下FX2的CPU不直接參與USB數(shù)據(jù)處理,而是簡單地把FX2作為USB和外部數(shù)據(jù)處理邏輯之間的通道,數(shù)據(jù)流并不經(jīng)過CPU,而是通過FX2的FIFO直接傳輸。FIFO由外部控制器控制,外部控制器可像普通FIFO一樣對FX2的多層緩沖FIFO進行讀寫;與此同時,F(xiàn)IFO提供外部控制器所需的時序信號、握手和輸出使能等信號。
在本設計中,采用Slave FIFO從機方式實現(xiàn)FPGA對FX2的控制。CY7C68013與FPGA的連接示意圖如圖3所示。修改FX2芯片提供的基本固件程序,設置端點EP2為輸出端點,大小為1KB,F(xiàn)lagA為EP2緩存的空標志,低電平有效;端點EP6為輸入端點,大小為1KB,F(xiàn)lagC為EP6緩存的滿標志,低電平有效。
模塊的基本工作過程為:當A/D采樣數(shù)據(jù)存儲滿FPGA中的FIFO后,F(xiàn)PGA根據(jù)SLAVE FIFO的控制時序產生相應的控制信號,將在FIFO中的數(shù)據(jù)傳輸給FX2的內部端點FIFO,而當內部端點存儲滿后,F(xiàn)X2自動將數(shù)據(jù)傳輸?shù)絇C。外部控制器FPGA對FX2的控制進程如下:
①分配FIFOAddr[1:0]=10,F(xiàn)IFO指針指向輸入端點,檢查FIFO的滿標志是否為1,假如Full=1,表示FIFO不滿,轉到②,否則保持在①;
圖3 CY7C68013與FPGA連接示意圖
②把外部數(shù)據(jù)indata放在FD上,同時將SLWR拉高,以使FIFO指針自動加1,然后轉到③;
③假如有更多的數(shù)據(jù)要傳輸,轉到②,否則轉到①。
四、軟件設計
數(shù)據(jù)采集系統(tǒng)的軟件設計包括三個部分:FX2的固件程序,USB的驅動程序,F(xiàn)PGA控制模塊。
(1)EZ-USB FX2的固件設計
固件程序是指運行在設備CPU中的程序。只有在該程序運行時,外設才能稱為具有給定功能的外圍設備。Cypress公司為FX2固件開發(fā)提供了一個固件庫和固件框架,都是在Keil C51集成開發(fā)環(huán)境下開發(fā)的。固件庫提供了一些常量、數(shù)據(jù)結構、宏、函數(shù)來簡化用戶對芯片的使用。固件框架實現(xiàn)了初始化芯片、處理USB標準設備請求以及掛起狀態(tài)下的電源管理等功能。該框架不添加任何代碼,編譯后生成的.HEX文件載入芯片就能和主機進行基本的USB通信。用戶主要的工作就是選擇適合的傳輸方式,添加需要使用的端點,在框架預留的地方添加初始化代碼和完成特定功能的代碼。這樣大大簡化了用戶對程序的編寫,在不十分了解USB2.0協(xié)議的情況下,也能通過代碼的編寫,實現(xiàn)USB的傳輸功能。
(2)USB的驅動程序
該系統(tǒng)需要通用驅動程序和下載固件的驅動程序。通用驅動程序完成與外設和用戶程序的通信及控制;而下載固件的驅動程序則只負責在外設連接USB總線后把特定的固件程序下載到FX2的RAM中,使FX2的CPU重啟,模擬斷開與USB總線連接,完成對外設的重新設置。FX2根據(jù)新的設置安裝通用驅動程序,重新枚舉外設為一個新的USB外設。
在Windows操作平臺下,當有新的設備接入時,操作系統(tǒng)就會依據(jù)設備回送的有關信息自動的調用相應的設備驅動程序。
(3)FPGA控制模塊。
在本系統(tǒng)中,F(xiàn)PGA構成了數(shù)據(jù)采集系統(tǒng)和數(shù)據(jù)傳輸系統(tǒng)的橋梁,完成對TLC5510的控制和數(shù)據(jù)的存儲,同時也完成對EZ-USB FX2單片機的控制。因此在FPGA中需要構成3個模塊:FIFO數(shù)據(jù)存儲模塊、控制模塊、時鐘分頻模塊。
FIFO數(shù)據(jù)存儲模塊主要完成對A/D轉換數(shù)據(jù)的存儲。每個FIFO存儲模塊的存儲容量定位2048B,可通過Mega Wizard工具來調用。
控制模塊要完成對TLC5510、FIFO存儲模塊和EZ-USB FX2的控制,這是整個系統(tǒng)的關鍵。根據(jù)系統(tǒng)實現(xiàn)的功能和各個模塊的控制時序,控制模塊將產生相應的控制信號,實現(xiàn)系統(tǒng)的采集和存儲的功能。
系統(tǒng)提供的FPGA外部時鐘頻率為50MHz,通過分頻模塊產生TLC5510的最大采樣工作頻率20MHz。
五、結論
基于FPGA和USB2.0的數(shù)據(jù)采集系統(tǒng)滿足現(xiàn)代高速設備對傳輸速度的要求,解決了傳輸速度慢的瓶頸。通過FPGA的模塊設計、EZ-USB FX2的固件設計和上層應用程序設計,實現(xiàn)了整個系統(tǒng)的數(shù)據(jù)采集與傳輸。
參考文獻
[1]劉克剛,陳曦,王衛(wèi)兵,等.復雜電子系統(tǒng)設計與實踐[M].北京:電子工業(yè)出版社,2010.
[2]潘松.EDA技術實用教程[M].北京:科學出版社,2006.3.
[3]齊洪喜.基于FPD&ASIC的專用USB接口設計與實現(xiàn)[D].山東大學,2006.
作者簡介:馬玲(1981—),女,湖北武漢人,華中科技大學武昌分校講師,主要從事通信專業(yè)的教學與研究工作。