目录
一 无线传感器网络简介
二 无线传感器网络体系结构
三 路由协议
四 MAC协议
五 拓扑控制
六 WSN定位技术
七 时间同步
八 协议标准
九 ZigBee硬件平台
十 NesC语言
十一 TinyOS操作系统
一 无线传感器网络简介
- 短距离无线通信特点:通信距离短,覆盖距离一般为10~200m。无线发射器的发射功率较低,发射功率一般小于100mW。工作频率多为免付费、免申请的全球通用的工业、科学、医疗频段。
- 短距离无线通信技术的概念:指集信息采集、信息传输、信息处理于一体的综合型智能信息系统,并且其传输距离限制在一个较短的范围内。
- 低成本、低功耗和对等通信是短距离无线通信技术的三个重要特征和优势。
- 常见的无线通信技术有IrDA技术、蓝牙技术、WIFI技术、RFID技术、UWB技术、Zigbee技术。
- 以数据传输为主要功能的无线网络技术称为无线数据网络。
- ALOHA协议是一种使用无线广播技术的分组交换计算机网络协议,也是最早最基本的无线数据通信协议。
- ALOHA协议分为纯ALOHA和时隙ALOHA两种。
- ALOHA技术的特点:原理非常简单,特别便于无线设备实现。
- 无线局域网是在各工作站和设备之间,不再使用通信电缆,而采用无线的通信方式连接的局域网。
- 无线局域网的传输媒体主要有两种:无线电波和红外线。
- 根据调制的方式不同,无线电波方式可分为扩展频谱方式和窄带调制方式。
- 扩展频谱方式是指用来传输信息的射频带宽远大于信息本身带宽的一种通信方式,它虽然牺牲了频带带宽,却提高了通信系统的抗干扰能力和安全性。
- 窄带调制方式是指数据基带信号的频谱不做任何扩展即被直接搬移到射频发射出去,与扩展频谱方式相比,窄带调制方式占用频带少,频带利用率高,但是通信可靠性较差。
- 红外线方式最大的有限是不受无线电干扰,且红外线的使用不受国家无线电管理委员会限制,但是红外线对非透明物体的透过性较差,传输距离受限。
- 无线个域网是一种与无线广域网、无线城域网、无线局域网并列但覆盖范围较小的无线网络,是为了实现活动半径小、业务类型丰富、面向特定群体、无线无缝的连接而提出的新兴无线通信网络技术。
- 无线自组织网络是一个由几十到上百个节点组成的、采用无线通信方式的、动态组的多跳的移动性对等网络。其目的是通过动态路由和移动管理技术传输具有服务质量要求的多媒体信息流。
- 无线传感器网络的主要组成部分是集成有传感器、数据处理单元和通信模块的节点,各节点通过协议自组成一个分布式网络,再将采集来的数据通过优化后经无线电波传输给信息处理中心。
- 传感器网络的特点:
- 大规模网络
- 自组织网络
- 多跳路由
- 动态性网络
- 以数据为中心的网络
- 兼容性应用的网络
- 传感器节点的限制
- 电源能量有限
- 通信能量有限
- 计算和存储能力有限
- 拓扑控制是无线传感器网络研究的核心技术之一。
- 传感器网络中的拓扑控制按照研究方向可分为:节点功率控制和层次型拓扑结构组织。
- 无线传感器网络最基本的安全机制:机密性、点到点的消息认证、完整性鉴别、新鲜性、认证广播和安全管理。
- 时间同步是需要协同工作的传感器网络系统的一个关键机制。
- 三个基本的时间同步机制:RBS、TINY/MINI-SYNC和TPSN。
- RBS机制是基于接收者-接收者的时钟同步一个节点广播时钟参考分组,广播域内的两个节点分别采用本地时钟记录参考分组的到达时间,通过交换记录时间来实现它们之间的时钟同步。
- TINY/MINI-SYNC是简单的轻量级的同步机制:假设节点的时钟漂移遵循线性变化,那么两个节点之间的时间偏移也是线性的,可通过减缓时标分组来估计两个节点之间最优匹配偏移量。
- TPSN采用层次结构实现整个网络节点的时间同步:所有节点按照层次结构进行逻辑分级,通过基于发送者-接收者的节点对方式,每个节点能够与上一级的某个节点进行同步,从而实现所有节点都与根节点的时间同步。
- 基于距离的定位机制:通过测量相邻节点间的实际距离或方位来确定未知节点的位置,通常采用测距、定位和修正等步骤实现。
- 根据测量节点间距离或方位时所用的方法,基于距离的定位分为基于TOA的定位、基于TDOA的定位、基于AOA的定位、基于RSSI的定位。
- 传感器网络的数据管理系统的结构主要有集中式、半分布式、分布式以及层次式结构,目前大多数研究工作集中在半分布式结构方面。
- 传感器网络中数据的存储采用网络外部存储、本地存储和以数据为中心的存储三种方式。
- 查询操作可以按照集中式、分布式或流水线式查询进行设计。
- IEEE 802.15.4标准设计的主要目标是:低功耗、低成本。
- 传感器节点两个突出的特点:并发性密集、传感器节点模块化程度很高。
- 应用层的作用:研究各种传感器网络应用系统的开发和多任务之间的协调。
- 无线传感器网络的应用:
- 军事应用
- 智能家居
- 环境监测
- 建筑物质量监控
- 医疗护理
- 其他方面应用
二 无线传感器网络体系结构
- 无线传感器网络是由大量的密集部署在监控区域的智能传感器节点构成的一种网络应用系统。
- 自组织网络拓扑结构传感器节点通过局部的数据采集、预处理以及节点间的数据交互来完成全局任务。
- 多跳、对等通信方式比传统的单跳、主从通信方式更适合在无线传感器网络中使用,由于每跳的距离较短,无线收发器可以在较低的能量级别上工作,另外,多跳通信方式可以有效地避免在长距离无线信号传播过程中遇到的信号衰减和干扰等各种问题。
- 无线传感器网络包括4类基本实体对象:目标、观测节点、传感节点和感知视场。
- 传感节点具有原始数据采集、本地信息处理、无线数据传输及与其他节点协同工作的能力,依据应用需求,还可能携带定位、能源补给或移动等模块。节点可采用飞行器撒播、火箭弹发射或人工埋置等方式部署。
- 目标是网络感兴趣的对象及其属性,有时特指某类信号源。
- 观测节点身份:观测节点有双重身份。一方面,在网内作为接收者和控制者,被授权监听和处理网络的事件消息和数据,可向传感器网络发布查询请求或派发任务;另一方面,面向网外作为中继和网关完成传感器网络与外部网络间信令和数据的转换,是连接传感器网络与其他网络的桥梁。
- 无线传感器网络系统通常包括:传感器节点、汇聚节点和管理节点。
- 汇聚节点:汇聚节点处理能力、存储能力和通信能力相对较强,它连接传感器网络和Internet等外部网络,实现两种协议栈之间的通信协议的转换,同时发布管理节点的监测任务,并把收集的数据转发到外部网络上。
- 管理节点:即用户节点,用户通过管理节点对传感器网络进行配置和管理,发布监测任务以及收集监测数据。
- 传感器节点的功能模块:
- 数据采集模块:它是硬件平台中真正与外部信号量接触的模块,一般包括传感器探头和变送系统两部分,负责对感知对象的信息进行采集和数据转换。
- 处理控制模块:它是无线传感器网络节点的核心,负责控制整个传感器节点的操作、存储与处理自身采集的数据以及其他节点发来的数据。
- 无线通信模块:用于传感器网络节点间的数据通信,负责与其他传感器节点进行无线通信、交换控制信息和收发采集数据。
- 能量供应模块:是整个无线传感器网络节点的基础模块,为传感器节点提供运行所需的能量,是节点正常顺利工作的保证。
- 无线传感器网络应用系统架构:管理和信息安全纵向贯穿于各个层次的技术架构,最底层是无线传感器网络基础设施层,逐渐向上展开的是应用支撑层、应用业务层、具体的应用领域——军事、环境、健康和商业等。
- 无线传感器网络中间件和平台软件体系结构主要分为4个层次:网络适配层、基础软件层、应用开发层和应用业务适配层。
- 无线传感器网络中间件和平台软件体系结构:
- 网络适配层:在网络适配层中,网络适配器是对无线传感器网络底层的封装。
- 基础软件层:基础软件层包含无线传感器网络各种中间件。这些中间件构成无线传感器网络平台软件的公共基础,并提高了高度的灵活性、模块化和可移植性。
- 网络中间件:完成无线传感器网络接入服务、网络生成服务、网络自愈合服务、网络连通性服务等。
- 配置中间件:完成无线传感器网络的各种配置工作,例如路由配置,拓扑结构的调整等。
- 功能中间件:完成无线传感器网络各种应用业务的共性功能,提供各种功能框架接口。
- 管理中间件:为无线传感器网络应用业务实现各种管理功能,例如目录服务、资源管理、能量管理、生命周期管理。
- 安全中间件:为无线传感器网络应用业务实现各种安全功能,例如安全管理、安全监控、安全审计。
- 无线传感器网络的协议栈包括物理层、数据链路层、网络层、传输层和应用层,还包括能量管理、移动管理和任务管理等平台。
- 无线传感器网络通信体系结构各层次功能:
- 物理层:负责数据传输的介质规范,规定了工作频段、工作温度、数据调制、信道编码、定时、同步等标准。
- 数据链路层:负责数据流的多路复用、数据帧检测、媒体介入和差错控制,以保证无线传感器网络中节点之间的连接。
- 网络层:负责路由发现、路由维护和路由选择,实现数据融合,使得传感器节点可以实现有效的相互通信。
- 传输控制层:负责数据流的传输控制,实现将传感器网络的数据提供给外部网络,是保证通信服务质量的重要部分。
- 应用层:包括一系列基于监测任务的应用层软件。
三 路由协议
- 路由协议的基本概念:无线传感器网络的路由协议设计是无线传感器自组网中的一个核心环节,路由协议负责将数据分组从源节点通过网络转发到目的节点,它主要包括寻找源节点和目的节点间的优化路径、并沿此优化路径正确转发数据包等两个方面的功能。
- 路由协议的固有特点:在WSN中,节点能量有限且一般没有能量补充,因此路由协议需以节约能源为主要目标,高效利用能量,延长网络寿命。
- 路由协议新的问题和挑战:
- 节点没有统一的标志
- 能量受限
- 面向特定应用
- 频繁变化的拓扑结构
- 容错性
- 可扩展性
- 连通性
- 数据融合
- 服务质量
- 安全机制
- 路由协议设计要求:
- 能量高效:传感器网络路由协议不仅要选择能量消耗小的消息传输路径,而且要从整个网络的角度考虑,选择能使整个网络能量均衡消耗的路由。传感器节点的资源有限,传感器的路由机制要能够简单而且高效的实现信息传输。
- 可扩展:在WSN中,检测区域范围或节点密度不同,都会造成网络规模大小不同,节点失败、新节点加入以及节点移动等,都会使得网络拓扑结构动态发生变化,这就要求路由机制具有可扩展性,能够适应网络结构的变化。
- 具有鲁棒性:能量用尽或环境因素造成的传感器网络节点的失败,周围环境影响无线链路的通信质量以及无线链路本身的缺点等,这些WSN的不可靠特性要求路由机制具有一定的容错能力。
- 快速收敛性:传感器网络的拓扑结构动态变化,节点能量和通信带宽等资源有限,因此要求路由机制能够快速收敛,以适应网络拓扑的动态变化,减少通信协议开销,提高消息传输的效率。
- 路由协议标准:WSN路由协议负责在sink点和其余节点间可靠地传输数据。
- 路由协议类型:
网络的拓扑结构 | 平面路由协议 |
层次路由协议 | |
数据传输的路径条数 | 单路径路由协议 |
多路径路由协议 | |
路由是否由源节点指定 | 基于源路径路由协议 |
非基于源路径路由协议 | |
路由建立是否与查询相关 | 查询驱动路由协议 |
非查询驱动路由协议 | |
节点是否编制、是否以地址标识目的地 | 基于地址路由协议 |
非基于地址路由协议 | |
是否以地理位置来标识目的地 | 基于地址路由协议 |
非基于地址路由协议 | |
路由建立时机与数据发送的先后关系 | 主动路由协议 |
按需路由协议 | |
混合路由协议 | |
路由选择是否考虑QoS约束 | 保证QoS路由协议 |
非保证QoS路由协议 | |
是否以数据类型来寻找路径 | 基于数据路由协议 |
非基于数据路由协议 |
- 平面路由简单,健壮性号,但建立、维护路由的开销大,数据传输跳数多,适合小规模网络。
- 层次路由扩展性好,适合大规模网络,但簇的维护开销大,且簇头是路由的关键节点,其失效将导致路由失败。
- Rumor协议:Rumor协议的优点是避免了大量扩散,显著节省能量,适用于数据传输量较小的情况,但如果网络拓扑结构频繁变动,则Rumor协议的性能会大幅下降,
- EAR协议:EAR协议是一个反应式路由协议,其主要目的是用于延长网络的生存时间。
- HREEMR协议:HREEMR协议利用多路径技术实现了能源有效的故障修复,并解决了DD协议为提高协议的健壮性,采用周期低速率扩散数据而带来的能源浪费问题。
- SMECN协议:SMECN协议是节点定位的路由协议,它是针对Ad hoc网络设计的MECN协议基础上进行改进的。该协议通过构建具有ME属性的子图来降低传输数据所消耗的能量,从而更好地满足了WSN对节能性的需求。
- GEM协议:GEM路由协议是一种适用于数据中心存储方式的基于位置的路由协议。其基本思想是建立一个虚拟极坐标系统,用来表示实际的网络拓扑结构。
- Flooding/Gossiping协议:在Flooding协议中,节点产生或收到数据后向所有邻节点广播,直到数据包过期或到达目的地。Gossiping协议是对Flooding协议的改进,节点将产生或收到的数据随机转发,而不是用广播。这种方式避免了以广播形式进行信息传播的能量消耗,节约能量,在一定程度上解决了信息的内爆问题,但增加了信息的数据传输平均时延,传输速度变慢,并且无法解决部分交叠现象和盲目利用资源问题。
- DD路由协议:DD协议是以数据为中心的路由算法,是一种基于查询的路由机制。整个过程分为兴趣扩散、梯度建立以及路径加强三个阶段。
- SPIN协议:SPIN路由算法是一种以数据为中心的自适应通信路由协议。节点仅广播采集数据的属性描述信息而不是数据本身,当有相应的请求时,才有目的地发送数据信息。其目标是通过使用节点间的协商制度和资源自适应机制,解决传统泛洪法存在的不足之处。
- SPIN协议中使用的三种消息类型:
- ADV,用于新数据广播。
- REQ,用于请求发送数据。
- DATA,包含了元数据头,传感器节点采集数据的数据包。
- SPIN协议的优缺点:
优点:元数据的传输耗能相对较少;只广播其他节点没有的数据,减少了能耗;不维护邻居节点信息,适应节点移动的情况。
缺点:健壮性差,会出现数据盲点,它的扩展受限,如果sink对网络中的多个事件感兴趣,sink周围的节点能量会很快耗尽,不适用于高密度节点分部的情况。
- SAR协议:SAR协议是第一个具有QoS的路由协议。该协议通过构建以sink的单跳邻居节点为根节点的多播树实现传感器节点到Sink的多跳路径。它的特点是路由决策不仅要考虑到每条路径的能源,还涉及到端到端的延迟需求和待发送数据包的优先级。
- 层次结构基本概念:将所有节点划分为若干簇,每个簇按照一定规则来选举一个簇头。各个节点采集的数据在簇头节点进行融合,再由簇头节点与sink节点进行通信。
- 层级机制的优点:
- 簇头融合了成员节点的数据之后再进行转发,减少了数据通信量,从而节省了网络能量。
- 成员节点大部分时间可以关闭通信模块,由簇头构成一个更上一层的连通网络来负责数据的长距离路由转发。这样既保证了原有覆盖范围内的数据通信,也在很大程度上节省了网络能量。
- 成员节点的功能比较简单,无须维护复杂的路由信息,这大大的减少了网络中路由控制信息的数量,减少了通信量。
- 分簇拓扑结构便于管理,有利于分布式算法的应用,可以对系统变化做出快速反应,具有较好的可扩展性,适合大规模网络。
- 与平面路由相比,更容易克服传感器节点移动带来的问题。
- 层级机制的缺点:簇头节点容易成为网络的瓶颈,因此要求路由算法具有一定的容错性;同时簇的负载均衡也是分布式成簇的一大挑战。
- LEACH协议基本思想: 通过等概率地随机循环选择簇头,将整个网络的能量负载平均分配到每个传感器节点,从而达到降低网络能量耗费、延长网络生命周期的目的。
- PEGASIS协议:PEGASIS协议要求每个节点都知道网络中其他节点的位置,通过贪婪算法选择最近的邻节点形成链。
- TEEN协议:TEEN协议根据数据传输模式的不同,通常可以简单地把WSN分为主动型和响应型两种类型。主动型WSN持续监测周围环境,并以恒定速率发送监测数据;而响应性WSN只是在被监测对象发生突变时才传送监测数据。
- GAF协议:GAF路由协议是基于位置信息的能量感知路由协议,其最初是应用在Ad hoc网络中,但对于很多传感器网络同样适用。协议的基本思想是将网络区域划分成很多小区,每个小区内的节点相互协作,一部分节点保持正常工作状态,完成数据收集和转发等任务;另一部分节点可以处于睡眠状态以节省能量,延长网络整体寿命。
缺点:每个节点都需要通过GPS得到自己的地理信息,这大大的增加了节点的成本和复杂度,不适用于很多场合。
- GEAR协议:GEAR协议是一种基于位置信息的能量感知路由,并将整体网络按地理区域划分成多个小区域。GEAR路由机制根据时间区域的地理位置信息,建立汇聚节点到事件区域的优化路径,避免了泛洪传播,从而减少了路由建立的开销。
- SPAN协议:SPAN协议是一种基于位置的路由协议,协议根据各个节点的地理位置,从中选取出一些协调点。协调点将组成一个骨干网;传感器节点将手机的信息沿着协调点组成的骨干网传送到sink点。
- 协调点的选取原则:如果两个邻居节点不能直接通信,并且通过现有的一个或者两个协调点依然无法连接通信,那么这个节点将成为协调点。
- SOP协议:SOP协议将网络中的节点分成两类,即传感器节点和路由节点。协议中的传感器节点是可以移动的,但路由节点不能移动。
四 MAC协议
- MAC研究现状:研究如何将节能策略引入传统自组网MAC协议,并避免对协议性能产生不利影响,以及如何使无业务节点最大可能进入休眠而避免能耗。
- MAC研究趋势:业务流的方向性、节点的不同转发角色、监测信息在时间和空间上的相关性以及监测信息冗余。针对应用需求或业务特点量身设计,或者与节能策略相结合,以进一步提高能量有效性或在多个其他特殊需求中权衡取舍逐渐成为MAC协议的研究趋势;
- MAC协议分类:
- 根据采用分布式控制还是集中控制,可分为分布式执行的协议和集中控制的协议。这类协议与网络的规模直接有关,在大规模网络中通常采用分布式的协议。
- 根据使用的信道数,可分为单信道、双信道和多信道。
- 根据信道的分配方式,可分为基于TDMA的时分复用固定模式、基于CSMA的随机竞争式和混合式三种。
- 根据接收节点的工作方式,可分为侦听、唤醒和调度三种。
- 影响WSN的MAC协议因素
- WSN的MAC协议设计主要问题
- 能量有效性
- 可扩展性
- 冲突避免
- 信道利用率
- 延迟
- 吞吐量
- 公平性
- 能耗因素分析
- 空闲侦听
- 消息碰撞
- 窃听
- 控制报文开销
- 发送失效
- 在控制节点之间的信道分配时,如果控制消息过多,也会消耗较多的网络能量
- 通信模式
- 广播模式:通常在由基站向整个网络节点发送消息时使用。
- 会聚模式:WSN中的节点在感知到兴趣的事件时,所有监测到事件的节点都把所感知的信息发送给信息中心。
- 本地通信:监测同一个事件的节点之间,在本地的相互通信。
- 多播模式:节点把信息发送给一组特定的节点。
- WSN的MAC协议设计主要问题
- MAC协议的特点
- 采用基于TDMA的接入方式
- 利用分群结构群首局部集中控制的机制
- 与多跳转发相关的资源分配策略
- 冗余相关数据的隐聚合
- 吞吐量:在给定的时间内发送端能够成功发送给接收端的数据量。
- C-TDMA协议将WSN的节点划分为4种状态:感应、转发、感应并转发、非活动。
- SMACS/EAR协议:SMACS协议主要用于静止的节点之间连接的建立,而对于静止节点与运动节点之间的通信,则需要通过EAR协议进行管理。其基本思想是,为每一对邻居节点分配一个特有频率进行数据传输,不同节点对间的频率互补干扰,从而避免同时传输的数据之间产生碰撞。
- S-MAC协议:S-MAC协议设计的主要目标是减少能量消耗,提供良好的可扩展性。
- S-MAC减少能耗的技术措施:
- 周期性侦听和休眠
- 消息分割和突发传输
- 避免接收不必要消息
- T-MAC协议:在保持周期侦听长度不变的情况下,根据通信流量动态调整节点活动时间,用突发方式发送消息,减少空闲侦听时间。
- PMAC协议的主要思想:用一串二进制字符来代表某一节点所处的模式,节点把各自的模式信息通告给其相邻节点,根据收到的邻居节点模式信息节点调整其睡眠与工作时间。
- LPL协议的主要思想:使每个发送节点知道邻居接收节点的具体抽样调度,从而缩短Preamble的长度。
- LMAC协议:通过在时间上把信道分成许多时隙,形成一个固定长度的帧结构。一个时隙包含一个业务控制时段和固定长度的数据时段。
- Z-MAC协议的主要特点:节点根据网络的信道竞争程度,自适应地调整信道的接入方式,以CSMA作为基本的接入方式,而利用TDMA解决竞争等级高的情况下节点间对信道的竞争。
- 节能研究策略:随着微电子机械技术的发展,低能、低成本、集成具有多信道或两个不同频率无线模块的收发器已经成为可能。合理地使用多个信道的资源,基于局部节点协作的方法,进行信道的动态分配,可以实现节能和改进网络性能。
- 跨层优化设计:WSN网络由于受到节点的资源限制,分层的协议栈已不适应能量、内存等节点资源的有效利用。将MAC层、物理层以及网络层的设计相结合,根据局部网络的拓扑信息,采用综合各层的设计方法,实现对节点工作模式的有效控制,减少控制开销,从而取得更好的网络性能。
- 应用特点和业务模式:WSN应用领域的广泛性和特殊性,意味着MAC协议的设计面临着各种各样与应用相关的业务特性和需求,这些正是刺激MAC协议研究不断发展的原动力。随着WSN研究的逐渐深入,不可能针对各种具体应用一一进行业务特性和需求的分析,有必要对传感器网络特殊的应用特点和业务模式进行深入分析和总结,抽象出通用的分析模型。
- 能量有效性和其他性能指标权衡:通常为解决作为研究核心的能量有效性问题,对WSN的MAC协议其他性能都进行了一定折中。随着各种具体应用的发展,WSN的应用需求不单是能量有效性的问题,还同时存在着对某个或某些指标作特别优化的需求。
- 安全问题:由于WSN具有无线传播、能量受限、分布式控制等特点,使其更加容易受到被动窃听、主动干扰、拒绝服务、剥夺休眠、伪造数据等各种形式的网络攻击,从而使安全问题成为WSN网络研究的一个重点。
五 拓扑控制
- 拓扑控制的重要性:
- 拓扑控制是一种重要的节能技术
- 拓扑控制保证覆盖质量和连通质量
- 拓扑控制能够降低通信干扰,提高MAC协议和路由协议的效率,为数据融合提供拓扑基础
- 拓扑控制能够提高网络的可靠性、可扩展性等其他性能
- 拓扑控制的发展和研究方向:功率控制和睡眠调度。
功率控制:为传感器节点选择合适的发射功率
睡眠调度:控制传感器节点在工作状态和睡眠状态之间的转换
- 静态节点、不可控部署:静态节点随机地部署到给定的区域。这是大部分拓扑控制研究所作的假设。对稀疏网络的功率控制和对密集网络的睡眠调度室两种主要的拓扑控制技术。
- 动态节点、不可控部署:这样的系统称为移动自组织网络。其挑战是无论独立自治的节点如何运动,都要保证网络的正常运转。功率控制是主要的拓扑控制技术。
- 静态节点、可控部署:节点通过人或机器人部署到固定的位置。拓扑控制主要是通过控制节点的位置来实现的,功率控制和睡眠调度虽然可以使用,但已经是次要的了。
- 动态节点。可控部署:在这类网络中,移动节点能够相互定位的。拓扑控制机制融入移动和定位策略中。因为移动是主要的能量消耗,所以节点间的能量高效通信不再是首要问题。因为移动节点的部署不太可能是密集的,所以睡眠调度也不重要。
- 拓扑控制要考虑的设计目标和相关概念:
- 覆盖:覆盖可以看成是对传感器网络服务质量的度量。在覆盖问题中,最重要的因素是网络对物理世界的感知能力。
- 连通:传感器网络一遍是大规模的,所以传感器节点感知到的数据一般要以多跳的方式传送到汇聚节点。
- 网络生命期:一般讲网络生命期定义为直到死亡节点的百分比低于某个阈值时的持续时间。
- 吞吐能力:通过功率控制减小发射半径和通过睡眠调度减小工作网络的规模,在节省能量的同时,可以在一定程度上提高网络的吞吐能力。
- 干扰和竞争:减小通信干扰、减少MAC层的竞争和延长网络的生命期基本上是一致的。功率控制可以调节发射范围,睡眠调度可以调节工作节点的数量。
- 网络延迟(功率控制和网络延时的关系):当网络负载较高时,低发射功率会带来较小的端到端延迟;而在低负载情况下,低发射功率会带来较大的端到端延迟。
- 拓扑性质:在设计拓扑控制方案时,往往退而追求良好的拓扑性质。除连通性之外,对称性、平面性、稀疏性、节点度的有界性、有限伸展性等,都是希望具有的拓扑性质。
- 功率控制型拓扑研究方向:
- 与路由协议结合的功率控制
- 基于节点度的功率控制
- 基于方向的功率控制
- 基于邻近图的功率控制
- 基于邻近图的功率控制算法的基本思想:设所有节点都使用最大发射功率发射时形成的拓扑图是G,按照一定的邻居判别条件求出该图的邻近图G’,每个节点以自己所邻接的最远节点来确定发射功率。
- 睡眠调度型拓扑研究方向:
- 非层次型网络的睡眠调度算法
- 层次型网络的睡眠调度算法
- 单位圆图UDG:假定网络中N个节点构成了二维平面中的节点集V,所有节点都以最大功率工作时所生产的拓扑结构称为单位圆图。
- 准规则单位圆图QUDG:假设V,R是两个空间平面的节点集,且V⊂R,设参数d∈[0,1],则对称的欧氏图(V,E)被称为以d为参数的准规则单位圆图。
- Gabriel图:在传输功率正比传输距离的平方时,GG是最节能的拓扑模型。
- 相关邻近图:RNG是有GG产生的,RNG稀疏程度和连通性均介于MST与GG之间,由于MST,且冲突干扰优于GG,易于用分布式算法构造。
- 最小生成树:MST是RNG的子图,其特征是连通但不形成回路,任意两个节点均可以相互通信。每个节点出现在树上,链路总长度最小。
- 概率分析法:在节点按照某种概率密度分布的情况下,计算使拓扑满足某些性质所需要的最小发射功率和最小邻节点个数。
- 计算几何法:以某些几何结构为基础构建网络拓扑结构,以,满足某些性质。
- 采用支配集的层次型网络:在网络中选出一些虚拟骨干节点组成虚拟骨干网,这些节点又称做支配集。
- 基于引导信号的功率控制:在建立初始的分簇结构之后,簇首在引导信号和数据通信中使用功率控制。如果基于这些引导信号,所有节点都加入了同一个簇,那么就可以使用引导信号功率控制来控制簇的成员。
- Adhoc网络设计算法:Ad hoc算法允许簇首通过功率控制来控制簇的大小,并且导出了一些具体的规则以尽可能延长网络的生存期。
- CLUSTERPOW的基本思想:简单的假设一组离散的发射功率值,在每个功率值处,簇都是独立形成的,而且对于每个功率值都有单独的路由表。如果用最小功率就能保证到达目的节点,那么就发送数据,一旦数据进入了包含节目的节点的最小功率簇后,功率值就会被降低。
六 WSN定位技术
- 节点定位是WSN的关键技术之一。
- WSN定位的基本概念:对于一组未知位置坐标的网络节点,依靠有限的位置已知的锚节点,通过测量未知节点至其余节点的距离或跳数,或者通过估计节点可能处于的区域范围,结合节点间交换的信息和锚节点的已知位置,来确定每个节点的位置。
- WSN定位评价指标:
- 定位精度
- 规模
- 锚节点密度
- 节点密度
- 容错性和自适应性
- 功耗
- 代价
- WSN定位基本术语:
- 邻居节点:传感器节点通信半径内的所有其他节点,也就是说,在一个节点通信半径内,可以与其直接通信的所有其他点。
- 跳数:两个节点之间间隔的跳段总数。
- 跳段距离:两个节点间隔的各跳段距离之和。
- 接收信号强度指示:节点接收到无线信号的强度大小。
- 到达时间:信号从一个节点传播到另一个节点所需要的时间。
- 到达时间差:两种具有不同传播速度的信号从一个节点传播到另一个节点所需要的时间之差。
- 达到角度:节点接收到的信号相对于自身轴线的角度。
- 视线关系:两个节点间没有障碍物间隔,能够直接通信。
- 非视线关系:两个节点之间存在障碍物。
- 基础设施:协助传感器节点定位的已知自身位置的固定设备。
- 测距类和非测距类:
- 测距类:利用测量得到的距离或角度信息来进行位置计算。
- 非测距类:利用节点的连通性和多跳路由信息交换等方法来估计节点间的距离或角度,并完成位置估计。
- 基于锚节点和非基于锚节点:
- 基于锚节点:各节点在定位过程结束后可以获得相对于某个全局坐标系的坐标。
- 非基于锚节点:只能产生相对坐标,在需要和某全局坐标系保持一致的时候可以通过引入少数几个锚节点和进行坐标变换的方式来完成。
- 递增式和并发式:
- 递增式:通常是从3-4个节点开始,然后根据未知节点与已经完成定位的节点之间的距离或角度等信息采用简单的三角法或局部最优策略逐步对未知节点进行位置估计。
- 并发式:节点以并行的方式同时开始计算位置。
- 集中式计算和分布式计算
- 集中式计算:把所需信息传送到某个中心节点,并在那里进行节点定位计算。
- 分布式计算:依赖节点间的信息交换和协调,由节点进行定位计算。
- 绝对定位和相对定位
- 绝对定位:定位结果是一个标准的坐标位置,如经纬度。
- 相对定位:以网络中部分节点为参考,建立整个网络的相对坐标系统。
- 到达角法 AOA:通过配备天线阵列或多个接收器来估测其他节点发射的无线信号的到达角度。
- 接收信号强度指示法 RSSI:接收机通过测量射频信号的能量来确定与发送机的距离。
不足:遮盖或折射会引起接收端产生严重的测量误差,因此精度较低。
- 到达时间法 TOA:通过测量信号的传输时间来估算两节点之间的距离,精度较高。
缺点:无线信号的传输速度快,时间测量上的很小误差可导致很大的距离误差值,另外要求传感器节点的计算能力较强。
- 到达时间法的两种测量方法:
- 一种用来测量信号传输时间的方法是测量信号单向传播时间。这种方法测量发送并到达接收方的绝对时间差,发送方和接收方的本地时间需精确同步。
- 一种是测量信号往返时间差,接收节点在收到信号后直接发回,发送节点测量收发的时间差,由于仅使用发送节点的时钟,因此避免节点间时间同步的要求。
- 达到时间差发:测量不同的接收节点接收到同一个发射信号的时间差。
- 极大似然估计法:
- Active Badge定位系统:最早为大楼内定位而设计的便携式定位系统,采用红外光。
- Active Office:采用超声波定位。
- SPA相对定位:选择网络中密度最大处的一组节点作为建立网络全局坐标系统的参考点,并在其中选择连通度最大的一个节点作为坐标系统的原点。首先根据节点间的测距结果对各个节点建立局部坐标系统,通过节点间的信息交换与相互协调,以参考点为基准通过坐标变换建立全局坐标系统。
- APIT 近似三角形内点测试法:APIT算法是一种适用于大规模无线传感器网络的分布式无需测距的定位算法,利用了电磁波强度大小与距离的相对关系,相比其他无需测距定位算法有着定位精度高、对节点密度要求低、通信量小等优点,且适用于电磁波不规则模型。
- DV-Hop定位算法步骤:首先使用典型的距离矢量交换协议,使网络中所有节点获得锚节点的跳数。第二阶段,在获得其他锚节点位置和彼此的相隔跳距之后,锚节点计算网络平均每跳距离,然后将其作为一个校正值广播至网络中。
缺点:仅在各向同性的密集网络中,利用校正值才能合理地估算平均每跳距离。
- DV-Distance定位算法:相邻节点使用RSSI测量节点间点到点距离,然后利用类似于距离矢量路由的方法传播与锚节点的累计距离。
- 定位算法设计的注意问题:
- 未知节点必须与锚节点直接相邻,锚节点密度过高。
- 定位精度依赖于网络部署条件。
- 没有对距离/角度测量误差采取抑制措施,造成误差传播和误差累积,定位精度依赖于距离/角度测量的精度。
- 依靠循环求精过程抑制测距误差和提高定位精度。虽然循环求精过程可以明显地减小测距误差的影响,但不仅产生了大量的通信和计算开销,而且因无法预估循环的次数而增加了算法的不确定性。
- 算法收敛速度较慢。
七 时间同步
- 时间同步的意义和作用:不同的节点都有自己的本地时间,由于不同节点的晶体振荡器频率存在偏差,以及受温度变化和电磁波干扰等影响,即使在某个时刻所有的节点都达到时间同步,它们的工作时间也会逐渐出现偏差,因此为了让WSN能协调地工作,必须进行节点间的时间同步。
- 算法设计的影响因素:
- 传感器节点需要彼此并行操作和协作去完成复杂的传感任务。
- 许多节能方案是利用时间同步来实现的。
- 消息传递过程分解:
- Send time:发送节点构造一条消息所需要的时间,包括内核协议处理和缓冲时间等,它取决于系统调用开销和处理器当前负载。
- Access Time:消息等待传输信道空闲所需时间,即从等待信道空闲到消息发送开始时的延迟,它取决于网络当前负载情况。
- Transmission Time:发送节点按位发送消息所需时间,该时间取决于消息长度和发送速率。
- Propagation Time:消息在两个节点之间传输介质中的传播时间,该时间主要取决于节点间的距离。
- Reception Time:接收节点按位接收消息并传递给MAC层所需的时间,这个过程和3相对应。
- Receive Time:接收节点重新组装消息并传递给上层应用所需的时间。
- 算法的性能指标:
- 能量效率
- 可扩展性
- 精确度
- 健壮性
- 寿命
- 有效范围
- 成本和尺寸
- 直接性
- RBS时间同步算法的原理和优缺点:
原理:利用无线链路层广播信道特点,一个节点发送广播消息,在同一个广播域的其他节点同时接收广播消息,并记录该点的时间戳。之后接收节点通过消息交换它们的时间戳,通过比较和计算达到时间同步。
优缺点:精度高,能广泛应用于商用硬件设备和无线传感器网络中已有的软件,不需要访问操作系统的底层。缺点是节点间必须交换含有时间信息的附加消息,复杂度高。
- TPSN算法:该算法分两步:分级和同步。
分级:目的是建立分级的拓扑网络,每个节点有个级别。只有一个节点定为零级,叫做根节点。
同步:i级节点与i-1级节点同步,最后所有的节点都与根节点同步,从而达到整个网络的时间同步。
- Tiny-Sync算法:该算法假设每个时钟能够与固定频率的振荡器近似,采用传统的双向消息设计来估计节点时钟间的相对漂移和相对偏移。
- LTS算法:该算法的目的是减小时间同步的复杂度,分为两种算法:集中式算法和多跳LTS算法。
- DMTS算法:在多跳网络中采用了层次型的分级结构来实现全网范围内的时间同步,它避免了冗余分组的传输,只接收级别比自己低的节点广播的分组。该协议能更好地支持与外部时间源及多个网络的同步,是一种基于广播时间的时间同步机制。
- FTSP算法:FTSP算法的目标是实现整个网络的时间同步并将误差控制在微秒级,它考虑了根节点的选择,根节点和子节点的失效所造成的拓扑变化以及对冗余信息的处理等方面的问题,同时它采用了线性回归算法可以提高同步精度,比较适合用于军事场合。
- 后同步思想:通常情况下节点不进行时间同步,只有检测到一个感兴趣的事件发生后,节点才进行时间同步。
八 协议标准
- IEEE 802.15.4标准(LR-WPAN网络):IEEE802.15.4网络是指在一个POS内使用相同无线信道并通过IEEE802.15.4标准相互通信的一组设备的集合。
- IEEE 802.15.4 拓扑结构:星型网络、点对点网络。
- IEEE 802.15.4 拓扑形成过程:
- 星型网络:星型网络以网络协调器为中心,所有设备只能与网络协调器进行通信,因此在星型网络的形成过程中,第一步就是建立网络协调器。
- 点对点网络:任意两个设备只要能够彼此收到对方的无线信号,就可以进行直接通信,不需要其他设备的转发。
- IEEE802.11标准:主要用于无法布线或移动环境中计算机的无线接入。
- IEEE802.15.1标准:IEEE802.15.1是一种蓝牙通信标准,主要应用于无线个域网,具有近距离通信、低能耗、低成本的特点。
- IEEE802.15.4标准:IEEE802.15.4是用于低速无线个域网LR-WPAN的物理层和媒体访问控制层的规范,是ZigBee、Wireless HART及MiWi规范的基础。旨在为无线个域网中的通信设备提供一种基本的底层网络,支持两种网络拓扑,即单跳星状和当通信线路距离超过10m时的多跳对等拓扑。
- IEEE 802.15.4a中采用的关键技术(调制方式):
- 多维度多存取技术
- 正弦脉波和Chirp脉波
- 调制技术对MDMA的作用
- Chirp扩频技术
- 多维度多存取技术
- IEEE802.15.4网络协议栈基于开放系统互联模型。
- MAC子层包括特定服务的聚合子层、链路控制子层等。
- 物理层:物理层定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务和物理层管理服务。物理层数据服务从无线物理信道上收发数据,物理层管理服务维护一个由物理层相关数据组成的数据库。
- 物理层数据服务包括以下5个方面的功能:
- 激活和休眠射频收发器
- 信道能量检测
- 检测和接收数据包的链路质量指示
- 空闲信道评估
- 收发数据
- OSI参考模型的数据链路层分为MAC和LLC两个子层。
- MAC子层使用物理层提供的服务实现设备之间的数据帧传输。
- LLC子层在MAC子层的基础上,在设备间提供面向连接和非连接的服务。
- MAC子层提供两种服务:
- MAC层数据服务:保证MAC协议数据单元在物理层数据服务中的正确收发;
- MAC层管理服务:维护一个存储MAC子层协议状态相关信息的数据库;
- MAC子层的主要功能:
- 协调器产生并发送信标帧,普通设备根据协调器的信标帧与协调器同步;
- 支持PAN网络的关联和取消关联操作;
- 支持无线信道通信安全;
- 使用CSMA-CA机制访问通道;
- 支持时槽保障机制;
- 支持不同设备的MAC层间可靠传输;
- PAN 网络解调器:除了直接参与应用以外,还要完成成员身份管理、链路状态信息管理以及分组转发等任务。
- ZigBee标准概要:ZigBee协议基于IEEE802.15.4标准,其目的是为了适用于低功耗,无线连接的监测和控制系统。ZigBee的应用定位是低速率、复杂网络、低功耗和低成本应用。
- ZigBee技术优势:
- 数据传输率低
- 功耗低
- 成本低
- 网络容量大
- 时延短
- 网络的自组织、自愈能力强,通信可靠
- 数据安全
- 工作频段灵活
- ZigBee消息格式和帧格式:
- 消息格式:一个ZigBee消息格式由127个字节组成,主要包括:MAC报头、NWK报头、APS报头、APS有效载荷;
- 帧格式:zigbee定义了两种帧格式:KVP关键值对、MSG消息帧;
- Zigbee的两类地址:64位的IEEE MAC地址、16位的网络地址。
- ZigBee寻址方式:单播和广播。
- ZigBee网络拓扑:星形、树状、网状。
- 星形:每个End Device节点只能和Co-ordinator节点进行通信。两个End Device节点之间通信必须通过Co-ordinator节点进行信息的转发。
缺点:节点之间的数据路由只有唯一的一条路径。
-
- 树形通信规则:
-
-
- 每一个节点都只能和它的父节点和子节点之间通信;
- 如果需要从一个节点向另一个节点发送数据,那么信息将沿着树的路径向上传递到最近的祖先节点然后再向下传递到目标亮点;
-
-
- 树形通信规则:
缺点:信息只有唯一的路由通道,另外信息的路由是由协议栈层处理的,整个路由过程对于应用层是完全透明的。
-
- 网状:Mesh拓扑包含一个Co-ordinator和一系列的Router和End Device。
九 ZigBee硬件平台
- CC2430/CC2431是一颗真正的片上系统CMOS解决方案。
- CC2430/CC2431的区别在于:CC2431有定位跟踪引擎,CC2430无定位跟踪引擎。
- CC2430/CC2431的主要特点如下:
- 高性能、低功耗的8051微控制器内核;
- 适应2.4Ghz IEEE 802.15.4的RF收发器;
- 极高的接收灵敏度和抗干扰能力;
- 32/64/128KB闪存;
- 8KB SRAM,具备在各种供电方式下的数据存储能力;
- 强大的DMA功能;
- 只需要极少的外接元件;
- 只需要一个晶体,即可满足组网需要;电流消耗小;
- 掉电方式下,电流只有0.9uA,外部中断或者实时控制器能唤醒系统;
- 挂起方式下,电流消耗小鱼0.6uA,外部中断能唤醒系统;
- 硬件支持避免冲突的载波侦听多路存取;
- 电源电压范围宽2V~3.6V;
- 支持数字化的接收信号强度指示器/链路质量指示器;
- 电池监视器和温度传感器;
- 具有8路输入的8~14位ADC;
- 高级加密标准协处理器;
- 两个支持多种串行通信协议的USART;
- 看门狗;
- 一个IEEE 802.5.4媒体存取控制定时器;
- 一个通用的16位和两个8位定时器;
- 支持硬件调试;
- 21个通用I/O引脚,其中两个具有20mA的电流吸收和电流供给能力;
- 提供强大、灵活的开发工具;
- 小尺寸QLP48封装,为7*7mm;
- 芯片功能结构:IO端口线引脚功能、电源线引脚功能、控制线引脚功能。
- CC2430/CC2431包含一个增强型工业标准的8位8051微控制器内核,运行时钟为32Mhz。
- 8051 CPU由4个不同的存储空间:
- 代码CODE:16位只读存储空间,用于程序存储;
- 数据DATA:8位可存取存储空间,可以直接或间接被单个的CPU指令访问。
- 外部数据XDATA:16位可存取存储空间,通常需要4~5个CPU指令周期来访问。
- 特殊功能寄存器SFR:7位可存取寄存器存储空间,可以被单个CPU指令访问。
- 特殊功能寄存器:R0~R7、程序状态字PSW、累加器A、寄存器B、堆栈指针SP。
- 程序状态字PSW:程序状态字显示CPU的运行状态,可以理解成为一个可位寻址的功能寄存器。程序状态字包括进位标志、辅助进位标志、寄存器组选择、溢出标志、奇偶标志等。
- 累加器A:主要用于数据累加以及数据移动。
- 寄存器B:主要功能是配合累加器A进行乘法或除法运算。
- 堆栈指针SP:在RAM中开辟某个区域用于重要数据的存储,但这个区域中的数据存取方式必须遵循从先进先出,或称后进先出的原则,不能随意存取。这块存储区称作堆栈。
- DMA控制器:用来减轻8051CPU内核传送数据时的负担,实现CC2430能够高效利用电源。
- CC2430/CC2431无线部分主要参数:
- 工作频带范围:2.4~2.4835GHz;
- 采用IEEE 802.15.4规范要求的直接序列扩频方式;
- 数据速率达250Kps,碎片速率达2Mchip/s;
- 采用O-QPSK调制方式;
- 高接收灵敏度;
- 抗邻频道干扰能力强;
- 内部集成有VCO,LNA,PA以及电源稳压器;
- 采用低电压供电;
- 输出功率编程可控;
- IEEE 802.15.4 MAC硬件可支持自动帧格式生产、同步插入与检测、10bit的CRC校验、电源检测、完全自动化MAC层保护;
- ZigBee物理层清除信道评估CCA的三种方法:超出阈值的能量、载波判断、带有超出阈值能量的载波判断。
- 直接序列扩频通信技术特点
- 抗干扰性强
- 隐蔽性好
- 易于实现码分多址
- 抗多径干扰
- 直扩通信速率高
- 直接序列扩频与窄带相比的优点
- 低功率频谱密度;
- 对其他系统没有干扰或干扰很小;
- 在所有情况下,都使用整个频谱;
- 随机码难以识别,保护用户隐私;
- 应用扩频技术,降低多径干扰;
- 解决同区使用的问题;
- CSMA/CA算法是用于节点间数据传输时的信道争用机制,此算法中有三个重要的参数,有每个要传送数据的设备去维护:NB、CW和BE。
十 NesC语言
- nesC的最大的特点:支持组件化编程模型,将组件化、模块化的思想和事件驱动的执行模型结合起来。
- nesC语言的设计目的:把组件化/模块化思想和基于事件驱动的执行模型结合起来,并利用该语言对TinyOS进行了重新编写。
- nesC语言组成:组件、接口和连接。
- 组件:nesC程序的基本单元。一个组件包括定义和实现两部分。组件分模块和配件两种。
模块:主要用C语言实现的组件规范,它是组件的功能实体,主要包括命令、事件、任务等具体实现。
配件:通过接口将不同组件连接起来,成为逻辑和功能的统一体。主要功能是用于组件的功能和相互间连接形式的描述。
-
- 接口:接口由组件提供和被组件使用的,具有双向性,它们是描述提供者组件与使用者组件之间的一个多功能交互渠道。
作用:进行功能描述。
-
- 连接:连接用来把定义的元素联系在一起,以完成相互之间的调用。
- nesC语言基本特点:
- nesC是C语言的一个扩展
- 整体程序分析
- 程序的结构机制和组合机制分离
- 通过一组接口说明组件行为
- 接口双向性
- 组件通过接口彼此静态地相连
- 设计nesC时,期待由“整体程序”编译器产生代码
- nesC的并发控制模型是基于任务和中断处理程序的
- 安装插件程序的步骤:
- 确认TinyOS系统和Eclipse已经安装好,可以同时运行;
- 下载TinyOS插件TinyOS Eclipcs Pulg vinversion 0.0.6;
- 将压缩包文件解压后放在Eclipse的插件目录plugins中;
- 将TingOS的解析外壳bash放到windows系统环境中;
- 启动Eclipse,即可在IDE中进行nesC程序开发;
十一 TinyOS操作系统
- TinyOS是依托美国国防部的“智能微尘”项目,于2002年开发的开源的构建化无线传感器网络操作系统。
- TinyOS是一个单线程、事件驱动的操作系统,其调度系统器按照不可抢占式的FIFO的调度策略运行。
- TinyOS的特点:
- 模块化设计,核心尺寸小;
- 组件化编程
- 事件驱动模式
- 任务和事件并发模式
- 分段执行
- 主动消息
- 基于可重用组件的体系结构,具有单一任务栈,内核非常简单
- TinyOS由一个调度器和一些组件组成。
- 组件由下到上可分为硬件抽象组件、综合硬件组件和高层软件组件。
- TinyOS中轻量线程实现
轻量线程在TinyOS以任务方式体现,系统运行时会不断地从任务队列中提取任务,完成任务后再提取下一任务,直到任务队列中没有任务。如果没有任务,系统进入节能状态。
TinyOS中轻量线程的实现:任务队列数据结构、TinyOS中任务调度机制。
- 主动消息机制:
- 主动消息模式:面向消息通信是早期应用在并行计算中的高性能通信模式,主动消息模式是其中一种模式。每个消息由一个应用层的句柄进行维护,当目标节点收到消息后,会将消息中的数据作为参数,传递给应用层的相应句柄进行处理。
- 非阻塞方式:当主动消息到达时,AM组件会将该事件分派给所有带有相关消息处理程序的组件。每个组件通常会主存一个或多个消息处理程序,消息处理程序的输入是由AM组件提供的运行时消息缓冲区的一个引用。
- 硬件抽象层:将底层与硬件相关的部分单独设计成硬件抽象层的思想。
优点:提高了程序的可移植性和简化程序开发,隐藏特定平台的硬件接口实现细节,为操作系统提供统一的虚拟硬件平台接口,使其具有硬件无关性,可在多种平台上进行移植。
- TinyOS的并发模型:TinyOS的并行处理是通过任务和中断处理事件来体现的。TinyOS采用分级调度机制实现对不同级别事件的处理:对于不紧迫的事件采用任务方式,通过排队进行处理,任务执行具有原子性;对于紧急的事件采用中断处理事件,由于中断处理程序具有竞争性和优先级,中断处理程序则可以中断任务执行,依据中断级别判断当前发生的中断是否可以终止正在处理的中断处理程序,因而可以实现对事件做出快速响应。
- TinyOS的组件通常可分为三种类型:
- 硬件抽象组件:将物理硬件映射到TinyOS组件模型。
- 合成组件:将数据以字节为单位与上层组件交互,以位为单位与下面的RFM模块交互。
- 高层次软件组件:完成控制、路由以及数据传输等。
- TinyOS的系统模型:
- 应用相关层:负责提供给用户一些基本的应用逻辑构件,即应用案例构件库。
- 系统相关层:是TinyOS的主体部分,负责提供给应用开发所需的系统构件和无线传感器节点正常运行的构件。具体包括:硬件抽象层构件、消息管理构件库、状态机构件库、内存管理构件库、任务调度构件库、时钟构件库、网络协议构件库。
- 硬件平台的相关层:是TinyOS的HAL以下的构件库,划分的目的是为了使开发的系统具有可移植性。具体包括:硬件平台配置构件库、设备驱动构件库、芯片构件库、电源管理构件库。
- 采用主动消息机制的主要目的:使无线传感器网络的节点的计算和通信重叠,让软件层的通信原语与无线传感器网络节点的硬件能力匹配,充分节省无线传感器网络节点的有限存储空间。
- 主动消息的三个最基本的通信机制:带确认信息的消息传递,有明确的消息地址,消息分发。
- 主动通信的缓存管理机制:每个应用程序在消息被释放后,能够返回一块未用的消息缓存,用于接收下一个即将到来的消息。
- 主动消息的显示确认消息机制:每次消息发送后,接收方都会发送一个同步的确认消息。在TinyOS主动消息层的最底层生产消息确认包,这样比在应用层生产确认消息包省开销,反馈时间短。
- Active Message的基本思想:让消息本身带有消息处理程序的地址和参数,消息到达目的地的节点后系统立即产生中断调用,并由中断处理机制启动消息处理程序。
- 基于Active Message的TinyOS通信类型:
- Beacon消息:该消息起源于槽节点,网络中的其他节点通过接收此消息建立从自己到槽节点的路由。
- Report消息:各节点通过此消息把采集到的环境数据发送至槽节点。
- Hello消息:用于各相邻节点之间交换信息。
- 事件驱动机制:事件直接或间接的由硬件中断产生,TinyOS接收到事件后,立即执行此事件对应的事件处理函数。
- 事件驱动分硬件事件驱动和软件事件驱动。
- TinyOS的调度策略:高优先级的硬件事件句柄以及使用FIFO调度的低优先级的轻量级线程。任务之间不允许互相抢占;而硬件事件句柄,即中断处理线程可以抢占用户的任务和低优先级的中断处理线程,保证硬件中断快速响应。
- TinyOS的并发模块:由任务和硬件事件句柄构成,采用任务和事件驱动相结合的两级并发模型。
- TinyOS的任务调度:采用先进先出的简单的策略,任务之间不允许互相抢占。
- TinyOS的中断处理程序具有比所有任务更高的优先级。
- TinyOS的任务队列:TinyOS具有一个长度为8个单元的环形任务队列,每个单元用于存储任务函数入口地址,两个指针FULL和FREE分别指向最早进入队列的任务单元和第一个为空的单元。
- TinyOS调度模型的特点:
- 任务单线程运行到结束,任务之间不能相互切换,只分配单个任务栈,这对内存受限的系统很有利,这样主要是为了适应内存资源十分有限的WSN节点。
- 没有进程管理的概念,对任务按简单的FIFO队列进行调度。对资源采取预先分配,且目前这个队列里最多只能有7个待运行的任务。
- TinyOS的调度策略是功耗敏感的,当任务队列为空时,则使处理器进入睡眠模式,保留外围设备运行,当外围设备发生中断,也即是产生了一个事件时,系统将被唤醒,对事件进行处理。
- 两级的调度结构可以实现有线执行少量与事件相关的处理,同时打断长时间运行的任务。
- 基于事件的调度策略,只需要少量空间就可获得并发性,并允许独立的组件共享单个执行任务上下文。同事件相关的任务集合可以很快被处理,不允许阻塞,具有高度并发性。
- 任务之间互相平等,没有优先级的概念。
- TinyOS的调度机制不足:节点上任务的多少取决于节点处理数据的方式。如果节点只是直接把原始数据发往基站,则任务大多数是通信路由任务;如果节点在本地采集数据并处理后才往基站发送,则本地任务比较多。当节点上待处理的任务超过其处理能力时,就会发生过载。当节点上中断发生频率很高,导致CPU除了进行中断处理外不执行其他任何任务时也会出现过载。当系统处理任务的速率低于任务发生的频率时,任务队列很快就满了,则会导致任务的丢失。