基于DS1820的温度采集系统设计_第1页
基于DS1820的温度采集系统设计_第2页
基于DS1820的温度采集系统设计_第3页
基于DS1820的温度采集系统设计_第4页
基于DS1820的温度采集系统设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、 dcs1820温度采集系统的设计 摘 要ds18b20的温度采集系统利用下位机设置温度上下限和实时温度的采集,并将结果传输到上位机,以达到对温度的比较、控制。本设计用mcs-51单片机为主要硬件,设计了包括温度采集,温度显示,系统控制,串口通信等外围电路。在温度测量部分采用具有“一线总线”接口的数字传感器ds18b20,实现单线多点数据的采集。 关键词: ds1820温度传感器 单片机 通信接口目 录摘 要1前 言3第一章 温度采集显示系统的设计要求和设计方案41.1 系统设计任务41.2 功能要求41.3 方案论证和选定4第二章 温度采集系统外部器件的设计62.1 总体分析62.2 805

2、1单片机的性能及应用72.3 ds18b20芯片简介132.4 ds18b20原理及应用142.5 ds18b20与单片机的典型接口设计272.6 ds18b20使用中注意事项28第三章 硬件设计293.1 硬件电路设计的功能简介293.2 硬件设计部分的组成303.3 硬件电路图31第四章 软件电路的设计324.1 系统功能324.2 系统流程图324.3 ds18b20温度采集源程序33第五章 联机调试和分析40结 论40参考文献41致 谢41附录1 图 片42附录2 proteus仿真软件电路图43前 言 在日常生活及工农业生产中经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻

3、。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。由dallas出品的新型的单路串行数字温度传感器ds18b20,完成温度测量、分析、判断阈值、输出功能。整个系统具有集成度高、可靠性强、抗干扰性强(串行通信特点)、鲁 棒 性强、可扩展性强(可利用识别序列号组成多点测量)、体积小、功耗低等特点。本系统具有测温、上限报警、下限报警、温度控制及显示功能。基于本系统可扩展如下功能: 1. 增加键盘使可随时调整温度上下限。2. 扩展传感器数量,组成测量网络。实现多点测量。同时对mcs-51单片机系列各芯片进行了优劣势对比、介绍了单

4、线数字温度传感器的基本内部结构及主要性能特点。单片机是可以对端口进行控制、输入输出数据,对数据进行处理的器件。mcs-51单片机是美国inte公司于1980年推出的产品,符合我校课程安排的培训教材以mcs-51单片机作为代表进行理论基础学习。atmel生产的系列单片机指令系统与单片机课程学习中接触的指令系统相同,管脚分布以及功能与学习过程中实验使用相同。利用此类单片机,选择合适传感器进行数据交换、数据处理、根据处理结果控制外围设备,从硬件设计到软件实现,此类系统具有一定可行性。该系统希望实现对特定地点温度的测量,以及控制,据有很广泛的可利用性以及扩展性。综合以上分析,在计算机广泛应用的今天,温

5、度采集的重要性是十分显著的。它是计算机与外部物理世界连接的桥梁。它在现代信息领域发挥着重要作用,是信息产品不可或缺的重要组成部分。因此选择基于单片机温度采集系统设计是很有意义也是很有必要的。第一章 温度采集显示系统的设计要求和设计方案1.1 系统设计任务1、了解ds18b20的工作原理,掌握其使用和编程方法。 2、理解ds18b20控制时序和控制方法流程。3、学会ds18b20与单片机的接口设计。4、掌握51单片机对ds18b20的软硬件设计。1.2 功能要求1、数字温度要求测温范围为-50110,精度误差在0.1以内,lcd数字显示器直接读出显示。2、 编程实现80c51与ds18b20之间

6、的通讯,连续读出ds18b20中所测9位精度的温度。3、 在仿真器中设断点进行观察,观察温度变化时测量值的变化情况。1.3 方案论证和选定一、显示方案的选择1、用led数码管进行显示: 显示效果:由于发光二极管基本上属于电流敏感器件,其正向压降的分散性很大, 并且还与温度有关,为了保证数码管具有良好的亮度均匀度,就需要使其具有恒定的工作电流,且不能受温度及其它因素的影响。 安全性:即使是短时间的电流过载也可能对发光管造成永久性的损坏,采用恒流驱动电路后可防止 由于电流故障所引起的数码管的大面积损坏。2、用lcd数码管进行显示: 显示准确、可靠:新型数码显示器性能稳定,不会出现重码等显示错误,显

7、示数据准确、可靠;节能、安全:新型数码显示器每平方米电流仅为100ma,驱动电压为20-85v。使用寿命长:新型数码显示器使用寿命可达8-10年以上。全天候使用:新型数码显示器抗紫外线能力强。由以上比较得:使用lcd数码管显示更为优越,所以我选择lcd作为温度显示器。二、程序方案的选择1、用c语言进行编程采用这类编程需要有较强的c语言能力,c51程序是用于单片机系统的,因此要考虑单片机的资源,例如储存器空间和寻址方式等。c程序是针对具体应用系统编写的,所以软件的编写一定要在系统硬件的基础上完成,也就是软件编写一定要考虑系统硬件环境。在编译和链接时,要根据需要合理选择编译控制指令和链接控制指令。

8、2、用汇编语言进行编程:在运用这类程序编写时,它把体现单片机各种功能的寄存器组织在统一的地址空间中。用直接寻址的方法实现单片机的各种操作,使指令显得灵活、简洁、易理解。此外,mcs51指令中有一个位处理指令子集,这在设计需要进行位操作的程序时十分方便有效。此外,mcs-51指令系统在其储存空间、时间的利用率及工作效率方面都是较高的。习惯使用伪指令,记忆和理解一个变量名比记忆一个地址要容易的多。一些开发环境对编程有特殊要求。第二章 温度采集系统外部器件的设计2.1 总体分析1、本数字温度采集设计系统采用美国dallas半导体公司继ds1820之后推出的一种改进型智能温度传感器ds18b20作为检

9、测元件,温度范围为-55125,最大分辨率在0.0625。ds18b20可以直接读出温度被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。2、功能的要求,确定系统由3个模块组成:主控制器、测温电路、显示电路。主控制器:单片机at89c2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用,系统可用二节电池供电。测温电路:温度传感器使用ds18b20,ds18b20也 支持“一线总线”接口,测量温度范围为 -55c+125c,在-10+85c范围内,精度为0.5c。现场温度直接以“一线总线”的数字方式传输,大

10、大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,与前一代产品不同,新的产品支持3v5.5v的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 显示电路:显示输出采用lcd显示器。由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变,这样就无须考虑刷新率的问题。对于画面稳定、无闪烁感的液晶显示器,刷新率不高但图像也很稳定。3、单片机由于其体积小,功耗低,价格低廉,且具有逻辑判断,定时计数,程序控制等多种功能而广泛的应用于温度控制系统之中,是温度采集系统的重要核心部分之一。2.2 8051单片机的性能及应用1、单片机的发展1976年intel公司推出mcs48系列

11、8位单片机,以体积小、功能全、价格低等自身的魅力,得到了广泛的应用,成为单片机发展过程中的一个重要标志。 由于mcs48系统的成功应用,单片机系列及单片机应用技术迅速发展,到目前为止,世界各地商场以相机研制出大约50个系列300多个品种的单片机产品。代表产品有intel公司的mcs51系列机,motorala公司的mc6801系列机,zilog公司的z8系列机等等。 目前,单片机正朝着高性能和多品种发展,但由于mcs51系列8位单片机仍能满足大多数应用领域的需求,可以肯定,以mcs51系列为主的8位单片机,现在及以后的相当一段时间内仍然将占据单片机应用的主导地位。2、单片机的应用特点1)具有较

12、高的性能价格比。高性能、低价格是单片机最显著的一个特点,其应用系统具有印制板小,接插件少、安装调试简单方便等特点,使单片机应用系统的性能价格比大大高于一般微机系统。2)体积小,可靠性高。由单片机组成的应用系统结构简单,其体积特别小,极易对系统进行屏蔽等抗干扰措施。另一方面,单片机对信息传输及对存储器和i/o接口的访问,一般情况下是在单片机内部进行的,因此,不易受外界的干扰。所以,单片机应用系统的可靠性比一般微机系统高得多。3)控制功能强。单片机采用面向控制的指令系统,实时控制功能特别强。在实时控制方面,尤其是位操作方面单片机有着不俗的表现。cpu可以直接对i/o口进行输入、输出操作及逻辑运算,

13、并且具有很强的位操作能力,能有针性地解决由简单到复杂的各类控制任务。在单片机内储存器rom和rom是严格分工的。rom用作程序储存器,只放程序,常数和数据表格,由于配置较大的程序储存空间rom,可以将以调好的程序固化在rom(也称烧录或者烧写),这样不仅掉电时程序不丢失,还避免程序被破坏,从而确保了程序的安全性。而ram用作数据存储器,存放临时数据和变量,这种方案使单片机更适用于实时控制系统。 4)使用方便,容易产品化。由于单片机具有体积小、功能强、性能价格比较高、系统扩展方便、硬件设计简单等优点。单片机的硬件功能具有广泛的通用性。同一种单片机可以用在不同的控制系统中去,只是其中所配置的软件不

14、同而已。换言之,给单片机固化上不同的软件,便可形成不同的专用智能芯片,可称为“件就是仪器”。 5)单片机开发工具具有很强的软、硬件调试功能,使研制单片机应用系统极为方便,加之现场环境的可靠性,因此使单片机能满足许多小型对象的嵌入式应用要求,可广泛的应用在仪器仪表、家用电器、智能玩具、控制系统等领域中。 3、单片机的应用 单片机由于其体积小、功耗低、且具有逻辑判断等功能,因而广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪

15、表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。

16、4.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5.单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。6.在各种大型电器中的模块化应用某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音

17、乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于rom),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途由此可见,单片机从根本上改变了系统控制的设计思想和方法。过去必须由模拟电路、数字电路控制电路实现大部分功能,现在已能用单片机并通过软件方法实现。由于软件技术的飞速发展,各种软件系列产品的大量涌现,可以极大地简化硬件电路。随

18、着单片机应用的推广普及,单片机技术无疑是21世纪最为活跃的新一代电子应用技术。随着微控技术的发展,单片机的应用必将导致传统控制技术发生巨大变革。4、单片机的芯片简介1)单片机引脚图 图2.0 单片机引脚图40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和i/o引脚。 电源: vcc - 芯片电源,接+5v; vss - 接地端;注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的ttl电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。 时钟:xtal1、xtal

19、2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根, ale/prog:地址锁存允许/片内eprom编程脉冲 ale功能:用来锁存p0口送出的低8位地址 prog功能:片内有eprom的芯片,在eprom编程期间,此引脚输入编程脉冲。 psen:外rom读选通信号。 rst/vpd:复位/备用电源。 rst(reset)功能:复位信号输入端。 vpd功能:在vcc掉电情况下,接备用电源。 ea/vpp:内外rom选择/片内eprom编程电源。 ea功能:内外rom选择端。 vpp功能:片内有eprom的芯片,在eprom编程期间,施加编程电源vpp。 i/o线80c51共有4个8

20、位并行i/o端口:p0、p1、p2、p3口,共32个引脚。p3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)5单片机实物图.主要功能及其特征:8位cpu(中央处理器)、内置程序存储器(rom)、随机存取数据存储器(ram)和输入输出端口(i/o)全部集成在单一的芯片上而构成了完整的微型计算机。1)8位cpu。2)双列直插40pindip封装。3)所有指令均为1-2个机器周期。4)96条指令,大部分为单字节指令。5)2个工作寄存器。6)2个可编程定时/计数器。7)8层堆栈。8)单一+5v电源供电。9)使用6mhz外接石英晶体管振荡器,此时机器周期为2.5us。10)与先期开发的8

21、080和8085微处理器兼容。 6.单片机的结构框图如图所示图2.1 单片机的结构框图2.3 ds18b20芯片简介1、ds18b20是美国dallas半导体公司继ds1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从ds18b20读出的信息或写入ds18b20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的ds18b20供电,而无需额外电源。因而使用ds18b20可使系统结构

22、更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较ds1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 2、其主要特点如下。独特的单线接口仅需要一个端口引脚进行通信;多个ds18b20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5;零待机功耗;温度以或位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; 3、ds18b20的外形及管脚排列如图所示 图3.2 ds18b20的管脚排列ds18b20引脚定

23、义如下: 1)dq为数字信号输入/输出端; 2)gnd为电源地; 3)vdd为外接供电电源输入端(在寄生电源接线方式时接地)。2.4 ds18b20原理及应用1、ds1820测温原理及内部结构 图3.3 ds18b20内部结构框图图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1,而高温度系数晶振的振荡频率随温度变化明显,它产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55c所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置值重新装入,并再次对低温度系数晶振产

24、生的脉冲信号进行计数,如此循环直到计数器2计数减到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图1中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。另外,由于ds18b20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对ds18b20的各种操作必须按协议进行。操作协议为:初始化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。2、ds18b20有4个主要的数据部件: (1)光刻rom中的64位序列号是出厂前被光刻好的,它可以看作是该ds18b20的地址序列码。64位光刻rom的排列是:开始8位(28

25、h)是产品类型标号,接着的48位是该ds18b20自身的序列号,最后8位是前面56位的循环冗余校验码(crc=x8+x5+x4+1)。光刻rom的作用是使每一个ds18b20都各不相同,这样就可以实现一根总线上挂接多个ds18b20的目的。 (2)ds18b20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/lsb形式表达,其中s为符号位。 图3.4 ds18b20温度值格式表这是12位转化后得到的12位数据,存储在18b20的两个8比特的ram中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0

26、.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 例如+125的数字输出为07d0h,+25.0625的数字输出为0191h,-25.0625的数字输出为ff6fh,-55的数字输出为fc90h。 温度值数字输出(二进制)数字输出(16进制)+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 0001019h+10.1250000 0000 1010 001000a2h+0.50000 0000 0000 10000008h

27、图3.4 ds18b20温度对照表3、ds18b20温度传感器的内部存储器ds18b20温度传感器的内部存储器包括一个高速暂存ram和一个非易失 性的可电擦除的eepram,后者存放高温度和低温度触发器th、tl和结构寄存器。高速暂存存储器除了配置寄存器外,还有其他8个字节组成,其分配如下所示。其中温度信息(第1,2字节)、th和tl值第3,4字节、第68字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的crc码,可用来保证通信正确。th用户字节1th用户字节2配置寄存器eeprom温度lsd(50h)温度lsd(05h)crc*保留位(ffh)保留位(10h)保留位(0ch)配置寄

28、存器th用户字节2*th用户字节1*高速暂存器(上电状态)byte1byte8byte0byte7byte6byte2byte5byte4byte3 图3.5 ds18b20内部储存器结构图当ds18b20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0062 5 /lsb形式表示。温度值格式如下: 对应的温度计算:当符号位s=0时,直接将二进制位转换为十进制;当s=1时,先将补码变换为原码,再计算十进制值。 ds18b20完成温度转换后,就把测得

29、的温度值与th,tl作比较,若tth或ttl,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只ds18b20同时测量温度并进行告警搜索。 crc的产生 在64 b rom的最高有效字节中存储有循环冗余校验码(crc)。主机根据rom的前56位来计算crc值,并和存入ds18b20中的crc值做比较,以判断主机收到的rom数据是否正确。 64位激光(刻)只读储存器8位rcr48位序列号8位系列号 4、 配置寄存器 该字节各位的意义如下:tmr1r011111 表3.4 配置寄存器结构低五位一直都是1,tm是测试模式位,用于设置ds18b20在工作模式还是在测试模式。

30、在ds18b20出厂时该位被设置为0,用户不要去改动。r1和r0用来设置分辨率,如下表所示:(ds18b20出厂时被设置为12位)r1r0分辨率最大温度转换时间/ms009位93.750110位187.51011位3751112位750 表3.5 温度值分辨率设置表 由表3.5可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间权衡考虑。 5、ds18b20控制流程根据ds18b20的通讯协议,主机(单片机)控制ds18b20完成温度转换必须经过三个步骤:每一次读写之前都要对ds18b20进行复位操作,复位成功后发送一条rom指令,最后发送ram指令,

31、这样才能对ds18b20进行预定的操作。复位要求主cpu将数据线下拉500微秒,然后释放,当ds18b20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主cpu收到此信号表示复位成功。后面还要具体讲述复位、读和写的时序。rom指令表明了主机寻址一个或者多个ds18b20中的某个或某几个,或者读取某个ds18b20的64位地址。ram指令用于主机对ds18b20内部ram的操作。指令集如表5.1和表5.2所示。指令约定代码功能温度转换44h启动ds18b20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节rom中。读暂存器0beh读内部r

32、am9字节内容写暂存器4eh发出向内部ram的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节数据。复制暂存器48h将ram的第3、4字节的内容复制到eeprom中。重读eeprom0b8h将eeprom中的内容复制到ram中的第3、4字节。读供电方式0b4h读ds18b20的供电模式,寄生供电时ds18b20发送“0”,外接电源供电ds18b20发送“1”。 表5.1 ram指令表指令代码操作说明温度转换44h开始启动ds18b20温度转换读rom33h读rom内容匹配rom55h对指定器件操作跳过cch跳过器件识别读暂存器beh读暂存器内容写暂存器4eh将数据写入暂存器的th

33、、tl字节复制暂存器48h把暂存器的th、tl字节写到eram重写调用eramb8h把eram中的th、tl字节写到暂存器th、tl字节 表5.2 rom指令表备注: 1、对于寄生电源模式下的ds18b20,在温度转换和拷贝数据到eeprom期间,必须给单总线一个强上拉。总线上在这段时间内不能用其它活动。 2、总线控制器在任何时刻都可以通过发出复位信号中止数据传输。 3、th、tl和配置寄存器这3个字节的写入必须在复位信号发起之前。 对ds18b20的操作流程图如图5.2和5.3所示返回设循环次数为8延时100s 480s 480s写1位数据总线置0并延时16s开始总线置1,延时60s8位写完

34、?返回设循环次数为8延时480s 480s 480s写1位数据总线置0并延时16s开始总线置1,延时16s8位写完?开始总线置1并延时返回总线置1并延时480s总线置1 a)复位操作流程 b)写操作流程 c)读操作流程 5.3 指令操作流程图上面两阶流程图说明了任何操作ds18b20所应遵循的流程。比如用户进行如下操作:先发送报警上下限值,并写入eeprom,然后让ds18b20做温度转换,最后读取温度值。6、ds18b20的应用 ds18b20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。下面就是ds18b20不同应用方式下的测温电路图: 图5.4 测温原理图1)ds18

35、b20的主要特性 适应电压范围更宽,电压范围:3.05.5v,在寄生电源方式下可由数据线供电 独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯 ds18b20支持多点组网功能,多个ds18b20可以并联在唯一的三线上,实现组网多点测温 ds18b20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内 温范围55125,在-10+85时精度为0.5 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温 在9位分辨率时最多在93.75ms内把温度转换为

36、数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快 测量结果直接输出数字温度信号,以一线总线串行传送给cpu,同时可传送crc校验码,具有极强的抗干扰纠错能力 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。2)ds1820的基本操作指令ds1820的操作指令分为rom操作命令和存储器操作命令。(1)、rom操作命令及其含义readrom指令代码(33h):如果只有一片ds1820,可用此命令读出其序列号,若在线ds1820多于一个,将发生冲突。matchrom指令代码(55h):多个ds1820在线时,可用此命令匹配一个给定序列号的ds1820,此后的命令就针

37、对该ds1820。skiprom指令代码(cch):此命令执行后的存储器操作将针对在线的所有ds1820。searchrom指令代码(f0h):用以读出在线的ds1820的序列号。alarmsearch指令代码(ech):当温度值高于th或低于tl中的数值时,此命令可以读出报警的ds1820。(2)、存储器操作指令代码及其含义writescratchpad指令代码(4eh):写两个字节的数据到温度寄存器。readscratchpad指令代码(beh):读取温度寄存器的温度值。copyscratchpad指令代码(48h):将温度寄存器的数值拷贝到eeram中,保证温度值不丢失。convertt

38、指令代码(44h):启动在线ds1280做温度a/d转换。recalle2指令代码(b8h):将eeram中的数值拷贝到温度寄存器中。readpowersupply指令代码(b4h):在本命令送到ds1280之后的每一个读数据间隙,指出电源模式:“0”为寄生电源;“1”为外部电源。3)温度测量的步骤(1).readrom(33h),每次对ds1820进行操作之前都要对它进行初始化,主要目的在于确定传感器已经连接到单总线上。(2).searchrom(f0h),这条指令使处理器用排除的方法去辨别总线上的ds1820。(3).matchrom(55h),只有准确的符合64位rom序列的ds1820

39、才能响应其后的指令,当然,单点测温时可以使用skiprom(cch)指令来跳过这一步。(4).convertt(44h),发完指令后应查询总线上的电平,当电平位高时温度转换完成。(5).readscratchpad(beh),将读指令发出后,就可从总线上读得表示温度的2字节二进制数。7、ds18b20寄生电源供电方式电路图1、ds18b20寄生电源供电方式电路连接的几种情况如下面图4所示,在寄生电源供电方式下,ds18b20从单线信号线上汲取能量:在信号线dq处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。 图5.5 d

40、s18b20寄生电源供电方式独特的寄生电源方式有三个好处:1)进行远距离测温时,无需本地电源2)可以在没有常规电源的条件下读取rom3)电路更加简洁,仅用一根i/o口实现测温上面的电路一般情况下都能满足测温要求,但是要想使ds18b20进行精确的温度转换,i/o线必须保证在温度转换期间提供足够的能量,由于每个ds18b20在温度转换期间工作电流达到1ma,当几个温度传感器挂在同一根i/o线上进行多点测温时,只靠4.7k上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。为了使ds18b20在温度转换周期中获得足够的电源供应,可以有两种方法解决这个问题,第一个就是在每个ds18b20

41、节点上都单独为其供电,如图3.6和3.7所示。但是这种办法需要每个节点处都有单独的电源,使得寄生电源的优越荡然无存,实际应用中当节点处没有单独电源时基本不采用。 如图5.6 节点单独供电的电路连接另一种方法是当进行温度转换或复制到e2储存操作时,用低导通电阻三极管或者mosfet把数据线直接拉到vcc就可提供足够的电流,在发出任何涉及复制到e2储存器或启动温度的指令后,必须在最多3s内把i/o线转换到强上拉状态。在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺点就是要多占用一根i/o口线进行强上拉切换。这种使用低导通电阻三极管或者mosfet进行强上拉的电阻在应用非常广泛

42、,其中电路如图3.7所示。 如图5.7 使用强上拉的电路连接 使用强上拉电阻实现的多点测量的应用电路如图5.8 所示。在外部电源供电方式下,ds18b20工作电源由vdd引脚接入,此时i/o线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个ds18b20传感器,组成多点测温系统。注意:在外部供电的方式下,ds18b20的gnd引脚不能悬空,否则不能转换温度,读取的温度总是85。 图5.8 多点测量连接电路外部电源供电方式是ds18b20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。站长推荐大家在开

43、发中使用外部电源供电方式,毕竟比寄生电源方式只多接一根vcc引线。在外接电源方式下,可以充分发挥ds18b20宽电源电压范围的优点,即使电源电压vcc降到3v时,依然能够保证温度量精度。 2、ds18b20的操作时序由于采用单总线数据传输方式,ds18b20的数据i/o均由同一条线完成,因此,对读写的操作时序要求严格。它的各种时序如图2所示图5.9 ds18b20的操作时序 为了保证ds18b20的严格i/o时序。需要做较精确的延时。在ds18b20操作中,用到的延时有15s,90s,270s,540s等。因这些延时均为15s的整倍,因此在程序中可以编写一个以15s为基准的延时函数。 2.5

44、ds18b20与单片机的典型接口设计下面以mcs51单片机为例,讲述ds18b20与单片机的典型接口和程序设计。图3是ds18b20采用寄生电源供电方式与51单片机的电路连接。令ds18b20定期进行温度转换,并把此温度转换数据定期发送给pc机进行处理。 图6.0 ds18b20与单片机的接口设置 图5.5中单总线加入了4.7k的上拉电阻对总线进行上拉。另外因为当ds18b20处于写存储操作和温度a/d变换操作时,总线上必须有强的上拉,上拉开启时间最大为3s.所以保证在有效的ds18b20时钟周期内提供足够的电流,图中采用了一个pnp型三极管和mcs51的p1.0口来完成对总线的上拉。平时状态

45、下p1.0输出为高,三极管关闭;当ds18b20处于写存储器操作和温度a/d变换操作之前,p1.0口输出为低,三极管打开,此时即对总线进行了强上拉,操作之后在使p1.0口输出为高,三极管再次关闭。 前面已经讲过,主机控制ds18b20完成温度转换必须经过3个步骤:初始化、rom操作指令、存储器操作指令。假设单片机系统所用的晶振频率为12mhz,根据ds18b20的初始化时序、写时序和读时序,分别编写了3个子程序:init为初始化子程序,write为写(命令或数据)子程序,read为读数据子程序,所有的数据读写均由最低位开始子程序getwd读取的温度值高位字节送wdmsb单元,低位字节送wdls

46、b单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值2.6 ds18b20使用中注意事项ds1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: 1) 较小的硬件开销需要相对复杂的软件进行补偿,由于ds1820与微处理器间采用串行数据传送,因此,在对ds1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用pl/m、c等高级语言进行系统程序设计时,对ds1820操作部分最好采用汇编语言实现。 2) 在ds1820的有关资料中均未提及单总线上所挂ds1820数量问题,容易使人误认为可以挂任

47、意多个ds1820,在实际应用中并非如此。当单总线上所挂ds1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 3) 连接ds1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用ds1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 4) 在ds1820测温程序设计中,向ds1820

48、发出温度转换命令后,程序总要等待ds1820的返回信号,一旦某个ds1820接触不好或断线,当程序读该ds1820时,将没有返回信号,程序进入死循环。这一点在进行ds1820硬件连接和软件设计时也要给予一定的重视。 测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接vcc和地线,屏蔽层在源端单点接地。第三章 硬件设计3.1 硬件电路设计的功能简介 本温度控制系统围绕ds18b20为核心,主要实现的功能是:利用ds18b20采集环境温度并在七段数码管上显示出来,同时将温度信息反馈到pc3以便作进一步分析操作。当环境温度高于报警上限或低于报警下限时,分别点亮高低温报警灯,温度回复到上下限之间时,熄灭报警灯。系统中有5个按键,其要实现的功能如表3.8所示。按键功能功能键显示温度值、报警上限、报警下限三态循环递增键当显示报警上下限时,按此键则显示的报警上限或下限增1。递减键当显示报警上下限时,按此键则显示的上下限减1.储存键当显示报警上下限时,按完递增或递减键后按此键可将新设定的报

温馨提示

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

评论

0/150

提交评论