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

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优