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