zigBee实验报告

合集下载

zigbee实训报告总结

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实训报告总结

zigbee实训报告总结

zigbee实训报告总结本次zigbee实训报告总结本次实训报告旨在总结我们小组在zigbee实训项目中的经验和收获。

通过实际操作和研究,我们深入了解了zigbee无线通信技术的原理、应用和方案,提升了我们的实际操作能力和问题解决能力。

一、实训背景与意义实训背景:随着物联网技术的快速发展,zigbee无线通信技术作为一种低功耗、低成本、自组网特性的无线通信技术,受到了广泛的关注和应用。

意义:通过本次实训,我们可以深入了解zigbee技术的原理和应用,提高我们的实际操作能力和问题解决能力,为我们今后的学习和工作打下良好的基础。

二、实训内容与目标实训内容:我们小组在实训期间主要进行了zigbee协议的学习、无线传感器网络的建立与调试、数据采集与处理等环节。

实训目标:通过实际操作和实验演示,掌握zigbee协议的相关知识,能够熟练使用zigbee技术进行无线传感器网络的建立和数据采集,能够对采集到的数据进行处理和分析。

三、实训过程与方法实训过程:我们小组通过课堂学习和实际操作相结合的方式来进行实训。

在课堂学习中,我们学习了zigbee协议的相关知识,并进行了实验演示。

在实际操作中,我们通过购买zigbee模块和传感器设备,并使用相应的软件和工具,搭建了一个小型的无线传感器网络,并进行了数据采集和处理。

实训方法:在实训过程中,我们采用了理论与实践相结合的方法。

通过学习和实践相结合,我们深入了解了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组网实验报告

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实验报告

将 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实验报告

一、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实验报告
二、实验环境(本实验的硬件和软件环境及使用仪器等)
1.装有IAR开发环境的PC机一台;
2.物联网多网技术开发设计平台所配备的基础实验套件一套;
3.下载器一个。
4.IAR Embedded Workbench软件
三、实验要求(包括原实验要求和老师补充要求)
1.编程要求:编写一段C语言程序;
2.实现功能:通过P1口输出的数据控制8个发光二极管的亮灭;
Zigbee与RFID技术与应用
实训报告
班级:13电信3班
实验小组:第8组
组员:34李X,36黄X,50朱X
指导教师:张X
报告时间:2015年9月22日
实验题目
I/O端口输出实验
实验地点及组别
实502 |第5组
实验时间
5—8节
一、实验目的和要求
1.掌握CC2530单片机C语言编程方法;
2.掌握P1口作为通用输出口的使用方法。
实验结果:
经过组员共同努力,最终调试成功,实验板正常显示,结果正确。
总结:
经一个快乐的过程,我们会好好珍惜,继续努力。
3.原实验现象:利用基础实验板上的8个LED灯实现顺序流水灯效果。
4.修改后实验现象:基础实验版上的8个LED灯逆序依次点亮,且延迟时间为原来的3倍。
四、实验实现过程(包括实验原理和修改的核心程序)
实验原理:通过控制实验板CC2530 端口输出,采用共阴极方式连接8个LED灯,通过PC机与试验箱链接烧写录入程序,观察LED灯现象,得出结论。
其中8个LED灯对应的I/O端口分别为:QA、QB、QC、QD、QE、QF、QG、QH
采用的LED灯电路原理图如下:
采用的移位锁存器74HC595电路原理图如下:

zigbee组网实验报告

zigbee组网实验报告

zigbee组网实验报告
《Zigbee组网实验报告》
近年来,随着物联网技术的迅猛发展,各种无线传感器网络的研究和应用也日
益受到关注。

其中,Zigbee作为一种低功耗、低成本的无线传感器网络技术,
被广泛应用于智能家居、工业自动化、农业监测等领域。

为了更好地了解Zigbee组网技术的性能和应用,我们进行了一系列的实验。

首先,我们搭建了一个小型的Zigbee传感器网络,包括一个协调器和若干个终端节点。

通过Zigbee协议栈的支持,我们成功实现了这些节点之间的通信和数据传输。

在实验过程中,我们发现Zigbee组网具有较高的稳定性和可靠性,即使在复杂的环境中也能够保持良好的通信质量。

其次,我们对Zigbee组网的能耗进行了测试。

结果显示,由于Zigbee采用了
低功耗的通信方式,因此整个传感器网络的能耗非常低,能够满足长期监测和
控制的需求。

这使得Zigbee成为了很多物联网应用的首选技术之一。

另外,我们还对Zigbee组网的网络拓扑结构进行了研究。

通过改变节点之间的布局和距离,我们发现Zigbee能够自动调整网络拓扑结构,保持良好的网络覆盖和通信质量。

这为实际应用中的网络规划和优化提供了重要的参考。

总的来说,我们的实验结果表明,Zigbee组网技术具有很好的性能和应用前景。

它不仅在能耗方面表现优异,而且在通信稳定性和网络拓扑结构方面也具有很
强的适应能力。

我们相信,在未来的物联网应用中,Zigbee将会发挥越来越重
要的作用。

希望我们的实验报告能够为相关研究和应用提供一定的参考和借鉴。

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

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

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

(40)4.3.6 ZigBee2007的应用层 (45)五、实验结果 (46)六、实验结论 (47)七、实验小结 (47)7.1 短距离无线通信网络的现状和发展 (47)7.2 ZigBee通信技术的应用 (48)7.3 学习ZigBee开发的心得体会 (48)7.4 下一步可能的学习计划 (49)实验《基于无线传感器网络的采温实验》实验学时:1 实验地点:201 实验日期:一、实验目的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.实验简介本实验基于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 LEDsHAL_BOARD_INIT();// Make sure supply voltage is high enough to runzmain_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,是一个基于事件驱动的轮询式的操作系统。

相关文档
最新文档