测试系统架构:上位机、测试板、DUT 连接方式
量产测试自动化脚本写得再漂亮,如果硬件拓扑搭错了,一切都是白搭。我在几个项目里都碰到过类似情况——脚本跑了三天三夜没报错,结果发现是 DUT 根本没上电。所以这一章,我们把硬件连接这件事彻底聊透。
三种核心角色
量产测试系统里,就三个角色:上位机、测试板、DUT。搞清楚它们各自干什么,连接才不会乱。
| 角色 | 职责 | 典型设备 |
|---|---|---|
| 上位机 | 运行测试脚本、收发指令、存储日志 | 工控机、笔记本、嵌入式 PC |
| 测试板 | 桥接上位机与 DUT,提供物理层激励 | 定制 PCB、FPGA 板、MCU 板 |
| DUT | 被测车载 PHY 芯片及其外围电路 | 百兆/千兆车载以太网 PHY |
你想想看,上位机是大脑,测试板是手臂,DUT 是被检查的零件。三者缺一不可。
主流连接拓扑
说实话,我见过不下十种连接方案。但量产线上最稳定的就两种:直连式和夹具中转式。
直连式
上位机通过 USB 或以太网直连测试板,测试板通过标准接口(如 RJ45、SMA)直触 DUT。优点就是延迟低,适合单工位验证。缺点嘛——换 DUT 时得手动插拔,累死人。
夹具中转式
这是量产线的标配。上位机→测试板→自动化夹具→DUT。夹具里集成了 Pogo Pin、转接板、电源开关。我记得第一次用这种方案时差点翻车——Pogo Pin 的弹力太大,把 DUT 的焊盘给压裂了。从那以后我就规定:夹具的接触力必须控制在 0.5~0.8N 之间。
核心原则:信号路径越短越好。每增加一个转接头,测试误码率就上升一个数量级。量产线宁可多花两万做定制夹具,也别省那几个转接头。
信号链分解
别看线缆一堆,其实信号就三类:
- 控制信号:上位机通过 USB/UART/SPI 配置测试板上的 PHY 寄存器。
- 数据信号:测试板发送标准测试 pattern(如 PRBS7)给 DUT,DUT 回环后接收比对。
- 电源信号:测试板给 DUT 供电(3.3V / 1.8V / 可调),并实时回读电流。
为什么要分这三类?我告诉你一个坑:曾经有个项目,数据信号和电源共了一根地线,结果 DUT 瞬间短路把测试板的 PHY 也带走了。那次损失了 12 块测试板,老板脸都绿了。
警告:电源和信号必须独立走线,不能用同一根排线。如果空间受限,至少用双绞线做好隔离。
SVG:系统连接结构图
连接配置代码示例
实际项目中,我会在脚本里先做一次连接自检。下面是一个简化版:
import serial
import socket
def check_connections():
# 检查上位机到测试板 USB 串口
try:
ser = serial.Serial('COM3', 115200, timeout=2)
ser.close()
print("[OK] 上位机→测试板 USB 通讯正常")
except:
raise ConnectionError("USB 连接异常,请检查线缆")
# 检查测试板到 DUT 的 SPI 链路
# 测试板回复特定 ID 表示 DUT 已应答
resp = send_cmd('GET_DUT_ID')
if resp == '0x4D4554':
print("[OK] 测试板→DUT SPI 链路正常")
else:
raise ConnectionError("DUT 无应答,检查夹具接触")
# 检查 DUT 电源电压
voltage = read_adc('VDD33')
if 3.25 < voltage < 3.35:
print("[OK] DUT 电源 3.3V 正常 (%.3fV)" % voltage)
else:
raise ValueError("电源异常: %.3fV" % voltage)
print("所有连接检查通过,开始测试...")
我的习惯:量产脚本启动前,先跑一个 check_connections() 自检函数。如果夹具没压紧、线缆松动或 DUT 没到位,脚本直接退出并弹报警。这能避免整批次误测。
接地与屏蔽——最容易翻车的地方
嗯,这里要注意。车载 PHY 工作频率动辄 125MHz 甚至 1Gbps。接地处理不好,眼图分分钟闭掉。我总结过三条铁律:
- 单点接地:测试板、夹具、DUT 的参考地必须通过一个铜柱或粗线连回电源地。别搞环路。
- 差分对等长:测试板到 DUT 的 RX/TX 差分线,长度差控制在 5mm 以内。我见过用杜邦线拉 20cm 长的,那误码率直接飙到 1e-3。
- 屏蔽罩:如果测试现场有变频电机干扰,给 DUT 加个小屏蔽壳。钱不多,效果立竿见影。
有一次我深夜在产线排查问题——所有参数都对,就是误码率时好时坏。最后发现是夹具的接地螺丝松了半圈。没错,半圈。那根螺丝拧紧后,测试良率从 78% 升到了 99.6%。这你受得了吗?
不同 PHY 类型的连接差异
| PHY 类型 | 接口标准 | 连接注意事项 |
|---|---|---|
| 100BASE-T1 | 单对差分线(1 Pair) | 必须共模扼流圈,线长 < 15cm |
| 1000BASE-T1 | 单对差分线(1 Pair,速率更高) | 差分线阻抗 100Ω ±5%,回流地要近 |
| 100BASE-TX | 两对差分线(RJ45) | 注意 MDI/MDIX 极性,建议用自动翻转 |
| RGMII / SGMII | 并行/串行 MAC 接口 | 测试板上需额外的 MAC 或 FPGA 桥接 |
选择哪种连接方式,取决于你的 DUT 是哪个系列的 PHY。我一般先在规格书里查 MDI 引脚定义,再画一个连接矩阵贴在测试台上。省得每次换项目都重头查。
量产场景下的电缆选型
量产线每天插拔几千次,普通 USB 线一个月就废了。我个人建议:
- 上位机到测试板:用 工业级 USB 3.0 线(带锁扣),或者走 以太网 RJ45(更耐用)。
- 测试板到夹具:用 FFC 排线 + 补强板,弯折寿命 10000 次以上。
- 夹具到 DUT:老老实实用 Pogo Pin + 转接 PCB,别想着用弹簧探针飞线。
经验值:一套合格的生产连接方案,目标是无故障插拔 ≥ 5000 次。低于这个数,你的维护成本会吃掉所有净利润。
好了,系统连接这部分我基本摊开讲了。理清上位机、测试板、DUT 的关系后,下一步就要进入具体的测试板硬件设计细节——不过那是另一课的内容了。你先把这张连接图刻在脑子里,写脚本的时候才有根基。