基于LABVIEW的数据采集系统设计_第1页
基于LABVIEW的数据采集系统设计_第2页
基于LABVIEW的数据采集系统设计_第3页
基于LABVIEW的数据采集系统设计_第4页
基于LABVIEW的数据采集系统设计_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要本文介绍了一种基于虚拟仪器设计软件LabVIEW和DS18B20温度传感器的单总线多路温度采集系统。多个温度传感器DS18B20通过单总线结构连接到单片机的一个双向口,单片机和微机通过串口连接。单片机响应主机的命令。由微机控制传感器的选通、启动转换、发送数据、增加或删除通道等。在LabVIEW中建立应用程序,使之可以通过串口向单片机发送命令,接收温度数据。在该应用程序中,可以对数据进行显示、保存等处理。该系统由上位机和下位机两大部分组成。下位机实现温度的检测并提供标准RS232通信接口,芯片使用了ATMEL公司的AT89C52单片机和DALLAS公司的DS18B20数字温度传感器。DS1

2、8B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。上位机部分使用了通用PC,组成分布式多点温度采集监控系统。该系统可应用于仓库测温、楼宇空调控制和生产过程监控等领域。关键词 LabVIEW,DS18B20,多路温度采集,AT89C52AbstractA multi-channel temperature acquisition system based on the virtual instrument application software LabVIEW and the temperature

3、 sensor DS18B20 is presented in this paper. A number of sensors are connected to a port of the MCU, which is connected to a PC through the serial interface . MCU acts in accordance with PC's order. PC will control the behaviors as follows: selecting sensors, setting up conversion, sending datas,

4、 adding or deleting channels, etc. The software, developed in LabVIEW, receives data from the MCU. The data can be displayed in a table and a waveform graph. It also can be saved to disk. The system is constituted by two parts the temperature measured part and displayed part. The temperature-measuri

5、ng part has a RS232 interface. It uses AT89C52 of ATMEL company and DS18B20 of DALLAS company . As a kind of high-accuracy digital net temperature sensor,DS18B20 can be used to bulild a sensor net easily. It can also make the net simple and reliable with its special 1-wire interface .The displayed p

6、art uses PC ,makes up of distributed multi-channel temperature acquisition and control system. This system is applied to such domains as warehouse detecting temperature;air-conditioner controlling system in building and supervisory productive process etc.Keywords LabVIEW, DS18B20, Multi-channel temp

7、erature acquirement ,AT89C52目 录摘 要IAbstractII第1章 绪 论11.1 系统背景11.2 系统来源及现状11.2.1 温度采集11.2.2 虚拟仪器21.3 系统概述41.4 本文研究的主要内容4第2章 系统方案设计论证62.1 下位机温度采集部分62.1.1 传感器62.1.2 测量方式比较72.2 上位机虚拟仪器部分82.4 系统的总体方案设计10第3章 下位机硬件和软件的设计113.1温度传感器的选型及介绍113.1.1 DS18B20 的封装及引脚功能123.1.2 DS18B20的内部结构123.1.3 DS18B20的常用命令和时序153.

8、1.4 DS18B20使用中的注意事项173.2 硬件电路设计183.2.1 系统模块电路组成183.2.2 单片机最小系统设计193.2.3 传感器电路设计223.2.4 通讯电路设计223.2.5 电源电路设计253.2.6 状态显示电路设计253.3 软件设计263.3.1 单片机主程序273.3.2 温度采集程序273.3.3 获取DS18B20序列号程序293.4 本章小结31第4章 上位机LabVIEW中程序的设计334.1 LabVIEW的开发环境334.1.1 LabVIEW 程序的执行顺序344.1.2 LabVIEW中的数据类型344.2 程序界面354.3 程序预处理37

9、4.3.1 登陆程序384.3.2 串口初始化404.4 程序主体404.4.1 温度数据处理和显示414.4.2 报警设置424.4.3 保存数据434.5 本章小结45第5章 系统调试465.1 分步调试465.1.1 下位机调试465.1.2 上位机调试475.2 上下位机联合调试485.3 本章小结48结 论49参考文献50致 谢52附 录53第1章 绪 论1.1 系统背景随着现代控制技术的发展,无论在工业,农业,科学研究,国防和人们日常生活各个方面,温度的测量及控制占据着极其重要的地位。多点温度检测系统在各个方面都有应用领域,如消防电气的非破坏性温度检测,电力、电讯设备之过热故障预知

10、检测,空调系统的温度检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与诊断的温度测试,化工、机械等设备温度过热检测。温度检测系统的应用十分广阔。 近年来,随着工业生产及人民生活水平的逐步提高,高效与安全越来越被人们所重视。分布式温度采集是近几年发展起来的一种用于实时测量空间温度场分布的高新技术,它能够连续测量传感器沿线所在处的温度,具有测量距离长,空间定位精度高,能够进行不间断的自动测量的特点,特别适用于需要大范围多点测量的应用场合。1.2 系统来源及现状1.2.1 温度采集目前,温度测量大多还是采用玻璃液体温度计,人工观测。这种测量方式,一方面给偏远地区的观测人员带来诸多不便;

11、另一方面,测量精度受人为因素影响,测量误差大。因此,有必要采用效率和自动化水平更高的新的测量手段。温度传感器所起的作用变得越来越重要。科学技术的不断进步与发展,温度传感器的种类日益增多,应用逐渐广泛,并且开始由模拟式、总线式、总线式和三总线式方向发展。而数字温度传感器更因适用于各种微处理器接口组成的自动温度控制系统具有可以克服模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端等优点,被广泛应用于工业控制、测温计、医疗器材等各种温度控制系统中。其中,比较有代表性的数字温度传感器有DS1820、MAX6575、DS1722、MAX6635等。智能温度传感器(亦称数字温度传感器)是在20

12、世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE)的结晶。目前,国际上已开发出多种智能传感器系列产品。智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和借口电路。有的产品还带多路选择器、中央控制器(CPU)。随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MVU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化和谐也取决于软件的开发水平。进入21世纪后,智能温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片机

13、测温系统等高科技的方向迅速发展。1.2.2 虚拟仪器虚拟技术、计算机技术与网络技术是信息技术最重要的组成部分。它们被称为21世纪科学技术中的三大核心技术。进入21世纪以来,随着计算机技术、大规模集成电路技术和通信技术的飞速发展,仪器技术领域发生了巨大的变化。从最初的模拟仪器发展到现在的数字化仪器、嵌入式系统仪器和智能仪器;新的测试理论、测试方法不断应用于实际;新的测试领域随着学科门类的交叉发展而不断涌现;仪器结构也随着设计思想的更新而不断发展。仪器技术领域的各种创新积累起来使现代测量仪器的功能和作用发生了质的飞跃。尤其是以计算机为核心的设计思想以及仪器系统与计算机软件技术的紧密结合,导致了仪器

14、的概念发生了突破性的变化,出现了一种全新的仪器概念虚拟仪器(Virtual Instrumentation,VI)。虚拟技术包括虚拟加工、虚拟测试、虚拟控制及各种虚拟环境模拟。作为测试技术的一个分支,虚拟仪器的开发和研制在国内得到了飞速的发展。虚拟仪器是基于计算机的仪器。简单地说,就是在通用计算机上加上软件和硬件,利用计算机显示器的显示功能来模拟传统仪器的控制面板,以多种形式表达输出检测结果,利用计算机强大的软件功能实现信号数据的运算、分析、处理,并利用I/O接口设备完成信号的采集、测量与调试,从而完成各种测试功能的计算机仪器系统。在虚拟仪器系统中,硬件仅仅是为了解决信号的输入输出,软件才是整

15、个仪器系统的关键,任何一个用户都可以以通过改写软件的办法,方便地改变和增减仪器系统地功能,即“软件就是仪器”。虚拟仪器技术的出现,打破了传统仪器由厂家定义功能,用户无法改变的固定模式,虚拟仪器技术给用户一个充分发挥自己的才能、想象力的空间。用户可以随心所欲地根据自己的需求,设计自己的仪器系统,满足多种多样的应用需求。虚拟仪器系统概念是对传统仪器概念的重大突破,是计算机系统与机器系统技术相结合的产物。它大大突破传统仪器在数据处理、显示、传送、处理等方面的限制,使用户可以方便地对其进行维护、扩展和升级等。目前流行的虚拟仪器软件开发工具有两类。一种是基于文本式编程语言开发工具,有VC+,VB,C+B

16、uild,LabWindows/CVI,Delphi等;另一种是基于图形化编程语言开发工具,有LabVIEW(NI 公司)、HP VEE (HP 公司)等。其中LabVIEW最流行,是目前应用最广、发展最快、功能最强的图形化软件。LabVIEW是美国国家仪器公司(NI)的创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),是一种基于G语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。虚拟仪器作为新兴的仪器仪表,用户可以定义其结构和功能,构建灵活,转变容易,因此它在

17、各个领域尤其是在超大规模集成电路测试、工厂测试、现代家用电器测试以及军事、航空、航天、通信、汽车、教育、半导体和生物医学等领域得到了广泛应用3。1.3 系统概述传统的温度传感器,如热电偶温度传感器,具有精度高,测量范围大,响应快等优点。但由于其输出的是模拟量,而现在的智能仪表需要使用数字量,有些时候还要将测量结果以数字量输入计算机,由于要将模拟量转换为数字量,其实现环节就变得非常复杂。硬件上需要模拟开关、恒流源、D/A转换器,放大器等,结构庞大,安装困难,造价昂贵。 新兴的智能温度传感器如DS18B20,由于可以直接输出温度转换后的数字量,可以在保证测量精度的情况下,大大简化系统软硬件设计。这

18、种传感器的测温范围有一定限制(大多在50120),多适用于环境温度的测量。DS18B20可以在一根数据线上挂接多个传感器, 只需要三根线就可以实现远距离多点温度测量。 利用单片机可以较方便地实现对智能温度传感器的操作,但要实现数据的可视化、保存和程序对硬件扩展有一定的适应性,利用传统的单片机系统的显示和输入输出系统,不仅程序庞大,硬件复杂,而且功能有限。在当前微机非常普及的情况下,可以将单片机采集的数据输入微机,利用微机强大的计算、显示、输入输出能力,使原有系统的功能进一步增强。 基于G语言的虚拟仪器编程工具LabVIEW由于其图形化的形象直观的编程方式和功能强大的函数库为这一方案的实现提供了

19、一种简捷、有效的工具。LabVIEW使用图形语言(即各种图标、图形符号、连线等)编程,使用的都是人们熟悉的旋钮、开关、波形图等,界面非常直观形象。利用LabVIEW提供的串口通讯模块可以非常方便地实现计算机的串口和单片机串口的通讯,从而将数据导入计算机,处理、显示、保存。1.4 本文研究的主要内容本设计运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统。该系统采用 RS-232串行通讯标准,通过上位机(PC)控制下位机(单片机)进行现场温度采集。温度值既可以送回主控PC进行数据处理,由LabVIEW编写的虚拟仪器界面显

20、示并控制。也可以由下位机单独工作,实时显示当前各点的温度值,对各点进行控制。下位机采用的是单片机基于数字温度传感器DS18B20的系统。DS18B20利用单总线的特点可以方便的实现多点温度的测量,轻松的组建传感器网络,系统的抗干扰性好、设计灵活、方便,而且适合于在恶劣的环境下进行现场温度测量。本系统可以应用在大型工业及民用常温多点监测场合。如粮食仓储系统、楼宇自动化系统、温控制程生产线的温度影像检测、医疗与诊断的温度测试、空调系统的温度检测、石化、机械等。第2章 系统方案设计论证温度检测系统有着共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要

21、设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。所以多点温度检测系统的硬件设计的关键在于两部分:温度传感器的选择和主控单元的设计。再通过与虚拟仪器的完美结合,突破传统仪器在数据处理、显示、传送等方面的限制,使用户可以方便地进行维护、扩展、升级等。2.1 下位机温度采集部分 传感器方案一:采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是

22、不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等.这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂.另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量.即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。方案二:在多点测温系统中,传统的测温方法是将模拟信号远距离采样进行AD转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输,多点测量切换及放大电路零点漂移等造成的误差补偿问题。采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电

23、路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于AT89C52可以带多个DSB18B20,因此可以非常容易实现多点测量.轻松的组建传感器网络。采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。部分功能电路的集成,使总体电路更为简洁,搭建电路和焊接电路时更快。而且,集成块的使用,有效地避免外界的干扰,

24、提高测量电路的精确度。所以集成芯片的使用将成为电路发展的一种趋势。本方案应用这一温度芯片,也是顺应这一趋势。2.1.2 测量方式比较DS18B20DS18B20DS18B20DS18B20AT89C52DQ多路模拟开关AT89C52DS18B20DS18B20DS18B20DS18B20DQa) 单总线结构b) 模拟开关控制图2-1 多个DS18B20与单片机的连接方式制方案一:图2-1 a)将所有传感器的数据线接在一起,形成单总线结构,与单片机的一个双向口相连。由于每一个DS18B20都与一个唯一的标识码对应,对特定传感器的操作只有在发送该传感器的序列号来选通该传感器之后才能进行。因此,发送

25、标识码的顺序也就决定了读取温度值的顺序,程序运行时,首先向所有传感器发送温度转换命令,再按顺序读取序列号,匹配ROM,选中该路传感器,读出温度,这样就可以完成多路的顺序采集。如果更换某一个传感器或增加传感器,就需要搜索ROM程序来查出新传感器的序列号。该方案的优点是,结构简洁,远距离测量时,布线简单;由于可以同时对所有传感器发启动转换的命令,然后逐路读取,采集时间间隔较小(1s左右);系统扩展时也不需要添加其他硬件。缺点是,程序编制复杂,需要搜索传感器序列号的程序。 方案二:图2-1 b)通过控制模拟开关来顺序选通各路传感器,然后对该路启动温度转换,读取温度值。它的优点是,可以忽略传感器的序列

26、号,可以任意更换传感器而程序中不需要作特殊的处理,简化了程序设计。缺点是,需要模拟开关控制,远距离测量时,每一路需要一根数据线,布线复杂;测量全部通道的时间是每一路时间的累加,测量时间长;并且扩展时,硬件和软件都需要做复杂修改。综合考虑,方案一具有更大的实用性,以及更良好的扩展性,更能充分发挥DS18B20的设计优势,这次毕业设计中,选择该方案来设计硬件和程序。2.2 上位机虚拟仪器部分虚拟仪器(Virtual Instrument)就是在通用计算机上加上软件和硬件,实现传统电子仪器所具有的各种功能。在虚拟仪器系统中,硬件仅仅是为了解决信号的输入输出,软件才是整个仪器系统的关键,使用者可以通过

27、修改软件的方法,很方便地改变、增减仪器系统的功能与规模,对硬件输入的数据进行各种处理,灵活的定义各种输出,所以有“软件就是仪器”之说。虚拟仪器系统利用计算机系统的强大功能,结合相应的硬件,大大突破传统仪器在数据处理、显示、传送、处理等方面的限制,使用户可以方便地对其进行维护、扩展、升级等。 LabVIEW是目前国际上应用最广、发展最快、功能最强的图形化虚拟仪器开发环境之一,主要用于仪器控制、数据采集、数据分析和数据显示等领域。 LabVIEW是一种基于图形编程语言(G语言)的开发环境,它与C, Basic, VB,Delphi等传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程

28、序调试工具,以及模块化的编程特点等。但二者最大的区别在于:传统编程语言用文本语言编程;而LabVIEW使用图形语言(即各种图标、图形符号、连线等)编程,界面非常直观形象,使用的都是人们熟悉的旋钮、开关、波形图等。 LabVIEW软件的主要特点:1)图形化的编程方式,无需设计者编写文本格式的代码;2)提供丰富的数据采集、分析、及存储的库函数;3)提供传统的程序调试手段,如设置断点、单步运行,同时提供独特的执行工具,使程序的调试和开发更为便捷;4)32位的编译器编译生成32位的应用程序,保证用户数据采集、测试和测量方案的高速、精确执行;5)提供PCI,GPIP,PXI,VXI,RS-232/485

29、,USB等各种总线标准的功能函数,简化设备驱动程序的设计;6)提供大量与外部代码和软件进行链接的机制,如DLL、DDE、ActiveX等。利用LabVIEW设置串口通讯,向单片机发送命令,读入温度采集数据。对这些数据进行处理后,显示在曲线图和表格中,也可以以文件的形式保存到磁盘上。用户可以对采集参数如:测量时间间隔、温度上下限报警、通道显示方式等进行设置或更改。 设计程序的执行界面,包括用户控制和参数设置部分,参数显示部分和数据显示部分为了能充分利用PC机强大的数据处理能力和良好的人机控制界面,本次设计使用LabVIEW8.2版设计虚拟仪器界面。2.4 系统的总体方案设计系统的总体示意图如图2

30、-2:计算机为主机,单片机为从机。计算机通过图形化的界面接收用户的命令和参数设置,通过串口向单片机发送相应的命令和参数。单片机查询串口输入中断,读入命令字,根据该命令执行相应的程序模块,如:启动温度采集,发送温度数据,增加通道数,设置温度上下限等。单片机完成一次温度数据采集后,将数据发送到串口,计算机接收温度数据,进行格式转换后,显示在表格和曲线图中,并对温度数据进行一些简单的处理,如温度高低限报警、保存数据。程序还可以读出以前保存的数据文件,显示在表格和曲线图中。操作人员DS18B20DS18B20DS18B20DS18B20AT89C52DQ命令数据显示保存MAX232计算机LabVIEW

31、程序RXDTXDRXDTXD图2-2 总体方案方框图状态显示第3章 下位机硬件和软件的设计系统下位机的功能是由硬件电路配合软件来共同实现的,硬件主要由传感器、单片机控制部分、电源电路、串口通讯、状态显示等几个模块组成;软件主要用来完成各种实质性的功能,如温度采集、数据计算处理、显示和通讯等。下面就对本系统硬件和软件的各个模块进行详细分析。3.1温度传感器的选型及介绍图3-1 DS18B20封装DS18B20数字温度传感器是美国DALLAS半导体公司推出的接触式温度传感器,它使用了在板(on-board)专利技术,全部传感器和数字转换电路都集成在一个三极管大小的芯片中。它通过一根数据线,它可以直

32、接输出温度的数字量,具有线路简单,体积小的特点。DS18B20传感器的特点主要有: 单总线接口,只需要一根数据线就可完成通讯功能 测量范围为-55125 测量温度为-10+85时,测量精度为±0.5 可编程实现转换分辨率为9位、10位、11位或12位,完成12位温度转换最多需要750ms,分辨率越低,转换时间越短 每一个传感器内固化64位的唯一序列号(即每一个传感器都有一个特定的ID),通过该序列号,可以唯一地选择该传感器。这种设计使得在一根数据线上连接多个传感器成为可能。 DS18B20 的封装及引脚功能TO92 封装的DS18B20的引脚排列见图3-1,其引脚功能描述见表3-1。

33、表3-1 DS18B20引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD 引脚。当工作于寄生电源时,此引脚必须接地。 DS18B20的内部结构(1) DS18B20的内部结构如图3-2。图3-2 DS18B20内部结构图DS18B20有4个主要的数据部件: 64位激光ROM。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20

34、都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 温度灵敏元件。 非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图3-3所示。TMR1R011111图3-3 DS18B20配置寄存器结构图其中,TM:测试模式标志位,出厂时被写入0,不能改变;R0、R1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0、R1置为缺省值:R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率,见表3

35、-2。表3-2 配置寄存器与分辨率关系表 R0R1温度计分辨率/bit最大转换时间/ms00993.750110187.510113751112750(2) 高速暂存存储器高速暂存存储器由9个字节组成,其分配如图3-4所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图3-5所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。温度低位温度高位THTL配置寄存器保留保留保留8位CRC图3-4 DS18B20 存储器映

36、像图bit7bit6bit5bit4bit3bit2bit1bit0LS Byte232221202-12-22-32-4bit15bit14bit13bit12bit11bit10bit9bit8MS ByteSSSSS262524图3-5 温度值格式图12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125的数字输出为07D0H,+25.0625的数字输出为0191

37、H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。见表3-3。    表3-3 典型对应的温度值表温度/二进制表示十六进制表示+125 +25.0625+10.125+0.50-0.5-10.125-25.0625-5500000111 1101000000000001 1001000100000000 1010001000000000 0000100000000000 0000000011111111 1111100011111111 0101111011111110 0110111111111100 1001000007D0H

38、0191H00A2H0008H0000HFFF8HFF5EHFE6FHFC90H DS18B20的常用命令和时序.1 常用命令单片机向传感器发送命令,实际上就是按照写时序将命令字从低位到高位依次发送到数据线。 (1) 初始化:初始化实际上是一个复位脉冲,单片机将数据线从高电平拉至低电平持续480960us,然后释放数据线,60us后如果从数据线读到低电平(持续60240us),表明传感器与单片机连接无误。初始化命令可以使所有传感器结束前一个命令的响应状态,准备接收新的命令。 (2) Match ROM(55H)(匹配ROM):单片机发送该命令后,紧接着发送一个64位二进制序列,序列号与该序列相

39、同的传感器就被选中,在发送初始化脉冲之前,只有该传感器响应接下来的命令。 (3) Skip ROM(0CCH)(忽略ROM):该命令可以使所有传感器都响应随后的命令,如果总线上只有一个传感器,使用该命令,不需要序列号就可以完成温度的转换、读出等操作,但如果有多个传感器,读出温度数据时就会有冲突。在多路采集中,可以利用该命令使多个传感器同时启动温度转换,同时完成,缩短了温度采集的时间。 (4) Search ROM(0F0H)(搜索ROM):该命令可以启动搜索温度传感器序列号的操作,单片机借助特定的算法,根据传感器的响应,可以读出总线上所有传感器的序列号。 (5) Convert T(44H)(

40、转换温度):该命令可以使传感器开始温度转换,结果数据位数不同,温度转换的时间也不同,结果为12位时,需要750ms,结果为11位时,需要375ms, 10位时,需要187.5ms,9位时,需要93.75ms。 (6) Read Scratchpad(0BEH)(读结果寄存器):传感器接收到该命令后,将把结果寄存器中的数据依次发送到数据线,单片机此时就可以读入数据。该寄存器中,前两个字节存放温度转换后的结果。 .2 时序(1)DS18B20 的复位时序(2)DS18B20 的读时序对于DS18B20 的读时序分为读0 时序和读1 时序两个过程。对于DS18B20 的读时隙是从主机把单总线拉低之后

41、,在15 秒之内就得释放单总线,以让DS18B20 把数据传输到单总线上。DS18B20 在完成一个读时序过程,至少需要60us 才能完成。(3)DS18B20 的写时序对于DS18B20 的写时序仍然分为写0 时序和写1 时序两个过程。对于DS18B20 写0 时序和写1 时序的要求不同,当要写0 时序时,单总线要被拉低至少60us,保证DS18B20 能够在15us 到45us 之间能够正确地采样IO 总线上的“0”电平,当要写1 时序时,单总线被拉低之后,在15us 之内就得释放单总线。3.1.4 DS18B20使用中的注意事项 DS18B20虽然具有测温系统简单、测温精度高、连接方便、

42、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: (1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。 (2)在DS18B20的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 (3)连接

43、DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 (4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一

44、点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。3.2 硬件电路设计3.2.1 系统模块电路组成系统主要有几个模块组成:单片机控制部分、传感器部分、电源电路、串口通讯、状态显示等。(1)单片机控制部分:处理器采用ATMEL公司的AT89C52单片机。(2)传感器部分:采用DALLAS公司的单总线数字温度传感器,型号为DS18B20。(3)通讯部分:主从CPU之间的通讯采用RS-232串口通信,接口芯片采用MAX232, 用DB9插头完成之间的连接。(4)电源部分:电源电路包括单片机控制系统以及外围芯片的供电。(5)状态显示部分:显示部分采用发光二极管显示,以指示传感器工作状态。3

45、.2.2 单片机最小系统设计AT89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C52的具有如下主要特性: 与MCS-51产品指令和引脚完全兼容。图3-6 AT89C52管脚图 8K字节

46、可重擦写FLASH闪存。 1000次擦写周期 。 全静态操作:0Hz-24MHz 。 三级加密程序存储器 。 256X8字节内部RAM 。 32个可编程I/O口线 。 3个16位定时/计数器 。 8个中断源 。 可编程串行UART通道 。 低功耗空闲和掉电模式 。如图3-6,AT89C52拥有很多功能丰富的口线,下面对本系统设计中所用到的部分管脚给出说明。(1) VCC电源。 (2) GND接地。 (3) P0口P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。 (4) P

47、3口P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。 P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3-4。表3-4 P3口的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)(5) RST复

48、位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 (6) /EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。(7) XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。AT89C52 是片内集成有最大32K Fl

49、ash存储器的单片机,因此,这种芯片构成的最小系统简单、可靠。足以满足本系统设计要求,只要将单片机接上晶振电路和复位电路即可。其电路图如3-7所示。晶振电路是单片机的心脏,它控制着单片机的工作节奏。XTAL1、XTAL2外接晶振和电容组成振荡器。晶振可以产生十分精确的频率。考虑到通信时的波特率,选用晶振的频率为11.0592MHZ。在振荡器工作时,将RST脚保持至少两个机器周期高电平(24个振荡器周期)可实现复位。系统采用按钮复位的方式,只要RST端保持10ms以上高电平,就能使单片机复位。图3-7 单片机最小系统3.2.3 传感器电路设计DS18B20最大的特点是单总线数据传输方式,DS18

50、B20的数据I/O均由同一条线来完成。AT89C52DS18B20DS18B20DS18B20DS18B20VCC=5V4.7K1WIREP2.2图3-8 传感器连接图如图3-8,所有温度传感器的数据端通过一根数据线连接起来,与AT89C52的P2.2口连接,并加上拉电阻。3.2.4 通讯电路设计3.2.4.1通讯方式的比较(1)单片机与外部的基本通讯方式有两种:并行通讯是指数据的各位同时传送,其优点是传输数据速度快,缺点是有多少位数据就需要多少根传输线,这在数据位数较多,传输距离较远时就不宜采用。串行通讯是指数据一位一位的顺序传送,其突出的优点是只需一对传输线,特别适用于远距离传输,缺点是传

51、送速度较慢。对本系统来说,对传输速度要求不高,但传输的距离较远,若选用并行通讯就需要很多的传输线,不经济。所以选用串行通讯。(2)串行通讯有异步通讯和同步通讯两种基本的通讯方式。同步通讯方式要求通信双方以相同的速率进行,而且要准确地协调。它通过共享一个单个时钟脉冲源以保证发送方和接受方准确同步。其特点是允许连续发送一组字符序列(而非单个字符),每个字符数据位数相同,没有起始位和停止位,效率高。异步通讯方式不要求通信双方同步,发送方和接受方可以有各自地时钟源。为了能够实现通信,双方必须都遵循异步通信协议。在异步通讯中,通信双方必须规定两件事:一是字符格式,即规定字符各部分所占的位数,是否采用奇偶

52、校验,以及校验的方式(奇校验or偶校验);二是采用波特率,以及时钟频率与波特率之间的比例关系。由此可见,同步通讯方式只适用于传输速度高的情况,而且其硬件相对复杂。异步通讯方式的传输效率比同步通讯方式低,但它对通信双方的同步要求大大降低,因而成本也比同步通信方式低2,是比较常用的传输方式。因此,通过比较这两种方式,本设计中选用异步通讯方式。3.2.4.2 MAX232芯片简介MAX232芯片是MAXIM公司生产的低功耗,单电源双RS232发送/接受器。电源换成RS-232C输出电平所需电压,所以采用此芯片接口的串行通信系统只要单一的+5V电源就行了。对于没有电源的场合,其实用性就更强。MAX23

53、2外围需要4个电解电容,是内部电源转换所需电容,其取值均为1.0UF/25V。宜采用电容尽量靠近芯片。3.2.4.3 串行通信接口电路AT89C52有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。从MAX232芯片中两路发送接收中任选一路作为接口。其中,MAX232的R1OUT接单片机的RXD,T1IN接单片机的TXD,T1OUT接计算机的RXD,R1IN接计算机的TXD。由于MAX232具有驱动能力,所以不需要外加驱动。采用MAX232接口的串行通信接口如下图3-9所示。图3-9 串口通讯电路设计采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的

54、GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对本设计来说已经足够使用了,电路如图3-10所示。通信线采用交叉接法,即两者信号线对应成为RT,TR。 图3-10 串口三线制连接图3.2.5 电源电路设计由于单片机控制系统以及外围芯片的供电电源均为5V。考虑到电路设计等问题,所以在这里采用5V电源供电。电源采用7805三端稳压器件,通过全波整流,然后进行滤波和稳压输出。电路如图3-11所示。 图3-11 电源电路图3.2.6 状态显示电路设计显示部分采用发光二极管指示温度传感器工作状态。发光二极管采用供阳接法。由单片机I/O口P0控制。主要状态如下:P0.0 工作指示灯,交替

55、闪烁P0.1 亮则表示DS1820不存在P0.2 亮则表示温度没有读出P0.3 DS18B20已经被检测到P0.4 读出的温度数据保存P0.7 检查到DS18B20就点亮连接电路如图3-12所示。图3-12 显示电路连接图3.3 软件设计当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。3.3.1 单片机主程序首先是串口初始化设置。上电复位后,首先将定时器/计数器

56、T1设定为定时器工作方式2,即自动再装入的8位计数器,在该方式下,TL为计数寄存器,TH为8位计数常数寄存器。将串口设定为工作方式1,不使用奇偶校验,数据的传输波特率由定时/计数器的溢出率决定。根据波特率的计算公式,选择合适的计数常数放入TH,本方案中,波特率设定为9600bit/s,则TH中放入的计数常数为0FDH(SMOD1,波特率加倍)。接下来单片机通过发送和接收命令字来执行相应的采集、计算、通信操作。单片机主程序部分的流程图如图3-13所示。开始串口初始化采集温度数据处理显示子程序DS18B20初始化图3-13 单片机主程序流程图3.3.2 温度采集程序温度采集程序的流程图如图3-14。 首先通

温馨提示

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

评论

0/150

提交评论