(转自https://www.bilibili.com/video/BV1FA411v7YW?p=652&spm_id_from =pageDriver&vd_source =e1e965c6d34ccad0cc6841ecb58eb4a5)
介绍
ZigBee译为”紫蜂”,是一种新兴的短距离无线通信技术,用于传感控制应用(Sensor and Control),由IEEE 802.15工作组中提出,并由其TG4工作组制定基于802.15.4规范:
2001年8月,ZigBee Alliance成立。
2004年,ZigBee V1.0诞生,问题较多。
2006年,推出ZigBee 2006,比较完善。
2007年底,ZigBee PRO推出。
2009年3月,Zigbee RF4CE推出,具备更强的灵活性和远程控制能力。
2009年开始,Zigbee采用了IETF的IPv6 6Lowpan标准(IEEE 802.15.4g)。
特性
低功耗,相比目前的wifi蓝牙功耗更低。
低成本,协议栈免专利费,IC结构简化。
低速率,工作在20~250kbps的速率。
近距离,在不增加功率放大器的情况下,一般介于10~100米之间。
短时延,无论是唤醒还是入网都在毫秒级。
高容量,同一协调器最多管理65000+节点。
自组网,因移动或信号干扰断网后自组自愈。
高安全,支持AES128位对称加密通信。
免执照, 使用工业科学医疗(ISM)频段,915MHz(美国), 868MHz (欧洲),2.4GHz(全球)。
供应商



组网形式


应用场景
需要数据采集或监控的网点多、地形复杂、需要较大的网络覆盖;
要求传输的数据量不大,但设备成本低;
要求数据传输可靠性高,安全性高。
设备体积小,不便放置较大的充电电池或者电源模块;
电池供电;
现有移动网络的覆盖盲区;
使用现存移动网络进行低数据量传输的遥测遥控系统。
使用GPS效果差,或成本太高的局部区域移动目标的定位应用。
协议栈

从官方协议了解到,zigbee可以大致分为五层:
应用层APL:应用框架层AF,以及设备对象ZDO;
应用支持子层APS;
网络层NWK;
媒体访问控制层MAC;
物理层PHY;
物理层
PHY,从无线物理信道上为MAC层提供数据收发的服务:
启动和关闭RF收发器;
当前信道能量检测;
对接收到的数据报进行链路服务质量指示LQT(Link Quality Indication);
为CSMA/CA算法提供空闲信道评估CCA (Clear Channel Assessment);
对信道频率进行选择;
数据包的传输和接收。
MAC层
兼容IEEE802.15.4标准,保证协议数据正确收发:
全功能设备产生并发送信标帧(Beacon)。
普通设各根据全功能设备的信标帧进行同步。
支持PAN(个域网)的关联(Association)建立和取消关联(Disassociation)断开操作。
为设备的安全性提供支持。
使用CSMA/CA机制共享物理信道。
处理和维护时隙保障GTS(Guaranteed Time Slot)机制。
在两个对等的MAC实体之间提供一个可靠的数据链路。
网络层
NWK,为上昙提供数据服务(NLDE)和管理服务(NLME):
产生网络层的数据包:当网络层接受到来自应用子层的数据包,网络层对数据包进行解析,然后加上适当的网络层包头向MAC传输。
提供路由数据包的功能,如果包的目的节点是本节点的话,将该数据包向应用子层发送,如果不是,则将该数据包转发给路由表中下一结点。
提供入网器件的参数配置协议, 比如建立新的协调器并发起建立PAN网络或者加入一个已有的网络。
提供加入或脱离PAN网络的功能,如果节点是协调器或者是路由器,还可以要求子节点脱离网络。
如果本节点是协调器或者是路由器,则接入该节点的子节点的网络地址由网络层分配控制。
网络层能发现维护网络邻居信息,比如发现新节点。
网络层能控制接收器的接受时间和状态。
应用支持子层APS
APS,为ZDO访问NWK提供了通路:
APS层协议数据单元APDU的处理。
APSDE提供在同一个网络中的应用实体之间的数据传输机制。
APSME提供多种服务给应用对象,这些服务包括安全服务和绑定服务,并维护管理对象的数据库,也就是我们常说的AIB。
应用框架层AF
AF, 为各个用户自定义的应用对象提供了模板式的活动空间:
为每个应用对象提供了键值对KVP服务和报文MSG服务两种服务供数据传输。
每个节点除了64位的IEEE地址,16位的网络地址外,AF还为每个节点提供了8位的应用层入口端点地址,对应于用户应用对象。
端点0用于整个ZigBee设备的配置和管理。
端点255用于向所有端点的广播(同一终端的不同应用),区别于短地址广播(不同终端)。
端点1至240供用户自定义用于对象使用。
端点241-254保留将来使用。
每一个端点应用都对应一个配置文件(Profile)。Profile配置文件包括: 设备ID (Device ID)、事务集群ID(cluster ID)、属性ID (Attribute ID)等等。AF可以通过这些信息来决定服务类型。
ZDO
ZDO,是一个特殊的应用层的端点( Endpoint),占用了端点0,它是应用层其他端点与应用子层管理实体之间交互的中间件, 它主要提供的功能有:
初始化应用支持子层,网络层。
发现节点和节点功能, 在无信标的网络中,加入的节点只对其父节点可见。
而其他节点可以通过ZDO的功能来确定网络的整体拓扑结构以及节点所能提供的功能。
安全加密管理, 主要包括安全key的建立和发送,以及安全授权。
Zigbee信道
channel,信道地址,对于2.4G刚好采用了32bit中间16位中为1的位表示该信道被启用(0x800~0x7fff800)。
panID,16bit网络地址,只有panID相司的设备才能组成一个网络。
MAC,由IEEE规定的64bit地址,类似网卡MAC必须唯一,又叫zigbee的长地址。
shortAddr,由父节点分配的16bit短地址,用于设备之间通信。
endPoint,是一个1-240的具体设备端点号,与应用相关。
Zigbee网络中有4种通信方式
单播通信,与指定设备通信。
组播通信,与组内设备通信。
广播通信,与网内设备通信。
绑定通信,不是设备之间通信,而是不同端点之间的通信。
zigbee网络中有3种通信设备
全功能设备FFD: 协调器
全功能设备FFD: 路由器
半功能设备RFD: 终端
Zigbee无线遥控代码实现
没有OSAL,不能组网。
点对点遥控收发数据,主要填充一个结构体:basicRfCfg_t;



Zigbee组网过程
先通过底层能量扫描,选择一个合适的信道建立。
协调器或路由器会不断的广播信标(Beacon),蓝牙、wifi都发射信标。
设备或路由器发现信标,请求入网。
协调器或路由器会分配短地址给设备或路由器。
入网成功。
基于端点展开通信。








zigbee应用
根据提供的传感器实例,向现有zstack工程引入各种传感器, 实现数据的采集与控制。