可靠性设计 的 一小点

本文深入探讨了在系统设计中确保可靠性的重要性,通过实例分析了FPGA中断与ARM定时器的交互如何保护系统免受硬件故障的影响,并强调了即使输出未改变,也需周期性执行输出操作以防止外部寄存器误动作导致的安全隐患。最后,通过北京地铁事故案例反思,呼吁业界关注可靠性设计,以避免类似悲剧的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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

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

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

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

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


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

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

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


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


转载于:https://www.cnblogs.com/windtail/archive/2011/07/06/2623209.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值