蓝桥杯模块DS18B20温度传感器Part_1
发布日期:2021-07-01 03:12:40 浏览次数:2 分类:技术文章

本文共 12569 字,大约阅读时间需要 41 分钟。

   九层妖塔 起于垒土

在这里插入图片描述

蓝桥杯模块DS18B20温度传感器Part_1

一、DS18B20

(一)、原理图

1、原理图

在这里插入图片描述

2、引脚说明

引脚 Function 说明
VDD Optional VDD. VDD must be grounded for operation in parasite power mode. 可选VDD。 VDD必须接地才能在寄生电源模式下运行。
GND Ground
DQ Data Input/Output. Open-drain 1-Wire interface pin. Also provides power to the device when used in parasite power mode. 数据输入/输出。漏极开路1-Wire接口引脚。 在寄生电源中使用时也为设备供电 模式。

(二)、概览

1、DS18B20框图

在这里插入图片描述

2、64位ROM

 ●64位ROM存储着设备的唯一序列号,用于识别同一单线上连接的多个DS18B20。

3、暂存器

 ●暂存器包含2个字节的温度寄存器,用于存储温度传感器的数字输出。

 ●the scratchpad provides access to the 1-byte upper and lower alarm trigger registers (TH and TL) and the 1-byte configuration register.(暂存器提供对1字节上下报警触发寄存器(TH和TL)和1字节配置寄存器的访问。)
 ●TH,TL和配置寄存器均为非易失性(EEPROM),因此在设备掉电时它们将保留数据。

4、控制线

 ●DS18B20使用Maxim专有的1-Wire总线协议,该协议通过一个控制信号实现总线通信。

 ● 控制线需要一个弱上拉电阻,因为所有设备都通过一个三态端口或漏极开路端口(在DS18B20中为DQ引脚)连接到总线。
 ● 在此总线系统中,微处理器(主设备)使用每个设备的唯一64位代码识别并寻址总线上的设备。 因为每个设备都有唯一的代码,所以一条总线上可寻址的设备数量实际上是无限的。

5、寄生电源

 ● DS18B20的另一个功能是无需外部电源即可运行。当总线为高电平时,DQ引脚通过1-Wire上拉电阻提供电源。处于高电平状态的总线信号对内部电容器(CPP)充电,当总线为低电平时,该电容器会为设备供电。 这种从1-Wire总线获取电源的方法称为“寄生电源”。作为替代方案,DS18B20也可以由VDD上的外部电源供电。

(三)、测量温度

1、分辨率

 用户可以将温度传感器的分辨率配置为9、10、11或12位,分别对应于0.5°C,0.25°C,0.125°C和0.0625°C的增量。上电时的默认分辨率为12位。

2、温度转换指令-Convert T [44h]

 ●DS18B20在低功耗空闲状态下上电。要启动温度测量和模数转换,主机必须发出Convert T [44h]命令。转换后,产生的温度数据存储在暂存器的2字节温度寄存器中,DS18B20返回其空闲状态。

 ●如果DS18B20由外部电源供电,则主机可以在Convert T命令后发出“读取时序”,如果DS18B20正在温度转换过程中则返回0来响应,若转换完成则返回1。如果DS18B20由寄生电源供电,则*****。

3、温度数据的存储

 ●温度数据以16位符号扩展的二进制补码形式存储在温度寄存器中。符号位(S)指示温度是正温度还是负温度:对于正数S = 0和负数S =1。如果DS18B20配置为12位分辨率,则温度寄存器中的所有位将包含有效数据 。对于11位分辨率,未定义位0(bit 0)。对于10位分辨率,未定义位1(bit 1)和位0(bit 0),对于9位分辨率,未定义位2、1和0。

 ●温度寄存器格式:
在这里插入图片描述
 ●12位分辨率转换的数字输出数据和相应温度读数的示例:
在这里插入图片描述
 The power-on reset value of the temperature register is +85°C.(温度寄存器的上电复位值为+ 85°C)

(四)、警报信号

1、警报触发值的存储

1个字节的用户定义的二进制补码警报触发值存储在TH和TL寄存器中,符号位(S)指示该值是正数还是负数负数:对于正数S = 0,对于负数S =1。TH和TL寄存器为非易失性(EEPROM),因此在掉电时它们将保留数据。可以通过暂存器的字节2和3访问TH和TL。由于TH和TL是8位寄存器,因此TH和TL比较中仅使用温度寄存器的11至4位

2、警报的触发

DS18B20执行完一次温度转换后,将温度值与存储在TH和TL寄存器中1个字节的用户定义的二进制补码警报触发值进行比较。如果测得的温度小于或等于TL或大于或等于TH,则存在警报条件,并且DS18B20内部会置位一个警报标志。每次温度测量后,此标志都会更新。因此,如果警报条件消失,则在下一次温度转换后,该标志将被移去。

3、主机的警报搜索

主设备可以通过发出警报搜索[ECh]命令来检查总线上所有DS18B20的警报标志的状态。 任何置位了警报标志的DS18B20都会响应该命令,因此主机可以准确确定哪些DS18B20遇到了警报情况。 如果存在警报条件,并且TH或TL设置已更改,则应进行另一次温度转换以验证警报条件。

4、TH和TL寄存器格式

在这里插入图片描述

(五)、DS18B20供电

1、寄生电源

 ●DS18B20可以通过VDD引脚上的外部电源供电,或者可以在“寄生电源”模式下工作,这使DS18B20无需本地外部电源即可工作。寄生电源对于需要远程温度感测或空间受限的应用非常有用。图1(DS18B20框图)显示了DS18B20的寄生电源控制电路,当总线为高电平时,该电路通过DQ引脚从1-Wire总线“窃取”电源。当总线为高电平时,被盗的电荷为DS18B20供电,并且一些电荷存储在寄生功率电容器(CPP)上,以在总线为低电平时提供电能。在寄生电源模式下使用DS18B20时,必须将VDD引脚接地。在寄生电源模式下,只要满足规定的时序和电压要求(参见直流电气特性和交流电气特性),1-Wire总线和CPP就可以为DS18B20提供足够的电流以进行大多数操作。

 ● 但是,当DS18B20执行温度转换或将数据从暂存器传输到EEPROM时,工作电流可能高达1.5mA。该电流可能会引起连接单总线的弱上拉电阻不可接受的电压降,并且电流大于CPP所能提供的电流。
 ●为确保DS18B20具有足够的电源电流,无论何时进行温度转换或将数据从暂存器复制到EEPROM,都必须在1-Wire总线上提供强上拉。这可以通过使用漏极开路将总线直接拉至电源来实现,如Figure 4所示。发出 Convert T[44h](转换温度命令) Copy Scratchpad[48h](复制暂存器命令)后,必须在10µs(最大值)内将单总线切换到强上拉。并且在温度转换时序( t C O N V t_{CONV} tCONV)或复制数据时序( t W R = 10 m s t_{WR}=10ms tWR=10ms)必须一直保持强上拉状态。当强上拉功能保持时,单总线上不能进行其他活动。

2、外部电源供电

 ●DS18B20也可以通过将外部电源连接到VDD引脚的常规方法来供电,如图5所示。这种方法的优点是单总线不需要强上拉,并且总线不用在温度转换期间总保持高电平。建议不要在100°C以上的温度下使用寄生电源,因为DS18B20在这些温度下可能存在较高的漏电流,因此可能无法维持通信。对于可能出现这种温度的应用,强烈建议使用外部电源为DS18B20供电。

3、总线主机对供电模式的判断

 ●在某些情况下,总线主机可能不知道总线上的DS18B20是寄生虫供电还是由外部电源供电。 主机需要此信息来确定在温度转换期间是否应使用强上拉。 为了获得此信息,主机可以发出Skip ROM [CCh](跳过ROM命令),然后发出Read Power Supply [B4h] (读电源模式命令),这条指令发出后,控制器再发出读时序。 在读取时序期间,寄生供电的DS18B20将使总线拉低,而外部供电的DS18B20将使总线保持高电平。 如果总线被拉低,主机知道在温度转换期间它必须在单总线上提供强上拉。

4、示意图

 ●Figure 4.在温度转换期间寄生电源供电DS18B20

 ●Figure 5.用外部电源为DS18B20供电
在这里插入图片描述

(六)、64位(激)光刻只读存储器 代码

 ●每个DS18B20都包含一个唯一的64位代码,该代码存储在ROM中。 ROM代码的最低8位包含DS18B20单线的系列码28h。 接下来的48位包含唯一序列号。 最高8位包含一个循环冗余校验码(CRC校验码),该字节是根据ROM代码的前56位(48位序列号+8位系列码)计算得出的。

在这里插入图片描述

(七)、存储器

1、存储器构成

 ●DS18B20存储器由SRAM暂存器和一个用于存储高低警报触发值TH和TL寄存器配置寄存器的非易失性EEPROM组成。如果不使用DS18B20警报功能,则TH和TL寄存器可用作普通存储器。

 ●暂存器的字节0和字节1分别包含温度寄存器的LSB和MSB。 这些字节是只读的。 字节2和3提供对TH和TL寄存器的访问。 字节4包含配置寄存器数据。 字节5、6和7保留给设备内部使用,不能被覆盖。 暂存器的字节8是只读的,其中包含暂存器的字节0到7的CRC代码。

2、存储器的内部数据传输&与主机的数据传输

 ●使用Write Scratchpad [4Eh](写暂存器命令)将数据写入暂存器的字节2、3和4。 数据必须以位2为最低有效位开始传输到DS18B20。为了完整的验证数据,可在写入数据后读取暂存器(使用Read Scratchpad [BEh](读暂存器命令)。 读取暂存器时,数据从单总线以位0为最低有效位开始传输。要将TH,TL和配置数据从暂存器传输到EEPROM,主机必须发出Copy Scratchpad [48h](复制暂存器命令)

 ●当设备掉电时,EEPROM寄存器中的数据将保留; 上电时,EEPROM数据被重新加载到相应的暂存器位置。 也可以使用Recall E2 [B8h](调回EEPROM命令) 随时将数据从EEPROM重新加载到暂存器。 主机可以在Recall E2命令之后发出读取时序,若DS18B20正在进行重调用时则返回0,若完成重调用时返回1来指示重调用的状态。

 ●DS18B20存储器映射

在这里插入图片描述

(八)、配置寄存器

 ●暂存器的字节4(Byte 4)包含配置寄存器,其配置如Figure 8所示。用户可以在其中使用R0和R1位设置DS18B20的转换分辨率。这些位的上电默认值为R0 = 1和R1 = 1(12位分辨率)。请注意,分辨率和转换时间之间存在直接的关系。配置寄存器中的位7和位0至4保留给设备内部使用,不能被覆盖(禁止写入数据);在读回数据时,bit 0-bit 4为1,bit 7为0。

Figure 8. Configuration Register
Table 2. 温度计分辨率配置
在这里插入图片描述

(九)、CRC 发生器

 ●CRC字节是DS18B20 64位ROM代码的一部分,存储在暂存器的第9个字节(Byte 8)中。CRC码由ROM代码的前56位计算得出,并包含在ROM的最高有效字节中。CRC是根据存储在暂存器中的数据计算得到,因此当暂存器中的数据更改时,它也会更改。

 ●从DS18B20读取数据时,CRC为总线主机提供了一种数据验证方法。为了验证是否已正确读取数据,总线主机必须从接收到的数据中重新计算CRC,然后将此值与存储在DS18B20的64位ROM中CRC(for ROM reads用于ROM读取)或暂存器CRC(for scratchpad reads用于暂存器读取)进行比较。如果计算出的CRC与读取的CRC相匹配,则说明已正确接收数据。比较CRC值和是否继续操作的决定完全由总线主机决定。如果DS18B20 CRC(ROM或暂存器)与总线主机产生的值不匹配,则DS18B20内部没有电路可阻止命令序列执行。
 ●CRC(ROM或暂存器)的等效多项式函数为:
C R C = X 8 + X 5 + X 4 + 1 CRC = X^8 + X^5 + X^4 + 1 CRC=X8+X5+X4+1
 ●总线主机可以重新计算CRC,并使用Figure 9所示的多项式生成器将其与DS18B20的CRC值进行比较。该电路由移位寄存器和XOR门组成,并且移位寄存器的各位被初始化为0。 从ROM代码的最低有效位或暂存器中的最低有效位即字节0(Byte 0),则一次应将一位移入移位寄存器。 从ROM移入第56位或从暂存器移入最高有效位Byte 7后,多项式生成器将包含重新计算的CRC。 接下来,必须将DS18B20的8位ROM代码或暂存器CRC移入电路。 此时,如果重新计算的CRC正确,则移位寄存器将包含全0。
在这里插入图片描述

二、单总线系统(1-WIRE BUS SYSTEM)

 ●单总线系统使用单个总线主机来控制一个或多个从机。 DS18B20始终是从机。 当总线上只有一个从机时,该系统称为“单点”系统; 如果总线上有多个从机,则系统为“多点”。

 ●所有数据和命令的传输都是首先从最低有效位通过单总线。
 ●单总线系统的讨论分为以下三个主题:硬件配置,操作顺序和单总线信号(信号类型和时序)

(一)、硬件配置

1、一条数据线

 ●单总线根据定义仅具有一条数据线。 每个设备(主设备或从设备)都通过漏极开路或三态端口连接到数据线。 这样一来,每台设备在设备未传输数据时,该总线可供其他设备使用。 DS18B20的单端口(DQ引脚)是漏极开路的,其内部电路如Figure 10所示。

2、外部上拉电阻

 ●单总线需要一个大约5kΩ的外部上拉电阻;因此,单总线的空闲状态为高电平

3、执行过程的暂停与恢复

 ●如果出于某种原因需要暂停某一执行过程,如果想要恢复该执行过程的话,则总线必须保持空闲状态。

 ●只要单总线在恢复期间处于非活动(高电平)状态,位与位之间的恢复时间就会无限长。

4、从机的复位

 ●如果总线保持低电平的时间超过480µs,总线上的所有器件将被复位。

5、Figure 10. Hardware Configuration

在这里插入图片描述

(二)、操作顺序

 ●访问DS18B20的操作顺序如下:

  步骤1:初始化
  步骤2:ROM命令(随后进行任何必需的数据交换)
  步骤3:功能命令(随后进行任何必需的数据交换)
 ●每次访问DS18B20时都必须遵循此操作顺序,这一点非常重要,因为如果操作顺序中的任何步骤丢失或顺序混乱,DS18B20都不会响应。
该规则的例外是Search ROM[F0h](搜索ROM命令) Alarm Search[ECh](搜索报警命令) 。 发出这两个ROM命令中的任何一个后,主机必须按顺序返回步骤1。

1、 步骤1:初始化

 ●单总线上的所有操作均以初始化序列开始。 初始化序列包括总线主机发送的复位脉冲,然后是从机发送的存在脉冲。 存在脉冲使总线主机知道从机(例如DS18B20)在总线上并准备就绪。

2、 步骤2:ROM命令

 ●总线主机检测到存在脉冲后,可以发出ROM命令。 这些命令在每个从机的唯一64位ROM代码上运行,并且如果单总线上有很多器件,则允许主机选择特定器件。 这些命令还允许主机确定总线上有多少个设备和什么类型的设备,或者是否有设备遇到警报情况。 ROM命令有五个,每个命令的长度为8位。 主设备在发出DS18B20功能命令之前必须发出适当的ROM命令。

①Search ROM[F0h](搜索ROM命令)

 ●最初启动系统电源时(当系统上电初始化时),主机必须通过识别总线上所有从机的ROM代码,来使主机可以确定从机的数量及其设备类型。

 ●主机通过消除过程来得到ROM代码,该过程要求主机执行Search ROM周期(即Search ROM命令后进行数据交换)所需的次数,以识别所有从设备。(The master learns the ROM codes through a process of elimination that requires the master to perform a Search ROM cycle (i.e., Search ROM command followed by data exchange) as many times as necessary to identify all of the slave devices. )
 ●如果总线上只有一个从机,则可以使用更简单的READ ROM [33h](读取ROM命令) (见下文)代替Search ROM命令。
 ●有关Search ROM过程的详细说明,请参见iButton®标准手册,网址为www.maxim-ic.com/ibuttonbook。
 ●在每个Search ROM周期之后,总线主机必须按事务顺序返回到步骤1(初始化)。

②READ ROM [33h](读取ROM命令)

 ●该命令仅在总线上有一个从机时使用。该命令允许总线主控器无需使用Search ROM[F0h](搜索ROM命令) 即可读取从机的64位ROM代码。如果总线上有多个从机,则当所有从机尝试同时响应时,将发生数据冲突。

③MATCH ROM [55h](匹配ROM命令)

 ●MATCH ROM [55h](匹配ROM命令) 后跟一个64位ROM代码序列,使总线主机可以在多点或单点总线上确定一个特定从机。 只有与64位ROM代码序列完全匹配的从机才会响应主机发出的功能命令。 总线上的所有其他从机将等待复位脉冲。

④SKIP ROM [CCh](跳过ROM命令)

 ●主机可以使用该命令同时寻址总线上的所有设备,而无需发送任何ROM代码信息。 例如,主机可以通过发送SKIP ROM [CCh](跳过ROM命令) 和随后的Convert T [44h]命令来使总线上的所有DS18B20都执行同时进行温度转换操作。

 ●请注意,只有在总线上只有一个从机时,SKIP ROM [CCh](跳过ROM命令) 之后只能跟随Read Scratchpad [BEh]命令。
 ●在单点总线的情况下使用该命令,允许主机直接读取而不发送从机的64位ROM代码,可以节省时间。
 ●如果有多个从机,则SKIP ROM [CCh](跳过ROM命令) 后跟Read Scratchpad命令将导致总线上的数据冲突,因为多个设备将尝试同时传输数据。

⑤ALARM SEARCH [ECh](搜索报警命令)

 ●该命令的操作流程与Search ROM命令的操作流程相同,只不过只有设置了警报标志的从机才会响应。

 ●该命令允许主设备确定在最近一次的温度转换过程中是否有DS18B20发生了警报。
 ●在每个警报搜索周期(即警报搜索命令后进行数据交换)之后,总线主机必须按操作顺序返回到步骤1初始化。

3、步骤3:功能命令

  总线主机使用ROM命令寻址要与其通信的DS18B20之后,主机可以发出DS18B20功能命令之一。这些命令允许主机写入和读取DS18B20的暂存器,启动温度转换并确定电源模式。

①Convert T[44h](转换温度命令)

 ●该命令启动一次温度转换。

 ●转换后,产生的温度转换结果数据存储在暂存器的2个字节温度寄存器中,DS18B20返回其低功耗空闲状态。
 ●如果器件在寄生电源模式下发出该命令,则在发出此命令后的10µs(最大值)内,主机必须在转换期间( t C O N V t_{CONV} tCONV)启用单总线上的强上拉,如为DS18B20供电部分中所述。
 ●如果DS18B20由外部电源供电,则主机可以在Convert T[44h](转换温度命令) 后发出读取时序,如果DS18B20正在温度转换过程中则返回0,若已转换完成则返回1来响应。
 ●在寄生电源模式下,由于转换期间总线被强上拉电路拉高,因此无法使用此通知技术。

②Write Scratchpad [4Eh](写暂存器命令)

 ●该命令允许主机将3个字节(3 bytes)的数据写入DS18B20的暂存器。

第一个数据字节写入TH寄存器(暂存器的字节2),第二个字节写入TL寄存器(字节3),第三个字节写入配置寄存器(字节4)。数据必须首先从最低有效位开始传输。
 ●在主机发出复位信号之前,必须写入所有三个字节,否则数据可能已损坏

③Read Scratchpad [BEh](读暂存器命令)

 ●该命令允许主机读取暂存器的内容。 数据传输从最低有效位字节0开始,一直进行下去直到暂存器的最后一个字节,直到读取第9个字节(Byte 8–CRC)。如果只需要暂存器数据的一部分,则主机可以随时发出复位以终止读取。

④Copy Scratchpad [48h](复制暂存器命令)

 ●该命令将暂存器TH,TL和配置寄存器(字节2、3和4)的内容复制到EEPROM。 如果从机在寄生电源模式下使用,则在发出该命令后的10µs(最大值)内,主机必须在单总线上强上拉至少保持10ms。

⑤Recall E2 [B8h](调回EEPROM命令)

 ●该命令从EEPROM调出警报触发值(TH和TL)和配置寄存器的数据,并将数据分别放在暂存器的字节2、3和4中。

 ●主设备可以在 Recall E2 [B8h](调回EEPROM命令) 命令之后发出读取时序。并且DS18B20将返回调用标志:正在进行调用时发送0和完成调用时发送1来指示调用状态。
 ●上电后会自动进行调回操作,因此只要器件一上电,暂存器中便会存储有有效数据。

⑥Read Power Supply [B4h](读电源模式命令)

 ●主机给DS18B20发出该命令,后跟一个读取时序,以确定总线上的任何DS18B20是否正在使用寄生电源。

 ●在读取时序中,寄生电源供电的DS18B20将拉低总线,而外部供电的DS18B20将使总线保持高电平。

Table 3. DS18B20功能命令集

命令 代码 参数或返回值 说明 发出命令后的单总线活动
温度转换命令
转换温度 0X44 0-转换 1-完成 启动温度转换,转换结果存放在暂存器的0~1字节 DS18B20将转换状态发送给主设备(不适用于寄生虫供电的DS18B20)。
存储器命令
读暂存器 0XBE 9字节数据 读取整个暂存器的0~8字节,包括Byte CRC DS18B20最多可向主机发送9个数据字节。
写暂存器 0X4E TH TL CR 将数据写入暂存器字节2、3和4(TH,TL和配置寄存器)。 主机将3个数据字节发送到DS18B20。
复制暂存器 0X48 - 将暂存器TH,TL和配置寄存器(2~4字节)的数据复制到EEPROM None
调回EEPROM 0XB8 0-调回 1-完成 将EEPROM的值(TH,TL和配置寄存器的数据)调回到暂存器2~4字节。 DS18B20将调回状态发送到主机。
读电源模式 0XB4 - 向主机发出DS18B20供电模式信号,确定DS18B20是否使用寄生供电模式 DS18B20将电源状态发送到主机。

Note 1:转换温度:对于寄生虫供电的DS18B20,主机必须在温度转换期间从单总线上使能上拉,并将其从暂存器复制到EEPROM。其他总线活动不能发生在这段时间。

Note 2:读暂存器:主机可以通过发出复位信号随时中断数据传输。
Note 3:写暂存器:必须先写入所有三个字节,然后才能发出复位信号。
在这里插入图片描述

(二)、单总线信号

 ●DS18B20使用严格的单通信协议来确保数据完整性。

 ●该协议定义了几种信号类型:复位脉冲,存在脉冲,写0,写1,读0和读1。所有这些信号,除存在脉冲外,都是由总线主机发出的。

1、初始化过程—复位和存在脉冲

 ●与DS18B20的所有通信均以初始化序列开始,该序列由主机发出的复位脉冲和DS18B20发出的存在脉冲(应答脉冲)组成。

 ●如Figure 13所示。当主机发送完复位脉冲后若有存在脉冲时,则表示DS18B20向主机表明它在总线上并准备好发送和接收数据。
 ●在初始化过程中,总线主机通过将单总线拉低至少480µs来发送(TX)一个复位脉冲。然后,主机释放总线并进入接收模式(RX)。释放总线时,5kΩ上拉电阻将单总线拉高。
 ●DS18B20检测到该上升沿时,将等待15µs至60µs,然后通过将单总线拉低60µs至240µs来发送存在脉冲。
在这里插入图片描述

2、读/写时序

 ●总线主机在写入时序期间将数据写入DS18B20,并在读取时序期间从DS18B20读取数据。(DS18B20的数据读写是通过时序处理来确认信息交换的)每个时序通过单总线传输一位数据。

Figure 14 读/写时序图

在这里插入图片描述

①、写时序

 ●写入时序有两种类型:写1时序和写0时序。

 ●总线主机使用写1时序将逻辑1写入DS18B20,使用写0时序将逻辑0写入DS18B20。
 ●所有写时序的持续时间必须至少为60µs,各个写时序之间的恢复时间必须至少为1µs。
 ●两种类型的写时序均由主机把单总线(数据线)从逻辑高电平拉为低电平开始(见Figure 14)。
 ●为了产生写1时序,将单总线拉低后,总线主机必须在15µs内释放单总线。释放总线后,5kΩ上拉电阻会将总线拉高。
 ●为了产生一个写0时序,将单总线拉低后,总线主机必须在该时序的持续时间内(至少60µs)继续保持总线为低电平。
 ●DS18B20在主机初始化写时序后的15µs至60µs的窗口内对单总线进行采样。如果在采样窗口中总线为高电平,则将1写入DS18B20。如果线路为低电平,则将0写入DS18B20

②、读时序

 ●DS18B20仅在主机发出读取时序时才能将数据发送到主机。因此,主机在发出Read Scratchpad [BEh]或Read Power Supply [B4h]命令后必须立即开始读取时序,以便DS18B20提供所需的数据。另外,主机可以在发出Convert T [44h]或Recall E2 [B8h]命令以找出状态后开始读取时序。S18B20功能命令部分中介绍的操作。

 ●所有读取时序的持续时间必须至少为60µs,时序之间的恢复时间最少为1µs。
 ●主机通过将单总线拉低至少1µs,然后释放总线来启动读取时序(见Figure14)。
 ●主机启动读取时序后,DS18B20将开始在总线上发送1或0。DS18B20通过将总线保持高电平来发送1,而通过将总线拉低来发送0。当发送0时,DS18B20将在时序结束时释放总线,并且总线将被上拉电阻拉回到高空闲状态。
 ●从DS18B20输出的数据在启动读取时序产生的下降沿之后15µs内有效。 因此,主机必须释放总线,然后在时序开始后的15µs内对总线状态进行采样。
 ●Figure15说明,对于一个读时序,TINIT,TRC和TSAMPLE之和必须小于15µs。
 ●Figure16 指出:通过使TINIT和TRC尽可能短,并把主机采样时间放在15µs的最后,来使系统剩余时间最大化。
 ●Figure 15.详细的主机读1时序
 ●Figure 16.推荐的主机读1时序
在这里插入图片描述

三、DS18b20操作示例

DS18b20操作示例1

在此示例中,总线上有多个DS18B20,它们正在使用寄生电源。总线主机在特定的DS18B20中启动温度转换,然后读取其暂存器并重新计算CRC以验证数据。

主机模式 数据(LSB优先) 说明
T x T_x Tx 复位 主机发出复位脉冲
R x R_x Rx 存在 DS18B20s发送应答脉冲
T x T_x Tx 55h 主机发出匹配ROM命令
T x T_x Tx 64位ROM代码 主机发送DS18B20 ROM代码
T x T_x Tx 44h 主机发送转换温度命令
T x T_x Tx DQ数据线被强上拉拉高 主机在转换期间( t C O N V t_{CONV} tCONV)对DQ施加强上拉。
T x T_x Tx 复位 主机发出复位脉冲
R x R_x Rx 存在 DS18B20s发送应答脉冲
T x T_x Tx 55h 主机发出匹配ROM命令
T x T_x Tx 64位ROM代码 主机发送DS18B20 ROM代码
T x T_x Tx BEh 主机发送读暂存器命令
R x R_x Rx 9字节数据 主机读取包括CRC在内的整个暂存器。 然后,主机重新计算暂存器中前八个数据字节的CRC,并将计算出的CRC与读取的CRC(字节8)进行比较。 如果相同,则主机继续向下进行;如果不同,则重复读取操作。

DS18b20操作示例2

在此示例中,总线上只有一个DS18B20,它正在使用寄生电源。 主机写入DS18B20暂存器中的TH,TL和配置寄存器,然后读取暂存器并重新计算CRC以验证数据。 然后,主机将暂存器中的内容复制到EEPROM。

主机模式 数据(LSB优先) 说明
T x T_x Tx 复位 主机发出复位脉冲
R x R_x Rx 存在 DS18B20s发送应答脉冲
T x T_x Tx CCh 主机发送跳过ROM命令
T x T_x Tx 4Eh 主机发送写暂存器命令
T x T_x Tx 3字节数据 主机将三个字节的数据发送到暂存器(TH,TL和配置寄存器)
T x T_x Tx 复位 主机发出复位脉冲
R x R_x Rx 存在 DS18B20s发送应答脉冲
T x T_x Tx CCh 主机发送跳过ROM命令
T x T_x Tx BEh 主机发送读暂存器命令
R x R_x Rx 9字节数据 主机读取包括CRC在内的整个暂存器。 然后,主机重新计算暂存器中前八个数据字节的CRC,并将计算出的CRC与读取的CRC(字节8)进行比较。 如果相同,则主机继续向下进行;如果不同,则重复读取操作。
T x T_x Tx 复位 主机发出复位脉冲
R x R_x Rx 存在 DS18B20s发送应答脉冲
T x T_x Tx CCh 主机发送跳过ROM命令
T x T_x Tx 48h 主机发送复制暂存器命令
T x T_x Tx DQ数据线被强上拉拉高 在复制操作进行期间,主机对DQ施加强上拉至少10ms。

转载地址:https://methadone-no1.blog.csdn.net/article/details/107872420 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:电赛杂记
下一篇:蓝桥杯AP15F2K61S2定时器

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年05月07日 09时04分57秒