应用层(含应用接口层) 用户
安全层 ZigBee联盟
网络层
MAC层 IEEE 802.15.4
物理层
图3-2 ZigBee协议栈结构
ZigBee协议由物理层(PHY)、介质访问控制子层(MAC)、网络层(NWK),应用层(APL)及安全服务提供层(SSP)五块内容组成。其中PHY层和MAC层标准由IEEE 802.15.4标准定义,MAC层之上的NWK层,APL层及SSP层,由ZigBee联盟的ZigBee标准定义。APL层由应用支持层(APS),应用框架(AF)以及ZigBee设备对象(ZDO)及ZDO管理平台组成。
PHY层定义了无线射频应该具备的特征,提供了868MHz-868.6MHz、902MHz-928MHz和2400MHz-24835MHz三种不同的频段,分别支持20kbps、40kbps和250kbps的传输速率,1个、10个以及16个不同的信道Ⅲ。ZigBee的传输距离与输出功率和环境参数有关,一般为10~100米之间。PHY层提供两种服务:PHY层数据服务和PHY层管理服务,PHY层数据服务是通过无线信道发送和接收物理层协议数据单元(PPDU),PHY层的特性是激活和关闭无线收发器、能量检测、链路质量指示、空闲信道评估、通过物理媒介接收和发送分组数据。
MAC层使用CSMA-CA冲突避免机制对无线信道访问进行控制,负责物理相邻设备问的可靠链接,支持关联(Association)和退出关联(Disassociation)以及MAC层安全。MAC层提供两种服务:MAC层数据服务和MAC层管理服务,MAC层数据服务
通过物理层数据服务发送和接收MAC层协议数据单元(MPDU)。MAC层的主要功能是:进行信标管理、信道接入、保证时隙(GTS)管理、帧确认应答帧传送、连接和断开连接。
NWK层提供网络节点地址分配,组网管理,消息路由,路径发现及维护等功能。NWK层主要是为了确保正确地操作IEEE 802.15.4.2003MAC子层和为应用层提供服务接口。NWK层从概念上包括两个服务实体:数据服务实体和管理服务实体。NWK层的责任主要包括加入和离开一个网络用到的机制、应用帧安全机制和他们的目的地路由帧机制,ZigBee协调器的网络层还负责建立一个新的网络。
ZigBee应用层包括应用支持子层(APS子层)、应用框架(AF)和ZigBee设备对象(ZDO)。APS子层负责建立和维护绑定表,绑定表主要根据设备之间的服务和他们的需求使设备相互配对。ZigBee的应用框架(AF)为各个用户自定义的应用对象提供了模板式的活动空间,并提供了键值对(KVP)服务和报文(MSG)服务供应用对象的数据传输使用。一个设备允许最多240个用户自定义应用对象,分别指定在端点l至端点240上。ZDO可以看成是指配到端点O上的一个特殊的应用对象,被所有ZigBee设备包含,是所有用户自定义的应用对象调用的一个功能集,包括网络角色管理,绑定管理,安全管理等。
ZDO负责定义设备在网络中的角色(例如是ZigBee协调器或者ZigBee终端设备)、发现设备和决定他们提供哪种应用服务,发现或响应绑定请求,在网络设备之间建立可靠的关联。
安全服务提供者SSP(Security Service Provider)向NWK层和APS层提供安全服务。
ZigBee协议层与层之间是通过原语进行信息的交换和应答的。大多数层都向上层提供数据和管理两种服务接口,数据SAP(Service Access Point)和管理SAP(Service Access Point)。数据服务接口的目标是向上层提供所需的常规数据服务,管理服务接口的目标是向上层提供访问内部层参数、配置和管理数据的机制。 3.2.2 ZigBee网络基础
ZigBee网络基础主要包括设备类型,拓扑结构和路由方式三方面的内容,ZigBee标准规定的网络节点分为协调器(Coordinator)、路由器(Router)和终端节
点(End Device)。节点类型是网络层的概念,反映了网络的拓扑形式。ZigBee网络具有三种拓扑形式:星型拓扑、树型拓扑、网状拓扑。 3.2.3工作模式
ZigBee网络的工作模式可以分为信标(Beacon)模式和非信标(Non-beacon)模式两种。信标模式可以实现网络中所有设备的同步工作和同步休眠,以达到最大限度地节省功耗,而非信标模式只允许ZE进行周期性休眠,协调器和所有路由器设备长期处于工作状态。
在信标模式下,协调器负责以一定的间隔时间(一般在15ms--4mins之间)向网络广播信标帧,两个信标帧发送间隔之间有16个相同的时槽,这些时槽分为网络休眠区和网络活动区两个部分,消息只能在网络活动区的各个时槽内发送。
非信标模式下,ZigBee标准采用父节点为子节点缓存数据,终端节点主动向其父节点提取数据的机制,实现终端节点的周期性(周期可设置)休眠。网络中所有的父节点需要为自己的子节点缓存数据帧,所有子节点的大多数时间都处于休眠状态,周期性的醒来与父节点握手以确认自己仍处于网络中,并向父节点提取数据,其从休眠模式转入数据传输模式一般只需要15ms。 3.2.4 ZigBee 无线组网及数据通信
ZigBee通信协议采用分层结构,节点通过在不同层上的特定服务来完成所要执行的各种任务。本系统采用TI 提供的ZigBee2006 协议栈Z-Stack,在IEEE 802.15.4 标准物理层(PHY)和媒体访问控制层(MAC)基础上增加了网络层、应用层和安全服务规范,是一种较好的无线传感网络组建方案。
ZigBee 设备类型按网络功能分为三种:协调器、路由器、终端。由于本系统采用星型网络拓扑结构,所以只存在协调器和终端两种设备。
本系统中主节点被初始化为网络协调器。协调器包含所有的网络消息, 存储容量最大、计算能力最强。它的功能是发送网络信标、建立网络、管理网络节点、存储网络节点信息、收发信息。从节点被初始化为无信标网络中的终端设备。上电复位后,即开始搜索指定信道上的网络协调器,并发出连接请求。建立连接成功后,数据从括从节点编号,CC2530的I/O口编号以及此温度传感器的编号,后2个字节为温
度采集数据。主节点收到数据包后, 对数据进行分析处理, 把从节点上的温度传感器的数据采集值进行转换,得到实际的温度值,然后发送给上温度显示部分。 3.3CC2530芯片 3.3.1 CC2530概述
CC2530是一颗真正的系统芯片(SoC)CMOS解决方案。这种解决方案能够提高性能并满足以ZigBee为基础的2.4GHzISM波段应用,及对低成本,低功耗的要求。它结合一个高性能2.4GHz DSSS(直接序列扩频)射频收发器核心和一颗工业级小巧高效的8051控制器。
图3-3 CC2530引脚排列图
CC2530包括了1个高性能的2.4 GHz DSSS(直接序列扩频)射频收发器核心和1个8051控制器,它具有32/64/128 kB可选择的编程闪存和8kB的RAM,还包括ADC、定时器、睡眠模式定时器、上电复位电路、掉电检测电路和21个可编程I/O引脚,这样很容易实现通信模块的小型化。CC2530是一款功耗相当低的单片机,功耗模式3下电流消耗仅0.2μA,在32 k晶体时钟下运行,电流消耗小于1μA。 3.3.2 CC2530 芯片的主要特点
CC2530 芯片延用了以往CC2420 芯片的架构,在单个芯片上整合了ZigBee 射
频(RF)前端、内存和微控制器。它使用1个8位MCU(8051),具有128 KB 可编程闪存和8 KB 的RAM,还包含模拟数字转换器(ADC)、几个定时器(Timer)、AES128协同处理器、看门狗定时器(Watchdog timer)、32 kHz 晶振的休眠模式定时器、上电复位电路(Power On Reset)、掉电检测电路(Brown out detection),以及21 个可编程I/O 引脚。
CC2530 芯片采用0.18 μm CMOS 工艺生产;在接收和发射模式下,电流损耗分别低于27mA或25 mA。CC2530 的休眠模式和转换到主动模式的超短时间的特性,特别适合那些要求电池寿命非常长的应用。 3.4 STC89C52单片机的介绍
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。
各引脚功能,P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个ttl逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4 个 ttl 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时