ARTICLE DETAIL

资讯详情

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

任务剖面在ISO 26262失效率计算中的关键作用与实操指南

任务剖面在ISO 26262失效率计算中的关键作用与实操指南 做功能安全这些年我接触过不少硬件工程师和功能安全经理大家聊起ISO 26262多数人第一反应是风险分析、ASIL等级、安全机制这些偏“管理”和“架构”的东西。可一旦项目进入详细设计阶段真正让大家头疼的往往是失效率计算。而失效率计算里最容易糊弄过去、却又对结果影响最大的一个输入就是Mission profile中文常叫任务剖面或运行剖面。我见过太多项目组拿着供应商给的一个失效率表或者翻着SN 29500手册查几个基础失效率乘几个系数就交差了。至于这个器件在车里到底怎么工作、环境温度多高、一年跑多少小时、振动多大统统没细究。结果就是计算报告漂漂亮亮评审会上一问“你这个失效率对应的是什么使用场景”现场就冷场了。所以今天专门把Mission profile这件事掰开揉碎了讲清楚聊一聊它到底是什么、怎么构建、又如何一步一步变成失效率计算里那些实打实的系数。这篇文章适合正在做硬件失效率计算的功能安全工程师、硬件设计工程师也适合刚入门想搞明白FMEDA里那些λ值到底怎么来的朋友。1. Mission profile到底在算什么1.1 一句话理解任务剖面Mission profile字面理解就是“一个产品从出厂到生命终结经历过的所有外部应力和使用工况的统计描述”。放在汽车电子里它回答的核心问题就三个这辆车怎么开使用模式、在哪儿开环境条件、开多久使用时长和寿命周期。有人觉得这东西是可靠性工程师的事功能安全用现成的就行。但ISO 26262-5:2018的Annex D里关于失效率评估的流程中明确要求失效率的确定必须考虑任务剖面、工作模式、环境应力等因素。也就是说Mission profile不是可选项而是失效率计算里一条写进标准要求的输入链。举一个生活化的例子同样一颗MCU装在家用空调里和装在发动机舱里失效率能差出一个数量级。空调一年运行2000小时环境温度40℃已经算极端发动机舱常年60℃到90℃烘着点火钥匙一拧就热循环冲击振动还不断。你说这两者的失效率能一样吗肯定不一样。Mission profile存在的意义就是把这种“工作环境的差异”量化成可计算的参数让失效率不再是一个拍脑袋的固定值而是跟随真实使用场景动态变化的结果。1.2 任务剖面的四大组成模块构建一个完整的汽车电子产品Mission profile通常需要涵盖以下四类信息使用模式车辆每天运行多长时间、每年运行多少天、通电与断电的循环次数、总寿命周期比如15年或300000公里。环境应力环境温度分布不同温度区间各占多少时间比例、湿度、盐雾、粉尘、太阳辐射等。机械应力振动等级安装在发动机上还是车身、悬架位置、机械冲击频率、随机振动功率谱密度等级。电气应力供电电压波动范围、负载电流变化、功率循环power cycling频次、浪涌和瞬态过压情况。这里面对失效率计算影响最大的通常是使用模式里的时间占比和环境温度分布。机械振动和电气应力在IEC 61709等标准里也有对应的系数但很多供应商的计算方法对这两块的量化颗粒度并不细属于“知道有影响但难以精确建模”的状态。所以我们在项目实践中通常优先把温度和通电时间这两个维度做准其他维度通过降额设计和安全裕量吸收。还有一点容易被忽略Mission profile要做的不是“平均工况”而是“带权重的工况分布”。也就是说你得知道器件在40℃下工作了多久、在70℃下工作了多久、在90℃下又工作了多久而不是简单给一个“年均温度60℃”。因为后面计算失效率要用到Arrhenius公式失效率和温度是指数关系平均值一糊弄偏差会非常大。2. 失效率计算的方法论与公式拆解2.1 从参考失效率到实际失效率进行失效率计算时业内用得最多的参考数据源是IEC 61709对应欧洲的SN 29500系列以及美国的MIL-HDBK-217系列。这些标准手册给出的是元器件在特定参考条件下的基础失效率记为λ_ref。但元器件在车上的实际应力水平和参考条件不一样所以要把各种应力系数乘上去得到实际失效率λ。ISO 26262-5的Annex D.2里推荐的失效率计算方式本质上就是基于这些标准手册的扩展模型核心公式可以写为λ λ_ref × π_T × π_E × π_Q × π_V × π_other其中λ_ref参考条件下的基础失效率通常手册直接给π_T温度应力系数由Arrhenius模型导出是温度的函数π_E环境应力系数区分车舱内、发动机舱、底盘等安装环境π_Q质量系数根据元器件质量等级选取π_V电压应力系数适用于电容、MOSFET等对电压敏感的器件π_other其他系数比如电流、机械应力等视器件类型而定这个公式本身不难难点在于每个系数怎么取、怎么算。大多数项目争议最大的就是π_T和π_E。π_T要基于Mission profile里的温度分布逐段计算π_E要结合安装位置和任务剖面里的振动、湿度等信息来定。所以你会发现整条链路是这样的Mission profile → 应力参数 → 修正系数 → 实际失效率 → FMEDA汇总。Mission profile计算不准确后面全白搭。2.2 温度系数π_T和Arrhenius模型的工程含义温度对电子元器件失效率的影响工程上普遍用Arrhenius方程来描述化学反应速率随温度的变化。失效机理本质上是物理化学过程比如金属电迁移、介质击穿、键合线老化这些过程都遵循热激活规律。Arrhenius方程的标准形式是AF exp[(Ea / k) × (1/T_ref - 1/T_actual)]其中AF加速因子Acceleration FactorEa激活能单位eV反映失效机理对温度的敏感程度k玻尔兹曼常数约8.617 × 10⁻⁵ eV/KT_ref参考温度绝对温标KT_actual实际工作温度绝对温标K从公式可以直观看出温度每升高一些失效率不是线性增长而是指数增长。不同失效机理的激活能不一样。硅半导体器件典型失效机理的Ea大约在0.3到0.7 eV之间电解电容的Ea可能在0.6到1.0 eV而封装互连、焊接点热疲劳的Ea往往更高。选低了会低估温度影响选高了又会造成过于保守的估计所以Ea的选取必须要有依据。在工程计算里π_T和AF的关系是π_T AF。也就是说你算出来一个加速因子这个因子就是温度应力修正系数。参考温度取多少、实际温度取多少直接决定了π_T的大小。SN 29500手册中参考温度一般取器件在额定负载下的热点温度具体数值需要查表。而任务剖面提供的就是T_actual的分布比如一年中12%的时间温度是60℃30%的时间温度是85℃等等。3. 从剖面到参数完整实操流程3.1 第一步把车辆使用场景翻译成时间占比分布构建Mission profile时最忌讳的是直接从网上抄一份所谓“标准剖面”。每个项目的目标市场、车型定位、使用习惯都不一样直接抄很容易出现“拿着欧洲的驾驶习惯算中国南方的运行温度”这种离谱情况。实操中我一般会按下面几步走确定寿命目标查需求文档确定整车寿命是15年/300000公里还是10年/200000公里。这个数字决定了总的通电小时数。定义使用模式百分比比如城市工况40%、市郊工况30%、高速工况20%、拥堵工况10%。不同工况下发动机转速、环境温度、振动特性都不同。估算年运行时间比如平均每天驾驶2小时一年就是730小时如果每天开4小时一年1460小时。这个数据最好来源于真实的用户调研或大数据采集而不是拍脑袋。分解温度区间占比结合目标销售区域的气候数据把环境温度分成几个区间比如-40℃~-20℃、-20℃~0℃、0℃~25℃、25℃~40℃、40℃~60℃、60℃~85℃等再根据一年8760小时推算每个区间的时长占比。下面是一个简化的例子假设一台车面向华南地区年均行驶时间800小时停车但通电时间很少忽略使用模式大致是城市40%、市郊30%、高速20%、拥堵10%。再结合当地气候可以做出一个简化任务剖面表温度区间℃城市工况时长市郊工况时长高速工况时长拥堵工况时长全年合计小时-10~02015105500~25130100703033025~4012090553029540~604030201010060~851555025合计32524016075800有人会问为什么还要分成不同工况因为不同工况下器件自身的发热和散热条件不一样。高速时发动机舱温度高、风冷条件好拥堵时怠速、发动机舱热量积聚电子控制单元附近的温度可能比高速还高。所以温度区间和工况结合才能比较真实地反映器件所处的热环境。3.2 第二步从环境温度到器件结温/热点温度任务剖面给的是环境温度或周边空气温度但失效率计算要用的是器件自身的温度比如半导体要用结温Tj电阻电容用表面热点温度。这一步是关键也是最容易出错的地方。器件温度 环境温度 温升。温升来自器件自身的功耗和热阻。公式是T_device T_ambient P × R_th其中P是器件功耗R_th是器件到环境的热阻。对于功率器件这个温升可能高达20℃甚至40℃对于小信号逻辑芯片可能只有1℃到5℃。实操中我建议的做法是让硬件工程师提供每个关键器件的功耗和热阻算出典型温升。如果拿不到精确热阻可以用热仿真软件如Flotherm、Icepak或者红外热像仪实测电路板上的热点温度。实在没条件保守一点的做法是在环境温度基础上加10℃到15℃作为器件温度并在报告中注明假设条件。比如上表中40~60℃区间如果一颗LDO的温升是20℃那么器件实际温度就在60℃~80℃区间的上部附近。失效率计算针对的是器件温度不是环境温度这个一定要想清楚。3.3 第三步分段加权计算π_T有了温度分布和器件温升就可以分段计算温度应力系数了。假设参考温度T_ref取的是SN 29500标准里的“热点参考温度”比如某类半导体器件T_ref 55℃以手册为准器件结温温升取20℃。那么每一段的加速因子计算方法是取该温度区间的代表温度比如区间中值加上温升后作为T_actual然后用Arrhenius公式计算AF再用该区间的时间占比加权求和。举例说明区间40~60℃取中值50℃加上温升20℃T_actual 70℃ 343.15 K。区间0~25℃取中值12.5℃加上温升20℃T_actual 32.5℃ 305.65 K。假设激活能Ea 0.7 eVT_ref按55℃计328.15 K用公式AF exp[(0.7 / 8.617e-5) × (1/328.15 - 1/343.15)]先算括号里的温差项1/328.15 ≈ 0.0030471/343.15 ≈ 0.002914两者相减得0.000133。乘以0.7 / 8.617e-5 ≈ 8125得到约1.081。再取指数AF ≈ 2.95。也就是说当器件在70℃环境下工作时失效率是参考温度55℃下的将近3倍。而如果只看环境温度50℃而不加温升AF可能只有1.4左右。差距就是这么大所以温升处理不可忽略。把所有温度区间的AF都算出来然后按时间占比加权得到一个“综合温度应力系数π_T_composite”。具体公式就是把每个区间的AF乘以其时间占比然后求和。如果器件有时处于完全断电状态断电期间失效率可以视为0对大多数电子器件来说断电不工作就不产生与运行相关的失效率但仍需考虑存储环境的影响所以总通电时间占比也要算进去。3.4 第四步其他修正系数与最终失效率汇总温度系数算完接下来按器件类型选取其他系数π_E环境系数IEC 61709里区分了地面固定Ground Fixed, GF、地面移动Ground Mobile, GM等环境。汽车电子一般对应GM环境系数通常在2到6之间。如果装在发动机舱振动和温度更恶劣可以适当取高值装在座舱内可以取低值。π_Q质量系数车规级元器件AEC-Q100/Q200认证通常取1工业级可能取2甚至更高消费级更高。这反映了元器件在生产筛选和质量控制上的差异。π_V电压应力系数主要针对电解电容、薄膜电容、MOSFET等与器件承受电压和额定电压之比的二次方或三次方相关。电压裕量越大系数越接近1。π_其他比如电感电流、电阻功率等。以厚膜电阻为例功率降额到50%以下时失效率会明显减少系数可以取0.5到0.8。把所有系数列乘乘以参考失效率就得到该器件在任务剖面下的实际失效率。注意ISO 26262里失效率的单位通常是FITFailures In Time即10^9小时内的失效数。一个器件算出来比如5 FIT就意味着在10亿小时的工作时间中预期失效5次。FMEDA里把所有安全相关器件的失效率汇总再乘上诊断覆盖率就得到残余失效率这个值要跟目标值比如ASIL B的100 FIT去对比。4. 常见问题与避坑指南4.1 激活能怎么选才有说服力Ea的选取往往是评审会上被挑战最多的地方。很多人偷懒一律取0.7 eV。但不同失效机理的Ea差别很大半导体芯片内部失效如电迁移、栅氧击穿的Ea一般在0.3到0.7 eV封装和互连相关的失效Ea比较高可能0.7到1.0 eV而电解电容的干涸失效Ea通常在1.0 eV以上。我建议的做法是根据器件类型和主要失效机理分别选取Ea并在报告里引用来源——可以是IEC 61709里的分类也可以是供应商提供的可靠性手册或者是JEDEC JEP122系列里的失效机理激活能数据。最忌讳的就是全项目都用0.7 eV既不合理也经不起推敲。另外如果同一个器件有多种主要失效模式且Ea差异较大可以按失效模式分别算失效率再相加虽然工作量大了但结果更扎实。4.2 别把“平均温度”直接拿来算我见过不少报告用全年平均温度代入Arrhenius公式算一个“平均AF”这种做法看似省事实际上是错的。因为Arrhenius公式是指数函数函数的平均值不等于平均温度代入函数后的值。温度分布越宽这种近似带来的偏差越大。举一个极端的数字假设某器件一半时间在0℃一半时间在100℃算术平均是50℃代入公式算出AF是1但真实的做法是0℃的AF很小100℃的AF很大加权后的平均AF可能远大于1。如果这个器件位于发动机舱温度波动剧烈用平均温度计算会严重低估失效率。所以一定要用“分段计算、时间加权”的方法这是Mission profile计算中最重要的工程原则之一。4.3 确认剖面的时间基准避免百分比幻觉任务剖面里经常出现百分比比如“发动机舱温度大于80℃的时间占1%”。但如果全年总运行时间只有800小时那1%是8小时如果总运行时间是8000小时1%就是80小时失效率差异可能很大。所以任何Mission profile都必须同时给出百分比和对应的绝对时间否则后续计算没有依据。我在评审时习惯拿一个具体问题检查剖面是否靠谱“这个器件一年通电多少小时”如果对方支支吾吾说明剖面还没真正建立起来。一年2000小时和一年8000小时算出来的FIT差了不是一星半点这个数字是失效率计算里最基础的地基。4.4 注意失效率计算与安全目标的连接最后说一个很多人忽略的点失效率计算不是为了凑数字而是为了做FMEDA为了验证安全目标能不能达成。所以计算出来的λ值最终不是放到报告里吃灰的它要参与以下判断单点故障度量SPFM、潜伏故障度量LFM、随机硬件失效概率目标值PMHF。这些度量和失效率直接相关如果Mission profile偏乐观失效率偏低最后通过了一条实际上并不安全的设计那问题就大了。所以我的习惯是Mission profile尽量取偏保守的参数尤其在温度、振动这些主要应力上宁可高估不能低估。如果项目还处于开发早期使用工况不够明确那就定义一个偏严苛的包络剖面后续拿到实测数据再逐步细化。安全这事最怕的就是“看起来没问题”。5. 写在最后的经验做了不少项目的失效率计算之后我的体会是Mission profile这东西看起来只是失效率计算流程里的一个前置输入实际上它决定了整个FMEDA的可信度。报告里的公式再漂亮系数选取再严谨只要剖面本身拍脑袋结果就站不住脚。所以我现在做项目都会建议团队把任务剖面的构建当成一个独立的设计活动来做拉上系统工程师、硬件工程师、可靠性工程师一起开几次评审会把使用场景、环境条件、寿命目标一条条对齐。这个工作放在需求阶段做成本最低等设计冻结了再改代价就大了。另外Mission profile最好是动态更新的随着路测数据、售后数据的积累不断地把假设替换成实测值这一步会让失效率计算越往后越精确。希望这篇分享能让更多人重视起失效率计算里这个最不起眼却又最关键的环节。各位在项目里如果对Mission profile的构建和失效率计算有什么心得或踩坑经历也欢迎多交流这个方向值得大家慢慢磨。
返回列表