ROM搜索算法对多个DS18B20进行地址读取

发布时间:2026/10/27 18:54:28

ROM搜索算法对多个DS18B20进行地址读取 ROM搜索算法对多个DS18B20进行地址读取ROM搜索算法是一个用于解决1-wire总线上多个器件地址寻址的算法实际应用假设在一条总线上挂载了多个 1-Wire器件、但主机不知道它们地址无法进行通信此时可以通过ROM搜索算法枚举出每一个器件的64位ROM地址后在通过器件地址进行通信。DS18B20一款‌单总线数字温度传感器‌传感器、转换电路都集成在内部像三极管一样直接使用。每个芯片有唯一的 64 位序列号一根总线上可挂多个DS18B20实现多点测温。‌‌核心思路就是通过枚举的方法逐位确定器件n位ROM码的每一位主机在这过程会读取两次数据写一次方向第一次读取所有设备相同位的实际码线与值第二次读取所有设备该位的补码线与值对两次读取的值进行判断和方向选择如下结果为01时所有设备该位都是0无冲突方向选择跟随为0结果为10时所有设备该位都是1无冲突方向选择跟随为1结果为00时有设备是0也有设备是1有冲突方向选择0或1结果为11时总线无设备响应搜索终止无冲突时方向由器件决定冲突时主机才真正有选择权选择方向。但无论哪种情况主机都必须写入一位方向写入方向位后器件在同一个写时隙内采样并比较判断自己是否继续参与。冲突冲突是获取每一个器件地址的关键当两次读取到的值为00时产生冲突有设备是0也有设备是1而这个0和1就可以做为接下来进行搜索的方向当主机确定把0/1做为接下来搜索的方向向总线写0/1每搜索一次确定一个地址同时也只记录一个冲突点。示例使用ROM算法读取3路DS18B20的ROM地址分别为28DADB09000324BF、2881650E00032402、28FD950D000324C9对应的64个位如下对于3路或者是n路64位ROM地址使用ROM算法时第一次搜索前9个位都一样所以可以确定不会产生冲突而到第10位时A器件实际码为1补码为0B器件实际码为0补码为1C器件实际码为1补码为0ABC器件实际码线与值为01 0 1 0ABC器件补码线与值为00 1 0 0实际码和补码的线与值都为0所以产生了冲突需要选择方向并记录冲突位置为第10位。假设在冲突位置选择0为搜索方向此时只有器件B符合条件直到循环到第64位得到器件B的地址为2881650E00032402。第二次搜索前9个位都一样所以可以确定不会产生冲突而到第10位时产生冲突与第一次搜索产生冲突的位置进行比较发现两次搜索发生的冲突位置相同此时就需要在第二次搜索的第10位产生冲突时改变方向选择1为搜索方向因为第一次搜索在第10位产生冲突时选择0为搜索方向所以第二次在相同位置产生冲突时选择第一次搜索的相反方向。接下来在第11位的时候器件A实际码为0补码为1器件C实际码为1补码为0因为在第10位时已经选择1做为方向所以不再考虑器件B了器件AC实际码线与值为0补码线与值也为0所以器件AC在第11位时产生了00冲突所以产生了又需要选择方向并更新第二次产生冲突的位置为第11位。假设在冲突位置又选择0为搜索方向此时只有器件A符合条件直到循环到第64位得到器件A的地址为28DADB09000324BF。第三次搜索前9个位都一样所以可以确定不会产生冲突而到第10位时产生冲突与第二次产生冲突的位置进行比较发现第三次产生冲突的位置第10位小于第二次产生的位置第11位此时保持第二次冲突时选择的方向进行搜索到第11位时又产生了冲突与第二次产生冲突的位置进行比较发现第三次产生冲突的位置第11位与第二次产生的位置第11位相同此时就需要在第三次搜索的第11位产生冲突时改变方向选择1为搜索方向因为第二次搜索在第11位产生冲突时选择0为搜索方向所以第三次在相同位置产生冲突时选择第二次搜索的相反方向。此时只有器件C符合条件直到循环到第64位得到器件C的地址为28FD950D000324C9。第四次搜索防止还有其他器件没有被搜索到用于终止搜索所以搜索次数比器件数多一次判断依据是没有产生新的冲突位。通过前三次搜索获得每个DS18B20的64位ROM地址第四次搜索终止搜索。
延伸阅读

更多相关文章

2026/10/27 18:54:28

三强版 Codex 整合包,操作全程可追溯,开发办公都能用

💡前言 不少朋友在 Windows 上使用桌面 AI 智能体时,常会遇到几类困扰:任务执行过程不透明、修改记录难以追溯、缺少定时调度能力,插件扩展也相对有限。如果你已经试过同类工具,正在寻找一套更稳定、全程可审查、功能…

2026/10/27 18:54:28

这款 Codex 本地 AI,支持飞书联动,重复性工作自动搞定

💡前言 不少朋友在 Windows 上使用桌面 AI 智能体时,常会遇到几类困扰:任务执行过程不透明、修改记录难以追溯、缺少定时调度能力,插件扩展也相对有限。如果你已经试过同类工具,正在寻找一套更稳定、全程可审查、功能…

2026/10/27 18:54:28

cuDNN 9.1 Windows 安装指南:cudnn64_9.dll 报错排查与配置

简介:这是一份面向Windows x86-64平台、适配CUDA Toolkit 12的NVIDIA cuDNN 9.1.0.70官方库压缩包,适合需要利用GPU加速深度神经网络训练与推理的开发者、算法工程师及研究人员。包体共32个文件,包含16个.lib库文件、8个.dll动态链接库、7个.…

2026/10/27 19:40:03

AI代理如何重塑消费决策与商业生态

1. 当AI代理开始主导消费行为:一场静默的商业革命上周调试购物机器人时,我意外发现系统自动续费了三年份的猫粮——尽管我根本没有养猫。这个令人啼笑皆非的事件背后,隐藏着一个正在发生的重大转变:AI代理正在从服务提供者转变为具…

2026/10/27 19:40:03

CMake 3.10.0 for Windows:工业级构建的版本锚点与实战指南

简介:本资源为CMake 3.10.0官方Windows 64位安装包(RAR格式),专为Windows平台开发者、C项目构建初学者及跨平台工程实践者提供稳定可靠的构建工具支持,有效解决多编译器(如MSVC)、多IDE&#xf…

2026/10/27 19:40:03

n8n自动化工具核心概念与实战应用指南

1. 为什么需要理解n8n的核心概念? 第一次接触n8n时,我完全被它复杂的界面搞懵了。作为一个开源的自动化工具,n8n的强大之处在于它的灵活性,但这也意味着学习曲线相对陡峭。经过半年多的实际项目应用,我发现真正理解它…

2026/10/27 19:40:03

智元机器人技术演进与核心突破解析

1. 智元机器人技术演进全景图(2015-2025)2015年我在深圳科技园第一次见到实验室里的机械臂时,它还在用示教器进行点位编程。十年后的今天,当我看着搭载多模态感知系统的智元机器人自主完成精密装配任务时,不禁感慨技术…

2026/10/27 19:40:03

有机与无机的本质区别:从碳骨架、键合方式到生命系统

1. 从厨房灶台到显微镜下:为什么“有机”不等于“健康”,“无机”也不代表“危险”你有没有在超市买酱油时盯着配料表发过呆?看到“谷氨酸钠”就皱眉,看到“酵母提取物”却觉得天然;刷到短视频说“纯有机蔬菜不含农药”…

2026/10/27 19:35:02

AI技术变革中的资本博弈与创新路径

1. 技术变革中的资本力量博弈最近和几位做早期投资的朋友聊天,他们桌上摆着的BP(商业计划书)十份里有八份都带着"AI"这个标签。这让我想起2014年那波O2O创业潮,只不过这次的主角换成了大模型和生成式AI。作为经历过三波…

2026/10/27 14:24:03

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/27 9:34:54

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/27 0:59:21

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式19_“模式选错”的典型代价

“模式选错”的典型代价 摘要 在软件工程中,设计模式、架构模式、并发模式乃至团队协作模式的选择,往往在项目早期就决定了后续的开发效率和维护成本。本文通过多个真实场景,剖析“模式选错”带来的典型代价——包括返工成本、技术债务累积、…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式20_新手推荐路径

新手推荐路径 摘要 在 AI 辅助开发工具快速普及的今天,新手面对最多的困惑往往不是"工具够不够强",而是"我该从哪一步开始用"。本文提出一条经过实践验证的三阶段学习路径:先从 Ask(问答式交互)起…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑