zigBee实验报告
无线点灯实验报告

一、实验目的本次实验旨在通过Zigbee无线通信技术,实现无线点灯功能。
通过实验,加深对Zigbee无线通信协议的理解,掌握无线点灯系统的搭建与调试方法,并了解其应用前景。
二、实验原理Zigbee是一种低功耗、低成本、低速率的无线通信技术,广泛应用于智能家居、工业控制等领域。
本实验采用CC2530芯片作为Zigbee模块,通过编程实现无线点灯功能。
实验原理如下:1. Zigbee节点盒:包括LED1、LED2、SW1、CC2530芯片等。
节点盒的功能是控制LED1、LED2的亮灭,并接收Zigbee模块发送的信息。
2. Zigbee模块:包括D4、D3、D6、D5、CC2530芯片等。
模块的功能是接收节点盒发送的信息,并控制LED1、LED2的亮灭。
3. 无线通信:Zigbee节点盒与Zigbee模块之间通过无线信号进行通信。
4. 程序控制:通过编程实现LED1、LED2的亮灭状态,以及流水灯状态。
三、实验器材1. CC2530无线节点盒模块1套2. CC2530无线模块1套3. LED灯2个4. 按键开关2个5. 电阻、电容等电子元器件6. 仿真软件(如Proteus)7. 连接线若干四、实验步骤1. 搭建实验电路:将CC2530无线节点盒模块、CC2530无线模块、LED灯、按键开关等元器件按照电路图连接好。
2. 编写程序:在仿真软件中编写Zigbee节点盒和Zigbee模块的程序。
程序主要实现以下功能:(1)节点盒程序:控制LED1、LED2的亮灭,并接收Zigbee模块发送的信息。
(2)模块程序:接收节点盒发送的信息,并控制LED1、LED2的亮灭。
3. 调试程序:将编写好的程序烧录到CC2530芯片中,进行调试。
4. 实验测试:观察LED1、LED2的亮灭状态,以及流水灯状态,验证实验结果。
五、实验结果与分析1. 当程序开始运行时,Zigbee节点盒上的LED1、LED2灯亮,Zigbee模块上的D4、D3、D6、D5灯亮。
zigbee实训报告总结

zigbee实训报告总结IntroductionZigbee是一种低功耗、低速率、低成本的无线通信技术,旨在提供简便的无线连接解决方案。
本篇文章总结了我们参加的Zigbee实训的经验和成果。
1. 实训目的本次实训旨在让我们了解Zigbee技术的基本原理和应用,培养我们在物联网领域的实践能力。
通过进行实际操作和实验,我们可以更好地理解并掌握Zigbee协议栈的功能和使用方法。
2. 实训内容2.1 硬件准备在实训开始前,我们需要准备相应的硬件设备,其中包括Zigbee通信模块、开发板以及相应的传感器。
这些硬件设备使我们能够建立起一个基于Zigbee的无线传感器网络。
2.2 Zigbee协议栈在实训过程中,我们学习了Zigbee协议栈的结构和功能。
它包括物理层、MAC层、网络层和应用层。
我们在实验中使用TI的Z-Stack软件包进行协议栈的开发和调试。
2.3 网络拓扑建立我们学习了如何建立Zigbee网络的拓扑结构,包括星型拓扑、树型拓扑和网状拓扑。
同时,我们还了解了路由协议和网络子树的概念,以及如何使用网络层的路由表实现数据包的路由。
2.4 数据传输与处理在实验中,我们学习了如何使用Zigbee传输数据。
通过配置和使用Zigbee的数据帧,我们能够实现不同设备之间的数据传输,并在接收端对传输的数据进行处理和解析。
3. 实训成果在实训的过程中,我们不仅仅是理论的学习,更是实际的操作。
通过完成一系列的实验任务,我们熟悉了Zigbee技术的应用,掌握了Zigbee协议栈的开发和调试方法。
同时,我们还学会了使用Zigbee通信模块建立无线传感器网络,并成功实现了数据的传输和处理。
这些实践经验对我们今后从事物联网相关工作具有很大的帮助。
4. 总结与展望通过参加这次Zigbee实训,我们对物联网领域的Zigbee技术有了更深入的了解。
我们学会了如何利用Zigbee协议栈搭建无线传感器网络,并实现了数据的传输和处理。
zigbee实习报告

上层应用少,且某些仅仅包含ieee标准协议栈,所有又被称为ieee节点(ieeenode)。络协
调器的主要功能是协调建立络,其他功能还包括:传输络信标,管理络节点,存储络节
点信息并且提供关联节点之间的路由信息。此外,络协调器要存储一些基本信息,如节点数
是简化功能的设备(rfd)。在络中,ffd通常有3种工作状态:作为个人区域络的协调器
(pan);作为路由器;作为一个终端设备。一个ffd可以同时和多个rfd或多个其他的ffd通信,
而对于rfd,它只能和一个ffd进行通信,故只能作为终端设备。zigbee协调器,即zigbee的
个域协调器,是络建立的起点,负责络的初始化,确定个域标识符和络工作的物理
= 0;
16. }
17. }
18. if(rxtxflag == 3)
19. {
20.
21. if(recdata[0]==a)
22. {
(recdata[1]==0)
24.{
= 0;
= 1;
= 1;// a0# 关所 有led
28.}
30.{
31. rled = 1;
32. yled = 1;
33. gled = 1; // a1# 开所 有led
逐渐成为无线传感器络的首选通信协议。工作于无须注册的 ghz ism频段,传输速率为
10~250 kb/s,传输距离为10~75 m。该项技术自XX年起由zigbee技术联盟研究开发,采
用ieee 标准作为其物理层和媒体接入子层标准、络层及上层标准,即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星状网络实验学院:计算机学院班级: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实验报告

将 J-link 与电脑相连。
实验内容(算 法、程序、步 骤和方法)
将转接口插到 J-link 仿真器的 JTAG 端
Zigbee 模块
2 . 将转接板与节点相连,将路由器代码下载到 Z igbee 模块中。 二.配置协调:
将转接板与节点相连,将协调器代码下载到 Z igbee 模块中。 三.先给协调器上电,再上电路由器。 四.在节点上按 SW1 按键可让另一节点的指示灯亮。 五.再按一次 SW1 按键,灯灭。
忻州师范学院计算机科学与技术系学号:姓Fra bibliotek:实验报告
班级:
1302 班
课程名称
无线网络技术
实验课时
2
实验项目
Zigbee 实验
实验时间
2015.12.14
指导老师
实验成绩
实验目的(本 次上机实验所 涉及并要求掌 握的知识点) 实验环境(本 次上机实验所 使用的平台和 相关软件)
1. 了解并认识 Zigbee; 2. 掌握 Zigbee 的配置方法及实现; 3. 利用 Zigbee 完成无线点灯实验。
硬件部分:
PC 机;Zigbee 模块; 软件部分:
keil u Vision4 开发环境、J-Link 驱动程序。
一.配置路由:
1. 取出 J-link 仿真器,将转接口插到 J-link 仿真器的 JTAG 端,通过转接线将 J-link
与转接板连接,通过 10pin 转接线将转接板与节点连接,通过 J-link 的标配 USB 线,
1/2
调试过程及实 验结果(详细 记录程序在调 试过程中出现 的问题及解决 方法,记录程 序执行的结
果)
总结(对上机 实验结果进行 分析,上机心 得体会及改进
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”,显示速度很快。
zigbee组网实验报告

zigbee组网实验报告
《Zigbee组网实验报告》
近年来,随着物联网技术的迅猛发展,各种无线传感器网络的研究和应用也日
益受到关注。
其中,Zigbee作为一种低功耗、低成本的无线传感器网络技术,
被广泛应用于智能家居、工业自动化、农业监测等领域。
为了更好地了解Zigbee组网技术的性能和应用,我们进行了一系列的实验。
首先,我们搭建了一个小型的Zigbee传感器网络,包括一个协调器和若干个终端节点。
通过Zigbee协议栈的支持,我们成功实现了这些节点之间的通信和数据传输。
在实验过程中,我们发现Zigbee组网具有较高的稳定性和可靠性,即使在复杂的环境中也能够保持良好的通信质量。
其次,我们对Zigbee组网的能耗进行了测试。
结果显示,由于Zigbee采用了
低功耗的通信方式,因此整个传感器网络的能耗非常低,能够满足长期监测和
控制的需求。
这使得Zigbee成为了很多物联网应用的首选技术之一。
另外,我们还对Zigbee组网的网络拓扑结构进行了研究。
通过改变节点之间的布局和距离,我们发现Zigbee能够自动调整网络拓扑结构,保持良好的网络覆盖和通信质量。
这为实际应用中的网络规划和优化提供了重要的参考。
总的来说,我们的实验结果表明,Zigbee组网技术具有很好的性能和应用前景。
它不仅在能耗方面表现优异,而且在通信稳定性和网络拓扑结构方面也具有很
强的适应能力。
我们相信,在未来的物联网应用中,Zigbee将会发挥越来越重
要的作用。
希望我们的实验报告能够为相关研究和应用提供一定的参考和借鉴。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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协议操作系统,描述了其运行机制;以及PHY层、MAC 层、网络层、应用层。
在网络层描述了其网络拓扑结构,并针对Ad-Hoc路由算法提出了一个我自己的一个想法。
五、实验结果通过照片展示了实验效果。
六、实验结论说明了温度数据偏差的原因。
六、实验小结谈了些无线通信的现状;学习的心得,不足和未来的能力方向。
三、实验相关设备环境1. 主要的硬件环境ZigBee开发板(两个)本实验利用的开发板是在淘宝上买的。
应该是一个小店参考TI公司产品生产的。
外形如图1所示:图1:ZigBee开发板外形图本开发板采用TI公司的CC2530芯片,外有晶振、RS232串口、按键、电源灯外围电路及元件。
本实验利用CC2530芯片集成的片上温度传感器采集温度。
部分核心板电路如图2所示:图2:部分核心板电路图部分底板电路图如图3所示:图3:部分底板电路图CC2530芯片CC2530 是用于2.4-GHz IEEE 802.15.4、ZigBee 和RF4CE 应用的一个真正的片上系统(SoC)解决方案。
它能够以非常低的总的材料成本建立强大的网络节点。
CC2530 结合了领先的RF 收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其他强大的功能。
CC2530 具有不同的运行模式,使得它尤其适应超低功耗要求的系统。
运行模式之间的转换时间短进一步确保了低能源消耗。
图4:CC2530框图CC2530 具有一个IEEE 802.15.4 兼容无线收发器。
RF 内核控制模拟无线模块。
另外,它提供了MCU 和无线设备之间的一个接口,这使得可以发出命令,读取状态,自动操作和确定无线设备事件的顺序。
无线设备还包括一个数据包过滤和地址识别模块。
CC2530的硬件设计也支持ZigBee协议所要求的各种协议和算法。
2. 主要的软件环境TI公司的。
ZStack是TI公司为开发者提供的符合ZigBee2007的协议栈,是开发ZigBee 模块必不可少的环境(当然你也可以选择其他协议栈或自己开发一个协议栈)。
ZStack是一个免费半开源的产品。
注:ZigBee协议是ZigBee联盟给出的一个短距离无线传输协议。
ZigBee协议栈是ZigBee协议的具体实现。
ZStack是TI公司开发的ZigBee协议栈。
四、实验内容4.1.内容简介本节内容主要分为以下两方面:1. 无线传感器网络采温系统实验 2. ZigBee协议(ZigBee2007版,下同)和ZStack分析。
无线传感器网络采温系统实验部分是对本次开发的一个描述。
在商业的ZigBee模块开发中是都利用了ZigBee协议栈,其为开发提供了必要的接口。
开发者所做的代码工作主要是相关的硬件驱动和应用程序。
本实验室基于TI官方实例SimpleAPI所做,并对这个实例进行了必要的改写。
虽然ZigBee协议栈为开发者提供了所需的API,使得开发者不必关心ZigBee协议的具体实现,便可开发出产品,但是要想更好的开发ZigBee产品,我想还必须对ZigBee协议和协议栈进行研究分析。
本段内容的另一个部分便是对此的描述。
4.2. 无线传感器网络采温系统实验4.2.1实验简介本实验基于ZigBee网络设计了一个无线传感器网络,可以完成无线的采温功能。
设备类型简介:协调器(作为采集器)协调器是一个ZB网络的第一个开始的设备,或者是一个ZB网络的启动或建立网络的设备。
协调器节点选择一个信道和网络标志符(也叫PAN ID),然后开始建立一个网络。
协调器设备在网络中还可以有其他作用,比如建立安全机制、网络中的绑定的建立等等。
注意:协调器主要的作用是建立一个网络和配置该网络的性质参数。
一旦这些完成,该协调器就如同一个路由器,网络中的其他操作并不依赖该协调器,因为ZB是分布式网络。
路由器(作为传感器)一个路由器的功能有(1)作为普通设备加入网络(2)多跳路由(3)辅助其它的子节点完成通信。
终端设备(作为传感器)为了维持网络最基本的运行,对于终端设备没有指定的责任。
也就是说,在一个基本网络中,终端设备没有必不可缺少性。
所以它可以根据自己功能需要休眠或唤醒,因此为电池供电设备。
一般来说,该设备需要的内存较少(特别是内部RAM)网络的拓扑结构网状结构(无线mesh网络)图5:网络拓扑结构图黑色的为协调器节点,作为采集器,接收温度信息,并通过串口发送到PC机上。
红色的和白色的为传感器节点,采集温度数据发送到采集器。
红色的具有路由功能。
网络从功能上讲是基于ad hoc 网络的,具有自组织,多跳等特点。
因此可扩展性、健壮性都很有优势。
4.2.2 工程结构简介工程结构如图5所示:图6:工程的工作空间说明:APP(Application Programming):应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈里面一般是以操作系统的任务实现的。
HAL(Hardware (H/W) Abstraction Layer):硬件层目录。
MAC:介质接入控制子层目录,包含了MAC 层的参数配置文件及其MAC 的LIB 库的函数接口文件。
实现的功能有:1、能产生网络信标。
2、支持PAN的连接和断开连接。
3、同信标保持同步。
4、在对等的MAC实体之间提供一个可靠的通信链路。
5、处理和维护GTS 机制。
6、信道接入采用CSMA-CA接入机制。
7、支持设备的安全性。
介质访问控制层(MAC)帧被称为MAC协议数据单元(MPDU),其长度不超过127个字节。
它具有四种不同的帧形式,即信标帧、数据帧、确认帧和命令帧。
MT(Monitor Test):实现通过串口可控各层,与各层进行直接交互。
NWK(ZigBee Network Layer):网络层目录,含网络层配置参数文件及网络层库的函数接口文件,APS 层库的函数接口。
OSAL(Operating System (OS) Abstraction Layer):协议栈的操作系统。
Profile:AF(Application work)层目录,包含AF 层处理函数文件。
Security:安全层目录,安全层处理函数,比如加密函数等。
Services:地址处理函数目录,包括着地址模式的定义及地址处理函数。
Tools:工程配置目录,包括空间划分及ZStack 相关配置信息。
ZDO(ZigBee Device Objects):ZDO 目录。
ZMac:MAC 层目录,包括MAC 层参数配置及MAC 层LIB 库函数回调处理函数。
ZMain:主函数目录,包括入口函数及硬件配置文件。
Output:输出文件目录,这个EW8051 IDE 自动生成的。
设备功能及网络拓扑结构介绍ZigBee设备可分为全功能设备(FFD)和简化功能设备(RFD)。
全功能设备可以作为协调器(路由器)节点,可以进行数据的转发等功能。
简化功能设备只能作为终端节点发送和接受数据。
ZigBee协议支持多种网络拓扑结构,包括星型结构,树形结构,网状结构等。
关于ZIgBee 网络拓扑结构的较为详细的介绍,将在本段3节中给出。
由于我暂时只买了两个模块,所以网络拓扑结构也很简单了。
一个是协调器节点,作为采集器模块通过串口同我的笔记本相连。
另一个是终端节点作为传感器模块测量温度并传输数据。
需要指出的是,只要有足够多的节点,本实验完全能够根据实际需要设计出有效的网络拓扑结构。
main()函数和OSAL这部分是Zstack的程序,与我们编程工作密切相关,所以进行简单说明。
一个程序是从main()函数开始运行的。
在ZStack中main()函数主要完成了各种初始化任务,以及操作系统OSAL的启动。
相关的函数代码如下:/********************************************************************** @fn main* @brief First function called after startup.* @return don't care*/int main( void ){// Turn off interruptsosal_int_disable( INTS_ALL );// Initialization for board related stuff such as LEDs HAL_BOARD_INIT();// Make sure supply voltage is high enough to run zmain_vdd_check();// Initialize board I/OInitBoard( OB_COLD );// Initialze HAL driversHalDriverInit();// Initialize NV Systemosal_nv_init( NULL );// Initialize the MACZMacInit();// Determine the extended addresszmain_ext_addr();// Initialize basic NV itemszgInit();#ifndef NONWK// Since the AF isn't a task, call it's initialization routine afInit();#endif// Initialize the operating systemosal_init_system();// Allow interruptsosal_int_enable( INTS_ALL );// Final board initializationInitBoard( OB_READY );// Display information about this devicezmain_dev_info();/* Display the device info on the LCD */#ifdef LCD_SUPPORTEDzmain_lcd_init();#endif#ifdef WDT_IN_PM1/* If WDT is used, this is a good place to enable it. */WatchDogEnable( WDTIMX );#endifosal_start_system(); // No Return from herereturn 0; // Shouldn't get here.} // main()OSAL即Operating System (OS) Abstraction Layer,是一个基于事件驱动的轮询式的操作系统。