(57)【要約】【課題】ユーザを煩わせることなくカメラユニットへ機能追加をすることが可能なカメラシステムを提供すること。【解決手段】ボディの動作を制御する第１のボディ制御プログラムが第１領域に記憶された第１の不揮発メモリ６２と、ＣＰＵ４２と、互いのバージョンが調整された、第２のボディ制御プログラム、及び、カメラユニットの動作を制御する第２のカメラユニット制御プログラムを記憶した第２の不揮発メモリ４３から、カメラユニットに送信する第１のプログラム送信手段８５と、第２のボディ制御プログラムを第２領域に記憶するプログラム記録手段８７と、前記第２のカメラユニット制御プログラムにより予め記憶されている第１のカメラユニット制御プログラムを更新するプログラム更新手段８１と、を有することを特徴とする。【選択図】図１
2013020413.tif 000002
【特許請求の範囲】
【請求項１】
撮影光学系と撮像手段が一体のカメラユニットと、
カメラユニットを着脱可能なボディと、
カメラユニットとボディを接続する接続手段と、を有するカメラシステムにおいて、
ボディは、
ボディの動作を制御する第１のボディ制御プログラムが第１領域に記憶された第１の不揮発メモリと、
ボディ制御プログラムを実行するＣＰＵと、
互いのバージョンが調整された、第２のボディ制御プログラム、及び、カメラユニットの動作を制御する第２のカメラユニット制御プログラムを記憶した第２の不揮発メモリから、
前記接続手段を介して前記第２のボディ制御プログラム及び前記第２のカメラユニット制御プログラムをカメラユニットに送信する第１のプログラム送信手段と、
カメラユニットから受信した前記第２のボディ制御プログラムを、前記第１領域とは異なる前記第１の不揮発メモリの第２領域に記憶するプログラム記録手段と、を有し、
カメラユニットは、
ボディから受信した前記第２のカメラユニット制御プログラムにより、予め第３の不揮発メモリに記憶されている第１のカメラユニット制御プログラムを更新するプログラム更新手段と、
前記接続手段を介して前記第２のボディ制御プログラムをボディに送信する第２のプログラム送信手段と、を有する、
ことを特徴とするカメラシステム。
【請求項２】
ボディは、
前記第２領域に前記第２のボディ制御プログラムが記憶されているか否か、又は、
前記第２領域に前記第２のボディ制御プログラムのバージョンと、カメラユニットの前記第３の不揮発メモリに記憶されているカメラユニット制御プログラムのバージョンに整合性があるか否か、を判定する判定手段を有し、
前記第２領域に前記第２のボディ制御プログラムが記憶されていないか、又は、バージョンに整合性がない場合にのみ、前記プログラム記録手段は、カメラユニットから前記第２のボディ制御プログラムを受信する、
ことを特徴とする請求項１記載のカメラシステム。
【請求項３】
ボディは、前記第２領域に前記第２のボディ制御プログラムが記憶されている場合、前記第１のボディ制御プログラムより優先して、前記ＣＰＵに前記第２のボディ制御プログラムを実行する、
ことを特徴とする請求項１又は２記載のカメラシステム。
【請求項４】
ボディは、前記接続手段にカメラユニットが接続されていない場合、前記第２領域に前記第２のボディ制御プログラムが記憶されていても、前記第１領域に記憶された前記第１のボディ制御プログラムを実行する、
ことを特徴とする請求項３記載のカメラシステム。
【請求項５】
前記第１の不揮発メモリは、前記第１のボディ制御プログラムに加え、前記第１のボディ制御プログラムと同一バージョンの第１のボディ用リソースデータを記憶しており、
前記第１のプログラム送信手段は、前記第２の不揮発メモリに記憶されている前記第２のボディ制御プログラムと同一バージョンの第２のボディ用リソースデータをカメラユニットに送信し、
前記プログラム記録手段は、カメラユニットから受信した前記第２のボディ用リソースデータを、前記第２領域に記憶する、
ことを特徴とする請求項１〜４いずれか１項記載のカメラシステム。
【請求項６】
前記第２のプログラム送信手段は、ボディにカメラユニットが装着された時又はバッテリがボディに装着された時、前記接続手段を介して前記第２のボディ制御プログラム及び前記第２のボディ用リソースデータをボディに送信する、ことを特徴とする請求項５記載のカメラシステム。
【請求項７】
本体側の制御を受ける第１部材と、
前記第１部材が着脱可能な第２部材と、
前記第１部材と前記第２部材を接続する接続手段と、を有する情報処理システムにおいて、
前記第２部材は、
前記第２部材の動作を制御する第１の第２部材制御プログラムが第１領域に記憶された第１の不揮発メモリと、
第２部材制御プログラムを実行するＣＰＵと、
互いのバージョンが調整された、第２の制御プログラム、及び、前記第１部材の動作を制御する第２の第１部材制御プログラムを記憶した第２の不揮発メモリから、
前記接続手段を介して前記第２の第１部材制御プログラム及び前記第２の第２部材制御プログラムを前記第１部材に送信する第１のプログラム送信手段と、
前記第１部材から受信した前記第２の第２部材制御プログラムを、前記第１領域とは異なる前記第１の不揮発メモリの第２領域に記憶するプログラム記録手段と、を有し、
前記第１部材は、
前記第２部材から受信した前記第２の前記第１部材制御プログラムにより、予め第３の不揮発メモリに記憶されている第１の第１部材制御プログラムを更新するプログラム更新手段と、
前記接続手段を介して前記第２の第２部材制御プログラムを前記第２部材に送信する第２のプログラム送信手段と、を有する、
ことを特徴とする情報処理システム。
【請求項８】
撮影光学系と撮像手段が一体のカメラユニットと接続する接続手段を有し、カメラユニットを着脱可能なカメラ本体であって、
ボディの動作を制御する第１のボディ制御プログラムが第１領域に記憶された第１の不揮発メモリと、
ボディ制御プログラムを実行するＣＰＵと、
互いのバージョンが調整された、第２のボディ制御プログラム、及び、カメラユニットの動作を制御する第２のカメラユニット制御プログラムを記憶した第２の不揮発メモリから、
前記接続手段を介して前記第２のボディ制御プログラム、及び、カメラユニットが予め第３の不揮発メモリに記憶されている第１のカメラユニット制御プログラムを更新するための前記第２のカメラユニット制御プログラムをカメラユニットに送信する第１のプログラム送信手段と、
カメラユニットから受信した前記第２のボディ制御プログラムを、前記第１領域とは異なる前記第１の不揮発メモリの第２領域に記憶するプログラム記録手段と、
を有するカメラ本体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影光学系と撮像手段が一体のカメラユニットと、カメラユニットを着脱可能なボディと、有するカメラシステムにおいて、ファームウェアのアップデート可能がカメラシステムに関する。
【背景技術】
【０００２】
一眼レフカメラや一部のコンパクトカメラは、レンズの交換が可能になっている。以下、レンズ側をカメラユニット、カメラの本体側をボディと称し、カメラユニットとボディをカメラユニット交換式カメラシステムという。カメラユニット交換式カメラシステムでは、カメラユニットに、焦点距離の異なるレンズと最適化したタイプ又はサイズの撮像素子、及び、画像処理エンジンが搭載されている。このカメラユニットを適合するボディへ着脱可能に装着することにより、カメラユニット交換式カメラシステムは多彩なシーンに対応した撮影を可能としている。ボディとカメラユニットは、一眼レフカメラのマウントシステムと同様に、電気的な接続端子を介して互いに接続されている。
【０００３】
カメラユニット交換カメラシステムは、ボディが主体（マスター）となりボディに内蔵されたＣＰＵが全体の動作を統括制御するように構成されている。カメラユニット側にも同様にＣＰＵが内蔵されており、カメラユニットは接続端子を介してボディ側ＣＰＵと通信を行い、ボディ側ＣＰＵの制御命令により、従属的に（スレーブとして）動作する。このため、カメラユニットとボディはいずれもＣＰＵが実行するためのファームウェアを有している。
【０００４】
また、カメラユニット内に撮像素子を搭載しているため、撮影機能を決定しているのはボディではなくカメラユニットである。ボディは撮影処理のうち、画像の圧縮伸張処理、画像ファイル書き出し及び読み出し処理等を担当する。
【０００５】
ところで、ユーザやメーカなどが既に発売したカメラユニットに撮影機能の追加を行ったり、カメラユニットの不具合を修正する場合、カメラユニット側ファームウェアのアップデートが必要となる。カメラユニットのアップデート方法として代表的なのは、メーカサポートＷｅｂサイトに公開された新バージョンのファームウェアを、ユーザ自身がダウンロードし、メモリカードに記憶して、カメラユニット交換式カメラシステムのファームウェアアップデート機能にてバージョンアップする方法である。ボディのファームウェアの場合もアップデート方法は同様である。
【０００６】
ここで、カメラユニットのファームウェアをアップデートすることで、ボディのファームウェアをアップデートする必要が発生することがある。この場合、ユーザは、ボディのファームウェアもアップデートするが、メーカとしては、カメラユニットとボディのファームウェアのバージョンの組合せ毎に、互換性を検証する必要がある。このように、カメラユニット交換式カメラシステムでは、カメラユニットとボディのファームウェアの互換性検証コストが生じるという不都合がある。
【０００７】
また、メーカが互換性検証を行っても、ユーザがボディのファームウェアのアップデートをしなかった場合、カメラユニット交換式カメラシステムは正常に動作せずユーザに混乱を招くという不都合がある。
【０００８】
従来から、ファームウェアを更新することでカメラユニットに新たな機能を追加する試みがある（例えば、特許文献１、２参照。）。特許文献１には、カメラユニット特有の機能に対応したボディ制御プログラムをカメラユニットがボディへ転送することで、ボディ側制御プログラムをアップデートするカメラシステムが開示されている。
【０００９】
特許文献２には、メモリカードにあるボディ用ファームウェアとカメラユニット用ファームウェアが既にボディ及びカメラユニット内の不揮発性メモリに格納されているファームウェアより新しい場合、自動的にアップデートするカメラシステムが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、カメラユニット交換式カメラシステムでは、ボディのラインナップに対してカメラユニットのラインナップの方が多いために、ボディとカメラユニットのファームウェアのバージョンの組み合わせが数多く発生するという不都合があることが知られている。
【００１１】
この点、特許文献１に開示されたアップデート方法では、カメラユニットの出荷時はカメラユニット制御プログラムとカメラユニット特有の機能に対応したボディ制御プログラムの組合せが得られる。しかし、カメラユニットの出荷後に、さらにカメラユニットに機能が追加された場合、カメラユニット制御プログラムとボディ制御プログラムのバージョンの組合せをどのように検証するかが考慮されていないという問題がある。
【００１２】
また、特許文献２に開示されたアップデート方法では、新しいファームウェアにより自動的にアップデートされるが、自動的にアップデートしたボディ用のファームウェアとカメラユニット用のファームウェアの組合せが、互換性が検証された組合せとは限らないという問題がある。
【００１３】
本発明は、上記課題に鑑み、ユーザを煩わせることなくカメラユニットへ機能追加をすることが可能なカメラシステムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、撮影光学系と撮像手段が一体のカメラユニットと、カメラユニットを着脱可能なボディと、カメラユニットとボディを接続する接続手段と、を有するカメラシステムにおいて、ボディは、ボディの動作を制御する第１のボディ制御プログラムが第１領域に記憶された第１の不揮発メモリと、ボディ制御プログラムを実行するＣＰＵと、互いのバージョンが調整された、第２のボディ制御プログラム、及び、カメラユニットの動作を制御する第２のカメラユニット制御プログラムを記憶した第２の不揮発メモリから、前記接続手段を介して前記第２のボディ制御プログラム及び前記第２のカメラユニット制御プログラムをカメラユニットに送信する第１のプログラム送信手段と、カメラユニットから受信した前記第２のボディ制御プログラムを、前記第１領域とは異なる前記第１の不揮発メモリの第２領域に記憶するプログラム記録手段と、を有し、カメラユニットは、ボディから受信した前記第２のカメラユニット制御プログラムにより、予め第３の不揮発メモリに記憶されている第１のカメラユニット制御プログラムを更新するプログラム更新手段と、  前記接続手段を介して前記第２のボディ制御プログラムをボディに送信する第２のプログラム送信手段と、を有する、ことを特徴とする。
【発明の効果】
【００１５】
ユーザを煩わせることなくカメラユニットへ機能追加をすることが可能なカメラシステムを提供できる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態のカメラシステムの概略的な特徴を説明する図の一例である。
【図２】カメラシステムの斜視図の一例である。
【図３】ボディの斜視図の一例を示す。
【図４】ボディの構成を示す斜視図の一例である。
【図５】カメラユニットの斜視図の一例である。
【図６】カメラシステム内部の制御系統の構成例を示す図の一例である。
【図７】ボディＣＰＵの詳細回路図の一例である。
【図８】ボディＣＰＵの動作モードを説明する図の一例である。
【図９】ボディのファームウェアファイルの構成を示す概略図の一例である。
【図１０】起動時のボディのＳＤＲＡＭと、起動時のカメラユニットのＳＤＲＡＭの状態を、それぞれ示す図の一例である。
【図１１】ＣＵファームウェアのアップデートを模式的に説明する図の一例である（従来図）。
【図１２】ボディファームウェアのアップデートを模式的に説明する図の一例である（従来図）。
【図１３】カメラユニットとボディのファームウェアのバージョンの組み合わせを説明する図の一例である。
【図１４】カメラユニットとボディの機能ブロック図の一例である。
【図１５】カメラシステムが、ファームウェアをアップデートするか又は起動する手順を示すフローチャート図の一例である。
【図１６】カメラファームウェア及びボディファームウェアのアップデートを模式的に説明する図の一例である。
【図１７】ボディ及びカメラユニットの起動時の動作を模式的に説明する図の一例である。
【図１８】ボディ及びカメラユニットの起動時の動作を模式的に説明する図の一例である。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態について図面を参照しながら説明する。
図１は、本実施形態のカメラシステムの概略的な特徴を説明する図の一例である。カメラシステムは、レンズやズーム機構等が搭載されたカメラユニット２００と、カメラユニット２００が装着されるボディ１００とを有する。
【００１８】
ボディ１００のフラッシュＲＯＭには、メーカの出荷時に少なくとも１つのボディ用のファームウェア（以下、ボディファームウェアという）が記憶されている。同様に、カメラユニット２００のフラッシュＲＯＭには、メーカの出荷時に少なくとも１つのカメラユニット用のファームウェア（以下、カメラユニットをＣＵ、カメラユニット用のファームウェアをＣＵファームウェアという）が記憶されている。
【００１９】
ファームウェアのアップデート時、撮影者などのユーザにより、ボディ１００とカメラユニット２００の対のファームウェアが記憶されたメモリカードが用意される。対とは、ボディ１００とカメラユニット２００のファームウェアのバージョンが一致しているなど、互いの機能を十分に利用できるように調整されていることをいう。
【００２０】
アップデートの際、ボディ１００はメモリカードの２つのファームウェアをカメラユニット２００に送信する。カメラユニット２００は、すでに記憶しているＣＵファームウェアを、受信したアップデート用のＣＵファームウェアで更新（上書き）する。また、カメラユニット２００は、アップデート用のボディファームウェアをフラッシュＲＯＭに記憶しておく。
【００２１】
そして、カメラユニット２００はアップデート用のボディファームウェアを、ボディ１００に送信する。これにより、対のファームウェアのうちボディ用がボディ１００に、カメラユニット２００用がカメラユニット２００にそれぞれ記憶されたことになる。なお、ボディ１００は、アップデート用のボディファームウェアで出荷時のボディファームウェアを上書きしない。
【００２２】
したがって、カメラシステムは、組合せが検証されたカメラユニットとボディのファームウェアの組合せにより全体を制御することができる。また、ボディ１００には出荷時のファームウェアが記憶されたままなので、ボディ１００の機能だけが追加されるファームウェアのバージョンアップがあっても、ボディファームウェアだけをアップデートすることができる。また、ファームウェアはボディに記憶されるので、ボディの制御プログラムの起動時間が長くなるのは、アップデート時だけにすることができる。
【００２３】
〔構成例〕
図２は、カメラシステムの斜視図の一例を示す。図２（ａ）は単焦点レンズのカメラユニット２００ａが装着されるカメラシステム３００を、図２（ｂ）は光学ズームレンズのカメラユニット２００ｂが装着されるカメラシステム３００を、それぞれ示す。
【００２４】
カメラシステム３００は、ボディ１００と、ボディ１００に着脱可能なカメラユニット２００を有する。カメラシステム３００は、カメラユニット２００とボディ１００が一体となって撮像システムとしての機能を発揮する。
【００２５】
カメラユニット２００は、主にレンズの種類によって種々のタイプのものが用意されている。ユーザは複数のカメラユニット２００から適宜選択してボディ１００に装着することができる。カメラユニット２００には、例えば、標準レンズ、ズームレンズ、広角レンズ、望遠レンズ、マクロレンズ、ソフトフォーカスレンズ等がある。図２（ａ）と図２（ｂ）に示すように、カメラユニット２００ａ、２００ｂのタイプは異なっていても、ボディ１００は共通である。
【００２６】
なお、カメラシステム３００は、一般にデジタルスチルカメラと呼ばれるカメラであり、一眼レフカメラ又はコンパクトデジタルカメラの双方を含む。また、デジタルスチルカメラは、ビデオ撮影が可能でも可能でなくてもよい。一方、カメラシステム３００がデジタルビデオカメラでも、レンズと本体が着脱可能であれば、本実施形態のファームウェアのアップデート方法を適用できる。また、必ずしもカメラとカメラユニットの組である必要はなく、２つの部材がそれぞれファームウェアを実行し互いに通信することで一体に動作するシステムであれば、本実施形態のアップデート方法を適用できる。
【００２７】
図３は、ボディ１００の斜視図の一例を示す。ボディ１００の上面には、アップダウンダイヤル１０１、ロックボタン１０２、モードダイヤル１０３、シャッターボタン１０４、電源スイッチ１０５、ホットシュー１０７、フラッシュカバー１０８、マイク１０９、ストラップ取り付け部１１０、及び、フラッシュ発光部１１１が配置されている。
【００２８】
アップダウンダイヤル１０１は、メニューに表示される設定を変更するためのダイヤルである。ロックボタン１０２は、モードダイヤルの回転を許可するためのボタンである。シャッターボタン１０４は、静止画を撮影するためのボタンである。電源スイッチ１０５は、電源をオン又はオフするためのボタンである。ホットシュー１０７は、外部フラッシュを装着するための接続部である。フラッシュカバー１０８はフラッシュ発光部１１１を保護するためのカバーである。マイク１０９は外部の音と集音する素子である。ストラップ取り付け部１１０は、カメラシステム３００を携帯するためのストラップを取り付ける部位である。フラッシュ発光部１１１は夜間や暗部の撮影時に被写体を照明するランプである。
【００２９】
また、前面には、ＡＦ補助光１０６及びカメラユニット取り外しレバー１１２が配置されており、カメラユニット２００の取り付け部には、カメラユニット取り付け位置ガイド１１４と、端子１１３が配置されている。ＡＦ補助光１０６は、周囲が暗く、オートフォーカスでの測距が難しい状況で発光されるライトである。ＡＦ補助光１０６によりＡＦ測距が行われる。カメラユニット取り外しレバー１１２は、カメラユニット２００を脱着する際にユーザがスライドさせるレバーである。カメラユニット取り付け位置ガイド１１４は、ボディ１００に対しカメラユニット２００の位置あわせを行うための案内手段である。端子１１３は、カメラユニット２００とボディ１００を電気的に接続するための端子である。
【００３０】
図４は、ボディ１００の構成を示す斜視図の一例である。ボディ１００の背面には、ＤＩＲＥＣＴボタン１１６、フラッシュオープン／設定ボタン１１７、ＶＦ／ＬＣＤボタン１１８、画像モニター１２０、オートフォーカス／フラッシュランプ１１９、ＵＳＢ 端子１３６、ＡＶ出力端子１３７、ＨＤＭＩミニ出力端子１３８、ＡＤＪ．レバー１２１、再生ボタン１２２、マクロボタン１２３、望遠／拡大表示ボタン１２４、広角／サムネイル表示ボタン１２５、上下左右方向キー１２６、ＭＥＮＵ／ＯＫボタン１２７、ＤＩＳＰ．ボタン１２８、セルフタイマー／削除ボタン１２９、三脚ネジ穴１３５、バッテリ／カードカバー１３４、解除レバー１３３、電源（ＤＣ 入力）ケーブルカバー１３２、スピーカ１３１、ストラップ取り付け部１３０、及び、端子カバー１３９が配置されている。
【００３１】
ＤＩＲＥＣＴボタンは、現在の撮影設定を画面モニター１２０に表示するためのボタンであり、ユーザが画面モニター１２０から項目を選択することで、直接設定を変更すること可能にするボタンである。フラッシュオープン／設定ボタンは、フラッシュカバーを開放するためのボタンである。ＶＦ／ＬＣＤボタンは、画面モニター１２０をオフ又はオンにするためのボタンである。画面モニター１２０は撮影されている映像を表示するためのビューファインダーであり、また、各種のメニューを表示するために使用される。画面モニター１２０はタッチパネルになっており、操作を受け付けることもできる。オートフォーカス／フラッシュランプは、点灯色と点灯状態によりピント合わせの状態を通知する。ＵＳＢ端子は他の機器とＵＳＢシリアル通信するための端子である。ＡＶ出力端子は、ＡＶケーブルを接続することでテレビ画面などに映像や画像を表示するための端子である。ＨＤＭＩミニ出力端子は、ＨＤＭＩケーブルを接続することでテレビ画面などに映像や画像を表示するための端子である。ＡＤＪ．レバーは、メニューの項目が選択されている状態でユーザが押すことで、選択されている撮影設定項目の選択肢を表示するレバーである。設定を変更後、ユーザがＡＤＪ. レバーを押すと変更が確定される。再生ボタンは、撮影モードから再生モードに切り換えたり、再生モードで電源をオンにして、すでに撮影した画像や映像を再生するためのボタンである。マクロボタンは、レンズを被写体に接近させて撮影するためのボタンである。望遠／拡大表示ボタンは、範囲を狭めて被写体を大きく撮影するためのボタンである。広角／サムネイル表示ボタンは、被写体を小さくして広い範囲を撮影するためのボタンである。上下左右方向キーは、モニター画面のメニューやカーソルを移動させるためのボタンである。ＭＥＮＵ／ＯＫボタンは、設定を確定入力するためのボタンである。ＤＩＳＰ．ボタンは、撮影モード、再生モードのそれぞれで画面表示を切り換えるためのボタンである。セルフタイマー／削除ボタンは、設定された時間の経過後に自動的にシャッタを押すためのボタン、及び、ファイルを削除するためのボタンである。三脚ネジ穴は、三脚を取り付けるためのねじ穴である。バッテリ／カードカバーは、バッテリとメモリカードの収納部のカバーである。バッテリ／カードカバーを開けると、バッテリ挿入部とカード挿入部が設けられており、ここにバッテリとメモリカードが装填される。解除レバーは、バッテリ／カードカバーをオープンするためのレバーである。電源（ＤＣ 入力）ケーブルカバーは、補助電源を入力するケーブルの装着部のカバーである。スピーカは、例えばシャッタ音を出力する出力部である。端子カバーは、ＡＶケーブル等の端子を保護するカバーである。
【００３２】
図５は、カメラユニットの斜視図の一例である。カメラユニット２００の側面には端子２０１が、正面にはリングキャップ２０２、レンズ２０４、及び、リングキャップ取り外しボタン２０３が配置されている。カメラユニット２００は、ボディ１００の取り付け部のカメラユニット取り付け位置ガイド１１４からボディ１００の側面に向かって摺動して装着される。カメラユニット２００がボディ１００に装着されると、カメラユニット２００の端子２０１がボディ１００の端子１１３と接続される。
【００３３】
リングキャップ２０２は、特定のレンズやアダプタを装着するための装着部を保護するキャップである。レンズ２０４は、像を撮像素子上で結像させる光学系である。リングキャップ取り外しボタン２０３は、リングキャップを取り外すためのボタンである。
【００３４】
〔カメラシステムの動作について〕
カメラシステム３００は、利用可能な機能と関係するいくつかのモードを有する。ユーザは、モードダイヤルを操作して、ポジションを所望の位置に合わせることよりカメラシステム３００のモードを設定する。静止画撮影や動画撮影などのカメラの操作は、このモードダイヤルを切り替えてから行う。カメラシステム３００のモードは、例えば、「シーンモード」、「静止画撮影モード」、「動画撮影モード」の３種類がある。
【００３５】
「静止画撮影モード」は、静止画を撮影する場合に使用されるモードであり、「シーンモード」には、特定の撮影状況に応じてポートレートモード、フェイスモード、スポーツモード、遠景モード、夜景モード、高感度モード、ズームマクロモード、白黒モード、セピアモード、斜め補正モード、文字モードなどがある。「動画撮影モード」は、動画を撮影する場合に使用されるモードである。
【００３６】
再生ボタンは、カメラシステム３００のモードを「再生モード」へ切り換えるボタンである。撮影モード時、この再生ボタンが押下されると、最後に撮影された静止画が画面モニター１２０に表示される。
【００３７】
レンズ２０４は、沈胴式のズームレンズで構成されており、電源スイッチによりカメラシステム３００の電源が投入され、ユーザがモードダイヤルによりカメラのモードを撮影モードに設定すると、カメラユニット２００から繰り出される。
【００３８】
ユーザが、撮影モード時に望遠／拡大表示ボタンを押下すると、カメラシステム３００は、レンズを望遠側へズームして、広角／サムネイル表示ボタンを押下すると、レンズを広角側へズームする。これによりレンズの焦点距離が変化される。
【００３９】
また、再生モード時に、ユーザが広角／サムネイル表示ボタンを押下すると、再生中の画像が縮小表示され、望遠／拡大表示ボタンを押下すると、再生中の画像が拡大する。すなわち、再生した画像の表示倍率が変化させられる。
【００４０】
シャッターボタン１０４は、２段式のスイッチで構成されており、半押し操作と押し切り操作が可能である。シャッターボタンが半押し操作されるとＡＥ／ＡＦが作動し、押し切り操作されると、ＡＷＢ（Auto White  Balance）が作動し撮影を実行する。
【００４１】
画面モニター１２０は、カラー表示が可能な液晶ディスプレイで構成されており、再生モード時には撮影済み画像を表示するための画像表示パネルとして利用されるとともに、各種設定操作を行なう際のユーザインターフェース表示パネルとして利用される。また、撮影モード時には、必要に応じてライブビューが表示されて、画角確認用のファインダとして利用される。
【００４２】
方向キー「↑／↓／←／→」は、上下左右４方向の指示を入力する方向指示手段として機能し、たとえば、メニュー画面でメニュー項目の選択などに使用される。
【００４３】
MENU／OKボタンは、各モードの通常画面からメニュー画面への遷移を指示するボタン（ＭＥＮＵボタン）として機能するととともに、選択内容の確定、処理の実行等を指示するボタン（ＯＫボタン）として機能する。
【００４４】
DISP.ボタンは、画面モニター１２０のマークの表示／非表示を切り替えるなど、画面の表示状態の変更を指示するボタンとして機能する。
【００４５】
撮影モード時、ユーザがこのボタンを１回押下するごとに、ヒストグラム表示→グリッドガイド表示→表示なし→画面モニターオフ→通常のマーク表示→ヒストグラム表示→・・・と切り替えられる。
【００４６】
再生モード時、ユーザがこのボタンを１回押下するごとに、ヒストグラム表示→ハイライト表示→表示なし→通常のマーク表示→ヒストグラム表示→・・・と切り替えられる。また、このボタンは、入力操作のキャンセルや一つ前の操作状態に戻すことを指示するボタンとしても機能する。
【００４７】
〔制御系統例〕
図６は、カメラシステム内部の制御系統の構成例を示す図の一例である。
カメラユニット２００及びボディ１００はそれぞれ中央処理装置（ＣＰＵ）を有し、カメラユニット２００及びボディ１００の各部は、全体の動作をＣＰＵによって統括制御している。
【００４８】
ボディ１００は、ＤＣ／ＤＣコンバータ３１、バッテリ３７、バスを介して接続された外部バスＩ／Ｆ３２、制御用ポート３３、ＣＣＩＲ信号受信部３４、画像信号処理部３５、圧縮伸張処理部３６、メモリカード制御部３８、    音声信号処理部３９、ＯＳＤＭＩＸ部４０、ＵＳＢ制御部４１、    ボディＣＰＵ４２、フラッシュＲＯＭ６２及びＳＤＲＡＭ６４、メモリカード４３、オーディオＣＯＤＥＣ４４、スピ−カ１３１、マイク１０９、ビデオＣＯＤＥＣ４５、ＡＶ出力端子４９、画像モニター信号処理部４６、画面モニター１２０、ＵＳＢ端子１３６、操作部（各種のボタンの総称）５１、ランプ（状態などを通知する各種のランプ）５２、並びに、フラッシュ発光部１１１を有する。
【００４９】
ボディＣＰＵ４２は、ボディ制御プログラムを操作部から入力される操作信号に基づき実行して、ユーザの操作に応じてカメラシステム全体を統括制御する。フラッシュＲＯＭ６２には、ボディＣＰＵ４２が実行するボディブートプログラム、ボディ制御プログラム、リソースデータ、及び、ボディ固有データ（たとえば工場にて設定された各部を調整する調整データやユーザ設定情報などのカメラシステム３００の動作に関する各種設定情報）が格納されている。ボディ制御プログラムとリソースデータがボディファームウェアである。
【００５０】
フラッシュＲＯＭ６２は、ＮＡＮＤ型フラッシュメモリで構成されており、ＮＯＲ型フラッシュメモリと比べて回路規模が小さく、安価に大容量化できる。近年のデジタルカメラは、ＮＡＮＤ型フラッシュメモリの低価格化により、大容量の内蔵メモリを具備し、ファームウェアなどプログラムの格納だけではなく、画像ファイルを格納できるものが増えている。
【００５１】
また、ＮＡＮＤ型フラッシュメモリは書き込みや消去も高速であるが、データの読み出しにおいてはＲＡＭのようなアドレス指定によるアクセスができない。このため、ボディ制御プログラムなどＣＰＵにて実行するプログラムコードは、一旦ＲＡＭへコピーしてから実行される。
【００５２】
ボディのＳＤＲＡＭ６４は、ボディＣＰＵ４２の演算作業用領域、画像データ（Ｒａｗ−ＲＧＢ画像データ、ＹＵＶ画像データ、圧縮伸張画像データ）等の一時記憶領域として利用される。
【００５３】
一方、カメラユニット２００は、ＤＣ／ＤＣコンバータ１１、バスを介して接続された外部バスＩ／Ｆ１２、制御用ポート１３、ＣＣＩＲ信号送信部１４、ＯＳＤＭＩＸ部１５、カメラユニットＣＰＵ１６、ＡＦ検出部２３、ＡＥ／ＡＷＢ検出部２４、画像信号処理部２５、圧縮伸張処理部２６、フラッシュＲＯＭ６１及びＳＤＲＡＭ６３、レンズ２０４、撮像素子１９、ＡＦＥ１８、モータ２１、並びに、モータドライバ２２を有する。
【００５４】
カメラユニットＣＰＵ１６は、カメラユニット制御プログラムをボディＣＰＵ４２から受信した制御命令に基づき実行して、カメラユニットを統括制御する。
【００５５】
フラッシュＲＯＭ６１には、カメラユニットＣＰＵ１６が実行するカメラユニットブートプログラム、カメラユニット制御プログラム、及び、カメラユニット固有データ（たとえば工場にて設定された各部を調整する調整データやユーザ設定情報などのカメラシステム３００の動作に関する各種設定情報）が格納されている。カメラユニット制御プログラムがカメラファームウェアである。
【００５６】
カメラユニット２００のＳＤＲＡＭ６３は、カメラユニットＣＰＵ１６の演算作業用領域、画像データ（Ｒａｗ−ＲＧＢ画像データ、ＹＵＶ画像データ、圧縮伸張画像データ）等の一時記憶領域として利用される。
【００５７】
着脱自在なバッテリ３７は、ＤＣ／ＤＣコンバータ３１へ電源を供給する。ボディ側のＤＣ／ＤＣコンバータ３１は、バッテリ３７の電圧をボディ１００の各部に必要な所定の電圧に降圧、又は、昇圧する。また、カメラユニット側のＤＣ／ＤＣコンバータ１１は、バッテリ３７の電圧をカメラユニット２００の各部に必要な所定の電圧に降圧又は昇圧する。
【００５８】
ユーザがボディ１００の電源スイッチを押下することで、ボディ１００の電源がオン状態になると、同時にカメラユニットのＤＣ／ＤＣコンバータ１１を介してカメラユニットの電源もオン状態となる。
【００５９】
ボディブートプログラム及びカメラユニットブートプログラムはそれぞれのＳＤＲＡＭ６３，６４へロードされる。これらのブートプログラムはフラッシュＲＯＭ６１，６２のあらかじめ決められたエリアに格納されており、電源がオンになるとまず一番初めにロードされるよう構成されている。
【００６０】
ボディブートプログラムは、ファームウェアをアップデートするプログラムを有しており、メモリカード４３にファームウェアファイル（以下、ファームウェアファイルとファームウェアとは厳密には区別しない）が存在する場合、ファームウェアのアップデートを行う。アップデート動作については後述する。また、これらのブートプログラムにより、ボディ１００のボディ制御プログラム及びカメラユニット２００のカメラユニット制御プログラムはそれぞれのＳＤＲＡＭ６３，６４へロードされる。
【００６１】
ボディＣＰＵ４２はボディ制御プログラムに従い、カメラユニットＣＰＵ１６はカメラユニット制御プログラムに従い、装置各部の動作を制御する。それとともに制御に必要なデータ等を、一時的にそれぞれのＳＤＲＡＭ６３に保存する。
【００６２】
フラッシュＲＯＭ６１，６２は、書き換え可能な不揮発性メモリなので、プログラムや制御に必要な各種データ、ユーザ設定情報を変更することが可能となり、機能のバージョンアップが容易に行えるという特徴をもつ。
【００６３】
＜マウント部＞
マウント部３０は、端子１１３と端子２０１が電気的に接続される接続部である。ボディＣＰＵ４２とカメラユニットＣＰＵ間のコマンド及びデータ送受信のために、マウント部３０には外部バスＩ／Ｆ１２，３２、制御ポート１３，３３、ＣＣＩＲ信号送信部１４、及び、ＣＣＩＲ信号受診部３４が接続されている。
【００６４】
ボディ１００の外部バスＩ／Ｆ３２とカメラユニット２００の外部バスＩ／Ｆ１２は、マウント部に設けられた電気接点を介して、互いに接続する。２つの外部バスＩ／Ｆ１２，３２は、双方向通信が可能な構成となっており、カメラユニット−ボディ間のコマンドのやりとりに使用される。例えば、ボディ１００にある各種ボタンの状態などをボディＣＰＵ４２からカメラユニットＣＰＵ１６に送信したり、現在のズームレンズ位置をカメラユニットＣＰＵ１６からボディＣＰＵ４２へ送信することができる。さらに、外部バスＩ／Ｆ１２，３２は、画像データをカメラユニットからボディ１００へ送信する時にも使用される。外部バスＩ／Ｆ１２、３２は、例えば、パラレルＩ／ＦやＬＶＤＳＩ／Ｆなど高速な転送速度を持つＩ／Ｆで構成されている。
【００６５】
制御ポート１３，３３は、外部バスＩ／Ｆ１２，３２によるコマンド通信よりも、より高速にカメラユニット２００からボディ（又はボディからカメラユニット）の機能を即座に制御したい場合に使用される。例えば、カメラユニット２００がフラッシュ発光部１１１を制御する場合、撮像素子１９からの画像取り込みタイミングに同調して制御する必要があり、外部バスＩ／Ｆ１２，３２のコマンド通信ではオーバーヘッドが問題になる。このような場合に、カメラユニット−ボディ間が制御ポート１３，３３を利用して通信することにより、オーバーヘッドの問題を解消している。
【００６６】
また、カメラユニット２００のＣＣＩＲ信号送信部１４は、ボディ１００のＣＣＩＲ信号受信部３４と接続している。ＣＣＩＲ信号送信部１４及びＣＣＩＲ信号受信部３４は、輝度／色差信号をコンポーネント映像信号（たとえばＩＴＵ−Ｒ ＢＴ．６０１規格の輝度信号及び色差信号）へ変換し、映像信号の一方向通信が可能な構成となっている。ＣＣＩＲ信号送信部１４は、カメラユニット側で撮像素子１９から取り込んだ画像信号から生成される輝度／色差信号を送信する。ＣＣＩＲ信号受信部３４はそれを受信する。ユーザは、ボディ側の画面モニター１２０及びＡＶ出力端子４９にて画像を確認することができる。
【００６７】
＜カメラユニット＞
レンズ２０４は、被写体の光学画像を取り込むズームレンズ２０４ａ、焦点を合わせるフォーカスレンズ２０４ｂによって構成されている。光軸に沿ってズームレンズ、フォーカスレンズ、不図示の絞り、及び、不図示のシャッタが配置されており、ズームモータ、フォーカスモータ、アイリスモータ、及び、シャッタの各モータ２１がモータドライバ２２を介してこれらの位置を制御する。
【００６８】
ズームモータは、ズーム（広角）ボタン及びズーム（望遠）ボタンに連動して動作し、ズームレンズを広角側、又は、望遠側へ移動させる。フォーカスモータは、シャッターボタンの半押し操作によるオートフォーカスに連動して動作し、フォーカスレンズを至近側、又は、無限遠側へ移動させる。アイリスモータは、シャッターボタンの半押し操作による自動露光に連動して動作し、絞りの開口面積を変化させることにより絞り値を変化させ、撮影レンズから入射する光量を調節する。シャッタモータは、シャッターボタンの全押し操作による撮影動作に連動して動作し、通常はシャッタを開くように制御する。シャッタが開くと撮像素子１９は例えば撮像素子１９の信号蓄積を開始する。シャッタモータは、露光（シャッタ）時間経過後に光を遮断するためシャッタを閉じる。
【００６９】
モータドライバ２２は、バスを介してカメラユニットＣＰＵ１６に接続されており、カメラユニットＣＰＵ１６からの制御信号に基づいて各モータ２１に駆動パルスを送信する。各モータ２１は、この駆動パルスに応じて回転軸を回転駆動する。
【００７０】
カメラユニット２００がボディ１００に装着されている時、カメラユニット２００は、ユーザがボディ１００の電源スイッチを押すことで、撮影モードに設定され、撮影が可能になる。そして、撮影モードに設定されることにより、レンズ２０４が繰り出され、撮影スタンバイ状態になる。
【００７１】
この撮影モードにおいて、レンズ２０４を通過した被写体光は、絞りを介して撮像素子１９の受光面に結像される。レンズの背面には、撮影レンズを透過した被写体光を受光面にて結像し光電変換する撮像素子（固体撮像素子はＣＣＤで構成されており、その受光面には、所定の配列構造（ベイヤー、Ｇストライプなど）で配列された赤（Ｒ）、緑（Ｇ）、青（Ｂ）のカラーフィルタを介して多数のフォトダイオード（受光素子）が二次元的に配置されている）１９が配置されている。
【００７２】
ＡＦＥ（Analog Front End）１８は、タイミングジェネレータ（ＴＧ）、アナログ処理部（ＣＤＳ／ＡＭＰ）、Ａ／Ｄ変換器等で構成されている。レンズを通過した被写体光は、撮像素子１９の各フォトダイオードによって受光され、入射光量に応じた量の信号電荷に変換される。各フォトダイオードに蓄積された信号電荷は、カメラユニットＣＰＵ１６の制御のもとにタイミングジェネレータ（ＴＧ）から与えられる駆動パルスに基づいて、信号電荷に応じた電圧信号（画像信号）として順次読み出され、アナログ処理部（ＣＤＳ／ＡＭＰ）に加えられる。アナログ処理部（ＣＤＳ／ＡＭＰ）は、入力された画素ごとのＲＧＢ信号をサンプリングホールド（相関二重サンプリング処理）するとともに増幅し、Ａ／Ｄ変換器に出力する。
【００７３】
Ａ／Ｄ変換器は、アナログ処理部（ＣＤＳ／ＡＭＰ）から出力されたアナログＲＧＢ信号をデジタルＲＧＢ信号に変換して、センサ入力制御部１７へ出力する。センサ入力制御部１７はＲａｗ−ＲＧＢ画像データとしてカメラユニットのＳＤＲＡＭ６３に記憶する。
【００７４】
画像信号処理部２５は、メモリに取り込まれたＲａｗ−ＲＧＢ画像データをカメラユニットＣＰＵ１６の指令に従って処理し、輝度信号（Ｙ信号）及び色差信号（Ｃr 、Ｃb 信号）へ変換し、ＹＵＶ画像データを生成する。
【００７５】
この画像信号処理部２５は、同時化回路（単板ＣＣＤのカラーフィルタ配列に伴う色信号の空間的なズレを補間して色信号を同時式に変換する処理回路）、ホワイトバランス補正回路、ガンマ補正回路、輪郭補正回路、輝度・色差信号生成回路等を含む画像処理手段として機能する。カメラユニットＣＰＵ１６からの指令に従ってメモリを活用しながら入力されたＲＧＢ信号を信号処理することにより、輝度信号及び色差信号（輝度／色差信号）を生成する。生成された輝度／色差信号は、ＹＵＶ画像データとしてカメラユニットのＳＤＲＡＭ６３に記憶される。
【００７６】
＜ライブビューの表示まで＞
撮影画像を画面モニター１２０に出力する場合は、ＹＵＶ画像データが、カメラユニット側のＳＤＲＡＭ６３からＯＳＤＭＩＸ部１５に送られる。
【００７７】
ＯＳＤＭＩＸ部１５は、入力されたＹＵＶ画像データの輝度／色差信号に文字や図形などのオンスクリーンディスプレイデータを重ね合わせて合成しＣＣＩＲ信号送信部１４に出力する。ＣＣＩＲ信号送信部１４は、コンポーネント映像信号（たとえばＩＴＵ−Ｒ ＢＴ．６０１規格の輝度信号及び色差信号）へ変換する。
【００７８】
ＣＣＩＲ信号送信部１４は、ボディ１００のＣＣＩＲ信号受信部３４と通信する。ボディ側のＣＣＩＲ信号受信部３４はコンポーネント映像信号を受信し、コンポーネント映像信号を輝度／色差信号へ変換し、この輝度／色差信号をＹＵＶ画像データとしてボディ側のＳＤＲＡＭ６４に記憶する。
【００７９】
ボディ側のＳＤＲＡＭ６４に格納されたＹＵＶ画像データは、ボディ側のＳＤＲＡＭ６４からＯＳＤＭＩＸ部４０へ送信される。ＯＳＤＭＩＸ部４０は、入力されたＹＵＶ画像データの輝度／色差信号に文字や図形などのオンスクリーンディスプレイデータを重ね合わせて合成し、ビデオＣＯＤＥＣ４５及び画像モニター信号処理部４６に出力する。これにより、所要の撮影情報等が画像データに重ねて表示される。
【００８０】
ビデオＣＯＤＥＣ４５には、ビデオエンコーダ、Ｄ／Ａ変換器、及びビデオＡＭＰ等が内蔵されている。ビデオエンコーダは、入力されたＹＵＶ画像データの輝度／色差信号を表示用のデジタル表示出力信号（たとえばＮＴＳＣ方式のカラー複合映像信号）に変換し、Ｄ／Ａ変換器にてデジタル表示出力信号をアナログビデオ出力信号に変換する。ビデオＡＭＰは、Ｄ／Ａ変換器から出力されたアナログビデオ信号を、７５Ωインピーダンス変換し、テレビなどの外部表示機器と接続するためのＡＶ出力端子４９へ出力する。これにより、撮像素子１９で撮像された画像がテレビなどの外部表示機器に表示される。
【００８１】
一方、画像モニター信号処理部４６は、入力されたＹＵＶ画像データの輝度／色差信号を画面モニター１２０の入力信号形式であるＲＧＢ信号へ変換し、画面モニター１２０へ出力する。これにより、撮像素子１９で撮像された画像が画面モニター１２０に表示される。
【００８２】
カメラシステム３００は、撮像素子１９から画像信号を定期的に取り込み、その画像信号から生成される輝度／色差信号をＣＣＩＲ信号送信部１４及びＣＣＩＲ信号受信部３４を介してボディ側ＳＤＲＡＭ内のＹＵＶ画像データを定期的に書き換える。そして、画面モニター１２０及びＡＶ出力端子４９に出力することにより、撮像素子１９で撮像される画像をリアルタイムに表示する。ユーザは、この画面モニター１２０にリアルタイムに表示される画像（ライブビュー）を見ることにより、撮影画像を確認することができる。
【００８３】
＜レリーズ１（半押し）の動作＞
撮影はシャッターボタン１０４の押下によって行なわれる。撮影に先立ち、ユーザは、画角を調整する必要があれば、望遠／拡大表示ボタン、広角／サムネイル表示ボタンを操作し、ズームレンズをズーミングさせて画角を調整する。
【００８４】
シャッターボタン１０４が半押しされると、Ｒ１オン信号がボディＣＰＵ４２に入力され、ボディＣＰＵ４２は外部バスＩ／Ｆ３２を介してカメラユニットＣＰＵ１６へ通信を行い、Ｒ１オン信号を通知する。この結果、カメラユニットＣＰＵ１６は、ＡＥ／ＡＦ処理を実施する。
【００８５】
まず、センサ入力制御部１７を介して撮像素子１９から取り込まれた画像信号がＡＦ検出部２３とＡＥ／ＡＷＢ検出部２４に入力される。
【００８６】
ＡＦ検出部２３は、１画面を複数のエリア（例えば、１６×１６）に分割し、分割エリアごとにＧ信号の高周波成分のみを通過させるハイパスフィルタ、絶対値化処理部、所定のフォーカスエリア（たとえば、画面中央部）内の信号を切り出すＡＦエリア抽出部、及び、ＡＦエリア内の絶対値データを積算する積算部を有する。
【００８７】
ＡＦ検出部２３で求めた積算値のデータはカメラユニットＣＰＵ１６に通知される。カメラユニットＣＰＵ１６は、モータドライバ２２を介してフォーカスモータを制御し、フォーカスレンズを移動させながら複数のＡＦ検出ポイントで焦点評価値（ＡＦ評価値）を演算し、評価値が極大となるレンズ位置を合焦位置として決定する。そして、求めた合焦位置にフォーカスレンズが移動するように、フォーカスモータを制御することで、オートフォーカス（ＡＦ）動作をおこなう。
【００８８】
ＡＥ／ＡＷＢ検出部２４は、１画面を複数のエリア（例えば、１６×１６）に分割し、分割エリアごとにＲ、Ｇ、Ｂ信号を積算する回路を含み、その積算値をカメラユニットＣＰＵ１６に提供する。
【００８９】
カメラユニットＣＰＵ１６は、ＡＥ／ＡＷＢ検出部２４から得た積算値に基づいて被写体の明るさ（被写体輝度）を検出し、撮影に適した露出値（撮影ＥＶ値）を算出する。
【００９０】
そして、求めた撮影ＥＶ値と所定のマップデータから、絞り値とシャッタースピードを決定し、これに従い撮像素子１９の電子シャッタとモータドライバ２２を介してアイリスモータを駆動し、絞りを制御して適正な露光量を得ることで、自動露光（ＡＥ）動作をおこなう。
以上のように、シャッターボタン１０４の半押しによって、ＡＥ／ＡＦ処理が行なわれる。
【００９１】
＜レリーズ２（押し切り操作）＞
ユーザがシャッターボタンを押し切ると、ボディＣＰＵ４２にＲ２オン信号が入力され、ボディＣＰＵ４２は外部バスＩ／Ｆ３２を介してカメラユニットＣＰＵ１６と通信を行い、Ｒ２オン信号を通知する。この結果、カメラユニットＣＰＵ１６は、撮影及び記録処理を開始する。すなわち、カメラユニットＣＰＵ１６は測光結果に基づき決定された絞り値に従いモータドライバ２２を制御して絞りを動かし、シャッタ速度値に従いモータドライバ２２を制御してメカシャッタの開閉動作を制御して撮像素子１９の露光時間を制御することにより、撮像素子１９を露光する。
【００９２】
撮像素子１９から出力された画像信号は、ＡＦＥ１８、センサ入力制御部１７を介してカメラユニット側ＳＤＲＡＭに取り込まれ、画像信号処理部２５において輝度／色差信号に変換されたのち、ＹＵＶ画像データとしてカメラユニット側ＳＤＲＡＭに格納される。
【００９３】
また、ＡＥ／ＡＷＢ検出部２４は、自動ホワイトバランス調整時、分割エリアごとにＲ、Ｇ、Ｂ信号の色別の平均積算値を算出し、その算出結果をカメラユニットＣＰＵ１６に提供する。カメラユニットＣＰＵ１６は、得られたＲの積算値、Ｂの積算値、Ｇの積算値から分割エリアごとにＲ／Ｇ及びＢ／Ｇの比を求め、求めたＲ／Ｇ、Ｂ／Ｇの値の、Ｒ／Ｇ、Ｂ／Ｇ色空間における分布等に基づいて、光源種判別を行う。
【００９４】
そして、判別された光源種に適したホワイトバランス調整値に従って、たとえば、各比の値がおよそ１（つまり、１画面においてＲＧＢの積算比率がＲ：Ｇ：Ｂ≒１：１：１）になるように、ホワイトバランス調整回路のＲ、Ｇ、Ｂ信号に対するゲイン値（ホワイトバランス補正値）を制御し、各色チャンネルの信号に補正をかけることで、オートホワイ
トバランス（ＡＷＢ）動作をおこなう。
【００９５】
カメラユニット側のＳＤＲＡＭ６３に格納されたＹＵＶ画像データは、外部バスＩ／Ｆ１２，３２を介してボディ側のＳＤＲＡＭ６４へＹＵＶ画像データとして格納される。ボディのＳＤＲＡＭ６４格納されたＹＵＶ画像データは、圧縮伸張処理部３６に加えられ、所定の圧縮フォーマット（たとえばＪＰＥＧ形式）に従って圧縮された後、再びボディのＳＤＲＡＭ６４に圧縮伸張画像データとして格納される。所定の画像記録フォーマット（たとえばＥｘｉｆ形式）の画像ファイルとされたのち、メモリカード制御部３８を介してメモリカード（たとえばＳＤカード）４３に記録される。以上のようにしてメモリカード４３に記録された画像は、（再生）ボタンの押下により、画面モニター１２０で再生表示させることができる。
【００９６】
＜再生動作＞
再生ボタンの押下により、ボディ１００のモードを再生モードに設定すると、ボディＣＰＵ４２は、メモリカード制御部３８にコマンドを出力し、メモリカード４３に最後に記録された画像ファイルを読み出させる。また、ボディ１００にカメラユニット２００が装着されていない時、電源ボタンまたは再生ボタンの押下により、同様に再生モードとして起動する。
【００９７】
読み出された画像ファイルの圧縮画像データは、圧縮伸張処理部３６により非圧縮の輝度／色差信号に伸張されたのち、ＯＳＤＭＩＸ部４０及び画像モニター信号処理部４６を介して画面モニター１２０に出力される。これにより、メモリカード４３に記録されている画像が画面モニター１２０に再生表示される。
【００９８】
また、パソコンなどの外部機器とＵＳＢ通信を行うには、ＵＳＢ端子１３６を介して接続を行い、ボディＣＰＵ４２は、ＵＳＢ制御部４１を制御することにより、ＵＳＢ通信を行う。
【００９９】
シャッタ音、操作音などの音声信号データはフラッシュＲＯＭ６２に格納されており、ボディＣＰＵ４２が音声信号処理部３９を制御し、この音声データを音声信号処理部３９を介してオーディオＣＯＤＥＣ４４へ出力する。
【０１００】
オーディオＣＯＤＥＣ４４は、入力された音声信号を増幅するマイクアンプや、スピーカ１３１を駆動するためのオーディオアンプが内蔵ており、このオーディオＣＯＤＥＣ４４には、ユーザが音声信号を入力するマイク１０９、音声信号を出力するスピーカ１３１が接続されるており、これにより音声信号はスピーカから出力される。
【０１０１】
カメラユニットＣＰＵ１６は、カメラユニット２００の制御用ポート１３からボディ１００の制御用ポート３３が受信したストロボ発光信号により、フラッシュライトを発光する。
【０１０２】
〔ボディＣＰＵ〕
図７は、ボディＣＰＵ４２の詳細回路図の一例である。ボディＣＰＵ４２のＲＴＣ部７０にはバッテリ３７から常時、電源が供給され、フラッシュＲＯＭ６２及びＳＤＲＡＭ６４はメイン電源スイッチ７１を介してバッテリ３７と接続されている。
【０１０３】
バッテリ３７が装着されると、ボディＣＰＵ４２にリセット信号がアサートされる。よって、ボディＣＰＵ４２はバッテリ３７の装着直後、リセットモードになる。ボディＣＰＵ４２にはＲＴＣ部７０を介して電源が供給される。
【０１０４】
ＲＴＣ部７０は、バッテリ３７の装着を検出すると、ＥＮＡＢＬＥ端子からアクティブハイのＥＮＡＢＬＥ信号を出力する。これによりメイン電源スイッチ７１がオンになり、フラッシュＲＯＭ及びＳＡＲＡＭに電源が供給される。
【０１０５】
バッテリ３７とボディＣＰＵ４２は遅延回路７３を介して接続されている。遅延回路７３はボディＣＰＵ４２、フラッシュＲＯＭ６２及びＳＤＲＡＭ６４に電源が供給される時間よりも後に、バッテリ３７が装着されたことによるリセット解除信号をボディＣＰＵ４２に入力する。リセット解除信号が入力されると、リセット信号がアサートされていてもボディＣＰＵ４２のリセットは解除される。
【０１０６】
ボディＣＰＵ４２はリセットモードから次述するノーマルモードに移行する。ノーマルモードになるとボディＣＰＵ４２はプログラムの実行が可能なので、フラッシュＲＯＭ６２からＳＤＲＡＭ６４に読み出されたボディ制御プログラムを実行する。ボディ制御プログラムを実行したボディＣＰＵ４２は、プログラムによる設定によりスタンバイモードに移行する。
【０１０７】
したがって、ボディＣＰＵ４２はバッテリ３７の装着により、自動的に、
リセットモード→ノーマルモード→スタンバイモード
に移行する。
【０１０８】
次に、スタンバイモードのボディＣＰＵ４２に対し、ユーザが電源スイッチ若しくは再生ボタンを押下した場合、又は、カメラユニットをボディに装着したカメラユニット検出スイッチがオンになった場合、常時、電源が供給されているＲＴＣ部７０がそれを検出する。ＲＴＣ部７０はキー入力割り込みをボディＣＰＵ４２に入力する。これにより、ボディＣＰＵ４２はノーマルモードになるのでボディ制御プログラムを実行することができる。
【０１０９】
〔ボディＣＰＵの動作モード〕
図８は、ボディＣＰＵ４２の動作モードを説明する図の一例である。動作モードには、リセットモード、ノーマルモード、及び、スタンバイモードの３つがある。
【０１１０】
リセットモードは、電源（バッテリ３７）が供給された直後の動作モードである。ノーマルモードは、プログラムが実行される状態、又は、カメラシステム３００が撮影若しくは再生を行っている状態であり、ボディＣＰＵ４２は、フラッシュＲＯＭ６２及びＳＤＲＡＭ６４その他周辺機能（外部ポート、シリアルインタフェースなど）へアクセスが可能である。スタンバイモードは、ノーマルモードより電力を削減することが可能なモードで、キー入力割込みを除く全ての内部クロック供給を停止する。ＲＴＣ部７０はスタンバイモードになるとＥＮＡＢＬＥ信号をオフにして消費電力を低減する。
【０１１１】
リセットモードからはボディＣＰＵ４２にリセット解除信号が入力されるとノーマルモードに遷移する。
【０１１２】
ノーマルモードは、リセットモードとスタンバイモードに遷移する。ノーマルモードでリセット入力されると、リセットモードへ遷移する。ボディ制御プログラムが、ボディＣＰＵ４２の設定を変更すると、スタンバイモードへ遷移する。
【０１１３】
リセット入力には、バッテリ電圧の降下により、ボディＣＰＵ４２への電源供給が動作可能電圧以下になった場合、又は、バッテリ取り外しによるボディＣＰＵ４２への電源供給遮断がある。ボディ制御プログラムによる設定には、電源スイッチのオフや、スイッチ検出が一定時間なかった場合にボディを省電力モードへ移行する場合、などがある。
【０１１４】
スタンバイモードは、ノーマルモードとリセットモードに遷移しうる。スタンバイモードからノーマルモードへの復帰は、キー入力割込み（検出スイッチ類（電源スイッチ、再生ボタン、カメラユニット検出スイッチ）のスイッチオン）により行われる。
【０１１５】
スタンバイモードからリセットモードへの遷移は、バッテリ電圧の降下により、ボディＣＰＵ４２への電源供給が動作可能電圧以下になった場合、又は、バッテリ取り外しによるボディＣＰＵ４２への電源供給遮断がある。
【０１１６】
このように、電源スイッチの状態に関係なくボディＣＰＵ４２の動作モードを制御することで、カメラユニット２００が交換又は脱着（取り外し及び再装着）されたことを検出できるようにしている。
【０１１７】
なお、カメラユニットＣＰＵ１６は、ＤＣ／ＤＣコンバータ１１から電源が供給されるとノーマルモードへ遷移し、ボディＣＰＵ４２がスタンバイモードになるとスタンバイモードになる。
【０１１８】
〔ファームウェア〕
図９は、ファームウェアファイルの構成を示す概略図の一例である。ボディファームウェアは、ボディ制御プログラムとリソースデータを有する。ボディ制御プログラムとリソースデータは、それぞれ１つのファイルとしてユーザへ提供することもできるし、それぞれを別々のファイルとして提供することもできる。
【０１１９】
図示するように、制御プログラムは、ボディ用とカメラユニット用の２種類があるが、リソースデータはボディファームウェアファイルにしか含まれていない。
【０１２０】
リソースデータは、テキスト文字列、フォントデータ、ビットマップデータ、及びＧＵＩ情報を有する。テキスト文字列は、モニター画面に表示されるメニューの説明などであり、日本語や英語など言語毎に用意されている。フォントデータはテキスト文字列の字体を修飾するためのデータである。ビットマップデータはバッテリ残量などのカメラシステム３００の状態を各種のアイコンである。ＧＵＩ情報は、モニター画面のスクリーンを構成する部品のレイアウト情報である。すなわち、テキスト文字列を表示する位置や大きさ、色情報が格納されている。
【０１２１】
ボディ制御プログラム及びカメラユニット制御プログラムは、ボディ１００及びカメラユニット全体を制御するプログラムコードで構成されており、ボディ制御プログラムにはリソースデータを用いてＧＵＩの振る舞いを制御するプログラムも含まれている。
【０１２２】
ここで、カメラユニット２００又はボディ１００に何らかの機能が追加されたり変更された場合、その機能を使用するためのテキスト文字列等も変更になる可能性がある。したがって、機能追加や変更により、テキスト文字列、フォントデータ、ビットマップデータ、及びGUI情報の１つ以上に何らかの影響があった場合、必ずリソースデータを変更する必要がある。
【０１２３】
また、カメラシステム３００は複数のスクリーンを有し、ユーザ操作に応じてスクリーンを切り換えて全体的なＧＵＩを提供する。複数のスクリーン間の遷移は、ボディ制御プログラムで実現するため、リソースデータが変更された場合は、ボディ制御プログラムも変更する必要がある。
【０１２４】
リソースデータの変更に基づくボディ制御プログラムの変更を避けるためには、あらかじめ変更の可能性を予測してリソースデータを構築しておくなどの対応も考えられるが、数ヵ月後、数年後の業界動向変化を予測して準備するのは現実的にかなり困難である。
【０１２５】
〔起動時のＳＤＲＡＭの状態〕
ファームウェアのアップデートについて説明するため、ボディ１００及びカメラユニットの起動時のＳＤＲＡＭ６３，６４の状態について説明する。
図１０（ａ）は起動時のボディ１００のＳＤＲＡＭの状態を、図１０（ｂ）は起動時のカメラユニット２００のＳＤＲＡＭの状態を、それぞれ示す図の一例である。
【０１２６】
・ボディの起動時
フラッシュＲＯＭ６２に格納されているボディ制御プログラムは、電源オンによりＳＤＲＡＭ６４へロードされる。
【０１２７】
次に、ボディＣＰＵ４２はＳＤＲＡＭ６４へロードされたボディ制御プログラムを実行し、ボディ１００を動作可能にする。
【０１２８】
ＧＵＩを表示するときは、リソースデータより必要なデータのみＳＤＲＡＭ６４へロードし、スクリーンを構成する。
【０１２９】
・カメラユニットの起動時
フラッシュＲＯＭ６１に格納されているカメラユニット制御プログラムは、電源オンにより、ＳＤＲＡＭ６３へロードされる。次に、カメラユニットＣＰＵ１６はＳＤＲＡＭ６３へロードされたカメラユニット制御プログラムを実行し、カメラユニット２００を動作可能にする。
【０１３０】
・リソースデータを全てＳＤＲＡＭ６４へロードしない理由
リソースデータは、ボディ制御プログラムとは異なり、全てのデータを常時利用するのではなく、ＧＵＩの状態に従い利用するデータが決まっており、比較的大きなリソースデータをＳＤＲＡＭに常時ロードしておくことで、カメラ自体の利便性低下につながる可能性がある。ＳＤＲＡＭは、サイズが大きな画像データを１枚でも多くロードできるようにすることで、連写枚数を増やすなどカメラ全体の利便性を向上させることができる。
【０１３１】
〔従来のＣＵファームウェアのアップデート方法〕
図１１は、従来から行われている、ＣＵファームウェアのアップデートを模式的に説明する図の一例である。
・ＣＵファームウェアのアップデート
比較のため、まず、ＣＵファームウェアの従来のアップデート方法について説明する。カメラユニット２００のフラッシュＲＯＭ６１には、カメラユニット制御プログラムＶ１（Ｖはバージョンを意味する）が格納されており、ボディ側フラッシュＲＯＭ６２には、ボディ制御プログラムＶ１及びリソースデータＶ１が記憶されている。
【０１３２】
カメラユニット制御プログラムＶ１とボディ制御プログラムＶ１の組み合わせは、出荷時にあらかじめ組み合わせが考慮されており、ある機能が動作しないなどの不具合はないものとする。
【０１３３】
ファームウェアのアップデートには例えば再生ボタンが使用される。ユーザが、新しい（古いものでもよい）ファームウェアファイルが記憶されたメモリカード４３をメモリカード制御部３８に装着し、再生ボタンを長押しすると、ボディＣＰＵ４２はファームウェアのアップデートを開始する。
【０１３４】
カメラユニット制御プログラムをＶ１からＶ２へ変更する場合を説明する。メモリカードには、新しいＣＵファームウェアが記憶されており、ファームウェアファイルにはカメラユニット制御プログラムＶ２が格納されている。カメラユニット制御プログラムＶ２は、機能拡張が行われており、たとえばメニューへ新規スクリーンが追加され新たな項目を設定可能としている。
【０１３５】
ユーザがボディ１００の再生ボタンを長押しすると、ボディ１００の電源がオン状態になり、同時にカメラユニット２００のＤＣ／ＤＣコンバータ１１を介してカメラユニット２００の電源もオン状態となる。
（１）ボディブートプログラム及びカメラユニットブートプログラムはそれぞれのＳＤＲＡＭへロードされそれぞれのＣＰＵにて実行される。
（２）ボディブートプログラムには、ファームウェアをアップデートするプログラムが格納されている。ボディブートプログラムは、メモリカードにファームウェアファイルが存在する場合、ファームウェアのアップデートを行う。メモリカードにＣＵファームウェアファイルが存在するため、ブートプログラムはＣＵファームウェアのアップデートを開始する。
（３）ボディＣＰＵ４２及びカメラユニットＣＰＵ１６は、外部バスＩ／Ｆ１２，３２を介して通信を行い、ボディブートプログラムは、ＣＵファームウェアファイルをメモリカードからカメラユニットのＳＤＲＡＭへ転送する。
（４）カメラユニットブートプログラムは、転送されたファームウェアファイルに格納されているカメラユニット制御プログラムＶ２を、既にフラッシュＲＯＭ６１に格納されているカメラユニット制御プログラムＶ１の領域へ上書きコピーする。これにより、ＣＵファームウェアのアップデートは完了する。
【０１３６】
アップデートにより、カメラユニット制御プログラムＶ２とボディ制御プログラムＶ１という組み合わせが発生するが、この組合せは、カメラシステム３００の出荷時には存在しない組み合わせとなる。
【０１３７】
この組合せでは、ボディ１００は、カメラユニット２００に追加された機能を知らないため、ユーザはボディ１００を操作して追加機能を利用することができない。また、カメラユニット２００とボディ１００の後方互換性が確保されないため、追加された機能以外の不具合が発生する可能性がある。
【０１３８】
・ボディファームウェアのアップデート
図１２は、従来から行われている、ボディファームウェアのアップデートを模式的に説明する図の一例である。
【０１３９】
ボディファームウェアのアップデートは、ボディ単体で行うことができる。ボディのフラッシュＲＯＭ６２には、ボディ制御プログラムＶ１及びリソースデータＶ１が格納されている。カメラユニット制御プログラムＶ１とボディ制御プログラムＶ１の組み合わせは、出荷時にあらかじめ組み合わせが考慮されており、ある機能が動作しないなどの不具合はないものとする。
【０１４０】
アップデートの際、ユーザは、メモリカード４３に新しいファームウェアファイルを記憶しておき、再生ボタンを長押しすると、ボディファームウェアのアップデートを開始することができる。
【０１４１】
ボディ制御プログラム及びリソースデータをＶ１からＶ２へ変更する場合を説明する。
【０１４２】
メモリカード４３には、新しいボディファームウェアファイルが準備されており、ボディファームウェアファイルにはボディ制御プログラムＶ２及びリソースデータＶ２が格納されている。ボディ制御プログラムＶ２及びリソースデータＶ２は、機能拡張が行われており、例えば、メニューへ新規スクリーンが追加され新たな項目を設定可能としている。
【０１４３】
ボディの再生ボタンを長押しすることで、ボディ１００の電源がオン状態になると、ＤＣ／ＤＣコンバータ３１を介してボディ本体各部へ電源が供給される。
（１）ボディブートプログラムはボディのＳＤＲＡＭ６４へロードされ、ボディＣＰＵ４２にて実行される。
（２）ボディブートプログラムには、ファームウェアをアップデートするプログラムが格納されており、メモリカード４３にファームウェアファイルが存在する場合、ファームウェアのアップデートを行う。
【０１４４】
メモリカードにボディファームウェアファイルが存在するため、ブートプログラムはファームウェアのアップデートを実行する。ここで、ボディ制御プログラム又はリソースデータの一方しかメモリカードに記憶されていない場合、一方のみをアップデートすればよい。
（３）ボディブートプログラムは、ファームウェアファイルに格納されているボディ制御プログラムＶ２及びリソースデータＶ２を、既にフラッシュＲＯＭ６２に格納されているボディ制御プログラムＶ１及びリソースデータＶ１の領域へ上書きコピーして、ファームウェアのアップデートを完了する。
【０１４５】
アップデートの結果、カメラユニット制御プログラムＶ１とボディ制御プログラムＶ２という組み合わせが発生し、カメラシステム３００の出荷時には存在しない組み合わせとなる。この場合、カメラユニット制御プログラムＶ２が格納されたカメラユニット２００を装着した場合は、問題は発生しないが、カメラユニット制御プログラムＶ１が格納されたカメラユニット２００を装着した場合、カメラユニット２００とボディの後方互換性が確保されないため、ボディ１００へ追加された機能以外の不具合が発生する可能性ある。
【０１４６】
〔ファームウェアの組み合わせ〕
図１３は、カメラユニット２００とボディファームウェアのバージョンの組み合わせを説明する図の一例である。バージョンの組合せとしては、カメラユニット２００の方が高い、同じ、ボディ１００の方が高い、の３つがある。
【０１４７】
バージョンが３つの場合でも、９個の組合せが発生する。このため、ファームウェアバージョンの組み合わせが多くなると、ボディ１００及びカメラユニット２００の組み合わせ評価が煩雑になる。カメラユニット２００及びボディ１００の出荷時期によっては、それぞれのファームウェアバージョンが異なり、図１３の全てのパターンが発生する。
図１３において、マークは以下の組合せを意味する。
▲：ボディ１００のファームウェアバージョンの方がカメラユニット２００よりも低い組合せ
●：ボディ１００のファームウェアバージョンの方がカメラユニット２００よりも高い組合せ
◎：ボディ１００とカメラユニット２００のファームウェアバージョンが一致する組合せ（例えば、販売時）
「▲」は、図１１にて説明した「カメラユニットのみV1→V2へバージョンアップする場合」に生じる組合せである。
「●」は、図１２にて説明した「ボディのみV1→V2へバージョンアップする場合」に生じる組合せである。
【０１４８】
▲と●の組合せは、上記のように不具合をもたらすおそれがあるので、◎の組み合わせを多くすることが、互換性確保のコストを低減し、さらにはこの組み合わせによるユーザの混乱を発生させないことにつながる。
【０１４９】
〔本実施形態のＣＵファームウェア及びボディファームウェアのアップデート方法〕
図１４は、カメラユニット２００とボディ１００の機能ブロック図の一例である。アップデートに使用される機能は、カメラユニット２００とボディ１００のブートプログラムがハードウェアと協働して実現される。
【０１５０】
カメラユニットブートプログラムは、プログラム更新部８１とプログラム送信部８２を有する。ボディブートプログラムはアップデート判定部８３、カメラユニット装着判定部８４、プログラム送信部８５、更新判定部８６、プログラム記録部８７、及び、起動プロフラム選択部８８を有する。
【０１５１】
アップデート判定部８３は、ファームウェアのアップデートを行うか否かを判定する。カメラユニット装着判定部８４は、ボディ１００にカメラユニット２００が装着されているか否かをカメラユニット検出スイッチの状態から判定する。プログラム送信部８５は、メモリカードのファームウェアをカメラユニット２００に送信する。プログラム記録部８７は、カメラユニット２００から受信したファームウェアをフラッシュＲＯＭ６２の拡張領域に記憶する。起動プロフラム選択部８８は、フラッシュＲＯＭ６２から読み出して起動するボディ制御プログラムのバージョンを選択する。更新判定部８６はボディ１００のフラッシュＲＯＭ６２とカメラユニット２００のフラッシュＲＯＭ６１のボディファームウェアのバージョンを比較して、カメラユニット２００からボディファームウェアを受信すべきか否かを判定する。カメラユニット２００のプログラム更新部８１は、ボディ１００から受信したカメラユニットファームウェアによりフラッシュＲＯＭ６１のカメラユニットファームウェアを上書きする。プログラム送信部８２は、フラッシュＲＯＭ６１に記憶されているボディファームウェアをボディ１００に送信する。
【０１５２】
図１５は、本実施形態のカメラシステム３００が、ボディファームウェアをアップデートするか又は起動する手順を示すフローチャート図の一例である。なお、手順のより具体的な内容を後に説明する。
【０１５３】
図１５の手順はボディＣＰＵがノーマルモードになるとスタートする（Ｓ１０のＹｅｓ）。ノーマルモードになるとボディＣＰＵ４２とカメラユニットＣＰＵ１６はブートプログラムを実行する（Ｓ２０）。カメラユニット２００がボディ１００に装着されていない場合、カメラユニットＣＰＵ１６はなにもしない。
【０１５４】
ボディブートプログラムが起動すると、まずカメラユニット装着判定部８４が、カメラユニット２００が装着されているか否かを判定する（Ｓ３０）。カメラユニット２００が装着されていなければ本実施形態のアップデート方法によりボディファームウェアをアップデートできないからである。カメラユニット２００が装着されていない場合、処理はＳ１４０に進み、出荷時領域のボディ制御プログラムが起動される。ただし、ボディ単体のファームウェアファイルがメモリカードに記憶されていれば、ボディだけでファームウェアがアップデートされる。
【０１５５】
カメラユニットが装着されている場合（Ｓ３０のＹｅｓ）、ボディブートプログラム（アップデート判定部８３）は、メモリカードにファームウェアファイルが記憶されているか否かを判定する（Ｓ４０）。ファームウェアファイルが記憶されているか否かは、例えば、ファイル名やファイルの先頭部（ファイルヘッダ）の情報などにより判定される。メモリカードのファームウェアファイルは、カメラユニット２００のカメラユニット制御プログラムとボディ制御プログラムのバージョンが一致している。メモリカードにファームウェアファイルが記憶されていない場合、処理はＳ７０に進む。
【０１５６】
メモリカードにファームウェアファイルが記憶されている場合、ボディブートプログラムはアップデートを開始し、メモリカードにファームウェアファイルが記憶されていない場合、ボディブートプログラムは起動処理を開始する。
【０１５７】
メモリカードにファームウェアファイルが記憶されている場合（Ｓ４０のＹｅｓ）、ボディブートプログラム（プログラム送信部８５）は、メモリカードのファームウェアをカメラユニット２００のＳＤＲＡＭに送信する（Ｓ５０）。
【０１５８】
そして、カメラユニットブートプログラム（プログラム更新部８１）は、ＳＤＲＡＭのファームウェアをカメラユニット２００のフラッシュＲＯＭ６１に上書きする（Ｓ６０）。すなわち、カメラユニット２００のファームウェアは新しいファームウェアに置き換わる。また、カメラユニット２００のフラッシュＲＯＭ６１に書き込まれたファームウェアファイルにはボディファームウェアが含まれている。したがって、カメラユニット２００にボディファームウェアが記憶されることは、そのファームウェアをボディ１００に送信することで、カメラユニット２００とボディファームウェアのバージョンが一致することを意味する。この後、処理はＳ７０に進む。
【０１５９】
次に、ボディブートプログラム（更新判定部８６）は、後述する条件１又は２が成立するか否かを判定する（Ｓ７０）。条件１、２は、カメラユニット２００からボディ１００にボディファームウェアを転送する必要があるか否かを判定するための条件である。
【０１６０】
条件１又は条件２が成立しない場合（Ｓ７０のＮｏ）、Ｓ１００以下の処理が実行される。
【０１６１】
条件１又は条件２が成立する場合（Ｓ７０のＹｅｓ）、ボディブートプログラム（プログラム記録部８７）は、カメラユニット２００のフラッシュＲＯＭ６１に格納されているボディファームウェアファイルを、カメラユニット２００から受信してボディ１００のＳＤＲＡＭに記憶する（Ｓ８０）。
【０１６２】
そして、ボディブートプログラム（プログラム記録部８７）は、ＳＤＲＡＭのファームウェアファイルをフラッシュＲＯＭ６２の拡張領域に記憶する（Ｓ９０）。拡張領域はアップデート用のファームウェアを記憶するための領域である。
【０１６３】
次に、ボディブートプログラムは、電源がオンか否かを判定する（Ｓ１００）。電源がオンでなければ（Ｓ１００のＮｏ）、ボディブートプログラムが所定の設定を行い、ボディＣＰＵ４２及びカメラユニットＣＰＵ１６はスタンバイモードに遷移する（Ｓ１２０）。
【０１６４】
電源がオンの場合（Ｓ１００のＹｅｓ）、ボディブートプログラム（起動プロフラム選択部８８）は、拡張領域にファームウェアが記憶されているか否かを判定する（Ｓ１１０）。拡張領域にファームウェアが記憶されていれば（Ｓ１１０のＹｅｓ）、ボディブートプログラムは拡張領域のボディ制御プログラムをフラッシュＲＯＭ６２から読み出し、アップデートされたボディ制御プログラムを起動する（Ｓ１３０）。
【０１６５】
拡張領域にファームウェアが記憶されていない場合（Ｓ１１０のＮｏ）、ボディブートプログラムは出荷時領域のボディ制御プログラムをフラッシュＲＯＭ６２から読み出しボディ制御プログラムを起動する（Ｓ１４０）。
【０１６６】
＜アップデートの詳細な説明＞
図１６は、本実施形態の、カメラファームウェア及びボディファームウェアのアップデートを模式的に説明する図の一例である。
【０１６７】
カメラユニット２００のフラッシュＲＯＭ６１には、カメラユニット制御プログラムＶ１、ボディ制御プログラムＶ１、リソースデータＶ１、及び、ボディ固定データが記憶されている。ボディ１００のフラッシュＲＯＭ６２には、ボディ制御プログラムＶ１及びリソースデータＶ１が記憶されている。
【０１６８】
カメラユニット制御プログラムＶ１とボディ制御プログラムＶ１の組み合わせは、出荷時にあらかじめ組み合わせが考慮されており、ある機能が動作しないなどの不具合はないものとする。
【０１６９】
メモリカード４３には、ＣＵファームウェアとボディファームウェアの組み合わせが考慮されたＣＵファームウェアＶ２ファイルが記憶されている。ＣＵファームウェアＶ２ファイルには、カメラユニット制御プログラムＶ２、ボディ制御プログラムＶ２及びリソースデータＶ２が格納されている。
【０１７０】
カメラユニット制御プログラムＶ２、ボディ制御プログラムＶ２及びリソースデータＶ２は、機能拡張が行われており、たとえばメニューへ新規スクリーンが追加され新たな項目を設定可能としている。
【０１７１】
ボディにカメラユニットが装着された状態で、ユーザがボディ１００にバッテリを装着した場合を想定する。上記のように、ボディはノーマルモードに移行し、同時にカメラユニット２００のＤＣ／ＤＣコンバータ１１を介してカメラユニット２００のＣＰＵもノーマルモードとなる。
（１）ボディブートプログラム及びカメラユニットブートプログラムは、それぞれのＳＤＲＡＭへロードされそれぞれのＣＰＵにて実行される。
（２）ボディブートプログラムには、ファームウェアをアップデートするプログラムが格納されており、メモリカードにファームウェアファイルが存在する場合、ファームウェアのアップデートを開始する。
【０１７２】
メモリカードにファームウェアファイルが存在するため、ブートプログラムはファームウェアのアップデートを実行する。
（３）ボディＣＰＵ４２及びカメラユニットＣＰＵ１６は外部バスＩ／Ｆ１２，３２を介して通信を行い、ボディブートプログラムはファームウェアファイルをメモリカードから読み出し、カメラユニット２００のＳＤＲＡＭ６３へ送信する。
（４）カメラユニットブートプログラムは、転送されたファームウェアファイルに格納されているカメラユニット制御プログラムＶ２を、既にフラッシュＲＯＭ６１に格納されているカメラユニット制御プログラムＶ１の領域へ上書きコピーする。
（５）同じく、カメラユニットブートプログラムは、転送されたファームウェアファイルに格納されているボディ制御プログラムＶ２及びリソースデータＶ２を、既にフラッシュＲＯＭ上に格納されているボディ制御プログラムＶ１及びリソースデータＶ１の領域へ上書きコピーして、ファームウェアのアップデートを完了する。
【０１７３】
すなわち、カメラユニット２００のフラッシュＲＯＭ６１には、同じバージョンの組合せのＣＵファームウェアとボディファームウェアが記憶されたことになる。
【０１７４】
〔カメラシステムの起動時の動作〕
図１７は、本実施形態のボディ１００及びカメラユニット２００の起動時の動作を模式的に説明する図の一例である。図１６にて説明したように、ファームウェアアップデートの結果、カメラユニットのフラッシュＲＯＭ６１に、カメラユニット制御プログラムＶ２、ボディ制御プログラムＶ２、及びリソースデータＶ２が記憶されている。また、ボディ１００のフラッシュＲＯＭ６２には、ボディ制御プログラムＶ１及びリソースデータＶ１が記憶されている。
【０１７５】
また、デジタルカメラの使用態様では、ユーザ以外の第三者のカメラユニットをユーザのボディに装着する状況が生じる。このような状況は、ユーザが第三者のカメラユニットを譲り受けた場合や中古品を購入した場合に生じる。この場合、ボディとカメラユニットの関係は、図１６の処理が終わった状態と同じになる。
【０１７６】
したがって、図１６の処理の後、カメラユニットからボディ制御プログラムＶ２及びリソースデータＶ２がボディに転送される処理には、（ａ）図１６の処理に引き続いて行われる場合と、（ｂ）カメラユニットを交換した場合の、２つの契機がある。
【０１７７】
なお、カメラユニット制御プログラムＶ１とボディ制御プログラムＶ１の組み合わせ、及びカメラユニット制御プログラムＶ２とボディ制御プログラムＶ２の組み合わせは、出荷時にあらかじめ組み合わせが考慮されており、ある機能が動作しないなどの不具合はないものとする。また、メモリカード４３には、ファームウェアファイルは格納されていない。
【０１７８】
＜図１６の処理の後＞
図１６の処理の後であれば、ボディＣＰＵはすでにノーマルモードになっている。カメラユニット２００のＤＣ／ＤＣコンバータ１１も、接続部を介して電源が供給され、カメラユニットＣＰＵ１６もノーマルモードへ遷移している。
（１）ボディ１００及びカメラユニットブートプログラムはそれぞれのＳＤＲＡＭへロードされ、それぞれのＣＰＵにて実行される。図１６の処理の後であれば、すでにＳＤＲＡＭへロードされている。
（２）ボディブートプログラムは、メモリカードにファームウェアが存在していないことを確認すると、ファームウェアのアップデートを行わない。
（３）ボディＣＰＵ４２のブートプログラムは、検出スイッチ類のスイッチオン入力を判別し、カメラユニット２００が装着されたか否かを判定する。
（４）カメラユニット２００の装着を確認した後、ボディＣＰＵ４２及びカメラユニットＣＰＵ１６は外部バスＩ／Ｆ１２，３２を介して通信を行う。通信では、以下を確認し、条件１又は条件２が成立する場合のみ、カメラユニット２００のフラッシュＲＯＭ６１に格納されているボディ制御プログラムＶ２及びリソースデータＶ２が格納されたボディファームウェアＶ２ファイルを、カメラユニット２００からボディ１００のＳＤＲＡＭへ送信する。
【０１７９】
条件１）ボディのフラッシュＲＯＭ６２の拡張領域に、ファームウェアが格納されていない。
【０１８０】
条件２）ボディのフラッシュＲＯＭ６２の拡張領域に、ファームウェアが格納されているが、カメラユニットのフラッシュＲＯＭ６１に格納されているファームウェアとは異なるバージョンである。
【０１８１】
条件１又は条件２が成立しない場合、既に拡張領域にボディファームウェアＶ２ファイルが記憶されていることになる。
（５）ボディＣＰＵ４２は、ファームウェアファイルの転送終了を確認した後に、転送されたボディファームウェアＶ２ファイルを、フラッシュＲＯＭ６２の拡張領域へ記憶する。
（６）そして、ボディ制御プログラムＶ２による設定により、ボディＣＰＵ４２をスタンバイモードへ遷移させ、カメラユニット２００のＤＣ／ＤＣコンバータ１１の電源を遮断し、ボディ１００は電源オフになる。
【０１８２】
以上のように、カメラユニット２００が記憶している、バージョンの組合せが検証されたＣＵファームウェアとボディファームウェアのうち、ボディファームウェアをボディ１００に送信するので、カメラユニット２００とボディ１００において、ファームウェアバージョンを一致させることができる。
【０１８３】
＜バッテリ装着状態でカメラユニットを交換した場合（ボディにバッテリを装着された状態で、カメラユニット２００がボディ１００へ装着された場合）＞
ボディ１００の電源スイッチがオフ状態である場合、ボディＣＰＵ４２は前述の様にノーマルモードからスタンバイモードに遷移している。このとき、カメラユニット２００を取り外し、再装着又は別のカメラユニット２００がボディ１００に装着されると、キー入力割込みにより、ボディＣＰＵ４２はスタンバイモードからノーマルモードへ遷移する。
【０１８４】
ボディＣＰＵ４２は、カメラユニット２００へＤＣ／ＤＣコンバータ１１から電源を供給するので、カメラユニット２００へ電源が供給され、カメラユニットＣＰＵ１６もノーマルモードへ移行する。この後の動作は、カメラユニット２００がボディ１００へ装着された後にボディ１００にバッテリ３７が装着された場合と同様である。
（１）ボディ１００及びカメラユニットブートプログラムはそれぞれのＳＤＲＡＭへロードされ、それぞれのＣＰＵにて実行される。
（２）ボディブートプログラムは、メモリカードにファームウェアが存在していないことを確認すると、ブートプログラムはファームウェアのアップデートを行わない。
（３）ボディＣＰＵ４２のブートプログラムは、検出スイッチ類のスイッチオン入力を判別し、カメラユニット２００が装着されたか否かを判定する。
（４）カメラユニット２００の装着を確認した後、ボディＣＰＵ４２及びカメラユニットＣＰＵ１６は外部バスＩ／Ｆ１２，３２を介して通信を行う。通信では、条件１又は条件２が成立する場合のみ、カメラユニット２００のフラッシュＲＯＭ６１に格納されているボディ制御プログラムＶ２及びリソースデータＶ２が格納されたボディファームウェアＶ２ファイルを、カメラユニット２００からボディ１００のＳＤＲＡＭへ送信する。
（５）ボディＣＰＵ４２は、ファームウェアファイルの転送終了を確認した後に、転送されたボディファームウェアＶ２ファイルを、フラッシュＲＯＭ６２の拡張領域へ記憶する。
（６）そして、ボディ制御プログラムＶ２による設定により、ボディＣＰＵ４２をスタンバイモードへ遷移させ、カメラユニット２００のＤＣ／ＤＣコンバータ１１の電源を遮断し、ボディ１００は電源オフになる。
【０１８５】
このようにカメラユニットの装着だけでカメラユニットからボディにファームウェアファイルを転送することで起動時間が伸びることを防止できる。ここで、カメラユニットにボディ側の組み合わせを保証したファームウェアを記憶しておき、電源オン時にカメラユニットからボディのＳＤＲＡＭに転送し、ボディＣＰＵがＳＤＲＡＭにあるボディ制御プログラムを起動する、という構成も考えられる。しかし、この構成では電源オンにならないとカメラユニットからボディへボディファームウェアが転送されず、電源オン時に毎回、ボディファームウェアの転送処理が発生するため、起動時間が延びてしまうという不都合を生じさせる。
【０１８６】
これに対し、本実施形態のカメラでは、カメラユニットの装着時に一度だけ、ユーザが意識することなくカメラユニットからボディにファームウェアファイルを転送するので、起動時間が伸びることを防止できる。仮にカメラユニットの装着時に電源オンされても、カメラユニットからボディにファームウェアファイルを転送するのは1回だけなので、起動時間が伸びることを防止できる。
【０１８７】
また、時間短縮のためカメラユニットからボディにボディ制御プログラムのみ転送する構成を採用することも考えられる。しかしこの構成では、互換性確保のためボディ側に全てのバージョンのリソースデータを記憶しておく必要があるという不都合がある。
【０１８８】
これに対し、本実施形態のカメラでは、カメラユニットの装着時にボディ制御プログラムとリソースデータの両方を転送するのでボディ側に全てのバージョンのリソースデータを記憶しておく必要性を回避できる。
【０１８９】
＜カメラユニットを交換後、電源スイッチがオンにされた場合の動作＞
ボディ１００の電源スイッチがオン状態になると、キー入力割込みにより、ボディＣＰＵ４２はスタンバイモードからノーマルモードへ遷移する。
【０１９０】
ボディＣＰＵ４２は、カメラユニット２００のＤＣ／ＤＣコンバータ１１へ電源を供給するように制御することで、カメラユニット２００へ電源が供給され、カメラユニットＣＰＵもノーマルモードへ移行する。以降の処理は、図１７にて説明した（１）〜（５）と同様である。
【０１９１】
そして、電源がオンの場合、ボディブートプログラムが起動するため、以下を行う。
（６´）ボディのＳＤＲＡＭに転送されたファームウェアのうち、ボディブートプログラムはボディ制御プログラムＶ２をフラッシュＲＯＭ６２の拡張領域に記憶する。そして、ボディ制御プログラムＶ２をＳＤＲＡＭにロードし、ボディＣＰＵ４２にボディ制御プログラムＶ２を実行させることで処理を切り替え、カメラユニット２００が起動する。カメラシステムは撮影モードに設定され、撮影が可能になる。
【０１９２】
ファームウェアファイルを転送した場合、リソースデータＶ２はＳＤＲＡＭに存在するが、転送しなかった場合と同様のボディ制御プログラムとすべく、フラッシュＲＯＭ６２に転送する。そして、ボディＣＰＵ４２は、必要であれば、フラッシュＲＯＭ６２に格納されているリソースデータＶ２より必要なデータをＳＤＲＡＭへロードする。
【０１９３】
また、ファームウェアファイルの転送がされない場合においては、 既に拡張領域にはボディファームウェアＶ２ファイルが格納されていることになる。ボディブートプログラムは、拡張領域に格納されているボディファームウェアＶ２ファイルのうち、ボディ制御プログラムＶ２をＳＤＲＡＭへロードし、ボディブートプログラムよりボディ制御プログラムＶ２へ処理を切り替えることで、カメラユニット２００が起動し、撮影モードに設定され、撮影が可能になる。
【０１９４】
＜ボディ単体で電源スイッチがオンにされた場合の起動時の動作＞
図１８は、本実施形態のボディ及びカメラユニット２００の起動時の動作を模式的に説明する図の一例である。
【０１９５】
図１７によるボディ１００へのレンズユニット装着の結果、ボディのフラッシュＲＯＭ６２の拡張領域には、ボディ制御プログラムＶ２及びリソースデータＶ２が格納されている。
【０１９６】
フラッシュＲＯＭ６２の拡張領域に格納されているボディ制御プログラムＶ２及びリソースデータＶ２は、ボディ１００にレンズユニットが装着されている時にボディ１００の制御を行うために利用され、ボディ単体での起動時には利用されない。
（１）ボディブートプログラムは、カメラユニットが装着されていないことを検出すると、フラッシュＲＯＭの出荷時領域からボディ制御プログラムＶ１をＳＤＲＡＭにロードする。  つまり、ボディ１００は、フラッシュＲＯＭ６２の出荷時領域に格納されているファームウェアバージョンにて必ず起動することとなる。
【０１９７】
この出荷時領域に格納されているファームウェアを変更したい場合、図１２にて説明した従来のボディファームウェアのアップデートを実施することでアップデートができる。したがって、カメラユニットと関係なくボディ制御プログラム及びリソースデータだけをアップデートすることもできる。
【０１９８】
以上のように、本実施形態のカメラシステムは、ＣＵファームウェアとボディファームウェアのバージョンが一致するメモリカードから、カメラユニットにＣＵファームウェアが、カメラユニットを経由してボディにボディファームウェアがそれぞれ記憶される。このため、アップデートの結果、カメラユニット制御プログラムとボディ制御プログラムのバージョンの組合せが検証されていないという状況が生じない。
【符号の説明】
【０１９９】
１１，３１  ＤＣ／ＤＣコンバータ
１２，３２  外部バスＩ／Ｆ
１３，３３  制御用ポート
１６        カメラユニットＣＰＵ
１９        撮像素子
３０        マウント部
３７        バッテリ
４２        ボディＣＰＵ
４３        メモリカード
６１，６２  フラッシュＲＯＭ
６２，６３  ＳＤＲＡＭ
１００      ボディ
２００      カメラユニット
３００      カメラシステム
【先行技術文献】
【特許文献】
【０２００】
【特許文献１】特開２００３‐１０７３１５号公報
【特許文献２】特開２００６‐１２１４１８号公報
【図１】
2013020413.tif 000003
【図２】
2013020413.tif 000004
【図３】
2013020413.tif 000005
【図４】
2013020413.tif 000006
【図５】
2013020413.tif 000007
【図６】
2013020413.tif 000008
【図７】
2013020413.tif 000009
【図８】
2013020413.tif 000010
【図９】
2013020413.tif 000011
【図１０】
2013020413.tif 000012
【図１１】
2013020413.tif 000013
【図１２】
2013020413.tif 000014
【図１３】
2013020413.tif 000015
【図１４】
2013020413.tif 000016
【図１５】
2013020413.tif 000017
【図１６】
2013020413.tif 000018
【図１７】
2013020413.tif 000019
【図１８】
2013020413.tif 000020