一根线也能通信?深入 1-Wire 单总线的奇妙世界
一、什么是 1-Wire 总线1-Wire单总线是由Dallas Semiconductor现 Maxim Integrated / Analog Devices开发的一种单线双向串行通信协议。它仅使用一根数据线外加地线即可实现主机与一个或多个从机之间的数据传输同时还可通过该数据线为从机提供寄生供电因此得名“1-Wire”。1-Wire 的设计目标是在最少的引脚和布线成本下实现低速、多节点的数据采集与控制特别适合传感器网络、身份识别和存储器等应用。最著名的 1-Wire 器件是DS18B20 数字温度传感器。二、电气特性与接线1-Wire 总线由一条数据线DQ和地线GND组成。数据线通过一个上拉电阻连接到电源通常为 3.3V 或 5V空闲时被拉高。逻辑电平高电平由上拉电阻维持表示逻辑 1 或总线空闲。低电平由主机或从机将 DQ 拉低表示逻辑 0 或起始信号。驱动方式总线采用开漏open-drain或三态输出所有设备共享数据线谁都可以拉低但只有上拉电阻能拉高。这实现了“线与”逻辑任何一个设备拉低总线即为低电平。上拉电阻典型值为4.7 kΩ。在长距离或大电容负载下可能需要更小的阻值如 1 kΩ以加速上升沿在低功耗应用中可适当增大阻值。总线长度标准模式下可达100 米以上取决于电缆电容、上拉电阻和时序裕量。使用屏蔽双绞线可提高抗干扰能力。三、供电方式1-Wire 的独特之处在于允许寄生供电即从数据线本身获取能量无需独立的电源线。1. 外部供电模式每个从机都有独立的 VDD 引脚连接到外部电源3.3V 或 5V。此时数据线只负责通信供电稳定适合需要较大工作电流的器件如 EEPROM 编程、温度转换。2. 寄生供电模式从机没有外部电源而是利用数据线高电平期间通过内部二极管向储能电容充电当数据线为低电平时由电容供电维持工作。优点节省一根电源线布线更简单。缺点在需要较大电流的操作如 DS18B20 的温度转换期间主机必须在数据线上提供强上拉用 MOSFET 将数据线直接拉到电源以满足电流需求否则可能因供电不足导致转换失败。四、通信协议与时序1-Wire 的通信以时隙time slot为基本单位每一位数据都在一个时隙内传输。通信总是由主机发起从机只能在主机请求时才能发送数据。1. 复位与存在脉冲初始化序列每次通信前主机必须发送复位脉冲并检测从机的存在脉冲。主机将 DQ 拉低至少480 µs然后释放。总线由上拉电阻拉高主机等待15~60 µs后开始检测。如果有从机存在它会在检测到上升沿后拉低 DQ60~240 µs作为应答存在脉冲。主机检测到这个低电平脉冲后即可开始发送命令。时序图简化主机: |_______| |‾‾‾‾‾‾‾‾‾‾| DQ: ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ 从机: |___| ← 480 µs → ← 15~60 µs → ← 60~240 µs →2. 写时隙主机通过写时隙向从机发送一位数据。写 0主机拉低 DQ 至少60 µs典型 60~120 µs然后释放。写 1主机拉低 DQ1~15 µs后立即释放之后由上拉电阻拉高并维持至少 60 µs。从机在主机拉低后的15~60 µs窗口内采样数据线电平。关键写 0 和写 1 的区别在于主机拉低的时间长短。短拉低表示 1长拉低表示 0。3. 读时隙主机通过读时隙从从机读取一位数据。主机拉低 DQ至少 1 µs然后释放启动读时隙。如果从机要发送 0它会在主机释放后继续将 DQ 拉低如果发送 1则释放总线由上拉电阻拉高。主机必须在拉低后15 µs 以内采样 DQ 电平典型在 10~15 µs 处。整个读时隙必须持续至少 60 µs然后主机释放总线。4. 数据字节传输1-Wire 数据传输以LSB最低位在前的顺序进行。一个字节由 8 个时隙组成每个时隙传输一位。所有命令和数据都按字节组织。典型速率标准速度约16.3 kbps每个时隙约 61 µs。过驱动速度约142 kbps更短的时隙需要器件支持。五、设备寻址与命令1-Wire 总线支持多个从机并联在同一数据线上。为了区分不同设备每个 1-Wire 器件在出厂时都有一个全球唯一的 64 位 ROM 地址。1. 64 位 ROM 地址结构字段位数说明家族码Family Code8 位标识器件类型如 DS18B20 的家族码为 0x28序列号Serial Number48 位全球唯一由制造商保证CRC 校验码8 位对前 56 位进行 CRC-8 校验用于验证地址完整性2. ROM 命令ROM Commands主机在复位并检测到存在脉冲后首先发送一个 ROM 命令用于选择或管理总线上的设备。常用命令如下命令名代码功能Search ROM0xF0搜索总线上的所有设备地址枚举Read ROM0x33读取单个设备的 64 位地址仅当总线上只有一个设备Match ROM0x55指定一个 64 位地址只有匹配的设备响应后续命令Skip ROM0xCC跳过地址选择直接对总线上所有设备广播命令Alarm Search0xEC搜索处于报警状态的设备如温度超限3. 功能命令Function CommandsROM 命令之后主机会发送特定器件的功能命令用于执行具体操作。以 DS18B20 为例Convert T0x44启动温度转换转换期间器件拉低总线表示忙。Read Scratchpad0xBE读取暂存寄存器的 9 字节数据含温度值。Write Scratchpad0x4E写入报警阈值。Copy Scratchpad0x48将暂存器内容复制到 EEPROM。Recall EEPROM0xB8从 EEPROM 恢复数据。六、典型 1-Wire 器件器件型号功能接口特点DS18B20数字温度传感器12 位分辨率1-Wire寄生供电支持DS18S20数字温度传感器9 位分辨率1-WireDS24311Kb EEPROM1-Wire可编程DS24088 通道可寻址开关1-WireDS1990A序列号 iButton1-Wire常用于身份识别DS28E171-Wire 转 I2C 桥接器1-Wire I2C其中DS18B20是最普及的 1-Wire 器件支持 -55℃ 至 125℃ 测温分辨率 9~12 位可调精度 ±0.5℃-10℃~85℃ 范围。七、1-Wire 总线的优缺点优点单线通信仅需一根数据线和地线布线极简节省引脚和 PCB 面积。多设备组网支持多个设备并联通过唯一 64 位地址寻址可枚举总线上的所有设备。寄生供电数据线同时传输能量某些应用可省去电源线。长距离传输低速和开漏结构使其适合较远距离100 米以上。成本低廉协议简单可用 GPIO 模拟无需专用外设。缺点速率低标准模式下仅约 16 kbps不适合高速数据采集。时序严格微秒级时序必须精确控制软件实现时易受中断影响。抗干扰能力有限虽然单线差分可抗共模干扰但不如差分总线如 RS-485强。供电能力弱寄生供电模式下电流有限需要强上拉配合。协议复杂搜索和枚举算法相对复杂软件实现工作量较大。八、应用场景温度监测多点温度采集如粮仓、冷链、机房、农业大棚。身份识别iButton 序列号用于门禁、资产追踪。存储配置小容量 EEPROM 保存设备参数、校准数据。传感器网络多个 1-Wire 传感器挂接在总线上形成分布式采集网络。消费电子电池包温度检测、打印机墨盒识别等。九、单片机实现要点1. 硬件连接将单片机的 GPIO 配置为开漏输出或推挽输出但需要软件切换为输入模式以释放总线。在 DQ 线上接 4.7 kΩ 上拉电阻到 VCC。若使用寄生供电还需在温度转换等大电流操作时用另一个 GPIO 控制 MOSFET 将 DQ 强上拉到 VCC。2. 软件实现使用精确延时函数控制微秒级时序。需关闭中断或使用硬件定时器以确保时序不被破坏。基本操作函数复位、写字节、读字节。在此基础上封装发送命令、读取数据等。多设备操作需实现Search ROM 算法通过逐位读写检测冲突逐步确定每个设备的 64 位地址。算法核心是“读两个互补位判断冲突方向”。常见做法先发送Skip ROM (0xCC)进行广播操作仅适用于单设备或广播命令多设备时使用Match ROM (0x55)或Search ROM (0xF0)。3. 代码示例伪代码// 复位并检测存在脉冲 uint8_t OneWire_Reset(void) { uint8_t presence; DQ_LOW(); delay_us(480); DQ_HIGH(); // 释放总线 delay_us(60); // 等待从机拉低 presence READ_DQ(); // 读取存在脉冲 delay_us(420); // 完成复位时序 return presence; // 返回 0 表示有设备存在 } // 写一个字节 void OneWire_WriteByte(uint8_t data) { for (int i 0; i 8; i) { if (data 0x01) { // 写 1 DQ_LOW(); delay_us(2); DQ_HIGH(); delay_us(60); } else { // 写 0 DQ_LOW(); delay_us(60); DQ_HIGH(); delay_us(2); } data 1; } } // 读一个字节 uint8_t OneWire_ReadByte(void) { uint8_t data 0; for (int i 0; i 8; i) { DQ_LOW(); delay_us(2); DQ_HIGH(); // 释放等待从机输出 delay_us(10); // 等待从机稳定数据 if (READ_DQ()) { data | (1 i); } delay_us(50); } return data; }4. 注意事项时序精确性在软件模拟时务必保证延时的准确性。使用硬件定时器或 NOP 循环并实测校准。中断处理1-Wire 时序对时间敏感操作期间应关闭全局中断或使用临界区保护。总线电容长线或挂多个设备会增加电容导致上升沿变缓。可减小上拉电阻如 1 kΩ或使用有源上拉加速。CRC 校验读取设备的 64 位地址或数据时应验证 CRC 以提高可靠性。十、与 I2C/SPI 的对比特性1-WireI2CSPI线数1 数据 地可寄生供电2SCL, SDA 地至少 4SCLK, MOSI, MISO, CS速率~16 kbps标准100/400/1000 kbps可达数十 Mbps多设备支持通过唯一 64 位地址支持7/10 位地址需片选线设备多时引脚多供电方式可寄生供电需独立电源需独立电源抗干扰一般一般一般差分版本更优复杂度时序严格软件枚举复杂中等硬件支持多简单但引脚多典型应用传感器网络、身份识别板上传感器、EEPROM高速 ADC/DAC、存储器总结1-Wire 总线通过单根数据线实现了低速、多节点、可寄生供电的串行通信在资源受限和布线困难的场合具有独特优势。其协议基于精确的微秒级时序和“线与”机制通过复位/存在脉冲、写/读时隙完成双向数据传输。每个设备拥有全球唯一的 64 位地址支持多设备总线枚举。虽然速度较慢且时序要求严格但在温度传感器网络、身份识别和小容量存储等应用中1-Wire 依然是简单可靠的选择。掌握 1-Wire 的关键在于理解其电气特性、时序参数、寻址机制以及软件实现中的时序控制。如果你能熟练操作 DS18B20 并实现多设备搜索那么对 1-Wire 的理解就已经达到了较高水平。

相关新闻

2026年8月揭秘!青岛到东莞物流公司背后的高效运输秘诀

2026年8月揭秘!青岛到东莞物流公司背后的高效运输秘诀

在物流行业摸爬滚打多年,我深知青岛地区众多企业和个人在寻找物流服务商时的核心诉求,那就是找到一家放心的服务商,规避行业陷阱。特别是在青岛到东莞的物流运输中,大家都希望货物能安全、准时到达,同时费用合理透明。…

2026/8/19 10:16:11 阅读更多 →
秒传链接提取脚本零基础上手指南:5 步告别网盘链接失效,永久分享不再重复上传

秒传链接提取脚本零基础上手指南:5 步告别网盘链接失效,永久分享不再重复上传

秒传链接提取脚本零基础上手指南:5 步告别网盘链接失效,永久分享不再重复上传 【免费下载链接】rapid-upload-userscript-doc 秒传链接提取脚本 - 文档&教程 项目地址: https://gitcode.com/gh_mirrors/ra/rapid-upload-userscript-doc 一、一…

2026/8/19 9:50:06 阅读更多 →
闲鱼防关联系统:Canvas+WebGL+AudioContext全维度指纹隔离

闲鱼防关联系统:Canvas+WebGL+AudioContext全维度指纹隔离

闲鱼防关联系统:CanvasWebGLAudioContext全维度指纹隔离 在电商圈混久了就会发现,闲鱼的多店防关联管理,是店群运营中最耗人力也最容易出错的环节。 做店群的老板都知道,最怕的就是底层IP和硬件指纹穿帮。一旦平台判定你的多个店…

2026/8/19 9:43:21 阅读更多 →

最新新闻

抖音视频免费批量下载教程:douyin-downloader 三步跑通无水印保存与自动去重

抖音视频免费批量下载教程:douyin-downloader 三步跑通无水印保存与自动去重

抖音视频免费批量下载教程:douyin-downloader 三步跑通无水印保存与自动去重 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and b…

2026/8/19 12:17:29 阅读更多 →
DFT计算想泡进水里,竟然只改两行INCAR参数?—— VASPsol隐式溶剂模型实操手记

DFT计算想泡进水里,竟然只改两行INCAR参数?—— VASPsol隐式溶剂模型实操手记

DFT计算想泡进水里,竟然只改两行INCAR参数?—— VASPsol隐式溶剂模型实操手记 【免费下载链接】VASPsol Solvation model for the plane wave DFT code VASP. 项目地址: https://gitcode.com/gh_mirrors/va/VASPsol 导师把一沓实验数据推到我面前…

2026/8/19 12:17:29 阅读更多 →
3步清走“此电脑“里的顽固图标:MyComputerManager终极指南

3步清走“此电脑“里的顽固图标:MyComputerManager终极指南

3步清走"此电脑"里的顽固图标:MyComputerManager终极指南 【免费下载链接】MyComputerManager 管理“此电脑”里删不掉的流氓“快捷方式”(包括侧边栏),同时可自己添加这类“快捷方式” 项目地址: https://gitcode.co…

2026/8/19 12:17:29 阅读更多 →
FreeRTOS四种堆内存管理方案详解:从heap_1到heap_5的选型与实战

FreeRTOS四种堆内存管理方案详解:从heap_1到heap_5的选型与实战

1. 从一次内存分配失败说起:为什么FreeRTOS有四种堆? 最近在调试一个基于STM32的FreeRTOS项目时,遇到了一个让我排查了半天的怪现象。项目里有一个任务,会动态创建和删除一些临时数据结构。在测试初期一切正常,但运行几…

2026/8/19 12:17:29 阅读更多 →
抖音批量下载终极指南:从0到1搭建你的视频采集流水线

抖音批量下载终极指南:从0到1搭建你的视频采集流水线

抖音批量下载终极指南:从0到1搭建你的视频采集流水线 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…

2026/8/19 12:17:29 阅读更多 →
免代码改塔科夫存档:SPT-AKI存档编辑器完整上手路线

免代码改塔科夫存档:SPT-AKI存档编辑器完整上手路线

免代码改塔科夫存档:SPT-AKI存档编辑器完整上手路线 【免费下载链接】SPT-AKI-Profile-Editor Программа для редактирования профиля игрока на сервере SPT-AKI 项目地址: https://gitcode.com/gh_mirrors/sp/…

2026/8/19 12:16:28 阅读更多 →

日新闻

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/19 0:00:30 阅读更多 →
AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

1. 项目概述:当AI开始“猜”数学定理 最近在AI研究圈里,一个名为“Moonshine”的项目引起了不小的讨论。这名字本身就挺有意思,直译是“月光”,但在数学史上,它特指一个神秘而美丽的联系——魔群月光猜想,连…

2026/8/19 0:00:30 阅读更多 →
WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一台刚配的新电脑,跑《魔兽争霸3》却卡成 PPT——这…

2026/8/19 0:02:31 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/19 11:55:18 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/19 9:46:27 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/19 11:55:16 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/19 5:04:55 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/19 7:42:22 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/19 11:55:13 阅读更多 →