ZigBee协议栈Zstack介绍
文中所讲述的协议栈是基于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介绍相关推荐
- Zigbee协议栈ZStack构架
协议栈版本信息: ZigBee2006\ZStack-1.4.3-1.2.1 1.ZStack协议栈构架 Zigbee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些 ...
- ZigBee TI ZStack CC2530 2.4 IAR软件版本
(配套源码.软件.开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 一.IAR IAR,全称IAR Systems.公司总部位于北欧的瑞典,在美国.日本.英国.德国.比利时.巴西和中 ...
- zigbee之Zstack协议栈使用
zigbee之Zstack协议栈使用 前言 基于zstack协议栈开发的步骤 一.OSAL操作系统 1.操作系统工作流程 2.OSAL初始化函数 3.系统启动函数 (1)任务 (2)事件 4.OSAL ...
- 揭开ZigBee 2006协议栈Z-Stack的”开源“面纱
我们都在说ZigBee 2006协议栈Z-Stack是开源的,但是这个协议栈到底是全部开源的,还是只是开源一部分,让我们来揭开它的"开源"面纱? Z-Stack是在2007 ...
- ZStack通信(Zigbee协议栈通信)
ZStack通信-Zigbee协议栈通信 一.注册端点 二.发送数据函数 三.接收数据 一.注册端点 应用都是建立在端点ZDO(Zigbee Device Object)之上的, 所以要实现通信首先要 ...
- ZigBee TI ZStack CC2530 3.18 串口01-发送
(配套源码.软件.开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 这一节,基于<ZigBee CC2530 Z-Stack 06 创建基于Z-Stack的全新工程>一节 ...
- ZigBee,ZStack
http://antkillerfarm.github.io/ ZigBee应用导读 1.设备类型 Zigbee组网设备分为三类: 1.Coordinator(图中黑色的节点).发起网络,并确定PAN ...
- ZIGBEE通讯-7.ZigBee协议栈简介
想要学习协议栈,必须先知道协议是什么.协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发,而协议栈是协议的具体实现形式,通俗的理解为用代码实现的函数库,以便于开发人员调用. ...
- ZigBee协议栈浅显解读(一)
目前ZigBee开发主要用的是TI的CC2530.CC2530内部集成看增强型的51所以对于只学过51的小白入门不成问题. 本篇文章我只会介绍ZigBee的协议栈. 我们打开ZigBee协议栈后可以加 ...
最新文章
- 如何使用create-react-app在本地设置HTTPS
- 什么是假设检验(hypothesis test)?什么是正态性检验(normality test)?
- c语言联合体作用,C语言 联合体(Unions)
- 刚刚开源的Python静态类型检查器:Pyright
- 与afreez一起学习DirectFB之:一个linux下的framebuffer例子的学问
- Spring之SpringMVC(四)
- SpringBootAdmin
- 具有搜索和自定义分页的React Bootstrap表
- Java后台开发常用工具集合
- Flash loader demo下载与使用之最小系统STM32C8T6使用USB转TTL串口下载
- 基于STM32WIFI远程监控电压电流表(二)电流检测电路
- javascript 代码技巧 (四) —— javascript获取坐标/滚动/宽高/距离
- STM32单片机bootloader扫盲
- android 禁止其他应用开机启动项,禁止各种APP开机后自动运行的方案
- 字节序: big-endian vs little-endian
- android6.0 cta认证,什么是CTA认证?CTA进网许可认证。
- “云适配”获1亿元B+轮融资,盯上了大企业的移动化需求
- 回顾过去,展望未来!
- 在Python中画炫酷的K线图
- 做自媒体18个月,倒欠38万,一个自媒体创作者的自述