学习协议栈之前我们先讲解一些基本的概念。
分为三块:协调器 路由器 终端设备
1. ZigBee 协议栈简介
什么是 ZigBee 协议栈呢?它和 ZigBee 协议有什么关系呢?协议是一系列的通信标准,通信
双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通
俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个
协议的,进而实现无线数据收发。 图1展示了 ZigBee 无线网络协议层的架构图。ZigBee 的
协议分为两部分, IEEE 802.15.4 定义了 PHY (物理层)和 MAC (介质访问层)技术规范; ZigBee
联盟定义了 NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。ZigBee
协议栈就是将各个层定义的协议都集合在一直,以函数的形式实现,并给用户提供 API(应用
层),用户可以直接调用。
2. 如何使用 ZigBee 协议栈
协议栈是协议的实现,可以理解为代码,函数库,供上层应用调用,协议较底下的层与
应用是相互独立的。商业化的协议栈就是给你写好了底层的代码,符合协议标准,提供给你
一个功能模块给你调用。你需要关心的就是你的应用逻辑,数据从哪里到哪里,怎么存储,
处理;还有系统里的设备之间的通信顺序什么的,当你的应用需要数据通信时,调用组网函
数给你组建你想要的网络;当你想从一个设备发数据到另一个设备时,调用无线数据发送函
数;当然,接收端就调用接收函数;当你的设备没事干的时候,你就调用睡眠函数;要干活
的时候就调用唤醒函数。所以当你做具体应用时,不需要关心协议栈是怎么写的,里面的每
条代码是什么意思。除非你要做协议研究。每个厂商的协议栈有区别,也就是函数名称和参
数可能有区别,这个要看具体的例子、说明文档。
怎么使用 ZigBee 协议栈?举个例子,用户实现一个简单的无线数据通信时的一般步骤:
1、组网:调用协议栈的组网函数、加入网络函数,实现网络的建立与节点的加入。
2、发送:发送节点调用协议栈的无线数据发送函数,实现无线数据发送。
3、接收:接收节点调用协议栈的无线数据接收函数,实现无线数据接收。
ZigBee 协议栈的安装:
Components,顾名思义这个是放我们的库的文件夹,里面放了一些我们用到的ZDO,driver,
hal,zcl 等库的代码
Documents,这个不用说大家都知道是放 TI 的开发文档的,里面很多都是讲述协议栈的 API
的有空时可以看看
Projects,这个文件夹放的是 TI协议栈的例子程序,一个个例子程序都是以一个个project
的形式给我们的,学好这些例子程序里面的一两个,基本你能做事情了。
Tools,这个文件夹是放 TI 的例子程序的一些上位机之类的程序,作为工具使用。
好了,基本明白了基本架构之后,我们以一个简单的实验开始。先掌握一点必要的理论
再实验效果比较好
协议栈工程目录讲解:
App:应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容。
HAL:硬件层目录,包含有与硬件相关的配置和驱动及操作函数。
MAC:MAC 层目录,包含了MAC层的参数配置文件及其MAC的LIB库的函数接口文件。
MT:实现通过串口可控制各层,并与各层进行直接交互
NWK:网络层目录,包含网络层配置参数文件网络层库的函数接口文件及 APS层库的函数接口。
OSAL:协议栈的操作系统。
Profile: Application framework 应用框架层目录,包含AF 层处理函数文件。应用框架层是应用程序和 APS层的无线数据接口。
Security:安全层目录,包含安全层处理函数,比如加密函数等
Services:地址处理函数目录,包括地址模式的定义及地址处理函数。
Tools:工程配置目录,包括空间划分及 Z-Stack 相关配置信息。
ZDO:ZDO目录
ZMac:MAC层目录,包括 MAC 层参数配置及 MAC 层 LIB 库函数回调处理函数。
ZMain:主函数目录,包括入口函数及硬件配置文件。
Output:输出文件目录,由 IAR IDE 自动生成