1 引 言
USB支持主計算機與許多可同時訪問的外設之間進行數(shù)據(jù)交換,使外設的連接具有單一化、即插即用、熱插拔等特點,已成為個人筆記本電腦和臺式機的標準配置接口。Cypress公司的EZ-USB FX2是一款集成 USB2.0的微處理器,它集成了USB2.0收發(fā)器、SIE(串行接口引擎)、增強的8051微控 制器和可編程的外圍接口。每條指令占四個時鐘周期,在48M晶振下工作時,單指令周 期為83.3ns,執(zhí)行速度遠快于標準的8051單片機。本文的數(shù)據(jù)傳輸模塊采用CY7C68013 高速芯片設計的USB接口可以實現(xiàn)外部的存儲測試電路數(shù)據(jù)的快速下載,并且上傳至計 算機保存,顯示,處理。這里介紹CY7C68013的GPIF接口功能及其在設計中的實現(xiàn)機理。
2 硬件連接設計
2.1系統(tǒng)連接框圖及硬件各部分功能
系統(tǒng)的連接框圖如下圖1所示:主要有計算機主機USB接口,程序存儲EEPROM,內(nèi)置MCU的USB接口芯片,電平轉換部分組成。
硬件各部分功能:
設備接口:實現(xiàn)模塊與測試電路的連接;
電平轉換:單片機的輸出和工作電壓為3.3V的電壓值,而設備的電壓是3.3~5V之間,電平轉換器件實現(xiàn)電壓值的匹配;
USB總線控制器:采用CY7C68013接口芯片的GPI接口模式完成控制信號的發(fā)送和16bit寬度數(shù)據(jù)的讀??;
串行EEPROM:存儲單片機固件,并被下載到單片機。
2.2硬件部分工作過程
硬件工作過程:
數(shù)據(jù)傳輸中核心器件是CY7C68013控制器芯片,主要完成USB的事務處理和單片機的控制功能。系統(tǒng)采用總線供電模式,數(shù)據(jù)傳輸模塊連接到計算機后,上電復位后,USB功能設備以全速的模式進行設備的識別并枚舉。設計中將程序存儲到串行EEPROM中,主芯片首先檢測I2C總線上的EEPROM,判斷其首字節(jié)是0xC2,下載固件和USB的描述符標裝入到自身的RAM中執(zhí)行,并且根據(jù)信息設置定義設備,完成了重枚舉。 CY7C68013包含8.5KB的片上RAM,可以用于“軟配置”,4KB的FIFO存儲器可以給4個端點共享。實現(xiàn)數(shù)據(jù)的高速讀取和傳輸,根據(jù)實際的需要,設計中配置了端點2采用三緩沖,使用3KB,端點4采用雙緩沖使用1KB。
采用GPIF主機模式,EZ-USB FX2由軟件編程輸出讀寫控制波形,F(xiàn)D[15:0]雙向數(shù)據(jù)總線12位與外部測試電路的靜態(tài)存儲器(SRAM)的相連,CTL[5:0]輸出可編程控制信號,如SRAM的讀寫選通信號等。數(shù)據(jù)在GPIF控制下讀入到CY7C68013后,在軟件的配置下,完成1024字節(jié)的最大封包,輸入計算機,由主機端的主控制器的串行接口引擎完成數(shù)據(jù)流串行化和解碼。
3 系統(tǒng)軟件設計
3.1GPIF接口模式
FX支持3種接口方式:端口、Slave FIFOs和可編程接口GPIF。
在“端口”模式下,所有I/O引腳都可作為8051的通用I/O口。在“從FIFO”模式下,外部邏輯或外部處理器直接與FX2端點FIFO相連。在這種模式下,GPIF 不被激活,這種模式下,外部主控端既可以是異步方式,也可以是同步方式,并可以為FX2 接口提供自己的獨立時鐘。“GPIF主控”接口模式使用PORTB 和PORTD構成通向四個FX2端點FIFO(EP2、EP4、EP6和EP8)的16位數(shù)據(jù)接口。GPIF 作為內(nèi)部的主控制器與FIFO直接相連, 并產(chǎn)生用戶可編程的控制信號與外部接口進行通信。GPIF使用內(nèi)部時鐘。用戶將波形文件程序存在內(nèi)部RAM的程序存儲區(qū)中。
根據(jù)系統(tǒng)需要,設計中采用GPIF接口模式將CY7C68013設為FIFO READ和SINGLE READ兩種模式, 讓GPIF中的端點FIFO與USB通信中端點緩沖直接建立連接, 數(shù)據(jù)的傳送不再需要CPU 的參與。 根據(jù)外部測試電路的要求,適用于不同測試環(huán)境預設電路的CPLD編程信號,根據(jù)實際的測試信號的頻率采用不同的采樣頻率,設定不同的觸發(fā)電平,使用單次寫模式可以完成編程數(shù)據(jù)的輸出。針對的測試數(shù)據(jù)采用FIFO多次讀模式,實現(xiàn)數(shù)據(jù)的批量傳輸。設計中采用48M晶振,由于靜態(tài)存儲器的在使能信號(OE)的上升沿后推地址(Adr),而數(shù)據(jù)在總線上的保持時間至少需要85ns,因此在波形設計中數(shù)據(jù)有效時間應該為4個時鐘周期,才能夠滿足地址有效的要求。靜態(tài)存儲器讀操作時序圖如圖2所示。
3.2固件程序設計
固件是指存儲在USB接口芯片或微控器中的代碼,用于控制硬件系統(tǒng)運行,各種USB標準請求的處理,以及USB閑置模式的電源管理服務,實現(xiàn)主機與外設之間的通信和數(shù)據(jù)傳輸。主要是根據(jù)系統(tǒng)需求設計相應的程序框架圖。Cypress 公司為FX2 固件開發(fā)提供了一個固件庫和固件框架,都是在KeilC51集成開發(fā)環(huán)境下開發(fā)的,固件庫提供了一些常量、數(shù)據(jù)結構、函數(shù)來簡化用戶對芯片的使用。C 語言環(huán)境, 同時保留了匯編代碼高效、快速的特點,將代碼在KeilC51環(huán)境中進行編譯。編譯通過后,將固件代碼下載到USB單片機中,就可以實現(xiàn)GPIF多字節(jié)讀等操作。在程序起始時,固件架構會執(zhí)行下列步驟:
(1)首先,設置所有的內(nèi)部狀態(tài)變量。
(2)然后,調(diào)用用戶的初始設置函數(shù)TD_Init()。待返回后固件架構就會設置USB接口成為未配置的狀態(tài),并且使能中斷。
(3)接下來,在1秒的間隔內(nèi)開始重新設備列舉(ReNumerate)設備,并直到設置(SETUP)封包收到端點0為止。
(4)一旦SETUP封包被檢測到,固件架構就會啟動與PC主機合作的工作分配器。而這個工作分配器就會順序重復執(zhí)行下列的工作:
①調(diào)用用戶函數(shù)TD_Poll()。
②判斷標準設備請求是否決定。如果已決定,它將解析所收到的命令請求并加以響應。
③判斷USB核心是否己經(jīng)報告了USB中止(suspend)事件。
用戶需要編寫TD_Poll()中的代碼完成特定的功能,判斷USB設備枚舉的狀態(tài)決定每次出發(fā)FIFO波形文件的次數(shù),數(shù)據(jù)短包的處理方式等,實現(xiàn)數(shù)據(jù)的讀取。
3.3 應用程序的設計
應用程序編寫的關鍵是如何實現(xiàn)從USB設備讀取指定數(shù)量的數(shù)據(jù)以及向其發(fā)送指定的數(shù)據(jù)。另外,還有向USB設備發(fā)送USB標準設備請求和特定的命令,包括廠商定義的命令和用戶自定義的命令。
大型的應用程序大部分是很多模塊組成, 這些模塊完成相對獨立的功能,協(xié)作來完成整個軟件系統(tǒng)的工作。部分模塊的功能較為通用, 在構造其它軟件系統(tǒng)時仍會被使用。測試系統(tǒng)的應用程序采用VisualBasic6.0編寫,具有界面友好,操作簡單的特點。
動態(tài)鏈接庫文件的使用,需要在應用程序的全局定義變量定義模塊中調(diào)用。dll文件, 應用程序會在其所在目錄和系統(tǒng)目錄下查找。dll。在聲明過程中需要注意數(shù)據(jù)類型的匹配問題。
Public Declare Function
BulkRead Lib "DLL68013.dll" (ByVal pipenum As Long, ByRef rec As Integer, ByVal length As Integer) As Integer
Public Declare Function BulkWrite Lib "DLL68013.dll" (ByVal pipenum As Long, ByRef send As Byte, ByVal length As Integer) As Long
Public Declare Function OpenDevice Lib "DLL68013.dll" () As Integer
設計中結合實際需要,主要操作由動態(tài)鏈接庫文件完成,應用程序的主要功能包括錯誤操作提示,接收由動態(tài)鏈接庫讀取的數(shù)據(jù)傳回主界面實現(xiàn)數(shù)據(jù)的格式轉換,數(shù)據(jù)的顯示、處理等。
利用Cypress公司的USB2.0專用接口芯片CY7C68013, 完成了采用GPIF模式的通用數(shù)據(jù)傳輸模塊的硬件與軟件設計。針對原有的人機界面需要,開發(fā)了動態(tài)鏈接庫,可以提供給不同語言編寫的主機端的應用程序使用。
在系統(tǒng)測試中,利用信號發(fā)生器產(chǎn)生輸入信號為正弦波,頻率10Hz,測試系統(tǒng)的采樣頻率125Ksps,通過系統(tǒng)電路采樣,存儲,數(shù)據(jù)通過傳輸模塊傳入計算機,根據(jù)采集數(shù)據(jù)恢復的信號與原始信號比較,失真較小,噪聲水平低,采集數(shù)據(jù)的有效位數(shù)達到12位,實驗結果表明,實際的傳輸速率120Mbps,滿足了測試系統(tǒng)的數(shù)據(jù)傳輸要求。與實驗測試系統(tǒng)聯(lián)合調(diào)試,實際采樣波形如圖3所示。
芯片的可編程特性提高了系統(tǒng)工作的可靠性, 數(shù)據(jù)不會丟失,便于數(shù)據(jù)的傳輸和處理。另外,USB設備具有“熱插拔”和即插即用的特性具有較高的實用價值,設計的USB數(shù)據(jù)傳輸模塊適合于舊測試系統(tǒng)接口的改造。
-
收發(fā)器
+關注
關注
10文章
3671瀏覽量
107928 -
計算機
+關注
關注
19文章
7661瀏覽量
90754 -
微處理器
+關注
關注
11文章
2383瀏覽量
84159
發(fā)布評論請先 登錄
兩路數(shù)據(jù)傳輸,CY7C68013都作為從機接收數(shù)據(jù)是否可行?
USB2.0控制器CY7C68013芯片與FPGA芯片接口的Verilog HDL實現(xiàn)
怎么實現(xiàn)USB2.0微控制器CY7C68013的GPIF接口設計?
基于CY7C68013的高速數(shù)據(jù)傳輸系統(tǒng)該如何去設計?
USB2.0控制器CY7C68013特點與應用
基于CY7C68013的USB數(shù)據(jù)采集系統(tǒng)
USB2.0控制器CY7C68013特點與應用
USB2.0接口芯片CY7C68013的固件程序開發(fā)
USB2.0控制器CY7C68013的接口設計實現(xiàn)

基于CY7C68013的CCD圖像傳輸系統(tǒng)

基于CY7C68013A的并口轉USB口數(shù)據(jù)采集系統(tǒng)設計

基于USB2.0芯片CY7C68013的高速數(shù)據(jù)通信接口設計
USB2.0微控制器CY7C68013的數(shù)據(jù)采集系統(tǒng)的設計
USB2.0微控制器CY7C68013的GPIF接口設計資料下載

評論