ANT無線收發(fā)器nRF24AP1及其應(yīng)用
根據(jù)硬件電路設(shè)計(jì),硬件驅(qū)動(dòng)實(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ù)采集、分析處理,具有廣闊的市場前景。
評(píng)論