Zigbee基础理论知识总结

Zigbee基础理论知识总结

  • 前言
  • 章节
  • Zigbee概述
    • 概念
    • 特点
    • 芯片
    • 协议栈
    • 开发环境
  • Zigbee技术原理
    • 网络结构
    • 网络体系
      • 拓扑结构
    • 协议架构
      • 物理层
        • 工作频段分配
        • 信道分配
        • 物理层服务规范
        • 数据的发送与接受
        • 物理能量信道的检测
        • 射频收发器的激活与关闭
        • 空闲信道评估(CCA)
        • 链路质量指示
        • 属性参数的获取与设置
      • MAC层
        • 功能
        • 服务规范
        • PAN的建立和维护
        • 信标帧
        • ==帧结构===
          • 一般结构
        • 特定结构
      • 网络层
        • 功能
        • 帧结构
      • 应用层
        • 构成
          • 节点地址和端点号
          • 间接通信和直接通信
        • 应用支持子层
        • 应用框架
        • 设备对象
          • Zigbee协调器
          • Zigbee路由器
          • Zigbee终端设备

前言

此文简要重点而写,中间会加入一些自己的理解。 相关基础开发应用可看下专栏其他文章,后续也会更新协议栈开发相关文章,本文将基础原理进行总结归纳。

章节

  • Zigbee概述
  • zigbee技术原理
  • zigbee硬件设计
  • CC2530基础开发
  • 无线射频与MAC层
  • Zstack协议栈
  • Zstack应用开发

Zigbee概述

章节重点: 概念、特点、常见芯片、协议栈、开发环境

概念

一种近距离、低复杂度、低功耗、低成本的双向无线通信技术。

适用场景:距离短、功耗低且传输速率不高、周期性数据、间歇性数据、低反应数据

特点

  1. 低功耗
  2. 低成本
  3. 大容量(既可以适用64位IEEE地址又可以用短地址,在一个单独的Zigbee网络可以荣男65536个设备)
  4. 可靠(CMSA/CA,RCC,安全模式)
  5. 延时短
  6. 灵活的网络拓扑结构(星型、树型、网状型;单跳、多跳)

芯片

CC2530

  • CPU和内存
  • 时钟和电源管理
  • 外设
  • 无线设备

协议栈

Zstack(版开源 TI公司 内嵌OSAL操作系统)

开发环境

  • IAR
  • Zigbee Sniffer (Zigbee嗅探器),用来分析Zigbee各层帧结构的程序,需要搭配嗅探器设备。

Zigbee技术原理

章节重点: 网络结构、网络体系、协议架构、IEEE802.15.4通信层、MAC层和网络层帧结构、网络层服务规范、应用层规范

网络结构

  • 网络协调器,整个网络的中心,建立、维持和管理网络、分配网络地址等,等同网络“大脑”。
  • 网络路由器,负责路由发现、消息传输、允许其它节点通过它接入网络。
  • 终端节点。通过上述其一进入网络,负责数据采集或控制功能

网络体系

分为4层,自上而下为:

【网络层(NWK)和应用层】Zibee联盟定义
【物理层、媒体访问控制层(MAC)】合称IEEE802.15.4通信层

拓扑结构

  • 星型,END只和协调器之间进行通信。
  • 树型,设备只能与自己的父节点或者字节点通信。
  • 网状型,在树型的基础上,允许网络中所有具有路由功能的节点相互通信。

协议架构

Zigbee基础理论知识总结_第1张图片

物理层

主要功能: 工作频段的分配,信道的分配,为MAC层服务提供数据服务和管理服务

工作频段分配

三个工作频段

  • 2.4GHz,能够达到250kb/s的传输速率,一共有16个信道。
  • 915MHz,传输速率为40kb/s,10个信道。
  • 868MHz,传输速率20kb/s,1个信道。

信道分配

27个信道,编号k为0~26。27个信道的中心频率和对应的信道编号定义如下:

Zigbee基础理论知识总结_第2张图片

物理层服务规范

实现数据链路实体间透明地传输各种数据比特流。提供的主要服务为:物理层连接的建立、维持与释放,物理服务数据单元的传输,物理层管理,数据编码。


物理层管理服务访问接口(Physical Layer Management Entity,简称PLME-SAP),PLME-SAP除了负责在物理层和MAC层之间传输管理服务之外,还负责维护物理层PAN信息库(PHY PIB)。
物理层数据服务访问接口(Physical Data SAP,简称PD-SAP),PD-SAP负责为物理层和MAC层之间提供数据服务。

Zigbee基础理论知识总结_第3张图片

数据的发送与接受

通过PD-SAP(数据服务) 提供的PD-DATA原语完成的,它可实现两个MAC子层协议数据单元的传输。

物理能量信道的检测

在构建新的网络前,需要扫描所有信道,为网络选择一个空闲的信道,通过物理信道能量检测来实现。
一个信道被别的网络占用,在信道能量上的值是不一样的。

  • 能量检测请由MAC子层产生。
  • 能量检测确认由物理层产生。

射频收发器的激活与关闭

低功耗,不需要是关闭底层射频收发器。

空闲信道评估(CCA)

802.1.4标准的MAC子层采用CSMA/CA机制访问信道,前提要探测当前物理信道是否空闲。物理层提供CCA检测功能。

链路质量指示

有时需要根据链路质量选择路由(信号的好坏),物理层可顺带返回当前LQI值(信号质量)。LQI值可以用信号接受强度指示器(RSSI)来表示。

属性参数的获取与设置

每一层协议都有相应的PAN(信息库),里面存放属性参数。

MAC层

功能

  • 采用CSMA/CA机制来访问信道
  • PAN(个域网)的建立和维护。
  • 支持PAN网络的关联(即加入网络)和解除关联(退出网络)
  • 协调器产生网络信标帧,普通设备根据信标与协调器同步
  • 处理和维护保证GTS
  • 在两个对等MAC实体间提供可靠链路

服务规范

Zigbee基础理论知识总结_第4张图片

MAC管理服务调用管理服务接口,维护PAN信息库

MAC数据服务提供数据服务接口,为网络层数据添加协议头,从而实现MAC层帧数据。


CSMA/CA工作原理
目的: 避免信道碰撞问题。
方法(两种):

  • (1)发送数据前,监听信道使用情况,持续一段时间,再等待一段随机时间后该信道依然空闲,则发送数据。 (由于每个设备随机时间不一样,所以可以减少冲突的发生,并不能完全避免)
  • (2)“握手判断”,发送前,先发送请求RTS报文给目标端,的能带目标端回应CTS报文后才开始发送。(可确保不会碰撞)

PAN的建立和维护

协调器上电,扫描已有网络,选择空余信道与PANID,构建网络。

信标帧

  • 得知协调器里是否有发送给自己数据
  • 何时关闭和启动射频

帧结构=

全称:MAC协议数据单元(MPDU),由一系列字段按照特定的顺序排列而成的。

一般结构

MAC帧头(MHR)、MAC有效载荷、MAC帧尾(MFR)

Zigbee基础理论知识总结_第5张图片

  • 目的PAN标识码。目的PAN字段长度为16bit,指定接受设备所在的PAN标识。
  • 目的地址字段。帧期望接受设备的地址。
  • 源PAN标识码。源PAN长度为16bit,发送设备的PAN标识码。 一个设别的PAN标识码是初始关联PAN时获得的,在冲突时可能发生变化。
  • 源地址字段。发送设备的地址。
  • FCS字段,CRC校验码。

特定结构

  • 信标帧。实现网络中设备的同步工作和休眠,建立PAN主协调器。
  • 数据帧。传输 上层发到MAC子层的数据。数据负载传送至MAC子层时,被称为MAC服务数据单元,首位会进行封装。
  • 确定帧
  • 命令帧

网络层

功能

  • 建立新网络
  • 允许设备加入或离开,为设备分配内部逻辑地址、建立和维护邻居表

帧结构

网络层协议数据单元(NPUD)

Zigbee基础理论知识总结_第6张图片

  • 目的地址。根据广播标志子域值,16bit 设备网络地址、广播地址 or 目的组播得Group ID。
  • 源地址。源设备得网络地址。
  • 半径域。 长度为8bit,每接收一次帧数据时,广播半径减1,广播半径决定传播半径。
  • IEEE目的地址。若存在则包含在地址头中的目的地址16位网络地址对应的64bitIEEEE地址中。
  • IEEE源地址。同上
  • 多点传送控制。组播时存在。

应用层


构成

应用支持子层(APS)、Zigbee设备对象、Zigbee应用框架(AF)、Zigbee设别模板和制造商定义

节点地址和端点号
  • 节点地址:分两种,64bit IEEE地址(MAC地址),16位网络地址(短地址,由协调器分配)
  • 端点号:协议栈应用层的入口,描述一个设备所定义的群集。每个zigbee设备最多可支持240个端点,每个设备上可以定义240个应用对象,其中端点0用来保留设备对象接口,端点255被保留用于广播,241~245用于将来扩展使用。
间接通信和直接通信
  • 间接通信,两个节点在应用层上建立起一条逻辑链路。
  • 直接通信,使用接节点地址通信(偏底层)

消息的类型


应用支持子层

功能:负责应用支持子层数据单元APDU的处理、数据传输管理和维护绑定列表

APS通过一组通用的服务位网络层和应用层之间提供接口。

应用框架

功能: 组合事务(若干个事务组合成一个帧,大事务分成多个帧)、接收和拒绝

设备对象

应用程序通过端点0与Zigbee堆栈的其他层通信,从而实现各层的初始化和配置,附属在端点0的对象被称为Zigbee设备对象。
ZDO功能:初始化应用支持子层、网络层和其他Zigbee设备层;汇聚来自端点应用的信息,以实现设备和服务发现、网络管理、绑定管理、安全管理、节点管理等功能。

Zigbee协调器

功能:

  • 接受设备加入到网络,或者将一个设备与网络断开连接。
  • 响应其他设备请求的设备服务和服务发现,包括对自己的请求和对自己的处于睡眠状态的子设备的请求。
  • 支持Zigbee设备间的绑定功能等。保证绑定项的数目不能超过属性规定值。
  • 维护当前连接设备列表,接收孤立扫描,实现孤立设备与网络重新连接。
  • 接收和处理终端设备的通知请求等工作。
Zigbee路由器

功能:

  • 允许其他设备与网络建立连接。
  • 接受、执行将某设备从网络中移出的命令。
  • 响应设备发现和服务发现。
  • 应当维护一个与其连接的设备列表,允许设备重新加入网络。
Zigbee终端设备

Zigbee终端设备在初始化时首先为工作中需要的参数设置初始值;其次,开始发现网络的操作,并选择一个合适的网络与之连接;连接后使用自己的IEEE地址和网络地址发出终端设备通知信息。 在正常操作状态下,终端设备应响应设备发现和服务发现请求,接收协调器发出的通知信息,检查绑定表中是否存在与它匹配的项等。在安全的网络中还应完成各种密钥的获取、建立和管理工作。


可以关注本专栏,后续会更新Zstack开发。

你可能感兴趣的