馬躍坤,應(yīng)時彥,楊文君,肖林榮
(1.浙江工業(yè)大學(xué) 信息工程學(xué)院,浙江 杭州 310032;2.杭州華爾數(shù)碼科技有限公司,浙江 杭州 310032;3.嘉興學(xué)院電氣工程學(xué)院,浙江 嘉興 314001)
RFID技術(shù)是一種非接觸式的自動識別技術(shù),通過對實體對象進(jìn)行有效標(biāo)識,可快速、實時、準(zhǔn)確采集和處理對象信息,廣泛應(yīng)用于生產(chǎn)、零售、物流、交通、醫(yī)療及國防等各個行業(yè).根據(jù)其工作頻率的不同,可以分為低頻、高頻、超高頻和微波等工作頻段[1-4].通信頻率為2.4 GHz的頻段是全球開放的ISM(工業(yè)、科學(xué)和醫(yī)學(xué))微波頻段,使用者無需申請許可證,給開發(fā)者和用戶帶來了很大方便;同時,可以有效地避免低頻段信號、各類電火花及家用電器的干擾,而且其能量波束比較集中,攜帶信息量大,傳輸距離也更遠(yuǎn).由基本射頻集成電路搭建的無線數(shù)據(jù)通信系統(tǒng)往往存在電路復(fù)雜,成本較高,傳輸速率低下,可靠性差等缺點.為此,Nordic公司推出一款工業(yè)級內(nèi)置硬件鏈路層協(xié)議的低成本單芯片nRF24LE1[4]型無線收發(fā)器件.該器件采用了抗干擾能力強的GFSK調(diào)制解調(diào)技術(shù),125個頻點自動跳頻,片內(nèi)自動生成報頭和CRC校驗碼,具有出錯自動重發(fā)功能[4-5],這些特性使得由nRF24LEl構(gòu)建的無線數(shù)據(jù)傳輸系統(tǒng)具有電路簡單、成本低、速率高以及傳輸距離遠(yuǎn)等優(yōu)點,筆者將重點探討nRF24LE1的無線數(shù)據(jù)傳輸實現(xiàn).
nRF24LE1[4]是北歐集成電路公司(Nordic)推出的一款帶增強型8051內(nèi)核的無線收發(fā)模塊,工作于2.4~2.5 GHz的ISM頻段,有多達(dá)125個的頻點,可通過改頻和跳頻來避免干擾,最大空中傳輸速率可達(dá)2 Mbps,靈敏度為-94 dBm,最大發(fā)射功率為0 dBm;在較為理想的環(huán)境中,室內(nèi)傳輸距離可達(dá)30~40 m,室外傳輸距離可達(dá)100~200 m;工作電壓為1.9~3.3 V,工作溫度范圍為-40~+85℃.圖1給出 nRF24LEl的24腳QFN(4 mm×4 mm)封裝引腳排列圖.除正常的電源、復(fù)位端口外,其中引腳XC1,XC2為晶振輸入輸出引腳,IREF為模數(shù)轉(zhuǎn)換的外部參考電壓輸入端,ANT1,ANT2為發(fā)射和接收的差分天線端子接口,P0.0~P0.6為多功能I/O口(如用于 UART,SPI,PWM,2-Wire等),PROG為Flash編程使能端口,DEC1,DEC2主要用于為連接器提供電源退耦輸出.可以看出,其引腳數(shù)目較少、結(jié)構(gòu)清晰,設(shè)計時所需外圍器件較少,為開發(fā)應(yīng)用帶來了方便.
圖1 QFN24 4 mm×4 mm封裝nRF24LE1的引腳圖Fig.1 QFN24 4 mm×4 mm package,the pin diagram of nRF24LE1
圖2給出nRF24LEl的內(nèi)部結(jié)構(gòu)圖,nRF24LE1是為單片超低功耗無線應(yīng)用而優(yōu)化設(shè)計的,內(nèi)部集成了增強型8051內(nèi)核,2.4 GHz無線收發(fā)器nRF24L01+,Flash存儲器,低功耗振蕩器,實時計數(shù)器,AES硬件加密器,隨機數(shù)發(fā)生器以及節(jié)能控制器等.所有高頻元件包括電感、振蕩器等,全部集成在芯片內(nèi)部,芯片的穩(wěn)定性能高,受外界環(huán)境的影響很小.對于應(yīng)用層,nRF24LE1提供了豐富的外設(shè),如 SPI、I2C線,UART,6~12位ADC,PWM以及一個低功耗的可以作為系統(tǒng)電平喚醒的模擬比較器.nRF24LE1融合了 Enhanced ShockBurst技術(shù),其中,輸出功率、通信頻道及自動重發(fā)次數(shù)等參數(shù)可通過編程設(shè)置[4-5].
圖2 nRF24LE1內(nèi)部結(jié)構(gòu)圖Fig.2 Internal structure of the nRF24LE1
nRF24LE1具有以下突出優(yōu)點:(1)功耗低.能夠在以-6 dBm的功率發(fā)射時,工作電流只有9 mA;在以0 dBm的功率發(fā)射時,工作電流僅11.1 mA;而在2 MHz接收時,工作電流僅13.3 mA,具有掉電和等待多種低功率工作模式.(2)體積小,最小采用QFN24封裝,是目前世界上封裝最小的一款射頻收發(fā)芯片.(3)供電電壓為1.9~3.6 V,可方便集成到各種電子器件.
無線數(shù)據(jù)傳輸系統(tǒng)采用模塊化實現(xiàn),主要由兩個射頻收發(fā)模塊nRF24LE1和天線單元組成,其中一個作為數(shù)據(jù)發(fā)送,另一個作為數(shù)據(jù)接收.本系統(tǒng)實現(xiàn)如下功能:發(fā)送端按鍵按下時發(fā)送數(shù)據(jù),點亮對應(yīng)的LED;接收端接收到數(shù)據(jù)并判斷正確后點亮對應(yīng)的LED,同時把接收到的數(shù)據(jù)通過串口傳遞給計算機系統(tǒng)顯示.
圖3給出了發(fā)射模塊和接收模塊共同用到的典型電路,外圍結(jié)構(gòu)有晶振、I/O端口和天線單元三部分組成.由于發(fā)射模塊相應(yīng)引腳要連接LED指示燈和按鍵,接收模塊要連接LED指示燈和UART串口,因此將對應(yīng)的多功能I/O端口(P0.0~P0.6)引出,通過擴展槽來擴展I/O口的用途,如擴展為UART,SPI,2-Wire,PWM 及ADC等功能端口.為了實現(xiàn)1 Mbps的空中數(shù)據(jù)傳輸速率,采用16 MHz的晶體振蕩器.電路右邊部分是2.4 GHz單端天線匹配網(wǎng)路,為保證信號傳輸?shù)姆€(wěn)定可靠性,采用了多級去耦方式實現(xiàn),而高質(zhì)量的RF電容去耦,則采用一個大的鉭電容(2.2 nF)并聯(lián)一個小電容實現(xiàn).
圖3 nRF24LE1典型應(yīng)用原理圖Fig.3 Typical application schematic of nRF24LE1
通過配置CONFIG寄存器可把nRF4LE1配置為發(fā)射、接收、待機及掉電四種工作模式[4-5],如表1所示.
表1 nRF24LE1射頻收/發(fā)主要工作模式Table 1 Main RF T/R mode of nRF24LE1
待機模式1主要用于降低電流損耗,在該模式下晶體振蕩器仍然是工作的;待機模式2則是在當(dāng)FIFO寄存器為空且RFCE=1時進(jìn)入此模式.待機模式下,所有配置字仍然保留.掉電模式下電流損耗最小,同時 nRF24LE1也不工作,但其所有配置寄存器的值仍然保留.nRF24LE1收發(fā)模式有Shock-BurstTM收發(fā)模式和Enhanced ShockBurstTM收發(fā)模式兩種,收發(fā)模式由器件配置字決定,對應(yīng)的數(shù)據(jù)包格式也有兩種[4-5],如圖4所示.
圖4 兩種模式的數(shù)據(jù)包格式Fig.4 Two modes of data packet format
Enhanced ShockBurstTM模式比ShockBurstTM模式多了一個確認(rèn)數(shù)據(jù)傳輸?shù)男盘?保證數(shù)據(jù)傳輸?shù)目煽啃訹4].Enhanced ShockBurstTM收發(fā)模式下,使用片內(nèi)的先入先出堆棧區(qū),數(shù)據(jù)低速從微控制器送入,但高速(1 Mbps)發(fā)射,這樣可以盡量節(jié)能,因此,使用低速的微控制器也能得到很高的射頻數(shù)據(jù)發(fā)射速率.與射頻協(xié)議相關(guān)的所有高速信號處理都在片內(nèi)進(jìn)行,這種做法有三大好處:盡量節(jié)能;低的系統(tǒng)費用(低速微處理器也能進(jìn)行高速射頻發(fā)射);數(shù)據(jù)在空中停留時間短,抗干擾性高.Enhanced ShockBurstTM技術(shù)同時也減小了整個系統(tǒng)的平均工作電流.在Enhanced ShockBurstTM收發(fā)模式下,器件內(nèi)部完成需要高速處理的RF協(xié)議,自動處理前導(dǎo)碼和CRC校驗碼,發(fā)送數(shù)據(jù)時只需將數(shù)據(jù)放入發(fā)送數(shù)據(jù)緩沖區(qū),器件會自行產(chǎn)生前導(dǎo)字符CRC校驗碼,并將這些數(shù)據(jù)地址和地址信息、發(fā)送數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)等組成一個數(shù)據(jù)包發(fā)送出去.在接收數(shù)據(jù)時,自動把前導(dǎo)碼和CRC校驗碼移去.Enhanced ShockBurstTM收發(fā)模式下,系統(tǒng)的程序編制會更加簡單,并且穩(wěn)定性也會更高.
因此,在本無線數(shù)據(jù)傳輸系統(tǒng)中,采用 Enhanced ShockBurstTM收發(fā)模式.
系統(tǒng)采用的是Enhanced ShockBurstTM收發(fā)模式,詳細(xì)的發(fā)送和接收流程如下.
Enhanced ShockBurstTM發(fā)射流程:
(1)把接收機的地址和要發(fā)送的數(shù)據(jù)按時序送入nRF24L01+.
(2)配置CONFIG寄存器,使之進(jìn)入發(fā)送模式.
(3)微控制器把 RFCE置高(至少10 μ s),激發(fā)nRF24LE1進(jìn)行Enhanced ShockBurstTM發(fā)射.
(4)nRF24L01+EnhancedShockBurstTM發(fā)射:
(a)給射頻前端供電.
(b)射頻數(shù)據(jù)打包(加前導(dǎo)碼、CRC校驗碼).
(c)高速發(fā)射數(shù)據(jù)包.
(d)發(fā)射完成,nRF24L01+進(jìn)入待機狀態(tài).
Enhanced ShockBurstTM接收流程:
(1)配置本機地址和要接收的數(shù)據(jù)包大小.
(2)配置CONFIG寄存器,使之進(jìn)入接收模式,把 RFCE 置高.
(3)130 μ s后 ,nRF24L01+進(jìn)入監(jiān)視狀態(tài),等待數(shù)據(jù)包的到來.
(4)當(dāng)接收到正確的數(shù)據(jù)包(正確的地址和CRC校驗碼),nRF2401+自動把前導(dǎo)碼、地址和CRC校驗位移去.
(5)nRF24L01+通過把STATUS寄存器的RX_DR置位(STAT US一般引起微控制器中斷)通知微控制器.
(6)微控制器把數(shù)據(jù)從nRF2401+讀出.
(7)所有數(shù)據(jù)讀取完畢后,可以清除STATUS寄存器.nRF2401+可以進(jìn)入四種主要的模式之一.
本系統(tǒng)中,發(fā)送端nRF24LE1模塊完成初始化后,把nRF24LE1配置成PTX工作模式.若按下發(fā)送按鍵,則啟動nRF24LE1發(fā)送數(shù)據(jù),點亮對應(yīng)的LED,若發(fā)送成功,則產(chǎn)生 TX_DS中斷;若重發(fā)超限,則產(chǎn)生MAX_RT中斷;若發(fā)送失敗,則繼續(xù)發(fā)送,否則進(jìn)行出錯處理.接收端nRF24LE1模塊完成初始化后,把nRF24LEl配置成PRX工作模式.當(dāng)正確接收數(shù)據(jù)時,nRF24L0l產(chǎn)生接收中斷標(biāo)志,點亮對應(yīng)的LED,并向串口發(fā)送數(shù)據(jù).圖5給出了程序流程圖.
圖5 程序流程圖Fig.5 Program flow chart
nRF24LE1通過內(nèi)部SPI接口和外部控制器件進(jìn)行數(shù)據(jù)交換,其SPI協(xié)議是 MSB在前,LSB在后.如果要讀寫多個字節(jié),先讀寫低字節(jié).如果外部控制器件沒有SPI接口,可用普通I/0接口模擬.表2給出了nRF24LEl命令表[4-5].
表2 nRF24LE1關(guān)鍵命令字Table 2 The key command words of nRF24LE1
nRF24LEl的各種命令字都只有一個字節(jié),分為讀寄存器、寫寄存器、讀數(shù)據(jù)接收緩沖區(qū)及寫發(fā)送數(shù)據(jù)緩沖區(qū)等.在輸入任意命令字的同時,MISO輸出的都是STATUS寄存器的內(nèi)容.
nRF24LE1在使能數(shù)據(jù)收發(fā)之前需要正確的配置,如前所述 Enhanced ShockBurstTM收發(fā)模式流程可知,主要設(shè)置包括數(shù)據(jù)收發(fā)的地址、通道、功耗、速率以及自動重發(fā)方式等等,在本系統(tǒng)中,發(fā)送端和接收端公用初始化函數(shù),主要對nRF24LEl的初始化功能有:配置成PTX模式時,重新發(fā)送的等待時間為500 μ s,重新發(fā)送次數(shù)為 10次,地址是 TX_ADR_WIDT H,輸出功率為0 dBm,速度為1 Mbps,并且使能發(fā)送完成和重發(fā)送次數(shù)超限兩種中斷,CRC校驗位為2字節(jié);配置成PRX模式時,地址是RX_ADR_WIDTH(同發(fā)送端地址 TX_ADR_WIDTH),負(fù)載數(shù)據(jù)寬度是 TX_PLOAD_WIDTH(同發(fā)送端),CRC校驗位為 2字節(jié).初始化函數(shù)如下:
發(fā)射數(shù)據(jù)時,經(jīng)初始化將nRF24LE1配置為發(fā)射模式,接著把接收節(jié)點地址TX_ADDR和有效數(shù)據(jù)TX_PLOAD按照時序由內(nèi)部SPI口寫入nRF24LE1緩存區(qū),TX_PLOAD必須在RFCSN為低時連續(xù)寫入,而TX_ADDR在發(fā)射時寫入一次即可,然后RFCE置為高電平并保持至少 10 μ s,延遲130 μ s后發(fā)射數(shù)據(jù);若自動應(yīng)答開啟,那么nRF24LE1在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(自動應(yīng)答接收地址應(yīng)該與接收節(jié)點地址TX_ADDR一致).如果收到應(yīng)答,則認(rèn)為此次通信成功,TX_DS置高,同時 TX_PLOADD從 TX FIFO中清除;若未收到應(yīng)答,則自動重新發(fā)射該數(shù)據(jù)(自動重發(fā)已開啟),若自動重發(fā)次數(shù)(ARC)達(dá)到上限,MAX_RT置高,TX FIFO中數(shù)據(jù)保留以便再次重發(fā);MAX_RT或 TX_DS置高時,使IRQ變低,產(chǎn)生中斷,通知 MCU.最后發(fā)射成功時,若 RFCE為低,則nRF24LE1進(jìn)入待機模式1;若發(fā)送堆棧中有數(shù)據(jù)且 RFCE為高,則進(jìn)入下一次發(fā)射;若發(fā)送堆棧中無數(shù)據(jù)且RFCE為高,則進(jìn)入待機模式
2.主要的數(shù)據(jù)發(fā)送程序如下:
接收數(shù)據(jù)時,經(jīng)初始化將nRF24LE1配置為接收模式,接著延遲130 μ s進(jìn)入接收狀態(tài)等待數(shù)據(jù)的到來.當(dāng)接收方檢測到有效的地址和CRC時,就將數(shù)據(jù)包存儲在 RX FIFO中,同時中斷標(biāo)志位RX_DR置高,IRQ變低,產(chǎn)生中斷,通知MCU去取數(shù)據(jù).若此時自動應(yīng)答開啟,接收方則同時進(jìn)入發(fā)射狀態(tài)回傳應(yīng)答信號.最后接收成功時,若RFCE變低,則nRF24LE1進(jìn)入等待模式1.主要數(shù)據(jù)接收程序如下:
為了檢驗無線通信的實際結(jié)果,程序中發(fā)送端預(yù)先設(shè)定將要發(fā)送的數(shù)據(jù)包大小為32字節(jié)(最大長度為32字節(jié)),內(nèi)容由01-32組成.按下發(fā)送端按鍵時將把數(shù)據(jù)發(fā)送出去且對應(yīng)的LED閃爍一次,接收端通過RS232與電腦串口相連,串口通信波特率為19 200 bps.如圖6所示為發(fā)送端距離接收端50 m以上情況下,兩次按下按鍵后,通過串口調(diào)試軟件在接收端檢測到的正確數(shù)據(jù),即發(fā)送端發(fā)送的由01-32組成的數(shù)據(jù)包在接收端被正確的接收到,從而驗證50 m以上的無線數(shù)據(jù)傳輸?shù)恼_性,達(dá)到了預(yù)期的遠(yuǎn)距離無線數(shù)據(jù)傳輸目的.
研究了基于射頻收發(fā)芯片nRF24LEl的無線數(shù)據(jù)傳輸系統(tǒng),重點探究了Enhanced ShockBurstTM收發(fā)模式下的無線數(shù)據(jù)收發(fā)實現(xiàn).該系統(tǒng)在實際室外測試中實現(xiàn)了50 m以上的遠(yuǎn)距離無線數(shù)據(jù)傳輸,可以廣泛應(yīng)用于無線測控、無線遙控、RFID、醫(yī)學(xué)參數(shù)檢測、無線語音、工業(yè)控制以及無線數(shù)據(jù)采集等領(lǐng)域.
[1] 寧煥生,張彥.RFID產(chǎn)品研發(fā)及生產(chǎn)關(guān)鍵技術(shù)[M].北京:電子工業(yè)出版社,2007:1-16.
[2] 游戰(zhàn)清,李蘇劍.無線射頻識別技術(shù)(RFID)理論與應(yīng)用[M].2版.北京:電子工業(yè)出版社,2004:11-12.
[3] 譚民,劉禹,曾雋芳,等.RFID技術(shù)系統(tǒng)工程與應(yīng)用指南[M].北京:機械工業(yè)出版社,2007:11-15.
[4] 譚暉.nRF無線SOC單片機原理與高級應(yīng)用[M].北京:北京航空航天大學(xué)出版社.2009:1-177.
[5] 李輝,宋詩,周建江,等.基于 ARM 和nRF24L01的無線數(shù)據(jù)傳輸系統(tǒng)[J].國外電子元器件.2008,12:44-46.