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

【51单片机】DS18B20(江科大)

一、DS18B20温度传感器

1.DS18B20介绍

· DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,相比较于模拟温度传感器,具有功能强大、硬件简单、易扩展、抗干扰性强等特点
· 测温范围 :- 55℃到+125℃
· 通信接口:1-Wire(单总线)
· 其它特征:可形成总线结构、内置温度报警功能、可寄生供电

2.引脚及应用电路

在这里插入图片描述
本开发板原理图如图:

本开发板的IO口已经外接了一个电阻了(与AT24C02类似),所以这个就没有再单独接一个电阻
在这里插入图片描述

3.内部结构框图

在这里插入图片描述
parasite power circuit:是寄生电路部分,也就是说DS18B20可以不用通过VDD来进行供电,通过DQ口接电源也可以进行供电。DQ为高电平时,会对电容CPP进行充电,DQ为低电平时,电容会进行供电。
64-BIT ROM:作为器件地址,用于总线通信的寻址
MEMORY CONTROL LOGIC: 存储控制逻辑,用于控制数据的传输
SCRATCHPAD(暂存器):用于总线的数据交互(RAM)
TEMPERATURE SENSOR:模拟温度传感器
ALARM HIGH TRIGGER REGISTER:报警高位触发寄存器,存储温度上限阈值
ALARM LOW TRIGGER REGISTER: 报警低位触发寄存器,存储温度下限阈值
CONFIGURATION REGISTER:配置寄存器,用于设置分辨率(精度)
EEPROM: 用于保存温度触发阈值和配置参数
8-BIT CRC GENERATOR: 8位CRC生成器(CRC,循环冗余码,一种校验码)

存储器结构:
在这里插入图片描述
Byte0和Byte1分别存储温度的低位和高位,默认为85

不能直接读写EEPROM,需要先将数据写入存储器,然后通过通信,将数据在写入EEPROM,读出数据同理

Byte5、Byte6和Byte7为保留字段

4.单总线介绍

·单总线(1-Wire BUS)是由Dallas公司开发的一种通用数据总线
·一根通信线:DQ
·异步、半双工
·单总线只需要一根通信线即可实现数据的双向传输,当采用寄生供电时,还可以省去设备的VDD线路,此时,供电加通信只需要DQ和GND两根线
在这里插入图片描述

单总线电路规范
·设备的DQ均要配置成开漏输出模式(类似于IIC)

·DQ添加一个上拉电阻,阻值一般为4.7KΩ左右(类似于IIC)

·若此总线的从机采取寄生供电,则主机还应配一个强上拉输出电路(像读EEPROM等耗电操作仅仅靠弱上拉是不行的)
在这里插入图片描述

单总线时序结构
·初始化:主机将总线拉低至少480us,然后释放总线,等待15 ~ 60us后,存在的从机会拉低总线60 ~ 240us以响应主机,之后从机将释放总线(实际写程序中,一般取中间值)
在这里插入图片描述

·发送一位:主机将总线拉低60 ~ 120us,然后释放总线,表示发送0;主机将总线拉低1 ~ 15us,然后释放总线,表示发送1。从机将在总
线拉低30us后(典型值)读取电平,整个时间片应大于60us

也就是说,在30us这个时间点,读取总线的电平状态,如果是高电平,则表示发送1,如果是低电平,则表示发送0
在这里插入图片描述
· 接收一位:主机将总线拉低1~15us,然后释放总线,并在拉低后15us内读取总线电平(尽量贴近15us的末尾),读取为低电平则为接收0,读取为高电平则为接收1,整个时间片应大于60us
在这里插入图片描述
在这里插入图片描述
DS18B20操作流程

·初始化:从机复位,主机判断从机是否响应

·ROM操作:ROM指令+本指令需要的读写操作

·功能操作:功能指令+本指令需要的读写操作

ROM操作就是访问64位ROM,功能操作就是访问暂存器
在这里插入图片描述
本实验使用SKIP ROM,因为本开发板从机只有一个DS18B20,不需要ROM来进行寻址

DS18B20数据帧
· 温度变换:初始化→跳过ROM→开始温度变换
在这里插入图片描述
· 温度读取:初始化→跳过ROM→读暂存器→连续的读操作
在这里插入图片描述
温度存储格式
在这里插入图片描述
其中S是符号位,温度为负,则BIT11-15全为1,温度为正,则BIT11-15全为0

BITO-10为温度数据(补码),举例如下:
在这里插入图片描述

http://www.lryc.cn/news/299149.html

相关文章:

  • Windows平台git clone文件路径太长报错
  • 中科大计网学习记录笔记(十):P2P 应用
  • Python算法题集_LRU 缓存
  • 局部加权回归
  • 国内国外最好的数据恢复软件评测,哪种数据恢复软件最有效?
  • bugku 1
  • C++ bfs再探迷宫游戏(五十五)【第二篇】
  • 【Spring原理进阶】SpringMVC调用链+JSP模板应用讲解
  • 23种计模式之Python/Go实现
  • Qt可视化大屏布局
  • re:从0开始的CSS之旅 14. 显示模式的切换
  • K8S系列文章之 [Alpine基础环境配置]
  • 单页404源码
  • MySQL-运维
  • Waymo数据集下载与使用
  • 蓝桥杯每日一题----素数筛
  • 20240212请问如何将B站下载的软字幕转换成为SRT格式?
  • 《CSS 简易速速上手小册》第6章:高级 CSS 技巧(2024 最新版)
  • 2024-02-11 多进程、多线程 work
  • 详解结构体内存对齐及结构体如何实现位段~
  • Linux网络编程——tcp套接字
  • 【计算机网络】协议层次及其服务模型
  • prometheus之redis_exporter部署
  • js 解构赋值
  • Vivado用ILA抓波形保存为CSV文件
  • 微软AD域替代方案,助力企业摆脱hw期间被攻击的窘境
  • Git教程I
  • containerd中文翻译系列(十)镜像验证
  • 假期day9(2024/2/14)
  • Leetcode 674 最长连续递增序列