APL层是最高层,由三部分组成:APS即应用支持层、ZDO及Application Framework框架。三者图如下所示:
其中APS提供NWK与APL层的接口,APS同样提供数据和管理两种服务,分别由APSDE及APSME完成。而应用框架则是用于Host Application Objects(AO)的环境,应用对象AO一般由生产商开发,用于定制不同的应用。单一设备中最多可以有240个AO。ZDO提供APS层与应用框架层间的接口,它也提供了Zigbee协调栈中所有应用可以使用的通用接口,比如通过ZDO可以配置节点成为协调器、路由器或者终端。
Application Framework
Zigbee支持利用Application Profiles来开发应用,每一个Profile由一个Profile ID来识别,只有供应商才能申请到一个16位的Profile ID。一个Profile结构如下:
ZDO
ZDO负责初始化APS,NWK及安全子层。类似于Application Profile,ZDO也有一个Profile,叫做Zigbee Device Profile。ZDP主要实现以下几个功能:
1. Device & Service Discovery;
2. Binding Management
3. Networking Management
ZDO包括两类对象:网络管理器和安全管理器。前者包括与网络相关的原语,如NLME。
ZDO提供的服务由数据包中的ClusterID来指定,该值可以查看Appendix B。
APS子层
该层数据格式如下:
而不同类型的APS,例如数据,命令及ACK格式如下,其中最重要的字段是Cluster Identifier:
下面以路由器节点代码为例,启动后会Sniffer到以下数据包:
从APS Cluster ID=0x0006可以看出,上述包是一个用于Match_Desc_req。