【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为温度数据(补码),举例如下:

相关推荐
励志成为嵌入式工程师5 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
Peter_chq5 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
hairenjing11236 小时前
使用 Mac 数据恢复从 iPhoto 图库中恢复照片
windows·stm32·嵌入式硬件·macos·word
hikktn7 小时前
如何在 Rust 中实现内存安全:与 C/C++ 的对比分析
c语言·安全·rust
观音山保我别报错7 小时前
C语言扫雷小游戏
c语言·开发语言·算法
模拟IC攻城狮8 小时前
华为海思招聘-芯片与器件设计工程师-模拟芯片方向- 机试题-真题套题题目——共8套(每套四十题)
嵌入式硬件·华为·硬件架构·芯片
IT B业生8 小时前
51单片机教程(六)- LED流水灯
单片机·嵌入式硬件·51单片机
一枝小雨8 小时前
51单片机学习心得2(基于STC89C52):串口通信(UART)
单片机·嵌入式硬件·51单片机
IT B业生9 小时前
51单片机教程(一)- 开发环境搭建
单片机·嵌入式硬件·51单片机
小林熬夜学编程9 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法