张博无线传感网论文.docx

上传人:b****6 文档编号:5951468 上传时间:2023-01-02 格式:DOCX 页数:14 大小:356.64KB
下载 相关 举报
张博无线传感网论文.docx_第1页
第1页 / 共14页
张博无线传感网论文.docx_第2页
第2页 / 共14页
张博无线传感网论文.docx_第3页
第3页 / 共14页
张博无线传感网论文.docx_第4页
第4页 / 共14页
张博无线传感网论文.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

张博无线传感网论文.docx

《张博无线传感网论文.docx》由会员分享,可在线阅读,更多相关《张博无线传感网论文.docx(14页珍藏版)》请在冰豆网上搜索。

张博无线传感网论文.docx

张博无线传感网论文

论文题目

 

以CC2530和zigbee2007协议栈为基础的温湿度及干簧门磁/霍尔开关度及干簧门磁/霍尔开关传感无线组网设计

 

姓名:

张博

学号:

201171060140

以CC2530和zigbee2007协议栈为基础的温湿度及干簧门磁/霍尔开关度及干簧门磁/霍尔开关传感无线组网设计

摘要

本文首先简单介绍ZigBee技术。

之后按照实际设计过程先组好网络,使得协调器能够收到其他8个节点的地址信息。

再分别设计温湿度传感器和干簧门磁/霍尔开关传感器,使其能够单独将信息发送给协调器。

最后再将这两个传感节点加入组好的网络中。

同时发送传感数据及地址数据。

最后根据各节点地址数据分析绘制网络拓扑结构。

最后说明实验过程中遇到的问题及其解决方法和实验需要特别注意的几个地方。

本文以实际例子说明程序设计过程,帮助ZigBee初学者理解TI官方例程中重要函数的作用,并学会如何根据自身需求修改。

对协议栈的整体介绍及工作流程没有涉及。

如有需要请参考TI官网或从其它渠道获取。

关键词

无线传感器网络ZigBee2007协议栈CC2530网络结构温湿度传感器干簧门磁/霍尔开关传感器

正文

1.ZigBee技术简介

ZigBee是一种短距离、低复杂度、低功耗、低数据速率、低成本的无线通信新技术,主要适合于自动控制和远程控制领域,可以嵌入在各种设备中,同时支持地理定位功能。

它依据IEEE802.15.4标准,可协调几千个节点之间的相互通信。

这些节点只需要很少的能量,以接力的方式通过无线通信把数据从一个节点传到另一个节点,通信效率高。

与其他无线网络相比,ZigBee技术是功耗和成本最低的技术,它以其经济、可靠、高效等优点在众多领域中有着广泛的应用前景。

ZigBee技术的显著特点就是:

低速率、低成本、低功耗、短距离、时延短、安全性高和网络容量大。

l、低速率

ZigBee有三个不同的工作频段,其数据传输速率有所不同,但是都处于较低的水平。

其中,2.4GHz频段数据传输速率为250kbps;915MHz频段数据传输速率为40kbps;868MHz频段数据传输速率为20kbps。

2、低功耗

由于ZigBec在工作模式下传输速率低,通信距离小,发射功率仅为lmW;而且在非工作下,采用了休眠模式。

设备的搜索、休眠激活和信道接入时延都很短,分别为30ms、15ms、15ms,因此ZigBee设备非常省电。

3、低成本

由于ZigBee技术协议比较简单,降低了对通信控制器的要求;数据传输速率低,所以大大降低了硬件开发成本。

而且ZigBee协议是免专利费的,因此可进一步降低软件的应用费用。

4、短距离

两个ZigBee节点直接通信的距离一般不高于700m,增加RF发射功率后,可增加到1-3km。

如果通过路由节点实现通信接力,传输距离将可以更远。

5、网络容量大

一个星型ZigBee网络最多可支持254个设备,其中一个为主控设备,其余的为从设备。

ZigBee网络组建灵活,可以通过协调器组成星型网、簇树型网和网状网。

一个单独的ZigBee网络内最多可支持超过65500个网络节点。

6、时延短

ZigBee的响应速度很快,通信时从休眠状态转换到正常工作状态的激活时间非常短,一般只需15ms,节点连接进入网络所需要的时间仅为30ms。

7、高安全性

ZigBee提供了基于循环冗余校验的数据包完整性检查功能,支持鉴别和认证,并在数据传输中采用了高级加密标准(AES.128)的对称密码。

2.无线组网

本次实验要求一个协调器,八个终端节点/路由器组成一个zigbee网络,网络个域网ID为学号末三位。

协调器建好网络之后,路由器和终端节点自动加入网络并将自己的16为网络地址和其父节点网络地址发送给协调器。

并通过协调器从串口传给上位机显示。

2.1设计原理

根据在网络中承担的角色不同,ZigBee网络中的设备可以分为三种,第一种是协调器,处于网络的最顶端,具有建立网络和维护网络的能力;第二种是路由器,处于网络的中间层,有链接其它子设备并转发数据的能力:

第三种是结构和功能都最简单的终端设备,负责采集现场数据。

协调器的网络地址为0X0000,当其他节点加入网络后协调器给每个子设备分配一个16位的网络地址。

2.2系统工作流程

下图仅表示节点工作流程,并不是实际网络拓扑图

2.3软件设计流程:

2.3.1.修改个域网ID:

在TOOL/f8wConfig.cfg中将个域网ID修改为学号末三位。

2.3.2.配置网络结构参数:

在NWK/nwk_globals.h中定义了网络最大深度。

在NWK/nwk_globals.c中,数组CskipRtrs[MAX_NODE_DEPTH+1]各元素分别为对应深度所连的最大路由器数目。

数组CskipChldren[MAX_NODE_DEPTH+1]各元素分别为对应深度所连的最大子节点数目数目。

将网络进行如上配置,即最大深度为3,每一层所连的最大路由器数目都为3,每一层所连的最大子节点器数目都为5。

2.3.3.代码设计。

2.4关键代码分析

2.4.1.因发送地址信息的设备包含路由器和终端节点两类,且地址信息包含节点本身网络地址及其父节点地址信息。

因此,需要定义一个包含以上三部分的数据结构来存放信息。

此数据结构定义如下:

2.4.2.网络地址的获取直接利用协议栈自带的函数完成。

函数uint16NLME_GetShortAddr(void)返回某节点的网络地址

函数uint16NLME_GetCoordShortAddr(void)返回父节点的网络地址

2.4.3.由于设备一旦加入网络其网络位置确定下来,因此在终端节点/路由器加入网络后,立即触发一个发送地址的事件SHOW_INFO_EVENT,将自己的信息包发送给协调器。

2.4.4.SHOW_INFO_EVENT事件调用ShowInfo()函数向协调器发送地址信息

ShowInfo()函数定义如下:

其中To_string()函数用来将地址数据转化为16进制并存到数据包中的对应成员。

具体定义详见代码。

2.4.5.协调器中定义一个结构体类型数组,8个元素分别为8个终端节点/路由器发送来的信息。

2.4.6.如果收到信息,调用消息处理函数:

消息处理函数将收到的信息对应存放在数组中。

2.4.7.串口配置中加入了回调函数

2.4.8.回调函数定义为当从上位机接收到字符串address时,就循环将保存在结构数组中的8个终端节点/路由器的地址及设备类型信息从串口发送出来。

3.温湿度传感器

本实验利用温湿度传感器周期性采集温湿度信息,终端节点将采集来的温度信息发送给协调器。

协调器将温湿度通过串口发送给上位机显示。

3.1.软件设计原理:

系统配套的温湿度传感器,与ZIGBEE模块的A/D排针相连,这样我们可以知道,温湿度传感器模块的时钟线与ZIGBEE模块的P0_0IO引脚相连,温湿度传感器的数据线与P0_1IO引脚相连。

因此我们需要在代码中将相应引脚进行输入输出控制模拟该传感器时序,来监测温湿度传感器状态。

3.2.关键代码分析:

3.2.1.温湿度传感器加入网络后设置发送温度给协调器事件

3.2.2.该事件调用发送温度函数,该事件以5秒为周期,周期性发生。

3.2.3.发送温度函数读取温度,发送给协调器。

3.2.4.温度读取函数GetHumiAndTemp的定义在sht11.c中。

因此在终端节点代码中需申明

且在工程中应加入此文件。

3.2.5.协调器收到温湿度信息后立即将信息通过串口发送给上位机。

4.干簧门磁/霍尔开关传感器

本实验利用干簧门磁/霍尔开关传感器监测磁力。

一旦有磁性物体靠近传感器时产生中断,终端节点将警告发送给协调器。

协调器将警告信息立即通过串口发送给上位机。

4.1.软件设计原理:

系统配套的干簧门磁/霍尔开关传感器,与ZIGBEE模块的IO/INT排针相连,这样我们可以知道,干簧门磁传感器模块的信号线与ZIGBEE模块的P1_2IO引脚相连,霍尔开关传感器与P1_3IO引脚相连。

因此我们需要在代码中将该相应引脚配置成中断输入模式,来监测干簧门磁/霍尔开关传感器状态。

4.2.关键代码分析:

4.2.1.在网络初始化时初始化中断,利用函数SensorIO_Init(void)设置中断相关寄存器。

4.2.2.中断初始化函数完成设置P1_2,P1_3为输入模式,打开中断总开关及P1口中断开关。

清除P1_2,P1_3中断标志。

一旦中断发生,将先关警告信息发送给协调器后清楚中断标志。

4.2.3.协调器收到信息后立即将警告信息送到串口。

(具体详见代码)

 

5.温湿度传感器和干簧门磁传感器加入网络

将温湿度传感器和干簧门磁/霍尔开关传感器加入网络后,温湿度传感器和干簧门磁传感器都需要发送两类信息。

而且协调器也会受到三类不同信息。

因此需要分别修改温湿度传感器终端节点和干簧门磁霍尔开关终端节点的发送数据包部分及协调器接收到数据的处理部分。

5.1.温湿度传感器终端节点的修改

温湿度传感器终端节点需要发送温湿度信息及网络地址信息两类信息。

其中温湿度信息需要周期性发送给协调器,而地址信息只在刚加入网络时发送(加入网络后网络地址不会再改变)。

因此需要在加入网络后设置两个发送事件分别用来发送两类信息。

将这两个事件定义如下:

当此节点加入网络后设置这两个事件

其中发送网络地址事件调用发送地址数据函数发送数据包给协调器后立即清除该事件。

而发送温度事件调用发送温度函数将温湿度发送给协调器,且该事件以5秒为周期周期性发生。

5.2.干簧门磁/霍尔开关传感器终端节点的修改

干簧门磁/霍尔开关传感器终端节点需要发送传感器中断信号及网络地址信息两类信息。

其中地址信息只在刚加入网络时发送(加入网络后网络地址不会再改变)。

而当干簧管或霍尔元件检测到磁力时,会发送相应的警告信息给协调器。

因此需要在原先干簧门磁/霍尔开关传感器终端节点程序中加入事件,使得终端节点加入网络后立即将本节点地址信息及其父节点地址信息和设备类型发送给协调器。

5.3.协调器节点的修改

协调器会受到三种信息:

温湿度传感节点发送来的温湿度信息,干簧门磁/霍尔开关节点检测到磁力后发来的警告信息以及各节点发送来的网络地址数据包。

协调器收到三类信息后需要作出不同响应。

因此在收到信息后需要判断属于哪类信息,以便做出响应。

判断依据:

a.干簧门磁/霍尔开关节点发送的警告信息内容以设定好,可以之间判断。

b.温湿度传感节点发送来的温湿度数据一共14字节温湿度各7字节,其中第3个字节及第10个字节肯定为小数点。

以此可判断出温湿度数据。

c.网络创建正确后,协调器只收到三种类型信息,故除了以上信息必为地址信息。

6.实验结果及网络拓扑分析

按照各节点功能烧写程序到各节点中。

启动协调器后,串口收到网络ID号为140。

然后依次启动其余各节点。

网络组建成功后,温湿度传感节点开始将采集的温湿度信息发送给协调器,并通过串口实时从上位机上显示出来。

从上位机发送命令“address”给协调器后,协调器立即将各节点类型、网络地址及父节点地址从串口发送给上位机显示。

若将磁性物体靠近干簧门磁/霍尔开关传感节点,协调器立即该节点发送来的警告信息通过串口发送给上位机显示。

实验结果截图如下:

依据上图中协调器发送来的各节点网络地址可得到网络拓扑图如下:

7.实验过程中存在的问题及其解决

7.1问题现象描述

协调器建好网络后,启动8个终端节点/路由器加入网络,将自己的设备类型及网络地址和父节点的网络地址发送给协调器。

协调器在收到上位机要求返回地址数据的消息后,发送给上位机的地址信息只有5个节点,且第五个节点地址信息输出完后,没有输出换行。

7.2问题分析

造成这个现象的原因有三类:

1.网络配置不正确,导致网络中只能加入5个节点;2.部分终端节点与协调器通信过程中发生错误;3.协调器通过串口向上位机发送信息过程造成此类现象。

7.3问题解决思路

7.3.1网络配置在配置文件中查看最大深度为3,每层可连接的最大路由数为3,最大子节点个数为5.且在烧写程序时我们烧写了两个路由器,6个终端节点。

而且在协调器创建网络成功后,我们首先启动了路由器后再启动终端节点所以可以排除由于网络配置错误导致部分节点加不到网络而引起错误的可能。

7.3.2在协调器收到上位机通过串口返回地址信息的回调函数中可看到协调器将保存在其中的各节点地址信息通过循环从串口向上位机发送出去的定义:

如红色区域所示可看到协调器在收到上位机指令后通过循环8次的方法将保存在数组中的8个元素(分别对应8个节点发上来的地址信息)写到串口。

其中为了显示直观加入了"NWK:

"和"pNWK:

"等字符。

若串口发送没问题,则无论协调器能否收到各节点信息,这两个字符串都分别会显示8次,现在他们也只输出了5次。

则基本可以断定造成问题的原因在于协调器向串口写数据过程中。

发现数据丢失,猜测可能是达到了缓冲区最大值导致后续数据丢失。

因此,可考虑配置串口的缓冲区大小但由于缺乏对zigbee2007协议栈的深入认识且在网络上没有找到相关问题的解释。

故只能采取一种折中的方法,即在向串口写的过程中减少写入的数据量。

写入的节点类型和网络地址及父节点网络地址为必须数据,所以去掉"NWK:

"和"pNWK:

"等说明性文字。

即将该函数改为

再次烧写运行程序发现达到预期效果,可得到8个节点的信息。

由此可判定默认串口缓冲区大小为:

(3+6+4+7+4+2)*5–2=128字节(其中括号内的数据为循环体内每次调用HalUARTWrite函数写到串口的数据大小,因最多输出5次,所以乘5,但第五次循环的回车换行两个字节数据没写入串口,所以再减去2)。

7.4问题解决方法

在一个函数内向串口写的数据总和小于等于128字节。

8实验过程中应注意的几点

1.干簧门磁/霍尔开关传感器工作原理为中断形式,因此在此传感终端节点的代码中一定要初始化相关中断寄存器;

2.干簧门磁/霍尔开关传感器中包含两个中断向量,分别为P1_2和P1_3口中断。

因此在其中断初始化及中断函数中要注意;

3.温湿度传感器终端节点代码中需要调用shut11.c文件中的函数,因此需要在代码中包含进来,且需要将文件加入工程中。

4.程序烧写完后要先启动协调器,待其启动网络后再开启其他节点。

参考文献

[1]李立仁,李少军,刘忠领. 智能视频监控技术综述[J].中国安防,2009,(10).

[2]徐开先无线传感器网络系统[会议论文]-2011

[3]宋立伟无线传感器网络节点的设计及在农业中的应用[学位论文]2011

本学期该课程学习的总结和对教师的教学建议

本学期的无线传感网络课程以CC2530芯片为基础,首先通过CC2530芯片的13个基础实验整体掌握该芯片的硬件资源。

并在学期中通过DMA操作及AES加密的学习进一步对CC2530芯片相对51单片机的扩充有了了解,初步掌握了AES加密机制及通过DMA的快速存储技术,为今后更深一步的学习起了奠定基础。

在掌握CC2530的硬件资源后有通过几个传感器的实验掌握了传感器控制方式及数据处理。

更深一步掌握了中断机制。

最后通过以Z-STACK2007协议栈为基础进行了一系列无线组网相关实验,对于ZIGBEE网络的形成机制及网络中各设备所承担的不同功能进行了学习,更为以后从事先关研究奠定了理论基础。

本学期该课程的教学老师通过课堂理论讲学与实践相结合,以实践为重点,使我们在实践中学习理论,掌握理论。

这种教学方法对于这门学科来说再恰当不过。

在今后的教学过程中希望老师在讲授此类课程时能够继续按照这种方式,让我们在自己亲自动手做的过程中发现问题,解决问题,不断提升自己。

最后对老师表示衷心感谢。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1