无线传感网实验报告.docx
- 文档编号:9920493
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:20
- 大小:1.22MB
无线传感网实验报告.docx
《无线传感网实验报告.docx》由会员分享,可在线阅读,更多相关《无线传感网实验报告.docx(20页珍藏版)》请在冰点文库上搜索。
无线传感网实验报告
CentralSouthUniversity
无线传感器网络
实验报告
学院:
班级:
学号:
姓名:
时间:
指导老师:
第1章基础实验
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 设置:
XDATA stack size:
0x1FF
(4)Debugger设置:
Driver:
TexasInstruments(本实验为真机调试,所以选择 TI;若其他程序要使用 IAR仿真器,可选Simulator)
至此,针对本实验的 IAR配置基本结束.
4、编写程序代码并添加至工程
选择菜单File->New->File 创建一个文件,选择File->Save 保存为main.c
将main.c加入到ledtest工程,
将实验代码输入
然后选择Project->RebuildAll编译工程
编译好后,选择 Project->Downloadand debug下载并调试程序
下载完后,如果不想调试程序,可点工具栏上的
按钮终止调试。
到此,程序已经下载到了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.在文件夹“基础实验\5 uart”下打开工程 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网络的节点分布情况。
通过点击屏幕上相应节点的图标可以进入相关节点的控制和监控操作。
下图为温度传感器的监控界面:
其它界面读者可以自行实验,并且去了解。
实验心得
四次实验完成了,虽然不能说自己学到了很多吧,至少对这里面的一些操作有了一定的了解,本科生本来就是为了让我们扩充视角,知道更多的东西。
无线传感网络真的感觉很神奇,也很有发展前景,这些高尖端的技术,现在存在一些瓶颈,如果能够突破,对物联天下这个目标将前进了一大步,如果能够把传感器节点造的更节能,更低廉,更小巧,将会实现全球各个地方的实时数据采集,就可以得到更多的信息,为以后生产生活带来巨大的改变。
在收集的数据肯定是海量的,将需要其他学科的支撑,一起结合起来,实现真的物物相联。
--
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线 传感 实验 报告