1 引言
无线传感网络广泛应用于军事侦察、环境监测、目标定位等领域。一般来说,无线传感网络节点的设计要求具有功耗低、成本低、寿命长等特点。本文以ATmega16AVR单片机为核心元件,以常见的315射频模块作为无线收发模块设计了一种无线传感网络节点。该系统充分利用了ATmega16单片机丰富的片上资源和315模块较好的抗干扰特性,并可在达到设计要求的前提下,有效地降低硬件成本,具有较高的实用价值。
2 无线传感网络节点系统结构
无线传感网络节点通常由4个子系统构成。
2.1 计算子系统
计算子系统通常是由一个微处理器和相应的通信协议、数据采集等程序组成。为了降低节点的功耗,要求微处理器以一种突发式的发送方案将采集到的数据发送出去,以便尽快转入低功耗模式,延长能量子系统的工作时问。
设计选用了Atmel公司推出的ATmega16型单片机。ATmega16是一款基于AVR RISC结构的高级Flash型8位CMOS单片机,其数据吞吐量高达1MI/s/MHz,能有效缓解系统在功耗和处理速度之间的矛盾。同时,ATmega16集成了丰富的片上资源:16 KB的可编程Flash、512字节EEPROM、l KBSRAM,满足了绝大多数应用程序的开发要求,其内部Flash可重复擦写次数在10 000次以上,极大地方便了产品开发和软件修改:8路10位具有可选差分输入级可编程增益的ADC可以外接多个不同种类的传感器件:支持6种睡眠模式,其中掉电模式和省电模式的耗电仅为lμA~2.5μA,可有效降低节点功耗;3个灵活的定时器/计数器(T/C)除具有常见的定时计数功能外,还具有输入脉冲捕捉、脉冲宽度调制输出功能:高度灵活的可编程串行US-ART可以完成与其他串行设备的通信。
2.2 通信子系统
通信子系统由一个无线收发器组成,用于节点之间的通信。当无线收发器处于空闲状态时,应将其关闭,以便降低节点功耗。
设计采用了常见的315无线收发模块作为长距离无线收发器(因收发频率为315 MHz而得名)。315无线发射模块电路,它是由声表谐振器(SAW)和高频三极管组成的三点式振荡电路。TXD输入引脚通过三极管Q2控制高频振荡器。当TXD为高电平时,02导通,高频振荡器起振;当TXD为低电平时,Q2截止,高频振荡器停振。将ATmegal6的OC0引脚与TXD连接,即可完成OC0输出数据的OOK调制发射。
315无线超再生式接收电路由选频电路、高频放大电路、超再生检波电路和低频放大电路组成。它具有电路简单、灵敏度高等优点。发送调制信号经过选频电路选频后,送人超再生检波电路解调.再由低频放大电路放大后由输出引脚输出高电平。若无信号收到,则输出低电平。由超再生检波电路的特性可知,超再生式接收模块在没有收到信号的几毫秒后输出大量白噪声,直到再次接收到信号。
315无线收发模块的最大传输距离可以达到700 m~800 m。它在星形混合传感网络设计中可作为远距离传输节点,可以直接同汇聚节点通信,避免了短距离无线传感节点同汇聚节点多跳式的通信方式。延长了传感器网络的寿命。同时它还具有成本低廉、接口简单、抗干扰能力强等优点,因而广泛应用在报警器、遥控器、工业数据采集系统中。
2.3 能量子系统
能量子系统通常是由电池组成。它在很大程度上决定了无线传感节点的寿命。降低无线传感节点的功耗是无线传感网络设计成功的一个关键因素。
3 基带脉冲带编码方案
315超再生式接收模块在没有收到信号的几毫秒后将产生白噪声,这一特性决定了基带脉冲编码方案不能采用非归零编码,否则在连续发送0的情况下,接收模块将输出白噪声。本文采用了一种类曼彻斯特编码。用占空比为50%的完整方波表示信息符号和特殊控制符号。以不同的方波周期区分信息位中的0和l,以及其他符号位。
当信号到达时,接收数据帧的第一位会受到接收模块产生的白噪声影响,为了消除白噪声,需在数据帧前加入一定数量的前导码。前导码的数量同无线传输环境和315模块元件参数有关。一般来说,十几个前导码就可以达到较好的接收效果。前导码后紧跟的起始位表示接收数据序列的开始。
4 软件设计
无线传感节点采用了AVRX嵌入式操作系统。AVRX是一款源码公开的、专门针对AVR系列单片机的嵌入式操作系统。虽然AVRX很难移植到其他微处理器上,但其自身占用程序空间小(包含所有功能的版本仅占用l 000字节),消耗SRAM少,有利于应用程序的开发。因此,设计中放弃了可移植性好,但自身对SRAM消耗大的μCOS-Ⅱ嵌入式操作系统。
4.1 发射子模块的软件设计
要将数据发送出去,首先要将数据符号和控制符号转变为可变脉宽的方波。其方法有三种:
(1)将PB3引脚作为通用输出引脚,利用AvrXDelay产生与脉宽相对应的延时,控制OC0产生可变脉宽的方波。这种方法的缺点是不能产生脉宽足够精确的方波,这是由于RTOS任务调度开销的不同所产生的。
(2)将PB3引脚作为通用输出引脚,利用编写的延时50μs的子程序实现。在延时子程序里关闭全局中断IE,停止AVRX的任务调度和ATmega16对中断的响应。这种方法可以产生脉宽精确的方波,但系统在发射数据期间不能处理其他事件,降低了系统的灵活性。
(3)利用T/C0的CTC模式产生脉冲,这时PB3引脚作为比较匹配输出引脚OC0。当T/C0工作在CTC模式下时,设置TCCR0中的COM01:0=l,则每当计数器的数值TCNTO=OCR0时,TCNT0清零,比较匹配中断标志置位,同时输出引脚OC0的逻辑电平自动翻转。在比较匹配中断中修改OCR0的数值,就可以产生脉宽精确的方波。这种方法利用硬件计数器产生延时,具有延时精确,占用系统资源少的优点。因此在设计中采用第三种方法。
4.2 接收子模块的软件设计
ASK调制的信号首先被315超再生接收模块转换为脉冲方波,从数据输出引脚引人到ATmega16的ICP引脚。将TCCR1B的ICES1置l后,每当一个电平上升沿到达引脚ICP时.T/C1的计数值将被拷贝到捕获寄存器ICR1并产生捕获中断。在捕获中断服务子程序里将相邻上升沿发生的时间相减即可得到符号周期T。实际上,由于捕获中断服务子程序在结束时总会将ICR1清零,因此中断发生时捕获的ICR1值就是相应的符号周期T。
315超再生接收模块在没有信号时会产生白噪声,不断地引发ICP中断,增加了系统的开销。设计中,接收模块没有一直处于工作状态,而是采取了休眠-监听-接收(如果有数据)-休眠的工作方式,以降低系统开销。
5 结束语
试验利用接入网络的PC机产生周围环境数据,通过有线网络和无线传感节点发送/接收数据。结果表明,采用ATmega16单片机和无线315通信模块设计的无线网络传感节点具有功耗低、传输距离远、抗干扰能力强等优点,是组建无线传感网络的一种较好的解决方案。
(邓伟)
参考文献:
[1].ATmega16datasheethttp://www.dzsc.com/datasheet/ATmega16_144718.html.
[2].PB3datasheethttp://www.dzsc.com/datasheet/PB3_1202138.html.