传感器网络的应用层技术

  传感器节点功能的根本目的是感知、探测与传感,传感器节点和在传感器网络的通信与组网技术合起来就构成了一个完整的传感器网络。但是针对具体的应用来说,还需要有应用层的基础性技术来支撑传感器网络完成任务,主要包括时间同步技术、定位技术、数据融合技术、能量管理技术。

1.时间同步技术

  首先我们要清楚为什么需要时间同步技术。举个例子,比如要测试小车的速度,可以设置2个传感器在公路上,根据这2个传感器的距离与小车经过这2个传感器的时间差可以计算出小车的速度。这个地方距离是固定的,误差主要体现在时间差,也就是说当小车经过第一个节点时第二个节点应该与第一个节点有相同的时间。除此之外还有许多复杂的应用需要多个传感器协调合作完成。现有网络的时间同步技术往往希望把时间误差缩小到极致,但是在传感器网络中由于电能限制很难完成很精确的时间同步技术,只需要在误差可接受范围就行。目前有一类比较成熟的传感器网络时间同步技术TPSN(Timing-sync Protocol for Sensor Networks),它仍然是采用分层的思想一步一步将时间同步给全网内所有节点。TPSN需要有一个根节点,这个根节点可以与外界获得通信得到外界的精确时间,它可以装配比如GPS这样的复杂硬件以及其他方面更好的配置。根节点在传感器网络中充当着时钟源的角色,我们将根节点划分为第0层。接下来会给一部分节点设置为第1层,另一部分设置为第2层,然后还可以划分第3或第4层,具体情况具体划分。这样TPSN将整个网络划分为层次结构。我们称划分层次为层次发现阶段,网络部署后根节点会广播级别发现分组包,级别发现分组包含发送节点的ID和级别,ID是每个节点的一个标识。根节点的邻居节点收到发现分组包后将自己的级别设置为数据包里的级别加1,这样就建立了第1级。第1级的节点继续广播新的发现分组包给它的邻居节点,注意这个地方一旦节点确定级别后就会忽略任何其它级别的发现分组。接下来是第二阶段称为同步阶段,现在根节点就开始广播时间同步分组。第1级节点收到同步分组包后各自分别等待一段随机时间,这段时间节点会与根节点交换同步消息以达到和根节点的同步。第二级节点侦听到第1级节点的交换消息后,等待一段时间也就是让第1级节点完成时间同步后,便开始和第1级节点进行消息交换完成同步。最后每个节点与层次结构中最靠近的上一级节点完成同步从而实现整个网络的同步。看文字可能看得有点晕,下面是我画的一个时间同步图。当然这些知识都是课本上的理论知识,不知道实际的开发或应用是什么样子的,也不知道实际通信会出现哪些问题。

传感器网络的应用层技术_第1张图片

  为了提高时间精度,TPSN协议会在MAC层消息发送出去前才给同步消息加上时间字段。TPSN协议的同步误差与跳数成距离成正比,很明显每一级节点与下一级节点之间存在一个时间误差,下一级节点与更下一级节点之间又会存在一个误差。TPSN协议实现全网范围内节点的时间同步,不过这样是一个短时间的同步,因为传感器网络受环境因素影响会动态变化,所以如果需要长时间同步的话可以周期性的广播。我感觉从中可以看到传感器网络中很常见的两个思想,一个是分离,将所有节点进行分层或分区域;还有一个是周期性。

2.定位技术

  传感器节点的定位重要性不言而喻,当传感器检测到信息时大部分是希望这个信息发生在什么地方。先来看2个概念,传感器节点可分为锚点和未知节点,锚点有时也称为信标节点,它在网络节点中所占的比例很小,可以配置GPS定位来获得自身的精确位置。锚点是其他未知节点实现定位的参考点;第二个概念是我们一直说邻居节点,它指的是传感器节点通信半径范围以内的所有其他节点。在无线局域网定位中是以AP作为已知坐标的参考点,移动终端接收来自AP的探测信息并根据这个信号的强度推测出距离。而且还要清楚传感器网络其实还是很苦逼的,它们所处的环境具有很多不确定性,而且还要一个最头疼的问题是电能,因此关于传感器网络的相关技术都要求低功耗、容错性好能够自动纠正错误、克服外界的干扰因素。在这些基础上对于定位系统需要考虑的有2点,一点是定位的精确度,一点是良好的刷新速度。传感器网络定位技术主要分为基于测距的定位技术与无需测距的定位技术,下面分别进行介绍。

  基于测距的定位技术是通过测量节点之间的距离,然后在多条距离的基础上经过数学计算得到节点所在的位置。测量距离可以通过RSSI或ToA/TDoA获得。RSSI指的是接收信号强度指示,通过测量接收射频信号的能量高低来判断与发送节点之间的距离,但是精度不会很高。ToA/TDoA指的是到达时间/到达时间差技术,ToA与TDoA这是2种不同的技术,但都是通过传输时间来估算两节点之间的距离,精度较高,不过由于无线信号传输速度快只要有一点时间误差就会造成很大的误差。ToA是已知传输速度与传输时间,根据这2个条件得到距离。TDoA则是同时发送两个不同速度的信号,根据这两种信号的传输速度以及到达的时间差得到距离。得到距离后有多边定位方法和Min-Max定位方法,多边定位就是得到多个锚点到一个目标节点的距离,有了距离后可以以锚点为圆心画圆,这些圆之间的交点便是目标节点了。多边定位解方程会有浮点运算,因此计算代价高。Min-Max定位则是根据锚点位置到目标节点的距离创建正方形而不是圆了,这些正方形相交后可以得到一个最小范围的矩形,取这个矩形的质心就可以了,这样比较简单但是定位精度没有多边定位高。

  无需测距定位技术是根据网络的连通性确定网络节点之间的跳数,通过给跳数设置一个大致距离然后用跳数乘以跳数距离就可以了。显然这种方式精度不高,不过它的优点是开销小比较节能。无需测距定位有2种算法,一种是质心算法,锚点会广播自己的坐标位置信息,这样当目标节点收到这些信息后会根据这些信息缩小为一个形状比较规则的多边形,然后以这个多边形中的锚点计算出质心,就是将所有x坐标相加然后取平均值,对y坐标也做同样的处理,然后就这么简单粗糙的得道目标节点的位置信息了。还有一种是DV-Hop算法,也不是很靠谱的一个算法。它会根据锚点与锚点之间的距离以及跳数计算出一个一个跳数的大概距离,然后再使用多边定位或Min-Max进行定位。

3.数据融合

  数据融合在传感器网络中非常重要,它的最本质作用有3点:节省网络的能量、提高精确度、提高收集数据的效率。传感器网络部署时往往是大量的投放传感器到目标区域,因为单个传感器监测能力有限故要使传感器达到一定的密度才能满足需求,这样会增强整个网络的健壮性以及准确性。可是缺点也显而易见,多个传感器节点可能会在某个区域比较集中而导致冗余。这个时候数据融合可以在中间节点进行转发时对数据进行去冗余,已经有实验表明传感器发送一个比特消耗的能量远远大于执行一条指令所消耗的能量,从而进行数据融合可将网络消耗降到最低,这就是节能的作用; 受到成本和体积的限制,节点的功能往往不会很强大,所以需要大量的节点来进行探测,当节点很多时如果所有信息最后放到汇聚节点进行总结由于会有很多数据是有大误差的,从而造成了最终结果的误差。如果在一个小型区域里进行融合,由于节点之间数据比较相近,因此对于有较大误差的数据可以直接删除从而提高精确度; 在内部进行数据融合的话,可以减少数据传输量、减轻网络拥塞、降低数据延迟,这样的话传感器节点可以花更多精力去采集数据从而提高数据收集效率。

  数据融合可分为无损失融合和有损失融合。无损失融合指的是所有细节都被保留只去掉冗余部分信息,它只是缩减了分组头部的长度和控制开销,具体的数据仍然不会改变。比如要实时的采集一个房间的温度信息,汇报节点收到多个数据后如果数据相同则只是选择时间最新的数据进行汇报,即只修改头部的时间信息,而数据不变。有损失融合指的是丢弃一些细节信息从而减少需要存储或传输的数据量,比如要得到一个房间的最低温度,可以对某一区域的汇报节点收到的数据取最小值,而其他数据则将丢弃。此外还有许多分类的方式这里就不介绍了。

4.能量管理

  传感器网络能源管理主要体现在传感器节点电源管理和节能通信协议2个方面。传感器节点通常有4个部分:处理器单元、无线传输单元、传感器单元、电源管理单元。传感器单元的能耗与应用的复杂度有关,不过它的能耗与无线传输单元相比还是很低的几乎可以忽略。处理器损耗和无线传输是需要考虑电源管理的部分,处理器部分主要是硬件方面的改进,我关心的是无线传输部分的损耗。无线传输部分包含整个传输过程,所以应该从各层协议开始就尽可能的降低能耗。传感器网络协议栈的核心部分是数据链路层和网络层。数据链路层控制相邻节点之间使用无线信道的方式,决定着节点的发送、接收、侦听、睡眠状态。其中采用侦听/睡眠机制可以很好的节能。网络层负责选择最佳的路由进行数据传输,转发数据需要消耗能量且随着通信距离的增大会导致能耗的急剧增高。而且当节点发送数据给另一个节点,采用短距离多跳的方式比长距离单跳消耗的能量更少,因此选择合适的路由非常非常重要。在应用层方面,由上面的介绍知道有数据融合进行节能。

你可能感兴趣的:(传感器网络的应用层技术)