道路节能照明终端设计和实现 电子学电气工程专业_第1页
道路节能照明终端设计和实现 电子学电气工程专业_第2页
道路节能照明终端设计和实现 电子学电气工程专业_第3页
道路节能照明终端设计和实现 电子学电气工程专业_第4页
道路节能照明终端设计和实现 电子学电气工程专业_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

道路节能照明终端设计摘要随着城市建设工作的不断开展,各种各样的路灯照明系统也在城市之中建立了起来,其一方面让群众获得了视觉上的美观感受,另一方面也让城市的特色得到了体现,然而与此同时,这些照明系统也产生了许多需要解决的问题,例如管理成本、物料成本、电力成本以及安全问题等。随着物联网系统的不断发展,人们对于道路照明系统也有了更多的需求:除了基础的照明作用之外,其还要具备智能性、科技性以及互联性,其主要目的是要对路灯从单点到整体进行监管,并进行相应的调节.以物联网技术为基础的道路照明控制体系在原本照明系统的基础之上,有效整合了网络通信、物联网、嵌入式以及传感器等多方面的技术,为智能电网的构建奠定了基础。以ZigBee无线模块以及LED光源为基础的路灯系统有着较高的自动化程度,同时效率高、能耗低,LED本身的耗能较少,材质环保,使用寿命长,而ZigBee模块则能够对整个照明系统进行调节与控制,不但能够有效降低整个系统的能耗,同时还能够让照明设施的寿命进一步提高,降低维护成本。本文针对ZigBee网络的特性,分层结构以及协议栈,信息传输模式以及网络拓扑等多个方面进行探讨,同时结合系统的实际需要,研究并设计了以ZigBee为基础的道路照明控制控制系统,同时进行了以CC2530单片机为核心的电源控制电路、LED照明控制电路、光强收集电路等硬件模块的设计。经测试,该设计在100m范围内可以做到可靠的通信传输,并实现灯光的控制调节,相比于传统路灯系统具有结构简单、可无线控制的优势,有较好的应用前景。关键词:ZigBee,CC2530,无线路灯DesignofRoadLightingEnergySavingTerminalAbstractWiththedevelopmentofcityconstruction,allkindsofstreetlamplightingsysteminthecityalsobuildup,onesidetoletthecrowdwonthebeautifulfeelingonthevision,ontheotherhand,urbancharacteristicsreflectedatthesametime,however,thelightingsystemalsoproducedmanyproblemsneedtobesolved,suchasthemanagementcost,materialcost,powercostandsafety,etc.WiththecontinuousdevelopmentoftheInternetofthingssystem,peopledemandforroadlightingsystemsalsohavemore:inadditiontobasiclightingeffect,itwillbeintelligent,integratedandinterconnectedness,itsmainpurposeistoregulateforstreetlightfromasinglepointtoasawhole,andmakecorrespondingadjustment.BasedontheInternetofthingstechnologyofroadlightingcontrolsystemonthebasisoforiginallightingsystem,theeffectiveintegrationofthenetworkcommunication,theInternetofthings,embeddedandsensortechnology,whichlaidafoundationfortheconstructionofsmartgrid.BasedontheZigBeewirelessmoduleandtheLEDlightsourceofthestreetlampsystemhasahighdegreeofautomation,highefficiency,lowenergyconsumptionatthesametime,theLEDitself,lessenergyconsumption,environmentalprotectionmaterial,longservicelife,whereasZigBeemodulecancarryontheadjustmentandcontroloftheentirelightingsystem,notonlycaneffectivelyreducetheenergyconsumptionofthewholesystem,atthesametimealsocanletthelightingfacilities,tofurtherimprovethelifeofalowermaintenancecosts.AimingatthecharacteristicsoftheZigBeenetwork,hierarchicalstructureandprotocolstack,theinformationtransfermode,anddiscussestheseveralaspectssuchasthenetworktopology,combiningtheactualrequirementofthesystematthesametime,theresearchanddesignthecontrolsystembasedonZigBeeroadlightingcontrol,atthesametimetheCC2530single-chipmicrocomputerasthecoreofthepowercontrolcircuit,LEDlightingcontrolcircuit,lightintensitycollectioncircuit,thedesignofthehardwaremodules.Thetestshowsthatthedesigncanachievereliablecommunicationtransmissionandcontrolandadjustmentoflightwithin100m.Comparedwiththetraditionalstreetlampsystem,ithastheadvantagesofsimplestructureandwirelesscontrolandhasagoodapplicationprospect.Keywords:ZigBee,CC2530,WirelessStreetLight目录1281_WPSOffice_Level1第1章绪论 119992_WPSOffice_Level21.1课题研究背景 130723_WPSOffice_Level21.2国内外路灯控制系统现状及分析 110915_WPSOffice_Level21.3ZigBee技术介绍 2459_WPSOffice_Level21.4本课题主要研究内容 528329_WPSOffice_Level1第2章系统方案设计 621183_WPSOffice_Level22.1无线路灯控制系统的组成 624919_WPSOffice_Level22.2系统核心技术分析 65169_WPSOffice_Level1第3章系统硬件电路设计 829231_WPSOffice_Level23.1系统总体设计方案 832069_WPSOffice_Level23.2单片机最小系统 84801_WPSOffice_Level23.3光敏电阻光强采集 931813_WPSOffice_Level23.4路灯控制电路 95956_WPSOffice_Level1第4章系统软件设计 1132593_WPSOffice_Level24.1Z-Stack及软件环境 117416_WPSOffice_Level24.2网络中终端的设计 1432716_WPSOffice_Level24.3系统的组网设计 1411368_WPSOffice_Level1结论 1819959_WPSOffice_Level1参考文献 1916146_WPSOffice_Level2谢辞 2018069_WPSOffice_Level1附录1源代码 2119200_WPSOffice_Level1附录2原理图 2910901_WPSOffice_Level1附录3实物图 30绪论1.1课题研究背景随着地区发展与基础建设步伐的加快,各城市之间道路照明的建设规模越来越大,但是介于传统路灯系统耗能高等缺点,传统的路灯控制系统已经不符合当今社会低能耗、低碳的能源观发展需求。首先,控制路灯的系统功能少,技术落后,灵活性差;其次,由于道路照明规模的增加,路灯控制需要的人力资源、财力比以前大大增加,仍然难以高效率地发挥其所具有效能;另外,传统的路灯控制系统更新难度大,不能利用远程技术控制和巡查路灯,需要人员去实地巡查,才能知道路灯的实时状况,不仅工作量庞大,而且效率低下[1]。目前我国大部分地区的路灯控制系统的应用技术不高,还在使用传统的简单的人员控制,碍于这种控制系统由于没有采用无线通信技术,路灯的工作状态无法通过实时数据获知,维修和管理要依靠人员巡查等传统方法,导致无法实现对路灯的集中监控、操作和数据统计,这导致了白天亮灯,夜间不亮灯的现象经常发生,不但造成电力资源,人力资源的浪费,又会给人民的出行带来一定的安全风险[2]。1.2国内外路灯控制系统现状及分析无线路灯控制系统的控制模式为分布式,而信息收集模式则属于集中式,其综合运用了IT技术以及控制技术,并能通过软件编程以及通信技术实现对习惯照明设备的调节与监管。就目前世界路灯系统的发展程度而言,国外在路灯控制方面的所使用的技术明要比国内的更先进,并且在使用规模和技术水平上远远优于国内。在计算机运用技术普遍发展,方案成熟的当今社会,利用计算机实现路灯各方面的控制,已经成为了常用方法,英国、美国、澳大利亚、法国等国家使用电脑程序控制路灯的自动开闭以及故障路灯的检测,使得管理路灯所消耗的资源成本大大降低。和国外相比较,我国的无线路灯控制系统的发展还处于起步阶段,大部分地区路灯的控制由分散管理的控制器进行控制,分散性高、排障率低,仍处在人工直接现场控制阶段。由于系统中缺少远程通信和传感器采集数据功能,管理人员无法统一进行控制,导致路灯的实时控制结果不能集中监测、记录和统计,大部分管理部门采用人员巡察形式,设备是否健康运行主要取决于白天巡查线路,夜晚检查路灯,在耗费大量的财力和人力的同时,实时性也差,维修故障的效率很低,难以满足当今社会大面积建设路灯要求[3]。随着科技进步,物联网技术越来越成熟,各行业取得了许多实际研究成果,极大的推动了信息技术的发展。未来的路灯控制系统的发展方向应该更集中、无线化、更智能。对于管理人员来说,只要在控制中心,就能监测到整个路灯系统的实时状况;对于维修人员来说,能迅速知道故障路灯位置和故障形式;对群众而言,高质量的控制系统能够为出行提供良好的保障。ZigBee技术可以较好地实现上述需求。1.3ZigBee技术介绍1.3.1ZigBee无线通信技术ZigBee是最近兴起的无线网络技术,具有能耗小、价格低廉、复杂度小、距离近且数据率低等特点,拥有5层的体系结构,从低到高分别是物理层、介质接入控制层、网络层、运输层以及应用层。其中物理层位于协议的最底层,并且遵循IEEE802.15.4标准的规定,拥有具有低功耗、易开发、成本低的优点。MAC层的作用是实现结点之间的链路管理工作,并提供信道控制、时限控制、帧格式控制以及安全保障等功能。运输层以及网络层是在上述两层的基础上通过软件构建的,主要功能有建立新的网络、添加节点、删除节点、实时调整网络中节点的通信方式、管理PAN的网络ID、将地址分配给刚加入网络的节点、实时监控终端的同步运行、实时管理网络中的路由节点、对信息进行管理和防护网络安全等。应用层则负责建立功能函数开发接口(API),提供对设备配置子层ZDC和设备对象ZDO的支持,从而达到管理整个硬件系统的功能。此外,ZigBee协议还提供了安全功能层,可以选择32/64/128位的秘钥,对传输的信息进行加密处理,以确保通信数据的安全传输,同时为网络层、应用层提供可靠安全的服务[4]。ZigBee协议结构如图1-1所示:图1-1ZigBee协议结构图ZigBee能够选取的频段包括3个,主要有2.4GHz的ISM频段,其中共划分了16个信道;频率为868MHz的欧洲频段,其中共有1个信道;频率为915MHz的美国频段,其中共划分了10个信道。中国采用免申报和免专利费的频段是2.4GHz频段,频段长度为2.405GHz—2.480GHz,以5M作为划分,共有16个信道可供使用,同时还具有很强的信道抗干扰性能。由于物理层选取了DS/FA技术(DirectSequence/FrequencyAgility),因此其能够在较低信噪比的场合之中体现出较高的抗干扰作用。其传输的速率通常为20到250KB/s之间,对于传感器的数据收集等场景较为适用,也能够很方便的进行控制信息的发送。现阶段ZigBee已经得到了十分普遍的使用,例如无线环境下的信息收集、设备管理、移动设备、智能家居、远程控制等等[5]。1.3.2ZigBee组网及网络拓扑ZigBee协议中一共涉及三类设施,分别是全功能设施(FullFunctionDevice,FFD)、简化功能设施(ReducedFunctionDevice,RFD)以及协调器。网络协调器实际上是拥有运算能力更快和资源更加丰富的一种FFD设备。RFD在组网拓扑中通常作终端设备,仅仅使用8位的MCU和4K的片上资源就能完成ZigBee协议的功能,但终端RFD相互之间是不能直接用无线通信的,所以每一个ZigBee网络中必须至少拥有一个FFD协调器设备,来管理和维持网络的数据传递、建立网络等功能。ZigBee的网络拓扑结构共有3类,分别是星形、链式以及网状的结构,具体可参考下图:图1-2ZigBee网络拓扑星形结构搭建最简便,所有端结点都和中心的协调器进行交互。链状型网络拓扑中采用FFD作为协调器与终端间传递数据的路由节点,能够进一步延伸网络通信的范围。网状型网络拓扑是ZigBee组网中使用的最复杂也是最可靠的网络拓扑结构,当某个节点出现问题而不能通信时,数据能通过其他链路传到协调器,从而发现网络中的故障,具有自修复、抗干扰等优点。1.3.3ZigBee与其他无线网络的对比ZigBee符合了IEEE802.15.4标准中的相关要求,是一种速率较小的无线网,图1-3是ZigBee与其他无线技术的工作距离和速率对比图,由图可知与它具有相似特性的无线网络有:蓝牙(Bluetooth)、Wifi、NFC以及移动蜂窝网(Cellular),每种网络都有自身的特性以及各自的适用场景。ZigBee能够选取的频段包括3个,主要有2.4GHz的ISM频段,其中共划分了16个信道,最高速率为250Kbps;频率为868MHz的欧洲频段,其中共有1个信道,最高速率为40Kbps;频率为915MHz的美国频段,其中共划分了10个信道,最高速率为20Kbps。由此能了解到ZigBee技术的最初目的就是为了满足对低数据传输率的工业控制、数据采集、传感器应用领域的开发需求[6]。图1-3网络速率、距离特性对比图表1-1网络图1-3各无线技术工作距离和速率对比表1-1详细数据对比规范频段速率(Mbps)数据/语音最大功耗传输方式连接设备数安全措施主要用途ZigBee868/915Mhz2.4Ghz0.02/0.040.25数据1-3mW点对多6553532/64秘钥控制网络/传感器网络蓝牙2.4Ghz1/2/3语音数据100mW点对多8跳频/秘钥近距离遥控Wifi2.4Ghz11-54数据100mW点对多255WEP加密无线局域网红外820nm1.52/4/16数据1-3mW点对点2IrDA个人局域网综合各数据,与其他无线技术相比,ZigBee有以下几点优势:(1)成本低廉:ZigBee的协议栈大小只有有蓝牙的十分之一,约为30kb,这使得开发的周期与成本大大降低。ZigBee所使用的无线频段为免牌照频段,工作节点只有2种,其中大多数是廉价的RFD节点,这使得开发成本进一步降低。(2)组网能力强:ZigBee协议能支持庞大数量的节点同时组网,和3种组网方式,能构建极其复杂的网络拓扑,在大规模组网应用中,向比于蓝牙、Wifi等无线技术,有着无可比拟的优势。(3)功耗低:ZigBee模块所采用的硬件的工作电流和速率都比较低,还能支持多种睡眠模式,在无数据收发的时候,会进入睡眠状态,从而减少能耗。(4)有效范围小:节点间直接通信的距离能达到100m,在使用射频功率放大器增加发射功率后,节点间直接通信的距离能增加到数千米。1.4本课题主要研究内容本项目将在ZigBee无线技术的基础之上,针对路灯控制系统进行分析和探讨,全面详实地分析核心系统以及终端软件,并进一步对完整的系统进行设计。在硬件方面,选用了TI公司的CC2530作为核心芯片,在Z-STACK的基础上开发出用于无线控制路灯的系统。软件方面,使用C语言并在IAR开发环境中运行烧录仿真。系统方案设计本章将在ZigBee技术的基础之上对路灯控制系统的相关需求进行全面的分析,同时得到本系统的系统设计模型,并对涉及到的相关技术进行探讨,主要包括设计使用的CC2530单片机以及ZigBee技术。2.1无线路灯控制系统的组成本系统包括两大模块。终端路灯控制节点,负责实现对路灯的控制,以及返回路灯控制器的状态。协调器主要实现接收来自各节点的系统信息,以及可以独立控制各节点的路灯状态。其整体框如图2-1所示:图2-1无限路灯控制系统2.2系统核心技术分析本设计采用CC2530芯片作为每一个路灯的控制终端,CC2530能将每一个路灯的信息采集到内存中,然后经过数据的初步处理,通过2.4Ghz的无线通信传递给网络中的协调器。CC2530是挪威的Chipcon公司生产的适用于IEEE802.15.4标准以及ZigBee技术的芯片系统。其中内置了增强的8051处理器,同时还配置了相应的RF无线收发器,具有最高256Kb的闪存(Flash),和8kb的运存(RAM)。片内资源分别有:8路输入和12位分辨率的模数转换器(ADC);2个支持多种串行通信协议的串口(USART);-97分贝的接收灵敏度和抗环境干扰能力,通过编程使得输出功率高达4.5dBm的RF信号收发器;5个强大的DMA通道;21个通用I/O引脚;看门狗定时器[7]。本设计主要用到的资源分别为:8051内核;定时器;通信串口;I/O口;和RF无线通信模块,其基本介绍如下。增强型8051核心:该芯片中的控制器为8051处理器。它使用3种不同功能的内存用来访问总线,分别为SFR,DATA和CODE/XDATA。它的核心程序与标准的8051内核程序是相互兼容的,只需修改少量的特殊代码,就可以将程序移植到CC2530上。定时器:CC2530中共有4个定时器,编号分别是Timer1(16位)、Timer2(16位)、Timer3(8位)、Timer4(8位)。其中Timer2为MAC定时器,其余为常用的定时器。通信串口:CC2530内部有2个强大的USART,可以设置成普通串口模式和SPI模式,它们都有自己的波特率发生器,在使用时不占用定时器资源。I/O口:CC2530共有P0、P1、P23组共21个引脚,通过相关的功能寄存器,实现串口、DMA、外部中断等等功能。RF无线:频段在2.4Ghz-2.4835GHz的一个IEEE802.15.4兼容无线收发器;接收灵敏度和抗干扰能力都很强,适合中距离传输;利用软件方式可以将输出功率调整到4.5dBm;同时其还提供了帧生成、数据的同步以及检查功能、10bit的CRC检验码以及MAC保护等一系列功能。

系统硬件电路设计3.1系统总体设计方案硬件电路以CC2530为核心,通过外围电路达到系统设计的功能。在硬件电路部分,分别是电源电路、核心板电路、光传感器电路、路灯控制器电路、路灯驱动电路。硬件电路框如图3-1所示:图3-1系统框图3.2单片机最小系统CC2530芯片的最小系统主要由单片机、晶振、复位模块以及电源系统所构成,其引脚结构可参考图3-2:图3-2CC2530引脚图单片机最小系统还涉及到电源、复位以及晶振等模块。电源稳压模块通常借助USB或是电池提供电源输入,然后在电源的入口和出口分别并联电解质电容和无极性电容起到去除电源纹波的作用,稳压芯片主要采用较为常见的AMS1117-3.3稳压出3.3V作为系统的电源输出。其原理图如下图3-3:图3-3稳压电源原理图3.3光敏电阻光强采集光敏电阻实现光照强度的采集主要靠电路和光敏电阻的分压,然后单片机采集之后换算光照强度来实现对路灯的控制,其原理图如下图3-4:图3-4光照强度采集3.4路灯控制电路单片机的引脚大约只有20mA的驱动能力,所以在模拟路灯的情况下,我们添加了一个LED路灯的驱动电路,采用ULN2003驱动来调增大驱动能力,这样即使USB供电的LED外设也能驱动起来。其电路图如下图3-5:图3-5路灯驱动电路

系统软件设计本设计的核心是CC2530芯片,并根据功能的不同,划分了协调器和终端2种功能节点。在系统设计中,本设计使用了TI公司的Z-Stack作为芯片的协议栈,并在协议栈上开发出所需要的功能代码。在组网的过程中,协调器负责接收并解析客户端串口的命令,将所解析的命令传给终端,同时将所有终端的信息传输给客户端。终端则会在协调器的控制下,将信息传输给协调器。在控制路灯功能方面,两者都具有直接控制、时间控制和光强控制功能。4.1Z-Stack及软件环境Z-Stack是包含从物理层、链路层、网络层到最终应用层的综合协议栈代码,由TI公司基于CC530开发。我们只需要调用协议栈中封装好的API函数,和按要求添加、修改功能就可以实现所需要的功能。其工作流程如图4-1所示:开始开始关总中断初始化硬件抽象层初始化寄存器初始化I/O初始化非易失系统初始化MAC确定扩展地址初始化非易失数据初始化应用框架初始化操作系统打开中断硬件设备初始化进入主循环函数运行一个任务执行任务事件是否有任务CPU休眠YN图4-1协议栈工作流程图在本研究中所使用的Z-Stack版本号为2.3.0-1.4.0,硬件设计全部是基于IAR软件系统。用户只要在协议栈的APP中加入所需要功能的C源文件,上层应用接口只要调用用户的功能函数,即可实现目标功能。协议栈工程目录如图4-2所示:图3-10IAR工程文件目录3.2.2网络中协调器的设计图4-2协议栈工程目录这里需要特别关注的是协调器的配置,因为在ZigBee网络里协调器是作为整个网络的核心而存在的,且仅有一个。其角色主要包括:(1)初始化操作系统,启动片内硬件资源。(2)建立拓扑网路。(3)搜索周围节点,并分配周围节点的地址。(4)收集周围节点的无线数据,简单处理后发送给客户端。(5)接收客户端发来的命令,并解析命令,做出相应控制。主要的控制任务有:(1)检测路灯的亮度。(2)读取环境光强数值。(3)根据所选功能与实际数据,对路灯的亮度进行控制。由于现实中路灯的控制频率并不高,实时性控制需求较弱,由此,本设计引入了“心跳”机制去实现整个系统的任务时序。“心跳”机制就是每隔一段相同的时间,执行一次所需要执行的任务,这样会避免频繁的开关灯操作,减少网络中信息传递的拥堵和减少传感器数据的误差。在协调器中,利用定时器3设置定时功能为1秒的定时中断,中断函数读取当前时钟芯片的分钟值,每当分钟值跳变一次,则将信标通过无线发送给其他终端节点,同时执行一次所要执行的任务。终端收到信标后,同样的执行任务,并将数据发送给协调器。在协调器的协议栈中,采用任务轮询的机制去执行任务,这样能节省更多的功耗。其中串口轮询函数voidSampleApp_SerialCMD(mtOSALSerialData_t*cmdMsg)是处理客户端数据的函数,具体内容如下:uint8i,len,*str=NULL; //定义长度len、指针strstr=cmdMsg->msg; //表示用户数据的起始len=len*str //数据部分的首字节表示数据的总长度;for(i=1;i<=len;i++)//i=0的指针为数据总长度{SysOrder[i-1]=*(str+i);}//将数据放到SysOrder数组DataDeal();//调用函数处理传入的数据if(SendToOther==1)//判断无线发送标志{RFSend(SysOrder,0x07);}//无线发射数据 客户端数据由DataDeal()处理后,调用执行器执行相应的功能。另外本设计在轮询任务中加入了定时器中断,以实现周期执行任务功能。定时器初始化代码如下:HalTimerInit();//定时器硬件初始化HalTimerConfig(HAL_TIMER_0, //TIMER_0为定时器3HAL_TIMER_MODE_CTC,//清零比较模式HAL_TIMER_CHANNEL_SINGLE,//要配置的信道HAL_TIMER_CH_MODE_OUTPUT_COMPARE,//输出比较模式TRUE,//使能定时器3GetTime);//中断执行函数HalTimerStart(HAL_TIMER_0,1000);//中断周期定义为1000毫秒在1秒的定时中断中,读取时钟芯片的分钟,并进行判断,如果发现分钟数发生变化,则执行相应的“心跳”函数。函数流程如下:Now_Light=ReadLight();//读取光传感器数据SendBeacon(); //无线发送信标给终端LightSend(); //串口发送环境光强Delayms(50); //延时L1_Crtl(); //执行控制1组LEDModeSend(); //串口发送协调器路灯模式L2_Crtl(); //执行控制2组LEDLedStateSend(); //串口发送当前路灯亮度SendCtrlTime(); //串口发送定时开关灯的时间终端在收到信标后,便会执行预设好的任务,同时将信息反馈给协调器。协调器对终端的数据处理与对串口的数据处理相似,亦是先把数据存储到特定数组,再解析数据,然后根据数据来执行相应的任务。4.2网络中终端的设计相较于协调器的功能配置,终端的设置较为简单,在ZigBee网络中终端所起的作用包括:(1)发出网络申请请求至协调器中。(2)接受、处理来自协调器的消息,并作出相应的反应;(3)按设定的帧格式向协调器发送采集好的数据。(4)采集光传感器所采集到的环境光强数据。(5)断网后如果再次搜索到协调器则自动重连入网。主要的控制任务是根据设置的功能,结合当前时间和环境光强,对路灯的亮度进行控制。在终端的协议栈中,同样是使用轮询机制去执行任务。当有协调器数据发过来时,终端才会触发接收函数SampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt),其中的具体代码是:uint8len,i;//数据长度uint8*str=NULL;//指针清零switch(pkt->clusterId)//指向任务号{caseSAMPLEAPP_COM_CLUSTERID://接收数据的任务号len=pkt->cmd.Data[0];//led为数据长度for(i=0;i<len;i++){NetAccept[i]=pkt->cmd.Data[i+1];}//将每一个数据都存入NetAccept[]NetAcceptDeal();break;//接收数据处理NetAcceptDeal()函数会对传入的数据进行解析,得到相应的命令,然后执行预先设定好的任务。当终端执行完任务后,会在一定的延时之后,将所得的数据发送给协调器。因为在网络中,同时存在有多个终端节点,如果同一时间发送数据给协调器,容易造成无线网堵塞,使数据丢失。每个终端会根据本身的ID号,延时不同的时间再发送数据。4.3系统的组网设计4.3.1网络拓扑及联网设计本设计采用星状的网络拓扑,以广播的方式进行通信,协调器作为网络的中心,接收来自终端的信息。下面简述一下网络的形成过程:首先协调器功能配置完成后通电运行,可以扫描周围环境中是否存在终端节点,发现存在终端节点后就向其发送一个称为信标的消息,表示允许终端加入网络。终端收到信标后即可向协调器发送加入网络的申请,随后收到协调器发过来的一个短地址。这样随着所有终端都加入到网络中,一个庞杂的星状网络就构成了。网络的创建与设备的加入都是建立在协议栈的网络层,而不需要人为的去设定各种参数,为开发提供了良好的环境。在Z-Stack中,无线之间的传输是通过特定的通信协议去规范的,开发人员只需改变其中的一些参数即可实现数据传输。无线帧主要有2种,分别是信标帧、数据帧。信标帧用于整个系统的同步运行,避免数据冲突、丢失等现象出现。数据帧由应用层(APL)生成,接着传递给MAC加上帧头和帧尾等必要的结构,再由硬件发送出去[13]。两种帧结构如表4-3所示。以下是协议栈中无线数据帧的发送函数:AF_DataRequest(&SampleApp_Periodic_Addr,//发送目的地址、端点地址以及通信方式&SampleApp_Com//发送源的端点SAMPLEAPP_COM_D_MARU//可自定义组IDLong+1,//数据总长度Data,//数据&SampleApp_TransID,//数据帧序列AF_DISCV_ROUTE,//发送方式AF_DEFAULT_RADIUS);//传递节点个数在本设计中,无线传输方式是广播,目的地址是0XFFFF,即网络中所有的终端设备[14]。如果某终端处于休眠状态,使用该目的地址时,数据将会存储在协调器内存中,直到终端被唤醒时发出。簇ID设置为3,序列号与发送选项使用默认设置。所传递的数据放置在Str数组里面。当接收端,登记任务ID之后,接收到的AF无限数据将被作为触发事件调用任务轮询函数即SampleApp_ProcessEvent()并执行相应的函数功能,该函数包含在协议栈中。其中AF接收数据任务为caseAF_INCOMING_MSG_CMD。本设计在此处添加了数据解析函数SampleApp_SerialCMD((mtOSALSerialData_t*)MSGpkt);用于把无线的数据解包,并存入数组。表4-32种无线帧的结构字节214或102kmn2MAC层帧控制序列码寻址信息超帧GTS未处理事务地址信标负荷FCS信标帧结构字节214或20n2MAC层帧控制序列码寻址信息信标负荷FCS数据帧结构4.3.2系统中通信协议的设计数据传输的准确和完整有赖于通信协议的精确设计,协调器与客户端之间通信和协调器与终端间的通信都需要建立在通信协议之上,本设计自主定义了应用层通信协议的格式,用实现数据采集和功能操作,主要格式如表4-1所示:表4-1命令帧格式字节数111211帧头0xDA设备ID设备命令数据校验和0xAD帧尾客户端可以向某个路灯发送命令,以达到控制的目的。例如单灯亮度调节、查询路灯系统实时时间、采集环境光强等。协调器则可以将所采集到的信息,包括自身信息和终端的信息,按照帧的格式将数据发送给客户端。例如发送一帧自身环境光强为1000Lx的命令帧为:0XDA,0X01,0X20,0X03,0XE8,0X42,0XAD。其中,0X01为设定的协调器ID号,0X20为采集光强的命令字,0X03,0XE8为1000化为16进制后的高位数据和低位数据,0X42为整一帧的校验和。在串口和无线通信中,均采用此格式传递数据,以保证数据的准确性。在设计通信命令时,已经确定好了所有的设备命令,所以可以将回答帧设计的稍短一些,具体格式见表4-2:表4-2应答帧格式字节数1111帧头0xDA设备ID设备命令0xAD帧尾应答帧的主要功能是用作系统操作的反馈,当硬件执行成功的时候,将会发送应答帧给客户端,以表示所执行的功能成功执行,而当执行失败时则不会发送应答帧。在每个协议帧后面,会附有一个用于检验数据是否正确的8位的校验和。使用校验和能有效的增加数据的准确率,并且其算法较为简单,广泛应用于通信领域。本设计中使用Switch方法去实现数据帧的解析。每次准确接收一个数据帧后,系统会将该帧分解成数个包含相应执行函数的分支,函数的代码如下所示:if(SysOrder[0]==0xDA&&SysOrder[6]==0xAD){//比较帧头帧尾确认收到正确数据switch(SysOrder[1]){//解析目标节点IDcase0x00:{switch(SysOrder[2]){//ID为0x00case0x01:case0x02:case0x03:}}//解析命令执行任务123case0x01:{switch(SysOrder[2]){//ID为0x01case0x01:case0x02:case0x03:}}}//解析命令执行任务123如管理员人操作客户端发出一帧协调器开启时间控制的命令0XDA,0X01,0X06,0X81,0X81,0X42,0XAD,协调器首先解析帧头、帧尾、校验和是否正确,然后通过SysOrder[1]获得ID号为0X01,SysOrder[2]获得命令号0X06,然后会执行SetTimeMode(SysOrder[3],SysOrder[4]);Answer(0x06);break;。当检测到SysOrder[3],SysOrder[4]均为0X81时,协调器会将时间控制的标志位置1,开启时间控制模式,随后通过Answer(0x06);把任务执行后的应答函数发出,客户端收到应答信号后显示时间控制功能已开启,从而完成对硬件系统的操控。结论在本研究中为了提高传统路灯控制系统的稳定性和使用性能,设计了一个基于ZigBee芯片CC2530芯片的新型控制系统。考虑使用ZigBee技术是因为该技术具有能耗低、管理简单的优点,已经被广泛运用在各种无线传输系统中比如路灯控制系统。目前国内这方面的研究相对于发达国家较为滞后,推广ZigBee技术在促进低功耗、高传输速率的物联网应用中具有重要的意义。本研究的主要工作包括:(1)综合比较目前常用的无线传输技术的优缺点,结合项目需求选用ZigBee技术运用于本研究。(2)设计并实现路灯控制系统的各个模块包括光强采集单元、控制单元、稳压电源单元等,并对设计的系统的功能进行了测试;(3)结合ZigBee技术的特征,考察了采用不同协议栈的运用效果,并实际配置了协调器和终端来运行系统。(4)设计了符合系统要求的通信协议,并对协议中数据传输的格式进行了规范;(5)对整个系统进行调试,对问题、漏洞进行相应的处理,完成整个无线路灯系统。本文研究和设计的无线路灯控制系统基本上完成了所设计的功能,但是在某些地方还有待进一步的改进和完善。例如系统目前还不能得到实时的功率指标,通过引入ADC采样技术就可以有效解决这个问题。其次为了进一步降低系统能耗还可以使用绿色能源作为系统的电源如太阳能。最后还可以考虑将GPS定位功能引入控制系统,可以方便系统的维护和跟踪。这一系列的改进还有待后续的研究。参考文献[1]张忠林.基于ZigBee通讯技术的移动接触网监控系统[J].自动化与仪表,2011年05期:25-32.[2]陈青山.城市照明监控管理系统的设计与实现[D].山东:山东大学,2008.[3]苑囡囡.ZigBee技术在智能家居中的应用[J].吉林工程技术师范学院学报,2009:42-57.[4]高岩.基于ZigBee技术的高速公路智能收费管理系统硬件技术方案设计[D].北京:北京邮电大学,2009.[5]IEEE802.15.4,低速率无线个人局域网的物理层和媒体接入控制协议[S],1998.[6]施晓敏.城际高铁制动控制试验系统的物联网实现[D].江苏:江苏科技大学,2011.[7]C.L.FullmerandJ.J.Garcia-Luna-Aceves,"FloorAcquisitionMultipleAccess(FAMA)forPacketRadioNetworks",inProcACMSIGCOMM'95,Sept.1995,(3):72-85.[8]李岩岩.ZigBee技术在路灯监控系统中的应用[J].微型机与应用:2013年05期:34-46.[9]何志业.面向水环境监测的无线传感器网络网关设计[D]:杭州电子科技大学,2010.[10]ZaferSahinoglu,GangDing,BharatBhargava,PhilipOrlik,JinyunZhang.ReliableBroadcastinZigbeeNetworks,2010:34-42.[11]孙庆元.基于ZigBee的水环境监测无线传感器网络组网技术研究[D].安徽.中国科学技术大学,2012.[12]吴斌.基于ZigBee的近距离无线网络技术在电力行业的应用[A].全国冶金自动化信息网2009年会论文集:2009年.[13]张文平.基于ZigBee技术的无线煤矿安全信息系统[D].西安:西安科技大学,2008.[14]厉保军.基于的城市消防导航信息系统研究[D].西安:西安科技大学,2010.

附录1源代码staticvoidzmain_ext_addr(void);#ifdefinedZCL_KEY_ESTABLISHstaticvoidzmain_cert_init(void);#endifstaticvoidzmain_dev_info(void);staticvoidzmain_vdd_check(void);#ifdefLCD_SUPPORTEDstaticvoidzmain_lcd_init(void);#endif/**********************************************************************@fnmain*@briefFirstfunctioncalledafterstartup.*@returndon'tcare*/intmain(void){//Turnoffinterruptsosal_int_disable(INTS_ALL);//InitializationforboardrelatedstuffsuchasLEDsHAL_BOARD_INIT();//Makesuresupplyvoltageishighenoughtorunzmain_vdd_check();//InitializeboardI/OInitBoard(OB_COLD);//InitialzeHALdriversHalDriverInit();//InitializeNVSystemosal_nv_init(NULL);//InitializetheMACZMacInit();//Determinetheextendedaddresszmain_ext_addr();#ifdefinedZCL_KEY_ESTABLISH//InitializetheCerticomcertificateinformation.zmain_cert_init();#endif//InitializebasicNVitemszgInit();#ifndefNONWK//SincetheAFisn'tatask,callit'sinitializationroutineafInit();#endif//Initializetheoperatingsystemosal_init_system();//Allowinterruptsosal_int_enable(INTS_ALL);//FinalboardinitializationInitBoard(OB_READY);//Displayinformationaboutthisdevicezmain_dev_info();/*DisplaythedeviceinfoontheLCD*/#ifdefLCD_SUPPORTEDzmain_lcd_init();#endif#ifdefWDT_IN_PM1/*IfWDTisused,thisisagoodplacetoenableit.*/WatchDogEnable(WDTIMX);#endifosal_start_system();//NoReturnfromherereturn0;//Shouldn'tgethere.}//main()/**********************************************************************@fnzmain_vdd_check*@briefCheckiftheVddisOKtoruntheprocessor.*@returnReturnifVddisok;otherwise,flashLED,thenreset*********************************************************************/staticvoidzmain_vdd_check(void){uint8cnt=16;do{while(!HalAdcCheckVdd(VDD_MIN_RUN));}while(--cnt);}/***************************************************************************************************@fnzmain_ext_addr**@briefExecuteaprioritizedsearchforavalidextendedaddressandwritetheresults*intotheOSALNVsystemforusebythesystem.TemporaryaddressnotsavedtoNV.**inputparameters**None.**outputparameters**None.**@returnNone.***************************************************************************************************/staticvoidzmain_ext_addr(void){uint8nullAddr[Z_EXTADDR_LEN]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};uint8writeNV=TRUE;//Firstcheckwhetheranon-erasedextendedaddressexistsintheOSALNV.if((SUCCESS!=osal_nv_item_init(ZCD_NV_EXTADDR,Z_EXTADDR_LEN,NULL))||(SUCCESS!=osal_nv_read(ZCD_NV_EXTADDR,0,Z_EXTADDR_LEN,aExtendedAddress))||(osal_memcmp(aExtendedAddress,nullAddr,Z_EXTADDR_LEN))){//Attempttoreadtheextendedaddressfromthelocationonthelockbitspage//wheretheprogrammingtoolsknowtoreserveit.HalFlashRead(HAL_FLASH_IEEE_PAGE,HAL_FLASH_IEEE_OSET,aExtendedAddress,Z_EXTADDR_LEN);if(osal_memcmp(aExtendedAddress,nullAddr,Z_EXTADDR_LEN)){//AttempttoreadtheextendedaddressfromthedesignatedlocationintheInfoPage.if(!osal_memcmp((uint8*)(P_INFOPAGE+HAL_INFOP_IEEE_OSET),nullAddr,Z_EXTADDR_LEN)){osal_memcpy(aExtendedAddress,(uint8*)(P_INFOPAGE+HAL_INFOP_IEEE_OSET),Z_EXTADDR_LEN);}else//Novalidextendedaddresswasfound.{uint8idx;#if!defined(NV_RESTORE)writeNV=FALSE;//MakethisatemporaryIEEEaddress#endif/*Attempttocreateasufficientlyrandomextendedaddressforexpediency.*Note:thisisonlyvalid/legalinatestenvironmentand*mustneverbeusedforacommercialproduct.*/for(idx=0;idx<(Z_EXTADDR_LEN-2);){uint16randy=osal_rand();aExtendedAddress[idx++]=LO_UINT16(randy);aExtendedAddress[idx++]=HI_UINT16(randy);}//Next-to-MSBidentifiesZigBeedevicetype.#ifZG_BUILD_COORDINATOR_TYPE&&!ZG_BUILD_JOINING_TYPEaExtendedAddress[idx++]=0x10;#elifZG_BUILD_RTRONLY_TYPEaExtendedAddress[idx++]=0x20;#elseaExtendedAddress[idx++]=0x30;#endif//MSBhashistoricalsignficance.aExtendedAddress[idx]=0xF8;}}if(writeNV){(void)osal_nv_write(ZCD_NV_EXTADDR,0,Z_EXTADDR_LEN,aExtendedAddress);}}//SettheMACPIBextendedaddressaccordingtoresultsfromabove.(void)ZMacSetReq(MAC_EXTENDED_ADDRESS,aExtendedAddress);}#ifdefinedZCL_KEY_ESTABLISH/***************************************************************************************************@fnzmain_cert_init**@briefInitializetheCerticomcertificateinformation.**inputparameters**None.**outputparameters**None.**@returnNone.***************************************************************************************************/staticvoidzmain_cert_init(void){uint8certData[ZCL_KE_IMPLICIT_CERTIFICATE_LEN];uint8nullData[ZCL_KE_IMPLICIT_CERTIFICATE_LEN]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};(void)osal_nv_item_init(ZCD_NV_IMPLICIT_CERTIFICATE,ZCL_KE_IMPLICIT_CERTIFICATE_LEN,NULL);(void)osal_nv_item_init(ZCD_NV_DEVICE_PRIVATE_KEY,ZCL_KE_DEVICE_PRIVATE_KEY_LEN,NULL);//Firstcheckwhethernon-nullcertificatedataexistsintheOSALNV.Tosaveoncodespace,//justusetheZCD_NV_CA_PUBLIC_KEYasthebellwetherforallthree.if((SUCCESS!=osal_nv_item_init(ZCD_NV_CA_PUBLIC_KEY,ZCL_KE_CA_PUBLIC_KEY_LEN,NULL))||(SUCCESS!=osal_nv_read(ZCD_NV_CA_PUBLIC_KEY,0,ZCL_KE_CA_PUBLIC_KEY_LEN,certData))||(osal_memcmp(certData,nullData,ZCL_KE_CA_PUBLIC_KEY_LEN))){//Attempttoreadthecertificatedatafromitscorrespondinglocationonthelockbitspage.HalFlashRead(HAL_FLASH_IEEE_PAGE,HAL_FLASH_CA_PUBLIC_KEY_OSET,certData,ZCL_KE_CA_PUBLIC_KEY_LEN);//IfthecertificatedataisnotNULL,useittoupdatethecorrespondin

温馨提示

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

评论

0/150

提交评论