Zigbee 协议栈

来源:互联网 发布:程序员入门教程百度云 编辑:程序博客网 时间:2024/06/05 03:41

介绍完ZigBee的物理特性,现在该转入逻辑层面,分析下协议栈的软件部分了。先看个协议栈的架构图吧:


ZigBee协议栈由一组子层构成,每层为其上层提供一组特定的服务:一个数据实体提供数据传输服务;一个管理实体提供全部其他服务。每个服务实体通过一个服务接入点(SAP)为其上层提供服务接口,并且每个SAP提供了一系列的基本服务指令来完成相应的功能。

       ZigBee设备在工作时,各种不同的任务在不同的层次上执行,通过层的服务,完成所要执行的任务。每层的服务主要完成2种功能:一种功能是根据他的下层服务要求,为上层提供相应的服务;另一种功能是根据上层的服务要求,对他的下层提供相应的服务。各层服务通过服务原语来实现。

    如上图所示,ZigBee协议栈的体系结构包括ZigBee应用层,ZigBee网络层,IEEE802.15.4 MAC层和IEEE802.15.4 PHY层。它虽然是基于标准的7层开放式系统互联(OSI)模型,但仅对那些设计ZigBee层予以定义。IEEE802.15.4 2003标准定义了最下面的两层:物理层(PHY)和介质接入控制子层(MAC)。ZigBee联盟提供了网络层和应用层(APL)框架的设计。其中应用层的框架包括了应用支持子层(APS),ZigBee设备对象(ZDO)和由制造商制定的应用对象。

    接下来,再看看实际的软件协议栈都包含什么内容,有个直观的认识吧:

    软件协议栈采用了Z-Stack,TI提供的符合ZigBee规范(由ZigBee联盟制定)的免费协议栈,完全可以运行在GAINST CC2430节点上,利用Z-Stack,用户能够简单快速的开发出适合自己的ZigBee应用。

协议栈程序结构如图:


App:应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议中一般是以操作系统的任务实现的。

HAL硬件层目录,包含有与硬件相关的配置和驱动及操作函数。

MACMAC层目录,包含了MAC层的参数配置文件及其MACLIB库的函数接口文件。

MT:实现通过串口可控制各层,并与各层进行直接交互

NWK:网络层目录,包含网络层配置参数文件网络层库的函数接口文件及APS层库的函数接口。

OSAL:协议栈的操作系统。

ProfileAFApplication framework应用框架)层目录,包含AFApplication framework应用框架)层处理函数文件。应用框架层是应用程序和APS层的无线数据接口。他包含了一个应用程序进行无线传输(通过APSNWK)时所使用的函数。该层也是输入数据复用的终端(the endpoint multiplexer for incoming data messages)。这里写的很罗嗦,而且我也确实还有些不清楚,我的理解就是AF层是个专门用来处理数据的输入输出的,每个任务要想发送数据需要通过调用AF层的发送函数来实现,而设备收到的数据也是通过AF层被各个任务读取,这一层里也规定了无线传输的各种数据格式和描述符,也就是结构体)

Security:安全层目录,包含安全层处理函数,比如加密函数等

Services:地址处理函数目录,包括地址模式的定义及地址处理函数。

Tools   工程配置目录,包括空间划分及Z-Stack相关配置信息。

              文件夹中包含文件:

              f8w2430.xcl   存储器配置,用于程序烧录

f8wConfig.cfg       通用的编译选项文件,例如指定在设备启动时要用到的频道和PANId值。

f8wCoord.cfg        协调者设备的编译选项

f8wEndev.cfg        终端节点的编译选项

f8wRouter.cfg       路由节点的编译选项

ZDOZDO目录

ZMacMAC层目录,包括MAC层参数配置及MACLIB库函数回调处理函数。

ZMain:主函数目录,包括入口函数及硬件配置文件。

Output:输出文件目录,由IAR IDE自动生成。

原创粉丝点击