您的位置 首页 分销

DS18B20作业原理及时序

DS18B20工作原理及时序DS18B20原理与分析DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电

DS18B20作业原理时序

  • DS18B20原理与剖析

DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改善型智能温度传感器。与传统的热敏电阻比较,他能够直接读出被测温度并且可根据实践要求经过简略的编程完结9~12位的数字值读数方法。能够别离在93.75 ms和750 ms内完结9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需求一根口线(单线接口)读写,温度改换功率来源于数据总线,总线自身也能够向所挂接的DS18B20供电,而无需额定电源。因而运用DS18B20可使体系结构更趋简略,可靠性更高。他在测温精度、转化时刻、传输间隔、分辨率等方面较DS1820有了很大的改善,给用户带来了更便利的运用和更令人满意的作用。

1.DS18B20简介

(1)共同的单线接口方法:DS18B20与微处理器衔接时仅需求一条口线即可完结微处理器与DS18B20的双向通讯。

(2)在运用中不需求任何外围元件。

(3)可用数据线供电,电压规模:+3.0~ +5.5 V。

(4)测温规模:-55 ~+125 ℃。固有测温分辨率为0.5 ℃。

(5)经过编程可完结9~12位的数字读数方法。

(6)用户可自设定非易失性的报警上下限值。

(7)支撑多点组网功用,多个DS18B20能够并联在专一的三线上,完结多点测温。

(8)负压特性,电源极性接反时,温度计不会因发热而焚毁,但不能正常作业。

DS18B20的测温原理

DS18B20的测温原理如图2所示,图中低温度系数晶振的振动频率受温度的影响很小〔1〕,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度改动其震动频率显着改动,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门翻开时,DS18B20就对低温度系数振动器产生的时钟脉冲后进行计数,从而完结温度丈量。计数门的敞开时刻由高温度系数振动器来决议,每次丈量前,首先将-55 ℃所对应的基数别离置入减法计数器1和温度存放器中,减法计数器1和温度存放器被预置在 -55 ℃ 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度存放器的值将加1,减法计数器1的预置将从头被装入,减法计数器1从头开端对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,间断温度存放器值的累加,此刻温度存放器中的数值即为所测温度。图2中的斜率累加器用于补偿和批改测温进程中的非线性,其输出用于批改减法计数器的预置值,只需计数门仍未封闭就重复上述进程,直至温度存放器值到达被测温度值,这便是DS18B20的测温原理。

别的,因为DS18B20单线通讯功用是分时完结的,他有严厉的时隙概念,因而读写时序很重要。体系对DS18B20的各种操作有必要按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功用指令→发存储器操作指令→处理数据。各种操作的时序图与DS1820相同,可参看文献〔2〕。

DS18B20作业进程及时序

DS18B20内部的低温度系数振动器是一个振动频率随温度改动很小的振动器,为计数器1供给一频率安稳的计数脉冲。

高温度系数振动器是一个振动频率对温度很灵敏的振动器,为计数器2供给一个频率随温度改动的计数脉冲。

初始时,温度存放器被预置成-55℃,每逢计数器1从预置数开端减计数到0时,温度存放器中存放的温度值就添加1℃,这个进程重复进行,直到计数器2计数到0时便间断。

初始时,计数器1预置的是与-55℃相对应的一个预置值。今后计数器1每一个循环的预置数都由斜率累加器供给。为了补偿振动器温度特性的非线性性,斜率累加器供给的预置数也随温度相应改动。计数器1的预置数也便是在给定温度处使温度存放器存放值添加1℃计数器所需求的计数个数。

DS18B20内部的比较器以四舍五入的量化方法确认温度存放器的最低有用位。在计数器2间断计数后,比较器将计数器1中的计数剩余值转化为温度值后与0.25℃进行比较,若低于0.25℃,温度存放器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度存放器的最低位就进位然后置0。这样,经过比较后所得的温度存放器的值便是终究读取的温度值了,其最终位代表0.5℃,四舍五入最大量化差错为±1/2LSB,即0.25℃。

温度存放器中的温度值以9位数据格式表明,最高位为符号位,其他8位以二进制补码方法表明温度值。测温完毕时,这9位数据转存到暂存存储器的前两个字节中,符号位占用榜首字节,8位温度数据占有第二字节。

DS18B20丈量温度时运用特有的温度丈量技能。DS18B20内部的低温度系数振动器能产生安稳的频率信号;相同的,高温度系数振动器则将被测温度转化成频率信号。当计数门翻开时,DS18B20进行计数,计数门注册时刻由高温度系数振动器决议。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。丈量成果存入温度存放器中。一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最终以16位补码方法读出。

DS18B20作业进程一般遵从以下协议:初始化——ROM操作指令——存储器操作指令——处理数据

① 初始化

单总线上的一切处理均从初始化序列开端。初始化序列包含总线主机宣布一复位脉冲,接着由隶属器材送出存在脉冲。存在脉冲让总线操控器知道DS1820 在总线上且已准备好操作。

② ROM操作指令

一旦总线主机检测到隶属器材的存在,它便能够宣布器材ROM操作指令之一。一切ROM操作指令均为8位长。这些指令列表如下:

Read ROM(读ROM)[33h]

此指令答应总线主机读DS18B20的8位产品系列编码,仅有的48位序列号,以及8位的CRC。此指令只能在总线上仅有一个DS18B20的情况下能够运用。假如总线上存在多于一个的隶属器材,那么当一切从片妄图一起发送时将产生数据抵触的现象(漏极开路会产生线与的成果)。

Match ROM( 契合ROM)[55h]

此指令后继以64位的ROM数据序列,答应总线主机对多点总线上特定的DS18B20寻址。只需与64位ROM序列严厉相符的DS18B20才能对后继的存贮器操作指令作出呼应。一切与64位ROM序列不符的从片将等候复位脉冲。此指令在总线上有单个或多个器材的情况下均可运用。

Skip ROM( 越过ROM )[CCh]

在单点总线体系中,此指令经过答应总线主机不供给64位ROM编码而拜访存储器操作来节省时刻。假如在总线上存在多于一个的隶属器材并且在Skip ROM指令之后宣布读指令,那么因为多个从片一起发送数据,会在总线上产生数据抵触(漏极开路下拉会产生线与的作用)。

Search ROM( 查找ROM)[F0h]

当体系开端作业时,总线主机或许不知道单线总线上的器材个数或许不知道其64位ROM编码。查找ROM指令答应总线操控器用排除法辨认总线上的一切从机的64位编码。

Alarm Search(告警查找)[ECh]

此指令的流程与查找ROM指令相同。可是,仅在最近一次温度丈量呈现告警的情况下,DS18B20才对此指令作出呼应。告警的条件界说为温度高于TH 或低于TL。只需DS18B20一上电,告警条件就坚持在设置状况,直到另一次温度丈量显示出非告警值或许改动TH或TL的设置,使得丈量值再一次坐落答应的规模之内。贮存在EEPROM内的触发器值用于告警。

③ 存储器操作指令

Write Scratchpad(写暂存存储器)[4Eh]

这个指令向DS18B20的暂存器中写入数据,开端方位在地址2。接下来写入的两个字节将被存到暂存器中的地址方位2和3。能够在任何时刻宣布复位指令来间断写入。

Read Scratchpad(读暂存存储器)[BEh]

这个指令读取暂存器的内容。读取将从字节0开端,一向进行下去,直到第9(字节8,CRC)字节读完。假如不想读完一切字节,操控器能够在任何时刻宣布复位指令来间断读取。

Copy Scratchpad(仿制暂存存储器)[48h]

这条指令把暂存器的内容复制到DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里。假如总线操控器在这条指令之后跟着宣布读时刻隙,而DS18B20又正在忙于把暂存器复制到E2存储器,DS18B20就会输出一个“0”,假如复制完毕的话,DS18B20 则输出“1”。假如运用寄生电源,总线操控器有必要在这条指令宣布后当即起动强上拉并最少坚持10ms。

Convert T(温度改换)[44h]

这条指令发动一次温度转化而无需其他数据。温度转化指令被执行,然后DS18B20坚持等候状况。假如总线操控器在这条指令之后跟着宣布读时刻隙,而DS18B20又忙于做时刻转化的话,DS18B20将在总线上输出“0”,若温度转化完结,则输出“1”。假如运用寄生电源,总线操控器有必要在宣布这条指令后当即起动强上拉,并坚持500ms。

Recall E2(从头调整E2)[B8h]

这条指令把贮存在E2中温度触发器的值从头调至暂存存储器。这种从头调出的操作在对DS18B20上电时也主动产生,因而只需器材一上电,暂存存储器内就有了有用的数据。在这条指令宣布之后,关于所宣布的榜首个读数据时刻片,器材会输出温度转化忙的标识:“0”=忙,“1”=准备就绪。

Read Power Supply(读电源)[B4h]

关于在此指令发送至DS18B20之后所宣布的榜首读数据的时刻片,器材都会给出其电源方法的信号:“0”=寄生电源供电,“1”=外部电源供电。

④ 处理数据

DS18B20的高速暂存存储器由9个字节组成,其分配如图3所示。当温度转化指令发布后,经转化所得的温度值以二字节补码方法存放在高速暂存存储器的第0和第1个字节。单片机可经过单线接口读到该数据,读取时低位在前,高位在后。

图3 高速暂存存储器分配图

 

温度/0C

二进制表明

十六进制表明

符号位(5位)

数据位(11位)

+125

0 0 0 0 0

1

1

1

1

1

0

1

0

0

0

0

07D0H

+25.0625

0 0 0 0 0

0

0

1

1

0

0

1

0

0

0

1

0191H

+10.125

0 0 0 0 0

0

0

0

1

0

1

0

0

0

1

0

00A2H

+0.5

0 0 0 0 0

0

0

0

0

0

0

0

1

0

0

0

0008H

0

0 0 0 0 0

0

0

0

0

0

0

0

0

0

0

0

0000H

-0.5

1 1 1 1 1

1

1

1

1

1

1

1

1

0

0

0

FFF8H

-10.125

1 1 1 1 1

1

1

1

0

1

0

1

1

1

1

0

FF5EH

-25.625

1 1 1 1 1

1

1

0

0

1

1

0

1

1

1

1

FE6FH

 

 

 

-55

1 1 1 1 1

1

0

0

1

0

0

1

0

0

0

0

FC90H

DS18B20温度数据表

上表是DS18B20温度收集转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,假如测得的温度大于或等于0,这5位为0,只需将测到的数值乘于0.0625即可得到实践温度;假如温度小于0,这5位为1,测到的数值需求取反加1再乘于0.0625即可得到实践温度。

温度转化核算方法举例:

例如当DS18B20收集到+125℃的实践温度后,输出为07D0H,则:

实践温度=07D0H╳0.0625=2000╳0.0625=1250C。

例如当DS18B20收集到-55℃的实践温度后,输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作为核算),则:

实践温度=370H╳0.0625=880╳0.0625=550C。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/256876.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部