[导读] 在知乎上看到一个网友的问题:为什么自己设计的嵌入式系统稳定性远不如工业级产品?我觉得这是一个非常好的问题,尤其国内很多中小企业可能关注点更多在于产品的功能,而不在性能,产品功能很炫可是稳定性往往差强人意。所以就产品稳定性,来聊聊我的一些认知和体会。

什么是稳定性?

稳定性,英文中用(可靠性)Reliability engineering来研究,可靠性工程是系统工程的一个子学科,它主要研究设备无故障运行的能力。可靠性描述了系统或组件在指定条件下持续指定时间段内运行的能力。

一个产品一般从设计的角度基本包含哪些主要的设计呢?常见的嵌入式系统,可能包含机械设计、硬件设计、软件设计,那么从设计来谈一个产品的可靠性,就必然要从这几个主要的方面下功夫。另外工业级产品为什么表现的更加可靠呢?

为了要相对深入的谈这个问题,来看看这个相关的一些术语指标是怎么描述一个系统或者零件的可靠性的。

啥是可靠性概率?

可靠性定义为设备在规定条件下在指定时间段内将执行其预期功能的概率。从数学上讲,这可以表示为系统的可靠性是指在时间t内没有发生某F类故障的概率。

作何理解呢?系统开始工作的时间,是发生类故障的时刻。也即表征系统由于某类故障而失效的概率

啥是失效概率

有可靠性概率,自然就有失效概率,失效概率刚好与可靠性概率是互补,满足下面关系:

上面的概念是针对某类故障的统计规律,那么推广开来,从系统而言去掉下标F,也满足上述关系。一个系统由不同的组件组成。

系统失效率

当系统的寿命呈指数分布时,系统的可靠性为:,其中就是失效率(failure rate)的概念

这个曲线相信很多人应该见过,这就是产品的澡盆曲线,在产品前期老化阶段比较容易暴露故障,失效率比较高。不要问我为什么,这是无数先辈们统计所得的统计规律,对于工程应用相信即可(当然如果是做理论研究的则另当别论)。这个规律也解释了为何有的厂家出厂的产品需要做老化试验的原因,因为做老化试验可以将故障充分暴露出来,如此筛选出来的产品在客户端将很少会出故障。

为啥费这么多话来讨论这个失效率呢,来看看这个例表:

汽车嵌入式系统组件 失效率
军工级微处理器 0.022
车规级微处理器 0.12
电动马达 16.9

不同的组件的失效率是不一样的,那么在设计之初在成本允许的情况下,就需要尽量选取失效率低的组件。

失效模式

不同的组件的失效模式是不一样的,啥概念呢?也就是组件产生故障的原因各异,比如电路板上的电阻其失效模式就有可能是短路失效,断路失效、参数漂移失效,对于软件而言其失效模式就有可能有很多,比如栈溢出、RAM数据错误、芯片总线错误等等。每种失效模式,其失效率也是不一样的。如要深入其了解这些指标的含义可以参考IEC61508或者其他等同的标准。

如何提高产品的可靠性呢?

如果产品老是出问题,不光攻城狮恼火,甚至会决定一个公司的前途命运,所以如何提升产品的可靠性,绝对是一个需要花大力气去研究的课题,也是每个从业人员需要在灵魂深处深深刻下烙印。做产品不是儿戏,产品不稳定,不仅仅会影响升职加薪,可能一个公司就会因此歇菜。

那么究竟如何能提高产品的可靠性呢?我想大体上可以从这几个方面着手:

  • 成功的开发流程

  • 成功的项目管理

  • 严格的质量控制

开发流程

这是IEC61508界定软件、硬件都须采用如下的V&V开发模型(注明IEC61508标准里图不太一样),简单介绍一下这个模型:

现在流行很多的开发流程,比如敏捷开发模型就比较受追捧,个人并不反对敏捷开发模型,但是从产品开发的可靠性角度更推崇这种双V模型,其实很多跑敏捷的项目在每一个迭代中其实可以融入这种双V模型。这个模型从设计的需求>架构>详细子模块设计每向下走一步,都需要verfication 测试检验前级,同时还最终输出validation确认设计

在IEC 61508(功能安全等级标准)等标准中都有体现这一套路,简略看看相关标准:

IEC 61508是适用于各种行业的基本功能安全标准。它将功能安全定义为:“与EUC(受控设备)和EUC控制系统相关的整体安全的一部分,它依赖于E/E/PE安全相关系统、其他技术安全相关系统和外部风险降低设施的正确运行。”“基本的概念是:任何安全相关的系统都必须正确工作或以可预测的(安全的)方式失效。”

个人对于V&V模型理解的几个要点:

  • 要可执行的流程,不要形式化套路!

  • 标准规定的科学严谨套路,遵循从需求到设计的双向可追溯,从设计到测试的双向可追溯。

  • 可靠性从一开始转化市场需求时就需引入,中小型企业更多聚焦于功能实现,而忽略了性能、可靠性需求。注意这些可靠性需求都是设计目标,没有目标如何能从体系上产出一个优良的产品呢?如不遵循严格的体系流程,或许一个公司偶然能出一个高质量产品,但个人认为一定很难保证出来的产品的整体质量

  • 需求环节:可靠性是需要提需求的,举些栗子:

    • 环境需求,比如温度、湿度、振动等,这些在需求阶段就应界定相关的测试等级,其实即便公司的产品不需要去做相关强制认证,但是从可靠性角度,提出这样的需求,势必需要相应的设计以及测试去保证。那么定然从这些维度会提升产品的可靠性。

    • EMC需求:比如常规的抗扰度测试要求,都需要需求阶段明确提出。

    • .....

  • 设计环节,可靠性需要提出需求,更需要设计去实现。对于每项可靠性需求,事实上都可以尽量转化成设计的检查项去追溯。比如硬件中的器件失效模型及影响分析FMEA(Failure mode and effects analysis),软件中同样也有对应的失效模型可做分析以及影响分析,通过失效模型分析,可参考标准中的推荐做法去从设计的角度采取对策。

  • 测试环节:测试包含验证(verification)和确认(validation) ,V&V模型每向下一步,都应向上一步去verification,每一个设计输出,其实都应有对应的验证去保障,最终的产品级还需要确认环节。另一个重要的要点就是工业级产品开发,往往在需求阶段,设计就已然介入。

开发流程每个公司都各有不同,但是从产品生命周期以及产品可靠性自身规律角度,个人觉得还是应该考虑这些要点。关于开发流程以及功能安全标准内容很多,这里泛泛总结这些个人体会。

成功的项目管理

项目管理是在特定的时间内领导团队实现目标和达到成功标准的过程。项目管理的主要挑战是在给定的约束条件下实现所有的项目目标。这些信息通常在项目文档中描述,在开发过程的开始创建。主要的限制是范围、时间、质量和预算。其次的挑战是优化必要投入的分配,并应用它们来满足预先确定的目标。

一个可靠性很高的的产品开发,与一个完善的项目管理是密不可分的。项目管理在项目的执行过程中作用是非常重要的,从启动、计划、执行、监管、收尾中对项目进行管理。

项目管理在这些过程中,所需的知识以及在每个阶段需从事的活动可参考下图(来源:PMBOK 第6版):

严格的质量控制

好的设计发布,如没有严格的生产质量控制,所出售的产品质量也定然没有保障。对于这一点不怎么了解,就不做过多的描述了。

总结一下

回到问题本身,如想得到一个可靠的产品,个人认为从产品设计流程、项目管理、以及生产质控方面都应有完善的要求且须很好的落实,工业级产品砸钱做那么多的认证,不是没有缘由的。这些认证里有很多就是可靠性的具体考核。

-END-

整理文章为传播相关技术,版权归原作者所有 |

| 如有侵权,请联系删除 |

往期好文合集

干货:嵌入式系统设计开发大全!(万字总结)

嵌入式行业真的没有前途吗?

嵌入式工程师是青春饭吗?越老越吃香吗?

最 后

若觉得文章不错,转发分享,也是我们继续更新的动力。

5T资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、单片机、等等

在公众号内回复「更多资源」,即可免费获取,期待你的关注~

为什么自己设计的嵌入式系统不如工业级产品稳定?相关推荐

  1. 杨智凯推荐系统_2018年英特尔杯大学生电子设计竞赛嵌入式系统专题邀请赛评.PDF...

    2018年英特尔杯大学生电子设计竞赛嵌入式系统专题邀请赛评.PDF 2018年英特尔杯大学生电子设计竞赛嵌入式系统专题邀请赛评审结果 序号 名次 参赛学校 参赛题目 指导教师 参赛学生 参赛学生 参赛 ...

  2. 杨智凯推荐系统_2018年英特尔杯大学生电子设计竞赛嵌入式系统专题邀请赛评审结果.PDF...

    2018年英特尔杯大学生电子设计竞赛嵌入式系统专题邀请赛评审结果 2018年英特尔杯大学生电子设计竞赛嵌入式系统专题邀请赛评审结果 序号 名次 参赛学校 参赛题目 指导教师 参赛学生 参赛学生 参赛学 ...

  3. 用英文给嵌入式计算机下定义,嵌入式课程设计报告--嵌入式系统项目设计.doc

    河海大学计算机与信息学院(常州) 课程设计报告 题 目 嵌入式系统项目设计 专业.学号 授课班号 277704 学生姓名 同组学生 指导教师 完成时间 2011年6月 课程设计(报告)任务书 (理 工 ...

  4. 嵌入式课程设计linux,嵌入式系统课程设计--基于U盘的linux操作系统的构建

    嵌入式系统课程设计--基于U盘的linux操作系统的构建 1 课程设计报告课程设计报告 课程名称课程名称 嵌入式系统课程设计嵌入式系统课程设计 设计题目设计题目基于基于 U盘的盘的 linux 操作系 ...

  5. 计算机大致可以分为大型计算机嵌入式系统,根据市场产品来看,计算机大致可以分为大型计算机、( )和嵌入式系统三类。...

    根据市场产品来看,计算机大致可以分为大型计算机.( )和嵌入式系统三类. 更多相关问题 有研究表明大多数人的婚姻对象是邻居.同事或同班同学,这说明爱情中的吸引受( )影响. 俗话说"开门七件 ...

  6. 10年老兵!从大学毕业生到嵌入式系统工程师的修炼之道……

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 一名从事10多年嵌入式行业的老兵,用多年来从事这个行业的经验及独特视角,为想从事嵌入 ...

  7. 嵌入式系统课程设计题目

    简介:一些嵌入式系统课程设计题目,可以当做对你学习ARM的一个检测. 嵌入式系统课程设计-选题要求及课题 1.嵌入式系统课程设计时长两星期,要求学生分组进行课程设计,每组学生人数为2-3人(可在不超过 ...

  8. 嵌入式系统开发设计---嵌入式系统开发设计

    嵌入式系统设计的主要任务是定义系统的功能.决定系统的架构,并将功能映射到系统实现架构上.这里,系统架构既包括软件系统架构也包括硬件系统架构.一种架构可以映射到各种不同的物理实现,每种实现表示不同的取舍 ...

  9. 嵌入式系统简介、应用及发展

    1.1 嵌入式系统简介 1.1.1 何为嵌入式系统 嵌入式系统本身是一个相对模糊的定义.目前嵌入式系统已经渗透到我们生活中的每个角落,工业.服务业.消费电子--,而恰恰由于这种范围的扩大,使得&quo ...

最新文章

  1. Android Studio中新建和引用assets文件
  2. Dart简易教程 (1)---数据类型 运算符,类转换换
  3. AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager
  4. js中const,var,let区别
  5. OpenGL通过Assimp加载模型
  6. .html追加的触发js事件,JavaScript
  7. 笔记本超频会烧吗_如何判断电脑是否支持DIY 超频?这篇文章告诉你
  8. 可以使用田忌赛马类贪心问题的前提(或说 如何判断题目符合田忌赛马类贪心问题)
  9. IIS 伪静态下 利用PHP获取 网址后缀
  10. linux学习随笔第一天
  11. python怎么运行matlab代码_用python运行matlab代码
  12. deliphi 字符串分割_delphi中拆分字符串的函数
  13. IIS开启了GZIP和XCACHE之后飞快
  14. :root选择器的妙用【2021.11.14】
  15. kodi文件管理smb服务器,KODI+NAS的常见技巧
  16. 计算机硬盘用u盘维修,电脑维修:U盘和移动硬盘及固态硬盘的区别
  17. 星期一到星期日的英文及缩写 和 一月到十二月的英语单词及缩写?
  18. ValueError: only single character unicode strings can be converted to Py_UCS4, got length 0
  19. 使用react-split-pane简单记录
  20. Win10隐藏状态栏图标的方法

热门文章

  1. how is table select_all_icon being loaded
  2. SAP UI5 Drop down list value changed
  3. Enterprise search result view column显示technical name
  4. Document Builder: 如何分析rule执行逻辑
  5. SAP ABAP实用技巧介绍系列之如何创建Maintenance view
  6. SAP CRM Fiori 标准应用 My Account - search by ID 根据 ID 进行搜索的标准功能实现原理
  7. 记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑
  8. 2021-08-05学习日记
  9. 数据库压测 oracle,sysbench压测Oracle
  10. xenserver 挂载磁盘 xe sr-create_视频号挂载小商店,仅需3步!