起こりうる障害を「すべて」理解するには、自由度が多すぎます。ただし、設計サイクルの早い段階(つまり、広範囲にリリースする前)で障害を特定して軽減するための手法があります。
設計時の活動(プレハードウェア)
ピアレビューは、常にバグを見つけるための優れた方法です。他の人に設計を分析してもらい、質問に対する防御の準備をしてもらいます(または、バグを発見したことを認めて修正します!)精査に代わるものはなく、疲れたものに見落とされているものは新鮮な目でよく見られます。これはハードウェアとソフトウェアの両方で機能します-回路図はソースコードと同じくらい簡単にレビューできます。
ハードウェアについては、他の人が言ったように、DFMEA(Design Failure Mode and Effects Analysis)がお勧めです。各コンポーネントについて、「これが短絡した場合どうなるか」と「これが断線した場合どうなるか」を自問し、分析の記録を作成してください。ICの場合、隣接するピンが互いに短絡した場合にどうなるかを想像してください(はんだブリッジなど)。
ファームウェアの場合、静的コード分析ツール(MISRA、lintなど)を使用して、コード内の隠れたバグを明らかにできます。フローティングポインターや比較の代わりの等価性(= vs ==)などは、これらのツールが見逃すことのない一般的な「大失敗」です。
動作の書面による理論も、ハードウェアとソフトウェアの両方にとって非常に役立ちます。動作理論では、システムの動作、保護の動作、シーケンスなどについてかなり高いレベルで説明する必要があります。ロジックの流れ方を簡単に説明すると、多くの場合、一部のケースが見落とされている可能性があることに気づきます(「ワイタセック、この状態はどうですか?」)
プロトタイプレベルのテスト
ハードウェアを入手したら、次は「仕事」に取り掛かります。
理論的な分析がすべて完了したら、デバイスが仕様内でどのように動作するかを正確に特徴付けることが重要です。これは、一般に検証テストまたは認定と呼ばれます。許容されるすべての極値をテストする必要があります。
もう1つの重要な認定アクティビティは、コンポーネントの応力分析です。すべての部品は、定義された動作条件で、最大電圧/電流/温度に対して評価されます。堅牢性を確保するには、適切なディレーティングガイドラインを適用する必要があります(電圧の80%、電力の70%を超えないようにしてください)。
正常な状態にあることを知ってはじめて、外部の異常、または説明しているような複数の異常について推測を始めることができます。この場合も、DFMEAモデル(Xが発生するとどうなるか)は良いアプローチです。ユーザーがユニットに対して行うことができるあらゆることを考えてください-出力を短くし、信号を結合し、ユニットに水をこぼします-それらを試して、何が起こるかを確認します。
HALTテスト(高度に加速された寿命テスト)は、これらのタイプのシステムにも役立ちます。ユニットは環境チャンバーに入れられ、最低温度から最高温度まで、最低および最高の入力および出力を振動させて実行されます。これにより、電気的および機械的なあらゆる種類の問題が見つかります。
これは、いくつかの組み込みファズテストを実行するのにも良いタイミングです。すべての入力を期待される範囲をはるかに超えて実行し、UART / I2Cなどを通じて意味不明なものを送信して、ロジックの穴を見つけます。(例えば、ビットバンギングI2Cルーチンは、バスをロックすることで悪名高いです。)
ストライフテストは、堅牢性を実証する良い方法です。過熱、過負荷などの保護機能を無効にし、何かが壊れるまでストレスを加えます。ユニットは、何か障害が発生するか、異常な動作が発生するまで、できるだけ高温にしてください。パワートレインが故障するまでユニットに過負荷をかけます。いくつかのパラメーターが最悪の条件をわずかに超えて失敗した場合、それは限界性の指標であり、設計上の考慮事項を再検討する必要があるかもしれません。
次のレベルのアプローチを採用して、DFMEAの結論のいくつかを物理的にテストすることもできます。実際には、ショートとオープン、ピンショートを行い、何が爆発するかを確認します。
参考文献
私の経歴は電力変換です。私たちはIPC-9592Aと呼ばれる業界標準を持っています。これは、どのようなテストとその実行方法に関して、製品の認定方法を標準化する取り組みです。このドキュメントで言及されている種類のテストや方法論の多くは、他の電気分野でも簡単に使用できます。