版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.图4-1所示。图2ZigBee协议栈结构图1.物理层物理层由半双工的无线收发器及其接口组成,主要作用是激活和关闭射频收发器;检测信道的能量;显示收到数据包的链路质量;空闲信道评估;选择信道频率;数据的接受和发送。2.媒体访问控制层媒体访问控制〔MAC层建立了一条节点和与其相邻的节点之间可靠的数据传输链路,共享传输媒体,提高通信效率。在协调器的MAC层,可以产生网络信标,同步网络信标;支持ZigBee设备的关联和取消关联;支持设备加密;在信道访问方面,采用CSMA/CA信道退避算法,减少了碰撞概率;确保时隙分配〔GTS;支持信标使能和非信标使能两种数据传输模式,为两个对等的MAC实体提供可靠连接。3.网络层网络层负责拓扑结构的建立和维护网络连接,主要功能包括设备连接和断开网络时所采用的机制,以及在帧信息传输过程中所采用的安全性机制。此外,还包括设备的路由发现和路由维护和转交。并且,网络层完成对一跳<one—hop>邻居设备的发现和相关结点信息的存储。一个ZigBee协调器创建一个新网络,为新加入的设备分配短地址等。并且,网络层还提供一些必要的函数,确保ZigBee的MAC层正常工作,并且为应用层提供合适的服务接口。网络层要求能够很好地完成在IEEE802.15.4标准中MAC子层所定义的功能,同时,又要为应用层提供适当的服务接口。为了与应用层进行更好的通信,网络层中定义了两种服务实体来实现必要的功能。这两个服务实体是数据服务实体<NLDE>和管理服务实体<NLME>。网络层的NLDE通过数据服务实体服务访问点<NLDE—SAP>来提供数据传输服务,NLME通过管理服务实体服务访问点<NLME—SAP>来提供管理服务。NLME可以利用NLDE来激活它的管理工作,它还具有对网络层信息数据库<NIB>进行维护的功能。在这个图中直观地给出了网络层所提供的实体和服务接口等。NLDE提供的数据服务允许在处于同一应用网络中的两个或多个设备之间传输应用协议数据单元<APDU>。NLDE提供的服务有:产生网络协议数据单元<NPDU>和选择通信路由。选择通信路由,在通信中,NLDE要发送一个NPDU到一个合适的设备,这个设备可能是通信的终点也可能只是通信链路中的一个点。NLME需提供一个管理服务以允许一个应用来与协议栈操作进行交互。NLME需要提供以下服务:①配置一个新的设备<configuringanewdevice>。具有充分配置所需操作栈的能力。配置选项包括:ZigBee协调器的开始操作,加入一个现有的网络等。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层的接口。它负责发送和接收数据,并为接收到的数据寻找相应的目的端点。CC2530串口通信原理UART接口可以使用2线或者含有引脚RXD、TXD、可选RTS和CTS的4线。UART操作由USART控制和状态寄存器UxCSR以及UART控制寄存器UxUCR来控制。这里的x是USART的编号,其数值为0或者1。当UxCSR.MODE设置为1时,就选择了UART模式。当USART收/发数据缓冲器、寄存器UxBUF写入数据时,该字节发送到输出引脚TXDx。UxBUF寄存器是双缓冲的。当字节传输开始时,UxCSR.ACTIVE位变为高电平,而当字节传送结束时为低。当传送结束时,UxCSR.TX_BYTE位设置为1.当USART收/发数据缓冲寄存器就绪,准备接收新的发送数据时,就产生了一个中断请求。该中断在传送开始之后立刻发生,因此,当字节正在发送时,新的字节能够装入数据缓冲器。当1写入UxCSR.RE位时,在UART上数据接收就开始了。然后UART会在输入引脚TXDx中寻找有效起始位,并且设置UxCSR.ACTIVE位为1.当检测出有效起始位时,收到的字节就传入到接收寄存器,UxCSR.RX_BYTE位设置为1.该操作完成时,产生接收中断。同时UxCSR.ACTIVE变为低电平。通过寄存器UxBUF提供到的数据字节。当UxBUF读出时,UxCSR.RX_BYTE位由硬件清0。二系统分析该系统通过具有IIC总线接口的单片全校准字式新型相对温湿度传感器SHT10实现对温湿度的采集,将信号送至ZigBee技术,从节点采集温湿度数据每隔一定的时间轮流向主节点发送,主节点收到数据之后通过串口将各节点的温湿度数据传给智能主板。2.1程序流程图开始开始系统时钟初始化读取温湿度数据显示温湿度数据LCD初始化图3软件流程图2.2具体步骤1、给智能主板供电〔USB外接电源或2节干电池。2、将一个无线节点模块插入到带LCD的智能主板的相应位置。3、将温湿度及光电传感器模块插入到智能主板的传感及控制扩展口位置。4、将CC2530仿真器的一端通过USB线〔A型转B型连接到PC机,另一端通过10Pin下载线连接到智能主板的CC2530JTAG口〔J203。5、将智能主板上电源开关拨至开位置。按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功。6、使用IAR7.51打开"…\OURS_CC2530LIB\lib10<HumiTempLight>\IAR_files"下的HumiTempLight.eww文件,下载运行程序。7、观察LCD上温度、湿度和光照强度的变化。8、用一个物体挡住光照传感器的光线,观察LCD上光照强度数据的变化。9、向温湿度传感器吹一口气体,观察LCD上温湿度数据的变化。三详细设计3.1总体结构构成温湿度采集模块主要有无线模块和数据采集模块,由数据采集模块完成温湿度的采集。温湿度及光照传感器采集数据,并把采集的数据通过串口发送到CORTEXA8DB开发板上。在CORTEXA8DB开发板上通过软件将采集到的光、湿度、温度值通过曲线描述出来。无线传感模块无线传感器网络在设计目标方面与传统的无线网络有所区别,前者是以数据为中心的,后者以传输数据为目的。在无线传感器网络中,因为节点通常运行在人无法接近的恶劣甚至危险的远程环境中,所以除了少数节点需要移动以外,大部分节点都是静止不动的。在被监测区域,节点任意散落,节点除了需要完成感测特定的对象以外,还需要进行简单的计算,维持互相之间的网络连接等功能。并且由于能源的无法替代以及低功耗的多跳通信模式节,设计无线传感节点时,有效的延长网络的生命周期以及节点的低功耗成为无线传感器网络研究的核心问题。在节省功耗的同时增加通信的隐蔽性,避免长距离的无线通信易受外界噪声干扰的影响,也都是在设计传感器网络时需要攻克的新难题。图4无线传感器节点模型无线传感网络的建立是基于传感器加无线传输模块的,传感器采集的数据,简单处理后经过无线传输模块传到服务器或应用终端。目标、观测节点传感节点和感知视场是无线传感器网络所包括的4个基本实体对象。另外,要完成对整个系统的应用刻画,还需要对远程任务管理单元、外部网络和用户进行定义。大量传感节点随机部署,单个节点经过初始的通信和协商,通过自组织方式自行配置,形成一个传输信息的单跳或一系列的无线网络节点组成的网络,协同形成对目标的感知视场。传感节点检测的目标信号经过传感器本地简单处理后通过单播或广播以多跳的方式通过邻近传感节点传输到观测节点。用户和远程任务管理单元则能够通过卫星通信网络或Internet等外部网络,与观测节点进行数据信息的交互。观测节点向网络发布查询请求和控制指令,接收传感节点返回的目标信息。图5无线传感器网络通信体系结构无线传输模块可以实现短距离〔小于300米的信号传输。在实际应用中,需要根据不同需求选择传感器,如电压电流、功耗、温湿度、液面、震动、压力等等。3.1.2温湿度探头直接使用IIC接口进行控制。其电路原理图如下所示:图6数据采集模块电路图本实验将使用CC2530读取温湿度传感器SHT10的温度和湿度数据,并将采样到的数据转换然后再LCD显示。其中对温湿度的读取是利用CC2530的I/O〔P1.0和P1.1模拟一个类IIC得过程。3.2硬件模块设计传感器节点由数据处理发送模块,温度传感器,湿度传感器和供电般构成。数据处理模块是由CC2530构成,温湿度采集采用温湿度传感器SHT10。其结构图如温度采温度采集模块湿度采集模块数据处理模块电源模块电源模块图7硬件结构图3.3总体结构软件设计3.3.1程序流程图及核心代码:*函数名称:initUART*功能描述:CC2530串口初始化**************************************************************************************************/voidinitUART<void>{PERCFG=0x00;//位置1P0口P0SEL=0x3c;//P0用作串口U0CSR|=0x80;//UART方式U0GCR|=11;//baud_e=11;U0BAUD|=216;//波特率设为115200UTX0IF=1;U0CSR|=0X40;//允许接收IEN0|=0x84;//uart0接收中断}/***************************************************************************************************函数名称:UartTX_Send_String**功能描述:串口发送数据函数**参数:*Data发送数据指针*len发送的数据长度**返回值:无**************************************************************************************************/voidUartTX_Send_String<UINT8*Data,intlen>{intj;for<j=0;j<len;j++>{U0DBUF=*Data++;while<UTX0IF==0>;UTX0IF=0;}}/***************************************************************************************************函数名称:HAL_ISR_FUNCTION**功能描述:串口接收数据中断函数**参数:halUart0RxIsr中断名称*URX0_VECTOR中断向量**返回值:无**************************************************************************************************/HAL_ISR_FUNCTION<halUart0RxIsr,URX0_VECTOR>{UINT8temp;URX0IF=0;temp=U0DBUF;*<str+count>=temp;count++;}/***************************************************************************************************函数名称:main*功能描述:串口间歇发送.ourselec.字符串,当串口接收到数据后,再通过串口*回发出去。**************************************************************************************************/voidmain<>{UINT8*uartch=".ourselec.";UINT8temp=0;SET_MAIN_CLOCK_SOURCE<CRYSTAL>;//设置主时钟为32M晶振initUART<>;//初始化串口while<1>{UartTX_Send_String<uartch,17>;//发送.ourselec.halWait<200>;halWait<200>;if<count>//判断串口是否接收到数据{temp=count;//保存接收的数据长度halWait<50>;//等待数据接收完成if<temp==count>//判断数据是否接收完成{UartTX_Send_String<str,count>;//回发接收到的数据str=0;count=0;}}}}3.3.2开始开始系统时钟初始化读取温湿度数据显示温湿度数据LCD初始化程序流程图及核心代码:voidmain<>{intwendu;intshidu;chars[16];UINT8adc0_value[2];floatshuzi=0;SET_MAIN_CLOCK_SOURCE<CRYSTAL>;//设置系统时钟源为32MHz晶体振荡器GUI_Init<>;//GUI初始化GUI_SetColor<1,0>;//显示色为亮点,背景色为暗点GUI_PutString5_7<25,6,"OURS-CC2530">;//显示OURS-CC2530GUI_PutString5_7<10,22,"Temp:">;GUI_PutString5_7<10,35,"Humi:">;GUI_PutString5_7<10,48,"Light:">;LCM_Refresh<>;while<1>{th_read<&tem,&hum>;//从采集模块读取温度和湿度的数据sprintf<s,<char*>"%d%dC",<<INT16><<int>tempera/10>>,<<INT16><<int>tempera%10>>>;//将采集的温度结果转换为字符串格式GUI_PutString5_7<48,22,<char*>s>;//显示采集的温湿度的结果LCM_Refresh<>;sprintf<s,<char*>"%d%d%%",<<INT16><<int>humidity/10>>,<<INT16><<int>humidity%10>>>;//将采集的湿度结果转换为字符串的格式GUI_PutString5_7<48,35,<char*>s>;//显示采集结果LCM_Refresh<>四总结本次为期两周的课程设计中,主要目的是设计一个基于CC2530的智能仓储管理系统。该系统是一个采用CC2530无线单片机进行温湿度的数据采集,并且结合Zigbee协议架构进行编程的设计,主要是基于CC2530的温湿度数据采集系统模块的设计,并在IAR集成环境开发环境中进行基于Zigbee架构的编程,节点模块的调试,最后,实现无线传感网络的构建。在基于Zigbee无线传感器节点模块上,可以实现数据的实时采集,处理以及传输等功能。本次课程设计的完成,让我结道,在以后的工作中,还可以继续从以下几个方面着手,进行研究和改进:1、减少节点的能量消耗。在无线传感网络中某个节点失效,不会导致整个网络瘫痪,减少节点的能量消耗是不可避免要面对的问题之一。2、减少路由发现过程中的开销。这其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工素养提升培训总结报告
- 责任心文化宣传
- 新生儿溶血病检验课件
- 术后血压低的护理
- 工程抵顶房屋转让协议书
- 《如何使你的W》课件
- 《拆题培训图》课件
- 2024年度软件著作权转让与许可使用合同3篇
- 《如何描述问题》课件
- 扬尘防治安全培训
- 2024年度铝业加工服务合同:铝锭加工(2024版)
- 精神分裂症全程治疗
- 2024-2030年中国特钢行业产量预测及投资规模分析报告
- 2024−2025学年高一上学期期中考试数学试题含答案
- 康复科一科一品一特色科室活动方案
- 店长数据分析能力培训
- 第11课-西汉建立和“文景之治”【课件】3
- 丝绸之路上的民族学习通超星期末考试答案章节答案2024年
- 意识形态工作管理制度
- 化工和危险化学品企业评估分级指南(小微型型企业版)
- 校园公益慈善课件
评论
0/150
提交评论