本页目录
互连 I · 硬件总线的电气选择
传感器“有数据”不等于数据“能到达”:一根共享导线的电平、回流、边沿和终端,可能在软件开始重试以前就已经决定了成败。
学习层:先为一条坏掉的总线找电气原因
1. 具体情境:同一块节点换了传感器,读数就间歇消失
低压限流教学节点有一个 MCU、两只板载传感器和一块可断电的接口小板。近距离时 I2C、SPI 和 UART 都“偶尔能用”;把传感器移到一根较长的排线上,示波器看到数据边沿变圆,差分收发器的远端还出现反射。固件增加重试后,日志看起来更安静,却没有回答:总线的电气层是否有足够余量?
这一讲只讨论电气层、拓扑和时序预算。帧格式、地址分配、驱动 API 和网络协议栈属于软件课程;这里把它们压缩成“某个边沿是否到达接收器判决窗口”。所有实验都在低压、限流、可断电条件下进行,短路注入前先断电并把电源限流设到教学值。
2. 揭示前预测:不要先看波形
打开实验前先写下三项方向预测:
- I2C 的上拉电阻减半,在总线电容不变时,上升沿会变快还是变慢?
- CAN 或 RS-485 的线末端缺少终端,反射风险会升高还是降低?
- SPI 把点对点走线改成星形分支,保持速率不变时,时序余量通常会增加还是减少?
这里的“正确”只针对实验的简化模型。先提交预测,再揭示总线选择、参数滑块和故障注入;这样你能把方向判断和数值结果分开。
3. 公式桥:从电气层到时序预算
对开漏线,最小一阶模型把上拉电阻 \(R_P\) 和总线总电容 \(C_B\) 看作一个 RC 网络。10% 到 90% 上升时间的教学近似是
若 \(R_P\) 用 \(\mathrm{k\Omega}\)、\(C_B\) 用 \(\mathrm{pF}\),则 \(R_P C_B\) 的数值单位正好是 \(\mathrm{ns}\)。\(C_B\) 不只是 PCB 走线:它还包括引脚、连接器、探头和并联设备。上拉电流的数量级可以用
检查;在 \(V_{DD}=3.3\ \mathrm{V}\)、\(R_P=2.2\ \mathrm{k\Omega}\) 的教学输入下,静态低电平时约为 \(1.5\ \mathrm{mA}\)。
总线先做时序预算,再做电气安全检查;两者不是同一扇门。每个比特的时间以及传播延迟是
其中 \(t_d\) 是单向传播延迟,\(t_{rt}\) 是往返延迟。只有预算明确要求“发出后还要等返回/反射证据”时才把传播项写成 \(t_{rt}\);单向到达判决使用 \(t_d\),不能无条件重复计算。
总预算还要放进传播、收发器延迟、抖动、边沿和判决余量:
实验把 \(t_{\mathrm{budget}}\) 暂定为 \(0.35T_b\),把板级传播延迟按 \(5\ \mathrm{ns/m}\) 作为教学输入;这不是某个总线标准的通用限值。默认 \(f_b=400\ \mathrm{kbit/s}\) 时 \(T_b=2.5\ \mathrm{\mu s}\),\(R_P=2.2\ \mathrm{k\Omega}\)、\(C_B=80\ \mathrm{pF}\) 给出 \(t_r\approx387.2\ \mathrm{ns}\);长度 \(0.50\ \mathrm{m}\) 时 \(t_d=2.5\ \mathrm{ns}\)、\(t_{rt}=5.0\ \mathrm{ns}\)。本实验的预算明确要求往返证据,所以传播项使用 \(t_{rt}\);若只检查接收端单向到达,应改用 \(t_d\)。再计入线形拓扑的 \(50\ \mathrm{ns}\) 教学代理,约有 \(0.43\ \mathrm{\mu s}\) 余量。
4. 互动实验:五种电气层放到同一张图上
无 JavaScript 时的静态 fallback:以下都是合成的教学输入,不是任一器件型号或标准承诺。默认选择 I2C:\(f_b=400\ \mathrm{kbit/s}\)、长度 \(0.50\ \mathrm{m}\)、\(C_B=80\ \mathrm{pF}\)、\(R_P=2.2\ \mathrm{k\Omega}\)、线形拓扑、无故障。计算用 \(t_r=2.2R_PC_B\)、\(t_d=l/v\)、\(t_{rt}=2t_d\)、\(t_{\mathrm{budget}}=0.35T_b\) 和 \(5\ \mathrm{ns/m}\) 的板级传播代理;此预算需要往返回证,因此使用 \(t_{rt}\)。
| 账本项 | 默认读数 | 单位 / 解释 |
|---|---|---|
| 总线 | I2C | 开漏单端;共享线需要上拉 |
| 上升时间 \(t_r\) | 387.2 | ns;教学 RC 近似 |
| 比特时间 \(T_b\) | 2.5 | μs;400 kbit/s 的教学输入 |
| 单向传播 \(t_d\) | 2.5 | ns;\(5\ \mathrm{ns/m}\times0.50\ \mathrm{m}\) |
| 往返传播 \(t_{rt}=2t_d\) | 5.0 | ns;本预算使用 |
| 教学预算 | 875.0 | ns;\(0.35T_b\),不是标准限值 |
| 剩余余量 | 432.8 | ns;另含线形拓扑的 50 ns 教学代理 |
| 上拉静态电流 | 1.50 | mA;\(3.3\ \mathrm{V}/2.2\ \mathrm{k\Omega}\) |
| 终端门 | PASS | line 拓扑,auto 可用 |
| 时序门 | PASS | 与电气安全独立 |
电气安全 / overallSafe |
SAFE / GO | 无故障、终端有效 |
实验还提供 UART、SPI、CAN、RS-485 的电气层对照,以及星形/线形/点对点拓扑和开路、短路、缺终端、地电位偏移故障。开路或短路必须把可见状态置为 STOP;缺终端必须让终端门失败并阻止 overallSafe。时序门可以 PASS,但只要电气安全门失败,最终结论仍是 STOP。反过来,高速时序失败但没有电气故障时,应显示“时序 FAIL、overallSafe=SAFE / GO”,证明两类判定没有混在一起。故障结果是诊断练习,不是允许带电短接真实产品的操作建议。
5. 真实修正:同一“速率”不是同一条电气路
UART 通常是点对点、单端、推挽电平,时钟不在信号线上;它仍需要共享参考、合适的电平范围和受控的边沿。长线、电平转换器和接收器阈值会改变可用余量。
I2C 用开漏/开集电极式的共享线表达高电平,低电平由器件拉低,高电平由上拉电阻恢复。节点多、线长、探头多,\(C_B\) 就会变大;\(R_P\) 太大时边沿慢,太小时低电平电流和器件耗散增加。具体时序值必须回到控制器、传感器和适用规范的当前数据手册。
SPI 多为推挽同步点对点或短距离扇出,时钟边沿会同时激励多个输入。片选数量、分支长度、串联阻尼和回流连续性属于板级电气问题,不要只看名义时钟频率。
CAN 与 RS-485 使用差分收发器和线形干线思路,终端位置、分支长度、共模范围和参考连接共同决定波形。终端不是“每个节点各放一个电阻”;缺失、重复或放错位置都会改变等效阻抗。终端电阻、共模范围和故障保护必须按具体收发器数据手册与适用标准核对,课程不填动态型号数字。
6. 测量方案:把“软件重试”拆回硬件证据
- 断电检查:确认低压电源、限流值、连接器方向、地线和终端位置;先测电阻/连通性,再上电。
- 近端与远端同时看:用同一触发条件观察发送端和最远接收端的电压或差分电压,记录 10%–90% 边沿、过冲、振铃、静态高低电平和故障时的电流。
- 把探头写进账本:探头输入电容会进入 \(C_B\);示波器带宽、地线长度和差分探头共模范围都要记录。不要把探头夹在“理想地”上就宣称测到了真实回流。
- 逐项故障注入:每次只改变一个可逆条件,短路只在断电且限流下接入;记录故障前后波形、恢复条件和停止原因。
“一帧成功”不是充分证据。应同时保留原始波形、总线错误计数、供电电流和测试配置,说明是模型结果、测量结果还是数据手册/标准约束。
7. 项目迁移与验收
给贯穿项目建立一张总线电气账本:总线类型、供电和逻辑电平、拓扑图、节点数、估计/实测 \(C_B\)、上拉或终端、最长支路、目标边沿、测量探头、故障注入和恢复证据。验收至少要求:最远端在目标工作电压范围内有可重复的判决余量;断开一个可注入故障后系统进入定义的安全状态并记录 overallSafe/STOP 原因;时序门与电气安全门分别留证;软件重试没有被用来掩盖边沿、回流或地参考问题。
1. 电气层比较,而不是协议栈比较
把“总线”拆成四列会更不容易混淆:导线上的电压表示、驱动方式、允许的拓扑,以及能量如何在故障中流动。
| 接口 | 典型电气层 | 拓扑关注 | 上拉/终端关注 |
|---|---|---|---|
| UART | 单端、推挽、点对点 | 参考地、线长、边沿 | 短板内常不需要共享终端,但不能据此外推所有线缆 |
| I2C | 单端、开漏、共享线 | 节点电容、分支、地址之外的物理负载 | 上拉决定上升时间和低电平静态电流 |
| SPI | 单端、推挽、同步 | 时钟扇出、片选、回流和支路 | 可用源端串联阻尼;具体值需测量/仿真 |
| CAN | 差分收发器、共享干线 | 干线、短支路、两端终端 | 终端位置和共模范围依器件/适用标准 |
| RS-485 | 差分收发器、共享干线 | 干线、节点负载、参考与屏蔽 | 终端、偏置和失效保护依器件/适用标准 |
这里的“典型”是电气层的教学分类,不是某个版本的合规声明。一个实际产品可能加隔离、电平转换、共模扼流圈、ESD 保护或专用连接器;这些部件会改变寄生和故障能量路径。
2. 拓扑先于速率
点对点拓扑把源和负载关系压到最少;线形共享干线便于终端控制;星形会制造多个阻抗突变和不同传播时间。即使所有节点都使用同一个协议,星形分支也可能让接收端先看到多个反射。
对差分干线,先画出“源—干线—末端—回流/参考”,再决定终端在哪里。对开漏共享线,先把所有引脚电容、连接器和测量探头列入 \(C_B\),再检查 \(R_P\) 的电流和边沿。
数量级判断很有用:低速并不意味着零问题。若一条线的往返传播只有数纳秒,而比特时间是数微秒,传播可能不是主要约束;若边沿只有数纳秒,即使平均比特率很低,传输线、反射和串扰仍可能先坏掉。
3. 模型失效边界
RC 上升沿模型忽略了输出晶体管的非线性、ESD 电容、连接器电感、探头加载、线缆分布参数和接收器阈值;“差分线两端各有一个终端”也不能替代对支路、共模和容差的检查。实验的教学预算不是标准合规门槛;标准条款、具体额定值和现场 EMC 结论必须以适用版本的一手文件为准。
低压系统仍可能储存足够能量烧坏导线、连接器或器件。所有课堂故障都应使用限流、可断电电源,且不涉及市电施工、建筑配电、并网或带电市电测量。
4. 资料与边界
电路和动态模型可回看 MIT OCW 6.002: Circuits and Electronics 与 OpenStax University Physics Volume 2。接口、测试和标准意识的入口是 MIT OCW 6.071J: Introduction to Electronics, Signals, and Measurement 与 IEEE Standards。具体 UART、I2C、SPI、CAN、RS-485 收发器的电平、负载、共模和终端要求会随型号与版本变化,本页不伪造型号数字。
5. 小结
总线选择先回答“电压怎样表示、回流在哪里、节点怎样连接、故障电流去哪里”,再回答“名义速率是多少”。用 \(t_r\)、传播延迟和判决窗口建立预算,用近端/远端测量和可逆故障注入验证;把软件重试当作现象记录,不当作电气层的证明。下一讲把同一份节点账本转向电能:每一条供电支路的效率、静态电流和负载瞬态能否同时成立?