(57)【要約】【課題】  最新の更新データが失われた場合にも、最小の誤差で更新データを復元する。【解決手段】  複数の不揮発性の記憶部と、記憶部のいずれかに書き込む更新データを生成するデータ更新部と、エラー検出データに基づいて記憶部毎に更新データのエラーを検出するエラー検出部と、最古の更新データが書き込まれている記憶部を選択し、データ更新部により生成された更新データおよび誤り検出データを選択した記憶部に書き込む更新制御部とを有している。各記憶部は、更新データを記憶するデータ領域と、更新データのエラーを検出するためのエラー検出データを記憶するエラー領域とを有する。更新制御部は、エラー検出データに基づいて更新データのエラーを検出したときに、エラーを有する更新データを記憶している記憶部を最古の更新データが書き込まれている記憶部として選択する。【選択図】    図１
2008015618.tif 000002
【特許請求の範囲】
【請求項１】
更新データを記憶するデータ領域と、更新データのエラーを検出するためのエラー検出データを記憶するエラー領域とを有する複数の不揮発性の記憶部と、
前記記憶部のいずれかに書き込む更新データを生成するデータ更新部と、
エラー検出データに基づいて前記記憶部毎に更新データのエラーを検出するエラー検出部と、
最古の更新データが書き込まれている記憶部を選択し、選択した記憶部にデータ更新部により生成された更新データおよびエラー検出データを書き込む更新制御部とを備え、
前記更新制御部は、エラー検出データに基づいて更新データのエラーを検出したときに、エラーを有する更新データを記憶している記憶部を最古の更新データが書き込まれている記憶部として選択することを特徴とする記憶装置。
【請求項２】
請求項１記載の記憶装置において、
更新データは、更新要求毎に値が積算される積算データであり、
前記更新制御部は、最も値の大きい更新データを記憶している記憶部を、最新の更新データが書き込まれている記憶部と認識し、最も値の小さい更新データを記憶している記憶部を、最古の更新データが書き込まれている記憶部と認識することを特徴とする記憶装置。
【請求項３】
請求項２記載の記憶装置において、
前記データ領域は、更新データの値を構成する複数桁をそれぞれ記憶する複数のサブデータ領域を備え、
下位桁のサブデータ領域は、前記エラー領域のアドレスに続くアドレスが割り当てられ、
前記更新制御部は、値が更新されるサブデータ領域のみアクセスすることを特徴とする記憶装置。
【請求項４】
請求項１記載の記憶装置において、
前記更新制御部は、更新要求毎に更新データを選択した記憶部に書き込むことを特徴とする記憶装置。
【請求項５】
請求項１記載の記憶装置において、
前記各記憶部は、更新データが書き込まれた順序を示す更新順データを記憶する更新順領域をさらに備え、
前記更新制御部は、選択した記憶部に更新データとともに更新順データを書き込み、更新順データに基づいて最古の更新データが書き込まれている記憶部を認識することを特徴とする記憶装置。
【請求項６】
請求項２ないし請求項５のいずれか１項記載の記憶装置と、
更新要求を生成する更新要求生成部とを備えていることを特徴とする電子機器。
【請求項７】
請求項６記載の電子機器において、
レンズと、
レンズを介して入射される被写体像の光路上に配置されたシャッターとを備え、
前記更新要求生成部は、前記シャッターの動作毎に更新要求を生成し、
前記更新データは、前記シャッターの動作回数を示すことを特徴とする電子機器。
【請求項８】
請求項６記載の電子機器において、
被写体を撮影する撮影機構と、
撮影時に被写体に向けて光を出力する発光部とを備え、
前記更新要求生成部は、前記発光部の発光毎に更新要求を生成し、
前記更新データは、前記発光部の発光回数を示すことを特徴とする電子機器。
【請求項９】
請求項６記載の電子機器において、
内部回路に電源を供給する充電可能なバッテリーと、
前記バッテリーが充電されていることを検出する充電検出部とを備え、
前記更新要求生成部は、前記バッテリーの充電毎に更新要求を生成し、
前記更新データは、前記バッテリーの充電回数を示すことを特徴とする電子機器。
【請求項１０】
請求項６記載の電子機器において、
更新データの値が予め設定された値に到達したことを検出する寿命検出部と、
検出部による検出に応答して警告を表示する表示部とを備えていることを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置およびこの記憶装置を有する電子機器に関する。
【背景技術】
【０００２】
カメラなどの電子機器は、撮影条件などの設定値や内蔵のＣＰＵが実行するプログラムを記憶するために、ＥＥＰＲＯＭなどの不揮発性メモリを有している（例えば、特許文献１参照）。ＥＥＰＲＯＭは、カメラの電源をオフしている間も情報を記憶し続けることが可能である。
【特許文献１】特開平１０−１８６４８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
撮影条件等の設定値は、例えば、設定値を変更する度にＥＥＰＲＯＭに書き込まれる。しかしながら、ＥＥＰＲＯＭへのデータの書き込み中にバッテリーを取り外した場合などには、ＥＥＰＲＯＭへの書き込みが失敗するおそれがある。この場合、変更した設定値は失われてしまう。絞り値やシャッタースピードなどの設定値が失われた場合であれば、カメラの電源が再びオンされたときに、設定値をデフォルト値に初期化すればよい。しかし、設定値がカメラの使用とともに蓄積されていく情報の場合、ＥＥＰＲＯＭへの書き込みの失敗により、それまでに蓄積された情報は失われ、復元することができない。
【０００４】
本発明の目的は、最新の更新データが失われた場合にも、最小の誤差で更新データを復元することである。
【課題を解決するための手段】
【０００５】
本発明の記憶装置およびこの記憶装置を有する電子機器は、複数の不揮発性の記憶部と、記憶部のいずれかに書き込む更新データを生成するデータ更新部と、エラー検出データに基づいて記憶部毎に更新データのエラーを検出するエラー検出部と、最古の更新データが書き込まれている記憶部を選択し、データ更新部により生成された更新データおよび誤り検出データを選択した記憶部に書き込む更新制御部とを有している。各記憶部は、更新データを記憶するデータ領域と、更新データのエラーを検出するためのエラー検出データを記憶するエラー領域とを有する。更新制御部は、エラー検出データに基づいて更新データのエラーを検出したときに、エラーを有する更新データを記憶している記憶部を最古の更新データが書き込まれている記憶部として選択する。
【発明の効果】
【０００６】
本発明では、最新の更新データが失われた場合にも、最小の誤差で更新データを復元できる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施形態を図面を用いて説明する。
【０００８】
図１は、本発明の第１の実施形態を示している。この実施形態では、電子機器としてデジタルカメラが構成されている。デジタルカメラは、機構部１０、ＣＰＵ、およびシステムバスＳＢＵＳを介してＣＰＵに接続されたＥＥＰＲＯＭを有している。ＣＰＵおよびＥＥＰＲＯＭは、本発明の記憶装置として機能する。機構部１０は、レンズＬＮＳ、レンズＬＮＳを介して入射される被写体像ＯＢＪの光路ＯＰＴ上に配置されたシャッターＳＨＴ、ＣＣＤ等の撮像素子ＩＭＧ、撮影時に被写体ＯＢＪに向けて光を出力する閃光発光部Ｆ
ＬＳ、および液晶ディスプレイ等の表示部ＤＩＳＰを有している。シャッターＳＨＴは、バンクＢＫ０−１のデータを書き換える更新要求を生成する更新要求生成部として機能する。閃光発光部ＦＬＳは、例えば、キセノン管などの発光管を有している。表示部ＤＩＳＰは、撮影された画像の表示や、撮影条件を設定するための各種メニューの表示等に使用される。
【０００９】
ＥＥＰＲＯＭは、電源がオフされている間もデータを保持可能な不揮発性メモリである。ＥＥＰＲＯＭは、２つのバンクＢＫ０、ＢＫ１（記憶部）を有している。各バンクＢＫ０−１は、更新データであるレリーズ回数（シャッターＳＨＴの動作回数）と、各バンクＢＫ０−１に記憶されたレリーズ回数のエラーを検出するためのエラー検出データを記憶する。このため、２つのバンクＢＫ０−１により、２世代分のレリーズ回数およびそのエラー検出データを記憶できる。ここで、レリーズ回数は、レリーズ動作毎に増加する積算値であり、絞り値やシャッタースピードとは異なりデフォルト値（標準的な設定値）は存在しない。このため、万一、レリーズ回数を失った場合、それまで積算されたレリーズ回数は復元できない。各バンクＢＫ０−１の詳細は、後述する図２で説明する。特に図示していないが、ＥＥＰＲＯＭは、ＣＰＵが実行するプログラムを記憶するプログラム格納部も有している。
【００１０】
ＣＰＵは、プログラムを実行することにより、エラー検出部１２、データ更新部１４、更新制御部１６および寿命検出部１８として機能する。エラー検出部１２は、バンクＢＫ０−１毎に保持されたエラー検出データに基づいて、各バンクＢＫ０−１に記憶されたレリーズ回数のエラーを検出する。データ更新部１４は、レリーズ動作（シャッターＳＨＴの動作、更新要求）毎に、バンクＢＫ０−１のいずれかに記憶されている最新のレリーズ回数をインクリメントし、新たなレリーズ回数を生成する。但し、エラー検出部１２によりエラーが検出されたときに、データ更新部１４は、エラーが発生していないバンクＢＫ（ＢＫ０−１のいずれか）に記憶されているレリーズ回数を用いて新たなレリーズ回数を求める。なお、ＣＰＵは、図１に示すようにシャッターＳＨＴの動作に応答してレリーズ動作を検出してもよく、ＣＰＵから出力されるシャッターＳＨＴの動作指示に基づいてレリーズ動作を検出してもよい。
【００１１】
更新制御部１６は、エラー検出部１２およびデータ更新部１４からの情報に基づいて、最古のレリーズ回数が書き込まれているバンクＢＫを選択し、選択したバンクＢＫに新たなレリーズ回数およびそのエラー検出データを書き込む。この際、更新制御部１６は、エラーを有するレリーズ回数を記憶しているバンクＢＫを最古のレリーズ回数が書き込まれているバンクＢＫとして選択する。
【００１２】
寿命検出部１８は、バンクＢＫに書き込まれるレリーズ回数が予め設定された限界値に到達したことを検出する。この検出に応答して、ＣＰＵは、表示部ＤＩＳＰにレリーズ回数が耐用回数に近づいたことを示す警告を表示する。この警告を見たデジタルカメラのユーザは、例えば、シャッターＳＨＴを交換するためにデジタルカメラの修理を依頼する。
【００１３】
図２は、図１に示したバンクＢＫ０−１の詳細を示している。バンクＢＫ０−１は、レリーズ回数のエラーを検出するためのエラー検出データを記憶する１バイトのエラー領域ＥＤＤ０、ＥＤＤ１と、レリーズ回数を記憶するための３バイトのデータ領域Ｄ０、Ｄ１とを有する。データ領域Ｄ０は、３つのサブデータ領域Ｄ０（Ｌ）、Ｄ０（Ｍ）、Ｄ０（Ｕ）で構成され、データ領域Ｄ１は、３つのサブデータ領域Ｄ１（Ｌ）、Ｄ１（Ｍ）、Ｄ１（Ｕ）で構成されている。
【００１４】
バンクＢＫ０−１は、エラー領域ＥＤＤ０、データ領域Ｄ０（Ｌ）、Ｄ０（Ｍ）、Ｄ０（Ｕ）、エラー領域ＥＤＤ１、データ領域Ｄ１（Ｌ）、Ｄ１（Ｍ）、Ｄ１（Ｕ）の順に、
アドレスＡＤの下位側から割り当てられている。図中のアドレスＡＤを示す数値の末尾の符号”ｈ”は、アドレスＡＤが１６進数であることを示している。エラー領域ＥＤＤ０−１には、データ領域Ｄ０−１のチェックサムがエラー検出データとして書き込まれる。あるいは、エラー領域ＥＤＤ０−１には、データ領域Ｄ０、ＥＤＤ０（Ｄ１、ＥＤＤ１）の合計がゼロになるゼロサムがエラー検出データとして書き込まれる。
【００１５】
データ領域Ｄ０−１の括弧内の”Ｌ”、”Ｍ”、”Ｕ”は、下位バイト、中位バイト、上位バイトをそれぞれ示している。データ領域Ｄ０−１に書き込むレリーズ回数は積算値である。このため、桁上がりがない限り、値が更新される下位バイトＤ０（Ｌ）、Ｄ１（Ｌ）のみがアクセスされ書き換えられる。したがって、書き換え頻度は、ＥＤＤ０、Ｄ０（Ｌ）、ＥＤＤ１、Ｄ１（Ｌ）が高く（毎回書き換え）、Ｄ０（Ｍ）、Ｄ１（Ｍ）が比較的低く、Ｄ０（Ｕ）、Ｄ１（Ｕ）が最も低い。
【００１６】
この実施形態のＥＥＰＲＯＭは、連続したアドレスＡＤの書き込みを一度のアクセスで実行できる。後述する図４に示すように、レリーズ動作に応答してバンクＢＫ０−１の一方のみが書き換えられる。桁上がりがない通常の書き込み動作では、アドレスＡＤが連続するエラー領域ＥＤＤ０とデータ領域Ｄ０（Ｌ）（またはＥＤＤ１とＤ１（Ｌ））の２バイトのみが書き換えられる。このため、通常の書き込み処理は、ＥＥＰＲＯＭを１回書き込みアクセスし、データをＥＥＰＲＯＭに２バイト書き込むことにより実施できる。これにより、書き込みアクセスの頻度を下げることができ、データの転送量を最小限にできる。この結果、ＣＰＵの負荷を減らすことができる。
【００１７】
図３は、第１の実施形態において、レリーズ動作が実行されるときの処理を示している。図３に示す処理は、ＣＰＵがプログラムを実行することにより実現される。
【００１８】
まず、レリーズ動作が実行され、データ更新部１４が更新要求を受けると、ステップＳ１００において、ＣＰＵは、バンクＢＫ０−１からレリーズ回数とエラー検出データを読み出す。ステップＳ１０２では、誤り検出部１２は、読み出したレリーズ回数とエラー検出データを用いてレリーズ回数のエラーをバンクＢＫ０−１毎に検出する。ここで、エラー検出データによるエラーの検出方式として、例えば、チェックサムやＣＲＣ（Cyclic Redundancy Check）がある。チェックサムは、全てのデータを加算し、オーバーフローしたビットを除いた値であり、補数を取る場合もある。読み出したレリーズ回数のチェックサムと、エラー検出データとして記憶されているチェックサムとが一致しない場合、エラーが検出される。一方、ＣＲＣでは、全てのデータをデータ列と見なし、”１”および”０”をべき級数の係数と考え、所定の多項式で特殊な割り算をし、その余りによりエラーを検出する。ステップＳ１０４において、エラーがある場合に処理はステップＳ１２２に移行し、エラーがない場合に処理はステップＳ１０６に移行する。
【００１９】
エラーがない場合、ステップＳ１０６、Ｓ１０８において、データ更新部１４および更新制御部１６は、バンクＢＫ０−１のうち保持されているレリーズ回数が少ないバンクＢＫを最古バンクに設定し、保持されているレリーズ回数が多いバンクＢＫを最新バンクに設定する。エラーがある場合、ステップＳ１２２において、発生したエラーの数を検出する。エラーがバンクＢＫ０−１のいずれか一方で発生した場合、処理は、ステップＳ１２４に移行する。エラーがバンクＢＫ０−１の両方で発生した場合、処理は、ステップＳ１２８に移行する。エラーがバンクＢＫ０−１の両方で発生した場合、レリーズ回数は復元できない。このため、ステップＳ１２８では、ＣＰＵは、ＥＥＰＲＯＭでエラーが発生したことを示すエラーメッセージあるいはエラー記号を表示部ＤＩＳＰに表示し、処理を終了する。
【００２０】
ステップＳ１２４、Ｓ１２６では、データ更新部１４は、エラーの発生したバンクＢＫ
を最古バンクに設定し、エラーの発生していないバンクＢＫを最新バンクに設定する。次に、ステップＳ１１０において、データ更新部１４は、最新バンクに記憶されているレリーズ回数を”１”だけインクリメントし、新たなレリーズ回数を求める。ステップＳ１１２において、レリーズ回数が予め設定された限界値に達したことが寿命検出部１８により検出されたとき、処理はステップＳ１１４に移行する。ステップＳ１１４では、ＣＰＵは、レリーズ回数が限界値を超え、レリーズ回数が耐用回数に近づいたことを示す警告を表示部ＤＩＳＰに表示し、処理を終了する。
【００２１】
レリーズ回数が限界値に達していない場合、ステップＳ１１６において、データ更新部１４は、新たなレリーズ回数を用いて新たなエラー検出データを生成する。ステップＳ１１８において、更新制御部１６は、最古バンクに新たなレリーズ回数とエラー検出データを書き込む。ステップＳ１２０において、データ更新部１４は、データを書き込まなかった最新バンクを最古バンクに設定し、データを書き込んだ最古バンクを最新バンクに設定する。そして、処理が終了する。
【００２２】
図４は、バンクＢＫ０−１の更新の様子を示している。図中の太線で囲ったバンクＢＫは、最古バンクを示している。最古バンクでないバンクＢＫは最新バンクである。図中の数字は１６進数で示している。
【００２３】
レリーズ動作に応答する処理Ｐ１では、最新バンクＢＫ１のレリーズ回数”ＦＥ”に”１”を加えた”ＦＦ”が、新たなレリーズ回数として最古バンクＢＫ０に書き込まれ、チェックサム”ＦＦ”が最古バンクＢＫ０に書き込まれる（図３のステップＳ１１８に対応）。この後、最新バンクと最古バンクが入れ替えられる（図３のステップＳ１２０に対応）。
【００２４】
積算されたレリーズ回数をレリーズ動作毎にＥＥＰＲＯＭに書き込むことにより、例えば、撮影中にバッテリーが抜かれたときにも、積算されたレリーズ回数を失うことなく保持できる。一方、レリーズ回数をデジタルカメラの電源のオフ毎にＥＥＰＲＯＭに書き込む場合にも、レリーズ回数を失うことは防止できる。しかし、例えば、電源のオン中に１００回のレリーズ動作が実施され、電源をオフするまでにバッテリーが抜かれた場合、レリーズ回数の積算値は、１００回の誤差を生じる。すなわち、レリーズ回数をレリーズ動作毎にＥＥＰＲＯＭに書き込むことで、エラーが発生した場合にも積算値の誤差を最小にしてレリーズ回数を復元できる。
【００２５】
次のレリーズ動作に応答する処理Ｐ２では、処理Ｐ１と同様に、最新バンクＢＫ０のレリーズ回数”ＦＦ”に”１”を加えた”１００”が、新たなレリーズ回数として最古バンクＢＫ０に書き込まれる。処理２では、レリーズ回数に桁上げが発生する。処理Ｐ３、Ｐ４も、処理Ｐ１、Ｐ２と同様に実施される。
【００２６】
処理Ｐ５では、最新バンクＢＫ１から読み出したレリーズ回数にエラーＥが発生する（図３のステップＳ１０４、Ｓ１２２に対応）。このため、エラーのあるバンクＢＫ１が最古バンクに設定され、エラーのないバンクＢＫ０が最新バンクに設定される（図３のステップＳ１２４、Ｓ１２６に対応）。そして、最新バンクＢＫ０のレリーズ回数”１０１”に”１”を加えた”１０２”とそのチェックサム”０３”が、新たに設定された最古バンクＢＫ１に書き込まれる。このように、最新バンクＢＫ１にエラーが発生した場合に、最古バンクＢＫ０に記憶されている１つ前の世代のデータを用いて、レリーズ回数を積算し続けることができる。
【００２７】
以上、第１の実施形態では、万一、レリーズ回数のＥＥＰＲＯＭへの書き込みが失敗し、ＥＥＰＲＯＭに記憶されている最新のレリーズ回数を失った場合にも、一つ前の世代の
レリーズ回数を使用してレリーズ回数を積算し続けることができる。すなわち、最新の更新データが失われた場合にも、最小の誤差で更新データを復元できる。特に、動作毎に値が更新されデフォルト値が存在しないレリーズ回数等を積算する場合に、顕著な効果を得ることができる。この結果、シャッターＳＨＴの劣化や寿命を確実に判定できる。
【００２８】
図５は、本発明の第２の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、システムバスＳＢＵＳにＲＡＭが接続されている。ＣＰＵは、デジタルカメラのパワーオン時に、ＥＥＰＲＯＭに格納されているプログラム等をＲＡＭに転送し、ＲＡＭ内のプログラムを実行して動作する。また、ＲＡＭ内には、ＥＥＰＲＯＭのバンクＢＫ０−１と同じ領域が割り当てられている。バンクＢＫ０−１の構造は、図２と同じである。その他の構成は、第１の実施形態と同じである。
【００２９】
この実施形態では、ＥＥＰＲＯＭのバンクＢＫ０−１に記憶されているデータと同じデータがＲＡＭにも保持され、ＲＡＭに保持されているデータを用いて、第１の実施形態と同様に、チェックサム手法やＣＲＣ手法によりエラーの判定等が実施される。すなわち、レリーズ回数およびエラー検出データは、ＥＥＰＲＯＭとＲＡＭの両方に書き込まれる。これにより、レリーズ回数およびエラー検出データをレリーズ動作毎にＥＥＰＲＯＭから読み出す必要がなくなる。一般に、ＲＡＭの読み出し時間および書き込み時間は、ＥＥＰＲＯＭの読み出し時間および書き込み時間より短い。したがって、この実施形態では、レリーズ動作毎に必要な処理時間を短縮できる。換言すれば、ＣＰＵの負荷を軽減できる。
【００３０】
図６は、第２の実施形態において、デジタルカメラのパワーオン時の処理を示している。図６に示す処理は、ＣＰＵがプログラムを実行することにより実現される。第１の実施形態（図３）と同じ処理については、詳細な説明を省略する。
【００３１】
まず、ステップＳ２００において、ＣＰＵは、ＥＥＰＲＯＭのバンクＢＫ０−１からレリーズ回数とエラー検出データを読み出す。ステップＳ２０１において、ＣＰＵは、読み出したレリーズ回数とエラー検出データをＲＡＭに書き込む。次に、ステップＳ２０２において、誤り検出部１２は、レリーズ回数のエラーを検出する。その後のステップ２０４、Ｓ２０６、Ｓ２０８、Ｓ２２２、Ｓ２２４、Ｓ２２６およびＳ２２８の処理は、図３のステップ１０４、Ｓ１０６、Ｓ１０８、Ｓ１２２、Ｓ１２４、Ｓ１２６およびＳ１２８の処理と同じである。
【００３２】
図７は、第２の実施形態において、レリーズ動作が実行されるときの処理を示している。図７に示す処理は、ＣＰＵがプログラムを実行することにより実現される。図３と同じ処理については、詳細な説明を省略する。
【００３３】
まず、レリーズ動作が実行されると、ステップＳ２３０において、データ更新部１４は、ＲＡＭの最新バンクに記憶されているレリーズ回数を”１”だけインクリメントし、新たなレリーズ回数を求める。本実施形態では、レリーズ毎にＥＥＰＲＯＭではなくＲＡＭからデータを読み出すため、読み出し動作時間を短縮できる。すなわち、レリーズ動作毎に必要な処理時間を短縮できる。ステップＳ２３２、Ｓ２４２は、図３のステップＳ１１２、Ｓ１１４と同じである。
【００３４】
レリーズ回数が限界値に達していない場合、ステップＳ２３４において、データ更新部１４は、新たなレリーズ回数を用いて新たなエラー検出データを生成する。ステップＳ２３６において、更新制御部１６は、ＲＡＭの最古バンクに新たなレリーズ回数とエラー検出データを書き込む。ステップＳ２３８、Ｓ２４０は、図３のステップＳ１１８、Ｓ１２０と同じである。そして、処理が終了する。
【００３５】
以上、第２の実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。さらに、この実施形態では、ＲＡＭを使用することにより、ＥＥＰＲＯＭのアクセス回数を減らすことができ、ＣＰＵの負荷を軽減できる。
【００３６】
図８は、本発明の第３の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、閃光発光部ＦＬＳは、バンクＢＫ０−１のデータを書き換える更新要求を発光毎に生成する更新要求生成部として機能する。各バンクＢＫ０−１は、更新データである発光回数（閃光発光部ＦＬＳの動作回数）と、各バンクＢＫ０−１に記憶された発光回数のエラーを検出するためのエラー検出データを記憶する。ここで、発光回数は、閃光発光部ＦＬＳの動作毎に増加する積算値である。バンクＢＫ０−１の構造は、図２と同じである。その他の構成は、第１の実施形態と同じである。
【００３７】
本実施形態の動作フローは、図３の”レリーズ回数”を”発光回数”に読み替えたフローと同じである。以上、第３の実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。すなわち、閃光発光部ＦＬＳを構成するキセノン管などの劣化や寿命を確実に判定できる。
【００３８】
図９は、本発明の第４の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、ＥＥＰＲＯＭの割り当てと、データ更新部１４および更新制御部１６の処理が、第１の実施形態と相違している。ＥＥＰＲＯＭは、５つのバンクＢＫ０−４（記憶部）を有している。各バンクＢＫ０−４は、図２に示した各バンクＢＫに、更新順領域（図１０のＯＤＲ０−４）を加えて構成されている。その他の構成は、第１の実施形態と同じである。すなわち、この実施形態の電子機器は、デジタルカメラとして構成されている。
【００３９】
図１０は、図９に示したバンクＢＫ０−４の詳細を示している。バンクＢＫ０−４は、レリーズ回数を記憶するための３バイトのデータ領域Ｄ０−Ｄ４と、レリーズ回数のエラーを検出するためのエラー検出データを記憶する１バイトのエラー領域ＥＤＤ０−４と、バンクＢＫ０−４の更新データ（レリーズ回数）が書き込まれた順序（書き込みＮｏ.）を示す１バイトの更新順領域ＯＤＲ０−４とをそれぞれ有する。各更新順領域ＯＤＲ０−４は、エラー領域ＥＤＤとデータ領域Ｄの間に割り当てられている。図中のアドレスＡＤを示す数値の末尾の符号”ｈ”は、アドレスＡＤが１６進数であることを示している。データ領域Ｄ０−４およびエラー領域ＥＤＤ０−４の使い方は、第１の実施形態と同じである。
【００４０】
図１１、図１２および図１３は、第４の実施形態において、レリーズ動作が実行されるときの処理を示している。図１１−１３に示す処理は、ＣＰＵがプログラムを実行することにより実現される。第１の実施形態（図３）と同じ処理については、詳細な説明を省略する。
【００４１】
まず、レリーズ動作が実行されると、ステップＳ３００において、ＣＰＵは、バンクＢＫ０−４からレリーズ回数、エラー検出データおよび書き込みＮｏ.を読み出す。ステップＳ３０２、Ｓ３０４の処理は、図３のステップＳ１０２、Ｓ１０４と同じである。但し、この実施形態では、チェックサム等のエラー検出データは、書き込みＮｏ.も含めて生成される。エラーがない場合、ステップＳ３０６において、データ更新部１４は、バンクＢＫ０−４の書き込みＮｏ.の最上位ビットＭＳＢに”０”、”１”が混在しているか否かを判定する。”０”、”１”が混在しない場合、処理はステップＳ３０８に移行する。
”０”、”１”が混在している場合、ステップＳ３２０において、データ更新部１４は、書き込みＮｏ.の大小判定を実施する。
【００４２】
書き込みＮｏ.が保持される更新順領域ＯＤＲ０−４のサイズは、１バイトである。このため、書き込みＮｏ.は、１０進数の”０”から”２５５”のいずれかを示す。例えば、書き込みＮｏ.が順次インクリメントされ、”２５５”から”０”に変化したとき、この”０”は、実際には”２５６”を意味する。したがって、書き込みＮｏ. の最上位ビットＭＳＢに”０”、”１”が混在している場合、ステップＳ３２０により特別に大小判定を実施する必要がある。
【００４３】
ステップＳ３２０は、図１２に示すように、ステップＳ３２２、Ｓ３２４により構成される。図１２の処理は、データ更新部１４が実施する。ステップＳ３２２では、書き込みＮｏ.は、１バイト（８ビット）から９ビットに拡張され、最上位ビットＭＳＢ（８ビット目）が”０”の書き込みＮｏ.のみ９ビット目に”１”が設定される。そして、ステップＳ３２４において、９ビットで構成された書き込みＮｏ.の大小判定が実施され、書き込みＮｏ.が最小のバンクＢＫが最古バンクに設定される。
【００４４】
次に、図１１のステップＳ３０８、Ｓ３１０において、データ更新部１４は、書き込みＮｏ.が最小のバンクＢＫを最古バンクに設定し、書き込みＮｏ.が最大のバンクＢＫを最新バンクに設定する。この判定は、９ビット（１バイト＋１ビット）で判定される。
【００４５】
図１３のステップＳ３３０、Ｓ３３２、Ｓ３４６は、図３のステップＳ１１０、Ｓ１１２、Ｓ１１４と同じである。次に、ステップＳ３３４において、データ更新部１４は、最新バンクの書き込みＮｏ.に”１”をインクリメントした値を、最古バンクの書き込みＮｏ.に設定する。この処理は、８ビットで実施される。次に、ステップＳ３３６において、データ更新部１４は、最古バンクのエラー検出データを生成する。次に、ステップＳ３３８において、データ更新部１４は、ＥＥＰＲＯＭの最古バンクにインクリメントしたレリーズ回数、エラー検出データおよび書き込みＮｏ.を書き込む。ステップＳ３４０、Ｓ３２０、Ｓ３４２、Ｓ３４４は、図１１に示したステップＳ３０６、Ｓ３２０、Ｓ３０８、Ｓ３１０と同じである。そして、処理が終了する。
【００４６】
図１４は、ＥＥＰＲＯＭのバンクＢＫ０−４の書き込みＮｏ.（更新順領域ＯＤＲ）の更新の様子を示している。図中の太線で囲ったバンクＢＫは、最古バンクを示している。最古バンクは、上述したように、書き込みＮｏ.が最小のバンクである。図中の数字は１６進数で示している。状態ＳＴ１は、例えば、デジタルカメラの出荷時の状態を示している。
【００４７】
レリーズ動作に応答する処理Ｐ６では、書き込みＮｏ.が最大のバンクＢＫ４（最新バンク）の書き込みＮｏ.”０４”に”１”を加えた”０５”が、新たな書き込みＮｏ.としてＥＥＰＲＯＭの最古バンクＢＫ０に書き込まれる（図１３のステップＳ３３４、Ｓ３３８に対応）。以降、レリーズ動作が実施される毎に、同様の処理が実施される。但し、バンクＢＫ０−４の書き込みＮｏ.の最上位ビットＭＳＢ（８ビット目）に”０”、”１”が混在している状態ＳＴ１２−ＳＴ１５では、書き込みＮｏ.は、８ビットから９ビットに拡張され、８ビット目が”０”の書き込みＮｏ.のみ９ビット目に”１”が設定される（図１２のステップＳ３２２に対応）。そして、新たな書き込みＮｏ.がＥＥＰＲＯＭの最古バンクＢＫに書き込まれる。なお、図１３のステップＳ３３８に示したように、書き込みＮｏ.とともに、レリーズ回数とそのエラー検出データがＥＥＰＲＯＭに書き込まれる。
【００４８】
図１５は、エラーが発生した場合のバンクＢＫ０−４の書き込みＮｏ.（更新順領域Ｏ
ＤＲ）の更新の様子を示している。この例では、エラーは、状態ＳＴ２３の読み出し動作時にバンクＢＫ４で発生する。このため、データ更新部１４は、最古バンクを、バンクＢＫ２からエラーが発生したバンクＢＫ４に変更する（図１１のステップＳ３１２に対応）。そして、処理Ｐ７では、最新バンクＢＫ１の書き込みＮｏ.”１６”に”１”を加えた”１７”が、新たな書き込みＮｏ.として最古バンクＢＫ４に書き込まれる（図１３のステップＳ３３４、Ｓ３３８に対応）。エラーが一度発生すると、書き込みＮｏ.が昇順に並ばなくなる。このため、ＣＰＵは、書き込みＮｏ.が昇順に並んでいないときに、エラーが以前に発生したことを認識できる。
【００４９】
以上、第４の実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。さらに、この実施形態では、バンクＢＫ０−４にレリーズ回数が書き込まれた順序を示す書き込みＮｏ.を保持する更新順領域ＯＤＲ０−４を割り当てることにより、レリーズ回数そのものではなく、書き込みＮｏ.を用いて更新データの新旧を判定できる。
【００５０】
図１６は、本発明の第５の実施形態を示している。第１および第４の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、システムバスＳＢＵＳにＲＡＭが接続されている。ＣＰＵは、デジタルカメラのパワーオン時に、ＥＥＰＲＯＭに格納されているプログラム等をＲＡＭに転送し、ＲＡＭ内のプログラムを実行して動作する。また、ＲＡＭ内には、ＥＥＰＲＯＭのバンクＢＫ０−４と同じ領域が割り当てられている。バンクＢＫ０−４の構造は、図１０と同じである。その他の構成は、第４の実施形態と同じである。
【００５１】
この実施形態では、ＥＥＰＲＯＭのバンクＢＫ０−４に記憶されているデータと同じデータをＲＡＭにも保持し、ＲＡＭに保持されているデータを用いてエラーの判定等が実施される。そして、レリーズ回数、エラー検出データおよび書き込みＮｏ.は、ＥＥＰＲＯＭとＲＡＭの両方に書き込まれる。これにより、レリーズ回数、エラー検出データおよび書き込みＮｏ.をレリーズ毎にＥＥＰＲＯＭから読み出す必要がなくなる。この結果、第２の実施形態と同様に、レリーズ動作毎に必要な処理時間を短縮でき、ＣＰＵの負荷を軽減できる。
【００５２】
図１７は、第５の実施形態において、デジタルカメラのパワーオン時の処理を示している。図１７に示す処理は、ＣＰＵがプログラムを実行することにより実現される。図１７に示す処理フローは、第４の実施形態（図１１）にステップＳ３０１を追加して構成されている。ステップＳ３０１では、ＣＰＵは、ステップＳ３００でＥＥＰＲＯＭから読み出したレリーズ回数、エラー検出データおよび書き込みＮｏ.をＲＡＭに書き込む。その他の処理は、第４の実施形態（図１１）と同じである。
【００５３】
図１８は、第５の実施形態において、レリーズ動作が実行されるときの処理を示している。図１８に示す処理は、ＣＰＵがプログラムを実行することにより実現される。図１８に示す処理フローは、第４の実施形態（図１３）のステップＳ３３０の代わりにステップＳ３３１を実施し、ステップＳ３３７を新たに追加して構成されている。
【００５４】
ステップＳ３３１では、データ更新部１４は、ＥＥＰＲＯＭの代わりにＲＡＭの最新バンクから読み出したレリーズ回数を”１”だけインクリメントし、新たなレリーズ回数を求める。ステップＳ３３７では、データ更新部１４は、ＥＥＰＲＯＭにデータを書き込む前に、ＲＡＭの最古バンクにインクリメントしたレリーズ回数、エラー検出データおよび書き込みＮｏ.を書き込む。
【００５５】
以上、第５の実施形態においても、上述した第１、第２および第４の実施形態と同様の効果を得ることができる。
【００５６】
図１９は、本発明の第６の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、この実施形態では、電子機器として携帯電話が構成されている。携帯電話は、機構部２０、ＣＰＵ、およびシステムバスＳＢＵＳを介してＣＰＵに接続されたＥＥＰＲＯＭを有している。機構部２０を除く構成は、第１の実施形態と同じである。
【００５７】
機構部２０は、アンテナＡＮＴに接続された通信処理部ＣＯＭ、操作キーＫＥＹ、液晶ディスプレイ等の表示部ＤＩＳＰ、収容部に収容されたバッテリーＢＡＴ、およびバッテリーＢＡＴを充電するための電源端子ＴＲＭを有している。電源端子ＴＲＭは、例えば、ＡＣアダプター等を介して商用電源に接続される。
【００５８】
この実施形態では、各バンクＢＫ０−１は、更新データであるバッテリーＢＡＴの充電回数（電源端子ＴＲＭが商用電源に接続された回数）と、各バンクＢＫ０−１に記憶された充電回数のエラーを検出するためのエラー検出データを記憶する。ここで、充電回数は、充電毎に増加する積算値である。本実施形態の動作フローは、図３の”レリーズ回数”を”充電回数”に読み替えたフローと同じである。
【００５９】
以上、第６の実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。
【００６０】
なお、上述した第１、第２、第３および第６の実施形態では、２つのバンクＢＫ０−１を用いて本発明を実現する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、３以上のバンクＢＫを用いて本発明を実現してもよい。第４および第５の実施形態においても、２−４個、あるいは６個以上のバンクＢＫを用いて本発明を実現してもよい。
【００６１】
上述した実施形態では、本発明を、ＥＥＰＲＯＭを用いて実現する例について述べたが、フラッシュメモリ、強誘電体メモリ、磁気抵抗ＲＡＭなどの他の電気的に書き換え可能な不揮発性メモリを用いて実現してもよい。
【００６２】
上述した第１−第５実施形態では、レリーズ動作毎あるいは発光動作毎に更新データをＥＥＰＲＯＭに書き込む例について述べたが、電源がオン中の動作回数をカウントしておき、電源オフ時にカウントされた値を増加分としてＥＥＰＲＯＭに書き込んでもよい。レリーズ回数および発光回数を動作毎に減少させて寿命を判定してもよい。
【００６３】
上述した第３の実施形態では、閃光発光部ＦＬＳの発光回数を更新データとしてＥＥＰＲＯＭに書き込む例について述べたが、点灯式の照明装置の点灯回数を更新データとしてＥＥＰＲＯＭに書き込んでもよい。
【００６４】
上述した第４および第５の実施形態では、書き込みＮｏ.を用いてレリーズ回数の積算値を管理し、シャッターＳＨＴの寿命を判定する例について述べたが、値が順次に増加しない更新データを用いて寿命を判定してもよい。この種の更新データとして、例えば、所定の演算式にしたがって順次演算されるデータがある。具体的には、輝度を調整できる閃光発光部ＦＬＳの場合に、輝度に応じて更新データの増分が異なる。このような場合に、書き込みＮｏ.を用いることで、閃光発光部ＦＬＳの寿命を正確に判定できる。
【００６５】
上述した第３の実施形態のデジタルカメラにＲＡＭを搭載し、第２の実施形態（図６、図７）と同じ動作を実施してもよい。同様に、第６の実施形態の携帯電話にＲＡＭを搭載し、第２の実施形態（図６、図７）と同じ動作を実施してもよい。あるいは、第３および
第６の実施形態に、第４および第５の実施形態の発明を適用してもよい。
【００６６】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【００６７】
【図１】本発明の第１の実施形態を示すブロック図である。
【図２】図１に示したバンクの詳細を示す説明図である。
【図３】第１の実施形態において、レリーズ動作が実行されるときの処理を示すフロー図である。
【図４】第１の実施形態において、バンクの更新の様子を示す説明図である。
【図５】本発明の第２の実施形態を示すブロック図である。
【図６】第２の実施形態において、デジタルカメラのパワーオン時の処理を示すフロー図である。
【図７】第２の実施形態において、レリーズ動作が実行されるときの処理を示すフロー図である。
【図８】本発明の第３の実施形態を示すブロック図である。
【図９】本発明の第４の実施形態を示すブロック図である。
【図１０】図９に示したバンクの詳細を示す説明図である。
【図１１】第４の実施形態において、レリーズ動作が実行されるときの処理を示すフロー図である。
【図１２】第４の実施形態において、レリーズ動作が実行されるときの処理を示すフロー図である。
【図１３】第４の実施形態において、レリーズ動作が実行されるときの処理を示すフロー図である。
【図１４】第４の実施形態において、ＥＥＰＲＯＭのバンクの書き込みＮｏ.の更新の様子を示す説明図である。
【図１５】第４の実施形態において、エラーが発生した場合のバンクの書き込みＮｏ. の更新の様子を示す説明図である。
【図１６】本発明の第５の実施形態を示すブロック図である。
【図１７】第５の実施形態において、デジタルカメラのパワーオン時の処理を示すフロー図である。
【図１８】第５の実施形態において、レリーズ動作が実行されるときの処理を示すフロー図である。
【図１９】本発明の第６の実施形態を示すブロック図である。
【符号の説明】
【００６８】
１０‥機構部；１２‥エラー検出部；１４‥データ更新部；１６‥更新制御部；１８‥寿命検出部；ＢＫ‥バンク；Ｄ‥データ領域；ＤＩＳＰ‥表示部；ＥＤＤ‥エラー領域；ＦＬＳ‥閃光発光部；ＩＭＧ‥撮像素子；ＬＮＳ‥レンズ；ＯＤＲ‥更新順領域；ＳＨＴ‥シャッター
【図１】
2008015618.tif 000003
【図２】
2008015618.tif 000004
【図３】
2008015618.tif 000005
【図４】
2008015618.tif 000006
【図５】
2008015618.tif 000007
【図６】
2008015618.tif 000008
【図７】
2008015618.tif 000009
【図８】
2008015618.tif 000010
【図９】
2008015618.tif 000011
【図１０】
2008015618.tif 000012
【図１１】
2008015618.tif 000013
【図１２】
2008015618.tif 000014
【図１３】
2008015618.tif 000015
【図１４】
2008015618.tif 000016
【図１５】
2008015618.tif 000017
【図１６】
2008015618.tif 000018
【図１７】
2008015618.tif 000019
【図１８】
2008015618.tif 000020
【図１９】
2008015618.tif 000021