一线通电路原理(Single-Wire Bus)
一线通(Single-Wire / 1-Wire / LIN)是用单根数据线 + 地实现双向通信的协议族。没有独立时钟线,需解决同步、仲裁、供电三个核心问题。
作为对照,用独立时钟线的 I2C 把这些问题换成了「多一根线」,同步和仲裁的实现都简单得多。
同步方式(无时钟线如何对齐)
| 方案 | 代表协议 | 原理 |
|---|---|---|
| —— | ——— | —— |
| 异步 UART 单总线 | LIN Bus | 双方约定波特率,起始位下降沿对齐,靠过采样(通常 16x)在 bit 中心采样 |
| 脉冲时序编码 | Maxim 1-Wire | 主机拉低总线产生时隙(time slot),从机检测脉冲宽度区分 0/1 |
| 脉宽调制 | HDQ(TI BQ 芯片) | 主机用低电平持续时间编码 bit:短→1,长→0 |
总线冲突与主从仲裁
- 1-Wire / LIN:严格主从,主机控制所有时隙,从机只能应答。无总线仲裁——一次只允许一个从机响应。
- 多从机寻址:1-Wire 每个器件有 64-bit ROM ID,主机发 SKIP ROM / MATCH ROM 选择目标。
- LIN 报文 ID:由主机发 Header(同步间隔 + 同步场 + 标识符),从机判断是否响应。
供电方式(电源和数据走一根线)
寄生供电(Parasitic Power):总线高电平时器件内部电容充电,低电平传输数据时电容放电维持工作。
┌───┐ ┌───┐ ┌───┐ ┌───┐
Vbus │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
─┐ ┘ └───┘ └───┘ └───┘ └────
│ 充电 泄放 充电 泄放
典型限制:
- 寄生供电拉不动长线——1-Wire 寄生模式推荐 < 3m,外接 Vcc 可达 100m+
- 驱动能力:强上拉(strong pull-up)在数据阶段后主动拉高给电容充电
电平标准与上拉
| 协议 | 空闲电平 | 上拉电阻 | 电平范围 |
|---|---|---|---|
| —— | ——— | ——— | ——— |
| 1-Wire | 高 (5V) | 4.7kΩ | 2.8V-5.5V |
| LIN | 高 (Vbat) | 1kΩ | 12V 汽车电平 |
| HDQ | 高 (1.8V/3.3V) | 内部上拉 | VCC 同域 |
时序实例 — 1-Wire 读一个 bit
主机拉低 1-15µs → 释放 → 在 15µs 窗口内采样
写 1: 主机拉低 < 15µs 后释放
写 0: 主机拉低 60-120µs
读 1: 主机拉低 1-15µs → 释放 → 从机拉低 = 0 / 高阻 = 1
在 BMS 中的常见应用
- HDQ — TI BQ 系列单线通信,常用于电池包校准和生产烧录。波特率固定 5kbps,时序比 1-Wire 宽松。
- 1-Wire EEPROM — DS28EC20 / DS2432 用于电池 ID 识别。寄生供电,典型电路只需一个 4.7kΩ 上拉到 3.3V。
- LIN — 汽车 BMS 的从控通信,ISO 17987,速率 20kbps,12V 电平,需 transceiver(如 TJA1021)。