ZigBee profile
每个ZigBee设备都与一个特定模板相关联,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。采用公共模板,可以确保不同供应商的设备在相同应用领域的互操作。
一个ZigBee设备中,可以定义多个应用对象,每个对象通过一个端点连接到ZigBee堆栈。不同ZigBee设备之间的通讯,具体下来,归根为应用程序之间端点的通讯,这由一种称之为簇的数据结构来承载。
端点定义描述:endPoint为端点号,0号端点为ZDO保留使用,用于配置整个ZigBee设备。255号端点为广播端点,241~254为保留端点,其他为用户自定义端点。

其中,profile ID位于SimpleDescriptionFormat_t中,结构如下:

簇分为输入簇和输出簇,对于不同的命令方向,在绑定时需要注意。簇是一组命令代码的数组,每一个条目代表一个命令。两个设备间的簇要相互通信的话,方向要不同,簇ID要一致。
端点(应用层)通过注册使用应用支持子层(APS)提供的服务,APS通过网络层和安全服务层与端点相连接,并为数据传送、安全和绑定提供服务。APS使用网络层(NWK)提供的服务,NWK负责设备到设备的通讯,并负责网络中设备初始化、消息路由以及网络发现。MAC层负责相邻设备之间单跳数据通讯,它负责建立与网络的同步,支持关联和去关联以及MAC层安全,提供两个设备之间的可靠连接。
ZigBee Cluster Library
ZigBee Cluster Library(又称为Zigbee簇群库).一个族群就是一个容器,其中
使用时,先通过zclHA_Init函数,将zcl应用的端点设置为应用程序的端点,这样的话,发向应用程序的端点数据都会先经过ZCL应用。
然后,注册ZCL通用功能簇库回调函数(zclGeneral_RegisterCmdCallbacks),从应用程序的指定端点来的数据,如果符合ZCL通用请求,会调用相应的回调函数来处理。下图为ZCL通用profile的回调函数表,指明了对应命令的响应函数。在实际应用中,根据需要进行实现,其他未实现的设置为NULL即可。 
例如下图,只实现了前4个命令的响应函数。
有了命令响应函数,簇需要操作的内容为内部的属性,接着,需要注册应用的属性列表(zcl_registerAttrList),每个属性由两部分组成,属性附属的簇ID,属性具体的值。一个簇可以对于多个属性值,这种情况下,属性需要有属性ID来区分。

注册完属性列表后,ZCL应用基本上初始化完成了。那些非ZCL规定的命令,就需要应用程序来处理了,调用
zcl_registerForMsg来注册非ZCL命令处理事件,RegisterForKeys来注册按键时间,ZDO_RegisterForZDOMsg来注册ZDO的命令请求,afRegister注册一个应用终端。
ZCL消息的处理,在SYS_EVENT_MSG下的ZCL_INCOMING_MSG里面,对不同的ZCL命令请求,进行不同的响应。
有以下ZCL命令
Read attributes
Read attributes response
Write attributes
Write attributes undivided
Write attributes response
Write attributes no response
Configure reporting
Configure reporting response
Read reporting configuration
Read reporting configuration response
Report attributes
Default response
Discover attributes
Discover attributes response
总结ZCL的使用
创建一个ZCL应用,需要建立四个模块,xxxx为app名称。
zcl_xxxx.h 定义应用和应用的终端
zcl_xxxx.c
zcl_xxxx_data.c 数据定义和声明,包括应用支持的所有簇属性
OSAL_xxxx.c 应用与OSAL系统的接口
ZigBee安全机制
安全机制由安全服务层提供,系统的整体安全性由profle定义。每一层、MAC、网络或则应用层都可以被保护,它们可以分享安全密钥。SSP是通过ZDO进行初始化和配置。
标准安全 高度安全
ZCL通用簇库
ZigBee profile的更多相关文章
- zigbee ---- profile 和 cluster
在zigbee规范中,引入了profile, cluster的概念.具体说来,假设规范一个profile(可以理解成一套规定),这个profile用来规范智能家居领域的相关产品都要满足那些要求,那么h ...
- zigbee、profile、cluster、 endpoint、
1.引用ZigBee联盟的说法 Profile: a collection of device descriptions, which together form a cooperative appl ...
- 【转】zigbee协议的多种profile
- 【转译】加入ZigBee联盟,共画物联网的未来
Zigbee联盟是物联网全球革命的领导者,创造了随心控制的时代.Zigbee简化了无线产品的整合.加快了市场化,同时让那些希望引入高能效的无线控制的厂商,降低了成本和风险.我们的联盟成员在开放的全球环 ...
- [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)
说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入 ...
- ZHA profile与ZLL profile的一个例子
ZHA Coordinator 如何控制ZLL Light/Philips Hue Light 缩写: ZHA: ZigBee Home Automation profile ZLL: ZigBee ...
- 「2014-5-31」Z-Stack - Modification of Zigbee Device Object for better network access management
写一份赏心悦目的工程文档,是很困难的事情.若想写得完善,不仅得用对工具(use the right tools),注重文笔,还得投入大把时间,真心是一件难度颇高的事情.但,若是真写好了,也是善莫大焉: ...
- TI Zigbee Light Link 参考设计
TI Zigbee Light Link 参考设计 原文出处: http://processors.wiki.ti.com/index.php/Category:ZigBee_Light_Link ...
- ZigBee HA示例程序分析
ZigBee协议栈中自带的HomeAutomation例程,虽然也是操作灯泡,但是,是通过ZCL来统一处理的,符合HA profile规范,互连互操作性较好.下面就简要分析以下ZCL的使用. 在任务数 ...
随机推荐
- 使用openssl工具生成证书
第一步. 生成rsa私钥文件 :\> openssl genrsa -out bexio.pem 1024 : 若要加密生成的rsa私钥文件(des3加密) :\> openssl gen ...
- redis的实现过程
1下载redis的安装包并按照操作安装 2开启 右击我的电脑→管理→服务→站到redis service服务 将其开启 注意:redis服务开启后其默认的ip和端口号为127.0.0.1:6379 3 ...
- 多线程和并发管理 .NET多线程服务
线程相关静态变量 默认静态变量应用程序域所有线程可见.如果静态变量需要在线程间共享,同步访问也就必然了. 线程相关静态变量保证线程安全,同一时间只有一个线程可访问,且每个线程都有该静态变量的拷贝. p ...
- IIS 之 HTTP 错误 500.19(无法访问请求页面,因为该页的相关配置数据无效)
HTTP 错误 500.19- Internal Server Error 错误解决方法,碰到这个问题的原因有很多,大家可以参考下,看属于哪种情况. 刚在本机部署了一个WebService测试,浏览的 ...
- star
Astronomers often examine star maps where stars are represented by points on a plane and each star h ...
- Blending(融合)
Src Pixesl: 源像素 : 指的是当前光栅化产生的值 Dst Pixels 目标像素.指的是先前渲染存储在RT中的值 可以用来实现那些效果,诸如水,玻璃 以及其他的,( ...
- 控制反转(IoC)
大量使用工厂模式引起的问题: Client 对象需要使用 Service1 的 execute( ) 方法完成特定功能,而 Service1 的实现 Service1Impe类 ...
- 控制Input框输入的为大写字母
本来我的想法是Jquery来控制的,万万没想到...用Css就可以实现!!!! .toUp input{ text-transform:uppercase; } 感谢: http:// ...
- iOS 多线程讲解
//同步操作用途 dispatch_queue_t queue = dispatch_get_global_queue(0, 0); dispatch_sync(queue, ^{ NSLog(@&q ...
- 小黄豆CRM软件安装
小黄豆CRM软件(官方网址:http://www.xhdcrm.com,演示地址:http://demo.xhdcrm.com)是一款开源免费的客户关系管理系统,其客户跟进模块简单易用.安装环境是wi ...