文中所讲述的协议栈是基于ZigBee2006\Zstack-1.4.3-1.2.1

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.5.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中该函数共做了两件事:一是系统初始化,另外是开始执行轮训查询式操作系统,OnBoard.c中包含了对硬件开发平台各类外设进行控制的接口函数。

ZigBee协议栈Zstack介绍相关推荐

  1. Zigbee协议栈ZStack构架

     协议栈版本信息: ZigBee2006\ZStack-1.4.3-1.2.1 1.ZStack协议栈构架 Zigbee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些 ...

  2. ZigBee TI ZStack CC2530 2.4 IAR软件版本

    (配套源码.软件.开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 一.IAR IAR,全称IAR Systems.公司总部位于北欧的瑞典,在美国.日本.英国.德国.比利时.巴西和中 ...

  3. zigbee之Zstack协议栈使用

    zigbee之Zstack协议栈使用 前言 基于zstack协议栈开发的步骤 一.OSAL操作系统 1.操作系统工作流程 2.OSAL初始化函数 3.系统启动函数 (1)任务 (2)事件 4.OSAL ...

  4. 揭开ZigBee 2006协议栈Z-Stack的”开源“面纱

    我们都在说ZigBee 2006协议栈Z-Stack是开源的,但是这个协议栈到底是全部开源的,还是只是开源一部分,让我们来揭开它的"开源"面纱?     Z-Stack是在2007 ...

  5. ZStack通信(Zigbee协议栈通信)

    ZStack通信-Zigbee协议栈通信 一.注册端点 二.发送数据函数 三.接收数据 一.注册端点 应用都是建立在端点ZDO(Zigbee Device Object)之上的, 所以要实现通信首先要 ...

  6. ZigBee TI ZStack CC2530 3.18 串口01-发送

    (配套源码.软件.开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 这一节,基于<ZigBee CC2530 Z-Stack 06 创建基于Z-Stack的全新工程>一节 ...

  7. ZigBee,ZStack

    http://antkillerfarm.github.io/ ZigBee应用导读 1.设备类型 Zigbee组网设备分为三类: 1.Coordinator(图中黑色的节点).发起网络,并确定PAN ...

  8. ZIGBEE通讯-7.ZigBee协议栈简介

    想要学习协议栈,必须先知道协议是什么.协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发,而协议栈是协议的具体实现形式,通俗的理解为用代码实现的函数库,以便于开发人员调用. ...

  9. ZigBee协议栈浅显解读(一)

    目前ZigBee开发主要用的是TI的CC2530.CC2530内部集成看增强型的51所以对于只学过51的小白入门不成问题. 本篇文章我只会介绍ZigBee的协议栈. 我们打开ZigBee协议栈后可以加 ...

最新文章

  1. 如何使用create-react-app在本地设置HTTPS
  2. 什么是假设检验(hypothesis test)?什么是正态性检验(normality test)?
  3. c语言联合体作用,C语言 联合体(Unions)
  4. 刚刚开源的Python静态类型检查器:Pyright
  5. 与afreez一起学习DirectFB之:一个linux下的framebuffer例子的学问
  6. Spring之SpringMVC(四)
  7. SpringBootAdmin
  8. 具有搜索和自定义分页的React Bootstrap表
  9. Java后台开发常用工具集合
  10. Flash loader demo下载与使用之最小系统STM32C8T6使用USB转TTL串口下载
  11. 基于STM32WIFI远程监控电压电流表(二)电流检测电路
  12. javascript 代码技巧 (四) —— javascript获取坐标/滚动/宽高/距离
  13. STM32单片机bootloader扫盲
  14. android 禁止其他应用开机启动项,禁止各种APP开机后自动运行的方案
  15. 字节序: big-endian vs little-endian
  16. android6.0 cta认证,什么是CTA认证?CTA进网许可认证。
  17. “云适配”获1亿元B+轮融资,盯上了大企业的移动化需求
  18. 回顾过去,展望未来!
  19. 在Python中画炫酷的K线图
  20. 做自媒体18个月,倒欠38万,一个自媒体创作者的自述

热门文章

  1. 《趣谈网络协议》学习笔记 DAY03
  2. glibc mysql,mysql安装(glibc版本安装5.7.22)
  3. Opencv教程(Python)
  4. Vulkan shader编译
  5. easyui 复选框 赋值、禁用、取值
  6. VMware Workstation 和 Device/Credential Guard 不兼容
  7. matlab滤波器滤不掉,带通滤波器无法在matlab中过滤不需要的频率
  8. linux 蓝牙命令
  9. Stata数据处理:各种求和方式一览
  10. python解析pdf中文乱码_解析PDF文件以及解决编码问题