基于ANT協(xié)議的無線收發(fā)器nRF24AP1及其應(yīng)用
1 nRF24AP1簡介
nRF24AP1是針對無線個(gè)人網(wǎng)絡(luò)(PAN)互連的單片式嵌入?yún)f(xié)議棧的超低功耗無線收發(fā)器,工作在2.4 GHz ISM頻段。它支持點(diǎn)對點(diǎn)、點(diǎn)對多點(diǎn)通信,具有125個(gè)頻點(diǎn),空中接口的最高傳輸速率可達(dá)到1 Mb/s,實(shí)際用戶數(shù)據(jù)速率可達(dá)20 Kb/s。采用SoC方法設(shè)計(jì),只需少量外圍元件便可組成射頻收發(fā)電路。ANT協(xié)議集成在器件內(nèi)部.參數(shù)全部通過串口消息配置,應(yīng)用方便,縮短了開發(fā)周期。
2封裝與引腳功能
nRF24AP1采用5 mm×5 mm的24引腳QFN封裝,它的引腳排列如圖1所示(頂視圖)。其引腳功能如表1所列。
3 內(nèi)部結(jié)構(gòu)
nRF24AP1的內(nèi)部結(jié)構(gòu)如圖2所示。它包含異步串行接口UART、時(shí)鐘模塊、ANT協(xié)議機(jī)和1 Mb/s的射頻收發(fā)信機(jī)等4個(gè)模塊。nRF24AP1可通過簡單的同步或異步串口實(shí)現(xiàn)與外部主機(jī)的通信,也可將nRF24AP1看作一個(gè)黑盒的無線解決方案,無需深入理解物理層和協(xié)議,僅需通過串口配置信道參數(shù),就可發(fā)送或接收數(shù)據(jù)消息。nRF24AP1執(zhí)行配置任務(wù),并通過空中接口完成與其他設(shè)備間的消息包的發(fā)送與接收。
4工作模式
nRF24AP1直接與單片機(jī)的串口連接,可以通過配置不同參數(shù)實(shí)現(xiàn)工作模式選擇。在異步串口工作模式時(shí),端口選擇模式引腳PORTSEL置為低電平,速度設(shè)置引腳BR2、BR1設(shè)定不同組合,得到所需的異步串口的波特率,如表2所示。另外,異步串口控制引腳RTS具有控制數(shù)據(jù)傳輸作用,當(dāng)每次接收正確格式的消息后約50μs,RTS信號置為低電平,MCU向nRF24AP1傳輸數(shù)據(jù)。當(dāng)RTS信號置為高電平,MCU不再向nRF24AP1傳輸任何數(shù)據(jù),直到RTS被恢復(fù)為低電平。而nRF24AP1向MCU傳輸數(shù)據(jù),由于nRF24AP1不具備流控制功能,要求外部MCU能隨時(shí)接收數(shù)據(jù)。
nRF24AP1具有"休眠"和"待機(jī)"兩種低功耗工作模式。在不需要串口通信時(shí)將SLEEP信號置為高電平,使nRF24AP1進(jìn)入休眠狀態(tài)達(dá)到省電目的。當(dāng)SLEEP信號置為低電平時(shí),nRF24AP1處于準(zhǔn)備接收串口數(shù)據(jù)狀態(tài),此時(shí)nRF24AP1不會進(jìn)入待機(jī)模式。不論nRF24AP1處于何種工作模式下,只要將待機(jī)模式控制引腳SUSPEND置為低電平,nRF24AP1將立即中斷所有射頻和串口操作,進(jìn)入省電狀態(tài)。但進(jìn)入與退出待機(jī)工作模式還需要SLEEP信號的配合。只有在SLEEP引腳置為高電平時(shí),待機(jī)模式控制引腳SUSPEND置為低電平才能有效。而退出待機(jī)工作模式時(shí),只有將SLEEP信號重新置為低電平。
5在智能家居中的應(yīng)用
內(nèi)嵌ANT協(xié)議的nRF24AP1無線收發(fā)器適用于短距離無線收發(fā)模塊,是智能家居、傳感器網(wǎng)絡(luò)、工業(yè)自動化、體育場監(jiān)控等領(lǐng)域的理想解決方案。
硬件設(shè)計(jì)電路方面,處理器模塊選用AVR系列的ATmega16L單片機(jī),用于節(jié)點(diǎn)設(shè)備的控制、任務(wù)調(diào)度、能量計(jì)算以及功能協(xié)調(diào),無線收發(fā)模塊則選用nRF24AP1,用于節(jié)點(diǎn)間的數(shù)據(jù)收發(fā),nRF24AP1與MCU之間通過異步串口方式實(shí)現(xiàn)通信,其工作電壓為3 V,選擇CR2032鋰離子電池作為節(jié)點(diǎn)電源,時(shí)鐘由16 MHz晶體提供。nRF24AP1邏輯控制引腳均由ATmega16L的I/O端口控制,通過軟件靈活更改nRF24AP1的工作模式。nRF24AP1射頻信號輸出端口的負(fù)載阻抗為(100+i175)Ω,需要阻抗匹配電路提高通信效率。nRF24AP1在智能家居中的典型應(yīng)用電路如圖3所示。
根據(jù)硬件電路設(shè)計(jì),硬件驅(qū)動實(shí)現(xiàn)系統(tǒng)各模塊的初始化以及MCU與nRF24AP1之間的通信程序。系統(tǒng)在初始化時(shí)除了要注意根據(jù)硬件連接設(shè)置ATmega16L各通用I/O端口為所需的狀態(tài),還要根據(jù)所選的nRF24AP1工作模式,利用ATmega16L的I/O端口設(shè)置nRF24AP1的控制端口狀態(tài)。MCU與nRF24AP1之間采用異步串口方式進(jìn)行通信,ATmega16L片內(nèi)集成有USART,簡單設(shè)置后即可在異步模式下工作。異步數(shù)據(jù)以1個(gè)起始比特、8個(gè)數(shù)據(jù)比特、1個(gè)停止比特以及無奇偶校驗(yàn)的方式進(jìn)行傳輸。串口接收與發(fā)送均采用中斷方式,同時(shí)為發(fā)送和接收分別設(shè)置一個(gè)長度為16字節(jié)的緩沖區(qū)(buffer),緩沖區(qū)設(shè)有單獨(dú)讀/寫指針,并與緩沖計(jì)數(shù)器相關(guān)聯(lián)。串口發(fā)送的數(shù)據(jù)首先通過調(diào)用函數(shù)putchar()寫入tx_buffer,再由串口發(fā)出。接收數(shù)據(jù)時(shí),先將接收到的數(shù)據(jù)寫入rx_buffer,再根據(jù)應(yīng)用需要調(diào)用函數(shù)getchar()從緩沖區(qū)中取得相應(yīng)的數(shù)據(jù),AVR串口接收中斷服務(wù)程序及函數(shù)getchar()的流程圖如圖4所示。
6 結(jié)束語
nRF24AP1內(nèi)嵌ANT協(xié)議,該協(xié)議結(jié)構(gòu)簡單,使用方便,加快開發(fā)進(jìn)程,同時(shí)內(nèi)嵌ANT協(xié)議還減少了用戶開發(fā)成本。利用ANT技術(shù)可使系統(tǒng)具有待機(jī)和休眠兩種狀態(tài),節(jié)省電能,而且ANT的時(shí)延短,反應(yīng)快,系統(tǒng)根據(jù)需要能快速蘇醒并在最短時(shí)間內(nèi)完成傳輸,并快速回到休眠模式。而競爭者的"低功耗"技術(shù)在類似應(yīng)用中采用相同的工作模式僅僅可以支持?jǐn)?shù)月或更短的時(shí)間。因此,nRF24AP1功耗超低,適用于傳感器網(wǎng)絡(luò)、遠(yuǎn)程控制系統(tǒng)、智能家居等應(yīng)用的數(shù)據(jù)采集、分析處理,具有廣闊的市場前景。