Zigbee技术和CC2530

来源:互联网 发布:linux 文件传输工具 编辑:程序博客网 时间:2024/06/07 19:39

一、ZigBee协议体系

ZigBee协议模块为层结构,主要由应用层、网络层、媒介访问控制层和物理层组成,其中ZigBee联盟定义了网络层和应用层架构。

每一层为上一层提供一系列服务。所有的服务实体通过服务接入点(SAP)为上层提供一个接口,每个SAP都支撑一定数量的服务原语来实现所需要的功能。

在Zigbee协议中,协议本身已经定义了大部分

应用层

网络层

MAC层

物理层

ZigBee网络由一系列网络节点 组成,一个网络结点可以包含多个设备,每个设备可以支持240个端点。端点作为网络通信中的数据通道,编号为1-240的端点对应可以定义为240个应用对象。端点0作为ZigBee设备对象的数据接口,每个端点可定义多个集群。

在进行ZigBee产品开发中,需要遵守一个应用规范,设定规范是一种规定不同设备对消息帧的处理行为,使不同的设备之间可以通过发送命令、数据请求来实现互操作。

在ZigBee网络中,设备可以分为两类:完整功能设备和简化功能设备。完整功能设备可以作为协调器或者路由器在任何拓扑结构中工作,能同其他完整设备或者简易设备通信。而简易设备只能作为终端网络节点,且只能同完整设备通信。

ZigBee网络支持2种网络拓扑结构,为星型网拓扑和对等网拓扑,其中智能家居中一般使用星型网拓扑。

二、ZSTACK协议栈的分析

Z-Stack采用操作系统的思想来构建,采用时间轮询机制,系统按照任务优先级来一次处理事件,而在事件处理完之后,进入低功耗模式。

操作系统抽象层的工作就是对多个任务进行系统资源分配,核心是通过参数传递的事件类型来判断对应处理相应任务的事件。在OS主体循环函数中,轮询判断各任务标志位来执行 相应的任务,进而执行事件处理函数,完成各个事件的处理


三、软件开发

开发环境选用IAR,在协议栈基础上编写应用层程序。系统用6个节点组成一个星型网络,一个协调器负责网络的建立,3个路由器和2个终端器组建网络,采集由CC2530内部自带温度传感器的温度值,并且实时的传输到协调器。

协调器采用自启动模式,因此在初始化函数中进行网络初始化,若协调器网络建立成功,则会出发任务事件,后调用函数在串口调试软件上显示网络建立的状态,然后系统对串口进行轮询检测,若有数据写入串口,通过回调函数将串口事件传递给任务,在应用层里定义My-A()调用数据发送函数,这边数据即控制命令。其中发送地址模式分为单播,广播和组播三种模式,分配3只能怪模式地址作为数据发送目标地址。

路由器和终端器也采用自启动模式,在网络初始化时调用函数来发现网络,后加入网络成功,触发任务的Z事件,把网络地址发给协调器。在接受到控制命令数据后,调用数据采集函数采集温度值,并发送数据到协调器,若发送不成功将延迟1s再重发。

0 0