无线传感器网络(Wireless Sensor Networks)概述

news2024/10/7 6:38:06

文章目录

  • Introduction
    • Sensor Mote Platforms
      • Low-End-Platforms
      • High-End-Platforms
    • WSN Architecture and Protocol Stack
  • WSN Design Considerations
    • Hardware Constraints
    • Fault Tolerance
    • Scalability
    • Production Cost
    • WSN Topology
    • Transmission Media
    • Power Consumption
      • Sensing
      • Data Processing
    • Communication
  • References


Introduction

得益于微机电系统(MEMS)、无线通信和数字电路的快速发展,设计小成本、小功率、小尺寸、多功能的无线传感器节点变得更为现实,技术也更加成熟。

WSNs 在我们的日常生活中应用非常广泛,例如各种各样的温度传感器、压力传感器等等。这些日常生活中的应用,都需要有非常高效的通信协议的支持。WSNs 含有大量的传感器节点,这些节点必须提供可靠的信息来传递给观察者。而且传感器节点不只是简单的传递原始数据,它会根据自己的处理能力对数据进行一些运算、处理,然后只传输必要的数据。这些特性都对通信协议的设计提出了很大挑战。

在 WSNs 的设计中,能量效率(energy efficiency)是非常关键的一环。传感器节点大多部署在无人区等恶劣环境,只有有限的能量资源。因此,和传统网络注重吞吐量和时延不同,WSN 协议则非常注重功耗节省(power conservation)

WSNs 的部署也是 WSN 协议需要着重考虑的因素。传感器节点的位置不需要预先确定,这使得我们能在一些地势险峻地带部署 WSNs。但这种随机性要求网络能自我规划(self-organizing),自动配置,这需要设计相应的通信协议。

还有一个要考虑的因素则是 WSNs 的密度。因为传感器节点的传输距离较短,大多数传感器节点都被高密度地部署,相邻节点的距离可能非常接近。因此出现了多跳通信(multi-hop communication)来替代传统的单跳通信,这样可以降低功率损耗。单跳和多跳的示意图如下:很明显多跳网络中有节点作为中间节点来转发信息包。

在这里插入图片描述


Sensor Mote Platforms

下面给出 WSNs 的定义:

WSNs 可以被看作由一系列嵌入式系统构成,它们能够:

  • 通过传感器与环境进行交互
  • 在局部进行信息处理
  • 与其它节点进行无线通信

WSNs 的三个主要组成部分:

  • 无线模块(wireless modules,或者叫 motes):具有处理信息的能力且有可编程存储器(programmable memory),通常包括微控制器、收发器以及少量传感器。
  • 传感器板(sensor board):被安装在无线模块上,集成有多种类型的传感器。
  • 程序设计板(programming board):提供多种接口,包括以太网、WiFi、USB。

我们将现有的 platforms 分为 low-end 和 high-end。

Low-End-Platforms

Low-End-Platforms 的处理、存储以及通信能力有限,这些节点通常搭载低功耗的微控制器和收发器,因此在 WSNs 中被大量部署来实现感知(sensing)功能。

High-End-Platforms

除了感知功能,WSNs 还有一些 Low-End-Platforms 无法高效实现的功能,例如网络管理,这需要更高的功耗以及存储能力,这就需要用到 High-End-Platforms 了,Low-End-Platforms 表示自己无能为力。


WSN Architecture and Protocol Stack

传感器节点通常散布在所谓的 sensor field。这些节点有收集数据和向 sink/gateway 以及终端用户路由数据的能力。数据通过多跳网络由 sink (汇聚节点) 路由回终端用户,而 sink 与终端用户之间的通信可以通过多种方式,如互联网、卫星或者无线网络等等。

在这里插入图片描述

在 WSNs 中,一个节点主要有两重功能:

  • data originators,信息的发起者,为了将信息包传到 sink
  • data routers,将数据信息路由给其它节点,作为中转站

所有传感器节点以及 sink 使用的协议栈如下图所示:除了我们熟悉的五层体系,还多了俩维度。

在这里插入图片描述
这里简要介绍一下,肯定没有计算机网络中介绍的全面。

  • Physical layer: 物理层负责调制、解调、传输、接收等技术;
  • Data link layer: 因为噪声环境以及传感器节点的流动性,数据链路层通过差错控制(error control technique)来保证可靠通信并通过 MAC 协议来减少节点之间的广播冲突;
  • Network layer: 网络层主要负责数据的路由;
  • Transport layer: 当网络应用有需求时,传输层帮助维持数据在网络中的流动;
  • Power management plane: 管理一个传感器节点如何使用能量。例如,在收到一个信息后,它可能会关闭节点的接收器来避免接收到重复的包。而且当节点干不动时,它会向邻居节点广播信息,告诉大家自己累 die 了,别给我发包了;
  • Mobility management plane: 检测并记录传感器节点的流动信息,这样每个节点一直都有自己邻居的信息,不会传串错门,可以更好的平衡功率和任务分配情况;
  • Task management plane: 对某个区域的感知任务进行分配、调度。如果不这样做,每个节点都是各自为战,有可能某个节点都快累死了,其他节点还从来没有干过活儿,因此需要它们团结合作,共享资源,提高效率,构建节点命运共同体,这样也活得更久。

后面的文章会逐渐介绍这些层的设计,但我们在计网中学习到的一些协议可能在 WSNs 中并不适用。因此我们接下来先介绍设计 WSNs 时必须要考虑的一些问题。


WSN Design Considerations

Hardware Constraints

一个传感器节点的主要硬件组成如下图所示:

在这里插入图片描述

主要有四部分,虚线中的成分不是必需的:

  • Sensing unit:通常包含几个传感器单元,来从真实世界获取信息。每个传感器单元负责收集特定类型的信息,张三负责温度,李四负责湿度。每个传感器单元又可分为两个子单元:传感器和 ADC。传感器基于监测到的信息会产生一个模拟信号,被 ADC 转换为数字信号号传入后面的处理单元。
  • Processing unit:起到大脑的作用,管理 Sensing unit 的探测活动,运行相关的算法,并与其它节点进行无线通信,商议赚取一个亿的小目标。
  • Transceiver unit:Processing unit 与其它节点进行无线通信是通过 transceiver 来实现的。Transceiver unit 在发端将比特流转换成 radio frequency (RF)波并在收端进行恢复。本质上来说,WSN 是靠这哥们儿来相互连接的,而且它消耗最多的能量,所以可以说是一个节点中最重要的部分。
  • Power unit:通常可以使用电池来提供能量,但使用其它能量源也是可以的。从图上也可以看出来,节点中的每个部件都由 Power unit 来驱动。但 Power unit 表示自己也是有上限的,这要求每个部件都要 energy-efficient。

可选组件:

  • Location finding system:很多传感器网络的功能都需要掌握节点的位置,例如 sensing 和 routing。Location finding system 配备有 GPS 模块,或者通过分布式计算来执行定位算法。
  • Mobiliser:为了完成指定的任务,对节点进行必要的移动,会耗费大量资源,要悠着点用。
  • Power generator:除了 Power unit 中通常用的电池,对于对续航能力要求比较高的任务,我们可以再额外加一个 Power generator。例如在一些户外场合,可能会用到太阳能电池板。

切回正题,这些硬件的设计有很大的限制因素。

首先是尺寸和重量。这些硬件要能够被集成到一个火柴盒大小的嵌入式系统上,且重量要足够轻,以便悬空应用。

还有许多其它限制:

  • 耗能要非常小
  • 在高密度下运行
  • 成本低
  • 自动化程度高
  • 适应环境

这其中又当属能耗(Energy Consumptions)最为重要。

在大部分应用场景下,替换节点中的电池都是不太现实的,电池以及整个网络的寿命都是很有限的,而通常一个 WSN 又需要运行很长时间,因此能量资源在 WSNs 中很宝贵。


Fault Tolerance

硬件的一些限制因素可能会使得一个节点频繁出错,没能量了,被驴踢了,或者软件出 bug 了,都有可能导致错误。这可能意味着这个节点就会暂时失去连接。但 WSN 是对关于某个特定物理现象的信息感兴趣,而不是对单个节点传来的信息。因此一个节点的错误应该不会对网络的整体运行有太大影响。

容错能力(Fault Tolerance)相当于一个阈值,如果错误程度没有超过这个阈值,那么网络可以正常运行。硬件和软件都会影响出错率,但由于硬件的选取尽可能压缩成本,所以绝大多数错误都是硬件原因导致的。而因为存储空间和处理能力的限制,软件可能会导致一个节点暂时宕机(不会损毁)。

部署环境也会影响网络的工作。室内环境相比室外环境,干扰就会相对少一些,错误也就少了。

还有种情况就是某个节点跑的太欢 (汽车上),不在无线电的覆盖范围之内了。

改善方法:

  • 添加冗余信息(redundancy)
  • 依靠广播范围中的多个节点。即使一个节点不干了,还可以找其它节点。

下图总结了增强容错能力的几种机制:

在这里插入图片描述

容错能力和传感器被部署的环境有很大关联:

  • 对于环境干扰较小的,传感器节点不容易损坏,且不会受到太大干扰,例如部署在家中检测湿度和温度的传感器节点,对错误也不那么敏感,我们也就看个大概,也不会去追求有多精确;
  • 但对于环境干扰较大的,例如在战场上,节点可能很容易损坏,且提供的数据那必须得精确再精确,本来地下埋着雷,结果你扫不出来~

因此我们必须要考虑传感器应用的场景,并设计相应的协议或者算法。


Scalability

尽管高密度地部署传感器节点可以提供冗余,提升网络的容错能力,但在一个区域中成百上千节点的堆积,会给网络的管理带来很大挑战。网络协议必须要能够高效地管理这些节点。


Production Cost

面对如此之多的节点,我们必须考虑每个节点的成本。通常来说,节点功能越丰富,成本自然也就越高。且我们之前也提到节点包含的各种硬件设施,这些会带来不少开销。理论上来说,每个节点的成本应控制在 1 美元以内。


WSN Topology

在高密度大面积部署节点的情况下,网络的拓扑结构很难维护和保持,而且如果节点部署在一些受环境干扰大的地方,经常出错,就更难了。

网络拓扑结构的动态变化很快,主要表现在以下三个阶段:

  • Pre-deployment and Deployment Phase:传感器节点可以一次性成堆放置(包装在宣传品中,从飞机上扔出去,监视战场),也可以由人或者机器人一个一个放置。因为传感器节点部署的密度很高,我们通常不会精心规划它们放置的位置,但在初始的部署阶段还是要尽可能做到以下几点:1. 减少安装成本;2. 消除预先组织和预先计划的需要;3. 灵活安排;4. 保证网络能 self-organization 以及一定的容错能力
  • Post-deployment Phase:在初始的部署完成之后,网络拓扑可能会因为环境条件而不断改变。例如,在移动 WSNs 中,网络拓扑可能会长时间改变。另外,节点之间的连接可能会受到噪声、障碍物以及信道堵塞的影响,这会在短时间内影响拓朴图。如果某个节点死掉了,那么拓扑会永久改变。对于某些特定应用,节点可能会在某一段时间关闭,这会造成拓朴图的周期性变化。因此,网络协议要能够处理这些不同类型的拓朴图改变。
  • Re-deployment Phase:如果网络的连接以及容错能力因为拓扑的变化而出现了很大问题,那我们可能需要部署额外的节点。这些新节点可以在任何时间部署来替换坏掉的节点或者去解决新的任务,而且还要想办法让新加入的节点被其他节点识别到。

Transmission Media

WSN 的成功运转离不开节点之间的可靠通信。在多跳通信中,节点通过无线介质构建的链路(links )来与彼此通信。无线电通信时,链路指基站和终端之间传播电磁波的路径空间。为了保证互操作性(interoperability)以及全局的顺利运转,选择的传播介质必须得是通用的,你有我有大家有。通常会选择 ISM 频段,因为这个频段的使用不需要许可证,大家都能用。

对于 WSNs 来说,它需要一个小尺寸、低成本、低功耗的收发器。且依据它的硬件限制以及考虑天线效率和功耗的平衡,收发器的载波频率最好选择超高频段(如 2.4 GHz)。

选择 ISM 频段的好处在于:

  • 免费
  • 频谱分配资源多
  • 全球可用
  • 不局限于特定标准
  • 施展更加自由

劣势:

  • 大家都能用,意味着干扰也会很严重
  • 而 WSN 作为低功率设备,通信很可能会被干扰而中断

WSN 中另一种节点间可能的通信方式是红外线(infrared)。红外通信也是免许可的,且对干扰有很强的鲁棒性。基于红外的收发器价格也很低廉,且容易制造。

红外通信可以用在恶劣的环境中,此时 RF 信号已经被衰减的很严重了,例如水下链路。

但红外通信的一个主要限制在于,收端和发端必须处在彼此的视距(line of sight)之中。因此 WSNs 中一般不会选择使用红外通信。

一些应用场景给传输介质提出了更高要求。例如,对于深海探测,我们需要长波来穿透水表面,而在干扰极大的地势或者战场,信道非常容易出错。传感器的天线高度和辐射能量很可能也达不到要求。因此,需要设计高效的编码和调制机制来对这些信道特性建模。


Power Consumption

提到 WSNs,功耗的考虑是必不可少的,我们前面也多次提到这方面的考量。一个节点的主要任务有:检测事件,执行局部运算、处理,将数据传输出去。因此功耗也可以相应的分为三部分:探测,数据处理和通信。

Sensing

Sensing 功率与特定的应用及传感器有本质联系。有些应用偶尔执行 sensing 的任务,肯定要比一直 sensing 的情况耗能多。且 Sensing 算法设计的复杂度对功耗影响也很大。

一般一个 ADC ( Sensing unit 中的组件,记得上面的硬件图!)损耗的功率取决于两个因素:

P ∝ F s ⋅ 2 b e P \propto F_s \cdot 2^{b_e} PFs2be

其中 2 b e 2^{b_e} 2be 表示有效比特数(effective number of bits,即传感器的分辨率),$F_s $ 表示采样率。

我们可以调整这两个参数来控制检测到的数据的准确度。

Data Processing

数据处理的功耗分析和 sensing 大致相同。但与数据通信相比,数据处理消耗的能量非常少。我们将一个 1 kb 的包传输 100 米消耗的能量可能相当于在一个微处理器中执行三百万条指令所消耗的能量。

Communication

我们前面提到过,在所有硬件成分中,收发器消耗的能量最多,因为通信主要就是通过收发器来实现的。当节点不需要收发数据时,我们可以将收发器跳到睡眠状态(sleep state),这样可以节省大量能量。

收和发大概消耗一样多的能量,但主要区别在于传输数据时会使用到放大器。一个简化的通信模型如下图所示:
在这里插入图片描述
消耗的能量为传输器和接收器能量之和:
E c = E t x ( k , d ) + E r x ( k ) E_c=E_{tx}(k, d) + E_{rx}(k) Ec=Etx(k,d)+Erx(k)


References

Wireless Sensor Networks, Ian F. Akyildiz, Mehmet Can Vuran. Chapter 1, 2 & 3.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编译原理11:LR分析、句柄、LR文法

LR分析法概述 句柄和规范归约 LR分析法 s:shitf 移进 r:reduce 规约 LR分析示例 LR文法 k越大,处理能力越强,但复杂度越高 会人工消除冲突,使得符合LR文法 小结

动态规划算法学习一:DP的重要知识点、矩阵连乘算法

文章目录前言一、矩阵连乘问题1、问题描述2、完全加括号3、问题分析4、最优子结构性质5、状态表示和递推方程6、自问题个数和求解顺序二、计算最优值示例1、问题描述2、计算最优值示例*****3、构造最优解4、算法实现三、基本要素-最优子结构四、基本要素-重叠子问题五、递归方法…

具有生物活性的天然产物——雷公藤

雷公藤为卫矛科雷公藤属植物,是我国一种资源比较丰富的传统中草药,迄今为止,已有超过 500 多种化合物从雷公藤中分离出来,包括萜类、生物碱类、黄酮类、木脂素类等。其结构多样的有效成分具有抗炎、抗感染、免疫抑制和抗肿瘤等作用…

腾讯云TRTC服务实现Web视频会议

腾讯云TRTC服务实现Web视频会议 背景 近期公司承接了某高校智慧校园的项目建设工作,其中在家校协作的板块中需要进行视频教学,以及线上屏幕共享,为了完成这一需求,我在自研与第三方服务的选择之间选择了第三方,主要因…

【交通标志识别】基于BP神经网络实现交通标志识别系统(含语音报警)附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

java在Windows配置Path环境变量

java在Windows配置Path环境变量 在命令行窗口输入java时,命令行提示’java’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 第一步:鼠标右键点击我的电脑,点击“属性” 第二步:点击“高级系统设置” 第三步&…

ProNas-振动噪声工程界新一代的前沿技术

作者:张工 随着汽车、船舶、高铁动车、轨道车辆、商用飞机、起重机械等交通运输工具和风电机组、家用电器、航天器等振动噪声。仿真模型的日益精细和庞大,现代噪声、振动及舒适性(NVH)仿真计算及验证领域面临着计算效益&#xf…

FL Studio21水果体验尝鲜版音乐宿主程序FL2023

FL Studio21从大家看来的音乐玩具,逐渐发展成相当严肃的DAW。如今,正被全球大量用户使用。它总是有着自己的方式,在工作流程和设计上,都不与竞争者相仿。 FL Studio是一款功能强大的虚拟音乐制作软件,通过它创作wav,MP3,MIDI,loo…

iOS多项选项卡TYTabPagerBar和分页控制器TYPagerController使用小结

最近做项目的时候,用到了顶部选项卡和底部分页控制器相关的功能。之前做的话都是自己手动封装,通过两个UIScrollView联动来实现。公司同事给推荐了一个封装好的库, TYPagerController,内部也是通过ScrollView的联动来实现的&…

微信小程序 java ssm电影迷爱好者交流平台

电影交流平台是基于java编程语言,mysql数据库,idea开发工具开发的后台,前端是微信小程序开发工具开发。本设计分为用户和管理员两个角色,其中用户可以登陆微信端,查看电影信息,查看电影分类,对电…

Inobitec DICOM Viewer Pro 2.8.0 Crack

Inobitec DICOM Viewer Pro 2.8.0扩大医生可见和可能的极限。通过为医疗行业提供优质的创新 IT 解决方案,我们可以为改善全球人民的健康做出很多贡献。 动态渐进版(每季度发布)扩展功能 高级 3D 重建 以 OBJ、STL、PLY 格式导出表面 先进的…

SpringBoot2.x 自动化生成代码整合Mybatis

前言 Mybatis 是一个持久层ORM框架,负责Java与数据库数据交互,也可以简易理解为中介,相对于它,还有个中介是hibernate,不过在mybatis中sql语句的灵活性,可优化性比较强,这也是现在大多数人选择的原因。 1. …

【快速学习系列】Mybatis缓存和使用SpringBoot开启MyBatis缓存+ehcache

【快速学习系列】Mybatis缓存和使用SpringBoot开启MyBatis缓存ehcache Mybatis缓存 MyBatis一级缓存 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一…

全员全域安全守护,蔚来ET7获Euro NCAP五星安全评级背后的硬核实力

2022年11月16日,蔚来智能电动旗舰轿车ET7 获得Euro NCAP(欧盟新车安全评鉴协会)五星安全评级,成为继ES8之后蔚来又一款获得欧洲五星安全评级的车型。ET7分别在乘客安全、儿童安全、弱势道路使用者安全、辅助安全得分91%、87%、73%…

两个事务并发写,能保证数据唯一吗?

哟,又是我小白。最近有点高产了。 连我自己都害怕了。 直接进入正题吧。 两个事务并发写,能保证数据唯一吗? 我先来解释下标题讲的是个啥。 我们假设有这么一个用户注册的场景。用户并发请求注册新用户。 你有一张数据库表,也就…

【数据可视化】第二章——基于matplotlib的数据可视化

目录系列课程学习目标1. 基于matplotlib的数据可视化2 matplotlib.pyplot函数库简介3 matplotlib.pyplot相关函数简介3.1 plt.plot(x, y, format_string, **kwargs)3.2 plt.title()3.3 plt.xlabel()/ylabel()3.4 plt.legend()3.5 pyplot的中文显示3.5.1 第一种方法3.5.2 第二种…

C#上位机系列(2)—常用控件的介绍:文本标签,按键,输入框

本文是讲解C#.net平台的Winform框架下的第二个内容,手把手介绍项目的创建方式以及一些写软件时常用的功能,讲解从零开始的每一个步骤。 本次介绍三个最常用控件的使用 1.文本控件Label 功能:显示一个文本 2.按键控件Button 功能&#x…

考研 | 组成原理【第二章】数据的表示和运算

考研 | 组成原理【第二章】数据的表示和运算 文章目录考研 | 组成原理【第二章】数据的表示和运算I. 数制与编码a. 进位计数制及其相互转换b. BCD码1. 8421码2. 余3码3. 2421码c. 无符号整数表示和运算1. 表示2. 运算d. 带符号整数的表示和运算1. 原码2. 反码3. 补码4. 移码5. …

多肽标签VSV-G Tag、YTDIEMNRLGK

VSV-G肽是一种源自水泡性口腔炎病毒糖蛋白的11个氨基酸的肽。编号: 191225 中文名称: 多肽标签VSV-G Tag 英文名: VSV-G Tag 英文同义词: VSV tag 单字母: H2N-YTDIEMNRLGK-OH 三字母: H2N-Tyr-Thr-Asp-Ile-Glu-Met-Asn-Arg-Leu-Gly-Lys-COOH 氨基酸个数: 11 分子式: C57H94N16…

【HMS Core】ScanPlus和Push推送库出现冲突该如何解决?

1、问题描述 项目中之前是同时集成了华为统一扫码服务SDK和华为推送SDK,这两天升级华为推送版本至6.3.0.304时发现这两个库出现了冲突, 这两个库的依赖版本情况如下所示: implementation com.huawei.hms:scanplus:2.7.0.301 implementatio…