初识Zigbee协议栈及其安装

初识Zigbee协议栈及其安装1.什么是Zigbee协议栈?什么是ZigBee协议栈呢?它和ZigBee协议有什么关系呢?协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线数据收发。ZigBee的协议分为两部分,IEEE802.15.4定义了PHY(物理层)和MAC(介质访问层)技术规范;ZigBee联盟定义了NWK(网络层)、APS(

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

1. 什么是Zigbee协议栈 ?

什么是 ZigBee 协议栈呢?它和 ZigBee 协议有什么关系呢?协议是一系列的通信标准,通信双方 需要共同按照这一标准进行正常的数据发射和接收。协议 栈是协议的具体实现形式,通俗
点来理解就 是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线 数据收发。

ZigBee 的协议分为两部分,IEEE 802.15.4定义了 PHY(物理层)和 MAC(介质访问层)技术规范;ZigBee 联盟定义了 NW K(网络
层)、APS(应 用程序支持子层)、APL(应 用层)技术规范。ZigBee 协议栈就是将各个层定义的协议都集合在一直, 以函数的形式实现,并给用户提供 API(应用层),用户可以直接调用。
 

2. 如何使用 ZigBee 协议栈?
协议栈是协议的实现,可以理解为代码,函数库,供上层应 用调用,协议较底下的层与应用是相互独 立的。商业化的协议栈就是给你写好了底层的代码,符合协议标准,提供给你一个功能
模块 给你调用。你需要关心的就是你的应用逻辑,数 据从哪里到哪里,怎么存储,处理;还有系 统里的设 备之间的通信顺序什么的,当你的应用 需要数据通信时,调用组网函数给你组建你
想要的网络;当你 想从一个设备发数据到另一个设备时,调用无线数据发送函数;当然,接收端就调用接收函数;当你 的设备没事干的时候 ,你就调用睡眠函数;要干活的时候就调用唤醒函数。

所以当你做具体应用时, 不需要关心 协议栈是怎么写的,里面的每条代码是什么 意思。除非你要做协议研究。每个厂商的协议 栈有区别,也就是函数名称和参数可能有区别,这个要看具体的例子、说明文档。

3.ZigBee 协议栈的安装、编译与下载

首先去TI的官网http://www.ti.com下载我们要用的zstack协议栈的安装文件,就是一个.exe文件。 下载完成之后,解压得到.exe文件,进行安装,路径你可以选择默认,同样你也可以选择你想要安装的位置。

其实所谓的安装协议栈 只是把一些文件解压到你安装的目录下。

Components,顾名思义这个是放我们的库的文件夹,里面放了一些我们用到的 ZDO,driver,hal, zcl 等库的代码
Documents,是放 TI 的开发文档的,里面很多都是讲述协议栈的 API 的
Projects,这个文件夹放的是 TI 协议栈的例子程序,一个个例子程序都是以一个个 project 的 形式给我们的,学好这些例子程序里面的一两个,基本你能做事情了。
Tools,这个文件夹是放 TI 的例子程序的一些上位机之类的程序,作为工具使用。

Components文件夹:

hal是硬件层面上的一些driver等等。

mac,zmac是mac层的协议接口。

 mt中你要用到的API几乎都可以在这里找到例子。

osal这个就是TI的Zstack协议栈的操作系统,是事件驱动的。

stack是一些zdo和zcl的东西。

 

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

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

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


相关推荐

  • Vue高阶组件_高阶组件的承上启下

    Vue高阶组件_高阶组件的承上启下目录一、高阶组件概念二、目标三、思路四、准备五、实现六、难点Reference一、高阶组件概念何谓高阶组件?类比高阶函数的定义:将函数作为参数的函数就是高阶函数,那么,将组件作为参数的组件就是高阶组件。二、目标假如我们有一个组件,我们希望通过某个函数,去扩展它,得到一个新的组件,新的组件有完全的参数组件的行为,如果这点可以满足,那么其他扩展就可以针对性的…

    2022年10月25日
    0
  • kettle下载安装使用教程

    kettle下载安装使用教程Kettle简介Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行, 数据抽取高效稳定。Kettle中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两…

    2022年5月24日
    28
  • MD5加密详解_md5加密的方法

    MD5加密详解_md5加密的方法MD5加密详解 引言:我在百度百科上查找到了关于MD5的介绍,我从中摘要一些重要信息:MessageDigestAlgorithmMD5(中文名为信息摘要算法第五版)为计算机安全领域广泛使用

    2022年8月6日
    1
  • java setdaemon_Java Thread setDaemon()方法

    java setdaemon_Java Thread setDaemon()方法Thread 类的 setDaemon 方法用于将线程标记为守护程序线程或用户线程 它的生命依赖于用户线程 即当所有用户线程都消亡时 JVM 会自动终止该线程 必须在线程启动之前调用它 如果在声明线程后调用 setDaemon 方法 则此方法将抛出 IllegalThrea 语法 publicfinalv booleanon 参数 on 如

    2025年6月13日
    0
  • Spark部分流程说明

    Spark部分流程说明

    2021年8月10日
    53
  • 数据库锁概述[通俗易懂]

    数据库锁概述[通俗易懂]行锁和表锁主要是针对锁粒度划分的,一般分为行锁、表锁、库锁行锁:访问数据库的时候,锁定整个行数据,防止并发错误。表锁:访问数据库的时候,锁定整个表数据,防止并发错误。二者的区别:表锁:开销小,加锁快,不会出现死锁;锁定粒度大,发生锁冲突概率高,并发度最低。行锁:开销大,加锁慢,会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高。乐观锁和悲观锁乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有更新这个数据,可以使用版

    2022年6月18日
    43

发表回复

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

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