【Zigbee】ZigBee中Profile(规范),Cluster(簇)的认识

来源:互联网 发布:ipad无法加入网络 编辑:程序博客网 时间:2024/05/01 22:19

我对profile, cluster的一点认识

参考资料

1.TI官方资料

2.飞比论坛http://bbs.feibit.com/thread-2618-1-2.html

3.ZigBee无线传感器网络设计与实现.王小强等著.化学工业出版社

引言

在zigbee规范中,引入了profile, cluster的概念。profile和cluster的翻译没有统一的标准,这里暂时定为规范和簇。个人认为,ZigBee引入profile,cluster的概念,是为了统一应用,使不同厂家、不同设计者的产品可以兼容使用。

Profile说明

ZigBee网络进行数据传输都是建立在应用规范的基础上。规范profile可以理解成一套规定,每个应用应该是对应一个profile ID,每个profile ID可以应用于某项具体的应用,例如自动家居、楼宇自动化等。。

ZigBee联盟已经规定了profile的使用,整个应用规范可以分为公共规范(Public profile)和制造商规范(Manufacturer Specific profile)。公共规范的ID号为:0x0000-0x7FFF,制造商的为:0xBF00-0xFFFF。

其中公共规范已经规定了常见的各种应用,以下是摘录的部分公共规范。

Profile IDProfile Name应用名称(翻译)0101Industial Plant Monitoring(IPM)工业用植物检测0104Home Automation(HA)家居自动化0105Commercial Building Automation(CBA)商业楼宇自动化0107Telecom Applications(TA)电信应用0108Personal Home&hospital Care(PHHC)个人家庭医院护理0109Advanced Metering Initiative(AMI)先进的计量倡议??
比如home automation public profile就规定了智能家居都要做什么,当然用户也可以规定一个自己的profile。

     协议栈本身也有一个profile,就是Zigbee Device Profile,也就是ZDP了,这里规范了一个zigbee节点都要具备那些功能,比如路由能力啊,网络发现能力啊,各个协议层都要做什么啊。——摘抄

Cluster说明

ZigBee在一个profile的规范下,又提出了cluster的概念。

综合profile和cluster,可以这样理解,一个具体的应用(例如智能家居系统)有大量细节上的小规范(例如电灯的控制:开灯、关灯等),这个规范即成为簇(cluster)。

举例说明,home automation 的public profile已经规定了调光器应该有哪些cluster,如:Color Control Cluster,Ballast Configuration Cluster 等。不同的cluster有不同的命令:

/*****************************************//* Color Control Cluster Commands   *//*****************************************/#define COMMAND_LIGHTING_MOVE_TO_HUE     0x00#define COMMAND_LIGHTING_MOVE_HUE              0x01#define COMMAND_LIGHTING_STEP_HUE                  0x02#define COMMAND_LIGHTING_MOVE_TO_SATURATION         0x03#define COMMAND_LIGHTING_MOVE_SATURATION          0x04#define COMMAND_LIGHTING_STEP_SATURATION            0x05#define COMMAND_LIGHTING_MOVE_TO_HUE_AND_SATURATION   0x06#define COMMAND_LIGHTING_MOVE_TO_COLOR               0x07#define COMMAND_LIGHTING_MOVE_COLOR                  0x08#define COMMAND_LIGHTING_STEP_COLOR                  0x09#define COMMAND_LIGHTING_MOVE_TO_COLOR_TEMPERATURE      0x0a

除了命令之外,每一个cluster还会定义一些属性,比如color control cluster有一下属性:

#define ATTRID_LIGHTING_COLOR_CONTROL_CURRENT_HUE    0x0000#define ATTRID_LIGHTING_COLOR_CONTROL_CURRENT_SATURATION   0x0001#define ATTRID_LIGHTING_COLOR_CONTROL_REMAINING_TIME           0x0002#define ATTRID_LIGHTING_COLOR_CONTROL_CURRENT_X                0x0003#define ATTRID_LIGHTING_COLOR_CONTROL_CURRENT_Y         0x0004#define ATTRID_LIGHTING_COLOR_CONTROL_DRIFT_COMPENSATION    0x0005#define ATTRID_LIGHTING_COLOR_CONTROL_COMPENSATION_TEXT     0x0006#define ATTRID_LIGHTING_COLOR_CONTROL_COLOR_TEMPERATURE    0x0007#define ATTRID_LIGHTING_COLOR_CONTROL_COLOR_MODE        0x0008

而Ballast Configuration Cluster 则有一下属性:

// Ballast Information attribute set#define ATTRID_LIGHTING_BALLAST_CONFIG_PHYSICAL_MIN_LEVEL 0x0000#define ATTRID_LIGHTING_BALLAST_CONFIG_PHYSICAL_MAX_LEVEL 0x0001#define ATTRID_LIGHTING_BALLAST_BALLAST_STATUS             0x0002

这些属性反映了这个cluster下设备的状态,可以通过读写这些属性来改变其值。
总结说来,Profile规范了应该包括哪些cluster,一个cluster会有一个ID,在一个cluster下又会有很多command,也会有很多attibute,在一个cluster下面command 和attribute的ID要唯一,不同的cluster下可以重复,不同的profile下clusterID也可以重复。

ZCL的使用

       ——该段是直接摘抄
       假设我们要控制一个LED,有一个远程节点(发命令控制led ),一个本地节点(接受命令并真正的让led 亮起来),那么如果引入ZCL的概念,你可以设置这个操作led 的事情是一个cluster,其下包含三个命令,一个open,一个close,一个read attribute,灯还有一个attribute,那就是当前的status,远程节点可以用ZCL的函数发open和close命令,也可以随时发一个read attibute命令读取本地节点led 的状态。这么做的好处是不需要再自己设计一个规定(比如:一个数据包的第几个字节表示什么。。。),而是直接调用ZCL即可实现,这对于command和attribute数量很少的应用不见得有多大好处,但是当command和attribute数量很多的时候,引入ZCL会让事情变得简单。
再延伸一点儿,zigbee联盟在协议栈之外又增加了一部分操作cluster的函数,那就是zigbee cluster library,(ZCL),这里边已经以源代码的形式提供了操作联盟规范的那些public profile下的函数,主要功能包括一些command的transmit,response,indicate以及confirm等,还有读写attribute的一些操作函数。所以在理解了ZCL的工作机制基础上,通过调用ZCL的函数实际上会让应用程序设计变得简单(但是学习ZCL倒是很麻烦)。





















	
				
		
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 虫子进皮肤里了怎么办 生完孩子肚子越来越大怎么办 怀孕8个月肚子小怎么办 孕晚期胎儿不长怎么办 肚子上肉特别多怎么办 奶堵了有硬块怎么办 便秘5天肚子胀怎么办 上火大便拉不出来怎么办 大便拉不出来肚子痛怎么办 戒奶奶涨有硬块怎么办 忌奶的时候涨奶怎么办 娃儿隔奶,,奶涨怎么办 狗肚子很大很鼓怎么办 注册不了的二建怎么办 专升本没考过怎么办 警察乱拘留人该怎么办 玩英雄联盟太卡怎么办 一方离婚证丢了怎么办 遭遇呼死你软件怎么办 开车遇见碰瓷的怎么办 遇到碰瓷老人的怎么办 睿强遥控锁坏了怎么办 地暖分水器坏了怎么办 京东赠品无货怎么办 图书馆的书丢了怎么办 三次临牌用完了怎么办 m3u8文件只有10k怎么办 寿县到淮南高铁怎么办 冰箱停电肉臭了怎么办 新买冰箱有异味怎么办 海康用户被锁定怎么办 大华dss录像没了怎么办 燃气软管超过2米怎么办 中央空调进了水怎么办 车门被划了一道怎么办 镜前灯没有留线怎么办 永大电梯故障44怎么办 物业把电梯停了怎么办 捷信贷款还不起怎么办 c1驾驶证扣12分怎么办 打架被警察抓了怎么办