鄧睿
(貴州師范學院物理與電子科學學院,貴州貴陽 550018)
基于FPGA與USB2.0的數(shù)據(jù)采集和傳輸系統(tǒng)設計
鄧睿
(貴州師范學院物理與電子科學學院,貴州貴陽 550018)
針對數(shù)據(jù)采樣以及同步傳輸?shù)姆绞?,提出了基于可編程邏輯器件FPGA(現(xiàn)場可編程邏輯陳列) 和USB 2.0(通用串行總伐2.0)芯片為核心的同步數(shù)據(jù)傳輸系統(tǒng)。該方法通過在FPGA內部設計集成了增強型8051微處理器和接口邏輯,利用軟硬件協(xié)同工作方式實現(xiàn)系統(tǒng)控制,從而完成對外部數(shù)據(jù)的采集以及同步傳輸至上位機。經過理論分析、邏輯仿真和實際電路驗證表明,所設計的數(shù)據(jù)傳輸系統(tǒng)較傳統(tǒng)數(shù)據(jù)傳輸方法在傳輸速率以及靈活性上得到顯著的提升。
現(xiàn)場可編程邏輯陳列;通用串行總伐2.09;增強型8051;數(shù)據(jù)傳輸
在常見的數(shù)據(jù)采集和傳輸系統(tǒng)中,主要采用的硬件系統(tǒng)結構包括PC機、USB芯片、主動部分、AD轉換器和模擬前端[1]。其中,主控部分的傳統(tǒng)設計主要采用單片機作為控制器,控制A/D轉換、存儲器和其他外圍電路的工作[2]。雖然利用單片機為控制器具有操作控制方便特點,但是由于單片機時鐘頻率低而且各種功能需要靠軟件來實現(xiàn),影響了單片機利用外部總線接口(SPI或者IIC等)對數(shù)據(jù)的采樣速率和數(shù)據(jù)在單片機內部傳輸?shù)乃俾剩瑥亩档土苏麄€數(shù)據(jù)傳輸?shù)乃俾?。因此,本文中提出了基于FPGA的數(shù)據(jù)傳輸系統(tǒng),利用FPGA設計的靈活性實現(xiàn)相應的硬件邏輯,以硬件設計速度的優(yōu)勢來提高整體的數(shù)據(jù)傳輸速率。
雖然用硬件邏輯對于傳輸?shù)乃俣染哂泻芨叩奶嵘窃谙到y(tǒng)復雜情況下,如果完全由硬件來完成上位機與采樣之間的控制會增加FPGA硬件的設計復雜度[3]。因此,本文沿用了單片機作為控制器的優(yōu)點,在FPGA內部集成了增強型8051軟核,利用軟硬件協(xié)調以及所設計的DMA傳輸方式減少了軟件參與的時間,從而在傳輸速度與控制復雜度上達到一定平衡。
如圖1所示,F(xiàn)PGA所完成的工作主要包括兩部分:1)采樣前端的數(shù)據(jù);2)傳輸數(shù)據(jù)至USB芯片。據(jù)此,需要設計兩個模塊對接完成相應的功能,通常的A/D轉換器采用了SPI接口或者IIC接口總線。USB芯片采用了CY7C68013作為傳輸媒介[4],與FPGA的接口包括數(shù)據(jù)總線和控制總線。FPGA與外部數(shù)據(jù)傳輸?shù)南到y(tǒng)結構框圖如圖1所示。
圖1 FPGA內部結構
圖1中采用了基于8051的最小系統(tǒng),包括軟核以及存儲器管理單元。按照功能的定義與要求,利用硬件描述語言Verilog設計了與外部USB芯片通信的USB接口模塊、DMA控制邏輯以及SPI和IIC總線接口。FPGA外部的端口包括時鐘信號、復位信號、與USB芯片通信的控制總線和8位數(shù)據(jù)總線、SPI的四線總線接口或者IIC的總線接口信號。
增強型8051為Verilog描述的軟核,其最短機器周期為2個時鐘周期,具有14個中斷源以及1個不可屏蔽中斷。MMU為存儲器管理單元,系統(tǒng)中設計了2K的ROM,2K外部RAM以及256字節(jié)的內部RAM。FPGA內部系統(tǒng)與USB芯片共用48MHz的時鐘源,從而保證兩者之間數(shù)據(jù)的同步傳輸。
圖2 USB模塊狀態(tài)機圖
FPGA內部的USB模塊與外部USB芯片通過數(shù)據(jù)總線和控制總線實現(xiàn)互聯(lián),設計依據(jù)USB芯片的操作時序要求,描述出時序以及控制邏輯。本文采用了狀態(tài)機實現(xiàn)整個控制,如圖2所示。主要的功能是:(1)命令的解析,當USB芯片接收到上位機的數(shù)據(jù)使內部FIFO非空時則置高信號flaga,F(xiàn)PGA內部狀態(tài)機檢測到信號變化開始讀取數(shù)據(jù),并且解析字節(jié)命令(8’h11為配置AD轉換器,8’h22為讀取AD轉化器內采樣的數(shù)據(jù),8’h99為停止數(shù)據(jù)的讀取);(2)配置AD轉換器寄存器,當命令解析為Cmd_config時,狀態(tài)機接收鎖存從外部FIFO傳輸?shù)呐渲脭?shù)據(jù),接收完畢后產生cmd_wr中斷,處理器響應中斷服務程序利用SPI配置AD轉換器寄存器,配置完成后置高Config_done;(3)讀取AD轉換器采樣的數(shù)據(jù),當命令解析為Cmd_rd時,模塊產生中斷,進入中斷服務程序配置SPI相關寄存器開始讀取。狀態(tài)機一直處于 Read_data的狀態(tài),直到內部緩存FIFO為空產生的信號empty置高和外部USB芯片F(xiàn)IFO為滿產生的Flagd拉低時,暫時停止讀取數(shù)據(jù);(4)停止數(shù)據(jù)傳輸,當命令解析為cmd_zstop時,產生中斷使處理器配置相應寄存器使SPI以及DMA停止數(shù)據(jù)傳輸。
SPI模塊設計為SPI master,根據(jù)SPI協(xié)議完成時序設計,并且速率可調和極性可調。整個系統(tǒng)時鐘為48MHz作為SPI模塊的輸入時鐘,通過寄存器配置可以選擇對其進行二分頻,四分頻等作為SCK時鐘。在本文驗證中對其實現(xiàn)二分頻,則SCK的速率達到24MHz。按照理論SPI的速率可以達到24Mbps,但是由于軟件的參與使字節(jié)傳輸之間產生了一定的延時從而降低的數(shù)據(jù)傳輸速率。本文中利用DMA直接將字節(jié)讀取出從而無需軟件參與使傳輸中的延時達到最小化,從理論上可以達到3Mbps的數(shù)據(jù)傳輸率。
根據(jù)設計的思路和方法,系統(tǒng)中8051內軟硬件協(xié)同操作的流程如圖3所示:
圖3 軟硬件協(xié)同操作流程圖
為了降低整體工作的功耗,采用了中斷喚醒MCU的方式實現(xiàn)操作過程。上電后初始化系統(tǒng),將8051置于Idle狀態(tài),此時MCU時鐘被關閉,只有中斷源處理模塊工作。上位機通過外部USB芯片向FPGA發(fā)送讀寫AD轉換器以及停止傳輸?shù)拿?,解析后產生相應的中斷完成對應的處理。
3.1 仿真環(huán)境
在FPGA或者ASIC開發(fā)過程中,仿真驗證調試時序是一個必不可少的過程[5]。只有通過功能仿真正確后才能將其轉化為電路,實現(xiàn)板級的調試。通過建立驗證模型,利用modelsim軟件完成仿真。仿真的模型主要包括三個部分:激勵,設計和響應。激勵主要產生系統(tǒng)時鐘和命令,設計為被測試部分,響應是對設計輸出的接收和處理顯示。本文通過激勵發(fā)送命令,完成對建模的正弦波實現(xiàn)傳輸。仿真波形如圖4所示:
圖4 系統(tǒng)仿真波形圖
從圖中標示可以看出,系統(tǒng)實現(xiàn)了正弦波的數(shù)據(jù)傳輸,并且測試到SPI的字節(jié)數(shù)據(jù)傳輸周期為340ns,即3Mbps。
3.2 系統(tǒng)板級驗證
在完成了功能仿真驗證后,需要將所設計的代碼利用綜合工具完成綜合到電路布局布線最后生成可燒寫的bit文件。硬件板級系統(tǒng)主要包括USB芯片和 FPGA,其中 FPGA使用賽靈思的spartan-6系列,將所設計的數(shù)字系統(tǒng)生成的bit文件下載到硬件平臺FPGA中,即完成了整個硬件系統(tǒng)的設計[6]。上位機的顯示和控制采用labview軟件平臺設計,Labview做為系統(tǒng)的總控制,發(fā)送配置寄存器、讀取數(shù)據(jù)以及停止系統(tǒng)的命令,同時將讀取的數(shù)據(jù)實現(xiàn)顯示,從而達到整體系統(tǒng)的測試結果,結果如圖5所示。
圖5 系統(tǒng)實測上位機控制及顯示圖
由圖可知,系統(tǒng)通過實際的硬件電路測試完成了FPGA與USB2.0數(shù)據(jù)的采集和傳輸系統(tǒng),同時測試 SPI的實際傳輸字節(jié)速率可以達到3Mbps,減少了由于軟件參與而增加的傳輸延時。
本文提供的設計方法具有一定的實用性,其核心在于FPGA設計的靈活性以及可重用性,利用硬件設計減少了傳輸系統(tǒng)中由于軟件的參與所引入的傳輸延時,從而提高了數(shù)據(jù)傳輸率。設計通過建立模型實現(xiàn)邏輯仿真驗證,同時實現(xiàn)了板級的測試,驗證了該設計的實用性和有效性。
[1]李超.基于FPGA+USB2.0高速數(shù)據(jù)采集系統(tǒng)的研究與設計[D].武漢:武漢理工大學,2013.
[2]董國偉.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的設計與開發(fā)[J].沈陽:東北大學,2010.
[3]王彬,任燕穎.數(shù)字IC系統(tǒng)設計[M].西安:西安電子科技大學出版社,2005.
[4]朱建國.基于USB2.0的高速多通道數(shù)據(jù)采集系統(tǒng)設計[D].合肥:合肥工業(yè)大學,2006.
[5]郭煒,魏繼增,郭箏,等.SoC設計方法與實現(xiàn)(第2 版)[M].北京:電子工業(yè)出版社,2010.
[6]億特科技.CPLD/FPGA應用系統(tǒng)設計與產品開發(fā)[M].北京:人民郵電出版社,2005.
[責任編輯:袁向芬]
Data acquisition and transmission system base on FPGA and USB2.0
DENG Rui
(School of Physics and Electronic Sciences,Guizhou Education University,Guiyang,Guizhou,550018)
As for the method of data acquisition and synchronization,the paper raises the system of data transmission base on FPGA and USB2.0.In the FPGA,the system integrates the 8051 core and interface logical.The system completes the data acquisition and transmission by the cooperation work between hardware and software.By the analysis of theory,logic simulation and verification of the circuit,the design has a good improvement on transmission rate and flexibility which compared to the traditional method.
Field-Programmable Gate Array;Universal Serial Bus2.0;enhance 8051;data transmission
TP274
A
:1674-7798(2016)09-0036-04
10.13391/j.cnki.issn.1674-7798.2016.09.007
2016-09-01
鄧 睿(1987-),男,貴州玉屏人,碩士,貴州師范學院物理與電子科學學院助教,研究方向:SOC芯片中數(shù)字電路設計的開發(fā)以及FPGA系統(tǒng)硬件應用開發(fā)。