无线传感网实验报告.doc

上传人:wj 文档编号:2137881 上传时间:2023-05-02 格式:DOC 页数:28 大小:1.31MB
下载 相关 举报
无线传感网实验报告.doc_第1页
第1页 / 共28页
无线传感网实验报告.doc_第2页
第2页 / 共28页
无线传感网实验报告.doc_第3页
第3页 / 共28页
无线传感网实验报告.doc_第4页
第4页 / 共28页
无线传感网实验报告.doc_第5页
第5页 / 共28页
无线传感网实验报告.doc_第6页
第6页 / 共28页
无线传感网实验报告.doc_第7页
第7页 / 共28页
无线传感网实验报告.doc_第8页
第8页 / 共28页
无线传感网实验报告.doc_第9页
第9页 / 共28页
无线传感网实验报告.doc_第10页
第10页 / 共28页
无线传感网实验报告.doc_第11页
第11页 / 共28页
无线传感网实验报告.doc_第12页
第12页 / 共28页
无线传感网实验报告.doc_第13页
第13页 / 共28页
无线传感网实验报告.doc_第14页
第14页 / 共28页
无线传感网实验报告.doc_第15页
第15页 / 共28页
无线传感网实验报告.doc_第16页
第16页 / 共28页
无线传感网实验报告.doc_第17页
第17页 / 共28页
无线传感网实验报告.doc_第18页
第18页 / 共28页
无线传感网实验报告.doc_第19页
第19页 / 共28页
无线传感网实验报告.doc_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

无线传感网实验报告.doc

《无线传感网实验报告.doc》由会员分享,可在线阅读,更多相关《无线传感网实验报告.doc(28页珍藏版)》请在冰点文库上搜索。

无线传感网实验报告.doc

CentralSouthUniversity

无线传感器网络

实验报告

学院:

班级:

学号:

姓名:

时间:

指导老师:

第一章基础实验

1了解环境

1.1实验目的

安装IAR开发环境。

CC2530工程文件创建及配置。

源代码创建,编译及下载。

1.2实验设备及工具

硬件:

ZX2530A型底板及CC2530节点板一块,USB接口仿真器,PC机

软件:

PC机操作系统WinXP,IAR集成开发环境,TI公司的烧写软件。

1.3实验内容

1、安装IAR集成开发环境

IAR集成开发环境安装文件所在光盘目录:

物联网光盘\工具\CD-EW8051-7601

2、ZIBGEE硬件连接

安装完IAR和SmartrfFlashProgrammer之后,按照图所示方式连接各种硬件,将仿真器的20芯JTAG口连接到ZX2530A型CC2530节点板上,USB连接到PC机上,RS-232串口线一端连接ZX2530A型CC2530节点板,另一端连接PC机串口。

3、创建并配置CC2530的工程文件

IAR是一个强大的嵌入式开发平台,支持非常多种类的芯片。

IAR中的每一个Project,都可以拥有自己的配置,具体包括Device类型、堆/栈、Linker、Debugger等。

(1)新建Workspace和Project

首先新建文件夹ledtest。

打开IAR,选择主菜单File->New->Workspace建立新的工作区域。

选择Project->CreateNewProject->EmptyProject,点击OK,把此工程文件保存到文件夹ledtest中,命名为:

ledtest.ewp(如下图)。

(2)配置Ledtest工程

选择菜单Project->Options...打开如下工程配置对话框

选择项GeneralOptions,配置Target如下

Device:

CC2530;

(3)Stack/Heap设置:

XDATAstacksize:

0x1FF

(4)Debugger设置:

Driver:

TexasInstruments(本实验为真机调试,所以选择TI;若其他程序要使用IAR仿真器,可选Simulator)

至此,针对本实验的IAR配置基本结束.

4、编写程序代码并添加至工程

选择菜单File->New->File创建一个文件,选择File->Save保存为main.c

将main.c加入到ledtest工程,

将实验代码输入

然后选择Project->RebuildAll编译工程

编译好后,选择Project->Downloadanddebug下载并调试程序

下载完后,如果不想调试程序,可点工具栏上的按钮终止调试。

到此,程序已经下载到了cc2530芯片的flash内,按下ZX2530A上的复位按钮可看到程序的运行效果。

2LED实验

2.1实验目的

通过I/O控制小灯闪烁的过程。

在ZX2530A型CC2530节点板上运行自己的程序。

2.2实验设备及工具

硬件:

ZX2530A型底板及CC2530节点板一块,USB接口仿真器,PC机

软件:

PC机操作系统WinXP,IAR集成开发环境。

2.3实验结果

1.正确连接下载线和ZX2530A型CC2530节点板,打开ZX2530A型CC2530节点板电源。

2.在文件夹“基础实验\2LED”下打开工程led,编译工程,并下载到CC2530节点板。

3.观察LED的闪烁情况。

4.修改延时函数,可以改变LED小灯的闪烁间隔时间。

5.重新编译,并下载程序到CC2530节点板,观察LED的闪烁情况。

答:

增加延时就会发现小灯闪烁的频率降低了。

3串口实验

3.1实验目的

本次实验将会学习如果使用串口实现与PC机的通讯。

(实验中需要PC机与开发板之间使用RS232交叉串口连接线)。

能正确配置CC2530的串口。

3.2实验设备及工具

硬件:

ZX2530A型底板及CC2530节点板一块,USB接口仿真器,PC机,交叉串口线一根。

软件:

PC机操作系统WinXP,IAR集成开发环境、串口调试助手。

3.3实验结果

CC2530能与上位机通过串口正常通信

1.正确连接下载线和ZX2530A型CC2530节点板,用串口线正确连接上位机和ZX2530A型板,使能通过串口交换数据。

2.在文件夹“基础实验\5uart”下打开工程uart,编译工程,并下载到CC2530节点板。

3.通过上位机上的串口调试助手,发送数据到cc2530,然后检查cc2530回送给上位机的数据。

3.4实验总结

通过这次实验,让我对无线传感器网络有了进一步的了解。

在无线的世界,感觉一切都是那么神奇,二一切又是那么理所当然,记得小时候常常想,那些无线好神秘,画面,声音等怎么可以从一方到达另一方而可以完全不接触。

虽然今天做的实验都是很小很简单的,比起显示中那些绚丽的感觉没什么值得赞扬的,但对于我来说,这个更有魅力,那些绚丽的我是以仰望的视角来对待,而这次我能深入它的原理去真正接触它,以平视来看待它。

第二章射频实验

点对点射频通信实验

1实验目的

在ZX2530A型CC2530节点板上运行相应实验程序。

熟悉通过射频通信的基本方法。

练习使用状态机实现收发功能。

2实验内容

接收节点上电后进行初始化,然后通过指令ISRXON开启射频接收器,等待接收数据,直到正确接收到数据为止,通过串口打印输出。

发送节点上电后和接收节点进行相同的初始化,然后将要发送的数据输出到TXFIFO中,再调用指令ISTXONCCA通过射频前端发送数据。

3实验设备及工具

硬件:

ZX2530A型CC2530节点板2块、USB接口的仿真器,PC机Pentium100以上。

软件:

PC机操作系统WinXP、IAR集成开发环境、串口监控程序。

4实验原理

发送节点通过串口接收用户的输入数据然后通过射频模块发送到指定的接收节点,接收节点通过射频模块收到数据后,通过串口发送到pc在串口调试助手中显示出来。

如果发送节点发送的数据目的地址与接收节点的地址不匹配,接收节点将接收不到数据。

以下为发送节点程序流程图:

以下为接收节点流程图:

5实验步骤

1.打开光盘“无线射频实验\2.点对点通信”双击p2p.eww打开本实验工程文件。

2.打开main.c文件下面对一些定义进行介绍RF_CHANNEL此宏定义了无线射频通信时使用的信道,在多个小组同时进行实验是建议每组选择不同时信道。

但同一组实验中两个节点需要保证在同一信道,才能正确通信。

PAN_ID个域网ID标示,用来表示不同在网络,在同一实验中,接收和发送节点需要配置为相同的值,否则两个节点将不能正常通信。

SEND_ADDR发送节点的地址

RECV_ADDR接收节点的地址

NODE_TYPE节点类型:

0接收节点,1:

发送节点,在进行实验时一个节点定义为发送节点用来发送数据,一个定义为接收节点用来接收数据。

3.修改NODE_TYPE的值为0,并编译下载到节点板。

此节以下称为接收节点。

4.修改NODE_TYPE的值为1,并编译下载到另外一个节点板。

此节点板以下称为发送节点。

5.将接收节点的串口与pc的串口相连,并在pc端打开串口调试助手,配置波特率为115200。

6.先将接收节点上电,然后将发送节点上电。

7.从串口调试助手观察接收节点收到的数据。

8.修改发送数据的内容,然后编译并下载程序到发送节点,然后从串口调试助手观察收到的数据。

9.修改接收节点的地址,然后重新编译并下载程序到接收节点,然后从发送节点发送数据观察接收节点能否正确接收数据。

6实验数据分析及结论

发送节点将数据发送出去后,接收节点接收到数据,并通过串口调试助手打印输出。

发送数据的最大长度为125(加上发送的据长度和校验,实际发送的数据长度为128字节)。

7实验心得

这次实验在原来的短距离无线通信中有所涉猎,所以应该这个对于我们来说还是很简单的,所以很快就做完实验了,就和几个同学好好研究了一下它的原理和一些它的展望,感觉这个学科以后有很大的发展前途,作为一个物联网的学生,对无线射频技术应该得很了解,指望它吃饭呢。

这次实验也很简单,但是还是可以解除它的最底层的东西可以更加激发我们的兴趣。

第三章ZStack组网实验

多点自组织组网实验

1实验目的

理解zigbee协议及相关知识。

在ZX2530A型CC2530节点板上实现自组织的组网。

在ZStack协议栈中实现单播通信。

2实验内容

先启动协调器节点,协调器节点上电后进行组网操作,再启动路由节点和终端节点,路由节点和终端节点上电后进行入网操作,成功入网后周期的将自己的短地址,父节点的短地址,自己的节点ID封装成数据包发送给协调器节点,协调器节点接收到数据包后通过串口传给PC,从PC

上的串口监控程序查看组网情况。

发送数据格式为(16进制):

FF源节点(16bit)父节点(16bit)节点编号ID(8bit)

例如FF4B00000001,表示01号节点的网络地址为004B,发送数据到父节点,其网络地址为0000(协调器)。

3实验设备及工具

硬件:

DZ2530型CC2530节点板、USB接口的仿真器,PC机Pentium100以上。

软件:

PC机操作系统WinXP、IAR集成开发环境、ZTOOL程序。

4实验原理

程序执行的流程图如图5-4所示,在进行一系列的初始化操作后程序就进入事件轮询状态。

对于终端节点,若没有事件发生且定义了编译选项POWER_SAVING,则节点进入休眠状态。

协调器是Zigbee三种设备中最重要的一种。

它负责网络的建立,包括信道选择,确定唯一的PAN地址并把信息向网络中广播,为加入网络的路由器和终端设备分配地址,维护路由表等。

Z-Stack中打开编译选项ZDO_COORDINATOR,也就是在IAR开发环境中选择协调器,然后编译出的文件就能启动协调器。

具体工作流程是:

操作系统初始化函数osal_start_system调用ZDAppInit初始化函数,ZDAppInit调用ZDOInitDevice函数,ZDOInitDevice调用

ZDApp_NetworkInit函数,在此函数中设置ZDO_NETWORK_INIT事件,在ZDApp_event_loop任务中对其进行处理。

由第一步先调用ZDO_StartDevice启动网络中的设备,再调用NLME_NetworkFormationRequest函数进行组网,这一部分涉及网络层细节,无法看到源代码,在库中处理。

ZDO_NetworkFormationConfirmCB和nwk_Status函数有申请结果的处理。

如果成功则ZDO_NetworkFormationConfirmCB先执行,不成功则nwk_Status先执行。

接着,在ZDO_NetworkFormationConfirmCB函数中会设置ZDO_NETWORK_START事件。

由于第三步,ZDApp_event_loop任务中会处理ZDO_NETWORK_START事件,调用ZDApp_NetworkStartEvt函数,

此函数会返回申请的结果。

如果不成功能量阈值会按ENERGY_SCAN_INCREMENT增加,并将App_event_loop任务中的事件ID置为ZDO_NETWORK_INIT然后跳回第二步执行;如果成功则设置ZDO_STATE_CHANGE_EVT事件让ZDApp_event_loop任务处理。

对于终端或路由节点,调用ZDO_StartDevice后将调用函数NLME_NetworkDiscoveryRequest进行信道扫描启动发现网络的过程,这一部分涉及网络层细节,无法看到源代码,在库中处理,NLME_NetworkDiscoveryRequest函数执行的结果将会返回到函数ZDO_NetworkDiscoveryConfirmCB中,该函数将会返回选择的网络,并设置事件ZDO_NWK_DISC_CNF,在ZDApp_ProcessOSALMsg中对该事件进行处理,调用NLME_JoinRequest加入指定的网络,若加入失败,则重新初始化网络,若加入成功则调用ZDApp_ProcessNetworkJoin函数设置ZDO_STATE_CHANGE_EVT,在对该事件的处理过程中将调用ZDO_UpdateNwkStatus函数,此函数会向用户自定义任务发送事件ZDO_STATE_CHANGE。

本实验在Zstack的事例代码simpleApp修改而来。

首先介绍任务初始化的概念,由于自定义任务需要确定对应的端点和簇等信息,并且将这些信息在AF层中注册,所以每个任务都要初始化然后才会进入OSAL系统循环。

在Z-Stack流程图中,上层的初始化集中在OSAL初始化(osal_init_system)函数中。

包括了存储空间、定时器、电源管理和各任务初始化。

其中用户任务初始化的流程如下:

用户任务初始化流程图

任务ID(taskID)的分配是OSAL要求的,为后续调用事件函数、定时器函数提供了参数。

网络状态在启动的时候需要指定,之后才能触发ZDO_STATE_CHANGE事件,确定设备的类型。

目的地址分配包括寻址方式,端点号和地址的指定,本实验中数据的发送使用单播方式。

之后设置应用对象的属性,这是非常关键的。

由于涉及很多参数,Z-Stack专门设计SimpleDescriptionFormat_t这一结构来方便设置,其中的成员如下:

EndPoint,该节点应用的端点,值在1-240之间,用来接收数据。

AppProfId,该域是确定这个端点支持的应用profile标识符,从Zigbee联盟获取具体的标识符。

AppNumInClusters,指示这个端点所支持的输入簇的数目。

pAppInClusterList,指向输入簇标识符列表的指针。

AppNumOutClusters,指示这个端点所支持的输出簇的数目。

pAppOutClusterList,指向输出簇标识符列表的指针。

本实验profile标识符采用默认设置,输入输出簇设置为相同MY_PROFILE_ID,设置完成后,调用afRegister函数将应用信息在AF层中注册,使设备知晓该应用的存在,初始化完毕。

一旦初始化完成,在进入OSAL轮询后zb_HandleOsalEvent一有事件被触发,就会得到及时的处理。

事件号是一个以宏定义描述的数字。

系统事件(SYS_EVENT_MSG)是强制的,其中包括了几个子事件的处理。

ZDO_CB_MSG事件是处理ZDO的响应,KEY_CHANGE事件处理按键(针对TI官方的开发板),AF_DATA_CONFIRM_CMD则是作为发送一个数据包后的确认,AF_INCOMING_MSG_CMD是接收到一个数据包会产生的事件,协调器在收到该事件后调用函数p2p_test_MessageMSGCB,将接收到的数据通过HalUARTWrite向串口打印输出。

ZDO_STATE_CHANGE和网络状态的改变相关在此事件中若为终端或路由节点则发送用户自定义的数据帧:

FF源节点短地址(16bit,调用

NLME_GetShortAddr()获得)、父节点短地址(16bit,调用NLME_GetCoordShortAddr())、节点编号ID(8bit,为长地址的最低字节,调用NLME_GetExtAddr()获得,在启动节点前应先用RFProgrammer将非0XFFFFFFFFFFFFFFFF的长地址写到CC2530芯片存放长地址的寄存器中),协调器不做任何处理,只是等待数据的到来。

终端和路由节点在用户自定义的事件MY_REPORT_EVT中发送数据并启动定时器来触发下一次的MY_REPORT_EVT事件,实现周期性的发送数据(发送数据的周期由宏定义REPORT_DELAY确定)。

5实验步骤

1.打开工程文件夹协议栈实验\2.多点自组网\Projects\zstack\Samples\SimpleApp\CC2530DB下的工程文件SimpleApp.eww。

2.选择工程编译,生成协调器代码,并下载到ZX2530A开发板。

此节点为协调器节点。

3.选择工程编译,生成终端节点代码,并下载到ZX2530开发板。

此节点为终端节点。

4.选择工程编译,生成路由器节点代码,并下载到ZX2530开发板,此节点为路由器节点。

5.用串口线将协调器节点与pc连接起来,在pc端打开ZTOOL程序。

(ZTOOL程序在zstack安装后自动安装)

6.开启ZX2530A型CC2530节点板电源。

7.在ZTOOL程序中观察组网结果。

6实验数据分析及结论

由接收数据的DebugString可以看出图中有两个节点加入了网了,其中一个节点的DEVID是21,网络地址:

4f07,父节点地址是0即协调器。

另外一个节点的DEVID是11,网络地址:

A6F7,父节点地址是4f07即上一节点。

实验中可以试着改变不同节点的位置,然后通过ZTOOL看看组网结果有什么不同。

7实验心得

这次实验感觉比原来的更有趣,可以在手机上看到无线连接的组网,所以和同学们很有兴趣,虽然只有几个分支,但是几个的通信还是可以清晰可见的。

同时也让我们看到了大型android手机的模样,以前都是看成品,这次看的是半成品,感觉很有意思。

在组网的过程中,遇到了一些问题,刚开始不知道如何解决,就问同学和老师,有的是线的问题,由于实验器材本身的问题,导致一些松动之类的,但最后实验总算是顺利的完成了。

在这感谢帮助我的同学和老师。

第四章传感器网络综合实验

Zigbee节点控制程序设计

1.1协调器节点工程

SimpleCoordinator即协调器工程,如下图

协调器的应用功能代码实现文件是SimpleCoordinator.c在工程文件夹App目录下具体实现可参考源码。

按下键盘上的F7即个编译协调器工程,编译好之后可将代码下载到协调器节点板。

1.2人体红外传感器节点工程

SimpleInfrared即人体红外传感器工程,如下图

人体红外传感器节点应用控制代码可参考工程目录App下SimpleInfrared.c

1.3超声波距离传感器节点工程

SimpleDistanceSensor即超声波距离传感器工程,如下图

超声波距离传感器节点实现代码可参考工程目录App下SimpleDistanceSensor.c。

超声波测距驱动代码请参考ys-srf05.c文件。

1.4湿度传感器节点工程

SimpleHumiditySensor即湿度传感器节点工程,如下图

湿度传感器应用控制代码可参考工程目录App下SimpleHumiditySensor.c文件,其湿度的测量驱动可参考温湿度传感器驱动dht11.c文件

平台控制操作

2.1启动程序

1)安装好程序后,打开android应用程序面板,找到图标,点击进入程序。

2)直接点击登录按钮,进入到系统主界面。

第一次进入是系统会自动连接到zigbee网关然后去搜索zigbee网络,默认的zigbee网关地址为本机IP地址,即127.0.0.1。

3)如果你的zigbee网关地址不是本机,则需要修改默认网关地址。

通过按下系统‘菜单’按键,会出现如下菜单

选择‘设置’菜单,可以设置默认的zigbee网关。

如下图:

4)设置好网关后,下次启动程序就不用再次设置了。

2.2搜索网络

如果zigbee网关设置好,通过菜单选择‘搜索网络’就可以搜索zigbee网络了,正常情况下至少会有一个协调器节点,如果程序提示搜索不到网络,请检查你的网络连接和协调器是否正确连接。

如果zigbee网络上还有其它节点,可以在网络TOP图上一起显示出来。

如下,是一个zigbee网络TOP图:

图中共有7个节点,其中最上面那个是协调器节点,其它为传感器节点,其中地址为58229的灯光设备带有路由功能,属路由器节点,它下面有两个子节点,分别为人体传感器和温度传感器。

2.3传感器节点操作

通过搜索到的zigbee网络TOP图,可以了解整个zigbee网络的节点分布情况。

通过点击屏幕上相应节点的图标可以进入相关节点的控制和监控操作。

下图为温度传感器的监控界面:

其它界面读者可以自行实验,并且去了解。

实验心得

四次实验完成了,虽然不能说自己学到了很多吧,至少对这里面的一些操作有了一定的了解,本科生本来就是为了让我们扩充视角,知道更多的东西。

无线传感网络真的感觉很神奇,也很有发展前景,这些高尖端的技术,现在存在一些瓶颈,如果能够突破,对物联天下这个目标将前进了一大步,如果能够把传感器节点造的更节能,更低廉,更小巧,将会实现全球各个地方的实时数据采集,就可以得到更多的信息,为以后生产生活带来巨大的改变。

在收

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2