基于nRF24E1的嵌入式2.4GHz無線接入系統(tǒng)
在短距離的通信中,無線技術(shù)被普遍看好,其中射頻技術(shù)因?yàn)楣牡秃蜔o方向性等優(yōu)點(diǎn)而受到青睞。通信頻率為2.4 GHz的頻段是全球開放的ISM(工業(yè)、科學(xué)和醫(yī)學(xué))頻段,使用者無需申請許可證,給開發(fā)者和用戶帶來了很大方便;同時,可以有效地避免低頻段信號、各類電火花及家用電器的干擾。因?yàn)檫@一頻段具有這些優(yōu)點(diǎn),其他的一些應(yīng)用,如藍(lán)牙、WLAN,也是在這一頻段;但藍(lán)牙和WLAN對于工業(yè)控制、醫(yī)療傳感器、住宅和樓宇自動化裝置等設(shè)備來說,過于復(fù)雜,其成本也過高,很難滿足快速開發(fā)和低成本的要求。因此,目前迫切需要一種低成本、低功耗、能夠快速開發(fā)應(yīng)用的方案,來實(shí)現(xiàn)設(shè)備的無線連接。
另一方面,經(jīng)過多年的發(fā)展,TCP/IP協(xié)議已經(jīng)成為目前被廣泛應(yīng)用于Internet的通信協(xié)議。在嵌入式系統(tǒng)中實(shí)現(xiàn)TCP/IP協(xié)議棧,利用Internet進(jìn)行遠(yuǎn)程數(shù)據(jù)傳送,可以實(shí)現(xiàn)對遠(yuǎn)端設(shè)備運(yùn)行狀態(tài)的監(jiān)視和控制。
在嵌入式TCP/IP平臺下利用工作頻率為2.4 GHz的無線收發(fā)模塊nRF24E1,進(jìn)行短距離的點(diǎn)對多點(diǎn)的無線通信;用無線技術(shù)解決最后10 m的通信問題,可實(shí)現(xiàn)一種無線接入的解決方案。
2 nRF24E1及其通信協(xié)議
2.1 nRF24E1模塊的基本特性
nRF24E1是北歐集成電路公司(Nordic)推出的一款帶8051內(nèi)核的無線收發(fā)模塊,內(nèi)部結(jié)構(gòu)如圖1所示。該模塊的無線收發(fā)器工作于2.4 GHz的ISM頻段,有多達(dá)125個的頻點(diǎn),可通過改頻和跳頻來避免干擾。nRF24E1的集成度非常高,內(nèi)部集成了增強(qiáng)型8051內(nèi)核,2.4 GHz無線收發(fā)器,100 ksps的9路10位模數(shù)轉(zhuǎn)換器,UART接口,SPI接口,PWM輸出,內(nèi)置RC振蕩器、看門狗和喚醒定時器以及專門的穩(wěn)壓電路。所有高頻元件包括電感、振蕩器等,全部集成在芯片內(nèi)部,因此芯片的性能穩(wěn)定,受外界環(huán)境的影響很小。
nRF24E1采用36腳QFN(6 mm×6 mm)封裝,最大傳輸速率可達(dá)1 Mb/s,靈敏度為一90 dBm,最大發(fā)射功率為O dBm;在較為理想的環(huán)境中,室內(nèi)傳輸距離可達(dá)30~40 m,室外傳輸距離可達(dá)100~200 m;其工作電壓為1.9~3.3 V,工作溫度范圍為一40~+80℃。
2.2 nRF24E1之間的通信協(xié)議
nRF24E1的無線數(shù)據(jù)包格式為
其中,Preamble是前導(dǎo)碼,是硬件自動加上去的;ADDR是發(fā)送的地址,為32~40位;PAYLOAD是有效數(shù)據(jù);CRC是CRC校驗(yàn)和,由內(nèi)置CRC糾檢錯硬件電路自動加上,可設(shè)為O、8或16位。ADDR、PAYLOAD和CRC的總長度最大為256位,因此,設(shè)置較短的地址和校驗(yàn)和能提高傳輸效率,但也使得可靠性降低。
nRF24E1通過軟件設(shè)置收發(fā)模式、收發(fā)頻率、接收地址、發(fā)射功率、CRC校驗(yàn)和的長度、有效數(shù)據(jù)的長度等。無線收發(fā)器有2個頻道:頻道1可以接收和發(fā)送;頻道2只能接收,且頻道2的接收頻率總比頻道1高8 MHz;同時,每個芯片可以設(shè)置2個地址。收發(fā)頻率和地址隨時都可以通過軟件更改,實(shí)現(xiàn)改頻和跳頻;但是,必須通過通信協(xié)議解決好,一致的頻率和正確的地址才是數(shù)據(jù)傳送的前提。只有地址符合且校驗(yàn)和正確的包,才能被進(jìn)一步處理;若有一項不正確,整個數(shù)據(jù)包就被硬件自動丟棄。若地址與校驗(yàn)和相符,則由硬件產(chǎn)生中斷DRl或DR2,8051才能將數(shù)據(jù)接收到緩沖區(qū)。
在同一時刻,nRF24E1只能處于接收或發(fā)送模式中的一種。一般以接收模式為待機(jī)狀態(tài)。
3 無線接入解決方案
系統(tǒng)的解決方案示意圖如圖2所示。
nRF24E1主機(jī)是無線系統(tǒng)的關(guān)鍵部分。它不但作為接入點(diǎn),負(fù)責(zé)與嵌入式TCP/IP模塊交換數(shù)據(jù),同時也負(fù)責(zé)與其他無線模塊通信。
為實(shí)現(xiàn)Internet網(wǎng)絡(luò)互聯(lián),使用以太網(wǎng)控制芯片RTL8019AS,并將TCP/IP協(xié)議棧嵌入在ATmegal28的內(nèi)部。除此之外,ATmegal28內(nèi)部還實(shí)現(xiàn)了一個小型通用的Web Server,而遠(yuǎn)端的PC就作為客戶端。
數(shù)據(jù)的傳送過程是遠(yuǎn)端PC通過Internet發(fā)送數(shù)據(jù),由RTL8019AS接收數(shù)據(jù)包,再由ATmegal28對TCP/lP數(shù)據(jù)包進(jìn)行處理,得到PC發(fā)送的信息,AT-megal28再將數(shù)據(jù)通過SPI接口傳送到nRF24E1主機(jī)。nRF24E1主機(jī)根據(jù)內(nèi)部協(xié)議又將數(shù)據(jù)傳給相應(yīng)的nRF24E1從機(jī),再由nRF24E1從機(jī)對各自的設(shè)備進(jìn)行通信或控制。nRF24E1從機(jī)給遠(yuǎn)端PC傳送數(shù)據(jù)為反向的過程。
4 接入系統(tǒng)的控制及其實(shí)現(xiàn)
4.1 無線系統(tǒng)的控制方法
將所有的nRF24E1模塊都設(shè)置為同一頻率,通過設(shè)置不同的地址來區(qū)分各個無線模塊。為了避免多個從機(jī)同時給主機(jī)發(fā)送數(shù)據(jù)產(chǎn)生沖突,主機(jī)不但要作為接入點(diǎn),同時要控制整個無線系統(tǒng),避免沖突。
系統(tǒng)采用主機(jī)輪詢,從機(jī)應(yīng)答的方法,即主機(jī)按照一定的規(guī)則,給從機(jī)發(fā)送一個允許從機(jī)發(fā)送數(shù)據(jù)的標(biāo)志。該標(biāo)志相當(dāng)于一個令牌,從機(jī)若有數(shù)據(jù)發(fā)送,得到令牌后,可在令牌的有效時間內(nèi)連續(xù)地發(fā)送多幀數(shù)據(jù)。當(dāng)然,也可以設(shè)置只能發(fā)送1幀數(shù)據(jù),數(shù)據(jù)發(fā)送完畢后必須有一個結(jié)束的信號END標(biāo)志;如果從機(jī)沒有數(shù)據(jù)發(fā)送,也必須給主機(jī)返回END標(biāo)志,從機(jī)的回應(yīng)可以讓主機(jī)判斷與該從機(jī)的通信鏈路是否正常。
主機(jī)對無線系統(tǒng)的控制主要是通過令牌來實(shí)現(xiàn)的,因此主機(jī)對從機(jī)的令牌是否有效的判斷是其中的關(guān)鍵,而且必須考慮足夠的容錯性能??梢酝ㄟ^兩個方法來判斷和控制令牌的有效時間:一是從機(jī)收到令牌到返回END標(biāo)志的時間內(nèi)令牌為有效,而主機(jī)根據(jù)從機(jī)返回的END標(biāo)志即可判斷該從機(jī)的令牌已經(jīng)失效;二是規(guī)定令牌的最大有效時間,從機(jī)收到令牌后開始計時,達(dá)到規(guī)定的最大時間后,令牌自動失效,主機(jī)也通過計時來判斷從機(jī)的令牌是否失效。這兩個方法同時起作用。第一個方法可以提高系統(tǒng)效率,避免在空閑的鏈路上消耗過多的時間,使系統(tǒng)的品質(zhì)得到提高;而設(shè)置最大時間是為了限制一個從機(jī)占用通信鏈路的時間,也可以防止丟失END標(biāo)志甚至通信鏈路不正常所產(chǎn)生的錯誤,盡量減少不正常的鏈路對系統(tǒng)其他部分的影響。
當(dāng)然,主機(jī)不僅可以采用輪詢的方法,也可以根據(jù)各個從機(jī)的通信優(yōu)先級不同來分配令牌,而且每個從機(jī)令牌的最大有效時間也可以不一樣。從機(jī)必須在令牌的有效時間內(nèi)才能給主機(jī)發(fā)送數(shù)據(jù),每一時刻只有一個從機(jī)的令牌有效,以避免沖突。主機(jī)要發(fā)送數(shù)據(jù),必須先查詢從機(jī)的令牌是否有效。若令牌有效,還必須等從機(jī)的END標(biāo)志到來后,或者時間超過了令牌的最大有效時間,且這時所有從機(jī)的令牌都見效,主機(jī)才可以發(fā)送數(shù)據(jù)。
4.2 系統(tǒng)的實(shí)現(xiàn)
nRF24E1主機(jī)不但要與ATmegal28通信,還要與其他nRF24E1從機(jī)通信;同時,還要控制整個無線系統(tǒng)。因此,nRF24E1主機(jī)是整個無線接人系統(tǒng)的關(guān)鍵,它能否高效地運(yùn)行,關(guān)系到整個系統(tǒng)的效率。
圖3所示為。nRF24E1主機(jī)在正常情況下的運(yùn)行流程。主機(jī)在令牌發(fā)出去以后,就只能處于無線接收的狀態(tài),直到從機(jī)的令牌無效后才能進(jìn)行與ATmegal28的通信或者給從機(jī)發(fā)送數(shù)據(jù)。
nRF24E1從機(jī)的通信任務(wù)要簡單得多,另外還有各自的應(yīng)用。可以用nRF24E1的I/O端口直接控制設(shè)備,也可以連接其他MCU實(shí)現(xiàn)其他功能。
由于nRF24E1內(nèi)置了增強(qiáng)型8051控制器,使nRF24E1成為一種集無線數(shù)據(jù)接收和發(fā)送于一體,以及對數(shù)據(jù)進(jìn)行處理的片上系統(tǒng)(SoC),并且有模擬輸入和PWM輸出,因此,不但可以作為無線接口實(shí)現(xiàn)無線數(shù)據(jù)傳送,在一些較為簡單的控制系統(tǒng)中,可以用它作為控制核心,無需另接MCU。這使得nRF24E1的應(yīng)用系統(tǒng)更為簡化,大大增強(qiáng)了無線系統(tǒng)的穩(wěn)定性和可靠性;同時,也使得開發(fā)變得簡單,成本進(jìn)一步降低。
在一些較為復(fù)雜的系統(tǒng)中,由于nRF24E1的端口有限,只有256字節(jié)的RAM空間,805l的處理能力也不是很強(qiáng)。在這樣的系統(tǒng)中,可通過連接功能更為強(qiáng)大的MCU,讓MCU進(jìn)行處理。應(yīng)用中,采用了ATmegal28,而nRF24E1只作為無線通信的接口,將數(shù)據(jù)通過UART或SPI接口傳送到Atmegal28,讓Atmegal28進(jìn)行較為復(fù)雜的運(yùn)算和處理。
圖4為ATmegal28與nRF24E1的SPI接口電路圖。nRF24E1為SPI的主機(jī),ATmegal28為從機(jī)。通過SPI接口可使nRF24El與ATmegal28的最大通信速率達(dá)到2 Mbps,因此,傳輸?shù)乃俣瓤梢詽M足大多數(shù)場合的應(yīng)用。
本系統(tǒng)可以應(yīng)用于數(shù)據(jù)采集系統(tǒng)、信息家電的無線通信接口、住宅和樓宇自動化裝置以及工業(yè)自動化的無線連接等場合。上述方案已經(jīng)在數(shù)據(jù)采集系統(tǒng)上得到應(yīng)用,很方便地實(shí)現(xiàn)了設(shè)備間的無線連接;而且對原有模塊的改動很少,開發(fā)時間較短,系統(tǒng)的穩(wěn)定性很好。
結(jié) 語
藍(lán)牙工作在2.4 GHz頻段,但由于其芯片的成本一直居高不下,產(chǎn)品很難開發(fā),因此到目前為止,藍(lán)牙的產(chǎn)品還是很少。另外,市場尚未出現(xiàn)非藍(lán)牙不可的應(yīng)用 需求,藍(lán)牙的一些市場定位能夠輕易地被其他更專業(yè)的產(chǎn) 品所取代。nRF24E1就是以較低的價格和較容易應(yīng)用開 發(fā)等優(yōu)勢來代替一些領(lǐng)域的藍(lán)牙應(yīng)用,為一些只需要簡單 的無線連接的應(yīng)用領(lǐng)域,提供一種低成本、低功耗、能夠快 速開發(fā)應(yīng)用的方案,以實(shí)現(xiàn)無線連接。另外,在嵌入式系 統(tǒng)中實(shí)現(xiàn)TCP/IP協(xié)議棧,利用Internet進(jìn)行數(shù)據(jù)的遠(yuǎn)程 傳送;而在本地端采用嵌入式的2.4 GHz無線接入技術(shù), 將這兩者結(jié)合起來,具有一定的先進(jìn)性和廣闊的應(yīng)用前景。