ZigBee网络拓扑结构显示
- 格式:doc
- 大小:32.44 MB
- 文档页数:31
1.ZigBee技术简介ZigBee是一种短距离,低功耗,低速率,低成本的一种无线自组网通信技术。
2.ZigBee网络特点ZigBee网络有如下特点:低功耗,自组网,多跳路由,高安全,抗干扰能力强……3.ZigBee网络角色3.1协调器ZigBee协调器(英文名:ZigBee Coordinate,通常简写为:ZC)。
协调器在ZigBee网络中,有且只能有一个协调器,它在网络中起了网络搭建和网络维护的功能。
是整个网络的中心枢纽。
是等级最高的父节点。
3.2路由器ZigBee路由器(英文名:ZigBee Router,通常简写为:ZR),路由器在ZigBee网络中既可以充当父节点,也可以充当子节点,有信息转发和辅助协调器维护网络的功能。
3.3终端ZigBee终端(英文名:ZigBee End-Device,通常简写为:ZED),终端在ZigBee网络中,其功能最为简单,只能加入网络,为最末端的子节点设备。
只能与其父节点进行通信,如果两个终端之间需要通信,必须经过父节点进行多跳或者单跳通信。
是ZigBee网络中可允许存在的数量最多的节点,也是唯一允许低功耗的网络设备。
4.ZigBee拓扑结构ZigBee根据网络结构可分为三种,即:星状网络、树状网络和网状网络。
4.1星状网络ZigBee星状网络在ZigBee网络中属于一种最为简单的网络拓扑结构。
包含一个协调器(中心节点)和若干个路由器和终端(附属节点)组成。
该结构如下图所示:该结构网络中,每个附属节点只能与中心节点通信,如果需要两个附属节点之间通信,必须经过中心节点进行数据转发。
4.2树状网络ZigBee树状网络包含一个协调器,若干个路由器和终端组成。
其网络拓扑结构如下图所示:ZigBee树状网络可以看做多个星状网络组成,每个树杈分支处(带节点的路由器)可看做组成星状网络的“中心节点”,每个字设备只能与其父节点通信,最高级的父节点为协调器。
在树状网络中,协调器将整个网络搭建起来,路由器作为承接点,将网络以树状向外扩散。
ZigBee树型网络地址分配及结构
树型路由机制包括配置树型地址和树型地址的路由。
当协调器建立一个新的网络,它将给自己分配网络地址0,网络深度d=0。
网络深度表示仅仅采用父子关系的网络中,一个传送帧传送到ZigBee协调器所传递的最小跳数。
如“节点A”加入网络并与协调器连接,那么“节点A”的网络深度是1;“节点B”加入网络并与“节点A”连接,那么“节点B”的网络深度是2,依此类推。
在树簇型网络中,协调器和路由器都可以连接N个路由节点和终端节点做为自己的子节点,形成一个个“簇”。
但是协调器和路由器能连接的子节点的数量是不是无限的呢?
协议栈中,有以下几个参数影响网络拓扑的形态:
Cm(nwkMaxChildren):每个父节点可以连接的子节点的总个数;
Rm(nwkMaxRouters):在Cm中,可以是路由节点的个数,Rm<=Cm;
Lm:网络最大深度,协调器的深度为0。
这三个参数的值在Z-stack中分别由变量CskipChldrn、CskipRtrs、MAX_NODE_DEPTH决定。
这三个变量可以在NWK中的nwk_globals.c 和 nwk_globals.h 两个文件中查找。
地址的分配:
每一个节点加入网络时,都会被分配16位
(未完待续)。
ZigBee技术的网络拓扑结构ZigBee技术的网络拓扑结构2010-04-06 11:53ZigBee技术网络有两种网络拓扑结构:星型的拓扑结构和对等的拓扑结构。
星型拓扑网络结构有一个叫做PAN主协调器的中央控制器和多个从设备组成,主协调器必须为一个完整功能的设备,从设备既可为完整功能设备也可为简化功能设备,在实际应用中,应根据具体应用情况,采用不同功能的设备,合理的构造通信网络。
在网络通信中,通常将这些设备分为起始设备或者终端设备,PAN主协调器既可作为起始设备、终端设备,也可以作为路由器,它是PAN网络的主要控制器。
在任何一个拓扑网络上,所有设备都有唯一的64位长地址码,该地址码可以在PAN中用于直接通信,或者当设备发起连接时,可以将其转变为16位的短地址码分配给PAN设备,因此,在设备发起连接时,应采用64位的长地址码,只有在连接成功后,系统分配了PAN的标识符后,才能采用16位的短地址进行连接,因此,短地址吗是一个相对地址码,长地址码是一个绝对地址码。
在ZigBee技术应用中,PAN主协调器是主要的耗能设备,而其他从设备均采用电池供电,ZigBee技术的星型拓扑结构通常在家庭自动化、PC外围设备、玩具、游戏以及个人健康检查等方面得到应用。
对等的拓扑网络机构中,同样也存在一个PAN主设备,但该网络不同于星型拓扑网络结构,在该网络中的任何一个设备只要是在它的通信范围内,就可以和其它设备进行通信。
对等拓扑网络结构能够构成较为复杂的网络结构,例如,网孔拓扑网络结构,这种对等拓扑网络结构在工业监测和控制、无线传感器网路偶、供应物资跟踪、农业智能化,以及安全监控等方面都有广泛的应用。
一个对等网络的路由协议可以是基于Ad hoc技术的,也可以是自组织式的和自恢复的,并且,在网络中各个设备之间发送消息时,可通过多个中间设备中继的方式进行传输,即通常称为多跳的传输方式,以增大网络的覆盖范围。
其中,组网的路由协议,在ZigBee网络层中没有给出,这样为用户的使用提供了更为灵活的组网方式。
z i g b e e网络体系结构本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.MarchZigbee体系Zigbee的体系结构由称为层的各模块组成。
每一层为其上一层提供特定的服务:即由于数据服务实体提供数据传输服务;管理实体提供所有的其他管理服务。
每个服务实体通过相应的服务接入点(SAP)为其上层提供一个接口,每个服务接入点通过服务原语来完成所对应的功能。
Zigbee网络体系结构IEEE仅处理低级MAC层和物理层协议,因此zigbee联盟对其网络层协议和API进行了标注化,zigbee联盟还开发了安全层。
Zigbee物理层物理层定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务和物理层管理服务物理层数据服务从无线物理信道上收发数据。
物理管理服务维护一个由物理层相关数据组成的数据库。
物理层内容:(1)zigbee的激活(2)当前信道的能量检测(3)接收链路服务质量信息(4)Zigbee信道接入方式(5)信道频率选择(6)数据传输和接收MAC层:MAC层负责处理所有的物理无线信道访问,并产生网络信号、同步信号;支持PAN连接和分离,提供两个对等MAC实体之间可靠的链路。
MAC层数据服务:保证MAC协议数据单元在物理层数据服务中正确收发MAC层管理服务:维护一个存储MAC子层协议状态相关信息的数据库。
MAC层功能“(1)网络协调器产生信标;(2)与信标同步(3)支持PAN链路的建立和断开(4)为设备的安全性提供支持(5)信道接入方式采用免冲突载波检测多址接入(CSMA-CA)机制(6)处理和维护保护时隙(GTS)机制(7)在两个对等的MAC实体之间提供一个可靠的通信链路网络层Zigbee协议栈的核心部分在网络层,网络层主要实现节电加入或离开网络、接收或抛弃其他节点、路由查找及传送数据等功能,支持Cluster-Tree等多种路由算法,支持星行、树形、网络拓扑结构。
ZigBee mesh结构图1描述了常见的网络拓扑类型,即。
星,树和网。
该图显示了zigbee元素(例如协调器,路由器和终端设备)如何在这些不同的网络拓扑类型中连接。
通常在网状网络中,每个节点中继或路由数据直到它到达目的节点。
网状网络在路由数据方面非常强大。
在网格中,每个节点与其他节点协作,从而可以实现相等的数据分布。
网状网络的优点如下:•扩展范围,因为它允许数据从节点跳到节点,并且在网络中容易插入任何节点。
•网络是自我修复类型,因为在任何节点发生故障或连接条件丢失的情况下,数据可以通过网络中的其他健康节点进行路由。
由于zigbee支持其设备之间的网状拓扑,因此它已成为非常流行的无线网状网络系统。
它的开发旨在支持低数据速率和低功耗应用。
Zigbee Mesh网络基础知识图2描绘了由协调器,路由器和终端设备组成的简单zigbee网状网络。
在该网络中,所有节点都可以发送或接收数据,但它们具有特定的角色/功能。
Zigbee是开放标准,因此不同供应商设备之间的互操作性可以毫无问题地完成。
•只需一名协调员即可组建zigbee网络。
它存储有关zigbee网络的所有关键信息,包括加密密钥。
•路由器是中间节点,有助于在设备之间中继数据。
•终端设备有两种类型的缩减功能设备和全功能设备。
减少功能的设备不能中继数据,并且会与其父设备(路由器/协调器)通信以执行中继。
另一方面,全功能设备完成中继工作。
Zigbee Mesh网络使用全功能设备。
Zigbee Mesh网络的特点以下是Zigbee网状网络的功能。
zigbee网络拓扑结构及节点设计作者:叶子2 1 引言基于zigbee技术的无线传感器网络适用于网点多、体积小、数据量小,传输可靠、低功耗等场合,在环境监测、无线抄表、智能小区、工业控制等领域已取得一席之地[1]。
同时,zigbee规范与协议日臻完善[2]。
从zigbee1.0、zigbee1.1到目前最新的zigbee2007/pro,zigbee协议规范的演进对硬件系统提出了更高的要求[3]。
2 设计要求2.1 zigbee网络结构从网络结构上看,zigbee网络有星形,树形,网状3种模式,按照网络节点功能划分可分为终端节点(ep)、路由器节点(rp)和协调器节点(cp)3种[2]。
其组织结构如图1示。
图1 zigbee网络拓扑结构其中,协调器节点负责发起并维护一个无线网络,识别网络中的设备加入网络;路由器节点支撑网络链路结构,完成数据包的转发;终端节点是网络的感知者和执行者,负责数据采集和可执行的网络动作[2]。
这就要求zigbee网络节点需扮演终端感知者、网络支持者、网络协调者3种角色。
从功能上,zigbee节点应由微控制器模块、存储器、无线收发模块、电源模块和其它外设功能模块组成。
其结构如图2所示。
图2 zigbee网络节点模块图其中,包括dma、usart模块、定时器模块、a/d模块在内的丰富的外设功能来满足网络对硬件资源的需求,存储器模块完成协议栈的存储与执行,cpu实现数据的运算与处理,mac定时器用于实现网络同步,使用aes技术对信息进行加密,无线模块完成收据的收发与信息帧控制。
2.2 zigbee网络节点设计要求(1)可供选择的无线频段。
无线频段的选择要兼具较高的传输速率和较好的绕射性能,同时要具备一定的抗干扰力。
2.4ghz频段是ieee 502.15.4定义的工作在ism频段的两个工作频段之一,有16个速率为250kb/s的信道。
(2)体积小,成本低,易于大规模布建。
zigbee技术较其它无线技术的优势在于自组网,这就需要布建大规模的网络节点,因此成本问题凸显出来,有资料显示:10$左右的zigbee网络节点有较高的性价比。
实验六ZigBee网络拓谱结构显示实验实验目的1熟悉Qt编程方法。
2了解Qt显示ZigBee网络拓扑结构工作原理。
实验设备1 PC一台(安装Ubuntn);2 物联网开发设计平台;实验要求使用Qt为zigBee网络编写拓扑结构1 编程要求:使用提供的API函数编写应用程序;2 实现功能:构建ZigBee网络拓扑结构;3 实验现象:显示网络拓扑结构;实验原理本实验针对Qt下,将服务器程序API做一定封装,并提供非常方便使用的接口函数,可以让用户在Qt环境下绘制ZigBee网络拓扑结构,这些函数都封装在一个叫TopolgyWidegt的类中,函数原型void Topologet Widget:::setTopologyArea(constQstring&ip,QscrollArea*area);功能设置用来显示拓扑图的滚动区控件参数ip:运行服务程序的网关IP地址Area:用来显示拓扑图的滚动控件返回值无头文件使用本函数需要包含“topologywidget.h”函数原型void Topologet Widget::setTopologyArea(QscrollArea*area);功能立即刷新滚动区域控件拓扑图参数area:用来显示拓扑图的滚动控件;返回值无在实际中用户需要首先设置一个“scrollArea”,只需在窗体函数中,完成setupUi操作之后,调用Topologet Widget:::setTopologyArea函数,即可拓扑显示在这个滚动区域中。
实验步骤1 打开Ubuntu,双击QtCreator。
2“File”→“New File or Project”。
3 选择新建文件类型,选择“Qt C++ Project”,右侧点击“Qt Gui Application”,“Choose”。
4 输入工程名称“Topology”。
选择创建工程路径,“Next”。
5选择编译方式,选中“Qt 4.7.0 Opensource”代表Pc编译方式,选中“Qt 4.7.0 ARM”代表嵌入式版本编译方式,两者都选,“Next”继续。
实验二ZigBee网络拓扑结构显示【实验目的】1、熟悉Qt编写程序的方法;2、了解Qt显示ZigBee网络拓扑结构的工作原理;【实验设备】1、装有RedHat AS5系统或装有RedHat AS5虚拟机的PC机一台;2、物联网开发设计平台一套;【实验要求】使用Qt为ZigBee网络编写拓扑结构;1、编程要求:使用提供的API函数编写应用程序;2、实现功能:构建ZigBee网络拓扑结构;3、实验现象:显示网络的拓扑结构;【实验原理】本实验箱针对Qt下,将服务程序的API做了一定的封装,并提供了非常方便使用的接口函数,可以让用户在Qt环境下绘制Zigbee网络的拓扑结构。
这些函数都被封装在一个叫做TopologyWidget的类中,它们的详细介绍如下:【函数原型】void TopologyWidget::SetTopologyArea(const QString &ip, QScrollArea *area); 【功能】设置用来显示拓扑图的滚动区域控件【参数】ip: 运行服务程序的网关(计算机)的IP地址area: 用来显示拓扑图的滚动区域控件【返回值】无【头文件】使用本函数需要包含"topologywidget.h"【函数原型】void TopologyWidget::UpdateTopologyArea(QScrollArea *area);【功能】立即刷新滚动区域控件中的拓扑图【参数】area: 用来显示拓扑图的滚动区域控件【返回值】无【头文件】使用本函数需要包含"topologywidget.h"在实际应用中,用户需要首先在界面中放置一个,假设其名称为“scrollArea”,只需要在窗体的构造函数中,完成了setupUi的操作之后,调用TopologyWidget::SetTopologyArea函数即可使拓扑图显示在这个滚动区域中,参考下面的代码。
Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget){ui->setupUi(this);// 将界面中的scrollArea设置为用来显示拓扑图TopologyWidget::SetTopologyArea("127.0.0.1", ui->scrollArea);}【实验步骤】1.双击打开桌面上的VMware Player。
如图2.1所示;图2.1 VMWare Player2.在弹出的界面中点击Open a Virtual Machine,如图2.2所示。
图2.2 Open a Virtual Machine 3.接下来点击Play virtual machine,如图2.3所示;图2.3 Play virtual machine4.等待片刻,当出现如图2.4时的界面时,输入用户名和密码。
用户名是root ,密码是111111。
5、登录虚拟机后,双击桌面上的Qt Creator的图标,如图2.5所示;图2.5 Qt Creator图标6、在打开的主界面中,点击菜单栏的“File”,在弹出的下拉菜单中左键单击“New File or Project”,如图2.6所示:图2.6 Qt Creator的新建工程7、选择新建的文件类型,这里需要在左侧选择“Qt C++ Project”,并在右侧选择“Qt Gui Application”,如图2.7所示,并点击“Choose”;图2.7 选择工程类型8、输入工程名称“Topology”,选择创建工程的路径,点击“Next”,如图2.8所示:图2.8 创建工程9、选择编译的方式,选中“Qt 4.7.0 OpenSource”是表示PC机的编译方式,选中“Qt 4.7.0 ARM”表示的是嵌入式版本的编译方式,一般两项都选择,点击“Next”继续,如图2.9所示:图2.9 选择编译方式10、选择基类为“QWidget”,其他可以默认,点击“Next”继续,如图2.10所示。
图2.10 Qt Creator的新建类名和基类11、看到当前新建工程的目录结构,左键单击“finish”后完成工程的新建;如图2.11所示:图2.11 完成工程新建12、按 ctrl+alt 退出虚拟机,在电脑的开始菜单下面的运行中输入 cmd打开命令行,如图2.12所示。
图2.12 在运行中输入cmd13、在命令行中输入 ipconfig ,然后按回车键,查看本机IP地址,如图2.13所示,此时本机IP地址为 192.168.87.1。
图2.13 本机IP地址查询14、在虚拟机桌面上点击右键,选择打开终端,如图2.14所示。
图2.14 打开终端15、在打开的终端中输入 ifconfig eth0 192.168.30.2 ,然后按回车键。
注意,这一步是设置虚拟机的IP地址,使得虚拟机和电脑在同一个网段内(即将电脑IP地址最后一位修改为除0和255以及电脑IP以外的任何个小于255的正数),此时是设置为 192.168.87.2,如图2.15所示。
16、按 ctrl+alt退出虚拟机,在开始菜单的运行中输入 \\192.168.87.2,回车,出现如图2.16所示的登录界面,输入用户名和密码,用户名是 root,密码是 111111,登录后会出现一个文件夹窗口,这就是虚拟机的root文件夹。
图2.16 登录界面17、将实验代码实验二代码\Topology文件夹下的“include”、“lib”、“topologywidget.cpp”、“topologywidget.h”和“topologywidget.ui”复制到上一步中出现的文件夹下的/root/Topology 文件夹(第11步的工程文件夹)下,如图2.17所示。
图2.17 复制必要的文件18、进入虚拟机,再进入Qt的窗体编辑界面,在控件区域中找到“Push Button”和“Scroll Area”分别拖动它们到主窗体中,并将按钮的文字修改为“refresh”,修改方法为双击放置的button 按钮,然后输入refresh。
如图2.18所示:图2.18 设计拓扑图显示界面19、点击主界面的空白处,使得主界面的四周出现正方形的标志,此时可以看到主界面上方的“Lay Out Vertically”按钮处于可以点击的状态,如图2.19所示;图2.19 为主窗体设置布局20、点击“Lay Out Vertically”按钮,主窗体中的滚动区域控件和按钮控件将以垂直方式布局,如图2.20所示;图2.20 垂直布局后的主界面21、在Qt Creater的左侧点击“Edit”,可以切换到工程文件管理界面,我们需要为主界面编写代码,如图2.21所示;图2.21 切换到工程文件管理界面22、首先将之前复制的TopologyWidget相关的文件添加到工程中,在工程目录结构的根部,即工程名的位置,点击鼠标的右键,选择“Add Existing Files…”,如图2.22所示;图2.22 添加文件到工程123、在弹出的对话框中,选择“topologywidget.cpp”、“topologywidget.h”以及“topologywidget.ui”三个文件,并点击“打开”,如图2.23所示;图2.23 添加文件到工程224、在工程目录结构中找到“Topology.pro”文件,双击打开它,如图2.24所示;图2.24 打开Topology.pro 25、在Topology.pro文件中,添加图2.25所示的代码;图2.25 添加链接库信息26、在工程目录结构中的“Sources”文件夹中,找到“widget.cpp”文件,双击打开它,如图2.26所示;图2.26 打开widget.cpp27、在widget.cpp文件中添加图2.27所示的两行代码;图2.27 为widget.cpp添加代码28、在工程目录结构中的“Forms”文件夹中,找到“widget.ui”文件,双击它,回到主界面的编辑界面,如图2.28所示;图2.28 双击ui文件可以回到界面编辑状态29、在主界面中的按钮上点击鼠标右键,在弹出的菜单中选择“Go to slot…”,如图2.29所示;图2.29 为按钮添加处理代码130、在弹出的界面中选择“clicked()”,并点击OK,如图2.30所示;图2.30 为按钮添加处理代码231、此时,会自动回到代码编辑状态,同时,Qt Creator已经为我们添加了一个函数,如图2.31所示,该函数当按钮被点击时会被调用;图2.31 为按钮添加处理代码332、在这个函数中,添加图2.32所示的代码;图2.32 为按钮添加处理代码433、点击左下角的编译选择按钮,并在“Build”下拉列表中选择“Qt for ARM Release”,以便可以编译实验箱可以运行的可执行程序,如图2.34所示;编译选择按钮图2.33 选择编译类型34、点击图2.34所示的左下角的“Build All”按钮,即可开始编译实验箱运行的版本。
编译图2.34 点击编译按钮35、当看到编译选择按钮上方的进度条变成绿色,即表示编译完成,如图2.35所示。
进度条图2.35 编译完成36、在工程的保存目录中,可以找到一个名为“Topology-build-desktop”的文件夹,如图2.36所示。
编译生成的可执行程序“Topology”即在此文件夹中。
图2.36 目标文件夹37、将实验箱用网线和白色USB线与电脑连接起来,如图2.37所示。
网线与PC机相连白色USB线与PC机相连图2.37 实验箱与PC机连接38、打开PC机超级终端。
如图2.38所示。
39、设置超级终端名称。
任意名即可,如图2.39所示。
图2.39 设置连接名称40、选择端口。
例如:自己USB端口转换后为COM1,就选择COM1(可在设备管理器中查看),如图2.40所示。
图2.40 设置COM口41、设置端口属性。
每秒位数设置115200,数据流控选择无,如图2.41所示。
图2.41设置端口属性42、此时将实验箱电源打开可看到如图2.42所示的启动信息。
图2.42 启动信息43、当出现如图2.43所示的信息时,输入用户名和密码登录,用户名是 root。
密码是 111111。
需要注意的是,在输入密码时不会有显示。
图2.43 登录界面44、在超级终端中输入 ifconfig eth0 ,查看实验箱IP,如果出现如图2.44所示的界面,则需配置IP地址,配置方法为在超级终端中输入ifconfig eth0 –i 192.168.87.130 –m 255.155.255.0 –g 192.168.87.1。