Zigbee协议的体系结构
1、Zigbee协议体系结构
看了Zigbee的体系结构,联想到TCP/IP的体系结构,觉得似乎每个协议都是由OSI七层协议演化⽽来的,由图可以看出IEEE802.15.4定义了物理层和MAC层,⽽Zigbee联盟定义了⽹络层、应⽤层技术规范,每⼀层为其上层提供特定的服务:即由数据服务实体提供数据传输服务;管理实体提供所有的其他管理服务。每个服务实体通过相应的服务接⼊点(SAP)为其上层提供⼀个接⼝,每个服务接⼊点通过服务原语来完成所对应的功能。各层介绍如下,C+V很是⽅便,嘿嘿
物理层(PHY)
物理层定义了物理⽆线信道和MAC⼦层之间的接⼝,提供物理层数据服务和物理层管
理服务。物理层数据服务从⽆线物理信道上收发数据。物理管理服务维护⼀个由物理层相关数据组成的数据库。
tcpip路由协议物理层功能
1)ZigBee的激活;
2)当前信道的能量检测;
3)接收链路服务质量信息;
4)ZigBee信道接⼊⽅式;
5)信道频率选择;
6)数据传输和接收。
MAC层
MAC层负责处理所有的物理⽆线信道访问,并产⽣⽹络信号、同步信号;⽀持PAN连接和分离,提供两个对等MAC实体之间可靠的链路。_MAC层数据服务:保证MAC协议数据单元在物理层数据服务中正确收发。MAC层管理服务:维护⼀个存储MAC⼦层协议状态相关信息的数据库。
MAC层功能
1)⽹络协调器产⽣信标;
2)与信标同步;
3)⽀持PAN(个域⽹)链路的建⽴和断开;
4)为设备的安全性提供⽀持;
5)信道接⼊⽅式采⽤免冲突载波检测多址接⼊(CSMA-CA)机制;
6)处理和维护保护时隙(GTS)机制;
7)在两个对等的MAC实体之间提供⼀个可靠的通信链路。
⽹络层(NWK)
ZigBee协议栈的核⼼部分在⽹络层。⽹络层主要实现节点加⼊或离开⽹络、接收或抛弃其他节点、路由查及传送数据等功能,⽀持Cluster-Tree等多种路由算法,⽀持星形(Star)、树形(Cluster-Tree)、⽹格(Mesh)等多种拓扑结构。
⽹络层功能:
1)⽹络发现;
2)⽹络形成;
3)允许设备连接;
4)路由器初始化;
5)设备同⽹络连接;
6)直接将设备同⽹络连接;
7)断开⽹络连接;
8)重新复位设备;
9)接收机同步;
10)信息库维护。
应⽤层(APL)
ZigBee 应⽤层框架包括应⽤⽀持层(APS)、ZigBee 设备对象(ZDO)和制造商所定义的应⽤对象。应⽤⽀持层的功能包括:维持绑定表、在绑定的设备之间传送消息。所谓绑定就是基于两台设备的服务和需求将它们匹配地连接起来。
ZigBee 设备对象的功能包括:定义设备在⽹络中的⾓⾊(如ZigBee 协调器和终端设备),发起和响应绑定请求,在⽹络设备之间建⽴安全机制。ZigBee 设备对象还负责发现⽹络中的设备,并且决定向他们提供何种应⽤服务。ZigBee 应⽤层除了提供⼀些必要函数以及为⽹络层提供合适的服务接⼝外,⼀个重要的功能是应⽤者可在这层定义⾃⼰的应⽤对象。
应⽤程序框架(AF):
运⾏在ZigBee协议栈上的应⽤程序实际上就是⼚商⾃定义的应⽤对象,并且遵循规范(profile)运⾏在端点1~ 240上。在ZigBee应⽤中,提供2种标准服务类型:键值对(KVP)或报⽂(MSG)
设备对象(ZDO):
ZigBee
ZigBee设备对象(ZDO):
远程设备通过ZDO请求描述符信息,接收到这些请求时,ZDO会调⽤配置对象获取相应描述符值。另外,ZDO提供绑定服务。
ZigBee 节点类型三种
ZigBee 协调者---coord 为协调者节点
a) 每个ZigBee ⽹络必须有⼀个
b) 初始化⽹络信息.
ZigBee 路由器---router 为路由节点
a) 路由信息
ZigBee 终端节点---rfd 为终端节点
a) 没有路由功能–低价格
2、ZStack协议栈构架
APP:应⽤层⽬录,这是⽤户创建各种不同⼯程的区域,在这个⽬录中包含了应⽤层的内容和这个项⽬的主要内容,在协议栈⾥⾯⼀般是以操作系统的任务实现的。
HAL:硬件层⽬录,包含有与硬件相关的配置和驱动及操作函数。
MAC:MAC 层⽬录,包含了MAC 层的参数配置⽂件及其MAC 的LIB 库的函数接⼝⽂件。
MT: 监控调试层,主要⽤于调试⽬的,即实现通过串⼝调试各层,与各层进⾏直接交互。
NWK:⽹络层⽬录,含⽹络层配置参数⽂件及⽹络层库的函数接⼝⽂件,APS 层库的函数接⼝。
OSAL:协议栈的操作系统。
Profile:AF 层⽬录,包含AF 层处理函数⽂件。
Security:安全层⽬录,安全层处理函数接⼝⽂件,⽐如加密函数等。
Services:地址处理函数⽬录,包括着地址模式的定义及地址处理函数。
Tools:⼯程配置⽬录,包括空间划分及ZStack 相关配置信息。
ZDO:ZDO ⽬录。
ZMac: MAC 层⽬录,包括MAC 层参数配置及MAC 层LIB 库函数回调处理函数。
ZMain:主函数⽬录,包括⼊⼝函数main()及硬件配置⽂件。
Output:输出⽂件⽬录,这个EW8051 IDE ⾃动⽣成的。
3、ZigBee2006协议栈源码库结构分析
了解了ZigBee2006协议栈整个构架后,再来看看协议栈源码库结构是什么样的,各层的具体⽂件是什么,建⽴不同的项⽬、添加⾃⼰的应⽤层任务及处理函数需要修改什么⽂件。
ZigBee2006协议栈ZStack-1.4.2⽂件⽬录及说明如下:
先看APP层:
从上图可以看出,对于不同的项⽬,⼤部分代码都是相同的,只是在⽤户应⽤层,添加了不同的任务及事件处理函数。因此⼀般情况下,⽤户只需额外添加上图中的三个⽂件(主⽂件、头⽂件、操作系统接⼝⽂件)就可以完成⼀个项⽬,然后编写⾃⼰的任务处理函数就可以了。
层⽬录:
Common⽬录下的⽂件是公⽤⽂件,基本上与硬件⽆关,hal_assert.c⽂件是断⾔⽂件,⽤于调试,hal_drivers.c是驱动⽂件,抽 象出与硬件⽆关的驱动函数,包含有与硬件相关的配置和驱动及操作函数。Include⽬录下主要包含各个硬件模块的头⽂件,Target⽬录下的⽂件是跟 硬件平台相关的,可以看到有两个平台,其中我们正在⽤的是CC2430EB平台。
层⽬录:
MAC层⽬录:
MAC
MAC分为⾼层和低层两层,Include⽬录下包含了MAC层的参数配置⽂件及LIB库的函数接⼝⽂件。
Z-Stack 由main()函数开始执⾏,main()在Zmain.c中,该函数共做了2件事:⼀是系统初始化,另外⼀件是开始执⾏轮转查询式操作系统,OnBoard.c中包含了对硬件开发平台各类外设进⾏控制的接⼝函数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论