搜档网
当前位置:搜档网 › 网络协议栈

网络协议栈

《嵌入式操作系统VxWorks中网络协议存储池原理及实现》

周卫东蔺妍刘利强

(哈尔滨工程大学自动化学院,黑龙江哈尔滨,150001)

摘要本文讨论了网络协议存储池的基本原理和在嵌入式操作系统中的实现方法。为在嵌入式系统中实现TCP/IP协议栈,提供了一种有效、简洁、可靠的缓冲区管理。

关键词 VxWorks; mBlk; clBlk; 网络协议存储池

VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS)。它以良好的持续发展能力、高性能的内核以及卓越的实时性被广泛的应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。VxWorks操作系统有着优越的网络性能,而缓冲区的数据拷贝是影响网络性能的主要因素。

众所周知,缓冲区在网络协议栈中有两个作用:第一,提供载体,使分组或报文可以在各协议层中流动;第二,为各级缓冲区提供空间。缓冲区的设立使得 TCP/IP协议栈支持异步I/O操作,异步操作对于协议栈的I/0性能是非常重要的。在网络输出的过程中每一层需要在数据的首部或者尾部添加数据头和数据尾来对数据进行封装使得接收端对应的层能够进行正确的接收,在输入的过程中每层都需要将本层的数据头和数据尾去掉而最终还原成发送端发送的

数据。上述的封装/去封装和拷贝操作使得网络协议对内核的存储器管理能力提出了很多要求。这些要求包括能方便地操作可变长缓存,能在缓存头部和尾部添加数据(如低层封装来自高层的数据),能从缓存中移去数据(如当数据包向上经过协议栈时要去掉首部),并能尽量减少这些操作所作的数据复制。

1 使用netBufLib管理存储池的基本原理

网络协议存储池使用mBlk结构、clBlk结构、簇缓冲区和netBufLib提供的函数进行组织和管理。mBlk和clBlk结构为簇缓冲区(cluster)中数据的缓冲共享和缓冲链接提供必要的信息。netBufLib例程使用mBlk和clBlk来管理cluster和引用 cluster中的数据,这些结构体中的信息用于管理cluster 中的数据并且允许他们通过引用的形式来实现数据共享,从而达到数据“零拷贝”的目的。

1.1 结构体mBlk和clBlk及其数据结构

mBlk是访问存储在内存池中数据的最基本对象,由于mBlk仅仅只是通过clBlk来引用数据,这使得网络层在交换数据时就可以避免数据复制。只需把一个mBlk连到相应mBlk链上就可以存储和交换任意多的数据。一个mBlk结构

体包括两个成员变量mNext和mNextPkt,由它们来组成纵横两个链表:mNext 来组成横的链表,这个链表中的所有结点构成一个包(packet);mNextPkt来组成纵的链表,这个链表中的每个结点就是一个包 (packet),所有的结点链在一起构成一个包队列,如图1所示。

图1 包含两个数据包的mBlk链

结构体mBlk和clBlk的数据结构如下所示:

struct mBlk

{

M_BLK_HDR mBlkHdr; /* header */

M_PKT_HDR mBlkPktHdr; /* pkthdr */

CL_BLK * pClBlk; /* pointer to cluster blk */

} M_BLK;

struct clBlk

{

CL_BLK_LIST clNode;/* union of next clBlk */

UINT clSize;/* cluster size */

int clRefCnt;/*countof the cluster */

struct netPool * pNetPool; /* pointer to the netPool */

} CL_BLK;

/* header at beginning of each mBlk */

struct mHdr

{

struct mBlk * mNext;/* next buffer in chain */

struct mBlk * mNextPkt;/* next chain in queue/record */

char *mData; /* location of data */

int mLen;/* amount of data in this mBlk */

UCHAR mType;/* type of data in this mBlk */

UCHAR mFlags; /* flags; see below */ } M_BLK_HDR;

/* record/packet header in first mBlk of chain; valid if M_PKTHDR set */ struct pktHdr

{

struct ifnet * rcvif;/* rcv interface */

int len; /* total packet length */ } M_PKT_HDR;

1.2 网络协议存储池的初始化

VxWorks在网络初始化时给网络协议分配存储池并调用netPoolInit()函数对其初始化,由于一个网络协议通常需要不同大小的簇,因此它的存储池也必须包含很多簇池(每一个簇池对应一个大小的簇)。如图2所示。另外,每个簇的大小必须为2的方幂,最大可为64KB(65536),存储池的常用簇的大小为64,128,256,512,1024比特,簇的大小是否有效取决于CL_DESC表中的相关内容,CL_DESC表是由 netPoolInit()函数调用设定的。

图2 网络协议存储池初始化后的结构

1.3 存储池的链接及释放

存储池在初始化后,由netPool结构组织几个下一级子池:一个mBlk 池、一个clBlk池和一个cluster池。mBlk池就是由很多mBlk组成的一条mBlk 链;clBlk池就是由很多clBlk组成的一条clBlk链。cluster池由很多的更下一级cluster子池构成,每一个 cluster子池就是一个cluster链。每一个cluster链中的所有cluster的大小相同,不同链中的cluster大小不同。但要实现不同进程访问同一簇而不需要作数据的拷贝,还需要把mBlk结构,clBlk 结构和簇结构链接在一起。创建这三级结构一般要遵循这样五步:

a.调用系统函数netClusterGet()预定一块簇缓冲区;

b.调用系统函数netClBlkGet()预定一个clBlk结构;

c.调用系统函数netMblkGet()预定一个mBlk结构;

d.调用系统函数netClBlkJoin()把簇添加到clBlk结构中;

e.调用系统函数netMblkClJoin()把clBlk结构添加到mBlk结构中。

这样,就构成了最后的缓冲区。

在缓冲区中的数据使用完毕后要及时的释放内存,这一过程只需要调用系统函数netMblkC1ChainFree()释放存有数据的mBlk链表。例如当数据向上层传送时,在本层中可以释放已经不再使用的mBlk链表,由于在clBlk中记录着指向本模块的mBlk的个数,虽然释放了mBlk链表,但是这并不表示将cluster中的数据释放掉了,上层复制的链表仍然控制着这些数据,直到clBlk 中的mBlk计数为0时才真正的将数据占用的簇释放掉,将数据占用的内存空间释放、归还给系统将来使用。

2 网络协议存储池与数据的封装处理

VxWorks操作系统之所以采用mBlk—clBlk—cluster这样的网络数据存储结构,目的就是减少数据拷贝的次数,提高网络数据的传输速率。

图3 存储带有1460个字节数据的mBlk

在网络输出的过程中当从上层向下层传递数据时,下层协议需要对数据进行封装使得接收端对应的层能够进行正确的接收。下面通过实例分析网络数据的封装过程。例如要在如图3所示的mBlk链中添加IP和UDP的首部。

在mBlk链表中封装数据的方法是分配另外一个mBlk,把它放在链首,并将分组首部复制到这个mBlk。IP首部和UDP首部被放置在新mBlk的最后,这个新mBlk就成了整个链表的首部。如果需要,它允许任何其它低层协议(例如添加以太网首部)在IP首部前添加自己的首部,不需要再复制IP和 UDP首部。在第一个mBlk中的mBlkHdr.mData指针指向首部的起始位置,mBlkHdr.mLen的值是28。在分组首部和IP首部之间有 72字节的未用空间留给以后的首部,通过适当地修改mBlkHdr.mData指针和mBlkHdr.mLen添加在IP首部的前面。注意,分组首部已经移到新mBlk中了,分组首部必须放在mBlk链表的第一个mBlk 中。在移动分组首部的同时,在第一个mBlk设置M_PKTHDR标志。在第二个 mBlk 中分组首部占用的空间现在未用。最后,改变在此分组首部中的长度成员mBlkPktHdr.len,成员mBlkPktHdr.len的值是这个分组的mBlk链表中所有数

据的总长度:即所有通过mBlkHdr.mNext指针链接的mbuf的mBlkHdr.mLen值的和。本例中由于增加了 28个字节变成了1488。如图4所示。

图4 添加完IP和UDP首部的mBlk

这样,当报文在协议栈中流动时,不会拷贝报文链,而只需把指向mBlk 的指针通过参数传递。当报文需要进人缓冲区时,也是通过链表的指针操作将报文插入或添加到队列中。

3 结论

网络协议存储池的职责有两个:为协议栈提供合适的缓冲区,如果太大会浪费系统资源,太小会影响协议栈的吞吐量;提供合适的数据结构装载网络报文,既可以使协议栈方便地处理报文,又可以减少缓冲区拷贝的次数。减少拷贝次数不仅降低了CPU的负荷,还可以降低存储器的消耗。本文剖析了嵌入式操作系统 VxWorks中网络协议存储池的原理,实现了数据能够动态增删、但在逻辑上又呈现连续性的数据结构。能够满足在各协议层之间传递数据而不需要进行内存拷贝。

参考文献

[1] 翟东海,李力.mbuf的实现原理剖析及其在网络编程中的应用[J].计算机工程与应,2004(8):104-106.

[2] [美]DouglasE.Comer著.张娟等译.用TCP/IP进行网际互联第二卷:设计、实现与内核(第三版)[M].北京:电子工业出版社,2001.05.

[3] [美]GaryR.Wright W.RichardStevens著.陆雪莹,蒋慧等译.TCP/IP 详解卷2:实现[M].北京:机械工业出版社.2000.07:10—50.

[4] Wind River System Inc.VxWorks Network

收稿日期:8月25日修改日期:9月2日

《VxWorks任务追踪实例分析》

VxWorks中如果稍有不慎,就可能导致task suspend,如果运气好,shell没有

被挂起,则可以通过系统的一些命令追踪一下挂起的原因。其中用到的主要命令

是i、tt、ti、d等。

首先从出错信息开始:

0xfc8125b8 (t_Lcd): memPartFree: invalid block 0xfdfc6f38 in partition 0xfe508894.

由于memPartFree了一个非法的内存块,导致了任务挂起,我们需要确定到底是

哪条语句导致了这个异常的产生,可能是什么原因引起的。

首先,需要通过“i”命令察看任务状态:

-> i

NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY

---------- ------------ -------- --- ---------- -------- --------

------- -----

tExcTask excTask fdffec80 0 PEND fe3c5f50 fdffeb60 3006b 0

tLogTask logTask fdffc298 0 PEND fe3c5f50 fdffc188 0 0

tShell shell fdf5fa48 1 READY fe1f3afc fdf5f628 0 0

……

t_Lcd fe392a30 fc8125b8 100 SUSPEND fe1f24b0 fc8120b8

d0003 0

……

可以看到任务t_Lcd的状态为SUSPEND,即被挂起的状态。其他各项的含义都比

较清楚,ENTRY是任务的入口函数,如果没有symbol,则直接显示地址,TID是

任务的ID号,一般用任务的栈底地址表示,PC是当前的指令位置,SP是当前栈

顶位置。

然后通过”tt”来追溯函数调用过程:

-> tt "t_Lcd"

fe3c14f4 vxTaskEntry +68 : fe392a30 ()

fe392b48 initLcdComponent+2e8: fe392bdc ()

fe392bec initLcdComponent+38c: fe392bfc ()

fe39333c initLcdComponent+adc: lcdShowPassWord ()

fe398590 lcdShowPassWord+84 : saveModifiedSetting ()

fe3a3790 saveModifiedSetting+220: saveSettingValue (1)

fe1fd6d0 saveSettingValue+148: fe1fc428 (0, 5, ffffffff)

fe1fc888 getDeviceSettingValue+64c: fclose ()

fe1aab48 fclose +ec : free ()

fe1bb7d4 free +1c : memPartFree ()

fe1bb2dc memPartFree +148: taskSuspend ()

我们可以了解到函数的调用过程,vxTaskEntry()?->fe392a30()->fe392bdc ()->fe392bfc ()->lcdShowPassWord ()->saveModifiedSetting

()->saveSettingValue (1)->fe1fc428 (0, 5, ffffffff)->fclose ()->free ()->memPartFree ()->taskSuspend ()。其他相关信息:第一栏是发生跳转(即函数调用)后的返回地址,稍后会作详细解释,第二栏是离返回地址最近的symbol和偏移量,一般情况下会是发起调用的那个函数的名称,除非该函数是内部函数,系统中没有symbol,第三栏是被调用的函数。

再来查看一下t_Lcd任务的栈里的内容,从前面的任务信息里已经得知当前栈顶位置为fc8120b8,通过“d”命令显示该地址的内容。

-> d 0xfc8120b0

fc8120b0: fc81 25b8 fc81 25b8 fc81 20c8 fe1f 24b0 *..%...%... ...$.* fc8120c0: fe50 8894 fdfc 6f30 fc81 20e8 fe1b b2dc *.P....o0.. .....* fc8120d0: fdf2 6b08 0000 0100 0000 000c 0000 0000 *..k.............* fc8120e0: 0000 0000 fdf1 ed80 fc81 20f8 fe1b b7d4 *.......... .....* fc8120f0: fd9a 3538 fdf1 ed80 fc81 2108 fe1a ab48 *..58......!....H* fc812100: fd9a 3538 fc81 2108 fc81 2238 fe1f c888 *..58..!..."8....* fc812110: 0000 0000 0000 0005 ffff ffff 0000 0600 *................* fc812120: 0000 000a fdf1 ed80 4230 312e 7874 6373 *........B01.xtcs* fc812130: 5f62 7566 2e69 6c32 0000 0000 0000 0000 *_buf.il2........*

这里我们可以看到一些熟悉的地址,注意看最后两列,在这里可以找到”tt”中显示的第一栏地址即函数调用的返回地址。两个返回地址之间是该函数的栈空间,用于保存栈指针、局部变量或者相关寄存器的值。要具体了解这些值是怎么来的,就要用到反汇编了。

反汇编通过objdump命令来实现,不同类型的cpu会有不同的可执行文件,例如

objdumpppc -D vxworks >xx.s

反汇编的结果可能会很大,耐心等待吧。我们来看一下fclose()里调用free()的这一过程,在汇编代码里查找返回地址fe1aab48。

fe1aaa5c :

……

fe1aab44: 48 01 0c 75 bl fe1bb7b8

fe1aab48: 38 00 00 00 li r0,0

bl是无条件跳转指令,free()执行完之后,应返回fe1aab48继续执行。

查找fe1bb7b8,看看free被调用时干了些什么?

fe1bb7b8 :

fe1bb7b8: 94 21 ff f0 stwu r1,-16(r1)

fe1bb7bc: 7c 08 02 a6 mflr r0

fe1bb7c0: 90 01 00 14 stw r0,20(r1)

fe1bb7c4: 7c 64 1b 78 mr r4,r3

fe1bb7c8: 3c 60 fe 51 lis r3,-431

fe1bb7cc: 38 63 88 94 addi r3,r3,-30572

fe1bb7d0: 4b ff f9 c5 bl fe1bb194

fe1bb7d4: 80 01 00 14 lwz r0,20(r1)

fe1bb7d8: 7c 08 03 a6 mtlr r0

fe1bb7dc: 38 21 00 10 addi r1,r1,16

fe1bb7e0: 4e 80 00 20 blr

虽然不同类型cpu的汇编指令不同,但还是可以大致猜出其中的含义。stwu指令将r1保存到地址(r1-16)位置,然后让将r1减去16保存到r1中,完成了保存并更新栈指针的过程;第2、3条语句将返回地址保存到r1+20的位置;下面几条语句实际上是准备参数的过程,r3,r4一般用来保存函数的形参值,随后调用了memPartFree。从memPartFree返回后,先从堆栈上读取返回地址,然后将栈顶下移16字节,即恢复到原来的位置,最后跳转到返回地址。

对着内存内容校验一下,fclose调用free后的返回地址为fe1aab48,按照上面的分析,这个地址会被free()函数保存在r1+20 的位置,因此r1+20=fc8120fc,r1=fc8120e8,而free中将r1减去了16,所以刚进入free()时,r1应该等于fc8120f8,这个数值会被保存在fc8120e8处,事实正是如此。

这里栈内空间的利用有点交叉混杂,暂时没有弄的太明白,并且free()中没有用到过fc8120f0-fc8120f8空间的内存,推测可能是栈的大小至少为16字节所以留空了,里面的内容是历史遗留产物,是否如此,还有待进一步的研究。

以上是比较通用的分析过程,本来还涉及到结合c代码的分析,跟具体的例子结合太紧密,就不赘述了,有一点可以提一下,想追溯函数调用过程中某一参数的运行值,可能会在调用者的栈中,也可能会在调用者的调用者的栈中,这个需要结合具体的汇编码来分析。因为函数的栈开辟出来是为了保存一些临时的乱七八糟的东西,比如需要用到r38,就会把r38临时保存到栈上,返回时再恢复。而对本函数有用的变量,通常会被优化到寄存器中保存,除非寄存器不够用了,才会用到栈空间。

《VxWorks5.5的内存结构》

内存结构

VxWorks5.5中的内存是平板式的,基本的结构如上图所示,整个内存分区被划分成一个个区块(Block)。每一个区块都有一个区块头,如果是空闲的内存块,是FREE_BLOCK,如果是已分配的,则是BLOCK_HDR。这两个结构在

private/memPartLibP.h中定义。

FREE_BLOCK 和 BLOCK_HDR的前半部分的结构是一样的,先是32bit的pPrevHdr 指针,指向前一个区块头,接着是31bit的nWords,余下的 1bit用于指示该区块是否空闲。这里nWords的单位是Word,等于2 Byte。当前的区块头地址加上2倍的nWords就是下一个区块的地址。这最后的1bit看起来有些讨厌,使得

nWords的数值并不那么直观,但实际上我们用到的总是2*nWords,也就是nWords<<1,刚好空出了最后一位,从一个例子可以说的更明白些,数据格式为Big Endian。

0x0088ca00: 0088c9c0 00001125 ……

我们可以知道前一个区块的地址为0×88c9c0,这个区块的长度为0×1124 Byte,这个区块是空闲的,通过计算我们还能得出下一个区块的地址为

0×88ca00+0×1124=0×88db24。

如果内存分配时需要按16Bytes对齐,BLOCK_HDR还包含8 Byte的空白区,然后才是实际的数据区。

FREE_BLOCK则还包含一个DL_NODE,即双向链表节点,这些节点被串在memSysPartId->freelist中,这些节点并不一定按照地址高低排列。

操作函数

memPartLibP.h中提供了一些宏和函数来操作这些结构,本质上都是指针的移动。

?NEXT_HDR(pHdr)和PREV_HDR(pHdr),得到前后区块的地址

?HDR_TO_BLOCK(pHdr)和BLOCK_TO_HDR(pBlock),在区块头和数据区之间转换;

?HDR_TO_NODE(pHdr)和NODE_TO_HDR(pNode),在空闲节点和区块头之间转换。

对于freelist,则采用dllLib中的双向链表操作函数来维护。

?DLL_FIRST和DLL_LAST,得到链表头或尾;

?DLL_NEXT(pNode)和DLL_PREVIOUS(pNode),得到下一个或前一个节点;

?dllAdd和dllRemove,增加或删除一个节点;

无线传感器网络技术试题

1. 传感器网络的三个基本要素:传感器、感知对象、用户(观察者) 2. 传感器网络的基本功能:协作式的感知、数据采集、数据处理、发布感知信息 3. 无线传感器节点的基本功能:采集数据、数据处理、控制、通信 4. 传感节点中处理部件用于协调节点各个部分的工作的部件。 5. 基站节点不属于传感器节点的组成部分 6. 定向扩散路由机制可以分为三个阶段:兴趣扩展阶段、梯度建立阶段、路径加强阶段 7. 无线传感器网络特点:大规模网络、自组织网络、可靠的网络、以数据为中心的网络、应用相关的网络 8. NTP时间同步协议不是传感器网络的的时间同步机制。 9. IEEE 802.15.4标准主要包括:物理层。介质访问控制层 10. 从用户的角度看,汇聚节点被称为网关节点。 11. 数据融合的内容主要包括:多传感器的目标探测、数据关联、跟踪与识别、情况评估和预测 13. 传感器网络的电源节能方法:_休眠(技术)机制、__数据融合 14. 分布式系统协同工作的基础是时间同步机制 15. 无线网络可以被分为有基础设施的网络与没有基础设施的网络,在无线传感器网络,Internet 网络,WLan 网络,拨号网络中,无线传感器网络属于没有基础设施的网络。 16. 传感器网络中,MAC层与物理层采用的是IEEE制定的IEEE 802.15协议 17. 分级结构的传感器网络可以解决平面结构的拥塞问题 18. 以数据为中心特点是传感器网络的组网特点,但不是Ad-Hoc的组网特点 19. 为了确保目标节点在发送ACK过程中不与其它节点发生冲突,目标节点使用了SIFS帧间间隔 20. 典型的基于竞争的MAC协议为CSMA

Zigbee协议栈原理基础

1Zigbee协议栈相关概念 1.1近距离通信技术比较: 近距离无线通信技术有wifi、蓝牙、红外、zigbee,在无线传感网络中需求的网络通信恰是近距离需求的,故,四者均可用做无线传感网络的通信技术。而,其中(1)红外(infrared):能够包含的信息过少;频率低波衍射性不好只能视距通信;要求位置固定;点对点传输无法组网。(2)蓝牙(bluetooth):可移动,手机支持;通信距离10m;芯片价格贵;高功耗(3)wifi:高带宽;覆盖半径100m;高功耗;不能自组网;(4)zigbee:价格便宜;低功耗;自组网规模大。?????WSN中zigbee通信技术是最佳方案,但它连接公网需要有专门的网关转换→进一步学习stm32。 1.2协议栈 协议栈是网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议。 1.2.1Zigbee协议规范与zigbee协议栈 Zigbee各层协议中物理层(phy)、介质控制层(mac)规范由IEEE802.15.4规定,网络层(NWK)、应用层(apl)规范由zigbee联盟推出。Zigbee联盟推出的整套zigbee规范:2005年第一版ZigBeeSpecificationV1.0,zigbee2006,zigbee2007、zigbeepro zigbee协议栈:很多公司都有自主研发的协议栈,如TI公司的:RemoTI,Z-Stack,SimpliciTI、freakz、msstatePAN 等。 1.2.2z-stack协议栈与zigbee协议栈 z-stack协议栈与zigbee协议栈的关系:z-stack是zigbee协议栈的一种具体实现,或者说是TI公司读懂了zigbee 协议栈,自己用C语言编写了一个软件—---z-stack,是由全球几千名工程师共同开发的。ZStack-CC2530-2.3.1-1.4.0软件可与TI的SmartRF05平台协同工作,该平台包括MSP430超低功耗微控制器(MCU)、CC2520RF收发器以及CC2591距离扩展器,通信连接距离可达数公里。 Z-Stack中的很多关键的代码是以库文件的形式给出来,也就是我们只能用它们,而看不到它们的具体的实现。其中核心部分的代码都是编译好的,以库文件的形式给出的,比如安全模块,路由模块,和Mesh自组网模块。与z-stack 相比msstatePAN、freakz协议栈都是全部真正的开源的,它们的所有源代码我们都可以看到。但是由于它们没有大的商业公司的支持,开发升级方面,性能方面和z-stack相比差距很大,并没有实现商业应用,只是作为学术研究而已。 还可以配备TI的一个标准兼容或专有的网络协议栈(RemoTI,Z-Stack,或SimpliciTI)来简化开发,当网络节点要求不多在30个以内,通信距离500m-1000m时用simpliciti。 1.2.3IEEE802.15.4标准概述 IEEE802.15.4是一个低速率无线个人局域网(LowRateWirelessPersonalAreaNetworks,LR-WPAN)标准。定义了物理层(PHY)和介质访问控制层(MAC)。 LR-WPAN网络具有如下特点: ◆实现250kb/s,40kb/s,20kb/s三种传输速率。 ◆支持星型或者点对点两种网络拓扑结构。 ◆具有16位短地址或者64位扩展地址。 ◆支持冲突避免载波多路侦听技术(carriersensemultipleaccesswithcollisionavoidance,CSMA/CA)。(mac层) ◆用于可靠传输的全应答协议。(RTS-CTS) ◆低功耗。 ◆能量检测(EnergyDetection,ED)。 ◆链路质量指示(LinkQualityIndication,LQI)。 ◆在2.45GHz频带内定义了16个通道;在915MHz频带内定义了10个通道;在868MHz频带内定义了1个通道。 为了使供应商能够提供最低可能功耗的设备,IEEE(InstituteofElectricalandElectronicsEngineers,电气及电子工程师学会)定义了两种不同类型的设备:一种是完整功能设备(full.functionaldevice,FFD),另一种是简化功能设备

基于无线传感器网络的环境监测系统设计与实现

南京航空航天大学 硕士学位论文 基于无线传感器网络的环境监测系统设计与实现 姓名:耿长剑 申请学位级别:硕士 专业:电路与系统 指导教师:王成华 20090101

南京航空航天大学硕士学位论文 摘要 无线传感器网络(Wireless Sensor Network,WSN)是一种集成了计算机技术、通信技术、传感器技术的新型智能监控网络,已成为当前无线通信领域研究的热点。 随着生活水平的提高,环境问题开始得到人们的重视。传统的环境监测系统由于传感器成本高,部署比较困难,并且维护成本高,因此很难应用。本文以环境温度和湿度监控为应用背景,实现了一种基于无线传感器网络的监测系统。 本系统将传感器节点部署在监测区域内,通过自组网的方式构成传感器网络,每个节点采集的数据经过多跳的方式路由到汇聚节点,汇聚节点将数据经过初步处理后存储到数据中心,远程用户可以通过网络访问采集的数据。基于CC2430无线单片机设计了无线传感器网络传感器节点,主要完成了温湿度传感器SHT10的软硬件设计和部分无线通讯程序的设计。以PXA270为处理器的汇聚节点,完成了嵌入式Linux系统的构建,将Linux2.6内核剪裁移植到平台上,并且实现了JFFS2根文件系统。为了方便调试和数据的传输,还开发了网络设备驱动程序。 测试表明,各个节点能够正确的采集温度和湿度信息,并且通信良好,信号稳定。本系统易于部署,降低了开发和维护成本,并且可以通过无线通信方式获取数据或进行远程控制,使用和维护方便。 关键词:无线传感器网络,环境监测,温湿度传感器,嵌入式Linux,设备驱动

Abstract Wireless Sensor Network, a new intelligent control and monitoring network combining sensor technology with computer and communication technology, has become a hot spot in the field of wireless communication. With the improvement of living standards, people pay more attention to environmental issues. Because of the high maintenance cost and complexity of dispose, traditional environmental monitoring system is restricted in several applications. In order to surveil the temperature and humidity of the environment, a new surveillance system based on WSN is implemented in this thesis. Sensor nodes are placed in the surveillance area casually and they construct ad hoc network automatieally. Sensor nodes send the collection data to the sink node via multi-hop routing, which is determined by a specific routing protocol. Then sink node reveives data and sends it to the remoted database server, remote users can access data through Internet. The wireless sensor network node is designed based on a wireless mcu CC2430, in which we mainly design the temperature and humidity sensors’ hardware and software as well as part of the wireless communications program. Sink node's processors is PXA270, in which we construct the sink node embedded Linux System. Port the Linux2.6 core to the platform, then implement the JFFS2 root file system. In order to facilitate debugging and data transmission, the thesis also develops the network device driver. Testing showed that each node can collect the right temperature and humidity information, and the communication is stable and good. The system is easy to deploy so the development and maintenance costs is reduced, it can be obtained data through wireless communication. It's easy to use and maintain. Key Words: Wireless Sensor Network, Environment Monitoring, Temperature and Humidity Sensor, Embedded Linux, Device Drivers

项目三了解无线传感器协议栈

项目三了解无线传感器协议栈 项目三了解ZigBee无线传感器网络协议栈知识目标1.掌握zigbee无线传感器网络的协议栈和协议的区别等知识。 2.掌握Z-Stack协议栈的OSAL分配机制。 3.了解Z-Stack协议栈的OSAL运行机制。 4.掌握Z-Stack协议栈的OSAL常用函数。 项目三了解ZigBee无线传感器网络协议栈技能目标1.掌握 Z-Stack协议栈的运行机制。 2.掌握Z-Stack协议栈中OSAL的添加新任务的方法。 项目三了解ZigBee无线传感器网络协议栈在实际zigbee无线传感器网络工程的开发过程中首先借助TI提供的协议栈中例程SampleApp,接着根据需要完成的功能,查看支持Z-Stack协议栈的硬件电路图,再查阅数据手册(CC2530的数据手册、Z-Stack协议栈说明、Z-Stack协议栈API函数使用说明等)文件,然后再进行协议栈的修改。 最后,还需要烧录器下载到相应的硬件,实现zigbee无线传感器网络的组建和开发。 设计思路3.1.1协议与协议栈协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发;议栈是协议的具体实现形式。 通俗的理解为代码实现的函数库,以便于开发人员调用。

3.1Z-Stack协议栈3.1.1协议与协议栈协议栈是指网络中各层协议的总和,一套协议的规范。 其形象地反映了一个网络中文件传输的过程由上层协议到底层协议,再由底层协议到上层协议。 使用最广泛的是因特网协议栈,由上到下的协议分别是应用层(Http、Tel、DNS、Email等),运输层(TCP、UDP),网络层(IP),链路层(WI-FI、以太网、令牌环、FDDI等)。 3.1Z-Stack协议栈3.1.1协议与协议栈3.1Z-Stack协议栈3.1.1协议与协议栈Zigbee协议栈开发的基本思路如下。 ①借助TI提供的协议栈中例程SampleApp进行二次开发,用户不需要深入研究复杂的zigbee协议栈,这样可以减轻开发者的工作量。 ②Zigbee无线传感器网络中数据采集,只需要用户在应用层加入传感器的读取函数和添加头文件即可实现。 ③如果考虑节能,可以根据数据采集周期(zigbee协议栈例程中已开发了定时程序)进行定时,定时时间到就唤醒zigbee终端节点,终端节点唤醒后,自动采集传感器数据,然后将数据发送给路由器或者直接发给协调器,即监测节点定时汇报监测数据。 ④协调器(网关)根据下发的控制命令,将控制信息转发到具体的节点,即控制节点等待控制命令下发。 3.1Z-Stack协议栈3.1.2使用Z-Stack协议栈传输SampleApp.c 中定义了发送函数static voidSampleApp_SendTheMessage(void)。 该函数通过调用AF_DataRequest来发送数据。

无线传感器网络协议栈研究与设计-第3章

第3章 低功耗无线传感器网络协议栈整体设计 本章的目标是对低功耗环境测控网络协议栈进行整体设计。首先对环境测控系统进行需求分析明确其适用场景和网络设备类型;然后,根据需求分析确定协议栈的设计目标,并选择适合的网络拓扑结构和协议栈的分层架构。协议栈的网络层和MAC 层将作为本章的设计的重点。 3.1 网络需求分析 3.1.1 应用场景介绍 本课题来源于研究生校企合作项目,所设计的低功耗无线传感器协议栈主要应用于环境测控系统中。该系统长期无人值守,其温度、湿度等环境参数由连接无线节点的传感器实时采集并上传至汇聚节点,汇聚节点再通过有线的方式传输至面向用户的管理终端。多个子系统采集的数据最后由各自的管理终端传送至云端处理中心进行数据的保存,整个系统框图如图3.1所示。 云端处理中心 二级中继 汇聚节点 图3.1 环境测控系统框图 图中的环境测控无线网络是执行数据采集和设备控制的主体,也是协议栈发挥作用的区域。一个环境测控无线网络负责一个区域,区域之间有一定的距离,

因此无线网络之间不存在干扰,但无线网络的运行方式一致。该项目处于初期开发阶段,所以本文设计的协议栈只应用于单个环境测控无线网络中。 该课题所涉及的环境测控系统处于室内,人员进出频率低。网络中节点数不超过65个,包含一个汇聚节点。点对点通信的距离要求达到20米。传感器节点以10秒为周期采集并发送环境数据。考虑到室内可能会出现一些特殊设备、隔断等障碍影响通信距离,并使得部分节点处于屏蔽的位置,因此网络通过设置中继节点来扩展通信距离,经过中继后的通信距离要求60米及以上。由于成本等原因,课题设定数据包最多经过两级中继传递,每级中继最多4个,中继数量不超过8个。同时,系统中存在少量控制节点,控制节点连接室内的控温设备来调节室内温度。控制节点由工作人员从软件端下达命令进行开关,因此不具备周期性。该课题要求除汇聚节点、中继节点之外的所有节点能在1000mA/h电池的支持下工作一年以上。为保证数据采集的有效性和传输的可靠性,该课题要求多节点共享信道的丢包率在5%以内。此外,由于环境的特殊性,人员不能随时到场,还要求该环境测控网络中的节点具有安装简单、组网快速、配置容易的特点。以上需求总结如表3.1所示。 表3.1 环境测控系统需求指标 表3.1明确了该环境测控无线网络的要求。通过需求指标能使协议栈的设计更有约束性,设计方向也会更加明确。

(中文)基于无线传感器网络桥梁安全监测系统

基于无线传感器网络的桥梁安全检测系统 摘要 根据桥梁监测无线传感器网络技术的桥梁安全监测系统,以实现方案的安全参数的需要;对整个系统的结构和工作原理的节点集、分簇和关键技术,虽然近年来在无线传感器网络中,已经证明了其潜在的提供连续结构响应数据进行定量评估结构健康,许多重要的问题,包括网络寿命可靠性和稳定性、损伤检测技术,例如拥塞控制进行了讨论。 关键词:桥梁安全监测;无线传感器网络的总体结构;关键技术 1 阻断 随着交通运输业的不断发展,桥梁安全问题受到越来越多人的关注。对于桥梁的建设与运行规律,而特设的桥梁检测的工作情况,起到一定作用,但是一座桥的信息通常是一个孤立的片面性,这是由于主观和客观因素,一些桥梁安全参数复杂多变[1]。某些问题使用传统的监测方法难以发现桥梁存在的安全风险。因此长期实时监测,预报和评估桥梁的安全局势,目前在中国乃至全世界是一个亟待解决的重要问题。 桥梁安全监测系统的设计方案,即通过长期实时桥跨的压力、变形等参数及测试,分析结构的动力特性参数和结构的评价科关键控制安全性和可靠性,以及问题的发现并及时维修,从而确保了桥的安全和长期耐久性。 近年来,桥梁安全监测技术已成为一个多学科的应用,它是在结构工程的传感器技术、计算机技术、网络通讯技术以及道路交通等基础上引入现代科技手段,已成为这一领域中科学和技术研究的重点。 无线传感器网络技术,在桥梁的安全监测系统方案的实现上,具有一定的参考价值。 无线传感器网络(WSN)是一种新兴的网络科学技术是大量的传感器节点,通过自组织无线通信,信息的相互传输,对一个具体的完成特定功能的智能功能的协调的专用网络。它是传感器技术的一个结合,通过集成的嵌入式微传感器实时监控各类计算机技术、网络和无线通信技术、布式信息处理技术、传感以及无线发送收集到的环境或各种信息监测和多跳网络传输到用户终端[2]。在军事、工业和农业,环境监测,健康,智能交通,安全,以及空间探索等领域无线传感器网络具有广泛应用前景和巨大的价值。 一个典型的无线传感器网络,通常包括传感器节点,网关和服务器,如图1

基于无线传感器网络的智能交通系统的设计

一、课题研究目的 针对目前中国的交叉路口多,车流量大,交通混乱的现象研究一种控制交通信号灯的基于无线传感器的智能交通系统。 二、课题背景 随着经济的快速发展,生活方式变得更加快捷,城市的道路也逐渐变得纵横交错,快捷方便的交通在人们生活中占有及其重要的位置,而交通安全问题则是重中之重。据世界卫生组织统计,全世界每年死于道路交通事故的人数约有120 万,另有数100 万人受伤。中国拥有全世界1. 9 %的汽车,引发的交通事故占了全球的15 % ,已经成为交通事故最多发的国家。2000 年后全国每年的交通事故死亡人数约在10 万人,受伤人数约50万,其中60 %以上是行人、乘客和骑自行车者。中国每年由于汽车安全方面所受到的损失约为5180 亿(人民币),死亡率为9 人/ 万·车,因此,有效地解决交通安全问题成为摆在人们面前一个棘手的问题。 在中国,城市的道路纵横交错,形成很多交叉口,相交道路的各种车辆和行人都要在交叉口处汇集通过。而目前的交通情况是人车混行现象严重,非机动车的数量较大,路口混乱。由于车辆和过街行人之间、车辆和车辆之间、特别是非机动车和机动车之间的干扰,不仅会阻滞交通,而且还容易发生交通事故。根据调查数据统计,我国发生在交叉口的交通事故约占道路交通事故的1/ 3,在所有交通事故类型中居首位,对交叉口交通安全影响最大的是冲突点问题,其在很大程度上是由于信号灯配时不合理(如黄灯时间太短,驾驶员来不及反应),以及驾驶员不遵循交通信号灯,抢绿灯末或红灯头所引发交通流运行的不够稳定。随着我国经济的快速发展,私家车也越来越多,交通控制还是延续原有的定时控制,在车辆增加的基础上,这种控制弊端也越来越多的体现出来,造成了十字交叉路口的交通拥堵和秩序混乱,严重的影响了人们的出行。智能交通中的信号灯控制显示出了越来越多的重要性。国外已经率先开展了智能交通方面的研究。 美国VII系统(vehicle infrastructure integration),利用车辆与车辆、车辆与路边装置的信息交流实现某些功能,从而提高交通的安全和效率。其功能主要有提供天气信息、路面状况、交叉口防碰撞、电子收费等。目前发展的重点主要集中在2个应用上: ①以车辆为基础; ②以路边装置为基础。欧洲主要是CVIS 系统(cooperative vehicle infrastructure system)。它有60 多个合作者,由布鲁塞尔的ERTICO 组织统筹,从2006 年2 月开始到2010年6月,工作期为4年。其目标是开发出集硬件和软件于一体的综合交流平台,这个平台能运用到车辆和路边装置提高交通管理效率,其中车辆不仅仅局限于私人小汽车,还包括公共交通和商业运输。日本主要的系统是UTMS 21 ( universal traffic management system for the 21st century , UTMS 21)。是以ITS 为基础的综合系统概念,由NPA (National Police Agency) 等5个相关部门和机构共同开发的,是继20 世纪90 年代初UTMS 系统以来的第2代交通管理系统,DSSS是UTMS21中保障安全的核心项目,用于提高车辆与过街行人的安全。因此,从国外的交通控制的发展趋势可以看出,现代的交通控制向着智能化的方向发展,大多采用计算机技术、自动化控制技术和无线传感器网络系统,使车辆行驶和道路导航实现智能化,从而缓解道路交通拥堵,减少交通事故,改善道路交通环境,节约交通能源,减轻驾驶疲劳等功能,最终实现安全、舒适、快速、经济的交通环境。

基于无线传感网络的大型结构健康监测系统_尚盈

文章编号:1004-9037(2009)02-0254-05 基于无线传感网络的大型结构健康监测系统 尚 盈 袁慎芳 吴 键 丁建伟 李耀曾 (南京航空航天大学智能材料与结构航空科技重点实验室,南京,210016) 摘要:针对大型碳纤维复合材料机翼盒段壁板结构,实现了基于无线传感网络的多点应变结构健康监测系统,采用自组织竞争神经网络成功判别了集中载荷模拟的损伤位置。本系统由传感采集子系统、无线传感网络子系统和终端监控子系统三部分组成。为了降低系统网络功耗及成本,提高系统的稳定性和可靠性,改善传感网络的实时性和同步性,设计了可直接配接无线传感网络节点的低功耗多通道应变传感器信号调理电路和基于无线传感网络的层次路由协议,开发了多通道应变数据采集、网络簇头转发和中继节点接收等主要软件模块。实验证明,相比于传统有线的监测方法和数据采集系统,基于无线传感网络的结构健康监测系统具有负重轻、成本低、易维护和搭建移动方便等优点。 关键词:无线传感网络;结构健康监测;层次路由协议;自组织竞争网络中图分类号:T P2;T P9 文献标识码:A  基金项目:国家“八六三”高技术研究发展计划(2007AA 032117)资助项目;国家自然科学基金(60772072,50420120133)资助项目;航空基金(20060952)资助项目。 收稿日期:2007-09-05;修订日期:2008-04-17 Large -Scale Structural Health Monitoring System Based on Wireless Sensor Networks S hang Ying ,Yuan Shenf ang ,Wu J ian ,Ding J ianw ei ,L i Yaoz eng (T he A ero nautic Key La bo rat or y o f Smart M ater ial and Str uct ur e,N anjing U niv ersit y o f Aer onautics and A str onautics,N anjing,210016,China) Abstract :Aimed at the large-scale structure and anisotropy nature o f the carbon fiber compos-ite material w ing box ,a large-scale structural health m onitoring system based on w ireless sen-sor netw orks is presented .A kind of artificial neural netw ork is designed to distinguish the damag e locatio n simulated by the co ncentrated load .The sy stem co nsists o f the sensor data ac-quisition,the w ireless sensor netw or ks,and the terminal monitoring sub-sy stem s.To im pro ve the performance o f the system ,the signal conditio ning circuit and the hierarchical routing pro -to col are designed based o n w ireless sensor netw orks ,the prog rams of data acquisition and Sink node are ex ploited.Experimental result pro ves that the system has advantag es of flexibili-ty o f deplo yment,low maintenance and deploym ent costs . Key words :w ir eless senso r netw or ks ;str uctural health monitoring ;hierarchical routing ;self -org anizing com petitive netw o rk 引 言 结构健康监测技术是采用智能材料结构的新概念,利用集成在结构中的先进传感/驱动元件网络,在线实时地获取与结构健康状况相关的信息(如应力、应变、温度、振动模态、波传播特性等),结 合先进的信号信息处理方法和材料结构力学建模 方法,提取特征参数,识别结构的状态,包括损伤,并对结构的不安全因素在其早期就加以控制,以消除安全隐患或控制安全隐患的进一步发展,从而实现结构健康自诊断、自修复、保证结构的安全和降低维修费用[1]。 无线传感网络节点具有局部信号处理的功能, 第24卷第2期2009年3月数据采集与处理Jour nal of D ata A cquisition &P ro cessing Vo l.24N o.2M a r.2009

(完整版)IEEE.802.15.4网络协议栈及物理层

IEEE.802.15.4网络协议栈及物理层 IEEE 802.15.4网络协议栈基于开放系统互连模型(OSI),如图5-4所示,每一层都;实现一部分通信功能,并向高层提供服务。 IEEE 802.15.4标准只定义了PHY层和数据链路层的MAC子层。PHY层由射频收发器以及底层的控制模块构成。MAC子层为高层访问物理信道提供点到点通信的服务接口。 MAC子层以上的几个层次,包括特定服务的聚合子层(service specific convergence sublayer, SSCS),链路控制子层(logical link control , LLC)等,只是IEEE 802.15.4标准可能的上层协议,并不在IEEE 802.15.4标准的定义范围之内。SSCS为IEEE 802.15.4的MAC层接入IEEE 802.2标准中定义的LLC子层提供聚合服务。LLC子层可以使用SSCS的服务接口访问IEEE 802.15.4网络,为应用层提供链路层服务。 5.3.1物理层 物理层定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务和物理层管理服务。物理层数据服务从无线物理信道上收发数据,物理层管理服务维护一个由物理层相关数据组成的数据库。 物理层数据服务包括以下五方面的功能: (1)激活和休眠射频收发器; (2)信道能量检测(energy detect); (3)检测接收数据包的链路质量指示(link quality indication , LQI); (4)空闲信道评估(clear channel assessment, CCA); (5)收发数据。 信道能量检测为网络层提供信道选择依据。它主要测量目标信道中接收信号的功率强度,由于这个检测本身不进行解码操作,所以检测结果是有效信号功率和噪声信号功率之和。 链路质量指示为网络层或应用层提供接收数据帧时无线信号的强度和质量信息,与信道能量检测不同的是,它要对信号进行解码,生成的是一个信噪比指标。这个信噪比指标和物理层数据单元一道提交给上层处理。 空闲信道评估判断信道是否空闲。IEEE 802.15.4定义了三种空闲信道评估模式:第一种简单判断信道的信号能量,当信号能量低于某一门限值就认为信道空闲;第二种是通过判断无线信号的特征,这个特征主要包括两方面,即扩频信号特征和载波频率;第三种模式是前两种模式的综合,同时检测信号强度和信号特征,给出信道空闲判断。 1.物理层的载波调制

基于ZigBee协议栈的无线传感器网络的设计

基于ZigBee 协议栈的无线传感器网络的设计 徐振峰,尹晶晶,陈小林,周全 (安徽国防科技职业学院机电工程系,安徽六安237011) 摘要:首先介绍了无线传感器网络的基本拓扑结构与传感器节点的结构,详细说明了基于ZigBee 协议栈的无线传感网络的建立过程,包括协调器启动及建立网络、传感器节点启动及加入网络、传感器节点与协调器之间建立绑定以及传感器节点向协调器发送数据的过程。设计了基于ZigBee 协议栈的无线传感网络系统。以采集温度信息为例,协调器能够接收到传感器节点发来的数据,并能通过RS232串口,将收到的数据发送给PC 机进行显示。实验显示在距离 80m 远处,系统仍能保持良好的通信质量。 关键词:ZigBee 协议栈;无线传感器网络;协调器;传感器节点中图分类号:TP393 文献标识码:A 文章编号:1674-6236(2012)05-0075-03 Design of wireless sensor networks based on ZigBee stack XU Zhen -feng ,YIN Jing -jing ,CHEN Xiao -lin ,ZHOU Quan (Department of Mechanical and Electrical Engineering ,Anhui Vocational College of Defense Technology ,Liu ’an 237011,China ) Abstract:First ,the basic topological structures of wireless sensor network and the structure of sensor node are introduced.The starting -up process of wireless sensor network based on ZigBee stack is explained in details ,including startup and establishing network of coordinator ,startup and joining network of sensor node ,binding between sensor nodes and coordinator ,and the process of terminal nodes sending data to coordinator.The wireless sensor network is designed based on ZigBee stack.Taking sampling temperature information as a example ,the coordinator can collect the information from sensor nodes ,and send them to PC by using RS232.The temperature information can be displayed in PC.The experiment shows that good communication quality of this system can be obtained ,although at the distance of 80meters.Key words:ZigBee stack ;wireless sensor network ;coordinator ;sensor node 收稿日期:2012-01-12 稿件编号:201201050 基金项目:安徽省高校省级优秀青年人才基金项目(2010SQRL202) 作者简介:徐振峰(1981—),男,山东郓城人,硕士,讲师。研究方向:无线传感器网络理论及应用。 无线传感器网络(Wireless Sensor Network ,WSN )是由部署在监测区域内大量廉价微型传感器节点组成,通过无线通信方式形成多跳、自组织网络系统,其目的是协作地感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观察者[1]。 目前能够用于短距离无线传感网络的通信技术主要有5种[2]:Wi-Fi 技术、超宽带通信(Ultra Wideband ,UWB )技术、近场通信(Near Field Communication ,NFC )技术、蓝牙以及 ZigBee 技术。其中,ZigBee [3]是基于IEEE802.15.4的一种新兴 短距离无线通信技术,其特点是低功耗、低速率、低复杂度、低成本等。这些特点决定了ZigBee 技术非常适合应用于无线传感网络中,因此ZigBee 技术被认为是最有可能应用于工业监控、传感器网络、家庭监控、安全监控等领域的无线技术。在ZigBee 协议的制定中,IEEE802.15.4无线标准定义了物理层(Physical Layer ,PHY )和介质访问控制层(Medium Access Control Sub -Layer ,MAC ),而ZigBee 协议栈的网络层和应用 层是由ZigBee 联盟制定的。 支持ZigBee 协议的无线通信芯片主要有TI 公司推出的CC2420、CC2430、CC2530以及Freescale 半导体公司推出的MC13191、MC13192及MC13193等芯片。CC2430是世界上首 个单芯片ZigBee 解决方案,除了保持CC2420所包括的优良射频性能之外,其内部还集成了一个增强型8051内核,这使得 CC2430成为市面上最具有竞争力的ZigBee 无线收发芯片。 文中设计了基于ZigBee 协议栈的无线传感网络,该系统包括一个协调器和四个终端传感节点。以采集温度信息为例,实现了无线通信功能。协调器节点通过RS232串口,将收到的数据发送给PC 机进行处理及显示。 1 无线传感网络的结构 1.1 网络体系结构 无线传感网路中的基本单元是传感器节点,根据其在网 络中的所承担的任务不同,传感器节点可以分为3类:协调器、路由器和传感器节点。在网络中,协调器负责建立网络,允许路由器和传感器节点与其绑定,并接收路由器和传感器节点发送来的数据信息,以及传送给PC 机进行处理、存储等;传感器节点负责感知被测对象的物理信息,并将其无线 电子设计工程 Electronic Design Engineering 第20卷Vol.20第5期No.52012年3月Mar.2012 -75-

无线传感器网络技术试题及答案

无线传感器网络技术试题及答案 一、填空题 1.传感器网络的三个基本要素:传感器、感知对象、用户(观察者) 2.传感器网络的基本功能:协作式的感知、数据采集、数据处理、发布感知信息 3.无线传感器节点的基本功能:采集数据、数据处理、控制、通信 4.传感节点中处理部件用于协调节点各个部分的工作的部件。 5.基站节点不属于传感器节点的组成部分 6.定向扩散路由机制可以分为三个阶段:兴趣扩展阶段、梯度建立阶段、路径加强阶段 7.无线传感器网络特点:大规模网络、自组织网络、可靠的网络、以数据为中心的网络、应用相关的网络 8.NTP时间同步协议不是传感器网络的的时间同步机制。 9.IEEE标准主要包括:物理层。介质访问控制层 10.从用户的角度看,汇聚节点被称为网关节点。 11.数据融合的内容主要包括:多传感器的目标探测、数据关联、跟踪与识别、情况评估和预测 13.传感器网络的电源节能方法:_休眠(技术)机制、__数据融合 14.分布式系统协同工作的基础是时间同步机制

15.无线网络可以被分为有基础设施的网络与没有基础设施的网络,在无线传感器网络,Internet网络,WLan网络,拨号网络中,无线传感器网络属于没有基础设施的网络。 16.传感器网络中,MAC层与物理层采用的是IEEE制定的IEEE 协议 17.分级结构的传感器网络可以解决平面结构的拥塞问题 18.以数据为中心特点是传感器网络的组网特点,但不是Ad-Hoc的组网特点 19.为了确保目标节点在发送ACK过程中不与其它节点发生冲突,目标节点使用了SIFS帧间间隔 20.典型的基于竞争的MAC协议为CSMA 二、选择题 1.无线传感器网络的组成模块分为:通信模块、()、计算模块、存储模块和电源模块。A A.传感模块模块C网络模块D 实验模块 2..在开阔空间无线信号的发散形状成()。A A.球状B网络C直线D射线 3.当前传感器网络应用最广的两种通信协议是()D A. B. C. D.

无线传感器网络路由协议

无线传感器网络的关键技术有路由协议、MAC协议、拓扑控制、定位技术等。路由协议: 数据包的传送需要通过多跳通信方式到达目的端,因此路由选择算法是网络层设计的一个主要任务。路由协议主要负责将数据分组从源节点通过网络转发到目的节点,它主要包括两个方面的功能: 1.寻找源节点和目的节点间的优化路径。 2.将数据分组沿着优化路径正确转发。 无线传感器与传统的无线网络协议不同之处,它受到能量消耗的制约,并且只能获取到局部拓扑结构的信息,由于这两个原因,无线传感器的路由协议要能够在局部网络信息的基础上选择合适路径。传感器由于它很强的应用相关性,不同应用中的路由协议差别很大,没有通用的路由协议。无线路由器的路由协议应具备以下特点: (1)能量优先。需要考虑到节点的能量消耗以及网络能量均衡使用的问题。(2)基于局部拓扑信息。WSN为了节省通信能量,通常采用多跳的通信模式,因此节点如何在只能获取到局部拓扑信息和资源有限的情况下实现简单 高效的路由机制,这是WSN的一个基本问题。 (3)以数据为中心。传统路由协议通常以地址作为节点的标识和路由的依据,而WSN由于节点的随机分布,所关注的是监测区域的感知数据,而不是具体哪个节点获取的信息,要形成以数据为中心的消息转发路径。 (4)应用相关。设计者需要针对每一个具体应用的需求,设计与之适应的特定路由机制。 现介绍几种常见的路由协议(平面路由协议、网络分层路由协议、地理定位辅助路由协议): 一、平面路由协议 平面路由协议中,逻辑结构时平面结构,节点间地位平等,通过局部操作和反馈信息来生成路由。当汇聚点向某些区域发送查询并等待来自于这些区域内传感器所采集的相关数据,其中的数据不能采用全局统一的ID,而是要采用基于属性的命名机制进行描述。平面路由的优点是结构简单、鲁棒性(即路由机制的容错能力)较好,缺点是缺乏对通信资源的优化管理,对网络动态变化的反应速度较慢。其中典型的平面路由协议有以下几种: 1.1.洪泛式路由(Flooding): 这是一种传统的网络通信路由协议。这种算法不要求维护网络的拓扑结构和相关路由的计算,仅要求接受到信息的节点以广播形式转发数据包。例如:S节点要传送一段数据给D节点,它需要通过网络将副本传送给它每一个邻居节点,一直到传送到节点D为止或者为该数据所设定的生存期限为零为止。优点在于:实现简单;不需要为保持网络拓扑信息和实现复杂路由发现算法消耗计算资源;适用于鲁棒性较高的场合。但同时也有相应的缺点:一个节点可能得到一个数据的多个副本;存在部分重叠,如果相邻节点同时对某件事作出反应,则两个节点的邻居节点将收到两份数据副本;盲目使用资源,无法作出自适应的路由选择。 为克服Flooding算法这些固有的缺陷,S.Hedetniemi等人提出闲聊式

无线传感器网络技术的应用

无线传感器网络技术的应用 摘要:无线传感器网络(WSN)是新兴的下一代传感器网络,在国防安全和国民经济各方面均有着广阔的应用前景。本文介绍了无线传感器网络的组成和特点,讨论了无线传感器网络在军事、瓦斯监测系统、智能家具,环境监测,农业。交通等方面的现有应用,最后提出无线传感器网络技术需要解决的问题。 关键词:无线传感器网络,军事、瓦斯监测系统、智能家具,环境监测,农业。交通。 1.无线传感器网络研究背景以及发展现状 随着半导体技术、通信技术、计算机技术的快速发展,90年代末,美国首先出现无线传感器网络(WSN)。1996年,美国UCLA大学的William J Kaiser教授向DARPA提交的“低能耗无线集成微型传感器”揭开了现代WSN网络的序幕。1998年,同是UCLA大学的Gregory J Pottie教授从网络研究的角度重新阐释了WSN的科学意义。在其后的10余年里,WSN网络技术得到学术界、工业界乃至政府的广泛关注,成为在国防军事、环境监测和预报、健康护理、智能家居、建筑物结构监控、复杂机械监控、城市交通、空间探索、大型车间和仓库管理以及机场、大型工业园区的安全监测等众多领域中最有竞争力的应用技术之一。美国商业周刊将WSN网络列为21世纪最有影响的技术之一,麻省理工学院(MIT)技术评论则将其列为改变世界的10大技术之一。WSN是由布置在监测区域内传感器节点以无线通信方式形成一个多跳的无线自组网(Ad hoc),其目的是协作的感知,采集

和处理网络覆盖区域中感知对象的信息,并发送给观察者。传感器、感知对象和观察者是WSN的三要素。将Ad hoc技术与传感器技术相结合,人们可以通过WSN感知客观世界,扩展现有网络功能和人类认识世界的能力。WSN技术现已经被广泛应用。图为WSN基本结构。 WSN经历了从智能传感器,无线智能传感器到无线传感器三个发展阶段,智能传感器将计算能力嵌入传感器中,使传感器节点具有数据采集和信息处理能力。而无线智能传感器又增加了无线通信能力,WSN将交换网络技术引入到智能传感器中使其具备交换信息和协调控制功能。 无线传感网络结构由传感器节点,汇聚节点,现场数据收集处理决策部分及分散用户接收装置组成,节点间能够通过自组织方式构成网络。传感器节点获得的数据沿着相邻节点逐跳进行传输,在传输过程中所得的数据可被多个节点处理,经多跳路由到协调节点,最后通过互联网或无线传输方式到达管理节点,用户可以对传感器网络进行决策管理、发出命令以及获得信息。无线传感器网络在农业中的运用是推进农业生产走向智能化、自动化的最可行的方法之一。近年来国际上十分关注WSN在军事,环境,农业生产等领域的发展,美国和欧洲相继启动了WSN研究计划,我国于1999年正式启动研究。国家自然科学基金委员会在2005年将网络传感器中基础理论在一篇我国20年预见技术调查报告中,信息领域157项技术课题中7项与传感器网络有直接关系,2006年初发布的《国家长期科学与技术发展

相关主题