1-Wire 协议时序详解:复位、存在脉冲、读写时隙
1-Wire 钥匙通信背后的真实时序数字:复位与存在脉冲窗口、写 1 与写 0 时隙、读取采样窗口,以及 ROM 命令码与电气极限。数据取自我们 PR1990 钥匙芯片的数据手册。
1 · 复位与存在脉冲
每一次通信都从这里开始。主机把总线拉低至少 480 µs 后释放,钥匙回以存在脉冲——读头正是凭这个脉冲判断"有钥匙贴上来了"。
| 符号 | 器件类型 | 最小 | 最大 |
|---|---|---|---|
t_RSTL | 复位脉冲 —— 主机拉低总线 | 480 µs | — |
t_RSTH | 复位高电平,含恢复时间 | 480 µs | ∞ |
t_PDH | 器件应答前的等待 | 15 µs | 60 µs |
t_PDL | 存在脉冲 —— 器件拉低总线 | 60 µs | 240 µs |
一个容易忽略的约束:t_RSTL 加上总线上升时间必须小于 960 µs,否则复位会掩盖总线上其他器件发出的中断信号。
2 · 写时隙
写 1 与写 0 都以主机拉低总线开始,区别只在时长:短低电平(1–15 µs)表示 1,长低电平(60–120 µs)表示 0。钥匙在选择窗口内采样判定。
3 · 读时隙
读取时主机短暂拉低后释放并采样。关键在 t_RDV:数据仅在下降沿后 15 µs 内保证有效,采样晚了就会读到乱码。
| 符号 | 器件类型 | 最小 | 最大 |
|---|---|---|---|
t_SLOT | 单个读/写时隙时长 | 60 µs | 120 µs |
t_LOW1 | 写 1 时的低电平时长 | 1 µs | 15 µs |
t_LOW0 | 写 0 时的低电平时长 | 60 µs | 120 µs |
t_RDV | 有效数据窗口 —— 主机须在此之前采样 | — | 15 µs |
t_RELEASE | 器件释放总线的时间 | 0 | 45 µs |
t_SU | 读取前的数据建立时间 | — | 1 µs |
t_REC | 时隙之间的恢复时间 | 1 µs | ∞ |
ROM 命令码
| 家族码 | 命令 | 说明 |
|---|---|---|
33h / 0Fh | Read ROM | 返回 8 位家族码、48 位序列号与 8 位 CRC。仅在总线上只有一个器件时有效。PR1990 对 33h 与 0Fh 均响应,DS1990 只响应 0Fh。 |
55h | Match ROM | 仅含 64 位 ROM 的钥匙不使用此命令,器件不响应。 |
CCh | Skip ROM | 仅含 64 位 ROM 的钥匙不使用此命令,器件不响应。 |
F0h | Search ROM | 主机通过"读位 / 读反码 / 写选择位"反复迭代,枚举总线上所有 ROM 码。多钥匙总线即以此方式识别。 |
电气极限
| 参数 | 符号 | 数值 |
|---|---|---|
| 上拉电源范围 | V_PUP | 2.8 – 6.0 V |
| 逻辑"1"输入电压 | V_IH | ≥ 2.2 V |
| 逻辑"0"输入电压 | V_IL | −0.3 … +0.8 V |
| 4 mA 时的低电平输出电压 | V_OL | ≤ 0.4 V |
| 引脚对地电压 | — | −0.5 … +7.0 V |
| 工作温度 | T_oper | −40 … +85 °C |
| 存储温度 | T_stg | −55 … +125 °C |
本表供日常参考。涉及关键设计决策时,请务必以厂商最新数据手册为准。
Dallas、Maxim、iButton 为各自权利人的商标。我们生产兼容产品,与其无隶属关系。