无线传感网实验报告_第1页
无线传感网实验报告_第2页
无线传感网实验报告_第3页
无线传感网实验报告_第4页
无线传感网实验报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

Central South University无线传感器网络实验报告 学院: 班级: 学号: 姓名: 时间: 指导老师: 第1章 基础实验 1 了解环境1.1 实验目的安装 IAR 开发环境。CC2530 工程文件创建及配置。源代码创建,编译及下载。1.2 实验设备及工具硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机软件:PC 机操作系统 WinXP,IAR 集成开发环境,TI 公司的烧写软件。1.3 实验内容1、安装 IAR 集成开发环境 IAR 集成开发环境安装文件所在光盘目录:物联网光盘工具CD-EW8051-76012、ZIBGEE 硬件连接 安装完 IAR 和 Smartrf Flash Programmer 之后,按照图所示方式连接各种硬件,将仿真器的 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 - Create New Project - Empty Project,点击 OK,把此工程文件保存到文件夹 ledtest 中,命名为:ledtest.ewp(如下图)。(2)配置 Ledtest 工程选择菜单 Project-Options.打开如下工程配置对话框选择项 General Options,配置 Target 如下Device:CC2530;(3) Stack/Heap 设置:XDATA stack size:0x1FF(4)Debugger 设置:Driver:Texas Instruments (本实验为真机调试,所以选择 TI;若其他程序要使用 IAR仿真器,可选 Simulator)至此,针对本实验的 IAR 配置基本结束.4、编写程序代码并添加至工程选择菜单 File-New-File 创建一个文件,选择 File-Save 保存为 main.c将 main.c 加入到 ledtest 工程,将实验代码输入然后选择 Project-Rebuild All 编译工程编译好后,选择 Project-Download and debug 下载并调试程序下载完后,如果不想调试程序,可点工具栏上的按钮终止调试。到此,程序已经下载到了 cc2530 芯片的 flash 内,按下 ZX2530A 上的复位按钮可看到程序的运行效果。 2 LED 实验2.1 实验目的通过 I/O 控制小灯闪烁的过程。在 ZX2530A 型 CC2530 节点板上运行自己的程序。2.2 实验设备及工具硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机软件:PC 机操作系统 WinXP,IAR 集成开发环境。2.3 实验结果1. 正确连接下载线和 ZX2530A 型 CC2530 节点板,打开 ZX2530A 型 CC2530 节点板电源。2. 在文件夹“基础实验2 LED”下打开工程 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 端打开串口调试助手,配置波特率为 。6. 先将接收节点上电,然后将发送节点上电。7.从串口调试助手观察接收节点收到的数据。8修改发送数据的内容,然后编译并下载程序到发送节点,然后从串口调试助手观察收到的数据。9. 修改接收节点的地址,然后重新编译并下载程序到接收节点,然后从发送节点发送数据观察接收节点能否正确接收数据。6 实验数据分析及结论 发送节点将数据发送出去后,接收节点接收到数据,并通过串口调试助手打印输出。发送数据的最大长度为 125 (加上发送的据长度和校验,实际发送的数据长度为 128 字节)。7 实验心得 这次实验在原来的短距离无线通信中有所涉猎,所以应该这个对于我们来说还是很简单的,所以很快就做完实验了,就和几个同学好好研究了一下它的原理和一些它的展望,感觉这个学科以后有很大的发展前途,作为一个物联网的学生,对无线射频技术应该得很了解,指望它吃饭呢。这次实验也很简单,但是还是可以解除它的最底层的东西可以更加激发我们的兴趣。第三章 ZStack组网实验 多点自组织组网实验1 实验目的理解 zigbee 协议及相关知识。在 ZX2530A 型 CC2530 节点板上实现自组织的组网。在 ZStack 协议栈中实现单播通信。2 实验内容 先启动协调器节点,协调器节点上电后进行组网操作,再启动路由节点和终端节点,路由节点和终端节点上电后进行入网操作,成功入网后周期的将自己的短地址,父节点的短地址,自己的节点 ID 封装成数据包发送给协调器节点,协调器节点接收到数据包后通过串口传给 PC,从 PC上的串口监控程序查看组网情况。发送数据格式为(16 进制):FF 源节点(16bit) 父节点(16bit) 节点编号 ID(8bit)例如 FF 4B 00 00 00 01 ,表示 01 号节点的网络地址为 004B,发送数据到父节点,其网络地址为 00 00(协调器)。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.多点自组网ProjectszstackSamplesSimpleAppCC2530DB下的工程文件 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.c1.3 超声波距离传感器节点工程SimpleDistanceSensor 即超声波距离传感器工程,如下图超声波距离传感器节点实现代码可参考工程目录 App 下 SimpleDistanceSensor.c。超声波测距驱动代码请参考 ys-srf05.c 文件。1.4 湿度传感器节点工程SimpleHumiditySensor 即湿度传感器节点工程,如下图湿度传感器应用控制代码可参考工程目录 App 下SimpleHumiditySensor

温馨提示

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

评论

0/150

提交评论