(通信与信息系统专业论文)基于tinyos平台的openzigbee协议栈实现及分析研究.pdf_第1页
(通信与信息系统专业论文)基于tinyos平台的openzigbee协议栈实现及分析研究.pdf_第2页
(通信与信息系统专业论文)基于tinyos平台的openzigbee协议栈实现及分析研究.pdf_第3页
(通信与信息系统专业论文)基于tinyos平台的openzigbee协议栈实现及分析研究.pdf_第4页
(通信与信息系统专业论文)基于tinyos平台的openzigbee协议栈实现及分析研究.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

南京邮电大学硕士研究生学位论文 摘要 摘要 随着无线传感器网络的迅速发展,其中的各项技术正被越来越多的学者所研究。在 多个传感器网络关键技术中,网络协议技术由于高效组网的迫切需要逐渐成为研究的热 点。而在众多无线传感器网络协议中,z i g b e e 协议由于其低消耗、低能量、高容错性等 优势使其成为在实际环境中使用最为频繁的网络协议。 由于现行的z i g b e e 研究开发环境大多是以各大厂商提供的非开源函数库为平台,研 究者很难了解到协议细节以及其工作流程。但随着“o p e n w s n ”理念的提出,越来越 多的研究者投入到“开放式无线传感器网络”这一课题之中。同时,伴随着传感器网络 节点硬件结构的开放,t i n y o s 开源传感器网络操作系统的逐渐成熟,使得网络协议, 特别是本课题”基于t i n y o s 平台的z i g b e e 协议栈实现及分析研究变得更加具有现实 意义。 本文研究的目标定位于:利用本教研室已有的无线传感器网络硬件节点平台t e l o s b , 在其上移植t i n y o s 操作系统,参照z i g b e e 协议标准的基础上,研究o p e n z b 工作组 所实现的o p e n z i g b e e 协议栈雏形,在此过程中发现其仅仅实现了z i g b e e 协议标准中 的部分组网功能,对于其他如能量管理、网络优化等功能都没有实现。 通过分析协议标准,将原有的o p e n z i g b e e 协议栈雏形进行按层次的功能改进,从 而构建_ 个稳定优质的o p e n - z i g b e e 协议栈。并利用改善后的协议栈设计了一簇树拓扑 网络结构的应用程序实例,通过网络抓包分析该程序的运行结果,进一步验证了改善协 议栈的功能特性。 该开源的o p e n - z i g b e e 协议栈的实现,使得一个包括硬件节点、操作系统、网络协 议在内的完整w s n 开发平台成功构建,从而有助于后期的无线传感器网络网络层与应 用层开放性的进一步研究与实现。 关键字:无线传感器网络,t i n y o s ,o p e n z i g b e e 南京邮电大学硕士研究生学位论文 a b s t r a c t a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fw i r e l e s ss e n s o rn e t w o r k ( w s n ) e v e r yf i e l d so ft h i s t e c h n o l o g ya r eb e i n gs t u d i e db ym o r ea n dm o r es c h o l a r s a m o n ga l lt h ek e yt e c h n o l o g i e si n w s n ,n e t w o r kp r o t o c o lt e c h n o l o g yg r a d u a l l yb e c o m e sar e s e a r c hh o t s p o t ,b e c a u s eo ft h e u r g e n tn e e dt oh i g h l ye f ! f i c i e n tn e t w o r kc o n s t r u e t i o n a m o n gm a n yw s n p r o t o c o l s z i g b e e b e c o m e st h em o s tp o p u l a rn e t w o r kp r o t o c o l ,a c c o r d i n gt oi t se x c e l l e n tf e a t u r e ss u c ha sl o w c o n s u m p t i o n ,l o we n e r g y , h i g h l yf a u l tt o l e r a n c e t o d a y , t h er e s e a r c ha n dd e v e l o p m e n te n v i r o n m e n to fz i g b e ei san o n o p e n - s o u r c e w h i c hi s f u n c a t i o nl i b r a r i e sp r o v i d e db yt h e 恤m a jo r z i g b e ee q u i p m e n tm a n u f a c t u r e r s s o , r e s e a r c h e r sc o u l dh a r d l yu n d e r s t a n dt h ed e t a i l so fp r o t o c o la n di t sw o r kf l o w h o w e v e r , w i t h t h ec o n e e p to f ”o p e n - w s n ”p u t t i n gf o r w a r d ,m o r ea n dm o r er e s e a r c h e r sb e g i nt ow o r ki n t h es u b j e c to f ”o p e nw i r e l e s ss e n s o rn e t w o r k s ”w i t ht h ep u b l i c i t yo fw s nn o d eh a r d w a r e d e s i g na n dt h em a t u r i t yo fo p e n s o u r c ew s no p e r a t i n gs y s t e m ( t i n y o s ) ,n e t w o r kp r o t o c o l , e s p e c i a l l yt h et o p i co ft h i sp a p e r ”i m p l e m e n t a t i o na n da n a l y s i so fz i g b e ep r o t o c o ls t a c k b a s e do nt h et i n y o sp l a t f o r m ”h a sb e c o m em o r ep r a c t i c a ls i g n i f i c a n c e i nt h i sp a p e r ,w s nn o d e “t e l o s b ”i ss e l e c t e da st h ed e v e l o p m e n th a r d w a r ep l a t e f o r m ,a n d t r a n s p l a n to p e r a t i n gs y s t e m - t i n y o so ni t a f t e rr e s e a r c ho nt h ee m b r y o n i cf o r mo fo p e n z i g b e ep r o t o c o ls t a c ki m p l e m e n t e db yt h eo p e n z br e s e a r c hw o r k i n gg r o u p ,w ef i n dt h a t o n l yp a r to ft h ez i g b e ep r o t o c o lf u n c t i o n sa r ea c h i e v e d ,w h i l e ,r e f e r e n c et ot h es t a n d a r d z i g b e ep r o t o c o l ,e n e r g ym a n a g e m e n t ,n e t w o r ko p t i m i z a t i o na n do t h e rf u n c t i o n sa r en o t r e a l i z e d b ya n a l y z i n gz i g b e ep r o t o c o ls t a n d a r d s ,w eb u i l da no p e n z i g b e ep r o t o c o ls t a c kw i t ha s t a b l eo fq u a l i t y , a c c o r d i n gt oo p e n z b se m b r y o n i cf o r m a f t e rt h a t ,w et a k ea d v a n t a g eo f t h i si m p r o v e dd e s i g no ft h ep r o t o c o ls t a c kt ob u i l da na p p l i c a t i o ne x a m p l ew i t hac l u s t e r - t r e e t o p o l o g y t h ev a l i d i t yo ft h i sp r o t o c o ls t a c ki sp r o v e db yt h en e t w o r kc a p t u r ea n a l y s i so ft h e e x p e r i m e n t s r e a l i z a t i o no ft h i so p e n s o u r c ez i g b e ep r o t o c o ls t a c km a k e saw s n d e v e l o p m e n tp l a t f o r m , i n c l u d eh a r d w a r en o d e ,o p e r a t i n gs y s t e ma n dn e t w o r k p r o t o c o l ,s u c c e s s f u l l yc o n s t r u c t e d ,a n d a sar e s u l t ,i tc o n t r i b u t e st ot h ef u r t h e rr e s e a r c ha n di m p l e m e n t a t i o no fn e t w o r ka n d a p p l i c a t i o nd e v e l o p m e n ti no p e n - w s n k e y w o r d s :w i r e l e s ss e n s o rn e t w o r k ,t i n y o s ,o p e n z i g b e e i i 南京邮电大学学位论文原创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包 含其他人已经发表或撰写过的研究成果,也不包含为获得南京邮电大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的 任何贡献均已在论文中作了明确的说明并表示了谢意。 片l 研究生签名: 诠边s 日期: 翌翌:主:圣2 南京邮电大学学位论文使用授权声明 南京邮电大学、中国科学技术信息研究所、国家图书馆有权保留本人所送 交学位论文的复印件和电子文档,可以采用影印、缩印或其它复制手段保存论 文。本文电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分内容。 论文的公布( 包括刊登) 授权南京邮电大学研究生部办理。 研究生签名:羞山导师签名:乓! 堡 h p l c c 2 4 2 0 c h p l c c 2 4 2 0 ; p h y m h p l c c 2 4 2 0 ram - h p l c c 2 4 2 0 c h p l c c 2 4 2 0 r a m ; p h y m h p l c c 2 4 2 0 f i f o h p l c c 2 4 2 0 c h p l c c 2 4 2 0 f i f o ; 代码中可以看到p h y 按协议要求开放了两个服务接入点:p d s a p 与p l m e s a p ,共6 个功能函数以供外部调用,而这些功能函数的实现由p h y m 组件来完成。 还可以看出p h y m 的实现需要调用底层硬件抽象层的3 个功能函数,以供其完成基 本的物理层功能。 p h y 起到的作用仅仅相当于c 语言中头文件的作用,在该文件中申明了p h y 模块所 能开发的功能调用和所需调用的底层支持,但是具体的功能实现由p h y m 组件来完成。 下面所示的代码就是p h y m 模块所实现的物理层基本功能上层m a c 帧的发送: p d d a t a i t l c 幸书事宰宰宰事葺| 木幸幸幸宰事母奉木+ 幸木幸事 p d - d a l a 木木幸事宰事幸事事幸幸橐事事木木奎 幸幸木幸母事幸幸 a s y n cc o m m a n dr e s u l t tp d _ d a t a r e q u e s t ( u i n t 8 _ tp s d u l e n g t h ,u i n t s _ t 书p s d u ) c a l lh p l c c 2 4 2 0 f i f o w r i t e t x f i f o ( p s d u l e n g t h ,( u i n t s _ t ) p s d u ) ; c a l lh p l c c 2 4 2 0 c m d ( c c 2 4 2 0 一s t x o n ) ; s i g n a lp d _ d a t a c o n f i r m ( p h y _ s u c c e s s ) ; r e t u r ns u c c e s s ; 数据发送的基本流程首先是m a c 通过物理层数据服务接入点的d a t a r e q u e s t 函数向 物理层发送数据发送请求,请求函数中带有两个参数:物理层数据单元长度p s d u l e n g t h , 指向所要发送的数据单元指针u i n t 8 t 七p s d u ,通过这两个参数来完成所要发送的数据单 元定位。 p h y m 接收到这两个参数后,将其传递给硬件抽象模块h p l c c 2 4 2 0 f i f o ,该模块通 南京邮电大学硕士研究生学位论文第三章8 0 2 1 5 4 物理、链路层协议的实现及其改进 过建立输入输出缓冲队列来完成无线数据的发送,从程序中可以看到h p l c c 2 4 2 0 f i f o 模块中存在一个可供调用的功能函数h p l c c 2 4 2 0 f i f 0 w r i t e t x f i f o ( ) ,该函数完成基 本无线输出队列的写入功能。 将p s d u l e n g t h 长度的p s d u 指针所指向的内容写入到输出队列后,需要对c c 2 4 2 0 芯片寄存器写关键字使其发送队列中的内容,这一步通过 h p l c c 2 4 2 0 c m d ( c c 2 4 2 0 _ s t x o n ) i 函数来完成。此时m a c 层所提交的数据已经发送出 去,p h y m 还需带m a c 层所提成的发送请求进行确认,通过s i g n a l p d _ d a t a c o n f i r m ( p h y - s u c c e s s ) ;m a c 层收到该确认系统消息整个传送过程才完全结 束。 物理层的两个功能,除了上面介绍的数据发送以外,它还需对数据结构p i b 进行维 护,对该数据结构的读写操作分别由函数p l m e - g e t r e q u e s t 、p l m e s e t r e q u e s t 来实 现。 p l m e - s e t r e q u e s t n e : 奉宰半牛木奉木木枣率掌宰宰木+ 幸宰幸车p l m e s e r r 宰 母幸乖幸奉掌 奉奉木木木宰 幸母宰枣母毒幸 c o m m a n dr e s u l t _ tp l m e _ s e t r e q u e s t ( u i n t 8 _ t p i b a t t r i b u t e ,u i n t 8 一tp i b a t t r i b u t e v a l u e ) m a ci sd e m a n d i n gf o rp h yt ow r i t et h ei n d i c a t e dp i bv a l u e s w i t c h ( p i b a t t r i b u t e ) c a s ep h y c u rre n t c ha 卜心t e l : p h y _ p i b p h y c u r r e n t c h a r m e l = p i b a t t r i b u t e v a l u e ; t u n e p r e s e t ( p h yp i b p h y c u r r e n t c h a n n e l ) ; s i g n a lp l m e s e t c o n f h m ( p h y _ s u c c e s s ,p i b a t t r i b u t e ) ; b r e a k ; c a s ep h y c h a n n e l s s u p p o i u 琶d : p h y _ p i b p h y c h a n n e l s s u p p o r t e d = p i b a t t r i b u t e v a l u e ; s i g n a lp l m e _ s e t c o n f i r m ( p h y _ s u c c e s s ,p i b a t t r i b u t e ) ; b r e a k ; d e f a u l t : s i g n a lp l m e _ s e t c o n f i r m ( p h y _ u n s u p p o r t e d _ a t t r i b u t e ,p i b a t t r i b u t e ) ; b r e a k ; ) r e t u r ns u c c e s s ; ) 由程序可见,p l m e _ s e t r e q u e s t 函数有两个参数,分别指示p i b a t t r i b u t e 需要赋值 的p i b 属性条目,而p i b a t t r i b u t e v a l u e 为需要将属性条目改变成的值。函数实现中通过 s w i t c h 语句实现对四种不同属性条目进行赋值,在赋值语句执行完后,通过s i g n a l 语句 触发p l m es e t c o n f i r m 函数来返回赋值正确信息。 2 6 南京邮电大学硕上研究生学位论文第三章8 0 2 1 5 4 物理、链路层协议的实现及其改进 3 2 3 对o p e n - z b8 0 2 15 4 物理层实现的功能改进 阅读o p e n z b8 0 2 1 5 4 协议栈的物理层实现原代码可知,该组织仅仅对物理层的有 关数据发送的基本协议进行了实现,但是一些物理层的重要功能,如能量检测( e d ) , 清除信道评估( c c a ) ,都没有进行实现。由于考虑到上层协议使用的需要,现将能量 检测功能进行实现。 3 2 3 1e d 信道扫描的相关定义: 在z i g b e e 接收中,接收机的能量检测( e d ) 是信道选择算法中的一个重要组成部 分,它是为了对网络进行连接管理,而提供了一种信道测量方式。在z i g b e e 信道带宽 之内,对所接收到的信号功率进行估计,而不需要在信道上,对信号进行鉴别和译码。 通常能量检测的时间为8 个符号周期。 能量检测扫描使完整功能设备( p a n 协调器) 能获得每一个所扫描信道的峰值能量。 p a n 协调器可以利用这些信息,选择一个使用信道,在确定信道的基础上才启动一个 p a n 。在能量检测扫描期间,m a c 层丢弃所有物理层数据服务传来的帧信息。 按照协议标准m a c 层通过s a p 中的p l m e e d r e q u e s t 请求对物理层管理实体执行 能量检测。物理层通过p l m e e d c o n f i r m 来向m a c 层报告能量检测的结果,结果为从 o x 0 0 到0 x f f 的8 比特的整数,e d 的最小值0 代表接收功率小于接收机灵敏度。 3 2 3 2 p l m e e d r e q u e s t 函数的实现途径 硬件平台t e l o s b 的射频收发芯片c c 2 4 2 0 ,为我们实现e d 功能带来很方便的途径。 图3 5 为c c 2 4 2 0 功能结构图: c e 弘2 0 a f d 转掖 箍殴发 梭块 数4 解诵嚣 一敦,- r s s l 一增氙控制 一镜像抑制 一通逛滤波 一帧 i 步 膂瓣 剿鹫黼 卜,数据调物 s n 器厩 叫缪器 图3 - 5c c 2 4 2 0 功能结构图 射频收发芯片c c 2 4 2 0 是以数据包为单位的射频芯片,即必须从微处理器收满一个 南京邮电大学硕士研究生学位论文第三章8 0 2 1 5 4 物理、链路层协议的实现及其改进 数据包才会发送该数据包,数字接口收满一整包后,自动添加c r c 校验,并送入调制 模块进行数据调制,最后发送出去。当接收方监测到信道有数据时,将数据经过模数转 换后送入数字解调器中进行帧同步;如果同步就将数据填入接收缓冲区中,最后填充当 前信道内的接收信号强度指示器( r s s i r e c e i v es i g n a ls t r e n g t hi n d i c a t o r ) 信息。 r s s i 可以被直接用来当作能量指示的结果值,用来表征当前接收信号的强度。 c c 2 4 2 0 提供一个读取r s s i 值的命令,开发者可以调用该命令来得到当前信道的信号强 度值,并通过对该值的解析来判断当前信道是空闲还是繁忙。另外,c c 2 4 2 0 在接收到 数据包时,可以自动在数据包的倒数第二个字节里填充当前接收数据包时的r s s i 值。 这种特性可以使我们很方便实现p l m e e d r e q u e s t 函数,完成对当前信道进行一次能量 监测。 3 2 3 3 p l m e e d r e q u e s t 函数的编码实现 首先实现h p l c c 2 4 2 0 r e a d ( ) 函数,完成对c c 2 4 2 0 芯片特定地址的阅读: h p l c c 2 4 2 0 r e a d 1 i e : a s y n cc o m m a n d u i n t l6 - t h p l c c 2 4 2 0 r e a d ( u i n t s _ _ ta d d r ) u i n t l 6 一t d a t a2 o ; i f ( c a l lb u s a r b i t r a t i o n g e t b u s 0 一s u c c e s s ) a t o m i ce b u s y = t r u e ; t o s h _ c l rr a d i o _ c s n _ p i n 0 ; c l e a rt h er x f l a gi f s e t c a l lu s a r t c o n t r 0 1 i s t x i n t r p e n d i n 9 0 ; c a l lu s a i 玎c o l l 臼- 0 1 r x 0 ;i s r x i n t r p e n d i n 9 0 ; c a l lu s a r t c o n t r 0 1 t x ( a d d r0 x 4 0 ) ; w h i l e ( f e n a b l e d & & ! ( c a l lu s a r t c o n t r 0 1 i s r x i n t r p e n d i n 9 0 ) ) ; c a l lu s a r t c o n t r 0 1 r x o ; c a l lu s a i 玎c o 曲r 0 1 戗( 0 ) ; w h i l e ( f e n a b l e d & & ! ( c a l lu s a r t c o n t r 0 1 i s r x i n t r p e n d i n 9 0 ) ) ; d a t a = ( c a l lu s a r t c o n t r 0 1 r x 0 如上文所述,m l m e _ s t a r t r e q u e s t 原语由p a n 协调器m a c 层管理实体上层生成, m a c 层收到该请求后开始新的信标帧的配置与发送,即开始新的p a n 网络组建。其中 信标帧的配置工作尤为重要,它关系着整个网络的运作状况,m l m e函startrequest 数的众多参数就是对信标帧的配置说明。该代码的实现部分就展示了函数参数的赋值过 程。 网络设备的连接信息流程一般包括以下四种原语: ( 1 ) m l m e a s s o c i a t e r e q u e s t 用于设备请求与p a n 协调器建立连接,即向设备的 m a c 层管理实体服务接入点发送接入请求。 ( 2 ) m l m e a s s o c i a t e i n d i c a t i o n 由协调器的m a c 层管理实体生成,当其接收到连 接请求命令时,向其上层网络层发送该原语。 ( 3 ) m l m e a s s o c i a t e r e s p o n s e 由协调器网络层生成,并发送给它的m a c 层管理实 体,作为对m l m e a s s o c i a t e i n d i c a t i o n 原语的响应。 ( 4 ) m l m e - a s s o c e c o n f i r m 是由连接发送设备的m a c 层管理实体生成,作为对 m l m e a s s o c i a t e r e q u e s t 原语的响应。 现选择m l m ea s s o c i a t e r e q u e s t 函数做简要说明: m l m e - a s s o c i a t e r e q u e s t n c c o m m a n dr e s u l t _ tm l m e _ a s s o c i a t e r e q u e s t ( u i n t 8 _ tl o g i c a l c h a n n e l , u i m 8 _ tc o o r d a d d r m o d e , u i n t l 6 一tc o o r d p a n i d , u i n t 3 2 _ tc o o r d a d d r e s s , u i n t 8 _ tc a p a b i l i t y l n f o r m a t i o n , b o o ls e c u r i t ) 7 e n a b l e ) f r a m e _ _ p k t = ( m p d u 母) & s e n d _ _ b u f f e r s e n d _ b u f f e r _ m s g _ i n ; d e s t _ s h o 岫t r = ( d e s ts h o r t 木) & f r a m e _ p k t 一 d a t a 0 ; s o u r c e _ l o n g _ _ p t r = ( s o u r c e _ l o n g 宰) & f r a m e _ p k t - d a t a d e s t _ s h o r tl e n ; f r a m ep k t - l e n g t h = 2 1 ; f r a m e _ p k t - f r a m e _ c o n t r o l s e tf r a m e _ c o n t r o l ( t y p e _ c m d ,0 ,0 ,1 ,0 ,s h o r ta d d r e s s ,l o n ga d d r e s s ) ; f r a m e _ _ p k t f l a m e _ _ c o n t r o l1 = ( u i n t 8 _ t ) ( f l a m ec o n t r 0 1 ) ; f f a m e _ _ p k t 一 f r a m e e o n t r o l 2 = ( u i n t 8 _ t ) ( f r a m e c o n t r o l 8 ) ; 3 3 南京邮电大学硕士研究生学位论文 第三章8 0 2 1 5 4 物理、链路层协议的实现及其改进 f r a m e _ p k t - s e q _ _ n u m 。m a c _ _ p i b m a c d s n ; h e n a b l er e t r a n s m i s s i o n s s e n d _ b u f f e r s e n d _ b u f f e r m s g - i n r e t r a n s m i s s i o n

温馨提示

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

评论

0/150

提交评论