1、物联网通信协议
常见短距离无线通信协议
物联网通信协议
接入方式-云端协议
支持 TCP/IP 的物联网设备,可以通过 WIFI、蜂窝网络以及以太网,使用 HTTP、MQTT、CoAP、LwM2M 以及 XMPP 等应用层协议协议接入云端。
接入方式-网关协议
网关协议是适用于短距通信无法直接上云的协议,比如蓝牙、ZigBee、LoRa 等。
此类设备需要接入网关转换之后,通过 TCP/IP 协议进行上云。
2、Zigbee 协议简介
一、Zigbee 历史
ZigBee,这个名字来源于蜂群使用的赖以生存和发展的通信方式:蜜蜂通过跳Zig-Zag形状的舞蹈来分享新发现的食物源的位置,距离和方向等资讯。
ZigBee的前身是1998年由INTEL、IBM等产业巨头发起的“HomeRFLite”技术。
2002年下半年,英国Invensys公司、日本三菱电气公司、美国摩托罗拉公司以及荷兰飞利浦半导体公司四大巨头共同宣布加盟“Zigbee联盟”,以研发名为“Zigbee”的下一代无线通信标准。
Zigbee与IEEE 802.15.4
ZigBee 是一种开放式的基于IEEE 802.15.4协定的无线个人局域网(Wireless Personal Area Networks)标准。
IEEE 802.15.4定义了物理层和媒体接入控制层,而ZigBee则定义了更高层如网路层及应用层等。
ZigBee技术特点
- 低功耗:由于ZigBee的传输速率低,发射功率仅为 1mW,而且采用了休眠模式,功耗低,因此ZigBee设备非常省电。据估算,ZigBee设备仅靠两节5号电池就可以维持长达6个月到2年左右的使用时间。
- 低成本:由于ZigBee模块的复杂度不高,ZigBee协议免专利费,再加之使用的频段无需付费,所以它的成本较低。
- 时延短:通信时延和从休眠状态激活的时延都非常短,典型的搜索设备时延30ms,休眠激活的时延是15ms, 活动设备信道接入的时延为15ms。
- 网络容量大:一个星型结构的ZigBee网络最多可以容纳254个从设备和一个主设备, 一个区域内可以同时存在最多100个ZigBee网络,而且网络组成灵活。网状结构的ZigBee网络中可有65000多个节点。
- 可靠:采取了碰撞避免策略,同时为需要固定带宽的通信业务预留了专用时隙,避开了发送数据的竞争和冲突。MAC层采用了完全确认的数据传输模式, 每个发送的数据包都必须等待接收方的确认信息。如果传输过程中出现问题可进行重发。
- 安全:ZigBee提供了基于循环冗余校验(CRC)的数据包完整性检查功能,支持鉴权和认证, 采用了AES-128的加密算法,各个应用可以灵活确定其安全属性。
ZigBee联盟的部分会员
二、Zigbee设备类型
ZigBee 无线传感器网络中有三种设备类型:协调器、路由器、终端节点
1、ZigBee协调器(Coordinator)
它包含所有的网络信息,是3种设备中最复杂的,存储容量大、计算能力最强。
它主要用于发送网络信标、建立一个网络、管理网络节点、存储网络节点信息、寻找一对节点间的路由信息并且不断的接收信息。
一旦网络建立完成,这个协调器的作用就像路由器节点。
2.ZigBee路由器(Router)
它执行的功能包括允许其它设备加入这个网络,跳跃路由,辅助子树下电池供电终端的通信。
3.ZigBee终端设备(End-device)
一个终端设备对于维护这个网络设备没有具体的责任,所以它可以睡眠和唤配,看它自己的选择。
因此它能作为电池供电节点。
三、ZigBee网络拓扑
设备类型与拓扑关系
ZigBee网状(MESH)网络
四、ZigBee网络建立-协调器建立一个新网络的流程
1、检测协调器
节点必须具备两个条件:
- 具有ZigBee协调器功能,
- 没有加入到其它网络中。
任何不满足这两个条件的节点发起建立一个新网络的进程都会被网络层管理实体终止
2、信道扫描
信道扫描包括能量扫描和主动扫描两个过程。
3、配置网络参数
网络层管理实体将为新网络选择一个PAN描述符,必须满足PAN描述符小于或等于0x3fff,不等于0xffff,并且在所选信道内是唯一的PAN描述符
4、运行新网络
5、允许设备加入网络
只有ZigBee协调器或路由器才能通过NLME_PERMIT_JOINING.request原语来设置节点处于允许设备加入网络的状态。
ZigBee网络建立-节点加入网络
1) 通过MAC层关联加入网络
2) 通过与先前指定父节点连接加入网络
通过MAC层关联加入网络
- 子节点发起信道扫描
- 子节点存储各PAN信息
- 子节点选择PAN
- 子节点选择父节点
- 子节点请求MAC关联
- 父节点响应MAC关联
- 子节点响应连接成功
- 父节点响应连接成功
组网操作均由协议栈来实现。
五、ZigBee应用领域
- 消费性电子设备
- 家庭和楼宇自动化设备
- 工业控制装置
- 农业自动化
- 电脑外设
- 医用传感器
- 玩具和游戏机等设备
- 支持小范围的基于无线通信的控制和自动化等领域
3、Zigbee协议栈
ZigBee 协议栈具有很多版本,不同厂商提供的 ZigBee 协议栈有一定的区别。
虽然协议是统一的,但是协议的具体实现形式是变化的,即不同厂商提供的协议栈是有区别的
- 函数名称和参数列表有区别
- 学习厂商提供的 Demo 演示程序和说明文档学习
Zigbee协议栈使用
使用 ZigBee 协议栈进行开发的基本思路可以概括为如下三点:
- 用户对于 ZigBee 无线网络的开发就简化为应用层的 c 语言程序开发,不需要深入研究复杂的 ZigBee 协议栈;
- ZigBee 无线传感器网络中数据采集,只需用户在应用层加入传感器的读取函数即可;
- 如果考虑节能,可以根据数据采集周期进行定时,定时时间到就唤醒 ZigBee 的终端节点,终端节点唤醒后,自动采集传感器数据,然后将数据发送给路由器或者直接发给协调器。