Zigbee协议栈ZStack构架(文件夹和协议栈各层的对应关系)
2014-05-21 17:14
295 查看
协议栈版本信息: ZigBee2006\ZStack-1.4.3-1.2.1
1、ZStack协议栈构架
Zigbee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些应用层API,供用户调用。协议栈体系分层架构与协议栈代码文件夹对应表如下:
![](http://s1.sinaimg.cn/mw690/6184e67bxcff08def91a0&690)
整个协议栈的构架,如图所示
![](http://s15.sinaimg.cn/mw690/6184e67bx7b31a81cf7ae&690)
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 自动生成的。
2、ZigBee2006协议栈源码库结构分析
了解了ZigBee2006协议栈整个构架后,再来看看协议栈源码库结构是什么样的,各层的具体文件是什么,建立不同的项目、添加自己的应用层任务及处理函数需要修改什么文件。
ZigBee2006协议栈ZStack-1.4.2文件目录及说明如下:
![](http://s1.sinaimg.cn/mw690/6184e67bxcff09286dfa0&690)
打开SmapleAPP项目工程
先看APP层:
![](http://s7.sinaimg.cn/mw690/6184e67bxcff09b045656&690)
从上图可以看出,对于不同的项目,大部分代码都是相同的,只是在用户应用层,添加了不同的任务及事件处理函数。因此一般情况下,用户只需额外添加上图中的三个文件(主文件、头文件、操作系统接口文件)就可以完成一个项目,然后编写自己的任务处理函数就可以了。
HAL层目录:
![](http://s15.sinaimg.cn/mw690/6184e67bx7b31a935cbde&690)
Common目录下的文件是公用文件,基本上与硬件无关,hal_assert.c文件是断言文件,用于调试,hal_drivers.c是驱动文件,抽象出与硬件无关的驱动函数,包含有与硬件相关的配置和驱动及操作函数。Include目录下主要包含各个硬件模块的头文件,Target目录下的文件是跟硬件平台相关的,可以看到有两个平台,其中我们正在用的是CC2430EB平台。
MAC层目录:
![](http://s13.sinaimg.cn/mw690/6184e67bxcff09d1a595c&690)
MAC分为高层和低层两层,Include目录下包含了MAC层的参数配置文件及LIB库的函数接口文件。
![](http://s10.sinaimg.cn/mw690/6184e67bxcff09e361ab9&690)
其中Zmac.c是ZStack MAC层接口文件,Zmac_cb.c是ZMAC需要调用的网络层函数。
ZMain目录:
![](http://s8.sinaimg.cn/mw690/6184e67bxcff09f36a887&690)
Z-Stack 由main()函数开始执行,main()在Zmain.c中,该函数共做了2件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统,OnBoard.c中包含了对硬件开发平台各类外设进行控制的接口函数。
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:输出文件目录,这个EW8051 IDE 自动生成的。
2、ZigBee2006协议栈源码库结构分析
了解了ZigBee2006协议栈整个构架后,再来看看协议栈源码库结构是什么样的,各层的具体文件是什么,建立不同的项目、添加自己的应用层任务及处理函数需要修改什么文件。
ZigBee2006协议栈ZStack-1.4.2文件目录及说明如下:
打开SmapleAPP项目工程
先看APP层:
从上图可以看出,对于不同的项目,大部分代码都是相同的,只是在用户应用层,添加了不同的任务及事件处理函数。因此一般情况下,用户只需额外添加上图中的三个文件(主文件、头文件、操作系统接口文件)就可以完成一个项目,然后编写自己的任务处理函数就可以了。
HAL层目录:
Common目录下的文件是公用文件,基本上与硬件无关,hal_assert.c文件是断言文件,用于调试,hal_drivers.c是驱动文件,抽象出与硬件无关的驱动函数,包含有与硬件相关的配置和驱动及操作函数。Include目录下主要包含各个硬件模块的头文件,Target目录下的文件是跟硬件平台相关的,可以看到有两个平台,其中我们正在用的是CC2430EB平台。
MAC层目录:
MAC分为高层和低层两层,Include目录下包含了MAC层的参数配置文件及LIB库的函数接口文件。
其中Zmac.c是ZStack MAC层接口文件,Zmac_cb.c是ZMAC需要调用的网络层函数。
ZMain目录:
Z-Stack 由main()函数开始执行,main()在Zmain.c中,该函数共做了2件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统,OnBoard.c中包含了对硬件开发平台各类外设进行控制的接口函数。
相关文章推荐
- jeecms模板和资源文件夹对应关系
- VS2010新建空白解决方案后,新建解决方案文件夹与实体文件夹对应关系
- 自适应屏幕资源drawable和layout文件夹与对应手机分辨率之间的关系
- sys文件系统中文件、文件夹与kobject、kset、kobj_type的对应关系
- Zigbee协议栈ZStack构架
- opencv文件夹中vc和VS对应关系
- Android drawable文件夹 手机分辨率 dp px 对应 切图 关系
- C#中调用Windows API时的数据类型对应关系(转)
- Android Studio gradle插件版本和gradle版本对应关系
- Oracle数据类型与.NET中的对应关系
- jdbcType与javaType的对应关系
- Mysql java connector 与MySQL版本对应关系
- 坐标轴中某点、旋转角、对应点的关系
- Mybatis中javaType和jdbcType对应关系
- 透明度中百分比与十六进制的对应关系
- Win32 API与C#数据结构类型对应关系表
- 移动开发上有关终端上GPRS 连接和 PDP 上下文的对应关系的讨论
- Android 代码名字-API级别-版本号-NDK版本对应关系
- ZigBee 协议栈的调度顺序代码分析
- GSM模块信号强度CSQ与RSSI的对应关系,新增android的ASU值