Zigbee协议栈ZStack构架

Zigbee协议栈ZStack构架协议栈版本信息:ZigBee2006\ZStack-1.4.3-1.2.11、ZStack协议栈构架  Zigbee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些应用层API,供用户调用。协议栈体系分层架构与协议栈代码文件夹对应表如下:   整个协议栈的构架,如图所示APP:应用层目录,这是用户创建各种不同工程的区域,在这个目录

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



协议栈版本信息: ZigBee2006\ZStack-1.4.3-1.2.1

1ZStack协议栈构架

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

Zigbee学习第四天-2——Zigbee协议栈ZStack构架
    整个协议栈的构架,如图所示

Zigbee学习第四天-2——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.4.2文件目录及说明如下:

   Zigbee学习第四天-2——Zigbee协议栈ZStack构架
   打开SmapleAPP项目工程

先看APP层:

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

HAL层目录:

Zigbee学习第四天-2——Zigbee协议栈ZStack构架 

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

MAC层目录:

Zigbee学习第四天-2——Zigbee协议栈ZStack构架
     MAC分为高层和低层两层,Include目录下包含了MAC层的参数配置文件及LIB库的函数接口文件。

Zigbee学习第四天-2——Zigbee协议栈ZStack构架
     其中Zmac.c是ZStack MAC层接口文件,Zmac_cb.c是ZMAC需要调用的网络层函数。

ZMain目录:

Zigbee学习第四天-2——Zigbee协议栈ZStack构架

 

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

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140321.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • LoadRunner教程07:回放测试脚本

    LoadRunner教程07:回放测试脚本1、设置runtimesetting,在vuser->runtimeseting下设置,如下图所示:2、实时观察回放的图像,在tools->generaloptions下设置,如下图所示:3、回放脚本,点击上面的运行按钮,可以回放脚本,有静态和动态运行(会标识出当前运行在哪一行代码)两种方式,在view-animatedrun中设置4、查看resu

  • php中的ceil和floo以及round函数「建议收藏」

    php中的ceil和floo以及round函数「建议收藏」php中的ceil和floo以及round函数

  • OnTouch关于performClick的Warning

    OnTouch关于performClick的WarningOnTouch关于performClick的Warning当你对一个控件(例如FloatingActionButton)使用setOnTouchListener()或者是对你的自定义控件重写onTouchEvent方法时会出现这个警告,警告内容全文如下IfaViewthatoverridesonTouchEventorusesanOnTouchListenerd…

  • 谷粒商城项目2——环境搭建、renren-generator逆向生成所有微服务基本CRUD代码[通俗易懂]

    谷粒商城项目2——环境搭建、renren-generator逆向生成所有微服务基本CRUD代码[通俗易懂]续接上文谷粒商城项目1——分布式基础概念、环境搭建_Kaisa..的博客-CSDN博客至此,环境搭建完成了,接下来就是分布式组件了目录二、环境搭建8.人人开源框架搭建(1).克隆项目初始环境(2).创建renren-fast后台管理系统数据库(3).配置renren-fast环境(4).前端环境搭建(5).测试登录9.renren-generator代码生成器(1).根据数据库逆向生成Bean、Mapper等(2).启动renren-generator(3).创建公共微服务模块导入逆向生成代码所需要的各种依

  • Hystrix:服务熔断

    Hystrix:服务熔断文章目录服务雪崩服务雪崩​多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“扇出”,如果扇出的链路上某个微服务的调用响应时间过长,或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”。​对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几十秒内饱和。比失败更糟糕的是,这些应用程序还可能导致服务之间的延迟增加,备份队列,线程和其他系统资源紧张,导致整个系统发生更多的级联故障,

    2022年10月21日
  • docker搭建kafka集群

    docker搭建kafka集群docker搭建kafka集群我在M1mbp上使用的以下镜像新建文件zk-kafka-docker-compose.ymlversion:”2″services:zookeeper:user:rootimage:docker.io/zookeeperports:-“12181:2181″environment:-ALLOW_ANONYMOUS_LOGIN=yesvolumes:-zoo

发表回复

您的电子邮箱地址不会被公开。

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