达拉斯 DS18B20
半导体 可编程分辨率的
单总线®数字温度计
特征 引脚排列
l 独特的单线接口仅需一个端口引脚
进行通讯
l 每个器件有唯一的 64 位的序列号存
储在内部存储器中
l 简单的多点分布式测温应用
l 无需外部器件
l 可通过数据线供电。供电范围为 3.0V
到 5.5V。
l 测温范围为-55~+125℃(-67~+
257℉)
l 在-10~+85℃范围内精确度为±5
℃
l 温度计分辨率可以被使用者选择为
9~12 位
l 最多在 750ms 内将温度转换为 12 位
数字
l 用户可定义的非易失性温度报警设
置
l 报警搜索命令识别并标志超过程序
限定温度(温度报警条件)的器件
l 与 DS1822 兼容的软件
l 应用包括温度控制、工业系统、消费
品、温度计或任何热感测系统
引脚说明
GND -地
DQ -数据 I/O
VDD -可选电源电压
NC -无连接
说明
DS18B20 数字温度计提供 9-12 位摄氏温度测量而且有一个由高低电平触发的可
编程的不因电源消失而改变的报警功能。DS18B20 通过一个单线接口发送或接受
信息,因此在中央处理器和 DS18B20 之间仅需一条连接线(加上地线)。 它 的测
温范围为-55~+125℃,并且在-10~+85℃精度为±5℃。除此之外,DS18B20
能直接从单线通讯线上汲取能量,除去了对外部电源的需求。
每个 DS18B20 都有一个独特的 64 位序列号,从而允许多只 DS18B20 同时连在
一根单线总线上;因此,很 简单就可以用一个微控制器去控制很多覆盖在一大片
区域的 DS18B20。这一特性在 HVAC 环境控制、探测建筑物、仪器或机器的温
度以及过程监测和控制等方面非常有用。
详细的引脚说明 表 1
8 引脚 SOIC 封装* TO-9 封装
符号 说明
5 1 GND 接地。
4 2 DQ 数据输入/输出引脚。对于单线操作:
漏极开路。当工作在寄生电源模式时
用来提供电源(建“寄生电源”节)。
3 3 VDD 可选的 VDD 引脚。工作与寄生电源模
式时 VDD 必须接地。
*所有上表未提及的引脚都无连接。
概览
图 1 是表示 DS18B20 的方框图,表 1 已经给出了引脚说明。64 位只读存储器储
存器件的唯一片序列号。高速暂存器含有两个字节的温度寄存器,这 两 个 寄 存器
用来存储温度传感器输出的数据。除此之外,高 速暂存器提供一个直接的温度报
警值寄存器( TH 和 TL),和 一个字节的的配置寄存器。配置寄存器允许用户将温
度的精度设定为 9,10,11 或 12 位。TH,TL 和配置寄存器是非易失性的可擦除
程序寄存器(EEPROM),所以存储的数据在器件掉电时不会消失。
DS18B20通过达拉斯公司独有的单总线协议依靠一个单线端口通讯。当全部器件
经由一个3态端口或者漏极开路端口(DQ引脚在DS18B20上的情况下)与总线连接
的时候,控制线需要连接一个弱上拉电阻。在 这个总线 系统中,微控制器(主 器
件)依靠每个器件独有的64位片序列号辨认总线上的器件和记录总线上的器件地
址。 由于每个装置有一个独特的片序列码,总线可以连接的器件数目事实上是无
限的。单总线协议,包括指令的详细解释和“时序”见单总线系统节。
DS18B20的另一个功能是可以在没有外部电源供电的情况下工作。当总线处于高
电平状态,DQ与上拉电阻连接通过单总线对器件供电。同时处于高电平状态的总
线信号对内部电容(Cpp)充电,在总线处于低电平状态时,该电容提供能量给
器件。这种提供能量的形式被称为“寄生电源”。作为替代选择,DS18B20同样可
以通过VDD引脚连接外部电源供电。
DS18B20方框图 图1
测温操作
DS18B20 的核心功能是它的直接读数字的温度传感器。温度传感器的精度为用户
可编程的 9,10,11 或 12 位,分别以 0.5℃,0.25℃,0.125℃和 0.0625℃增量
递增。在上电状态下默认的精度为 12 位。DS18B20 启动后保持低功耗等待状态;
当需要执行温度测量和 AD 转换时,总线控制器必须发出[44h]命令。在那之后,
产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中,
DS18B20 继续保持等待状态。当 DS18B20 由外部电源供电时,总线控制器在温度
转换指令之后发起“读时序”(见单总线系统节),DS18B20 正在温度转换中返回
0,转换结束返回 1。如果 DS18B20 由寄生电源供电,除非在进入温度转换时总线
被一个强上拉拉高,否则将不会由返回值。寄生电源的总线要求在 DS18B20 供电
节详细解释。
温度寄存器格式 图 2
温度/数据关系 表 2
温度 ℃ 数据输出(二进制) 数据输出(十六进制)
+125 0000 0111 1101 0000 07D0h
+85 0000 0101 0101 0000 0550h
+25.0625 0000 0001 1001 0001 0191h
+10.125 0000 0000 1010 0010 00A2h
+0.5 0000 0000 0000 1000 0008h
0 0000 0000 0000 0000 0000h
-0.5 1111 1111 1111 1000 FFF8h
-10.125 1111 1111 0101 1110 FF5Eh
-25.0625 1111 1110 0110 1111 FE6Eh
-55 1111 1100 1001 0000 FC90h
*上电复位时温度寄存器默认值为+85℃
报警操作信号
DS18B20 完成一次温度转换后,就 拿 温度值与和存储在 TH 和 TL 中一个字节的用
户自定义的报警预置值进行比较。标志位(S)指出温度值的正负:正数 S=0,负
数 S=1。TH 和 TL 寄存器是非易失性的,所以它们在掉电时仍然保存数据。在存
储器节将解释 TH 和 TL 是怎么存入高速暂存器的第 2 和第 3 个字节的。
TH 和 TL 寄存器格式 图 3
当 TH 和 TL 为 8 位寄存器时,4 位温度寄存器中的 11 个位用来和 TH、TL 进行比
较。如果测得的温度高于 TH 或低于 TL,报警条件成立,DS18B20 内部就会置位
一个报警标识。每进行一次测温就对这个标识进行一次更新;因此,如果报警条
件不成立了,在下一次温度转换后报警标识将被移去。
总线控制器通过发出报警搜索命令[ECh]检测总线上所有的 DS18B20 报警标识。
任何置位报警标识的 DS18B20 将响应这条命令,所以总线控制器能精确定位每一
个满足报警条件的 DS18B20。如果报警条件成立,而 TH 或 TL 的设置已经改变,
另一个温度转换将重新确认报警条件。
DS18B20 供电
DS18B20 可以通过从 VDD 引脚接入一个外部电源供电,或 者可以工作于寄生电源
模式,该模式允许 DS18B20 工作于无外部电源需求状态。寄生电源在进行远距离
测温时是非常有用的。寄生电源的控制回路见图 1,当总线为高电平时,寄生电
源由单总线通过 VDD 引脚。这个电路会在总线处于高电平时偷能量,部分汲取的
能量存储在寄生电源储能电容(Cpp)内,在总线处于低电平时释放能量以提供
给器件能量。当 DS18B20 处于寄生电源模式时,VDD 引脚必须接地。
寄生电源模式下,单总线和 Cpp 在大部分操作中能提供充分的满足规定时序和电
压的电流(见直流电特性和交流电特性节)给 DS18B20。然而,当 DS18B20 正在
执行温度转换或从高速暂存器向 EPPROM 传送数据时,工 作 电 流 可 能高达 1.5mA。
这个电流可能会引起连接单总线的弱上拉电阻的不可接受的压降,这 需 要 更 大 的
电 流 ,而此时 Cpp 无法提供。为 了 保证 DS18B20 由充足的供电,当进行温度转换
或拷贝数据到 EEPROM 操作时,必须给单总线提供一个强上拉。用 漏极开路把 I/O
直接拉到电源上就可以实现,见图 4。在发出温度转换指令[44h]或拷贝暂存器
指令[48h]之后,必须在至多 10us 之内把单总线转换到强上拉,并且在温度转换
时序(tconv)或拷贝数据时序(ter=10 ms)必须一直保持为强上拉状态。当强上拉
状态保持时,不允许有其它的动作。
对 DS18B20 供电的另一种传统办法是从 VDD 引脚接入一个外部电源,见图 5。这
样做的好处是单总线上不需要强上拉。而且总线不用在温度转换期间总保持高电
平。
温度高于 100℃时,不推荐使用寄生电源,因为 DS18B20 在这种温度下表现出的
漏电流比较大,通讯可能无法进行。在类似这种温度的情况下,强烈推荐使用
DS18B20 的 VDD 引脚。
对于总线控制器不直到总线上的 DS18B20 是用寄生电源还是用外部电源的情况,
DS18B20 预备了一种信号指示电源的使用意图。总线控制器发出一个 Skip ROM
指令[CCh],然后发出读电源指令[B4h],这条指令发出后,控制器发出读时序,
寄生电源会将总线拉低,而 外部电源会将总线保持为高。如果总线被拉低,总 线
控制器就会知道需要在温度转换期间对单总线提供强上拉。
DS18B20 温度转换期间的强上拉供电 图 4
外部电源给 DS18B20 供电 图 5