模块和接口:让零件真正合作
约 10 分钟
系统复杂以后,不能把所有晶体管画在一张图上。工程师会把功能分成模块:传感模块负责感知,控制模块负责判断,驱动模块负责给灯提供足够电流,电源模块负责稳定供电。每个模块像一支小队,只要接口约定清楚,就能分别设计和测试。
接口不只是插头形状
两块板的插头能插上,不代表一定能通信。接口至少要约定:
- 电压范围,例如高电平是 3.3V,不能把 5V 直接送进不耐受的引脚。
- 每根线的作用,是电源、地、时钟还是数据。
- 数据格式,例如 0 表示无人、1 表示有人。
- 时间规则,什么时候发送、什么时候读取、多久算超时。
任何一项理解不同,模块就会「各说各话」。接口文档相当于两队之间的合同。
为什么 LED 不能总由逻辑门直接带
逻辑门输出擅长表达 0 和 1,未必能提供点亮大灯所需的电流。控制器可以发出「亮灯」的小信号,再由驱动晶体管或驱动芯片控制更大的电流。这像老师发出指令,真正搬桌子要由有力气的执行队完成。处理和执行分开,系统更安全。
共地是常见的隐形条件
电压是两个点之间的差。两个模块若没有共同参考的「地」,一个模块说的 3.3V,另一个可能根本听不懂。初学者常把数据线接好了,却忘记共地,结果信号忽好忽坏。
模块化让排错变简单
先单独验证传感器输出,再给控制器输入一个假的 0/1,最后测试驱动和灯。每块都通过后再连接。这样故障出现时能缩小范围,不必盯着整个系统猜。
练一练:列出人体传感模块与控制模块之间至少四条接口约定,并解释漏掉「地线」可能发生什么。
小纸条
插头能插上,为什么两个模块仍可能无法合作?