【《基于Zigbee的建筑环境监测系统的下位机和上位机设计案例》14000字】_第1页
【《基于Zigbee的建筑环境监测系统的下位机和上位机设计案例》14000字】_第2页
【《基于Zigbee的建筑环境监测系统的下位机和上位机设计案例》14000字】_第3页
【《基于Zigbee的建筑环境监测系统的下位机和上位机设计案例》14000字】_第4页
【《基于Zigbee的建筑环境监测系统的下位机和上位机设计案例》14000字】_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Zigbee的建筑环境监测系统的下位机和上位机设计案例目录TOC\o"1-3"\h\u23573基于Zigbee的建筑环境监测系统的下位机和上位机设计案例 1276691下位机系统硬件设计 2319961.1硬件设计要求和方案 294691.1.1硬件设计要求 211591.1.1硬件设计方案 3266731.2Zigbee最小系统设计 5234371.2.1主控芯片选型 5304281.2.2主控芯片外围电路设计 649801.2.3射频电路设计 7179371.2.4晶振电路设计 8228471.3功能底板电路设计 846271.1.1传感器设计 9302531.1.2电源模块设计 12115311.1.3串口通信模块设计 12292171.1.4ESP8266模块设计 13277141.1.5其他辅助电路设计 14200701.5本章小结 14287602下位机系统软件设计 16173002.1软件设计要求和方案 16102622.2Zigbee简介 169292.2.1Z-Stack协议栈 17109412.2.2Zigbee拓扑结构 18187812.2.3Zigbee工作流程 19117942.2.4IAR开发环境 2022822.3协调器软件设计 21157232.4采集终端软件设计 22289202.3本章小结 24170393上位机系统设计 25109493.1基于Labview的上位机设计 25138613.1.1Labview简介 25305113.1.1上位机程序设计 26156173.1.1上位机程序设计 29310773.2基于Android的APP设计 30247363.2.1Android简介 31173883.2.2APP界面和程序设计 32175333.3本章小结 341下位机系统硬件设计前文描述了系统整体需要实现的功能,在确定总体设计的基础上,根据实现Zigbee网络常用的方法:通过Zigbee协调器和Zigbee采集终端建立通信,实现信息的传递。Zigbee系统中的三类设备,协调器、路由器和采集单元终端在硬件上是一样的[33]。故本章节着重对下位机系统中的协调器和采集终端单元的硬件实现入手,从各功能模块的选型到整个下位机系统的硬件系统设计。1.1硬件设计要求和方案1.1.1硬件设计要求本文硬件设计遵从以下要求:1)器件选型原则:根据功能和性能需求,如在对核心控制器进行选型时,要遵循容易开发、参考设计多、软件资源丰富、有一定的可扩展性等原则,在相同性能的情况下,优先考虑选择被广泛使用的芯片,其次考虑成本。2)硬件设计标准化:严格按照选型芯片的数据手册的相关PIN脚定义和技术标准设计硬件原理图。包括Zigbee芯片核心板、串口通信模块、传感器模块、电源模块和RF射频天线模块。为了设备后期的维护、以及一些易损器件的更换,系统的设计要符合普遍性原则,保证整个系统的标准化。3)系统实用性强:设备使用场合有一定的随机性,尤其整系统在现场进行数据获取的条件可能比较苛刻,包括设备的安装、供电等。故硬件系统一定需要具备实用性。为减小上位机系统体积,也为系统能够获取较高的实用性,采用Zigbee最小系统和扩展功能底板两层电路板设计,通过两层电路板的物理连接使上位机系统丰富的I/O口资源得到充分的利用。4)低功耗:系统的供电方式要有一定的灵活性,系统可以通过多种供电方式运行,预留常用供电接口,系统可选取USB供电、移动电源或电源适配器供电。在有些长周期监测的系统中,为了提高上位机系统的使用寿命,在保证系统能够正常运行的前提下,在硬件设计过程中尽量降低功耗,而降低功耗最直接的方式及减小供电电压[34]。在硬件设计中尽量充分使用各芯片的PIN脚,同时通过减少元器件的数量来使系统可以运行在更低功耗下。5)一定的抗干扰性:通过对市面常用无线通信方式的对比,Zigbee无线通信方式相较于其他无线通信方式的抗干扰性适中。在实际的监测项目中,数据采集现场的电磁条件也比较复杂,采集系统上传的数据对于热环境分析具有重要的影响,抗干扰性是系统能够获取准确参数的必要前提,故需要保证系统在有效的通信范围内能够稳定运行,下位机能够采集到准确的数据。6)一定的扩展性:建筑环境监测是无线传感技术的重要应用之一,随着建筑行业的不断发展,建筑环境监测具有广阔的应用前景,为建筑环境质量分析、绿色建筑分析以及建筑节能等重大问题提供直接的数据支撑。建筑环境监测系统可以通过底层传感器模块的调换,应用在其他领域的参数获取,同时也作为开发基础,为今后环境检测设备的研究提供了便利。1.1.1硬件设计方案根据上述环境采集系统的硬件设计要求,同时考虑系统的实用性,可将下位机系统分为Zigbee最小系统和功能扩展底板两部分,这两部分通过配置接口电路实现物理连接充分利用了CC2530芯片的I/O口资源。在下位机系统中,Zigbee最小系统是整个硬件设计的关键部分,主要负责各个传感器模块获取的数据按照一定的格式进行打包和转发、建立Zigbee网络、搜索Zigbee节点网络、加入网络等工作。Zigbee最小系统即主控芯片外围电路,包括RF射频电路、晶振电路和端口配置电路。扩展功能板包括:串口通信模块、传感器模块、电源模块和其他辅助模块。以协调器为例,上位机系统的具体硬件框图如图1.1所示。图1.1下位机系统硬件框图串口模块和ESP8266模块负责通信协议的转换,将Zigbee网络中的数据包发送至上位机系统作数据的进一步处理,也包括将上位机的命令反馈至Zigbee网络。射频模块通过功率的放大来完成信号的收发。电源模块通过将系统供电电源提供的能量包分发至各个模块供电,其他辅助电路如Led和Key模块负责整个系统的信息输出,程序下载模块为软件和硬件联调提供了接口,方便程序的下载和调试。考虑到系统能够在更低功耗下运行,不同功能的Zigbee设备中可以减少部分功能模块,也提高了经济性。采集单元终端模块中,传感器模块负责驱动传感器,测量相关环境数据并发送至采集单元终端的处理器,但采集单元终端没有直接与上位机进行通信,故未设计串口通信模块和ESP8266模块。以采集单元终端为例,具体硬件框图如图1.2所示。图1.2采集单元终端硬件框图1.2Zigbee最小系统设计下位机系统中关键器件选型即主控芯片选型。由于无线通信需要一定的功率发射器来完成数据的收发,故选择合适的天线也是系统稳定工作的一个重要因素。通过对比解决Zigbee方案的各厂商芯片特性后,根据选型芯片的数据手册搭建出相应的外围电路,设计应遵循硬件设计要求。1.2.1主控芯片选型目前Zigbee解决方案中最常用的是单芯片解决方案,也是各大芯片生产商的主推方案,单芯片有开发难度小,体积小的特点,也符合行业的发展趋势。单芯片方案是指RF收发器和主控芯片集成在一起,提高了在实际工程中应用的灵活性。主要提供单芯片解决方案的厂商有:德州仪器(TI),飞思卡尔(Freescal),恩贝尔(Ember)、捷力半导体(Jennic)等。各个厂商的芯片部分参数对比如表1.1所示。表1.1Zigbee芯片部分参数芯片参数TI(CC2530)Freesca(MC13192)Jennic(JN5418)EMBER(EM260)工作频率(Hz)2.4G2.4G2.4G2.4G无线速率(Kbit/s)250250250250发射功率(dBm)+2.5+1.6+2.5+3接收灵敏度(dBm)-97-92-97-97休眠电流(uA)110.21工作电压范围(V)2.0-1.62.0-1.42.0-1.62.1-1.6处理器增强型8051处理器MC9S08GT处理器32位RISC微处理器XAP2B处理器通过表1.1中的数据结合硬件开发要求,德州仪器(TI)生产的CC2530系列芯片使用了已有30多年发展史的8051MCU,相对其他厂商的处理器而言,8051MCU和其相关的开发环境如Keil、IAR等都更被人们所熟知,开发成本相对较低;其次Zigbee协议栈目前已经全部可以在德州仪器(TI)的官方网站免费下载;最后CC2530系列芯片的集成度也相对其他芯片是最高的,内部集成了FLASH存储器、RF收发器和MCU。CC2530系列芯片是德州仪器(TI)对CC2430系列的升级优化,优化了芯片的体积,删减了部分引脚,射频性能上也更优于CC2430系列。故本系统选用CC2530作为系统主控MCU。1.2.2主控芯片外围电路设计CC2530具有众多的优点,能够以极低的软硬件条件实现ZigBee网络通信。该系列芯片专用于Zigbee网络通信,使用2.4GHz的免费频段,支持IEEE802.13.4协议的片上系统(SOC)芯片,工作电压范围在1.8-1.8V,内核是增强型8051,具备抗干扰能力与接受性强等优点。21个可配置的I/O,可对接各类型传感器接口和外设,能够很容易地获取系统的高集成度,也易于传感器的扩展。芯片集成了业内先进的RF射频收发器的优良性能,可以大大提高系统的可靠性和稳定性。CC2530芯片外围电路如图1.3所示。图1.3CC2530芯片外围电路图电压VCC为1.3V,通过滤波电容C1~C6为芯片提供稳定的工作电压。RF_N和RF_P引脚经由电感L1去耦,分别接入外部天线的SMA接口,电容C10和电感L1构成滤波器,用于连接外部RF天线。CC2530芯片外围集成2个晶振电路,分别由32MHz的晶振Y1结合电容C19、C20构成和32KHz的晶振Y2结合电容C21、C22构成[35]。R12为接地电阻,也是芯片内部的旁路电阻。1.2.3射频电路设计天线的本质是一根导线,通过给其一定能量输入,天线能将通信范围内的特定制式的电磁波和电信号进行转换,天线通过能量的交换来实现无线通信中的信息交换。对于Zigbee系统存在射频收发,天线的作用就类似于硬件系统里的I/O口,只是传输的介质不同。由于建筑环境采集工作有一定的随机性,监测环境是各类型的建筑场合,RF射频模块很容易受到其他信号源的干扰,是硬件系统中最关键的部分,是关乎系统能否稳定运行的重要因素。当前应用在无线通信领域的射频天线主要有板载天线、贴片天线和棒状天线(SMA)。各类型天线的优缺点比较如表1.2所示。表1.2常用射频天线对比天线类别优势劣势应用场合板载天线集成度高,不占用空间,成本低通信距离短,布线技术难度大,无法更换集成RF模块,Wi-Fi模块,蓝牙模块贴片天线集成度高,不占用空间,体积小,容易更换通信距离一般,成本高大规模的嵌入式组合模块棒状天线增益高,通信距离远,无需调试成本高,占用额外空间各类终端设备通过对比常用天线类型,结合实际环境测试中项目中的抗干扰性和稳定性的要求较高,本系统采用棒状天线作为无线信号传输载体,虽然牺牲了部分功耗,但是也提升了系统的监测范围。棒状天线由中心孔和中心销两部分组成,通过螺纹连接。本系统中采用的是巴伦匹配电路对天线进行设计[36],射频电路设计如图1.4所示。图1.4射频电路接线图1.2.4晶振电路设计晶振能够完成将电能和机械能相互转换,是时钟电路中的关键器件,也是控制器的“心脏”。依据晶振提供基准时钟信号,可以使硬件系统在特定的时间内完成设定的工作,同时也控制着软件系统中的执行时序,如果失去这个基准信号或晶振误差过大会导致系统因为无法正确的获取MCU的控制命令而彻底“瘫痪”。通常系统中只有一个晶振,为系统所共用,但通过查阅芯片数据手册,CC2530系统中有两个晶振,晶振电路的接线图如图1.5所示。C11~C14是对地负载电容,决定着晶振的发出信号能量的大小。图1.5晶振电路接线图1.3功能底板电路设计功能底板是Zigbee最小系统的延伸,根据不同的工程需求,底板I/O能够在硬件上实现与大多数传感器和外设的对接。为了实现预期设计功能,功能底板设计了包括采集各类建筑环境数据的传感器模块、电源模块、串口通信模块、ESP8266模块和其他辅助模块。将Zigbee最小系统的功能延伸至功能底板,实现各模块即插即用的同时也方便硬件调试。系统通过将CC2530芯片的I/O延伸到了功能底板,预留的排针对应着未被使用的I/O口,为设备的更新和二次开发提供了接口,这也体现出了系统的可扩展性,接下来对各模块的设计进行详细的阐述。1.1.1传感器设计本系统作为初始系统开发,未选择价格昂贵的传感器,选取参数类型依据建筑热环境所需的常用参数:温度、湿度、光照强度、风速和CO2浓度。温度、湿度参数的获取选取DHT11传感模块、光照强度选择光敏传感模块、风速传感器选用仁科测控的三杯风速仪传感模块、二氧化碳浓度选择沃斯特传感器的红外二氧化碳传感模块(MH-Z14A)。各传感模块的工作参数如表1.3所示。表1.3各传感器模块工作参数型号工作电压测量参数检测范围精度DHT111.3-3.5V温度0-50℃±2℃湿度20-90%RH±5%RHRisym光敏3-5V光照强度0-21845Lux-MH-Z14A4-6VCO2浓度0-5000ppm±50ppm仁科测控风速度模块5V风速0-70m/s±0.2m/s1)温湿度传感器模块DHT11模块不仅能够完成温度的测量,同时还能获取环境湿度的相关测量,测量范围满足一般室内热环境测试的需求。该传感器模块是一款响应极快、价格低的温湿度传感器模块,通过内部嵌入校准程序来提高模块的采集精度,模块的单总线输出端通过上拉电阻R21直接与主控芯片的I/O口连接,系统开始工作时,主控芯片向模块发送数据,传感器模块响应后建立通信。数据格式验证正确后,则主控芯片能够接收到传感模块采集到的数据。在空闲状态时传感器会在低速模式下运行,能耗较低。DHT11的这种工作模式也与Zigbee系统的低功耗特性相辅相成,故本文采用DHT11作为采集温度和湿度的传感器。DHT11实物图和接线图如图1.6所示。图1.6DHT11实物图和接线图2)CO2浓度模块MH-Z14A二氧化碳气体传感器是一个通用智能小型传感器,利用非色散红外(NDIR)原理对空气中存在的CO2气体进行探测,具有很好的选择性和无氧气依赖性。具有高灵敏度、低功耗等特性[37],内置温度补偿,有较好的线性输出能力,提供串口输出方式,模拟输出0~2.5V,供电电压为1.3V,测量范围为0~5000ppm。MH-Z14A的外观和接线电路图如图1.7所示。图1.7CO2浓度模块实物图和接线图3)光敏传感器模块模块光敏传感器内装有一个高精度的光电管,光电管内有一块由“针式二管组成的小平板,当向光电管两端施加一个反向的固定压时,任何光对它的冲击都将导致其释放出电子[38],结果是:光电管接受到的光源亮度和流过内部光电管的电流成正比,通过内置电阻后会产生一个压降,此时电阻两端的电压被转换成可被采集器的数模转换器接受的0-5V电压。光敏传感器模块外观和接线电路图如图1.8所示。图1.8光敏电阻实物和接线图(4)风速传感器模块在测量风速方面常用的是三杯式风速传感器模块,三个风杯按照相同的方向安装在圆柱形的杯体上,两两风杯角度为120°。当外部有风吹动时,假设其中一个风杯的方向与风向平行,该风杯的垂直面收到的压力几乎为零。此时另外两个风杯同风向分别成60°,对风杯2而言,其凹面迎着风,承受的风压最大;风杯3其凸面迎风,风的绕流作用使其所受风压比风杯2小,由于风杯2与风杯3在垂直于风杯轴方向上的压力差,而使风杯开始顺时针方向旋转,风速越大,起始的压力差越大,产生的加速度越大,风杯转动越快[39]。风杯开始转动后,风杯会顺着风的方向一直转动,受风的压力相对减小,三个风杯交替接收风压,在风速稳定时,作用在三个风杯上的分压差为零时,风杯就变作匀速转动。这样根据风杯的转速(每秒钟转的圈数)就可以确定风速的大小[40]。中心轴通过内置的计数器可以将脉冲电压可以转化为可以检测到的数字信号。仁科测控的三杯风速仪传感器外观和电路接线电路图如图1.9所示。图1.9风速传感器模块实物和接线图1.1.2电源模块设计电源模块设计的原则是需要满足系统各模块的供电要求,是系统能够稳定运行的基础。通过汇总各传感器及各芯片的供电要求分布在3-5V之间。系统预留的USB供电接口可通过对接电源适配器、移动电源、干电池等方式获取一个5V直流电压作为系统的供电电压,5V直流电压可直接满足风速模块的供电电压需求,但CC2530芯片和系统其他模块,还需要1.3V的电压源。根据硬件设计要求本系统选用AMS1117-1.3电源模块,该模块是一个固定电压的三极管,输出在1.267~1.333V之间。电源模块的接线图如图1.10所示。图1.10电源模块接线图图1.10中电容C13是输入电容,对输入电压进行整流;C14是输出滤波电容,避免输出波形振荡。电容C13的第一个作用是把单向脉动电压转换成直流电压,在本系统中输入已经是+5V直流电源了,它可以防止系统突然断电后出现电压倒置,因此通常C13应该大于C14的容量[41]。除此之外,降低工作电压是降低功耗最直接的方式,通过梳理各模块和芯片的供电电压要求,可以发现大多数模块的供电电压为1.3V。这是因为,在数字电路中规定低于电源电压的三分之一为低电平,高于电源电压的三分之二为高电平,在5V系统中,恰好1.3V是其三分之二,这样1.3V的单片机可以直接与大量的5V外部芯片实现逻辑兼容[42]。1.1.3串口通信模块设计ZigBee的TTL串口协议和PC端的不同,PC端Labview上位机和下位机进行数据交换,需借助USB线将ZigBee协调器节点与计算机的串口相连接建立通信,需要通过通信协议的转换,本系统USB转串口电路使用的电平转换芯片型号为CH340G,该芯片可将PC端的USB接口映射为协调器的I/O口,通过该芯片可将下位机系统采集到的数据信息发送到PC端上位机,PC端上位机反馈的命令也通过该芯片发送至下位机CH340G内置了电源上拉电阻和USB上拉电阻,CH340G的TXD脚应该接Zigbee协调器的RXD脚,RXD脚接协调器的TXD脚[43]。芯片的工作电压为3-5V。在X1和X0引脚之间的12MHz的晶振为系统提供基准频率信号,并且分别为X1和X0引脚对地连接振荡电容[44]。串口通信模块的接线图如图1.11所示。图1.11串口通信接口电路图1.1.4ESP8266模块设计ESP8266是由乐鑫公司开发的一款高性能UART转WiFi(串口-Wi-Fi)模块,支持AT指令,主频高达80MHZ,模块自带TCP/IP协议栈[45]。与各类终端设备都能兼容,体积较小,功耗低。在系统中的作用可类比SMA天线,只不过ESP8266模块实现的是Zigbee无线网络与其他终端设备的信息交换本系统采用Zigbee协调器与ESP8266WiFi模块连接。通过对ESP8266WiFi模块的配置初始化,建立Zigbee+Wi-Fi的无线网关,实现Zigbee系统与Android终端的网络连接。ESP8266无线通信模块硬件电路图如图1.12所示。图1.12ESP8266模块接线图1.1.5其他辅助电路设计由于硬件系统分为最小系统和功能底板两部分,则需要通过一对公母排针组合完成Zigbee最小系统与扩展功能底板的电气连接。引脚接线图如图1.13所示。图1.13端口配置电路Led发出的灯光信息可以直接的帮助人们了解环境监测系统的工作状态。Led模块分为工作状态指示和组网指示两部分,D1工作指示灯与1.3V电源连接,上电后常亮。D2组网状态等接至CC2530的P14引脚I/O口,系统正在组网时闪烁,组网成功后常亮。Key主要用于外部数字量信号的输入,接CC2530芯片的RST端口,起复位功能的作用。蜂鸣器模块通过P17I/O口的控制信号来控制PNP三极管的开断,实现报警功能。在本系统调试过程中,将程序下载到ZigBee开发板中时,需要JTAG接口电路[46]。上述辅助电路的原理图如图1.14所示。图1.14辅助电路接线图1.5本章小结本章从硬件设计需要遵循的设计原则出发,制定了设计方案,对关键器件进行了对比选型。对基于Zigbee的建筑环境监测系统中的上位机硬件部分进行介绍。主要包括Zigbee最小系统和功能扩展板的各个模块进行设计,包括传感器模块、串口通信模块、电源模块、辅助电路模块等。通过梳理发现硬件系统只用了较少的元器件就搭建起了Zigbee不同功能设备。2下位机系统软件设计一个能实现具体功能的系统除了硬件的物理支撑外,还需要软件来对硬件进行系统管理,配置合理的驱动来协同实现预期设定功能。在软件设计过程中也需要遵循一定的设计原则。无线通信网络中硬件设备有多种运行方式,选择合适的网络结构不仅可以节约成本,也减小了系统的功耗。以下位机系统实现的功能为设计目标,通过选用合适的开发软件完成了下位机系统的协调器和采集单元终端的软件设计、Labview上位机软件设计和手机APP软件设计,实现软件各部分的设计功能。2.1软件设计要求和方案软件设计遵从如下要求:1)标准化:Z-Stack协议栈中,对于串口调用、寻址、组建网络、退出网络等操作行为规定了标准的协议。程序设计的标准规范使系统有了更好的兼容性,即方便了后期设备的维护、调试,也为系统二次开发的提供便利。使系统具备可扩展性。2)组网灵活:系统能够自动运行,不需要复杂的操作。系统使用人员可以灵活的增删采集终端,提高设备的实用性。增删过程中,各节点设备能够自动寻址、加入网络、退出网络。若设备使用者的需求发生变化,则只需要根据标准化原则修改少部分代码,减小了设备的维护成本。3)可重用性:软件根据模块化开发,当模块结构发生变化时,只需要将程序烧写至硬件,配置好相关驱动即可使用设备,无需更改软件现有的结构,也不会对其他已经使用的模块产生影响,即能在现有的模块基础上创建出新的模块。4)低功耗:根据程序运行的特性,降低软件功耗最直接的方法是精简代码,使软件在设备中运行的通信额增大。精简代码能使程序的结构清晰,容易阅读、理解、测试和修改。根据以上设计要求,系统根据硬件结构结合整体功能的需要对采集单元终端和协调器两部分的软件进行设计,系统上电初始化后,采集单元终端能够采集到各类环境数据,能通过Zigbee无线网络传输至协调器,协调器能够实现数据的转发,并且系统能够自动组网,实现下位机向上位机上传数据的功能。2.2Zigbee简介ZigBee协议是一种低成本,低功耗的无线网状网络标准。定义用于低数据速率短距离无线网络的一组通信协议标准,基于ZigBee的无线设备可以在868MHz,915MHz和2.4GHz频段上运行[47]。Zigbee协议以Z-Stack协议栈的各类函数来实现,Zigbee网络根据通信方式的结构不同分为三种网络拓扑结构,供用户在不同规模下的工程中灵活选择实现,Zigbee网络的集成环境中的工程目录也与Z-Stack协议栈的结构相同,下面对各部分进行简要的介绍。2.2.1Z-Stack协议栈Z-Stack协议栈是Zigbee无线通信从网络底端到网络顶端过程中的各个协议的总集合,也可以将Z-Stack理解成抽象的操作系统,在抽象的操作系统中通过调用不同的函数来实现不同的功能。以ZigBee2006\Z-stack-1.2.3-1.2.1为例,Zigbee协议栈是基于事件驱动的、采用分层的方式,分为底层(PHC)、中间层(MAC)、顶层(NWK)三部分。底层即PHC(物理层),PHC层主要负责对无线收发器的开端控制完成数据的收发,包括信道和链路的选择。Zigbee的工作频段也由MAC层决定,分为2.4GHzMAC层和868/915MHzMAC层两部分。其中2.4GHz为全球统一频段,2.4GHzMAC层支持250Kb/s传输速率,有16个不同的信道,提高了数据收发的效率,缩短了通信时间而降低了功耗中间层即MAC(介质层),MAC层主要负责产生信标/同步信标,负责传输信标帧。对数据进行加密处理,保证信道的通信安全。MAC帧分为:信标、数据、确认和MAC命令四部分。接收到的数据进行MAC层的四帧结构处理,这些数据才可以在无线介质内进行传输。顶层即NWK(网络层),是Zigbee网络结构中的最关键的一层,负责路由、网络发现和网络建立的管理功能,为系统内各设备分配不同的短地址,协同完成数据的传输。也决定了网络的在不同运行状态下的网络结构。另外,网络层会周期性的监测链路状态,确定网络是否正常运行。APL即Zigbee的应用层,包括APS(应用支持层):负责APL与NWK的通信;ZDO(Zigbee设备对象)[48]:应用层端点和APS之间的端点;AF(应用框架)是应用对象的介质环境。整个协议的框架和功能图如图2.1所示。图2.1Z-Stack协议结构图2.2.2Zigbee拓扑结构Zigbee无线通信以诸多优良特性,已经在各行业发挥了巨大作用。Zigbee多种组网方式可以满足不同工作工程中的系统要求,因此本系统的软件设计中需要选择合适的网络结构,在满足系统基本功能之外,同时也应考虑尽量减少设备的数量,来降低功耗、节约成本。Zigbee设备分为协调节点(Coordinator),路由节点(Router)和终端节点(EndDevice)三类硬件设备。Zigbee联盟在Zigbee网络中将硬件设备定义为Fullfunctiondevice,FFD(全功能设备)和Reducedfunctiondevice,RFD(部分功能设备)两部分[49]。FFD可以充当这三种硬件中的任意一种,可以和网络中任何节点直接通信;RFD只能与协调器、路由器通信[50]。FFD更注重对网络管理,RFD则侧重于小局域网的任务完成。其中协调节点(Coordinator)、路由节点(Router)是全功能器件,负责Zigbee无线网络建立、管理、数据转发;终端只能加入网络,通过配置相关的外设模块,属于数据最底层的采集端和发送端;Zigbee无线传感网络的拓扑结构分为:Star(星型结构)、ClusterTree(树状结构)和网状结构(Mesh)[51]。Star结构中没有路由节点,由协调节点和终端设备组成点状网络结构,其明显优势是结构简单,成本较低;树状结构中通过增加路由器数量来扩展局域网的范围;网状结构中的子结构就是树状网络,而同一网络中路由器也可以相互建立通信,系统的稳定性最高,不会因为某些节点的故障而导致无线网络的瘫痪。具体的网络拓扑结构如图2.2所示。图2.2Zigbee拓扑结构图2.2.3Zigbee工作流程Zigbee程序和其他文本程序一样,如8051单片机程序相同,按顺序执行,先从主程序Main()的运行完成系统的初始化操作。运行流程如图2.3所示。图2.3Main()流程图ZigBee2006\Z-stack-1.2.3-1.2.1版本之后,加入了函数调度程序OSAL,是协议栈的核心,目的是为了对协议栈中的诸多程序进行统一管理,简化了Zigbee开发人员的开发难度。整个系统初始化完成后,则从Main()跳入Osal_init_system()中运行,Osal初始化流程图如图2.4所示:图2.4Osal初始化流程图在OSAL系统中,所有事件经过初始化后都会获取一个taskID,表示事件的优先级,在优先级中,开发人员定义的事件优先级最低。在处理事件时,先通过OSAL系统判断优先级,优先级最高的时间通过Osal_Run_task函数调用指针taskEvents()来调用事件处理函数,处理事件。OSAL系统在处理事件时的大致流程如下:“事件表索引,读取事件是否发生、事件处理函数处理、事件标志清零、定时器更新,事件表索引”,时间处理完之后,若无事件在Osal系统中初始化,则系统会切换至PM1状态(Zigbee网络的一种工作模式,通过关闭高频晶体振荡器,降低系统功耗)。2.2.4IAR开发环境本系统选用的主控芯片是CC2530,以增强型8051为内核。常用的开发环境有keil,IAR等。IAREmbeddedWorkbenchfor8051是瑞士IARSystem公司针对多种微处理器如ARM、MSP、CC2530等系统开发的一款基于C语音的交叉编译器[52],由于各种套件齐全,界面简洁,基于IAR开发的各类产品已经在多个行业得到了应用。支持软硬件联调,程序仿真、下载多重功能。故本文选用IAR作为下位机软件开发环境,它能够直接调用Ziebee协议栈各层的函数,也方便后期的软件维护和系统二次开发。IAR编译平台界面如图2.5所示。从图2.5中左侧的目录中可以看出,目录的构架与协议栈的分层结构相一致。而在目录上方的设备类型也与Zigbee的设备类型相同,这可以极大简化编译工作。图2.5IAR编译平台主界面2.3协调器软件设计协调器在本系统中实现的主要功能有:与采集单元终端构建Zigbee星型网络、接收来自终端采集的各类数据、转发至上位机。在构建星型网络的过程中,是基于Z-Stack的事件进行的,各功能层协同完成。详细的网络建立过程如图2.6所示。由图2.6可以看出建立网络过程中调用了各类型的函数,网络建立成功后,协调器会响应请求入网的终端,分配IP地址,此时才能形成一个完整的Zigbee网络。若收到的中断是数据请求,调用voidSampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt)函数,可以接收来自采集终端发送的数据,通过以下程序段将终端采集的数据转发至串口:HalUARTWrite(0,pkt->cmd.Data,pkt->cmd.DataLength);HalUARTWrite(0,"\r\n",2);。图2.6协调器网络建立过程2.4采集终端软件设计采集终端在本次设计中,重点实现下面两个功能:一个是采集各类传感器的数据信息打包上传至协调器,另一个是接收协调器远程发送的反馈命令。采集单元终端加入网络流程图如图2.7所示。图2.7终端加入网络流程图图2.7可以看出,终端节点在加入Zigbee网络过程中,分别给协调器发送了两次响应请求(信标和入网),在协调器完成入网响应之后才建立成功星型Zigbee无线通信网络。连接网络成功后中断的网络状态变为DEV_END_DEVICE,此处终端节点将无法加入其它的Zigbee网络。系统中采集单元终端获取数据的主要是各类传感器模块,终端模块被放置在具体的建筑环境内,主要是用来监测相关环境变量,也可以通过软件编程来增删或改变不同的模块,使系统完成特定的环境数据采集任务。当ZigBee无线通信网络组建成功之后,终端节点通过设定的采样周期,定时采集环境的参数信息,比如温度、湿度、光照强度、二氧化碳浓度和风速等,然后通过ZigBee无线网络远程发送给协调器。同时,终端节点会轮询串口中是否有上位机发送的反馈信号,若存在上位机发送的反馈信号,再通过Zigbee网络发送至采集单元终端的I/O口,通过I/O口发出的电平信号控制三极管的通断,来控制报警模块的通断,实现通过设定阈值的预警。图2.8描述了终端设备的具体工作流程。图2.8采集终端工作流程在采集单元终端的软件编程中,在SampleApp_ProcessEvent()函数中SAMPLEAPP_PERIODIC_MSG变量是接收到的各类传感数据量,经过数值转换,若改变量不为空由AF_DataRequest()函数转发至协调器,发送的时间周期由函数SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT()确定,系统使用人员也可以通过修改此参数,来得到不同采样频率的数据。整个过程均通过调用协议栈函数完成。由于协调器系统只起到对数据的转发作用,为了能够使数据得到下一步的处理,数据包在传输时需要能够被识别,因此需要将数据包进行封装,本系统使用字符“0xA”作为报文头,“OxD”作为报文末。2.3本章小结本章从软件设计要求原则和下位机系统设计的功能出发,介绍了Zigbee通信的核心Z-Stack协议栈的结构框架,通过对比Zigbee网络不同拓扑结构选用了适用于本系统的Star拓扑,之后介绍了Zigbee软件系统的工作流程。介绍了适用于本系统的软件开发环境,对下位机系统进行了软件设计,设计了一个协调器和两个采集单元终端的星型Zigbee网络,采集单元终端可以主动组网,两个终端节点的工作相互独立,提高了整个系统在不同场合的灵活性。为上位机系统能够对数据进行数据的再处理提供了基础。3上位机系统设计为解决环境测试中研究人员在获取环境参数时,需要通过人工记录的方式来完成庞大的数据采集。上位机的设计根据功能需求出发,定向设计了应用在不同场合的上位机。上位机主要通过交互界面,直观把下位机上传的数据呈现给系统使用者,提高用户体验,也提高了各类监测项目的效率,是整个系统设计中的重要部分。通过市面上的不同上位机对比,本文选取LabviewPC端上位机和Android端App上位机进行开发。上位机设计主要分为界面设计和程序设计两部分:3.1基于Labview的上位机设计3.1.1Labview简介Labview是由美国NI公司专门为测量、数据采集而开发一款虚拟仪器,集成了搭建各类应用如FPGA、ARM、DSP的所有组件,Labview与其他计算机语言显著不同的特点是:Labview使用可视化框图G语言代替了传统的代码语言[53]。一个完整的Labview工程项目主要包括前界面和框图程序。前面板界面即可视化用户界面,用作呈现下位机上传的具体数据量,每个前面板模块均有一个后台框图程序与其对应。后台框图程序以图形化编程语言进行编写,与传统计算机语言实现的功能相同。和其他高级语言相一致的地方还有丰富的函数库包括GPIB、数据采集、数据分析、数据显示及数据存储等[54],这些控件以不同的控件图标组成的Lavbiew代码来实现。Labview登录界面如图3.1所示。各类封装函数分类如图3.2所示。图3.1Labview登录界面图3.2Labview各类封装函数选择Labview的原因,即Labview在本系统中的优势:1)充分发挥了PC的性能优势,在长周期环境监测的场合,能够实现大规模数据的存储,大幅度扩充了下位机系统的数据存储能力。相关研究人员可通过已有分析软件,不需要复杂的数据转换,可以直接对环境监测仪器设备上传的数据进行使用。2)Labview上位机可根据不同的需求灵活设计具体功能,且Labview有很强的兼容性,能直接移植到不同操作系统下使用,提供了系统在不同工程场合下的应用。和下位机系统的连接容易实现,便捷地将下位机和网络、其他外设联系起来。3)Labview开发成本较低,开发周期较短,这类框图形式的程序不需要太多复杂的数据结构和算法,后期几乎不需要投入成本维护。3.1.1上位机程序设计Labview主程序框架由while循环和for循环组成,while循环使整个程序在可控范围之内,通过初始化串口,从串口中获得下位机系统连续的数据输入,for循环用来绘制曲线和数据存储[55]。从串口中读取下位机通过无线模块传输过来的数据,就必须用到仪器I/O串口目录下的VISA函数[56],主要用到的有VISA配置、VISA读和VISA关闭三种。VISA配置是程序设计的第一步,也是最关键的一步。正确的配置才能通过串口实现通信功能。本系统中的串口应用分为对下位机声报警模块的控制和接收下位机不断发送上来的数据两种类型。Visa配置中的读取字节数的设置也比较关键,该参数的设定后,缓冲区会判断字节数是否达到设定值,如果未达到,则缓冲区会一直等待知道字节数匹配,因此我们需要配置Bytesatport属性,通过

选择SerialSettings中的NumberofBytesatSerialPort属性窗口配置,然后将VISA配置的输出端连接至“读取字节数”的输入,就能完成缓冲区字节的实时读取。下位机串口通信模块CH340G支持常用的通信波特率,默认为9600,则VISA配置串口函数设置波特率为9600,报文头和报文末字符和下位机设置相同,其他参数设定为串行通讯的数据格式默认值。通过VISA读取函数可获取由Zigbee系统采集到的各类环境数据、串口写入函数则实现了PC端向Zigbee系统传递数据。安装过CH340G模块的PC机,通过USB数据线连接下位机与PC端,VISA函数的资源寻址功能可以自动分配可用的COM口。VISA关闭函数是为了整个程序的运行可控,从接收数据到处理数据是一个完整的过程,该过程为单向循环,处理完数据之后就表示着该周期的结束。整个Labview上位机的流程是通过串口接收下位机系统的各类数据,拆分和转换,再分配到前面板。系统的子程序框架如图3.3、图3.4和图3.5所示。图3.3VISA配置程序图3.4数据显示、光报警模块程序图3.5阈值设置模块程序数据的存储只需要在串口输入时调用路径存储控件,直接与串口输入端相连接,存储格式为字符串。存储模块程序如图3.6所示。3.6路径存储模块程序3.1.1上位机程序设计根据PC端Labview上位机开发设定的预期功能,将前面板分为控制模块,显示模块,阈值报警模块和变化趋势模块4部分。各个功能模块都包含了建筑环境采集系统的各类参数包括温度、湿度、CO2浓度、风速和光照强度。Labview主界面如图3.7所示,变化趋势模块界面如图3.8所示,以CO2为例。图3.7Labview主界面图3.8CO2变化趋势界面1)控制模块:主要负责控制上位机的运行、数据的存储地址选择。包括串口号选择按钮、上位机系统运行/停止按钮和数据存储路径选择。2)显示模块:包括各采集终端节点上传的5类环境数据的窗口显示和条形图显示两部分,数值单位为各类传感器标准单位,故未在图中标出。条形图量程可根据使用者需要随意调整,只需要双击需要改动的量程数值,手动输入。3)报警模块:主要包括阈值输入框和报警指示等两部分。系统使用者可根据实际需求通过点击阈值模块的输入框,手动输入阈值。系统中对对CO2浓度和风速设计了高阈值;温度、湿度、光照强度设计了高低阈值;系统通过采集值和设定阈值对比来实现报警功能,若采集值不在阈值范围内,则报警灯显示为红色,同时反馈信息至下位机系统,配合蜂鸣器的声报警,提醒系统使用人员。若在范围内,报警灯显示为绿色。4)变化趋势模块:主要完成对上位机上传的数据的汇总,以曲线的形式直观的展示给系统使用人员,为数据的变化提供了一种直观的辅助手段,也便于使用人员可以迅速找到异常数据。变化趋势的XY坐标有自动匹配(AutoScal模式)和手动设定两种可供使用者选择,一次完整的曲线变化周期最多可包含1000个数据。3.2基于Android的APP设计在具体的建筑环境采集项目中采集数据大多数属于周期性数据,如每间隔15分钟纪录一次,在一些低密度的空间环境中只需要一个集成度较高的采集单元即可满足环境参数获取。故本系统针对单采集节点的场合开发了Android端的手机App,通过结合Wi-Fi网关扩大了Zigbee系统的监测范围。系统通过结合人们日常使用移动手机,提高了环境采集监测方式的灵活性。3.2.1Android简介Android是以Linux为内核的操作系统,Android设备的应用程序是通过Java语言开发的[57],Java语言有丰富的封装函数库和和(API)应用程序编程接口,为开发人员提供了极大了便利[58],近年来,移动通信通断设备的不断普及,推动着Android系统的不断升级优化,Google公司于2020年9月9日,发布了最新的版本Android11。AndroidApp广阔的应用市场也推动着相关集成开发环境的功能越来越强大,本系统的APP将基于Windows10进行开发,在进行Android工程之前需要做好一些必要的准备:1)JDK可以通过Oracle官方网站下载压缩包,是专应用于Java语言的开发工具。下载后安装完成后,需要新建两个Java变量,这个两个变量的值分别赋为JDK的安装目录和“;%JAVA_HOME%\lib;%JAV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论