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