基于无线传感器网络的海洋水环境监测系统的设计
2.2 节点Zigbee通信模块CC2420
本系统中无线传感器网络硬件中的Zigbee通信模块采用低功耗高性能的无线网络模块CC2420来实现,它工作在全球通用的2.4GHz频段。CC2420是一款符合IEEE802.15.4标准的射频收发器,性能稳定且功耗极低。CC2420的选择性和灵敏度指数超过IEEE802.15.4标准的要求,可确保短距离通信的有效性和可靠性,利用此芯片开发的无线通信设备支持数传速率高达250kb/s,可实现多点对多点的快速组网。 CC2420发送数据时,使用直接正交上变频。基带信号的同相分量和正交分量直接被DAC转换为模拟信号,通过低频滤波器,直接变频到设定的信道上,再由天线发射出去。
Zigbee通信模块CC2420与单片机的连接电路,如图3所示。本文引用地址:https://www.eepw.com.cn/article/162714.htm
CC2420只需要极少的外围电路,包括时钟电路、射频I/O匹配电路和微控制器接口电路三部分。芯片本振信号既可由外部有源晶体提供,也可以由内部电路提供。由内部电路提供时需要外加晶体振荡器和两个负载电容,电容的大小取决于晶体的频率及输入容抗等参数。例如当采用16MHz晶振时,其电容约为22pF。射频I/O匹配电路主要用来匹配芯片的输入/输出阻抗。CC2420与微处理器的连接非常方便,它使用SFD、FIFO、FIFOP、和CCA四个引脚表示收发数据的状态;微处理器通过SPI接口与CC2420交换数据、发送命令等。
CC2420收到物理帧的SFD字段后,会在SFD引脚输出高电平,直到接收完该帧。如果启动了地址辨识,在地址辨识失败后,SFD引脚立即转为输出低电平。FIFO和FIFOP引脚表示接收FIFO的缓存区状态,如果接收FIFO缓存区有数据,FIFO引脚输出高电平;当接收FIFO缓存区为空,FIFO引脚输出低电平;当FIFO引脚在接收FIFO缓存区的数据超过某个临界值时,或在CC2420接收到一个完整的帧以后输出高电平临界值时,可以通过CC2420的寄存器设置。CCA引脚在信道上有信号时输出高电平,它只在接收状态下有效,在CC2420进入接收状态至少8个符号周期后,才会在CCA引脚上输出有效的信道状态信息。
SPI接口由CSn、SI、SO和SCLK引脚组成,微处理器通过SPI接口访问CC2420内部寄存器和存储器。在访问过程中,CC2420是SPI接口的从设备,接收来自微处理器的时钟信号和片选信号并在微处理器的控制下执行输入/输出操作。SPI接口接收或者发送数据时,都与时钟下降沿对齐,CC2420与MSP430F149是通过SPI连接的,其中MSP430F149处于主模式,CC2420处于从模式。MSP430F149还有4个I/O口与CC2420相连,主要起查询CC2420状态的作用。
电源管理模块为传感器单元、处理器单元、无线通信模块提供能源,并对电源进行管理,以提高能量的利用率。
2.3 系统IEEE802.15.4工作模式
IEEE802.15.4规范中规定使用DSSS调制方式,CC2420中的调制和扩频功能框图如图4所示。
每个字节分为两组符号,4位一组,低位符号首先传送,对于多字节域,则是低位字节首先传送,但是,与安全有关的域先传送高位字节。每个符号映射为一个超过16位的伪随机序列,即32位片码序列。片码序列以2Mchip/s的速率传送,对于每个符号,首先传送低位片码。
调制方式为偏移正交相移键控,具有半个正弦的形状,相当于最小频移键控(MFSK)调制,每片的形状通过半个正弦波交替在同相和正交相位信道传送。
2.4 数据通信帧格式设置
同步头包括前导序列和开始帧分隔符,在CC2420中前导序列长度和开始帧分隔符是能设置的,默认值4字节和1字节,是符合IEEE.80 2.15.4协议的;物理头位为1字节,帧控制和序列号分别为2字节和1字节:地址和源地址共6字节,待发数据段长度为帧长度减去地址和帧校验序列。当MODEMCTRL0.AUTOCRC控制位置位时,这个帧校验序列自动产生2字节,并由CC2420硬件自动插入。
3 软件设计
本设计中,无线传感器网络是一个多路的自组织无线网络,可以实现自动组网,自动路由查询,自动数据采集与传输,软件设计上必须能够实现多跳自组织的功能。另外,传感器节点必须要求极低的功耗,而低功耗除了硬件设计上的低功耗外,更重要的是软件设计的低功耗。
此无线传感器网络终端在开机后首先进行自检,如果自检失败了,则进行硬件故障提示,而且自动关机。在自检通过后,进一步判断工作模式。传感器节点在自检通过后进入接入状态,如果接入失败则进入等待状态。处于等待状态的节点关闭射频收发器以节省功耗,当等待定时器溢出时,节点再次回到接入状态进行新的介入尝试。如果节点接入成功便转入业务状态。处于业务状态的节点,完成数据的采集与传输,对近节点数据的中继转发,新节点入网的介入确认等操作。节点为了实现低功耗,必须在业务状态(活动状态)与休眠状态之间轮换。
软件开发以IAR Embedded Workbench V2.10为平台,采用C语言编写。节点的MSP430系列单片机支持C语言程序设计。适用于MSP430系列的C语言与标准C语言兼容程度高,大大提高了软件开发的工作效率,增强了程序代码的可靠性、可读性和可移植性。软件编程的基本思想是:先对SPI、CC2420控制端口初始化,使能SPI、UART端口,使能ADC,开机后,就可以运行任务程序,实现接收或发送数据及命令了。
传感器节点、汇聚节点的工作流程如图5所示。
评论