关键字: 无线传感器网络;射频芯片;微处理器;驱动
1 引言
无线传感器网是由部署在监测区域内大量的廉价微型传感器组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是协作地感知,采集和处理网络覆盖区域中感知对象的信息,并发送给观察者。随着微机电加工技术(MEMS)、自组织的无线网络技术和低功耗通讯技术的高速发展,无线微型传感器网络的研究将进入一个全新的领域。本文完成了基于微处理器的无线传感器节点整体的设计与实现。
2 硬件体系结构设计
无线传感器网络节点是一个微型的嵌入式系统,一般由传感器模块、处理器模块、无线通信模块和能量供应模块组成,如1所示。
图中的箭头代表数据的流向。传感器模块负责监测区域内信息的采集和数据转换;处理器模块负责控制整个传感器节点的操作,存储和处理本身采集的数据以及其他节点发来的数据;无线通信模块负责与其他节点进行无线通信,交换控制信息和收发采集数据;能量供应模块为传感器节点提供运行所需的能量,通常采用微型电池。
3.1 射频芯片CC2420和微处理器EM78815
CC2420是IEEE802.15.4标准的低成本、低功耗单片高集成度的解决方案。它工作在ISM免费频带上,工作频率为2.4GHz。ELAN公司生产的EM78815是一款采用RISC结构,低功耗,高速率的8位单片机。它的主频为3.5862MHz,具有64K程序ROM,最大支持128K程序ROM;256K×8片内数据ROM,最大支持2MKB;4K×8数据RAM;128个8位普通寄存器;56个双向、三态I/O口。此外,它还有2个8位和1个16位硬件定时/计数器;可编程看门狗定时器和片上震荡器;UART、SPI接口。EM78815有三种工作模式:活动模式、空闲模式、睡眠模式。模式转换图2所示。
3.2硬件接口
在本系统中,CC2420与EM78815的连接如图2所示。
图2 CC2420与EM78815微处理器的接口
CC2420通过简单的四线(SI、SO、SCLK、CSn)与SPI接口相连, CC2420是受控的。EM78815的SPI工作在主机模式,它是SPI数据传输的控制方,CC2420设为从机工作方式。
CC2420可以通过调制解调控制寄存器控制位配置成不同的发射和接收模式,CC2420通常工作在缓冲模式(模式0)。在缓冲发射模式(TX_MODE 0),用128字节TXFIFO缓冲器存放发送前的数据;在接收模式(RX_MODE 0),使用128字节的RXFIFO缓冲器存放接收到的数据。TXFIFO和RXFIFO缓冲器可以通过TXFIFO(0x3E)和RXFIFO(0x3F)寄存器访问。TXFIFO寄存器只能写入,当写入数据到TXFIFO寄存器时,SO引脚上输出每个新数据字节的状态字,在状态字节中有下溢标志,能检测TXFIFO缓冲器是否发生下溢。在每个寄存器TXFIFO写周期,有24位数据被发送到SI上,每帧数据的第1位置0为寄存器访问,第2位写时置为0,读时置为1,接着是6位地址位(A5:0),然后是16位数据位(D15:0);同样,从RXFIFO寄存器读出时,SI上传输地址位,SO上传输状态和数据位。当数据传递时,CSn引脚必须保持低电平。只有当CSn变高电平时,访问FIFO缓冲器结束。当没有字节写入TXFIFO缓冲器时,TXFIFO缓冲器发出一个下溢脉冲,发送自动停止。
3.3 传感器模块
无线传感器网络节点的数据采集部分可以根据不同的应用采用不同的传感器,比如温度、湿度、光、压力、烟雾等,本系统暂采用温度传感器MAX152。MAX152 A/D转换器是高速、微控制器兼容、8位模/数转换器。由于芯片采用半闪烁转换技术和低电源电压供电及三态输出,所以具有快速转换、功耗低和易与各类微控制器接口等优点。转换时间只需1.8us,转换速率为400×103次/s。
3.4 电源模块
本系统搭建之时,实验都是基于仿真板和FPGA板的,仿真板通过普通电源供电,而FPGA板通过5号电池供电,在以后的节点成品上,拟采用钮扣电池供电。
4 软件体系结构设计
如图3所示,无线传感器网络节点的软件由硬件驱动层、操作系统内核层和应用层组成。硬件驱动层提供了所有硬件设备的驱动,主要包括CC2420驱动、ADC模块驱动和串口驱动;操作系统内核层提供了简单高效的任务调度、内存管理、设备管理和无线通信协议栈。应用层主要是不同用户利用操作系统层提供的API编制相应的应用程序。
硬件驱动层主要是实现外围设备的功能,定义一些基本的接口函数,供上层使用。本系统的驱动层设计主要包括基于EM78815芯片主板的板级初始化、基于射频芯片收发模块的配置、ADC模块驱动,连接网关的sink节点还要求设计串口驱动。
1、板极初始化
板级初始化是在系统上电复位后完成的,板级初始化程序具有完全的硬件特性,一般采用汇编语言实现,主要是对寄存器和存储器的初始化。
2、ADC模块驱动设计
ADC模块中的传感器主要负责对周围环境中的感兴趣信息进行采样,通过模数转换送交给MCU进行处理。根据不同的应用采样频率会有所不同,结合定时器,隔一段时间对周围环境进行采样。设计比较简单,当要求采样的命令到来时,开启ADC模块,进行采样,采样完毕后,触发AD中断,MCU进行中断处理,并因为节能考虑而关闭ADC模块,直到下一次采样命令或者采样间隔的到来。
3、串口驱动设计
本系统中,串口主要职责是负责网关节点和与网关相连的sink节点之间的通信:负责把通过无线信道接收到的数据转发到网关节点,也负责转发网关节点发给下层节点的命令。
5 操作系统内核层设计
操作系统是无线传感器网络节点软件的灵魂,由于无线传感器网络的特殊性,导致无线传感器网络对操作系统的需求相对于传统操作系统有较大的差异。如果不在节点上设计操作系统,而是直接在硬件上设计应用程序,首先会导致面向无线传感器网络的应用难度加大,应用程序开发人员不得不直接面对硬件进行编程,无法得到像传统操作系统那样提供的丰富服务;而且软件的重用性很差,程序员的开发效率减低,开发成本增加。本无线传感器系统操作系统内核层主要包括任务调度、内存管理、中断管理、和无线通信接口。
5.1 任务调度
在传感器网络中,单个传感器节点的硬件资源有限,如果采用传统的进程调度方式,首先硬件就无法提供足够的支持;其次,由于传感器节点的并发操作可能比较频繁,而且并发执行流程又很短,这也使得传统的进程/线程调度无法适应。所以考虑采用比一般线程更为简单的轻量级线程技术和两层调度方式,可有效使用传感器节点的有限资源。在这种模式下,一般的轻量级线程(即任务)按照FIFS(先来先服务)方式进行调度,轻量级线程之间不允许抢占;而硬件处理线程,即中断处理线程可以打断用户的轻量级线程,对硬件中断进行快速响应。对于共享资源需要通过原子操作或同步原语进行访问保护。
5.2 中断管理
本系统的中断源有CC2420的SFD中断、FIFOP中断、ADC中断、timer中断、UART中断,暂时没用到软件中断。其中UART中断只在与网关节点相连的sink节点上需要得到处理.本系统采用一种称为多源中断的方案,也就是一个中断向量对应于多个中断源,只有惟一的一个中断向量,或者说只有一个中断服务子程序入口地址,也就只需要编写一个中断服务子程序,从而简化了硬件结构的设计,但是软件设计就复杂一些。在通过唯一一个中断向量进入中断之后,通过查询,确认是其中某个中断源发出的中断,再进入相应的中断处理程序进行处理。本系统采用软件查询的方式而不是硬件方式对不同中断源的优先级进行排序,把优先级较高的中断源放在查询程序的前面,如图4所示,查询的顺序依次是timer中断、SFD中断、FIFOP中断、ADC中断。
图4 中断查询流程图
5.3 内存管理
本系统中,因为应用相对比较简单并且任务数量可以静态确定,为了减少内存分配在时间上带来的不确定性,采用静态分配内存的方式。在系统启动前,所有的任务都获得了所需要的内存。EM78815的可用内存主要包括128字节的bank和4k字节DATARAM,中断、函数调用、任务调度需要用到内存时,固定由编译器从128字节分配。而当申请全局变量或者局部变量时,需要在语句前加上indir关键字,表明从4k的DATARAM中申请空间。
5.4 无线通信协议
本系统的物理层协议是基于IEEE802.15.4标准设计的。IEEE802.15.4网络是指在一个个人操作空间内使用相同无线信道并通过IEEE802.15.4标准相互通信的一组设备的集合,又名LR-WPAN网络。LR-WPAN网络是一种结构简单、成本低廉的无线通信网络,它使在低电能和低吞吐量的应用环境中使用无线连接成为可能。与WLAN相比,LR-WPAN网络只需很少的基础设施。IEEE802.15.4标准为LR-WPAN网络制定了物理层和MAC子层协议。
本文作者创新点:
本文设计和实现了整个无线传感器网络系统。本系统的特色和意义在于提出了适用于基于EM78815和CC2420的无线传感器网络节点的通信协议,并对其通信协议和操作系统调度算法进行了改进,使之更适合于现有硬件平台,从而能更好地保证节点间通信的成功率和正确性。
参考文献:
[1] 孙利民,李建中,陈渝.无线传感器.北京:清华大学出版社,2005,1-3
[2] 于海斌,曾鹏等,分布式无线传感器网络通信协议研究,通信学报,Vol.25(10),2004,102-110
[3] 于宏毅,肖秀明,无线移动自组织网,北京:人民邮电出版社,2005
[4] 蒋承延,吴思远,陈伟. 基于无线传感器网络的智能家居系统[J]. 微计算机信息, 2007, 5-1: 199-201