嵌入式系统的可靠性、可用性与测试策略
1. 硬件可靠性
1.1 故障与失效
在嵌入式系统中,小故障并不一定会导致严重后果。故障指的是硬件门电路故障、内存位损坏或软件遇到错误代码行等情况。当故障导致计算结果错误时,就产生了错误。而失效则是指错误导致系统实际运行与预期出现明显偏差。不过,并非所有错误都会导致失效,只要采取措施防止故障演变为错误,错误演变为失效,即使系统存在多个故障,也能保持可靠运行。
1.2 可靠性
可靠性是指系统在开机若干小时后仍能正常工作的概率。系统开机时间越长,出现错误的可能性就越大,可靠性也就越低。重启系统会开启一个新的可靠性时间间隔,前提是自测试程序能确保系统在新的时间间隔开始时没有残留故障。
以喷气式飞机为例,喷气发动机每小时都有一定的故障概率,飞行时间越长,发动机出现故障的可能性就越大。对于单引擎飞机,从起飞到降落期间发动机不能出现故障,这段飞行时间就是任务时间。若某次特定飞行的可靠性为 99.99%,则意味着 10000 次该长度的飞行中,有 9999 次能成功降落且发动机无故障。
可靠性的计算公式为:假设组件每小时的故障率为 λ,连续运行 t 小时(即任务时间为 t)的可靠性为 (R(t)=e^{-\lambda t})。该公式的指数形式使得长任务的高可靠性难以实现,随着 t 的增大,可靠性会迅速下降。
1.3 可靠性与 MTBF
平均无故障时间(MTBF)是指系统无故障运行的平均时长,MTBF 越长,系统的可靠性越好。
当 λ = 0.001(即每 1000 小时发生一次故障)时,并不意味着系统在 1000 小时的任务