XMesh无线网络架构设计与论述_第1页
XMesh无线网络架构设计与论述_第2页
XMesh无线网络架构设计与论述_第3页
XMesh无线网络架构设计与论述_第4页
XMesh无线网络架构设计与论述_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、XMesh开发详解第一章XMesh概述1.1mesh网络基础基于无线mesh网络结构的短距离、小范围网络已经发展到使用有效的能量方式来管理非计算机设备。自组织的mesh网络结构已经使能新的无线设备应用,包括战场上的传感监控;视频生产和运输中温度监控;及医疗设备用信号对病人的诊断。 无线传感网络可以在不同的方式被设计不同的地址优先级并。所有的无线mesh网络系统都有一些基本的应用要求:低功耗为了提供较长时间的操作,radio连接的能量的消耗必须被缩减,这样设备就可由轻的就像硬币大小的电池来供电较长时间。容易使用网络协议允许网络以一种高度的ad hoc、自组织方式来初始化自己。可扩展性网络必须能对

2、节点提供实时支持,并支持未来的增长而不会引起过载。Responsiveness协议发现和重发现必须有效,尤其是对移动的传感节点,比如在移动设备或无线传感中范围发射低能量的RF信号在一个短的距离内传输,可以被中转多次,这比起在一个长范围内传输高能量的信号来更加有效。使用协议构建中继网络,能支持多跳路由,这样,数据包就可以被中转从一个中继站到另外一个,当移动RF终端远离基站的时候。Bi-directional communication网关和传感器之间的通信是bi-directional,它能使基站传输信号来适当调节操作参数,此外,接收传感器数据。可靠性当数据的可靠性很重要时,它对很多应用来说变成

3、了一个关键性的设备,比如在医疗监控中。Small module form factor一个非常小的构成因素对网络模块来说是需要的,因为这样终端节点能适应内部或很容易的接到已存在的设备上。一个鲁棒性强的网络协议是为满足上述要求,以及那些在特别是mesh网络而设计得。网络协议提供支持的网络拓扑结构和管理路由数据通过网络。为了让应用从无线传感网络中受益,基本协议必须支持所有这些基本要求。1.2 拓扑 有几种结构可以用来实现无线传感网络的应用,包括星型、拓扑及星型拓扑混合的。每一种结构都有他自己的难点和优缺点。一个无线我网络包括以下这些组件: 终端节点传感和制动器一起来捕获数据。对ZiggBee网络,

4、这些通常指的是RFDs。RFDs不能向上、向下传送报文。XMesh-ELP Motes类似一个RFDs设备 路由扩大网络覆盖,路由绕过障碍物,并在网络拥塞或设备故障下提供主干路由备份。某些情况下,路由也能作为终端节点。路由也可以指ZigBee网络中的FFD设备。XMesh里的所有版本就像FFDs 网关统计网络中的数据,提供到主机、LAN或者因特网的接口,就像一个入口来管理网络性能和参数。 系统软件提供网络歇息来使能自组织、自处理的ad hoc网络。CrossbowXMesh网络在RFDs 和FFDs之间没有明显的差别,所以有整合传感的节点都可以向上、向下传送报文。拓扑指的是硬件的布局和数据如何

5、通过这样的布局。1.3 XMesh OverviewXMesh是一个由多跳、ad hoc、mesh网络协议构成的网络,由Crossbow公司开发。一个XMesh网络包含许多节点能无线地彼此间通信,也能将radio报文传递给基站,然后给PC或其他用户。多跳性有效地扩展了radio的通信范围并减小传输报文的能量需求。用这种方式多跳数据。节点不需要在一个raidio 的范围内直接相连通信。另外,如果2各节点之间有一个坏的radio连接,这个障碍可以通过周围路由来克服。典型地,节点运行在一个低能量的mode上,大多数时间处于睡眠状态,这样是为了延长多年的电池使用寿命。XMesh是一个软件库,它使用Ti

6、nyOS操作系统,并运行在嵌入式设备上,被称作Motes。Motes包含:1、Microprocessor (Atmel ATmega128 for MICA2, MICA2DOT and MICAz). ATmega128has 128K of flash memory, 4K of RAM, and 4K of EEPROM. (Atmel ATmega1281M9100, M2100 and M2110). ATmega1281 has 128K of flash memory, 8K of RAM4K of EEPROM.2. Radio: a MICA2 radio at 916/4

7、33 MHz or a M9100 radio at 916MHz, a MICAz /M2100/ M2110 radio at 2.4 GHz. 3. Serial Flash: External flash storage memory to support OTAP (over-the-air programming) and data logging. 4. UID: An integrated circuit that is programmed with a unique 64-bit identifier(for MICA2 and MICA2DOT)XMesh网络包含:1、

8、一或更多的 Motes 参与网络2、 一个基站节点。这是一个有XMeshBase应用程序的MICA2接口板。它管理网络并提供数据报文进入和离开mesh3、 PC,给桥和其他客户提供向mesh网络发送数据的图形化界面。XMesh提供一个mesh网络服务同时具有自组织和自处理功能。XMesh能把数据向上路由值基站或向下路由到单个节点。也可以在一个节点簇中任意广播。并使用QOS服务保障数据通信质量。XMesh有各种不同能量的节点构成包括HP、LP、ELP等。XMesh网络协议有许多选项包括:低功耗侦听、时间同步、节点睡眠、任意路由。所有Crossbow传感和数据获得板都可以为一个XMesh网路提供支

9、持。XMesh网络有如下结构: MICA2, MICA2DOT, and MICAz support Low power (typically less than 220 A average current (without sensor board) Network time synchronization to 1 msec. Low power listening with an 8 times per second wake-up interval, allowing for rapid message transfer across the network. The default

10、sampling period is 3 minutes, althoughmany other sampling intervalsXMesh的网络已经被广泛的测试过,不管在室内还是户外,在一个典型的室内测试中,节点每300平方英尺放置一个,能覆盖1万平方英尺内的设施。为了仿真较远距离间的通信,无线电的传输功率传输频率下降到-6dBm。在户外的测试中,节点以每10000平方米一个的分布传越几个崎岖不平英亩。关于许多发展的静态分析表明大于90%的范围在任何节点都会被收基站集到,无需使用端到端的确认机制。1.4XMesh网络概况一个无限网络设备由3个层级分明的软件组成:1、 节点层:XMesh的

11、所在地,是一个运行在传感节点簇的软件,来构成一个拓扑网络。XMesh软件提供网络算法以构建一个可靠地通信主干,它包含了mesh所能提供服务的所有的节点。2、 服务层:是一个总是处于可用状态的设施来处理来自无线网络的数据通信和缓冲,并为无线节点和因特网用户提供一个通道。XServer和 XOtap是服务层的应用可以运行在PC或Stargate上3、 用户层:为用户提供可视化软件和图形化接口来管理网络。Crossbow提供免费的客户端软件叫做MoteView,但是Xmesh也是一个客户软件接口。一个XMesh传感网络系统包含多跳的节点(MICAz)和一个基站单元(MICAz),这些被集成在一个MI

12、B520板上。基站提供的服务有2个目的:1、 作为节点层和拂去七层的网关。基站通过无线电和其他节点通信,通过端口和服务器通信。这样,基站在主机系统和其他的mesh网络上提供了一个发送和接收信息的桥梁。2、 他构成了了网络的一部分并且是数据从各节点直接传到他自身上。对网络上的其他节点来说,基站节点能无功耗的向PC主机发送信息。基站节点在一个本地系统中总是被标记为“node0”.另外,对于基站,mesh网络包含了一定数量的其他节点,每一个带有一个可识别的序号。这个节点系统可运行XMesh,自组织到一个网络,向上至基站,向下直接点路由信息。1.5XMesh结构和优点包括:TrueMesh;更多的传输

13、服务;更多的服务质量保证;更多的节点控制;健壮性检查;时间同步;空中编程TrueMeshTrueMesh技术指的是节点的这样一种能力,当由于无线电磁干扰或控制权的循环使用导致部分网络掉线时,它能动态地为传递数据包寻找新的途径。一个网络通过简单的节点间彼此互联的散射构建本地无线网络。基于一个特殊的无线网络环境,节点间可相互发现和构建一个路由树。因此,在XMesh网络中的节点真正可以是自组织和自处理的。1.5.2多传输服务XMesh提供多种传输服务协议在彼此的通信之间,他们是:上溯从一个node运输包至基站Mote下溯从基站到节点单跳只向邻近的节点传输包1.5.3 更多的质量服务保证XMesh可提

14、供更多的质量服务的模型,他们是:最好的努力通过链路层的确认,Mote将多次传送一个消息给他的直接邻居。可靠的传输提供端到端的确认,消息通过mesh传到基站,然后基站返回一个确认。1.5.4多功能Modes1 High PowerHP提供:TrueMesh 能力网络中的每一个节点能路由数据高带宽,低latencyMote 无线电总是上电的2 Low PowerLP提供:TrueMesh 能力网络中的每一个节点能路由数据高带宽,低latencyMote的频率通常停在一个低的睡眠状态,然后定期醒来检查无线频率的传输。3 扩展的低功耗:只供网络的终端节点使用节点不能路由数据使用星型网络的混合结构1.5

15、.5健壮性诊断在一个XMesh网络里,节点可以自动地传输健壮性信息给基站,这些信息包括节点在网络里的无线传输,电池电压及父节点的无线电信号强度指示(RSSI)。基站Mote将把这些健壮性的信息传递给Moteview和XSniffer来监控和诊断XMesh的健壮性。1.5.6时间同步XMesh-LP支持网络的全球时间同步到1毫秒,时间戳用来同步频率信息,但也用作用户传感器测量的同步1.5.7OTAPXMesh支持空中编程,它允许用户对网络的所有节点用新的代码进行重新编程。OTAP使用直接下载的策略将不同的代码影响下载到不同的Motes。这允许用户开发传感板并仅在感兴趣的单元上编程。OTAP也使用

16、一种promiscuous帧听模式。基站可以偷听到新节点的下载,并得知他们需要同样的影响,然后存储代码存储器中。(transmissions)第二章构建XMesh主要内容:XMesh的搭建环境搭建一个XMesh的应用开发和测试一个小型网络用二进制搭建应用获得Crossbiw CVS代码库2.1XMesh的搭建环境XMesh使用MoteWorks来编译和搭建,你必须有以下3个文件: MakeXbowlocal Makefile Mponent在构建任何应用时应根据需要在以上每一个文件中设置正确的参数2.1.1MakeXbowlocal这个MakeXbowlocal文件包含全

17、局参数,他对一个特别的安装包含了所有的应用。这个文件在/MoteWorks/apps中参数描述RADIO_CLASS这个参数定义了MICA2/MICADOT网络通信的频率。这个波特率由无线硬件设定,需要和board上的label相对应。可用的类对Mica2和Mica2Dot是916MHZ、433MHZ和315MHZRADIO_CHANNEL这个参数定义了操作的网络无线波段,每一个波特率有多种波段可供操作,用户应选择一个网络上不被其他无线设备使用的channel参看MICAz设置表RADIO_POWER这个参数定义了radio的powerjibieDEFAULT_LOCAL_GROUP本地组标记

18、了网络中每一个可通信的节点。群标号是一个供多网络在同一个波特率上操作的方式,并且通过群组号进行通信下表列出了MICAZ802.15.4频率的所有可用channels。USA/FCC&Canada注册机构总共分配了27个channels,Channels 11到26在2.4GHZ波特率上。2.1.2 Makefile这个文件包含特殊的参数。它定义的大多数高级别的服务,作为特殊的应用列在一张目标列表中。文件在/MoteWorks/apps/2.2构建一个XMesh的应用构建一个XMesh-HP的应用来说明构建一个多跳的网络。我们将要开发的这个应用是XMeshCountToLeds应用,在这个应用中

19、,每一个节点每秒增加它自己的数。并将值返回给基站供检测用。证明count应用在LEDs列出数值。需要:至少3各节点。Mote编程板,在你的PC和mote网络间编写和实现,MIB520通信,PC,CD.第三章硬件概述(略)第四章 XMesh 概述关于XMesh如何构建ad-hoc网络的概述41 XMesh功耗的概述Crossbow 传感网络能运行许多不同策略的功耗,每一种策略是一个在功能和数据率之间的交互,对于有持久功率的系统来说,XMesh-HP是最好的选择。这个提供了最好的保文速率,对于radio的典型波特率,对电池操作系统来讲,需要数月或数年的生命期XMesh-LP和XMesh-ELP是通

20、常使用的4.1.1XMesh-HP在这一模块,Mote radio和处理器是连续的提供能量。这一消耗在15到30mA之间,主要依赖于Mote的类型。Motes能在任何时候接受和传送报文。Route更新报文和健康信息被一一个很快的速率它将减少时间,在为一个新的mote加入到mesh里构建一个新的mesh4.1.2 XMesh-LP低功率的mesh能静态或动态地运行在任何时间,最好的功率效率通过Xmesh-LP到达。在这种模式下,所有的motes是在1mesc上是时间同步的。Motes一般是每秒唤醒8次,时间同步,对一个非常短的interval,去查看radio是否检测任何操作信号在有噪声的背景下

21、。如果是这样,radio正在保持接收信号,这一操作将导致当前80uA的。当前的总能量依赖于收到和传输的报文数量。当传输的数据在每3分钟这个通常的功率在一个有50个节点的网络。当前获得平均的传感器数据将会增加这个。XMesh-LP可被配置成很低的功耗通过减少活动时间和在一个很低的功率上传送。Route的最新的间隔也被设置在一个很低功率以维护电量。这也导致一个更长的mesh信息时间。4.1.3XMesh-ELPELP模型是仅为叶节点和运行着XMesh-HP的父节点通信时而使用。一个叶节点被定义为一个节点,它不能参与mesh,他也不能将信息从孩子结点转发到父节点。ELP版本结果是非常低的能量因为mo

22、te不需要使用时间同步活动的节点来检查radio报文。这个mote能睡眠很长的一段时间。这个模型里,mote维持了一张到邻居的的列表来记录它可选择的父节点。当他到达父节点的时候没有一个连接确认,它将寻找另一个父节点。这个会非常快的发生或者或一些时间,如果RF环境或mesh确认机制有了很大的变换。4.2构造多跳Mesh 网络构建和维持一个Mesh网络,下面的平行进程将被包含1. 一个节点首先在它邻居中侦听并用那些信息来更新一个邻居的列表,他检测通过一个序列号它是否能很好的侦听到一个邻居在一个多跳的首部,并运行一个EWMA算法来理顺那样的估计。 邻接表的大小是被一个宏定义,通常是16的来预置。如果

23、一个mote能听到16个邻居,它将从表中将质量最低的一个删除,基站mote的邻接表被设置成一个更大的值40来处理更多的邻居。因为基站通常不会运行一个会限制孩子mote的应用。2 父节点选择节点搜索他所有的邻居并从中选择一个能承担最低的能量代价来作为他的父节点。一个邻居被认为是一个父亲的候选者如果他具有:已经进入XMesh不是一个descendant节点对最后3个间隔。这打算避免循环是一个ELP节点一个XMesh网络是网络中所有的motes定期广播路由更新信息,这将包含以下信息:1父节点号:如果节点没有进入mesh这块是0xFFFF2 cost:它告诉其他节点向上发送给基站一个报文需要多少的代价

24、3 Hop count:发送到基站报文的跳数4 一个正确的列表和估计值。鉴于TinyOS数据包的大小,每一个路由更新消息将包含五个邻居。一个合格的邻居是他收到一个估计比一个threshold大(100高能量,10是低的)。默认状态下,邻居表的大小,对远处节点是16,基站是40,如果有超过5个合格的邻居。节点将会按序通过邻接表并把这些信息放在一个多跳、有序、可更新的route信息中。这个route更新信息将会广播每一个RUI为了更好的理解这个进程,我们将首先定义一些相关的指标:RE:接收估计,radio接受来自一个特定邻居计算机,通过应用EWMA算法得出收到数据包的百分比 New_Estimat

25、e = 255*received/(received+missed) RE = (1-alpha)*RE+alpha*New_EstimateAlpha是EWMA的因素,他是一个介于0和1之间定义一个新的估计值的权重SE:发送估计值,radio将质量传送给一个特定的邻居,它从一个邻居的更新报文里获得。当一个节点广播一个路由更新信息,他也将邻居的RE放在包里,因此邻居知道这个节点的SE是什么注意:SE和RE是被归在0,255的一个值里,因为255很好的质量LC:到一个特殊邻居的链路代价。只要知道了一个到特殊节点的SE和RE,LC就是这样来计算: LC=(1 XMeshRouter.Receive

26、AckappID;appID应该同样在MhopSend里的一样,然后应用使用ReceiveAck事件event TOS_MsgPtr RcvAck.receive(TOS_MsgPtr pMsg, void* payload, uint16_t payloadLen) re u / he sers can set the state to start sending next packet 一个普通的模型是发送一个报文后启动一个短的定时器。如果在时间到之前,端到端的确认没有被接收到,应用就决定时候重新发送报文。建议的时间间隔是10s对一个XMesh-LP和20ms对一个XMesh-HP一个典型

27、的例子是:在一个发送任务中,发送报文并启动定时器:if (call Send.send(BASE_STATION_ADDRESS, MODE_UPSTREAM_ACK,&gMsgBuffer, sizeof(UpStream_t) = SUCCESS) call TimerAck.start(TIMER_ONE_SHOT, 20); /for high power stack bAckWait = TRUE; 当定时器到期时,就决定是否在重新分组的基础上重新发送报文event result_t TimerAck.fired() if ( NUM_RETRY != num_retry+) pos

28、t sendTask(); else / reach retry limit num_retry = 0; bAckWait = FALSE; return SUCCESS; 如果端到端的确认被收到在定时器到期前,取消时钟:event TOS_MsgPtr RcvAck.receive(TOS_MsgPtr pMsg, void* payload, uint16_t payloadLen) if (bAckWait) call TimerAck.stop(); num_retry = 0; bAckWait = FALSE; return pMsg; 注意:没有全局的XMesh序列号(这个在X

29、Mesh中的序列号多跳路由的首部是在每一跳的基础上,用于链路质量计算)所以最终的确认不进行序列编号的确认数据包,用户应用程序不应该发出一个新的确认数据包,如果对先前报文的确认没有收到5.3.4向下发送报文有2中情景用来向下发送报文:1、 直接从基站发送2、 从PC机或其他连接到主机上的基站如果从基站发送,就使用下面的命令:call MhopSend.send(downstream_node_id, MODE_DOWNSTREAM, &gMsgBuffer, length); /and implement the sendDone event: event result_t Send.sendD

30、one(TOS_MsgPtr pMsg, result_t success) return SUCCESS; 如果向下发送的报文来自PC机或其它通过运行AMeshBase基站的主机,PC代码需要:将向下的节点号传递给TOSMsg首部地址把放在TOSMsg首部的类型区域把socket号放在socket区域计算CRC不改变多跳首部,是XMesh的内部。XMesh在向下发送前将余下的空间填满5.3.5用端对端的确认发送向下报文如果从基站发送,调用下面的发送命令:call MhopSend.send(downstream_node_id, MODE_DOWNSTREAM_ACK, &gMsgBuffe

31、r, length); / and implement the sendDone event: event result_t Send.sendDone(TOS_MsgPtr pMsg, result_t success) return SUCCESS; 如果向下的包从一个PC机或其他通过运行XMeshBase基站的主机发送,除了类型领域,其他的一样PC的代码应该也能检查一个对AM247类型的回滚,这是一个从节点到基站的段对端的确认。第六章 XMesh 路由控制有时用户需要基于网络状态给出些应用层的决定,为了适应这一需要,XMesh提供一个路由控制接口(MoteWorks/interfaces

32、)接口:command uint16_t getParent()描述:返回父节点地址接口:command uint16_getDepth()描述:返回节点的深度,深度被定义为离开基站的跳数.第七章XMesh-LP(Low Power)这章讨论XMesh中的低功能节点。也将讨论:低功耗的操作是什么低功率策略7.1 低功耗操作处理器功耗模式XMesh mote可以被配置成2种方式来接受数据,高功率和低功率。在高功率中,节点使得XMesh网络总在工作。这个Mote的处理器和radio一直地消耗功率。Radio是正常的接收mode有哪次能在任何时候侦听到所有邻居的通信。这是mode向基站传输报文的最高

33、带宽。一个典型的处理器有几种操作modes来消耗不同数量的能量。对一个完全活跃的mode。处理器消耗最大量的能量,通常在8mA的范围内,最低功耗消费的mode,一些构成了深度睡眠的mode处理器只能按顺序消耗15Amps处理器间的不同时处理器的具体模式。用户应该查阅用户手册,.典型地,最浅睡眠的mode将会没有运行的外设,并为SRAM提供保留,通常需要一个外部中断来唤醒进程,在大多数应用中,额外的32kHz时钟被用来唤醒信号源在TintOS,用户并不知道能量的管理。没有任何更长的明确的被OS调用的能量管理,这样将使得处理器进入睡眠。相反,因为TinyOS是一个基于任务的OS事件驱动,一旦队列空

34、了,调度就将处理器睡眠包含在决定睡眠mode的处理进程是一系列处于活动状态的处理外设。能量管理模块将确保睡眠mode set将会是最低功耗的,将会适应当前正确的活动设备。TinyOS的设计者认为,既然检验能够延迟睡眠操作,实际的检验在睡眠命令调用的之前发生,因此,底层的驱动有责任在开始和结束之后调用检验和。详细的课查阅scheduler.c and HPLPowerManagement.nc source files.Radio Power ModesRsdio传感器典型地有2个操作模式,它有一个传送和接收的状态。基于特殊的radio传感器,the TX (Transmit) and RX (

35、Receive) 操作的消耗在10 to 20 mA.的范围内,对额外的TX、RX,radio传感器有一系列的低功率状态。当传感器完全停电的时候,它消耗大约3 W.7.1.1低功耗策略既然OS已经接管了处理器的能量管理工作,焦点也就转向低功率的即时通信。需要被标记,大多数的传感器网络应用有很低的数据速率而不需要持续的处理或网络行为。任何试图减小能量的策略应该能利用典型的传感器网络低循环的应用要求。然而,当发送报文的时候,它没有足够来断电,一个radio必须能从他的peers中接收报文,并知道什么时候打开接受的radioPower Cycling网络中的一些节点在先前就被边界设备所获之,就不需要

36、再加入路由。这些设备能在需要传送数据的时候用低功耗策略传送,在传送完毕的时候断电。假设这些边界设备能连到一个节点上处理通过网络来自边界设备的报文。Power Cycling 在一个已知的队列Power Cycling on a Known Schedule广播电台在一个特定的时间间隔中向一个网络中的所有节点广播。每一个使用这一策略的节点将定期功率无线电侦听活动。这个监听时间的一个节点是固定的间隔,每个通道的监控也是固定的。信道间的监控是通过网络的。因此,如果任何节点希望与其邻居通信,它将在传送报文前的唤醒时间传递一个唤醒序列,转递前的实际信息。以这种方式,如果任何邻国节点发现任何无线电活动,在

37、其渠道的监测,将继续进行,直至该邮件完全接受。这一战略使节点断电大多数的时间是断电的,只有在信道监听和报文传送的时候是上电的。Power Cycling在一个同步队列中在先前的策略中,网络中的每一个节点在一个特定的间隔在他的radio上power。如果一个节点每秒监听信道8次,然后在每个信道上监听的时间间隔是125ms。当一个基点要发送数据,他就必须首先发送一个125ms的唤醒序列或这个较长的时期。这样即时在向其邻居节点发送简单的提示的时候都会消耗大量的能量。唤醒序号必须扫描整个的间隔是因为节点不是同步的。不同步的节点不会知道邻居节点侦听信道时候精确地外部值在一个同步序列上,每一个节点都会通过

38、相同的window定期监控信道,然后唤醒队列将动态减少,这个时间窗口如果在邻接点的1ms之内的话,就能确保每一个节点将会监听彼此之间在1ms内的活动。因此唤醒队列仅需要2ms7.1.2 低功耗性能测量技术Period长 2次连续的监听操作的总长。如果一个节点每秒监听8次,则这个长度是125ms带宽 由Period长度决定,如果长度是15ms,带宽是每秒8个包延迟 延迟由监听period的持续时间决定的。如果持续时间是125ms,则每一个链路的延迟是125ms能量检测 每一个节点的能量一定是花在定期信道检测的活动上。 传输能量:每一个包传输的能量包含唤醒队列 接收能量:每一个包的接收能量7.1.

39、3 低功耗技术分析Period 长VS 带宽和延迟Period长与延迟正比,与贷款成反比。增加period长会降低带宽而提高延迟Period长VS能量消耗这个Period长在传输和接收能两反面起作用,当监听periods是非同步的活着包需要用一个唤醒队列发送出去,必须扩展整个的period长度Period越长,唤醒队列就必须扫描更大的period长。如果接收者假定不同步,则接收者将在period长的中期上电。因此接收能量总是平均增加传输能量的一半。7.1.4时间无线同步栈和定期唤醒检查无线电栈使用有时间Synchronization服务提供的同步时钟,来对定期唤醒检查排队通过发送RSSI,这个

40、通过以下到达:一个定期的检查被初始化,当时钟的低7位全0或128ms,一个时钟时间对每一个唤醒检查必须是很好的排列。当一个唤醒检查需要被排队的时候,无线栈就获取当前的时间,直到最低位为0,时钟节拍一直计数,然后计算一个将来唤醒检查的队列。这个方法允许时钟向前向后移动而不引起不必要的时钟打断合适的同步之前,节点依赖于时钟位同步的值,这将导致定期抽样的128ms间隔7.1.5无线栈和包传输 为唤醒检查排队无线栈也基于同步时钟检测包传输,有3种类型的传输 Full Extended Preamble Short Extended Preamble Standard Preamble不同类型的包传输和

41、时间同步是基于接收表列的Full Extended Preamble:与所有的邻居节点通信而不管当前的时间同步。包传输在唤醒检查后15ms开始通信,因此节点以最小代价同步传输Short Extended Preamble:只用在已经同步的节点间通信。这个包传输被排列成先前的传递,当其他的节点作为传输样本的时候,节点将会探测即将到来的传输并在实际数据包到来之前打开radioStandard Preamble:被用在高能量节点间的通讯,包传输没有包含额外的bytes并安排在定期唤醒检查之间传输。它可以在不引起周围节点唤醒的时候传输 包的传输类型网络栈使用不同包传输类型依赖于应该发出的包长度节点的平

42、均能量消耗可以由传输和接收到的包传输类型和数量计算出,这个期望的节点生命期可使用i the RX cost, TX cost, and RF Wake-up 检测代价等参数计算就如由每一种接收和发送的包类型序号。第八章 XMesh-ELP8.1ELP是什么?XMesh-ELP到达了最低的操作功耗,因为所有的mode都处于睡眠状态。只是位于网络边界的节点工作。这些节点不向上、向下或向其他的mode传世报文。他们只能是其他mode的孩子而不可能是父节点。如图示:这些节点被用在数据的立即发送。这种类型的设备通常睡眠从几分钟、几个小时或几天不等。一些使用ELP设备的例子是:低交换,每天仅发送几次报文。

43、在这个应用中,设备必须快速唤醒并发送报文电池操作一天用几次。这种类型的应用需要使得机器上电并启动通信部分一段时间,然后继续睡眠ELP通过如下进入mesh的:挂在到父节点。持续上电直到他加入到mesh进入睡眠状态。ELP同时保存邻居表,下次使用相同将节点启动,如果不成功,它将使用表中的另外的父节点。他周边的上电并传输健状的报文使用端对端的确认机制。如果接到一个确认,他们将睡眠,没有接到确认,则需要试几次在放弃前。ELPmode传输更新但是最终才报告他的代价,即其他的mode不能把他们当做父节点。ELPmode假定网络协议及他们的父节点是静态的。如果邻居经历极端变化,如所有的节点断电。然后ELPm

44、ode将会启动一个快速地信息处理,从而在它再次睡眠之前获得新的父节点。这通常意味着ELP节点总为2-3个外部路由更新。8.2 ELP的操作理论启动mode 需要进入mesh。这个通过条用ElpI.route_discover(rui).完成,服务器等待rui*(ROUTE_UPDATE_INTERVALS)来加入mesh。ElpI.route_discover_done(success, parent)这个事件信号的结果是:如果是True,则ELP节点成功加入到mesh并且父节点参数将包含父节点的id。失败的,就没有加入到mesh,父节点保留广播地址。用户需要决定是否再试一次或是睡眠。ELP

45、Mote加入到mesh后,ElpI.sleep()将被触发,而ELP是睡眠节点时,健康报文将被发送到基站并按预期从基站接收到一个确认。如果预期确认在既定时间没有收到,将再试一次,之后,因失败返回sleepdone()并不再尝试。直到被唤醒。如果收到确认,服务器将停止XMesh启动时钟并把radio睡眠。如此重复。用force_sleep()参数控制行为,工作模式如下:构建XMesh-ELPELP的应用需要如下代码,外部中断唤醒用户应用,应用调用ElpI.wake()打开radio并加入meshasync event result_t FireDetect.alert( ) call ElpI.

46、wake(); / turn on the radio and rejoin the MeshThe application waits until ElpI.wakedone() and then sends radio messages. event result_t ElpI.wake_done(result_t ss) call MhopSend.send(); After the radio message has been sent the application calls mode. ; NOTE: ElpI.sleep() returns SUCCESS if the mot

47、e has returned to ELP sleep mode. ElpI.sleep to return to sleepevent result_t Send.sendDone(TOS_MsgPtr pMsg, result_t success) lpI sleep_sec,elp_ call E .sleep(elp_ health_ ); sec,elp_retry,monitor_flag return SUCCESS; 8.4/5测试并使用Xsniffer监控构建make micaz route ,elp构建。第九章 XMeshBse9.1什么是XMeshBse?所有的XMesh网络需要一个基站作为和PC及其他接入用户的网关。基站是一个运行XMeshBase程序的MIC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论