初识Zigbee

来源:互联网 发布:g76内螺纹编程实例 编辑:程序博客网 时间:2024/06/05 03:16

打算自己做搭建一个基于zigbee的小型物联网系统,今天开始记录学习历程


1,zigbee协议栈的实质就是一个实时内核(RTOS)+ 一套通信协议

 

2,路由器协调器终端设备的主要区别是软件层次的,在硬件方面,这三者完全可以是同样的东西。协调器负责启动、配置整个网络,一旦完成他的任务,协调器一般就退居二线,起到一个终端设备或路由器的功能。路由器主要完成通信中继的功能。终端设备大部分时间处于睡眠状态。

 

3,网络结构主要有星型树状簇状三种,在zigbee协议栈的网络层代码中用#define进行了定义。

 

4,zigbee信标模式非信标模式,常用的是非信标模式。

 

5,zigbee设备有两种类型的地址。第一种是64位的IEEE地址,即MAC地址,全球唯一;第二种是16位的网络地址,协调器的网络地址为0x00,协调器负责给路由器、终端设备分配地址。


6,z-stack半开源的协议栈,我们并不是能清楚的看到每个层的源码,部分代码是以的形式提供的。一般情况下,我们至少应该读懂硬件抽象层设备对象层的代码,这里需要自己添加自己想要的功能。硬件抽象层里面有系统消息事件led事件键盘事件。在设备对象层里面有系统消息事件ZDO状态改变事件网络初始化事件网络启动事件网络更新NV事件、设备重启事件。应用层事件有系统消息事件允许绑定时间事件绑定时间事件进入事件用户事件等等。


7,Zigbee协议栈的实时性要求不是很高,因此在设计任务调度程序的   时候,OSAL(操作系统抽象层)采用了轮询调度队列方式进行任务调度。

  任务号越小,任务优先级越高。MAC层优先级最高,应用层任务优先级最低。OS按优先级高低去执行事件,周而复始去轮询。




zigbee工程文件目录介绍:

APP :应用层文件,*.c*.h,可根据项目需要进行添加和修改

HAL :硬件抽象层,对应于物理层(PHY)

MAC ,ZMac :数据链路层有关的文件,其中的的文件不能修改,都是做好的库文件API,是不开源的,不需要做任何修改

MT :串口调试相关的文件

NWK :网络层的文件,均是*.h文件,是API,直接使用,不需要添加、修改

OSAL :与操作系统(OS)有关的文件

Profile :协议栈规范相关的文件

Security :有关安全机制的文件,不做任何修改

Services :服务相关的文件

Tools :一些配置文件,比如协调器、路由器的配置信息,不需要做修改

ZDO :zigbee设备对象层文件,很重要,通过此目录中的文件可知道协议栈运行的过程,要求读懂

ZMain :整个协议栈的入口main函数就在这个目录中,读程序一般要从这个目录读起

Output :工程的输出文件,其中的*.map是整个工程编译输出的情况,包含内存的分配代码量大小之类的信息

 

Zigbee术语:

NV :非易失性存储器,如nand flash

FFD :全功能设备,如路由器、协调器

RFD :半功能设备,如终端设备节点

簇 :多个属性的集合,每个簇有一个唯一的ID

描述符 :一个设备可以有240个端点,每一个端点必须有一个端点描述符,它是一个结构体



1 0