zigbee 学习

1

Zigbee的网络层是基于adhoc的图景(除去终端节点;而且可能存在暂时静态的路由)

2

Zigbee的应用层呢?有一些概念:端点,profile-cluster-cmd。感觉端点是和地址他们结合起来寻址的,profile-cluster-cmd是结合起来搞应用的。总的概念有endpoint,profile,cluster,command(感觉就不存在command这么一个东西(在标准协议文档中),只不过是网络上的一些对cluster的不标准的叫法),group,绑定,zdo,直接寻址和间接寻址。

【端点的实现】端点用链表来管理。用afregister()来实现。

下面找一些用来分清应用层的概念的事实。

Endpoint如何与cluster那些东西联系起来?

typedef struct

{

uint16srcIdx;  //源地址索引

uint8srcEP;  //源端点

uint8dstGroupMode;  //指定寻址模式

uint16dstIdx;  //目标地址索引或者分组号

uint8dstEP;  //目标端点

uint8numClusterIds;  //在簇标识符表中簇标识符的个数

uint16clusterIdList[MAX_BINDING_CLUSTER_IDS];  //簇标识符表

 }BindingEntry_t;

在绑定条目里面,有关于这个绑定的簇的标示符列表。即这个绑定条目是关联着这些簇的。绑定的形式化表达式(sidx,sep,didx,dep,cluster_1, cluster_2,……, cluster_n)。

绑定表在什么时候使用?

在使用间接寻址的时候。间接寻址在zbdatarequest()和af_datarequest()中都能够使用。在apsde-data-request()中更是能够使用。

绑定表是怎么建立的?

不管

为啥要有绑定表呢?

有了绑定表,在zbdatarequest()的时候,可以直接把地址置为间接寻址模式(就是说上层可以不关心地址),而直接发送要发送的cluster加上cluster的相应的数据。

Profile,cluster这两个概念有什么用意呢?

我暂时估计是要应用域不用管硬件实现域而提出的这样的概念。解释如下:在整个一个项目中,既有硬件节点的部署,也有在这些硬件节点上的逻辑。而且逻辑可能用的还不知一个(如整个家庭的灯光系统,整个家庭的温度系统,整个家庭的监控系统等多个分立的系统)。那么就可以把这些逻辑分割成为不同的profile,在根据逻辑的细化而产生cluster。应用程序在编写程序的时候可以不管采用了什么硬件,硬件是如何部署的,而是在profile中增删改查cluster的属性。它的具体实现是通过绑定表来实现的。而绑定表的建立(每一对节点要不要绑定每一个profile中的每一个cluster,由其他的什么服务发现之类的来管理,好像是zdo设备对象的发现api提供了这样的接口)。

Endpoint注册的时候规定了输入输出簇的列表。

 

网络层的数据服务不涉及端点(参数中没有端点信息),但是涉及到组(可以以组地址为目的地发送数据包)

感觉profile,cluster,attribute之间的关系好像如下图所示

应用层aps子层是基础,提供了数据和管理服务

l  网络层的管理服务原语如下(共13条):

在这13条原语中,并没有涉及到的原语。

l  应用层

n  Aps子层

u  数据实体

l  功能:应用层数据包的生成,绑定,组地址过滤,可靠传输,重复拒绝

l  Apsde-data原语是发送数据的原语,其参数有很多。对目标的寻址参数包括:目标地址模式,目标地址,目标endpoint,这些参数共同的决定了目标上的一个端点。该原语的参数还包含了源端点,源地址是网络层的事情,且是已知的。合法的目标地址模式有4种(01,2,3)。

n  0:间接寻址模式。Apsde查找绑定表,然后根据绑定表匹配的    一个或者多个条目构造apdu并传递给nlde实体发送。

n  1:使用组播模式,apsde构造apdu,带有组地址,然后发送给         网络层

n  2:16位的网络地址和endpoint号(感觉像是标准模式)

n  3:64位的ieee地址。需要在aps ib中找到对应的16位网络地址。

 

u  管理实体

l  功能:Aib管理,安全,组管理

n  Af层:

u  数据服务api:af_dataRequest()。需要给定目标的地址(和模式,来决定寻址方式吧)还要给定簇号

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值