竭诚为您提供优质文档/双击可除
zigbee协议栈源码
篇一:zigbeez-stack协议栈构架
zstack基础
1、zstack协议栈构架
zigbee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些应用层api,供用户调用。协议栈体系分层架构与协议栈代码文件夹对应表如下:整个协议栈的构架,如图所示
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:输出文件目录,这个ew8051ide自动生成的。
2、zigbee20xx协议栈源码库结构分析
了解了zigbee20xx协议栈整个构架后,再来看看协议栈源码库结构是什么样的,各层的具体文件是什么,建立不同的项目、添加自己的应用层任务及处理函数需要修改什么文件。zigbee20xx协议栈zstack-1.4.2文件目录及说明如下:
打开smapleapp项目工程
先看app层:
从上图可以看出,对于不同的项目,大部分代码都是相同的,只是在用户应用层,添加了不同的任务及事件处理函数。因此一般情况下,用户只需额外添加上图中的三个文件(主文件、头文件、操作系统接口文件)就可以完成一个项目,然后编写自己的任务处理函数就可以了。层目录:common目录下的文件是公用文件,基本上与硬件无关,hal_assert.c文件是断言文件,用于调试,hal_drivers.c 是驱动文件,抽象出与硬件无关的驱动函数,包含有与硬件相关的配置和驱动及操作函数。include目录下主要包含各个硬件模块的头文件,target目录下的文件是跟硬件平台相关的,可以看到有两个平台,其中我们正在用的是cc2430eb 平台。mac层目录:
mac分为高层和低层两层,include目录下包含了mac
层的参数配置文件及lib库的函数接口文件。
其中
zmac.c是zstackmac层接口文件,zmac_cb.c是zmac
需要调用的网络层函数。zmain目录:
z-stack由main()函数开始执行,main()在zmain.c 中,该函数共做了2件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统,onboard.c中包含了对硬件开
发平台各类外设进行控制的接口函数。
篇二:zigbee协议栈各层分析
一phy:物理层通过射频固件和硬件提供mac层与物理无线信道之间的接口。
两个物理层:一868/915mhz频带:20kb/s40kb/s
二2.4ghz频带:250kb/s
三个频带被分为27个频率信道,868mhz支持0信道。915mzh支持10个信道2.4ghz支持16个信道。
二,mac:mac模块实现ieee802.15.4标准的mac层服务,包括信标帧的产生与同步、设备的关联与解除关联、实现csma/cd的介质访问方法等,使得在两个mac实体间建立一个可靠的通信链路。
它的核心是信道接入技术,mac层采用了csma/ca(带有冲突避免的载波侦听多路访问)的技术,简单来说,就是节点在发送数据之前先监听信道,如果信道空闲则可以发送数据,否则就要进行随机的退避,即延迟一段随机时间,然后再进行监听,通过这种信道接入技术,所有节点竞争共享同一个信道。
三,nwk:zigbee网络层提供安全管理,信息代理,路由管理,网络管理。其主要功能是路由,路由算法是它的核心。
四,应用层包括包括了aps、aF和zdo几部分,主要规
定了一些和应用相关的功能,包括端点(endpoint)的规定,还有绑定(binding)、服务发现和设备发现
aps:1.维护绑定表,即根据服务和需求同时匹配两个设备的功能。
2.绑定设备之间转发信息。
3.组地址定义,删除和过滤组地址信息
4.从64位ieee地址到16位网络地址的地址映射
5分割,重组和可靠的数据传输
zdo:1.定义网络中的设备的角色(协调器或终端设备)
2.发现网络上的设备,决定他们提供哪种应用服务
3.初始化、响应绑定请求
4.建立网络设备之间的一个安全关系。
五,zigbee设备
(1)协调器:负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道和一个网络id,随后启动整个网络。协调器的角色主要涉及网络的启动和配置。一旦这些都完成后,协调器的工作就像一个路由器。具有建立网络,串口通信能力,只能全速运行,不能工作在休眠方式。
(2)路由器:允许其他设备加入网络,多跳路由和协助它自己的终端设备的通讯。一般路由器希望是一直处于活动状态,因此它必须使用主电源供电。在协调器建立网络后,Router能维持这个网络。