已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
无线传感器网络原理与应用项目设计项目课题: 基于Zigbee的温湿度测量 院 系: 专 业: 项目经理:学号: 副 经 理:学号: 项目成员:学号: 项目成员: 学号: 项目成员: 学号: 项目成员 学号: 项目成员 学号: 项目成员 学号: 2014 年 12月目录摘要3Abstract5一无线传感器网络71.1 无线传感器网络71.2无线传感器网络应用现状81.3无线传感器网络未来展望8二Zigbee技术9三Zigbee协议介绍93.1 Zigbee协议栈结构93.2 Zigbee网络拓扑结构113.3 Z-Stack协议栈介绍123.3.1网络寻址123.3.2绑定143.3.3路由协议153.3.4消息发送函数153.3.5网络的组建过程163.3.6消息接收函数163.4本章小结17四系统的整体介绍17五系统硬件介绍185.1主要硬件简介185.2温湿度传感器模块电路原理图205.3数据汇聚模块(协调器)22六 软件设计实现226.1上位机(PC机)监控界面236.2模块的软件设计236.2.1数据汇聚模块(协调器)的软件设计266.2.2温湿度传感器模块(终端节点)的软件设计306.3 本章小结33七总结337.1 总结337.2展望34参考文献35基于Zigbee的温湿度测量摘要随着生产技术的发展,温湿度数据检测技术广泛应用于工业远程控制系统,并逐步显示出远程和网络的特性。传统的温湿度采集系统,主要方式是有线连接节点,此方法的特点是布局复杂和可扩展性差。事实上,在某些领域有线连接方式甚至不能应用。因此,最理想的方法是采用无线连接收集和传送数据。作为新兴的短距离,低功耗低成本的无线通信技术,zigbee已广泛应用于工业控制,消费性电子,家电自动化,医疗监控等领域。本文在对无线传感器及其网络协议技术分析的基础上,设计出一种基于zigbee为基础的无线温湿度采集系统。用基于zigbee网络的无线方式通过温湿度测量节点收集温湿度数据。通过串口通信线路连接主要节点和前端电脑。然后,电脑存储温湿度数据至数据库,以便实现数据的统一管理。关键词:Zigbee,无线传感器网络,多点温湿度采集,Z-StackAbstractWith the development of producing technology, monitoring techniques of temperature data are being applied to all kinds of industrial process control systems and gradually showing the feature of far-distant and networking. In the traditional temperature acquisition system, the method to connect nodes is wired, this way possesses the characteristic of complex layout and poor extensibility. In fact, the wired way even cannot be utilized in some application. Therefore, the ideal way to collect and transmit data is employing wireless connection. As a kind of emerging short-distant, low-power consumption and low-cost wireless communication technology, ZigBee has be widely introduced to industry controlling, consumer electronics, appliance automation, medical monitoring and so on.In this Paper,on the basis of the wireless sensor network Protocol analysis technology,, a kind of temperature acquisition system which based on ZigBee wireless transmission technology is designed in this article, the temperature data collected through the temperature measuring nodes is transmitted to the major-node by ZigBee network in a wireless method, the major-node communicates with the upper computer through the serial port line, thereafter, the PC stores the temperature data into the database in order to realizing the uniformly control of the data. Key words: Zigbee, wireless sensor network, Multi-Node Temperature Acquisition ,Z-Stack一无线传感器网络1.1 无线传感器网络无线传感器网络与传统的网络不同,它是以数据为中心的自组织无线网络,网络的节点部署密集,网络拓扑结构动态变化。无线传感器网络与现有的传感器系统相比,具有以下几个特点:第一,无线传感器网络节点需要工作在低功耗的状态。在无线传感器网络中,由于节点体积较小,限制了每个节点的能源是十分有限的,而且受工作环境等因素的影响,更换电源的成本很高,只要电源耗尽,节点的功能就会失效。当大部分节点能源耗尽退出工作状态时,整个网络也就处于瘫痪状态了。所以只有减小节点功耗,才能延长网络的寿命。第二,无线传感器网络具有自组织的特点。相对与有线网络,无线传感器网络基本不需要人工干预。通常情况下,各个节点可以相互协作建立它们之间的连接,完成网络的初始化、启动监测任务、网络的故障自我修复等一系列工作。要实现上述功能,网络必须具备自组织的能力,即各个传感节点能够感知相邻节点工作状态的变化,通过相互通信得知网络拓扑结构的变化,维护网络结构的正常运行,适应网络的动态性。第三,无线传感器网络节点部署具有分布性。通过部署大量的传感节点,各个节点对其附近的区域进行监测,全部的节点可以对整个完整区域进行监控。区域的空间越大,它各个部分的环境信息的差异也会越明显,在这种情况下,局部节点监测到的信息是不能够代表整个区域的情况。由于传感器节点具有成本较低的优势,我们可以大量部署此类节点在整个监测区域内,使得监测区域的每个角落都可以被覆盖住,这样就可以获得比较准确的整体信息,通过一些相应的数据融合算法,可以宏观把握整个区域的完整信息。第四,无线传感器网络的数据处理具有分布性。它是以数据为中心的网络,而不是以通信为中心的。在无线传感器网络的数据处理过程中,不是把每一个传感节点的数据汇总到中心节点来进行处理的,每个节点都具备数据处理能力,它们将先对数据进行处理,然后再传输到数据中心节点。这样既减少了网络流量,也降低了功耗,减少了数据的冗余度1。1.2无线传感器网络应用现状最近几年,由于成本的降低,无线传感器网络已经大规模应用在如下几个领域中:1)环境监测由于环境污染问题日益突出,人们对与环境的保护越来越关注,对于环境的监测需求相应增加。无线传感器网络为环境监测时采集数据提供了便利,并且还可以减少对环境的破坏。无线传感器网络可以跟踪候鸟和昆虫的迁移,研究环境变化对农作物的影响,监测海洋、大气和土壤的成分等。2)医疗护理无线传感器网络也可以应用在医疗研究和护理领域。英特尔公司推出了无线传感器网络的家庭护理技术。该系统通过在鞋、家具以家用电器等家用设备中嵌入半导体传感器,帮助老龄人士、阿尔茨海默氏病患者以及残障人士的家庭生活。3)军事领域由于无线传感器网络节点造价低廉,可以密集随机的分布在各种恶劣的战场环境中,包括侦察敌情、监控兵力、装备和物资,判断生物化学攻击等多方面用途。目前无线传感器网络还存在着如下问题:1)网络内节点的通信问题。传感器节点在正常通信过程中,信号可能被一些障碍物阻挡而受到影响,怎样提高传感器节点的穿透性是亟待解决的问题。2)延长传感器网络的使用寿命。现在一般使用高能电池、降低传感节点的功耗两种方式来解决这个问题。此外还有传感器网络的自我能量收集技术和电池无线充电技术,但这两项技术尚在研究中,还不成熟。1.3无线传感器网络未来展望无线传感器网络有着十分广泛的应用前景,除了在工业、农业、军事、环境、医疗等领域有具有巨大的运用价值,在未来还将在许多新兴领域体现其优越性,如家用、保健、交通等领域。将来微型传感器可以将家用电器等其他日常用品同互联网相连,对这些设备进行远距离控制,这样有利于家庭的安全调控、节电。二Zigbee技术长期以来,低成本、低传输率、低功耗、短距离的无线通讯市场一直存在。蓝牙(Bluetooth)、WIFI由于售价一直居高不下,严重影响了它们应用的广泛性。然而,无线传感器网络的研究与发展,催生了许多新的网络协议与标准。2001年8月,ZigBee联盟成立。ZigBee技术具有以下的特点2:1)低功耗:ZigBee的传输速率很低,只有250kbps,发射功率仅为0dbm,而且可以进入低功耗的休眠模式。ZigBee设备仅靠两节5号电池就可以维持长达一年甚至更长时间,这是它相比与其他设备的优势所在。2)成本低:ZigBee模块的初始成本在6美元左右,估计很快就能降到1525美元。3)时延短:通信时延和从休眠状态激活的时延都非常短,典型的搜索设备时延为30ms,休眠激活的时延是15ms,活动设备信道接入的时延为15ms。4)网络容量大:根据ZigBee协议的16位短地址定义,一个ZigBee网络最多可以容纳65535个节点,而且还可以通过64位的IEEE地址进行扩展。5)可靠、安全:采用了CSMA-CA机制,同时为固定节点预留了GTS,避开了发送数据时的冲突。ZigBee提供了基于循环冗余校验的数据包完整性检查功能,采用高级加密标准(Advanced Encryption Standard,AES)进行加密,每个具体的应用还可以人为的控制节点的组网方式和入网方式。三Zigbee协议介绍3.1 Zigbee协议栈结构Zigbee协议栈定义了四层。物理层和媒体访问控制层由IEEE802.15.4-2003定义,上层的网络层和应用层由Zigbee联盟定义。应用层分别包括ZDO(Zigbee设备对象),APS(应用支持子层)和AF(应用框架)组成。Zigbee协议栈每一层负责完成所规定的任务,并且向上层提供服务,各层之间的接口通过所定义的逻辑链路来提供服务3。图3.1 Zigbee协议栈结构图1) 物理层物理层由半双工的无线收发器及其接口组成,主要作用是激活和关闭射频收发器;检测信道的能量;显示收到数据包的链路质量;空闲信道评估;选择信道频率;数据的接受和发送。2) 媒体访问控制层媒体访问控制(MAC)层建立了一条节点和与其相邻的节点之间可靠的数据传输链路,共享传输媒体,提高通信效率。在协调器的MAC层,可以产生网络信标,同步网络信标;支持Zigbee设备的关联和取消关联;支持设备加密;在信道访问方面,采用CSMA/CA信道退避算法,减少了碰撞概率;确保时隙分配(GTS);支持信标使能和非信标使能两种数据传输模式,为两个对等的MAC实体提供可靠连接。3) 网络层基于底层的可靠通信,提供路由、路由发现、多跳、转发的功能。Zigbee网络可以组成星型、簇树型或MESH型网络。对于终端节点而言,网络层的功能只是加入和离开网络;对于路由器而言,网络层的功能是信息的转发,路由发现,建立和维护路由表和邻居表,以及构造到某节点的路由任务;而协调器网络层的任务主要包括启动和维护网络正常工作,为新加入的节点分配网络地址。4) 应用层应用层包括三部分:应用支持子层(APS)、Zigbee设备对象(ZDO)和应用框架(AF)。应用支持子层的任务是提取网络层的信息并将信息发送到运行在节点上的不同应用端点。应用支持子层维护了一个绑定表,可以定义、增加或移除组信息;完成64位长地址(IEEE地址)与16位短地址(网络地址)一对一映射;实现传输数据的分割与重组;应用支持子层连接网络层和应用层,是它们之间的接口。这个接口由两个服务实体提供:APS数据实体(APSDE)和APS管理实体(APSME)。APS数据实体为网络中的节点提供数据传输服务,它会拆分和重组大于最大荷载量的数据包。APS管理实体提供安全服务,节点绑定,建立和移除组地址,负责64位IEEE地址与16位网络地址的地址映射4。Zigbee设备对象负责设备的所有管理工作,包括设定该设备在网络中的角色(协调器、路由器或终端设备),发现网络中的设备,确定这些设备能提供的功能,发起或响应绑定请求,完成设备之间建立安全的关联等。用户在开发Zigbee产品时,需要在Zigbee协议栈的AF上附加应用端点,调用ZDO功能以发现网络上的其他设备和服务,管理绑定、安全和其他网络设置。ZDO是一个特殊的应用对象,它驻留在每一个Zigbee节点上,其端点编号固定为0。AF应用框架是应用层与APS层的接口。它负责发送和接收数据,并为接收到的数据寻找相应的目的端点。3.2 Zigbee网络拓扑结构Zigbee的拓扑结构可以为以下三种:星型、簇树型和MESH型。星型拓扑网络结构网络由协调器组建和维护,其他的设备都是终端设备,都直接与协调器一对一通信。在簇树型和MESH型拓扑网路结构中,协调器负责组建网络并决定一些关键的网络参数,如网络ID,网络使用的信道等。网络中主要通过路由器来拓展网络覆盖范围。树型网络中,路由器发送数据是通过层次的路由方法。树型网络可以使用网络信标通信,路由器和终端节点以跟踪信标的方式与协调器通信;也可以使用非信标方式通信,终端节点定时轮询路由器或协调器来提取自己的信息。MESH型网络可以进行点对点对等交流,但是不能使用信标。Zigbee设备都有一个64位的IEEE地址,IEEE地址是唯一的绝对地址,设备可以用这个地址在PAN中进行通信,但在设备加入网络后,协调器后会为它分配一个16位的网络地址,网络地址只在该网络内是唯一的,是相对地址,设备也可以用这个网络地址在PAN内进行通信。从物理功能上分,设备的类型可以分为2种。一种是具有全功能设备(Full Function Device,FFD),另一种是精简功能设备(Reduced Function Device,RFD)。在PAN(PersonalArea Network)中,全功能设备可以作为PAN的协调器,路由器或作为一个终端设备。一个全功能设备可以同时和多个精简功能设备或全功能设备通信;对于一个精简功能设备来说,它只能和一个全功能进行通信5。图3.2星型和簇树型网络拓扑结构3.3 Z-Stack协议栈介绍TI公司的协议栈Z-Stack符合ZigBee2006规范,功能强大,协议栈底层已实现,对于简单的应用,开发者只需要在应用层开发即可。Z-Stack还可通过ZigBee网络无线下载节点更新程序,具备定位感知功能等等。下面对Z-Stack的功能进行介绍。3.3.1网络寻址Z-Stack使用一种分布式的地址分配方式来分配网络地址,这种方式确保所有的网络地址在网络中是唯一的。网络地址是由设备的父节点分配的。通过在Z-Stack中网络层中相关位置的三个参数,包括最大深度(MAX_DEPTH)、最大子节点数(MAX_CHILDREN)和最大路由器数量(MAX_ROUTERS)按照以下地址分配算法可得到相应的网络地址6。第n个终端设备的网络地址为:其中:表示第n个终端设备的父设备网络地址;n的取值范围:;如果;如果;MAX_DEPTH指网络的层数。协调器在第0层的深度,它的子节点在第一层,以下就是第二层,以此类推。这个参数限定了网络结构的最大深度。MAX_CHILDREN决定了协调器或者路由器可以有几个孩子节点。孩子节点可以是路由器或者是终端设备。MAX_ROUTERS数决定了协调器或者路由器下面可以有几个路由器子节点。终端设备的个数=MAX_CHILDREN-MAX_ROUTERS。在Z-Stack中网络结构和网络深度可在nwk_globals.c文件中设置,默认设置为HOME_CONTROLS。#if(STACK_PROFILE_ID=HOME_CONTROLS)byte CskipRtrsMAX_NODE_DEPTH+1=6,6,6,6,6,0;byte CskipChldrnMAX_NODE_DEPTH+1=20,20,20,20,20,0;#elif(STACK_PROFILE_ID=GENERIC_STAR)byte CskipRtrsMAX_NODE_DEPTH+1=5,5,5,5,5,0;byte CskipChldrnMAX_NODE_DEPTH+1=5,5,5,5,5,0;#elif(STACK_PROFILE_ID=NETWORK_SPECIFIC)byte CskipRtrsMAX_NODE_DEPTH+1=5,5,5,5,5,0;byte CskipChldrnMAX_NODE_DEPTH+1=5,5,5,5,5,0;#endif/STACK_PROFILE_ID目的地址模式有如下几种值:AddrNotPresent(地址未知模式),Addr16Bit(短地址模式),AddrBroadcast(广播模式)。这些地址模式都是必要的,因为在ZigBee中,数据包可以是点对点发送(unicast),多点发送(multicast),也可以是广播式发送(broadcast)。接下来对各种传输模式进行简要的介绍7。1、一对一模式一对一模式是在已知目的地址的情况下使用这种方式。在发送数据的时候会包含目的地址信息。在Z-Stack中的寻址方式可以这样来设置:GenericApp_DstAddr.addrMode=Addr16Bit;/以网络地址为目的地址进行寻址GenericApp_DstAddr.endPoint=10;/目的节点的端口号为10GenericApp_DstAddr.addr.shortAddr=0x796f;/目的节点的网络地址2、广播模式广播模式是将数据发送给网络中所有的节点。在程序中地址模式设定AddrBroadcast。在Z-Stack中的寻址方式可以这样来设置:GenericApp_DstAddr.addrMode=AddrBroadcast;/以广播的方式进行寻址GenericApp_DstAddr.endPoint=10;/目的节点的端口号为10GenericApp_DstAddr.addr.shortAddr=0xffff;/目的节点的网络中所有的节点GenericApp_DstAddr.addr.shortAddr=0xfffd;/目的节点为网络中非睡眠节点3、间接接模式当地址模式设置为AddrNotPresent,说明发送的信息都是发给协调器的,在协调器的绑定表中查找相应目的地址进行一对一的数据发送。GenericApp_DstAddr.addrMode=(afAddrMode_t)AddrNotPresent;GenericApp_DstAddr.endPoint=10;GenericApp_DstAddr.addr.shortAddr=0;/协调器的网络地址固定为0x0000;3.3.2绑定绑定是指一个节点与另外一个或几个节点间建立地址映射的一种寻址方式。在节点建立绑定之后,发送数据的时候并不需要知道目的地址是什么,应用支持子层会根据绑定ID查询它的绑定表来决定目的地址,然后把信息发送给目的节点。在Z-Stack中,绑定是通过如下函数实现的:dstAddr.addrMode=Addr16Bit;/首先设置寻址模式为网络地址寻址dstAddr.addr.shortAddr=0x0000;/目的地址为协调器的网络地址ZDP_EndDeviceBindReq();/发起绑定请求3.3.3路由协议ZigBee的路由协议是基于Ad Hoc按需距离矢量路由协议AODV(Ad hoc On demandDistance Vector),支持在环境中移动、连接失败和包丢失的环境应用,它极大的增强了无线传感器网络的可靠性。当一个路由器收到从一个节点发往另一个节点的数据包,网络层根据以下步骤来转发这个包:如果目的地是这个路由的邻居(包括是其子节点),这个包将被直接发送的目的地;否则,这个路由器将检查自己的路由表来找到相应的目的地的路由表记录。如果有一个动态路由表记录,这个包将转发到路由表记录的下一跳地址;如果没有,将执行一个路由发现过程,过程结束后这个包才会被发送。ZigBee网络路由具有自我修复的功能,如果某一路连接断掉了,将启用路由发现过程,发现一条新链路到目的节点。ZigBee的终端设备不执行任何的路由功能。如果它想发送一个包给任何的其他设备,它必须通过它的父节点来转发。同样的,当任何一个包要发送给一个终端设备时,也由其父节点来做响应8。3.3.4消息发送函数在Z-Stack中,如果给一个节点发送消息,可以用如下函数:if ( AF_DataRequest( &GenericApp_DstAddr, &GenericApp_epDesc, GENERICAPP_CLUSTERID, (byte)osal_strlen( theMessageData ) + 1, (byte *)&theMessageData, &GenericApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) = afStatus_SUCCESS ) / Successfully requested to be sent. else / Error occurred in request to send. 发送的是指针theMessageData中的字节,字节数为(byte)osal_strlen(theMessageData)+1。3.3.5网络的组建过程协调器首先从DEFAULT_CHANLIST列表中选择使用的信道,如果ZDAPP_CONFIG_PAN_ID的值不等于0xFFFF则选取ZDAPP_CONFIG_PAN_ID为PANID,否则选取IEEE地址的最后两个字节作为PANID。如果启动模式是Auto Start,路由器或者终端设备上电之后就开始搜寻网络,如果有合适的网络并且该网络允许加入,那么就会直接加入该网络。如果启动模式是HOLD_AUTO_START,路由器或者终端设备上电之后必须等待某一特定时间的发生来启动加入网络的过程,这时协议栈会调用ZDAPP_StartUpFromApp()这个函数。如果需要路由器或者终端设备在电池没电或者重启之后仍然记住以前的网络状态可以在预编译选项添加编译选项NV_RESTORE9。3.3.6消息接收函数节点接收到信息后会存储在pkt指针指向的结构体中,在应用层的函数GenericApp_MessageMSGCB(afIncomingMSGPacket_t*pkt)可以用*pkt-cmd.Data取出接收到的消息,以下是收到消息的格式的结构体定义9。typedef structosal_event_hdr_t hdr;uint16 groupId; /组IDuint16 clusterId; /簇IDafAddrType_t srcAddr; /源地址byte endPoint; /源节点端口号byte wasBroadcast; /是否为广播方式byte LinkQuality; /链路质量byte SecurityUse; /是否使用安全模式uint32 timestamp; /时间戳afMSGCommandFormat_t cmd;afIncomingMSGPacket_t;typedef structbyte TransSeqNumber; /序列号uint16 DataLength; /收到信息长度byte*Data; /收到信息的指针afMSGCommandFormat_t;3.4本章小结本章首先分析了ZigBee协议的分层结构,ZigBee协议共分4层,分别为物理层,MAC层,网络层以及应用层,文中对每层的作用进行了描述,此外还介绍了星型、树型、MESH型,这三种典型的ZigBee网络拓扑的结构及特点。接着论述了Z-Stack协议栈的架构和功能。这些功能主要包括网络地址分配算法与节点寻址,绑定的方式,路由机制以及网络组建过程。其中对网络寻址的三种方式在Z-Stack中如何设置做了细致的介绍。在深刻理解Z-Stack协议栈的整体架构的前提下,为编写系统的软体打下基础。四系统的整体介绍本系统由数据汇聚模块(协调器),温湿度传感器模块(终端节点)和上位机三部分组成。数据汇聚模块负责组建Zigbee网络,完成温湿度传感器模块与上位机(PC)数据的透明传输;温湿度传感器模块负责采集、存储、上传温湿度数据。数据汇聚模块通过RS-232串口与上位机相连。上位机有监控界面可以测环境温湿度(传感器模块位置在数据汇聚模块的网络覆盖范围内),多个传感器节点置于不同的监测区域,每个传感器节点把数据传给汇聚节点,在汇聚节点完成数据融合,然后汇聚节点把数据通过串口传给上位机做进一步处理并显示给用户。上位机监控界面需要显示所有温湿度数据的地址,温湿度数据的大小及温湿度变化趋势。温湿度传感器1温湿度传感器2温湿度传感器3协调器上位机监控RS232ZigBee RFZigBee RFZigBee RFZigBee RF图4.1多点无线温湿度采集系统框图五系统硬件介绍5.1主要硬件简介1)数据汇聚模块(协调器)下载软件接口,可做供电用CC2530主芯片RS232串口接电源一组指示灯传感器接口 图5.1多点无线温湿度采集系统框图下载软件接口,可做供电用2)温湿度传感器模块(终端设备)CC2530主芯片接电源传感器接口一组指示灯图5.2多点无线温湿度采集系统框图3)温湿度传感器图5.3温湿度传感器5.2温湿度传感器模块电路原理图本系统的数据汇聚模块(协调器)和温湿度传感器模块(终端设备)的主芯片采用TI公司的CC2530。CC2530是一个真正的系统芯片(SOC)COMS解决方案,这种解决方能够降低成本,提高性能,并满足以ZigBee为基础的2.4 GHz ISM波段应用低功耗的要求。考虑到温湿度传感器模块工作时,需要将采集的温湿度信息和时间信息存储,故扩展外部FLASH芯片ST-M25PE16和时钟芯片S35190A。在天线设计方面,使用了TI的参考设计方案反向F型天线。TMP102ST_M25PE16PCB 天线JTAGCC2530S35190APOWER图5.4温湿度传感器模块硬件框图1)温湿度传感器模块CC2530CC2530包括了1个高性能的2.4 GHz DSSS(直接序列扩频)射频收发器核心和1个8051控制器,它具有32/64/128 kB可选择的编程闪存和8 kB的RAM,还包括ADC、定时器、睡眠模式定时器、上电复位电路、掉电检测电路和21个可编程I/O引脚,这样很容易实现通信模块的小型化。CC2530是一款功耗相当低的单片机,功耗模式3下电流消耗仅0.2A,在32 k晶体时钟下运行,电流消耗小于1A。图5.5 CC2530芯片脚位图CC2530芯片使用直接正交上变频发送数据。基带信号的同相分量和正交分量由DAC转换成模拟信号,经过低通滤波,变频到所设定的信道上。当需要发送数据时,先将要发送的数据写入128B的发送缓存中,包头是通过硬件产生的。最后经过低通滤波器和上变频的混频后,将射频信号被调制到2.4GHz,后经天线发送出去。CC2530RF有两个端口分别为TX/RX,RF端口不需要外部的收发开关,芯片内部已集成了收发开关。2)温湿度传感器模块Flash存储芯片存储器ST-M25PE16是4线的SPI通信模式的FLASH,它可以整块擦除,最大可以存储2M个字节。工作电压为2.7v到3.6v。3)温湿度传感器模块TMP102温湿度传感器TMP102是一款超低功耗的I2C通信模式的数字温湿度传感器,测量的温湿度范围是-40到125摄氏度,它的分辨率是0.0625摄氏度。在测量范围从-25到85摄氏度之间精度可以达到0.5摄氏度。工作电压是1.4v3.6v。4)温湿度传感器模块时钟时钟芯片S35190A是超低功耗的3线CMOS实时时钟IC。工作电压为1.3v5.5v,最低计时工作电压为1.1v。它有内置到2099年为止的自动日历,具有润年自动运算功能,可以定时产生中断。5)温湿度传感器模块反向F型天线采用TI公司公布的2.4GHz倒F型天线的参考设计。天线的最大增益为3.3dB,天线面积为25.77.5mm。该天线完全能够满足CC2530工作频段的要求(CC2530工作频段为2.400GHz2.480GHz)。5.3数据汇聚模块(协调器)数据汇聚模块主要由CC2530和串口电平转换芯片MAX232组成。CC2530主要负责收发数据。时钟芯片主要负责为温湿度数据提供时间信息。对于上位机和温湿度传感器模块来说,数据汇聚模块是透明的,它只负责将上位机发送的命令通过无线的方式转发给温湿度传感器模块;还有将温湿度传感器模块上传的温湿度数据及时间信息按照一定的格式转发给上位机。六 软件设计实现本系统所用的开发环境是IAR7.51,采用的协议栈为TI的ZStack-2.3.0-1.4.0。系统将协调器通过串口RS232和上位机(PC)相连,温湿度传感器加入由数据汇聚模块组成的网络后,可以将工作模式配置为静态模式(设置温湿度传感器采集的速率,传感器采集温湿度数据后不存储直接发送给上位机显示),通过人机交互的方式可以实时对监测区域的温湿度传感器进行数据采集监测;如要温湿度传感器要进行动态温湿度采集,经过简单的配置后(温湿度传感器采集的速率,采集温湿度的起始时间)传感器模块即进入动态模式。传感器模块在动态工作模式下,可以暂时脱离数据汇聚模块的网络覆盖范围,进行移动的数据采集。当采集过程结束,温湿度传感器重新回到数据汇聚模块的网络覆盖范围内,通过上位机监控界面发送数据上传指令,这样存储在FLASH中的时间信息(采集温湿度的起始时间,每次采集温湿度的时间间隔)和温湿度数据会按时间先后上传到上位机,有了这些数据上位机监控界面就可以画出历史曲线图了。6.1上位机(PC机)监控界面监控界面如图3.8所示,用VS2005软件制作,它接收串口传来的数据,可以进行串口端口号和波特率的设置,可以显示历史温湿度曲线。串口的配置:波特率38400,数据位8位,无奇偶校验,1位停止位。设置好波特率后,就能接收网络中工作的温湿度传感器模块的网络地址,温湿度信息,以及上传的时间。上位机收到的信息会进行处理存入数据库,然后再从数据库读取出数据,根据时间信息,画出历史曲线。 图6.1 上位机(PC机)监控界面6.2模块的软件设计Zigbee网络节点软件系统采用的协议栈为TI的ZStack-2.3.0-1.4.0。通过更改协议栈的配置,可以把协议栈配置为协调器(Coordinator)、终端(Enddevice)。此协议栈支持CC2530芯片,有较高的可靠性。在各功能节点的协议栈程序设计时,该协议栈采用统一的编写方式,用宏定义语句:def、ifdef、else等语句区别各功能节点在各协议层中的操作,这样的编写方式将协议栈看成一个整体,提高了协议栈的移植性。同时,本设计采用IAR Embedded Workbench V7.51 for 8051集成开发环境,该环境将工程管理器、编译器、8051C/C+编译器、8051汇编器、链接器、库管理工具和调试工具完全集成在一起,同时支持TI的CC2530 SoC ZigBee开发套件的USB接口,可通过嵌入SmartRF04 Flash Programmer软件将程序下载至CC2530芯片中。根据ZigBee2006标准的规范,ZStack1.4.31.2.1协议栈文件结构如下:App:应用层,包含有具体应用需要的功能函数,可供用户自行修改设计。HAL:硬件抽象层,包含具体芯片的功能函数以及硬件构架的接口参数。MAC:硬件物理层,包含针对具体芯片的物理层封装(主要为TIMAC-CC2430.lib中的头文件),ZMac为在其上的ZigBee的MAC层封装。MT:调试跟踪与监控测试,通过定义MT_TASK使能该功能,使设备能与PC端的Z-TOOL应用程序通信。NWK:网络层,包含有网络层函数封装(主要为协调器与路由器需要的库函数Router.lib的头文件,或者终端设备所需库文件EndDevice.lib中的头文件)。OSAL:操作系统抽象层,嵌入简易操作系统的函数封装,每个应用都以操作系统的一个任务形式执行。Profile:通用操作框架,包含有设备描述帮助函数,主要对相关设备的通用功能进行封装。Security:安全层,包含Security.lib库函数的头文件。Tools:包含应用的配置文件。ZDO:ZigBee设备对象的相关操作封装。ZMac:ZigBee MAC层的封装。ZMain:包含main函数定义、起始代码以及硬件功能配置函数OnBoard.h等。整个协议栈采用中断事件调用机制,任务添加函数osalTaskAdd()将各层初始化函数指针、各层事件处理函数指针以及各层任务优先级添加到任务表,然后通过中断添加响应事件(events)。整个函数构成消息处理机制,每个层次互不干扰互不影响。其中,OSAL_Timers文件包含寄存器操作的基本函数定义声明。整个文件为所有需要定时的任务维护一张任务等待时间链表(单向顺序链表),每个节点的结构为:typedef structvoid*next; /下一个节点指针UINT16 timeout; /定时器值UINT16 event_flag; /任务标志字byte task_id; /任务IDosalTimerRec_t;每次定义的时间到时调用osalTimerUpdate(tmr_decr_time)函数更新timeout值。如果timeout值为0时,调用osal_set_event(srchTimer-task_id,srchTimer-event_flag)添加相应的处理函数,同时在任务等待时间链表中去除相应的时间节点。一个任务需要等待时,只需要调用osalTimerRec_t*osalAddTimer(byte task_id,UINT16 event_flag,UINT16 timeout)函数将该任务的事件参数(events)与任务ID(task_id)传给event_flag与task_id,再将原来的events置0,并设置相应的timeout事件,从而将该节点插入到任务等待时间链表中。而OSAL_Tasks文件包含任务调度函数定义声明。整个文件为所有需要调度的任务维护一个优先级任务队列,每个任务节点的结构为:typedef struct osalTaskRecstruct osalTaskRec*next;/下一个任务节点pTaskInitFn pfnInit;/事件初始化功能函数指针pTaskEventHandlerFn pfnEventProcessor;/事件处理函数指针byte taskID;/任务IDbyte taskPriority;/任务优先级uint16 events;/事件osalTaskRec_t;每个任务都有唯一的ID区别。events任务事件只有有事件发送时才会执行pfnEventProcessor函数,因此用户只需要编写事件初始化和事件处理函数即可,然后调用void osalTaskAdd(pTaskInitFn pfnInit,pTaskEventHandlerFn pfnEventProcessor,byte taskPriority)函数将任务添加到任务队列中。在整个消息机制中,消息的传递通过byte*osal_msg_receive(byte task_id)和byte osal_msg_send(byte destination_task,byte*msg_ptr)函数完成。osal_msg_send通过osal_msg_enqueue(&osal_qHead,msg_ptr)函数将消息放置到消息队列中,并设置消息接收事件osal_set_event(destination_task,SYS_EVENT_MSG)。任务事件处理函数接收到消息接收事件后,通过osal_msg_receive接收消息并将接收到的消息从消息队列中去除。其次,在网络层中还对协议栈进行了相关配置,通过nwk_grobals.h文件中的STACK_PROFILE_ID的定义可选择不同的参数配置。该程序提供了三种不同的参数配置:HOME_CONTROLS、GENERIC_STAR、NETWORK_SPECIFIC,分别对最大节点深度、网络类型以及安全模式进行了不同配置,然后通过数组CskipRtrsMAX_NODE_DEPTH+1、CskipChldrnMAX_NODE_DEPTH+1中对网络中每层的最大路由数和最大孩子节点数进行配置,最后可通过调用RTG_FillCSkipTable(CskipChldrn,CskipRtrs,MAX_NODE_DEPTH,Cskip)函数得到地址偏移量Cskip即短地址。6.2.1数据汇聚模块(协调器)的软件设计协调器功能比较简单,它完成上位机和温湿度传感器模块的透明传输。协调器的软件设计主要在应用层里编写。1)修改Z-Stack的编译选项。在IAR的ProjectOption下选择C/C+Compiler中的Preprocessor添加CC2530EB、ZTOOL_P1、MT_TASK、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026-2031年中国肉骨粉行业市场发展趋势与前景展望战略研究报告
- 2026-2031年中国情感计算行业市场现状供需分析及投资评估规划分析研究报告
- 惠阳小学复课通知书
- 2026-2031年中国农业技术推广培训行业市场发展趋势与前景展望战略研究报告
- 2026-2031年中国生产管控类软件行业市场现状供需分析及投资评估规划分析研究报告
- 物流行业求职者必-备面试问题集锦
- 2025广东省农业科学院动物卫生研究所招聘劳动合同制人员1人考试笔试模拟试题及答案解析
- 法律行业律师面试技巧与问题预览
- 金融科技Fintech的发展与未来
- 2025中央企业海外项目管理岗位招聘28人(base沙特)笔试考试参考试题附答案解析
- 戒毒人员康复训练
- 2025年油漆施工合同模板
- 环境消杀相关知识培训课件
- 金融网点智能安防升级分析方案
- 基于MPLS技术的企业VPN网络:原理、设计与应用探索
- 央国企智算创新实践报告(2025年)
- 编码安全培训课件
- 2025山西太原市面向劳务派遣人员招聘2人笔试历年参考题库附带答案详解
- 工程项目安全生产责任书模板
- 山地建筑规划方案设计规范
- DB31T+1450-2023旅游码头服务基本要求
评论
0/150
提交评论