基于USB接口的温度控制器.doc

上传人:一*** 文档编号:68718300 上传时间:2022-12-29 格式:DOC 页数:49 大小:873KB
返回 下载 相关 举报
基于USB接口的温度控制器.doc_第1页
第1页 / 共49页
基于USB接口的温度控制器.doc_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《基于USB接口的温度控制器.doc》由会员分享,可在线阅读,更多相关《基于USB接口的温度控制器.doc(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 摘 要USB(Universal Serial Bus)是一种新型的通用串行总线,它是快速的、双向的、同步的、可以热插拨的、动态连接且价格低廉的串行接口。正是基于这一特点,现在很多的计算机外设都有USB接口。本文正是利用这一新型USB接口来设计上位机与下位机系统之间的通信。利用新型的一线式数字温度传感器测量温度,并通过USB接口和计算机端应用软件进行通信。本文首先介绍了本系统相关的背景知识以及USB的通信协议,进而介绍温度控制的基本意义,提出利用USB设备芯片CH372、一线式数字温度传感器DS18B20和单片机AT89C51来开发基于USB温度控制系统。采集的温度数据通过USB接口上传到上

2、位PC机上,并利用应用软件对其进行处理。上位机应用软件用C + builder 编写,其运用CH372接口芯片的动态链接库建立起上位机和下位机之间的通信机制。上位机将采集到的温度数据在PC机上显示出来,并且显示实时温度采集图像。此外,应用软件可以对下位机进行温度极限设置等简单控制功能,当采集到的温度超过某一设定极限温度,则对系统进行报警。另外下位机还为今后的扩展保留一定的资源。关键词: AT89C51;USB协议; 温度采集 ;一线式温度传感器 ;CH372 AbstractUSB (Universal Serial Bus) is a kind of new Universal Serial

3、 Bus, it is a serial bus which is very fast, dual channel, synchronous, can be pulled and plugged with the power on (Hot Swap), can be connected dynamically and very cheap. Because of this characteristic, nowadays, a great many type of computers have USB interface. The project presented in this diss

4、ertation used this new USB interface to design the communication between upper computer and down computer system. With the one wire temperature sensor, I measure the temperature and communicate with the computer application through the USB interface.At the beginning of this dissertation, some basic

5、knowledge about the system and communication protocol of USB (Universal Serial Bus) will be described, and later, introduced the basic meaning of temperature control, This dissertation also brought forward this idea: to develop the temperature control system which is base on the USB, and those tools

6、 the system will need are USB device chip CH372, one wire digital temperature sensor DS18B20 and single chip AT89C51.The temperature system got will upload to the upper computers application through USB interface. The upper computers application is programmed in the environment of C+ builder; the so

7、ftware I programmed used the DLL (dynamic link library) of CH372 and built the communication system between upper computer and down computer. The upper computer will display the temperature got by the sensor, and display the data on the screen of the PC, and display the temperature acquisition graph

8、ics simultaneously.Besides, the applications on the upper computer can control the down computer to set the temperature limits, things like this, when the temperature exceed a temperature set in advanced, the system will alert. The down computers also keep some resources for future extensions.Keywor

9、ds: AT89C51; USB specification; temperature acquisition; one wire temperature sensor; CH372目 录 引言11 背景知识12 系统概述22.1 系统的特性22.2 系统的功能22.3 系统开发平台23 系统总体设计33.1 系统整体方框图33.2 系统方案比较33.2.1系统两种可行方案33.2.2方案最终选择44 系统硬件设计54.1 中央处理器-AT89C5154.2 温度传感器DS18B2084.3 温度采集模块电路设计134.4 系统接口模块电路设计154.4.1 USB简介154.4.2 USB芯

10、片选择164.4.3 USB设备端接口设计184.5 系统硬件整体实现205 系统软件设计205.1 软件设计工具205.2 系统软件设计215.2.1下位机的软件设计215.2.2上位机的软件设计246 系统调试256.1 硬件调试256.2 软件调试266.2.1 下位机的软件调试266.2.2 上位机的软件调试276.2.3 上位机和下位机联机调试286.3 系统性能指标297 系统的简单操作说明298 总结29谢辞31参考文献32附录33 引言温度是工、农业生产的主要环境因素,它对工农业的生产有着重要的影响,所以对其进行准确快速的测量并进行处理是具有很特殊的重要意义。测量温度模块是否正

11、确、快速、及时决定着工农业生产的产品的质量是否符合预期设计的要求,而在当今是世界中,质量是企业生存的基本,所以许多对温度要求很高的工、农业生产企业把温度测量控制系统看成是企业生存的基本。在市场竞争日益激烈的压力面前,企业已经意识到要想提升自己企业的竞争能力,就必须采用新技术对企业产品进行质量等各方面的管理。而对温度要求严格的产品,测量产品生产环境的温度的技术决定着系统能否生存并继续发展,所以很多工业生产企业都非常重视温度控制系统。对温度进行采集,并送到PC机实时处理,以前往往采用的是计算机的串行接口,但这一老式计算机接口存在着不少缺陷。比如接口规格不统一、非共享式接口、占用资源大等等这样那样的

12、缺点。随着计算机的发展,USB(通用串行总线)接口是一种计算机应用领域的新型接口,USB接口的出现是计算机端接口的技术重大变革,其最早是由Compaq、Digital Equipment、IBM、Intel、Microsoft 、NEC和Northern Telecom 7家公司于1994年提出的,在2000年做出了改进,提出了USB2.0版本,随着这一版本的提出,USB越来越流行,目前它已经成为了一种标准接口,现在市场上的所有PC机都百分之百支持USB接口,本文将采用这一USB接口来对采集到的温度实时传输。基于USB接口的温度控制系统就是通过温度传感器对现场温度进行测量,并利用微型处理器(单

13、片机),通过USB接口实时的传给计算机,计算机利用软件根据已经设计好的要求对其进行报警等相应的处理。它是计算机技术、单片机技术、温度传感器技术的科技产物。适合于工业等需要对温度进行实时大范围的精确的处理。1 背景知识在USB产生之前,外设与PC机的通信主要是通过PC机主板上所提供的各种接口来实现,如ISA接口、PCI接口、串行接口等,这些老式的接口存在着很多缺点:非共享式接口、体积大、接口规格不统一、采用传统的I/O模式等等。为了克服老式接口这些缺点,PC机制造商和用户迫切需要一种新型的外设连接方式。这时USB应运而生,它是一种快速、快速、双向、同步、廉价、并支持热插拨功能的串行接口。早在19

14、95年,就已经有PC机带有USB接口了,但由于缺乏软件及硬件设备的支持,这些PC机的USB接口都闲置未用。1998年后,随着微软在Windows 98中内置了对USB接口的支持模块,加上USB设备的日渐增多,USB接口才逐步走进了实用阶段。这几年,随着大量支持USB的个人电脑的普及,USB逐步成为PC机的标准接口已经是大势所趋。在主机(host)端,最新推出的PC机几乎100%支持USB;而在外设(device)端,使用USB接口的设备也与日俱增,例如数码相机、扫描仪、游戏杆、磁带和软驱、图像设备、打印机、键盘、鼠标等等。正是USB具有热插拔、共享式接口、携带方便、标准统一、可以连接多个设备等

15、这样的优点,才使USB得于快速的发展。本文将利用这一新型计算机接口来设计温度控制系统。2 系统概述本章将对基于USB接口的温度控制系统在工业上的应用进行分析,并介绍系统的特点、功能以及使用到的开发工具。2.1 系统的特性由于该系统利用USB接口,所以具有USB的实时传送数据,与上位机进行信息交流,而上位机又可以连接在互联网上,所以远程的PC机也可以利用互联网对温度检测系统进行查看等各种操作。该系统利用先进的温度传感器,可以对温度快速的进行反应,把温度数据传到下位机进行初步处理数据,进而与上位机通信。总的来说,该系统有以下几点特点:工作人员可以远离生产环境通过计算机对其进行查看处理;多点温度测量

16、;全天候检测温度,并可以在没有工作人员的参与下对生产环境进行简单处理;对生产环境的温度进行设计极限温度,一旦超过极限温度,系统将对起进行报警,并停止生产环境的工作;测量温度误差比较精确,在0.5内;2.2 系统的功能 该系统主要有以下功能:(1)对温度进行检测。利用该系统可以远离恶劣生产环境的情况下,对其进行温度测量;(2)对现场温度进行实时采集;并在PC机上显示出来;(3)在PC机上实时做出温度图像;工作人员在电脑上便可以直观的得到系统温度图像;(4)简单的系统控制;通过计算机上的应用软件可以对温度设置,一旦超过极限温度,发出报警,进而通知工作人员快速的对生产现场进行各种相应操作,这样可以防

17、止温度超出极限温度;(5)在上位机端的应用软件上提供系统使用帮助。用户可以利用该功能帮助对系统进行操作。2.3 系统开发平台 本次系统需要用到的开发工具为:keil C、 C+ builder、Protel、计算机、烧写器。Keil C是目前世界上最好的MC-51单片机的汇编和C语言的开发工具。支持汇编、c语言以及混合编程。同时具备功能强大的软件仿真和硬件仿真。C+ builder 是计算机高级语言C+比较好用的编程工具,它是属于一种可视化的计算机语言。 Protel是世界上最好的硬件电路图制作的工具。3 系统总体设计3.1 系统整体方框图根据前面的分析,知道系统要实现以上功能,必须由以下几部

18、分组成:温度采集单元、下位机温度初步处理单元、USB设备接口、上位机应用程序。系统的结构原理图如图3.1: 图3.1系统整体实现的结构原理图温度传感器单元对生产温度环境进行测量,将测量温度传给下位机(单片机),单片机对采集到的温度进行初步处理后,将处理了的数据通过USB接口上传给PC机上位机,而上位机将实时的显示采集到的温度,如果要对现场环境进行处理,则上位机可以发送命令,经过USB接口传送到下位机,下位机根据接受到的数据并对其进行分析,进而做出处理,如报警等各种操作。3.2 系统方案比较对于本系统,方案的选择是根据温度传感器来选择。目前市场上有两种传感器:模拟传感器和数字集成传感器,对于选择

19、不同的传感器将会有不同的方案。下面给出两种不同的方案,并对其进行分析,最终选择其中一种方案。3.2.1系统两种可行方案方案1:选择模拟传感器所谓模拟传感器,简单的说就是传感器对被测量的物质感应,并随着检测的不同做出不同的反应,但这一反应是有规律的,而且有规律的输出模拟信号。由于单片机是数字信号系统,只能识别数字信号,所以这种方案要想利用单片机对温度信号进行处理,必须将对模拟输出量数字化,也就是说要对其输出的模拟电压或电流转换成数字信号,这么一来就系统要加入模拟信号转换成数字信号的处理单元,通常,实现这一功能的是A/D转换器,市场对于这一A/D转换器有不少类型。所以选择这一方案也是可以有效而快速

20、的设计出本系统。图3.2给出使用模拟传感器这一方案的设计原理图。图3.2 方案1的结构原理图方案2:选择数字传感器 今天随着计算机的飞速发展以及单片机的日益普及,世界进入了数字时代,人们在处理被测信号时首先想到的是信息处理器(单片机或计算机)。具有输出数字信号便于电脑处理的传感器就是所谓的数字传感器。 数字传感器是近几年才出现的并得到广泛的应在在实践当中,所谓数字传感器,进一步的讲,就是将模拟传感器产生的信号经过放大、A/D转换、线性化及量纲处理后变成纯粹的数字信号,是在模拟传感器上加入数字处理单元,并将数字单元集成在一块芯片上,所以输出的是数字信号,便于数字处理机对其直接进行处理。 图3.3

21、给出利用数字传感器设计的方案图:图3.3 方案2的结构原理图3.2.2方案最终选择 以上已经提出了两种方案,下面对这两重方案进行分析,并做最后方案选择: 分析近几年来传感器的发展,我们知道传感器在未来的发展中将会向以下的方向发展:(1)向高精度发展。随着自动化生产程度的不断提高,对传感器的要求也在不断提高,必须研制出具有灵敏度高、精确度高、响应速度快、互换性好的新型传感器以确保生产自动化的可靠性。目前能生产精度在万分之一以上的传感器的厂家为数很少,其产量也远远不能满足要求。(2)向高可靠性、宽温度范围发展。传感器的可靠性直接影响到电子设备的抗干扰等性能,研制高可靠性、宽温度范围的传感器将是永久

22、性的方向。提高温度范围历来是大课题,大部分传感器其工作范围都在-2070,在军用系统中要求工作温度在-4085范围,而汽车锅炉等场合要求传感器工作在-20120,在冶炼、焦化等方面对传感器的温度要求更高,因此发展新兴材料(如陶瓷)的传感器将很有前途。(3)向微型化发展。各种控制仪器设备的功能越来越大,要求各个部件体积能占位置越小越好,因而传感器本身体积也是越小越好,这就要求发展新的材料及加工技术,目前利用硅材料制作的传感器体积已经很小。如传统的加速度传感器是由重力块和弹簧等制成的,体积较大、稳定性差、寿命也短,而利用激光等各种微细加工技术制成的硅加速度传感器体积非常小、互换性可靠性都较好。(4

23、)向微功耗及无源化发展。传感器一般都是非电量向电量的转化,工作时离不开电源,在野外现场或远离电网的地方,往往是用电池供电或用太阳能等供电,开发微功耗的传感器及无源传感器是必然的发展方向,这样既可以节省能源又可以提高系统寿命。目前,低功耗损的芯片发展很快,如TI2702运算放大器,静态功耗只有1.5mA,而工作电压只需25V。(5)向智能化数字化发展。传感器一般都是非电量向电量的转化,工作时离不开电源,在野外现场或远离电网的地方,往往是用电池供电或用太阳能等供电,开发微功耗的传感器及无源传感器是必然的发展方向,这样既可以节省能源又可以提高系统寿命。目前,低功耗损的芯片发展很快,如TI2702运算

24、放大器,静态功耗只有1.5mA,而工作电压只需25V。由于模拟传感器,没有把模拟转化为数字处理单元集成在一块芯片上,这样必带来传感检测单元的体积大等各个方面的影响,再者,模拟转化成数字单元也需要单片机对其进行处理,这样会浪费时间、资源。所以这样一来我们知道数字传感器在未来必将取代模拟传感器。而且随着数字传感器的发展,现在市场上数字传感也不是那么贵,本次系统对温度精度的要求不是很高,所以选择方案二。 4 系统硬件设计4.1 中央处理器-AT89C51AT89C51由美国Atmel 公司生产的,是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and E

25、rasable Read Only Memory)的低电压,高性能CMOS8位单片机,该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。下文将对AT89C51单片机做简单介绍。(1) AT89C51的特点AT89C51具有以下几个特点:中央处理器CPU;AT89C51与MCS-51系列的单片机在指令系统和引脚上完全兼容;片内有4k字节在线可重复编程快擦写程序存储器;全静态工作,工作范围:0Hz24MHz;三级程序存储器加密;1288位内部RAM;32位双向输入输出线;两个十六位定时器/计数器五个中断源,两级中断优先级;一个全双工的异步串行口;(

26、2)AT89C51的结构图如图4.1 图4.1 89C51的结构图由上图,知:AT89C51主要由CPU、存储器、I/O端口等几部分组成。(3)AT89C51的功能描述AT89C51是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。它与MCA-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于4K,四个

27、I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。工作电压范围宽(2.7V6V),全静态工作,工作频率宽在0Hz24MHz之间,比8751/87C51等51系列的6MHz12MHz更具有灵活性,系统能快也能慢。AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。(4)AT89C

28、51引脚功能及说明 图4.2是AT89C51的引脚 图4.2口线:P0、P1、P2、P3口。P0口是三态双向口,通称数据总线口,为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。因为只有该口能直接用于对外部存储器的读/写操作。P0口也用以输出外部存储器的低8位地址。由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存信号用ALE。P1口是专门供用户使用的I/O口,

29、是准双向口。P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P2口是从系统扩展时作高8位地址线用。不扩展外部存储器时,P2口也可以作为用户I/O口线使用,P2口也是准双向口。P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二功能。作为第一功能使用时操作同P1口。P3口的第二功能如表4.1所示。控制口线:PSEN(片外选取控制)、ALE(地址锁存控制)、EA(片外存储器选择)、RESET(复位控制);电源及时钟:VCC、VSS、XTAL1、XTAL2操作方法。 表4.1 P3口的第二功能操作方法 程序存储器加密。AT89C51芯片程序存储器有

30、三级硬件加密,能够有效地保证系统不被仿制和软件不被复制,加密等级设置见附录2。工作模式。AT89C51有间歇和掉电两种工作模式。间歇模式是由软件来设置的,当外围器件仍然处于工作状态时,CPU可根据工作情况适时地进入睡眠状态,内部RAM和所有特殊的寄存器值将保持不变。这种状态可被任何一个中断所终止或通过硬件复位。掉电模式是VCC电压低于电源下限,振荡器停止振动,CPU停止执行指令。该芯片内RAM和特殊功能寄存器值保持不变,直到掉电模式被终止。只有VCC电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位掉电模式可被终止。4.2 温度传感器DS18B20温度传感器是该系统的测量器件,温度传感

31、器的好坏直接影响到测量结果,所以本文将对温度传感器的选择详细介绍。根据本次设计论文的要求,包括精度要求等,经过分析,本文决定选择数字温度传感器DSB8B20。下面将给予介绍。(1) DS18B20的概述DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形式;温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测环境的温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口

32、较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。(2)DS18B20的内部结构图4.3是DS18B20的内部结构图 图4.3 DS18B20的内部结构由图可知,DS18B20主要由4部分组成:64位ROM、温度传感器、非挥发的温警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图4.4所示,图4.4 DS18B20的管脚排列DS18B20的3个管脚说明如下:DQ为数字信号输入输出端。是漏极开路一线接口。也在寄生电源接线方式时,给设备提供电源。GND为电源地。VDD为外接供电电源输入端(在寄生电源接线方式时接地)。DS18B20的64位ROM保

33、存了设备的唯一序列码,是DS18B20的地址序列码,每一个DS18B20的地址序列码是不同的,这样就可以实现一根总线上挂接多个DS18B20。高速闪存(scratchpad)包括2个字节的温度寄存器。保存了温度传感器的数字输出。该闪存还提供了对上限(TH)和下限(TL)的超标报警寄存器、配置寄存器(一个字节)的访问。TH、TL和配置寄存器是EEPROM,所以系统掉电时可以保存数据。DS18B20利用DALLAS的单总线控制协议,实现了利用单线控制信号在总线上进行通信。由于所有的设备通过漏极开路端(DQ脚)连在总线上,控制线需要一个大约5K上拉电阻。在这一总线控制系统中,微控制器通过唯一的64位

34、地址序列码识别和访问总线上的器件。由于地址序列码不同,所以连接在总线上的DS18B20可以说是无限的 。(3)DS18B20的寄存器DS18B20存储器组织结构如表4.2所示:表4.2 存储器的组织图高速闪存(上电状态)字节0温度底字节字节1温度高字节字节2高温报警用户字节“1”字节3低温报警用户字节“2”字节4配置寄存器字节5保留(FFH)字节6保留(0CH)字节7保留(10H)字节8CRC校验字节0和字节1分别包含温度寄存器的LSB和MSB,这些字节是只读的,字节2和字节3提供对TH(上限报警触发寄存器)和TL(下限报警触发寄存器)的访问,字节4包配置寄存数据,字节5、6和7保留做器件内部

35、使用,不能被改写,当读时,这些字节返回全1值,字节8是只读的,含有字节0到字节的CRC校验。高速闪存的第四个字节包含配置寄存器,其组织结构如下表4.3所示:表4.3 配置寄存器Bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit00R0R111111 表4.4 测温分辨率配置R1R1分辨率最大转换时间00 9bit 93.75ms01 10bit 187.5ms10 11bit 375ms11 12bit 750ms(4)DS18B20的读写时序 访问DS18B20的顺序如下: -初始化; -ROM命令(接着是任何需要的数据交换); -DS18B20的函数命令(接着是任

36、何需要的数据交换);每一次访问DS18B20时必须要按照这一顺序,如果其中的任何一个步骤缺少或打乱,DS18B20将不会响应。 初始化时序初始化时序如图4.5: 图4.5 DS18B20初始化时序所有与DS18B20的通信都要首先初始化,从而才能进行下一部的工作:控制器发出复位脉冲,DS18B20以存在脉冲响应。图4.5给出了描述。当DS18B20发出存在脉冲对复位响应时,它指示控制器该DS18B20已经在总线上并准备好操作。读/写时序控制器在写时序到数据到DS18B20,在读时序从DS18B20中读数据,每一个总线时序传送一个数据位。读/写时序见下图4.6 (a) 写时序 (b) 读时序图4

37、.6 DS18B20的工作时序图写时序有两种类型的写时序:写1时序和写0时序。控制器用写“1”时序写逻辑“1” 到DS18B20,用写“0”时序写逻辑“0”到DS18B20。所有写时序必须持续60s,每一个写时序之间必须要至少有1s的恢复时间。两种类型的写时序都从控制器把总线拉低开始。为产生写“1”的时序,在将总线拉低之后,总线控制器必须在15s内释放总线。总线释放后,5K的上拉电阻将总线电平抬高。为产生写“0”时序,在总线拉低后,控制器在整个时序内必须持续控制总线为低电平(至少60s)。DS18B20在控制器发出写时序后的15-60s的时间内采样总线。如果在采样窗口期间总线为高,“1”就被写

38、到DS18B20;如果在采样窗口期间为低电平,则“0”就被写入DS18B20。读时序当总线发出读时序时,DS18B20可以发送数据到控制器。所有读时序必须持续最少60s,每一个读时序之间必须有至少1s的恢复时间。读时序从控制设备将总线拉低至少1s后释放总线开始。控制器启动读时序后,DS18B20开始在总线上传送“1”或者“ 0”。DS18B20通过保持总线为高发送“1”,将总线拉低发送“0”。发送“0”时,DS18B20在60s时释放总线; 发送“1” 时,总线被上拉电阻高电平空闲状态。从DS18B20输出的数据在启动时序的下降沿后15s有效。因此,控制器必须在时序开始的15s内释放总线,然后

39、采样总线状态。通过读/写时序,控制器可以发出控制命令,对DS18B20进行读写操作。(5)DS18B20的常用命令SKIP ROM CCH控制器可以用这一命令同时访问总线上的所有设备而不需要发送ROM序列码信息。控制器可以使总线上的所有DS18B20同时进行温度转换。SEARCH ROM F0当系统开始上电时,控制器必须识别总线上所有从机的ROM序列码,以确定从机的数目和它们的类型。控制器需要执行 search ROM循环足够多次才能识别所有的从设备。如果只有一个从属设备在总线上,可使用简单的Read ROM命令期待Search ROM。每一个Search ROM命令之后必须返回到事务序列的步

40、骤(初始化)。READ ROM33这一命令只有在总线上只有一个设备的时候使用,它使得控制器可以不用Search ROM命令就可以读出从机的64位ROM序列码。当多于一个从机设备在总线上时,如果还使用该命令,由于所有的设备企图响应该设备,这样将产生数据冲突。CONVRTT 44这一命令开始一次温度转换。变换之后,数据保存在暂存器的2个字节温度寄存器中,DS18B20回到低功耗空闲状态。如果设备工作在寄存电压模式,则这一命令发送后10s之内,整个变换期间控制器必须在总线上能够有较强的上拉。如果DS18B20由外部电源供电,那么Convert T命令后控制器可以发出读时序。如果温度变换正在进行,那么

41、返回“0”;如果已经完毕,则返回“1”。WRITE SCTATCHPAD 4EH这一命令使得控制器可以写3个字节数据到DS18B20的寄存器中。第一字节数据到TH寄存器中,第二字节写到TL中,第3字节写到配置寄存器中。数据以最低有效位先发送。所有3字节必须在控制器发出复位或者数据丢失之前写完。READ SCRTCHPADBEH这一命令使得控制器可以读寄存器的内容。数据传送开始于字节0的最低位,直到寄存器的第9字节被读出,任何时候,如果只需部分寄存器数据,控制器可以结束读操作。上面已经介绍了数字温度传感器的原理,下面将利用DS18B20设计温度采集模块电路。4.3 温度采集模块电路设计 以上已经

42、介绍了AT89C51和数字温度传感器DS18B20基本知识,下面将利用它们来设计本系统的温度采集电路。DS18B20连接到单片机的方法很简单,它有两种方法连接到电路上,既外接电源方式和寄生电源方式,这里使用的是系统提供的外接电源方式,而不采用寄生电源,只要VCC、DQ、GND连接到单片机的电源正极、一个I/O端口、电源地就可以了。但是要注意的是在DQ数据线中要加一个4.7K的上拉电阻,这一个是必须要加的,无论它是接在P1口还是P0口,这点特别注意,特别提醒。之外在电源两端之间加个0.01U的电容,这样的作用主要是滤波。 图4.7 单片机和DS18B20接口图由图4.7,知DS18B20工作在外

43、部电源供电方式。单片机采用采用P1.1口与DS18B20通信。下面根据单片机的初始化时序和读写时序,写出DS18B20和单片机之间的读写操作,这里只给了温度的读取,下位机部分程序在附录中给出。这里特别提醒的是DS18B20对时序要求很高,精度要求很高,所以程序的延时对是否能读起数据起到非常关键的作用。DS18B20读写数据程序如下:void delaym(int time) /延时为(time*2+2)us int s; for(s=0;stime; s+) void write_bite(unit8 bite) /写一位数据位 DQ=0; if(bite=1) DQ=1; /如果写1,DQ=

44、1; delaym(29);/延时60us提供DS18B20采样 DQ=1; /释放DQ unit8 read_bite(void) /读一位数据位 DQ=0; /将总线DQ拉低开始读时序 delaym(0); /延时2us DQ=1; /释放DQ; delaym(1); /延时4us后再读数据 return(DQ); void write_byte(unit8 dat) /写一字节数据 unit8 i; unit8 temp; for(i=0;i1; /右移一位 temp&=0x01; write_bite(temp); unit8 read_byte(void) unit8 i,value=0; for(i=0;i8;i+) if(read_bite() value|=0x01i;/读一字节数据,一个读时序读一位,并做移位 delaym(29) ; /延时60us有以完成读一位,之后再读下一位 return(value); unit8 DS18B20_RESET(void) unit8 data; DQ=0; delaym(239); /保持DQ低480us DQ=1; delaym(35); da=DQ; delaym(211); re

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁