基于物联网的智能仓储温湿度检测系统_第1页
基于物联网的智能仓储温湿度检测系统_第2页
基于物联网的智能仓储温湿度检测系统_第3页
基于物联网的智能仓储温湿度检测系统_第4页
基于物联网的智能仓储温湿度检测系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

*******************实践教学*******************兰州理工大学计算机与通信学院2023年春季学期物联网综合应用实践课程设计题目:基于物联网的智能仓储温湿度检测系统专业班级:姓名:学号:指导教师:成绩:摘要仓储在物流战略中的重要性日益提高,在物流管理中占据着核心的地位,并己成为供给链管理的核心环节。传统的仓储环境监测系统存在布线复杂,可靠性低,管理维护本钱低等问题,因而将新的科学技术引入仓储系统中构建信息化、网络化、智能化的仓储环境监控系统具有重要意义。针对现有仓库温湿度检测存在的问题,结合无线传感器网络技术,提出一种基于Zigbee技术的仓库温湿度采集系统设计方法。设计采用CC2430射频芯片及SHT10数字温湿度传感器,在Zigbee协议栈的根底上进行应用开发。阐述了系统的总体设计,节点的硬件设计和软件设计。通过实验测试说明,该无线化的仓库温湿度采集系统能够稳定可靠的运行,并且具有组网简单、系统花费少、扩张网络容易等优点。关键词:仓储温湿度检测Zigbee无线传感网络目录摘要2第一章前言31.1系统背景及意义31.2系统功能及特点4第二章Zigbee技术简介42.1Zigbee综述42.2Zigbee协议栈与网络层简介5第三章系统分析与设计83.1根本原理:83.2系统方案比拟与选择83.3系统整体设计9总结19致谢20参考文献22附录24第一章前言1.1系统背景及意义温湿度的检测是纺织、食品、医药、仓储的重要参量,对温湿度监测具有广泛的应用领域。随着仓库平安工作的要求越来越严格,仓库监测大量涌现,仓库监测的认知度和自动化表达的越来越先进。防潮、防霉、防腐、防爆是食品日常存储工作的重要内容,是衡量食品储藏质量的重要指标,它直接影响到储藏物资的使用寿命和工作可靠性。为保证日常工作的顺利进行,首要问题是加强物品温度与湿度的监测工作。但传统的方法是用温度计与湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的食品进行通风、枯燥等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的温湿度测量控制仪。1.2系统功能及特点系统由终端节点、路由器以及网络协调器〔网关〕三类设备组成。以仓库为单位,进行无线传感器网络覆盖,由终端节点将传感器数据采集并经过过路由器发送至网络协调器,数据进入上位机进行分析处理。节点为自身独立采集子系统,可在节点上完成数据采集,数据存储以及数据显示功能。该系统是以高效率、低本钱、低功耗为原那么,保证数据准确传输为根底完成的智能华无线传感器网络系统,适合于各种仓储仓库,楼宇以及家庭应用。智能仓储监测系统拥有全面、可靠的环境信息采集分析能力。为了实现环境信息监测的精确性、全面性并且方便使用,本文的环境监测系统应具有以下各种特点:〔1〕低功耗。在低耗电待机模式下,2节5号干电池可支持1个节点工作6到24个月,甚至更长。〔2〕低本钱。通过大幅简化协,降低了对通信控制器的要求,按预测分析,以8051的8位微控制器测算,子功能节点少至4KB代码,而且ZigBee免协议专利费。〔3〕低速率。ZigBee工作在250kbps的通讯速率,满足低速率传输数据的应用需求。〔4〕近距离。传输范围一般介于10~100m之间,在增加RF发射功率后,亦可增加到100m-1km。这指的是相邻节点间的距离。如果通过路由和节点间通信的接力,传输距离将可以更远。〔5〕短时延。ZigBee的响应速度较快,一般从睡眠转入工作状态只需15ms,节点连接进入网络只需30ms,进一步节省了电能。〔6〕高容量。ZigBee可采用星状、片状和网状网络结构,由一个主节点管理假设干子节点,最多一个主节点可管理254个子节点;同时主节点还可由上一层网络节点管理,最多可组成65000个节点的大网。〔7〕高平安。ZigBee提供了三级平安模式,包括无平安设定、使用接入控制清单(ACL)防止非法获取数据以及采用高级加密标准(AES128)的对称密码,以灵活确定其平安属性。〔8〕免执照频段。采用直接序列扩频在工业科学医疗2.4GHz(全球)(ISM)频段。第二章Zigbee技术简介2.1Zigbee综述Zigbee是针对小型设备的无线联网而制定的协议标准,拥有一套完整的协议层次结构,由和Zigbee联盟共同制定完成。其工作频段分别是868MHz、915MHz、2.4GHz3个频段,可以应用于不同的场合,诸如家庭自动化网络、工业控制网络、交互式玩具、远程检测等。完整的ZigBee协议栈包括物理层(PHY)、媒体访问控制层(MAC)、网络层(NWK)和应用层(APL)。ZigBee的应用层由应用支持子层(APS)、Zigbee设备对象(ZDO)和制造商定义的应用对象组成。在Zigbee协议栈中,每一层通过使用下层提供的效劳完成自己的功能,同时对上层提供效劳,网络中的通信在对等的层次上进行。Zigbee网络含三种类型的节点,即协调器、路由器和终端设备,其中协调器和路由器均为全功能设备(FFD),而终端设备选用精简功能设备〔RFD)。一个ZigBee网络有且仅有一个协调器,该设备负责启动网络,配置网络成员地址,维护网络,维护节点的绑定关系表等,需要最多的存储空间和计算能力,它可以看作是一个PAN的网关节点。路由器主要实现扩展网络及路由消息的功能,终端设备那么负责与实际的监控对象相连,实现具体功能的单元。无线传感器网络中可以根据不同的需要组成星型、簇型网和网状型三种不同的网络拓扑结构。星状网络由一个PAN协调器和多个终端设备组成。只存在PAN协调器与终端设备的通信,终端设备间的通信都需通过PAN协调器的转发;树状网络由一个协调器和一个或多个星状结构连接而成,设备除了能与自己的父节点或子节点进行点对点直接通讯外,其他只能通过树状路由完成消息传输;网状网络是树状网络根底上实现的,与树状网络不同的是,它允许网络中所有具有路由功能的节点直接互连,由路由器中的路由表配合实现消息的网状路由。一个ZigBee网络最多可含有65000多个子节点,通过无线网络数据从一个节点传送到另一个节点,最终传送到控制中心。另外,它可以与其他的无线网络如GPRS和CDMA等兼容,也可以接入有线网络如Internt、Ethernet,实现远程监控。Zigbee无线传感网络是就是Zigbee应用方案的经典应用。无线传感网络是基于技术标准和Zigbee网络协议而设计的无线数据传输网络,该网络主要应用在压力过程控制数据采集、流量过程控制数据采集、温度湿度监控、楼宇自动化、工业控制、数据中心、社区安防、设备监控、环境数据监控、制冷监控、仓库货物监控等方面。适用于蔬菜大棚温度、湿度和土壤酸碱度监控,钢铁冶炼温度控制,煤气抄表等各个领域。这种网络主要用于无线系统中短距离的连接,提供传感器网络接入,能够满足各种传感器的数据输出和输入控制的命令和信息的需求,实现系统网络化、无线化。这种网络是低速率的无线传感网络,射频传输本钱低,各节点只需要很少的能量,低功耗,适用于电池长期工作供电,可实现一点到多点,两点之间的对等通信,快速组网自动配置,自动恢复和高级电源管理,网络中任意个传感器之间可相互协调实现数据通信。2.2Zigbee协议栈与网络层简介ZigBee网络层必须提供功能,其的主要就是提供一些必要的函数,以保证IEEE802.15.4-2003ZigBee协议栈的MAC层能够正确操作,正常工作,并且为应用层提供一个适宜的效劳接口。为了和应用层通信,必须向其提供接口,网络层的概念包括了两个必要的功能效劳实体,提供必要的功能。它们分别为数据效劳实体〔NLDE〕和管理效劳实体〔NLME〕。网络层数据实体〔NLDE〕通过网络层相关的数据库效劳接入点〔NLDE-SAP〕提供数据传输效劳,网络层管理实体〔NLME〕通过网络层相关的管理库效劳接入点〔NLME-SAP〕提供网络管理效劳,网络层管理实体利用网络层数据实体来获得一些网络管理任务,并完成一些网络的管理工作。并且,网络层管理实体还维护一个管理对象的数据库,叫做网络信息库〔NIB〕,网络层管理实体完成对网络信息库〔NIB〕的维护和管理。1、网络层数据实体〔NLME〕网络层数据实体提供一个数据效劳,同一个网络中,即在同一个内部个域网中的两个或者更多的设备之间传送数据时,允许一个应用程序将按照应用协议数据单元〔APDU〕的格式进行传送数据。网络层数据实体提供如下效劳:①生成网络级别的协议数据单元〔网络层协议数据单元〕PDU〔NPDU〕:网络层数据实体〔NLME〕通过增加一个适当的协议头,从应用支持子层的协议数据单元PDU中生成网络层的协议数据单元〔NPDU〕。②指定拓扑传输路由:网络层数据实体能够发送一个网络层的协议数据单元到一个适宜的设备,该设备可以是最终的目的通信设备,也可能是通信链路中到最终目的节点的下一个节点。2、网络层管理实体网络层管理实体提供网络管理效劳,允许一个应用程序与堆栈相互作用。并且网络层管理实体还维护一个叫做网络信息库〔NIB〕的管理对象的数据库。网络层管理实体应该提供如下效劳:①配置一个新的设备:为所需的操作充分配置协议栈的功能。为保证设备正常工作的需要,满足配置的需要,设备应该具有足够堆栈。配置选项中包括对一个ZigBee协调器的操作,或参加一个已存在的网络。②开始一个网络:建立一个新的网络功能,使之具有建立一个新网络的能力。③参加、重新参加和离开一个网络:实现参加、重新参加和离开一个网络的功能,以及为一个ZigBee协调器或者ZigBee路由器请求一个设备离开网络的能力。具有连接或者断开一个网络的能力。④寻址:ZigBee协调器和ZigBee路由器具有为新参加网络的设备分配地址的能力。⑤邻居设备发现:具有发现、记录和汇报有关单跳邻居设备信息的能力。⑥路由发现:具有发现和记录有效地传送信息的网络路由能力,即信息可以有效的传达。⑦收控制:具有控制设备接收机接收状态的能力,即控制何时接收者是激活的,以及接收激活时间的长短,从而使MAC层的同步或者直接接收等。⑧路由:具有使用不同路由机制的能力。有单播、多播、播送等,使得路由能够在网络中高效率的交换数据。3、网络层效劳标准网络层通过两种效劳访问点〔SPA〕提供相应的两种效劳,它们分别是网络层数据效劳〔NLDE〕和网络层管理效劳〔NLME〕。网络层数据效劳通过网络层数据实体效劳接入点接入,网络层管理效劳通过网络层管理实体效劳接入点接入。这两种分别效劳通过MCPS-SAP和MLME-SAP接口为MAC层提供接口。这些接口之外,在NLDE-SAP和NLME-SAP之间有一个隐藏的借口,允许NLME使用网络层的数据效劳。NWK层的组件以及接口如以下图所示:图1网络层参考模型在移动Adhoc网络中,随着节点移动,网络拓扑结构在不断变化。如何迅速准确地选择网络路由的问题,是移动Adhoc网络的一个重要核心的问题。常规的距离向量算法DVA和链路状态算法LSA,不能满足AdHoc网络中的动态变化的网络拓扑结构;单向信道的存在;有限的无线传输带宽;无线移动终端的局限性等特点。因此,自20世纪70年代美军DARPA资助的分组无线网络工程开展以来,国内外的许多研究人员从不同的角度提出了一系列的移动Adhoc网络路由协议。这些协议必须处理好移动Adhoc网络的以上特点。根据发现路由的驱动模式的不同,可将这些路由协议分为表驱动路由协议和按需路由协议。表驱动路由协议又称为主动式〔或先应式〕的路由协议〔ProactiveProtocols〕。是一种基于表格的路由协议。该路由协议试图维护网络中各个节点到其余所有节点的最新路由信息,所有路由信息都保持一致。这个路由协议中,每个节点都维护一张或多张表格,这些表格中包含到达网络中所有其他节点的路由信息表。当检测到网络拓扑结构有变化发生时,节点在网络中发送更新消息。收到更新消息的节点便更新自己的表格,以维护路由信息的一致、及时、准确。拓扑更新消息在网络中传播的方式和需要存储的表的类型决定了不同的表驱动路由协议的区别。表驱动路由协议根据变化更新路由表,不断的检测网络拓扑和链路质量的变化,所以路由表可以准确地反映网络的拓扑结构。只要源节点发送报文,就能够立即取得到达目的节点的路由。目前常见的有C.E,Perkins在1994年提出的DSDV路由协议、CGSR路由协议以及WRP路由协议等。DSDV路由协议是一种无环路距离向路由协议,它是传统的BellmanFord路由协议的改良。在DSDV中,每个移动节点都需要维护一个路由表,路由表表项其中包括目的节点、跳数和目的地序号,其中目的节点分配目的地序号,主要用于判别路由是否过时,并且能够防止路由环路的产生。每个节点必须周期性的与邻节点交换路由信息,也可以根据路由表的改变来触发路由更新。CGSR路由协议与DSDV类似,但是CGSR并不是一个大的平面网络。CGSR分配指定了网关节点簇首节点和,其中网关节点是两个簇之间的节点,簇首节点用来控制一组节点和网关节点。其中每个节点都必须有其簇成员的路由表。因为,当一个节点要发送分组时,这个分组首先到达这个发送节点的簇首节点,然后簇首节点把该分组通过网关节点转发给另外一个簇首节点,不断重复这个过程直到分组到达目的节点。WRP路由协议是另一种表驱动路由协议,在网络的节点中保存路由信息。每个节点都在路由表中保存有如下信息:距离、路由、链路开销和重传消息的列表。重传消息的列表记录关于重传计数器、消息序列号、每一个邻节点正确应答所需的标识以及更新消息的更新列表等信息。WRP的优点就是当一个节点试图执行路径方案算法时,可以通过目的节点的上游节点所保存的信息和邻节点所保存的信息来限制算法,使得算法收敛得更快并防止路由当中的环路。由于WRP需要保存4个路由表,所以比大多数的协议需要更大的内存。WRP还依赖于周期性的Hello消息,这也要占用带宽。这类路由协议通常是通过修改常规的Internet路由协议以适应移动Adhoc网络环境,通过引入序列号机制解决了“路由环路〞和“计数到无穷〞的问题;通过采用“时问驱动〞和“事件驱动〞机制更新路由信息,尽量减少路由等控制信息对无线信道的占用,以提高系统效率。在主动式路由协议中,由于每个节点需要实时地维护路由信息,这样在网络规模较大、拓扑变化较快的环境中,大量的拓扑更新消息会占用过多的信道资源,使得系统效率下降。为此,1996年卡耐基梅隆大学的DavidB.Johnson在DSR协议中提出了一种新的路由选择原那么:按需路由协议。按需路由协议又称为反响式路由协议〔ReactiveProtocols〕。与主动式路由协议相比,它是一种被动式的路由协议。在这类协议中,节点平时并不实时地维护网络路由,只有在节点有数据需要发送时,从激活路由发现机制寻找到达目的地的路由。路山发现过程如下图。当节点1有数据要向节点8发送且无路由时,节点1启动路由发现过程:1.节点1向邻居节点〔节点2、3、4〕发送路由请求消息;2.中间节点转发路由请求消息直至目的节点8;3.目的节点选择适宜的路由返回路由响应消息,该消息中携带了从节点1到节点8的完整路由。图2按需路由协议的路由发现过程根据国际上目前研究的结果可知,在各种不同的情况下比拟时,基于按需方式的路由算法要比基于表驱动方式的路由算法在性能上有着明显的优势。另外,在负载较重的情况下,按需式的路由协议中AODV协议的性能最为理想。第三章系统分析与设计3.1根本原理:温度传感器将被测点的温度采集后输出的模拟信号逐步送往放大电路、低通滤波器以及A/D转换器〔即信号调理电路〕,然后再单片机的控制下将A/D转换器输出的数字信号传送到无线收发芯片中,并通过芯片的调制处理后由芯片内部的天线发送到上位机机监测软件上,在上位机模块上,发来的数据由单片机控制的无线收发芯片接收并解调,最后通过接口芯片发送到PC机中进行显示和处理。温度传感器被用在终端节点上,当上电后,温度传感器就是能够获取环境中某个地方温度的敏感元器件,它可以将环境中的温度或者是与温度相关的参量信息转换成电信号,我们可以根据这些电信号的强弱来识别被测点在环境中的温度数据。湿度传感器和温度传感器采集到数据后,通过给RS232串口增加无线传输功能,替代设备电缆线进行无线传输,无线温度采集系统改变了传统有线的数据采集系统搭建布线困难,监测区域受限等诸多缺乏。要求设计的短距离无线通信系统具有功耗少,性价比高,系统维护快捷方便,而且通过在传感器模块上添加FLASH存储设备,使得数据采集工作能够摆脱对监测过程网络辐射范围的限制,可应用到许多的场合更好的改善采集工作的便捷行。通过与其他通信技术(如GSM/GPRS)的无缝接合,能够实现采集数据的远程传输,满足对数据采集区域的远程监控串口传输设计为双向全双工,无硬件流控制,强制允许OTA(多条)时间和丢包重传。3.2系统方案比拟与选择方案一:使用目前已经非常成熟且广泛应用的蓝牙技术,能在包括移动、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙〞技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHzISM〔即工业、科学、医学〕频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。方便快捷且不会遇到未知的技术难题.方案二:选择TI公司的2.4GHz片上系统解决方案CC2530,CC2530是用于、Zigbee和RF4CE应用的一个片上系统解决方案,它能以较低的总本钱建立强大的网络节点。CC2530结合了先进的RF收发器性能,业界标准的增强型8051内核,使操作更容易,具备不同的运行模式,尤其适用于低功耗的系统需求。通过比照以上两种方案开发的难易程度、开发周期和现有的实验环境我们选择方案二。无线温度采集系统改变了传统有线的数据采集系统搭建布线困难,监测区域受限等诸多缺乏。ZigBee这种新兴的短距离无线通信系统具有功耗少,性价比高,系统维护快捷方便,而且通过在传感器模块上添加FLASH存储设备,使得数据采集工作能够摆脱对监测过程网络辐射范围的限制,可应用到许多的场合更好的改善采集工作的便捷行。通过与其他通信技术(如GSM/GPRS)的无缝接合,能够实现采集数据的远程传输,满足对数据采集区域的远程监控。一般以ZigBee技术为核心的无线温度采集系统的工作过程为:协调器节点首先应搭建网络,等待各自终端采集节点的入网请求;终端节点经过验证参加网络后,把温度传感器采集到的数据通过无线网络上传传输给协调器节点;协调器节点接收到数据包后,进行数据包解析,并通过串口将温度信息以及子节点地址等有效信息存储并显示在监控界面上。3.3系统整体设计无线传感器温度测量系统主要由单个ZigBee协调器、单部PC机和放置在各处的温度采集节点—ZigBee终端设备组成。ZigBee协调器与各个终端节点形成了一个ZigBee星型网络。整个无线温度采集系统的拓扑结构图如图1所示。各处的温度采集节点—ZigBee终端设备组成。CC2530芯片的有效通信半径为100m时,终端节点可以安置在以协调器为中心100m半径范围内。终端数据采集节点的结构较为简化,仅由一个CC2530模块,Flash存储,2节1.5V电池和温度传感器组成,各个终端节点被初始化为无信标网络中的终端设备。终端设备上电复位后,便启动搜索指定信道上的ZigBee协调器,并发送连接请求,终端设备在成功入网后,将被赋予一个16位短地址,在以后网络中的通信都以这个16位的短地址作为节点的标识;启动休眠定时器,间隔10秒钟唤醒一次,醒来后使用一种简单的非时隙CSMA-CA,通过竞争机制取得信道使用权,自己向协调器节点发送请求数据。利用模块上的温度传感器模块检测环境温度,并上传给协调器节点,然后立即再次进入休眠状态,最大限度地减少能耗,延长终端节点电源续航时间,同时也可以延伸采集范围,即利用ZigBe网络的自组织性我们可以携带轻巧的终端数据采集节点到实际测量区域完成数据采集工作,如果超出了无线网络可以支持的传输范围,那可以将数据暂时存储在Flash存储器中。网络中的协调器节点负责搜集各温度采集节点的信息,并将信息快速的通过RS232串口按事先定义好的格式上传PC机,随即解析并显示出来。1总体设计框图如下:图3.1无线温湿度采集系统框图实验硬件实物图如下:〔1〕1CC2530邮票孔节点模块(2)无线节点模块〔3〕温湿度采集模块3.系统硬件说明〔1〕SHT10说明SHT10是一款高度集成的温度湿度传感器芯片,提供全标定的数字输出。它采用专利的COMSens技术,确保了传感器具有极高的可靠性与卓越的长期稳定性。传感器包括包括一个电容性聚合体测湿敏感元件、一个能隙材料制成的测温元件,并在同一芯片上,与14位的A/D转换器以及串行接口电路进行连接。图3.2应用电路SH10引脚特性如下:电源引脚SHT10的供电电压为2.4~5.5V。传感器上电后,要等待11ms以越过“休眠〞状态。在此期间无需发送任何指令。电源引脚〔VDD,GND〕之间可增加一个100nF的电容,用以去耦滤波。串行接口(两线双向)SHT10的串行接口,在传感器信号的读取及电源损耗方面,都做了优化处理;但与I2C接口不兼容.串行时钟输入(SCK)SCK用于微处理器与SHTxx之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK频率。串行数据(DATA)DATA三态门用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。为防止信号冲突,微处理器应驱动DATA在低电平。需要一个外部的上拉电阻〔例如:10kΩ〕将信号提拉至高电平〔参见图2〕。上拉电阻通常已包含在微处理器的I/O电路中。串行时钟输入(SCK)SCK用于微处理器与SHTxx之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK频率。测量时序(RH和T)发布一组测量命令〔‘00000101’表示相对湿度RH,‘00000011’表示温度T〕后,控制器要等待测量结束。这个过程需要大约11/55/210ms,分别对应8/12/14bit测量。确切的时间随内部晶振速度,最多有±15%变化。SHTxx通过下拉DATA至低电平并进入空闲模式,表示测量的结束。控制器在再次触发SCK时钟前,必须等待这个“数据备妥〞信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。接着传输2个字节的测量数据和1个字节的CRC奇偶校验。uC需要通过下拉DATA为低电平,以确认每个字节。所有的数据从MSB开始,右值有效〔例如:对于12bit数据,从第5个SCK时钟起算作MSB;而对于8bit数据,首字节那么无意义〕。用CRC数据确实认位,说明通讯结束。如果不使用CRC-8校验,控制器可以在测量值LSB后,通过保持确认位ack高电平,来中止通讯。在测量和通讯结束后,SHTxx自动转入休眠模式。通讯复位时序如果与SHTxx通讯中断,以下信号时序可以复位串口:当DATA保持高电平时,触发SCK时钟9次或更多。在下一次指令前,发送一个“传输启动〞时序。这些时序只复位串口,状态存放器内容仍然保存。图3.3通讯复位时序图〔2〕CC2530说明CC2530是用于2.4-GHz

IEEE802.15.4、ZigBee和RF4CE应用的一个真正的片上系统〔SoC〕解决方案。它能够以非常低的总的材料本钱建立强大的网络节点。CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051CPU,系统内可编程闪存,8-KBRAM和许多其它强大的功能。CC2530有四种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB的闪存。CC2530具有不同的运行模式,使得它尤其适应超低功耗要求的系统。运行模式之间的转换时间短进一步确保了低能源消耗。CC2530F256结合了德州仪器的业界领先的黄金单元ZigBee

协议栈〔Z-Stack™〕,提供了一个强大和完整的ZigBee解决方案。CC2530F64结合了德州仪器的黄金单元RemoTI,更好地提供了一个强大和完整的ZigBeeRF4CE

远程控制解决方案。引脚描述引脚名称引脚引脚类型描述AVDD128电源〔模拟〕2-V–3.6-V模拟电源连接AVDD227电源〔模拟〕2-V–3.6-V模拟电源连接AVDD324电源〔模拟〕2-V–3.6-V模拟电源连接AVDD429电源〔模拟〕2-V–3.6-V模拟电源连接AVDD521电源〔模拟〕2-V–3.6-V模拟电源连接AVDD631电源〔模拟〕2-V–3.6-V模拟电源连接DCOUPL40电源〔数字〕1.8V数字电源去耦。不使用外部电路供给。DVDD139电源〔数字〕2-V–3.6-V数字电源连接DVDD210电源〔数字〕2-V–3.6-V数字电源连接GND-接地接地衬垫必须连接到一个巩固的接地面。GND1,2,3,4未使用的引脚

连接到GNDP0_019数字I/O端口0.0P0_118数字I/O端口0.1P0_217数字I/O端口0.2P0_316数字I/O端口0.3P0_415数字I/O端口0.4P0_514数字I/O端口0.5P0_613数字I/O端口0.6P0_712数字I/O端口0.7P1_011数字I/O端口1.0-20-mA驱动能力P1_19数字I/O端口1.1-20-mA驱动能力P1_28数字I/O端口1.2P1_37数字I/O端口1.3P1_46数字I/O端口1.4P1_55数字I/O端口1.5P1_638数字I/O端口1.6P1_737数字I/O端口1.7P2_036数字I/O端口2.0P2_135数字I/O端口2.1P2_234数字I/O端口2.2P2_333数字I/O模拟端口2.3/32.768kHzXOSCP2_432数字I/O模拟端口2.4/32.768kHzXOSCRBIAS30模拟I/O参考电流的外部精密偏置电阻RESET_N20数字输入复位,活动到低电平RF_N26RFI/ORX期间负RF输入信号到LNARF_P25RFI/ORX期间正RF输入信号到LNAXOSC_Q122模拟I/O32-MHz晶振引脚1或外部时钟输入XOSC_Q223模拟I/O32-MHz晶振引脚2模块说明CC2530芯片系列中使用的8051CPU内核是一个单周期的8051兼容内核。它有三种不同的内存访问总线〔SFR,DATA和CODE/XDATA〕,单周期访问SFR,DATA和主SRAM。它还包括一个调试接口和一个18输入扩展中断单元。中断控制器总共提供了18个中断源,分为六个中断组,每个与四个中断优先级之一相关。当设备从活动模式回到空闲模式,任一中断效劳请求就被激发。一些中断还可以从睡眠模式〔供电模式1-3〕唤醒设备。内存仲裁器位于系统中心,因为它通过SFR

总线把CPU和DMA控制器和物理存储器以及所有外设连接起来。内存仲裁器有四个内存访问点,每次访问可以映射到三个物理存储器之一:一个8-KBSRAM、闪存存储器和XREG/SFR

存放器。它负责执行仲裁,并确定同时访问同一个物理存储器之间的顺序。8-KBSRAM映射到DATA存储空间和局部XDATA存储空间。8-KBSRAM是一个超低功耗的SRAM,即使数字局部掉电〔供电模式2和3〕也能保存其内容。这是对于低功耗应用来说很重要的一个功能。32/64/128/256KB闪存块为设备提供了内电路可编程的非易失性程序存储器,映射到XDATA

存储空间。除了保存程序代码和常量以外,非易失性存储器允许应用程序保存必须保存的数据,这样设备重启之后可以使用这些数据。使用这个功能,例如可以利用已经保存的网络具体数据,就不需要经过完全启动、网络寻找和参加过程。时钟和电源管理数字内核和外设由一个1.8-V低差稳压器供电。它提供了电源管理功能,可以实现使用不同供电模式的长电池寿命的低功耗运行。有五种不同的复位源来复位设备。外设CC2530包括许多不同的外设,允许应用程序设计者开发先进的应用。调试接口执行一个专有的两线串行接口,用于内电路调试。通过这个调试接口,可以执行整个闪存存储器的擦除、控制使能哪个振荡器、停止和开始执行用户程序、执行8051

内核提供的指令、设置代码断点,以及内核中全部指令的单步调试。使用这些技术,可以很好地执行内电路的调试和外部闪存的编程。设备含有闪存存储器以存储程序代码。闪存存储器可通过用户软件和调试接口编程。闪存控制器处理写入和擦除嵌入式闪存存储器。闪存控制器允许页面擦除和4

字节编程。I/O控制器负责所有通用I/O引脚。CPU可以配置外设模块是否控制某个引脚或它们是否受软件控制,如果是的话,每个引脚配置为一个输入还是输出,是否连接衬垫里的一个上拉或下拉电阻。CPU中断可以分别在每个引脚上使能。每个连接到I/O

引脚的外设可以在两个不同的I/O引脚位置之间选择,以确保在不同应用程序中的灵活性。系统可以使用一个多功能的五通道DMA控制器,使用XDATA存储空间访问存储器,因此能够访问所有物理存储器。每个通道〔触发器、优先级、传输模式、寻址模式、源和目标指针和传输计数〕用DMA描述符在存储器任何地方配置。许多硬件外设〔AES

内核、闪存控制器、USART、定时器、ADC接口〕通过使用DMA控制器在SFR或XREG地址和闪存/SRAM之间进行数据传输,获得高效率操作。定时器1是一个16位定时器,具有定时器/PWM功能。它有一个可编程的分频器,一个16位周期值,和五个各自可编程的计数器/捕获通道,每个都有一个16位比拟值。每个计数器/捕获通道可以用作一个PWM输出或捕获输入信号边沿的时序。它还可以配置在IR产生模式,计算定时器3周期,输出是ANDed,定时器3的输出是用最小的CPU互动产生调制的消费型IR信号。MAC定时器〔定时器2〕是专门为支持IEEE802.15.4MAC或软件中其他时槽的协议设计。定时器有一个可配置的定时器周期和一个8位溢出计数器,可以用于保持跟踪已经经过的周期数。一个16位捕获存放器也用于记录收到/发送一个帧开始界定符的精确时间,或传输结束的精确时间,还有一个16位输出比拟存放器可以在具体时间产生不同的选通命令〔开始RX,开始TX,等等〕到无线模块。定时器3和定时器4是8位定时器,具有定时器/计数器/PWM功能。它们有一个可编程的分频器,一个8位的周期值,一个可编程的计数器通道,具有一个8位的比拟值。每个计数器通道可以用作一个PWM输出。睡眠定时器是一个超低功耗的定时器,计算32-kHz晶振或32-kHzRC振荡器的周期。睡眠定时器在除了供电模式3的所有工作模式下不断运行。这一定时器的典型应用是作为实时计数器,或作为一个唤醒定时器跳出供电模式1或2。ADC支持7到12位的分辨率,分别在30kHz或4kHz的带宽。DC和音频转换可以使用高达八个输入通道〔端口0〕。输入可以选择作为单端或差分。参考电压可以是内部电压、AVDD或是一个单端或差分外部信号。ADC还有一个温度传感输入通道。ADC可以自动执行定期抽样或转换通道序列的程序。随机数发生器使用一个16位LFSR来产生伪随机数,这可以被CPU读取或由选通命令处理器直接使用。例如随机数可以用作产生随机密钥,用于平安。AES加密/解密内核允许用户使用带有128位密钥的AES算法加密和解密数据。这一内核能够支持IEEE802.15.4MAC平安、ZigBee网络层和应用层要求的AES操作。一个内置的看门狗允许CC2530在固件挂起的情况下复位自身。当看门狗定时器由软件使能,它必须定期去除;否那么,当它超时就复位它就复位设备。或者它可以配置用作一个通用32-kHz

定时器。USART0和USART1每个被配置为一个SPI主/从或一个UART。它们为RX和TX提供了双缓冲,以及硬件流控制,因此非常适合于高吞吐量的全双工应用。每个都有自己的高精度波特率发生器,因此可以使普通定时器空闲出来用作其他用途。无线设备CC2530具有一个IEEE802.15.4兼容无线收发器。RF内核控制模拟无线模块。另外,它提供了MCU和无线设备之间的一个接口,这使得可以发出命令,读取状态,自动操作和确定无线设备事件的顺序。无线设备还包括一个数据包过滤和地址识别模块。4.系统软件设计本系统软件设计基于Ti公司推出的跟CC2530芯片配套的ZSTACK协议栈和IAR集成开发环境。ZSTACK协议栈运行在一个基于任务调度机制的OSAL操作系统上,OSAL通过触发任务的事件来实现任务调度OSAL中的任务以通过任务API将其添加到系统中,实现多任务机制。系统中传感器节点由CC2430内部的MCU控制,定时向温湿度传感器SHT10发送读温度和湿度指令,SHT11完成温度和湿度转换后会发出转换完成信号,MCU在接收到转换完成信号后,读取温湿度值,并将这些数据信号传送给协调器。协调器通过串口RS232和上位机(PC)相连,通过人机交互的方式对整个区域的进行检测。为了实现这一功能,必须知道节点的长短地址对应表,这就需要节点在参加网络后发送自己的长短地址给协调器,协调器将长短地址对应列表存储起来,以便用户要求采集数据时依据地址表来采集每个传感器的数据。〔1〕协调器节点设计网络协调器主要负责网络的建立,信息的接收、汇总、处理及控制指令的发送。ZigBee网络最初由协调器发动并建立。协调器通过主动扫描选择一个适宜信道,根据扫描的结果选择自己的PANID及0x0000作为自己的短地址,其网络层将通过向MAC层发送MLMESTART.request原语启动一个新的PAN。协调器节点在建成网络后,开始数据收发工作及各种操作指令的执行。当协调器收到数据时,根据数据的串ID来判断传送的数据是地址信息还是传感器采集的数据,根据不同的数据类型解析数据包提供给PC机显示和处理。程序流程如图4左所示。〔2〕传感器节点的设计传感器节点主要负责温湿度数据的采集、发送以及控制指令的接收执行。节点开启初始化后,主动扫描有效网络信道,寻找适宜的父节点,通过关联过程参加网络。如果已经参加到网络中而暂时与网络失去联系的节点想重新参加网络,可以进行孤立通知过程重新参加网络。设备在参加网络后,首先完成其内部系统的初始化,即通信协议的初始化,各端口使能与初始化,发送本节点长短地址给协调器,然后定时查询有无事件发生,事件轮询分媒体接入层、网络层、硬件、应用层等,如果没有事件,那么节点进入休眠状态。如果有相应事件,那么进行处理。节点在休眠期间,如果有外部中断或定时器中断,节点会恢复到工作状态,开始执行任务。其程序流程如图4右所示。图3.4节电工作流程图〔3〕节点通信传感器节点测量的温湿度数据在ZigBeeRFD模块中转化为ZigBee通信协议包,传送给其父节点,以多跳的方式把数据包传给ZigBee协调器。协调器接收到数据包后,解析出出数据源的短地址,温度和湿度值并将其传送给PC显示出来,同时按原路径返回确认信息,实现握手信号。在ZStack中,每个应用任务都通过调用应用层的Processevent()函数来处理任务事件,在Processevent〔〕中有一个事件处理循环,循环检测事件的发生。发送端节点需要发送数据时,直接调用应用层的AF_DataRequest()函数来发送数据。而接收端的应用层通过检测AF_INCOMNG_MSG_CMD消息事件来判断是否有数据收到。具体的数据通信流程如图5所示。图3.5收发数据流程图实验采用设计的节点组成测试网络,在实验楼的不同的房间放置传感器节点,把需要给其他节点路由转发数据包的节点配置为路由器节点,协调器通过串口与PC机相连,将接收到数据在串口中显示出来,同时使用Ti的网络抓包软件Packetsniffer观测数据发送和接收。协调器节点组网成功后,路由器R,传感器节点E参加网络并将自己的长短地址发送给协调器。随后传感器节点进入睡眠模式,定时唤醒检测有无发送数据的命令。串口中显示长地址为0xFF01222324252627,短地址为0x0001,长地址为0xC5130100004B1202,短地址0x796F等节点参加到网络中。协调器可以通过播送方式给所有的路由器节点和传感器节点发送命令或者根据获取的长短地址对应列表,单播的方式给指定的节点发送命令。如果将其中的一个路由节点关闭,网络可以重新寻找路径,选择其他的路由节点进行数据中继。试验结果有效的验证了ZigBee无线网络能够实时的实现数据的采集,且具有良好的自组织、自愈特性,适合于仓库内的温湿度采集系统。总结经过此次为期数周的基于物联网的数据采集系统课程设计,我们根本完成了设计的要求.这次课设依照任务书我完成了以下的任务:1、熟悉了物联网实验箱各种信息采集终端设备〔温湿度、烟感、一氧化碳、压力等传感器嵌入式设备〕;2、掌握C了语言的串口数据收集的原理及应用;3、了解了设备信息采集及收集的一般过程;4、验证了预期结果;5、完成了课设任务书的书写。课程设计是一个将理论运用于实践的过程,是将所学知识进行升华的过程。在此过程中不仅培养了我们独立思考、动手操作的能力,更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。

此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰.致谢此次课设是对之前所学嵌入式知识的一次具体的运用,是对所学知识的一次总结和升华。课设的顺利完成离不开老师的悉心指导和同学的帮助鼓励。在此感谢我嵌入式的任课老师张玺君老师和此次课设的指导老师马维俊老师,在平时的嵌入式学习中张老师给了我莫们大的帮助,课设中马老师对于完成室内信息的采集给了我们指导性的意见,对于所遇到的问题给予了详细的解答,表达出了严谨求实的态度,值得我们学习。饮其流时思其源。成吾学士念吾师。在课程设计完成的时刻,我谨向这次课程设计的指导老师表示诚挚的谢意和崇高的敬意。大学之大,不在大楼,而在大师。大师们才高八斗,学富五车,授我以专业知识;大师们高屋建瓴,宁静致远,予我以严谨之逻辑;大师们博闻多识,学高身正,释我以学者之楷模。感谢我的同学,在搜集资料的过程中给与我实实在在的帮助,让我能够有充足的资源和信息,为课程设计的实施过程开辟了良好的空间。在遇到一些类似的问题时,可以相互讨论和交流经验,起到了很好的促进作用。在设计的过程中给与的关心和鼓励,给了我莫大的动力。参考文献[1]李文仲,段朝玉著.ZigBee2007/PRO协议栈实验与实践.北京航空航天大学出版社,2023.3[2]石志国等著.物联网技术与应用.北京交通大学出版社,2023.9[3]吴大鹏等著.物联网技术与应用.电子工业出版社,2023.6[4]吴洪贵,孙玉娣等著.物联网应用系统开发.东软电子出版社,2023.11[5]付蔚著,家居物联网技术开发与实践.北京大学出版社,2023.8[6]熊茂华,熊昕著.物联网技术与应用开发.西安电子科技大学出版社,2023.11[7]北京奥尔斯电子科技.物联网创新实验套件实验指导书2023.11[8]JaneK.Hart,KirkMartinez.EnvironmentalSensorNetworks:Arevolutionintheearthsystemscience7.Earth—ScienceReviews,2006[9]阳成军.用单总线器件组建温湿度测控系统硬件设计[J].传感器世界2004(2):38-39[10]秦永和.湿度传感器测试系统[D].哈尔滨:哈尔滨工程大学,2002附录系统源代码如下:#include"ZComDef.h"#include"OSAL.h"#include"OSAL_Nv.h"#include"OnBoard.h"#include"ZMAC.h"#ifndefNONWK#include"AF.h"#endif/*Hal*/#include"hal_lcd.h"#include"hal_led.h"#include"hal_adc.h"#include"hal_drivers.h"#include"hal_assert.h"#include"hal_flash.h"#include"stdio.h"//MaximunnumberofVddsamplescheckedbeforegoon#defineMAX_VDD_SAMPLES3//电压检测#defineZMAIN_VDD_LIMITHAL_ADC_VDD_LIMIT_4//正常电压极限值externboolHalAdcCheckVdd(uint8limit);//设备启动前的芯片电压检测函数staticvoidzmain_dev_info(void);staticvoidzmain_ext_addr(void);staticvoidzmain_vdd_check(void);#ifdefLCD_SUPPORTEDstaticvoidzmain_lcd_init(void);#endif/**********************************************************************@fnmain*@briefFirstfunctioncalledafterstartup.*@returndon'tcare*/intmain(void){//Turnoffinterruptsosal_int_disable(INTS_ALL);//关闭所有中断EA=0//InitializationforboardrelatedstuffsuchasLEDsHAL_BOARD_INIT();//初始化系统时钟、LED所使用的IO等//Makesuresupplyvoltageishighenoughtorunzmain_vdd_check();//检测芯片电压是否正常//InitializeboardI/OInitBoard(OB_COLD);//初始化LED的IO//InitialzeHALdriversHalDriverInit();//初始化芯片各个硬件模块〔包括LCD〕//InitializeNVSystemosal_nv_init(NULL);//初始化FLASH存储//InitializetheMACZMacInit();//初始化MAC层//Determinetheextendedaddresszmain_ext_addr();//形成节点MAC地址//InitializebasicNVitemszgInit();//初始化一些非易失变量#ifndefNONWK//SincetheAFisn'tatask,callit'sinitializationroutineafInit();//初始化应用框架层#endif//Initializetheoperatingsystemosal_init_system();//初始化操作系统//Allowinterruptsosal_int_enable(INTS_ALL);//使能全部中断//FinalboardinitializationInitBoard(OB_READY);//初始化按键//Displayinformationaboutthisdevicezmain_dev_info();//在液晶上显示设备IEEE信息/*DisplaythedeviceinfoontheLCD*/#ifdefLCD_SUPPORTEDzmain_lcd_init();//在LCD上显示该设备的信息#endif#ifdefWDT_IN_PM1/*IfWDTisused,thisisagoodplacetoenableit.*/WatchDogEnable(WDTIMX);#endifosal_start_system();//NoReturnfromherereturn0;//Shouldn'tgethere.}/**********************************************************************@fnzmain_vdd_check*@briefCheckiftheVddisOKtoruntheprocessor.*@returnReturnifVddisok;otherwise,flashLED,thenreset*********************************************************************/staticvoidzmain_vdd_check(void)//检测设备电压{uint8vdd_passed_count=0;booltoggle=0;//RepeatgettingthesampleuntilnumberoffailuresorsuccesseshitsMAX//thenbasedonthecountvalue,determineifthedeviceisreadyornotwhile(vdd_passed_count<MAX_VDD_SAMPLES)//电压正常情况下,检查3次{if(HalAdcCheckVdd(ZMAIN_VDD_LIMIT))//设置电压正常的极限值并使用AD检测电压{vdd_passed_count++;//Keeptrack#timesVddpassesinarowMicroWait(10000);//Wait10mstotryagain}else{vdd_passed_count=0;//ResetpassedcounterMicroWait(50000);//Wait50msMicroWait(50000);//Waitanother50mstotryagain}/*toggleLED1andLED2*/if(vdd_passed_count==0){if((toggle=!(toggle)))HAL_TOGGLE_LED1();elseHAL_TOGGLE_LED2();}}/*turnoffLED1*/HAL_TURN_OFF_LED1();HAL_TURN_OFF_LED2();}/***************************************************************************************************@fnzmain_ext_addr**@briefExecuteaprioritizedsearchforavalidextendedaddressandwritetheresults*intotheOSALNVsystemforusebythe*system.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/*Attempttocreateasufficientlyrandomextended*addressforexpediency.*Note:thisisonlyvalid/legalinatestenvironment*andmustneverbeusedforacommercialproduct.*/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);}}//SettheMACPIBextendedaddressaccordingtoresults//fromabove.(void)ZMacSetReq(MAC_EXTENDED_ADDRESS,aExtendedAddress);}/****************************

温馨提示

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

评论

0/150

提交评论