ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

System Controller量产测试:从通信链路到数据闭环的实战细节

System Controller量产测试:从通信链路到数据闭环的实战细节 做System Controller量产测试最磨人的阶段不是第一次搭建测试台架而是当产品从研发样机进入量产之后产线端出现的那一堆“看起来小、影响却很大”的问题。这个系列的上半篇聊了测试台架怎么搭、仪器怎么选这一篇我打算把Manufacturing Test里最容易被忽略、但最影响直通率和交付节奏的细节拆开讲清楚。如果你负责的是一条控制器整机产测线无论是车规控制器、储能控制器还是工业设备里的核心控制单元这篇内容应该都能帮上忙。我会按一条实际产线的测试逻辑来走先划清整机测试的边界再讲通信链路实测然后落到故障注入、老化筛选、夹具接触不良和测试数据闭环这几个量产阶段的高频问题。这些都是我从实际产线上一个个坑里爬出来的经验应该比规格书上的标准流程更贴近真实情况。1. 先划清整机测试的边界System Controller产测为什么必须有并列的Phase 2任何一条System Controller生产线的测试都不是单一工位能干完的。从我参与过的几条产线来看测试通常被切成了三个阶段板级阶段做ICT和FCT主要查器件焊接、上电功能、固件能不能刷进去整机阶段做装配完成后的EOL测试验证装配、线束、通信、保护、老化筛选出货阶段做OQC检查外观、附件、包装、标签和抽样。如果你把一个控制器的生产测试流程画成一条时间线Phase 2就是中间那段最容易被“想当然”对待的部分。很多人把整机测试理解成“把板级测试在整机上再跑一遍”这是我在产线上看到的最大误区。整机测试的核心不是重复板级测试而是验证两件事装配过程有没有引入损伤系统级交互是否正常。板级阶段测的是裸板整机阶段已经是带外壳、带线束、带连接器、带散热结构的完整产品两者面临的失效模式完全不同。装配引入的风险常见的有这么几类螺丝打偏压到走线、线束被外壳边缘压伤、连接器插不到位、散热硅脂漏涂、接地端子接触不良。这些故障在板级测试阶段根本测不到因为它们本来就不存在。系统级交互风险则是板级单测覆盖不到的比如多个继电器同时吸合导致电源电压跌落、通信报文被大电流切换干扰、壳体与接地回路带来的电磁兼容问题。这些故障只有在整机状态下把所有部件接在一起跑才会暴露出来。我个人的判断原则是整机测试项应该满足“装配敏感、系统级交互、需要终态环境”中的至少一条否则就该砍掉或放回板级。产线节拍是硬约束每多一个测试项就多一份设备成本和工时不分青红皂白把板级测试项原样挪到整机阶段只会拖垮产能对质量提升几乎没有帮助。测试阶段覆盖重点典型设备与手段板级阶段器件焊接、ICT、FCT、程序烧录飞针测试仪、ICT治具、烧录器整机阶段装配损伤、系统交互、通信、保护、老化EOL测试台、负载箱、老化架、通信分析仪出货阶段外观、附件、包装、抽样扫码枪、标签机、目检、OQC抽检Phase 2的另一个重要作用是把产品从“电气上能工作”推进到“用户实际使用场景下能稳定工作”。研发测试关注功能上限产线测试关注装配一致性和可靠性边界两者的目的不同测试项设计自然也不同。2. 通信链路实测CAN、RS-485、以太网在产线端最容易踩的通道问题System Controller和外部交互的几大通道在量产测试里最容易出问题。通信链路一旦不稳定测试结果就会变得飘忽不定白班和夜班数据对不上产品本身却可能是好的。这类问题排查起来非常伤脑筋所以我单独拿一章来写。2.1 CAN接口的产线级检查终端电阻、波特率与Busoff恢复CAN口测试看起来是产线里最成熟的部分但每一步都有坑。上电后第一步通常是读版本号和序列号用的是UDS诊断服务或者厂商自定义协议。这步测试看似简单坑却不少。首先是波特率不一致的问题。你测试程序配了500kbps控制器实际运行在250kbps诊断请求还能偶尔成功因为CAN的仲裁机制会把某些帧“将就”过去但总线错误率极高偶发超时就成了家常便饭。产线上处理这个问题的标准做法是测试软件里加一个错误帧计数器或者直接用CANScope之类的工具盯着总线看错误帧数量。如果错误帧一直在涨先别怀疑产品硬件90%是波特率配置错了。其次是终端电阻。有些控制器内部已经集成了120Ω终端电阻但产线测试治具里又额外接了一个等效出来就是60Ω总线差分幅值会被拉低通信虽然不至于完全断掉但抗干扰能力明显下降。我的做法是专门设计一个“终端电阻测量”测试项在控制器断电状态下从CAN_H和CAN_L端子处测电阻值。这里要注意测出来的值不是简单的两个端子的电阻如果控制器内部控制电路有偏置网络需要先看原理图确认测量值范围。最后是Busoff恢复测试。很多系统控制器的规格书里都写了“节点进入Busoff后应在规定时间内自动恢复”但产线测试经常把这条漏掉。实现方式其实不复杂测试软件发一段连续错误帧把节点强制打到Busoff然后恢复正常通信测量节点从Busoff到能够正常收发报文的恢复时间。这个测试在研发阶段不难做但在产线端很少有人配置因为需要测试系统具备主动制造错误帧的能力。如果你的客户对总线稳定性要求高这个测试项值得加。2.2 RS-485的差分电平与A/B反接问题RS-485在工业控制器的产线上太常见了但恰恰因为常见很多测试工程师容易忽略它的特殊性。A/B线反接是产线端最容易出现的接线错误测试时最直接的现象是上电后通信完全失败或者收到乱码。大多数RS-485收发器在A/B接反时不会损坏但通信就是不通而且这个故障往往不是产品问题是测试线缆接反了。判断A/B极性最可靠的方式不是看串口有没有数据而是用示波器直接量A和B之间的差分电压。正常通信时应该有明显的差分信号反接时波形极性是反的。产线测试里如果不想每台都上示波器可以在治具端做一个标准的A/B极性校验电路用比较器或LED指示极性是否正确这样操作员一眼就能看出问题。偏置电阻是另一个容易出问题的地方。RS-485总线在空闲状态下A-B之间的电压应该在200mV以上否则接收端会检测到不确定的电平产生误码。如果控制器的485链路在产线测试时经常出现偶发乱码先别急着换硬件量一下空闲状态下的静态差分电压。偏置不足通常是因为总线两端都没有加偏置电阻或者偏置电阻阻值过大。产线治具上建议在靠近控制器的一端加上标准的偏置网络确保空闲电平稳定。共模电压问题更隐蔽。如果控制器和测试治具之间地电位差过大比如接地不良导致地环路485收发器会发烫通信时好时坏。产线测试的地线检查非常重要治具地和控制器电源地之间应该等电位。我见过一个工位485通信天天出问题折腾了一个星期最后发现是测试电脑的电源适配器漏电导致USB转485模块的地和控制器地之间有几十伏的电位差。2.3 以太网和CAN FD的另外几个坑以太网在产线端的问题最常见的是劣质网线导致link training失败。工业控制器上有千兆以太网口测试治具里用的却是普通五类网线电磁环境稍微差点就link不上。建议在治具上使用短而固定的成品网线并且纳入定期更换计划。很多人忽略了一个细节产线治具的网线每天被压床压、被操作员踢线缆损坏率比想象中高得多。CAN FD和CAN相比协议本身没大变化但有个特别容易踩的坑仲裁段和数据段的波特率可以不同。产线测试脚本配置时经常只填了仲裁段波特率忘记填数据段或者数据段波特率填错导致通信超时。这个问题非常隐蔽因为控制器本身可能正常测试软件也能连上但报文就是出错整个排查过程容易浪费半天时间。通信类测试还有一个通用的原则要有重试机制但必须记录首试失败计数。很多产线测试软件为了追求高的直通率遇到通信超时就自动重试重试通过就判Pass。这样做表面上良率很漂亮但偶发的通信故障被掩盖了后面做数据分析时完全无从下手。正确做法是首试失败先记录下来再进入重试流程最终结果Pass的同时保留首试失败次数这样质量工程师可以通过统计首试失败率去发现潜在问题。3. 故障注入与边界条件短路、掉电、过载测试到底怎么设阈值System Controller在整机阶段需要接受比板级测试更贴近实际使用场景的边界测试。故障注入不是随便拿根线短路一下就算完事阈值怎么定、持续时间多少、判定标准是什么都要有依据。3.1 阈值不是拍脑袋从规格书反推边界条件测试阈值的第一来源是产品规格书。比如规格书上写“工作电压范围10~32V”那产线测试就应该设计成在9V和33V各保持一段时间检查控制器不复位、不误报故障、输出状态不闪断。这里有个细节测试的是边界保持不是瞬间浪涌所以测试软件要设置电压爬坡速率避免电源爬坡过快把真实的电压跌落问题掩盖掉。产线测试电源还有一个容易忽略的问题——线损。大电流下测试治具线缆如果太长会有明显压降。比如你在电源面板上设置9V但产品供电端子处实际只有8.6V这样测出来的边界结果根本没意义。正确做法是在产品供电端子附近用电压表回读实际电压或者使用带远端补偿remote sense功能的电源把补偿线直接连到产品供电端子处。同样的逻辑适用于电流信号。如果你用万用表串在回路里测电流万万用表本身的压降也会影响产品。建议用电流钳或高侧电流检测芯片避免测试设备本身改变被测产品的电气状态。3.2 短路保护测试真实短路而不是软件模拟对数字输出通道做短路保护测试是System Controller产测里的标准动作。但我的经验是一定要做真实短路不要只靠软件模拟。为什么因为保护电路的真实动作时间、重启后的恢复行为是软件模拟完全模拟不出来的。比如MOSFET短路保护动作时间是微秒级还是毫秒级只有真实短路时用示波器抓波形才能确认。产线端做真实短路测试通常是用一个低阻值的继电器或MOSFET把通道输出端对地短路。测试系统要监控这几个状态保护标志是否置位、输出电压是否被拉低、控制器是否发生意外重启。短路持续时间要足够长确保保护电路动作但也不能太长避免器件过热损坏。我一般设置短路持续1~2秒然后断开检查控制器是否能恢复正常输出。这里要注意一个很容易被忽视的问题一次性短路测试往往不够。保护电路在瞬间短路时动作正常不代表连续多次短路后还能正常。有条件的话同一个通道连续做几次短路-恢复循环确认保护电路没有“累积疲劳”。当然这会导致节拍变慢所以可以按通道类型抽样比如关键安全通道全部测次要通道按批次抽测。短路保护测试之后还要验证故障上报是否正确。很多控制器有诊断功能短路后应该上报对应的故障码而不是直接锁死或默默重启。测试系统要读取故障码和预期值比对确认故障上报链路完整。如果控制器具备自动恢复机制测试时要记录从短路消失到输出功能恢复的时间这个参数规格书里一般都有规定。3.3 掉电与上电时序异常瞬断下看门狗和非易失存储的表现快速掉电测试是模拟现场异常瞬断的场景。方法很简单控制器运行状态下电源突然断开然后快速重新上电。重点要看几个行为控制器能否正常复位、看门狗是否在工作、非易失存储里的配置参数和校准数据是否保持完好。曾经遇到过一款控制器快速掉电后配置文件被清空测试系统一读版本号发现配置丢失最后定位是MCU的掉电检测电路响应太慢没来得及保住数据。上电时序在板级测试可能已经测过但整机阶段还是要结合负载再测一次。因为接上负载后各路电源轨的上升时间会受容性负载影响本来正常的时序可能变得不合规。测试时可以用示波器的多通道同时抓几路电源轨的上电波形测量各路开始上升和达到稳定值的时间差和规格书要求比对。做故障注入测试时还要注意成本控制。不必对每一个DO通道都做全量短路测试可以按通道类型分组安全相关通道全测普通通道抽测。过载测试也可以用电子负载做额定电流的1.2倍持续几秒重点关注输出电压和纹波是否还在规格范围内。关键是要在覆盖率和节拍之间找到平衡不要想着一台设备把所有事都干了。4. 老化与温度循环的时间账筛选效率与漏测风险怎么平衡整机装配完成后一般会安排一段老化筛选目的是把浴盆曲线早期失效段的故障提前暴露在产线而不是用户现场。老化的时间怎么定是产测工程师最纠结的问题之一。时间短了筛不出问题时间长了拖垮产能这个账要算清楚。4.1 老化到底在筛选什么很多人在产线上做老化但说不清楚老化到底在筛什么。老化本质上是一个“时间换失效率”的筛选手段。装配过程中引入的虚焊、连接器接触不良、线缆压伤、功率器件散热不良这些缺陷在常温短时功能测试里未必暴露但通电发热后就会体现。比如一个电容焊接虚焊常温测试时接触电阻还在可接受范围温度升高后焊点膨胀接触电阻增大产品就开始出现偶发故障。老化就是给这些潜在缺陷一个暴露出来的机会。从失效模式上看老化主要筛的是哪几类问题虚焊和连接器接触不良通常会在热循环或振动条件下显现功率器件散热不良会在连续带载运行后表现为过热保护或参数漂移元器件早期失效比如电解电容漏液、继电器触点氧化需要一定时间的老化才会暴露。这些缺陷如果不在老化阶段筛出来到了用户现场就是售后不良成本完全不一样。4.2 老化时间怎么定从浴盆曲线到产线节拍没有任何一个老化时长对所有产品都合适。我见过有人把老化和温度循环混为一谈也见过有人直接照搬客户给的规格。实际上老化和温度循环的目的不同时间选择逻辑也不同。高温老化通常设定在50℃到60℃环境通电运行4到8小时主要暴露热相关缺陷温度循环则是在高温、低温之间交替做3到5个循环主要暴露热胀冷缩引起的机械应力问题带载老化则是按额定负载或额定负载的80%运行模拟长期工作状态。定时间的依据应该是早期失效率数据。新产品没有历史数据可以先定一个保守值比如8小时跑两个月观察产线直通率和售后不良率的变化。如果直通率稳定售后不良没有集中在早期失效段就可以逐步把老化时间降下来。如果售后不良里有相当比例发生在交付后的头几个月说明老化时间不够还要加回去。这个循环调整的过程比拍脑袋定一个“看起来合理”的时长要靠谱得多。老化方式主要目的常见时长注意点高温老化暴露热相关缺陷4~8小时温度要均匀避免局部热点温度循环暴露热胀冷缩应力缺陷3~5个循环高低温切换速率要有记录带载老化暴露功率和散热问题与额定负载匹配负载分配要均匀避免欠压老化的节拍问题往往被低估。一条产线如果日产能500台老化4小时就意味着老化架上同时要有至少100台产品在跑。老化架的容量规划要考虑峰值产能不能按平均值算。容量不够的时候有些工厂会分流做半载老化但这意味着部分产品没有经历完整的老化条件判定标准和复测项必须和满载老化统一否则数据没法对比。4.3 老化结束后的复测比老化本身更能暴露问题这是我反复强调的一点老化结束后必须有一次完整的复测而不是只看老化过程中有没有报错就放行。因为很多缺陷是老化之后第一次复测才暴露的。比如某个连接器端子老化后出现轻微松脱老化过程中接触电阻还没漂移到阈值之外但老化结束后的复测一开机振动、插拔、再次上电的冲击下接触不良就显现了。复测的测试项不能缩水至少覆盖上电、版本读取、通信、关键输出这几项。还有一个容易踩的坑老化架的温度曲线、电压值、电流值不做记录。有些老化架是多工位共用一个电源负载分配不均会导致某个工位电压被拉低产品在欠压状态下跑完整个老化过程等于白做。每次老化批次都应该保存温度曲线和电压电流记录一方面可以审计另一方面如果这批产品后续出了问题可以去回看老化时的数据。老化之后的产品在移转到下一工位时也要注意操作规范。我刚入行的时候遇到过一次批量故障最后查出来是老化结束后产品从老化架上拔下来时操作员用力过猛把连接器端子拉松了。这些操作细节对老化的有效性影响很大需要在作业指导书里写清楚并在现场做防呆设计比如使用带锁扣的连接器避免工人凭手感操作。5. 产线夹具与探针接触不良整机测试最隐蔽的失败模式排查做整机测试时间长了你会发现一个规律产品本身的问题到了后期其实不多真正让人崩溃的往往是测试系统自身的问题尤其是治具接触不良。这类问题不在于“能不能测出来”而在于“测出来的时候你根本不知道是产品坏了还是治具坏了”。5.1 一个让我排查了半天的真实故障现象有一回夜班某工位良率突然掉了5个点但白班的数据完全正常。操作员反映的现象是“时好时坏”有的产品插上去第一次测Fail拔下来重新插一次就Pass。当时第一反应是产品有问题于是把Fail品拿去其他工位复测结果全过。这时候才意识到问题出在测试系统不是产品。查到最后是治具上一根弹簧针磨平了。这根探针负责的是一个信号通道的接触正常接触电阻应该在20mΩ左右磨损后漂到了将近1Ω。信号本身的阻抗比较高1Ω接触电阻还不至于完全断掉但会把电压读数拉低一点测试系统的判断阈值卡得严于是判Fail。这种间歇性、随机性的接触问题是整机测试里最难排查的因为它不是百分之百失败而是偶发性失败换一个人来测可能又好了。5.2 完整的排查链路如果你也遇到类似的间歇性Fail问题我建议按下面的顺序排查不要上来就拆产品。第一步复测验证。同一台产品同一工位再测一次。如果复测通过优先怀疑测试系统而不是产品本身。第二步看失败数据。哪个测试项失败了失败值离边界有多远如果失败集中在同一个通道、同一个探针位置那大概率是接触问题。第三步测夹具回路电阻。不要只信万用表的粗略读数最好用四线法或者微欧计从测试机端子处量到探针针尖的完整回路电阻看是否明显偏大。第四步检查探针状态。针尖是否磨损、是否有氧化、弹簧力是否衰减。弹簧针的寿命一般在10万次左右但高电流通道会短很多。第五步检查压床气压。气动压床压力不足会让针压不够接触电阻就会漂移气压表数值要定期校准。第六步检查线缆。治具到仪器之间的线缆经常被反复弯折内部断芯非常隐蔽轻轻晃动时如果测试结果跟着变化那就是线缆的问题。排查步骤操作判断依据复测验证原工位重新测试同一产品复测Pass优先怀疑测试系统失败数据分析查看失败通道分布集中在同一通道指向接触问题回路电阻测量四线法测治具到针尖明显高于正常值即有问题探针状态检查目检测力计针尖磨损、弹簧力衰减气压检查查看气动压床气压表压力不足导致针压不稳线缆检查晃动线缆观察测试结果结果跟随晃动变化即断芯5.3 预防机制探针寿命台账和接触电阻检查项接触不良问题最有效的解决方式不是等它发生了再排查而是提前预防。给每个工装建立台账记录下压次数、保养记录、探针更换记录。探针的寿命分级管理普通信号针10万次左右高电流针因为发热和磨损更严重可能2~3万次就要更换。到寿命前就主动换掉不要等到良率掉了才去查。测试软件里可以加一条“治具自检”的测试项在测试开始前先短接产品端的几个关键回路测量治具到产品的接触电阻如果电阻超限直接报“接触异常”而不是“产品Fail”。这一条做好了能省掉一大半排查时间。在这几年的实践中我发现把“接触异常”和“产品Fail”分开显示对操作员和生产管理都非常友好——操作员不用每次看到Fail就以为是产品坏了生产管理也能通过接触异常率监控治具的健康状态。还有一个容易被忽略的点测试系统最好是连续监控接触电阻的变化趋势而不是只设置一个超限阈值。比如某个通道的接触电阻从20mΩ慢慢漂到80mΩ虽然还没超过100mΩ的阈值但已经是明确的退化信号。如果能对这个趋势做趋势图维护人员就能在它变成故障前安排更换探针把问题消灭在萌芽状态。6. 数据追溯与判定记录从测试项到MES的闭环产线测试和研发测试最大的区别是产线测试必须对每一台产品负责出了问题时要能追溯到具体哪一步操作、哪个测试项、哪台设备、哪名操作员。数据管理做不好产线的质量分析就像在黑屋子里走路撞到了才知道疼。6.1 测试记录的结构原始值比Pass/Fail更值钱每一个测试项都应该是完整的审计记录序列号、测试项名称、读到的原始值、上下限、判定结果、时间戳、测试脚本版本、测试工位编号、操作员。这些字段里最容易被忽略也最值钱的是原始值。很多测试软件只存Pass/Fail但这意味着丢失了大量有价值的信息。举个实际例子某通道电压规格是4.9~5.1V全部产品测试Pass数据很好看。但如果回看原始值可能会发现这批产品的电压值在4.99V到5.05V之间分布正在缓慢向边界漂移。这时候哪怕还没有Fail也已经暴露了某个元器件的参数退化趋势。没有原始值这种趋势分析就没法做。所以测试软件设计时我强烈建议把原始模拟量读数保存下来不要只存布尔判定结果。另一个容易被忽略的字段是测试软件本身的版本号。测试脚本经常被修改——调阈值、改顺序、加测试项——每次修改都应该有版本记录。分析批量问题时第一个动作就是确认那段时间用的是哪个脚本版本。我遇到过一起批量误判产品本身没问题但连续两天良率异常最后查出来是脚本更新时把某通道的上限值错写成了下限值。如果测试记录里没有脚本版本这种问题几乎无法定位。6.2 序列号与MES上传的完整链路序列号是产测数据的锚点从产品上线那一刻起所有数据都应该围绕序列号组织。控制器本身的序列号一般存在MCU的Flash或EEPROM里测试软件通过通信读取而不是只靠操作员扫码输入。防呆很重要如果操作员扫码枪扫错了码或者扫入了箱号而不是序列号产品数据就串了。最可靠的方式是控制器上电后自动读取自身序列号和扫码枪读到的一致两个序列号不一致直接判定为异常。测试完成后数据要上传MES上传格式要和MES团队事先约定好字段名、数据格式、单位都要统一。产线上最常见的MES问题是网络不稳定导致上传失败。没有本地缓存机制的话重启电脑后数据就丢了产品已经流到下一工位追溯链断裂。我建议测试软件一定要有本地缓存和自动补传机制即使网络长时间中断本地数据也不能丢网络恢复后自动补传。6.3 不良品的返修闭环必须全流程重测测试系统判定Fail之后要自动上传MES并生成维修工单。维修完成后产品必须重新跑一遍完整测试流程而不是只复测维修项。这个原则很容易被执行者忽略——有些人觉得“我只换了个继电器把继电器相关的测试项复测一下就行”但维修过程本身拆装、焊接、重新装配可能引入了新的损伤比如线束压伤、连接器插松、螺丝没拧紧。只复测维修项这些新损伤就漏过去了。返修品的测试数据要保留原始Fail记录和维修后的Pass记录不能把Fail记录覆盖掉。这个要求听起来很简单但很多产线在返修品复测通过后就直接存了新的Pass记录旧Fail信息被覆盖后续做故障分析时根本不知道这个产品曾经修过哪里。正确的做法是一条产品记录包含完整的Fail和Pass历史维修工单号和测试记录关联这样质量人员可以清楚地看到产品的全生命周期测试状态。在MES设计上还可以给返修品加一个“返修标识”这样在后续的数据统计中可以将正常品和返修品的良率分开统计。如果发现某个型号的返修率持续偏高就说明产品设计或生产工艺有问题不能只靠测试线来兜底。这几年搭System Controller产测线我最大的体会是Manufacturing Test表面上是测产品实际上是测产线自身的设计水平。夹具接触状态、脚本版本、数据字段完整性这些后台工作往往比测试项多一项少一项更影响最终结果。如果你正在搭建类似的产线建议先把工装台账和测试数据完整性做扎实再回头调测试项分配那样会少踩很多坑。后面有时间我会继续写量产爬坡阶段的良率数据分析用测试原始值反推装配工艺问题那个话题更有意思咱们到时候再聊。
返回列表