1 硬件設計
1.1 WUSB和CYWUSB6935
WUSB技術的數據收發(fā)采用超寬帶技術(Ultra WideBand,UWB)的脈沖調制方式。由于其載波信號不是連續(xù)存在的,僅僅存在于數據傳輸瞬間,使得其數據收發(fā)間隙幾乎沒有功耗,因此非常適合電池供電并工作較長時間。在3 m距離內,目前的WUSB2.0標準可以實現480 Mbps的數據傳輸速率,正在規(guī)劃的WUSB3.0可以實現1 Gbps的數據傳輸速率。
CYWUSB6935是Cypress公司推出的一款支持WUSB標準的芯片。其發(fā)射頻率為2.4 GHz,采用直接序列擴頻(Direct Sequence Spread Spectrum,DSSS)技術,以避免來自2.4 GHz頻段中802.11b、Bluetooth、無繩電話以及微波爐等無線信號的干擾;具有-95 dBm的接收靈敏度,確保在50 m范圍以內獲得較強的全方向信號;待機功耗非常低,具有約0.25μA的待機電流,使用普通電池待機時間可達數年;具有可自適應的發(fā)射功率,可以識別收發(fā)信號的強弱,發(fā)射功率具有-30~0 dBm的動態(tài)范圍。注意,CYWUSB6935具有高達62.5 kbps的數據傳輸速率,平均響應時間少于10 ms。圖1是CYWUSB6935的內部結構框圖。
無線信號的收發(fā)由集成在片內的GFSK調制器和解調器完成,調制/解調器需要外部提供標準的13 MHz的時鐘信號。該信號經過頻率合成器轉換為發(fā)射載波信號,如果頻率合成器鎖定時鐘,將輸出同頻率的13 MHz時鐘,可以由此判斷調制/解調器是否正常工作。
CYWUSB6935具有2路功能完全一樣的基帶信號處理通道,射頻端2路基帶通道都和調制解調器連接。發(fā)送數據經過并串轉換傳輸到基帶處理通道;接收時基帶通道處理后的數據經過串并轉換傳輸到數字接口?;鶐ǖ乐饕δ苁菍祿{制在擴頻碼上,可以根據設置將一個數據位擴頻到64個或者32個碼片上。
數字接口主要包括1個SPI接口,由于CYWUSB6935最大只有62.5 kbps的數據傳輸速率,所以SPI接口完全滿足數據傳輸要求。數字接口還具有復位、中斷、休眠選擇和設置引腳,以提高芯片的適應性。
CYWUSB6935有4種工作模式:64 chip/b單通道、32 chip/b雙通道、32 chip/b單通道雙倍采樣和32 chip/b單通道兩倍數據速率。第3種工作模式的數據傳輸速率最低,但性能更加可靠,一般在較遠距離或者信道狀況較差情況下使用;第4種工作模式的數據傳輸速率最高,但性能最差,一般在較近距離或者信道狀況較好情況下使用。模式選擇通過配置數據速率寄存器來實現。
接收和發(fā)射均采用中斷方式,有3種:發(fā)射中斷、接收中斷和喚醒中斷。這些中斷共用一個IRQ引腳。通過讀取中斷狀態(tài)寄存器可以確定中斷類型。如果為接收中斷,則從相應的數據接收寄存器中獲得相應通道的數據;如果是發(fā)射中斷,則接收數據送到基帶通道中進行擴頻處理;如果是喚醒中斷,則切換休眠狀態(tài)到工作狀態(tài),準備接收或者發(fā)射數據。
1.2 CYWUSB6935和DSP的連接
CYWUSB6935的數據接口一般采用SPI接口,與各種控制器的連接非常方便。DSP芯片選用TI公司的TMS320C6727B。該芯片是浮點型DSP,最高工作頻率達到350 MHz;單個指令周期可以執(zhí)行6個浮點數據運算,最高達到2 100 MFLOPS;片內具有256 KB的RAM,片內外設具有各種接口(其中包括與CYWUSB6935連接的SPI接口)。CYWUSB6935和TMS320C6727B的連接如圖2所示。
TMS320C6727B作為主控制器,提供SPI的時鐘和使能信號(圖2中的SPIO_CLK和SPIO_SCS)給CY_WUSB6935。工作狀態(tài)下,CYWUSB6935一共發(fā)送3種中斷信號到TMS320C6727B,均由IRQ引腳傳輸到TMS320C6727B。其中,工作定時中斷表明CY-WUSB6935處于正常工作狀態(tài),如果TMS320C6727B超過時間未收到定時工作狀態(tài)信號,則由SPI接口軟件復位CYWUSB6935;如果軟件復位后仍然不能正常工作,則由GPIO0引腳硬件復位CYWUSB6935,從而確保CY-WUSB6935不會進入死鎖和非正常工作狀態(tài),大大提高了系統(tǒng)的可靠性。在休眠方式下,TMS320C6727B使用GPIO1引腳控制CYWUSB6935的PD引腳,控制其進入休眠方式;同樣,使用該引腳可以喚醒CYWUSB6935。TMS320C6727B的Flash用于存儲程序代碼;AIC23為音頻處理芯片,可以使用音頻信號控制TMS320C6727B;CYWUSB6935的收發(fā)天線為PCB天線,直接在電路板上制作完成。
1.3 USB和CY7C68013
USB接口一般包括3個部分:具有USB接口的PC系統(tǒng),能夠支持USB的系統(tǒng)軟件,以及使用USB接口的設備。USB接口的應用采用通用連接技術,實現外設的簡單快速連接,從而達到方便用戶、降低成本、擴展PC機連接外設范圍的目的。
USB接口的特點如下:連接靈活、使用方便;為USB接口設計的驅動程序和應用軟件可以自動啟動,無需用戶干預;單獨使用自己的保留中斷,不會同其他設備爭用資源;可以為外設提供電源,USB接口能自動識別外設所需的電源,并通過USB電纜向該設備供電(最高可達500mA,可以使用2根USB電纜,提高供電電流到1 A)。
CY7C68013是Cypress公司推出的USB2.0芯片。它包括8051處理器、智能串行接口引擎、USB收發(fā)器、16 KB片上RAM存儲器以及通用可編程接口。智能串行接口引擎執(zhí)行所有基本的USB功能,將嵌入的8051處理器解放出來用于實現其他功能,以保證連續(xù)、高速、有效的數據傳輸。RAM存儲器可以分配4 KB的大容量FIFO用于數據緩沖,作為從設備時,可采用同步或者異步FIFO接口與主設備連接;作為主設備時,可通過GPIO接口配置控制時序來實現與其他從設備連接。
CY7C68013的內部結構如圖3所示,其中與外部設備的接口包括I2C總線、GPIO接口和FIFO接口等。數據通過這些接口傳輸到內部的數據和地址總線,由8051處理器處理,或者直接送到USB接口的智能引擎單元;然后傳輸到USB收發(fā)器,最終傳輸到PC機。CY7C68013片內還包括PLL時鐘電路,將外部的24 MHz時鐘信號連接到USB收發(fā)器和8051處理器,驅動內部模塊工作。
1.4 CY7C6801 3和DSP的連接
CY7C68013和DSP的連接有兩種方式:從設備的FIFO方式和主設備的GPIO方式。本設計采用從設備的FIFO方式,DSP作為主設備。DSP可以像讀寫普通FIFO一樣對CY7C68013內部的多層緩沖FIFO進行讀寫。具體的接口電路如圖4所示。
FlagA、FlagB和FlagC是CY7C68013內部FIFO的狀態(tài)標志,分別對應FIFO的空、半滿和全滿狀態(tài)。TMS320C6727B 通 過GPIO0、GPIO1和GPIO2引腳來獲得這些狀態(tài)信息。其中,CY7C68013的半滿狀態(tài)可由軟件設置。半滿僅僅表示FIFO中有數據,還存在未寫的空間。例如,如果1 024個數據為全滿,可以設置半滿個數為1~1 023。
TMS320C6727B通過EMIF接口的CE2空間對CY7C68013進行讀寫操作。當通過CY7C68013向PC機發(fā)送數據時,首先查看空、半滿和全滿這3個狀態(tài)信號,如果狀態(tài)為空或者半滿,則向CY7C68013寫入適當大小的數據,以保證數據不會溢出;PC機通過CY7C68013向TMS320C6727B發(fā)送命令字時,CY7C68013通過中斷方式通知DSP讀取其命令字。
2 軟件設計
整個系統(tǒng)的軟件設計包括3個部分:DSP的軟件設計,PC的應用程序設計,以及CY7C68013的軟件設計(包括固件設計和驅動程序設計)。
DSP運行的軟件主要是作為CYWUSB6935和CY7C68013的數據收發(fā)通道。其具體的工作流程如圖5所示。DSP上電初始化后,將依次掃描所有可用的127無線頻帶的無線信號,查看周圍是否存在可用的無線USB設備,并判斷它們是否屬于本系統(tǒng)的設備。如果存在本系統(tǒng)的設備,則進行信噪比檢測,并控制發(fā)射功率,也可以優(yōu)先采用空閑頻帶。當雙方建立連接后,即可進行正常的數據通信。DSP完成了某個頻帶的設備通信后,將進行下一個頻帶設備的搜索,直到搜索完成所有頻帶設備,然后重復整個搜索過程。
對于有線USB設備,DSP軟件處理較簡單,等待USB通信建立包就可以了。由于設備的識別和連接均由CY7C68013完成,DSP只須等待CY7C68013發(fā)出的通信中斷。
CY7C68013運行的軟件為固件程序,主要功能是控制CY7C68013接收并處理USB驅動程序的請求,控制CY7C68013接收應用程序的控制指令,通過CY7C68013存放數據并實時上傳至PC機等。固件程序存儲在PC機驅動程序中,通過CY7C68013的枚舉過程自動下載到CY7C68013中運行。
驅動程序一般由兩部分組成:較高級的通用串行總線驅動程序模塊和較低級的主控制器驅動程序模塊。主要功能:實現管理USB設備驅動程序和USB控制器之間的通信;加載及卸載USB驅動程序;與USB設備建立通信,并執(zhí)行設備配置、數據與USB協(xié)議框架和打包格式的雙向轉換任務。Cypress公司為了方便用戶開發(fā)USB接口,在CY7C68013的軟件開發(fā)包中提供了一個通用驅動程序。該程序可不加修改,編譯后直接使用。
CY7C68013的工作流程如圖6所示。上電初始化后,程序處于TD_Init狀態(tài),CY7C68013等待PC的設備建立命令。如果此時將CY7C68013連接到PC機,PC機將檢測到新的USB設備,并調用相應的USB驅動程序進行CY7C68013的枚舉工作。枚舉完成后PC機將提示有一個可用的USB外設,CY7C68013就可以和PC機進行數據通信了。此時CY7c68013運行在TD_Poll狀態(tài),一直檢測是否收到通信建立包。如果收到該協(xié)議包則進行數據通信,直到數據通信結束;若空閑,則自動進入TD_Poll狀態(tài)。CY7C68013在DSP控制過程中,如果收到通信建立包,則將該命令存儲到其內部寄存器中,直到空閑時才會響應該通信建立包。作為PC機驅動程序,如果長時問未收到CY7C68013的響應,則重發(fā)該命令,若連續(xù)重發(fā)3次以上,會取消該命令。
結 語
USB設備作為高速實時的數據通信接口已經得到廣泛的應用,無線USB也逐漸得到發(fā)展和應用。本文設計的系統(tǒng)能夠實現無線USB和普通有線USB之間的數據傳輸。該系統(tǒng)具有小型化、低功耗、高性能的特點,具有良好的應用前景。由于采用DSP為處理器,可以方便地實現各種處理算法(例如壓縮多個WUSB的語音信號傳輸到PC機),也可以實現多個WUSB語音信號的混音功能,實現多路的無線通信。