1 引言 USB(universal serial bus,通用串行總線)作為一個計算機與外設之間的接口方案,因其具有使用方便、傳輸速度快、端口易擴展等特點,已經逐步擴展應用到了消費電子、移動通信、家庭網絡、工業控制以及儀器儀表等諸多領域。鍵盤、鼠標、數碼相機、音箱、閃存盤無不通過USB與電腦相連,目前每個月有1億多的USB接口芯片出貨量。 現有的USB接口通常都是有線的,這給使用帶來一定的不便。隨著近距離無線通信技術的發展,無線USB(WirelessUSB。簡稱WUSB)技術得到了較大發展,例如,基于UWB(ultra wide band)的WUSB帶寬可達480Mbps。 WUSB是2004英特爾春季技術峰會提出的一個全新無線傳輸標準,目的是采用無線的方式收發信號,消除計算機和外設之間的線纜,但計算機和外設這兩端依然以USB的方式工作。在該標準中,WUSB可認為是應用層的技術,在應用層和物理層之間。加入了匯聚層(類似于鏈路層)WiMedia,提供了一個公共無線平臺。應用層除WUSB外,還可以是無線1394,或疊加各種軟件,以便滿足三種網絡客戶的不同需求,實現3C網的融合。因此,WUSB具有廣泛應用前途。 本文提出了一種基于NRF24LU1芯片無線USB模塊的解決方案。 2 無線USB模塊結構和原理 無線USB模塊結構如圖1所示,它包括USB接口、USB控制器、MCU、射頻模塊、射頻匹配電路及天線六個部分組成。其中,USB控制器主要是負責把MCU發來的數據進行USB協議封裝和USB數據進行控制,及對USB數據解析后轉發到MCU;MCU負責對射頻芯片和USB控制器的控制,實習模塊總功能的實現;射頻模塊和射頻匹配電路主要負責無線數據的發送和采集。 ![]() 圖1 無線USB結構圖 對于無線USB模塊的實現,可以有以下方案:(1)三芯片實現。分別利用USB控制器芯片、單片機和射頻芯片實現,如用CP2 102+MCu+NRF905;(2)兩芯片實現。利用已經集成了USB控制器的單片機芯片和射頻芯片實現,如利用MSP430+CC2400;或用USB控制器芯片和射頻單片機芯片實現,如用CP2102+NRF24E1;(3)單芯片實現。用集成好的芯片實現,如NORDIC公司的NRF24LU1。 三個方案中,方案(1)(2)的成本比較高,而且模塊體積會比較大,方案(3)中,由于芯片是專門針對于無線USB模塊設計的,只要用單芯片就可以組成無線USB模塊.該方案的無線USB模塊成本只要30塊左右,同時體積可以達到10mmx 20mm,能很方便集成到現有的USB設備中或者直接外接在現有的USB設備外。所以本文以方案(3)作為討論。 3 NRF24LU1 內部結構和工作原理 NRF24LU1是NORDIC公司在07年推出的一款專門針對于無線USB實現的芯片,其內部控制器采用MCS 51指令設計,但其減少了指令周期,達到傳統8051的12陪;16k字節的flash和2k片上SRAM;接口包括通用10口、主從SPI接口、UART、和USB口,其中USB控制器是全速USB2.0控制器;2.4GHz的射頻傳輸模塊,傳輸速度可以為1MHz或2MHz,對于其作為無線USB應用有很好的傳輸速度保證,同時其包括自動回復和重傳功能。 NRF24LU1里面集成了電壓轉換模塊,可以直接由USB供電,不用再加電壓轉換芯片。無線USB模塊硬件結構主要有一下幾部分組成:匹配電路、USB接口和時鐘輸入接口電路。對于NRF24LU1芯片。其天線負載阻抗為,所以要通過天線匹配網絡,使特征阻抗匹配成,使其能和通用天線匹配,電路如圖2。 ![]() 圖2 無線模塊電路圖 由于模塊傳輸速率為2.4Gbit/s,在其布線和做板的時候要注意阻抗等問題。濾波電容盡可能接近芯片電源腳,同時對于射頻電路,元件放置應該緊密放置,以減少線電感的增加,同時為了接地良好,上下板層應該敷銅接地,并利用適當多的過孔連接兩個底層。建議板層為兩層,只有單層放元件,敷銅接地,其中板厚為1.6mm,材料FR-4,介質常數4.2。 4 系統軟件設計 無線USB模塊主要包括兩方面,一是USB數據采集;二是無線傳輸。在讀USB數據中。USB數據由USB控制器處理后,保存到RAM里面,再由MCU通過SPI總線發送到無線傳輸緩沖器,冉發送出去;而對于發送USB數據,過程相反。 NRF24LU1對于輸入輸出數據的USB獨立終端允許5種不同的應用,如鼠標、鍵盤、移動控制,游戲和玩具,同時其總支持14個端點和4種傳輸方式,端點0支持控制傳輸,端點1到5(輸入輸出)支持批量傳輸和中斷傳輸,端點8(輸入輸出)支持同步傳輸。 控制傳輸用于在外設初次連接時對器件進行配置;對外設的狀態進行實時檢測;對控制命令的傳送等;也可以在器件配置完成后被客戶軟件用于其它目的。其包括兩或三個階段:建立階段、數據階段(可選)和狀態階段。在寫操作時,終端收到建立申請后,USB控制器設置握手標志和建立申請中斷請求標志,如果數據接收正確,USB控制器則設置數據接收中斷請求標志。建立后,終端收到輸出請求,則開始傳輸數據,傳輸完后設置輸出終端請求標志。狀態階段在最后的操作序列中。對于讀操作,過程跟寫操作基本相同,它們只有在數據傳輸階段中有些不同。在數據階段,當確認host數據包后,設置輸入0端點中斷請求和開始把數據放到緩沖器里面,在緩沖數據的時候,設置輸入0端點緩沖器忙標志,緩沖完后清除該標志。 批量傳送用于進行批量的、非實時的數據傳輸;中斷傳輸模式,對于那些小批量的、點式、非連續的數據傳輸應用的場合,如用于人機交互的鼠標、鍵盤、游戲桿等,中斷傳輸的方式是最適合的。他們包括兩或三個階段:請求包、數據包和握手包(可選)。在批蕈輸入過程中,host發送一個IN數據請求去接收批量數據。如果輸入忙標志有效,USB控制器回復一個數據包,如果host收到有效數據,則回復一個ACK握手。當終端從host收到ACK握手后,USB控制器設置中端請求標志和清除忙標志。MCU服務終端請求,當數據是有效,則數據開始進入數據緩沖器中,并設置忙標志,并開始重復上面過程。在批量輸出過程中,當host想輸出批量數據,其發送OUT請求數據包。ACK握手信號返回到host,當USB控制器收到數據的時候,設置輸出中斷標志,并開始輸出數據,并設置輸出忙標志。 同步傳輸適用于那嶼要求資料連續地、實時地、以固定的數據傳輸率產生、傳送并消耗的場合,如數字錄像機等。其不用握手確定.同時,其數據包中的DATA0和DATA1作為PID,用于標識不同的數據包。USB控制器在每次傳輸中都自動捆綁PID。 系統流程圖如下圖3: ![]() 圖3 系統流程圖 其中,USB初始化包括一下步驟:配置USB數據包結構;初始化USB描述,初始化成你要實現的USB類型,可以設置5種不同的類型;選擇語言;設置狀態寄存器;設置ACK要求;設置USB中斷;設置USB RAM;選擇USB應用的終端類型。 如果USB類型選擇了鍵盤或者鼠標,要初始化無線桌面協議,如選擇鍵盤協議,則用wdp_device_init(WDP_KEYBOARD)函數把無線桌面協議初始成鍵盤模式。 無線模塊初始化包括:MCU和無線模塊SPI接口有效;數據傳輸信道選擇;設置數據傳輸速度;FIFO大小設置;發送和接收功率設置;自動回復確認和重發次數設定等。 當USB數據到來的時候,模塊首先讀取端點狀態并選擇終端輸入傳輸端點.判斷緩沖器數據是否已經滿,如果未滿,則接收并知道緩沖器滿并置緩沖器忙,并把緩沖器數據傳送到無線FIFO并發送到接收模塊,當數據發送完并接收到確定后,USB控制器把忙標志清楚,在接收USB數據。其工作流程圖如下圖4。 ![]() 圖4 USB數據輸入處理流程圖 當模塊接收到無線數據的時候,MCU通過SPI接口把FIFO的數據放到USB發送緩沖器罩,設置USB端點狀態,并處理與控制輸出相關的USB標準請求和USB HID設備類請求,發送USB數據,USB數據發送完畢后,通過無線發送確定信號,并再次接收無線數據,如果之前數據還沒有發送完的,不用再進行USB請求等設置,以減少處理時間。 由于USB協議的交互時間有嚴格的要求,所以無線數據和數據處理中,延時不能太長;USB 2.0協議。其支持三種設備:低速、全速、高速,而對于NRF24LU1芯片.由于其無線傳輸速限制,所以無線USB模塊只能工作在低速和全速。 5 結語 USB接口是計算機的基本配置,是最常用的計算機和外設的通信接口。WUSB是近距離無線通信的重要應用.可以消除計算機和外設的連線,給使用帶來很大的方便,因此WUSB應用模塊將會用很大的發展空間。本文基于NORDIC公司新推出的NRF24LU1芯片,更好的解決了USB無線應用,其減少了現有無線USB的尺寸和成本,同時提高了無線USB性能和安全性,有一定應用前景。 本文作者創新點:本文基于NRF24LU1單芯片實現無線USB模塊,減少了多芯片模塊的成本和體積,更利于無線USB模塊的推廣。 作者:丁寶國,陸以勤 來源:《微計算機信息》(嵌入式與SOC)2009年第7-2期 |