每个ZigBee设备都与一个特定模板相关联,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。采用公共模板,可以确保不同供应商的设备在相同应用领域的互操作。

Technorati 标签: ZigBee Profile

    一个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的更多相关文章

  1. zigbee ---- profile 和 cluster

    在zigbee规范中,引入了profile, cluster的概念.具体说来,假设规范一个profile(可以理解成一套规定),这个profile用来规范智能家居领域的相关产品都要满足那些要求,那么h ...

  2. zigbee、profile、cluster、 endpoint、

    1.引用ZigBee联盟的说法 Profile: a collection of device descriptions, which together form a cooperative appl ...

  3. 【转】zigbee协议的多种profile

  4. 【转译】加入ZigBee联盟,共画物联网的未来

    Zigbee联盟是物联网全球革命的领导者,创造了随心控制的时代.Zigbee简化了无线产品的整合.加快了市场化,同时让那些希望引入高能效的无线控制的厂商,降低了成本和风险.我们的联盟成员在开放的全球环 ...

  5. [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)

    说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入 ...

  6. ZHA profile与ZLL profile的一个例子

    ZHA Coordinator 如何控制ZLL Light/Philips Hue Light 缩写: ZHA: ZigBee Home Automation profile ZLL:  ZigBee ...

  7. 「2014-5-31」Z-Stack - Modification of Zigbee Device Object for better network access management

    写一份赏心悦目的工程文档,是很困难的事情.若想写得完善,不仅得用对工具(use the right tools),注重文笔,还得投入大把时间,真心是一件难度颇高的事情.但,若是真写好了,也是善莫大焉: ...

  8. TI Zigbee Light Link 参考设计

    TI  Zigbee Light Link 参考设计 原文出处: http://processors.wiki.ti.com/index.php/Category:ZigBee_Light_Link ...

  9. ZigBee HA示例程序分析

    ZigBee协议栈中自带的HomeAutomation例程,虽然也是操作灯泡,但是,是通过ZCL来统一处理的,符合HA profile规范,互连互操作性较好.下面就简要分析以下ZCL的使用. 在任务数 ...

随机推荐

  1. 使用AutoMapper实现Dto和Model的自由转换

    AutoMapper是一个.NET的对象映射工具. 项目地址:https://github.com/AutoMapper/AutoMapper. 帮助文档:https://github.com/Aut ...

  2. 小白日记44:kali渗透测试之Web渗透-SqlMap自动注入(二)-sqlmap参数详解REQUEST

    Sqlmap自动注入(二) Request ################################################### #inurl:.php?id= 1. 数据段:--d ...

  3. 计算机网络中的TCP/UDP协议到底是怎么回事(一)

    TCP/IP五层网络结构模型 物理层:物理层建立在物理通信介质的基础上,作为系统和通信介质的接口,用来实现数据链路实体间透明的比特 (bit) 流传输.只有该层为真实物理通信,其它各层为虚拟通信 数据 ...

  4. UML 之 各种视图简介

    统一建模语言(Unified Modeling Language,UML)中各种视图并没有明显的概念区别. 在最上一层,视图被划分为三个视图域:结构,动态行为,模型管理. 结构主要描述了系统中的结构成 ...

  5. #技塑人生# windows2008无法远程— 注册表缺失键值导致高级防火墙服务异常

    windows2008无法远程— 注册表缺失键值导致高级防火墙服务异常 阿里云技术支持中心:章阿贵 一.远程无法访问(windows server 2008) 症状:无法远程但是系统内网络正常,防火墙 ...

  6. 【Android 界面效果19】Android中shape的使用

    Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结: 先看下面的代码:         <shape>      ...

  7. 《Cortex-M0权威指南》之Cortex-M0技术综述

    转载请注明来源:cuixiaolei的技术博客 Cortex-M0 处理器简介 1. Cortex-M0 处理器基于冯诺依曼架构(单总线接口),使用32位精简指令集(RISC),该指令集被称为Thum ...

  8. UVa Problem 10132 File Fragmentation (文件还原) 排列组合+暴力

    题目说每个相同文件(01串)都被撕裂成两部分,要求拼凑成原来的样子,如果有多种可能输出一种. 我标题写着排列组合,其实不是什么高深的数学题,只要把最长的那几个和最短的那几个凑一起,然后去用其他几个验证 ...

  9. Vmware出现报错The VMware Authorization Service is not running.之后无法上网解决

    今天一大早开VMware,启动ubuntu时出现了报错The VMware Authorization Service is not running,服务Authorization没有运行. 这之前一 ...

  10. vb.net机房收费系统之组合查询

    我个人一直认为,组合查询是机房收费系统的一个难点,尤其是用到三层之后,如果要为组合查询中的每一个查询建立一个显然是太麻烦了. 下面介绍一下我的方法,对大家起个参考作用. 我将该表中可输入的内容定义为一 ...