硬件工程师必看:可测试性设计实战指南,从源头规避生产与维修难题
1. 项目概述为什么测试从来都不是别人的问题干了十几年硬件设计从画第一块板子时的懵懂到后来带队交付过几十个量产项目我踩过最大的坑往往不是原理上的错误也不是某个芯片选型失误而是在设计阶段对“测试”这件事的彻底忽视。我们这行的工程师尤其是刚入行的朋友很容易陷入一个思维定式我的工作就是把电路功能实现把板子画出来至于它好不好生产、好不好测试那是后面工厂和测试工程师的事。这个想法太普遍了普遍到几乎成了行业里一个心照不宣的“甩锅”默契。但现实是当第一版工程样机回来发现某个关键信号点被压在芯片底下根本没法测当小批量试产时生产线因为测试夹具做不出来而停线当市场反馈早期故障率高却因为缺乏有效的测试点而无法快速定位问题时所有的成本、所有的延期、所有的客户抱怨最终都会像回旋镖一样精准地砸回设计者自己头上。这篇文章我想结合自己这些年的实战教训和成功经验彻底聊聊“可测试性设计”这个话题。它不是什么高深的理论而是一系列具体、可执行的设计习惯和前期规划。核心就一句话测试不是制造阶段才冒出来的“别人的问题”它是从你画下第一根线开始就必须贯穿始终的设计责任。我们常说的DFMDesign for Manufacturing面向制造的设计和DFTDesign for Test面向测试的设计绝不是两个孤立的、可以事后补上的环节它们是你设计思维的一部分。一个不考虑测试的设计就像造了一辆没有预留检修口的汽车看起来光鲜亮丽一旦内部出问题要么大拆大修要么直接报废。那么这套方法适合谁呢我认为是所有涉及电路板设计的硬件工程师、项目经理甚至是初创公司的技术负责人。无论你是在做消费电子、工业控制还是物联网设备只要你的产品包含PCB并且需要经历生产、测试、维护这些生命周期那么提前规划测试策略就是你绕不开的必修课。接下来我会把这件事拆解成几个核心部分首先我们需要扭转观念理解为什么测试必须前置然后我会详细拆解一份测试计划应该包含哪些具体内容接着深入到PCB设计层面看看有哪些实操的DFT技巧可以立即用上最后分享一些只有踩过坑才知道的“血泪”经验和常见问题排查思路。我们的目标不是增加无谓的工作量而是通过前端的一点额外思考为整个产品生命周期省下大量的时间、金钱和口碑。2. 测试策略前置从成本中心到价值投资的设计思维转变很多工程师抵触在早期考虑测试根源在于一个认知偏差认为这是额外增加的成本和负担。画板子时间本来就不够还要想测试点、加冗余电路这不是给自己找事吗但我想用一个简单的算术题来改变这个看法。假设你在设计阶段多花两天时间仔细规划测试策略并添加必要的测试点这两天的“成本”是固定的。现在我们对比一下如果不做这件事可能在后续环节引发的“代价”工程验证阶段板子回来后某个电源芯片的工作状态异常。如果它在底部有热焊盘且周围被其他元件包围你的示波器探头根本碰不到它的反馈引脚。于是你不得不飞线或者更糟重新割线、焊线折腾大半天才确认是一个电阻值贴错了。这两天时间原本可以用来做功能调试。试产阶段工厂反馈你的板子无法上ICT在线测试机。因为密度太高没有预留标准的测试焊盘或者测试点分布在板子两面导致夹具成本翻倍且可靠性下降。工厂要求你改板这一改至少耽误两周交期还要承担改板的工程费和物料报废费。量产与市场阶段早期用户退回一些故障品维修部门发现故障现象间歇出现但由于板子上没有足够的测试点进行故障树分析无法定位是某个芯片、电容还是PCB过孔的问题。最终只能凭经验大面积更换元件维修成本高且根本问题可能依然存在导致返修率居高不下。这笔账算下来设计阶段那两天投入换来的是调试效率的提升、生产风险的降低、售后成本的节约以及更快的上市时间。这不再是“成本”而是回报率极高的“投资”。所以建立测试前置思维的第一步就是把测试视为设计功能的一部分。一个完整的设计输出不仅仅是原理图、PCB文件和BOM表还应该包括一份初步的测试策略文档里面明确了“这块板子打算怎么被验证、怎么被生产测试、以及出了问题怎么被诊断”。2.1 测试计划的核心要素与制造伙伴的早期对话测试计划不需要一开始就写成上百页的八股文但它必须在项目启动不久后就有一个雏形并且随着设计深入而迭代。这个计划的核心是基于产品需求和制造能力的一场对话而你的对话对象首选就是未来的合同制造商CM。为什么是CM因为不同的工厂其测试设备、工艺能力和擅长领域天差地别。有的工厂强于高密度手机板的AOI自动光学检测和X-Ray检测有的则在工控板领域拥有完善的ICT和功能测试老化房。你在设计时预留的测试点尺寸、间距必须符合你选定CM的夹具制作和探针接触能力。提前沟通可以避免你按“理想情况”设计了一堆测试点结果CM的探针最小间距根本达不到导致一半的测试点失效。一份早期测试计划至少应明确以下几点测试覆盖目标你要测什么是仅仅保证板子通电不短路Go/No-Go还是需要验证每一颗阻容件的焊接、每一个芯片的引脚连通性或者是需要模拟真实工作环境进行功能与性能测试这取决于产品的复杂度、成本定位和市场要求。一个智能手环的主板和一个服务器主板测试深度必然不同。拟采用的测试类型和CM一起确定一个组合拳。通常包括AOI检查焊锡膏印刷、元件贴装和回流焊后的外观缺陷。这需要你在设计中考虑基准点和元件避让区。ICT通过床针夹具接触板上的测试点检查短路、开路、元件值错误等。这是测试点规划的主要服务对象。FCT功能测试给板子上电模拟真实输入验证输出是否符合预期。这需要你预留功能测试接口和必要的控制/观测信号点。环境应力测试如高低温、振动等。这更多涉及整机装配和测试治具的机械设计但也可能影响板上某些敏感元件的布局。测试点策略草案在原理图阶段就开始标记关键网络。哪些是必须监测的电源哪些是核心芯片的配置引脚哪些是通信总线如I2C、SPI提前标记能在布局布线时给予它们更高的优先级。实操心得不要等到PCB布局完成80%了才把文件丢给CM问“能不能测”。最好的节奏是在完成初步原理图、开始布局之前就带着你的框图、关键器件清单和初步的测试想法和CM的工程团队开一次会。他们会从制造角度给你意想不到的建议比如“这个BGA芯片下面的过孔可以用来做虚拟测试点但需要满足XXX孔径要求”或者“你规划的测试点位置太靠近板边我们的夹具夹持区需要至少5mm的空白”。这种早期介入性价比最高。3. 面向测试的PCB设计实战要点观念转变了计划也有了接下来就是如何在具体的PCB设计操作中落地。这部分是干货中的干货直接关系到你的设计能否顺利通过后续各个环节的考验。3.1 测试点的设计与布局让每个点都“可触及、可测量”测试点的核心使命就两个可触及和可测量。这听起来简单但在高密度设计中极易被忽略。1. 什么是好的测试点一个理想的测试点通常是一个独立的、裸露的金属焊盘。它不应该被阻焊层覆盖周围要有足够的空间供探针接触并且最好有良好的接地回路参考。对于ICT测试常用的测试点形状是圆形或方形焊盘直径或边长通常在0.8mm到1.5mm之间具体尺寸需咨询你的CM。焊盘上可以开窗也可以覆盖易于穿透的助焊剂涂层。2. 关键网络的测试点规划你不能也不需要在每个网络上都放测试点。要有策略地选择。以下网络应享有最高优先级所有电源网络包括主要的输入电源如12V、5V、板上生成的各路电源如3.3V、1.8V、1.2V等。每路电源的输入端和主要芯片的供电引脚附近都应设置测试点以便测量电压和纹波。复位、时钟、使能信号这些是系统的“生命线”。复位信号是否正常拉高/拉低时钟是否有输出、频率和幅度是否正确芯片使能是否生效都是快速判断系统状态的关键。关键芯片的配置引脚例如MCU的启动模式引脚、Flash芯片的片选引脚等。这些引脚的状态决定了芯片的行为模式在调试和故障诊断时至关重要。重要的通信总线如UART的TX/RX用于打印调试信息、I2C的SCL/SDA、SPI的CLK/MOSI/MISO等。预留这些测试点可以方便地连接逻辑分析仪或协议分析仪。模拟信号链的关键节点在传感器、放大器、ADC/DAC的路径上预留测试点可以观测信号质量排查模拟部分的问题。3. 布局的黄金法则单面优先尽可能将所有测试点布置在PCB的同一面通常是背面。这能极大简化ICT测试夹具的设计降低成本。如果必须两面都有务必告知CM这会增加夹具复杂度和成本。远离高大元件测试点周围至少保持2-3mm的净空区避开高大的电解电容、电感、连接器等。确保探针能垂直、稳定地接触到焊盘中心。提供地线测试点探针需要形成回路才能准确测量。在信号测试点附近应布置足够多的地线测试点通常比例不低于1:4并且这些地测试点应直接连接到系统的数字地或模拟地平面确保低阻抗回路。利用过孔作为“虚拟测试点”对于BGA或QFN等底部有焊盘的芯片其下方的信号过孔如果引出到其他层可以在背面或内层将其设计成测试焊盘。但要注意这种过孔的尺寸和电镀工艺必须满足探针接触的可靠性要求通常需要更大的孔径和更厚的铜层。3.2 为自动化光学检测做好准备基准点与避让区AOI是SMT产线上的“火眼金睛”但它需要清晰的“路标”才能准确定位。这就是基准点的作用。1. 全局与局部基准点全局基准点至少需要三个呈L形或三角形布置在板子的对角或边缘。它们应该是裸露的、平整的圆形铜焊盘直径建议3mm左右与周围背景通常是阻焊层有极高的对比度如镀金或镀锡的焊盘对绿色阻焊。AOI相机通过识别这三个点来校正整块板子的位置和角度。局部基准点对于有高精度贴装要求的元件如细间距BGA、QFN建议在其附近约10mm范围内设置局部基准点。这能帮助贴片机在局部范围内进行二次校准提高贴装精度。2. 元件避让区AOI设备在移动板子进行拍照时其传送导轨或夹爪需要占用板边一定的空间。这个区域通常被称为传送边或夹持边。你必须在PCB的这两个长边有时是四个边预留出足够宽度的空白区域禁止在此区域内放置任何元件、走线和测试点。这个宽度因设备而异通常是5mm到10mm必须在设计前向CM确认清楚。我曾见过一个设计为了追求极致面积把一排0402的电阻放在了板边3mm处结果导致AOI无法上板整个板子布局被迫大改。3. 元件布局与间距AOI的摄像头需要从一定角度拍摄元件侧面以检查焊锡爬升情况。因此元件之间需要保持足够的间距特别是高度差异大的元件。避免将高大的电解电容紧挨着矮小的片式电阻否则会形成视觉死角导致AOI误判或漏检。3.3 与制造和测试团队的协作清单设计不是闭门造车。在提交最终设计文件前我习惯用一份自查清单和CM做最终确认测试点清单导出所有测试点的网络名称、坐标、所在层发给CM确认其可访问性和尺寸是否符合规范。基准点确认提供基准点的位置图确认其数量、位置和尺寸是否符合CM设备要求。禁布区确认确认板边禁布区、夹具夹持区是否已按要求清空。高器件阴影区标识出由于高大元件遮挡可能导致AOI或X-Ray检测困难的区域与CM讨论替代检测方案如人工抽检。热敏感元件位置如果后续需要做功能老化测试板上是否有发热大的元件其位置是否影响测试夹具的散热设计这份清单的沟通往往能发现最后一批潜在问题确保设计文件“出厂即合格”。4. 不同测试阶段的DFT考量与实施测试贯穿产品生命周期的多个阶段每个阶段对DFT的要求侧重点不同。我们需要像导演一样为每个“场景”设计好“机位”测试点。4.1 工程研发调试阶段灵活性与洞察力这个阶段的测试核心是诊断和验证。工程师需要能快速、灵活地探测到任何感兴趣的信号点。因此除了前面提到的关键网络测试点还应考虑预留排针或测试插座对于核心的通信总线如SWD/JTAG调试口、UART、USB、模拟信号输入输出可以预留标准的2.54mm排针孔位。即使量产板不焊接排针这些孔位也为调试提供了极大的便利。你可以随时焊接一个排针连接逻辑分析仪、示波器或自定义的测试板。关键电源的电流测量点在主要电源路径上可以设计成用0欧姆电阻或磁珠作为“保险丝”兼“电流测量点”。调试时移除这颗0欧姆电阻串联电流表可以精确测量各个模块的功耗。量产时再焊上即可。LED状态指示灯这是一个成本极低但价值极高的DFT手段。为系统电源、主芯片工作状态、关键通信链路如网络连接添加LED指示灯。在调试和现场故障排查时一眼就能看出系统卡在哪个阶段比用示波器一个个点去量快得多。踩坑记录早年设计过一个以太网设备为了省成本和省空间去掉了所有的状态LED。结果在实验室调试时网络不通我们不得不依次测量PHY芯片的晶振、复位、MDIO通信最后发现是变压器中心抽脚的上拉电阻没焊。如果有一个“链路激活”LED这个问题可能一分钟就定位了。从此以后只要电源和空间允许必要的状态指示灯我坚决保留。4.2 生产测试阶段效率、覆盖率与成本平衡生产测试追求的是速度、一致性和高覆盖率。目标是快速筛出不良品而不是做深度诊断。ICT测试的覆盖策略ICT擅长检测制造缺陷如开路、短路、错件、反贴、焊锡不良等。但它很难检测元件性能的细微偏差如电容的ESR略高或软件问题。因此你的测试点策略应优先保证对制造缺陷敏感的网络的覆盖。例如所有电源和地之间的网络测短路、去耦电容的焊盘测电容是否贴装、电阻分压网络的两个节点测电阻值及焊接等。FCT测试的接口设计功能测试需要给板子供电、注入输入信号、并读取输出信号。在设计时就应考虑将所有这些接口集中化、标准化。例如设计一个专用的“测试连接器”将待测板的所有电源输入、控制信号如复位、使能、通信接口如UART用于输出测试日志、模拟I/O等全部引到这个连接器上。这样测试夹具只需要对接这一个接口大大简化了治具设计和测试操作流程。边界扫描的潜力对于含有复杂数字芯片如FPGA、CPLD、带有JTAG接口的处理器的板子边界扫描是一项强大的DFT技术。它通过芯片自带的JTAG口可以测试芯片引脚之间的互联开路/短路甚至部分芯片的内部逻辑功能而无需物理探针接触每一个引脚。如果你的设计中有这类芯片强烈建议在早期就评估启用边界扫描BSD的可能性这能显著减少对物理测试点的依赖尤其适用于高密度板卡。4.3 售后维修与返厂分析阶段可诊断性设计产品到了用户手里或返修中心测试的目标是快速定位故障模块实现板级或芯片级维修。模块化与隔离设计将系统划分为相对独立的电源模块、数字处理模块、射频模块、接口模块等。在模块间的电源通路上可以放置磁珠或小阻值电阻既能滤波又可以在维修时通过测量其压降来判断该模块是否短路或过流。关键信号线上可以预留串联电阻的位置必要时断开进行信号隔离。丰富的丝印标识PCB丝印层不要只放位号和版本号。在关键测试点旁边用清晰的文字标注其网络名称如“3.3V_DDR”、“CPU_CORE_EN”。在连接器旁边标注引脚定义。这能为维修人员节省大量查阅图纸的时间。考虑探针的物理接触维修通常使用手持式万用表或示波器探头。你预留的测试点其大小和位置要方便表笔或探头夹子接触。避免将测试点放在深凹处或非常拥挤的区域。5. 常见设计疏漏与实战避坑指南即使知道了所有原则在实际操作中我们仍然会因各种原因时间紧、经验不足、疏忽留下一些测试性隐患。下面是我总结的一些高频“坑点”及应对策略。5.1 典型DFT缺陷案例解析“死亡区域”测试点现象测试点位于两个高大连接器之间的缝隙里或者紧挨着一个散热片。探针根本无法垂直下压。根源布局时只考虑了电气和散热没有在3D视角下审视测试点的可访问性。解决养成使用EDA软件的3D视图检查测试点布局的习惯。确保以测试探针的直径通常1mm左右为半径的圆柱体空间内没有其他元件干涉。“孤岛”地测试点现象为信号预留了测试点但附近没有地测试点。维修人员用示波器测量时不得不从很远的地方拉一根地线引入噪声导致测量结果失真。根源没有意识到测试地回路的重要性。解决遵循“信号地成对出现”的原则。在放置信号测试点时同步在其附近2-3mm内放置一个接地测试点并确保该地测试点通过多个过孔良好地连接到内部地平面。基准点“隐身”现象基准点设计得太小或者其表面处理如喷锡与周围阻焊层对比度不够导致AOI相机识别困难或误识别。根源未严格遵守CM的基准点设计规范。解决直接向CM索取他们的基准点设计规范文档并作为一条设计规则输入到你的EDA工具中。通常要求直径≥3mm阻焊开窗比焊盘单边大0.5mm以上表面平整。测试点与散热过孔混淆现象为了给大功率芯片散热在芯片底部打了大量过孔阵列。这些过孔在PCB背面露出的焊盘被误当作测试点使用。风险散热过孔通常连接到芯片的热焊盘可能是电源或地也可能是浮空的。用它作为信号测试点可能引入阻抗不连续或短路风险。而且散热过孔群可能被阻焊层覆盖或半覆盖探针接触不可靠。解决明确区分“测试点”和“散热过孔”。测试点应单独设计并做好标识。如果必须利用散热过孔需确保其电气属性明确且表面处理满足探针接触要求阻焊开窗。5.2 设计流程中的DFT检查节点为了避免后期才发现问题必须在设计流程中设置几个关键的DFT检查节点节点一原理图评审后布局开始前。评审测试点需求清单确保所有关键网络已在原理图中标记。节点二布局初步完成时。检查基准点位置、禁布区、高大元件阴影区。检查测试点是否单面布置是否远离干涉物。节点三布线完成DRC检查通过后。进行专门的DFT设计规则检查如果EDA软件支持。或者人工导出测试点坐标和布局图进行可视化审查。节点四发板制造前。将包含测试点、基准点信息的制造文件包Gerber、钻孔、装配图发送给CM工程团队做最终的可制造性/可测试性分析并根据反馈做最后调整。5.3 与团队和供应链的协同技巧DFT不是硬件工程师一个人的战斗。对内需要和项目经理、软件工程师、测试工程师充分沟通。项目经理需要理解DFT对项目周期和成本的长期价值从而给予时间支持。软件工程师可以帮你定义哪些软件可访问的状态寄存器或调试信息能通过预留的UART口输出辅助FCT测试。测试工程师则是你制定测试策略的最佳顾问他们最清楚生产线上的实际挑战和测试设备的局限性。对外与CM和元器件供应商建立良好沟通。CM的工艺工程师能提供最接地气的DFM/DFT建议。而一些芯片原厂的应用笔记里常常会有关于该芯片的测试和调试建议例如推荐的去耦电容布局、关键的测试引脚等这些都是宝贵的DFT输入。说到底把测试问题前置是一种专业习惯更是一种对产品全生命周期负责的态度。它要求我们在画每一根线、放每一个元件的时候都多问一句“以后别人怎么知道它工作是正常的如果它不正常怎么最快找到它” 这个过程开始可能会觉得有点繁琐但一旦形成肌肉记忆它会变成设计本能的一部分。最终你会发现前期多花的这些心思在项目后期会以十倍、百倍的效率提升和成本节约回报给你。当你的板子第一次上电就顺利跑通当生产线反馈测试直通率很高当售后报告故障板都能快速定位修复时你会觉得所有那些为测试点纠结的夜晚都是值得的。