nRF24AP1具有"休眠"和"待机"两种低功耗工作模式。在不需要串口通信时将SLEEP信号置为高电平,使nRF24AP1进入休眠状态达到省电目的。当SLEEP信号置为低电平时,nRF24AP1处于准备接收串口数据状态,此时nRF24AP1不会进入待机模式。不论nRF24AP1处于何种工作模式下,只要将待机模式控制引脚SUSPEND置为低电平,nRF24AP1将立即中断所有射频和串口操作,进入省电状态。但进入与退出待机工作模式还需要SLEEP信号的配合。只有在SLEEP引脚置为高电平时,待机模式控制引脚SUSPEND置为低电平才能有效。而退出待机工作模式时,只有将SLEEP信号重新置为低电平。
5在智能家居中的应用
内嵌ANT协议的nRF24AP1无线收发器适用于短距离无线收发模块,是智能家居、传感器网络、工业自动化、体育场监控等领域的理想解决方案。
硬件设计电路方面,处理器模块选用AVR系列的ATmega16L单片机,用于节点设备的控制、任务调度、能量计算以及功能协调,无线收发模块则选用nRF24AP1,用于节点间的数据收发,nRF24AP1与MCU之间通过异步串口方式实现通信,其工作电压为3 V,选择CR2032锂离子电池作为节点电源,时钟由16 MHz晶体提供。nRF24AP1逻辑控制引脚均由ATmega16L的I/O端口控制,通过软件灵活更改nRF24AP1的工作模式。nRF24AP1射频信号输出端口的负载阻抗为(100+i175)Ω,需要阻抗匹配电路提高通信效率。nRF24AP1在智能家居中的典型应用电路如图3所示。
根据硬件电路设计,硬件驱动实现系统各模块的初始化以及MCU与nRF24AP1之间的通信程序。系统在初始化时除了要注意根据硬件连接设置ATmega16L各通用I/O端口为所需的状态,还要根据所选的nRF24AP1工作模式,利用ATmega16L的I/O端口设置nRF24AP1的控制端口状态。MCU与nRF24AP1之间采用异步串口方式进行通信,ATmega16L片内集成有USART,简单设置后即可在异步模式下工作。异步数据以1个起始比特、8个数据比特、1个停止比特以及无奇偶校验的方式进行传输。串口接收与发送均采用中断方式,同时为发送和接收分别设置一个长度为16字节的缓冲区(buffer),缓冲区设有单独读/写指针,并与缓冲计数器相关联。串口发送的数据首先通过调用函数putchar()写入tx_buffer,再由串口发出。接收数据时,先将接收到的数据写入rx_buffer,再根据应用需要调用函数getchar()从缓冲区中取得相应的数据,AVR串口接收中断服务程序及函数getchar()的流程图如图4所示。
6 结束语
nRF24AP1内嵌ANT协议,该协议结构简单,使用方便,加快开发进程,同时内嵌ANT协议还减少了用户开发成本。利用ANT技术可使系统具有待机和休眠两种状态,节省电能,而且ANT的时延短,反应快,系统根据需要能快速苏醒并在最短时间内完成传输,并快速回到休眠模式。而竞争者的"低功耗"技术在类似应用中采用相同的工作模式仅仅可以支持数月或更短的时间。因此,nRF24AP1功耗超低,适用于传感器网络、远程控制系统、智能家居等应用的数据采集、分析处理,具有广阔的市场前景。