Zigbee基础理论知识总结
- 前言
- 章节
- Zigbee概述
-
- Zigbee技术原理
-
- 网络结构
- 网络体系
-
- 协议架构
-
- 物理层
-
- 工作频段分配
- 信道分配
- 物理层服务规范
- 数据的发送与接受
- 物理能量信道的检测
- 射频收发器的激活与关闭
- 空闲信道评估(CCA)
- 链路质量指示
- 属性参数的获取与设置
- MAC层
-
- 功能
- 服务规范
- PAN的建立和维护
- 信标帧
- ==帧结构===
-
- 特定结构
- 网络层
-
- 应用层
-
- 构成
-
- 应用支持子层
- 应用框架
- 设备对象
-
- Zigbee协调器
- Zigbee路由器
- Zigbee终端设备
前言
此文简要重点而写,中间会加入一些自己的理解。 相关基础开发应用可看下专栏其他文章,后续也会更新协议栈开发相关文章,本文将基础原理进行总结归纳。
章节
- Zigbee概述
- zigbee技术原理
- zigbee硬件设计
- CC2530基础开发
- 无线射频与MAC层
- Zstack协议栈
- Zstack应用开发
Zigbee概述
章节重点: 概念、特点、常见芯片、协议栈、开发环境
概念
一种近距离、低复杂度、低功耗、低成本的双向无线通信技术。
适用场景:距离短、功耗低且传输速率不高、周期性数据、间歇性数据、低反应数据
特点
- 低功耗
- 低成本
- 大容量(既可以适用64位IEEE地址又可以用短地址,在一个单独的Zigbee网络可以荣男65536个设备)
- 可靠(CMSA/CA,RCC,安全模式)
- 延时短
- 灵活的网络拓扑结构(星型、树型、网状型;单跳、多跳)
芯片
CC2530
协议栈
Zstack(版开源 TI公司 内嵌OSAL操作系统)
开发环境
- IAR
- Zigbee Sniffer (Zigbee嗅探器),用来分析Zigbee各层帧结构的程序,需要搭配嗅探器设备。
Zigbee技术原理
章节重点: 网络结构、网络体系、协议架构、IEEE802.15.4通信层、MAC层和网络层帧结构、网络层服务规范、应用层规范
网络结构
- 网络协调器,整个网络的中心,建立、维持和管理网络、分配网络地址等,等同网络“大脑”。
- 网络路由器,负责路由发现、消息传输、允许其它节点通过它接入网络。
- 终端节点。通过上述其一进入网络,负责数据采集或控制功能
网络体系
分为4层,自上而下为:
【网络层(NWK)和应用层】Zibee联盟定义
【物理层、媒体访问控制层(MAC)】合称IEEE802.15.4通信层
拓扑结构
- 星型,END只和协调器之间进行通信。
- 树型,设备只能与自己的父节点或者字节点通信。
- 网状型,在树型的基础上,允许网络中所有具有路由功能的节点相互通信。
协议架构
物理层
主要功能: 工作频段的分配,信道的分配,为MAC层服务提供数据服务和管理服务
工作频段分配
三个工作频段
- 2.4GHz,能够达到250kb/s的传输速率,一共有16个信道。
- 915MHz,传输速率为40kb/s,10个信道。
- 868MHz,传输速率20kb/s,1个信道。
信道分配
27个信道,编号k为0~26。27个信道的中心频率和对应的信道编号定义如下:
物理层服务规范
实现数据链路实体间透明地传输各种数据比特流。提供的主要服务为:物理层连接的建立、维持与释放,物理服务数据单元的传输,物理层管理,数据编码。
物理层管理服务访问接口(Physical Layer Management Entity,简称PLME-SAP),PLME-SAP除了负责在物理层和MAC层之间传输管理服务之外,还负责维护物理层PAN信息库(PHY PIB)。
物理层数据服务访问接口(Physical Data SAP,简称PD-SAP),PD-SAP负责为物理层和MAC层之间提供数据服务。
数据的发送与接受
通过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实体间提供可靠链路
服务规范
MAC管理服务调用管理服务接口,维护PAN信息库
MAC数据服务提供数据服务接口,为网络层数据添加协议头,从而实现MAC层帧数据。
CSMA/CA工作原理
目的: 避免信道碰撞问题。
方法(两种):
- (1)发送数据前,监听信道使用情况,持续一段时间,再等待一段随机时间后该信道依然空闲,则发送数据。 (由于每个设备随机时间不一样,所以可以减少冲突的发生,并不能完全避免)
- (2)“握手判断”,发送前,先发送请求RTS报文给目标端,的能带目标端回应CTS报文后才开始发送。(可确保不会碰撞)
PAN的建立和维护
协调器上电,扫描已有网络,选择空余信道与PANID,构建网络。
信标帧
- 得知协调器里是否有发送给自己数据
- 何时关闭和启动射频
帧结构=
全称:MAC协议数据单元(MPDU),由一系列字段按照特定的顺序排列而成的。
一般结构
MAC帧头(MHR)、MAC有效载荷、MAC帧尾(MFR)
- 目的PAN标识码。目的PAN字段长度为16bit,指定接受设备所在的PAN标识。
- 目的地址字段。帧期望接受设备的地址。
- 源PAN标识码。源PAN长度为16bit,发送设备的PAN标识码。 一个设别的PAN标识码是初始关联PAN时获得的,在冲突时可能发生变化。
- 源地址字段。发送设备的地址。
- FCS字段,CRC校验码。
特定结构
- 信标帧。实现网络中设备的同步工作和休眠,建立PAN主协调器。
- 数据帧。传输 上层发到MAC子层的数据。数据负载传送至MAC子层时,被称为MAC服务数据单元,首位会进行封装。
- 确定帧
- 命令帧
网络层
功能
- 建立新网络
- 允许设备加入或离开,为设备分配内部逻辑地址、建立和维护邻居表
帧结构
网络层协议数据单元(NPUD)
- 目的地址。根据广播标志子域值,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开发。