简介:JESD22-B110B.01《机械冲击——器件与子组件》是JEDEC于2019年6月发布的固态技术标准,面向从事半导体器件、电子组件可靠性验证与机械冲击试验的工程师、测试人员及质量管理人员,用于规范器件及子组件在机械冲击环境下的试验方法与判定依据。资源包内仅含1个PDF文件,约439KB,即该标准的完整正文,涵盖适用范围、试验设备要求、冲击脉冲波形与严酷等级、测试程序及结果记录等条款,可直接用于试验方案制定、标准条款查阅与合规性对照。目前已有45人学习下载,适合需要快速获取权威原文、对照开展冲击测试或编写可靠性文档的读者参考使用。
1. 一份被低估的机械冲击试验底稿:JESD22-B110B.01 到底能解决什么问题
做器件可靠性的人,迟早会碰到一个尴尬场面:客户问“这颗料过没过机械冲击”,你手里只有一份供应商的合格声明,却说不清测试条件到底是 1500g/0.5ms 还是 500g/1ms,更说不清自由态和安装态的区别。JESD22-B110B.01 就是填这个坑的。它是 JEDEC 体系下针对器件与子组件的机械冲击试验方法,2019 年 6 月发布,替代 2013 年的 B110B 版本,核心是把“半正弦脉冲、峰值加速度、速度变化、脉冲持续时间”这套参数体系讲清楚,并给出自由态 30 次、安装态 12 次的冲击流程。适合封装可靠性工程师、板级验证人员和来料品质岗,尤其是需要把测试条件写进报告、又不想凭记忆拍脑袋的人。
这份文档不是教程,是方法标准,读起来干涩,但每一张表都是可以直接抄进试验大纲的硬参数。下面按“先搞懂参数体系、再落到两种测试状态、最后讲设备和排错”的顺序拆,中间穿插我实际做试验时踩过的坑。
2. 半正弦脉冲的四个参数:加速度、脉宽、速度变化、等效跌落高度怎么互相咬死
2.1 为什么是半正弦,而不是方波或三角波
标准明确要求加速度脉冲为半正弦波形,峰值加速度允许偏差不超过 ±10%,速度变化允许偏差 ±10%,脉冲持续时间允许偏差 ±15%。这三个容差是绑在一起看的,不是各自独立达标就行。半正弦的好处是它同时定义了峰值和积分面积:速度变化就是加速度对时间的积分,半正弦的面积等于 2/π 乘以峰值乘以脉宽,标准里直接给了公式:
velocity_change = 2 * (std_g * acceleration_peak_g * pulse_duration) / pi drop_height = 0.5 * (velocity_change)^2 / std_g这里 std_g 取标准重力加速度,acceleration_peak_g 是以 g 为单位的峰值,pulse_duration 单位是秒。举个具体例子,服务条件 A 是 500g、1.0ms,代入得速度变化约 312 cm/s,等效跌落高度约 49.7 cm,和 Table 1 里的数值对得上。这个公式的价值在于:当试验机只能设定峰值和脉宽时,你可以反算速度变化是否落在容差内,而不是等报告出来才发现积分面积偏了。
脉宽的测量点也有讲究,标准规定从上升沿达到峰值 10% 的时刻量到下降沿回落到峰值 10% 的时刻,不是半高宽。很多人用示波器游标随手一卡,量成半高宽,结果脉宽系统性偏小,速度变化跟着偏,最后判定“设备不达标”,其实是测量方法错了。
2.2 八个自由态服务条件怎么选
Table 1 给了 A 到 H 八个服务条件,从最温和的 C(100g/2.0ms)到最猛的 H(2900g/0.3ms)。选哪个不是拍脑袋,而是看器件在生命周期里会遭遇什么。加工、包装、运输阶段的冲击通常脉宽偏长、峰值偏低,对应 C、D、E 这类;板级装配和现场操作可能出现短脉宽高峰值,对应 F、G、H。我一般的做法是先按产品运输剖面估一个等效跌落高度,再反查表里最接近的速度变化,而不是直接挑峰值最大的那一档——挑最大档看着保险,实际上会把本来合格的器件判死,也会让试验机长期跑在极限附近,夹具松动和传感器过载的风险都上来了。
| 服务条件 | 峰值加速度 (g) | 脉宽 (ms) | 速度变化 (cm/s) | 等效跌落高度 (cm) |
|---|---|---|---|---|
| H | 2900 | 0.3 | 543 | 150 |
| G | 2000 | 0.4 | 499 | 127 |
| B | 1500 | 0.5 | 468 | 112 |
| F | 900 | 0.7 | 393 | 78.9 |
| A | 500 | 1.0 | 312 | 49.7 |
| E | 340 | 1.2 | 255 | 33.1 |
| D | 200 | 1.5 | 187 | 17.9 |
| C | 100 | 2.0 | 125 | 7.90 |
这张表建议直接抄进试验大纲,但要注意表里的速度变化是按公式算出来的理论值,实际试验机设定后要用加速度传感器实测积分复核,偏差超过 ±10% 就得调。
2.3 自由态与安装态的判定边界
自由态是把器件或子组件刚性固定在试验台上,让全部冲击量传到本体,总共 30 次:三个正交轴 X、Y、Z,每个轴正负两个方向,每个方向 5 次。安装态是把子组件用夹具支撑起来,允许一定挠曲来模拟实际使用,总共 12 次:三个轴正负方向各 2 次。这两个数字不能混用,我见过有人把安装态做成 30 次,理由是“多打几次更保险”,结果子组件焊点疲劳累积,失效模式从冲击断裂变成了疲劳裂纹,报告没法用。
安装态的夹具也有明确要求:优先用开槽或夹持的“画框”式支撑,或者四点螺栓固定的凸台夹具,接触点距离任何器件不得小于 1 英寸。夹具的支撑方式、安装尺寸、子组件的一阶或几阶最低谐振频率都要记录。谐振频率这一项最容易被漏,但它决定了夹具是不是在“放大”冲击——如果夹具一阶谐振落在脉冲主频附近,实测加速度会明显高于设定值,这时候报告里的数字就不可信了。
3. 把标准落成试验步骤:从样品准备到 30 次冲击的执行顺序
3.1 样品准备与预处理的可复现流程
标准要求样品随机抽取、代表生产批次。如果器件或子组件在测试前可能经历返工、复用、重装、老化等应力过程,这些过程要先做,并且记录在测试硬件准备文档里。这一步的意义是让冲击试验测的是“最终状态”的器件,而不是“刚下线还没经历任何工序”的理想样品。
一个可复现的准备顺序我一般这么排:
- 随机抽取样品,记录批次号和数量,自由态至少留一组已知良品做预试验校准。
- 按实际工艺做预处理:回流、返修、清洗、老化,按真实顺序来,不要为了省事跳过。
- 做初始电测和外观检查,记录基准数据,尤其是焊点和引脚共面性。
- 按自由态或安装态装夹,装夹力矩和接触点位置写进记录。
- 用已知良品跑一次低量级脉冲,确认测量链路和夹具状态正常。
第 5 步是后悔药。标准里提到“每当测试新样品时,建议保留一组已知良品做预试验校准”,这句话看着像建议,实际是省时间的做法。夹具螺栓松了、传感器线缆接触不良、滤波器设置错了,这些问题在低量级预试验里就能暴露,不用等打完 30 次才发现数据全废。
3.2 装夹与方向定义:live-bug 和 dead-bug 别搞反
标准用 Figure 1 和 Figure 2 定义了两种封装朝向:live-bug 是焊球朝下,dead-bug 是焊球朝上。三个正交轴的正负方向也随之定义。装夹时最容易翻车的地方是方向记录:X 轴正向打了 5 次,负向打了 5 次,但记录里只写“X 轴 10 次”,复核的人根本不知道正负各几次。我的习惯是记录表里每个方向单独一行,写清轴向、正负、次数、实测峰值、实测脉宽、实测速度变化。
装夹刚性也是自由态的关键。标准要求器件或子组件刚性固定在试验台上,使全部规定冲击量传到本体。实际做的时候,夹具和台面之间如果有薄垫片、双面胶或者螺纹没拧到底,冲击波形会出现高频毛刺,峰值虚高。判断方法很简单:看实测波形的上升沿是否光滑,如果上升沿有明显振铃,先查装夹,不要急着调试验机。
3.3 执行 30 次冲击与数据记录
自由态的执行顺序是三个轴、每轴正负两向、每向 5 次,合计 30 次。安装态是每向 2 次,合计 12 次。每次冲击之间要不要间隔、间隔多久,标准没有硬性规定,但实操中建议留出足够时间让夹具和样品回稳,尤其是安装态有挠曲的场合,连续快打会让挠曲叠加。
数据记录至少包含:服务条件代号、峰值加速度设定值与实测值、脉宽设定值与实测值、速度变化实测值、冲击方向、累计次数、试验日期、设备编号、传感器编号、滤波器带宽。滤波器带宽这一项标准有明确要求:测量系统低通滤波器带宽要大于冲击脉冲频率的 5 倍,传感器固有频率也要大于脉冲频率的 5 倍。脉冲频率等于 1/(2×脉宽),比如 0.5ms 脉宽对应 1000Hz,滤波器带宽就得大于 5000Hz。用了个 1kHz 低通去测 0.5ms 脉冲,波形会被削平,峰值和速度变化都偏小,这种数据拿去判定合格是自欺欺人。
4. 试验机与测量链的选型:2900g、544cm/s 这些上限意味着什么
4.1 设备能力怎么对照标准核对
标准第 2 章给了设备能力要求:峰值加速度最高 2900g,速度变化 100 到 544 cm/s,脉宽 0.3 到 8.0ms。自由态测试只需要 125 到 544 cm/s 的速度变化和 0.3 到 2.0ms 的脉宽;安装态需要 100 到 544 cm/s 和 5.0 到 8.0ms。注意安装态的脉宽下限是 5.0ms,比自由态的 2.0ms 宽得多,这意味着同一台冲击台如果只按自由态选型,可能在安装态长脉宽条件下速度变化不够。
核对设备能力时不要只看厂家标称的最大值,要看“在目标脉宽下能否同时达到目标峰值和速度变化”。有些台子标称 2900g,但那是在 0.3ms 下测的,换到 1.0ms 脉宽,峰值可能掉到 1000g 以下。做法是让设备方提供目标工况点的实测波形,或者自己用已知良品在目标工况跑一遍,看实测积分面积是否落在 ±10% 内。
4.2 传感器、滤波器与校准的三个硬约束
测量链有三个硬约束:传感器固有频率大于脉冲频率 5 倍,滤波器带宽大于脉冲频率 5 倍,滤波不能替代良好的测量布置。第三条最容易被忽视。有人波形不好看就加滤波,把毛刺滤掉,报告上好看了,但真实的高频成分也被抹掉,峰值被低估。正确顺序是先查装夹刚性、线缆固定、传感器安装面平整度,这些做到位了,波形自然干净。
校准方面,标准建议每次测试新样品前用已知良品做预试验校准,如果校准测试定期做,后续按周期做预防性维护即可。我的做法是每换一次夹具或传感器就做一次低量级校准,不省这一步。校准用的已知良品要单独存放,不能和正式样品混在一起,否则打了几次之后它自己就不是“已知良品”了。
4.3 安装态夹具的谐振频率怎么测
安装态夹具要求记录子组件的一个或多个最低谐振频率。测法常见的是用冲击或振动激励加加速度计扫频,找到第一个明显峰值。这一步不是形式主义:如果夹具一阶谐振接近脉冲主频,冲击会被放大,实测峰值可能比设定值高 20% 以上。遇到这种情况,要么改夹具刚度把谐振移开,要么在报告里注明放大系数并说明判定依据。我见过一份报告,实测峰值 1800g 而设定是 1500g,复核时发现夹具谐振就在 1kHz 附近,正好对上 0.5ms 脉冲的主频,整批数据只能重做。
5. 避坑与排查:五条来自试验台的翻车记录
5.1 现象:实测速度变化总是偏小 15%,峰值却正常
原因:脉宽测量点取成了半高宽,而不是峰值 10% 处。半高宽天然比 10% 宽度小,积分面积跟着小。解决:把示波器游标改到 10% 阈值,或者直接用设备自带的积分功能,按标准定义取点,重新测一轮。
5.2 现象:波形上升沿有振铃,峰值虚高
原因:夹具和台面之间有垫片或螺纹未拧紧,接触刚度不足。解决:拆掉垫片,螺栓按对角顺序拧到规定力矩,重新跑低量级预试验看上升沿是否光滑。振铃不消就不要打正式样品。
5.3 现象:安装态打了 30 次,焊点出现疲劳裂纹
原因:把自由态的 30 次套用到安装态,安装态标准是 12 次。解决:按 Table 2 的服务条件重做,次数改为每向 2 次。已经出现疲劳裂纹的样品不能再用,失效模式已经变了。
5.4 现象:滤波器带宽设成 1kHz,0.5ms 脉冲峰值被削
原因:脉冲频率 1/(2×0.5ms)=1000Hz,滤波器带宽需大于 5000Hz,1kHz 低通把主频成分削掉了。解决:换带宽大于 5 倍脉冲频率的滤波器,或者暂时关闭低通,先确认装夹和线缆没问题再决定是否滤波。
5.5 现象:报告里只写“X 轴 10 次”,复核无法判断正负向
原因:记录粒度不够。解决:记录表按轴向、正负、次数、实测参数逐行填写,每个方向单独一行。这一条看着琐碎,但客户审核和内部复核都卡这个。
6. 进阶用法:把标准参数变成可复算的试验大纲模板
标准读到能背不算本事,能把它变成一张可复算的表才算落地。我现在的习惯是建一个参数核算表,输入服务条件代号,自动带出峰值、脉宽、速度变化、等效跌落高度,再用实测值反算偏差百分比,超过 ±10% 或 ±15% 就标红。核心就三段计算,用 Python 写十几行就够:
import math STD_G = 9.80665 # m/s^2 def free_state_params(peak_g, duration_ms): """按 JESD22-B110B.01 Table 1 公式反算速度变化与等效跌落高度""" duration_s = duration_ms / 1000.0 # 半正弦脉冲面积:2/pi * 峰值 * 脉宽 velocity_change = 2 * (STD_G * peak_g * duration_s) / math.pi # m/s velocity_change_cms = velocity_change * 100 # cm/s drop_height_m = 0.5 * velocity_change ** 2 / STD_G return velocity_change_cms, drop_height_m * 100 # cm def check_tolerance(measured, target, tol): """偏差百分比判定,tol 为允许偏差(如 0.10 表示 ±10%)""" deviation = abs(measured - target) / target return deviation, deviation <= tol # 以服务条件 A(500g / 1.0ms)为例 vc, dh = free_state_params(500, 1.0) print(f"速度变化 {vc:.1f} cm/s,等效跌落高度 {dh:.1f} cm") # 实测速度变化 290 cm/s 时判定 dev, ok = check_tolerance(290, vc, 0.10) print(f"偏差 {dev*100:.1f}%,{'合格' if ok else '超差'}")这段代码的逻辑说明:free_state_params严格按标准给的半正弦面积公式算速度变化,再按 0.5×v²/g 算等效跌落高度,单位统一到 cm/s 和 cm,和 Table 1 对齐。check_tolerance把实测值和目标值做相对偏差,容差参数化,自由态峰值和速度变化用 0.10,脉宽用 0.15,调用时传不同 tol 即可。参数说明:peak_g 是峰值加速度以 g 为单位,duration_ms 是脉宽毫秒,measured 是实测值,target 是目标值。跑一遍服务条件 A,输出应该是 312 cm/s 和 49.7 cm 左右,和表里一致就说明公式没抄错。
这张表还能往前推一步:把每个方向的实测峰值、脉宽、速度变化填进去,自动算偏差并标红,报告里的“是否满足容差”就不用人工一个个按计算器了。我一般还会在表里加一列“夹具谐振频率”,安装态测试时填,方便事后追溯放大效应。
从那以后我每次开新项目做机械冲击,都强制先跑一遍这个核算表,再让试验台动起来。标准文档本身不会告诉你夹具会松、滤波器会削峰、记录会漏方向,但这些坑踩过一次就该变成流程里的固定检查项。希望帮到你。
本文还有配套的精品资源,点击获取