zigbee协议及开发(1)- 基础知识

2024-06-06 02:58

本文主要是介绍zigbee协议及开发(1)- 基础知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

说明:本系列文章中,部分内容来自于网络及图书,版权归原作者所有,其中加入我个人学习的体会及理解,算是个人的学习笔记。

 

准备学习这个方面内容原因是因为申请了一个学生的课题,本来是由学生做的,但是诸多原因,最后只得由我亲自操刀,既然做就做好吧。本系列相关实验用到的硬件是Feibit公司基于TICC2530开发系列节点。

 

申请的课题是关于无线传感器网络室内环境监测的,原本打算购买一套(中科院宁波)深联科技的GAINS和GAINZ套件或者是XcrossBow的套件,不过一查价格高得吓人,而经费项目少得可怜,只好作罢。最后,经过搜索,得知基于Zigbee技术的低功耗节点也是可选途径之一。

 

Zigbee是一个技术联盟,其目的是支持近距个人通信,即PAN(Personal Area Network)。一个简单的比方,现在大家可能都有手提电脑、手机、还有MP3之类的,这些设备之间通信可以看成一个PAN。从学术角度,IEEE802.15.4即是描述个人通信的规范,而遵从Zigbee的产品是完全与IEEE802.15.4兼容的。当然,日常提得比较多的是蓝牙和WIFI,也是一种近距通信技术,但是Zigbee强在其低功耗、低数据率,实际上Zigbee理论最高速率不超过250kb/s。下面这个图说明了问题:

 

IEEE802.15.4规范只涉及到网络的低两层,即PHY和MAC层。但是一般的Zigbee协议栈都实现了一整套完整的协议,即包括网络层(NWK)及应用层(APS,APL)。

 

以TI的Zigbee协议ZStack为例,其实现涉及到硬件层(HAL),MAC层,网络层(NWK)及应用层(APL),这几个在用IAR WORKBench打开Zigbee的工程后都可以找得到相关的目录,如:

其中,有一个目录OSAL,全称OS Abstract Layer,这个是Z-Stack1.4.3及以后的版本中引入了一个类OS的概念,即把应用层和堆栈层进行了分离,但是这个操作系统并不是时实的操作系统(如UCos,RTOS)。OSAL与Zstack关系好比Windows与TCP/IP关系协议栈只负责网络数据传输相关工作(蓝牙也是用这个协议栈的,Wifi是用RTOS实时协议栈),OSAL完成以下相关工作:

一般来说提供如下几个功能:
·                     任务的注册、初始化、开始(即注册ID号,注册端点,硬件初始化,任务就开始)
·                     任务间的消息交换(通过任务和事件-来传递消息)
·                     任务同步--(目前不知道在哪里)
·                     中断处理--—(如按键中断,串口DMA中断)
·                     时间管理--(time-update)
·                     内存分配--(NV这个貌似很重要的了,不知所云)。

 

参考:http://www.zdh1909.com/html/RIFI/6491.html

参考:《Zigbee Wireless Networks and Transceivers》Shahin Farahani

参考:www.feibit.com/bbs

这篇关于zigbee协议及开发(1)- 基础知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034904

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、