ds1820温度传感器的设计.docxVIP

  • 3
  • 0
  • 约3.19千字
  • 约 3页
  • 2023-11-16 发布于广东
  • 举报
ds1820温度传感器的设计 0 温度传感器的选择 在传统的模型信号源距离测量系统中,有必要解决线路误差补偿、点测量变换误差和放大电路零位移误差等技术问题,以实现高的测量精度。测量装置抗干扰能力较差,多采用单片的温度传感器,例如LM35、AD590,这些芯片不仅体积大,而且输出的信号都是模拟信号,必须经过A/D转换后才可以被处理器识别,而且没有数字通信和网络功能。同时,模拟信号的远距离测量易遭受引线误差的影响,且外部附加电路较多,硬件结构复杂,增加了成本。系统选用DS18B20数字式单总线温度传感器,DS18B20是一个单线式温度采集数据传输,并且能直接转换数字量的温度传感器。多个DS18B20挂接到一条单总线上,配合单片机Atmega16微处理器,组成了高精度经济型多点温度采集系统,很好地解决了上述问题。 1 温度计数的输出 DS18B20是DALLAS半导体公司生产的单总线数字温度传感器。全部传感元件及转换电路集成在一块极小的芯片上,外形如同普通小功率塑封三极管,体积很小,在温度巡检系统中使用十分方便。 DS18B20的测温原理框图如图1所示。图中低温度系数晶振的振荡频率受温度形响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1、计数器2和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度计数器的值将加1,计数器1的预置值将被重新装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值即为所测温度。图1中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。 在正常测温情况下,DS18B20的测温分辨率为0.50℃,以9位数据格式表示,其中最低有效位(LSB)由比较器进行0.25℃比较,当计数器1中的余值转化成温度后低于0.25℃时,清除温度寄存器的最低位(LSB);当计数器1中的余值转化成温度后高于0.25℃时,置位温度寄存器的最低位(LSB)。以25℃和-25.5℃为例列出DS18B20测温时的9位数据格式如表1所示。 2 加热系统的设计 2.1 ds18b20系统概述 测温系统(图2)以Atmega16作为微处理器,该芯片内部的Flsah、EEPROM、SRAM容量较大,具有多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作,大大简化了硬件设计,提高了系统的可靠性,减少了对印制电路板的空间要求,降低了成本和系统功耗。DS18B20为前端检测元件。DS18B20的最重要的特征是其寄生电源供电方式,在传感器内部将VDD连接到GND实现接地,不需要内部单独提供电源,使得远程温度测控中外部配线和机械结构大大简化,降低了成本。由于DS18B20工作在单总线方式,所以在1条总线上可挂多片DS18B20。微处理器可通过1根口线经序列号匹配识别后对每片DS18B20进行读写操作,大大节省了硬件资源。为保证在DS18B20的有效周期内提供足够的电流,采用1个MOSFET管与Atmega16连接,完成对DS18B20总线的上拉。由于Atmega16和DS18B20自身的功能强大,系统几乎不需要附加电路即可构成单片机最小系统。键盘采用ZLG7290芯片,该芯片采用I2C总线方式,可自动完成8位LED数码管的动态扫描和按键检测扫描,大大缩短了单片机用于显示/键盘的工作时间,节省了单片机有限的接口资源。显示模块为四位一体的LED数码管,可以显示当前温度,也可以通过键盘查询显示历史时刻的温度。硬件看门狗电路采用X25045芯片,此外,系统可通过Atmega16和上位机相连,对系统进行全面的管理和控制。 2.2 测温控制程序 软件部分采用结构化程序设计,主要包括系统主程序、初始化子程序、温度采集子程序、读写及显示子程序、报警子程序、中断服务程序等。程序采用C语言编写,主要完成对DS18B20的读写操作,实现数据实时采集,并获取最终温度送至单片机内存。由于DS18B20工作在单总线方式,数据的读写都占用同一根线,所以每种操作都必须严格按照时序进行。在测温时首先设置DS18B20的DQ为高电平,然后初始DS18B20,成功后DS18B20接收单片机的命令,为了简单起见,这里跳过ROM命令设置匹配过程,然后再次初始化DS18B20,在成功后启动测温,最后将温度保存返回,测温子程序流程如图3所示。在DS18B20完成温度转换后,测得的温度值要和用户预置的报警值进行比较,如果超过了预置的报警值,DS18B20内部的报警位有效,就会发出报警;如果报警位条件

文档评论(0)

1亿VIP精品文档

相关文档