0 引言
在高新电子产品以及智能化仪器仪表中,常常要求具备环境温度测量和实时时钟显示功能。过去实现温度测量往往采用分立式温度传感器如铂电阻或模拟集成温度控制传感器如AD590、TMPl7等,再通过模数转换(A/D)送至计算机处理。其缺点是功能单一(仅测量温度)、测温误差较大。20世纪90年代中期出现了智能温度传感器(亦称数字温度传感器)。智能温度传感器的内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路,其特点是能直接输出数字化的温度数据及相关的温度控制量,适配各种微控制器(MCU)。其中DSl8820就是一种应用相当广泛的单总线数字温度传感器旧。,它结构简单、不需外接元件,采用一根I/O数据线既可供电又可传输数据、并可设置温度报警界限等特点,广泛用于工业、民用等领域的温度测量中;另一方面,在许多智能仪器仪表中,经常需要一个实时的时钟和日历,以便对一些实时发生事件记录时给予时标,实时时钟芯片便可起到这一作用。过去多用并行接El时钟芯片如MCl46818、DSl2887等。虽然这些芯片已能完全满足仪器仪表对实时时钟的要求,但是这些芯片与微控制器接口复杂、占用地址/数据多、芯片体积大。近年来串行接口的各种时钟芯片在智能仪器仪表中应用愈来愈多,如DS1302、DS1307、PCF8485等,这些芯片接口简单、价格低廉、使用方便,被广泛地采用。其中DSl302是一个综合性能较好、价格便宜且应用广泛的串行接口实时时钟芯片,更重要的是DSl302可以在很小的后备电源下继续计时,并可通过编程选择充电电流来对后备电源进行充电,保证了后备电源基本不耗电。
基于STCl2C2052单片机,采用一线式数字温度传感器DSl8820和实时时钟芯片DSl302分别测量温度和获取时钟,并通过三线式串行接口液晶模块显示结果,实现了全部使用串行接口芯片实现数字温度实时时钟的综合功能,可满足智能仪器仪表对体积小、功耗低的需求。
1 测温芯片DSl8820及其应用
1.1 DSl8820芯片简介
DSl8820是美国DALL峪半导体器件公司推出的单总线数字化智能集成温度传感器。单总线(1-Wire)是DALLAS公司的一项专有技术,它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的,具有节省I/O 13线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。与其它温度传感器相比,DSl8820具有以下特性:1独特的单线接口方式,在与微处理器连接时仅需要一条接口线即可实现微处理器与DSl8820的双向通信。2DSl8820支持多点组网功能,多个DSl8820可以并联在唯一的信号线上,实现多点测温。3DSl8820在使用中不需要任何外围元件。4测温范围-55℃-+125℃,固有测温分辨率0.625℃。5测量结果以9-12位数字量方式串行传送。
1.2 DSl8820与微控制器的典型接口设计
DSl8820与微控制器的连接可采用两种方式:一是外接电源方式,即其数据输人/输出引脚DQ端接微控制器的某个I/O口,其VDD端用3-5.5V的电源供电,GND端接地。图1为DSl8820与微控制器的典型连接图,假设DQ端接P1.0,单片机对DSl8820读出或写入数据仅需P1.0一根口线,它是以串行通信的方式与单片机进行数据通信的,接10kΩ的上拉电阻是为了增加该L/O口线的驱动能力,VDD端可接VCC=3-5.5V的电源。另一种是采用寄生电源方式,具体连接方式可参考文献。
图1 DSl8820与微控制器的连接图
1.3 温度采集的程序设计
为了保证数据的可靠传输,任一时刻1-Wire总线上只能有一个控制信号或数据。因此,进行数据通信时应符合1-Wire总线协议,否则DSl8820将不会响应。单片机访问DSl8820需遵循以下3个步骤:
①初始化。基于1-Wire总线上的所有传输过程都是以初始化开始的,主机发出复位脉冲,从机响应应答脉冲。应答脉冲使主机知道总线上有从机设备,且准备就绪。
②发送ROM命令。在主机检测到应答脉冲后,就可以发出ROM命令。这些命令与各个从机设备的唯一的64位ROM代码相关,允许主机在1-Wire总线上连接多个从机设备时,指定操作某个从机设备。这些命令还允许主机能够检测到总线上有多少个从机设备以及其设备类型,或者有没有设备处于报警状态。DSl8820共有5种ROM命令,即读ROM、搜索ROM、匹配ROM、跳过ROM、报警搜索。对于只有一个温度传感器的单点系统,跳过ROM命令特别有用,主机不必发送64位序列号,从而节约了大量时间。
③发送DSl8820功能命令。在主机发出ROM命令,以访问某个指定的DSl8820后,接着就可以发出DSl8820支持的某个功能命令。这些命令允许主机写入或读出DSl8820暂存器、启动温度转换以及判断从机的供电方式。DSl8820的功能命令有温度转换、写暂存器、读暂存器、拷贝暂存器、恢复EPROM、读取电源供电方式。主机发出温度转换命令后,DSl8820采集温度并进行A/D转换,结果保存在暂存器中。写暂存器命令,主机把3 B的数据按照从LSB到MSB的顺序写入到暂存器的TH、TL和配置寄存器中。拷贝暂存器命令将暂存器中TH、TL和配置寄存器的值保存到E2PROM中。读暂存器命令将读取暂存器中9个字节的数值,其中最后一个字节是循环冗余校验CRC,用于检验读取数据的有效性。
2 时钟芯片DSl302及其应用
2.1 DSl302芯片简介
DSl302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以产生秒、分、时、日、月、星期及年等七个时标,并能够进行闰年调整,日历有效期至2100年。芯片具有主工作电源掉电情况下的时钟保护电路和备份电源自动切换控制电路。片内具有31 B静态RAM,可用来保存重要数据。该芯片采用串行I/O接口方式。另外,在读写时钟或RAM数据时,可采用单字节或多字节(串模式)方式传送数据。
2.2 DSl302的硬件设计
DSl302的硬件设计相当简单,只需1个外接元件接32.768 kHz的晶振,RST、SCLK、I/O三条线可分别接到微控制器的三条I/O脚上(如接到MCS-51单片机的P1.1、P1.2、P1.3上),两者间的连接如图2所示。
图2 DSl302与微控制器的连接
3 数字温度时钟功能的实现
智能仪器仪表中数字温度时钟系统是由微控制器、温度检测芯片、实时时钟芯片、LCD显示器及键盘部分组成,如图3所示。
图3 电路实现框图
这里微控制器采用单片机STCl2C2052,该单片机与MCS-51兼容,具有2 kB Flash存储器、256 B RAM、SOP-20封装。具有以下显著特点:加密性强,无法解密;超强抗干扰、抗静电特性;超低功耗(掉电模式下功耗小于0.1μA)、超低价格;高速、高可靠性;在系统可编程,无需编程器,可远程升级。单片机是系统的核心部分,控制着温度检测、时钟读取以及数据显示等功能。温度检测部分采用DSl8820温度传感器,时钟的获取用时钟芯片DSl302,用LCD液晶LCMl01作为显示器。LCMl01为北京卫信杰科技发展有限公司生产的lO位多功能8段液晶显示模块,内含看门狗/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机接口,是仪器仪表的最佳显示模块怕1。单片机通过时钟芯片DSl302获取时间数据,同时温度传感器DSl8820采集温度信号送该给单片机处理,单片机再把时间数据和温度数据送液晶显示器LCMl01显示;键盘是用来调时和温度查询的,通常只需设置4个,分别实现时间调整、时间的加减、温度的查询。
4 结束语
DSl8820为一线式温度传感器,与单片机连接只需一根I/O线,串行实时时钟芯片DSl302通过3根I/O线与单片机连接,而显示温度和时间的三线式串行接口液晶模块也最多占有单片机的3根I/O线,加上调整时钟的按键所占I/O线,一般就是10根左右I/O线即可,故电路的硬件组成相当简单。从软件上看,单总线芯片工作量稍大些,且必须按照严格的时序操作。另外,软件部分采用C5l编写,便于移植,也方便嵌入到仪器仪表自身软件中,从而为其使用提供更好的软件支持。
上述数字温度时钟电路可单独作为一个模块安装于仪器仪表中尽供显示温度时间用,而对于那些需要提取某些参数的历史记录的仪器仪表,则要将该电路设计到整个仪器仪表中,并统一编程。