2014年12月29日月曜日

クレーム

液晶表示が消える・・・のクレームを頂きました。
初期化で直る事より、CPUチップに内蔵しているEEPROMの不良だと思います。
EEPROMは別名不揮発性メモリと呼ばれ、Higlasiでは液晶の濃さや数種のパラメータ値を格納してるのですが、今回のトラブルはその数値が揮発(消える)事より起きていると思います。EEPROMに関してはこれまでも同様のトラブルがあり、検査で発見できる様方法を改善してきたのですが・・・。
根本的な解決方法はEEPROMを使わない事ですが・・・。
もう少し考えてみます。

7 件のコメント:

HUQ さんのコメント...

NVM不良は、モノを作る上でどうしても避けられませんね。
数千個、数万個と作っていると、NVMだけでなくCPUそのものの演算器異常やポート異常による返却品も、どうしても発生します。
車載部品製造業に勤めている私にも、頭の痛い問題です。
品質保証部の軍曹からは、「10万個のうちの1個の発生率でも、顧客にしてみれば1個中1個、100%の発生率だ」とどやされます。(^^;
某エアバッグメーカーで起きたことは、全く他人事ではありません。

我々のNVM化け対策は、
・SUMやCRCを用いて起動時に異常を検出する
・異常を検出したらデフォルトのROM値で動作させる(NVM異常警告を出す)
・重要なデータは2面化し、起動時に読み出した値を比較する。
 値が違う場合、SUM/CRCが正常な側のデータを使用する。
 2エリアとも異常だった場合は異常警告。
 2エリアとも正常だった場合(人為的に書き換えたり、ソフトのバグがあったりしない限りは滅多に起きないことですが…)は、値が妥当な範囲内であることを確認した上でどちらか1面のデータを決め打ちで使う。

ぐらいの、ごくごくオーソドックスな方法です。

でも、このオーソドックスな方法を実装するのが、意外と面倒なんですよね…

HUQ さんのコメント...

NVMが壊れている前提の話をしましたが、ソフトによりNVMを壊している可能性はありませんか?

ただのバグではなく、書き込み中に電源断が発生し、データ書き込み途中でCPUが死んでしまう、というパターンです。

これを防ぐには、主電源がOFFされても、ある程度容量のあるコンデンサに溜めた電荷でCPUだけ延命させる回路と、主電源がOFFされていることをADポートで感知する必要があります。

主電源OFFを感知したら、新たなデータ書き込み要求は拒否し、今書いているエリアだけを書き切ってプログラムを動作停止します。
1エリアを書き込むのに掛かる時間だけ、コンデンサの電荷でCPU動作を賄えるかどうか、コンデンサの容量とエリアサイズを勘案する必要があります。

HUQ さんのコメント...

↑はコストもかかるので、壊れると人が死ぬ系の部品では使います。

そうでもない(笑)程度の部品では回路を省き、データが壊れる前提でソフトを作ります。
データを2面化し、起動時に読み出して片面異常であれば、正常なほうのデータで異常面を上書き修復します。
ただし、起動時に電源電圧が不安定な特性等があれば、何らかの手段そこを検知し、そのタイミングを避けて安定動作しているときに書き込みを行いましょう。(自動車ではクランキング中のNVM書き込みは御法度です)

勿論、両方壊れたらアウトですが、電断で壊れるエリアは(並列書き込みしてない限り)1面だけなので、電断リスク対策では両面異常は考慮する必要がありません。

あと、ここではCPU内の記憶領域と書かれていたので NVM前提で書きましたが、外付けの EEPROM では、領域の始めと終わりはデータ領域に使わないほうが良いです。

竜爺 さんのコメント...

HUQさん コメントありがとうございます。
Higlasiで実装済みの対策は電源投入時、EEPROMに格納されている数値をチェックし値が範囲を超えていたら初期値に戻す方法を採用しております。今回の液晶が消える現象ですが、お客様がコントラストを調整できる機能として搭載しているので、初期化チェックは不要と判断し、プログラム書き込み後3日以上経過し、問題が無い事を確認してからの出荷だったのですが、この方法ではNGって事がわかりました。
某エアバックの件、担当者は死にたい気持ちですよねきっと・・・。
僕もリーマン時代、担当製品のプログラムの不備で数千台をリコールしたことがあります。その不備で実際問題になる確率はほぼゼロだったのですが、分かった以上は・・・。
難儀な商売です。

竜爺 さんのコメント...

サラリーマン時代担当していた製品は誤動作したら最悪、人が死ぬ場合も考えられるため、思い当たる現実的対策は全てやっておりました。
でも、100%は無理な話で、取説に無駄な文言を・・・(笑

HUQ さんのコメント...

ですよねぇ…(^^;

最近は「機能安全」ってのが流行りです。
どんどん、どんどん、作るのが面倒臭くなっていきます。。。orz

竜爺 さんのコメント...

確かにそうですね、安全や納期等、、本来の目的以外に気を使わなくてはならないパラメータが多すぎます。中間管理職は少なくても納期の味方のはずですが、最近はそうでもなさそうで、ここ20年、開発環境はずいぶん悪くなりました。でも失敗を恐れるあまり技術屋が冒険心を失うと未来がなくなります。。