Zigbee是电气电子工程协会简称IEEE推出的一个无线通信协议
zigbee最大优势就是低功耗和网络节点超多。但是数据传输速度不如WIFI来的快
很多嵌入式大厂也都在用这个协议
zigbee协议栈
zigbee协议栈有四个层次
物理层就是就是无线通信的底层逻辑 它之所以能无线通信就是通过电路把要发送的信息转化成电磁波以空气为介质进行传递
MAC层,其工作内容由IEEE 802.15.4定义,其主要作用是控制多个网络设备有序地利用物理通信资源电磁波来通信。mac是 media access layer的简写形式
网络层,负责多个设备之间的组网、数据传输以及网络安全管理等。
应用层,在我看来就是负责基础组网功能实现后在应用层实现一些更高级的应用比如说数据加密。协议栈本身就是一种规范,就好比是请假条要写时间啊姓名啊地点啊,这些东西。
zigbee 网络中各部分的概念
大致分为 协调器 路由器 终端
协调器 协调器 用来协调的 所以就是一个中间人的角色 它的英文是 coordinater
你要组网你网络哪来?协调器可以创建网络初始化网络让设备入网。它也有路由器功能,区别就是它能创建和初始化网络,而且它可以汇总来自不同节点的数据,而且能和一些如WIFI协议去转换,比如说协调器通过zigbee收到它
路由器简单来说就是传输数据的,同时它也能让设备入网,具体点说,你搭建网络是不是得有很多节点,就像走路一样,终端连上路由,路由器就给你把最短路径算出来然后把数据按照这个路径传到要去的地方。
终端是什么 我举个例子 比如温度传感器 各种电器。
它的通信模式有四种 单播 组播 广播 mac模式
单播的话就是两个人对话
广播就是类似于村里的大柱子上的大喇叭一吼都知道 也就是说一个节点发送个数据 大家都能收到
组播就是以组为形式 几个有共同特性的凑一块 比如说几个温度传感器凑一组 然后呢组内成员讨论只有小组内的成员能听到。 这几个温度传感器凑一组 这个组就向协调器发温度数据 几个烟雾模块凑一起就向协调器发送烟雾数据,就是凑组。
mac模式我也不懂,而且几乎不用
下面是关于 zstack协议栈一些文件的解读
我以CC2650的例程举例
(1)bsp:板级支持包,用于适配TI官方开发板的硬件资源。
(2)driverlib:驱动程序链接库,存放TI官方未开源驱动程序的链接库。
(3) hal:硬件抽象层,存放各种驱动程序。
(4)mac:媒体介质访问控制,实现物理层通信及IEEE 802.15.4协议。
(5)mt:监视层,为监视协议栈各层的运行状态提供支持。
(6)osal:操作系统抽象层,是Z-Stack 的操作系统。
(7)services:提供一些公共的、常用的功能。
(8)stack:ZigBee协议的实现。
(9)usblib:USB链接库,芯片支持USB(比如CC2538)时需要用到的功能。
(10)zmac:属于mac层的内容
图片部分来源于:创客学院,iot善学坊,码字但很菜(知乎)