nRF24L01無線模塊
nRF24L01是一款新型單片射頻收發(fā)器件,工作于2.4 GHz~2.5 GHz ISM頻段。內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融合了增強型ShockBurst技術(shù),其中輸出功率和通信頻道可通過程序進行配置。nRF24L01功耗低,在以-6 dBm的功率發(fā)射時,工作電流也只有9 mA;接收時,工作電流只有12.3 mA,多種低功率工作模式,工作在100mw時電流為160mA,在數(shù)據(jù)傳輸方面實現(xiàn)相對WiFi距離更遠,但傳輸數(shù)據(jù)量不如WiFi(掉電模式和空閑模式)使節(jié)能設(shè)計更方便。
GFSK調(diào)制:硬件集成OSI鏈路層;具有自動應答和自動再發(fā)射功能;片內(nèi)自動生成報頭和CRC校驗碼;數(shù)據(jù)傳輸率為l Mb/s或2Mb/s;SPI速率為0 Mb/s~10 Mb/s;125個頻道:與其他nRF24系列射頻器件相兼容;QFN20引腳4 mm×4 mm封裝;供電電壓為1.9 V~3.6 V。傳輸距離<5m
工作模式
待機模式1主要用于降低電流損耗,在該模式下晶體振蕩器仍然是工作的;待機模式2則是在當FIFO寄存器為空且CE=1時進入此模式;待機模式下,所有配置字仍然保留。在掉電模式下電流損耗最小,同時nRF24L01也不工作,但其所有配置寄存器的值仍然保留。
工作原理
發(fā)射數(shù)據(jù)時,首先將nRF24L01配置為發(fā)射模式:接著把接收節(jié)點地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時序由SPI口寫入nRF24L01緩存區(qū),TX_PLD必須在CSN為低時連續(xù)寫入,而TX_ADDR在發(fā)射時寫入一次即可,然后CE置為高電平并保持至少10μs,延遲130μs后發(fā)射數(shù)據(jù);若自動應答開啟,那么nRF24L01在發(fā)射數(shù)據(jù)后立即進入接收模式,接收應答信號(自動應答接收地址應該與接收節(jié)點地址TX_ADDR一致)。如果收到應答,則認為此次通信成功,TX_DS置高,同時TX_PLD從TX FIFO中清除;若未收到應答,則自動重新發(fā)射該數(shù)據(jù)(自動重發(fā)已開啟),若重發(fā)次數(shù)(ARC)達到上限,MAX_RT置高,TX FIFO中數(shù)據(jù)保留以便再次重發(fā);MAX_RT或TX_DS置高時,使IRQ變低,產(chǎn)生中斷,通知MCU。最后發(fā)射成功時,若CE為低則nRF24L01進入空閑模式1;若發(fā)送堆棧中有數(shù)據(jù)且CE為高,則進入下一次發(fā)射;若發(fā)送堆棧中無數(shù)據(jù)且CE為高,則進入空閑模式2。接收數(shù)據(jù)時,首先將nRF24L01配置為接收模式,接著延遲130μs進入接收狀態(tài)等待數(shù)據(jù)的到來。當接收方檢測到有效的地址和CRC時,就將數(shù)據(jù)包存儲在RX FIFO中,同時中斷標志位RX_DR置高,IRQ變低,產(chǎn)生中斷,通知MCU去取數(shù)據(jù)。若此時自動應答開啟,接收方則同時進入發(fā)射狀態(tài)回傳應答信號。最后接收成功時,若CE變低,則nRF24L01進入空閑模式1。SPI口為同步串行通信接口,最大傳輸速率為10 Mb/s,傳輸時先傳送低位字節(jié),再傳送高位字節(jié)。但針對單個字節(jié)而言,要先送高位再送低位。與SPI相關(guān)的指令共有8個,使用時這些控制指令由nRF24L01的MOSI輸入。相應的狀態(tài)和數(shù)據(jù)信息是從MISO輸出給MCU。





