ZigBee协议栈Zstack介绍

ZigBee协议栈Zstack介绍关于ZigBee协议栈的各个层的一些介绍

大家好,又见面了,我是你们的朋友全栈君。

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

1.ZSTACK协议栈的架构

ZigBee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些API,工用户调用。协议栈体系分层结构与协议栈代码文件夹对应表如下:

ZigBee协议栈Zstack介绍

整个协议栈的架构,如图所示:

ZigBee协议栈Zstack介绍

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文件目录及说明如下:

ZigBee协议栈Zstack介绍

打开SmapleAPP项目工程

先看APP层:

ZigBee协议栈Zstack介绍

从上图可以看出,对于不公的项目,大部分的代码都是相同的,只是在用户应用层,添加了不同的任务及事件处理函数。因此一般情况下,用户只需要额外添加上图中的三个文件(主文件、头文件、操作系统接口文件)就可以完成一个项目,然后编写自己的额任务处理函数就可以了。

HAL层目录:

ZigBee协议栈Zstack介绍

Common目录下的文件是公用文件,基本上与硬件无关,hal_assert.c文件是断言文件,用于调试,hal_drivers.c是驱动文件,抽象出于硬件无关的驱动函数,包含有与硬件相关的配置和驱动及操作函数。Include目录下主要包含各个硬件模块的头文件,Target目录下的文件是跟硬件平台相关的,可以看到有两个平台,其中我们正在用的是CC2430EB平台。

MAC层目录:

ZigBee协议栈Zstack介绍

MAC分为高层和低层,Include目录下包含了MAC层的参数配置文件及LIB库的函数接口文件。

ZigBee协议栈Zstack介绍

其中Zmac.c是ZStack MAC层接口文件,Zmac_cb.c是ZMAC需要调用的网络层函数。

ZMain目录:

ZigBee协议栈Zstack介绍

Z-Stack有main()函数开始执行,main()中Zmain.c中该函数共做了两件事:一是系统初始化,另外是开始执行轮训查询式操作系统,OnBoard.c中包含了对硬件开发平台各类外设进行控制的接口函数。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140238.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 5G核心网UPF是什么_3gpp 5g协议

    5G核心网UPF是什么_3gpp 5g协议目录文章目录目录UPF参考文档UPFUPF(…

    2022年8月3日
    9
  • 计算机网络常用端口号大全「建议收藏」

    计算机网络常用端口号大全「建议收藏」一、概述:计算机端口号总数:65535,一般用到的是1~65535,0一般不使用0-1023:系统端口,也叫公认端口,这些端口只有系统特许的进程才能使用; 1024~65535为用户端口:1024-5000:临时端口,一般的应用程序使用1024到4999来进行通讯; 5001-65535:服务器(非特权)端口,用来给用户自定义端口。二、常用端口号:以下均为默认端口号,即未…

    2025年8月24日
    3
  • json到底是什么_json是用来干嘛的

    json到底是什么_json是用来干嘛的>如果点进来的刚巧是个高手,那……你就当是过来做个鉴定的吧。很多从事数据分析工作的伙伴都是从“最简单”的神器—Excel开始入门的,对编程语言、计算机世界的很多工具都不甚了解。要做结构化的数据,就赶紧跑去自学sql,学习sqlserver或是mysql数据库。要做半结构化、非结构化的数据又得去学习诸如mongo数据库的东西。>天天听对面的程序员小哥说我给你个打包个j…

    2022年10月12日
    4
  • c语言delay函数的作用,delay函数 delay() c语言延迟函数

    c语言delay函数的作用,delay函数 delay() c语言延迟函数51单片机C语言中delay函数是怎么定义和使用的?很多时候我们看别人的故事哀其不幸恨其不争等到发现在自己身上好像突然就明白了别人的道理。voidDelay(unsignedinta){unsignedinti;while(a。=0){for(定义一个延时xms毫秒的延时函数voiddelay(unsignedintxms)//xms代表需要延时的毫秒数{u…

    2022年5月5日
    58
  • 详细设计的工具——PAD图[通俗易懂]

    详细设计的工具——PAD图[通俗易懂]目录一、PAD图的概念二、PAD图的基本符号三、PAD图的优点四、PAD图的应用一、PAD图的概念PAD图(ProblemAnalysisDiagram),由日本日立公司1973年发明以后,已得到一定程度的推广。它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。它既克服了传统的流程图不能清晰表现程序结构的缺点,又不像N-S图那样受到把全部程序约束在一个方框内的限制,这就是其优势所在。二、PAD图的基本符号(a)顺序;(b)选择;(c)C

    2022年8月13日
    5
  • 详述如何退出 Vim 编辑器

    详述如何退出 Vim 编辑器Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,其在Vi的基础上改进和增加了很多特性。怎么说呢?学习如何用Vim进行文本编辑应该算是程序员的必备技能之一啦!But,很多同学在使用Vim进行文本编辑的时候却不知道如何退出Vim编辑器,这就有些尴尬啦!因此,在本文中,详细列出如何Vim编辑器的方法,希望对大家有些帮助。首先,点击Esc键,Vim进入命令模式。然

    2022年6月7日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号