zigbee端点的解释
ZigBee学习之8——对ZigBee地址的理解
ZigBee学习之8——对ZigBee地址的理解Zigbee网络中有三类地址,呵呵有人说只有两类哦,这里是我自己的理解,如果不同意可以发表见解哈第一类是IEEE地址,也叫做扩展地址。
这是一个64位的地址,由设备商固化到设备中,地址由IEEE发配,当然我们现在买到的开发板芯片上的IEEE地址一般应该为全F,这是一个无效地址,就是说这个芯片还没有分配地址拉。
可以用Ti的flash编程软件烧写一个IEEE地址。
第二类地址是所谓的网络地址,也就叫做短地址。
这是一个16位的地址,其中有几个特殊的地址:0xFFFF -这个一个对全网络中设备进行广播的广播地址0xFFFD -如果在命令中将目标地址设为这个地址的话那么只对打开了接收的设备进行广播0xFFFC -广播到协调器和路由器0xFFFE -如果目的地址为这个地址的话,那么应用层将不指定目标设备,而是通过协议栈读取绑定表来获得相应目标设备的短地址此外的0x0000到0xFFF8都是有效的目的地址。
每一个地址就只是了一个目标设备。
第三类地址是终端(endpoint)地址。
这是一个8位的逻辑地址。
每个物理设备节点内部含有256个可编址的逻辑终端(endpoint),其中终端0就是ZDO,终端255是个广播地址,241-254保留为以后使用。
Zigbee的通信其实就是由叫做簇的数据结构在终端之间传播构成的。
关于终端和其操作还是有很多不明白的地方,只知道这是一个逻辑设备,每个终端可以作为一个应用项目,但是怎么操作这个终端呢?是个问题,后面要研究一下,这个样的话是不是可以在一个物理设备上完成几个应用的功能呢?比如一个物理节点即是灯光控制器又是温度控制器?好像有可能,恩,一定要研究研究!。
zigbee的原理应用
Zigbee的原理应用什么是Zigbee技术?Zigbee是一种远距离、低功耗、低速率的通信技术,广泛应用于物联网领域。
它基于IEEE 802.15.4标准,并支持多种网络拓扑结构,如星型、网状和树状。
Zigbee技术主要用于短距离和低功耗的无线传感器网络。
Zigbee的工作原理Zigbee使用了基于IEEE 802.15.4的物理层和MAC层协议进行通信。
物理层定义了无线信道的特性和传输速率,MAC层管理通信的接入和网络层功能。
Zigbee 通过发送和接收数据帧实现节点之间的通信。
Zigbee网络中有三种类型的节点:协调器(Coordinator)、路由器(Router)和终端设备(End Device)。
协调器是网络的中心节点,负责管理网络拓扑结构和协调节点之间的通信。
路由器是网络中的中继节点,有能力转发数据帧。
终端设备是最简单的节点,只能与路由器或协调器进行通信。
Zigbee网络可以支持几个不同的应用场景,如智能家居、工业自动化和远程监测等。
每个节点可以通过使用不同的应用层协议来实现特定的功能。
Zigbee的应用领域智能家居在智能家居领域,Zigbee可以用于实现家庭自动化。
通过将各种设备连接到Zigbee网络,用户可以通过智能手机或其他智能设备来控制各种功能,如灯光、温度和安全系统等。
此外,Zigbee还可以实现家庭能源管理,通过智能电表和电器设备的联网,实现能源的监控和控制。
工业自动化Zigbee在工业自动化领域的应用越来越广泛。
Zigbee节点可以用于监测温度、湿度、压力等参数,以及控制工业设备。
通过建立Zigbee传感器网络,可以实现对工业过程的实时监测和远程控制,提高生产效率和安全性。
远程监测Zigbee也被广泛应用于远程监测领域,如环境监测、农业监测和健康监测等。
通过部署Zigbee传感器节点,可以实时监测环境参数(如温度、湿度、空气质量等)、农田土壤湿度和作物生长状况,以及人体生理参数等。
ZigBee中的绑定
ZigBee中的绑定ZigBee中的绑定ZigBee中的绑定与端点EndPoint息息相关,其实EndPoint就像是TCP/IP中的端口,每个端口对应于不同的应用层。
由于采用一个字节来表示EndPoint,可以具有0~255个端点,但是0端点被预留用于ZDO与ZigBee协议栈的其它层通信,实现各个层的初始化和配置。
端点255用于向所有端点广播。
此外,端点241到254也是保留端点,具有特殊用途,通常用户不要使用这个范围的端点。
因此用户可使用的端点为1~240,也就是可以有240个端点,即240个应用。
所有端点都是使用APS提供的服务,透过NWK和安全服务提供层与端点相连接,提供数据传送服务,因此能够失配各种兼容的设备。
typedef struct{byte endPoint; //端点号,也就是端口号byte *task_id; //对应端口的任务ID号SimpleDescriptionFormat_t *simpleDesc; //设备的简单描述,说明本端点可以提供哪些命令afNetworkLatencyReq_t latencyReq; //枚举类型} endPointDesc_t;//设备的简单描述结构typedef struct{byte EndPoint; //端点号uint16 AppProfId; // Profile ID,是由ZigBee联盟分配的,用于描述设备的应用场景,比如家庭自动化或者是无线传感器网络,它定义了设备之间信息交换的规范后者说规约uint16 AppDeviceId; // 设备ID号byte AppDevVer:4; // 设备版本byte Reserved:4; //AF_V1_SUPPORT uses for AppFlags:4.Reservedbyte AppNumInClusters; //输入命令个数cId_t *pAppInClusterList; //输入命令列表byte AppNumOutClusters; //输出命令个数cId_t *pAppOutClusterList; //输出命令列表} SimpleDescriptionFormat_t;在SimpleSensorEB中简单描述符为const SimpleDescriptionFormat_t zb_SimpleDesc ={MY_ENDPOINT_ID, // EndpointMY_PROFILE_ID, // Profile IDDEV_ID_SENSOR, // Device IDDEVICE_VERSION_SENSOR, // Device Version0, // ReservedNUM_IN_CMD_SENSOR, // Number of Input Commands(cId_t *) NULL, // Input Command ListNUM_OUT_CMD_SENSOR, // Number of Output Commands (cId_t *) zb_OutCmdList // Output Command List只有一个输出命令ID};其中在SAPI_Init(byte task_id)中对endPointDesc_t结构赋值如下:sapi_epDesc.task_id = &sapi_TaskID;//任务号sapi_epDesc.endPoint = zb_SimpleDesc.EndPoint;//端点号sapi_/doc/0c13433194.htmltencyReq = noLatencyReqs;//无延迟由于在本例子中只有一个应用,即采集温度,因此只需要一个端点描述符。
zigbee技术文档0 zigbee协议栈基础概念简介
一、ZigBee之基本概念物联网的定义是:通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现对物体的智能化识别、定位、跟踪、监控和管理的一种网络。
无线传感网络的定义是:大规模,无线、自组织、多跳、无分区、无基础设施支持的网络.其中的节点是同构的、成本较低、体积较小,大部分节点不移动,被随意撒布在工作区域,要求网络系统有尽可能长的工作时间。
在通信方式上,虽然可以采用有线、无线、红外和光等多种形式,但一般认为短距离的无线低功率通信技术最适合传感器网络使用,为明确起见,一般称无线传感器网络(WSN.Wireless Sensor Network)。
无线传感网络的无线通信技术可以采用ZigBee技术、蓝牙、Wi-Fi和红外等技术。
ZigBee技术是一种短距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术或无线网络技术,是一组基于IEEE802.15.4无线标准研制开发的组网、安全和应用软件方面的通信技术。
Zigbee是IEEE 802.15.4协议的代名词。
根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。
这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。
其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。
主要适合用于自动控制和远程控制领域,可以嵌入各种设备。
简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。
IEEE 802.15.4是一个低速率无线个人局域网(Low Rate Wireless PersonalArea Networks,LR-WPAN)标准。
该标准定义了物理层(PHY)和介质访问控制层(MAC)。
这种低速率无线个人局域网的网络结构简单、成本低廉、具有有限的功率和灵活的吞吐量。
简述zigbee基本概念及协议术语(一)
简述zigbee基本概念及协议术语(一)ZigBee技术是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。
主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。
Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,在整个网络范围内,每一个Zigbee网络数传模块之间可以相互通信,每个网络节点间的距离可以从标准的75m无限扩展。
与移动通信的CDMA网或GSM网不同的是,Zigbee网络主要是为工业现场自动化控制数据传输而建立,因而,它必须具有简单,使用方便,工作可靠,价格低的特点。
而移动通信网主要是为语音通信而建立,每个基站价值一般都在百万元人民币以上,而每个Zigbee―基站‖却不到1000元人民币。
每个Zigbee网络节点不仅本身可以作为监控对象,例如其所连接的传感器直接进行数据采集和监控,还可以自动中转别的网络节点传过来的数据资料。
除此之外,每一个Zigbee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。
ZigBee是一种无线连接,可工作在(全球流行)、868MHz(欧洲流行)和915 MHz(美国流行)3个频段上,分别具有最高250kbit/s、20kbit/s和40kbit/s的传输速率,它的传输距离在10-75m的范围内,但可以继续增加。
作为一种无线通信技术,ZigBee具有如下特点:(1)低功耗:由于ZigBee的传输速率低,发射功率仅为1mW,而且采用了休眠模式,功耗低,因此ZigBee设备非常省电。
据估算,ZigBee设备仅靠两节5号电池就可以维持长达6个月到2年左右的使用时间,这是其它无线设备望尘莫及的。
(2)成本低:ZigBee模块的初始成本在6美元左右,估计很快就能降到—美元,并且ZigBee协议是免专利费的。
ZigBee基础知识
ZigBee基础知识一、ZigBee特点ZigBee 技术是一种新兴的短距离、低功耗、低成本、低数据传输率的无线通信技术。
它的主要特点如下:1)低功耗:在低功耗待机模式下,两节普通 5 号干电池可使用6~24 个月。
2)低速率:数据传输速率只有10kb/s~ 250 kb/s,专注于低速数据传输应用。
3)低成本:因为ZigBee 数据传输速率低,协议简单,降低了对通信控制器的要求,所以大大降低了成本。
4)短距离:传输距离一般介于10~100m 之间,在增加RF 发射功率后,亦可增加到1~3km。
这指的是相邻节点间的距离,如果通过路由和节点间通信的接力,传输距离将可以更远。
5)短时延:Zigbee 的响应速度较快,一般从睡眠转入工作状态只需15ms,节点连接进入网络只需30ms,进一步节省了电能。
6)容量大:Zigbee 可采用星状、簇状和网状网络结构,一个主节点可管理254 个子节点,同时主节点还可由上一层网络节点管理,这样可组成65000 多个节点。
7)安全:ZigBee 提供了数据完整性检查和鉴权功能,采用AES-128 加密算法,各个应用可灵活确定其安全属性。
8)工作频段灵活:使用的频段分别为全球的 2.4GHz ISM 频段(16 个信道)、欧洲的868MHz 频段(1 个信道),以及美国的915MHz 频段(10 个信道),均为免执照频段。
二、ZigBee工作频率表1 ZigBee 工作频率表频带频段类型使用范围数据传输速率信道数2.4GHz ISM 全球250Kb/s 16915MHz ISM 美国40Kb/s 10868MHz ISM 欧洲20Kb/s 1三、ZigBee的设备类型ZigBee 网络支持两种功能类型的网络节点:全功能器件(Full Function Device,FFD)和精简功能器件(Reduce Function Device,RFD)。
全功能器件拥有完整的协议功能,在网络中可以作为协调器(Coordinator),路由器(Router)和普通节点(Device);而精简功能器件旨在实现最简单的协议功能而设计,只能作为普通节点存在于网络中。
zigbee模块设置使用说明
Zigbee简介:Zigbee网络通常由三种节点构成:z协调器(Coordinator):用来创建一个Zigbee网络,并为最初加入网络的节点分配地址,每个Zigbee网络需要且只需要一个Coordinator.z路由器(Router):也称为Zigbee全功能节点,可以转发数据,起到路由的作用,也可以收发数据,当成一个数据节点,还能保持网络,为后加入的节点分配地址.z终端节点(End Device):通常定义为电池供电的低功耗设备,通常只周期性发送数据。
或者通过休眠按键控制节点的休眠或工作。
注意:三种Zigbee节点的P ANID在相同的情况下,可以组网并且互相通讯(上电即组网,不需要人为干预)。
这样可以通过P ANID区分zigbee网络,在同一个区域内,可以同时并存多个zigbee网络,互相不会干扰。
Panid设置见下。
管脚定义:z P1.5:休眠键,输入脚,p1.5拉高时,休眠有效。
模块如果是Cornidator、Router 时此脚无效,只有模块是Enddevice时,此脚才有效,如果不需要休眠功能,则此脚与GND连接。
z p1.7:Set键,输入脚,p1.7拉高时候,设置功能有效,平时模块处于数据收发状态时,此引脚应为低电平,具体设置功能见下节z p2.0 网络连接状态灯,输出脚,模块如果是Router或Enddevice时,此按键表明当前模块是否入网,高电平表明入网,低电平表明没有入网。
z p0.2:Rx,与外置MCU的Tx连接z P0.3:Tx,与外置MCU的Rx连接z GND:电源地z VCC:电源3.3V用户在使用时候,可以根据自己需要选择引脚。
最简单的情况是只使用Rx、Tx.、GND、VCC四个脚,但需要将P1.5(休眠键)、P1.7(设置键)接地。
P2.0(网络连接状态)悬空。
当P1.7为高,通过串口对模块进行设置,数据格式如下(以下数据均为16进制):说明:模块处于设置状态时,波特率固定为38400.即P1.7为高时,模块波特率为38400;P1.7为低时,波特率为设置的波特率,波特率设置见下面命令。
ZigBee简介
【简介】:现实生活中,系统传输的通常为小量的突发信号。
虽然能满足传输,但其成本高、体积大和能源消耗大等问题不得不让我们考虑,在这种情况下,体积小、成本低、能量消耗小和传输速率低的短距离无线通信Zigbee技术诞生了。
简单的说,Zigbee是一种高可靠的【无线数据传输网络】,类似于CDMA 和GSM网络。
Zigbee数传模块类似于移动网络基站。
通讯距离从标准的75m 到几百米、几公里,并且支持无限扩展。
Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,在整个网络范围内,每一个Zigbee网络数传模块之间可以相互通信,每个网络节点间的距离可以从标准的75m无限扩展。
与移动通信的CDMA网或GSM网不同的是,Zigbee网络主要是为工业现场自动化控制数据传输而建立,因而,它必须具有简单,使用方便,工作可靠,价格低的特点。
而移动通信网主要是为语音通信而建立,每个基站价值一般都在百万元人民币以上,而每个Zigbee“基站”却不到1000元人民币。
每个Zigbee网络节点不仅本身可以作为监控对象,例如其所连接的传感器直接进行数据采集和监控,还可以自动中转别的网络节点传过来的数据资料。
除此之外,每一个Zigbee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。
【发展史】:1999年针对自动化应用需求的增加,低功耗、低成本以及多节点的无线网路技术概念ZigBee 因应而生。
2000年12月IEEE成立IEEE 802.15.4工作组,致力于开发一种可应用在固定、可携或移动设备上的低成本、低功耗以及多节点的低速率无线连接技术。
2001年8月美国Honeywell等公司发起成立ZigBee Alliance,他们提出的ZigBee技术被确认纳入为IEEE 802.15.4标准。
2002年10月TI、Motorola、Philips和日本三菱等重量级企业加盟ZigBee Alliance。
彻底明白Zigbee术语——群集(Cluster)、端点(EndPoint)等
彻底明白Zigbee术语——群集(Cluster)、端点(EndPoint)等在学习zigbee协议栈的时候经常看到应用程序、zigbee设备对象(ZDO)、节点、设备、端点、群集、属性、绑定、寻址等一下zigbee 术语,不知道这些zigbee术语是表示什么,是如何定义的,是如何区分的,是如何划分的以及他们之间有什么联系,一切的一切全不知道。
网上也有很多zigbee术语的讲解,不知道是自己的理解能力有问题,还是本身这个就是很难理解,太过于抽象呢?一、属性属性Attribute是一个反映物理数量或状态的数据值,比如开关值(On/Off)、灯的状态值(On/Off)、温度值、百分比等等二、群集,或称为簇群集Cluster是包含一个或多个属性(attribute)的群集。
简单的说,群集就是属性的集合。
每个群集都被分配一个唯一群集ID且每个群集最多有65536个属性。
比如一个群集包含了不同情况下的开关、不同情况下的灯、不同情况下的温度值、不同情况下的百分比等等三、设备描述设备描述Device DescripTIon是指一个大型目标应用的一部分,包括一个或多个群集四、端点端点EndPoint是协议栈应用层的入口,即入口地址,也可以理解应用对象(ApplicaTIon Object)存在的地方,它是为实现一个设备描述而定义的一组群集。
每个Zigbee设备可以最多支持240这样的端点,端口0用于整个Zigbee设备的配置和管理,应用程序可以通过端点0与Zigbee堆栈的其他层通信,从而实现对这些层的初始化和配置。
附属在端点0的对象被称为Zigbee设备对象(ZDO)。
端点255用于向所有端点的广播,端点241~254是保留端点。
五、配置文件配置文件Profile可以理解为共同促进交互式应用的多个设备描述项的集合。
定义了属性。
Zigbee协议术语
Zigbee协议术语ZigBee学习时,需要理解几个基本术语:簇(Cluster)、端点(Endpoint)、属性(Attribute),配置文件(profile)。
概念如下:配置文件(profile):Zigbee协议的配置文件是对逻辑组件及其相关接口的描述,是面向某个应用类别的公约、准则.通常没有程序代码与配置文件相关联.属性(attribute):设备之间通信的每一种数据像开关的状态或温度计值等皆可称为属性.每个属性可得到唯一的ID值.簇(cluster):多个属性的汇集形成了簇,每个簇也拥有一个唯一的ID.虽然个体之间传输的通常是属性信息,但所谓的逻辑组件的接口指的却是簇一级的操作,而非属性一级.终端(endpoint):每个支持一个或多个簇的代码功能块称为终端.不同的设备通过它们的终端及所支持的簇来进行通信.配置文件定义了属性ID与簇ID,使之看起来就像设备的某种特性.以家庭智能控制系统为例,灯配置文件设定了远程控制设备的簇OnOffDRC含有一种属性OnOff,且该属性为无符号8位值,值0XFF意味着"开",0X00为关,0XF0则为无效。
通常,配置文件也为设备定义了,哪些簇是强制托管的,哪些簇是可选择的。
另外,配置文件还定义了一些可选择的Zigbee协议托管服务.基于簇及配置所定义的服务,用户可使用配置文件中定义的属性编写所需的函数.改写自己的程序代码.因此,配置文件使得ZigBee 设备可以互操作。
任何遵循某一标准配置文件的节点都可以与其他实现相同配置文件的节点进行互操作。
也就是说,在使用同一标准配置文件进行设计的基础上,即使生产开关的厂家与生产控制器的厂家不同,他们生产的产品仍可实现协同操作.以家庭智能系统中的灯光控制为例,灯配置文件定义了6个设备,协议栈通过带有以下信息的报头文件对此配置提供支持:配置(profile)ID,设备ID及版本,簇ID,属性ID,属性数据类型.下图(1)显示了不同术语之间的关系,对于家庭智能控制系统的灯光配置,图中给出了两种设备(相当于两个节点).每种设备各有一个终端(当然可以有多个终端,终端1-终端240).负荷切换控制器的终端中仅有一个输入簇,而远程转换控制终端则有两个簇,且分别为一个输入一个输出.数据的传输基于簇而进行.从图中可以看出,每一个设备可以包含多个终端。
zigbee基础知识笔记
1.基础知识 (1)1.1IEEE地址 (1)1.2簇 (2)1.3 Profile ID (4)1.4 网络地址与端点号、节点 (4)1.5 PANID (5)1.6 zigbee设备 (5)2.绑定机制 (7)2.1描述符绑定 (7)2.2设备绑定 (23)1.基础知识1.1IEEE地址IEEE地址是64位,在设备进入网络之前就分配好了的,应该在全球是唯一的,而网络地址是在网络建立后,设备加入网络时,它的父节点给它分配的,在设备通信时,首先由ieee地址找到设备的网络地址,然后根据网络地址实现设备之间的通信,这样可以减少帧头长度,多传有效数据通俗的说IEEE地址相当于你的手机号(11位的那个),短地址就相当于你们公司的小号(3、4)位,一个公司的互打电话就用小号噻。
假设你的手机号138xxxxx666,这个是唯一的,但你的小号,假设是666,在你的公司网中是唯一的,但是在另一个网中,可能别人的小号也是666。
1.2簇簇就是相当于端点房间里面的人,是接收最终的目标。
这东西是2个字节编号,在射频发送的时候,必须要指定接收模块的镞,发送模块不需要指定。
首先每一个端点可以看成是一个1个字节数字编号的开有一扇门的房间,数据最终的目标是进入到无线数据包指定的目标端点房间,而取无线数据这个相关的代码在任务事件处理函数里,TI协议栈有那么多的任务事件处理函数,所以必须要指定在哪个任务事件处理函数来取这个无线数据包里面的有用数据。
端点就相当于一个房间的门牌号!!!SimonApp_epDesc.endPoint = 10;//SimonApp_ENDPOINT; 此端点编号为10SimonApp_epDesc.task_id = &SimonApp_TaskID; 和我们应用层任务挂钩完成了簇信息表的构建,因为簇信息封装在SimonApp_SimpleDesc里面,这里面却只是起到一个信息表的作用!方便数据到来的时候查询相关信息表!const cId_t SimonApp_ClusterList[SimonApp_MAX_CLUSTERS] ={SimonApp_CLUSTERID};const SimpleDescriptionFormat_t SimonApp_SimpleDesc = {SimonApp_ENDPOINT, // int Endpoint;SimonApp_PROFID, // uint16 AppProfId[2];SimonApp_DEVICEID, // uint16 AppDeviceId[2];SimonApp_DEVICE_VERSION, // int AppDevVer:4;SimonApp_FLAGS, // int AppFlags:4;SimonApp_MAX_CLUSTERS, // byte AppNumInClusters;(cId_t *)SimonApp_ClusterList, // byte *pAppInClusterList;SimonApp_MAX_CLUSTERS, // byte AppNumInClusters;(cId_t *)SimonApp_ClusterList // byte *pAppInClusterList;};接收到数据以后,判断是属于哪一个端点、属于哪一个簇1.3 Profile ID这个是由Zigbee组织来分配的应用ID号,比如无线开关用0x0001,智能电表用ox0002,万用遥控器用0x0003等等。
Zigbee协议的基础知识
Zigbee协议的基础知识一、ZigBee堆栈层ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。
ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。
图1-1给出了这些组件的概况。
图:Zigbee堆栈框架每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。
这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。
公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。
设备是由模板定义的,并以应用对象(Application Objects)的形式实现(见图1-1)。
每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件从应用角度看,通信的本质就是端点到端点的连接,例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮。
端点之间的通信是通过称之为簇的数据结构实现的。
这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。
图1-1-2就是设备及其接口的一个例子:每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。
一共有二个特殊的端点,即端点0和端点255。
端点0用于整个ZigBee 设备的配置和管理。
应用程序可以通过端点0与ZigBee堆栈的其它层通信,从而实现对这些层的初始化和配置。
附属在端点0的对象被称为ZigBee设备对象(ZD0);端点255用于向所有端点的广播;端点241到254是保留端点。
所有端点都使用应用支持子层(APS)提供的服务。
APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带灯的开关。
APS使用网络层(NWK)提供的服务。
NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。
彻底明白Zigbee术语——群集(Cluster)、端点(EndPoint)等
彻底明白Zigbee术语——群集(Cluster)、端点(EndPoint)等在学习zigbee协议栈的时候经常看到应用程序、zigbee设备对象(ZDO)、节点、设备、端点、群集、属性、绑定、寻址等一下zigbee 术语,不知道这些zigbee术语是表示什么,是如何定义的,是如何区分的,是如何划分的以及他们之间有什么联系,一切的一切全不知道。
网上也有很多zigbee术语的讲解,不知道是自己的理解能力有问题,还是本身这个就是很难理解,太过于抽象呢?一、属性属性Attribute是一个反映物理数量或状态的数据值,比如开关值(On/Off)、灯的状态值(On/Off)、温度值、百分比等等二、群集,或称为簇群集Cluster是包含一个或多个属性(attribute)的群集。
简单的说,群集就是属性的集合。
每个群集都被分配一个唯一群集ID且每个群集最多有65536个属性。
比如一个群集包含了不同情况下的开关、不同情况下的灯、不同情况下的温度值、不同情况下的百分比等等三、设备描述设备描述Device DescripTIon是指一个大型目标应用的一部分,包括一个或多个群集四、端点端点EndPoint是协议栈应用层的入口,即入口地址,也可以理解应用对象(ApplicaTIon Object)存在的地方,它是为实现一个设备描述而定义的一组群集。
每个Zigbee设备可以最多支持240这样的端点,端口0用于整个Zigbee设备的配置和管理,应用程序可以通过端点0与Zigbee堆栈的其他层通信,从而实现对这些层的初始化和配置。
附属在端点0的对象被称为Zigbee设备对象(ZDO)。
端点255用于向所有端点的广播,端点241~254是保留端点。
五、配置文件配置文件Profile可以理解为共同促进交互式应用的多个设备描述项的集合。
定义了属性ID与群集(簇)ID,使之看起来就像设备的某种特性,以家庭智能控制系统为例,灯配置文件设定了远程控制设备的群集OnOffDRC含有一种属性OnOff,且该属性为无符号8位值,值0xFF意味着开,0x00为关,0xF0则为无效。
ZigBee节点介绍.
Flash驱动程序。
看门狗驱动程序。 红外接收发驱动程序。
RTC驱动程序。
ADC驱动程序。 串口驱动程序。
拨码开关驱动程序。
15种传感器驱动程序 ZigBee模块驱动程序。 μCOSII源代码。
9
API集
LED设备操作函数。
11
基础实验项目
Keil μVision4的安装和使用
Jlink仿真器驱动程序的安装和使用 串口调试助手
RTC实时时钟实验项目 TIM时钟配置实验项目 SYSTICK实验项目 WWDG看门狗实验项目 IWDG实验项目 NVIC中断向量配置实验项目
ISP软件烧写STM
LED控制实验项目 按键控制实验项目
5
ZigBee节点简介
讯方ZigBee节点在提供ZigBee通讯的同时,还有丰富的 板载资源,包括2路12位的ADC,RTC实时时钟,3个IO 端口,2个8位的拨码开关,2个按键,3个用户led,外部 32M的FLASH,一个红外发射头等。 讯方ZigBee模块使用的芯片是CC2530,该模块ZigBee协 议栈已经做好,上电即可以自动组网,用户还可以使用 讯方提供的配置软件将模块配置成协调器或路由器,该 模块供给外部的接口就是一个串口,用户只需要往串口 收发数据就行了。
按键设备操作函数。
拨码开关设备操作函数 红外设备操作函数。 ZigBee设备操作函数。 Flash设备操作函数。
15种传感器设备操作函数。
10
实验项目
基础实验 项目
1 2
传感器 实训项目
4
3
综合应用
实验项目
远程控制 实训项目
ZigBee知识介绍及网络节点的设计
(2)网络地址,长度为16位:用于本地网 络中的设备标识,在每个设备的短地址必 须唯一,当节点加入网络时有其父节点分 配并通过使用短地址进行通信。
网络数据传递机制 (2/3)
在802.15.4标准中,有三种不同的数据转移: A:从终端设备到协调器 B:从协调器到终端设备 C:在对等网络中从一方到另一方
实验步骤
• 1.在ZSensorMonitor中观察网络拓扑结构
实验步骤
• 2.在IAR软件中对开发板进行编程
实验步骤
3.物理地址烧写
• 退出IAR编译环境,对协调器和路由器分别进行物理地址 烧写
实验现象
• 先将协调器上电运行,用超级终端观察信息变化。
总结
在研究ZigBee协议栈的基础之上,进行组 网的研究。研究和分析主要包括以下几方 面内容: 研究并分析了ZigBee网络组网相关知识 CC2530芯片的研究 基于ZigBee协议栈的编程
硬件设计(2/3)
硬件组成概述 • 传感器节点由传感器模块、处理器模块、无线通信模块和
能量供应模块四部分组成。
硬件设计(3/3)
• 传感器节点实物图如下:
软件设计
• 通过组网研究,设计了一个树形网络,其流程图如下
上电运行
初始化
建立 网络
建立 失败
建立成功
LED闪烁4次 串口显示信息
监测 无线信
号 有节点加入
数据 接收完
毕 是
LED闪烁2次 串口显示信息
分配网络 地址
否
进入等待接受状 态
(a)协调器流程图
软件设计
(b)路由器流程图
ZigBee
ZigBee ——node(节点)、profile(规约)、邻居表⼏个概念:node(节点):在zigbee堆栈中最多有三种节点:Coordinator(协调器)、Router(路由器)、End Device(终端)。
其中Coordinator负责选择⼯作频段,建⽴⽹络,允许⼦设备加⼊⽹络;Router负责传递消息,允许⼦设备加⼊⽹络;End Device只负责收发消息。
⼀个⽹络中可以有若⼲Router和End Device,但只能有⼀个Coordinator。
下⾯⼏个图说得更清楚点profile:有⼈将profile翻译为“规约”,它规定了设备的具体应⽤环境(这是由zigbee使⽤联盟制定的,我们只能选择其⼀)。
其中stack profile定义了⽹络类型、深度等;application profile针对给定的stack profile定义了不同功能的标准函数,说明了设备类型、接⼝、如何传输数据等等。
总之,profile就是对设备的描述。
⽬的是形成标准,便于不同制造商间产品的兼容。
descriptor:cluster:attribute:endpoint:endpoint的作⽤举例说明下:假如我们想让node1的开关1控制node2的灯1、2、3,开关2只控制灯4。
但是由于节点间信息只依靠⽹络地址定位,所以node2接收到node1的控制信息后,⽆法判断究竟是哪个开关的控制信息。
所以引⼊了endpoint概念(这和TCP/IP协议⾥的“端点”概念很像),给node2两个endpoint(端⼝),⼀个对应开关1,⼀个对应开关2。
这样node2的应⽤程序就能通过接收到的endpoint来区别究竟是接收到哪个开关的信息了。
杂记:ZigBee⽹络层的主要功能是路由,路由算法是它的核⼼。
⽬前ZigBee⽹络层主要⽀持两种路由算法——树状路由和⽹状路由。
树状路由(具体可以参考ZigBee的协议栈规范)把整个⽹络看作是以协调器为根的⼀棵树,因为整个⽹络是由协调器所建⽴的。
zigbee节点的类型及特点
zigbee节点的类型及特点所谓Zigbee节点是采用Zigbee协议栈进行通信的节点。
Zigbee 节点通常可以分为三类,包括Zigbee终端节点、Zigbee路由节点和Zigbee协调节点。
在一个Zigbee网络中,这三种节点均是必须存在的。
每个Zigbee网络均存在一个协调节点来管理整个网络,而且在通常情况下也仅有一个这样的协调节点。
协调节点负责建立网络。
在这个过程中,它选择网络中用于不同终端节点设备通信的通道。
同时,Zigbee的协调节点往往还作为网络安全控制的信任中心。
首先,协调节点有权限允许其他设备加入或离开网络并跟踪所有终端节点和路由节点。
其次,协调节点还将配置并实现设备节点之间的端到端安全性。
最后,协调节点将负责存储并分发其它节点的密钥。
在Zigbee网络中,协调中心不能休眠并需要保持持续供电。
Zigbee网络中的路由节点扮演着协调节点和终端节点之间的中间人角色。
路由节点需要首先通过协调节点的准许加入网络,然后开始进行协调节点和设备节点间的路由工作。
该工作包括了路径的建立和数据的转发。
路由节点同样具有允许其它路由和终端节点加入网络的权限。
最后,和协调节点类似,在加入网络之后,路由节点也不能休眠直到该节点退出Zigbee网络。
Zigbee终端节点是Zigbee网络中最简单且基本的设备,而且通常情况下Zigbee终端节点往往是低功率低能耗的,如运动传感器,温度传感器,智能灯泡等等。
终端节点设备必须首先加入网络才能与其他设备通信。
但是,与协调节点和路由节点不同,终端节点设备不会路由任何数据,也没有权限允许其他设备加入网络。
由于无法中继来自其他设备的消息,因此终端节点只能通过其父节点(通常是路由节点)在网络内进行通信。
同时,与其他两种类型的节点不同,终端节点可以进入低功耗模式并进入休眠状态以节省功耗。
ZigBee学习之12——对ZDO的初步理解
ZigBee学习之12——对ZDO的初步理解一直把ZDO当成一个节点设备,其实ZDO是ZigBee协议栈中的一个协议,负责所有设备的管理,安全方案。
ZDO就好像是一个驻留在所有ZigBee节点中特殊应用对象,是应用层其他端点与应用子层管理实体交互的中间件。
ZDO的配置叫做ZDP(ZigBee设备配置ZigBee Device Profile)ZDP可以被应用终端(application end points)和ZigBee节点访问。
ZDO占用每个节点(node)的0终端(Endpoint0)(我晕,又搞不清什么是Endpoint什么事node了!理解起来好像Endpoint是应用对象,node好像是一个硬件节点,一个节点可以有最多254个终端,也就是说一个节点可以配置为254种应用来使用,在两个通信端点只见能让多个应用循环使用APS,这就是ZigBee的应用支持子层提供的多路选择功能。
)这里摘录一下网络收集的资料:1.3.3.3 ZigBee设备对象ZDOZDO是一个特殊的应用层的端点(Endpoint)。
它是应用层其他端点与应用子层管理实体交互的中间件。
它主要提供的功能如下:(1)初始化应用支持子层,网络层。
(2)发现节点和节点功能。
在无信标的网络中,加入的节点只对其父节点可见。
而其他节点可以通过ZDO的功能来确定网络的整体拓扑结构已经节点所能提供的功能。
(3)安全加密管理:主要包括安全key的建立和发送,已经安全授权。
(4)网络的维护功能。
(5)绑定管理:绑定的功能由应用支持子层提供,但是绑定功能的管理却是由ZDO提供,它确定了绑定表的大小,绑定的发起和绑定的解除等功能。
(6)节点管理:对于网络协调器和路由器,ZDO提供网络监测、获取路由和绑定信息、发起脱离网络过程等一系列节点管理功能。
ZDO实际上是介于应用层端点和应用支持子层中间的端点,其主要功能集中在网络管理和维护上。
应用层的端点可以通过 ZDO提供的功能来获取网络或者是其他节点的信息,包括网络的拓扑结构、其它几点的网络地址和状态以及其他几点的类型和提供的服务等信息。
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信标。
缩写含义AIB:应用支持层消息AF:应用结构APDU:应用支持层以下数据单位APL:应用层APS:应用支持层APSDE:应用支持层以下数据实体APSDE-SAP:应用支持层数据实体—服务通道APSME:应用支持层管理实体APSME-SAP:应用支持层管理实体—服务通道ASDU:APS服务数据单位BRT:广播重试计时器BTR:广播处理记录BTT:广播处理工作台CCM*:CSMA-CA:载波多重监听通道——避免碰撞FFD:全部功能设备GTS:担保时间跟踪IB:消息数据LQI:连接质量指示LR-WPAN:低速率无线局域网MAC:控制层MCPS-SAP:控制层公共部分—服务通道MIC:消息完整代码MLME-SAP:控制层管理实体—服务通道MSC:消息序列图表MSDU:控制层服务数据单位MSG:消息服务类型NBDT:网络广播发送时间NHLE:下一个更高层实体NIB:网络层信息数据NLDE:网络层数据实体NLDE-SAP:网络层数据实体——服务通道NLME:网络层管理实体NLME-SAP:网络层管理实体——服务通道NPDU:网络层数据单位NSDU:网络服务数据单位NWK:网络OSL:打开系统联络PAN:局域网PD-SAP:物理层数据—指向服务通道PDU:协议数据单位PHY:物理层PIB:局域网消息PLME-SAP:物理层管理实体——指向服务通道POS:私人运作空间QOS:服务质量RREP:路由回答RN:路由接点SKG:SKKE:SSP:安全服务提供SSS:安全服务说明WPAN:无线局域网XML:可扩展语言ZB:ZIGBEEZDO:ZIGBEE设备对象2.1.1APSAPS提供一个工作台在网络层和应用层之间直接服务于ZDO和厂商自定义设备。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对zigbee的EndPoint的理解
Endpoint这个概念在Zigbee中绝对是非常重要的。
因为所有的Zigbee无线数据包都必须有一个Endpoint为目标。
那么什么是Endpoint呢?从理解的层面上来说,Endpoint是一个radio unit上的真正的数据目标。
按照协议规范,0号endpoint是Zigbee device object(ZDO)用的一个端点,255号是用作广播用途,我们可以自己设定的是1~240号,其余的保留。
在一个Radio unit上可以实现多个EndPoint。
当进行无线数据收发的时候,数据包里面就必须包含radio unit信息(设备的短地址),端点信息(destination endpoint number)。
也就是说一个radio unit在接收到一个数据包后,会在协议栈的底层进行解析,比对应该把这个数据包发给哪个endpoint,如果找不到,这个包将被丢弃。
下面用两个例子来解释一下endpoint的问题。
例子一:一个无线节点(radio unit)A上有一个温湿度传感器,有一个空调控制系统;另外一个无线节点B则负责接收A发回的温度数据,并通过一定的算法来控制空调系统。
我们不管B如何实现,只研究A如何实现。
这种情况的一个很规范的实现方式是:温湿度传感器设置一个endpoint,比如为10号;空调控制系统设置一个endpoint,比如为20号。
还要说明的是:还应该为每一个endpoint建立一个任务,这样在注册端点描述符的时候(调用afRegister函数),就会向协议栈底层说明处理这个端点数据的任务是谁。
这样:当B想要获取温湿度的时候,他将会发出一个包含A的短地址和10号端点的信息,这个信息到了A,协议栈会将这个消息转给10号端点所对应的task去处理,管理空调的20号端点根本就看不到这个消息;类似地,如果B想要控制空调,他发出的数据包将包含A的短地址和20号端点信息,A收到消息后会发给20号端点的task去处理。
(需要注意的是:在网络层面经常会有发给ZDO的消息,这时候信息包的端点号就将是0号)。
这种将不同功能分配到不同endpoint上的方法非常有利于任务的划分,是一种很正规的方法。
例子二、一个无线节点(radio uint)A上有4个LED需要被控制,另外一个无线节点B则有4个开关用来控制这4个LED。
这种情形的规范实现方式还是要为每一个LED设置一个endpoint(允许的范围内你任意指定,只要不重复),并为每个endpoint建立一个task。
这样处理之后,B可以用同样的命令来控制4个LED,而不是每一个led 用不同的命令。