1、目 录中文摘要I英文摘要II1 绪 论11.1题目研究背景与意义11.2国内外研究现状11.3 ZigBee无线网络的研究前景21.4 论文的组织结构32 相关技术及系统方案设计42.1 ZigBee技术42.1.1 ZigBee无线网络设备组成52.1.2 ZigBee无线网络拓扑结构52.2 系统方案设计62.2.1 系统方案设计框图62.2.2 各模块功能介绍73 硬件电路设计83.1 硬件电路设计简介83.2 处理器模块93.2.1 处理器CC2530简介93.2.2 芯片功能介绍93.3协调器硬件单元电路原理图设计103.3.1 CC2530支撑电路原理图设计103.3.2 RS23
2、2串口通信电路原理图设计123.3.3 电源电路设计153.3.4 JTAG接口电路设计153.3.5 人机交互接口电路设计144 IAR开发环境介绍154.1 IAR的安装及简介154.2 ZigBee 2007 协议栈安装174.3 IAR使用介绍:195 ZigBee无线网络协调器软件设计215.1 Z-stack软件架构分析215.1.1 Z-stack协议栈的几个重要概念215.1.2 Z-stack协议栈分析225.1.3 OSAL操作系统225.2协调器软件设计235.2.1 总体流程设计及代码245.2.2 协调器新建网络流程图及代码265.2.3绑定与接收295.2.4 协调
3、器向串口发送数据316 调试366.1 软硬件调试方法366.2 调试中遇到的问题36 7 总结387.1 设计总结387.3 设计不足和改善38参考文献39致谢40 i1 绪论1 绪论1.1题目研究背景与意义自20世纪以来,无线网络技术就逐渐进入了我们的生活,从GSM到Bluetooth,从无线ATM到无线局域网。它们拥有各自的特点为我们实现着无线网络通讯,实现信息的即时交流,使我们的交流更加自由方便。随着数字技术,微电子技术以及通信技术的发展,无线通信技术凭借其组网时受地理环境制约小这一巨大优势,在医疗领域、家庭居室、工业监测等领域逐渐得到重视。现有的无线网络技术,如GSM、wi-fi、b
4、luetooth等,以其各自的特点为我们的生活带来了很多方便。但在实际需求中我们对无线技术提出了更高的要求,低速率、低成本、低功耗。再这样的情况下,ZigBee技术产生了,ZigBee技术是随着工业自动化对于无线通信和数据传输的需求而产生的,其网络有省点、可靠、成本低、容量大、安全等很多优势,被认为是拥有广阔市场前景的十大最新技术之一。水资源监测是水资源管理与保护的重要手段,我国水资源紧缺、水污染严重,如何高效、实时地获取水环境参数、研究开发水环境监测新方法,已成为水环境管理与保护的一项重要任务。无线传感器网络 WSN(Wireless Sensor Network)是将有感知能力、计算能力和
5、通信能力的微小传感器节点采用规则或随机方式部署在监控区域,通过无线自组织和多跳的方式构成的分布式网络。它集传感器技术、嵌入式技术、现代网络技术、无线通信技术和分布式信息处理技术于一体,以数据处理为中心,协作地感知、采集、处理和传输目标区域的监测信息并报告给用户。它具有可快速部署、无人值守、功耗低和成本低等优点。1.2国内外研究现状各类无线传感器网络技术能够通过各类集成化的微型传感器协作地实时监测和采集各种感知对象的信息,通过嵌入式系统对信息进行处理,并随自组织无线通信网络将所感知对象的信息传送给观察者。无线传感器网络是新一代的传感网络,具有非常广泛的应用前景,其发展和应用。将会给人们的生活和生
6、产的各个领域带来深远的影响。ZigBee研究最早在国外,2002年就成立了ZigBee联盟,从成员只有几个到今天为止几百个成员0已经取得了很大的发展。随着电子技术和网络技术的飞速发展,无线网络始终是一个热门的话题。各国都非常重视无线传感网络的发展。在智能家居和工业控制领域,人们迫切希望能够产生出一个无线、短距离、低速、低功耗的网络。为了实现这个目标,国内外的有关研究机构、生产厂商进行了不懈的努力,本次任务就是采用ZigBee技术,构建无线传感器网络。国外情况:一些国际著名公司和组织对此投入了极大的热情。标准化上,著名的标准化组织发布了IEEE802.15.4标准,是面向低成本、低功耗、低速率传
7、输网络应用开发的专用无线通信协议1。Zigbee联盟制定和设计了实现传感器节点组Zigbee协议规范。节点芯片上有著名的国际公司投入研究。在ZigBee的具体应用上,国内国外也都开始了与煤矿公司的合作,将ZigBee无线定位方案从自动检测、车辆管理等拓展到煤矿行业的矿井定位中。韩国、中国、日本等国家也积极研究在手机中置入ZigBee技术,实现客厅家电遥控和安全防盗等功能,也逐渐取得了成果。国际上比较有代表性和影响力的无线传感器网络使用和研发项目有遥控战场传感器系统,网络中心战及灵巧传感器网络,智能尘埃,行为习性监控项目和美国皇家网络等,尤其是最新试验成功的低成本美军“狼群”地面无线传感器网络标
8、识着电子战领域技术的最新突破。俄亥俄州正在开发“沙地直线”无线传感网络系统。这个系统能够散射电子绊网到任何地方,以侦测运动的高金属含量目标。民用方面,美国,日本等国家在对该技术不断研发的基础上在多领域也进行了应用。国内情况:国内无线传感器及其应用研究与发达国家同步启动,建立了传感器网络已系统研究平台,在无线智能传感器网络通信技术、微型传感器,传感器节点等取得了很大进展。同时,越来越多的企业也开始ZigBee的研究和开发,如利用ZigBee技术读取水电表资料。同样国内很多大学也在积极研究ZigBee技术的应用,将ZigBee技术用于智能家居、检测系统行业。1.3 ZigBee无线网络的研究前景微
9、电子技术,计算机技术和无线通信技术的进步,推动了低功耗多功能传感器的快速发展,使其在微小体积内能够集成信息采集,数据处理,和无线通信等多种功能。无线传感器网络就是由安装在监测区域内大量的廉价微型传感器节点,通过无线通信等多种方式采集和发送网络覆盖区域中的信息。无线传感网络就是将逻辑上的信息与客观上的信息融合在一起,改变人类与自然界的交流方式。人们可以通过传感器网络世界直接感知客观世界,从而极大提高人类认识世界的能力。未来移动通信网络除了以低成本实现数据的传输外,还要求在无设施的情况下传输信息,因此无线传感器网络和自组织网络将因器灵活性而在未来移动通信网络中起重要作用。 无线传感器网络是由分布在
10、指定局部区域内的无线传感器节点构成的一种信息获取系统。各节点之间通过专用的网络协议实现信息的交流,汇集和处理,从而实现给定局部区域内目标的探测,识别,定位和跟踪。同时通过协调器将消息传送给监控系统,从而实现时时监控的功能。1.4 论文的组织结构第一章绪论介绍了课题的研究背景、课题的研究意义、国内外研究现状、课题的研究前景以及课题的研究内容和组织结构;第二章介绍ZigBee相关技术及系统方案设计;第三章介绍协调器硬件设计包括协调器硬件电路框图设计、协调器硬件电路原理图设计;第四章介绍开发环境和具体使用方法包括IAR环境的安装和使用,协议栈的安装和使用;第五章介绍系统软件的设计包括流程图的设计,程
11、序的设计;第六章调试包括硬件调试和软件调试以及遇到的问题和解决方案;第七章结论,对本课题设计工作进行总结;12 相关技术与系统方案设计2 相关技术及系统方案设计Zigbee这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。2.1 ZigBee技术 ZigBee是众多无线网技术中的一种有点比
12、较多的无线网络技术,它有很多实际应用的优点,应用也比较广泛。在如今的无线网络应用行业,ZigBee技术可以说涉及到了各行各业,已经完全进入到我们的生活。 (1) 低功耗 ZigBee的传输速率最高才250kbit/s,发射功率仅为1mw,而且终端节点可以采用休眠模式,所以功耗非常低。在低耗电待机模式下,2节5号干电池可支持1个节点工作624个月,甚至更长。这是Zigbee的突出优势。相比较,蓝牙能工作数周、WiFi可工作数小时。 (2)低成本 通过大幅简化协议(不到蓝牙的1/10),降低了对通信控制器的要求,使芯片的复杂度降低,而且Zigbee免协议专利费,再加上使用无需付费的频段,所以Zig
13、Bee成本很低,这也是使其走向商业化轨道的关键。(3)近距离 传输范围一般介于10100m之间,在增加RF发射功率后,亦可增加到13km。这指的是相邻节点间的距离。如果通过路由和节点间通信的接力,传输距离将可以更远。 (4)短时延 Zigbee的响应速度较快,一般从睡眠转入工作状态只需15ms,节点连接进入网络只需30ms,进一步节省了电能。相比较,蓝牙需要310s、WiFi需要3s。 (5)网络规模大 Zigbee可采用星状、片状和网状网络结构,由一个主节点管理若干子节点,最多一个主节点可管理254个子节点,一个区域可以同时存在100个ZigBee网络。同时主节点还可由上一层网络节点管理,最
14、多可组成65000多个节点的大网。所以ZigBee网络的容量非常大。 (6)高安全 Zigbee提供了三级安全模式,包括无安全设定、使用接入控制清单(ACL)防止非法获取数据以及采用高级加密标准(AES 128)的对称密码,以灵活确定其安全属性。0(7)高可靠性 MAC层采取了碰撞避免的策略,同时为需要固带宽的通信业务预留了专用时隙,避开了发送数据的竞争和冲突。ZigBee如此多的有点,使其广泛应用于多个领域3:(1)ZigBee应用于室内病人监控。如老人行动不便的紧急呼叫。(2)ZigBee应用在大型楼宇结构安全监控。如用来评估建筑结构安全和潜在的损坏标志,有助于加速和减少检测的花费。(3)
15、ZigBee应用于公共场所。如用于烟雾探测器等。(4)ZigBee应用于农业领域。如用来收集各种土地、水资源污染程度的数据。2.1.1ZigBee无线网络设备组成从设备的物理功能上来看,IEEE 802.15.4标准把网络的设备分为全功能设备(FFDFull Function Device)和简化功能设备(RFDReduceed Function Device)俩类。在ZigBee无线网络中根据设备不同的功能分为三类:ZigBee协调器(ZigBee Coordination)、ZigBee路由器(ZigBee Router)和ZigBee终端设备(ZigBee End Device)。一般情
16、况下,ZigBee协调器和ZigBee路由器是全功能设备,而ZigBee终端设备是简化功能设备2。三种设备简要介绍:(1)ZigBee协调器:ZigBee协调器必须是FFD全功能设备,它作为整个无线网络的中心节点,同时也是一个网络中不可缺少的一部分,比其他节点拥有更大的存储能力和计算能力。它的首要功能是建立网络,其他的功能还有:发送网络信标、管理网络节点、存储网络节点信息、寻找一对节点间的路由信息并不断的接收信息。(2)ZigBee路由器:ZigBe e路由器节点也要是FFD。它主要搜索现有的ZigBee网络、允许其他设备加入网络。(3)ZigBee终端设备:ZigBee终端设备可以是FFD或
17、者RFD。它可以向协调器或路由器发送网络请求,但无法允许其他节点通过它来加入网络。一个终端设备一般处于ZigBee网络的边缘,以非常低的功率运行,它可以处于休眠和工作俩种状态,一般可采用电池供电。2.1.2ZigBee无线网络拓扑结构无线网络(Wireless Network)是指许多独立的无线节点通过无线电波的方式通信而构成的网络。无线网络的连接方式主要有三种,星状连接、树状连接和网状连接。ZigBee无线网络属于无线网络中的一种,也具有星状(Star)、树状(Cluster Tree)和网状(Mesh)三种拓扑结构。如图2.1所示。图2.1 ZigBee网络三种拓扑结构2.2 系统方案设计
18、本次设计的主要内容是根据无线传感器网络的基本理论和水资源监测的实际需求,设计基于无线传感器网络水资源实时自动监测系统,能够在线实时测量温度、PH值、电导率、浊度等参数的水资源监测系统,系统在监测区域内采集相关数据,利用监测区域协调器节点和远程监测中心(PC 机)之间的通信,把经过处理的测量结果动态地显示出来。本课题完成系统协调器节点的设计,形成zigbee网络;将传感器节点采集送来的数据进行处理、打包;通过串口送给上位机。2.2.1 系统方案设计框图ZigBee技术是低速率、低成本、低功耗的无线网络技术。主要由协调器、路由器及终端设备3中节点组成。在网络建立之初,每个网络有且仅有一个协调器节点
19、,主要负责网络的发起、参数的设计、信息的管理及维护功能。本次设计是在此基础上设计协调器节点,形成自组织网络接收传感器节点采集的数据。系统方案框图的绘制使用VISIO软件,第五章会简单介绍一下VISIO软件的使用。本次设计内容主要为协调器部分的设计,是整个网络的中间部分,也是不可缺少的部分。我们先从硬件框图进行简单介绍。硬件框图如图3.2所示,硬件框图如图2.4所示,主要包括:CC2530支撑电路、RS232串口通讯电路、电源模块和JTAG接口电路五部分4。图2.4 系统方案设计框图2.2.2 各模块功能介绍无线网络接收模块:用于接收传感器节点所测的数据即通过无线网络可以成这些数据的接收。处理器
20、模块:此模块用于处理从传感器接收来得信息,将信息进行处理、打包以待时机通过RS232接口传输给PC机。芯片外围电路射频收发器模块:此模块是射频输入/输出匹配电路,完成无线信号的准确接收和发送。芯片外围电路晶振时钟:此模块给射频收发器模块提供本振信号提供休眠模式定时器本振信号。RS232串口通讯电路:此协调器节点接口主要包括串行接口,将所要传输的信息通过串行接口传送给PC机,还应该包括电源接口,给此模块提供电量保证使其正常工作。电源模块:本系统可采用外接电源及干电池联合供电的方式。此外接电源无效时,也可采用干电池为系统供电,以保证系统各节点正常运行。23 硬件电路设计3 硬件电路设计ZigBee
21、无线网络协调器的总体设计包括硬件和软件俩大部分,本章主要介绍本次设计的硬件部分。硬件的设计低功耗是要满足的优点之一,所以硬件设计芯片的选取也要满足低功耗等等的特点。3.1 硬件电路设计简介本次课题所用的硬件主要有:1、下载器,2、协调器节点,3、终端节点。用户可以根据自己的需求选择合适的节点,很方便的实现用户的目的。1、下载器:提供USB接口连接电脑(PC),通过下载器download程序至各个节点。可以实现单步调试、断点调试、观察寄存器、观察程序执行和数据流。下载器与终端节点通过4芯SPI接口线连接可组成协议栈分析仪。2、协调器节点:完成通过计算机发送的指令发送或接受路由节点或者终端节点数据
22、,并将接受到的数据发送给计算机。3、终端节点:完成对设备的控制盒数据的采集,包括灯的控制温度、光敏、湿地、加速度、可调电阻等的数据值等。ZigBee硬件开发套件适用于无线传感监控、工业监控、楼宇自动化、数据中心、制冷监控、设备监控、社区安防、环境数据监测、仓库货物监控、农业蔬菜大棚、现在化农业数据监控、煤气水电抄表、智能家庭等领域。在ZigBee网络中,每一个节点都有指定的配置参数,从而确定其设备类型,不同的设备类型在网络中有着不同的网络任务。在属于多跳网络的ZigBee网络中,俩个节点需要完成数据传输,可能需要经过其他中间节点的协助,所以节点的类型参数配置是非常重要的。从而时没个节点完成(1
23、)执行指定网络功能函数(2)配置确定的参数到指定的值。网络功能的设置确定了该节点的类型;参数配置为指定的值确定了堆栈的模式。在ZigBee网络中,设备类型分为三类:协调器节点、路由器节点和终端节点。协调器节点是一个ZigBee网络的第一个开始的设备,或者在一个ZigBee网络中启动或建立设备。协调器节点选择一个信道和网络标识符(也叫做PAN ID),然后开始建立一个网络。协调器节点在网络中可以使用,比如建立安全机制、网络中的绑定的建立等等。0协调器节点主要作用是建立一个网络和配置该网络的性质参数。一旦这些完成,该协调器节点就成为一个路由器节点,网络中的其他操作并不依赖该协调器节点,因为ZigB
24、ee是分布式网络。本次可以做的主要是协调器部分,下面我至罗列出协调器的实物图。协调器节点的实物图如图4.2所示:图4.2 协调器节点实物图3.2 处理器模块3.2.1 处理器CC2530简介CC2530 作为主芯片,是一个兼容IEEE 802.15.4的真正片上系统,支持专有的很多协议栈标准。CC2530集成了2.4GHZ射频收发器、增强型工业标准8051 MCU的卓越性能,还包括了8kB的RAM并提供有一套广泛的外设集(包括2个USART、12位ADC和21个通用GPIO),大容量flash以及许多其他的强大特性5。3.2.2 芯片功能介绍CC2530芯片上系统功能模块结构如图3.1所示。C
25、C2530芯片具有如下特性: 高性能和低功耗的8051微控制器核 集成符合IEEE 802.15.4标准的2.4GHZ的RF无线电收发机 优良的无线接收灵敏度和强大的抗干扰性 在休眠模式时仅0.9UA的流耗,外部的中断或RTC能唤醒系统,在待机模式时少于0.6UA的流耗,外部中断能唤醒系统 数字化RSSI/LQI支持和强大的DMA功能 具有电池检测和温度感测功能 集成了14位的模 /数转换的adc 集成AES安全协处理器 带有2个强大支持机组协议的USART,以及一个符合IEEE802.15.4规范的MAC 计时器,一个常规的16位计时器和2个8位计时器; 强大和灵活的开发工具。图3.1 CC
26、2530片上系统的功能模块3.3协调器硬件单元电路原理图设计3.3.1 CC2530支撑电路原理图设计各模块原理图的绘制使用protel软件,下面简单介绍一下protel软件的使用。进入Design Protel 99se后在Documents中通过右键 “New” 建立 “SchematicDocument”文件,打开后即可进行电路原理图的编辑。先按照已画好的电路草图将所有元件找到拖放到编辑框里。将编辑框缩小,将元件照电路的样子搭好,整体上排列匀称。接下来就可以进行局部的连线了。 或者可以先将电路的各个模块搭好,再通过框定各模块平移组合成完整的电路,取消框定要通过EditDeSelectIn
27、side Area再用鼠标框定以前选中的模块,就可以解除,表现为模块由黄色变成普通颜色。对某个工程的操作是对一个数据库的操作,因此不同的数据库会在不同的窗口中打开,通过最小化可看到各个数据库的窗口。常用操作(1)调用画图工具ViewToolbarsCustomize。(2)在移动元件时按空格可旋转元件。(3)找元件时要参照对元件库的描述, Converter含有AD、DA等; Analog是模拟器件如运放等; Memory是存储器件.(4)一个工程数据库中最好不要将所有文件都放在文件夹Documents中,因为这样会产生一些意想不到的小问题。而将文件直接放在数据库根目录下则不会出现这些问题。打
28、开protel界面如下图3.2所示图3.2 protel界面图CC2530支撑电路如图3.3所示,包括晶振时钟电路、滤波电路和阻抗匹配电路等三部分。图3.3 CC2530支撑电路处理器部分:采用CC2530作为主控芯片。CC2530是一个兼容IEEE802.15.4的、真正片上系统,支持专有的IEEE802.15.4以及ZigBee PRO和ZigBeeRF4CE标准。CC2530集成了2.4GHZ的射频收发器、增强型工业标准的8051MCU、最大256KB可编程FLASH/8KB的RAM并提供有一套广泛的外设集(包括2个USART/12为的ADC和21个通用GPIO).同时。CC2530可以
29、配备TI的一个标准兼容或专有的网络协议栈来简化开发,其RF发送输出功率为4.5dbm,接收灵敏度为-97dbm.天线部分:工作在固定频率用于无线接收数据。3晶振部分电路:CC2530芯片有一个内部系统时钟,该时钟的振荡源是32MHZ高频RC振荡器。 提供休眠模式定时器本振信号。滤波电路的设计:如图所示,在模拟和数字供电连接处,均接有若干电容接地,这些电容即为滤波电容,起到去耦和旁路的作用,提高电路的稳定性。3.3.2 RS232串口通信电路原理图设计为了实现协调器和上位机(PC机)之间的通信,需要设计串口通信电路。选在RS232接口电路为PC机与微控制器之间的通信协议。RS232结构简单,应用
30、灵活,查阅相关资料了解到大部分普通PC机和单片机都采用RS232串行通信口,所以在串口通信中,采用RS232接口。在RS232电平中,规定逻辑“1”为-5-15v。逻辑“0”为+5+15v即为负逻辑。而TTL电平为正逻辑,所以需要引入电平转换芯片MAX3232实现TTL点评与RS电平的互相转换。转换电路如下图3.4所示:图3.3 RS232串口通信电路MAX芯片的接收器和驱动器分别有俩路,在实际设计中分别使用其中一路,机驱动器使用T1IN和T1OUT,接收器使用R1IN和R1OUT,其余悬空。CC2530的TTL信号由T1IN引脚输入,经MAX3232芯片转换位RS232电平,再通过R1IN引
31、脚送给PC机。3.3.3 电源电路设计电源电路为整个系统提供能量,是整个系统工作的基础。51单片机通常为5V,CC2530芯片集成了增强型8051内核,其工作电压时2.0-3.6V,所以需要将5V电源进行转换到3.3V电源给芯片供电。电源电路如图5所示,采用AMS1117电压转换芯片,它是一款高效性稳压器,可以减少因稳压器和电源电路超载而造成的压力。为了得到更加平滑稳定的电源电压,在AMS1117芯片的输入输出端分别设计一个大电容加一个小电容的滤波电路。图3.4 电源电路3.3.4 JTAG接口电路设计JATG接口电路如图3.5所示,该接口电路主要用于连接仿真器调试程序和下载使用。图3.5 J
32、TAG接口电路133.3.5 人机交互接口电路设计为了是我们更加直观的观察ZigBee网络的相关信息的交互过程,设计了人机交互接口电路。包括LED灯,如下图3.6所示。四个LED一段分别与CC2530的I/O口相连,另外一段与上拉电阻接3.3v电源。四个按键一段分别接地,另一端通过上拉电阻接到3.3v的电源上。LED4为电源指示灯,LED1-LED3用来指示网络建立成功、节点加入和数据传输等信息; 图3.6 LED显示电路原理144 IAR开发环境介绍4 IAR开发环境介绍 IAR Embedded workbench 是一套开发工具,用于对汇编、c或c+编写的嵌入式应用程序进行编译和调试。I
33、AR Embedded workbench 是一套高度精密且使用方便的嵌入式应用开发工具。该集成开发环境包含了IAR的c/c+编译器,汇编器,链接器,文件管理器,工程管理器和C-SPY调试器。通过其内置的针对不同芯片的的代码优化器,IAR Embedded Workbench可以为ARM芯片生成高效和可靠的FLASH/PROMable 代码。图4.1就是Iar开发环境的打开界面。4.1 IAR的安装及简介应用和开发ZigBee 2007系统主要使用的软件是IAR 7.51A6。IAR 7.51的安装源文件目录下双击autorun:图4.1 Iar 开发环境初始界面 点击右图“Install I
34、AR Embedded Workbench”:0点击作图“Next”到右图。需要输入License,打开IAR 7.51A注册机文件,打开文件目录下的key:点击左图“Generate”将生成Lincense number输入到IAR L incense输入框中生成右图。然后电锯右图“Next”:将注册机的Lincense key复制并输入到作图的Lincense key输入框中,然后点击“Next”生成右图。右图点击“Next”直到左后安装结束,点击“Finish”.至此,我们成功安装了IAR 7.51A。4.2 ZigBee 2007 协议栈安装在ZigBee协议栈的安装目录下双击“Zst
35、ack-CC2530-2.2.2-1.3.0”:安装需要一段时间,如下左图所示。直至出现右图,点击“Next”:如上左图,选择“I accept the terms of the license agreement”,点击“Next”,形成右图,选择“Typical”,点击“Next”:直至最后,点击“Finish”完成ZigBee2007 协议栈安装。(1) 认识ZigBee协议栈 ZigBee协议框架包含四层,从上到下是物理层(PHY)、媒体访问控制层(MAC)、网络层(NWK)和应用层(APL),其中,应用层包括支持子层(APS)、ZigBee设备对象(ZDO)和应用程序框架三部分。每层
36、为其上层提供一组特定的服务:一个数据实体提供数据传输服务;一个管理实体提供全部其他服务,每个服务实体通过一个服务接入点(SAP)为其上层提供服务接口。其中IEEE802.15.4 2003标准定义了物理层(PHY)和媒体访问控制层(MAC),ZigBee联盟提供了网络层(NWK)和应用层(APL)的框架设计。其中应用层的框架包括了应用支持子层(APS),zigbee设备对象(ZDO)和由制造商制定的应用对象。使用IAR 中打开zigbee协议栈所带的例程,可以看到如图2.2的整个协议栈的框架。图2.2 zigbee协议栈App :应用层目录,在这个目录中包含了应用层的内容和这个项目的主要内容,
37、用户可以在此创建一个新项目,添加自己需要的文件。HAL:硬件抽象层,Common目录下的文件是公用文件,基本上与硬件无关,其中hal_assert.c是断言文件,用于调用,hal_drivers.c是驱动文件,抽象出与硬件无关的驱动函数,包含有与硬件相关的配置和驱动及操作函数。Include目录下主要包含各个硬件模块的头文件,而Target目录下的文件是跟硬件平台相关的,可能看到有两个平台,分别是CC2530DB平台和一个CC2530EB平台。后面的DB和EB表示的是TI公司开发板的型号,其实还有一种类型是BB的,BB: Battery Board DB: Development Board
38、EB: Evaluation Board分别对应TI公司开发的三种板型,其功能按上顺序依次变强。MAC:MAC层目录,Include目录下包含了MAC层的参数配置文件及其MAC的LIB 库的函数接口文件这里的MAC层的协议是不开源的,以库的形式给出。MT:主要用于调试,实现通过串口调试各层,并与各层进行直接交互。NWK:网络层目录,包含网络层配置参数文件和网络层库的函数接口文件及APS层库的函数接口。OSAL:协议栈的操作系统抽象层目录。Profile:AF层的目录,包含AF层处理函数接口文件。Security:安全层目录,包含安全层处理函数接口文件,比如加密函数等。Services:ZigB
39、ee和802.15.4设备地址处理函数目录,包括地址模式的定义及地址处理函数Tools:工程配置目录,包含空间划分及z-stack相关配置信息。 ZDO:指ZigBee设备对象,可认为是一种公共的功能集,文件用户用自定义的对象调用APS子层的服务和NWK层的服务 Zmac:其中Zmac.c是Z-StackMAC导出层接口文件,zmac_cb.c是ZMAC需要调用的网络层函数 Zmain:主函数目录,包含入口函数及硬件配置文件。 Output:输出文件目录,这是IAR ew8051 IDE自动生成的。综上所示,真个协议栈中对于zigbee功能已经全部体现,在此基础上建立一个项目的方法主要是改动应
40、用层。(2)地址类型ZigBee设备有两种类型的地址。一种是64位IEEE地址,即MAC地址,另一种是16位网络地址。64位地址使全球唯一的地址,设备将在它的生命周期中一直拥有它。它通常由制造商或者被安装时设置。这些地址由IEEE来维护和分配。16为网络地址是当设备加入网络后分配的。它在网络中是唯一的,用来在网络中鉴别设备和发送数据。4.3 IAR使用介绍以协议栈自带的SimpleApp历程为例。安装完IAR7.51和ZigBee协议栈后,从开始菜单打开IAR Embedded Workbench,如下图所示:从File-Open-Workspace打开工程文件:选择我们将要打开的工程文件,路
41、径为:Zstack-CC2530-2.2.2-1.3.0ProjectsZstackSamplesCollector_SensorCC2530DB.如下图所示:通过使用左方的Workspace下拉菜单,选择不同的设备类型。Collector是作为协调器节点,Sensor是作为终端节点。首次打开时,会出现一系列的红色“*”,这是因为我们还没有编译工程。点击编译按钮,就可以看到红色的“*”就消失,并且在下方出现编译的结果。编译成功,就可以把工程文件下载到节点的CC2530内存中,即,通过下载器烧写程序。烧写过程只需要点击IAR的“Debug”按钮。45 协调器软件设计5 ZigBee无线网络协调器
42、软件设计在上一章节中对本次设计协调器部分的硬件进行的介绍,本章对协调器软件部分进行详细介绍。从软件应用与开发、软件流程图以及程序的设计俩方面入手进行介绍。5.1 Z-stack软件架构分析5.1.1 Z-stack协议栈的几个重要概念1、原语ZigBee设备在工作时,各种不同的任务在不同的层次上执行,通过层的服务,完成所要执行的相关任务,这里的各项服务就是“原语”。原语通常分为下面4种类型:(1) Request:上层向本层请求指定的服务。(2) Indication:本层发送给上层用来指示本层的某一事件。(3) Response:上层响应本层的指示。(4) Confirm:本层响应上层的请求
43、。在协议栈中,上述原语以具体的函数形式出现。2、三种数据传输方式在协议栈中有三种数据传输模式:单播、组播和广播。 单播:信息的接收和发送是点对点的方式。 组播:发送和接收是点对多点的方式。广播:在广播模式下,节点将数据包发送给网络中的所有节点。3、俩类地址(1)16位短地址:16为网络地址是设备加入网络后自动分配的,它在网络中是唯一的,用来在网络中辨识设备和发送数据等。(2)64位IEEE地址:即MAC地址,它是全球唯一的地址,通常由制造商或者被安装时设置,这些地址由IEEE来维护和分配。4、PAN IDPAN ID的全称是Personal Area Network ID,网络的ID(即网络标
44、示符)。它针对一个或多个应用的网络,用于区分不同的ZigBee网络。所有节点的PAN ID唯一,一个网络只有一个PAN ID,它可以由协调器自动选择,也可以手动配置,取值范围必须是0X0000-0X3FFF.05.1.2 Z-stack协议栈分析1.Z-stack协议栈的默认路径是C盘的跟目录下的Texas Instrument目录,协议栈安装之后包含Components、Documents、Projects、Tools四个文件夹和一个Getting Stated Guide CC2530.pdf文档,它是安装和卸载协议栈的说明文件。(1)Compoment文件包含了Z-stack协议栈中各个
45、功能子文件。(2)Hal文件夹为硬件抽象层,可根据自己的硬件做相应的修改。(3)Mac文件夹包含了物理协议的实现,部分源代码并没有公开,而是以库文件的形式存在。(4)mt文件夹包含了Z-tools调试工具的所需源文件。(5)Osal包含了操作系统抽象层所需要的文件。(6)Service文件夹包含了Z-stack提供俩种服务(寻址服务和我数据服务)所需要的文件。(7)stack文件夹是ZigBee协议栈的具体实现部分。(8)ZMAC文件夹包含了Z-stack MAC导出层文件。2、Documents文件夹包含了对整个协议栈进行说明的所有文档信息,在运用协议栈时需要参考这些手册。3、Project
46、s文件下包含了用于Z-stack功能演示的各个项目的例子,开发者可以根据自己的需要在这些实例上进行修改。4、Tools文件夹下又包括ZODA和Z-TOOL俩个文件夹,给用户提供ZOAD和Z-TOOL开发工具的安装包。5.1.3 OSAL操作系统OSAL是一种任务分配资源的机制,形成一个简单多任务的操作系统,运行流程如下:首先:初始化OSAL系统,包括软件系统和资源初始化俩部分。其中,软件系统初始化是指初始化一些变量,如OSAL中重要的任务表,任务结构和任务序列号。资源初始化是指对内存、中断、NV等各种设备模块资源的初始化。其次,在任务表中给OSAL添加认为,形成一个任务链表。任务链表中,高优先级的任务排在前边,如:MAC层任务、NMK层任务等。低优先级的APP层任务排在任务表最后。最后,运行OSAL系统,OSAL系统将以一个死循环的形式工作。而在循环体当中,将会不断地监测各个任务,看是否有任务事件发生。具体到协议栈中,OSAL提供的功能如下:(1) 任务的注册、初始化。开始(2) 任务间的消息交换(3) 任务同步(4) 中断处理(5) 时间管理(6) 内存分配5.2协调器软件设计在Zstack(TI的Zigbee协议栈)中,对于每个用户自己新建立的任务通常需要两个相关的函数,包括: 初始化的函数如:SampleApp_Init(),这个函数是