每个DS18B20都有唯一的64位序列号,因此多个DS18B20可以在同一条总线上运行。故DS18B20可用于HVAC环境控制和建筑物、设备或机器的温度监控系统,以及过程监控和控制系统。
1.主要结构
(1)主要组成部分
图7.1为DS18B20的内部结构示意图,DS18B20的主要组成部分有温度传感器、64位ROM、非易失性的温度报警触发器TH 和TL、配置寄存器。每一个DS18B20在出厂时都有唯一的存储在ROM 中的64位代码,寄存器包含2字节温度寄存器,用于存储温度传感器的数字输出。此外,寄存器提供对1字节上下警报触发寄存器(TH 和TL)和1字节配置寄存器的访问。用户可在配置寄存器中将温度-数字转换的分辨率设置为9位、10位、11位或12位。TH、TL和配置寄存器是非易失性的,因此它们将在器件断电时保留数据。
图7.1 DS18B20的结构图
DS18B20采用独有的单总线原型,可以仅用一个控制信号来实现总线通信。由于所有设备都需要通过三态或开漏端口(DS18B20的DQ 引脚)连接到总线,因此控制线需要一个弱上拉电阻。在总线系统中,微处理器(主机)使用每个芯片唯一的64位代码识别和寻址总线上的设备。由于每个DS18B20都在生产时给定了唯一的序号,因此可以在一条总线上寻址的DS18B20数量几乎是无限的。
(2)引脚配置
DS18B20的引脚图如图7.2所示。
GND 为接地接口;DQ 接口是数据输入/输出接口,在电源为寄生模式下,也可用来提供电源;VDD 有两种选择,当由外部供电时,该引脚需外接电源,而当为寄生模式时,该引脚必须接地。
(3)供电方式
DS18B20有两种供电模式,既可以通过VDD 引脚外接外部电源供电,也可以采用寄生电源模式工作,即无须外部电源即可工作。寄生电源模式对于需要远程温度感应或者空间受限的应用领域大有用处。图7.3 所示的为DS18B20的寄生电源控制电路,当总线为高电平时,它通过DQ 引脚“窃取”总线的电源,即当总线为高电平时,被窃取的自由电子为DS18B2供电,这些电子存储在寄生电源电容(CPP)上,以便在总线为低电平时提供电源。需要注意的是,当DS18B20处于寄生电源模式时,VDD 引脚必须接地。图7.4所示的为DS18B20采用外部电源供电的方式。
图7.2 DS18B20的引脚图
图7.3 DS18B20的寄生电源控制电路
图7.4 DS18B20采用外部电源供电的方式
(4)64位ROM
每个DS18B20 都包含一个存储在ROM 中的唯一的64 位编码(见图7.5)。ROM 代码的最低8位为DS18B20的1-Wire系列代码:28h。接下来的48位是每个DS18B20唯一的序列号。最高的8位是循环冗余校验(CRC)字节,该字节是从ROM 代码的前56位计算的。
图7.5 64位ROM 光刻ROM
(5)存储器
DS18B20 的存储器结构如图7.6 所示。存储器由一个高速暂存器(SRAM)和一个非易失性可电擦除的存储器(EEPROM)组成,EEPROM 用来存储TH 和TL值,如果未使用DS18B20报警功能,则TH 和TL 寄存器可用作通用存储器。
暂存器的字节0和字节1分别包含温度寄存器的LSB和MSB。这些字节是只读的。字节2和3提供对TH 和TL 寄存器的访问。字节4包含配置寄存器数据,字节5、6和7保留用于设备的内部使用,并且不能被覆盖。暂存器的字节8是只读的,并包含暂存器的字节0到7的CRC代码。(www.xing528.com)
图7.6 DS18B20的存储器结构
(6)配置寄存器
暂存器的字节4包含配置寄存器,其配置如图7.7所示。用户可以使用该寄存器中的R0和R1位设置DS18B20的转换分辨率,如表7.1所示。这些位的默认值是R0=1且R1=1(12位分辨率)。请注意,分辨率和转换时间之间存在直接的权衡。配置寄存器中的位7和位0至位4保留供器件内部使用,不能被覆盖。
图7.7 配置寄存器
表7.1 DS18B20的解析配置
(7)CRC码生成器
CRC码即循环冗余校验码,为数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。当从DS18B20读取数据时,CRC码为总线主控器提供数据验证方法。为了验证数据是否已被正确读取,总线主控器必须从接收的数据中重新计算CRC码,然后用这个值与存储在DS1820中的值进行比较。如果计算的CRC 码与读取的CRC 码匹配,则表示数据无错误,可进行接收。
CRC码(ROM 或暂存器)的等效多项式函数是
CRC=X8+X5+X4+1
总线主机可以使用图7.8所示的多项式发生器重新计算CRC 码,并将其与DS18B20的CRC码进行比较。图7.8所示的电路由移位寄存器和XOR 门组成,移位寄存器位初始化为0,从暂存器中ROM 代码的最低有效位或字节0的最低有效位开始,一次一位应移入移位寄存器。在从ROM 中移位第56位或从暂存器移位字节7的最高有效位之后,多项式发生器将包含重新计算的CRC码。接下来,必须将DS18B20的8位ROM 代码或暂存器CRC码移入电路。此时,如果重新计算的CRC码是正确的,则移位寄存器将包含全0。
图7.8 CRC码生成器
2.工作原理
(1)测温操作
DS18B20的核心是可以直接将温度转换为数字显示的温度传感器。温度传感器的分辨率可由用户设置为9位、10位、11位和12位,分别对应于0.5℃、0.25℃、0.125℃和0.062 5℃的精度,上电时默认分辨率为12位。DS18B20在低功耗空闲状态下需要上电,启动温度测量和A/D 转换之前,主机必须发出转换(T[44h])命令。转换后,产生的温度数据会存在暂存器内的2字节温度寄存器中,DS18B20返回空闲状态。如果DS18B20由外部电源供电,则主机可以在转换命令后发出“读时隙”,DS18B20将在温度转换时通过单总线发送0,(表示响应正在进行),并且在完成转换时变为1。如果DS18B20采用寄生电源供电,则无法使用此通知技术,因为在整个温度转换期间必须通过强上拉将总线拉高,使其一直处于高电平。
DS18B20输出的温度数据单位为摄氏度,温度数据以16位带符号扩展的二进制补码形式存储在温度寄存器中的第1、2字节。符号位(S)表示温度的正负:S=0表示为正数,此时可直接将二进制位转换为十进制;S=1表示为负数,此时需先将补码变换为原码,再计算十进制值。表7.2给出了数字输出数据的示例以及12位分辨率转换的相应温度读数。
表7.2 数字输出数据
注:温度寄存器的上电复位值为85℃。
(2)报警操作
在DS18B20完成温度转换后,将得到的温度值与存储在TH 和TL 寄存器中用户定义的报警触发值进行比较。由于TH 和TL寄存器是非易失性的,因此它们可在器件断电时保留数据。由于TH 和TL寄存器是8位寄存器,因此在与TH、TL寄存器的比较中仅使用温度寄存器的第11位至第4位(0.5℃被忽略不计)。如果测量温度不在TL~TH 范围内,则触发报警标志。每进行一次温度测量后就会更新该标志,因此,如果报警条件消失,则在下一次温度转换后标志将被关闭。主机可以通过发出报警搜索[ECh]命令来检查总线上所有DS18B20的报警标志状态。任何带有设置报警标志的DS18B20都会响应该命令,因此主机可以确切地知道哪些DS18B20达到报警状态。如果存在报警条件且TH 或TL寄存器设置已更改,则应进行另一次温度转换,以验证报警条件。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。