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