DS18B20应用笔记

本文详细介绍了单总线驱动DS18B20的硬件结构、时序分析以及非阻塞模式下的固件实现,包括初始化、写数据、读数据指令的时序和FreeRTOS下的状态机设计。同时,文章还讨论了阻塞模式下运行时间和非阻塞模式的性能测试结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. 单总线驱动DS18B20

1.1 硬件结构

1.2 时序分析

1.2.1 初始化DS18B20

1.2.2 写数据指令

1.2.3 读数据指令

1.3 固件实现

1.3.1 设计流程图

1.3.2 接口实现

1.3.3 使用接口实现读取数据

1.4 测试

1.5 阻塞模式下运行时间

2 非阻塞模式操作DS18B20

2.1 背景

2.2 非阻塞模式实现原理

2.3 固件实现

2.4 函数性能测试

2.4.1 INIT_DQ步骤时间

2.4.2 触发温度转换命令时间

2.4.3 读温度数据命令时间

2.4.4 读数据指令

2.5 总结

3 详解DS18B20内部结构

3.1 DS18B20 概述

3.2 DS18B20 特性

3.3 DS18B20内部结构

3.4 温度测量

3.4.1 获取温度值

3.4.2 C语言实现温度值转换


1. 单总线驱动DS18B20

DS18B20-PAR 1-Wire寄生供电数字温度计 | 亚德诺(ADI)半导体 (analog.com)

1.1 硬件结构

DS18B20的DQ和MCU的PB1引脚连接

1.2 时序分析

首先看一下整个读写过程的数据流波形(1-wire 协议)

1) 初始化波形

2)配置指令波形

3)读取数据波形

1.2.1 初始化DS18B20

分析:

Mater: 1->0, 持续时间 480us < time < 960 us, 然后IO配置为输入引进,master开始监测DQ电平

DS18B20: 在IO配置为输入后15us ~ 60 us,当DQ=0时,Initial成功。

使用逻辑分析仪捕捉波形:

1) MCU触发DS18B20在线信号,master波形:1----->0,该电平时间要求 480us < T < 960us, 本程序选择500us 左右时间 。

2) MCU IO切换为输入模式,此时主设备等待DS18B20发送在线信号,其时间范围 15us < T < 60us,本例选择时间为 34us 左右。

3) DS18B20响应波形:0 ------>1 , DS18B20发送响应在线信号。持续时间范围 60us < T < 240us,本例选择时间为124us左右。

4)DS18B20响应在线信号后,释放总线,此时IO电平:0-------->1, 该过程持续时间 T > 480 us, 本例选择时间为568us左右。

1.2.2 写数据指令

分析:

Master 首先发送一个写触发信号,Master IO: 1---->0, 该信号持续时间 T >= 15us, 然后DS18B20 IO开始采样master发送的信号。

1) Master发送0,则在master IO从1---->0后( 15us), 继续保持最大时间T< 45us

2) Master发送0,则在master IO从1---->0后(15us),IO值从0----->1,并保持此值,DS18B20采样到数据后,会自动释放该总线。

波形分析:

发送数据 0xcc,写数据顺序,高位在前,低位在后,其时序如下

时序分析

1)写 0 时序

写数据0波形,首先Master 从1---->0, 触发写响应,在低电平保持时间56us 左右。

低电平保持时间:

2)写1时序

写数据1波形,首先Master 从1---->0, 触发写响应,在低电平持续15us后,IO电平0----->1, 并保持60us 左右。由通过波形可以看出,触发信号:1----->0, 其中低电平保持时间11us左右

高电平保持时间:

1.2.3 读数据指令

分析:

读数据: Master电平1------>0, 该电平持续 T < 15us, 然后释放总线,等待DS18B20发送数据。DS18B20在接收到读触发信号后发送数据电平。 Master 在释放总线等待15us以后开始采样数据。采样数据如果为高电平,则该数据位为1;采样数据位低电平,则该数据位0。

波形分析:

接收数据0x01。 master首先发送接收数据触发信号1------->0, 然后释放总线,DS18B20向Master发送数据信号。

时序分析:

1) 读0时

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值