基于zigbee的温度测量网络软件设计_第1页
基于zigbee的温度测量网络软件设计_第2页
基于zigbee的温度测量网络软件设计_第3页
基于zigbee的温度测量网络软件设计_第4页
基于zigbee的温度测量网络软件设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业设计(论文)基于ZIGBEE的温度测量网络软件设计SOFTWAREDESIGNOFTEMPERATUREMEASUREMENTNETWORKBASEDONZIGBEE总计30页表格3个插图30幅本科毕业设计(论文)学院(系)电子与电气工程系专业电子信息工程基于ZIGBEE的温度测量网络软件设计摘要本设计是基于ZIGBEE技术的温度测量网络的软件设计,实现把采集到的温度数据以无线的方式发射给接收装置。设计采用MEGA16单片机作为控制器,利用数字式DS1820作为温度传感器,同时采用TM12864对采集到的数据进行显示,XBEE模块作为无线的接收与发射模块。数字式温度传感器DS1820和单片机以单总线方式连接,使用方便。MEGA16按照DS1820的通信协议,便可得到DS1820转换后的温度数据。TM12864为12864的液晶显示模块,MEGA16按其操作指令对其进行读写便可显示所需数据。单片机与XBEE模块以UART方式传输数据,使用方便。用C语言实现对MEGA16的编程,从而实现对温度的采集、显示与传输。关键词ZIGBEE;XBEE;温度传感器;无线传输SOFTWAREDESIGNOFTEMPERATUREMEASUREMENTNETWORKBASEDONZIGBEEABSTRACTTHETOPICISSOFTWAREDESIGNOFTEMPERATUREMEASUREMENTNETWORKBASEDONZIGBEEITUSESTHEXBEEMODULEOFMAXSTREAMTHISDESIGNWANTSTHESYSTEMTOTRANSMITTHEDATAOFTEMPERATURETOTHERECEIVERTHEDESIGNUSESMEGA16ASTHECONTROLLERTOCONTROLTHEDS1820TOCAPTURETHEDATAOFTEMPERATURE,DRIVETHETM12864TODISPLAYDIGITALTEMPERATURESENSORDS1820COMMUNICATEWITHMEGA16VIASINGLEBUSWEUSETHEMODULEOFXBEEASWIRELESSRECEIVERANDTRANSMITTERMEGA16CANGETTHEDATAOFTEMPERATUREFROMDS1820ACCORDINGTOTHECOMMUNICATIONPROTOCOLOFDS1820TM12864IS12864LATTICSDISPLAYDEVICEMEGA16CONTROLTM12864TODISPLAYTHEDATABYUSINGTHEINSTRUCTIONSMEGA16CANCOMMUNICATEWITHTHEXBEEMODULEVIAUARTITISCONVENIENCETOUSEPROGRAMMINGFORMEGA16INTHEENVIRONMENTOFCLANGUAGEACHIEVETHEDATAACQUISITION,DISPLAYANDRECEPTIONKEYWORDSZIGBEEXBEETEMPERATURESENSORWIRELESSTRANSMISSION目录1引言111选题背景及意义112本设计的主要内容12系统方案设计121系统原理122发送模块框图223接收模块框图23发送模块的软件设计231温度采集软件设计2311初始化流程3312ROM操作命令4313存储器操作命令4314写命令流程5315读数据流程6316温度数据的处理732显示控制软件设计8321TM12864指令9322指令的数据格式与功能9323写时序及相关操作流程10324读时序及相关流程11325显示一个字形的控制流程1333数据发送软件设计14331XBEE模快14332单片机与XBEE模块的通信144接收模块的软件设计1541数据的接收1642数据的显示175系统仿真及调试1751XBEE模块的参数设置1752仿真与调试20结束语22参考文献23附录24致谢301引言11选题背景及意义近年来,各种无线技术快速发展,它们在配置、安装、修改和扩展等方面有很多优势,同时无线网络的成本要低于有线网络,给人们的生产生活带来了很多方便。其中ZIGBEE技术就是新兴的无线技术之一,它是IEEE80215工作组的标准之一1,采用直接序列扩频DSS技术。工作频率为868MHZ、915MHZ或者24G,频率的无线技术,用于个人局域网和对等网络是一种适用于固定、便携或移动设备使用的低复杂度、低成本、低功耗、低速率的短距离双向无线通信协议2。ZIGBEE技术在农业,汽车,家居得等方面都有很大的发展优势与空间,其耗电量低,可扩节点多很适合用于温度湿度等的检测。本课题的设计正是基于ZIGBEE技术的无线温湿度测量网络,可将采集传感器获得的温度数据显示并且以传送出去。同时由接收模块接收发出的数据。12本设计的主要内容本课题所设计的系统以AVR单片机作为控制器,以ICCV7FORAVR为系统程序开发平台,用C语言3进行程序设计,以PROTEUS作为仿真软件。系统主要有发射部分和接收部分两部分组成。发射部分主要有温度采集、显示、传输三小部分组成,接收部分主要有接收数据与显示两部分。这样系统经过XBEE无线传输模块把采集到的数据通过自动组网方式传输到接收模块,接收模块经过AVR数据处理,把接收到的数据显示到液晶模块。2系统方案设计21系统原理温度的测控采用以AVR单片机与温度传感器的单总线连接方式,温度传感器DS1820是智能温度传感器,它的输入/输出采用数字量,以单总线方式,接收控制器发送的命令,根据DS1820内部的协议进行相应的处理,将转换的温度数值以串口形式发送给控制器。因此让控制器机按照DS1820的通信协议用一个I/O口模拟DS1820的时序4,发送命令初始化命令、ROM命令、功能命令给DS1820,并读取温度值,单片机进行相应的数值处理5,控制字符型液晶模块显示室内的温度。由于要求系统能够发送数据还能够接收发送来的数据,系统总体由发送模块与接收模块两部分组成。这样系统就完成了采用ZIGBEE技术无线传输模块XBEE把采集到的数据通过自动组网方式传输到接收模块,接收模块经过单片机数据处理,把接收到的数据显示到液晶模块。22发送模块框图发送模块有AVR单片机控制温度传感器,把得到的数据经过处理后,一方面控制显示器显示出来,另外控制采用ZIGBEE技术的无线模块发送出去,从而实现温度数据的发送。发送模块的框图设计如图1所示。液晶显示单片机无线模块温度传感器图1发送模块框图设计23接收模块框图AVR单片机把通过XBEE模块接收到的数据,通过数据处理后控制液晶显示模块将数据显示出来设计框图如图2所示。液晶模块单片机无线模块图2接收模块框图3发送模块的软件设计本部分要完成温度的采集,把得到的数据显示出来同时将数据发射出去,其整体流程如图3所示,当开始后首先控制温度的采集,然后将温度数据显示出来,并发送出去,按此操作顺序循环下去。31温度采集软件设计温度传感器采用了DS1820,信息通过单线接口进入DS1820,因此从中央处理器7到DS1820仅需一条线(和地)读写和温度转换所需的电源可从数据线本身获得,而不需要外接电源,使用比较方便。由于DS1820与单片机的连接只有一条线,没有专门的数据端口与控制端口,单片机需要按照访问单总线接口DS1820的协议,才能获得温度数据。访问时序如下1初始化2对ROM操作命令3存储器操作命令4处理数据本设计中温度传感器DS1820仅一个且采用外电源供电。单片机对DS1820的控制操作如下表1示,把表1转换为温度采集的整体流程如图4所示。采集温度数据显示和发送开始图3发射模块的整体流程311初始化流程单总线上的所有处理均从初始化序列开始,初始化序列包括主机发出一系列复位脉冲,接着从属器件发出存在脉冲。(其脉冲如图5)一旦主机发现从器件存在它便发出ROM命令。表1温度采集指令主机方式数据(LSB在先)注释TXCCHSKIPROM跳过命令TX44HCONVERTT(温度变换)命令RX1个数据字节读“忙”标志3次。主机一个接一个连续读一个字节(或位)直至数据为FFH(全部为1)为止。TXRESET(复位)复位脉冲RXPRESENCE(存在)存在脉冲TXCCHSKIPROM(跳过ROM)命令TXBEHREADSCRATCHPAD(读暂存存储器)命令RX9个数据字节读整个暂存存储器TXRESET复位复位脉冲XRRESENCE存在存在脉冲,操作完成初始化18B20跳过读序列号的操作(SKIP命令)启动温度转换(约定代码44H)转换等待(至少2S)初始化跳过读序列发出读温度寄存器命令接收数据数据处理结束图4温度采集流程图主机初始化低电平480US960US18B20回应60240US图5DS1820复位与存在脉冲主机先发出一个在480US到960US的低电平,然后等待15US到60US若主机接收到60US到240US的低电平,说明从器件应答存在,如图5所示。单片机的PB7端口与DS1820的DQ端口相连接,要实现始化需PB7口输出如图5的脉冲。初始化的流程如图6所示,当给出初始化脉冲后,等待60至260US后,如果收到高电平说明初始化成功,否则失败8,程序见附录。312ROM操作命令所有ROM操作命令均为八位长。这些命令有READROM(读ROM),MATCHROM,SKIPROM等五种共有ROM操作命令,由于此模块仅连接一个DS1820,可以不使等待1560US开始用这些命令,不再详述。313存储器操作命令存储器的操作命令如表2所示。由于温度传感器仅有一个且采用外部电源,本设计可采用的命令有以下这些101SKIP“跳过”ROMCCH此命令允许不提供64位ROM编码而访问存储器来节省时间。但如果存在多个从器件,当SKIP命令发出之后,那么由于多个从器件同时发出数据,会在总线上发生冲突(产生线与)。2CONVERTT44H温度变换命令、启动温度变换,温度转换大概需要2秒。3READSCRATCHPADBEH读暂存存储器。读开始于字节零,并继续经过暂存寄存器,直至第九个字节被读出为止。如果有的存储器不读,那么主机可随时发出复位命令以中止读操作。4写暂存存储器4EH,写字节至暂存存储器地址2和3处(TL和TH温度触发器)。5复制暂存存储器43H,把暂存存储器复制入非易失性存储器(仅地址2和地址3)。图6DS1820初始化流程图314写命令流程失败开始端口PB7作输出口PB7低电平输出480US960USPB7高电平输出PB7输出高电平15US60USPB7作输入口延迟60240USDINB71初始化成功YN要控制温度传感器DS1820获取的温度数据,就需要向DS1820写入一系列的命令,写时序如图7所示,当主机把数据线从高电平拉至低电平时,产生写时间片。写时间片有两种类型写1时间片和写0时间片。所有的时间片必须有60MS持续期,在个写周期之间须有1US的回复时间。在I/O线由高电平拉至低电平之后,DS1820在15US至60US的时间窗口对I/O线采样,如果线为高电平,写1就发生,为低电平写0就发生,写时序的流程如图8,在写流程中可用一个FOR循环来判断是否共有八次,从而完成一个命令代码字节的发送,在每发送一位后都要让PB7拉高单总线,为写下一位做好准备,程序见附录。表2存储器操作命令指令说明约定代码发出约定代码后单总线的操作温度变换命令温度变换启动温度变换44H读温度“忙”状态存储器命令读暂存存储器从暂存存储器读字节BEH(读9字节数据)写暂存存储器写字节至暂存存储器地址2和3处(TH和TL温度触发器)4EH(写数据至地址2和地址3的2个字节)复制暂存存储器把暂存存储器复制入非易失性存储器(仅地址2和地址3)43H读复制状态重新调出E2把储存在非易失性存储器内的数值重新调入暂存存储器(温度触发器)E3H(读温度“忙”状态)读电源发DS1820电源方式的信号至主机B4H(读电源状态)15US15US30USDS1820SAMPLES15US15USDS1820SAMPLES30USMASTERWRITE0SLOTMASTERWTRITE1SLOT1U图7单片机向DS1820写命令时序315读数据流程当温度转换好后要把数据从DS1820的存储器中读出来,读时序如9所示。从DS1820读数据时主机产生读时间片,当主机把数据线从逻辑高电平拉至低电平时,产生读时间片。数据线必须把低逻辑电平保持至少1US,来自DS1820的数据在读时间片下降沿之后15US有效。因此,从读时间片开始主机一共必须保持至少15US的低电平。读时间片结束后,I/O线有外部的上拉电阻拉至高电平。所有读时间片最短维持周期为60US,每个读时间片之间至少需1US的回复时间,读时序的流程如图10所示,读流程中PB7端口将总线拉低开始数据的读取,等待15US后,读总线上的电平,在判断为高电平后将由DAT|0X01将DAT的最低位置1而不改变其它位,在每读取一位后,将DAT中的数据左移一位,同时在每读取一位后应留有至少1US的恢复时间。程序见附录。PB7端口输出0要写的命令位为1PB7端口输出高电平PB7端口输出低电平延时1560MS命令左移一位发送了8位写结束YNYNPB7输出1图8单片机向DS1820写命令流程图图9单片机读DS1820时序316温度数据的处理由于温度数据以16位、二进制补码的读数形式提供,在读取温度数据后,要对其进行处理才能进一步使用,这里要读出两个字节A与B,第一个字节A的低四位是温度的小数位信息,高四位是温度整数信息的低四位。第二个读出的字节B高五位,位全1的话表示是负温度,全为0标是正温度。B的低三位是温度数位。这样B的低三位与A的高四位组成了温度的整数位9。温度数据处理程序流程如图11所示,流程图中的FSBZ为负数标志位,其为1时表示温度值为负,为0时表示温度值为正。至此完成了温度采集的整体过程,程序见附录。NNYYDAT|0X01延时至少1USPB7端口输出低电平延时至少15US将DAT中数据左移一位判断单总线是否为高电平开始是否读入8位读结束图10单片机读DS1820时序流程B73都为1B左移四位,A右移四位后B|A,FSBZ0A取反,B取反,FSBZ1B左移四位,A右移四位后B|A,B1返回BNY读出A与B图11温度数据处理流程图32显示控制软件设计当采集到温度数据后要把温度显示出来,显示器件采用TM12864,TM12864是12864液晶阵列,对TM12864的控制是通过指令加数据的方式进行的,这些控制信号包括读/写(R/W)信号,数据/指令(RS)信号,数据总线(DB0DB7)组成11。321TM12864指令TM12864的指令可分为三类1设置内部RAM地址的指令2向内部RAM写入或读出的指令3其它指令在普通的使用中,第二类指令使用的较为频繁。由于在读取或写入数据后,RAM的Y地址会自动的加一,编程代码将会缩短。但是指令在执行指令期间,它不能接收另外的指令,因此在每次发送指令前应确定其闲忙状态,以确保指令可被执行。322指令的数据格式与功能指令的数据格式如下表3所示表3指令数据格式编码格式显示ON/OFF000011111D显示起始行0011显示起始行(063)设置X地址0010111X07设置Y地址0001Y地址(063)读状态10BUSY0ON/OFFREST0000写显示数据01显示数据读显示数据11显示数据下面对其指令详细介绍如下1显示开/关当D为1是LCD将显示数据,D为0时LCD不显示数据,LCD不显示数据并不是说RAM中的数据消失。因此可有D来控制显示的开和关。2显示起始行设置在显示开始行寄存器中的Z地址所对应RAM地址中的数据会被显示在屏幕的顶端,此命令可用于动态显示。3设置叶(X地址)当要显示的RAM数据的地址设置在X地址寄存器后,写或读数据都在该设定叶中进行。4设置Y地址当把要操作的RAM的Y地址写入Y地址计数器后,对RAM的读写操作Y地址计数器会自动加1。5读状态指令当在读状态中如果发现BUSY(DB7)为1,说明LCD系统处于忙状态,此时不能接收其它指令,因此在每一次发送指令前应判断是否处于空闲状态。如果ON/OFF位(DB5)为1,说明处于显示开状态,为0时关状态。RESET位(DB4)为1表面系统正被初始化,此时除了读状态指令外其它指令不可被执行,为0表示初始化已完成。6写显示数据指令将要显示的字符数据写入指定的RAM地址中。323写时序及相关操作流程知道了命令格式及其用途后,就可以根据写时序向TM12864发出相关命令。单片机的写时序如图12所示,可见在E的下降沿DB0_7被读入。TDSUR/WWWEDB07TWHTWLCS1B,CS2BCS3RSTC图12单片机向TM12864写时序前四个指令的R/W和D/I相同都位0,对这四个指令可编写一个写指令函数以下为实现以上命令的调用,其流程如图13所示在写命令流程中的,检测TM12864是为了了解是否忙,是的话要一直等待直到空闲为止,最后一步是为了产生E的下降沿,程序见附录。设写命令函数为WRITE_INST,那么可用一下方式调用1如果要输出显示开/关指令,则调用WRITE_INST0X3EI,其中I1时为开I0时为关。2设置起始行可调用WRIST_INST0XC0X,X为起始显示的RAM地址。3设置RAM的X地址WRITE_INST0XB8X。X地址即叶地址,八行RAM为一叶。4RAM的Y地址WRITE_INST0X40Y,当叶地址设定后每当一次读写后Y地址自动加一。检测TM12864是否忙,忙则等待R/W0,RS0,写命令PA输出相应命令E1延时E0开始图13单片机向TM1864写命令时序图RAM地址中的X与Y的结构如图14所示图14显示RAM地址结构对于写显示数据的流程只要将写指令流程中的RS0改为RS1既可。324读时序及相关流程对TM12864的操作有时要读出其内部数据,了解它的工作状态,其读时序如图15所示TDUSR/WWWEDB07TWHTWLCS1B,CS2BCS3RSTC图15单片机向TM12864读数据时序由读时序可得出读显示数据的流程如图16所示R/W1,RS1读数E1E0图16单片机向TM12864读数据时序流程对于读显示数据在指定了地址后要有一个假的读操作,以使数据锁存在输出缓冲器中。在每一次对TM12864操作都要判断其是否处于忙状态,可用读状态解决,读出的第七位为1表示忙,为0表示空闲,程序见附录。这一判断过程可用流程图17表示R/W1,RS0E1读入状态数据第七位是否为1E0结束YN图17单片机读TM12864状态的流程图有了写指令、读显示数据、读状态,就能够指定显示的内容和在屏幕何处显示,同时还可知道TM12864的工作状态,组成LCD的显示控制函数,程序见附录。325显示一个字形的控制流程要显示字符首先要有一个字模,字符以816的形式显示,以下为实现显示字符的流程如图18所示X地址0I/8次给出一个字节DDRB|0X01/PORT0为输出口PORTB/右移一位DELAY53读字节函数UNSIGNEDCHARREADONECHARVOIDUNSIGNEDCHARI0UNSIGNEDCHARDAT0FORI8I0IDDRB|0X01/PROTB0设为输出口PORTBIFI63/判断地址是否越界/BREAKIFI8/地址进入右半屏范围/CS1_0CS2_1WRITE_ISNTY1|0XB8WRITE_INSTX|0X40WHILEI8WRITE_INSTQQXICSA_CLRCSB_CLR/关显示屏/9传输与接收函数VOIDUART0_INITVOIDUCSRB0X00/DISABLEWHILESETTINGBAUDRATEUCSRA0X00UCSRCBITURSEL|0X06UBRRL0X33/SETBAUDRATELO内部晶振8MUBRRH0X00/SETBAUDRATEHIUCSRB0XD8PRAGMA

温馨提示

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

评论

0/150

提交评论