无线传感器网络是一种由传感器节点构成的网络,能够实时地监测、感知和采集节点部署区内的观察者感兴趣的感知对象的各种信息,如光强等,并对这些信息进行处理,然后以无线的方式发送出去,通过无线网络最终发送给观察者,在军事侦察、环境监测、医疗护理、智能家居及工业生产控制等领域有着广阔的应用前景。无线传感器网络节点的传统结构主要由处理器单元、无线传输单元、传感器单元和电源模块单元4部分组成。具体应用不同,传感器节点的设计也不尽相同。节点的功能不同,主要是节点韵传感器单元在变化,传统的节点具有单一或较少的功能,为了感知更多的物理量,需要节点具有扩展性,来实现更多的功能,提出了无线传感器网络节点的分布式体系结构的设计。该设计借鉴了IEEE 1451.2标准的即插即用思想,使节点具有多智能体结构,各智能体之间用标准接口来进行通信,实现在一个节点下多个传感器模块共存,使节点具有多种功能;或直接更换传感器模块,无需新的设计,具备所需要的功能。
1 即插即用思想
IEEE 1451.2标准定义了智能变送器接口模模块STIM(Smart Transducer Interface Module),说明了它的硬件结构;提出了电子数据表单TEDS(Transducer Electronic Data Sheet)概念;定义了该类变送器的TEDS及其数据格式;定义了变送器与微处理器之间硬件独立的十线数字接口TII(Transducer Intelligent Interface)及其针脚定义、通信协议。如图1所示。
通过定义一个标准的智能传感器接口模块STIM、STIM和网络适配器之间的接口TII来统一网络化智能传感器基本结构,通过制定电子数据表格TEDS在软件上使不同传感器的即插即用成为可能,而接口间数据格式和通信协议的标准化使得数据处理简单化。IEEE 1451标准的核心之一就是TEDS,它存储于STIM的非易失性存储器中,它是实现传感器模块即插即用的基础。TEDS由若干字节组成,可以充分描述STIM和传感器的类型、行为和性能属性等,提供对传感器及执行器等模型的支持,具有自动识别传感器或执行器的能力。当STIM插入接口时,传感器的所有信息可以随时得到,从而实现即插即用。IEEE 1451.2标准列出了8种不同的TEDS。为节省存储空间,这里采用这两种必须的和终端用户说明TEDS。Meta-TEDS包含STIM制造商ID、版本信息、产品描述等信息;Channel-TEDS包含每个通道对象的上下限、物理单位、启动时间等信息,每个通道的这些数据以重复的格式存储在数据块中;End-Users Application Specific TEDS用来给最终用户定义所需要的特殊的信息。采用面向对象的方法,将TEDS设置为类的属性,读取和写入信息设置为类的方法。
具体的Meta-TEDS,Channel-TEDS和End-UsersApplication Specific TEDS均为TEDS的派生类,可以根据自身的需要定义属性和方法,用类的方法去读取、修改相应的属性,以实现传感器信息、通道信息等STIM相关信息的在线识别和配置。
2 分布式结构的设计原理
一个无线传感器网络节点的传统结构如图2所示。
数据采集模块用来进行外部传感器信号的接收、转换;数据处理和控制模块用来进行节点设备控制、任务调度、能量计算、功能协调等;通信模块用来进行节点之间的数据发送、频率选择等;电源模块专门为传感器节点提供必要的能量。随着无线传感器网络应用领域的不断扩大,迫切需要节点能够感知更多的物理量,这就需要对传感平台进行扩展,为此设计了无线传感器网络节点的分布式体系结构,它定义了统一、完整的外部接口,在需要添加新的硬件部件时可以在现有节点上直接添加,且不影响已有组件的工作,从而不需要开发新的节点。在不同的应用环境下,选择不同的组件自由配置系统,这样就不必为每个应用都开发一套全新的硬件系统。多智能体结构使节点各部分模块化,功能分散化和独立化,通信数据标准化,同时扩展能力更强。节点的分布式体系结构如图3所示。
整个系统由电源模块、无线通信模块、控制MCU和多个数据检测及处理模块组成。电源模块给各部分提供足够的能量。光线通信模块也含有单独的通信微处理器,可根据网络的需要选择合适的收发芯片,实现标准格式数据的收发和频率选择。比如Ember公司的EM250。数据检测和处理模块基本构成包括;传感器、电子数据表TEDS、微处理器和存储器。它可以连接单一的传感器或多个传感器,该模块和传感器的所有信息都将以电子数据表TEDS的形式存储在非易失的存储器中,将采集到的数据与这些信息结合,将数据打包成标准格式,使数据具有可识别特性。传感微处理器使用I2C接口来与控制MCU进行通信,接收来自控制MCU的任务,或发送采集得到的数据,整个模块可以在I2C接口上即插即用。选用MSP430F169单片机作为数据检测及处理模块的传感微处理器。 控制MCU负责和多个数据检测及处理模块进行通信,主要实现数据通信和寻址。也负责和无线通信模块通信,包括将采集得到的数据通过无线通信模块发送出去或接收其他节点发送过来的数据。控制MCU主要是控制和调度各模块的工作,其I2C地址是预先设定并已知的。在设计中,可采用MSP430F5438单片机作为主控MCU。使用I2C接口来连接控制MCU和多个数据检测及处理模块,彼此之间的连线,只有电源线、地线、时钟线和数据线4根线,可以实现触发、寻址和数据传输。这样的一个接口上可以挂接多个模块,支持多主工作,而且它们都是即插即用的。每个检测模块可以测量几种物理量,当实际需要实现多种功能时,可以挂接多个这样的模块来达到要求,实现节点的可扩展。
3 接口的数据格式
每个数据检测及处理模块只有挂接在I2C接口下时,才能获得电源。当检测模块插上去之后,首先检测模块将自己作为主机发送自己的I2C地址给控制MCU,这样控制MCU将知道挂接在总线接口上的每个检测模块的地址,当它需要与某个检测模块通信时,可以通过该地址进行寻址。检测模块同样可以对控制MCU发起中断。I2C协议允许总线上接入多个器件,并支持多主工作,由于I2C总线具有总线仲裁机制,所以总线永远只有一对主机和从机在进行通信,不会引起错乱。而且I2C总线的应答机制也可以保证进行稳定的数据传输。每个检测模块的传感微处理器的状态图如图4所示。
数据传输遵循I2C协议,其数据格式采用面向对象消息的方法,使用基本类的ID和实例ID来组成对象检测模块ID,分析数据时可以明白数据针对的是哪个检测模块。而控制MCU的类ID和实例ID均设置为0。具体的数据对象消息格式如图5所示。
字节0为除去自身外的整个对象消息的字节总数。一般该数值不超过255。当一个对象消息的长度超过255时,须将整个消息切耕成多个字节数小于255具有同样格式的子帧,字节1为帧协议位,用来说明子帧的情况。字节2,3为类的ID号,可以定义多个不同属性的基本类。字节4,5为具体对象即检测模块的ID号,可以在基本类上实现多种不同的对象,具有自身独特的属性和功能。字节6,7为功能命令,比如对某个通道进行采集。后面的字节为数据部分,比如采集得到的传感器数据和单位等。当数据部分的长度不是16位的倍数时,将在最后加一个字节去填补,使其长度为16位的倍数,但该字节的内容是毫无意义的,也不计入消息的长度中,只是为了方便数据的传送。具有对象消息格式的
数据可以在任何接口之间进行发送,由于数据包具有对象的具体ID,所以接收方能够知道数据包针对的对象。因此无论在控制MCU与传感微处理器之间是使用I2C接口,还是使用SPI接口,以及在主控MCU与无线通信模块的SPI接口之间,这样的数据格式都将能够很好的对数据进行处理。
4 结语
无线传感器网络节点的分布式体系结构设计改变了节点的传统结构,其软硬件实现了数据检测及处理模块的即插即用,并且在一个I2C接口下面,可以挂接多个这样的模块,支持多主工作,使得整个节点的功能更加完善。节点各个模块之间相互分工,彼此之间独立工作,通过标准接口进行通信,数据格式标准化,达到多智能体结构,实际应用中可以根据需求来进行自由配置,高效灵活地针对不同应用实现新的硬件系统,实现节点硬件平台的可扩展。