基于OneWire通讯协议驱动DS18B20温度传感器笔记

本文详细介绍了DS18B20温度传感器的工作原理及应用,涵盖单总线通讯协议、温度转换指令、读取存储器指令等内容,并提供了具体的代码实现。

前言

 这一次来介绍开发板上板载的温度传感器DS18B20,所使用的封装为左边这款三线的(两根电源线一根信号线)资料基于芯片手册以及普中51单片机A2开发板攻略

OneWire

硬件构成

单总线系统只有一条信号线,因此每一个总线上的器件必须是漏极开路或者三态输出0、1、高阻态

漏极&三态

首先先来复习一下模电----MOS管

 漏极开漏电路如下

 这是一个集成了二极管的MOS管,源极连接二极管

当二极管导通时,MOS管漏极接地

此时若MOS管导通,则输出口被拉至低电平0,当MOS管断开,输出口被上拉电阻拉至高电平1

当二极管断开时,MOS管漏极不接,此时输出口不受输入电路控制,呈现高阻态

OneWire电路

 单总线的空闲状态为高电平,总线如果需要暂停某一执行过程时,如果想要恢复执行,总线必须停留在空闲状态,单总线处在高电平下时间可以无线长,但当总线停留在低电平超过480us时,总线上所有的器件都将被复位

时序逻辑

OneWire单总线大致包括以下几种时序:初始化时序、写(0 和 1)时序、 读(0 和 1)时序, DS18B20 发送所有的命令和数据都是字节的低位在前,下面我们来依次介绍一下

初始化时序

总线上的所有通讯均从初始化序列开始,和前面提到的一样,主机持续输出低电平使总线保持低电平在(480us-960us),这样可以产生一个复位脉冲

之后主机释放总线,总线被拉高置高电平15-60us以进入接收

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值