DS18B20

本文详细介绍了DS18B20传感器的内存映射、温度计算、报警机制、ROM搜索方法以及与之相关的时序和命令,包括复位、写入、读取等操作,对于理解和应用此类技术的工程师具有指导价值。
摘要由CSDN通过智能技术生成

目录

1、ROM Code

2、CRC

3、DS18B20 MEMORY MAP

​编辑

3.1、温度计算

3.2、温度报警

3.3、温度分辨率​编辑

4、ROM search

4.1、示例

5、时序

5.1、复位时序

 5.2、写时序

5.3、读时序

6、命令

6.1、ROM FUNCTION COMMANDS


1、ROM Code

2、CRC

CRC = X^8 + X^5 + X^4 + 1

3、DS18B20 MEMORY MAP

3.1、温度计算

DS18B20的温度以二进制补码格式存储在TEMPERATURE LSB和TEMPERATURE MSB中。

3.2、温度报警

如果测温结果高于TH或低于TL,则设备内部会设置告警标志。此标志会随着每次温度测量而更新。只有设置了报警标志的DS18B20设备才会响应alarm search命令。

3.3、温度分辨率

R1R0温度分辨率
009 bit (0.5°C)
0110 bit (0.25°C)
1011 bit (0.125°C)
11

12 bit (0.0625°C)

注:12位读数为出厂默认状态。

4、ROM search

ROM search过程的核心规则, 是在搜索中重复进行一个简单的三步操作:

1)总线主机读取1个bit。此时每个设备都会将ROM当前这一位的bit值放到总线上.

2)总线主机继续读取1个bit。此时每个设备会将ROM当前这一位的bit的补码放到总线上.

3)总线主机写入1个bit。 表示选择当前位为该bit的设备。比如写入0, 表示选择当前位为0的设备进行后续的响应(当前位为1的设备后续不进行响应)。

4.1、示例

下面的ROM search过程假设四个不同的设备连接到相同的1-Wire总线。四个设备的ROM数据如下图所示:

  • ROM1 00110101…
  • ROM2 10101010…
  • ROM3 11110101…
  • ROM4 00010001…

搜索步骤如下

1)总线主机通过发出复位脉冲开始初始化序列(RESET)。

2)总线主机将在1-Wire总线上发出ROM search命令

3)总线主机从1-Wire总线读取一个bit。每个设备将通过将其各自ROM数据的第一个bit值放置到总线上来响应。ROM1 和 ROM4 会对总线写0(拉低总线);而 ROM2 和 ROM3 则会对总线写1(保持高电平)。由于线与,此时总线主机读取的是0。总线主机继续读下一个bit, 每个设备会将第一个bit的补码放到总线上, 此时ROM1 和 ROM4 会对总线写1, 而 ROM2 和 ROM3 会对总线写0, 因此总线主机依然读到一个0, 这时候总线主机就可以知道存在多个设备, 并且它们的ROM在这一bit上的值不同。

三步法的两次读取得到的数据的含义如下:

00有多个设备, 且在这一位上值不同
01所有设备的 ROM在这一位上的值是0
10所有设备的 ROM在这一位上的值是1
11总线上没有设备

4)总线主机写入0,表示在后面的搜索中选择 ROM1 和 ROM4(屏蔽 ROM2 和 ROM3)
5)总线主机再执行两次读取并接收一个0位和一个1位。这表明仍然ROM1 和 ROM4在这一位上的值是0。

6)然后总线主机写入一个0,以保持ROM1和ROM4耦合(继续选择 ROM1 和 ROM4)。
7)总线主机执行两次读取并接收两个0位。 这表示总线上还有多个设备, 在这一位上的值不同。

8)总线主机写入一个0位。这将取消选择ROM1,使ROM4成为唯一仍然连接的设备(仅选择 ROM4)。

9)总线主机重复进行三步操作,读出 ROM4 剩余的位, 唯一标识了1-Wire总线上的ROM4设备

10)总线主机通过重复步骤1到步骤7开始一个新的ROM search序列

11)总线主控写入一个1位。这将使ROM4解耦,只留下ROM1仍然耦合(仅选择 ROM1)。

12)总线主机为重复进行三步操作,读出 ROM1 剩余的位, 唯一标识了1-Wire总线上的ROM1设备

13)总线主机通过重复步骤1到步骤3开始一个新的ROM search。

14)总线主控写入一个1位。这将取消选择ROM1和ROM4用于此搜索传递的其余部分,只将ROM2和ROM3耦合到系统中(选择 ROM2 和 ROM3)。

15)总线主机执行两次读取并接收两个0位。

16)总线主机写入一个0位。这将使ROM3解耦,只留下ROM2。

17)总线主机为重复进行三步操作,读出 ROM2 剩余的位, 唯一标识了1-Wire总线上的ROM2设备

18)总线主机通过重复步骤13到步骤15开始一个新的ROM search。

19)总线主控写入一个1位。这样就解耦了ROM2,只剩下ROM3。

20)总线主机为重复进行三步操作,读出 ROM3 剩余的位, 唯一标识了1-Wire总线上的ROM3设备

5、时序

DS18B20相关的时序有:reset pulse、presence pulse, write 0, write 1, read 0, and read 1。除了presence pulse外,所有这些信号都是由总线主机发起的。

5.1、复位时序

 5.2、写时序

5.3、读时序

6、命令

6.1、ROM FUNCTION COMMANDS

Read ROM [33h]该命令允许总线主机读取DS18B20的8位family code、48位序列号和8位CRC。该命令只能在总线上有单个DS18B20时使用。
Match ROM [55h]match ROM命令,后跟64位ROM序列,允许总线主机在多路总线上寻址特定的DS18B20。只有与64位ROM序列完全匹配的DS18B20才会响应随后的命令。所有与64位ROM序列不匹配的从存储器将等待复位脉冲。
Skip ROM [CCh]该命令允许总线主机在不提供64位ROM code的情况下访问功能,从而在单总线系统中节省时间。如果总线上有一个以上的设备,并且在Skip ROM命令之后发出了Read命令,那么当多个设备同时传输时,总线上就会发生数据冲突。
Search ROM [F0h]当系统最初启动时,总线主机可能不知道1-Wire总线上的设备数量或它们的64位ROM codes。此命令允许总线主机使用消除过程来识别总线上所有从设备的64位ROM codes 。
Alarm Search [ECh]该命令的流程与Search ROM命令相同。然而,DS18B20只有在最后一次温度测量中遇到报警条件时才会响应此命令(告警条件定义为温度高于TH或低于TL)。如果存在告警条件,并且TH或TL设置发生了变化,则应进行另一次温度转换以验证任何告警条件。

6.2、MEMORY COMMAND FUNCTIONS

Write Scratchpad [4Eh]此命令写入3个字节到DS18B20的scratchpad(TH、TL、CONFIG)。
Read Scratchpad [BEh]该命令读取scratchpad的内容。如果不是所有的内容都要读取,主机可以在任何时候发出RESET以终止读取。
Copy Scratchpad [48h]
 

该命令将scratchpad复制到DS18B20的E2存储器中,将TH和TL的值存储在非易失性存储器中。写入时间需要10ms。

Convert T [44h]该命令开始温度转换。温度转换需要750ms。
Recall E2 [B8h]

该命令将存储在E2中的TH和TL值加载到scratchpad中。

注:此操作在DS18B20上电时也会自动发生。

Read Power Supply [B4h]该命令用于读取电源模式信号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值