3软件编程设计
3.1工作模式的配置
nRF2401有工作模式有四种,由PWR Im、CE和CS三个引脚决定,如表1所示。
表1 nRF2401工作模式
(1)收发模式:有ShockBurstTM收发模式和直接收发模式两种,由器件配置字决定。
(2)配置模式:1 5字节的配置字被送到nRF2401,通过CS、CLKl和DArA三个引脚完成。
(3)空闲模式:只剩下部分片内晶振仍在工作,工作电流不超过32 u A;配置字内容仍保持在nRF2401片内。
(4)关机模式:所有晶振停止,工作电流最小,一般小于l Il A;配置字内容仍然保持在nRF2401片内,这也是与断电状态最大的区别。
nRF2401通过CS、D脚rA和Cu三个引脚来完成其配置工作。本系统采用ShockBurstTM收发模式,这种模式配置简单,性能稳定。配置字长144位,18个字节(最高3字节不可配置,保留),其中16~119位共1 3字节用来配置ShockBurstrIM收发模式,分为以下四个部分:
(1)数据宽度:声明射频数据包中数据占用的位数,这使得nRF2401能够区分接收数据包中的数据和CRC校验码;
(2)地址宽度:声明射频数据包中地址占用的位数,这使得nRF2401能够区分地址和数据;
(3)地址:接收数据的地址,有通道1和通道2的地址;
(4)CRC:使nRF2401能够生成CRC校验码和解码。
配置字的最低一位用来配置接收或发送状态。
需要注意的是,在配置模式下要保证PWR UP引脚为高电平,CE引脚为低电平;配置字从最高位开始,依次送入nRF2401;在CS引脚的下降沿,新送入的配置字开始工作。
在ShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据从微控制器低速送入(250kb/s1,然后高速发射(1Mb/s),这样是为了尽可能的节能,因此,即使使用低速的微控制器也能获得很高的射频数据发射速率;与射频协议相关的所有高速信号处理都在片内进行,数据在空中停留时间短、抗干扰性好,也减小了整个系统的平均工作电流。
另外,在该模式下,nRF2401会自动处理字头和CRC校验码。发送数据时,自动加上字头和CRC校验码;接收数据时,又自动把字头和CRC校验码移去。
3.2数据收发程序设计
ShockBurstTM发射程序流程图如图5所示。
ShockBurstTM发射需要接口引脚CE、CLKl、DATA,步骤如下:
(1)当MCU有数据要发送时,把CE置高,使nRF2401进入发送模式;
(2)把接收机地址和数据通过DATA匹配CLKl时序写入nRF2401的FIFO;
(3)MCU把CE置低,使nRF2401进行ShockBurst发射;
nRF2401的ShockBurstTM发射,包括给射频前端供电;射频数据打包(加字头、CRC校验码);高速发射数据包。发射完成后,nRF2401进入空闲状态。
ShockBurst接收程序流程图如图6所示。
ShockBurstTM接收需要接口引脚CE、DRl、CLKl和DAl除,步骤如下:
(1)微控制器把CE置高,进入接收状态;
(2)延时200 u s,nRF2401进入监视状态,等待数据包的到来;
(3)接收到可识别的数据包后,nRF2401自动把字头、地址和CRC校验位移去;
(4)nRF2401把DRl置高(引起微控制器中断)通知微控制器;
(5)微控制器把数据从nRF2401读出;
(6)所有数据读取完毕后,DRl置低。
3.3低功耗程序设计
标签要考虑到电池更换周期的问题,所以需要一种尽可能省电的程序设计。MSP430F1101A中有五种省电模式,如表2所示。
表2 MSP430F1101A省电模式
ACLK为单片机的辅助时钟系统,是专为低功耗而设计的。它可以用一个32.768l(Hz的低功耗外部晶振进行配置,为系统提供一个稳定的时间基准和低功耗空闲操作,从而保证最佳的低功耗性能。所以由表2可知,LPM3模式完全符合设计要求。