计算机硬件技术基础实验8-无线ZigBee组网与传输_第1页
计算机硬件技术基础实验8-无线ZigBee组网与传输_第2页
计算机硬件技术基础实验8-无线ZigBee组网与传输_第3页
计算机硬件技术基础实验8-无线ZigBee组网与传输_第4页
计算机硬件技术基础实验8-无线ZigBee组网与传输_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

淮海工学院计算机工程学院实验报告书课 程 名: 计算机硬件技术基础 题 目: 实验八 无线ZigBee组网与传输 班 级: 软嵌151 学 号: 2015123349 姓 名: 陈正宁 评语:成绩: 指导教师: 批阅时间: 年 月 日实验八无线ZigBee组网与传输一、实验目的 1、通过实验,了解ZigBee协议的基础知识,掌握在 ZXBee CC2530 节点板上实现自组织组网。 2、掌握在 zstack 协议栈下实现星型网络拓扑的控制方法。二、实验原理1、ZigBee自组织组网。在进行一系列的初始化操作后程序就进入事件轮询状态。对于终端节点,若没有事件发生且定义了编译选项 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_Network Discovery Request进行信道扫描启动发现网络的过程,这一部分涉及网络层细节,无法看到源代码,在库中处理,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 是接收到一个数据包会产生的事件,协调器在收到该事件后调用函数 SAPI_ReceiveDataIndication ,将接收到的数据通过 HalUARTWrite 向串口打印输出。 ZDO_STATE_CHANGE 和网络状态的改变相关在此事件中若为终端或路由节点则发送用户自定义的数据帧:FF 源节点短地址(16bit,调用 NLME_GetShortAddr()获得)、父节点短地址(16bit,调用NLME_GetCoordShortAddr() 、节点编号 ID(8bit ,为长地址的最低字节,调用NLME_GetExtAddr() 获得,在启动节点前应先用 RF Programmer 将非 0XFFFFFFFFFFFFFFFF的长地址写到 CC2530 芯片存放长地址的寄存器中),协调器不做任何处理,只是等待数据的到来。终端和路由节点在用户自定义的事件MY_REPORT_EVT中发送数据并启动定时器来触发下一次的MY_REPORT_EVT事件,实现周期性的发送数据(发送数据的周期由宏定义REPORT_DELAY 确定)2、星型网络拓扑控制。ZigBee 有三种网络拓扑,即星形、树形和网状网络,这三种网络拓扑在 zstack 协议栈下均可实现。星形网络中,所有节点只能与协调器进行通信,而他们相互之间的通信是禁止的;树形网络中,终端节点只能与它的父节点通信,路由节点可与它的父节点和子节点通信;网状网络中,全功能节点之间是可以相互通信的。 在 zstack 中,通过设置宏定义 STACK_PROFILE_ID 的值(在 nwk_globals.h 中定义)可以选择不同控制模式(总共有三种控制模式,分别为 HOME_CONTROLS 、GENERIC_STAR 和 NETWORK_SPECIFIC ,默认模式为 HOME_CONTROLS ), 再 选 择 不 同 的 网 络 拓 扑 (NWK_MODE),也可以只修改 HOME_CONTROLS 的网络模式 (NWK_MODE),来选择不同的网络拓扑,由于网络的组建是由协调器来控制的,因此只需修改协调器的程序即可。此外,可以设定数组 CskipRtrs 和 CskipChldrn 的值(在 nwk_globals.c 中定义)进一步控制网络的形式, CskipChldrn 数组的值代表每一级可以加入的子节点的最大数目,CskipRtrs 数组的值代表每一级可以加入的路由节点的最大数目,如在星形网络中,定义 CskipRtrsMAX_NODE_DEPTH+1 = 5,0,0,0,0,0,CskipChldrnMAX_NODE_DEPTH+1 = 10,0,0,0,0,0,代表只有协调器允许节点加 入,且协调器最多允许 10 个子节点加入,其中最多 5 个路由节点,剩余的为终端节点。本实验已通过宏定义(在工程 options 中的 preprocessor 中定义)设定了数组的大小。 三、实验仪器与器件1、硬件:ZXBee CC2530 节点板 2 块、USB 接口的 CC2530 仿真器,PC 机;2、软件:Windows 7/Windows XP、IAR 集成开发环境、串口监控程序。四、预习要求 1、了解CC2530应用程序的框架结构,了解ZigBee协议进行组网的过程。 2、掌握在 IAR 集成开发环境中编写和调试程序的基本方法;了解 zstack 协议栈架构。五、实验内容及步骤 1、ZigBee自组织组网实验:由于出厂源码 ZigBee 网络 PAN ID 均设置为 0x2100,为了避免实验环境下多个实验平台之间 网络互相串扰,每个实验平台需要修改 PAD ID,修改工程内文件:Tools - f8wConfig.cfg,将 PAN ID 修改为个人学号的后四位,具体参考产品手册8.2 章节部分。 (1)确认已安装 ZStack 的安装包。如果没有安装,打开光盘提供的安装包,路径为“03-系 统代码ZStackZStack-CC2530-2.4.0-1.4.0.exe”,双击之后直接安装,安装完后默认生成 C:Texas InstrumentsZStack-CC2530-2.4.0-1.4.0 文件夹。 (2)准备 3 个 CC2530 射频节点板,分别接好电源。 (3)打开例程:将光盘中的例程“05-实验例程第 5 章5.2-NetworkingNetworking”整个文件夹 拷贝到 C:Texas InstrumentsZStack-CC2530-2.4.0-1.4.0ProjectszstackSamples 文件夹下。双击 Networking CC2530DB Networking.eww”文件。 (4)在工程界面中按下图所示,选定“MPCoordinator”配置,生成协调器代码,然后选择 Project-Rebuild All 重新编译工程。 (5)在工程界面中按下图所示,选定“MPEndPoint”配置,生成终端节点代码,然后选择 Project-Rebuild All 重新编译工程。 (6)在工程界面中按下图所示,选定“MPRouter”配置,生成路由器节点代码,然后选择 Project-Rebuild All 重新编译工程。 (7)把 CC2530 仿真器连接到 CC2530 无线节点,使用 Flash Programmer 工具把上述程序分别 下载到对应的 CC2530 无线节点板中。 (8)用串口线将协调器节点与 pc 连接起来。 (9)在PC端打开ZTOOL程序(C:Texas InstrumentsZStack-CC2530-2.4.0-1.4.0 ToolsZ-Tool, 如果打开提示“运行时”错误,需要安装.net framework:04-常用工具dotnetfx.exe)。 (10)ZTOOL 启动后,配置连接的串口设备。点击菜单“Tools”-“Settings”,弹出对话框,在对话框中选择“Serial Devices”选项:(会根据 PC 机的硬件实际情况列出 com口供选择) (11)接下来配置 PC 上与协调器节点连接的串口。通常为 COM1(用户根据实际连接情况选择)。 以 COM3 为例,在上图中点击 COM3 项,然后点击“Edit”,在弹出的对话框中进行配置。 (12)先拨动无线协调器的电源开关为 ON 状态,此时 D6 LED 灯开始闪烁,当正确建立好网络后,D6 LED 会常亮。 (13)当无线协调器建立好网络后,分别拨动无线路由节点和终端节点的电源开关为 ON 状态,此时每个无线节点的 D6 LED 灯开始闪烁,直到加入到协调器建立的 ZigBee 网络中后,D6 LED 灯开始常亮。 (14)当有数据包进行收发时,无线协调器和无线节点的 D7 LED 灯会闪烁。 (15)在 ZTOOL 程序中点击“Tools”-Scan for Devices,观察 3 个射频节点的组网结果。2、星型拓扑拓扑控制。由于出厂源码 Zigbee 网络 PAN ID 均设置为 0x2100,为了避免实验环境下多个实验平台之间 网络互相串扰,每个实验平台需要修改 PAD ID,修改工程内文件:Tools - f8wConfig-top.cfg,将 PAN ID 修改为个人学号的后四位,具体参考产品手册8.2 章节部分。 (1)确认已安装 ZStack 的安装包。如果没有安装,打开光盘提供的安装包,路径为“03-系统 代码ZStackZStack-CC2530-2.4.0-1.4.0.exe”,双击之后直接安装,安装完后默认生成 C:Texas InstrumentsZStack-CC2530-2.4.0-1.4.0 文件夹。 (2)准备 5 个 CC2530 射频节点板(一个作为协调器节点,两个作为路由节点,两个作为终端 节点),确定按照第一章 1.2 节设置节点板跳线为模式一,分别接上出厂电源。 (3)打开 例程:将光盘中 的例程“05-实验例 程第 5 章5.4-NetworkTopology-StarNetworkTopology-Star ” 整 个 文 件 夹 拷 贝 到 C:Texas InstrumentsZStack-CC2530-2.4.0-1.4.0ProjectszstackSamples 文 件 夹 下 。 双 击NetworkTopology-StarCC2530DB NetworkTopology-Star.eww”文件。(4)分别编译协调器、路由器、终端设备三个工程,把 CC2530 仿真器连接到 CC2530 无线节 点,使用 Flash Programmer 工具把上述程序分别下载到对应的 CC2530 无线节点板中。 (5)用串口线将协调器节点连接到 PC 上。 (6)先拨动无

温馨提示

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

评论

0/150

提交评论