毕业设计论文 基于RS-485现场温度监控系统.doc_第1页
毕业设计论文 基于RS-485现场温度监控系统.doc_第2页
毕业设计论文 基于RS-485现场温度监控系统.doc_第3页
毕业设计论文 基于RS-485现场温度监控系统.doc_第4页
毕业设计论文 基于RS-485现场温度监控系统.doc_第5页
免费预览已结束,剩余49页可下载查看

下载本文档

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

文档简介

成绩_中国人民解放军 空军航空大学 本科毕业设计(论文)课题:基于RS-485现场温度监控系统系 别: 地方学员系 专 业: 电子信息工程 期 班: 电05201 学 号: 03622005210 姓 名: 郭万江 指导教员: 骆鲁秦 二O O 七 年 六 月摘 要该系统由现场总线组成的上位机和下位机两大部分组成。下位机实现温度的检测和适时显示,并提供标准RS-485通信接口,芯片使用了ATMEL公司的AT89C52单片机和DALLAS公司的DS18B20数字温度传感器。上位机部分使用了通用PC,可以简单方便的对各个测温点进行监控.该系统可应用于仓库测温、农业温度测量、楼宇空调控制和生产过程监控等领域。DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,并可使多点温度测量电路变得简单、可靠。本文结合使用实际,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。关键字:温度测量;单总线;数字温度传感器;单片机AbstractAs a kind of high-accuracy digital net temperature sensor,DS18 B20 can be used building a sensor net easily. It can also make the net simple and reliable with its special 1-wire interface .This paper introduces the application of DS18B20 with single chip processor.Thesystem is constituted by two parts the temperature measured part and displayed part. The temperature measured part has a RS485 interface. It used AT89C52 of ATMEL company and DS18B20 of DALLAS company .The displayed part uses PC .This system is applied in such domains as warehouse detecting temperature;air-conditioner controlling system in building and supervisory productive process etc.Key words:temperature measure;single bus;digital thermometer;single chip processor;目 录第一章 绪论11.1课题背景11.2论文内容概述及其意义1第二章 课题设计思路分析22.1 系统总体实现方案及测量要求.22.2 温度传感器及单片机的选择32.3 总线传输协议的选择.4第三章 硬件设计73.1 上位机(PC)的通信接口73.1.1 232/485转接卡及说明73.2 下位机(MCU)的硬件电路设计.73.2.1 微控制器单片机AT89C52介绍.83.2.2 温度传感器DS18B20的内部结构介绍及测温原理.83.3 带有485接口的MCU和DS18B20硬件连接及说明.16第四章 软件设计204.1 系统通信协议设计.204.2 DS18B20的单线协议和命令.214.3 上位机(PC)端VB程序设计.234.3.1上位机通信程序设计234.3.2 PC端监控界面设计254.4下位机(MCU)程序设计.264. 4.1 MCU下位机通信程序设计.274. 4.2 MCU 实现温度检测及其显示程序.27结 论29致 谢30参考文献31附录132附录245空军航空大学本科毕业设计(论文)第一章 绪论1.1课题背景现场总线(FCS)是连接现场智能设备和自动化控制设备的双向串行、数字式、多节点通信网络,它也被称为现场底层设备控制网络()。年代以来,各种现场总线技术开始出现,人们要求对传统的模拟仪表和控制系统变革的呼声也越来越高,从而使现场总线成为一次世界性的技术变革浪潮。 现场总线用一条总线传递信息,具有多种计算、数据处理及控制功能,从而减少主机的负担。发展到今天,它取代4-20mA模拟信号传输,实现传输信号的数字化,增强信号的抗干扰能力。系统可对之进行校验、组态、测试,从而改善系统的可靠性。接口标准化,具有即插即用特性。现场总线智能传感器是未来工业过程控制系统的主流仪表,它与现场总线组成FCS的两个重要部分 总之,在工、农业生产和日常生活中,对温度的测量及控制占据着极其重要地位。首先让我们了解一下多点温度检测系统在各个方面的应用领域:消防电气的非破坏性温度检测;电力、电讯设备之过热故障预知检测;空调系统的温度检测;各类运输工具之组件的过热检测;保全与监视系统之应用,医疗与健诊的温度测试,化工、机械等设备温度过热检测。温度检测系统应用十分广阔。1.2论文内容概述及其意义本设计运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)6点温度数据采集,组成两级分布式多点温度测量的巡回检测系统。该系统采用 RS-485串行通讯标准,通过上位机(PC)控制下位机(单片机)进行现场温度采集。温度值既可以送回主控PC进行数据处理,由显示器显示。也可以由下位机单独工作,实时显示当前各点的温度值。下位机采用的是单片机基于数字温度传感器DS18B20的系统。DS18B20利用单总线的特点可以方便的实现多点温度的测量,轻松的组建传感器网络,系统的抗干扰性好、设计灵活、方便,而且适合于在恶劣的环境下进行现场温度测量。本系统可以应用在大型工业及民用常温多点监测场合。如粮食仓储系统、楼宇自动化系统、温控生产线等。第二章 课题设计思路分析2.1 系统总体实现方案及测量要求.(1) 总体实现方案: 本设计是一个以PC机作为主控机,单片机作为从机构成的485总线监测系统。其中每一个下位机通过DIP开关来设置其地址进而识别. 单片机组成的各个节点负责采集终端设备的状态信息,主控机以轮询的方式身各个节点获取这些设备的信息,并根据信息内容进行相关操作。系统通信总线使用RS-485标准,可以获得较远距离和较好的抗干扰性.整个监测系统的功能示意图如图1所示:图1 单片机485总线现场监测系统功能示意图整个系统分为3个部分: 主控机部分: 该部分由PC机和232/485转接设备构成,它负责轮询各个节点以获取信息。由于PC机不具备485接口,所以必须通过节32/485转接设备接入学85总线网络。 数据采集部分: 该部分是一个具有485接口的单片机系统,它位于各个终端设备处,响应主控机发送来的查询命令,并将监测设备的状态信息回送给主控机。它的单片机的I/O口与被监测的终端智能传感器相连,以获取所需的状态信息。 终端设备: 该部分是监测的设备,本设计是传感器DS18B20。(2) 测量要求: 测温范围:-55+125测量误差:在-10+85范围内误差为0.5测量精度:出厂默认设置12位分辨率,测量精度为0.0625转换时间:传感器进行温度转换不超过750ms刷新频率:考虑到系统时间及传输延迟,每2秒进行一次温度检测.2.2 温度传感器及单片机的选择(1)温度传感器的选择: 温度检测系统有着共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。所以多点温度检测系统的设计的关键在于温度传感器的选择.方案一:采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等.但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂。方案二:在多点测温系统中,传统的测温方法是将模拟信号远距离采样进行AD转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输,多点测量切换及放大电路零点漂移等造成的误差补偿问题。采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。所以集成芯片的使用将成为电路发展的一种趋势。经过综合考虑,本设计选用美国达拉斯(Dallas)公司的单线数字温度传感器芯片DS18B20作为温度传感器, DS18B20可直接将温度传转化成数字信号,以供单片机处理,还具有微型化,低功耗,高性能,抗干扰能力强等优点。 通过编程,DS18B20可以实现9-12位的温度读数。信息经过单线接口送入DS18B2O或从DS18B20送出,因此从微处理器到DS18B2O仅须连接一条信号线和地线。读写和执行温度变换所需的电源可以由数据本身提供,而不需要外部电源。 总而言之,DS18B2O具有以下特点: 采用单线技术,与单片机通信只需一个引脚; 通过识别芯片各自唯一的产品序列号从而实现单线多挂接,简化了温度检测的应用; 实际应用中不需要外部任何元器件即可实现测温 可通过数据线供电,电压范围为3-5.5V 不需备份电源; 测量范围为-55+125C,在-10+85C 范围内误差为0.5C ; 数字温度计的分辨率用户可以从9位到12位的选择,可配置实现912位的温度读数; 将12位的温度值转化为数字量所需要的时间不超过750ms; 用户定义的,非易失性的温度告警设置,用户可自行设定告警的上下限温度; 告警寻找命令可以识别和寻址那些温度超过预设告警界限的器件。(2)单片机的选择: AT89C52是一个低功耗,高性能而且价格便宜的CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案.2.3 总线传输协议的选择.在目前的工业标准中,总线分布式系统采用的传输协议主要有RS-232,RS-485等标准.但是由于RS-232接口标准存在传输速率慢,传送距离短,抗干扰性的缺点.无法满足实际应用中系统的通信要求,因此实际应用中经常使用RS-485接口标准.RS-485总线在工业应用中具有十分重要的地位. RS-485协议可以看作是RS-232协议的替代标准,与传统的RS-232协议相比,其在通信速率,传输距离,多机挂接等方面均有了非常大的提高.RS-485总线 RS-232CR接口标准推出已有几十年的时间,随着通信要求的不断提高,特别是在工业控制领域,RS-232标准已经不能满足实际工作的需要。RS-485和RS-232C的性能比较如表1所示:表1 RS-485与RS-232 性能比较性能RS232RS485节点数1发1收差分最大传输速率20kbps10Mbps最大传输电缆长度50英尺400英尺最大驱动输出电压25V7+12V驱动器输出信号电平(负载最小值)负载515V1.5V驱动器输出信号电平(空载最大值)空载25V6V驱动器负载阻抗37K54摆率(最大值)30V/usN/A接收器输入电压范围15V7+12V接收器输入门限3V200mV接收器输入电阻37K12K工作方式单端差分驱动器共模电压1+3V接收器共模电压7+12V RS485使用两种标准接口连接器,一种是37引脚的D型口,一种为9引脚的D型口,这里简单介绍一下9脚连接器对应的引脚说明,如表2所示 表2 RS485接口9引脚连接器引脚说明 引脚符号简称说明1Shied屏蔽地2RTS+请求发送+3RTS-请求发送4TXD+发送数据+5TXD-发送数据6CTS+允许发送+7CTS-允许发送8RXD+接收数据+9RXD-接收数据 第三章 硬件设计3.1 上位机(PC)的通信接口3.1.1 232/485转接卡及说明由于主控机是PC机,它只有标准的RS-232接口,因此需要一个性232/485转接设备才能接入485总线网络,从而和网络上的从设备通信。现在生产这种类32/485转接卡的产家非常多,可以直接购买,也可以自行设计。图2 给出了232/485转接卡的设计原理图:图2 232/485转接卡原理图图中,MC1488和MC1489是摩托罗拉公司的芯片,它们的作用是实现TTL电平和RS-232通信电平的转化,MC1488是驱动器,MC1489是接收器。PC147是sharp公司的光电隔离器件,针对要使用的串行口信号使用了3块PC147。U7是DC-DC功能模块,它的作用是将电源隔离,降低直流电源的干扰,U1是驱动芯片MAX481,它是实现232/485转接的关键,它的DE/RE引脚直接连接,因为它是半双工芯片不是驱动有效就是接收有效,二者不能同时有效。3.2 下位机(MCU)的硬件电路设计.3.2.1 微控制器单片机AT89C52介绍.AT89C52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89C52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C52设计和配置了振荡频率并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。主要功能特性:兼容MCS-51指令系统,32个双向I/O口,3个16位可编程定时/计数器,全双工UART串行中断口线,2个外部中断源,中断唤醒省电模式,灵活的ISP字节和分页编程,8K可反复擦写大于1000次的ISP FLASH ROM,256*8BIT内部RAM,低功耗空闲和省电模式,3级加密位,软件设置空闲和省电功能,双数据积存器指针,时钟频率0-33MHz,4.5-5.5V工作电压。程序在执行过程中,允许外部或内部时间通过硬件中断程序的执行,使其转向处理外部或内部事件的中断服务程序中去,完成中断服务程序后,CPU继续原来被中断的程序,这样的过程称为中断过程。能产生中断的外部或内部事件称为中断源。几个中断源同时申请中断时,或者CPU正在处理某中断事件时,又有另一个事件申请中断,CPU必须区分哪个中断源更为重要,从而优先处理,这就是中断优先级问题。优先级高的事件可以中断CPU正在处理的低级的中断服务程序,待完成了高级中断服务程序之后,再继续被中断的低级中断服务程序,这就是中断的嵌套。中断源。可以分为一下几类:外部中断,定时器中断,串行中断。 中断请求的撤除: CPU响应某中断请求后,转向中断服务程序执行,在其执行中断返回指令(RETI)之前,该中断请求应该撤除,否则将引起另一次中断。3.2.2 温度传感器DS18B20的内部结构介绍及测温原理.美国达拉斯公司的单线数字温度传感器芯片DS18B20,(8引脚封装),其引脚分布如图3所示 图3 DS18B20引脚分布图其功能和引脚说明如下:NC(1,2,6,7,8脚):空引脚,悬空不使用。VDD(3脚):可选电源脚,电源电压范围3 5.5V。当工作于寄生电源时,此引脚必须接地。DQ(4脚):数据输入/输出脚。漏极开路,常态下为高电平。DS18B20的内部结构如图4所示:图4 DS18B20内部结构图DS18B20有4个主要的数据部件: 64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位产品序列编码(28H)组成。 温度灵敏元件。 非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图5所示. TMR1R01111LSB1MSB图5 DS18B20配置寄存器结构其中,TM:测试模式标志位,出厂时被写入0,不能改变;R0、R1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0、R1置为缺省值:R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。如表3所示表3 温度分辨率配置表R0R1温度计分辨率/bit最大转换时间/us00993.750110187.510113751112750高速暂存存储器由9个字节组成,其分配如下图6所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。温度低位温度高位THTL配置保留保留保留8位CRC LSB图6 高速存储器MSBTH/用户使用字节1TL/用户使用字节2配置字节图7 非易失性电可擦除RAM存储器由一个高速暂存存储器和一个非易失性电可擦除RAM组成温度值格式如图 表4 温度值高低字节数据配置表232221202-12-22-32-4MSBLSBSSSSS2625243测温原理: DS18B20的内部框图如图8所示:预置累加器比较器计数器1计数器1=0计数器2低温振荡器高温振荡器温度存储器计数器2=0 INC停止图8 DS18B20的内部框图低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲.高温度系数振荡器是一个对温度变化很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲.初始时,温度寄存器被预置成-55,每当计数器1从预置数开始计数到0时,温度寄存器中寄存的温度值就增加1,这个过程重复到计数器2到0时便停止.初始时,计数器预置的是与-55相对应的一个预置值.以后计数器1每一个循环的预置数都由斜率累加器来提供.为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置值也随温度相应变化.计数器1的预置数也就是在给定温度处使温度寄存器值增加1计数器所需的计数个数.图中比较器的作用是以四舍五入的量化方式确定温度寄存器的最低有效位.在计数器2停止计数后,比较器将计数器1中的计数剩余值转化为温度值后与0.25进行比较,若低与0.25,温度寄存器最低位就置0;若高于0.25,就置1,若高于0.75时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最末位代表0.5,四舍五入最大量化误差为1/2LSB,即0.25。DS18B20测量温度时使用特有的温度测量技术。DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。当计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。测量结果存入温度寄存器中。一般情况下的温度值为9位(包含一位符号位),但因符号位扩展成高8位,故以16位补码形式读出,温度和数字量的关系如下表5所示:表5 典型的实测温度和数字输出对应表温度/二进制表示十六进制表示+125 +25.0625+10.125+0.50-0.5-10.125-25.0625-5500000111 1101000000000001 1001000100000000 1010001000000000 0000100000000000 0000000011111111 1111100011111111 0101111011111110 0110111111111100 1001000007D0H0191H00A2H0008H0000HFFF8HFF5EHFE6FHFC90H3.2 3 数码管显示电路 LED发光器件一般常用的有两类:数码管和点阵.7段数码管由8个发光二极管LED组成.其中包括7个细长型的LED和1个小数点型的LED,每个LED称为一字段,分别为a,b,c,d,e,f,g,dp共8段,其中dp为小数点,如图8所示.数码管有共阴极和共阳极两种, 设计采用共阴极接法.图8 LED共阴极接法图9 七段数码管内部字段引脚分布根据输入电平的不同,可以实现对LED的字位控制和字型控制.共阴极7段数码管字型,字段和编码关系如表6所示:表6 共阴极字型编码字型D7D6D5D4D3D2D1D0编码dpgfedcba0001111113F100000110062010110115B3010011114F401100110665011011016D6011111017D700000111078011111117F9011011116F单片机驱动LED数码管有很多方法,按显示方法可分为静态显示和动态显示。静态显示虽然数据显示稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多,如果显示的位数比较多时,硬件的开销,电源的功耗等问题将变得更加突出;动态显示需要分时显示,需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多,但使用的硬件少,可以大幅度地降低成本和电源的功耗,还可以节省线路板空间。因此本设计采用后者的显示方法。具体的电路图如下图所示:图11 单片机数码管动态显示电路 A图12单片机数码管动态显示电路B图13单片机数码管动态显示电路 C7图13 单片机数码管动态显示电路 D74LS273:地址锁存器使用两片4LS273分别用于字位锁存和字型锁存上升延锁存。 74LS02:双二输入或非门,与74LS04,单片机的读写信号一起选中锁存器74LS273,决定数码管的字段和字位的显示内容。 74LS04:6非门,对单片机输出的片选信号取反,并和74LS02读写信号一起作用,决定锁存器74LS273的片选。 7407:集电极开路6正相高压驱动器,提供数码管显示的驱动电流。 75452:双与非门外围驱动器,用于字位驱动,它具有200mA的输出电流能力.发光二极管正常工作时,其两端正向压降约为1.6V,正向电流约为10mA,假如果说个二极管同时点亮,则共有80mA电流从阴极流出(因为是动态扫描,所以4位数码管中任何时刻只有1位工作)75452完全有能力接受80mA的灌入电流.3.3 带有485接口的MCU和DS18B20硬件连接及说明.本设计最重要的器件是RS485驱动芯片,它决定了整个485总线网络的建立。Maxim公司的MAX481芯片是一款用于RS485通信的低率半双工收发器件,芯片内部集成了一个驱动器和一个接收器,符合RS485通信标准。MAX481的性能和特点满足本设计的需要,而且易于获取,价格便宜,所以选用它作为本例的驱动芯片。MAX481具有如下一些特点: +5V单电源工作; 低功耗,工作电流为120500uA,静态电流为300Ua; 半双工; 驱动器具有过载保护功能; 通信传输线上最多可以同时挂接32个收发器; 输出速率可达2.5Mbps; 具有接收/驱动使能端; 具有低电流关机模式(驱动器和接收器处于禁止状态),在此模式下,芯片仅消耗0.1uA电流; 共模输入电压范围为7+12V。MAX481有DIP,uMAX和SO三种封装,选择后者,它的引脚分布如图所示,引脚功能说明如下表7: 带有485接口的单片机系统,用MAX481芯片实现RS-485通信接口电路。单片机AT89C52的自带串口和MAX481相连,如图14 单片机的串口引脚RXD和TXD分别MAX481的RO和DI引脚,以进行串行口数据交换;控制引脚P1.6和引脚P1.7分别连接MAX481的DE和/RE引脚,以控制驱动器和接收器使能。注意,这4个引脚应接上拉电阻。以下是单片机的485接口原理图:表7 MAX481引脚分布引脚名称说明1RO接收器输出2/RE接收器输出使能:引脚为0,允许接收器输出;引脚为1,禁止接收输出3DE驱动器工作使能:引脚为1,允许驱动器工作,引脚为0,禁止驱动器工作4DI驱动器输入5GND接地端6A接收器非反相输入端和驱动器非反向输出端7B接收器反向输入端和驱动器反向输出端8BCC电源脚,电压范围4.755.25V图14 MAX481实现RS-485通信接口电路MAX481的A和B引脚为485总线网络的差分信号输入/输出端,二者之间应串接一个别120欧姆的电阻。单片机工作在11.0592MHZ的时钟下,图(11)分别为单片机的地址设定电路, DS18B20和单片机的连接如下图16所示:SI为一个DIP-6开关,和单片机AT89C52的P1.0P1.5引脚相连,用于设置本机的设备号。由于MAX481实现的总线上最多带有32个负载,所以6位引脚足够使用。注意,在读取P1口获取设备号之前,需要先将其位寄存器置1。图15 单片机系统DIP地址设定电路图16 基于DS18B20的数字温度计设计电路原理图图中,U1为单片机AT89C52,它的P0和P2口为数码管电路连接以控制温度的显示,P3.7和DS18B20的引脚DQ连接,作为单一数据线.U2即为温度传感器芯片DS18B20, R2为上拉电阻.DS18B2O有两种供电方式:寄生电源和外部电源。寄生电源简单说来就是器件从单线数据线中“窃取”电源,在信号线为高电平的时间周期内,把能量储存在内部的电容器中,在单信号线为低电平的时间期内断开此电源,直到信号线变为高电平,重新接上寄生电源为止。.DS18B20的另一种供电方式是将VDD引脚接外部电源(35.5)V优点是在DQ线上不要求强的上拉。注意,采用外部电源这中方式时,GND引脚不可以悬空。本设计中只列举了一个单线器件,由于本设计下位机由单片机和温度传感器各一片对应连接,故电源采用外部电源的形式.测温电缆采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一对接VCC和地线,屏蔽层在源端单点接地。第四章 软件设计软件设计是本设计的重点。由于本设计主要设计上位机和下位机间的通信,协议是编程的重点,另外温度传感器DS18B20的单线协议和命令也是编程所必须掌握的.这就要求我们必须熟悉这些协议和命令.4.1 系统通信协议设计.对于协议设计而言,最重要的就是帧结构的设计。本例中数据帧结构定义如表8所示,数据帧的内容包括起始字节,地址字节,类型字节,数据长度字节,数据字节,结束字节和校验字节.表8 单片机485总线现场监测系统数据帧结构起始字节地址字节类型字节数据长度字节数据字节校验字节结束字节1字节1字节1字节1字节N字节1字节1字节起始字节定义为“”字符,其数值为0X24,结束字节定义为“*”字符,其0X2A。地址字节实际上存放的是从机对应的设备号,此设备号在一开始由拨动开关组予以设置,在工作时,每个设备都按规定设置好,一般不做改动,改动是重新设置开关即可。注意,设置时应设置避免重复。本系统的数据帧主要有4种,这由类型决定,它们是主机询问从机是否在们的“ACTIVE”命令,主机发送读设备请求的“GETDATA”指令,从机应答在位的“READY“指令和从机发送设备状态信息的”SENDDATA“指令。”SENDDATA“帧实际上是真正的数据帧,该帧中的数据数据字节存放的是设备的状态信息。其他3种是单纯的指令帧,数据字节为0字节,这3种指令帧的长度最短,仅为6个字节。所以通信过程中帧长小于个字节的帧都认为是错误帧。类型字节的定义如表9 所示:表9 帧结构中类型字节的定义命令类型字节说明ACTIVE0x11主机询问从机是否在位GETDATA0x220主机发送读设备请求READY0x33从机应答在位SENDDATA0x44从机发送设备状态信息本例采用简单的校验和的方法来进行帧的校验。先将所有的字节相加,然后将结果截短到所需的位长,例如,4个字节102,8,78和蔼00的校验和为132(经过截短为1个字节 后)。发端将待发送的数据进行校验和计算,将校验和值放在数据后一起发送,在接收端对接收到的数据进行校验和计算,然后和收到的校验和字节比较,来进行误码判断。设定来进行校验和计算的字节为地址字节,类型字节,数据长度字节和数据字节,不包括起始和结束字节/除了帧结构的定义以外,整个系统的通信还需遵守下面的规则。 主控机(PC机)主导整个通信过程。由主控机定时轮询各个节点处的从机,并要求这些从机提交其对应设备的状态信息。 主控机在发送完“ACTIVE“指令后,进入接收状态,同时开启超时控制,如果接收到错误的信息则继续等待,如果在规定时间内未能接收到从机的返回指令”READY“,则认为从机不在位,取消这次查询。 主控机接收到从机的返回指令“READY“后,发送”GETDATA“指令,进入接收状态,同时开启超时控制。如果接收到错误的信息,则继续等待;如果在规定时间内未能接收到从机的返回信息,则超时计数加工厂,并且主控机重新发送”GETDATA“指令;如果超过3次,则返回错误信息,取消这次查询。 从机复位后,将等待主控机发送指令,并根据具体的指令做出应答。如果接收到的指令帧错误,则会直接丢弃该帧,不做任何处理。4.2 DS18B20的单线协议和命令.DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。主机操作单线器件DS18B20必须遵循下面的顺序: 初始化 单线总线上的所有操作均从初始化开始。初始化过程如下:主机通过拉低单线480us以上,产生复位脉冲,然后释放该线,进入RX接收模式。主机释放总线时,会产生一个上升沿。单线器件DS18B20检测到该上升沿后,延时1560us,通过拉低总线60240us来产生应答脉冲。主机接受到从机的应答脉冲,说明有单线器件在线。 ROM操作命令一旦总线主机检测到应答脉冲,便可以发起ROM操作命令。共有5位ROM操作命令,如下表10所示:表10 ROM操作命令命令类型命令字节功能说明Read Rom(读ROM)33H此命令读取ROM中的位,只能用于总线上单个DS18B20器件的情况,多挂接则会发数据冲突.Match Rom(匹配ROM)55H此命令后跟64位ROM序列号,寻址多挂接总线上的对应DS18B20,只有序列号完全匹配的DS18B20才能响应后面的内存操作命令,其它不匹配的将等待复位脉冲。此命令可用于单挂接或者多挂接总线。Skip Rom(跳过ROM)CCH此命令用于单挂接总线系统时,可以无须提供64位ROM序列号即可运行内存操作命令。如果总线上挂接多个DS18B20,并且在此命令后执行读命令,将会发生数据冲突。Search Rom(搜索ROM)F0H主机调用此命令,通过一个排除法过程,可以识别出总线上所有的器件的ROM序列号。Alam ROM(告擎搜索)ECH此命令流程和Search Rom命令相同,但是DS18B20只有在最近的一次温度测量时满足了温度触发条件,才会响应此命令。 内存操作命令表11 内存操作命令命令类型命令字节 功能说明Write scratchpad(写暂存器)4EH此命令写暂存器中地址2地址4的字节(TH,TL和配置寄存器)在发起复位脉冲之前,3个字节都必须写。Read scratchpad(读暂存器)BEH此命令读暂存器内容,从字节0一直读取到字节8(第9个字节),主机可以随时发起复位脉冲以停止操作。Copy scratchpad(复制暂存大器)48H此命令将暂存器中内容复制进RAM,以便将温度告警触发字节存入非易失内存,如果在此命令后主机产生读时隙,那么只要器件在进行复制就会输出0,复制完成后,再输出1。Convent T(温度转换)44H此命令将温度转换操作。如果在此命令后主机产生读时隙,那么只要器件在进行温度转换就会输出0,转换完成后,再输出1。Recall E2(重调E2寄存器)B8H将存储在RAM中的温度告警触发值和配置寄存器值重新拷贝到存器中,此重调操作在DS18B20加电时自动产生。Read power supply(读供电方式)B4H主机发志此命令后的每个读数据时隙内,DS18B20会发信号通知它的供电方式,1为外部供电方式。数据处理DS18B20有严格的时序来保证数据的完整性。在单线DQ上,存在复位肪冲,应答脉冲,写0,写1,读0和读1几种信号类型。其中,除了应答脉冲之外,均由主机产生。复位和应答脉冲在前文已与所述。而数据位的读写则是通过使用读写时序来完成的。首先来看写时隙。当主机将数据线由高电平拉至低电平时,产生写时隙。有2种类型的写时隙;写1和写0,所以的写时隙必须在60us以上(即由高拉低后持续60us以上),各个写时隙之间必须保证最短1us的恢复时间。DS18B20在DQ线变低后的1560us的窗口对DQ线进行采样,如果为高电平,就为写1;如果为低电平,就为写0;对于主机产生写1说隙的情况,数据线必须先被拉低,然后释放,在写时隙开始后的15us,允许DQ线拉至高电平。对于主机产生写0时隙的情况,DQ线必须被拉低至低电平且至少保持低电平60us.再来看读时隙。当主机从DS18B20读数据时,把数据线从高电平拉至低电平,产生读时隙。数据线DQ必须保持低电平至少1us,来自DS18B20的输出数据在读时隙下降沿之后15us内有效。因此,在此15us内,主机必须停止将DQ引脚置低。在读时隙结束时,DQ引脚将通过外部上拉电阻拉回至高电平。所有的读时隙最短必须持续60us,各个读时隙之间必须保证最短1us的恢复时间。 所有的读时隙至少需要60us,且每两个独立的时隙之间至少需要1us的恢复时间。在写时隙中,主机将在拉低总线15us内释放总线,并向DS18B20仅在主机发出读时隙时才向主机传输数据,所以,当主机向DS18B20发出读数据命令后,必须马上产生读时隙,以便DS18B20能传输数据。 4.3 上位机(PC)端VB程序设计.4.3.1上位机通信程序设计本次通讯中,监控系统分位上位机和下位机之间的通信,系统中单片机负责数据采集、处理和控制,上位机进行现场可视化检测,通信协议采用半双工异步串行通信方式,通过RS232的RTS信号进行收发转换,传输数据采用二进制数据,上位机与下位机之间采用主从式通讯。本设计采用的VB环境下PC机与单片机之间实现串行通讯的软硬件方案。VB是Microsoft公司推出的Windows应用程序开发工具,因其具有界面友好,编程简便等优点而受到广泛的使用,而且Visual Basic 6.0 版本带有专门实现串行通讯的MSCOMM控件。MSComm控件串口具有完善的串口数据的发送和接收功能。通过此控件,PC机可以利用串行口与其它设备实现轻松连接,简单高效地实现设备之间的通讯。此控件的事件响应有两种处理方式。事件驱动方式:由MSComm控件的OnComm事件捕获并处理通讯错误及事件;查询方式:通过检查CommEvent属性的值来判断事件和错误。 1) MSComm控件的主要属性和方法 a. CommPort:设置或返回串行端口号,其取值范围为199,缺省为1 b. Setting:设置或返回串行端口的波特率、奇偶校验位、数据位数、停止位。c. PortOpen:打开或关闭串行端口。 d. RThreshold:该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生MSComml-OnComm事件。 e. Input:从接收缓冲区移走一串字符。 f. Output:向发送缓冲区传送一字符串。程序见附录2上位机软件流程图17 所示:图17 上位机通信程序流程图4.3.2 PC端监控界面设计设计监控界面可以实时的监测各个从机的温度当前值,并且可以设定报警功能,同时把一些当前的各个从机或者系统状态设定为日志的形式,以供查询4.4下位机(MCU)程序设计.4. 4.1 MCU下位机通信程序设计.对于下位机而言,它的工作与主机密切相关,它是完全被动的,根据主机的指令执行相应的操作.从机时刻去收集设备的状态信息,但何时上报取决于主机,当从机收到主机发送读设备状态信息指令时”GETDATA”时,才开始将收集到的信息发送”GETDATA”上报.单片机端485总线通信软件流程如下图(13)所示:图18 单片机端485总线通信软件图4. 4.2 MCU 实现温度检测及其显示程序.本设计中下位机实现对温度的检测和显示由定时器等间隔定时来完成. .而主程序则是采用查询方式来和上位机通信.程序见附录. 定时器中断入口应答脉冲NO时间延迟到了吗?发起Ski

温馨提示

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

评论

0/150

提交评论