首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
DS18B20学习记录——如何使用DS18B20的单总线协议进行传输——单颗DS18B20使用
📅 2026/10/27 1:24:27
✍️ 爱科研究院
👁 阅读 3,247
一. 基础知识DS18B201.单总线VCC DQ GND三个引脚所有的数据和指令的传递都是从最低有效位开始传输2.温度寄存器2字节温度报警阈值寄存器TH TL 1字节,ROM掉电不丢失配置寄存器1字节配置温度分辨率9/10/11/12位ROM掉电不丢失Q:什么是温度分辨率上电默认12位A:DS18B20 的温度分辨率是指它能检测到的最小温度变化量核心范围为9~12 位对应 0.5℃、0.25℃、0.125℃、0.0625℃3.如何测温芯片在上电状态下默认的精度为12位。 DS18B20启动后保持低功耗等待状态当需要执行温度测量和AD转换时总线控制器必须发出[44h]命令。在那之后产生的温度数据以两个字节的形式被存储到温度寄存器中 DS18B20继续保持等待状态。 DS18B20由外部电源供电时总线控制器在温度转换指令之后发起“读时序”见单总线系统节 DS18B20正在温度转换中返回0转换结束返回1。温度寄存器数据格式1. 高4位表示数据“正负”为0000-为11112. 后面8位表示数据以12位分辨率为例比如(1)125°C :125➗0.062520002000十进制转化成 0111_1101_0000二进制因此 125°C在12位分辨率下就是0000_0111_1101_0000(2)-55°C55➗0.0625880880十进制0011_0111_0000二进制1100_1000_1111(反码)1100_1001_0000(补码反码1)因此在最终12位分辨率下-55就是1111_1100_1001_0000注意4.报警操作TH和TL寄存器共8bitDS18B20完成一次温度转换后就用该温度值与存储在TH和TL寄存器如图3所示中的一个字节的用户自定义的报警阈值进行比较。标志位S指示温度值的正负正数S0负数S1。 TH和TL寄存器是非易失性的EEPROM 所以在掉电后数据仍然保持。当TH和TL为8位寄存器时在与TH和TL的比较中仅适用温度寄存器的4到11位。如果测得的温度高于TH或低于TL报警条件成立 DS18B20内部就会置位一个报警标识。每进行一次测温就对这个标识进行一个更新。因此如果报警状态消失则在下一个温度转换后该标识将被关闭。5. 64位只读存储器每个DS18B20唯一的64位编码每颗DS18B20都有一个全球唯一的存储在ROM中的64位编码。最前面8位是单线系列编码 28h。接着的48位是一个唯一的序列号。最后8位是以上56位的CRC编码。6. 存储器7. 配置寄存器配置精度用户可以通过表2所示设置R0和R1位来设定DS18B20的精度。上电默认设置 R01 R1112位精度。注意精度和转换时间之间有直接的关系。配置寄存器的位7和位0到4被器件保留禁止写入在读数据时它们全部表现为逻辑1。8.CRC发生器可以关掉吗单总线信号类型复位脉冲拉低、存在脉冲拉低、写0、写1、读0和读1它的时序是怎样的二. 对于我们是主机FPGA来说DS18B20如何使用首先明确总线空闲时被上拉电阻拉高1.初始化发送复位脉冲接收存在脉冲表明DS18B20已经准备好发送和接受时序控制器发送复位脉冲480us—上拉进入高电平 — 等待15-60us— DS18B20发送存在脉冲60-240us2.发送ROM命令用于确定与主设备通信的是哪颗DS18B20设备初学者只接入一颗DS18B20可以直接发送“忽略ROM指令”SKIP ROM [CCh])3.发送DS18B20功能指令用于控制读写DS18B20的寄存器4.发送写的数据/接收读的数据1写时序必须把数据线拉到低电平然后释放且需在15us内释放总线。当总线被释放后上拉电阻将总线拉高。此时数据线从逻辑高电平拉到低电平时写时序开始。写时序必须最少持续60us包括两个写周期之间至少1us的恢复时间。2读时序在之后的文章我会具体写出使用EGO1读取温度的基本时序逻辑以及驱动代码~~
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/27 1:19:27
开拓者:正义之怒动物伙伴培养完整指南:三线选型、四级窗口与三件装备换档
2026/10/27 1:19:27
QQ空间备份:历史说说一次导出,评论和图片不用翻几百页找
2026/10/27 1:19:27
摸鱼低代码平台mfish-nocode二次开发入门:读懂微服务单体一体化架构,写出你的第一个自定义模块
2026/10/27 3:54:43
OpenVINO优化PaddleOCR-VL-1.5:端侧文档解析实战
2026/10/27 3:54:43
Mycat 1.6.7.1 CentOS 7 部署避坑指南:JDK 8u202 适配与分库分表验证
2026/10/27 3:54:43
SnowWork:AI智能体如何革新数据云平台自动化
2026/10/27 3:54:43
VideoPipe车牌识别相机流水线搭建与工程排障
2026/10/27 3:54:43
Gemini Agents在自动化测试中的革命性应用
2026/10/27 3:49:43
端到端测试(e2e)实战:从Playwright配置到稳定性治理
2026/10/27 0:04:20
WorkBuddy_新建任务与工作模式19_“模式选错”的典型代价
2026/10/27 0:04:20
WorkBuddy_新建任务与工作模式20_新手推荐路径
2026/10/27 0:04:20
ZerolanLiveRobot开发者指南:如何扩展一个新服务并注册自定义事件(附完整实战示例)
2026/10/26 11:29:50
全国计算机二级C语言真题PDF高效刷题指南
2026/10/26 0:03:29
requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南
2026/10/26 11:29:49
递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现
2026/10/25 22:15:16
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/26 11:29:48
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/25 12:42:56
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)