搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小丑西瓜9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【群智能算法改进】一种改进的算术优化算法 改进算术优化算法 改进AOA[2]【Matlab代码#38】_群智能柯西变异
2
getUserInfo和getUserProfile被废弃_getuserinfo已弃用
3
XML 注入漏洞原理以及修复方法_xml外部实体注入漏洞怎么修复
4
人工势场法路径规划matlab代码,人工势场法进行路径规划,机械臂末端按照规划好的路径移动_在matlab中利用人工势场算法进行路径规划
5
floodfill算法 java_玩转算法系列--图论精讲 面试升职必备(Java版)
6
C++上位软件通过Snap7开源库访问西门子S7-200/合信M226ES数据块的方法_snap7库编译
7
[数据结构与算法]基础算法(排序, 二分, 前缀, 差分)_为了确保 (x1, y1) 是左上角的点,(x2, y2) 是右下角的点,我们需要对它们进行排序
8
Python Selenium 问卷星自动填写_问卷星selenium下拉
9
2024统计建模:大数据与人工智能时代的统计研究_2024统计建模思路
10
【值得收藏】10个实现炫酷UI前端效果的CSS生成工具_前端页面生成器 csdn
当前位置:
article
> 正文
测温芯片DS18B20详细解读_ds18b20u
作者:小丑西瓜9 | 2024-05-27 17:50:23
赞
踩
ds18b20u
第一部分:DS18B20的封装和管脚定义
DS18B20芯片的常见封装为TO-92,也就是普通直插三极管的样子,当然也可以找到以SO(DS18B20Z)和μSOP(DS18B20U)形式封装的产品,下面为DS18B20各种封装的图示及引脚图。
了解了这些该芯片的封装形式,下面就要说到各个管脚的定义了,如下表即为该芯片的管脚定义:
上面的表中提到了一个“奇怪”的词——“寄生电源”,那我有必要说明一下了,DS18B20芯片可以工作在“寄生电源模式”下,该模式允许DS18B20工作在无外部电源状态,当总线为高电平时,寄生电源由单总线通过VDD引脚,此时DS18B20可以从总线“窃取”能量,并将“偷来”的能量储存到寄生电源储能电容(Cpp)中,当总线为低电平时释放能量供给器件工作使用。所以,当DS18B20工作在寄生电源模式时,VDD引脚必须接地。
第二部分:DS18B20的多种电路连接方式
如下面的两张图片所示,分别为外部供电模式下单只和多只DS18B20测温系统的典型电路连接图。
(1)外部供电模式下的单只DS18B20芯片的连接图
(2)外部供电模式下的多只DS18B20芯片的连接图
这里需要说明的是,DS18B20芯片通过达拉斯公司的单总线协议依靠一个单线端口通讯,当全部器件经由一个三态端口或者漏极开路端口与总线连接时,控制线需要连接一个弱上拉电阻。在多只DS18B20连接时,每个DS18B20都拥有一个全球唯一的64位序列号,在这个总线系统中,微处理器依靠每个器件独有的64位片序列号辨认总线上的器件和记录总线上的器件地址,从而允许多只DS18B20同时连接在一条单线总线上,因此,可以很轻松地利用一个微处理器去控制很多分布在不同区域的DS18B20,这一特性在环境控制、探测建筑物、仪器等温度以及过程监测和控制等方面都非常有用。
对于DS18B20的电路连接,除了上面所说的传统的外部电源供电时的电路连接图,DS18B20也可以工作在“寄生电源模式”,而下图则表示了DS18B20工作在“寄生电源模式”下的电路连接图。没错,这样就可以使DS18B20工作在寄生电源模式下了,不用额外的电源就可以实时采集到位于多个地点的温度信息了。
第三部分:DS18B20内部寄存器解析及工作原理
介绍完DS18B20的封装、针脚定义和连接方式后,我们有必要了解DS18B20芯片的各个控制器、存储器的相关知识,如下图所示,为DS18B20内部主要寄存器的结果框图。
结合图中的内部寄存器框图,我们先简单说一下DS18B20芯片的主要寄存器工作流程,而在对DS18B20工作原理进行详细说明前,有必要先上几张相关图片:
(1)DS18B20内部寄存器结构图
(2)DS18B20主要寄存器数据格式图示
(3)DS18B20通讯指令图
了解了这些内部结构和细节,下面说一下DS18B20芯片的工作原理。
DS18B20启动后将进入低功耗等待状态,当需要执行温度测量和AD转换时,总线控制器(多为单片机)发出[44H]指令完成温度测量和AD转换(
其他功能指令见上面的指令表
),DS18B20将产生的温度数据以两个字节的形式存储到高速暂存器的温度寄存器中,然后,DS18B20继续保持等待状态。当DS18B20芯片由外部电源供电时,总线控制器在温度转换指令之后发起“读时隙”(
详见本帖的“DS18B20时隙图
”),从而读出测量到的温度数据通过总线完成与单片机的数据通讯(DS18B20正在温度转换中由DQ引脚返回0,转换结束则返回1。如果DS18B20由寄生电源供电,除非在进入温度转换时总线被一个强上拉拉高,否则将不会有返回值)。另外,DS18B20在完成一次温度转换后,会将温度值与存储在TH(高温触发器)和TL(低温触发器)中各一个字节的用户自定义的报警预置值进行比较,寄存器中的S标志位(
详见寄存器格式图示中的“TH和TL寄存器格式”图示
)指出温度值的正负(S=0时为正,S=1时为负),如果测得的温度高于TH或者低于TL数值,报警条件成立,DS18B20内部将对一个报警标识置位,此时,总线控制器通过发出报警搜索命令[ECH]检测总线上所有的DS18B20报警标识,然后,对报警标识置位的DS18B20将响应这条搜索命令。
第四部分:针对DS18B20的单片机编程
针对DS18B20的编程,可以理解为总线控制器通过相关指令操作器件或者器件中的相应寄存器,从而完成器件也总线控制器的数据通信,所以要真正搞定DS18B20的通讯编程,还需要详细的了解该芯片的各种寄存器结构、寄存器数据格式和相关的指令系统,下面我们就结合上面图示,说说DS18B20的内部存储器结构。
DS18B20的每个暂存器都有8bit存储空间,用来存储相应数据,其中byte0和byte1分别为温度数据的低位和高位,用来储存测量到的温度值,且这两个字节都是只读的;byte2和byte3为TH、TL告警触发值的拷贝,可以在从片内的电可擦可编程只读存储器EEPROM中读出,也可以通过总线控制器发出的[48H]指令将暂存器中TH、TL的值写入到EEPROM,掉电后EEPROM中的数据不会丢失;byte4的配置寄存器用来配置温度转换的精确度(最大为12位精度);byte5、6、7为保留位,禁止写入;byte8亦为只读存储器,用来存储以上8字节的CRC校验码。
参考上面的DS18B20通讯指令图,即为DS18B20芯片中主要寄存器的数据格式和必要的个别标识位说明,只要做到对寄存器数据精准的控制,就可以很容易的完成DS18B20的程序编写,而对于总线控制器发出的控制指令,我们需要知道,DS18B20的指令包括ROM指令和功能指令,其中ROM指令用来进行ROM的操作,而功能指令则可以控制DS18B20完成温度转换,寄存器操作等功能性工作。一旦总线控制器检测到一个存在脉冲,它就会发出一条ROM指令,如果总线上挂载多只DS18B20,这些指令将利用器件独有的64位ROM片序列码选出特定的要进行操作的器件,同样,这些指令也可以识别哪些器件符合报警条件等。在总线控制器发给要连接的DS18B20一条ROM指令后,就可以发送一条功能指令完成相关的工作了,也就是说,总线控制器在发起一条DS18B20功能指令前,需要首先发出一条ROM指令。了解了这些功能指令的功能和用法,再对DS18B20编程就容易多了!~
第五部分:DS18B20芯片的两点使用心得
(1)对TH(高温触发寄存器)和TL(低温触发寄存器)的操作心得
针对于DS18B20中TH(高温触发寄存器)和TL(低温触发寄存器),可以找到的代码资料很少,而如果在某一测温系统中需要用到TH和TL寄存器时,其实不必觉得无从下手,参见本帖中的“DS18B20寄存器结构”,总线控制器的读操作将从位0开始逐步向下读取数据,直到读完位8,而且TH和TL寄存器的内部结构和数据格式和片内其他寄存器是相同的,当然,针对TH和TL寄存器的读写和其他片内寄存器的读写也是相同的,所以在实际应用中,当DS18B20初始化完成后,首先通过总线控制器发出的[B8H]指令将EEPROM中保存的数据召回到暂存器的TH和TL中,然后通过总线控制器发出的“读时隙”对器件暂存器进行读操作,只要将读到的每8bit数据及时获取,就可以很容易地通过总线控制器读出TH和TL寄存器数据;总线控制器对器件的写操作原理亦然,换句话说,只要掌握了其他寄存器的操作编程,就完全可以很容易地对TH和TL这两个报警值寄存器进行读写操作。同时,可以通过[48H]指令将TH和TL寄存器数据拷贝到EEPROM中进行保存。
(2)对DS18B20通讯时隙的掌握心得
在由DS18B20芯片构建的温度检测系统中,采用达拉斯公司独特的单总线数据通讯方式,允许在一条总线上挂载多个DS18B20,那么,在对DS18B20的操作和控制中,由总线控制器发出的时隙信号就显得尤为重要。
如下图所示,分别为DS18B20芯片的上电初始化时隙、总线控制器从DS18B20读取数据时隙、总线控制器向DS18B20写入数据时隙的示意图
,在系统编程时,一定要严格参照时隙图中的时间数据,做到精确的把握总线电平随时间(微秒级)的变化,才能够顺利地控制和操作DS18B20。另外,需要注意到不同单片机的机器周期是不尽相同的,所以,程序中的延时函数并不是完全一样,要根据单片机不同的机器周期有所改动。在平常的DS18B20程序调试中,若发现诸如温度显示错误等故障,基本上都是由于时隙的误差较大甚至时隙错误导致的,在对DS18B20编程时需要格外注意。
上电初始化时隙图
数据读取时通讯总线的时隙图
数据写入时通讯总线的时隙图
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小丑西瓜9/article/detail/633234
推荐阅读
article
HR速速查收:《20
23
毕业生
薪酬
报告》
新鲜出炉
,拿捏秋招黄金期_
23
年
应届生
秋招
薪酬
...
以一线城市为例,2021
年
,本科应届
毕业生
平均
薪酬
标准为7,700元/月,2022届为8,200元/月,20
23
届为8,...
赞
踩
article
leetcode
做
题
顺序
_
leetcode
刷
题
顺序
...
刷
题
顺序
很重要吗?重要。按照
题
目类别结构化地刷
题
的速度不仅更快,而且可以在刷完一类
题
之后进行总结。对于水平较高的小伙伴们...
赞
踩
article
tree
traversal
(树的
遍历
) -
中序
遍历
(
inorder
traversal
) -...
tree
traversal
(树的
遍历
) -
中序
遍历
(
inorder
traversal
) -
二叉树
的
中序
遍历
1...
赞
踩
article
机器
学习
-
决策树
_机器
学习
决策树
...
一、
决策树
模型简介
决策树
模型是机器
学习
的各种算法模型中比较好理解的一种模型, 它的基本原理是通过对一系列问题进行if/e...
赞
踩
article
python
课程
作业
——
第
1
章
起步_
python
第
一
章
作业
初级...
第
1
章
起步
1
. 浏览 Python 主页(https://www.
python
.org/),在博客上写下你有哪些发现和...
赞
踩
article
怎么
在
pycharm
里面
安装
库...
在
PyCharm中
安装
库的步骤如下:打开PyCharm,并
在
顶部菜单栏中点击“File”。
在
下拉菜单中,选择“Setti...
赞
踩
article
python
tqdm
进度条
详解_
tqdm
参数
...
是 Python
进度条
库,可以在 Python 长循环中添加一个。(optional);,用于定义
进度条
的具体格式,所...
赞
踩
article
python
Nltk
自然语言
安装
包
安装
教程_
安装
自然语言
包怎么
安装
...
第一步:如果只是简单
安装
PythonIDE工具需要执行以下操作。 首先去http://nltk.org/insta...
赞
踩
article
数据结构
-
循环
队列
的基础操作_
数据结构
循环
队列
的
基本操作
...
首先先看一下普通的顺序
队列
会发现出队后,前面的几个单元不能利用,浪费了空间,如果可以使
队列
首尾相接就可以解决这个问题了如...
赞
踩
article
Anaconda
&
spyder
中的
安装
第三方
库
jieba
_
spyder
jieba
安装
...
Anaconda
&
spyder
中的
安装
第三方
库
jieba
方法一:
Anaconda
Prompt中直接pip命令
安装
打...
赞
踩
article
数据结构
排序
算法
--
冒泡
排序
(一)_
java
冒泡
排序
在最好
时间
复杂度
为
o(n)情况下的
算法
程序...
冒泡
排序
算法
冒泡
排序
算法
的平均
时间
复杂度
为
O(n²),最坏情况下的
时间
复杂度
为
O(n²),最好情况下的
时间
复杂度
为
O(n...
赞
踩
article
(机器学习)
sklearn
决策树
和
DecisionTreeClassifier
、DecisionTr...
1.分类树1.1
sklearn
基本建模流程
sklearn
通用的编程步骤有以下四步:1.数据准备2.建立模型3.训练4.测...
赞
踩
article
回溯
算
法
求解N
皇后
问题
java
语言_
n
皇后
问题
回溯
法
java
...
java
语言,
回溯
算
法
求解N
皇后
问题
_
n
皇后
问题
回溯
法
java
n
皇后
问题
回溯
法
java
1 是什...
赞
踩
article
F
ART
:
ART
环境下基于
主动
调用
的
自动化
脱壳方案(1)_
fart
解壳工具...
简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,...
赞
踩
article
“
华为
杯”
第十八届
中国
研究生
数学
建模
竞赛历程及感悟_
研究生
数学
建模
比赛
还
回逐个跑
代码
,验证程序对错吗...
“
华为
杯”
第十八届
中国
研究生
数学
建模
_
研究生
数学
建模
比赛
还
回逐个跑
代码
,验证程序对错吗
研究生
数学
建模
比赛
还
回逐个跑
代码
...
赞
踩
article
python
的
5
个
常用
库
简介_
python
常用
库
...
python
的
5
个
常用
库
简介前面的话1、 `Numpy`2、 `Scipy`合理的创建标题,有助于目录的生成如何改变文本...
赞
踩
article
【
Spark
】
一个
例子
带你了解
Spark
运算
流程
...
本文关键字:大数据、
Spark
、算子、WordCount。
Spark
的
运算
机制非常值得深入学习,这里只借助简单
例子
稍微的...
赞
踩
article
回溯
法——求解
n
皇后
问题
_
在
java
中用
回溯
法实现
n
皇后
问题
...
以上图,对4
皇后
的
问题
清楚的表达出来,从4
皇后
问题
可能推导出
n
皇后
问题
。总的来说,
n
皇后
问题
理解出来其实不难。
n
皇后
问题
...
赞
踩
article
Vue
组件
功能的复用...
Vue
中的混入(Mixins)是一种复用
组件
逻辑的技术,它允许你抽取
组件
中的可复用功能,并将其作为一个独立的模块与其他组...
赞
踩
article
Python
tkinter
初探
Toplevel
控件搭建父
子
窗口
_
python
子
窗口
在
父
窗口
之...
最近,用
Python
给单位里用的“智慧食堂”系统编制了一个餐卡充值文件生成器,自动匹配餐卡号并快速生成导入数据用的Exc...
赞
踩
相关标签
大数据
机器学习
决策树
人工智能
python
pandas
pycharm
ide
开发语言
进度条
数据结构
c语言
排序
冒泡排序
java
算法
自动化
microsoft
windows