前言
这一次来介绍开发板上板载的温度传感器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以进入接收

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

被折叠的 条评论
为什么被折叠?



