数字温度传感器DS1621及其应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DS1621是DALLAS公司生产的一种功能较强的数字式温度传感器和恒温控制器。与同系列的DS1620相比控制更为简单,接口与I2C总线兼容,且可以使用一片控制器控制多达8片的DS1621。其数字温度输出达9位,精度为0.5℃。通过读取内部的计数值和用于温度补偿的每摄氏度计数值,利用公式计算还可提高温度值的精度。DS1621可工作在最低2.7V 电压下,适用于低功耗应用系统。利用DS1621和一片2051单片机即可构成一个简洁但功能强大的低电压温度测量控制系统。
1. DS1621基本特性
DS1621无需外围元件即可测量温度,将结果以9位数字量(两字节传输)给出,测量范围为-55℃~+155℃,精度为0.5℃;典型转换时间为1s;用户可自行设置恒温计的温度值,且将该设置值存储在非易失存储器中。数据的读出和写入通过一个2-线串行接口完成,DS1621采用8脚DIP或SOIC封装。
2. 引脚描述及功能方框图
DS1621的引脚描述如表1所列。图1是DS1621的功能框图。
3. DS1621的工作方式
DS1621既可独立工作(此时作为恒温控制器),也可通过2-线接口在MPU的控制下完成温度的测量和计算。DS1621的工作方式是由片上的设置/状态寄存器来决定的,该寄存器的定义如下:
其中DONE为转换完成位,温度转换结束时置1,正在进行转换时为0;THF为高温标志位,当温度超过TH预置值时置1;TLF为低温标志位,当温度低于TL预置值时置1;NVB为非易失存储器忙位,向片内E2PROM写入时置1,写入结束后复位写入E2PROM通常需要10ms;PCL为输出极性位,为1时激活状态为逻辑高电平,为0时激活状态为逻辑低电平,该位是非易失的;1SHOT为一次模式位,该位为1时每次收到开始转换命令执行一次温度转换,为0时执行连续
温度转换,该位亦是非易失的。
DS1621在嵌入一个系统前,需由MPU将设置/状态寄存器值通过2-线接口写入该寄存器,之后DS1261或作为恒温计独立工作,或在MPU控制下进行温度测量和计算。MPU对DS1621的控制和写入是通过2-线接口进行数据传输的,MPU对DS1621发命令字,之后完成对DS1621的读或写。由于数据传输协议满足I2C总线规范,MPU可将DS1621作为具有I2C总线接口的从器件对待,器件地址为1001A2A1A0R/W,通过A2A1A0编码,一次可控制最多8片DS1621,完成8点温度采样。写入和读出数据格式和时序完成按串行通讯接口规范,SCL和SDA线满足串口通讯启动条件,MPU发出器件地址字节,其中R/W决定读/写方向。MPU发出DS1621的命令字,DS1621发出ACK信号,之后为从器件的数据字节,主器件的ACK信号,……,最后为串口通讯结束条件,完成一次数据通讯。
DS1621的命令集包含下述8个命令字:
●读温度命令[AAh]
该命令读出最近一次温度转换的结果。DS1621将送出两字节数据:第一字节为8位二进制温度值(摄氏温度),该数据以二进制补码形式给出,其中最高位为温度符号位(0为高于0℃,1为低于0℃),第二字节最高位为精度位(0为
0.0℃,1为0.5℃),其余位不用。
●读写TH寄存器命令[A1h]
若R/W为0,该命令写入高温寄存器TH,之后MPU发出两字节温度上限值以确定DS1621的恒温上限;若R/W为1,DS1621送出两字节的TH寄存器值。
●读写TL寄存器命令[A2h]
若R/W为0,该命令写入低温寄存器TL,之后MPU发出两字节温度下限值以确定DS1621的恒温下限;若R/W为1,DS1621送出两字节的TL寄存器值。
●读写设置命令[ACh]
若R/W为0,该命令写入设置/状态寄存器,之后MPU发出一字节设置/状态寄存器值以确定DS1621的工作方式;若R/W为1,DS1621送出设置/状态寄存器值。
●读计数器命令[A8h]
该命令只在R/W为1时有效,发出命令后,DS1621送出计数器计数值COUNT_REMAIN。
●读斜率命令[A9h]
该命令只在R/W为1时有效,发出命令后,DS1621送出用于温度补偿的斜率计数器值,即前面提到的每摄氏度计数值COUNT_RER桟。
●开始温度转换命令[EEh]
该命令启动温度转换,无需更多数据。在一次工作方式下,该命令启动转换,DS1621完成之后保持空闲;在连续工作方式下,该命令启动DS1621连续进行温度转换。
●结束温度转换命令[22h]
该命令结束温度转换,无需更多数据。在连续工作方式下,该命令停止DS1621的温度转换,之后DS1621保持空闲直到MPU发出新的开始温度转换命令来继续温度转换。
通过该命令集可以看出,DS1621既可以作为独立的恒温控制器单独工作(利用命令A1h、A2h、ACh),也可以进行实时的温度测量(利用命令AAh、ACh、EEh、22h,精度为0.5℃),还可配合命令A8h、A9h,通过软件计算得到更高的温度精度,计算公式为:
T=T R-0.25+[(N-M)/N]
式中,T2为读出温度值,N为计数器计数值COUNT_RER_C,M为每摄氏度计数值COUNT_REMAIN。
4. 应用实例
图2给出了一个多点测温的应用实例,图MPU为ATMEL公司的AT89C2051-24PC,带8片DS1621,整个系统供电电压为3V。
系统中由P1.7和P1.6担当SDA和SCL,利用软件形成串口通讯时序,程序循环读出000、001、…、111八片DS1621的测温值并存储。图3给出系统的软件流程图。
由应用实例可看出,利用单片机和多片DS1621可以很容易地构成一个低电压低功耗的多点数字测温系统,该系统可应用于大多数应用场合,且能得到较高的测温精度。