作者:蔡湘平,戴青玲 來源:單片機與嵌入式系統(tǒng)
引 言
電子技術(shù)和芯片技術(shù)的發(fā)展使得數(shù)字系統(tǒng)運行的速度越來越快,設(shè)備內(nèi)部和設(shè)備之間的數(shù)據(jù)交換對高速、實時、突發(fā)的要求越來越高。總線技術(shù)是數(shù)據(jù)交換的必要環(huán)節(jié)。早期的總線傳輸一般是串行方式,一些串行總線已經(jīng)成為標(biāo)準(zhǔn),非常適合語音和控制信號的低速數(shù)據(jù)傳輸,數(shù)據(jù)傳輸速率一般低于1 Mbps。這類總線包括RS232、I2C、SPI、I2S等,特點是引線少、速率低。并行總線由于線數(shù)多,可以從8位擴充到16位、32位和64位,甚至更高,使得數(shù)據(jù)傳輸速率成倍提高。但由于布線的差異以及干擾的存在,使得其數(shù)據(jù)傳輸?shù)耐綍r鐘速率很難超過150MHz。差分串行總線能夠解決布線差異引起的問題,并具有較高的抗干擾性能,使得串行總線的傳輸速率得到迅速的提高。USB總線就是一種差分的串行總線,其速率可以達(dá)到480 Mbps,已經(jīng)得到非常廣泛的應(yīng)用。
很多設(shè)備的應(yīng)用場合中,設(shè)備之間的連接非常困難甚至不能實現(xiàn),基于無線總線的數(shù)據(jù)傳輸從而得到發(fā)展和應(yīng)用。無線總線包括藍(lán)牙、無線網(wǎng)卡、無線傳感器等。無線USB(Wireless Universal Serial Bus,WUSB)也是這樣的一種無線總線技術(shù)。由于現(xiàn)有設(shè)備的存在,使得單一的WUSB設(shè)備不能直接和現(xiàn)有設(shè)備進(jìn)行交互。為了解決WUSB向有線USB 兼容的問題,需要研制同時具有WUSB和USB功能的設(shè)備,實現(xiàn)單一的WUSB設(shè)備和單一的USB設(shè)備之間的數(shù)據(jù)交換。本文研制了一種有線和無線USB共存的系統(tǒng),使用Cypress公司的CY-WUSB6935實現(xiàn)WUSB的數(shù)據(jù)收發(fā),使用該公司的CY7C68013實現(xiàn)有線USB的數(shù)據(jù)收發(fā),同時使用 DSP實現(xiàn)兩者之間的控制和數(shù)據(jù)處理。
1 硬件設(shè)計
1.1 WUSB和CYWUSB6935
WUSB技術(shù)的數(shù)據(jù)收發(fā)采用超寬帶技術(shù)(Ultra WideBand,UWB)的脈沖調(diào)制方式。由于其載波信號不是連續(xù)存在的,僅僅存在于數(shù)據(jù)傳輸瞬間,使得其數(shù)據(jù)收發(fā)間隙幾乎沒有功耗,因此非常適合電池供電并工作較長時間。在3 m距離內(nèi),目前的WUSB2.0標(biāo)準(zhǔn)可以實現(xiàn)480 Mbps的數(shù)據(jù)傳輸速率,正在規(guī)劃的WUSB3.0可以實現(xiàn)1 Gbps的數(shù)據(jù)傳輸速率。
CYWUSB6935是Cypress公司推出的一款支持WUSB標(biāo)準(zhǔn)的芯片。其發(fā)射頻率為2.4 GHz,采用直接序列擴頻(Direct Sequence Spread Spectrum,DSSS)技術(shù),以避免來自2.4 GHz頻段中802.11b、Bluetooth、無繩電話以及微波爐等無線信號的干擾;具有-95 dBm的接收靈敏度,確保在50 m范圍以內(nèi)獲得較強的全方向信號;待機功耗非常低,具有約0.25μA的待機電流,使用普通電池待機時間可達(dá)數(shù)年;具有可自適應(yīng)的發(fā)射功率,可以識別收發(fā)信號的強弱,發(fā)射功率具有-30~0 dBm的動態(tài)范圍。注意,CYWUSB6935具有高達(dá)62.5 kbps的數(shù)據(jù)傳輸速率,平均響應(yīng)時間少于10 ms。圖1是CYWUSB6935的內(nèi)部結(jié)構(gòu)框圖。
無線信號的收發(fā)由集成在片內(nèi)的GFSK調(diào)制器和解調(diào)器完成,調(diào)制/解調(diào)器需要外部提供標(biāo)準(zhǔn)的13 MHz的時鐘信號。該信號經(jīng)過頻率合成器轉(zhuǎn)換為發(fā)射載波信號,如果頻率合成器鎖定時鐘,將輸出同頻率的13 MHz時鐘,可以由此判斷調(diào)制/解調(diào)器是否正常工作。
CYWUSB6935具有2路功能完全一樣的基帶信號處理通道,射頻端2路基帶通道都和調(diào)制解調(diào)器連接。發(fā)送數(shù)據(jù)經(jīng)過并串轉(zhuǎn)換傳輸?shù)交鶐幚硗ǖ?;接收時基帶通道處理后的數(shù)據(jù)經(jīng)過串并轉(zhuǎn)換傳輸?shù)綌?shù)字接口?;鶐ǖ乐饕δ苁菍?shù)據(jù)調(diào)制在擴頻碼上,可以根據(jù)設(shè)置將一個數(shù)據(jù)位擴頻到64個或者32個碼片上。
數(shù)字接口主要包括1個SPI接口,由于CYWUSB6935最大只有62.5 kbps的數(shù)據(jù)傳輸速率,所以SPI接口完全滿足數(shù)據(jù)傳輸要求。數(shù)字接口還具有復(fù)位、中斷、休眠選擇和設(shè)置引腳,以提高芯片的適應(yīng)性。
CYWUSB6935有4種工作模式:64 chip/b單通道、32 chip/b雙通道、32 chip/b單通道雙倍采樣和32 chip/b單通道兩倍數(shù)據(jù)速率。第3種工作模式的數(shù)據(jù)傳輸速率最低,但性能更加可靠,一般在較遠(yuǎn)距離或者信道狀況較差情況下使用;第4種工作模式的數(shù)據(jù)傳輸速率最高,但性能最差,一般在較近距離或者信道狀況較好情況下使用。模式選擇通過配置數(shù)據(jù)速率寄存器來實現(xiàn)。
接收和發(fā)射均采用中斷方式,有3種:發(fā)射中斷、接收中斷和喚醒中斷。這些中斷共用一個IRQ引腳。通過讀取中斷狀態(tài)寄存器可以確定中斷類型。如果為接收中斷,則從相應(yīng)的數(shù)據(jù)接收寄存器中獲得相應(yīng)通道的數(shù)據(jù);如果是發(fā)射中斷,則接收數(shù)據(jù)送到基帶通道中進(jìn)行擴頻處理;如果是喚醒中斷,則切換休眠狀態(tài)到工作狀態(tài),準(zhǔn)備接收或者發(fā)射數(shù)據(jù)。
1.2 CYWUSB6935和DSP的連接
CYWUSB6935的數(shù)據(jù)接口一般采用SPI接口,與各種控制器的連接非常方便。DSP芯片選用TI公司的TMS320C6727B。該芯片是浮點型 DSP,最高工作頻率達(dá)到350 MHz;單個指令周期可以執(zhí)行6個浮點數(shù)據(jù)運算,最高達(dá)到2 100 MFLOPS;片內(nèi)具有256 KB的RAM,片內(nèi)外設(shè)具有各種接口(其中包括與CYWUSB6935連接的SPI接口)。CYWUSB6935和TMS320C6727B的連接如圖2 所示。
TMS320C6727B作為主控制器,提供SPI的時鐘和使能信號(圖2中的SPIO_CLK和SPIO_SCS)給CY_WUSB6935。工作狀態(tài)下,CYWUSB6935一共發(fā)送3種中斷信號到TMS320C6727B,均由IRQ引腳傳輸?shù)絋MS320C6727B。其中,工作定時中斷表明 CY-WUSB6935處于正常工作狀態(tài),如果TMS320C6727B超過時間未收到定時工作狀態(tài)信號,則由SPI接口軟件復(fù)位CYWUSB6935;如果軟件復(fù)位后仍然不能正常工作,則由GPIO0引腳硬件復(fù)位CYWUSB6935,從而確保CY-WUSB6935不會進(jìn)入死鎖和非正常工作狀態(tài),大大提高了系統(tǒng)的可靠性。在休眠方式下,TMS320C6727B使用GPIO1引腳控制CYWUSB6935的PD引腳,控制其進(jìn)入休眠方式;同樣,使用該引腳可以喚醒CYWUSB6935。TMS320C6727B的Flash用于存儲程序代碼;AIC23為音頻處理芯片,可以使用音頻信號控制 TMS320C6727B;CYWUSB6935的收發(fā)天線為PCB天線,直接在電路板上制作完成。
1.3 USB和CY7C68013
USB接口一般包括3個部分:具有USB接口的PC系統(tǒng),能夠支持USB的系統(tǒng)軟件,以及使用USB接口的設(shè)備。USB接口的應(yīng)用采用通用連接技術(shù),實現(xiàn)外設(shè)的簡單快速連接,從而達(dá)到方便用戶、降低成本、擴展PC機連接外設(shè)范圍的目的。
USB接口的特點如下:連接靈活、使用方便;為USB接口設(shè)計的驅(qū)動程序和應(yīng)用軟件可以自動啟動,無需用戶干預(yù);單獨使用自己的保留中斷,不會同其他設(shè)備爭用資源;可以為外設(shè)提供電源,USB接口能自動識別外設(shè)所需的電源,并通過USB電纜向該設(shè)備供電(最高可達(dá)500mA,可以使用2根USB電纜,提高供電電流到1 A)。
CY7C68013是Cypress公司推出的USB2.0芯片。它包括8051處理器、智能串行接口引擎、USB收發(fā)器、16 KB片上RAM存儲器以及通用可編程接口。智能串行接口引擎執(zhí)行所有基本的USB功能,將嵌入的8051處理器解放出來用于實現(xiàn)其他功能,以保證連續(xù)、高速、有效的數(shù)據(jù)傳輸。RAM存儲器可以分配4 KB的大容量FIFO用于數(shù)據(jù)緩沖,作為從設(shè)備時,可采用同步或者異步FIFO接口與主設(shè)備連接;作為主設(shè)備時,可通過GPIO接口配置控制時序來實現(xiàn)與其他從設(shè)備連接。
CY7C68013的內(nèi)部結(jié)構(gòu)如圖3所示,其中與外部設(shè)備的接口包括I2C總線、GPIO接口和FIFO接口等。數(shù)據(jù)通過這些接口傳輸?shù)絻?nèi)部的數(shù)據(jù)和地址總線,由8051處理器處理,或者直接送到USB接口的智能引擎單元;然后傳輸?shù)経SB收發(fā)器,最終傳輸?shù)絇C機。CY7C68013片內(nèi)還包括PLL時鐘電路,將外部的24 MHz時鐘信號連接到USB收發(fā)器和8051處理器,驅(qū)動內(nèi)部模塊工作。
1.4 CY7C6801 3和DSP的連接
CY7C68013和DSP的連接有兩種方式:從設(shè)備的FIFO方式和主設(shè)備的GPIO方式。本設(shè)計采用從設(shè)備的FIFO方式,DSP作為主設(shè)備。DSP可以像讀寫普通FIFO一樣對CY7C68013內(nèi)部的多層緩沖FIFO進(jìn)行讀寫。具體的接口電路如圖4所示。
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機發(fā)送數(shù)據(jù)時,首先查看空、半滿和全滿這3個狀態(tài)信號,如果狀態(tài)為空或者半滿,則向CY7C68013寫入適當(dāng)大小的數(shù)據(jù),以保證數(shù)據(jù)不會溢出;PC機通過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機等。固件程序存儲在PC機驅(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機,PC機將檢測到新的USB設(shè)備,并調(diào)用相應(yīng)的USB驅(qū)動程序進(jìn)行CY7C68013的枚舉工作。枚舉完成后PC機將提示有一個可用的USB外設(shè),CY7C68013就可以和PC機進(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機驅(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機),也可以實現(xiàn)多個WUSB語音信號的混音功能,實現(xiàn)多路的無線通信。
責(zé)任編輯:gt
-
處理器
+關(guān)注
關(guān)注
68文章
19091瀏覽量
228774 -
dsp
+關(guān)注
關(guān)注
552文章
7958瀏覽量
347896 -
接口
+關(guān)注
關(guān)注
33文章
8441瀏覽量
150703
發(fā)布評論請先 登錄
相關(guān)推薦
評論