摘 要: 給出了一種基于NRF24E1芯片的無線組網(wǎng)新方法。介紹了關于無線片上系統(tǒng)" title="片上系統(tǒng)">片上系統(tǒng)NRF24E1芯片的相關知識,并結合一個具體的無線點菜" title="無線點菜">無線點菜系統(tǒng)的設計和架構過程,對用NRF24E1芯片無線組網(wǎng)的具體方案進行了細致的闡述。
關鍵詞: NRF24E1 無線片上系統(tǒng)? IEEE802.11b? ShockBurst
?
在短距離的通信中,無線技術被普遍看好,其中射頻技術因其功耗低和無方向性等優(yōu)點而受到青睞。通信頻率為2.4GHz的頻段是全球開放的ISM(工業(yè)、科學和醫(yī)學)頻段,人們無需申請許可證即可使用,給開發(fā)者和用戶帶來了很大方便;同時,該頻率又可以有效地避免低頻段信號、各類電火花以及家用電器等的干擾。由于這一頻段具有的優(yōu)點,其他的一些應用,例如藍牙(BlueTooth)、無線局域網(wǎng)(WLAN)也在這一頻段;但藍牙和無線局域網(wǎng)對于工業(yè)控制、醫(yī)療傳感器、智能自動化裝置等設備來說,過于復雜,其成本也過高,很難滿足快速開發(fā)和低成本的要求。因此,目前迫切需要一種低成本、低功耗、能夠快速開發(fā)應用的方案,實現(xiàn)設備的無線連接。
本文結合無線片上系統(tǒng)NRF24El芯片的具體系統(tǒng)開發(fā)實例,研究一種無線組網(wǎng)技術。
1 無線片上系統(tǒng)NRF24E1
NRF24E1 是一種工作頻率可達到2.4GHz的無線射頻收發(fā)芯片。內(nèi)部嵌有與 8051 兼容的微處理器和10位9路A/D轉(zhuǎn)換器,可以在 1.9~3.6V電壓下穩(wěn)定工作。其內(nèi)部還有電壓調(diào)整器和VDD電壓監(jiān)視,通道轉(zhuǎn)換時間小于200微秒,數(shù)據(jù)速率1Mbps,不需要外接 SAW 濾波器。
NRF24E1是目前首次推出的全球2.4GHz通用的、完整低成本射頻系統(tǒng)級芯片。無線收發(fā)" title="無線收發(fā)">無線收發(fā)部分有與nRF2401同樣的功能。該功能由外部并行口和外部 SPI 啟動,每一個待發(fā)信號對于處理器來講都可以作為中斷來編程,或者通過GPIO端口實現(xiàn)。NRF24E1是一個可以在全球公用的頻段范圍(2.4~2.5 GHz)內(nèi)實現(xiàn)無線通信的芯片。收發(fā)機包含 1 個完全集成的分頻器、放大器、調(diào)節(jié)器和 2 個收發(fā)單元。輸出能量、頻段等射頻參數(shù),可通過射頻寄存器方便地編程調(diào)節(jié)。在發(fā)送模式下,電流消耗只有10.5mA;在接收模式下,只有 18mA,所以功耗相當?shù)汀?BR> 圖1是NRF24E1芯片示意圖。從圖中看到,NRF24E1由一個8051微控制器" title="微控制器">微控制器內(nèi)核和一個NRF2401 無線收發(fā)器組成,芯片包括:增強型 8051 內(nèi)核、無線收發(fā)器 NRF2401、9路100ksps的10位模數(shù)轉(zhuǎn)換器、UART 異步串口、SPI 接口、PWM 輸出、RC振蕩器、看門狗和喚醒定時器以及內(nèi)置的專用穩(wěn)壓電路等。
在 NRF24E1 的內(nèi)部存儲空間中,512B ROM 用于存儲引導程序。上電后,它可將 EEPROM 中存儲的程序下載到 4KB RAM 的程序運行空間,另外的 256B RAM為數(shù)據(jù)存儲器。無線收發(fā)器 NRF2401 可以通過軟件編程來設定接收地址、收發(fā)頻率、發(fā)射功率、無線傳輸速率、無線收發(fā)模式、CRC 校驗和的長度以及有效數(shù)據(jù)的長度等無線通信參數(shù)。
NRF24E1的典型應用電路原理圖如圖2,從圖中看到,采用 Nordic NRF24E1 無線單片機芯片設計的線路非常簡單,外圍零件很少,也非常容易進行設計開發(fā)。
NRF24E1 體積小、功耗低,因此非常適用于對體積和功耗要求較高的應用場合??蓮V泛應用于計算機外設、無線耳機、玩具、游戲手柄、汽車電子、醫(yī)療器械、遙控和工業(yè)傳感器等方面。
2 具體組網(wǎng)實現(xiàn)
結合前面的知識,再來看看基于NRF24E1芯片的短距離無線網(wǎng)絡具體應該如何組網(wǎng)。這里以一個具體的無線點菜系統(tǒng)的設計架構為例。
2.1 系統(tǒng)功能
該無線點菜系統(tǒng)采用NRF24E1芯片設計實現(xiàn),同時通過無線網(wǎng)卡實現(xiàn)點菜系統(tǒng)后臺服務器與計算機收銀管理系統(tǒng)的無線數(shù)據(jù)交換,實現(xiàn)從點菜、出菜、加菜、撤菜等從菜品進廚房直至結賬的全過程自動化。
該系統(tǒng)的功能流程是:餐廳內(nèi)的就餐點和餐廳外的外賣點都可以通過無線發(fā)送/接收終端輔助完成點菜,并通過無線傳輸將點菜數(shù)據(jù)傳送至后臺服務器,再由服務器進行分單打印和數(shù)據(jù)無線傳輸至收銀用機、傳菜用機,根據(jù)所得數(shù)據(jù),收銀機結帳并打印帳單,傳菜機打印、傳菜、劃單,最后由服務員完成送菜、上菜。
2.2 系統(tǒng)設計
無線點菜系統(tǒng)中點菜模塊外觀及總體設計圖如圖3所示,其中發(fā)送、接收端通過NRF24E1芯片實現(xiàn)無線數(shù)據(jù)傳輸。
無線點菜系統(tǒng)中點菜模塊系統(tǒng)流程圖如圖4所示。
首先由用戶在點菜終端輸入用戶號和密碼(刷卡)登錄,餐廳內(nèi)的就餐點由服務員輸入信息進入系統(tǒng)。當驗證用戶合法后,用戶可以進行點菜操作,點菜時直接通過菜肴的編碼和加減運算符組合輸入即可實現(xiàn)點菜,方便快捷,具體編碼可參考無線點菜終端使用說明書。用戶點菜輸入并“確認”后,無線點菜終端將用戶已點菜肴信息顯示輸出,用戶核對無誤,再次“確認”點菜,如需加菜、減菜,可按“取消”鍵回到上一步,同樣通過菜肴的編碼和加減運算符組合輸入來實現(xiàn)加減菜。用戶完成點菜后,無線點菜終端會將點菜數(shù)據(jù)傳輸給遠程服務器,并給出“您已成功點菜!”的顯示信息,用戶此時可以退出系統(tǒng)。
2.3 發(fā)送端總體設計
基于NRF24E1的點菜發(fā)送端需要有鍵盤進行點菜的數(shù)據(jù)輸入,同時還需要一個液晶顯示屏來顯示點菜信息。因此,整個發(fā)送端可大致分為主控制器、鍵盤、鍵盤編解碼、LCD、電壓轉(zhuǎn)換等部分,其總體設計框圖如圖5所示。
2.4 無線收發(fā)設計
NRF24E1收發(fā)器的收發(fā)任務由NRF2401子系統(tǒng)控制,NRF2401子系統(tǒng)結構框圖如圖6所示。
收發(fā)功能由特殊功能寄存器中的RADIO和SPI_ CTRL控制。SPI_ CTRL=0X00時,SPI不用;SPI_ CTRL=0X01時,SPI連接到P1口;SPI_ CTRL=0X10時,SPI連接到第一個NRF2401頻道;SPI_ CTRL=0X11時,SPI連接到第二個NRF2401頻道。
RADIO寄存器中的3個位PWR_UP、CE、CS可以用來控制NRF2401子系統(tǒng)的工作模式。當PWR_UP=1,CE=1,CS=0時為收發(fā)方式;當PWR_UP=1,CE=O,CS=1時為配置方式;當PWR_UP=1,CE=O,CS=0時為空閑方式;PWPWR_UP=0時關機。
系統(tǒng)射頻部分的通信協(xié)議均由內(nèi)置硬件電路完成,NRF24E1的無線數(shù)據(jù)包格式如表1。
表1 NRF24E1的無線數(shù)據(jù)包格式
PRE-AMBLE | ADDRESS | PAYLOAD | CRC |
其中,PRE-AMBLE是前導碼,由硬件自動加上去;ADDRESS是要發(fā)送的32~40位地址碼;PAYLOAD是有效數(shù)據(jù);CRC是CRC校驗和,它可由內(nèi)置CRC糾檢錯硬件電路自動加上,可設為0、8或16位。ADDRESS、PAYLOAD和CRC的總長度最大為256位,設置較短的地址和校驗和可以提高傳輸效率,但會使可靠性降低。
NRF24E1支持點到多點通信,每個芯片可通過軟件設置最多40位地址,通信時只有與本機地址相符時才應答,否則不響應。
無線收發(fā)器NRF2401有一個144bit的ShockBurst配置字,該配置字規(guī)定了無線收發(fā)器的接收地址、收發(fā)頻率、發(fā)射功率、無線傳輸速率、無線收發(fā)模式、CRC校驗和的長度以及有效數(shù)據(jù)的長度。該配置字使NRF2401能夠處理射頻協(xié)議。
當NRF2401工作在收發(fā)方式時,其采用了先進的ShockBurst技術。
(1)ShockBurst工作在發(fā)送方式時,CPU接口引腳為CE、CLK1和DATA(如圖6)。當CPU請求發(fā)送數(shù)據(jù)時,置CE為高電平" title="高電平">高電平,此時將接收機地址和有效載荷數(shù)據(jù)送入NRF2401,置CE為低電平激活ShockBurst發(fā)射。具體流程為:
a.當微控制器有數(shù)據(jù)要發(fā)送時,置CE為高,使NRF2401工作;
b.把接收機的地址和要發(fā)送的數(shù)據(jù)按時序送入NRF2401;
c.微控制器把CE置低,激發(fā)NRF2401進行ShockBurst發(fā)射;
d.NRF2401 ShockBurst發(fā)射:給射頻前端供電;射頻數(shù)據(jù)打包(加字頭、CRC校驗碼);高速發(fā)射數(shù)據(jù)包;發(fā)射完成,NRF2401進入空閑狀態(tài)。
?(2)ShockBurst工作在接收方式時,CPU接口引腳為CE、DR1、CLK1和DATA(如圖6)。當正確設置射頻包輸入載荷的地址和大小后,置CE為高電平可激活RX。此后NRF2401監(jiān)測信息輸入,若收到有效數(shù)據(jù)包,則給MCU一個中斷并置DR1為高電平,以使MCU以時鐘形式將有效載荷數(shù)據(jù)取走,待系統(tǒng)收到全部數(shù)據(jù)后NRF2401再置DR1為低。此時如果 CE保持高電平,則等待新的數(shù)據(jù)包;若CE置低電平,則開始其他工作流程。具體流程為:
a. 配置本機地址和要接收的數(shù)據(jù)包大小;
b. 進入接收狀態(tài),把CE置高;
c. 200微秒后,NRF2401進入監(jiān)視狀態(tài),等待數(shù)據(jù)包的到來;
d. 當接收到正確的數(shù)據(jù)包(正確的地址和CRC校驗碼),NRF2401自動把字頭、地址和CRC校驗位移去;
e. NRF2401通過把DR1(這個引腳引起微控制器中斷)置高通知微控制器;
f. 微控制器把數(shù)據(jù)從NRF2401移出;
g. 所有數(shù)據(jù)移完,NRF2401把DR1置低,此時,如果CE為高,則等待下一個數(shù)據(jù)包,如果CE為低,開始其他工作流程。
ShockBurst接收和發(fā)送的流程框圖如圖7和圖8所示。最終,無線點菜系統(tǒng)數(shù)據(jù)接收端正確接收點菜發(fā)送端發(fā)射來的點菜代碼,并處理成計算機所能識別的數(shù)據(jù)傳送給后臺服務器進行處理。
該無線點菜系統(tǒng)成本低廉、設計簡單、易于實現(xiàn),經(jīng)實際調(diào)試驗證完全可用。通過該系統(tǒng)的研發(fā)架構,可以得到一種用無線片上系統(tǒng)NRF24E1芯片來進行短距離無線組網(wǎng)的簡易可行的設計方法??梢灶A見,隨著無線網(wǎng)絡的不斷發(fā)展和應用普及,無線片上系統(tǒng)以其獨特的優(yōu)勢,其應用必將不斷擴展,而NRF24E1作為目前主流、典型、優(yōu)秀的無線片上系統(tǒng),在未來的無線領域中將發(fā)揮更大的作用。
參考文獻
[1](美) RASHINKAR. P等著, 孫海平,丁鍵譯. 系統(tǒng)芯片(SoC)驗證方法與技術[M]. 北京:電子工業(yè)出版社,2005.
[2]潘琢金,施國君.C8051Fxxx高速SOC單片機原理及應用[M]. 北京:北京航空航天大學出版社,2002.
[3]黃智偉. 射頻集成電路芯片原理與應用電路設計[M]. 北京:電子工業(yè)出版社,2004.
[4]李健. 無線點菜系統(tǒng)的研究[D]. 天津大學碩士學位論文,2004.
[5]許劍. 基于無線片上系統(tǒng)的家庭網(wǎng)絡控制系統(tǒng)的研究與設計[D]. 浙江大學碩士學位論文,2006.
[6]延濤. 基于nRF24E1芯片的通用遙控器原型樣機的設計[D]. 西北工業(yè)大學碩士學位論文,2005.