nRF24LU1+的USB無(wú)線(xiàn)網(wǎng)絡(luò )系統設計

發(fā)布時(shí)間:2010-1-13 11:37    發(fā)布者:李寬
引言

隨著(zhù)個(gè)人電腦的發(fā)展、 USB(Universal Seral Bus)技術(shù)日趨成熟,USB設備也以驚人的速度發(fā)展。日常生活里的數碼相機、打印機、掃描儀,醫院里的心電圖機、床邊監護系統,以及圖書(shū)館、超市和物流倉庫的有線(xiàn)條碼掃描儀等設備大都使用了USB接口的通信。但是,由于USB的電纜長(cháng)度受限(一般規定低速電纜長(cháng)度不超過(guò)3 m,全速電纜長(cháng)度不超過(guò)5 m),為使用帶來(lái)諸多不便。為了實(shí)現數據的高速傳輸,彌補其電纜長(cháng)度受限的不足,本文給出了基于RF24LU1+的USB接口設備的無(wú)線(xiàn)網(wǎng)絡(luò )化系統設計方案。

1 系統設計

系統總體框圖如圖1所示。



系統工作原理:首先,將無(wú)線(xiàn)收發(fā)主機的USB插頭插入PC機的USB插座,實(shí)現PC機與無(wú)線(xiàn)收發(fā)主機的硬件連接;同理,實(shí)現無(wú)線(xiàn)收發(fā)從機與USB設備 i(i=1,…,n)的硬件連接。無(wú)線(xiàn)收發(fā)主/從機可以根據現實(shí)情況采取自供電,或從與其所連的設備獲取供電。接著(zhù),PC機實(shí)現對無(wú)線(xiàn)收發(fā)主機的USB枚舉過(guò)程;同時(shí),無(wú)線(xiàn)收發(fā)從機的USB主控單元實(shí)現對USB設備的USB枚舉過(guò)程。枚舉結束后,建立無(wú)線(xiàn)網(wǎng)絡(luò )。無(wú)線(xiàn)收發(fā)主機和每個(gè)無(wú)線(xiàn)收發(fā)從機都設定一個(gè)唯一的地址,無(wú)線(xiàn)收發(fā)主機通過(guò)查詢(xún)方式與無(wú)線(xiàn)收發(fā)從機進(jìn)行通信。無(wú)線(xiàn)網(wǎng)絡(luò )建立后,通過(guò)無(wú)線(xiàn)收發(fā)主/從機就可以進(jìn)行USB數據流的無(wú)線(xiàn)通信了。

2 硬件電路設計

2.1 nRF24LU1+的芯片結構及特點(diǎn)

nRF24LU1+ 是Nordic半導體公司推出的一款將高性能的射頻收發(fā)器和單片USBdongle的功能結合起來(lái)的無(wú)線(xiàn)收發(fā)芯片。nRF24LU1+內含1個(gè)增強型的 8051MCU內核、無(wú)線(xiàn)收發(fā)模塊、符合全速USB 2.0標準的器件控制器、2 KB的片內SRAM、16 KB或32 KB的片內Flash存儲器、6個(gè)通用的I/O口以及電壓調整器。nRF24LU1+顯著(zhù)地增強了抗寬帶干擾和互調失真(IMD)性能。 nRF24LU1+芯片需要的外部元件只是低成本的16 MHz晶振、去耦電路、匹配網(wǎng)絡(luò )和天線(xiàn)。VBUS(USB工作電源)工作電壓范圍4.0~5.25 V。nRF24LU1+是單片結構,外形尺寸很小(5 mm×5 mm)。

無(wú)線(xiàn)收發(fā)器工作于全球開(kāi)放的2.400~2.483 5 GHz頻段,收發(fā)器的通信波特率可以通過(guò)軟件設置工作于2 50 kbps、1 Mbps、2 Mbps;使用Enhanced ShockedBust技術(shù)可以實(shí)現數據包的自動(dòng)打包/解包和傳輸處理(應答、重傳);使用MultiCeiver技術(shù)可同時(shí)支持6個(gè)無(wú)線(xiàn)裝置,頻段、輸出能量和其他射頻參數可通過(guò)射頻寄存器方便地進(jìn)行編程調節;具有點(diǎn)對多點(diǎn)通信,并且采用AES加密技術(shù)實(shí)現更安全的數據傳輸;使用超低功耗(ULP)無(wú)線(xiàn)技術(shù),0 dBm輸出功率時(shí)典型峰值電流為11.1 mA;集成了1個(gè)穩壓器,芯片可以直接由USB總線(xiàn)供電。

2.2 ISP1161的芯片結構及特點(diǎn)

ISP1161是Philips公司的一款符合USB2.0總線(xiàn)協(xié)議的USB接口芯片。它既帶主機控制器(HC)又帶設備控制器(DC),支持全速/低速傳輸,16位數據總線(xiàn),支持3.3 V/5 V雙供電方式。ISP1161為USB主機控制器時(shí),提供2個(gè)USB設備連接的向下端口。

2.3 帶USB接口的無(wú)線(xiàn)收發(fā)主機

無(wú)線(xiàn)收發(fā)主機電路如圖2所示。電路由nRF24LU1+、16 MHz的晶振,以及其他元器件等構成。nRF24LU1+中的MCU負責控制其片內的USB模塊和無(wú)線(xiàn)模塊,實(shí)現USB數據流到無(wú)線(xiàn)數據流的轉換。



2.4 帶USB接口的無(wú)線(xiàn)收發(fā)從機

無(wú)線(xiàn)收發(fā)從機與外部USB設備的連接電路如圖3所示。無(wú)線(xiàn)收發(fā)從機電路由Philips公司的ARM7處理器LPC2103和USB嵌入式主控制器 ISP1161,以及nRF24LU1+和一些外圍器件構成。LPC2103和ISP1161構成USB的主機控制單元(HCU)。ISP1161作為主機控制器時(shí)有2個(gè)下行端口,分別連接nRF24LU1+的USB口和外部USB設備。nRF24LU1+負責無(wú)線(xiàn)數據流到USB數據流的傳輸。HCU負責來(lái)自nRP24LU1+的USB數據和外部LISB設備數據的傳輸。



3 USB無(wú)線(xiàn)網(wǎng)絡(luò )系統的軟件實(shí)現

3.1 nRF24LU1+的USB模塊固件程序設計

USB設備的軟件開(kāi)發(fā)包括PC機端的USB設備驅動(dòng)程序和界面應用程序,以及USB芯片端的芯片固件程序的開(kāi)發(fā)。芯片固件程序是指運行在USB芯片內部的程序代碼,它負責USB協(xié)議的處理和USB設備與主機的數據傳輸。芯片固件程序的開(kāi)發(fā)是重點(diǎn),也是難點(diǎn)。

3.1.1 USB設備的枚舉過(guò)程

從終端用戶(hù)看,USB系統就是外設通過(guò)一根USB電纜和PC機連接起來(lái)。USB在外設和PC機之間提供通信服務(wù),通常把外設稱(chēng)為“USB設備”,把其所連接的PC機稱(chēng)為“USB主機”。USB使用總線(xiàn)枚舉操作管理USB設備的連接和斷開(kāi)。以USB設備的連接為例說(shuō)明枚舉過(guò)程。步驟如下:

①USB設備連接在主機或集線(xiàn)器的下行端口上,USB設備上電。
②USB設備的復位。主機應提供至少10 ms的復位恢復時(shí)間。復位完成后,USB設備進(jìn)入缺省狀態(tài),可使用缺省設備地址對管道0的控制事務(wù)作出響應。
③主機向USB設備發(fā)出Get Descriptor (Device)請求,以取得其缺省控制管道所支持的最大數據包長(cháng)度。
④主機向USB設備發(fā)出SetAddress請求,為其分配一個(gè)唯一的設備地址。
⑤主機使用新地址向USB設備發(fā)出GetDescriptor(Configuration)請求,并讀取其全部配置信息。該過(guò)程需要花費幾ms。
⑥主機根據設備的配置信息(如供應商、產(chǎn)品ID等),為其選擇一個(gè)合適的設備驅動(dòng)程序。通常需要由開(kāi)發(fā)人員自己編寫(xiě),有時(shí)也可以使用設備類(lèi)或供應商提供的通用驅動(dòng)程序。
⑦加載了USB設備驅動(dòng)程序后,主機發(fā)出SetCon-figuration請求為該設備選擇一個(gè)合適的配置。配置成功后,枚舉結束,USB設備可以和主機進(jìn)行數據傳輸了。

3.1.2 USB模塊固件程序設計

nRF24LU1+的USB模塊由2個(gè)SFR寄存器和XDATA寄存器組來(lái)控制。USB固件程序由2部分組成:USB模塊的初始化程序和中斷服務(wù)程序。

(1)USB模塊的初始化程序

關(guān)閉USB中斷,調用端點(diǎn)初始化函數USB_endpoint_init(void)設置USB各個(gè)端點(diǎn)的傳輸方式、緩存區大小、中斷事件產(chǎn)生條件,調用 USB服務(wù)函數USB_setvice(void)為中斷服務(wù)程序中調用做準備;打開(kāi)USB中斷,調用函數 USB_device_connect(void)使得內部的1.5 kΩ上拉電阻連到D+線(xiàn)上,實(shí)現全速USB設備的配置。這樣,就可以響應主機的枚舉過(guò)程了。

(2)USB模塊的中斷服務(wù)程序

USB控制器提供2個(gè)中斷信號給nRF24LU1+,分別為喚醒中斷請求USBWU信號和USB中斷請求USBIRU信號。USB中斷請求USBIRQ為 nRF24Lu1+的一個(gè)中斷,而USB中斷請求下又有許多中斷,包括:12個(gè)塊端點(diǎn)中斷、幀開(kāi)始中斷(sofir)、掛起中斷(suspir)、USB 復位中斷(uresir)、建立令牌中斷(sutokir)、建立數據有效中斷(sudavir)。如果多個(gè)USB中斷同時(shí)發(fā)生,USB控制器將按優(yōu)先級次序響應。激活的中斷在中斷向量寄存器ivec中得到,例如sofir中斷時(shí),ivec寄存器的內容為0x04。USB中斷請求USBIRQ的部分程序代碼如下:



3.2 nRF24LU1+的無(wú)線(xiàn)模塊程序設計

nRF24LU1+使用具有內嵌的協(xié)議引擎(EnhancedShockBurst)2.4 GHz GFSK的RF收發(fā)器。EnhancedShockBurst具有自動(dòng)包處理的特性,這使得實(shí)現可靠的雙向數據鏈接變得容易。數據包的傳輸是在兩個(gè)收發(fā)器之間進(jìn)行的,其中一個(gè)作為主接收器(PRX),另一個(gè)作為主發(fā)送器(PTX)。每個(gè)數據包的傳輸都是由PTX發(fā)送數據包開(kāi)始,而以PTX接收到PRX的應答包結束。在自動(dòng)包傳輸處理工作時(shí),nRF24LU1+提供了自動(dòng)應答和重發(fā)數據的硬件機制,重發(fā)數據包的最大次數和第一次傳輸到下一次重傳之間的延時(shí)均可編程設置。

nRF24LU1+發(fā)送器在Enhanced ShockBurst情況下的工作流程如圖4所示。



通過(guò)把RECON寄存器的rfce位置高使發(fā)送器進(jìn)入PTX模式。如果在TX的FIFO緩存區有數據包,則無(wú)線(xiàn)收發(fā)器進(jìn)入TX模式并發(fā)送這個(gè)數據包。如果自動(dòng)重新傳輸使能,狀態(tài)機檢查NO_ACK標志位是否被置位。如果被置位,RF收發(fā)器進(jìn)入RX模式準備接收應答包。如果收到的應答包為空,則只有 TX_DS(傳輸數據發(fā)出)中斷請求發(fā)生。如果應答包中包含載荷數據,則在收發(fā)器返回standby-I模式之前,TX_DS和RX_DR(接收數據準備)中斷請求同時(shí)發(fā)生。如果延時(shí)時(shí)間到了而收發(fā)器還沒(méi)有收到應答包,則收發(fā)器返回到standby-II模式。在自動(dòng)重新傳輸時(shí)間沒(méi)到之前,一直保持在 standby-II模式。如果重傳次數沒(méi)有達到設定值,則RF收發(fā)器進(jìn)入TX模式并再一次重傳最后一次的數據包;否則,會(huì )發(fā)生最大重傳MAX_RT中斷請求,并返回到standby-I模式。如果RECON寄存器的rfce位為高且TX FIFO(先入先出數據緩存區)為空,則RF收發(fā)器進(jìn)入standby-I模式。

由于nRF24LU1+的無(wú)線(xiàn)收發(fā)模塊有強大數據硬件收發(fā)機制,編寫(xiě)程序比較簡(jiǎn)單,只需在初始化程序中對相關(guān)寄存器進(jìn)行設置就可進(jìn)入數據的收發(fā)。發(fā)送數據時(shí),把待發(fā)送的數據放入發(fā)送FIFO后,收發(fā)器會(huì )按照設置進(jìn)行發(fā)送,發(fā)送的情況通過(guò)中斷來(lái)通知MCU,MCU根據具體的中斷請求執行相應的中斷服務(wù)程序。接收數據時(shí),收發(fā)器會(huì )不斷地搜尋有效地址,當找到一個(gè)有效地址時(shí),會(huì )處理剩下的數據包并通過(guò)CRC驗證數據包。如果這個(gè)包是有效的,包內的載荷數據將被放入RX FIFO中。

數據包的格式如下:



無(wú)線(xiàn)通信程序由兩部分組成:無(wú)線(xiàn)通信模塊的初始化程序和中斷服務(wù)程序。

初始化程序對工作模式、傳輸速率、無(wú)線(xiàn)通信的工作波段頻率、RF輸出功率、地址寄存器、數據包的有效數據長(cháng)度、CRC的校驗長(cháng)度和RF中斷寄存器等進(jìn)行相應的設置。無(wú)線(xiàn)通信模塊對nRF24LU1+只占一個(gè)中斷源RFIRQ,具體是何種中斷可通過(guò)查詢(xún)STATUS寄存器中的TX_DS、RX_DR、 MAX_RT位來(lái)獲得。中斷服務(wù)程序分為發(fā)送中斷服務(wù)程序、接收中斷服務(wù)程序和最大重傳中斷服務(wù)程序。

結語(yǔ)

本文提出一種運用無(wú)線(xiàn)收發(fā)芯片nRF24LU1+組建的無(wú)線(xiàn)網(wǎng)絡(luò )系統。此網(wǎng)絡(luò )系統充分利用USB和無(wú)線(xiàn)收發(fā)模塊各自的優(yōu)點(diǎn)實(shí)現了快速、便捷的數據傳輸,具有集成度高、體積小、保密性強、功耗低的特點(diǎn)。

參考文獻

1. 王成儒,李英偉,USB2.0原理與工程開(kāi)發(fā)[M].北京:國防工業(yè)出版社,2004.
2. 唐穎,阮越.基于ISP1161的USB接口音、視頻嵌入式系統設計[J].現代電子技術(shù),2005,28(20).
3. Nordic.Preliminary_product_Specification_nRF24LU1P_v1_2.pdf[OL].[2009-04].http://www.nordicsemi.com.
4. Philips.ISP1161A Full-speed Universal Serial Bus single-chip host and device controller,Rev.03[OL].[2007-04].http://www.nxp.com/acrobat_download/datasheets/ISP1161A-03.pdf.
5. Philips.LPC2101/02/03 User manual Rev.3,2008-10-02.

作者:李建明(上海海事大學(xué)) 彭建學(xué)(上海奧波電子有限公司) 于濤(廣州本田汽車(chē)有限公司)  來(lái)源:《單片機與嵌入式系統應用 》 2009(9)
本文地址:http://selenalain.com/thread-7600-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页