(2)多个分散的DS1820可以共用一线进行通信;
(3)不需外部元器件;
(4)可以通过数据线供电;
(5)检测温度范围为- 55~+125℃,精度在0.5度;
(6)用9bit数字量来表示温度;
(7)每次将温度转换成数字量需200ms;
(8)可定义一个不变化的温度设置为报警温度;
(9)有PR35T和SSOP两种封装型式。
2.DS1820的管脚安排
DS1820的管脚安排见下表所列。
3DS1820内部结构及工件过程
3.1DS1820内部结构
DS1820内部结构框图如下图所示。
由图1可知,DS1820由以下几部分组成:
(1)64位激光只读存贮器。在这里存放着每个DS1820的唯一的序号,开始8位是产品类型的编号(DS1820为10H),接着是每个器件的唯一的序号,共有48位,最后8位是前56位的CRC校验码。
这也是多个DS1820可以采用一线进行通信的原因。
(2)温度传感器。它是将温度转化为数字量的关键部分。
(3)DS1820的存贮器。它由高速存贮器RAM和EERAM(高温TH和低温TL报警触发器)组成,数据首先写入高速存贮器RAM中,然后通过复制命令将数据写入EERAM中。高速存贮器RAM由8个字节组成,头两个字节存放检测温度的值,0号(LSB)为存放温度的值,l号(MSB)存放温度值的符号,如果温度为负,则1号存贮器全为1,否则全为0,这也是可用9bit来表示温度的原因。最低位先读出。若LSB最低位为1,则表示为0.5度,求值的方法根据MSB中的值将LSB中的二进制数求补再转换成十进制数除以2即得被测温度的值。
上表是温度和数字量的关系。第二和第三字节是从TH和TL中复制的值,当上电被更新;接下来两个字节没用,若读它应全为l;第六和第七字节为计数寄存器;最后一个字节为CRC校验。
(4)可选的电源VDD。每个DS1820都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。外部供电方式同一般的电路。数据总线供电即为寄生式供电方式,这也为多个DS1820串在一起提供了条件。这种寄生式供电每当I/O为高电平时就提供电源,由于DS1820在转换时需要1mA的电流,所以转换时间需长一点,电路框图如图2所示。
3.2工作过程
微处理器同DS1820通信通过一根I/O口线,微处理器首先发复位脉冲,接着收到复位脉冲,这时就发ROM命令,最后发存贮和控制命令(在没有向DS1820发ROM命令之前发存贮和控制命令是不起作用的)。
3.2.1 DS1820 ROM命令
DS1820 ROM命令有下列几种:
(1)读ROM(33H),它是读1820的序列号;
(2)匹配ROM(55H),它是在读完64位序列号的一个命令,目的用于多个DS1820时定位;(3)定位ROM( CCH),它用在只有单个DS1820情况下可省去第一条命令;(4)搜索ROM( FOH),它是针对当系统不知是
哪一个DS1820在线;
(5)报警搜索(ECH),用于搜索哪一器件报警。
3.2.2 DS1820存贮控制命令
DS1820存贮控制命令如下表所列。
3.2.3 DS1820的执行序列
(1)初始化(发一个不少于480μs的低脉冲);(2)执行ROM命令,主要用于定位;(3)执行DS1820的存贮控制命令,用于转换和读数据;(4) DS1820的I/O上信号有复位脉冲、回应脉冲、写0、读O、写1和读1等几种。除回应脉冲由DS1820发出外其余都由主机发出。
4应用
我们在制作程控机房的测控系统时,因机房设备多,要检测的点多,所以选用了DS1820来检测温度,这样就可以把多个DS1820串在一条线上,节省电源模块。电路同上图所示。程序框图如下图所示。全部程序经过调试和长时间运行,性能良好,能满足用户的需要。在实际使用中我们也发现了以下几个值得注意的问题:
(1) DS1820的复位信号时间不能短,最好1ms,否则以后的命令就可能不执行。
(2)虽然每个DS1820的序列号是唯一的,但不能把多个DS1820串在一起来读序列号,必须首先一个一个把它读出来,然后才能串在一起。
(3)由于采用总线供电方式,而DS1820在温度转换时的工作电流大于1mA,所以在转换时必须将图2中的DR置1,使场效应管导通,使数据总线直接与+5V电源相通且保持2s以上,确保DS1820的温度转换所需时间,因为电源通过4. 7kΩ的上拉电阻不足提供DS1820转换所需电流。
(4)不能用单片机串口的通信方式同DS1820通信,但可做I/O口用。
(5)由于DS1820的写时间槽的关系(见下图所示),在写0后再写1必须有800μs的低脉冲,写l后再写1也是如此,否则读的数据就会错。