当前位置:文档之家› zigbee 网络层学习笔记 (修复的)

zigbee 网络层学习笔记 (修复的)

zigbee 网络层学习笔记 (修复的)
zigbee 网络层学习笔记 (修复的)

问题:

1、MLME-START.request原语中的BeaconOrder 和 SuperframeOrder 参数值设置为15,表明beaconless操作??????

标记:绿色底纹标记的内容为内容多,但一定要好好理解的内容

3.3.1 网络层数据服务

NLDE-DATA.request

3.3.2 网络发现

3.3.2.1 NLME-NETWORK-DISCOVERY.request原语

支持网络层上层应用该原语来发现在POS范围内正在运行的网络。

Scanchannels:32位,b31~b27保留,b0~b26决定要扫描的信道,1代表扫描,0不扫描

ScanDuration:扫描时间

3.3.2.2 NLME-NETWORK-DISCOVERY.confirm 原语

NetworkDescriptor参数中网络描述符所包含的具体内容。

3.3.3 网络的形成

设备的应用层初始化,成为一个新的ZigBee网络协调器

3.3.3.1 NLME-NETWORK-FORMATION.request 原语

该原语请求设备发起一个新的ZigBee网络

并将其自身作为ZigBee协调器

3.3.3.2 NLME-NETWORK-FORMATION.confirm 原语

3.3.4 允许设备连接

3.3.

4.1 NLME-PERMIT-JOINING.request 原语

仅允许ZigBee协调器或路由器的上层发送该原语任何一个由上层发出的NLME-PERMIT-JOINING.request原语,可以取代所有一切的请求

3.3.

4.2 NLME-PERMIT-JOINING.confirm原语

3.3.5.1 NLME-START-ROUTER.request原语

该原语允许一个ZigBee路由器的上层发起路由,路由器的设备接收

3.3.5.2 NLME-START-ROUTER.confirm原语

3.3.6能量扫描

该原语定义了设备的上层如何操作能量扫描

3.3.6.1 NLME-ED-SCAN.request原语

3.3.6.2 NLME-ED-SCAN.confirm原语

3.3.7 设备同网络连接

该原语给定了设备同网络连接的方式:

(1)通过联合方式请求连接网络

(2)直接请求连接网络

(3)如果成为孤点设备,请求重新连接网络

3.3.7.1 NLME-JOIN.request 原语

CapabilityInformation参数的位字段如表3.18所示。这里所收集的性能信息作为网络信息库的属性nwkCapabilityInformation存储起来(见表3.42)

3.3.7.2 NLME-JION.indication原语

3.3.7.3 NLME-JOIN.confirm原语

3.3.9 断开网络

3.3.9.1 NLME-LEAVE.request原语

3.3.9.2 NLLME-LEAVE.indication原语

3.3.9.3 NLME-LEAVE.confirm原语

3.3.11 接收机同步

3.3.11.1 NLME-SYNC.request原语

接收到该原语,网络层管理实体将向MAC层发送MLME-POLL.request原语,并将它的参数TrackBeacon置为FALSE。在收到相应的MLME-POLL.confirm原语后,网络层管理实体将发送NLME-SYNC.confirm原语,其状态参数与MLME-POLL.confirm原语的状态参数一致。

3.3.11.2 NLME-SYNC.indication原语

该原语向设备的应用层通告MAC层丢失网络同步信号

3.3.12信息库维护

该原语介绍了设备上层如何读写网络信息库的属性

3.3.12.1 NLME-GET.request原语

3.3.12.2 NLME-GET.confirm原语

3.3.13.3 NLME-SET.request原语

3.3.12.4 NLME-SET.confirm原语

3.3.13 路由错误报告

3.3.13.1 NLME-ROUTE-ERROR.indication原语

3.3.14路由发现

单播路由发现、多点传送路由发现和多对一路由发现

3.3.1

4.1 NLME-ROUTE-DISCOBERY.request原语

3.3.1

4.2 NLME-ROUTE-DISCOVERY.confirm原语

3.4.1.1帧控制域

帧控制域为16位,包含所定义的帧类型、地址和序列域以及其他控制标记。帧控制域格式如图3.4所示。

表3.36帧类型子域值

表3.39网络层命令帧

表3.45邻居表入口格式

在网络发现和重新连接用到的信息如上描述如表3.46所示。所有域都是可选的且在网络层管理实体选择连接网络之后就不能保持。不是所选择网络的设备的邻居表的入口被丢弃。

表3.46附加邻居表域

ZigBee学习笔记CC2530

已入门选手进一步学习的重点 我发现最近群里很多人已经可以算是大致入门了,能够在原有例子的基础上进行一些简单工作,实现数据传输。但是我也发现很多人开始把精力投入到钻研协议栈代码细节上面去了,实际上这种学习方式是有问题的。第一:如果从应用的角度看,协议栈的一些实现细节是没有必要钻研的,这就好比是现在的PC机,已经有了Windows系统了,我们在这个系统之上实现自己应用程序的时候其实并不需要对Windows内部实现细节过多地关注,只要能够自由地在Windows下开发应用程序(其实就是调用大量的API函数)就可以了;第二:如果想从协议栈本身入手去做一些深入的工作,Zstack是不适合的,因为它不是完全开源,真想在路由算法、加密算法等方面做工作的话,目前TinyOS这样的开源协议栈才是首选。所以,进一步学习的重点应该是:在什么时间什么地点调用什么函数的问题! 那么如何来提高这方面的技能呢? 1、浏览ZDP和ZDO相关代码,熟悉一下都有什么函数,这两个部分都做了什么,学习的过程中千万不要去钻研代码实现的细节,只要了解其流程以及都作了什么就可以了,否则你一定会迷失在那成千上万行的代码之中而不能自拔。ZDP和ZDO的实现文件里面 有大量的函数在以后具体应用中可以去调用。 2、典型例子中的ZDO消息使用其实只有那么几个例子,比如: ZDO_RegisterForZDOMsg(TaskID,End_Device_Bind_rsp)这样的,这是讲底层的一些事件消息引入到应用层的注册方法。在深入应用的时候那么几个典型的消息注册是不够 用的,比如我在一个应用中就注册了以下: ZDO_RegisterForZDOMsg( TaskID, End_Device_Bind_rsp ); // 我自己解析 End_Device_Bind_rsp ZDO_RegisterForZDOMsg( TaskID, Match_Desc_rsp ); //我自己解析 Match_Desc_rsp ZDO_RegisterForZDOMsg( TaskID, Device_annce); //我自己解析 Device_annce ZDO_RegisterForZDOMsg( TaskID, Active_EP_rsp); //我自己解析 Active_EP_rsp ZDO_RegisterForZDOMsg( TaskID, Simple_Desc_rsp); //我自己解析 Simple_Desc_rsp ZDO_RegisterForZDOMsg( TaskID, NWK_addr_rsp); //我自己解析 NWK_addr_rsp 在具体应用中,你会根据不同的网络需求去调用很多协议栈的设置好的req和处理rsp消息,那么协议栈都有那些req和rsp是你进一步学习所应该深入认识的。 3、在自己使用系统的req和rsp的时候,如果你不知道该如何处理,你最好去看看MT是如何实现的,在MT功能模块中,对协议栈的绝大多数req和rsp都有调用和实现的例子可以参考,虽然我们在自己的应用中很少回去使用MT,但是Mt 的实现代码却是最好

Zigbee协议栈系统事件

系统常用事件处理函数: -按键事件 -接收消息事件 -网络状态改变事件 -绑定确认事件 -匹配响应事件 1、按键事件 Case KEY_CHANGE: 当有按键事件发生的时,调用按键事件处理函数Sample_HandleKeys()来处理按键事件。 在SampleApp例程中按键处理函数处理了以下2件事情 -如果按键1按下,将向网络中的其他设备发送LED闪烁命令 -如果按键2按下,检测组ID号为SAMPLEAPP_FLASH_GROUP的组是否已经注册。如果已经注册,调用aps_RemoveGroup()将其删除;如果没注册就在APS层注册

2、接收消息事件 Case:AF_INCOMING_MSG_CMD: 如果有接收消息事件发生,则调用函数SampleApp_MessageMSGCB(MSG)对接收的消息进行处理。一般的接收消息事件是通过用户自定义的端点输入簇和输出簇来处理的。 在LED闪烁命令的发送函数中的输出簇为SAMPLEAPP_FLASH_CLUSTERID,所以在接收消息事件的输入簇中为SAMPLEAPP_FLASH_CLUSTERID即收到LED闪烁命令

3、网络状态改变事件 Case:ZDO_STATE_CHANGE 当有网络状态改变事件发生后,会调用函数SampleApp_NwkState()来处理网络状态改变事件。在SampleApp例程中,网络状态改变事件主要处理了以下事件: -判断设备类型(区分协调器、路由节点、终端节点) -当协调器网络建立成功后或其他类型节点加入网络后点亮led1 -通过调用osal_start_timerEx()设置一个定时事件,当时间到达后启用用户自定义事件SampleApp_Send_PERIODIC_MSG_EVT 备注:在使用过程中这里的3种设备类型不是全选,写一个就可以了,其他的删除

ZigBee网络拓扑结构显示

实验二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所示;

Zigbee协议栈原理基础

1Zigbee协议栈相关概念 1.1近距离通信技术比较: 近距离无线通信技术有wifi、蓝牙、红外、zigbee,在无线传感网络中需求的网络通信恰是近距离需求的,故,四者均可用做无线传感网络的通信技术。而,其中(1)红外(infrared):能够包含的信息过少;频率低波衍射性不好只能视距通信;要求位置固定;点对点传输无法组网。(2)蓝牙(bluetooth):可移动,手机支持;通信距离10m;芯片价格贵;高功耗(3)wifi:高带宽;覆盖半径100m;高功耗;不能自组网;(4)zigbee:价格便宜;低功耗;自组网规模大。?????WSN中zigbee通信技术是最佳方案,但它连接公网需要有专门的网关转换→进一步学习stm32。 1.2协议栈 协议栈是网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议。 1.2.1Zigbee协议规范与zigbee协议栈 Zigbee各层协议中物理层(phy)、介质控制层(mac)规范由IEEE802.15.4规定,网络层(NWK)、应用层(apl)规范由zigbee联盟推出。Zigbee联盟推出的整套zigbee规范:2005年第一版ZigBeeSpecificationV1.0,zigbee2006,zigbee2007、zigbeepro zigbee协议栈:很多公司都有自主研发的协议栈,如TI公司的:RemoTI,Z-Stack,SimpliciTI、freakz、msstatePAN 等。 1.2.2z-stack协议栈与zigbee协议栈 z-stack协议栈与zigbee协议栈的关系:z-stack是zigbee协议栈的一种具体实现,或者说是TI公司读懂了zigbee 协议栈,自己用C语言编写了一个软件—---z-stack,是由全球几千名工程师共同开发的。ZStack-CC2530-2.3.1-1.4.0软件可与TI的SmartRF05平台协同工作,该平台包括MSP430超低功耗微控制器(MCU)、CC2520RF收发器以及CC2591距离扩展器,通信连接距离可达数公里。 Z-Stack中的很多关键的代码是以库文件的形式给出来,也就是我们只能用它们,而看不到它们的具体的实现。其中核心部分的代码都是编译好的,以库文件的形式给出的,比如安全模块,路由模块,和Mesh自组网模块。与z-stack 相比msstatePAN、freakz协议栈都是全部真正的开源的,它们的所有源代码我们都可以看到。但是由于它们没有大的商业公司的支持,开发升级方面,性能方面和z-stack相比差距很大,并没有实现商业应用,只是作为学术研究而已。 还可以配备TI的一个标准兼容或专有的网络协议栈(RemoTI,Z-Stack,或SimpliciTI)来简化开发,当网络节点要求不多在30个以内,通信距离500m-1000m时用simpliciti。 1.2.3IEEE802.15.4标准概述 IEEE802.15.4是一个低速率无线个人局域网(LowRateWirelessPersonalAreaNetworks,LR-WPAN)标准。定义了物理层(PHY)和介质访问控制层(MAC)。 LR-WPAN网络具有如下特点: ◆实现250kb/s,40kb/s,20kb/s三种传输速率。 ◆支持星型或者点对点两种网络拓扑结构。 ◆具有16位短地址或者64位扩展地址。 ◆支持冲突避免载波多路侦听技术(carriersensemultipleaccesswithcollisionavoidance,CSMA/CA)。(mac层) ◆用于可靠传输的全应答协议。(RTS-CTS) ◆低功耗。 ◆能量检测(EnergyDetection,ED)。 ◆链路质量指示(LinkQualityIndication,LQI)。 ◆在2.45GHz频带内定义了16个通道;在915MHz频带内定义了10个通道;在868MHz频带内定义了1个通道。 为了使供应商能够提供最低可能功耗的设备,IEEE(InstituteofElectricalandElectronicsEngineers,电气及电子工程师学会)定义了两种不同类型的设备:一种是完整功能设备(full.functionaldevice,FFD),另一种是简化功能设备

ZigBee 协议架构

根据应用和市场需要定义了ZigBee 协议的分层架构,其协议的体系结构如图1 所示,其中物理层(physical layer,PHY)和媒介访问控制层(medium access control sub-layer,MAC)是由IEEE802.15.4-2003 标准定义的,在这个底层协议的基础上ZigBee 联盟定义了网络层(network layer,PHY)和应用层(application layer,APL)架构. 图1 zigbee协议栈体系结构 物理层规范 物理层定义了它与MAC 层之间的两个接口:数据服务接口PD-SAP 和管理服务接口PLME-SAP,其中PD-SAP 接口还为物理层提供了相应的数据服务,负责从无线物理信道上收发数据,而PLME-SAP 接口同时为物理层提供相应的管理服务,用于维护一个由物理层相关数据组成的数据库。物理层负责数据的调制、发送和接收、空闲信道评估(clear channel assessment,CCA)信道能量的监测(energy detect,ED)和链接质量指示(link quality indication,LQI)等。物理层帧结构由同步头、物理层帧头和物理层有效载荷三部分组成,如表1 所示。

同步头又包括32bit 的前同步码和8bit 的帧定界符,前同步码用来为数据收发提供码元或数据符号的同步;帧界定符用来标识同步域的结束及数据的开始。物理层帧头包括7bit 的帧长度和1bit 的预留位,帧长度定义了物理层净荷的字节数。物理层有效载荷就是MAC层的帧内容。 表一物理层帧格式 媒体接入控制层规范 MAC 层定义了它与网络层之间的接口,包括提供给网络层的数据服务接口MLDE-SAP 和管理服务接口MLME-SAP,同时提供了MAC 层数据服务和MAC 层管理服务。MAC层数据服务主要实现数据帧的传输;MAC 层管理服务主要负责媒介访问控制、差错控制等。 MAC 层主要功能包括以下几个方面: (1)ZigBee 协调器产生网络信标 (2)设备与信标同步 (3)支持节点加入或着退出操作 (4)信道接入方式采用免冲突载波检测多路访问(CSMA-CA)机制 (5)建立并维护保护时隙机制 (6)为设备提供安全支持 MAC 帧格式由三个基本部分组成:MAC 帧头、MAC 帧载荷和MAC 帧尾。不同类型的MAC 帧,其帧头和帧尾都是一样的,只是MAC 帧载荷有差别,通用MAC 帧格式如表2所示。 表二通用MAC帧格式 网络层规范 网络层定义了它与应用层之间的接口,包括提供给应用层的数据服务接口NLDE-SAP和管理服务接口NLME-SAP , 同时提供了网络层数据服务和网络层管理服务。网络层主要负责拓扑结构的建立和网络的维护,具体的功能如下:(1)初始化网络,即建立一个新的包含协调器、路由器和终端设备的网络(2)设备连接和断开时所采用的机制 (3)对一跳邻居节点的发现和相关节点信息的存储 (4)ZigBee 协调器和路由器为新加入节点分配短地址

ZigBee技术发展及其特点

第2章 ZigBee技术及协议分析 ZigBee技术的发展及其特点]1[ 长期以来,低成本、短距离、低传输率、低功率的无线通讯市场一直存在着。蓝牙(Bluetooth)技术的出现曾让玩具制造商、家庭自动化控制以及工业控制等业界从业者兴奋不已,尽管蓝牙技术有很多优点,但是高昂的价格和其存在的技术缺陷严重影响了这些厂商的使用意愿。对于工业控制、家庭自动化控制等领域而言,蓝牙技术过于复杂、功耗过大、距离近、组网规模达不到应用要求等,而工业自动化等领域对无线通信的需求越来越大。因此,经过人们的努力,于2004年正式推出了ZigBee协议规范。 “HomeRF Lite” 2004年(又称ZigBee2004)诞生,它是ZigBee的第一个规范,这使得ZigBee有了自己的发展基本标准。但是由于推出仓促存在很多不完善的地方,因此在2006年进行了标准的修订,推出了(又称ZigBee2006),但是该协议与是不兼容的。相较于做了很多修改,但是仍无法达到最初的设想,于是在2007年再次修订(称为ZigBee2007/PRO),能够兼容之前的ZigBee2006,并且加入了ZigBee PRO部分,此时ZigBee联盟更专注于以下三种应用类型的拓展:家庭自动化(HA)、建筑/商业大楼自动化(BA)以及先进抄表基础建设(AMI)。 随着ZigBee标准的完善以及各软件以及硬件厂商的不断努力,用于ZigBee开发的软硬件正趋于完善,ZigBee技术的实用化不断推进,其使用领域不断拓展。使ZigBee 技术在2004年就被列为当今世界发展最快、市场前景最广阔的十大高新技术之一。 ZigBee技术有以下几个方面的特点: (1)短时延。通信时延以及休眠状态激活时延都很短,通常在15ms至30ms间。 (2)高可靠性。采用了CSMA/CA(碰撞避免)机制,而且为需要固定带宽的通信业务预留了专用的时隙,从而避免了发送数据时可能出现的竞争和冲突;节点模块间有自动动态组网功能,信息在整个ZigBee网络中是通过自动路由方式传输的,这样可以保证信息的可靠传输。 (3)低数据率。数据传输率在10kb/s到250kb/s之间。 (4)低功耗。两节五号电池即可使用6个月至2年,免去了经常更换电池或者是充电的麻烦。 (5)低成本。ZigBee的低数据传输率,简单的协议,都大大降低了成本,而且ZigBee

zigbee网络自组织结构的研究

毕业论文(设计) Zigbee传感器网络自组织结构研究 学生姓名:朱伟 指导教师:张妍(讲师) 专业名称:通信工程 所在学院:信息工程学院 2012年6 月

目录 摘要......................................................... I Abstract .................................................... I I 第一章前言.. (1) 1.1 研究目的和意义 (1) 1.2 国内外研究现状 (1) 1.3 研究内容和方法 (1) 第二章ZigBee技术 (2) 2.1 Zigbee技术 (2) 2.2 Zigbee节能技术探讨 (3) 2.3 Zigbee协议栈 (4) 2.4 原语概念 (7) 2.5 Zigbee网络数据传递机制 (7) 第三章Zigbee传感器自组织网络节点通信 (10) 3.1 Zigbee自组织网络优点 (10) 3.2 Zigbee自组织网络多跳路由通信流程 (10) 3.3 通信实现的流程 (15) 第四章Zigbee网络组网方案 (17) 4.1 组网方案概述 (17) 4.2 Zigbee网络拓扑 (17) 4.3 Zigbee组网流程 (20) 4.4 Zigbee树路由算法 (22) 第五章ZigBee传感器自组织网络在机电监测系统中的应用 (26) 5.1 基于Zigbee传感器网络的机电监测系统的构建 (26) 5.2 Zigbee传感器节点的设计和测量点的选择 (28) 5.3 基于Zigbee传感器的机电监控系统自组织网络拓扑结构 (28) 5.4 Zigbee传感器节点数据传输流程 (29) 第六章结论与建议 (31) 致谢 (32) 参考文献 (33)

ZigBee学习Z-stack外部中断

ZigBee学习Z-stack外部中断 硬件抽象层:就是对硬件层做好了各种初始化,用户不用考虑硬件的初始配置,直接使用即可。 hal_driver.c文件: HalDriverInit():用户可在此函数中添加硬件的初始化操作,如定时器、ADC、DMA、FLASH、AES、LCD、LED、UART、KEY、SPI、HID等(还有用于配置外部中断,类似按键的中断方式查询键值) Hal_ProcessEvent(): 处理HAL发生的事件、如:KEY、LED、电源管理等,用户可以在此添加处理自己的HAL事件,此事件ID必须是唯一的,定义在hal_driver.h中。如:HAL_KEY_EVENT(按键轮询与抖动)、HAL_LED_BLINK_EVENT(LED闪烁)、HAL_SLEEP_TIMER_EVENT(Power saving). Hal_ProcessPoll(): 被osal_start_system()调用,用于HAL_Timer和HAL_UART的事件轮询,关于系统编译连接,只要没有定义相关的宏定义,相应的驱动就不会编译进去,减少代码占用的空间。有以下的宏定义: 具体操作是: Options->C/C++ Options->Preprocessor->Defined Symbols->enter:HAL_XXX=TRUE; when XXX is ADC,UART,LED,LCD,KEY 不编译进代码,只要将其定义成FALSE 如何定做适合自己的HAL处理的程序 ①修改原文件的方式: 1、HAL\include下的头文件应该保留一样。 2、在HAL\Target\hal_xxx.c修改相应的驱动函数,hal_adc.c, hal_key.c, hal_lcd.c, hal_led.c, hal_timer.c, and hal_uart.c 3、硬件驱动配置可以被修改在hal_board_cfg.h ②增加用户自己的目标驱动 1、增加新的头文件,在hal\include 2、在hal\Target\hal_xxx.c添加自己运行函数,xxx为自己的目标 3、如果GPIO有冲突或者没用到,应该保证驱动不被编译,否则后果严重。 4、检查GPIO有没有正确设置或冲突,通过hal_board_cfg.h 5、不想被编译,或者是老的文件,没用到的文件,可以通过选择options->"Exclude form build" 外部中断程序中断处理函数的定义:可以查看 hal\Target\hal_XXX.c\hal_mcu.h HAL_ISR_FUNCTION(f,v) HAL_ISR_FUNCTION (prototype, vector) { /* Do something when this interrupt happens!!! */ }

2020年Zigbee协议栈中文说明免费

1.概述 1.1解析ZigBee堆栈架构 ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。图1-1给出了这些组件的概况。 1.1.1ZigBee堆栈层 每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。 设备是由模板定义的,并以应用对象(Application Objects)的形式实现(见图1-1)。每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件。 图1-1 zigbe堆栈框架 从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。 端点之间的通信是通过称之为簇的数据结构实现的。这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。图1-1-2就是设备及其接口的一个例子:

图1-1-2 每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。一共有二个特殊的端点,即端点0和端点255。端点0用于整个ZigBee设备的配置和管理。应用程序可以通过端点0与ZigBee 堆栈的其它层通信,从而实现对这些层的初始化和配置。附属在端点0的对象被称为ZigBee设备对象 (ZD0)。端点255用于向所有端点的广播。端点241到254是保留端点。 所有端点都使用应用支持子层(APS)提供的服务。APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带灯的开关。APS使用网络层(NWK)提供的服务。NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过ZigBee设备对象(ZD0)对网络层参数进行配置和访问。 1.1.2 80 2.15.4 MAC层 IEEE 802.15.4标准为低速率无线个人域网(LR-WPAN)定义了OSI模型开始的两层。PHY层定义了无线射频应该具备的特征,它支持二种不同的射频信号,分别位于2450MHz波段和868/915MHz 波段。2450MHz波段射频可以提供250kbps的数据速率和16个不同的信道。868 /915MHz波段中,868MHz支持1个数据速率为20kbps的信道,915MHz支持10个数据速率为40kbps的信道。MAC层负责相邻设备间的单跳数据通信。它负责建立与网络的同步,支持关联和去关联以及MAC 层安全:它能提供二个设备之间的可靠链接。 1.1.3 关于服务接入点 ZigBee堆栈的不同层与802.15.4 MAC通过服务接入点(SAP)进行通信。SAP是某一特定层提供的服务与上层之间的接口。 ZigBee堆栈的大多数层有两个接口:数据实体接口和管理实体接口。数据实体接口的目标是向上层提供所需的常规数据服务。管理实体接口的目标是向上层提供访问内部层参数、配置和管理数据的机制。 1.1.4 ZigBee的安全性 安全机制由安全服务提供层提供。然而值得注意的是,系统的整体安全性是在模板级定义的,这意味着模板应该定义某一特定网络中应该实现何种类型的安全。 每一层(MAC、网络或应用层)都能被保护,为了降低存储要求,它们可以分享安全钥匙。SSP是通过ZD0进行初始化和配置的,要求实现高级加密标准(AES)。ZigBee规范定义了信任中心的用

zigbee的系统结构和组网方式

简介 ZigBee是一种新兴的短距离、低功耗、低数据传输速率的无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术方案。ZigBee是建立在IEEE802.15.4标准之上,它确定了可以在不同制造商之间共享的应用纲要。IEEE802.15.4标准定义了ZigBee协议的PHY层和MAC层。PHY层规范确定了在2.4GHz(全球通用的ISM频段)以250kb/s的基准传输率工作的低功耗展频无线电以及另有一些以更低数据传输率工作的915MHz(北美的ISM频段)和868MHz(欧洲的ISM频段)的实体层规范。MAC层规范定义了在同一区域工作的多个IEEE802.15.4无线电信号如何共享空中通道。 为了促进ZigBee技术的发展,2001年8月成立了ZigBee联盟,2002年下半年,英国Invensys公司、日本三菱电子公司、美国摩托罗拉公司以及荷兰飞利浦半导体公司四大巨头共同宣布,它们将加入“ZigBee联盟”,目前该联盟已经有150多家成员,以研发名为ZigBee的下一代无线通信标准。 正如前面所述,ZigBee不仅仅只是802.15.4的名字,IEEE802.15.4仅处理低级MAC层和PHY层协议,所以ZigBee联盟对其网络层协议和API进行了标准化,还开发了安全层,以保证这种便携设备不会意外泄漏其标识。 ZigBee的组成和构网方式 1.FFD和RFD 利用zigbee技术组件的无线个人区域网(WPAN)是一种低速率的无线个人区域网(LR WPAN),这种低速率个人区域网的网络结构简单、成本低廉,具有有限的功率和灵活的吞 吐量。 在一个LR WPAN网络中,可同时存在两种不同类型的设备,一种是具有完整功能的设备(FFD),另一种是简化功能的设备(RFD)。 在网络中,FFD通常有3中工作状态:(1)作为个人区域网络(PAN)的主协调器;(2) 作为一个普通协调器;(3)作为一个终端设备。FFD可以同时和多个RFD或其他FFD通信。 而RFD则只用一种工作状态即作为一个终端设备,并且一个RFD只能和一个FFD通信。2.ZigBee的体系结构 ZigBee体系结构主要有物理(PHY)层、媒体接入控制(MAC)层、网络/安全层以及应用框架层构成,如下图所示:

zigbee学习笔记讲解

关于ZIGBEE技术 Zigbee的由来 在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷。对工业,家庭自动化控制和遥测遥控领域而言,蓝牙技术显得太复杂,功耗大,距离近,组网规模太小等,而工业自动化对无线通信的需求越来越强烈。正因此,经过人们长期努力,Zigbee协议在2003年中通过后,于2004正式问世了。 Zigbee是什么 Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,十分类似现有的移动通信的CDMA网或GSM网,每一个Zigbee网络数传模块类似移动网络的一个基站,在整个网络范围内,它们之间可以进行相互通信;每个网络节点间的距离可以从标准的75米,到扩展后的几百米,甚至几公里;另外整个Zigbee网络还可以与现有的其它的各种网络连接。例如,你可以通过互联网在北京监控云南某地的一个Zigbee控制网络。 不同的是,Zigbee网络主要是为自动化控制数据传输而建立,而移动通信网主要是为语音通信而建立;每个移动基站价值一般都在百万元人民币以上,而每个Zigbee―基站‖却不到1000元人民币;每个Zigbee 网络节点不仅本身可以与监控对对象,例如传感器连接直接进行数据采集和监控,它还可以自动中转别的网络节点传过来的数据资料; 除此之外,每一个Zigbee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。 每个Zigbee网络节点(FFD和RFD)可以可支持多到31个的传感器和受控设备,每一个传感器和受控设备终可以有8种不同的接口方式。可以采集和传输数字量和模拟量。 Zigbee技术的应用领域 Zigbee技术的目标就是针对工业,家庭自动化,遥测遥控,汽车自动化、农业自动化和医疗护理等,例如灯光自动化控制,传感器的无线数据采集和监控,油田,电力,矿山和物流管理等应用领域。另外它还可以对局部区域内移动目标例如城市中的车辆进行定位. 通常,符合如下条件之一的应用,就可以考虑采用Zigbee技术做无线传输:1.需要数据采集或监控的网点多; 2.要求传输的数据量不大,而要求设备成本低; 3.要求数据传输可性高,安全性高; 4.设备体积很小,不便放置较大的充电电池或者电源模块; 5.电池供电; 6.地形复杂,监测点多,需要较大的网络覆盖; 7.现有移动网络的覆盖盲区; 8.使用现存移动网络进行低数据量传输的遥测遥控系统。 9.使用GPS效果差,或成本太高的局部区域移动目标的定位应用。 Zigbee 技术的特点 省电:两节五号电池支持长达6个月到2年左右的使用时间。 可靠:采用了碰撞避免机制,同时为需要固定带宽的通信业务预留了专用

从Zigbee协议栈底层添加自己的按键配置

本实验是基于ZStack-CC2530-2.5.1a版本的协议栈来进行实验的,整个实验需要改动 hal_board_cfg.h、hal_board_cfg.h、hal_key.c、hal_key.h和自己定义的Coordinator.c这5个文件。 注意:添加自己的按键时尽量不要修改协议栈里面的按键程序,自己另行添加即可。 1、hal_key.h 在/* Switches (keys) */下面添加自己的按键定义 #define HAL_KEY_SW_8 0x80 图1: ---------------------------------------------------------------------------------------- 2、hal_board_cfg.h 在/* S6 */ #define PUSH1_BV BV(1) #define PUSH1_SBIT P0_1 #if defined (HAL_BOARD_CC2530EB_REV17) #define PUSH1_POLARITY ACTIVE_LOW #elif defined (HAL_BOARD_CC2530EB_REV13) #define PUSH1_POLARITY ACTIVE_LOW #else #error Unknown Board Indentifier #endif 下面模仿/* S6 */下的程序定义自己的按键值: /* S8 */ #define PUSH8_BV BV(4)//修改 #define PUSH8_SBIT P0_4//修改 #if defined (HAL_BOARD_CC2530EB_REV17)

ZigBee学习电子笔记

第一讲

第二讲 https://www.doczj.com/doc/cf16763196.html,2530通用I/O口有21个:P0/P1/口个8个;P2口5个,其中,P1_0、P_1 有20mA的驱动能力,其余只有4mA 2.IO口配置相关的寄存器(3个) PxSEL: P0SEL、P1SEL、P2SEL,每个寄存器是1byte,分别用来设定3个口的工作模式。

IO的两种工作模式: 1.普通IO口模式:点灯、监测按键输入 2.片上外设模式:作为串口或者其他非普通IO口 PxDIR:P0DIR/P1DIR/P2DIR,每个寄存器占一个字节,用来设定IO口作为输入还是输出

PxINP:P0INP/P1INP/P2INP: 输入情况下,注意P2INP寄存器后3位的用法(见下图):

输出示例(以P0_0为例): 1)设置P0_0为普通IO口工作模式,非片上外设:P0SEL=0xFE(&11111110) 2)让P0_0作为输出用,非输入监测用:P0DIR=0x01(+ 00000001) 3)输出(如P0_0=0或P0_0=1等)。 输入示例(让P1_2作为输入): 1)设置P1_2为普通IO口工作模式,非片上外设:P1SEL=0xfd(11111011) 2)让P1_2作为输入检测用,非输出用P1DIR=0xfd(11111011) 3)选择上拉、下拉或三态中的一种输入(因为上电的时候寄存器默认为0,所以IO口都默认工作在普通IO口输入、上下拉模式) 4)检测用: If (P1_2= =0 or 1) { } Else { } 总结:由此可见,当芯片上电初始化后,3组IO口默认工作在普通IO口下的输入监测、上拉输入模式。 自己编程示例:

zigbee学习笔记3-通信例程之GenericApp

zigbee学习笔记3-通信例程之GenericApp 2011-09-22 11:02 刚入手的朋友,对Z-Stack 非常迷糊的时期,如果能够跑通几个例子、看几个演示,那么可以大大提高学习兴趣;另外如果知道某个例子的大致功能及实现,那么在去看具体实现过程目的性就非常明确。 首先来看看TI 究竟有哪些例子:可以看出其例子是非常丰富的。 GenericApp(设备互相绑定传送信息-hellow world),Location(定位),SampleApp(设备发送和接收LED灯信息),SimpleApp(温度和灯开关,和智能家居结合使用的,have Profile),HomeAutomation(智能家居的应用,have Profile),SerialApp(串行传输的应用),Transmit(发送应用),ZLOAD(协议文件夹中只有Source)。这样看来还是不少的。其中SampleApp 例子已经在前面的学习中有所涉及,可以说前面的所有学习都是基于这个例子的,所以这里就不测试它了。Location 是定位的测试例子,这里我的硬件是不够的,所以也不做测试。其他我都做点测试,能成功的就成功,不能成功的就失败,这个我也没办法。 1、GenericApp 这个实验是两个模块相互绑定后可以对传数据,模块绑定之后,两个模块之间相互传输字符串"Hello World"。 实验说明:首先启动一个网络协调器,协调器如果建立网络成功后,会在LCD 上显示该节点为协调者同时显示网络ID号。然后打开一个终端节点或路由器的电源,此时节点会自动加入网络。加入网络成功后,节点会显示自己的节点类型、网络地址和父节点的网络地址。 节点加入网络成功后,首先把主机模块的摇杆往右拔一下,然后把要绑定模块的RIGHT按一下,如果两边的LED4 都熄灭或是点亮后马上熄灭,表示绑定成功。绑定成功后,两个节点就开始相互定时发送数据,并在对方的LCD屏上显示出来,发送的数据为"Hello World"。此时如果把相互绑定模块中的left 按一下,可以发送Match Description Request命令,对方则显示Match Description Request信息。(以上无线龙手册提供) 2 关键函数分析: 我开始没搞清楚,功能是个啥大约浏览了下,这个例子似乎还与设备的所以还决定看看程序来判断这个例子的功能。绑定有关系,在key control 描述中发现 //***************** Key control**************************// SW2: initiates end device binding //--初始化中断设备绑定 SW4: initiates a match description request //--初始化一个匹配描述请求 2.1 按建处理程序中发现: if ( keys & HAL_KEY_SW_2 ) { HalLedSet ( HAL_LED_4, HAL_LED_MODE_OFF ); // Initiate an End Device Bind Request for the mandatory endpoint dstAddr.addrMode = Addr16Bit; dstAddr.addr.shortAddr = 0x0000; // Coordinator ZDP_EndDeviceBindReq( &dstAddr, NLME_GetShortAddr(), GenericApp_epDesc.endPoint, GENERICAPP_PROFID, GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList, GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList, FALSE ); } 很明显这里按键2(右键)是发送绑定请求的命令。 if ( keys & HAL_KEY_SW_4 ) { HalLedSet ( HAL_LED_4, HAL_LED_MODE_OFF ); // Initiate a Match Deion Request (Service Discovery) dstAddr.addrMode = AddrBroadcast; dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR; ZDP_MatchDescReq( &dstAddr, NWK_BROADCAST_SHORTADDR, GENERICAPP_PROFID,

zigbee协议栈代码主要名词解释

zigbee协议重要名词解释及英文缩写(转载)网络层功能: 1. 加入和退出网络 2. 申请安全结构 3. 路由管理 4. 在设备之间发现和维护路由 5. 发现邻设备 6. 储存邻设备信息 当适当的重新分配地址联合其他设备,ZIGBEE2006可以依赖于网络协调者建立一个新网络. ZIGBEE应用层由APS(应用支持)、AF(应用结构)、ZDO(ZIGBEE设备对象)和厂商自定义应用对象组成。 APS功能 1. 绑定维持工作台,定义一个两个合拢的设备进行比较建立他们的需要和服务。 2. 促进信息在设备之间的限制 3. 组地址定义,移除和过滤组地址消息 4. 地址映射来自于64位IEEE地址和16位网络地址 5. 分裂、重新组装和可靠数据传输 ZDO功能 1. 定义设备内部网络(ZigBee协调者和终端接点) 2. 开始和/或回答绑定请求 3. 在网络设备中建立一个网络安全关系 4. 在网络中发现设备和决定供给哪个应用服务 ZDO同样有责任在网络中发现设备和为他们提供应用服务。 1.1.4 网络拓扑 ZIGBEE网络层支持星状、树状和网状拓扑。在星状拓扑中网络受约束与单个设备,呼叫COORD。COORD有责任建立和维持在网络中发现的设备和其他所有设备,都知道的终端接点直接和COORD 通信。在网状和树状拓扑中,COORD有责任建立一个网络和选择几个关键网络参数,但是网络有有可能直接应用于ZigBee路由器。在树状网络中,利用分等级路由策略完成路由传输数据和控制消息直通网络。树状网络在802.15.4-2003中可以采用信标引导通信。网状网络将允许所有对等网络通信。ZIGBEE 路又将不能在网状网络中发射规则的IEEE802.15.4-2003信标。

Zigbee网络原理与应用教案

计算机与信息技术学院 课程教案 专业物联网工程 课程Zigbee网络原理与应用 讲授人姚建峰 2015 年 9月10日

(一) 课程名称:Zigbee网络原理与应用 (二) 学时学分:周4学时,3学分 (三) 预修课程:电子线路、数字逻辑、计算机组成原理、高级语言程序设计 (四) 使用教材 ZigBee技术与实训教程――基于CC2530的无线传感网技术,清华大学出版社,2014年5月第1版 (五) 教学参考书(3本以上) 1、李文仲编著:《Zigbee2006无线网络与无线定位实战》,北京航空航天大学出版社,2008年1月第1版; 2、王小强编著:《Zigbee无线传感器网络设计与实现》,化学工业出版社,2012年6月第1版; 3、郭渊博编著:《Zigbee技术与应用》,国防工业出版社,2010年6月第1版。 (六)教学方法:课堂讲授,课堂演示,师生互动,理论与实验结合教学。 (七) 教学手段:多媒体教学。 (八) 考核方式:闭卷考试。 (九) 学生创新精神与实践能力的培养方法:结合实验、具体应用、小组讨论等方式使学生掌握Zigbee技术开发的基本方法,提高学生分析问题和解决问题的能力,培养学生的动手能力和创新能力。 (十) 其它要求:严格考勤,学生课堂表现和实验完成情况占学生成绩的30%,期末成绩占70%。

第一章无线传感器网络 教学时数:2学时 教学目的与要求:主要让学生理解无线传感网络的主要概念,了解无线传感网络的发展历程、研究现状与研究前景、应用领域,掌握无线传感网络的特点、网络体系结构、关键技术。 教学重点:无线传感器网络体系结构。 教学难点:无线传感器网络的关键技术。 第一节无线传感器网络概述(了解) 1.无线传感器网络的概念: 无线传感器网络就是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者。传感器、感知对象和观察者构成了无线传感器网络的三个要素。 2.无线传感器网络的发展历程: 第一阶段:最早可以追溯至越战时期使用的传统的传感器系统。当年美越双方在密林覆盖的“胡志明小道”进行了一场血腥较量,“胡志明小道”是胡志明部队向南方游击队输送物资的秘密通道,美军对其进行了狂轰滥炸,但效果不大。后来,美军投放了2万多个“热带树”传感器。“热带树”实际上是由震动和声响传感器组成的系统,它由飞机投放,落地后插入泥土中,只露出伪装成树枝的无线电天线,因而被称为“热带树”。只要对方车队经过,传感器探测出目标产生的震动和声响信息,自动发送到指挥中心,美机立即展开追杀,总共炸毁或炸坏4.6万辆卡车。 第二阶段:二十世纪80年代至90年代之间。主要是美军研制的分布式传感器网络系统、海军协同交战能力系统、远程战场传感器系统等。这种现代微型化的传感器具备感知能力、计算能力和通信能力。因此在1999年,商业周刊将传感器网络列为21世纪最具影响的21项技术之一。 第三阶段:21世纪开始至今,也就是9·11事件之后。这个阶段的传感器网络技术特点在于网络传输自组织、节点设计低功耗。除了应用于反恐活动以外,在其它领域更是获得了很好的应用,所以2002年美国国家重点实验室--橡树岭实验室提出了“网络就是传感器”的论断。 3.无线传感器网络研究现状: (1)国外无线传感器网络的研究现状 1998年,美国国防部提出了“智能尘埃”的概念,最先开始无线传感器网络技术的研究,目的是为监控敌方的活动情况而不被察觉。2001年,美国陆军提出“灵巧传感器网络通信”计划,将无人值守式弹药、传感器和未来战斗系统

相关主题
文本预览
相关文档 最新文档