多点测温
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:多点测温广泛应用于工业自动化控制、农业生产温度测量等领域。本文介绍了智能集成数字温度传感器
DS18B20 的特点和工作原理,对基于DS18B20 多点测温的二种方法进行了分析与探讨。
1.前言
多点测温在粮食仓库存储的温度监控,禽蛋孵化箱自动温度控制,机柜仪器设备的温度监控,电力、电讯设备的过热故障预知检测,交通工具温度监视,医疗与保健诊断的温度测试,以及智能家居的室温自动调节等领域有着广泛的应用。
传统的温度检测大多以热敏电阻
为传感器,但利用热敏电阻
测量温度精度较低、可靠较差,且必须经过A/D 转换等接口电路转换成数字信号后才能送给微处理器进行处理,这样就使得测温装置的电路结构较复杂,降低了系统的安全可靠性。
2.DS18B20 数字温度传感器
简介
DS18B20 是美国DALLAS 公司生产的单线数字温度传感器,它是一款性能优异的智能集成数字式传感器,具有体积小、功耗低、性能高、抗干扰能力强、使用简单等优点。其独特的单总线
技术使用户可轻松地组建传感器网络,特别适合于构成多点温度测控系统。每个DS18B20 都有一个唯一的64 位ROM 序列号,通过查询此序列号,就可以区分不同的器件,这样就可以实现一根总线上挂接多个DS18B20 的目的,确保在应用时能被唯一标识,以实现对对象的准确控制。DS18B20 的温度测量范围为-55°C~+125°C,在-10°C~+85°C 范围内,精度为±0.5°C。与传统的分立式温度传感器不同的是,它是将被测量的温度值直接转化成串行数字信号,通过微处理器即可直接读出被测量的温度数据。因而把DS18B20 应用于温度测控系统中,将大大简化线路结构和减少硬件开销,使系统结构更加简单,工作稳定,测温精度高,维护方便,安全可靠性更高。
3.DS18B20 的测温原理和工作过程
DS18B20 测温原理如图1 所示。图中的低温度系数振荡器
用来为计数器
1 产生稳定频率的脉冲信号,它是一个受温度变化影响很小振荡器,其振荡频率不随温度的变化而改变。而高温度系数振荡器是一个对温度敏感的振荡器,其振荡频率受温度变化将发生明显改变,所产生的脉冲信号作为减法计数器
2 的脉冲输入。初始时,计数器1 和温度寄存器被预置在-55℃所对应的一个基数值。计数器1 对低温度系数振荡器产生的脉冲信号进行减法计数,当计数器1 的预置值减少到0 时,温度寄存器的值将加1,计数器1 的预置值就会重新被装入,计数器1 重新开始对低温度系数振荡器产生的脉冲信号进行计数,如此循环直到计数器2 计数减少到0 时,才停止对温度寄存器的值的累加,此时温度寄存器中的数值即为所测温度的数据。图1 中的累加器用于补偿和修正测温过程中产生的非线性误差,对计数器1 的预置值进行修正。
DS18B20 仅使用一根数据线
与主机进行通信,用于接受控制信号和回传数据信号,
其上传输的是一系列的脉冲信号。使用DS18B20 进行温度测量的步骤为:初始化DS18B20→跳过ROM 操作命令→启动温度转换命令→等待转换完成→初始化→跳过ROM 操作命令→读取温度寄存器命令,这样就可以读出被测温度的数据了。
图1 DS18B20 测温原理框图
4.DS18B20 的多点测温应用
根据DS18B20 的电气特性,我们可以采取以下二种方法使用DS18B20 进行多点测温。
(1)单端口单总线的多点测温法。典型的应用如图2 所示,所有的DS18B20 相互并联后其数据线连接到微处理器的某个I/O 端口线上,其显著的特点是只占用微处理器的一个端口。因为每个DS18B20 内部均有一个唯一的64 位序列号,在系统安装及工作之前先将主机与DS18B20 逐个挂接,分别读出其序列号并存储在主机的EEPROM 中,微处理器根据序列号就可以对同一条总线上的多支DS18B20 进行识别与控制,分别读取它们的温度。
图2 单端口单总线测温连接示意图
单总线多点测温的设计思想是:当主机需要对众多在线的DS18B20 中的某一个进行操作时,首先要发出匹配ROM 命令,紧接着主机把从EEPROM 中取出存储的64 位序列号发送到总线上,只有具有此序列号的DS18B20 才接受与相应主机的命令,之后操作就是针对该DS18B20 的。如图3 所示的流程图,其中的跳过ROM 命令,就是此后的操作是针对所有DS18B20 的。在DS18B20 组成的多点测温系统中,先发送跳过ROM 命令,即是启动所有的DS18B20 进行温度转换,然后,再通过匹配ROM 命令,逐一读取每个DS18B20的温度数据。
图3 单端口单总线的多点测温流程图
这种测温连接方法的优点是电路连接简单,硬件开销小。但其缺点也是很明显的,首先,这种单总线式的测温方法是由多个DS18B20 并联连接在一起的,它们在电气特性上会有一定的相互影响,当它们当中的某个发生故障(如短路)时,将会影响其它器件的正常工作,而排除故障时需要逐个断开其与电路的连接,这将是个费时费力的工作;其次,在这种应用方法中,
多个器件串接在总线上时,对所有器件的查询操作,需要一个一个来分别识别,完成一次对全部器件的查询需要花费成倍的操作时间,整个系统把大量时间消耗在时序所要求的等待延时上,大大降低了系统的效率。此外,还需要在系统的初始化期间花费较长的时间来进行烦琐的总线上器件的序列号查询工作,才能获取总线上的每个器件的序列号。这种通过查询序列号依次读取数据的方法,不仅程序设计会变得非常复杂,而且会大大降低温度测量的灵敏度,这是单总线应用方法上的致命缺点。在这种应用中虽然节省了微处理器的I/O 端口资源,但微处理器不得不经过长时间的等待后方可获得所有的温度数据,所以使用起来会有些局限性,尤其不适用在一些对实时性要求相对较高的系统当中。
(2)多端口并行驱动法。如图4 所示,各个DS18B20 的数据线分别连接到微处理器的不同I/O 端口。系统工作时,微处理器同时对各个DS18B20 进行统一的并行操作,对所有DS18B20 而言,其命令的接受与数据的传送是同步进行的,所花费的时间等同于操作单个DS18B20 器件所用的时间,这样即可一次输入或输出多个数据,从而达到同步快速读取温度数据的目的。从图4 中可见,每个端口连接有一个DS18B20 器件,也即一条端口线上仅有一个DS18B20 器件,在对DS18B20 器件进行操作时,只需统一地对这一组并行端口进行操作即可。一个端口对应一个DS18B20 器件,它们相互之间是独立的,系统工作时数据线上传输的命令与数据也是相互独立的,所以也就不再需要对每个器件进行序列号搜索与匹配操作,因而在对DS18B20 器件进行操作时,可以使用skip ROM命令来跳过ROM 序列号搜索与匹配的操作。在对连接在同一组端口上的多个DS18B20 操作时,是同时对该组端口进行操作,也即同时对该组DS18B20 器件进行同步的命令发送与数据接收操作。其工作流程图如图5 所示。
图4 多端口并行测温连接示意图
这种并行操作的最大好处就是节省时间,其查询多个DS18B20 器件操作所消耗的时间与查询单个DS18B20 器件操作所消耗的时间是一样的,从而达到了快速多点测温的目的,能够满足对实时性要求较高的温度测量系统的设计需求。同时,由于这种操作方法并不涉及DS18B20 的序列号问题,因而省掉了烦琐的读取与匹配序列号的操作过程,程序的设计、编写、调试也变得较为简单些,有利于缩短产品的研制开发周期,使得利用DS18B20 进行多点测温的操作变得更方便、容易。
显而易见,这种测温方法的最大缺点就是微处理器的I/O 口占用较多,硬件资源开销大,每一个测试点需要一条连接线,而且当连接的测试点较多、距离较远时,这个缺点表现得尤为突出。