摘要:本文概述了WSN解决方案,并详细描述了TSMP,以便为技术读者提供协议功能的全貌。
TSMP有五个关键组件,有助于端到端网络可靠性、简单安装和能效。
跳频
自动节点加入和网络形成
全冗余网状路由
安全信息传输
本白皮书提供了WSN解决方案的概览,并详细描述了TSMP,为技术读者提供了协议功能的全貌。
无线传感器网络(WSN)是一个术语,用来描述一类新兴的嵌入式通信产品,它在传感器、执行器和控制器之间提供冗余、容错的无线连接。部署无线传感器网络是为了访问以前由于物理或经济障碍而被认为无法访问的资产或工具。
根据字面定义,WSN是一个可以应用于任何无线连接的仪器(甚至是车库门开启器)的术语。在实践中,WSN标签用于描述提供优于传统点对点解决方案的性能的产品,特别是在容错、功耗和安装成本方面。
虽然无线在成本和灵活性方面具有明显的优势,但它也带来了许多挑战。具体来说,点对点或点对点通信链接是出了名的多变和不可预测。由于环境条件、新的障碍、意想不到的干扰和无数其他因素,今天牢固的联系明天可能会变弱。这些因素可以归结为三种主要的故障模式:射频干扰,物理环境的变化阻碍通信链路,以及单个节点的丢失。
阻塞路径:网络首次部署时,设备之间会根据当前射频环境和可用的邻居建立无线路径。与有线网络不同,这些变量经常变化;之后,路径可能会被新设备、重新定位的隔板、运输卡车或设备位置的微小变化所阻塞。确保网络生命周期的可靠性,而不仅仅是安装后的最初几周,需要以透明、自动的方式不断解决这些障碍。
节点丢失:节点丢失是无线传感器网络中需要考虑的重要问题。虽然由于半导体或硬件故障导致的节点故障很少见,但在网络的生命周期内,节点可能会被损坏、销毁或移除。此外,电源浪涌、停电或限电可能导致节点故障,除非它们有独立的电源。端到端可靠性需要网络智能,可以绕过任何单个节点的丢失。
这些问题中的任何一个都会导致点对点无线链路中断。然而,通过设计防止这些问题的网络体系结构,网络可以隔离单个故障点并消除或减轻其影响,从而允许网络作为一个整体在局部故障的情况下保持非常高的端到端可靠性。同样,设计良好的无线网络架构将透明地适应不断变化的环境,允许零接触维护的长期运行。
WSNs旨在通过应用自组织和自修复智能来不断适应不可预测的条件,从而克服这些挑战。WSN技术的目标是提供极高的可靠性和可预测性,而无需无线专家不断调整。
TSMP是一种媒体访问和网络协议,专为低功耗、低带宽的可靠网络而设计。目前的TSMP实现在IEEE802.15.4操作系统的2.4GHzISM频段和专有操作系统的900MHzISM频段上运行。表1显示了标准无线网络栈和OSI网络栈中的TSMP元素。
TSMP是一种基于数据包的协议,其中每次传输都包含一个数据包,当数据包被完整完整地接收到时,会生成确认(ack)。在多跳网络中传输数据包的机制是尽可能高效和可靠的。所有可靠性和效率的度量都是基于每个包的。
TSMP包由一个报头、一个有效载荷和一个拖尾组成。报文中包含了标识发送节点、定义目的、保证消息传输安全、提供可靠和高质量服务信息的字段。为了本文的目的,我们将讨论IEEE802.15.4ros上TSMP的实现。802.15.4标准规定最大数据包大小为127B,TSMP保留47B用于操作,剩下80B用于有效负载。有关TSMP包结构的完整描述,请参见附录a。
TSMP还定义了几种数据包类型。这些包类型在网络中启用特定的功能。一些数据包类型优先于其他类型;有些允许透明隧道,而另一些则要求在路由中的每一跳都进行数据包解析。
在接下来的章节中使用了几个不常见的术语,读者可能不熟悉。
TSMP节点:运行TSMP的无线设备TSMP网络:TSMP节点的网络路径:任何两个TSMP节点之间的双向单跳连接。可以把它看作是在两个节点之间画的一条线,表示连接性。链接:两个TSMP节点之间的直接通信通道。每个路径有多个链接。链路是有方向性的,可以从路径中添加/删除以增加/减少可用带宽。路线:连接源节点和目的节点的一系列路径。在网状网络中,一条路由通常由多个跳组成。父节点:比参考节点离目的地更近一跳的节点。父节点为子节点路由数据。子节点:比参考节点离目的地远一跳的节点。子节点将数据传递给父节点。网:为所有节点提供完全冗余路由的网络明星:在终端节点和中心路由器之间具有非冗余路由的网络
具有运行TSMP的嵌入式微处理器的无线设备称为TSMP节点。由路径相连的TSMP节点组成的网络称为TSMP网络。TSMP网络形成网状拓扑结构,其中数据通过路由从源(通常是传感器)传输到目的(通常是网关)。
在接下来的几页中,对TSMP的每个关键组成部分进行了详细的介绍。阅读本节后,技术读者应该对TSMP节点的工作原理和TSMP网络的行为有一个很好的了解。
TSMP由五个关键部分组成:
全冗余网格路由
在TSMP中,每个通信窗口称为一个时隙。一系列的时隙组成一个帧,在网络的生命周期内不断重复。帧长度按插槽计算,并且是一个可配置的参数——通过这种方式,为网络建立了一个特定的刷新率。帧长越短,刷新率越高,有效带宽越大,功耗越高。相反,较长的帧长度会降低刷新率,从而降低带宽并降低功耗。TSMP节点可以一次参与多个帧,从而有效地为不同的任务提供多个刷新率。槽和框架的概念如图1所示。
图1所示TSMP槽位和帧
克服射频挑战的另一种技术是直接序列扩频(DSSS)。DSSS提供了几个dB的编码增益,并在多径发现方面有一些改进。虽然是有益的,但面对频段内常见的干扰,包括Wi-Fi设备、双向无线通信系统甚至蓝牙,DSSS是不够的(见下图2)。应该注意的是,FHSS和DSSS的组合提供了干扰抑制(FHSS)和编码增益(DSSS)。
另一种克服干扰的技术是提高功率,有效地“调大音量”。虽然在802.15.4操作系统上调大音量通常是有效的,但是会消耗电池寿命,并且对于低功耗无线传感器网络来说不是一个理想的解决方案。
在加入网络后,TSMP节点(称为节点C)将发现可用的邻居,并与网络中已经存在的至少两个节点建立通信,将它们称为父节点a和父节点B(后面的部分将对此进行详细介绍)。在此过程中,节点C将从父节点a和父节点b接收同步信息和跳频序列。802.15.4标准在2.4000-2.4835MHzISM频段内指定了16个不同的频率通道,因此我们使用16作为我们的数字。跳频序列是所有可用信道的伪随机序列。例如,序列可以是:4、15、9、7、13、2、16、8、1等。节点C从每个父节点接收序列中不同的起始点,当新节点加入它时,它将依次为这个新的子节点提供不同的起始点。通过这种方式,每个成对连接确保在每个时隙内位于不同的信道上,从而可以在任何一个位置广泛使用可用频带。
图3节点A和B是节点C的父节点
在运行中,每个节点到节点的传输(例如C→A)与之前的传输频率不同。如果一个传输被阻塞,下一个传输将被发送到另一个父节点(C)→B)在不同的频率上。结果很简单,但在面对典型的射频干扰时具有极强的弹性。
与大多数通信机制一样,按比例增加不同通道的数量会增加系统的吞吐量。在TSMP的情况下,在802.15.4协议的基础上采用FHSS,可以有效地将带宽提高16倍。这是因为以不同频率通信的两对节点即使在范围内也不会相互干扰。相反,对于低数据速率应用,这意味着即使大部分频带被射频干扰阻塞,消息仍然会找到一个清晰的通道并通过。在任何一种情况下,FHSS的效果都是大大提高系统的可靠性。
例如,每秒60个时隙的802.15.4r操作系统上的TSMP实现提供:
16个通道×60个槽/秒=960个传输/秒
假设80b的有效载荷,有效总带宽为:
960传输/秒×80b/秒=76.8KB/秒
考虑到无线系统的可伸缩性主要取决于对媒体的访问,媒体访问协议越有效,网络的可伸缩性就越强。跳频时分多址协议是协调节点通信的一种非常有效的手段。已经证明,超过1,000个TSMP节点可以在相同的r/o空间中相互运行,而不会影响端到端可靠性。相比之下,使用基于碰撞的协议(如CSMA(CarrierSenseMultipleAccess))的节点密集网络经常会遇到cascng碰撞和网络故障。
TSM网络的一个关键属性是它的自组织能力。事实上,这是网状网络的主要原因之一。每个TSMP节点都具有发现邻居,测量射频信号强度,获取同步和跳频信息,然后与邻居建立路径和链路的智能。
为了本讨论的目的,重要的是要注意所有TSMP节点都是完全有能力的网状网络节点。在TSMP中没有简化函数、非路由传感器节点或结束节点的概念。每个TSMP节点都能够根据RF连接和/或网络性能要求路由来自邻居的流量。在安装的生命周期中,可能会出现这样的情况:节点作为终端节点加入,由于RF条件的变化而成为路由节点,然后返回到终端节点。这种类型的行为在网状网络中并不罕见,并且必须自动发生以提供长期的网络可靠性。
在本节中,我们将描述TSMP节点如何加入已建立的网络。一个已建立的网络只是一组共享网络ID和密码并相互同步的节点。网络通常由网关节点播种,网关节点充当定时主节点,并将配置信息转发给所有其他网络节点。
下面是一个简化的连接节点状态机:
听到邻居并锁定定时信息,然后只在每个时隙的开始侦听,以确定是否有要接收的消息,从而减少功耗。
报告邻居列表,包括RSSI。
选择一个邻居并发送一个连接请求。
收到邻居节点的激活命令,建立链路。
所有TSMP消息都经过加密,并包含一个网络ID。网络ID用于将节点绑定到一个网络中,允许多个TSMP网络在相同的空间中运行,而不会有共享数据或错误路由消息的风险。如果一个mote听到一个网络ID与自己的不匹配的节点,那么它将不会启动连接,而是继续不同步的侦听,直到听到正确的ID。还有一个用于加密消息的连接密钥。如果mote有错误的连接键,那么它的连接请求将不会被父节点接受,mote将超时,并恢复到不同步的侦听。
如前所述,所有TSMP节点都是路由器节点。这是星形或混合星形网格架构的根本进步。全网格拓扑结构是适应不断变化的条件的唯一方法。全网状或“平面”网络(没有更高或更低功能节点的概念)不依赖于专用路由器、基站或聚合器,也几乎不需要其他解决方案的无线专业知识和安装技能。没有必要进行调查、设计,然后最终过度建立点对点连接。当安装全网格时,所有连接的节点形成一个巨大的天线供其他连接节点使用。这允许极其快速和强大的安装。此外,如果已安装的网络需要扩展,只有全网状网络才能通过依赖边缘节点自动承担路由职责来优雅地容纳新节点。请注意,在某些应用程序(其中功率非常昂贵)中,可能希望终端节点保持为终端节点,并有选择地拒绝承担路由职责。TSMP通过可配置的设置支持这种类型的自定义。
图5:网络拓扑
每个TSMP节点维护自己的邻居列表。该邻居列表包括父节点和子节点。一个节点可以根据需要有尽可能多的父节点(这是一个可配置参数)。例如,一个特定的高值节点可能有四个父节点,以确保最大的可靠性。相反,具有小值的节点可能被配置为仅获取一个父节点以为其他流量保留带宽。
TSMP的全网格功能的关键使能器是路由器节点的有效占空比。因为路由器可以维持小于1%的占空比,所以它可以作为终端节点供电。这种设备奇偶性意味着安装和调试不需要考虑设备类型、电源等。
一旦链路建立,TSMP提供通信机制以确保可靠运行。如上所述,节点到节点的消息传输发生在一个频率上的一个时隙中。在一个时隙内发送消息,发送节点切换到接收模式并等待确认(ACK)。如果ACK在该时隙内未到达,则发送节点将在下一个可用时隙中重试。这通常是给另一个父母的,并且总是在不同的频率上。类似地,如果收到NACK(表示期望的数据包未正确接收的消息),则发送节点将在下一个可用的插槽上重试。nack有多种生成方式:无效校验和(FCS)、无效消息完整性码(MIC)或接收节点的消息队列已满。
每个发送节点跟踪丢失的ack和nack。如果大量的传输未被确认,发送方将认为路径无效,并与其邻居列表上的下一个可用节点发起通信。
安全消息传输有三个支柱:加密、身份验证和完整性。加密使消息所携带的信息不被其他方读取。身份验证确保发送方实际上是发送方。完整性确保消息的传递不受更改。TSMP为这些功能提供了机制。值得注意的是,跳频本身就提供了某种程度的安全性。由于每对节点维护的伪随机跳变序列,如果侦听接收器确实设法听到一个传输,那么它只有1/16的机会(对于802.15.4ros)听到下一个传输。
验证发送节点地址的32位消息完整性码(mic)也用于确保内容完整性。任何消息篡改都会使mic无效,并立即被接收节点识别。
图6TSMP包结构
PHY序言
PHY前导用于实现ros之间的射频同步,并定义IEEE802.15.4中规定的数据包长度。
MAC头
MAC报头包含按每跳发送数据包所需的字段,以及远程同步的定时信息。MAC报头包括:
当前跳的源地址和目的地址
网络标识符
同步和连接信息
净头
网络报头包含在TSMP网络中端到端传输数据包所必需的字段。NET头文件包括:
通信节点的源地址和目的地址
数据包的优先级
路由信息
应用负载
应用程序有效负载是数据包中大小可变的部分,其中包含命令和/或感知数据的实际有效负载。负载总是端到端使用128位密钥加密发送。
应用MIC-32
APPMIC-32是用于有效负载端到端身份验证的消息完整性代码。这个APPMIC确保数据包在从一个节点路由到另一个节点时不被篡改。
MACMIC-32
MAC-32是基于每跳使用的消息完整性码。该字段在发送之前由发送方重新计算。MACMIC可以防止非法报文注入网络,防止报文被错误识别。
FCS-16
每个数据包包含802.15.4中规定的FCS-16校验和字段。该字段确保损坏的数据包不会被通信节点处理。