现代通信技术实验——ZigBee星状网络实验

合集下载

Zigbee协议星形组网实验的设计与实现

Zigbee协议星形组网实验的设计与实现

Zigbee协议星形组网实验的设计与实现冉彦中;曹婧华;姜威;赵飞【摘要】介绍了Zigbee网络结构、网络节点组成、软件模块、环境参数温度数值的实际测试,在无线网络应用开发方面作了一些有益的尝试.%This paper introduces the Zigbee network architecture, the node composition, the software module, and the environment parameter temperature value actual test, and obtains some beneficial attempts in the wireless network application and development.【期刊名称】《实验技术与管理》【年(卷),期】2013(030)002【总页数】3页(P101-102,117)【关键词】星形实验设计;Zigbee协议;网络结构【作者】冉彦中;曹婧华;姜威;赵飞【作者单位】吉林大学军需科技学院,吉林长春130062【正文语种】中文【中图分类】TP302Zigbee技术是短距离、低速率、低功耗、低成本的短距离无线通信技术,它与IEEE802.15.14一起构成无线传感器网络的标准通信协议,适用于网点多、体积小、数据量小,传输可靠、低功耗等场合。

Zigbee网络有3 种拓扑形式:星形、簇树形和网形。

网络节点按功能划分为终端节点、路由器节点和协调器节点。

ZigBee协调器节点在IEEE 802.15.4中称为PAN(Personal Area Network)协调点,它是整个网络的主控节点,负责发起建立新的网络、设定网络参数、管理网络中的节点以及存储网络中节点信息等,网络形成后也可以执行路由器的功能,ZigBee协调器节点必须是FFD(full function device),一个ZigBee网络只有一个协调器节点;路由器节点是全功能节点,转发数据,起到路由的作用,也可以收发数据,当成一个数据节点,还能保持网络,为后加入的节点分配地址;终端节点RFD(recuced function device),通常定义为电池供电的低功耗设备,只周期性发送数据,不接收数据。

实验-ZigBee组网

实验-ZigBee组网

实验-ZigBee组⽹实验:ZigBee基本通信实验⼀、实验⽬的1.了解ZigBee协议及其在软件上如何实现。

2.学习使⽤sniffer嗅探⽹络节点之间通信数据包并分析数据包。

3. 学习Zigbee⽹络组⽹及路由选择。

⼆、实验内容1.基于z-stack协议栈的组⽹及数据传输。

2.使⽤sniffer抓取节点之间传输的数据包并分析数据包组成。

三、实验设备1.IAR开发平台环境2.ZigBee开发套件3.Sniffer抓包⼯具(软件和硬件)实验开发套件的领取注意事项:1、每周五上午1-2节可到电信5号楼东303A房间,协同创新中⼼找蓝伟涛学长(领取FPGA开发板)或电信1号楼515室找赵曜学长(领取Zigbee开发套件)。

2、每个⼩组以组长为代表签字领取⼀套开发套件,并在三周内归还。

请爱护实验套件,归还时确保所有部件完好齐全。

3、实验中若有问题可在周五上午1-2节课时间去上述地址找两位助教答疑。

四、实验原理1,ZigBee协议概述ZigBee作为⼀种⽆线通信标准,它是以IEEE802.15.4⽆线通信技术为基础的⼀组涉及到⽹络、安全和应⽤⽅⾯的软件协议。

它是⼀种短距离、低复杂度、低功耗、地数据传输速率和低成本的双向⽆线通信技术。

该技术可以应⽤于超低功耗率损耗的⽆线⽹络中,它满⾜ISO/OSI参考模型。

其物理层和MAC层采⽤了IEEE802.15.4标准;ZigBee联盟定义了上层部分,包括⽹络层和应⽤层。

⽆线通信⽹络软件以z-stack作为ZigBee的协议栈,硬件为基于CC2530-ZigBee开发套件。

2 设备类型(Device Types)在ZigBee⽹络中存在三种逻辑设备类型:Coordinator(协调器),Router(路由器)和End-Device(终端设备)。

ZigBee⽹络由⼀个Coordinator以及多个Router和多个End_Device组成。

在ZStack-CC2530-2.3.1-1.4.0中⼀个设备的类型通常在编译的时候通过编译选项确定。

zigBee实验报告

zigBee实验报告

ZIgBee学习心得实验报告项目名称基于无线传感器网络的采温实验专业班级软件1105学号姓名目录《计算机网络》............................................................................................... 错误!未定义书签。

实验报告. (1)一、实验目的 (3)二、实验内容和报告简介 (3)三、实验相关设备环境 (3)四、实验内容 (6)4.1.内容简介 (6)4.2. 无线传感器网络采温系统实验 (7)实验简介 (7)4.2.2 工程结构简介 (8)4.2.3 设备功能及网络拓扑结构介绍 (9)4.2.4 main()函数和OSAL (9)4.2.5 设备相关功能主要函数介绍 (13)4.3 ZigBee协议和ZStack分析 (24)4.3.1 ZigBee协议和ZStack简介 (24)4.3.2 OSAL原理分析和实现 (25)IEEE 802.15.规定的PHY层 (31)IEEE 802.15.规定的MAC层 (34)4.3.5 ZigBee2007的网络层。

(37)4.3.6 ZigBee2007的应用层 (41)五、实验结果 (42)六、实验结论 (43)七、实验小结 (43)7.1 短距离无线通信网络的现状和发展 (43)7.2 ZigBee通信技术的应用 (44)7.3 学习ZigBee开发的心得体会 (44)7.4 下一步可能的学习计划 (44)实验《基于无线传感器网络的采温实验》实验学时:1 实验地点:201 实验日期: 5.10一、实验目的1. 设计并实现一套无线传感器网络的采温系统。

2. 较为详细的分析ZigBee协议栈。

二、实验内容和报告简介完成采集器、传感器设备的设计和实现。

对ZigBee2007协议和Zstack进行较为详细的分析。

三、实验相关设备环境介绍了开发板、CC2530和协议栈四、实验内容第一部分详细描述了开发的工作,附上了关键代码和注释。

ZigBee实验(精)

ZigBee实验(精)


无线传感器网络高级实验-PC监控传感网
双击PC机上的“ZigBeeMonitor”软件,跳出Com 口选择窗体,选择电脑与开发实验平台通讯的 Com口,按确定后进入监控平台。

无线传感器网络高级实验-PC监控传感网


Router(路由器)
负责转发资料包,寻找最适合的路由路径,当有节点加入 时,可为节点分配地址,Router 通常定义为具有电源供 电的设备,不能进入低功耗状态。每个Zigbee 网络可能 需要多个Router,每个Router 可以收发数据也可以转发 数据,当一个网络全部由Coordinator(1 个)及Router( 多个)构成时,这个网络才是真正的MESH 网络(网状网 ),每个节点发送的数据全部是自动路由到达目标节点。

End Device(终端节点)
选择已经存在的Zigbee 网络加入,可以收发数据 ,但是不能转发数据,End Device 通常定义为电 池供电设备,可周期性唤醒并执行设定的任务, 具有低功耗特征。 每个Zigbee 网络可能需要多个End Device,End Device 通常在周期性醒来时,问自己的父节点是 否有传输给自己的数据,并执行设定的任务,所 以,End Device 通常适合接收少量的数据,周期 性的发送数据。

ZigBee无线传感器网络

ZigBee无线传感器网络

ZigBee无线传感器网络基于ZigBee协 议栈无线网络,在网络设备安装过程,架设 过程中自动完成。完成网络的架设后用户便 可以由PC机发出命令读取网络中任何设备上 挂接的传感器的数据,以及测试其电压。简 单的工作流程描述如下图所示。

ZigBee无线传感器网络
PC机:完成接收网关数据和发送指令,实现 可视化,形象化人机界面,方便用户操作, 观察。

实验1.1 ZigBee星型组网实验

实验1.1 ZigBee星型组网实验

图一-3 返回数据
5. 将各节点的物理地址写入“ZigBee基础实验平台软件”的配置文件 commConfig_user.xml,例如如下所示,保存配置文件并重启实验平台软件。 <TestMac>FF FF FF FF FF FF FF 01,FF FF FF FF FF FF FF 02,FF FF FF FF FF FF FF 03</TestMac> 6. 打开ZigBee协调器,然后,依次打开传感控制节点,依次加入协调器所建立的 ZigBee网络,生成简单的星型网络拓扑结构,如图一-4所示。
实验一 ZigBee星型组网实验
上海企想信息技术有ຫໍສະໝຸດ 公司(一)实验目的 了解ZigBee星型网络通信原理及相关技术 了解ZigBee星型网络组建的基本过程和方法 (二)实验设备 1个ZigBee协调器、多个ZigBee终端节点 操作台:提供电源、PC、USB口、RS232串口、RJ45以太口,以及多种传 感器和输入输出控制器件 软件:ZigBee基础实验平台软件 (三)实验内容 利用1个ZigBee协调器、多个传感控制节点组建一个简单的星型网络,并 观察射频顶板上LED指示灯的变化。 利用上位机软件,查看生成的网络拓扑。
图一-4 ZigBee网络节点图与络拓扑
(四)实验过程
1. 将ZigBee协调器通过串口与上位机连接 2. 运行上位机软件“ZigBee基础实验平台软件”,选择相应的串口,并打开 串口。如图一-1打开串口所示。
图一-1打开串口
图一-1打开串口
3. 查看参数配置,串口参数设置如图一-2所示。
图一-2 串口配置参
4. 打开“串口调试工具”,将ZigBee协调器上电,当射频顶板上红灯亮起时, 依次打开ZigBee终端节点,当节点射频顶板上绿灯亮起时,表示节点已成功加入 网络。此时查看工具窗口,如图一-3所示。

现代通信技术实验——ZigBee星状网络实验

现代通信技术实验——ZigBee星状网络实验

现代通信技术试验报告(一)ZigBee星状网络实验学院:计算机学院班级:24010107班学号:2012040101330姓名:赵堃日期:2015.05.13ZigBee星状网络实验一、【实验目的】1. 了解ZigBee 星状网络结构;2. 掌握构建星状网络的方法。

二、【实验设备】1. 装有IAR 开发工具的PC 机一台;2. 下载器一个;3. 物联网多网技术综合教学开发设计平台一套。

三、【实验要求】1. 编程要求:使用协议栈提供的API 函数编写应用程序;2. 实现功能:构建星状网络进行数据通信;3. 实验现象:协调器通信指示灯(D9)闪烁,其他节点通信指示灯(D9)熄灭,说明其他节点向协调器发送数据,星状网络构建成功。

四、【实验原理】通过设置网络中各个节点的网络拓扑参数为星型组网方式,使协调器建立一个ZigBee 网络,其他终端节点连接到网络时,直接以协调器节点作为父节点,构成星型网络拓扑结构。

并通过“ZigBee 调试助手”查看现象。

星状网络结构图示例如下:图1-星状网络结构图五、【程序流程图】图2-ZigBee星状网络实验节点流程图六、【实验步骤】1.将调试器连接到实验箱的调试口;2.打开协议栈工程文件;3.打开工程目录下 NWK 中的 nwk_globals.h 文件,看到网络拓扑形状是由如图 3 所示的“NWK_MODE_STAR”(星型网)、“NWK_MODE_TREE”(树状网)、“NWK_MODE_MESH”(网状网)3 个宏定义作为网络参数确定的。

图3-协议栈中ZigBee网络模式参数宏定义4.按照图 4 修改 ZigBee 节点组网的网络拓扑结构参数,将图示部分修改为“NWK_MODE_STAR”即规定了网络的拓扑结构为星型连接方式。

图4-修改网络拓扑为星型网5. 使用实验箱上的旋钮选中协调器节点,然后编译协调器的代码,然后点击下载图标,如图 5 所示:图5-下载协调器节点程序6.下载完成后,点击图 6 所示的调试界面的“全速运行”,再点击“退出调试”。

Zigbee组网实验报告

Zigbee组网实验报告

Zigbee组网实验一.实验目的1.了解zigbee网络2.掌握zigbee节点程序下载方式3.掌握如何组建zigbee星状网络二.实验意义通过实验了解zibee网络的特点,体会其组网及通信过程三.实验环境PC机一台(内安装IAR环境)智能网关一个ZigBee节点ZigBee仿真器一套四.实验原理每一个星状网络中只有一个协调器,当协调器被激活后,它就会建立一个自己的网络。

其它位于协调器附近的zigbee节点,如果与该协调器处于同一信道,则会自动加入到该网络当中。

五.实验步骤一、认识实验设备以及下载设备连接连接线路如图所示:二、Zigbee网络组建1、协调器下载协调器在本套智能家居系统中担任信息收集与传输的工作,它和每个ZigBee模块进行无线通讯,并将信息传送给智能网关,同时也将网关的控制指令发送给各个模块。

我们首先将一个ZigBee模块下载成协调器,具体步骤如下:(1)打开“\实验程序\协调器\Projects\zstack\Samples\collector SimpleApp 1.25\ CC2430DB\SimpleApp.eww”。

如图1-6所示:(2)不同的实验小组选择自己所分配的信道。

点击左侧的文件导航栏,找到tools文件夹,打开其中的文件f8wConfig.cfg,找到自己小组的信道,将行的注释去掉,并且确认其他各个信道代码均为注释状态。

更改完信道之后,在菜单栏中选择Project\Rebuild All进行编译,编译完成后生成的HEX 文件保存在\实验程序\协调器\Projects\zstack\Samples\collectorSimpleApp1.25\CC2430DB\SimpleCollectorEB\Exe 中。

(3)更改完信道之后,在菜单栏中选择Project\Rebuild All进行编译,编译完成后生成的HEX文件保存在\实验程序\协调器\Projects\zstack\Samples\collectorSimpleApp1.25\CC2430DB\SimpleCollec torEB\Exe中;(4)打开smartRF下载软件,如图所示,按照图将下载设备的各个线连接好,之后按一下下载器(也就是白色盒子)上面的黑色按钮,则下载界面中将会识别到要与下载器相连接的zigbee模块芯片,如图所示,对相关条件进行勾选;2.其它zigbee终端节点的下载Zigbee终端节点在上电后自动加入到处于同一信道的zigbee协调器所组建的zigbee网络当中。

Zigbee实验报告

Zigbee实验报告

一、Zigbee简介1.1 什么是ZigBeeZigBee是基于IEEE802.15.4标准的低功耗局域网协议。

ZigBee技术是一种短距离、低功耗的无线通信技术。

其特点是近距离、低复杂度、自组织、低功耗、低数据速率。

主要适合用于自动控制和远程控制领域,可以嵌入各种设备。

简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。

ZigBee是一种低速短距离传输的无线网络协议。

1.2 Zigbee协议栈ZigBee协议从下到上分别为物理层(PHY)、媒体访问控制层(MAC)、传输层(TL)、网络层(NWK)、应用层(APL)等。

其中物理层和媒体访问控制层遵循IEEE 802.15.4标准的规定。

1.3 Zigbee技术优势•数据传输速率低:10KB/秒~250KB /秒,专注于低传输应用•功耗低:在低功耗待机模式下,两节普通5号电池可使用6~24个月•成本低:ZigBee数据传输速率低,协议简单,所以大大降低了成本•网络容量大:网络可容纳65,000个设备•时延短:典型搜索设备时延为30ms,休眠激活时延为15ms,活动设备信道接入时延为15ms。

•网络的自组织、自愈能力强,通信可靠•数据安全:ZigBee提供了数据完整性检查和鉴权功能,采用AES-128加密算法(美国新加密算法,是目前最好的文本加密算法之一),各个应用可灵活确定其安全属性•工作频段灵活:使用频段为2.4GHz、868MHz(欧洲)和915MHz(美国),均为免执照(免费)的频段1.4 Zigbee应用条件•低功耗;•低成本;•较低的报文吞吐率;•需要支持大型网络接点的数量级;•对通信服务质量QoS要求不高(甚至无QoS);•需要可选择的安全等级(采用AES-128),•需要多方面的较复杂的网络拓扑结构应用;•要求高的网络自组织、自恢复能力。

二、CC2530实验及实验修改2.1 基础实验(1)实验要求:按键触发中断,DS18B20测外部温度,数据以一定格式传输到串口显示(2)程序代码:#include <stdio.h>#include"iocc2530.h"#include"ds18b20.h"#define uint unsigned int#define uchar unsigned char#define KEY1 P0_1 //定义按键为P01口控制//变量uchar Keyvalue=0; //定义变量记录按键动作uint KeyTouchtimes=0; //定义变量记录按键次数//函数声明void Delay(uint);//延时函数声明void Initial(void);//初始化函数声明void InitKey(void); //初始化按键函数声明uchar KeyScan(void); //按键扫描函数声明//字符串【DS18B20采集到的温度是:XXXXXXX】chardata[23]={0x44,0x53,0x31,0x38,0x42,0x32,0x30,0xB2,0xC9,0xBC,0xAF,0xB5,0xBD,0xB5,0xC4, 0xCE,0xC2,0xB6,0xC8,0xCA,0xC7,0xA3,0xBA};unsigned char temp; //定义温度缓冲//延时void Delay(uint n){uint i;for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);}//时钟初始化void InitialCLK() //系统初始化{CLKCONCMD = 0x80; //系统选择32M振荡器while(CLKCONSTA&0x40); //这里等待晶振稳定}//初始化按键为中断输入方式void InitKeyINT(void){P0INP |= 0x02; //上拉P0IEN |= 0X02; //P01设置为中断方式PICTL |= 0X01; //下降沿触发EA = 1; //使能总中断IEN1 |= 0X20; // P0设置为中断方式;P0IFG |= 0x00; //初始化中断标志位}//串口初始化设置void UartInitial(void){PERCFG = 0x00; //位置1 P0口P0SEL = 0x0c; //P0用作串口P2DIR &= ~0xc0; //P0优先作为UART0U0CSR |= 0x80; //串口设置为UART方式U0GCR |= 11;U0BAUD |= 216; //波特率设为115200U0CSR |= 0x40;UTX0IF = 0;}//串口输出字符void UartPutChar(unsigned char DataChar){U0DBUF = DataChar; //发送字符while(UTX0IF == 0); //等待发送完成UTX0IF = 0;}//串口发送字符串函数void UartPutString(char *Data,int len){int j;for(j=0;j<len;j++){U0DBUF = *Data++;//发送字符串while(UTX0IF == 0);UTX0IF = 0;}}//外部中断程序#pragma vector = P0INT_VECTOR__interrupt void P0_ISR(void){temp=ReadDs18B20(); //温度检测UartPutString(data,23); //串口输出字符串if(temp/10>0) //判断是否数据只有1位UartPutChar(temp/10+48); //十位UartPutChar(temp%10+48); //个位UartPutChar('\n'); //换行P0IFG = 0; //清中断标志P0IF = 0; //清中断标志}//主函数void main(){InitialCLK(); //初始化系统时钟UartInitial(); //串口初始化InitKeyINT(); //按键初始化P0SEL &= 0xbf; //DS18B20的io口初始化while(1){}}(3)实验效果:按键一下,串口传出一次“DS18B20采集到的温度是:xx”显示在串口调试助手软件显示屏上2.2 实验修改(1)实验要求:按键触发中断改成按键检测程序代码:#include <stdio.h>#include"iocc2530.h"#include"ds18b20.h"#define uint unsigned int#define uchar unsigned char#define KEY1 P0_1 //定义按键为P01口控制//变量uchar Keyvalue=0; //定义变量记录按键动作int Keytouchtimes=0;//定义变量记录按键次数//函数声明void Delay(uint);//延时函数声明void Initial(void);//初始化函数声明void InitKey(void); //初始化按键函数声明uchar KeyScan(void); //按键扫描函数声明//字符串【DS18B20采集到的温度是:XXXXXXX】chardata[23]={0x44,0x53,0x31,0x38,0x42,0x32,0x30,0xB2,0xC9,0xBC,0xAF,0xB5,0xBD,0xB5,0xC4,0xCE ,0xC2,0xB6,0xC8,0xCA,0xC7,0xA3,0xBA};unsigned char temp; //定义温度缓冲//延时void Delay(uint n){uint i;for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);}//时钟初始化void InitialCLK() //系统初始化{CLKCONCMD = 0x80; //系统选择32M振荡器while(CLKCONSTA&0x40); //这里等待晶振稳定}//按键初始化函数void InitKey(){P0SEL &= ~0X2; //设置P04为普通IO口P0DIR &= ~0X2; //按键在P04 口,设置为输入模式P0INP &= ~0x2; //打开P04上拉电阻,不影响}//串口初始化设置void UartInitial(void){PERCFG = 0x00; //位置1 P0口P0SEL = 0x0c; //P0用作串口P2DIR &= ~0xc0; //P0优先作为UART0U0CSR |= 0x80; //串口设置为UART方式U0GCR |= 11;U0BAUD |= 216; //波特率设为115200U0CSR |= 0x40;UTX0IF = 0;}//串口输出字符void UartPutChar(unsigned char DataChar){U0DBUF = DataChar; //发送字符while(UTX0IF == 0); //等待发送完成UTX0IF = 0;}//串口发送字符串函数void UartPutString(char *Data,int len){int j;for(j=0;j<len;j++){U0DBUF = *Data++;//发送字符串while(UTX0IF == 0);UTX0IF = 0;}}//按键检测函数uchar KeyScan(void){if(KEY1==0) //判断按键是否按下{Delayms(10); //延时很短一段时间if(KEY1==0) //再次判断按键情况{while(!KEY1); //松手检测return 1; //有按键按下}}return 0; //无按键按下}//主函数void main(){InitialCLK(); //初始化系统时钟UartInitial(); //串口初始化InitKeyINT(); //按键初始化P0SEL &= 0xbf; //DS18B20的io口初始化while(1){Keyvalue = KeyScan(); //读取按键动作if(Keyvalue==1){temp=ReadDs18B20(); //温度检测UartPutString(data,23); //串口输出字符串if(temp/10>0) //判断是否数据只有1位UartPutChar(temp/10+48); //十位UartPutChar(temp%10+48); //个位UartPutChar('\n'); //换行}Delay(100); //延时}}实验效果:按键一下,串口传出一次“DS18B20采集到的温度是:xx”显示在串口调试助手软件显示屏上(2)实验要求:去掉松手检测,观察效果程序代码:#include <stdio.h>#include"iocc2530.h"#include"ds18b20.h"#define uint unsigned int#define uchar unsigned char#define KEY1 P0_1 //定义按键为P01口控制//变量uchar Keyvalue=0; //定义变量记录按键动作int Keytouchtimes=0;//定义变量记录按键次数//函数声明void Delay(uint);//延时函数声明void Initial(void);//初始化函数声明void InitKey(void); //初始化按键函数声明uchar KeyScan(void); //按键扫描函数声明//字符串【DS18B20采集到的温度是:XXXXXXX】chardata[23]={0x44,0x53,0x31,0x38,0x42,0x32,0x30,0xB2,0xC9,0xBC,0xAF,0xB5,0xBD,0xB5,0xC4, 0xCE,0xC2,0xB6,0xC8,0xCA,0xC7,0xA3,0xBA};unsigned char temp; //定义温度缓冲//延时void Delay(uint n){uint i;for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);}//时钟初始化void InitialCLK() //系统初始化{CLKCONCMD = 0x80; //系统选择32M振荡器while(CLKCONSTA&0x40); //这里等待晶振稳定}//按键初始化函数void InitKey(){P0SEL &= ~0X2; //设置P04为普通IO口P0DIR &= ~0X2; //按键在P04 口,设置为输入模式P0INP &= ~0x2; //打开P04上拉电阻,不影响}//串口初始化设置void UartInitial(void){PERCFG = 0x00; //位置1 P0口P0SEL = 0x0c; //P0用作串口P2DIR &= ~0xc0; //P0优先作为UART0U0CSR |= 0x80; //串口设置为UART方式U0GCR |= 11;U0BAUD |= 216; //波特率设为115200U0CSR |= 0x40;UTX0IF = 0;}//串口输出字符void UartPutChar(unsigned char DataChar){U0DBUF = DataChar; //发送字符while(UTX0IF == 0); //等待发送完成UTX0IF = 0;}//串口发送字符串函数void UartPutString(char *Data,int len){int j;for(j=0;j<len;j++){U0DBUF = *Data++;//发送字符串while(UTX0IF == 0);UTX0IF = 0;}}//按键检测函数uchar KeyScan(void){if(KEY1 == 1) //高电平有效{Delay(100); //检测到按键if(KEY1 == 1){return(1);}}return(0);}//主函数void main(){InitialCLK(); //初始化系统时钟UartInitial(); //串口初始化InitKeyINT(); //按键初始化P0SEL &= 0xbf; //DS18B20的io口初始化while(1){Keyvalue = KeyScan(); //读取按键动作if(Keyvalue==1){temp=ReadDs18B20(); //温度检测UartPutString(data,23); //串口输出字符串if(temp/10>0) //判断是否数据只有1位UartPutChar(temp/10+48); //十位UartPutChar(temp%10+48); //个位UartPutChar('\n'); //换行}Delay(100); //延时}}实验效果:按键按下时,不断循环换行显示“DS18B20采集到的温度是:xx”,显示速度很快。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

现代通信技术试验报告(一)ZigBee星状网络实验
学院:计算机学院
班级:24010107班
学号:2012040101330
姓名:赵堃
日期:2015.05.13
ZigBee星状网络实验
一、【实验目的】
1. 了解ZigBee 星状网络结构;
2. 掌握构建星状网络的方法。

二、【实验设备】
1. 装有IAR 开发工具的PC 机一台;
2. 下载器一个;
3. 物联网多网技术综合教学开发设计平台一套。

三、【实验要求】
1. 编程要求:使用协议栈提供的API 函数编写应用程序;
2. 实现功能:构建星状网络进行数据通信;
3. 实验现象:协调器通信指示灯(D9)闪烁,其他节点通信指示灯(D9)熄灭,说明其他节点向协调器发送数据,星状网络构建成功。

四、【实验原理】
通过设置网络中各个节点的网络拓扑参数为星型组网方式,使协调器建立一个ZigBee 网络,其他终端节点连接到网络时,直接以协调器节点作为父节点,构成星型网络拓扑结构。

并通过“ZigBee 调试助手”查看现象。

星状网络结构图示例如下:
图1-星状网络结构图
五、【程序流程图】
图2-ZigBee星状网络实验节点流程图
六、【实验步骤】
1.将调试器连接到实验箱的调试口;
2.打开协议栈工程文件;
3.打开工程目录下 NWK 中的 nwk_globals.h 文件,看到网络拓扑形状是由如图 3 所示的“NWK_MODE_STAR”(星型网)、“NWK_MODE_TREE”(树状网)、“NWK_MODE_MESH”(网状网)3 个宏定义作为网络参数确定的。

图3-协议栈中ZigBee网络模式参数宏定义
4.按照图 4 修改 ZigBee 节点组网的网络拓扑结构参数,将图示部分修改为“NWK_MODE_STAR”即规定了网络的拓扑结构为星型连接方式。

图4-修改网络拓扑为星型网
5. 使用实验箱上的旋钮选中协调器节点,然后编译协调器的代码,然后点击下载图标,如图 5 所示:
图5-下载协调器节点程序
6.下载完成后,点击图 6 所示的调试界面的“全速运行”,再点击“退出调试”。

图6-在线调试图标
7.使用实验箱上的旋钮选中气体传感器节点
8.打开工程目录“APP”文件夹下的“SAPP_Device.h”文件,修改图 7 所示的部分,使宏定义“HAS_GAS”有效,其他功能宏定义均被注释(无效),即向节点添加了气体检测功能。

图7-添加气体检测功能
9.按照图 8 所示,选择“终端节点”,然后点击下载图标,等待完成下载。

图8-下载气体传感器节点程序
10.下载完成后,点击图 9 所示的调试界面的“全速运行”,再点击“退出调试”。

图9-气体传感器程序在线调试图标
11.重复上述步骤,修改“SAPP_Device.h”文件,可以添加人体红外传感器节点,雨滴传感器节点到 ZigBee 网络中。

12.使用 USB Mini 延长线连接协调器节点的串口和 PC 的 USB 口。

13.打开ZigBee 调试助手”,然后按照图 10 所示选择设备连接使用的端口为端口com1。

图10-ZigBee调试助手端口选择
14.然后点击“打开”按钮,刷新稍等片刻,看到界面上出现了如图 11 所示的网络拓扑结构图。

图11-ZigBee网络拓扑结构图
七、【实验过程问题与总结】
问题:
1、在第一次下载协调器节点程序时,实验箱上的旋钮没有选中对应的协调器节点,导致程序下载失败;
2、添加其他节点时出现无法添加成功的情况,后修改了“f8wConfig.cfg”文件中的的“-DZAPP_CONFIG_PAN_ID=0xFFFF”,将其中的“0xFFFF”修改为其他值,以便区别于其他实验箱的ID;
总结:
经过这次验证性实验,了解了ZigBee星状网的基本工作原理,星状网络拓扑的基本结构,以及星状网的基本构造方法;能进行网络协调器节点的设置,以及添加相关的传感器节点进入ZigBee网络,并实现一定的监测功能。

八【实验源程序】。

相关文档
最新文档