当前位置: 首页 > news >正文

FPGA学习笔记——DS18B20(数字温度传感器)

目录

一、DS18B20简介

二、DS18B20特点

三、DS18B20内部结构

(1)64位光刻ROM编码

(2)高速缓存器

四、温度测量

五、配置寄存器

六、DS18B20实现温度转换

(1)ROM命令

(2)功能命令(RAM命令)

七、初始化时序

八、写时序

九、读时序


一、DS18B20简介

        DS18B20是DALLAS半导体公司生产的单总线数字温度传感器,其输出的是数字信号,具有体积小功耗低抗干扰能力强精度高的特点。

GND:

DQ:数据输入/输出

Vdd:供电电压

NC:无连接


二、DS18B20特点

(1)采用单总线接口方式

(2)测温范围宽、测量精度高

(3)无需外围元件

(4)支持多点组网功能,可实现多点测温

(5)可进行温度报警设置

(6)供电方式灵活

(7)测量分辨率可调节,采集精度转换时间短

(8)负压特性

(9)掉电保护功能


三、DS18B20内部结构

(1)64位光刻ROM编码

        每个DS18B20的片内ROM都存有一个独一无二64位编码。

        在该ROM编码的低8位保存有DS18B20的分类编码:28h;中间的48位独一无二序列号最高8位是前面56的CRC循环冗余校验码

        因为每个DS18B20的序列号都不一样,所以一条总线上可以控制多个DS18B20。

(2)高速缓存器

9个byte组成(1byte=8bit)高速缓存器。

byte0、byte1用来存储温度测量值;(低位先发)

byte2:超过设置的温度就报警

byte3:小于或等于设置的温度就报警

byte4:用来配置分辨率

byte5、byte6、byte7:保留

byte8:CRC校验


四、温度测量

        DS18B20中的温度传感器可完成对温度的测量,它的温度转换精度用户可以自定义9、10、11、12位,(如果没有进行位宽的设置,默认为12位)精度分别为0.5°C、0.25°C、0.125°C、0.0625°C分辨率

        符号标志位(S)表示温度的正负极性:若S=0,则为正数,若S=1,则为负数

温度测量值以二进制补码的形式存储在寄存器中。

在进行温度计算的时候要将补码传化成原码:

如果温度测量值是正数原码和补码是一样的。

如果温度测量值是负数,原码有两种计算方式:

1.除符号位以外减一再取反

2.除符号位以外取反再加一

温度值如何计算?

如果温度测量值是正数

        将输出的二进制除符号位以外,转换成十进制,然后乘以精度(分辨率)(这里是12位,所以精度是0.0625),以+125°C为例:

二进制转成十进制:111 1101 0000-------->    2000

乘以精度(分辨率):2000x0.0625=125

如果温度测量值是负数:

        将输出的二进制除符号位以外,先转成原码,然后转成十进制,最后乘以精度(分辨率)这里是12位,所以精度是0.0625),以-25.0625°C为例:

补码转原码:110 0110 1111 ----->001 1001 0001

二进制转十进制:001 1001 0001 ------>401

乘以精度(分辨率):401x0.0625=25.0625


五、配置寄存器

高速缓存器中第五个字节即为配置寄存器,用户通过改变R1和R0的值来配置DS18B20的分辨率

如果配置成11位:那么温度低8位中的最低为无效,精度也就变成了0.125。


六、DS18B20实现温度转换

主机控制DS18B20完成温度转换必须经过三个步骤

每一次读写之前都要对DS18B20进行初始化操作,

初始化成功后发送一条ROM命令,

最后发送功能命令(RAM命令),

这样才能对DS18B20极性预定的操作。

1.初始化

        单总线上的所有操作必须以初始化为开始。初始化序列由总线上的主设备发出的复位脉冲以及紧跟着从设备回应的存在脉冲构成。该存在脉冲式让总线主设备知道DS18B20在总线上并准备好运行。

2.ROM命令

搜索ROM[F0h]、读ROM[33h]、匹配ROM[55h]、跳过ROM[CCh]、警报搜索ROM[ECh]。

3.功能命令(RAM命令)

温度转换[44h]、写入暂存器[4Eh]、读取高速缓存器[BEh]、复制高速缓存器[48h]、召回EEPROM[B8h]、读供电模式[B4h]。

(1)ROM命令

搜索ROM[F0h]:主设备通过排除法获取ROM编码,该过程需要执行多次搜索ROM周期,直到所有设备都被识别。

适用于:多点

读ROM[33h]:允许总线主控设备直接读取从设备的ROM编码。

适用于:单点

匹配ROM[55h]:通过发送匹配ROM后跟着ROM编码,总线主控器可以在单点或多点总线上寻址特定的设备,只有完全匹配该ROM编码的从设备,才会响应主控器发出的功能指令,其它从设备等待复位脉冲触发。

适用于:单点或多点

跳过ROM[CCh]:主设备同时寻址总线上的所有从设备,而无需发送ROM编码。

适用于:单点或多点

警报搜索ROM[ECh]: 仅对设置了报警标志的从设备进行响应。

适用于:单点或多点

(2)功能命令(RAM命令)

简单的温度读取过程:


七、初始化时序

DS18B20所有的通信都是由初始化开始的,初始化由主设备发出的复位脉冲以及从设备响应的存在脉冲组成。

        主设备看:首先主设备发出480us---960us的低电平脉冲,然后,释放,总线变成高电平(上拉电阻造成的),随后,主设备在480us---960us对总线进行检测,如果在检测时间内有低电平出现,就表示总线上有器件响应,反之,则没有。

        从设备看:首先,检测总线上是否出现480us---960us的低电平,如果有,总线变成高电平后,DS18B20等待15us---60us,然后,总线被拉低,低电平保持60us---240us,表示从设备做出响应存在脉冲。如果没有检测到低电平就一直等待。


八、写时序

主设备通过写时序将命令写入DS18B20中,写时序有两种情况:写“1”和写“0”时序。

当主设备将总线从高电平拉低,启动写时序,所有的写时序最少为60us,

每个写时序的回复时间最少为1us,

写“0”时序:主设备将总线拉低,然后保持低电平,低电平保持时间最少为60us,当总线被拉低之后,从设备在15us---60us进行采样。

写“1”时序:主设备将总线拉低,然后释放总线,允许总线在写时序15us内拉至高电平,当总线被拉低之后,从设备在15us---60us进行采样。


九、读时序

发送完读取共带你模式[B4h]或读高速缓存器[BEh]命令时,必须及时的生成读时序,只有在读时隙从设备才能向主设备传送数据。

每个读时序最少持续60us,读时序的间隔至少为1us。

读“0”时序:主设备将总线拉低,表示启动读时序,总线由从设备控制,从设备将总线拉,表示DS18B20向主设备发送“0”。读时序完成以后,总线拉高表示空闲状态

读“1”时序:主设备将总线拉低,表示启动读时序,总线由从设备控制,从设备将总线拉,表示DS18B20向主设备发送“1”。读时序完成以后,总线拉高表示空闲状态

从设备输出的数据在启动读时序之后的15us内有效,主设备必须在启动读时序后15us内释放总线,然后对总线进行采样,采到高电平表示“1”,采到低电平表示“0”.


以上就是DS18B20的一些简要介绍。(如果有不对的地方,还请指出来,谢谢!)

http://www.dtcms.com/a/325701.html

相关文章:

  • 智慧工地:以三大监测技术筑牢安全屏障
  • 衡石科技HENGSHI SENSE 6.0 亮点功能一览-新增仪表盘入口和可视化
  • 【软件安装那些事 6】SOLIDWORKS 2021 详细安装教程(中文简体版)步骤完整不跳步 { 附软件提取下载链接,永久有效---------百度网盘 }
  • Python进阶(6):模块Modules
  • 游戏美术总监级工作流:Firefly AI赋能概念设计,从2D到3D重塑开发管线!
  • CVPR 2025 | 视觉感知新突破丨PF3Det、SemiDAViL与3D物体功能定位的创新点合集
  • MacroDroid 安卓版:功能强大的安卓自动化应用
  • Blender 数据集格式介绍
  • Mybatis学习之逆向工程(十)
  • 华为虚拟防火墙配置案例详解
  • 【软考中级网络工程师】知识点之 UDP 协议:网络通信中的高效轻骑兵
  • Open-Source Agentic Hybrid RAG Framework for Scientific Literature Review
  • Spark 优化全攻略:从 “卡成 PPT“ 到 “飞一般体验“
  • Hadoop和Spark的区别
  • vscode新建esp32工程,没有sample_project怎么办?
  • Mysql——Sql的执行过程
  • Windows Git Bash 常用配置
  • 设计模式笔记_结构型_门面模式
  • 2020/12 JLPT听力原文 问题一 3番
  • VTK 标签中文
  • MFC C++ 使用ODBC方式调用Oracle数据库的详细步骤
  • Go 多进程编程-socket(套接字)
  • 今日项目之线程同步操作项目
  • 生成模型实战 | MuseGAN详解与实现
  • encoder-only / decoder-only / encoder-decoder架构分析
  • 云原生应用的DevOps2(Jenkins渗透场景)
  • Spring Boot 单元测试:@SpyBean 使用教程
  • Linux生成自签名 SSL 证书(适用于测试或内部使用)
  • CI/CD渗透测试靶场
  • cesium/resium 修改子模型材质