1-Wire 总线协议介绍
1-Wire 总线协议(1-Wire® Protocol)深度解析
1-Wire(单总线)是由 Dallas Semiconductor(现属 TI)开发的低成本串行通信协议,通过 ** 一根数据线(DQ)和地线(GND)** 实现双向通信,支持单主机与单个或多个从设备通信。其核心优势在于极简布线、总线供电能力和硬件级设备认证,广泛应用于传感器网络、嵌入式系统和工业物联网领域。
一、协议起源与技术定位
- 诞生背景:1993 年由 Dallas Semiconductor 推出,最初用于温度传感器 DS18B20,解决传统多线协议在分布式场景中的布线复杂性问题。
- 设计目标:
- 极简硬件:仅需 1 根信号线,降低布线成本和空间占用。
- 总线供电:支持寄生电源(Parasitic Power),从设备无需独立供电。
- 唯一寻址:每个设备内置 64 位唯一标识符(ROM ID),支持多设备组网。
- 数据安全:后期版本引入加密认证(如 SHA-256 HMAC),满足工业级安全需求。
二、物理层特性
1. 电气特性
参数 | 标准模式 | 超速模式(Overdrive) |
---|---|---|
电压范围 | 1.7V ~ 5.5V | 2.8V ~ 5.5V |
上拉电阻 | 4.7kΩ(总线空闲时为高电平) | 2.2kΩ(提升信号边沿速率) |
传输距离 | 最长 100 米(取决于线阻和负载) | 最长 50 米 |
ESD 保护 | 数据线支持 ±8kV 接触放电(IEC 61000-4-2) | - |
2. 供电模式
- 寄生供电(总线供电):
从设备通过 DQ 线的高电平获取能量(由主机或外部上拉电阻提供),适用于低功耗场景(如温度传感器)。此时需注意:- 主机需在写操作时提供足够电流(>100μA),确保从设备电容充电。
- 长时间高电平可能导致总线功耗过高,需配合低占空比通信。
- 独立供电:
从设备通过 VDD 引脚外接电源,适合高功耗操作(如 EEPROM 编程)。
三、协议层核心机制
1. 设备寻址:64 位 ROM ID
每个 1-Wire 设备内置唯一的 64 位标识符,结构如下:
plaintext
[8位家族代码] [48位唯一序列号] [8位CRC校验码]
- 家族代码:标识设备类型(如 0x28 为 DS18B20 温度传感器,0x10 为 DS2408 开关)。
- 序列号:工厂烧制的全球唯一编号,确保多设备组网时无地址冲突。
- CRC 校验:用于验证 ROM ID 的完整性,防止通信误码导致的寻址错误。
2. 命令集架构
1-Wire 协议基于 “主机先发命令,从设备后响应” 的主从模式,核心命令分为三类:
- ROM 命令(必选):操作设备 ROM ID,如:
SEARCH ROM
:扫描总线上所有设备的 ROM ID(用于多设备发现)。MATCH ROM
:寻址单个设备(需指定完整 64 位 ID)。SKIP ROM
:忽略 ROM ID(仅适用于总线上唯一设备)。
- 功能命令:操作设备功能寄存器,如温度传感器的
CONVERT TEMP
命令。 - 安全命令(可选):如
AUTHENTICATION
(TMP1827 等安全型设备支持 HMAC 认证)。
3. 数据传输与时序
1-Wire 采用严格的时序控制,主机通过 GPIO 引脚模拟时序,关键操作包括:
- 复位与存在脉冲(Presence Pulse):
- 主机拉低 DQ 线≥480μs,释放后等待从设备响应;
- 从设备拉低 DQ 线 60~240μs,表明在线(存在脉冲)。
- 写时隙(Write Slot):
- 写 0:主机拉低 DQ 线并保持≥60μs;
- 写 1:主机拉低 DQ 线后在 15μs 内释放,由上拉电阻恢复高电平。
- 读时隙(Read Slot):
- 主机拉低 DQ 线 1~15μs 后释放,从设备在 15μs 内驱动 DQ 线输出数据,主机需在 15μs 内完成采样。
四、多设备组网与拓扑结构
1. 菊花链拓扑
- 连接方式:多个设备通过 DQ 线串联,仅需主机端一个 GPIO 引脚,典型应用如分布式温度监测网络。
- 寻址挑战:
- 首次通信需通过
SEARCH ROM
命令遍历所有设备的 ROM ID,建立设备列表。 - 支持最多 256 个设备(受总线电容和上拉电阻限制)。
- 首次通信需通过
2. 抗干扰设计
- 长距离传输:使用低电容线缆(如双绞线),增加上拉电阻至 10kΩ 以降低漏电流影响。
- 总线隔离:通过 DS2482 等 1-Wire 中继器扩展传输距离,支持信号放大和电平转换。
五、安全性增强(现代 1-Wire 设备)
传统 1-Wire 协议缺乏加密机制,现代设备(如 TMP1827)引入:
- HMAC 认证:主机与设备预共享密钥,通信时通过 SHA-256 哈希验证数据完整性,防止中间人攻击。
- 动态挑战 - 响应:每次认证使用随机挑战值(Nonce),避免静态密钥泄露风险。
- 安全启动流程:设备上电后需通过认证才能访问敏感数据(如校准参数)。
六、优缺点对比
优势 | 局限性 |
---|---|
1. 单总线设计,布线成本极低 | 1. 传输速率较低(最高 90kbps) |
2. 支持总线供电,简化电源设计 | 2. 主机需精确模拟时序,软件复杂度高 |
3. 硬件级唯一寻址,天然支持多设备 | 3. 长距离传输时需额外抗干扰措施 |
4. 安全型设备支持硬件加密 | 4. 不适合高频大数据量场景 |
七、典型应用场景
- 工业传感器网络
- 示例:工厂生产线分布式温度监测,多个 DS18B20 通过菊花链连接至 PLC,实时反馈设备温度。
- 智能家居
- 示例:智能插座内置 1-Wire 温度传感器,通过单总线连接至主控 MCU,监测过载风险。
- 医疗设备
- 示例:医疗冰箱内的 TMP1827 传感器,通过 1-Wire 总线连接至数据记录仪,同时利用 HMAC 认证确保温度数据不可篡改。
- 消费电子
- 示例:智能手机通过 1-Wire 接口连接外置指纹识别模块(如 FIDO 认证设备),简化硬件接口。
八、与其他串行协议对比
特性 | 1-Wire | I2C | SPI | UART |
---|---|---|---|---|
数据线数量 | 1(DQ)+1(GND) | 2(SCL/SDA)+GND | 4(SCK/MOSI/MISO/CS) | 2(TX/RX)+GND |
典型速率 | 16.3~90kbps | 100kbps~3.4Mbps | 10Mbps~50Mbps | 1200bps~1Mbps |
多设备支持 | 菊花链(需寻址) | 多从机(地址区分) | 多从机(CS 引脚区分) | 点对点 |
供电方式 | 总线供电 / 独立 | 独立供电 | 独立供电 | 独立供电 |
安全性 | 硬件级认证 | 软件加密 | 软件加密 | 软件加密 |
典型应用 | 传感器网络 | 低速外设(EEPROM) | 高速外设(Flash) | 异步通信(串口) |
九、开发资源与工具链
- 硬件工具:
- TI 的 DS9097U USB 转 1-Wire 适配器,用于主机调试。
- 评估板(如 DS18B20EVM)提供即插即用的测试环境。
- 软件资源:
- 开源库:Python 的
ow
库、Arduino 的OneWire
库,支持快速驱动开发。 - TI 官方工具:如 1-Wire Network Search Utility,用于设备枚举和通信测试。
- 开源库:Python 的
- 设计指南:
- 《1-Wire Bus System Architecture》白皮书,详细描述协议电气规范和时序要求。
总结
1-Wire 协议以其极简的物理层设计和独特的寻址机制,成为低成本、分布式传感器网络的理想选择。尽管在速率和复杂度上存在局限,但其总线供电、硬件认证和多设备支持特性,使其在工业、医疗和消费电子领域占据不可替代的地位。随着安全增强型设备(如 TMP1827)的普及,1-Wire 协议正从单纯的通信协议升级为融合 “连接 + 认证” 的完整解决方案。