0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DS18B20温度传感器的工作原理和硬件设计

FPGA技术实战 来源:FPGA技术实战 2024-10-24 14:38 次阅读

引言:通过本文可以了解DS18B20温度传感器工作原理、硬件设计、DS18B20单总线接口驱动编写。

1. 概述

DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

图1:两种封装DS18B20实物图

DS18B20数字温度传感器接线方便,经封装成后可应用于多种场合,如电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。具有耐磨耐碰,体积小,使用方便,封装形式多样等特点,适用于各种狭小空间设备数字测温和控制领域。

2.原理学习

2.1 芯片概述

DS18B20数字温度计提供9到12bit分辨率的温度测量,可以通过可编程非易失性存储单元实现温度的下限和上限报警。DS18B20采用单总线协议与上位机进行通信,只需要一根信号线和一根地线。它的温度测量范围为-55℃~ +125℃(-67°F to +257°F)。在-10℃~70℃范围内的测试精度可以达到±0.5℃。此外它还可以工作在寄生模式下,直接通过信号线对芯片供电,从而不需要额外的供电电源。每个DS18B20都有一个全球唯一的64位序列号,可以将多个DS18B20串联在同一跟单总线上进行组网,只需要一个处理器就可以控制分布在大面积区域中的多颗DS18B20。这种组网方式特别适合HVAC环境控制,建筑、设备、粮情测温和工业测温以及过程监测控制等应用领域。

2.2 管脚描述

wKgaoWcZ64uAWpc0AAFK836suuo941.png

图2:常见封装管脚定义

DS18B20管脚描述如下表所示。

表1:DS18B20管脚描述

wKgaoWcZ64uAQ9opAAGc5Qy-eWc205.png

2.3 芯片内部结构

wKgZoWcZ64uAAplEAAHRgoLKFkw938.png

图3:DS18B20内部结构

2.4 硬件设计

DS18B20可以通过管脚VDD外部电源供电,也可以工作于寄生电源模式。

(1)寄生电源模式硬件设计

如图所示,当总线处于高电平状态,DQ与外部上拉电阻连接通过单总线对器件供电。同时处于高电平状态的总线信号对内部电容(Cpp)充电(如图3所示),在总线处于低电平状态时,该电容提供能量给器件,该提供能量的方式成为“寄生电源”。当DS18B20处于寄生电源模式时,VDD管脚必须接地。

寄生电源模式下,单总线和CPP在大部分操作中能够提供充分的满足规定时序和电压的电流(见直流电特性和交流电特性节)给DS18B20。然而,当DS18B20正在执行温度转换或从寄存器向EEPROM传送数据时,工作电流可高达1.5mA。这个电流可能会引起连接在单总线上的弱上拉电阻不可接受的压降,这需要更大的电流,而此时CPP无法提供。为了保证DS18B20有充足的供电,当进行温度转换或复制数据到EEPORM操作时,必须给单总线提供一个强上拉,采用MOSFET直接把总线上拉到电源上的方式实现,如图4所示。

wKgZoWcZ64uAN-wDAABWfmnRBKA217.png

图4:温度转换器件寄生电源模式硬件设计

(2)外部供电模式硬件设计

对DS18B20供电的另外一种方法是传统的从VDD管脚接入一个外部电源,如图5所示。这样做的好处是单总线上不需要强上拉,而且总线不用在温度转换期间总保持高电平。

wKgaoWcZ65CAHaJyAACsEG61l0M070.png

图5:使用外部电源供电硬件设计

寄生电源模式在远距离测试或空间受限的应用场合是非常有用的。

对于温度高于100℃时,不推荐使用寄生电源,因为DS18B20在这种温度下表现出的漏电流比较大,通信可能无法进行。在类似这种温度的情况下,强烈推荐使用DS18B20的VDD管脚供电。

2.5 寄存器详解

(1) 64bit只读寄存器

wKgaoWcZ65CAP2fIAAAKZjdjbSg684.png

图6:64bit ROM编码

每颗DS18B20都有一个全球唯一的存储在ROM中的64位编码。最低8bit是单线系列编码:28h。接着的48位是一个唯一的序列号。最后高8bit是低56bit编码的CRC编码。CRC的详细解释见CRC发生器节。64位ROM和ROM操作控制区允许DS18B20作为单总线器件并按照详述于单总线系统节的单总线协议工作。

(2)存储器结构

DS18B20的存储器结构如图7所示。

wKgZoWcZ65CAfVt9AAQ4fl1_NxU815.png

图7:DS18B20的存储器结构

(1)byte0和byte1:分别为温度寄存器的LSB和MSB,这两个字节的存储器为只读存储器;

这个两个字节寄存器用来存储温度传感器输出的数据,寄存器格式如图8所示。

wKgZoWcZ65CAZvWaAABNSG5fRqI189.png

图8:温度寄存器格式

温度与数据数据格式对应关系如图9所示。"S"bit表示温度符号位,上电复位时,温度寄存器默认值为+85℃。

wKgZoWcZ65CAfD6-AAC5SslNrpw385.png

图9:温度/数据关系

(2)byte2和byte3:是TH和TL,注意当报警功能不能使用时,TH和TL寄存器可以被当作普通寄存器使用。TH,TL和配置寄存器均为非易失性的可擦除寄存器(EEPROM),该存储的数据在器件掉电后不会消失。

wKgZoWcZ64uAWRx1AAAJSdXAdJs274.png

图10:TH,TL寄存器格式

(3)byte4:配置寄存器。

配置寄存器允许用户将温度测量分辨率设定为9,10,11或12位,对应的温度分辨率分别为0.5℃、0.25℃、0.125℃和0.0625℃,芯片在上电状态下默认的精度为12位。

配置寄存器的bit7和bit0到bit4被器件保留,禁止写入;在读数据时,它们全部表现为逻辑1。

wKgaoWcZ65CADMJZAAAJzKpxU7E960.png

图11:配置寄存器格式

表2:传感器精度配置表

wKgaoWcZ65CAcoUMAABjRH6I3MI935.png

(4)byte5:被器件保留,禁止写入。

(5)byte6和byte7:用户可以使用;

(6)byte8:只读,包含以上八个字节的CRC码。

2.6 DS18B20操作流程

通过单总线访问DS18B20的执行步骤如下:

步骤1:初始化;

步骤2:ROM操作指令;

步骤3:DS18B20功能指令。

每一次DS18B20的操作都必须满足以上步骤,若是缺少步骤或是顺序混乱,器件将不会有返回值。搜索ROM命令和报警搜索命令除外。当这两个命令执行时,主控制器必须返回步骤1。

2.7 单总线协议详解

DS18B20采用单总线协议,通过一个单线端口通信。DS18B20需要严格的单总线协议以确保数据的完整性。协议定义了几种单总线信号的类型:复位脉冲、存在脉冲、写0、写1、读0和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。

(1)初始化:复位脉冲和存在脉冲

所有和DS18B20间的通信都以初始化序列开始,初始化序列如图12所示。一个复位脉冲跟着一个存在脉冲表明DS18B20已经准备好发送和接收数据。

wKgaoWcZ65CAGafBAADbBsNOK-0409.png

图 12:初始化时序

如图所示,初始化包括两个阶段:

①复位脉冲阶段:总线控制器拉低总线并保持480us以发出(TX)一个复位脉冲信号,然后释放总线;

检测存在脉冲阶段:当总线被释放后,进入接收状态(RX)。上拉电阻将总线拉到高电平。当DS18B20检测到IO引脚上的上升沿后,等待1560us,然后发出一个由60240us低电平信号构成的存在脉冲。

(2)写时序

DS18B20有两种写时序:写1时序和写0时序。总线控制器通过写1时序来写逻辑1;通过写0时序来写逻辑0。写时序必须最少持续60us,包括两个写周期之间至少1us的恢复时间。当总线控制器把数据线从逻辑高电平拉低到低电平的时候,写时序开始(见图13)。

wKgZoWcZ65CADm_2AAEOh7Mjzdw165.png

图 13:写时序

总线控制器要写产生一个写时序,必须把数据线拉到低电平然后释放,且需在15us内释放总线。当总线被释放后,上拉电阻将总线拉高。总线控制器要生成写0时隙,必须把数据线拉到低电平且继续保持至少60us。

总线控制器初始化写时序后,DS18B20在一个15us到60us的窗口内对信号线DQ进行采样。如果线上是高电平,就是写1。反之,如果线上是低电平,就是写0。

(3)读时序

总线控制器发起读时序时,DS18B20仅被用来传输数据给控制器。因此,总线控制器在发出读寄存器指令[BEh]或读电源模式指令[B4h]后必须立刻开始读时序,以便DS18B20提供请求的数据。除此之外,总线控制器在发出发送温度转换指令平[44h]或召回EEPROM指令[B8h]之后读时序,详见DS18B20功能指令节。

wKgZoWcZ65CAKPqoAAIDExzHpDs200.png

图 14:读时序

所有读时序必须最少60us,包括两个读周期间至少1us的恢复时间。当总线控制把数据线从高电平拉低到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放(见图14)。在总线控制器发出读时序后,DS18B20过拉高或拉低总线上来传输1或0。当传输0结束后,总线将被释放,通过上拉电阻回到高电平空闲状态。从DS18B20输出的数据在读时序的下降沿出现后15us内有效。因此,总线控制器在读时序开始15us内释放总线然后采样总线状态,以读取数据线的状态。

3.实战操作

3.1 软件设计

本文要利用LCD1602实现DS18B20温度及时间实时显示。具体功能如下:

(1)DS18B20单总线接口驱动功能;

(2)温度值HEX转BCD码功能;

(3)时钟计时器功能;

(4)LCD1602显示DS18B20实时温度及时间显示。

软件功能模块划分如图15所示。

wKgaoWcZ65CAGm5PAAF5MSkdJn4091.png

图15:软件功能模块框图

各个模块功能:

(1)ds18b20_test.v模块为顶层模块,实现模块间互联;

(2)ds18b20_driver.v实现芯片单总线接口通信功能;

(3)hex_bcd.v实现温度值HEX转BCD码功能;

(4)clock_timer.v实现时钟计时器功能;

(5)lcd1602_driver.v实现DS18B20实时温度及时间显示。

DS18B20接口驱动ds18b20_driver.v软件实现流程图如图16所示。

wKgaoWcZ65CAO07DAACRlx-C9Qc262.png

图16:DS18B20温度读取控制流程图

3.2 测试结果

软件下载至电路板,显示在LCD1602上,如图17所示,可以看到DS18B20温度及时间已经正确显示。

wKgZoWcZ65CALs2xAAgEWfGWQ1g520.png

图17:DS18B20温度及时间显示

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21742

    浏览量

    603534
  • 温度传感器
    +关注

    关注

    48

    文章

    2941

    浏览量

    156090
  • 总线
    +关注

    关注

    10

    文章

    2882

    浏览量

    88105
  • DS18B20
    +关注

    关注

    10

    文章

    779

    浏览量

    80883
  • 驱动设计
    +关注

    关注

    1

    文章

    111

    浏览量

    15285

原文标题:基于FPGA的DS18B20温度传感器驱动设计

文章出处:【微信号:FPGA技术实战,微信公众号:FPGA技术实战】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    DS18B20温度传感器工作原理及其应用电路图

    本帖最后由 gk320830 于 2015-3-5 08:38 编辑   摘要:本文通过介绍DS18B20温度传感器工作原理并结合DS18B2
    发表于 02-21 14:43

    DS18B20温度传感器简介

    DS18B20温度传感器1. DS18B20简介2. 硬件设计3. 软件设计3.1 STM32CubeMX设置3.2 MDK-ARM编程4.
    发表于 08-12 07:32

    DS18B20温度传感器实验

    STM32学习记录:DS18B20温度传感器实验(HAL库)实验摘要DS18B20简述STMCubeMX引脚配置芯片选型引脚和时钟配置生成ARM-MDK工程编写
    发表于 08-18 07:44

    单总线数字温度传感器DS18B20的特性及工作原理

    介绍了单总线数字温度传感器DS18B20的特性及工作原理,给出了DS18B20与TMS320LF2407A 的接线图并且非常详细介绍了如何用
    发表于 07-28 09:59 114次下载

    数字温度传感器DS18B20的设计及应用

    数字温度传感器DS18B20的设计及应用 1引言 DS18B20是DALLAS公司生产的一线式数字温度
    发表于 04-02 18:00 2830次阅读
    数字<b class='flag-5'>温度</b><b class='flag-5'>传感器</b><b class='flag-5'>DS18B20</b>的设计及应用

    DS18B20完成温度检测的技巧

    介绍了DS18B20 温度传感器 的结构和特点以及用DS18B20温度传感器进行
    发表于 08-23 10:44 190次下载
    <b class='flag-5'>DS18B20</b>完成<b class='flag-5'>温度</b>检测的技巧

    温度传感器DS18B20

    温度传感器DS18B20 51例程,亲测可用
    发表于 06-14 15:36 20次下载

    智能温度传感器DS18B20的原理与应用

    DS18B20是DALLAS公司生产的单线数字温度传感器,他具有独特的单线总线接口方式。文章详细的介绍了单线数字温度传感器
    发表于 10-11 18:19 49次下载

    ds18b20的特性_ds18b20温度传感器应用

    本文首先介绍了ds18b20的特性,其次介绍了DS18B20工作原理,最后介绍了ds18b20温度传感器
    发表于 04-24 09:10 1.1w次阅读
    <b class='flag-5'>ds18b20</b>的特性_<b class='flag-5'>ds18b20</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>应用

    单片机外设介绍:温度传感器 DS18B20

    文章目录温度传感器 DS18B20温度传感器 DS18B20DS18B20 是美信公司的一款
    发表于 12-04 15:21 48次下载
    单片机外设介绍:<b class='flag-5'>温度</b><b class='flag-5'>传感器</b> <b class='flag-5'>DS18B20</b>

    DS18B20温度传感器工作原理

    DS18B20以其独特的工作原理、卓越的技术参数和广泛的应用场景,成为了市场的明星产品。 深入了解DS18B20工作原理 DS18B20
    的头像 发表于 06-19 16:01 1297次阅读

    ds18b20温度传感器和dht11的区别

    DS18B20和DHT11都是常用的温度和湿度传感器,它们在许多项目和应用中都有广泛的应用。 1. 工作原理 DS18B20
    的头像 发表于 09-03 16:44 1732次阅读

    ds18b20温度传感器如何使用

    Devices的一部分)生产的数字温度传感器。它能够提供9位至12位的温度测量数据,具有高精度和可编程分辨率。DS18B20温度测量范围
    的头像 发表于 09-03 16:51 687次阅读

    ds18b20温度传感器怎么接线

    DS18B20是一种广泛使用的数字温度传感器,它基于1-Wire(一线)通信协议工作。这种传感器因其高精度、易用性和低成本而受到欢迎。
    的头像 发表于 10-18 14:50 1413次阅读

    ds18b20传感器的使用方法

    Integrated开发的一种数字温度传感器,它能够提供9位到12位的温度测量精度,测量范围从-55°C到+125°C。这种传感器非常适合用于需要精确
    的头像 发表于 10-18 14:52 863次阅读