zoukankan      html  css  js  c++  java
  • 可靠性设计 的 一小点


    今天被教育了,以前我编程的时候,确实很少考虑可靠性的问题,今天问了同事两个问题,得出两条:

    1、凡是外部输入都是不可靠的。

    有一个模块里,FPGA会周期性的产生中断请求给ARM,但程序中用了ARM内部定时器来监视这个FPGA中断,若长时间没有中断,将显示错误,并关闭输出。我刚看时就这觉得这样的代码多余,经解释之后发现至少有两点必要:

    1)在最终的产品中,FPGA可能坏了,不能正常工作了,但是系统必须保证输出在此时被关闭,避免重大事故发生的可能。

    2)在生产过程中,FPGA可能出现,未烧逻辑或烧写了错误的逻辑或虚焊了,必须能够快速地定位出是FPGA的问题,以便及时地修正。


    2、输出不变时,仍然要周期性的输出。

    为什么外部输出未改变值时,仍要执行输出操作呢。我们这个输出还是在中断中完成,我乍一看,感觉如果输出不变,干脆就不要输出了,节约CPU时间。但是其实不然,为了增加可靠性,即时输出未改变,仍然要周期性的执行输出操作。因为:

    在工况中,外部的寄存器(273)很可能被干扰,发生误动作,此时若能及时停止这个误动作,很可能就避免了一些悲剧的发生。若认为输出无变化,就不执行输出操作,误动作就没有机会修正。


    作为工控行业,关于可靠性设计真的要多想想,今天北京4号线发生电梯倒退致人死亡的事故,值得我们吸取教训。感觉教育我的同事!!


  • 相关阅读:
    [Audio processing] FFMPEG转音频格式和采样率
    [操作系统] OS X Yosemite U盘制作
    [基础] 广义线性回归
    [基础] 一些英文术语
    [经典] 在未排序数组中返回topK大的数
    [参数方法] 贝叶斯估计(待补充)
    [参数方法] 最小二乘
    [Theano] Theano初探
    font awesome的图标在WP8浏览器下无法显示的问题解决
    SQL 获取各表记录数的最快方法
  • 原文地址:https://www.cnblogs.com/windtail/p/2623209.html
Copyright © 2011-2022 走看看