DDSS11882200
中文资料
电子驿站
http:// www.ourmpu.com
E-mail: support@ourmpu.com
DS18B20 单总线数字温度计
一、概述
1.1 一般说明
DSl820 数字温度计提供 9 位温度读数,指示器件的温度。
信息经过单线接口送入 DSl820 或从 DSl820 送出,因此从中央处理器到DSl820 仅需连接一条线(和地)。读、写和完
成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。
因为每一个 DSl820 有唯一的系列号(silicon serial number),因此多个DSl820 可以存在于同一条单线总线上。这允许
在许多不同的地方放置温度灵敏器件。此特性的应用范围包括 HVAC环境控制,建筑物、设备或机械内的温度检测,以及
过程监视和控制中的温度检测。
1.2 特性
·独特的单线接口,只需 1 个接口引脚即可通信
·多点(multidrop)能力使分布式温度检测应用得以简化
·不需要外部元件
·可用数据线供电
·不需备份电源
·测量范围从-55℃至+125℃,增量值为 0.5℃。等效的华氏温度范围是-67℉至 257℉,增量值为 0.9℉
·以 9 位数字值方式读出温度
·在 1 秒(典型值)内把温度变换为数字
·用户可定义的,非易失性的温度告警设置
·告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)
·应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统
1.3 引脚排列
引脚说明
GND 地
DQ 数字输入输出
VDD 可选的 VDD
NC 空引脚
DNC 不连接
电子驿站 更多的单片机资料、源程序及单片机教程请登陆网站下载!
http:// www.ourmpu.com E-mail :support@ourmpu.com QQ:451338524 476485321
1
DS18B20 单总线数字温度计
1.4 详细的引脚说明
引 脚
8 脚 SOIC
引 脚
PR35
5
4
3
1
2
3
符 号
GND
DQ
VDD
说 明
地
单线应用的数据输入/输出引脚:漏极开路见“寄生电源”一节
可选 VDD 引脚,有关连接的细节见“寄生电源”一节
二、详细说明
2.1 综述
图 1 的方框图表示 DSl820 的主要部件。DSl820 有三个主要的数据部件:1)64 位激光(lasered)ROM;2)温度灵敏
元件;3)非易失性温度告警触发器 TH 和 TL。器件从单线的通信线取得其电源,在信号线为高电平的时间周期内,把能
量贮存在内部的电容器中,在单信号线为低电平的时间期内断开此电源,直到信号线变为高电平重新接上寄生(电容)电
源为止,作为另一种可供选择的方法,DSl820 也可用外部 5V 电源供电。
DS1820 BLOCK DIAGRAM Figure 1
图 1 DSl820 方框图
与 DSl820 的通信经过一个单线接口。在单线接口情况下,在 ROM 操作未定建立之前不能使用存贮器和控制操作。主
机必须首先提供五种 ROM 操作命令之一:1)Read ROM(读 ROM);2)Match ROM(符合 ROM);3)Search ROM(搜
索 ROM);4)Skip ROM(跳过 ROM);5)Alarm Search(告警搜索)。这些命令对每一器件的 64 位激光 ROM 部分进行
操作。如果在单线上有许多器件,那么可以挑选出一个特定的器件,并给总线上的主机指示存在多少器件及其类型。在成
功地执行了 ROM 操作序列之后,可使用存贮器和控制操作,然后主机可以提供六种存贮器和控制操作命令之一。
一个控制操作命令指示 DSl820 完成温度测量。该测量的结果将放入 DSl820 的高速暂存(便笺式)存贮器(Scratchpad
memory),通过发出读暂存存储器内容的存储器操作命令可以读出此结果。每一温度告警触发器 TH 和孔构成一个字节的
EEPROM。如果不对 DSl820 施加告警搜索命令,这些寄存器可用作通用用户存储器。使用存储器操作命令可以写 TH 和
TL。对这些寄存器的读访问通过便笺存储器。所有数据均以最低有效位在前的方式被读写。
2.2 寄生电源(parasite power)
方框图(图 1)示出寄生电源电路。当 I/0 或 VDD 引脚为高电平时,这个电路便“取”得电源。只要符合指定的定时
和电压要求,I/O 将提供足够的功率(标题为“单总线系统”一节)。寄生电源的优点是双重的:1)利用此引脚,远程温
度检测无需本地电源,2)缺少正常电源条件下也可以读 ROM。
为了使 DSl820 能完成准确的温度变换,当温度变换发生时,I/0 线上必须提供足够的功率。因为DSl820 的工作电流
高达 1mA,5kΩ的上拉电阻将使 I/0 线没有足够的驱动能力。如果几个 DSl820 在同一条 I/0 线上而且企图同时变换,
电子驿站 更多的单片机资料、源程序及单片机教程请登陆网站下载!
2
http:// www.ourmpu.com E-mail :support@ourmpu.com QQ:451338524 476485321
DS18B20 单总线数字温度计
那么这一问题将变得特别尖锐。
有两种方法确保 DSl820 在其有效变换期内得到足够的电源电流。第一种方法是发生温度变换时,在 I/0 线上提供一
强的上拉。如图 2 所示,通过使用一个 MOSFET 把 I/0 线直接拉到电源可达到这一点。当使用寄生电源方式时 VDD 引脚
必须连接到地。
向 DSl820 供电的另外一种方法是通过使用连接到 VDD 引脚的外部电源,如图 3 所示。这种方法的优点是在 I/0 线上
不要求强的上拉。总线上主机不需向上连接便在温度变换期间使线保持高电平。这就允许在变换时间内其它数据在单线上
传送。此外,在单线总线上可以放置任何数目的 DSl820,而且如果它们都使用外部电源,那么通过发出跳过(Skip)ROM
命令和接着发出变换(Convert)T 命令,可以同时完成温度变换。注意只要外部电源处于工作状态,GND(地)引脚不可
悬空。
图 2 强上拉在温度变换期内向 DSl820 供电
在总线上主机不知道总线上 DSl820 是寄生电源供电还是外部 VDD 供电的情况下,在 DSl820 内采取了措施来通知采用
的供电方案。总线上主机通过发出跳过(Skip)ROM 的操作约定,然后发出读电源命令,可以决定是否有需要强上拉的
DSl820 在总线上。在此命令发出后,主机接着发出读时间片。如果是寄生供电,DSl820 将在单线总线上送回“0”;如果
由 VDD 脚供电,它将送回“1”。如果主机接收到一个“0”,它知道它必须在温度变换期间在 I/0 线上供一个强的上拉。
有关此命令约定的详细说明,见“存贮器命令功能”一节。
2.3 运用 — 测量温度
DSl820 通过使用在板(on-board)温度测量专利技术来测量温度。温度测量电路的方框图见图 4 所示。
图 3 使用 VDD 供温度变换所需电流
电子驿站 更多的单片机资料、源程序及单片机教程请登陆网站下载!
http:// www.ourmpu.com E-mail :support@ourmpu.com QQ:451338524 476485321
3
DS18B20 单总线数字温度计
图 4 温度测量电路
DSl820 通过门开通期间内低温度系数振荡器经历的时钟周期个数计数来测量温度,而门开通期由高温度系数振荡器决
定。计数器予置对应于-55℃的基数,如果在门开通期结束前计数器达到零,那么温度寄存器也被予置到-55℃的数值增量,
指示温度高于-55℃。
同时,计数器用斜率累加器电路所决定的值进行予置。为了对遵循抛物线规律的振荡器温度特性进行补偿,这种电路
是必需的。时钟再次使计数器计值至它达到零。如果门开通时间仍未结束,那么此过程再次重复。
斜率累加器用于补偿振荡器温度特性的非线性,以产生高分辩率的温度测量。通过改变温度每升高一度,计数器必须
经历的计数个数来实行补偿。因此,为了获得所需的分辩率,计数器的数值以及在给定温度处每一摄氏度的计数个数(斜
率累加器的值)二者都必须知道。
此计算在 DSl820 内部完成以提供 0.5℃的分辩率。温度读数以16 位、符号扩展的二进制补码读数形式提供。表 l 说明
输出数据对测量温度的关系。数据在单线接口上串行发送。DSl820 可以以 0.5℃的增量值,在 0.5℃至+125℃的范围内测量
温度。对于应用华氏温度的场合,必须使用查找表或变换系数。
注意,在 DSl820 中,温度是以 1/2℃ LSB (最低有效位)形式表示时,产生以下 9 位格式:
MSB(最高有效位) (最低有效位)LSB
最高有效(符号)位被复制到存储器内两字节的温度寄存器中较高 MSB 的所有位,这种“符号扩展”产生了如表 1 所示
的 16 位温度读数。
以下的过程可以获得较高的分辩率。首先,读温度,并从读得的值截去0.5℃位(最低有效位)。这个值便是 TEMP_READ。
然后可以读留在计数器内的值。此值是门开通期停止之后计数剩余
TEMPRATURE(温度)=TEMP_READ-0.25+
(
COUNT
_
_
C
PER
COUNT
COUNT
_
-
C
PER
_
_
REMAIN
)
电子驿站 更多的单片机资料、源程序及单片机教程请登陆网站下载!
http:// www.ourmpu.com E-mail :support@ourmpu.com QQ:451338524 476485321
4
DS18B20 单总线数字温度计
(COUNT_REMAIN)。所需的最后一个数值是在该温度处每一摄氏度的计数个数(COUNT_PER_C)。于是,用户可以使
用下式计算实际温度:
表 1 温度/数据关系
温度
+125℃
+25℃
+1/2℃
+0℃
-1/2℃
-25℃
-55℃
数字输出(二进制)
00000000 11111010
00000000 00110010
00000000 00000001
00000000 00000000
11111111 11111111
11111111 11001110
11111111 10010010
数字输出(十六进制)
00FAh
0032h
000lh
0000h
FFFFh
FFCEh
FF92h
2.4 运用 — 告警信号
在 DSl820 完成温度变换之后,温度值与贮存在 TH 和 TL 内的触发值相比较。因为这些寄存器仅仅是 8 位,所以 0.5
℃位在比较时被忽略。TH 或 TL 的最高有较位直接对应于 16 位温度寄存器的符号位。如果温度测量的结果高于 TH 或低
于 TL,那么器件内告警标志将置位。每次温度测量更新此标志。只要告警标志置位,DSl820 将对告警搜索命令作出响应。
这允许并联连接许多 DSl820,同时进行温度测量。如果某处温度超过极限,那么可以识别出正在告警的器件并立即将其读
出而不必读出非告警的器件。
2.5 64 位激光 ROM
每一 DSl820 包括一个唯一的 64 位长的 ROM 编码。开绐的 8 位是单线产品系列编码(DSl820 编码是 10h)。接着的
48 位是唯一的系列号。最后的 8 位是开始 56 位 CRC(见图 5)。64 位 ROM 和 ROM 操作控制部分允许 DSl820 作为一个
单线器件工作并遵循“单线总线系统”一节中所详述的单线协议。直到 ROM 操作协议被满足,DSl820 控制部分的功能是
不可访问的。此协议在 ROM 操作协议流程图(图 6)中叙述。单线总线主机必须首先操作五种 ROM 操作命令之一:1)
Read ROM(读 ROM),2)Match ROM(匹配 ROM),3)Search ROM(搜索 ROM),4)Skip ROM(跳过 ROM),或5)
Alarm Search (告警搜索)。在成功地执行了 ROM 操作序列之后,,DSl820 特定的功能便可访问,然后总线上主机可提供
六个存贮器和控制功能命令之一。
图 5 64 位激光 ROM
8 位 CRC 编号
8 位产品系列编码
MSB LSB MSB LSB MSB LSB
48 位序列号
(最高有效位) (最低有效位)
电子驿站 更多的单片机资料、源程序及单片机教程请登陆网站下载!
http:// www.ourmpu.com E-mail :support@ourmpu.com QQ:451338524 476485321
5
DS18B20 单总线数字温度计
图 6 ROM 操作流程图
2.6 CRC 产生
DSl820 有一存贮在 64 位 ROM 的最高有效字节内的 8 位 CRC。总线上的主机可以根据 64 位 ROM 的前 56 位计算机
CRC 的值并把它与存贮在 DSl820 内的值进行比较以决定 ROM 的数据是否已被主机正确地接收。CRC 的等效多项式函数
为:
CRC=X8+X5+X4+1
电子驿站 更多的单片机资料、源程序及单片机教程请登陆网站下载!
http:// www.ourmpu.com E-mail :support@ourmpu.com QQ:451338524 476485321
6
DS18B20 单总线数字温度计
DSl820 也利用与上述相同的多项式函数产生一个 8 位 CRC 值并把此值提供给总线的主机以确认数据字节的传送。在
使用 CRC 来确认数据传送的每一种情况中,总线主机必须使用上面给出的多项式函数计算 CRC 的值并把计算所得的值或
者与存贮在 DSl820 的 64 位 ROM 部分中的 8 位 CRC 值(ROM 读数),或者与 DSl820 中计算得到的 8 位 CRC 值(在读
暂存存贮器中时,它作为第九个字节被读出),进行比较。CRC 值的比较和是否继续操作都由总线主机来决定。当存贮在
DSl820 内或由 DSl820 计算得到的 CRC 值与总线主机产生的值不相符合时,在 DSl820 内没有电路来阻止命令序列的继续
执行。
总线 CRC 可以使用如图 7 所示由一个移位寄存器和“异或”(XOR)门组成的多项式产生器来产生。其它有关 Dallas
公司单线循环冗余校验的信息可参见标题为“理解和使用 Dallas 半导体公司接触式存贮器产品”的应用注释。
移位寄存器的所有位被初始化为零。然后从产品系列编码的最低有效位开始,每次移入一位。当产品系列编码的 8 位
移入以后,接着移入序列号。在序列号的第 48 位进入之后,移位寄存器便包含了 CRC 值。移入 CRC 的 8 位应该使移位
寄存器返回至全零。
图 7 单线 CRC 编码
2.7 存贮器
DSl820 的存贮器如图所示那样被组织。存贮器由一个高速暂存(便笺式)RAM 和一个非易失性,电可擦除(E2)RAM
组成,后者存贮高温度和低温度和触发器 TH 和 TL。暂存存贮器有助于在单线通信时确保数据的完整性。数据首先写入暂
存存贮器,在那里它可以被读回。当数据被校验之后,复制暂存存贮器的命令把数据传送到非易失性(E2)RAM。这一过
程确保了更改存贮器时数据的完整性。
暂存器 字节 E2RAM
温度 LSB
温度 MSB
TH/ 用户字节 1
TL/ 用户字节 2
保留
保留
COUNT REMAIN
COUNT PER℃
CRC
0
1
2
3
4
5
6
7
8
TH/ 用户字节 1
TL/ 用户字节 2
图 8 DSl820 存贮器映象图
电子驿站 更多的单片机资料、源程序及单片机教程请登陆网站下载!
http:// www.ourmpu.com E-mail :support@ourmpu.com QQ:451338524 476485321
7