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

相关推荐
许白掰1 小时前
Linux入门篇学习——Linux 编写第一个自己的命令
linux·运维·数据库·嵌入式硬件·学习
liuluyang5301 小时前
linux 4.14 kernel屏蔽arm arch timer的方法
嵌入式硬件·arm·arch_timer·coretime
C语言小火车2 小时前
野指针:C/C++内存管理的“幽灵陷阱”与系统化规避策略
c语言·c++·学习·指针
凤年徐2 小时前
【数据结构】时间复杂度和空间复杂度
c语言·数据结构·c++·笔记·算法
鑫宇吖2 小时前
Polyspace作为MISRA-C合规性检查工具,其检查规则会根据目标C语言标准(C90或C99)动态调整限值要求。
c语言·嵌入式·c99·c90·polyspace·misra-c合规性检查
吃货界的硬件攻城狮3 小时前
【显示模块】嵌入式显示与触摸屏技术理论
stm32·单片机·嵌入式硬件·学习
钮钴禄·爱因斯晨3 小时前
C语言 | 函数核心机制深度解构:从底层架构到工程化实践
c语言·开发语言·数据结构
爱学习的小邓同学4 小时前
数据结构 --- 队列
c语言·数据结构
啟明起鸣10 小时前
【网络编程】简易的 p2p 模型,实现两台虚拟机之间的简单点对点通信,并以小见大观察 TCP 协议的具体运行
c语言·网络·tcp/ip·p2p
promising-w12 小时前
【运算放大器专题】基础篇
嵌入式硬件·学习