無線和有線USB接口共存的數(shù)據(jù)傳輸系統(tǒng)
CY7C68013和DSP的連接有兩種方式:從設(shè)備的FIFO方式和主設(shè)備的GPIO方式。本設(shè)計采用從設(shè)備的FIFO方式,DSP作為主設(shè)備。DSP可以像讀寫普通FIFO一樣對CY7C68013內(nèi)部的多層緩沖FIFO進(jìn)行讀寫。具體的接口電路如圖4所示。本文引用地址:http://www.ex-cimer.com/article/157818.htm
FlagA、FlagB和FlagC是CY7C68013內(nèi)部FIFO的狀態(tài)標(biāo)志,分別對應(yīng)FIFO的空、半滿和全滿狀態(tài)。TMS320C6727B 通 過GPIO0、GPIO1和GPIO2引腳來獲得這些狀態(tài)信息。其中,CY7C68013的半滿狀態(tài)可由軟件設(shè)置。半滿僅僅表示FIFO中有數(shù)據(jù),還存在未寫的空間。例如,如果1 024個數(shù)據(jù)為全滿,可以設(shè)置半滿個數(shù)為1~1 023。
TMS320C6727B通過EMIF接口的CE2空間對CY7C68013進(jìn)行讀寫操作。當(dāng)通過CY7C68013向PC機(jī)發(fā)送數(shù)據(jù)時,首先查看空、半滿和全滿這3個狀態(tài)信號,如果狀態(tài)為空或者半滿,則向CY7C68013寫入適當(dāng)大小的數(shù)據(jù),以保證數(shù)據(jù)不會溢出;PC機(jī)通過CY7C68013向TMS320C6727B發(fā)送命令字時,CY7C68013通過中斷方式通知DSP讀取其命令字。
2 軟件設(shè)計
整個系統(tǒng)的軟件設(shè)計包括3個部分:DSP的軟件設(shè)計,PC的應(yīng)用程序設(shè)計,以及CY7C68013的軟件設(shè)計(包括固件設(shè)計和驅(qū)動程序設(shè)計)。
DSP運行的軟件主要是作為CYWUSB6935和CY7C68013的數(shù)據(jù)收發(fā)通道。其具體的工作流程如圖5所示。DSP上電初始化后,將依次掃描所有可用的127無線頻帶的無線信號,查看周圍是否存在可用的無線USB設(shè)備,并判斷它們是否屬于本系統(tǒng)的設(shè)備。如果存在本系統(tǒng)的設(shè)備,則進(jìn)行信噪比檢測,并控制發(fā)射功率,也可以優(yōu)先采用空閑頻帶。當(dāng)雙方建立連接后,即可進(jìn)行正常的數(shù)據(jù)通信。DSP完成了某個頻帶的設(shè)備通信后,將進(jìn)行下一個頻帶設(shè)備的搜索,直到搜索完成所有頻帶設(shè)備,然后重復(fù)整個搜索過程。
對于有線USB設(shè)備,DSP軟件處理較簡單,等待USB通信建立包就可以了。由于設(shè)備的識別和連接均由CY7C68013完成,DSP只須等待CY7C68013發(fā)出的通信中斷。
CY7C68013運行的軟件為固件程序,主要功能是控制CY7C68013接收并處理USB驅(qū)動程序的請求,控制CY7C68013接收應(yīng)用程序的控制指令,通過CY7C68013存放數(shù)據(jù)并實時上傳至PC機(jī)等。固件程序存儲在PC機(jī)驅(qū)動程序中,通過CY7C68013的枚舉過程自動下載到CY7C68013中運行。
驅(qū)動程序一般由兩部分組成:較高級的通用串行總線驅(qū)動程序模塊和較低級的主控制器驅(qū)動程序模塊。主要功能:實現(xiàn)管理USB設(shè)備驅(qū)動程序和USB控制器之間的通信;加載及卸載USB驅(qū)動程序;與USB設(shè)備建立通信,并執(zhí)行設(shè)備配置、數(shù)據(jù)與USB協(xié)議框架和打包格式的雙向轉(zhuǎn)換任務(wù)。Cypress公司為了方便用戶開發(fā)USB接口,在CY7C68013的軟件開發(fā)包中提供了一個通用驅(qū)動程序。該程序可不加修改,編譯后直接使用。
CY7C68013的工作流程如圖6所示。上電初始化后,程序處于TD_Init狀態(tài),CY7C68013等待PC的設(shè)備建立命令。如果此時將CY7C68013連接到PC機(jī),PC機(jī)將檢測到新的USB設(shè)備,并調(diào)用相應(yīng)的USB驅(qū)動程序進(jìn)行CY7C68013的枚舉工作。枚舉完成后PC機(jī)將提示有一個可用的USB外設(shè),CY7C68013就可以和PC機(jī)進(jìn)行數(shù)據(jù)通信了。此時CY7c68013運行在TD_Poll狀態(tài),一直檢測是否收到通信建立包。如果收到該協(xié)議包則進(jìn)行數(shù)據(jù)通信,直到數(shù)據(jù)通信結(jié)束;若空閑,則自動進(jìn)入TD_Poll狀態(tài)。CY7C68013在DSP控制過程中,如果收到通信建立包,則將該命令存儲到其內(nèi)部寄存器中,直到空閑時才會響應(yīng)該通信建立包。作為PC機(jī)驅(qū)動程序,如果長時問未收到CY7C68013的響應(yīng),則重發(fā)該命令,若連續(xù)重發(fā)3次以上,會取消該命令。
結(jié) 語
USB設(shè)備作為高速實時的數(shù)據(jù)通信接口已經(jīng)得到廣泛的應(yīng)用,無線USB也逐漸得到發(fā)展和應(yīng)用。本文設(shè)計的系統(tǒng)能夠?qū)崿F(xiàn)無線USB和普通有線USB之間的數(shù)據(jù)傳輸。該系統(tǒng)具有小型化、低功耗、高性能的特點,具有良好的應(yīng)用前景。由于采用DSP為處理器,可以方便地實現(xiàn)各種處理算法(例如壓縮多個WUSB的語音信號傳輸?shù)絇C機(jī)),也可以實現(xiàn)多個WUSB語音信號的混音功能,實現(xiàn)多路的無線通信。
評論