式中:系数d1、d2、c1、c2和c3可以查阅相关手册。

3.2无线数据通信

下面以节点间点对点通信为例,介绍无线传感器节点间通信实现方法及通信过程。CC1110的MAC帧结构简单,剔除物理层的前导码和同步字,只包含一个可选的长度字节n、一个可选的地址字节,用户数据和两个可选的CRC字节,如图5所示。

为了方便通信过程中的数据处理,软件上定义了如下数据收发处理结构:

其中,标志位flags占1个字节,用于表示当前数据帧的类型。flags字节中的flags字节的第0位为1时,表示目标节点在收到该数据帧后不要ACK;第1位为1时,表示目标节点在收到该数据帧后要ACK;第2位为1时表示该帧是ACK帧;第3位为1时,表示该帧是超时重传帧;最高位为1时,表示该帧是数据序列中的一帧。

接着阐述传感器节点的通信射频设置。节点工作时使用的晶振频率为26 MHz,RF初始化时,设置寄存器FREQ2、FREQ1和FREQ0,配置RF的物理层最低信道的工作频率;通过寄存器CHANNR的CHAN位域来设置通信信道;设置寄存器MDMCFG0的CHANSPC_M位域及寄存器MDMCFG1的CHANSPC_E位域来设置信道间隔。具体的载波频率fc可以用下式表示:

式中:fref为26 MHz,最大信道间隔为405 kHz。当然,可以通过TI公司的软件SmartRF Studio来计算这些寄存器设置值。

节点软件设计中通过DMA方式实现RF模块与Memory间数据访问,而不用CPU干预。DMA通道描述的数据结构如下:

以发送为例,阐述DMA的配置过程及每个结构体成员的意义。

在发送时,首先将数据的源地址SRCADDRH和SRCADDRL设为所要发送数据的起始地址,目标地址DESTADDRH和DESTADDRL设为寄存器RFD的地址。

然后,在LENH和LENL位域设置所要发送数据的长度,VLEN位域设为0;将WORDSIZE位域设为0,让DMA一次只传输1个字节;将TMODE位域设置为0(SINGLE模式,DMA的数据传送模式可分成4种),即表示数据传送过程中,一次DMA触发可进行一个WORDSIZE的传输。将TRIG位域配置为RF触发模式(DMA触发信号有31种);CSRCINC位域和DES-TINC位域分别用于设置数据源地址和目标地址的变化方式,可设为不变、增1、增2或减1。本例中数据源地址选择增1,而数据目标地址设置为不变(只有RFD寄存器);IRQMASK位域位用于设置在DMA数据传输完后是否发中断信号,本例设为禁止DMA中断;M8位域是按字节传输时的数据宽度,设为0表示8位传输,为1时表示只传输字节的低7位;将PRIORITY位域设置为低优先级。