作者:李建明;彭建學;于濤 來源:單片機與嵌入式系統(tǒng)應用
引言
隨著個人電腦的發(fā)展、 USB(Universal Seral Bus)技術日趨成熟,USB設備也以驚人的速度發(fā)展。日常生活里的數(shù)碼相機、打印機、掃描儀,醫(yī)院里的心電圖機、床邊監(jiān)護系統(tǒng),以及圖書館、超市和物流倉庫的有線條碼掃描儀等設備大都使用了USB接口的通信。但是,由于USB的電纜長度受限(一般規(guī)定低速電纜長度不超過3 m,全速電纜長度不超過5 m),為使用帶來諸多不便。為了實現(xiàn)數(shù)據(jù)的高速傳輸,彌補其電纜長度受限的不足,本文給出了基于RF24LU1+的USB接口設備的無線網(wǎng)絡化系統(tǒng)設計方案。
1 系統(tǒng)設計
系統(tǒng)總體框圖如圖1所示。
系統(tǒng)工作原理:首先,將無線收發(fā)主機的USB插頭插入PC機的USB插座,實現(xiàn)PC機與無線收發(fā)主機的硬件連接;同理,實現(xiàn)無線收發(fā)從機與USB設備 i(i=1,…,n)的硬件連接。無線收發(fā)主/從機可以根據(jù)現(xiàn)實情況采取自供電,或從與其所連的設備獲取供電。接著,PC機實現(xiàn)對無線收發(fā)主機的USB枚舉過程;同時,無線收發(fā)從機的USB主控單元實現(xiàn)對USB設備的USB枚舉過程。枚舉結束后,建立無線網(wǎng)絡。無線收發(fā)主機和每個無線收發(fā)從機都設定一個唯一的地址,無線收發(fā)主機通過查詢方式與無線收發(fā)從機進行通信。無線網(wǎng)絡建立后,通過無線收發(fā)主/從機就可以進行USB數(shù)據(jù)流的無線通信了。
2 硬件電路設計
2.1 nRF24LU1+的芯片結構及特點
nRF24LU1+ 是Nordic半導體公司推出的一款將高性能的射頻收發(fā)器和單片USBdongle的功能結合起來的無線收發(fā)芯片。nRF24LU1+內(nèi)含1個增強型的 8051MCU內(nèi)核、無線收發(fā)模塊、符合全速USB 2.0標準的器件控制器、2 KB的片內(nèi)SRAM、16 KB或32 KB的片內(nèi)Flash存儲器、6個通用的I/O口以及電壓調(diào)整器。nRF24LU1+顯著地增強了抗寬帶干擾和互調(diào)失真(IMD)性能。 nRF24LU1+芯片需要的外部元件只是低成本的16 MHz晶振、去耦電路、匹配網(wǎng)絡和天線。VBUS(USB工作電源)工作電壓范圍4.0~5.25 V。nRF24LU1+是單片結構,外形尺寸很?。? mm×5 mm)。
無線收發(fā)器工作于全球開放的2.400~2.483 5 GHz頻段,收發(fā)器的通信波特率可以通過軟件設置工作于2 50 kbps、1 Mbps、2 Mbps;使用Enhanced ShockedBust技術可以實現(xiàn)數(shù)據(jù)包的自動打包/解包和傳輸處理(應答、重傳);使用MultiCeiver技術可同時支持6個無線裝置,頻段、輸出能量和其他射頻參數(shù)可通過射頻寄存器方便地進行編程調(diào)節(jié);具有點對多點通信,并且采用AES加密技術實現(xiàn)更安全的數(shù)據(jù)傳輸;使用超低功耗(ULP)無線技術,0 dBm輸出功率時典型峰值電流為11.1 mA;集成了1個穩(wěn)壓器,芯片可以直接由USB總線供電。
2.2 ISP1161的芯片結構及特點
ISP1161是Philips公司的一款符合USB2.0總線協(xié)議的USB接口芯片。它既帶主機控制器(HC)又帶設備控制器(DC),支持全速/低速傳輸,16位數(shù)據(jù)總線,支持3.3 V/5 V雙供電方式。ISP1161為USB主機控制器時,提供2個USB設備連接的向下端口。
2.3 帶USB接口的無線收發(fā)主機
無線收發(fā)主機電路如圖2所示。電路由nRF24LU1+、16 MHz的晶振,以及其他元器件等構成。nRF24LU1+中的MCU負責控制其片內(nèi)的USB模塊和無線模塊,實現(xiàn)USB數(shù)據(jù)流到無線數(shù)據(jù)流的轉換。
2.4 帶USB接口的無線收發(fā)從機
無線收發(fā)從機與外部USB設備的連接電路如圖3所示。無線收發(fā)從機電路由Philips公司的ARM7處理器LPC2103和USB嵌入式主控制器 ISP1161,以及nRF24LU1+和一些外圍器件構成。LPC2103和ISP1161構成USB的主機控制單元(HCU)。ISP1161作為主機控制器時有2個下行端口,分別連接nRF24LU1+的USB口和外部USB設備。nRF24LU1+負責無線數(shù)據(jù)流到USB數(shù)據(jù)流的傳輸。HCU負責來自nRP24LU1+的USB數(shù)據(jù)和外部LISB設備數(shù)據(jù)的傳輸。
3 USB無線網(wǎng)絡系統(tǒng)的軟件實現(xiàn)
3.1 nRF24LU1+的USB模塊固件程序設計
USB設備的軟件開發(fā)包括PC機端的USB設備驅動程序和界面應用程序,以及USB芯片端的芯片固件程序的開發(fā)。芯片固件程序是指運行在USB芯片內(nèi)部的程序代碼,它負責USB協(xié)議的處理和USB設備與主機的數(shù)據(jù)傳輸。芯片固件程序的開發(fā)是重點,也是難點。
3.1.1 USB設備的枚舉過程
從終端用戶看,USB系統(tǒng)就是外設通過一根USB電纜和PC機連接起來。USB在外設和PC機之間提供通信服務,通常把外設稱為“USB設備”,把其所連接的PC機稱為“USB主機”。USB使用總線枚舉操作管理USB設備的連接和斷開。以USB設備的連接為例說明枚舉過程。步驟如下:
①USB設備連接在主機或集線器的下行端口上,USB設備上電。
②USB設備的復位。主機應提供至少10 ms的復位恢復時間。復位完成后,USB設備進入缺省狀態(tài),可使用缺省設備地址對管道0的控制事務作出響應。
③主機向USB設備發(fā)出Get Descriptor (Device)請求,以取得其缺省控制管道所支持的最大數(shù)據(jù)包長度。
④主機向USB設備發(fā)出SetAddress請求,為其分配一個唯一的設備地址。
⑤主機使用新地址向USB設備發(fā)出GetDescriptor(Configuration)請求,并讀取其全部配置信息。該過程需要花費幾ms。
⑥主機根據(jù)設備的配置信息(如供應商、產(chǎn)品ID等),為其選擇一個合適的設備驅動程序。通常需要由開發(fā)人員自己編寫,有時也可以使用設備類或供應商提供的通用驅動程序。
⑦加載了USB設備驅動程序后,主機發(fā)出SetCon-figuration請求為該設備選擇一個合適的配置。配置成功后,枚舉結束,USB設備可以和主機進行數(shù)據(jù)傳輸了。
3.1.2 USB模塊固件程序設計
nRF24LU1+的USB模塊由2個SFR寄存器和XDATA寄存器組來控制。USB固件程序由2部分組成:USB模塊的初始化程序和中斷服務程序。
(1)USB模塊的初始化程序
關閉USB中斷,調(diào)用端點初始化函數(shù)USB_endpoint_init(void)設置USB各個端點的傳輸方式、緩存區(qū)大小、中斷事件產(chǎn)生條件,調(diào)用 USB服務函數(shù)USB_setvice(void)為中斷服務程序中調(diào)用做準備;打開USB中斷,調(diào)用函數(shù) USB_device_connect(void)使得內(nèi)部的1.5 kΩ上拉電阻連到D+線上,實現(xiàn)全速USB設備的配置。這樣,就可以響應主機的枚舉過程了。
(2)USB模塊的中斷服務程序
USB控制器提供2個中斷信號給nRF24LU1+,分別為喚醒中斷請求USBWU信號和USB中斷請求USBIRU信號。USB中斷請求USBIRQ為 nRF24Lu1+的一個中斷,而USB中斷請求下又有許多中斷,包括:12個塊端點中斷、幀開始中斷(sofir)、掛起中斷(suspir)、USB 復位中斷(uresir)、建立令牌中斷(sutokir)、建立數(shù)據(jù)有效中斷(sudavir)。如果多個USB中斷同時發(fā)生,USB控制器將按優(yōu)先級次序響應。激活的中斷在中斷向量寄存器ivec中得到,例如sofir中斷時,ivec寄存器的內(nèi)容為0x04。USB中斷請求USBIRQ的部分程序代碼如下:
3.2 nRF24LU1+的無線模塊程序設計
nRF24LU1+使用具有內(nèi)嵌的協(xié)議引擎(EnhancedShockBurst)2.4 GHz GFSK的RF收發(fā)器。EnhancedShockBurst具有自動包處理的特性,這使得實現(xiàn)可靠的雙向數(shù)據(jù)鏈接變得容易。數(shù)據(jù)包的傳輸是在兩個收發(fā)器之間進行的,其中一個作為主接收器(PRX),另一個作為主發(fā)送器(PTX)。每個數(shù)據(jù)包的傳輸都是由PTX發(fā)送數(shù)據(jù)包開始,而以PTX接收到PRX的應答包結束。在自動包傳輸處理工作時,nRF24LU1+提供了自動應答和重發(fā)數(shù)據(jù)的硬件機制,重發(fā)數(shù)據(jù)包的最大次數(shù)和第一次傳輸?shù)较乱淮沃貍髦g的延時均可編程設置。
nRF24LU1+發(fā)送器在Enhanced ShockBurst情況下的工作流程如圖4所示。
通過把RECON寄存器的rfce位置高使發(fā)送器進入PTX模式。如果在TX的FIFO緩存區(qū)有數(shù)據(jù)包,則無線收發(fā)器進入TX模式并發(fā)送這個數(shù)據(jù)包。如果自動重新傳輸使能,狀態(tài)機檢查NO_ACK標志位是否被置位。如果被置位,RF收發(fā)器進入RX模式準備接收應答包。如果收到的應答包為空,則只有 TX_DS(傳輸數(shù)據(jù)發(fā)出)中斷請求發(fā)生。如果應答包中包含載荷數(shù)據(jù),則在收發(fā)器返回standby-I模式之前,TX_DS和RX_DR(接收數(shù)據(jù)準備)中斷請求同時發(fā)生。如果延時時間到了而收發(fā)器還沒有收到應答包,則收發(fā)器返回到standby-II模式。在自動重新傳輸時間沒到之前,一直保持在 standby-II模式。如果重傳次數(shù)沒有達到設定值,則RF收發(fā)器進入TX模式并再一次重傳最后一次的數(shù)據(jù)包;否則,會發(fā)生最大重傳MAX_RT中斷請求,并返回到standby-I模式。如果RECON寄存器的rfce位為高且TX FIFO(先入先出數(shù)據(jù)緩存區(qū))為空,則RF收發(fā)器進入standby-I模式。
由于nRF24LU1+的無線收發(fā)模塊有強大數(shù)據(jù)硬件收發(fā)機制,編寫程序比較簡單,只需在初始化程序中對相關寄存器進行設置就可進入數(shù)據(jù)的收發(fā)。發(fā)送數(shù)據(jù)時,把待發(fā)送的數(shù)據(jù)放入發(fā)送FIFO后,收發(fā)器會按照設置進行發(fā)送,發(fā)送的情況通過中斷來通知MCU,MCU根據(jù)具體的中斷請求執(zhí)行相應的中斷服務程序。接收數(shù)據(jù)時,收發(fā)器會不斷地搜尋有效地址,當找到一個有效地址時,會處理剩下的數(shù)據(jù)包并通過CRC驗證數(shù)據(jù)包。如果這個包是有效的,包內(nèi)的載荷數(shù)據(jù)將被放入RX FIFO中。
數(shù)據(jù)包的格式如下:
無線通信程序由兩部分組成:無線通信模塊的初始化程序和中斷服務程序。
初始化程序對工作模式、傳輸速率、無線通信的工作波段頻率、RF輸出功率、地址寄存器、數(shù)據(jù)包的有效數(shù)據(jù)長度、CRC的校驗長度和RF中斷寄存器等進行相應的設置。無線通信模塊對nRF24LU1+只占一個中斷源RFIRQ,具體是何種中斷可通過查詢STATUS寄存器中的TX_DS、RX_DR、 MAX_RT位來獲得。中斷服務程序分為發(fā)送中斷服務程序、接收中斷服務程序和最大重傳中斷服務程序。
結語
本文提出一種運用無線收發(fā)芯片nRF24LU1+組建的無線網(wǎng)絡系統(tǒng)。此網(wǎng)絡系統(tǒng)充分利用USB和無線收發(fā)模塊各自的優(yōu)點實現(xiàn)了快速、便捷的數(shù)據(jù)傳輸,具有集成度高、體積小、保密性強、功耗低的特點。
責任編輯:gt
-
芯片
+關注
關注
456文章
51243瀏覽量
427530 -
接口
+關注
關注
33文章
8706瀏覽量
151974 -
usb
+關注
關注
60文章
7985瀏覽量
266190
發(fā)布評論請先 登錄
相關推薦
城市安防系統(tǒng)無線網(wǎng)絡化的實現(xiàn)方案
![城市安防<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>無線網(wǎng)絡化</b>的<b class='flag-5'>實現(xiàn)</b>方案](https://file1.elecfans.com//web2/M00/A6/61/wKgZomUMPU6AFe4rAAAHgCR_v18773.jpg)
單片機和工業(yè)無線網(wǎng)絡
基于IEEE1451.2和藍牙協(xié)議的無線網(wǎng)絡化傳感器
無線網(wǎng)絡控制模塊
【7gyy】臺式電腦使用無線網(wǎng)絡的技巧
無線網(wǎng)絡
基于藍牙技術的傳感器無線網(wǎng)絡化應用方案
藍牙無線網(wǎng)絡化傳感器在病人遠程監(jiān)護中有什么用?
藍牙在傳感器無線網(wǎng)絡化有什么應用?
怎么實現(xiàn)CDMA無線網(wǎng)絡防雷接地的設計?
怎么實現(xiàn)基于ZigBee無線網(wǎng)絡的電源電壓監(jiān)控系統(tǒng)設計?
WCDMA無線網(wǎng)絡工程_部分1
無線網(wǎng)絡接口卡收發(fā)器的設計與實現(xiàn)方案
![<b class='flag-5'>無線網(wǎng)絡</b><b class='flag-5'>接口</b>卡<b class='flag-5'>收發(fā)</b>器的設計與<b class='flag-5'>實現(xiàn)</b>方案](https://file.elecfans.com/web1/M00/F0/26/pIYBAGCkiv2Aec3GAAClSnUQaxQ050.png)
基于S3C2410處理器實現(xiàn)3G無線網(wǎng)卡接入無線網(wǎng)絡功能的設計
![基于S3C2410處理器<b class='flag-5'>實現(xiàn)</b>3G<b class='flag-5'>無線網(wǎng)</b>卡接入<b class='flag-5'>無線網(wǎng)絡</b>功能的設計](https://file.elecfans.com/web2/M00/03/17/pYYBAGDUR3CAbtMoAAAy2FvrFUA367.png)
評論