(57)【要約】  【課題】ファームウェア専用のメモリを使用せず、ファームウェアを容易に更新することができ、かつ、新ファームウェアに問題があった場合には旧ファームウェアに容易に戻すことができるファームウェアの更新方法、プログラム及び電子機器を提供する。  【解決手段】フラッシュＲＯＭにファームウェアがあらかじめ記録されている状態で、外部から取得した新ファームウェアをフラッシュＲＯＭの連続した空きクラスタに記録する。これにより、ファームウェアのメモリ領域の先頭クラスタを変更することで、ファームウェアを容易に更新することができる。また、ファームウェアの更新が失敗した場合には、ファームウェアのメモリ領域の先頭クラスタを元に戻すことで旧ファームウェアに容易に戻すことができるため、どのような場合においても、電子機器を起動させることができ、機器が動作しなくなることを防ぐことができる。【選択図】  図４
2008225763.tif 000002
【特許請求の範囲】
【請求項１】
各種データが読み書きされる不揮発性メモリにファームウェアが記録された電子機器のファームウェア更新方法において、
更新する新しいファームウェアを取得するステップと、
前記不揮発性メモリにあらかじめ記録されているファームウェアが前記不揮発性メモリに記録された状態で、前記新しいファームウェアを前記不揮発性メモリの連続した空き領域に記録するステップと、
を含むことを特徴とするファームウェアの更新方法。
【請求項２】
前記新しいファームウェアを前記不揮発性メモリの連続した空き領域に記録するステップでは、前記不揮発性メモリをデフラグした後で前記新しいファームウェアを前記不揮発性メモリの連続した空き領域に保存することを特徴とする請求項１に記載のファームウェアの更新方法。
【請求項３】
各種データが読み書きされる不揮発性メモリにファームウェアが記録された電子機器のファームウェア更新方法において、
更新する新しいファームウェアを取得するステップと、
前記不揮発性メモリにあらかじめ記録されているファームウェアが前記不揮発性メモリに記録された状態で、前記新しいファームウェアを前記不揮発性メモリに保存するステップと、
前記不揮発性メモリに保存された前記新しいファームウェアが前記不揮発性メモリに連続して保存されているか判定するステップと、
前記新しいファームウェアが前記不揮発性メモリに連続して保存されているか判定するステップにおいて、前記新しいファームウェアが前記不揮発性メモリに連続して保存されていないと判定された場合には、前記不揮発性メモリをデフラグするステップと、
を含むことを特徴とするファームウェアの更新方法。
【請求項４】
前記新しいファームウェアを起動ファームウェアに設定するステップと、
前記電子機器を前記新しいファームウェアで起動するステップと、
前記新しいファームウェアが正常に動作するか判定するステップと、
を更に含み、
前記新しいファームウェアが正常に動作するか判定するステップにおいて、前記新しいファームウェアが正常に動作した場合には、前記不揮発性メモリにおける前記あらかじめ記録されているファームウェアが保存されている領域を各種データを記録する領域として開放し、前記新しいファームウェアが正常に動作しなかった場合には、前記あらかじめ記録されているファームウェアを起動ファームウェアに再設定することを特徴とする請求項１、２又は３に記載のファームウェアの更新方法。
【請求項５】
前記電子機器を前記新しいファームウェアを起動ファームウェアに設定して起動させるステップでは、ウオッチドッグタイマーを起動してから前記新しいファームウェアを起動ファームウェアに設定し、
前記新しいファームウェアが正常に動作するか判定するステップでは、前記ウオッチドッグタイマーがタイムアップしなかった場合には前記新しいファームウェアが正常に動作したと判断し、前記ウオッチドッグタイマーがタイムアップした場合には前記新しいファームウェアが正常に動作しなかったと判断することを特徴とする請求項４に記載のファームウェアの更新方法。
【請求項６】
前記電子機器を前記新しいファームウェアを起動ファームウェアに設定して起動させるステップでは、所定の信号入力を割り込みに設定してから前記新しいファームウェアを起動ファームウェアに設定し、
前記新しいファームウェアが正常に動作するか判定するステップでは、前記新しいファームウェアの動作終了までに前記割り込みが入らない場合には前記新しいファームウェアが正常に動作したと判断し、前記新しいファームウェアの動作中に前記割り込みが入る場合には前記新しいファームウェアが正常に動作しなかったと判断することを特徴とする請求項４に記載のファームウェアの更新方法。
【請求項７】
請求項１乃至６のいずれかに記載のファームウェアの更新方法を演算装置に実行させることを特徴とするプログラム。
【請求項８】
各種データが読み書きされる不揮発性メモリにファームウェアが記録された電子機器において、前記不揮発性メモリに記録された請求項７に記載のプログラムを前記不揮発性メモリから前記プログラムを読み出して実行する演算装置を備えたことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子機器に係り、特にファームウェアが更新可能な電子機器に関する。
【背景技術】
【０００２】
デジタルカメラ、携帯電話、ポータブルコンピュータ、携帯音楽プレーヤー、ＰＤＡ等の電子機器では、機器の機能を向上させるために、ファームウェアを更新することが一般的に行われている。ここで、ファームウェアとは、電子機器を制御するためのプログラムであり、一般には電子機器内の不揮発性メモリに記録されている。
【０００３】
ファームウェアの更新方法として、特許文献１には、電子機器に装填されたメモリカードからアップデート用のファームウェアを自動的に検出し、電子機器内に記録されたファームウェアをその検出されたファームウェアに書き換えることで、ファームウェアを更新する方法が提案されている。この特許文献１に記載されたファームウェアの更新方法では、電子機器内のファームウェア専用のメモリに記録されたファームウェアと電子機器に装填されたメモリカードに記録されたアップデート用のファームウェアの新旧を比較し、アップデート用のファームウェアが電子機器内に記録されたファームウェアより新しい場合には、電子機器内に記録されたファームウェアを消した後で、アップデート用のファームウェアを電子機器内の専用のメモリに記録して、ファームウェアの更新を行う。
【特許文献１】特開２００５―１１５５０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１の方法では以下のような欠点があった。すなわち、特許文献１の方法では、ファームウェア専用のメモリにファームウェアを記録しているために、そのファームウェア専用のメモリに記録されているファームウェアをあらかじめ消した後で新しいファームウェアを書き込む必要がある。そのため、あらかじめ新しいファームウェアの一部が破損している等で新しいファームウェアを用いて電子機器が起動できなかった場合には、あらかじめ記録されていたファームウェアが消されてしまっているために、その電子機器が使用できなくなるという問題がある。
【０００５】
また、ファームウェアを専用のメモリに記録しているため、画像、音等の各種データを機器内部に記録するには、ファームウェアを記録させるメモリとは別のメモリを機器内部に用意しなくてはいけないという問題がある。
【０００６】
本発明はこのような事情に鑑みてなされたもので、ファームウェア専用のメモリを使用せず、ファームウェアを容易に更新することができ、かつ、新しいファームウェアに問題があった場合には以前のファームウェアに容易に戻すことができるファームウェアの更新方法、プログラム及び電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に記載の電池駆動機器は、前記目的を達成するために、各種データが読み書きされる不揮発性メモリにファームウェアが記録された電子機器のファームウェア更新方法において、更新する新しいファームウェアを取得するステップと、前記不揮発性メモリにあらかじめ記録されているファームウェアが前記不揮発性メモリに記録された状態で、前記新しいファームウェアを前記不揮発性メモリの連続した空き領域に記録するステップと、を含むことを特徴とする。
【０００８】
請求項１に記載のファームウェアの更新方法によれば、不揮発性メモリに各種データ及びファームウェアを記録する電子機器において、不揮発性メモリにあらかじめ記録されているファームウェアが不揮発性メモリに記録された状態で、電子機器の外部から取得した新しいファームウェアを不揮発性メモリの連続した空き領域に記録する。これにより、旧ファームウェアから新しいファームウェアに更新する場合には、ファームウェアのメモリ領域の先頭クラスタを変更させればよいため、ファームウェアを容易に更新することができる。また、新しいファームウェアに問題があった場合には以前のファームウェアに容易に戻すことができる。
【０００９】
請求項２に記載のファームウェア更新方法は、前記目的を達成するために、請求項１に記載のファームウェア更新方法において、前記新しいファームウェアを前記不揮発性メモリの連続した空き領域に記録するステップでは、前記不揮発性メモリをデフラグした後で前記新しいファームウェアを前記不揮発性メモリの連続した空き領域に保存することを特徴とする。
【００１０】
請求項２に記載のファームウェア更新方法によれば、不揮発性メモリをデフラグした後で新しいファームウェアを不揮発性メモリの連続した空き領域に保存することで、電子機器の外部から受信した新しいファームウェアを、ファームウェアがあらかじめ記録されている不揮発性メモリの連続した空き領域に記録する。これにより、不揮発性メモリに新しいファームウェアを記録するための連続した空き領域がない場合においても、新しいファームウェアを不揮発性メモリに記録することができる。また、新しいファームウェアに問題があった場合には以前のファームウェアに容易に戻すことができる。
【００１１】
請求項３に記載のファームウェア更新方法は、前記目的を達成するために、各種データが読み書きされる不揮発性メモリにファームウェアが記録された電子機器のファームウェア更新方法において、更新する新しいファームウェアを取得するステップと、前記不揮発性メモリにあらかじめ記録されているファームウェアが前記不揮発性メモリに記録された状態で、前記新しいファームウェアを前記不揮発性メモリに保存するステップと、前記不揮発性メモリをデフラグするステップと、を含むことを特徴とする。
【００１２】
請求項３に記載のファームウェア更新方法によれば、不揮発性メモリに各種データ及びファームウェアを記録する電子機器において、新しいファームウェアを不揮発性メモリに保存した後で不揮発性メモリをデフラグすることで、電子機器の外部から受信した新しいファームウェアを、ファームウェアがあらかじめ記録されている不揮発性メモリに連続して記録する。これにより、旧ファームウェアから新しいファームウェアに更新する場合には、ファームウェアのメモリ領域の先頭クラスタを変更させればよいため、ファームウェアを容易に更新することができる。また、新しいファームウェアに問題があった場合には以前のファームウェアに容易に戻すことができる。また、不揮発性メモリに新しいファームウェアを記録するための連続した空き領域がない場合においても、新しいファームウェアを不揮発性メモリに記録することができる。
【００１３】
請求項４に記載のファームウェア更新方法は、前記目的を達成するために、請求項１に記載のファームウェア更新方法において、前記新しいファームウェアを起動ファームウェアに設定するステップと、前記電子機器を前記新しいファームウェアで起動するステップと、前記新しいファームウェアが正常に動作するか判定するステップと、を更に含み、前記新しいファームウェアが正常に動作するか判定するステップにおいて、前記新しいファームウェアが正常に動作した場合には、前記不揮発性メモリにおける前記あらかじめ記録されているファームウェアが保存されている領域を各種データを記録する領域として開放し、前記新しいファームウェアが正常に動作しなかった場合には、前記あらかじめ記録されているファームウェアを起動ファームウェアに再設定することを特徴とする。
【００１４】
請求項４に記載のファームウェア更新方法によれば、不揮発性メモリに新しいファームウェアを記録した後で、新しいファームウェアを起動ファームウェアに設定して、電子機器を起動させる。そして、電子機器が正常に起動した場合には、新しいファームウェアが正常と判断し、古いファームウェアを消して、その領域を各種データを記録する領域として開放する。また、電子機器が正常に起動しなかった場合には、新しいファームウェアが正常でないと判断し、古いファームウェアを起動ファームウェアに再設定する。これにより、電子機器が正常に起動した場合には、ファームウェア専用のメモリを使用しないために、古いファームウェアを消すことにより古いファームウェアが記録されていた領域を各種データを記録する領域として開放することができる。そのため、メモリを有効に使うことができる。また、電子機器が正常に起動しなかった場合には、ファームウェアのメモリ領域の先頭クラスタを元に戻せばよい、すなわち、以前のファームウェアに容易に戻すことができる。そのため、どのような場合においても、電子機器を起動させることができ、機器が動作しなくなることを防ぐことができる。
【００１５】
請求項５に記載のファームウェア更新方法は、前記目的を達成するために、請求項４に記載のファームウェア更新方法において、前記電子機器を前記新しいファームウェアを起動ファームウェアに設定して起動させるステップでは、ウオッチドッグタイマーを起動してから前記新しいファームウェアを起動ファームウェアに設定し、前記新しいファームウェアが正常に動作するか判定するステップでは、前記ウオッチドッグタイマーがタイムアップしなかった場合には前記新しいファームウェアが正常に動作したと判断し、前記ウオッチドッグタイマーがタイムアップした場合には前記新しいファームウェアが正常に動作しなかったと判断することを特徴とする。
【００１６】
請求項５に記載のファームウェア更新方法によれば、ウオッチドッグタイマーを起動させてから新しいファームウェアで電子機器を起動させ、前記ウオッチドッグタイマーがタイムアップしなかった場合には前記新しいファームウェアが正常に動作したと判断し、前記ウオッチドッグタイマーがタイムアップした場合には前記新しいファームウェアが正常に動作しなかったと判断する。これにより、新しいファームウェアが正常に動作するかどうかを自動的に知ることができる。
【００１７】
請求項６に記載のファームウェア更新方法は、前記目的を達成するために、請求項４に記載のファームウェア更新方法において、前記電子機器を前記新しいファームウェアを起動ファームウェアに設定して起動させるステップでは、所定の信号入力を割り込みに設定してから前記新しいファームウェアを起動ファームウェアに設定し、前記新しいファームウェアが正常に動作するか判定するステップでは、前記新しいファームウェアの動作終了までに前記割り込みが入らない場合には前記新しいファームウェアが正常に動作したと判断し、前記新しいファームウェアの動作中に前記割り込みが入る場合には前記新しいファームウェアが正常に動作しなかったと判断することを特徴とする。
【００１８】
請求項６に記載のファームウェア更新方法によれば、所定の信号入力を割り込みに設定してから新しいファームウェアで電子機器を起動させ、新しいファームウェアの動作終了までに割り込みが入らない場合には新しいファームウェアが正常に動作したと判断し、新しいファームウェアの動作中に割り込みが入る場合には新しいファームウェアが正常に動作しなかったと判断する。これにより、電子機器の操作者がファームウェアの更新の可否を判断し、電子機器に指示をすることができる。
【００１９】
請求項７に記載のプログラムは、前記目的を達成するために、請求項１乃至６のいずれかに記載のファームウェアの更新方法を演算装置に実行させることを特徴とする。
【００２０】
請求項８に記載の電子機器は、前記目的を達成するために、各種データが読み書きされる不揮発性メモリにファームウェアが記録された電子機器において、前記不揮発性メモリに記録された請求項７に記載のプログラムを前記不揮発性メモリから前記プログラムを読み出して実行する演算装置を備えたことを特徴とする。
【発明の効果】
【００２１】
本発明によれば、ファームウェア用のメモリを使用せず、ファームウェアを容易に更新することができ、かつ、新しいファームウェアに問題があった場合には以前のファームウェアに容易に戻すことができる。
【発明を実施するための最良の形態】
【００２２】
以下、添付図面に従って本発明に係るカメラを実施するための最良の形態について詳細に説明する。
【００２３】
＜第１の実施の形態＞
図１は本発明に係る電子機器の一実施形態を示す正面斜視図であり、図２はその背面斜視図である。この電子機器は、レンズを通った光を撮像素子で受け、デジタル信号に変換して記録メディアに記録するデジタルカメラである。
【００２４】
デジタルカメラ１０のカメラボディ１２は、横長の四角い箱状に形成されており、その正面には、図１に示すように、撮影レンズ１３、フラッシュ１６、ＡＦ補助光ランプ１８等が設けられており、上面には、シャッターボタン２２、モードレバー２４、電源ボタン２６等が設けられている。また、側面には、ＵＳＢ用コネクタ１５と開閉自在なスロットカバー１１が設けられている。スロットカバー１１の内側には、メモリカードを装着するためのメモリカードスロット１４が設けられている。
【００２５】
一方、カメラボディ１２の背面には、図２に示すように、モニタ２８、ズームボタン３０、再生ボタン３２、ファンクションボタン３４、十字ボタン３６、ＭＥＮＵ／ＯＫボタン３８、ＤＩＳＰ／ＢＡＣＫボタン４０等が設けられている。
【００２６】
なお、図示しない底面には、三脚ネジ穴と内側にバッテリを収納するための開閉自在なバッテリカバーとが設けられている。
【００２７】
レンズ１３は、沈胴式のズームレンズで構成されており、電源ボタン２６によってデジタルカメラ１０の電源をＯＮすることにより、カメラボディ１２から繰り出される。なお、レンズ１３のズーム機構や沈胴機構については、公知の技術なので、ここでは、その具体的な構成についての説明は省略する。
【００２８】
メモリカードスロット１４は、撮影した被写体の画像データ、音声データ等の各種データ、ファームウェアが記録されているメモリカードを装着するための接続部である。
【００２９】
ＵＳＢ用コネクタ１５は、パーソナルコンピュータ、プリンタ等の外部機器との間での信号伝達をするためＵＳＢ用ケーブルを接続するための接続部である。
【００３０】
フラッシュ１６は、たとえばキセノン管を光源として構成されており、その発光量を調整可能に形成されている。なお、キセノン管の他、高輝度のＬＥＤを光源としたフラッシュを用いることもできる。
【００３１】
ＡＦ補助光ランプ１８は、たとえば高輝度ＬＥＤで構成されており、ＡＦ時に必要に応じて発光される。
【００３２】
シャッターボタン２２は、いわゆる「半押し」と「全押し」とからなる二段ストローク式のスイッチで構成されている。デジタルカメラ１０は、このシャッターボタン２２を半押しすると撮影準備処理、すなわち、ＡＥ（Automatic Exposure：自動露出）、ＡＦ（Auto Focus：自動焦点合わせ）、ＡＷＢ（Automatic White Balance：自動ホワイトバランス）の各処理を行い、全押しすると、画像の撮影・記録処理を行う。
【００３３】
モードレバー２４は、デジタルカメラ１０の撮影モードを設定する撮影モード設定手段として機能し、このモードダイヤルの設定位置により、デジタルカメラ１０の撮影モードが様々なモードに設定される。例えば、絞り、シャッタースピード等がデジタルカメラ１０によって自動的に設定される「オート撮影モード」、動画撮影を行う「動画撮影モード」、人物撮影に適した「人物撮影モード」、動体撮影に適した「スポーツ撮影モード」、風景の撮影に適した「風景撮影モード」、夕景及び夜景の撮影に適した「夜景撮影モード」、絞りの目盛りを撮影者が設定し、シャッタースピードをデジタルカメラ１０が自動的に設定する「絞り優先撮影モード」、シャッタースピードを撮影者が設定し、絞りの目盛りをデジタルカメラ１０が自動的に設定する「シャッタースピード優先撮影モード」、絞り、シャッタースピード等を撮影者が設定する「マニュアル撮影モード」等である。
【００３４】
電源ボタン２６は、デジタルカメラ１０の電源をＯＮ／ＯＦＦするのに用いられ、所定時間（たとえば、２秒）押下されることにより、デジタルカメラ１０の電源がＯＮ／ＯＦＦされる。
【００３５】
モニタ２８は、カラー表示が可能な液晶ディスプレイで構成されている。このモニタ２８は、再生モード時に撮影済み画像を表示するための画像表示パネルとして利用されるとともに、各種設定操作を行なう際のユーザインターフェース表示パネルとして利用される。また、撮影モード時には、必要に応じてスルー画像が表示されて、画角確認用の電子ファインダとして利用される。
【００３６】
ズームボタン３０は、撮影レンズ１３のズーム操作に用いられ、望遠側へのズームを指示するズームテレボタンと、広角側へのズームを指示するズームワイドボタンとで構成されている。
【００３７】
再生ボタン３２は、再生モードへの切り替え指示に用いられる。すなわち、デジタルカメラ１０は、撮影中、この再生ボタン３２が押されると、再生モードに切り替えられる。また、電源ＯＦＦの状態でこの再生ボタン３２が押されると、再生モードの状態でデジタルカメラ１０が起動する。
【００３８】
ファンクションボタン３４は、撮影及び再生機能の各種設定画面の呼び出しに用いられる。すなわち、撮影時にこのファンクションボタン３４が押されると、モニタ２８に画像サイズ（記録画素数）、感度等の設定画面が表示され、再生時にこのファンクションボタン３４が押されると、モニタ２８に画像の消去、プリント予約（ＤＰＯＦ）の設定画面等が表示される。
【００３９】
十字ボタン３６は、上下左右４方向の指示を入力する方向指示手段として機能し、たとえば、メニュー画面でメニュー項目の選択などに使用される。
【００４０】
ＭＥＮＵ／ＯＫボタン３８は、各モードの通常画面からメニュー画面への遷移を指示するボタン（ＭＥＮＵボタン）として機能するととともに、選択内容の確定、処理の実行等を指示するボタン（ＯＫボタン）として機能する。
【００４１】
ＤＩＳＰ／ＢＡＣＫボタン４０は、モニタ２８の表示内容の切り替え指示（ＤＩＳＰ機能）に用いられるとともに、入力操作のキャンセル等の指示（ＢＡＣＫ機能）に用いられ、デジタルカメラ１０の設定状態に応じて割り当てられる機能が切り替えられる。
【００４２】
図３は、本実施の形態のデジタルカメラ１０の電気的構成を示すブロック図である。
【００４３】
同図に示すように、デジタルカメラ１０は、ＣＰＵ１１０、操作部（シャッターボタン２２、モードレバー２４、電源ボタン２６、ズームボタン３０、再生ボタン３２、ファンクションボタン３４、十字ボタン３６、ＭＥＮＵ／ＯＫボタン３８、ＤＩＳＰ／ＢＡＣＫボタン４０等）１１２、フラッシュＲＯＭ１１４、ＲＡＭ１１６、ＶＲＡＭ１２０、撮影光学系１２４、撮影光学系駆動制御部１２６、撮像素子１２８、タイミングジェネレータ１３０、アナログ信号処理部１３２、Ａ／Ｄコンバータ１３４、画像入力コントローラ１３６、画像信号処理部１３８、圧縮伸張処理部１４０、ＵＳＢＩ／Ｆ１４２、メディアコントローラ１４６、表示制御部１４８、ＡＥ／ＡＷＢ検出部１５２、ＡＦ検出部１５４、フラッシュ制御部１５６、ＡＦ補助光ランプ制御部１５８等で構成されている。
【００４４】
ＣＰＵ１１０は、デジタルカメラ１０の全体の動作を統括制御する制御手段として機能するとともに、各種の演算処理を行う演算手段として機能し、操作部１１２からの入力に基づき所定の制御プログラムに従ってデジタルカメラ１０の各部を制御する。
【００４５】
フラッシュＲＯＭ１１４には、このＣＰＵ１１０が実行する制御プログラムであるファームウェア、制御に必要な各種データ、カメラ設定値、撮影された画像データ等が記録されている。なお、後述するように、撮影された画像データは、通常メモリカードに記録されるが、ユーザーが選択した場合、メモリカードが装填されていない場合、メモリカードの容量が不足した場合等にはフラッシュＲＯＭ１１４に記録される。
【００４６】
ＲＡＭ１１６は、ＣＰＵ１１０の作業用領域として利用されるとともに、画像データの一時記憶領域として利用され、ＶＲＡＭ１２０は、表示用の画像データ専用の一時記憶領域として利用される。
【００４７】
撮影光学系１２４は、撮影レンズ１３、絞り、シャッタを含み、各構成要素は、モータ等のアクチュエータで構成される駆動部１２４Ａに駆動されて動作する。たとえば、撮影レンズ１３を構成するフォーカスレンズ群は、フォーカスモータに駆動されて前後方向に移動し、ズームレンズ群は、ズームモータに駆動されて前後方向に移動する。また、絞りは、絞りモータに駆動されて拡縮し、シャッタは、シャッタモータに駆動されて開閉する。
【００４８】
撮影光学系駆動制御部１２６は、ＣＰＵ１１０からの指令に応じて撮影光学系１２４の駆動部１２４Ａを制御し、撮影レンズ１３、絞り、シャッタの動作を制御する。
【００４９】
撮像素子１２８は、たとえば、所定のカラーフィルタ配列のカラーＣＣＤで構成されており、撮影光学系１２４によって結像された被写体の画像を電子的に撮像する。
【００５０】
タイミングジェネレータ（ＴＧ）１３０は、ＣＰＵ１１０からの指令に応じて、この撮像素子１２８を駆動するためのタイミング信号を出力する。
【００５１】
アナログ信号処理部１３２は、撮像素子１２８から出力された画像信号に対して相関二重サンプリング処理（撮像素子の出力信号に含まれるノイズ（特に熱雑音）等を軽減することを目的として、撮像素子の１画素毎の出力信号に含まれるフィードスルー成分レベルと画素信号成分レベルとの差をとることにより正確な画素データを得る処理）を行い、増幅して出力する。
【００５２】
Ａ／Ｄコンバータ１３４は、アナログ信号処理部１３２から出力されたＲ、Ｇ、Ｂのアナログの画像信号をデジタルの画像信号に変換する。
【００５３】
画像入力コントローラ１３６は、所定容量のラインバッファを内蔵しており、ＣＰＵ１１０からの指令に従い、Ａ／Ｄコンバータ１３４から出力された１画像分の画像信号を蓄積して、ＲＡＭ１１６に記録する。
【００５４】
画像信号処理部１３８は、同時化回路（単板ＣＣＤのカラーフィルタ配列に伴う色信号の空間的なズレを補間して色信号を同時式に変換する処理回路）、ホワイトバランス補正回路、ガンマ補正回路、輪郭補正回路、輝度・色差信号生成回路等を含み、ＣＰＵ１１０からの指令に従い、入力された画像信号に所要の信号処理を施して、輝度データ（Ｙデータ）と色差データ（Ｃｒ，Ｃｂデータ）とからなる画像データ（ＹＵＶデータ）を生成する。
【００５５】
圧縮伸張処理部１４０は、ＣＰＵ１１０からの指令に従い、入力された画像データに所定形式の圧縮処理を施し、圧縮画像データを生成する。また、ＣＰＵ１１０からの指令に従い、入力された圧縮画像データに所定形式の伸張処理を施し、非圧縮の画像データを生成する。
【００５６】
ＵＳＢＩ／Ｆ１４２は、ＣＰＵ１１０からの指令に従い、ＵＳＢコネクタ１５を介して接続されている外部機器から転送されたコマンドの検出、外部機器に対してデータの読み／書きの制御を行なう。なお、ＵＳＢＩ／Ｆ１４２で検出されたコマンドはＣＰＵ１１０に供給される。
【００５７】
メディアコントローラ１４６は、ＣＰＵ１１０からの指令に従い、メモリカードスロット１４に装填されたメモリカード１４４に対してデータの読み／書きを制御する。
【００５８】
表示制御部１４８は、ＣＰＵ１１０からの指令に従い、モニタ２８への表示を制御する。すなわち、ＣＰＵ１１０からの指令に従い、入力された画像信号をモニタ２８に表示するための映像信号（たとえば、ＮＴＳＣ信号やＰＡＬ信号、ＳＣＡＭ信号）に変換してモニタ２８に出力するとともに、所定の文字、図形情報をモニタ２８に出力する。
【００５９】
ＡＥ／ＡＷＢ検出回路１５２は、ＣＰＵ１１０からの指令に従い、入力された画像信号からＡＥ制御及びＡＷＢ制御に必要な物理量を算出する。たとえば、ＡＥ制御に必要な物理量として、１画面を複数のエリア（たとえば１６×１６）に分割し、分割したエリアごとにＲ、Ｇ、Ｂの画像信号の積算値を算出する。ＣＰＵ１１０は、このＡＥ／ＡＷＢ検出回路１５２から得た積算値に基づいて被写体の明るさ（被写体輝度）を検出し、撮影に適した露出値（撮影ＥＶ値）を算出する。そして、算出した撮影ＥＶ値と所定のプログラム線図から絞り値とシャッタ速度を決定する。また、ＡＷＢ制御に必要な物理量として、１画面を複数のエリア（例えば、１６×１６）に分割し、分割したエリアごとにＲ、Ｇ、Ｂの画像信号の色別の平均積算値を算出する。ＣＰＵ１１０は、得られたＲの積算値、Ｂの積算値、Ｇの積算値から分割エリアごとにＲ／Ｇ及びＢ／Ｇの比を求め、求めたＲ／Ｇ、Ｂ／Ｇの値のＲ／Ｇ、Ｂ／Ｇの色空間における分布等に基づいて光源種判別を行う。そして、判別された光源種に適したホワイトバランス調整値に従って、たとえば各比の値がおよそ１（つまり、１画面においてＲＧＢの積算比率がＲ：Ｇ：Ｂ≒１：１：１）になるように、ホワイトバランス調整回路のＲ、Ｇ、Ｂ信号に対するゲイン値（ホワイトバランス補正値）を決定する。
【００６０】
ＡＦ検出回路１５４は、ＣＰＵ１１０からの指令に従い、入力された画像信号からＡＦ制御に必要な物理量を算出する。本実施の形態のデジタルカメラ１０では、撮像素子１２８から得られる画像のコントラストによりＡＦ制御が行われ（いわゆるコントラストＡＦ）、ＡＦ検出回路１５４は、入力された画像信号から画像の鮮鋭度を示す焦点評価値を算出する。ＣＰＵ１１０は、このＡＦ検出回路１５４で算出される焦点評価値が極大となる位置を検出し、その位置にフォーカスレンズ群を移動させる。すなわち、フォーカスレンズ群を至近から無限遠まで所定のステップで移動させ、各位置で焦点評価値を取得し、得られた焦点評価値が最大の位置を合焦位置として、その位置にフォーカスレンズ群を移動させる。
【００６１】
フラッシュ制御部１５６は、ＣＰＵ１１０からの指令に従い、フラッシュ１６の発光を制御する。
【００６２】
ＡＦ補助光ランプ制御部１５８は、ＣＰＵ１１０からの指令に従い、ＡＦ補助光ランプ１８の発光を制御する。すなわち、ＣＰＵ１１０は、ＡＦ時に被写体が暗いと判断すると、あるいは、被写体のコントラストが低いと判断すると、ＡＦ補助光ランプ制御部１５８を介してＡＦ補助光ランプ１８を発光させ、被写体にＡＦ補助光を照射させてＡＦ制御を実行する。
【００６３】
次に、以上のように構成された本実施の形態のデジタルカメラ１０の作用について説明する。
【００６４】
まず、デジタルカメラ１０の撮影、記録動作及び再生動作について説明する。
【００６５】
電源ボタン２６を押下し、デジタルカメラ１０の電源を投入すると、デジタルカメラ１０は、撮影モードの下で起動する。
【００６６】
まず、撮影光学系駆動制御部１２６を介して撮影光学系１２４の駆動部１２４Ａが駆動され、撮影レンズ１３が所定位置まで繰り出される。そして、撮影レンズ１３が所定位置まで繰り出されると、撮像素子１２８によってスルー画像用の撮影が行われ、モニタ２８にスルー画像が表示される。すなわち、撮像素子１２８で連続的に画像が撮像され、その画像信号が連続的に処理されて、スルー画像用の画像データが生成される。生成された画像データは、ＶＲＡＭ１２０を介して順次表示制御部１４８に加えられ、表示用の信号形式に変換されて、モニタ２８に出力される。これにより、撮像素子１２８で捉えた画像がモニタ２８にスルー表示される。撮影者は、このモニタ２８に表示されたスルー画像を見て構図を決定し、シャッターボタン２２を半押しする。
【００６７】
シャッターボタン２２が半押しされると、ＣＰＵ１１０にＳ１ＯＮ信号が入力される。ＣＰＵ１１０は、このＳ１ＯＮ信号に応動して、撮影準備処理、すなわち、ＡＥ、ＡＦ、ＡＷＢの各処理を実行する。
【００６８】
まず、撮像素子１２８から出力された画像信号をアナログ信号処理部１３２、Ａ／Ｄコンバータ１３４、画像入力コントローラ１３６を介してＲＡＭ１１６に取り込み、ＡＥ／ＡＷＢ検出部１５２及びＡＦ検出部１５４に加える。
【００６９】
ＡＥ／ＡＷＢ検出部１５２は、入力された画像信号からＡＥ制御及びＡＷＢ制御に必要な物理量を算出し、ＣＰＵ１１０に出力する。ＣＰＵ１１０は、このＡＥ／ＡＷＢ検出部１５２からの出力に基づき、絞り値とシャッタースピードを決定するとともに、ホワイトバランス補正値を決定する。同時に、検出された被写体輝度より、フラッシュの発光が必要かどうかを判断する。フラッシュ１６の発光が必要と判断された場合には、フラッシュ１６をプリ発光させ、その反射光に基づいて本撮影時のフラッシュ１６の発光量を決定する。
【００７０】
また、ＡＦ検出部１５４は、入力された画像信号からＡＦ制御に必要な物理量を算出し、ＣＰＵ１１０に出力する。ＣＰＵ１１０は、このＡＦ検出部１５４からの出力に基づき撮影光学系駆動制御部１２６を介して撮影光学系１２４の駆動部１２４Ａの駆動を制御し、フォーカスレンズの移動を制御して、撮影レンズ１３のピントを主要被写体に合わせる。この際、ＣＰＵ１１０は、必要に応じてＡＦ補助光ランプ２０を発光させて、ＡＦ制御を実行する。
【００７１】
撮影者は、モニタ２８に表示されるスルー画像を見て撮影レンズ１３のピント状態等を確認し、撮影を実行する。すなわち、シャッターボタン２２を全押しする。
【００７２】
シャッターボタン２２が全押しされると、ＣＰＵ１１０にＳ２ＯＮ信号が入力される。ＣＰＵ１１０は、このＳ２ＯＮ信号に応動して、撮影、記録処理を実行する。
【００７３】
まず、上記のＡＥ処理で求めた絞り値、シャッタースピードで撮像素子１２８を露光し、記録用の画像を撮像する。この際、フラッシュ１６を発光させる場合は、フラッシュ発光制御部１５６を介して、プリ発光の結果から求めたフラッシュ１６の発光量に基づいてフラッシュ１６を発光させる。
【００７４】
撮像素子１２８から出力された記録用の画像信号は、アナログ信号処理部１３２、Ａ／Ｄコンバータ１３４を介して画像入力コントローラ１３６に取り込まれ、ＲＡＭ１１６に格納される。ＲＡＭ１１６に格納された画像信号は、ＣＰＵ１１０の制御の下、画像信号処理部１３８に加えられる。画像信号処理部１３８は、入力された画像信号に所定の信号処理を施して、輝度データと色差データとからなる画像データ（ＹＵＶデータ）を生成する。
【００７５】
画像信号処理部１３８で生成された画像データは、一旦ＲＡＭ１１６に格納されたのち、圧縮伸張処理部１４０に加えられる。圧縮伸張処理部１４０は、入力された画像データに対して所定の圧縮処理を施し、圧縮画像データを生成する。
【００７６】
圧縮された画像データは、ＲＡＭ１１６に格納され、所定フォーマットの静止画像ファイル（たとえば、Ｅｘｉｆ）として、メディアコントローラ１４６を介してメモリカード１４４に記録される。なお、メモリカード１４４に画像ファイルが保存可能な空き領域が無い場合や、操作者が選択した場合等には、ＲＡＭ１１６に格納された画像データは、所定フォーマットの静止画像ファイル（たとえば、Ｅｘｉｆ）としてフラッシュＲＯＭ１１４に保存される。なお、フラッシュＲＯＭ１１４に画像データを保存する場合には、画像データは複数のクラスタ、通常は連続した複数のクラスタに保存される。
【００７７】
このようにしてメモリカード１４４又はフラッシュＲＯＭ１１４に記録された画像データは、デジタルカメラ１０のモードを再生モードに設定することにより、モニタ２８に再生表示される。再生モードへの移行は、再生ボタン３２を押下することにより行われる。
【００７８】
再生ボタン３２が押下されると、ＣＰＵ１１０は最後に記録された画像ファイルの圧縮画像データを読み出す。最後に記録された画像ファイルがメモリカード１４４に記録されている場合には、ＣＰＵ１１０は、メディアコントローラ１４６を介してメモリカード１４４に最後に記録された画像ファイルの圧縮画像データを読み出す。最後に記録された画像ファイルがフラッシュＲＯＭ１１４に記録されている場合には、ＣＰＵ１１０は直接フラッシュＲＯＭ１１４から画像ファイルの圧縮画像データが読み取り可能である。
【００７９】
メモリカード１４４又はフラッシュＲＯＭ１１４から読み出された圧縮画像データは、圧縮伸張処理部１４０に加えられ、非圧縮の画像データとされたのちＶＲＡＭ１２０に加えられる。そして、ＶＲＡＭ１２０から表示制御部１４８を介してモニタ２８に出力される。これにより、メモリカード１４４又はフラッシュＲＯＭ１１４に記録されている画像が、モニタ２８に再生表示される。
【００８０】
画像のコマ送りは、十字ボタン３６の左右のキー操作で行なわれ、右キーが操作されると、次の画像ファイルがメモリカード１６０から読み出され、モニタ２８に再生表示される。また、十字ボタン３６の左キーが操作されると、一つ前の画像ファイルがメモリカード１４４又はフラッシュＲＯＭ１１４から読み出され、モニタ２８に再生表示される。
【００８１】
モニタ２８に再生表示された画像を確認しながら、必要に応じて、メモリカード１４４又はフラッシュＲＯＭ１１４に記録された画像を消去することができる。画像の消去は、画像がモニタ２８に再生表示された状態でファンクションボタン３４が押下されることによって行われる。
【００８２】
ファンクションボタン３４が押下されると、ＣＰＵ１１０は表示制御部１４８を介して、モニタ２８に「この写真を消去してよろしいですか」等の画像消去を伝えるメッセージを画像に重ねて表示する。ＭＥＮＵ／ＯＫボタン３８が押下されると、その画像の消去が行われる。画像データがメモリカード１４４に記録されている場合には、ＣＰＵ１１０はメディアコントローラ１４６を介してメモリカード１４４に記録された画像ファイルを消去する。画像データがフラッシュＲＯＭ１１４に記録されている場合には、ＣＰＵ１１０は直接フラッシュＲＯＭ１１４から画像ファイルが消去可能である。
【００８３】
以上のように、デジタルカメラ１０は画像の撮影、記録及び再生を行う。
【００８４】
さて、本実施の形態のデジタルカメラ１０では、ファームウェアのアップデートを行うことができるようにされており、これにより機能の追加、向上が図れるようにしている。このファームウェアのアップデート処理は、デジタルカメラ１０を所定のアップデートモードに設定することで実行される。なお、アップデートモードの設定は、例えば、ＤＩＳＰ／ＢＡＣＫボタン４０を押しながら電源ボタン２６を押すことで行われる。
【００８５】
以下、このファームウェアのアップデート処理における処理手順について説明する。
【００８６】
図４は、ファームウェアのアップデート処理での処理の流れを示すフローチャートである。なお、以下の処理はＣＰＵ１１０によって行われる。
【００８７】
メモリカードスロット１４に更新用のファームウェアが記録されたメモリカード１４４を装填した状態で上記アップデートモードの設定を行うと、デジタルカメラ１０の電源が入り、フラッシュＲＯＭ１１４に記録されている起動プログラムが実行される（ステップＳ１０）。
【００８８】
起動プログラムが実行されると、メディアコントローラ１４６によってメモリカード１４４のアクセステストが行われ、メモリカード１４４が装填されているか否かが確認される（ステップＳ１２）。
【００８９】
メモリカード１４４が検出されなかった場合には、処理が終了される。
【００９０】
一方、メモリカード１４４が検出された場合には、メモリカード１４４にファームウェアが記録されているかどうかが確認される（ステップＳ１４）。
【００９１】
メモリカード１４４にファームウェアが記録されていない場合には、処理が終了される。
【００９２】
一方、メモリカード１４４にファームウェアが記録されている場合には、メモリカード１４４に記録されたファームウェアのバージョン情報が読み出され、フラッシュＲＯＭ１１４に記録されたファームウェアのバージョン情報に基づいて、ファームウェアの新旧が比較判定される（ステップＳ１６）。
【００９３】
メモリカード１４４に記録されたファームウェアのバージョンがフラッシュＲＯＭ１１４に記録されたファームウェアのバージョンより古い場合には、処理が終了される。
【００９４】
一方、メモリカード１４４に記録されたファームウェアのバージョンがフラッシュＲＯＭ１１４に記録されたファームウェアのバージョンより新しい場合には、フラッシュＲＯＭ１１４に、メモリカード１４４に記録された更新用のファームウェア（新ファームウェア）を書き込むのに十分な連続した空き領域（空きクラスタ）があるかどうかが判断される（ステップＳ１８）。
【００９５】
新ファームウェアを書き込むのに十分な連続した空きクラスタがない場合には、表示制御部１４８によって、「アップロードできません。画像データを削除してからもう一度アップデートしてください。」等のエラー表示がモニタ２８に表示される（ステップＳ２２）。
【００９６】
一方、新ファームウェアを書き込むのに十分な連続した空きクラスタがある場合（図５（ａ）参照）には、フラッシュＲＯＭ１１４の連続した空きクラスタに新ファームウェアが書き込まれる（ステップＳ２０）。そして、新ファームウェアの書き込みが完了したと判断されるまで、上記処理が継続される（ステップＳ２４）。フラッシュＲＯＭ１１４に新ファームウェアの書き込みが終了した場合には、図５（ｂ）に示すように、フラッシュＲＯＭ１１４にあらかじめ記録されているファームウェア（旧ファームウェア）と新ファームウェアとが、連続したクラスタにそれぞれ記録されている。
【００９７】
フラッシュＲＯＭ１１４にファームウェアの書き込みが終了したら、ファームウェアの開始アドレスが旧ファームウェアの開始アドレス（図５（ｂ）ｍ）から新ファームウェアの開始アドレス（図５（ｂ）ｎ）へ変更される（ステップＳ２６）。そして、ウオッチドッグタイマーが１０秒で設定された（ステップＳ２８）状態で、デジタルカメラ１０が再起動される（ステップＳ３０）。
【００９８】
ここで、ファームウェアの開始アドレスはフラッシュＲＯＭ１１４内のカメラ設定値に書き込まれており、ＣＰＵ１１０は、カメラ設定値に書き込まれている開始アドレスを取得してからデジタルカメラ１０を起動する。そのため、ファームウェアの開始アドレスを変更すると、起動ファームウェアが旧ファームウェアから新ファームウェアに変更され、デジタルカメラ１０が新ファームウェアを起動ファームウェアに設定した状態で再起動される。
【００９９】
なお、本実施例ではウオッチドッグタイマーを１０秒で設定しているが、これに限らない。
【０１００】
デジタルカメラ１０を再起動した後で、ウオッチドッグタイマーがタイムアップしたかどうかが判断される（ステップＳ３２）。新ファームウェアが正常に動作している場合には、ウオッチドッグタイマーがタイムアップする前に新ファームウェアがウオッチドッグタイマーをリセットするため、ウオッチドッグタイマーがタイムアップすることはないが、新ファームウェアが正常に動作していない場合には、新ファームウェアがウオッチドッグタイマーをリセットしないため、ウオッチドッグタイマーがオーバーフローして、タイムアップする。
【０１０１】
ウオッチドッグタイマーがタイムアップした場合、すなわち新ファームウェアでデジタルカメラ１０が起動できない場合には、ファームウェアの開始アドレスが元に戻されて、旧ファームウェアが起動ファームウェアに再設定された状態で、デジタルカメラ１０が再起動される（ステップＳ３４）。これにより、新ファームウェアに問題があった場合においても、機器が動作しなくなることを防ぐことができる。
【０１０２】
ウオッチドッグタイマーがタイムアップしなかった場合には、以下の方法で自己診断をすることにより、新ファームウェアによってデジタルカメラ１０が正常に起動したかどうかが判断される（ステップＳ３６〜Ｓ３７）。すなわち、ファームウェアのハッシュ値が算出され（ステップＳ３６）、この算出値がファームウェアのハッシュ値と一致するかどうかが判断される（ステップＳ３７）。
【０１０３】
ステップＳ３６で算出された算出値とファームウェアのハッシュ値とが一致しない場合（ステップＳ３７でＮＯ）、すなわちデジタルカメラ１０が正常に起動しなかった場合には、ウオッチドッグタイマーがタイムアップしたがどうかを判断するステップ（ステップＳ３２）へ戻る。
【０１０４】
一方、ステップＳ３６で算出された算出値とファームウェアのハッシュ値とが一致した場合（ステップＳ３７でＹＥＳ）、すなわちデジタルカメラ１０が正常に起動した場合には、デジタルカメラ１０が再起動される前に設定したウオッチドッグタイマーが停止される（ステップＳ３８）。そして、図５（ｃ）に示すように、フラッシュＲＯＭ１１４の旧ファームウェアが消去され、旧ファームウェアが記録されていた領域が各種データ保存用の空きクラスタとして開放される（ステップＳ４０）。これにより、メモリを有効に使うことができる。
【０１０５】
なお、ステップＳ３４において、起動ファームウェアを旧ファームウェアに戻した後で、不具合があった新ファームウェアを消去し、フラッシュＲＯＭ１１４の新ファームウェアが記録されていた領域を各種データ保存用の空きクラスタとして開放するようにしてもよい（図５（ｄ）参照）。
【０１０６】
本実施の形態によれば、旧ファームウェアから新ファームウェアに更新する場合には、ファームウェアのメモリ領域の先頭クラスタを変更させればよいため、ファームウェアを容易に更新することができる。また、デジタルカメラが正常に起動した場合において、ファームウェア専用のメモリを使用しないために、旧ファームウェアを消すことにより旧ファームウェアが記録されていた領域を各種データ用の空きクラスタとして開放することができる。そのために、メモリを有効に使うことができる。また、デジタルカメラが正常に起動しなかった場合において、ファームウェアのメモリ領域の先頭クラスタを新ファームウェアから旧ファームウェアに再設定することで、起動ファームウェアを旧ファームウェアに容易に戻すことができるため、どのような場合においてもデジタルカメラを起動させることができ、機器が動作しなくなることを防ぐことができる。また、再起動前にウオッチドッグタイマーを設定することで、新しいファームウェアが正常に動作するかどうかを自動的に知ることができる。
【０１０７】
なお、本実施の形態では、メモリカードに記録されている新ファームウェアをフラッシュＲＯＭに記録することでファームウェアの更新を行ったが、ＰＣ等の外部機器とＵＢＳ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）ケーブルで接続し、そのケーブルを経由して、外部機器に記録されている新ファームウェアをフラッシュＲＯＭに記録することでファームウェアの更新を行ってもよい。この場合は、本実施の形態のステップＳ１２〜Ｓ１８の処理の代わりに、以下の処理が行われる。
【０１０８】
外部機器からＵＳＢケーブル及びＵＳＢコネクタ１５を介してファームウェア転送のコマンドを受けると、ＵＳＢＩ／Ｆ１４２にてそのコマンドを検出してＣＰＵ１１０に供給する。コマンドが供給されると、ＣＰＵ１１０は、ファームウェアのバージョンとフラッシュＲＯＭ１１４の状態を調べ、条件を満たす（送信されるファームウェアのバージョンが新しく、かつフラッシュＲＯＭ１１４にそのファームウェアが記録できる連続した空きクラスタがある）場合には、送信される新ファームウェアをフラッシュＲＯＭ１１４の連続した空きクラスタに記録する。なお、上記条件を満たさない場合における処理は、ファームウェアがメモリカード１４４に記録されている場合と同様である。
【０１０９】
＜第２の実施の形態＞
上記第１の実施の形態のデジタルカメラでは、フラッシュＲＯＭにファームウェアが連続して記録可能な空きクラスタがある場合に、ファームウェアをフラッシュＲＯＭの空きクラスタに連続して記録するが、ファームウェアをフラッシュＲＯＭへ記録する方法は、これに限定されるものではない。
【０１１０】
本実施の形態のデジタルカメラは、フラッシュＲＯＭをデフラグしてから連続した空きクラスタにファームウェアを記録するものである。図６は、本実施の形態におけるファームウェアアップデートモードでの処理の流れを示すフローチャートである。
【０１１１】
メモリカードスロット１４に更新用のファームウェアが記録されたメモリカード１４４を装填した状態で上記アップデートモードの設定を行うと、デジタルカメラ１０ａの電源が入り、フラッシュＲＯＭ１１４に記録されている起動プログラムが実行される（ステップＳ１０）。
【０１１２】
起動プログラムが実行されると、メディアコントローラ１４６によってメモリカード１４４のアクセステストが行われ、メモリカード１４４が装填されているか否かが確認される（ステップＳ１２）。
【０１１３】
メモリカード１４４が検出されなかった場合には、処理が終了される。
【０１１４】
一方、メモリカード１４４が検出された場合には、メモリカード１４４にファームウェアが記録されているかどうかが確認される（ステップＳ１４）。
【０１１５】
メモリカード１４４にファームウェアが記録されていない場合には、処理が終了される。
【０１１６】
一方、メモリカード１４４にファームウェアが記録されている場合には、メモリカード１４４に記録されたファームウェアのバージョン情報が読み出され、フラッシュＲＯＭ１１４に記録されたファームウェアのバージョン情報に基づいて、ファームウェアの新旧が比較判定される（ステップＳ１６）。
【０１１７】
メモリカード１４４に記録されたファームウェアのバージョンがフラッシュＲＯＭ１１４に記録されたファームウェアのバージョンより古い場合には、処理が終了される。
【０１１８】
一方、メモリカード１４４に記録されたファームウェアのバージョンがフラッシュＲＯＭ１１４に記録されたファームウェアのバージョンより新しい場合には、フラッシュＲＯＭ１１４がデフラグされる（ステップＳ４２）。前述のように、フラッシュＲＯＭ１１４に画像データを保存する場合には、画像データは複数のクラスタ、通常は連続した複数のクラスタに保存される。しかし、連続して画像データが保存されていたとしても、ある画像が消去された場合には、連続して保存された一部のみが消去されるため、空きクラスタが連続せず分割された状態になる。そのため、フラッシュＲＯＭ１１４をデフラグして、図７（ａ）’に示すように、クラスタを綺麗に並べ替える。
【０１１９】
デフラグ終了後に、フラッシュＲＯＭ１１４に、メモリカード１４４に記録された更新用のファームウェア（新ファームウェア）を書き込むのに十分な連続した空きクラスタがあるかどうかが判断される（ステップＳ１８）。
【０１２０】
新ファームウェアを書き込むのに十分な連続した空きクラスタがない場合には、表示制御部１４８によって、「アップロードできません。画像データを削除してからもう一度アップデートしてください。」等のエラー表示がモニタ２８に表示される（ステップＳ２２）。
【０１２１】
一方、新ファームウェアを書き込むのに十分な連続した空きクラスタがある場合（図７（ａ）’参照）には、フラッシュＲＯＭ１１４の連続した空きクラスタに新ファームウェアが書き込まれる（ステップＳ２０）。そして、新ファームウェアの書き込みが完了したと判断されるまで、上記処理が継続される（ステップＳ２４）。フラッシュＲＯＭ１１４に新ファームウェアの書き込みが終了した場合には、図７（ｂ）に示すように、フラッシュＲＯＭ１１４にあらかじめ記録されているファームウェア（旧ファームウェア）と新ファームウェアとが、連続したクラスタにそれぞれ記録されている。
【０１２２】
フラッシュＲＯＭ１１４にファームウェアの書き込みが終了したら、ファームウェアの開始アドレスが旧ファームウェアの開始アドレス（図７（ｂ）ｍ）から新ファームウェアの開始アドレス（図７（ｂ）ｎ）へ変更される（ステップＳ２６）。そして、ウオッチドッグタイマーが１０秒で設定された（ステップＳ２８）状態で、デジタルカメラ１０ａが再起動される（ステップＳ３０）。
【０１２３】
ここで、ファームウェアの開始アドレスはフラッシュＲＯＭ１１４内のカメラ設定値に書き込まれており、ＣＰＵ１１０は、カメラ設定値に書き込まれている開始アドレスを取得してからデジタルカメラ１０ａを起動する。そのため、ファームウェアの開始アドレスを変更すると、起動ファームウェアが旧ファームウェアから新ファームウェアに変更され、デジタルカメラ１０ａが新ファームウェアを起動ファームウェアに設定した状態で再起動される。
【０１２４】
なお、本実施例ではウオッチドッグタイマーを１０秒で設定しているが、これに限らない。
【０１２５】
デジタルカメラ１０ａを再起動した後で、ウオッチドッグタイマーがタイムアップしたかどうかが判断される（ステップＳ３２）。新ファームウェアが正常に動作している場合には、ウオッチドッグタイマーがタイムアップする前に新ファームウェアがウオッチドッグタイマーをリセットするため、ウオッチドッグタイマーがタイムアップすることはないが、新ファームウェアが正常に動作していない場合には、新ファームウェアがウオッチドッグタイマーをリセットしないため、ウオッチドッグタイマーがオーバーフローして、タイムアップする。
【０１２６】
ウオッチドッグタイマーがタイムアップした場合、すなわち新ファームウェアでデジタルカメラ１０ａが起動できない場合には、ファームウェアの開始アドレスが元に戻されて、旧ファームウェアが起動ファームウェアに再設定された状態で、デジタルカメラ１０ａが再起動される（ステップＳ３４）。これにより、新ファームウェアに問題があった場合においても、機器が動作しなくなることを防ぐことができる。
【０１２７】
ウオッチドッグタイマーがタイムアップしなかった場合には、自己診断をすることで、新ファームウェアによってデジタルカメラ１０ａが正常に起動したかどうかが判断される（ステップＳ３６）。
【０１２８】
デジタルカメラ１０ａが正常に起動しなかった場合には、ウオッチドッグタイマーがタイムアップしたがどうかを判断するステップ（ステップＳ３２）へ戻る。
【０１２９】
一方、デジタルカメラ１０ａが正常に起動した場合には、デジタルカメラ１０ａが再起動される前に設定したウオッチドッグタイマーが停止される（ステップＳ３８）。そして、図７（ｃ）に示すように、フラッシュＲＯＭ１１４の旧ファームウェアが消去され、旧ファームウェアが記録されていた領域が各種データ保存用の空きクラスタとして開放される（ステップＳ４０）。これにより、メモリを有効に使うことができる。
【０１３０】
なお、ステップＳ３４において、起動ファームウェアを旧ファームウェアに戻した後で、不具合があった新ファームウェアを消去し、フラッシュＲＯＭ１１４の新ファームウェアが記録されていた領域を各種データ保存用の空きクラスタとして開放するようにしてもよい（図７（ｄ）参照）。
【０１３１】
本実施の形態によれば、新ファームウェアをフラッシュＲＯＭに書き込む前にデフラグをすることで、フラッシュＲＯＭに新ファームウェアを記録するための連続した空きクラスタがない場合においても、新ファームウェアをフラッシュＲＯＭに記録することができる。
【０１３２】
＜第３の実施の形態＞
上記第１の実施の形態のデジタルカメラでは、フラッシュＲＯＭにファームウェアが連続して記録可能な空き領域がある場合に、ファームウェアをフラッシュＲＯＭの空きクラスタに連続して記録するものであり、上記第２の実施の形態のデジタルカメラでは、フラッシュＲＯＭをデフラグしてから、連続した空きクラスタにファームウェアを記録するものであるが、ファームウェアをフラッシュＲＯＭへ記録する方法は、これらに限定されるものではない。
【０１３３】
本実施の形態のデジタルカメラは、フラッシュＲＯＭにファームウェアを記録してからデフラグするものである。図８は、本実施の形態におけるファームウェアアップデートモードでの処理の流れを示すフローチャートである。
【０１３４】
メモリカードスロット１４に更新用のファームウェアが記録されたメモリカード１４４を装填した状態で上記アップデートモードの設定を行うと、デジタルカメラ１０ｂの電源が入り、フラッシュＲＯＭ１１４に記録されている起動プログラムが実行される（ステップＳ１０）。
【０１３５】
起動プログラムが実行されると、メディアコントローラ１４６によってメモリカード１４４のアクセステストが行われ、メモリカード１４４が装填されているか否かが確認される（ステップＳ１２）。
【０１３６】
メモリカード１４４が検出されなかった場合には、処理が終了される。
【０１３７】
一方、メモリカード１４４が検出された場合には、メモリカード１４４にファームウェアが記録されているかどうかを確認する（ステップＳ１４）。
【０１３８】
メモリカード１４４にファームウェアが記録されていない場合には、処理が終了される。
【０１３９】
一方、メモリカード１４４にファームウェアが記録されている場合には、メモリカード１４４に記録されたファームウェアのバージョン情報が読み出され、フラッシュＲＯＭ１１４に記録されたファームウェアのバージョン情報に基づいて、ファームウェアの新旧が比較判定される（ステップＳ１６）。
【０１４０】
メモリカード１４４に記録されたファームウェアのバージョンがフラッシュＲＯＭ１１４に記録されたファームウェアのバージョンより古い場合には、処理が終了される。
【０１４１】
一方、メモリカード１４４に記録されたファームウェアのバージョンがフラッシュＲＯＭ１１４に記録されたファームウェアのバージョンより新しい場合には、フラッシュＲＯＭ１１４にファームウェアが全て記録できる分の空きクラスタがあるかどうかが判断される（ステップＳ１９）。
【０１４２】
ファームウェアが全て記録できる分の空きクラスタが無い場合には、表示制御部１４８によって、「アップロードできません。画像データを削除してからもう一度アップデートしてください。」等のエラー表示がモニタ２８に表示される（ステップＳ２２）。
【０１４３】
一方、ファームウェアが全て記録できる分の空きクラスタがある場合には、フラッシュＲＯＭ１１４の空きクラスタに新ファームウェアが書き込まれる（ステップ４４）。そして、新ファームウェアの書き込みが完了したと判断されるまで、上記処理が継続される（ステップＳ４６）。
【０１４４】
新ファームウェアの書き込みが完了した後（図９（ｂ）参照）で、新ファームウェアがフラッシュＲＯＭ１１４の連続したクラスタに記録されているかどうかが判断される（ステップＳ４８）。
【０１４５】
新ファームウェアがフラッシュＲＯＭ１１４の連続したクラスタに記録されている場合は、ファームウェアの開始アドレスが旧ファームウェアの開始アドレス（図９（ｂ）’ｍ）から新ファームウェアの開始アドレス（図９（ｂ）’ｎ）へ変更される（ステップＳ２６）。
【０１４６】
一方、新ファームウェアがフラッシュＲＯＭ１１４の連続したクラスタに記録されていない場合（図９（ｂ）参照）は、新ファームウェアがフラッシュＲＯＭ１１４の連続したクラスタに記録された状態（図９（ｂ）’参照）になるように、フラッシュＲＯＭ１１４がデフラグされる（ステップＳ５０）。その後、ファームウェアの開始アドレスが旧ファームウェアの開始アドレス（図９（ｂ）’ｍ）から新ファームウェアの開始アドレス（図９（ｂ）’ｎ）へ変更される（ステップＳ２６）。
【０１４７】
そして、ウオッチドッグタイマーが１０秒で設定された（ステップＳ２８）状態で、デジタルカメラ１０ｂが再起動される（ステップＳ３０）。ここで、ファームウェアの開始アドレスはフラッシュＲＯＭ１１４内のカメラ設定値に書き込まれており、ＣＰＵ１１０は、カメラ設定値に書き込まれている開始アドレスを取得してからデジタルカメラ１０ｂを起動する。そのため、ファームウェアの開始アドレスを変更すると、起動ファームウェアが旧ファームウェアから新ファームウェアに変更され、デジタルカメラ１０ｂが新ファームウェアを起動ファームウェアに設定した状態で再起動される。
【０１４８】
なお、本実施例ではウオッチドッグタイマーを１０秒で設定しているが、これに限らない。
【０１４９】
デジタルカメラ１０ｂを再起動した後で、ウオッチドッグタイマーがタイムアップしたかどうかが判断される（ステップＳ３２）。新ファームウェアが正常に動作している場合には、ウオッチドッグタイマーがタイムアップする前に新ファームウェアがウオッチドッグタイマーをリセットするため、ウオッチドッグタイマーがタイムアップすることはないが、新ファームウェアが正常に動作していない場合には、新ファームウェアがウオッチドッグタイマーをリセットしないため、ウオッチドッグタイマーがオーバーフローして、タイムアップする。
【０１５０】
ウオッチドッグタイマーがタイムアップした場合、すなわち新ファームウェアでデジタルカメラ１０ｂが起動できない場合には、ファームウェアの開始アドレスが元に戻されて、旧ファームウェアが起動ファームウェアに再設定された状態で、デジタルカメラ１０ｂが再起動される（ステップＳ３４）。これにより、新ファームウェアに問題があった場合においても、機器が動作しなくなることを防ぐことができる。
【０１５１】
ウオッチドッグタイマーがタイムアップしなかった場合には、自己診断をすることで、新ファームウェアによってデジタルカメラ１０ｂが正常に起動したかどうかが判断される（ステップＳ３６）。
【０１５２】
デジタルカメラ１０ｂが正常に起動しなかった場合には、ウオッチドッグタイマーがタイムアップしたがどうかを判断するステップ（ステップＳ３２）へ戻る。
【０１５３】
一方、デジタルカメラ１０ｂが正常に起動した場合には、デジタルカメラ１０ｂが再起動される前に設定したウオッチドッグタイマーが停止される（ステップＳ３８）。そして、図９（ｃ）に示すように、フラッシュＲＯＭ１１４の旧ファームウェアが消去され、旧ファームウェアが記録されていた領域が各種データ保存用の空きクラスタとして開放される（ステップＳ４０）。これにより、メモリを有効に使うことができる。
【０１５４】
なお、ステップＳ３４において、起動ファームウェアを旧ファームウェアに戻した後で、不具合があった新ファームウェアを消去し、フラッシュＲＯＭ１１４の新ファームウェアが記録されていた領域を各種データ保存用の空きクラスタとして開放するようにしてもよい（図９（ｄ）参照）。
【０１５５】
本実施の形態によれば、まず、新ファームウェアをフラッシュＲＯＭに記録するため、フラッシュＲＯＭに新ファームウェアを記録するための連続した空きクラスタがない場合においても、新ファームウェアをフラッシュＲＯＭに記録することができる。また、新ファームウェアの書き込みが完了した後で、新ファームウェアがフラッシュＲＯＭの連続したクラスタに記録されているかどうか調べるため、新ファームウェアがフラッシュＲＯＭの連続したクラスタに記録されている場合にはフラッシュＲＯＭをデフラグする必要がないため、ファームウェアのアップデートに必要な時間を短縮することができる。
【０１５６】
＜第４の実施の形態＞
上記第１の実施の形態のデジタルカメラでは、ウオッチドッグタイマーを設定することで、新ファームウェアで起動させたときに不具合がないかどうか判断したが、新ファームウェアで再起動させたときに不具合がないかどうか判断する方法は、これに限定されるものではない。たとえば、操作者が判断、指示するようにしてもよい。
【０１５７】
本実施の形態のデジタルカメラは、操作者が特定の操作をすることで、新ファームウェアで起動させたときに不具合がないかどうか判断するものである。図１０は、本実施の形態におけるファームウェアアップデートモードでの処理の流れを示すフローチャートである。
【０１５８】
メモリカードスロット１４に更新用のファームウェアが記録されたメモリカード１４４を装填した状態で上記アップデートモードの設定を行うと、デジタルカメラ１０ｃの電源が入り、フラッシュＲＯＭ１１４に記録されている起動プログラムが実行される（ステップＳ１０）。
【０１５９】
起動プログラムが実行されると、メディアコントローラ１４６によってメモリカード１４４のアクセステストが行われ、メモリカード１４４が装填されているか否かが確認される（ステップＳ１２）。
【０１６０】
メモリカード１４４が検出されなかった場合には、処理が終了される。
【０１６１】
一方、メモリカード１４４が検出された場合には、メモリカード１４４にファームウェアが記録されているかどうかが確認される（ステップＳ１４）。
【０１６２】
メモリカード１４４にファームウェアが記録されていない場合には、処理が終了される。
【０１６３】
一方、メモリカード１４４にファームウェアが記録されている場合には、メモリカード１４４に記録されたファームウェアのバージョン情報が読み出され、フラッシュＲＯＭ１１４に記録されたファームウェアのバージョン情報に基づいて、ファームウェアの新旧が比較判定される（ステップＳ１６）。
【０１６４】
メモリカード１４４に記録されたファームウェアのバージョンがフラッシュＲＯＭ１１４に記録されたファームウェアのバージョンより古い場合には、処理が終了される。
【０１６５】
一方、メモリカード１４４に記録されたファームウェアのバージョンがフラッシュＲＯＭ１１４に記録されたファームウェアのバージョンより新しい場合には、フラッシュＲＯＭ１１４に、メモリカード１４４に記録された更新用のファームウェア（新ファームウェア）を書き込むのに十分な連続した空き領域（空きクラスタ）があるかどうかが判断される（ステップＳ１８）。
【０１６６】
新ファームウェアを書き込むのに十分な連続した空きクラスタがない場合には、表示制御部１４８によって、「アップロードできません。画像データを削除してからもう一度アップデートしてください。」等のエラー表示がモニタ２８に表示される（ステップＳ２２）。
【０１６７】
一方、新ファームウェアを書き込むのに十分な連続した空きクラスタがある場合（図５（ａ）参照）には、フラッシュＲＯＭ１１４の連続した空きクラスタに新ファームウェアが書き込まれる（ステップＳ２０）。そして、新ファームウェアの書き込みが完了したと判断されるまで、上記処理が継続される（ステップＳ２４）。フラッシュＲＯＭ１１４に新ファームウェアの書き込みが終了した場合には、図５（ｂ）に示すように、フラッシュＲＯＭ１１４にあらかじめ記録されているファームウェア（旧ファームウェア）と新ファームウェアとが、連続したクラスタにそれぞれ記録されている。
【０１６８】
フラッシュＲＯＭ１１４にファームウェアの書き込みが終了したら、ファームウェアの開始アドレスが旧ファームウェアの開始アドレス（図５（ｂ）ｍ）から新ファームウェアの開始アドレス（図５（ｂ）ｎ）へ変更される（ステップＳ２６）。
【０１６９】
その後、ＤＩＳＰ／ＢＡＣＫボタン４０が接続されたポートが割り込みに設定され（ステップＳ５２）、表示制御部１４８を介して、モニタ２８に「正常に動作しない場合はＤＩＳＰ／Ｂａｃｋボタンを押してください」等のメッセージが表示される（ステップＳ５４）。これにより、正常に動作しない場合にＤＩＳＰ／Ｂａｃｋボタンを押すことを操作者に伝えることができる。
【０１７０】
その後、デジタルカメラ１０ｃが再起動される（ステップＳ３０）。ここで、ファームウェアの開始アドレスはフラッシュＲＯＭ１１４内のカメラ設定値に書き込まれており、ＣＰＵ１１０は、カメラ設定値に書き込まれている開始アドレスを取得して起動する。そのため、ファームウェアの開始アドレスを変更すると、起動ファームウェアが旧ファームウェアから新ファームウェアに変更され、デジタルカメラ１０ｃが新ファームウェアを起動ファームウェアに設定した状態で再起動される。
【０１７１】
デジタルカメラ１０ｃを再起動した後で、ＤＩＳＰ／Ｂａｃｋボタン４０が押されたかどうかが判断される（ステップＳ５６）。
【０１７２】
ＤＩＳＰ／Ｂａｃｋボタン４０が押された場合には、新ファームウェアではデジタルカメラ１０ｃが起動できないと判断される。そのため、ファームウェアの開始アドレスが元に戻されて、旧ファームウェアが起動ファームウェアに再設定された状態で、デジタルカメラ１０ｃが再起動される（ステップＳ３４）。これにより、新ファームウェアに問題があった場合においても、機器が動作しなくなることを防ぐことができる。
【０１７３】
一方、ＤＩＳＰ／Ｂａｃｋボタン４０が押されなかった場合には、自己診断をすることで、新ファームウェアによりデジタルカメラ１０ｃが正常に起動したかどうかが判断される（ステップＳ３６）。
【０１７４】
デジタルカメラ１０ｃが正常に起動しなかった場合には、ＤＩＳＰ／Ｂａｃｋボタン４０が押されたかどうかを判断するステップ（ステップＳ５６）へ戻る。
【０１７５】
一方、デジタルカメラ１０ｃが正常に起動した場合には、デジタルカメラ１０ｃを再起動させる前に設定したＤＩＳＰ／ＢＡＣＫボタン４０が接続されたポートの割り込みが停止される（ステップＳ５８）。そして、図５（ｃ）に示すように、フラッシュＲＯＭ１１４の旧ファームウェアが消去され、旧ファームウェアが記録されていた領域が各種データ保存用の空きクラスタとして開放される（ステップＳ４０）。これにより、メモリを有効に使うことができる。
【０１７６】
なお、ステップＳ３４において、起動ファームウェアを旧ファームウェアに戻した後で、不具合があった新ファームウェアを消去し、フラッシュＲＯＭ１１４の新ファームウェアが記録されていた領域を各種データ保存用の空きクラスタとして開放するようにしてもよい（図５（ｄ）参照）。
【０１７７】
本実施の形態によれば、新ファームウェアが正常に動作しているかどうかを操作者が判断し、不具合があった場合にはデジタルカメラに指示をすることで、不具合があった場合にもデジタルカメラを起動させることができ、機器が動作しなくなることを防ぐことができる。
【０１７８】
なお、本発明の適用は、デジタルカメラに限定されるものではなく、カメラつき携帯電話機やビデオカメラ等の撮像装置、携帯音楽プレーヤー、ＰＤＡ等のファームウェアがアップデート可能な電子機器にも同様に適用することができる。
【図面の簡単な説明】
【０１７９】
【図１】本発明が適用された電子機器（デジタルカメラ）の第１の実施の形態の外観構成を示す正面斜視図である。
【図２】上記デジタルカメラの第１の実施の形態の外観構成を示す背面斜視図である。
【図３】上記デジタルカメラの第１の実施の形態の電気的構成を示すブロック図である。
【図４】上記デジタルカメラの第１の実施の形態のフローチャートである。
【図５】上記デジタルカメラの第１の実施の形態のフラッシュＲＯＭのクラスタ配置を示す説明図であり、（ａ）は新ファームウェア記録前のクラスタの状態を示し、（ｂ）は新ファームウェアを記録した後のクラスタの状態を示し、（ｃ）は新ファームウェアで電子機器が正常に起動した場合のクラスタの状態を示し、（ｄ）は新ファームウェアで電子機器が正常に起動しなかった場合のクラスタの状態を示す。
【図６】本発明が適用されたデジタルカメラの第２の実施の形態のフローチャートである。
【図７】上記デジタルカメラの第２の実施の形態のフラッシュＲＯＭのクラスタ配置を示す説明図であり、（ａ）は新ファームウェア記録前のクラスタの状態を示し、（ａ）’はデフラグ後のクラスタの状態を示し、（ｂ）は新ファームウェアを記録した後のクラスタの状態を示し、（ｃ）は新ファームウェアで電子機器が正常に起動した場合のクラスタの状態を示し、（ｄ）は新ファームウェアで電子機器が正常に起動しなかった場合のクラスタの状態を示す。
【図８】本発明が適用されたデジタルカメラの第３の実施の形態のフローチャートである。
【図９】上記デジタルカメラの第３の実施の形態のフラッシュＲＯＭのクラスタ配置を示す説明図であり、（ａ）は新ファームウェア記録前のクラスタの状態を示し、（ｂ）は新ファームウェアを記録した後のクラスタの状態を示し、（ｂ）’はデフラグ後のクラスタの状態を示し、（ｃ）は新ファームウェアで電子機器が正常に起動した場合のクラスタの状態を示し、（ｄ）は新ファームウェアで電子機器が正常に起動しなかった場合のクラスタの状態を示す。
【図１０】本発明が適用されたデジタルカメラの第４の実施の形態のフローチャートである。
【符号の説明】
【０１８０】
１０、１０ａ、１０ｂ、１０ｃ…デジタルカメラ、１２…カメラボディ、１４…メモリカードスロット、１５…ＵＳＢ用コネクタ、２６…電源ボタン、２８…モニタ、４０…ＤＩＳＰ／ＢＡＣＫボタン、１１０…ＣＰＵ、１１４…フラッシュＲＯＭ、１１６…ＲＡＭ、１４２…ＵＳＢＩ／Ｆ、１４４…メモリカード、１４６…メディアコントローラ、１４８…表示制御部
【図１】
2008225763.tif 000003
【図２】
2008225763.tif 000004
【図３】
2008225763.tif 000005
【図４】
2008225763.tif 000006
【図５】
2008225763.tif 000007
【図６】
2008225763.tif 000008
【図７】
2008225763.tif 000009
【図８】
2008225763.tif 000010
【図９】
2008225763.tif 000011
【図１０】
2008225763.tif 000012