Zigbee学习(一)架构及入网


文章目录

  • Zigbee学习(一)架构及入网
  • 前言
  • 一、zigbee是什么?
    • 1.zigbee的特点
    • 2.zigbee的重要概念
  • 二、zigbee架构
    • 1.PHY物理层
      • 1.1 主要功能
      • 1.2 数据包
    • 2.MAC链路层
      • 2.1 信标网络
      • 2.2 MAC包结构
    • 3.Nwk网络层
    • 4.API应用层
  • 三、zigbee入网流程
  • 总结

前言

终于要开始学智能家居的zigbee了,边学习边总结,期待感兴趣的朋友们阅读指正 。
`注:本系列博客参考书是《ZigBee无线网络与收发器 [(美)法拉哈尼 著] 2013年版》


一、zigbee是什么?

1.zigbee的特点

IEEE805.15.4标准规定了PHY和MAC层的内容,属于无线个人局域网标准(PAN),zigbee标准规定了网络层和应用层的内容,根据芯片的不同协议会有差别。
    zigbee主要的优势是:低功耗、低成本、低速率、近距离、短时延、网络容量大。
    既然是智能家居应用,肯定有要和Wi-Fi、蓝牙做对比啦~在这边就简单对比两个指标
        1.低速率
        相比于蓝牙的1-3Mbps,Wi-Fi的1-11Mbps,zigbee只有最高250bps的速率,支持250kbit/s(2.4GHz)、40kbit/s(915MHz)和20kbit/s(868MHz)。低速率让它可以传更远。
        2.范围
        zigbee:10-100m,蓝牙:2-10m,Wi-Fi:30-100m
    zigbee设备在自组网内有3个不同的角色:普通设备、路由、协调器。
    普通设备只能收发消息;
    路由可以转发消息、允许子设备加入网络;
    协调器选择工作频段、建立网络、允许子设备加入网络。
    根据角色的不同,zigbee设备有两种类型:FFD全功能设备(可以成为任何角色),RFD精简功能设备(只能和FFD设备通信)

2.zigbee的重要概念

(1). attribute
    属性,表示一个物体可以执行的某个动作,比如开关有两种属性:开 和 关。
(2). cluster
    群集,表示属性的集合,一个群集有一个唯一ID,最多有65535个属性。比如某种情况下的开关状态和灯的状态是一个cluster,另一种情况下的开关状态和灯的状态是一个cluster。由应用层来调用ZCL(Zigbee Cluster Library)。
(3). endpoint
    端点,对应一个任务,是射频单元真正的数据目标。端点地址范围是0-255,其中0属于ZDO端点特有,255用于广播,可设置的是1-240,其余保留。
(4). node
    节点,是一个包含一组zigbee应用对象的容器,它们共享一个无线信道。举个例子,一个多路开关是一个node,路1,路2,路3分别是3个endpoint。
(5).profile
    规约,是面向应用的,用于解决一系列事务的公约,比如:加热公约。一个profile包含cluster和设备描述(device descriptions)。
    以上是大致需要知道的简介,接下来就看具体的zigbee协议架构来深入一些了解。

二、zigbee架构

这里将zigbee在架构上分为四层:应用层、网络层、链路层、物理层。每一个层都可以和相邻层通信,并且包含有数据服务和管理服务。以下就每一层的关注点作具体说明:

1.PHY物理层

PHY物理层的功能是激活射频、收发包,是离硬件最近的一层。

1.1 主要功能

1)zigbee的激活;
    2)信道评估:主要是避免冲突,有两种方式: 能量检测(ED),请求由MLME产生,由PLME执行。不解调信号,无法知道是IEEE802.15.4的包。载波检测CS:MLME请求PLME执行CCA,会解调信号。
    3)接收链路服务质量信息LQI:每收到一个包,PHY都会检测包并向MAC传一个连接质量LQI(至少应有8个等级)。
    4)zigbee信道接入方式;
    5)信道频率选择;通过信道页和信道号确定,每个信道由一个信道号确定。
    6)数据传输和接收。

1.2 数据包

2.MAC链路层

MAC链路层关注信标和超帧。

2.1 信标网络

信标网络具有确定时隙GTS来同步时间,两个信标帧之间的结构叫做超帧。
    一个超帧有三种周期类型:竞争访问周期CAP、无竞争周期CFP、非活动周期。
活动期包含CAP和CFP,分为16个相等的时隙。

  • 竞争访问周期CAP(MAC层命令帧所有传输必须在这期间传送),时隙0-10。
  • 无竞争周期CFP(可以确保每一个特定设备都有一个时隙,不允许使用CSMA-CA),时隙11-15。
  • 非活动周期(省电模式-协调器关闭收发电路)。

有两个重要配置需要关注:

  1. Beacon Order(BO)
    可选0~14,表示信标传输间隔,15为无信标网络-不使用超帧。
  2. Superframe Order(SO)
    表示超帧活动部分的长度。
    0 <= SO <= BO <= 14
    superframe order / beacon order越小,说明每一个设备的非活动期越长。

2.2 MAC包结构




3.Nwk网络层

Nwk网络层关注通信机制
    网络层限制了一个帧在网络中传输的距离,跳数最大为3,即消息最多只能被转发3次。
网络层在重传之前必须等待一个随机时间。
    通信机制分为:广播、多播、单播。

  • 广播:目标地址0xffff,广播PAN标识符0xffff。协调器和路由器都会维护广播事务表(BTT)写一个广播事务记录(BTR),包含广播帧序列号和源地址,BTR在一段时间内有效,失效后可以被覆盖。
  • 多播:每组通过16位多播组ID来识别。有两种模式:成员模式和非成员模式。
  • 单播:给某个设备发消息,可经多跳路由转发。

4.API应用层

API应用层包括:APS应用支持子层、ZDO设备对象、AF应用程序框架。
作用是调用profile实现具体应用(使用标准或自定义的profile)。

三、zigbee入网流程

  1. 子设备(以下假设为router)的应用层调用NLME-NETWORK-DISCOVERY.request原语,设定待扫描的信道和时间,网络层收到原语,要求MAC层执行扫描,在每个信道广播发Beacon Request。
  2. 潜在父设备(coordinator协调器)收到后,发beacon帧,包含自己的IEEE地址,以及允许/不允许入网的信息。
  3. 子设备router在网络层检查beacon帧协议ID是否是自己的ID,如果是,复制所有收到的beacon帧相关信息存入表,MAC层发送MLME-SCAN.confirm告知网络层,网络层发送NLME-NETWORK-DISCOVERY.confirm告知应用层。网络层调用NLME-JOIN.request原语在表中找到合适的父节点,找到后调用MLME-ASSOCIATE.request要求MAC层发送关联请求。
  4. 潜在父设备收到associate request后确认可连接或连接失败,通过MLME-ASSOCIATE.confirm回复给子设备。如果是可连接,再次也分配给子设备可用的16位地址。
  5. router收到包后设置自己的16位短地址,利用短地址和网络内设备通信。

总结

zigbee的架构和入网就说到这,若有错误欢迎留言指正。

Zigbee学习(一)架构及入网相关推荐

  1. Zigbee学习笔记

    作为一个硬件从业人员,虽然不是从事物理网行业的,但是多少得了解一些,以下是笔者最近学习Zigbee的笔记,包含了Zigbee基本知识,正确的学习方法. Zigbee无线传感网络 先搞清楚IEEE802 ...

  2. 何恺明团队新作!深度学习网络架构新视角:通过相关图表达理解神经网络

    标题&作者团队 导语:恺明大神出品,必属精品.Facebook的研究员从一个新奇的角度对神经网络的表示与设计进行探索,提出了一种新颖的相关图表示方式.它有助于对现有网络架构进行更深层次的分析与 ...

  3. 微博深度学习平台架构和实践

    深度学习平台介绍: 什么是深度学习框架? 深度学习框架是进行深度学习的工具.简单来说,一套深度学习框架就是一套积木,各个组件就是某个模型或算法:开发者通过简单设计和组装就能获得自己的一套方案.深度学习 ...

  4. java 学习写架构必会几大技术点

    java 学习写架构必会几大技术点 关于学习架构,必须会的几点技术  1. java反射技术  2. xml文件处理  3. properties属性文件处理  4. 线程安全机制  5. annoc ...

  5. 感悟:微博深度学习平台架构和实践

    TensorFlow.Caffe和MXNet是三大主流的深度学习开源框架:TensorFlow的优势是社区最活跃,开源算法和模型最丰富:Caffe则是经典的图形领域框架,使用简单,在科研领域占有重要地 ...

  6. 【论文解读】深度学习网络架构新视角:通过相关图表达理解神经网络(何恺明团队新作)...

    文章来源于极市平台,作者Happy 标题&作者团队 导语:恺明大神出品,必属精品.Facebook的研究员从一个新奇的角度对神经网络的表示与设计进行探索,提出了一种新颖的相关图表示方式.它有助 ...

  7. Sharepoint学习笔记—架构系列

     为便于查阅,这里整理并列出了我的Sharepoint学习笔记中涉及架构方面的有关文章,有些内容可能会在以后更新. Sharepoin学习笔记-架构系列--  Sharepoint的网页(Page), ...

  8. Sharepoin学习笔记—架构系列—Sharepoint服务(Services)与服务应用程序框架(Service Application Framework) 1

    Sharepoin学习笔记-架构系列-Sharepoint服务(Services)与服务应用程序框架(Service Application Framework) 1 Sharepoint服务是Sha ...

  9. ZigBee学习之10——MAC层API解读

    ZigBee学习之10--MAC层API解读 其实也算不上什么解读拉,基本上是把官方的文档翻译了一下.在Zigbee中,是分层结构 的,这样做有很多的好处,每一层只负责自己的东西,数据传输更加透明和有 ...

最新文章

  1. Unity3D 镜面反射
  2. 第一篇随笔,通常都是内容空洞的。
  3. Linux--DHCP
  4. ASP excel导出/导入Access数据库(代码+实例下载)
  5. [小程序]小程序框架的简单页面布局
  6. 002---tcp/ip五层详解
  7. Docker容器系列教程(三):jenkins环境搭建与插件安装
  8. 5Y叔的clusterProfiler-book阅读 Chapter 5 Gene Ontology Analysis
  9. 机器学习基础算法27-聚类实战
  10. 【图像处理基础】基于matlab GUI图像处理(反色+亮度+二值化+空间肤色检测)【含Matlab源码 1008期】
  11. Java Web——基于Servlet、JSP(无框架版)电影网站项目总结(一)
  12. 金山PDF转WOED 1.3.0.1007版本
  13. 蓝芯保护卡_蓝芯防毒卡无忧版
  14. OpenCV实现监控移动侦测
  15. d3.js学习笔记-10(布局:树状图、集群图捆、捆图)
  16. linux进入rescue,进入Linux rescue模式后有几种方法引导系统
  17. 黑客入侵自我保护手册
  18. 范数(机器学习中的使用)
  19. Grapher中如何保存图形模板,批量处理相同格式的文件
  20. 微博自定义来源怎么去掉android,手把手教大家如何修改微博来源

热门文章

  1. 源码阅读|怒肝了9道 HashMap经典面试题,需要的快速来取(不包邮哦)
  2. PyQt模拟微信聊天页面开发
  3. 姿态角速度和机体角速度,横摆角速度(Yaw Rate)估算
  4. 鼠标上下滚轮不灵敏的修复方法
  5. 【ORACLE】ORA-01653: unable to extend table XXXX by 128 in tablespace XXX
  6. 回顾《网易数据基础平台建设》
  7. https无法访问 宝塔_宝塔https访问未开启SSL站点跳转到已经开启SSL站点
  8. 使用matplotlib在图片上画框框
  9. 手机屏幕分辨率:物理分辨率和逻辑分辨率
  10. 《清单革命》对程序开发的一些启示