以下、本発明の例示的な実施形態を、添付の図面に基づいて詳細に説明する。なお、以下で説明する実施形態においては、交換レンズ、エクステンダ、フラッシュのようにカメラ本体に装着する機器をアクセサリまたは第1アクセサリ、(第1)アクセサリに着脱可能な機器をサブアクセサリまたは第2アクセサリと呼ぶ。ただし、エクステンダはレンズユニットの一部を構成するため、エクステンダを介してカメラに装着された交換レンズは第1アクセサリとする。また、アクセサリの一例としてズーム機能を有する交換レンズ、サブアクセサリの一例としてレンズのズーム機構をレンズ外部から機械的に駆動するズームアダプタを用いる構成について説明する。しかしながら、本発明は他のアクセサリおよびサブアクセサリの組み合わせに対しても適用可能である。
●(第1実施形態)
図1は、本発明の実施形態にかかわる撮像システムを構成する機器の接続関係および、各機器の機能構成例を示すブロック図である。本実施形態の撮像システム100は、レンズ交換式のデジタルカメラ(カメラ本体)101と、デジタルカメラ101に着脱可能なレンズユニット(交換レンズまたは撮像レンズ)102と、レンズ102に着脱可能なズームアダプタ103とを有する。
デジタルカメラ(以下、カメラと呼ぶ)101とレンズユニット(以下、レンズと呼ぶ)102とは、レンズマウントに設けられたマウントIF124を通じて双方向に通信可能である。マウントIF124はまた、カメラ101からレンズ102に電力を供給するためにも用いられる。レンズ102とズームアダプタ103はアダプタIF125を通じて双方向に通信可能である。
レンズ102は、カメラ101が有する撮像素子108における結像面に被写体の光学像を形成する撮像レンズである。本実施形態においてレンズ102は変倍レンズ104aを有するズームレンズである。レンズ102の筐体に設けられたズーム操作部120aは、ユーザがレンズ102の焦点距離または倍率を変更するために操作する可動部材であり、代表的にはズームリングである。ズーム機構120bはズーム操作部120aの動きに連動して変倍レンズ104aを光軸上で移動させる。
なお、本実施形態ではズーム操作部120aとズーム機構120bとが機械的に連携して変倍レンズ104aを駆動する構成であるものとする。しかし、ズーム操作部120aの操作方向および操作量を検出し、操作方向および操作量に応じてモータやアクチュエータを制御することによって変倍レンズ104aを駆動してもよい。この場合、ズーム操作部120aの操作方向および操作量は後述するレンズ制御部119が検出し、モータやアクチュエータを制御すればよい。なお、変倍レンズ104aの位置(あるいはレンズ102の倍率)はレンズ制御部119が検出可能である。
レンズ102は可動部品として絞り104bおよびフォーカスレンズ104cをさらに有する。絞り104bおよびフォーカスレンズ104cは、レンズ制御部119の制御に基づいてレンズ駆動部105がモータやアクチュエータによって駆動する。
メモリ部126は、書き換え可能な不揮発メモリで構成され、レンズ制御部119が実行する制御プログラム(ファームウェア)、レンズ102に関する固有情報や状態情報を記憶する。固有情報は例えば機種名(識別情報)、光学特性、補正情報などである。また、状態情報は例えば動作状態(正常/異常/セーフモード)変倍レンズ104aの位置情報(または倍率)、フォーカスレンズ104cの位置情報、絞り104bのF値、ファームウェアのバージョンや更新状態、ズームアダプタ103の装着有無などである。ただし、これらに限定されない。また、メモリ部126には、後述するセーフモードでレンズ102を動作させる際に実行するプログラムも記憶されている。
レンズ制御部119はCPUなどのプログラマブルプロセッサを有し、メモリ部126からプログラムを読み出して実行することにより、後述するレンズ102の動作をはじめとした、各種の動作を実現する。例えばレンズ制御部119は、カメラ制御部112からマウントIF124を通じて受信した命令に応じた動作、例えばレンズ駆動部105の制御や、メモリ部126に記憶されたファームウェアの更新を実行する。
レンズ制御部119は、メモリ部126に記憶されている古いファームウェアを、例えばカメラ101からマウントIF124を介して受信した新しいファームウェアで上書きすることによってファームウェアを更新する。また、レンズ制御部119は、ファームウェアの更新処理の状態を表すデータ(更新状態データ)をメモリ部126に記録することで、更新処理を管理する。例えばレンズ制御部119はファームウェアの上書きを行う前に、更新状態データを「未完了」を示す値にし、ファームウェアの上書きが完了すると更新状態データを「完了」を示す値にする。なお、「完了」を示す値は「正常完了」を示す値と「異常完了」を示す値とで異なっていてもよい。また、「異常完了」を示す値は、異常の原因に応じて異なる値であってよい。「異常完了」を示す値の場合にはエラー表示を行うようにしてもよい。
例えば、ファームウェアの更新中にレンズ102がカメラ101から外された場合、レンズ102への電源供給が絶たれるため、更新状態データが「未完了」を示す値のまま更新処理が中断される。例えばレンズ制御部119は、カメラ101に装着された際に更新状態データを確認し、未完了状態を示す値であった場合には、動作が制限されたモード(セーフモード)に移行する。
セーフモードでは、ファームウェアの更新を行うために必要な処理を含む、制限された機能だけが実行可能である。具体的には、セーフモードであることを示す情報(あるいはファームウェア更新の要求)をカメラ101に送信する処理と、カメラ101から受信したファームウェアでメモリ部126内のファームウェアを更新する処理が可能である。それ以外の処理、例えばレンズ駆動部105の制御は行えない。
通常、メモリ部126の容量はファームウェア全体を二重化して記憶できるほど大きくない。そのため、セーフモード用のプログラムの記憶に利用できる容量は制限される。したがってセーフモードでは、必要最低限の機能を含む、限られた機能だけが提供される。レンズ制御部119はセーフモード中にマウントIF124やアダプタIF125を通じて、セーフモードでは実行できない処理の要求、例えばズームアダプタ103のファームウェア更新要求を受信した場合、要求を無視する。
カメラ制御部112は、例えば取得したレンズ102の動作状態から、装着されているレンズ102がセーフモードであることを検出することができる。そして、レンズ102がセーフモードであることが検出されると、カメラ制御部112は、レンズ102の正常動作にはファームウェア更新が必要であることを例えば表示部118へのメッセージ表示などによってユーザに報知することができる。
カメラ101において、シャッタ駆動部107は、カメラ制御部112の制御に基づいてシャッタ106の開閉動作を行う。複数の画素が配列された撮像素子108は、シャッタ106が開いている間に露光され、レンズ102が結像した被写体像を、各画素で変換された電気信号で構成される画像信号として出力する。
画像処理部109は撮像素子108が出力する画像信号に対して様々な処理を適用し、画像データや制御情報などを生成する。画像処理部109が画像データ生成のために適用しうる処理は、A/D変換処理、ノイズ低減処理、欠陥画素補正処理、色変換処理、色補間(デモザイク)処理、ホワイトバランス調整処理、階調補正処理、歪み補正処理、スケーリング処理などがある。また、画像処理部109は制御情報として、自動焦点検出(AF)、自動露出制御(AE)に用いるデータを生成する。制御情報には例えばコントラストAFに用いる評価値、位相差AFに用いる像信号、輝度情報、被写体領域の位置や大きさに関する情報などがある。なお、画像処理部109は、ここで例示した以外の処理を実行したり、例示した処理の1つ以上を実行しなかったりしてもよい。
タイミング生成部110は撮像素子108および画像処理部109に、各種のタイミング信号および制御信号を出力する。
メモリ部130は、書き換え可能な不揮発メモリで構成され、カメラ制御部112が実行するプログラム(ファームウェアおよびアプリケーションソフトウェア)、GUIデータ、音声データ、各種の初期値や設定値、カメラ101の各種の情報などを記憶する。
カメラ制御部112は各種演算処理および撮像装置全体を制御する。
バッファメモリ111は画像データなどを一時的に記憶するためのメモリである。
カメラ制御部112はCPUなどのプログラマブルプロセッサを有し、メモリ部130からプログラムを読み出して実行することにより、カメラ101全体の動作ならびにレンズ102の動作を制御する。例えばカメラ制御部112は、画像処理部109が生成した制御情報を用い、フォーカスレンズ104cの位置を制御するAF処理や、絞り104bおよびシャッタ106の動作を制御するAE処理を実行する。また、カメラ制御部112は、操作部131を通じて入力された指示に応じた処理(例えばGUIを通じた対話的な動作)を実行する。
また、カメラ制御部112は、上述したように、レンズ102がセーフモードの場合や、操作部131を通じた指示に基づいて、レンズ102のファームウェア更新処理を実行する。さらに、後述するようにカメラ制御部112は、レンズ102に装着可能なサブアクセサリに関する処理も実行する。この処理には、レンズ102に対するサブアクセサリの装着有無や、装着されているサブアクセサリの動作状態の検出処理、サブアクセサリの動作制御処理が含まれる。
メディアIF113は、例えば着脱可能なメモリカードである記録媒体114に対してデータの記録や読み出しを行うためのインタフェースである。
記録媒体114は、カメラ101での撮影によって得られた画像データや音声データの記録先として用いられるほか、カメラ101、レンズ102、ズームアダプタ103のファームウェア更新時には新しいファームウェアの供給元としても用いられる。
外部IF115は、カメラ101に無線や有線で外部機器を接続するために用いられる。
画像合成部116はたとえばHDR画像の生成時のように、バッファメモリ111に一時的に保持された複数の画像データを合成する。
コーデック117はバッファメモリ111に記憶された画像データを所定の方式で符号化したり、記録媒体114から読み出してバッファメモリ111に記憶された符号化画像データを復号したりする。符号化方式としては例えばJPEG形式やMPEG形式が代表的であるが、他の方式であってもよい。コーデック117は符号化もしくは復号処理後の画像データを例えばバッファメモリ111に記憶する。
表示部118は例えば液晶ディスプレイ(LCD)を有し、カメラ101のGUIや、ライブビュー画像、記録用に撮影した画像や記録媒体114から読み出した画像、カメラ101、レンズ102、ズームアダプタ103の情報などの表示に用いられる。表示部118はまた、レンズ102やズームアダプタ103のファームウェア更新をユーザが指示するためのメニュー画面の表示や、レンズ102やズームアダプタ103でエラーが発生したり、動作状態の異常が検出されたりしたことの報知にも用いられる。表示部118の表示動作は表示制御回路120を通じてカメラ制御部112が制御する。
マウントIF124は、カメラ101(カメラ制御部112)とレンズ102(レンズ制御部119)との間の双方向通信インタフェースである。カメラ制御部112からマウントIF124を通じてレンズ制御部119へ命令や要求を送信することにより、レンズの102の固有情報や状態情報を取得したり、絞り104bやフォーカスレンズ104cを制御したりすることができる。
また、カメラ制御部112は、マウントIF124を通じて、レンズ102に装着可能なサブアクセサリ(ここではズームアダプタ103)の情報を取得することができる。
操作部131は、ユーザがカメラ101に設定や指示を行うための入力デバイス群である。操作部131には、メニューキー、方向キーおよび決定キーのような、GUIを操作するために用いる操作部材や、レリーズボタン、モードダイヤル、ズームボタンのような撮像操作に用いる操作部材が含まれる。表示部118がタッチディスプレイの場合、表示部118も操作部131に含まれる。なお、操作部131には、音声認識を利用する入力デバイスのように、物理的な操作を必要としない入力デバイスが含まれてもよい。
ズームアダプタ103は、レンズ102のサブアクセサリであり、レンズ102に装着された状態において、ズーム駆動部122の可動部がレンズ102のズーム操作部120aと接するように構成されている。ズーム駆動部122の可動部はモータやアクチュエータなどによって駆動され、接しているズーム操作部120aを機械的に駆動する。ズーム駆動部122の動力は例えば電池である電源部128から供給される。
アダプタIF125は、ズームアダプタ103(アダプタ制御部121)とレンズ102(レンズ制御部119)との間の通信インタフェースである。アダプタIF125を介して、レンズ102はズームアダプタ103の装着や取り外しを検出したり、ズームアダプタ103の状態情報(例えばファームウェアのバージョンや更新状態、動作状態など)を取得したりすることができる。また、レンズ102は、カメラ101から受信した、ズームアダプタ103への制御命令を、アダプタIF125を通じてズームアダプタ103へ転送することができる。
メモリ部127は、書き換え可能な不揮発メモリで構成され、アダプタ制御部121が実行する制御プログラム(ファームウェア)、ズームアダプタ103に関する固有情報や状態情報を記憶する。固有情報は例えば機種名(識別情報)などである。また、状態情報は例えばズーム駆動部122の位置情報、ファームウェアのバージョンや更新状態、ズームアダプタ103の動作状態(正常/異常/セーフモード)、モード切り替えスイッチ123の状態、電源部128の状態(残量など)である。ただし、これらに限定されない。また、メモリ部127には、セーフモードでズームアダプタ103を動作させる際に実行するプログラムも記憶されている。
アダプタ制御部121はCPUなどのプログラマブルプロセッサを有し、メモリ部127からプログラムを読み出して実行することにより、後述するズームアダプタ103の動作をはじめとした、各種の動作を実現する。例えばアダプタ制御部121は、レンズ制御部119からアダプタIF125を通じて受信した命令に応じた動作、例えばズーム駆動部122の制御や、メモリ部127に記憶されたファームウェアの更新を実行する。
アダプタ制御部121は、メモリ部127に記憶されている古いファームウェアを、レンズ102からアダプタIF125を介して受信した新しいファームウェアで上書きすることによってファームウェアを更新する。また、アダプタ制御部121は、ファームウェアの更新処理の状態を表すデータ(更新状態データ)をメモリ部127に記録することで、更新処理を管理する。例えばアダプタ制御部121はファームウェアの上書きを行う前に、更新状態データを「未完了」を示す値にし、ファームウェアの上書きが完了すると更新状態データを「完了」を示す値にする。なお、「完了」を示す値は「正常完了」を示す値と「異常完了」を示す値とで異なっていてもよい。また、「異常完了」を示す値は、異常の原因に応じて異なる値であってよい。
例えば、新しいファームウェアの受信と更新とを並行して実施している際にズームアダプタ103がレンズ102から外されたり、レンズ102がカメラ101から外されたりした場合、更新状態データが「未完了」を示す値のまま更新処理が中断される。例えばアダプタ制御部121は、レンズ102に装着された際に更新状態データを確認し、未完了状態を示す値であった場合には、動作が制限されたモード(セーフモード)に移行する。
セーフモードでは、ファームウェアの更新を行うために必要な処理を含む、制限された機能だけが実行可能である。具体的には、アダプタの動作状態(あるいはファームウェア更新の要求)をレンズ102に送信する処理と、レンズ102を通じて受信したファームウェアでメモリ部127内のファームウェアを更新する処理が可能である。それ以外の処理、例えばズーム駆動部122の制御は行えない。レンズ102のメモリ部126と同様、セーフモード用のプログラムに利用できる容量が制限されるためである。アダプタ制御部121はセーフモード中に、セーフモードでは実行できない処理の要求、例えばズーム制御要求をアダプタIF125を通じて受信した場合、要求を無視する。
モード切り替えスイッチ123は、レンズ102のズーム操作を手動で(ズーム操作部120aを操作して)行うか、自動で(ズームアダプタ103を用いた電動ズームを)行うかをユーザが切り替えるためのスイッチである。手動が選択されている場合、アダプタ制御部121はズームアダプタ103の駆動命令を受信してもズーム駆動部122を駆動しない。
カメラ101とレンズ102は、マウントIF124を介して双方向の通信を行う。例えば、カメラ101側はレンズ102に対し、フォーカス制御に関する命令を送信する。また、レンズ102は、カメラ101に対し、最大ズーム位置、最小ズーム位置などレンズ固有の情報や、現在のフォーカスレンズ位置やズーム位置など、レンズの状態に関する情報を送信することができる。
また、レンズ102とズームアダプタ103は、アダプタIF125を介して双方向の通信を行う。例えば、レンズ102は、ズームアダプタ103に対してズーム位置情報(現在のズーム位置、最大ズーム位置、最小ズーム位置)を通知する。ズームアダプタ103は、通知されたズーム位置情報をもとに、ズーム操作が可能か否かを判断することができる。また、ズームアダプタ103は、ズームアダプタ103の状態に関する情報をレンズ102に送信することもできる。
本実施形態において、カメラ101とズームアダプタ103とは接続はされていないが、レンズ102を介して双方向の通信が可能である。例えば、レンズ102(レンズ制御部119)が、ズームアダプタ103(アダプタ制御部121)から受信した情報をカメラ101(カメラ制御部112)に転送もしくは通知することで、ズームアダプタ103とカメラ101との双方向通信を実現可能である。また、レンズ102が、カメラ101から受信した情報をズームアダプタ103に転送もしくは通知することにより、カメラ101からズームアダプタ103に情報を送信することが可能である。例えばカメラ101からズームアダプタ103が解釈可能なズーム駆動の命令をレンズ102に送信することにより、ズームアダプタ103の動作を制御し、レンズ102をズームさせることが可能である。
なお、ズームアダプタ103を駆動する命令(ズーム制御命令)は、カメラ101(操作部130)の操作に応じて生成されるだけでなく、外部IF115を通じてカメラ101が外部機器から受信したものであってもよい。例えば、カメラ101と通信可能な外部機器(例えば携帯電話機やタブレット端末)で動作する遠隔撮影用のアプリケーションのユーザ操作に応じて、外部機器から送信されたズーム制御命令であってよい。そして、このズーム制御命令を、カメラ101がレンズ102に、さらにレンズ102がズームアダプタ103に転送する。このように、外部機器が送信したズームアダプタ103の制御命令をカメラ101およびレンズ102が中継することにより、ズームアダプタ103を外部機器から遠隔操作することができる。したがって、レンズ102が例えば手動ズームであったとしても、外部機器から遠隔的にレンズのズーム制御を行うことが可能になる。
このように、レンズ102(レンズ制御部119)がデータを中継もしくは転送することにより、カメラ101とズームアダプタ103との双方向通信が実現される。なお、レンズ制御部119は、例えばヘッダ情報を参照することによって、カメラ101やズームアダプタ103から受信したデータがレンズ102に宛てられたものか、他の装置に転送すべきものかどうかを判別することができる。
レンズ制御部119は、ズーム駆動命令の実行結果や、ズームアダプタ103の状態に関する情報を、アダプタ制御部121からアダプタIF125を介して受信し、マウントIF124を介してカメラ制御部112に転送する。
また、カメラ制御部112は、マウントIF124を介してレンズ102の装着を検出すると、マウントIF124を介してレンズ制御部119に情報要求命令を送信する。レンズ制御部119はこの命令に応答してメモリ部126から固有情報や状態情報を読み出し、カメラ制御部112に送信する。なお、レンズ制御部119は、サブアクセサリ(ここではズームアダプタ103)が装着されると、サブアクセサリの制御部に情報要求命令を送信し、サブアクセサリの固有情報や状態情報を取得し、メモリ部126に保存してもよい。この場合レンズ制御部119は、サブアクセサリが外されたり、サブアクセサリの動作状態が変化したりすると、メモリ部126に記憶した、サブアクセサリの固有情報や状態情報に反映させる。また、レンズ制御部119は、カメラ制御部112から情報要求命令を受信すると、メモリ部126からレンズ102の情報に加え、サブアクセサリの情報も読み出し、カメラ制御部112に送信する。メモリ部126にサブアクセサリの情報を保存していない場合、レンズ制御部119は情報要求命令を受信すると、アダプタ制御部121に情報要求命令を転送し、応答に含まれるサブアクセサリの固有情報や状態情報をメモリ部126に保存してもよい、
カメラ制御部112は、レンズ102から取得した状態情報に基づいて、レンズ102にサブアクセサリが装着されているか否かや、レンズ102のファームウェア更新が必要か否かなどを判定することができる。なお、レンズ102にサブアクセサリ(ズームアダプタ103)が装着されていると判定され、ズームアダプタ103の動作状態がレンズ102から受信した情報に含まれていない場合、カメラ制御部112はまずズームアダプタ103の動作状態を取得する。すなわち、カメラ制御部112はズームアダプタ103の動作状態の取得命令をレンズ制御部119に送信する。ここでは、カメラ制御部112はズームアダプタ103の固有情報は取得しなくてもよい。カメラ制御部112は、取得した動作状態から、ズームアダプタ103がセーフモードで動作していると判定した場合、例えば表示部118にメッセージ表示するなどして、ズームアダプタ103の動作不良をユーザに報知することができる。
ズームアダプタ103の固有情報(識別情報など)は、ズームアダプタ103の正常動作状態が受信された後の任意のタイミングで取得してよい。例えば、操作部131を通じてレンズ102やズームアダプタ103のファームウェア更新が指示された際に、カメラ制御部112はレンズ制御部119に対し、レンズ102の情報およびズームアダプタ103の情報についても取得する。なお、情報の要求命令は、要求する情報を指定できてもよい。従って、カメラ制御部112は、固有情報だけ、状態情報だけ、あるいは、固有情報や状態情報に含まれる特定の情報だけを要求ならびに取得することができる。
レンズ制御部119はマウントIF124を介してカメラ制御部112からデータを受信すると、例えばデータの宛先に基づいて、受信データがアダプタ制御部121へ転送すべきデータか否かを判定する。そして、レンズ制御部119は、アダプタ制御部121へ転送すべきデータと判定された受信データは、アダプタIF125を介してアダプタ制御部121へ転送する。
また、レンズ制御部119は、アダプタIF125を介してアダプタ制御部121からデータを受信すると、例えばデータの宛先に基づいて、受信データがカメラ制御部112へ転送すべきデータか否かを判定する。そして、レンズ制御部119は、カメラ制御部112へ転送すべきデータと判定された受信データは、マウントIF124を介してカメラ制御部112へ転送する。
従って、レンズ制御部119は、カメラ制御部112から受信したズームアダプタ103の情報要求命令を、アダプタIF125を介してアダプタ制御部121に転送する。アダプタ制御部121は、情報要求命令に応じてメモリ部127から情報を読み出し、アダプタIF125を介して、カメラ制御部112宛てのデータとしてレンズ制御部119に送信する。そして、レンズ制御部119は、アダプタ制御部121から受信したデータをマウントIF124を介してカメラ制御部112に転送する。
カメラ制御部112は、このようにして取得したアクセサリ(レンズ102)やサブアクセサリ(ズームアダプタ103)の情報に基づいて、適合するファームウェア更新用のデータファイルが、記録媒体114に存在するか否かを判定する。
次に、図2および図3のフローチャートを用いて、レンズ102がカメラ101に装着された際の、カメラ制御部112、レンズ制御部119、アダプタ制御部121の動作に関して説明する。図2(a),(b)はカメラ制御部112の動作を、図3(a)はレンズ制御部119の動作を、図3(b)はアダプタ制御部121の動作を、それぞれ示す。なお、図2および図3では、各機器(制御部)の動作の相互関係が明確になるように参照数字を付してある。また、簡略化のために、カメラ制御部112、レンズ制御部119、アダプタ制御部121をそれぞれ「カメラ」、「レンズ」、「サブアクセサリ」と表記している。
S202でカメラ制御部112は、レンズ102が非装着の状態で動作している際、マウントIF124を監視し、レンズ102が装着さたか否かを判定する。カメラ制御部112は、例えばマウントIF124が有する所定のピンの電圧が所定値になったことなどに基づいて、レンズ102が装着されたと判定された場合には処理をS203へ進め、レンズ102が装着されたと判定されなければS202を繰り返す。
S203でカメラ制御部112は、装着されたレンズおよび、レンズに装着されているサブアクセサリの動作状態の検出処理を実行し、アイドル状態に移行する。S203の処理の詳細について、図2(b)を用いて説明する。なお、説明及び理解を容易にするため、カメラ制御部112におけるS203の処理に関連してレンズ制御部119およびアダプタ制御部121で行われる動作についても、図3を用いて合わせて説明する。
S211でカメラ制御部112は、現在のサブアクセサリの装着状態の問い合わせをレンズ制御部119へ送信する。問い合わせはS212(図3(a))でレンズ制御部119に受信される。
S213でレンズ制御部119は、レンズ102にどのようなサブアクセサリが装着されているかを確認する。本実施形態でレンズ制御部119は例えばアダプタIF125を確認し、ズームアダプタ103が装着されているか否かを確認する。
S214でレンズ制御部119は、サブアクセサリの装着状態(装着有無)をカメラ制御部112へ送信する。装着状態はS215(図2(b))でカメラ制御部112に受信される。
S216でカメラ制御部112は、レンズ102およびサブアクセサリ(ズームアダプタ103)の動作状態の判定依頼をレンズ制御部119へ送信する。この判定依頼はS217でレンズ制御部119に受信される。なお、カメラ制御部112は、レンズ102以外のアクセサリ(例えばエクステンダやフラッシュなど)が装着されている場合、それらのアクセサリの制御部に対しても動作状態の判定依頼を送信する。
S218でレンズ制御部119は、S213で確認した、現在装着されているサブアクセサリ(ズームアダプタ103)の制御部(アダプタ制御部121)に対し、アダプタIF125を通じて動作状態の判定依頼を送信する。この判定依頼は、S219(図3(b))でアダプタ制御部121に受信される。
S220でアダプタ制御部121は、例えば予め定められた条件を満たすか否かに応じて、ズームアダプタ103が動作不良状態かどうかを判定する。予め定められた条件の例としては、ファームウェア更新が正常完了していない状態(セーフモード状態)である場合、高温によりズーム駆動部122を駆動するモータやアクチュエータが動作しない(動作させられない)場合、電源電圧が閾値未満の場合がある。しかし、これらに限定されない。
S220の判定結果はS221でレンズ制御部119へ送信され、S223でレンズ制御部119に受信される。
一方、レンズ制御部119は、S222で、例えば予め定められた条件を満たすか否かに応じて、レンズ102が動作不良状態かどうかを判定する。予め定められた条件の例としては、ファームウェア更新が正常完了していない状態(セーフモード状態)である場合、変倍レンズやフォーカスレンズの位置検出センサの動作不良などがあるが、これらに限定されない。
S224でレンズ制御部119は、S222で判定したレンズ102の動作状態と、S223で受信した、サブアクセサリの動作状態の判定結果とをカメラ制御部112へ送信する。これらの判定結果は、S225でカメラ制御部112に受信される。
S234でカメラ制御部112は、受信した判定結果から、レンズ102もしくはサブアクセサリ(ズームアダプタ103)が動作不良状態を否かを判定し、動作不良状態と判定されればS235へ処理を進め、動作不良状態と判定されなければ処理を終了する。
S235でカメラ制御部112は、動作不良状態と判定されたデバイスに対応するエラーメッセージを表示部118に表示する。カメラ制御部112は、レンズ102が動作不良状態であれば図8(a)に示す画面601のような表示を行い、レンズ102のファームウェアを更新するか、別のレンズを装着するようにユーザに要求する。同様に、ズームアダプタ103が動作不良状態と判定された場合、カメラ制御部112は図8(b)に示す画面602のような表示を行う。なお、カメラ制御部112は、レンズ102とズームアダプタ103の両方が動作不良状態の場合も、図8(a)や(b)と同様の表示を行う。
ここでは、カメラ101にレンズ102が装着された際、サブアクセサリの装着有無をレンズに問い合わせ、サブアクセサリが装着されていることが分かった場合に改めてサブアクセサリ(およびレンズ102)の動作状態の判定依頼を行う構成について説明した。
しかし、レンズ102がカメラ101に装着された際、レンズ制御部119がアダプタIF125を通じてサブアクセサリの装着有無の検出および、サブアクセサリの動作状態を含む情報取得を行い、メモリ部126に保存するように構成してもよい。そして、カメラ制御部112から情報要求命令を受信すると、レンズ制御部119はメモリ部126に保存されているレンズならびにサブアクセサリの情報をカメラ制御部112に応答してもよい。これにより、カメラ制御部112は、レンズ102の装着時にレンズ制御部119に対して情報要求命令を送信するだけで、レンズ102の情報だけでなく、サブアクセサリについての情報(装着有無、識別情報、動作状態となど)を把握することができる。
次に、図4および図5のフローチャートを用いて、レンズ制御部119を通常モードから省電力モードに移行させる処理と、レンズ制御部119が省電力モードから通常モードに復帰(ウェイクアップ)した際の処理について説明する。図4(a)および図5(b)はカメラ制御部112の動作を、図4(b)はレンズ制御部119の動作を、図5(a)はアダプタ制御部121の動作を、それぞれ示す。なお、図4および図5においても、各制御部の動作の相互関係が明確になるように参照数字を付してある。また、簡略化のために、カメラ制御部112、レンズ制御部119、アダプタ制御部121をそれぞれ「カメラ」、「レンズ」、「サブアクセサリ」と表記している。
まず、図4(a)および(b)を用い、レンズ制御部119を省電力モードに移行させる処理について説明する。本実施形態では、カメラ101が起動している状態で、所定時間カメラ101の操作が行われない場合などの予め定められた条件が満たされると、カメラ101の電力消費を節約するため、レンズ制御部119を省電力モードに移行させる。
S300でカメラ制御部112は、カメラ101に対する操作が行われないまま所定時間経過したか否かを判定し、経過したと判定されればS301へ処理を進め、経過したと判定されなければS300の処理を繰り返す。なお、S300における判定に用いられる所定時間は、ユーザが設定可能であってよい。
S301でカメラ制御部112は、レンズ102およびサブアクセサリの動作ステータスの問い合わせをレンズ制御部119へ送信する。この問い合わせは、S302でレンズ制御部119に受信される。なお、動作ステータスは、現在どのような動作を実施しているかに関する情報であり、動作状態とは異なる。
S303でレンズ制御部119は、レンズ102の動作ステータスを確認する。レンズ102の動作ステータスとしては、フォーカスレンズ駆動中、シフトレンズ駆動中などが例示されるが、これらに限定されない。
S304でレンズ制御部119は、動作ステータスの問い合わせをアダプタ制御部121に送信する。この問い合わせはS305でアダプタ制御部121に受信される。
S306でアダプタ制御部121は、ズームアダプタ103の動作ステータスを確認する。動作ステータスは例えばズーム駆動制御中やモータ駆動中などがあるが、これらに限定されない。
S307でアダプタ制御部121は、ズームアダプタ103の動作ステータスをレンズ制御部119へ送信する。この動作ステータスはS308でレンズ制御部119に受信される。
S309でレンズ制御部119は、レンズ102およびズームアダプタ103の動作ステータスをカメラ制御部112へ送信する。これらの動作ステータスはS310でカメラ制御部112に受信される。
S311でカメラ制御部112は、レンズ102またはズームアダプタ103のいずれかが動作中か否かを判定し、動作中と判定されればS312に、動作中と判定されなければS323に、それぞれ処理を進める。
S312でカメラ制御部112は、動作中と判定されたレンズ102またはズームアダプタ103に対して駆動停止要求を送信する。この駆動停止要求はS313でレンズ制御部119で受信される。
S314でレンズ制御部119は、駆動停止要求の対象を判定する。判定は例えば、駆動停止要求の宛先に基づいて行うことができる。レンズ制御部119は、駆動停止要求の対象がレンズ102であればS315でレンズ102の各部の動作を停止させる。また、駆動停止要求の対象がズームアダプタ103であれば、S316でレンズ制御部119は、駆動停止要求をアダプタ制御部121に送信(転送)する。なお、駆動停止要求の対象がレンズ102とズームアダプタ103の両方の場合、レンズ制御部119はS315とS316の両方を実施する。
アダプタ制御部121はS317で動作停止要求を受信すると、S318で各部の動作を停止させ、S319で動作停止を示す動作ステータスをレンズ制御部119に送信する。
S320でレンズ制御部119は、アダプタ制御部121からズームアダプタ103の動作ステータスを受信し、レンズ102の動作ステータスと共にS321でカメラ制御部112へ送信する。
S322でカメラ制御部112は、受信した動作ステータスに基づいて、レンズ102およびズームアダプタ103が動作停止したことを確認する。
S323でカメラ制御部112は、レンズ制御部119へスリープ移行要求を送信する。レンズ制御部119はスリープ移行要求をS324で受信し、S325でレンズ制御部119をスリープ状態に移行するための各種処理を行う。処理の実行が終了すると、S326でレンズ制御部119はスリープ状態への移行完了をカメラ制御部112に通知し、スリープ状態に移行する。
S327でカメラ制御部112は、レンズ制御部119からスリープ状態への移行完了の通知を受信する。
以上のような処理を通じて、カメラ101に対して一定時間操作がなされないと、レンズ制御部119をスリープ状態に移行させる。本実施形態において、カメラ制御部112はレンズ制御部119を介してアダプタ制御部121と通信する必要があるが、レンズ制御部119がスリープ状態のときにサブアクセサリが取り付けられたり交換されたりする可能性がある。動作状態が不良なサブアクセサリが装着される可能性があるため、カメラ制御部112はレンズ制御部119のスリープ状態を解除する(通常状態に復帰させる)場合に、サブアクセサリの動作状態をチェックする。この処理を、図5(b)に示すフローチャートを用いて説明する。
レンズ制御部119がスリープ状態にあるとき、S330でカメラ制御部112は、カメラ101もしくはレンズ102に対する操作を監視もしくは判定し、操作が検出されると処理をS331に進める。例えばカメラ101の操作部131に含まれるレリーズスイッチの操作や、レンズ102の鏡筒に備えられているAF/MFスイッチの切り替え操作が検出されると、カメラ制御部112は処理をS331に進める。
S331でカメラ制御部112はレンズ制御部119にスリープ状態の解除要求を送信する。レンズ制御部119は解除要求を受信すると、スリープ状態から通常状態に復帰し、スリープ解除の完了をカメラ制御部112に通知する。
レンズ制御部119からスリープ解除の完了を受信すると、カメラ制御部112はS332で、S203(図2(a))と同様にして、レンズ102およびサブアクセサリの動作状態の検出ならびに判定処理を実行する。
以上説明したように、本実施形態では、カメラ101にレンズ102が装着されたり、レンズ102(レンズ制御部119)のスリープ状態が解除されたりすると、サブアクセサリの装着有無および、レンズ102やサブアクセサリの動作状態の判定を行う。そのため、動作不良状態のレンズやサブアクセサリの存在を漏れなく、かつ直ちにユーザに知らせることが可能である。たとえば、レンズ102がスリープ状態の間に、動作状態が正常なサブアクセサリが動作状態が不良なサブアクセサリに変更された場合でも、スリープ解除とともに検出することができる。
次に、レンズ102が装着されてカメラ101が動作している際に、レンズ102にサブアクセサリが装着された場合の、カメラ制御部112とレンズ制御部119との間の通信動作について説明する。
図6は、動画撮影モードにおけるカメラ制御部112とレンズ制御部119との通信タイミングについて示した図である。
図6(a)において、401〜403はマウントIF124に含まれる信号線によって伝達される信号の例を示している。CLK401はデータをラッチするタイミングを供給するためのクロック信号線、TXD402は、カメラ制御部112からレンズ制御部119へ送信するデータ線、RXD403はレンズ制御部119からカメラ制御部112へ送信するデータ線を示している。クロック信号はタイミング生成部110が生成している。
カメラ制御部112がCLK401に8bitのクロック信号を出力した後、レンズ制御部119は404で示す期間、CLK401をLOWレベルに維持する(BUSY状態)。これにより、レンズ制御部119は、カメラ制御部112が次の通信を実行するのを待たせ、レンズ制御部119がデータを処理するための時間を確保する。クロック信号の出力とBUSY状態との繰り返しにより、カメラ制御部112とレンズ制御部119との間の多バイトの通信を実現する。
図6(b)おいて、410は動画撮影中の撮像素子108の蓄積タイミングと、レンズ通信との関係を説明するためのタイミングチャートである。
タイミング信号411(V)は、撮影周期を示し、タイミング生成部110が生成する。
電荷蓄積期間412(D)は撮像素子108を露光している期間を示す。
通信期間413は、撮影ごとに行うレンズ制御部119との通信を行う期間を示す。たとえば動画撮影中のオートフォーカス(AF)制御を行うために必要な、レンズ102の状態やフォーカスレンズ104cの位置情報などの取得を、通信期間413に行う。
AF期間414は、カメラ101で得られたAF評価値やデフォーカス量に基づいて、フォーカスレンズ104cを駆動するための通信を行い、フォーカスレンズ104cを駆動する期間である。
このように、動画撮影中は、1フレームの撮像ごとに、行う通信の内容とタイミングがスケジュールされている。そのため、上述したAF制御のための通信以外のレンズ−カメラ間の通信量が多くなると、AF制御のための通信ができずにAF性能の低下を招くおそれがある。
本実施形態において、動画撮影中にサブアクセサリの装着を検出するための動作について、図7に示すフローチャートを用いて説明する。図7(a)はカメラ制御部112の動作を、図7(b)はレンズ制御部119の動作を、それぞれ示す。
S501でカメラ制御部112は、例えばタイミング信号411によって撮影周期(通信期間413の開始時点)を検出する。
S502〜S506でカメラ制御部112およびレンズ制御部119は、S211〜S215と同様に、サブアクセサリの装着状態の問い合わせおよび応答を実施する。
S507でカメラ制御部112は、レンズ制御部119から受信した、サブアクセサリの装着状態に含まれる識別情報に基づいて、サブアクセサリが新たに装着されたか否かを判定する。つまり、カメラ制御部112は、サブアクセサリが装着されていない状態から装着された状態になったか、以前装着されていたサブアクセサリとは異なるサブアクセサリが装着されているか、のいずれかに該当するか否かを判定する。
サブアクセサリが新たに装着されたと判定される場合、カメラ制御部112は処理をS508に進め、S203と同様に動作状態検出処理を実行する。ただし、S508ではレンズ102の動作状態は取得せず、サブアクセサリ(ズームアダプタ103)についてのみ動作状態を取得する。
このように、カメラ101にレンズ102が装着されて動作している場合には、サブアクセサリが新たに装着されたか否かの検出と、新たに装着されたサブアクセサリの動作状態の取得のみを行い、カメラ101とレンズ102との間の通信帯域の消費を抑制する。そのため、例えば動画撮影時のように、短時間にAF制御用の通信がスケジュールされているような場合であっても、AF制御への影響を抑制しながら、サブアクセサリの装着および動作状態を検出することができる。そして、動作不良のサブアクセサリが装着された場合には、直ちにユーザに報知することが可能になる。
図8(a)〜(b)は、取得した動作状態(セーフモード状態の検出を含む)に基づいて、レンズ102やズームアダプタ103の動作不良状態が検出された際に、ユーザに報知するためにカメラ制御部112が表示部118に行う画面表示の例を示す。この画面表示は、S203(図2(a))、S332(図5(b))、S508(図7(a))で実行される、S235(図2(b))に相当する処理で実行される。
カメラ制御部112は、レンズ102が動作不良状態であれば図8(a)に示す画面601のような表示を行い、レンズ102のファームウェアを更新するか、別のレンズを装着するようにユーザに要求する。同様に、ズームアダプタ103が動作不良状態と判定された場合、カメラ制御部112は図8(b)に示す画面602のような表示を行う。なお、カメラ制御部112は、レンズ102とズームアダプタ103の両方が動作不良状態の場合も、図8(a)や(b)と同様の表示を行う。
図8および図9を用いて、本実施形態におけるファームウェア更新動作について説明する。図9(a)はカメラ制御部112、図9(b)はレンズ制御部119、図9(c)はアダプタ制御部121の動作をそれぞれ示すフローチャートである。
S701でカメラ制御部112は、ファームウェア更新の実行が指示されたか否かを判定する。本実施形態では、画面601,画面602のOKボタン603が操作されたり、メニュー画面からファームウェアの更新が選択された場合に、カメラ制御部112はファームウェア更新の実行が指示されたと判定する。ただし、これらに限定されない。
S702でカメラ制御部112は、装着されている記録媒体114に存在するファームウェア更新ファイルを読み出し、例えばバッファメモリ111に保存する。ファームウェア更新ファイルは、例えばファイルの識別子によって判別することができるが、他の方法を用いてもよい。なお、ここでは、ファームウェア更新ファイルが適用可能であるかどうかは考慮しない。記録媒体114にファームウェア更新ファイルが存在しない場合、カメラ制御部112は図8(c)に示す画面605を表示部118に表示し、記録媒体114にファームウェア更新ファイルを用意するようにユーザに促す。画面605のOKボタン606が操作されると、カメラ制御部112は処理をS701に戻す。
S703でカメラ制御部112は、S702で読み出したファームウェア更新ファイルから、属性情報を読み出す。本実施形態においてファームウェア更新ファイルは例えば図10に示すように、属性情報801と、ファームウェアデータ(制御プログラムデータ)810とを有する。他に、ファイルサイズやポインタといった情報を格納するファイルヘッダなどが含まれていてもよい。
属性情報801は、対象デバイス(ファームウェアを適用可能な装置)に関する情報(種別情報802、ハードウェア情報803、機種特定情報804)と、バージョン情報805を含む。なお、ファームウェアデータ810のサイズや形式など、他の情報が含まれてもよい。
種別情報802は、対象デバイスの種別(カメラ、レンズ、アクセサリ(レンズを除く)、サブアクセサリ、など)を示す。なお、レンズ以外のアクセサリとしては、例えばエクステンダやフラッシュなどがあるが、これに限定されない。
ハードウェア情報803は、対象デバイスが有するハードウェアに関する情報である。例えばCPU、モータ、アクチュエータなど、ファームウェアの制御対象となるハードウェアは、同一製品でも製造時期によって変更されることがある。ハードウェア情報803は、使用されているハードウェアによって異なるファームウェアが必要な場合に参照される。
機種特定情報804は、対象デバイスの機種を特定する情報であり、製品名、型式名、製品IDなどの1つ以上であってよい。
バージョン情報805は、ファームウェア更新ファイルに含まれるファームウェアのバージョン情報である。更新の必要があるか否かの判定や、ダウングレードを禁止するために用いることができる。
ファームウェアデータ810は、対象デバイスに適用するファームウェアのデータである。
カメラ制御部112はS703で、記録媒体114に存在するファームウェア更新ファイルのそれぞれについて、属性情報801のリストを生成する。なお、S702でファームウェア更新ファイルを読み出さずに、属性情報801だけをS703で読み出してリストを生成してもよい。これにより、バッファメモリ111の消費を抑制することができる。
S704でカメラ制御部112は、レンズ102のファームウェア更新のために必要となる詳細情報の取得要求をレンズ制御部119に送信する。詳細情報とは、レンズ102に適用可能なファームウェア更新ファイルの有無を、属性情報を用いて判定することを可能にする情報である。例えば、種別情報、ハードウェア情報、機種特定情報、現在のファームウェアバージョン情報であってよいが、これらに限定されない。
レンズ制御部119は、S705でレンズ102の詳細情報の取得要求を受信し、S706でレンズ102の詳細情報を収集し、S707でレンズ102の詳細情報をカメラ制御部112へ送信する。
S708でカメラ制御部112は、レンズの詳細情報を受信する。
S709でカメラ制御部112は、サブアクセサリの装着状態(S215で取得)に基づいて、サブアクセサリが装着されているか否かを判定し、装着されていると判定されればS710に、装着されていると判定されなければS719に、処理を進める。
S710でカメラ制御部112は、サブアクセサリのファームウェア更新に必要な詳細情報の取得要求をレンズ制御部119へ送信する。詳細情報の項目についてはレンズの詳細情報と同じでよい。
レンズ制御部119は、サブアクセサリ(ズームアダプタ103)の詳細情報の取得要求をS711でカメラ制御部112から受信し、S712でアダプタ制御部121に送信(転送)する。
アダプタ制御部121は、S713でズームアダプタ103の詳細情報の取得要求を受信し、ズームアダプタ103の詳細情報をS714で収集し、S715でレンズ制御部119へ送信する。
レンズ制御部119は、アクセサリの詳細情報をS716でアダプタ制御部121から受信し、S717でカメラ制御部112へ送信(転送)する。
S718でカメラ制御部112は、アクセサリの詳細情報を受信し、例えばバッファメモリ111に保存する。
なお、複数のサブアクセサリが装着されている場合、S710〜S718の処理を必要に応じて繰り返し実行し、個々のサブアクセサリについて詳細情報を取得する。また、レンズ以外のアクセサリ(エクステンダやフラッシュなど)が装着されている場合には、S704〜S708の処理を必要に応じて繰り返し実行し、個々のアクセサリについて詳細情報を取得する。
S719でカメラ制御部112は、カメラ101および、装着中のアクセサリおよびサブアクセサリに適用可能なファームウェア更新ファイルの有無を、詳細情報と、属性情報のリストとから判定する。カメラ制御部112は例えば、属性情報801のうち、種別情報802、ハードウェア情報803、機種特定情報804が、詳細情報に含まれる情報と合致するファームウェア更新ファイルを適用可能と判定する。ファームウェアのダウングレードを禁止する場合には、属性情報801のバージョン情報805が、装着中のレンズ102もしくはサブアクセサリのバージョン情報より新しいことを、適用可能と判定するための条件に加える。なお、カメラ101の詳細情報は、例えばメモリ部130に記憶されている。
適用可能と判定されたファームウェア更新ファイルがあれば、カメラ制御部112は、S720で、ファームウェア更新が可能なデバイスを選択するためのGUI画面(例えば図8(d)の画面604)を表示部118に表示する。画面604は、ファームウェア更新が可能なデバイスと、適用可能なファームウェアのバージョンを含んだ選択可能なリストを含んでいる。
画面604に対する選択操作が行われると、S721でカメラ制御部112は、選択されたデバイスのファームウェア更新処理を実行する。
一方、適用可能と判定されたファームウェア更新ファイルがなければ、カメラ制御部112は、S722で、適用可能なファームウェア更新ファイルが存在しないことをユーザに報知するための画面(例えば図8(c)の画面605)を表示部118に表示する。
次に、S721で実施するファームウェア更新処理について、図11および図12のフローチャートを用いて説明する。図11(a)はカメラ制御部112、図11(b)はレンズ制御部119、図12はアダプタ制御部121の動作をそれぞれ示している。なお、カメラ101のファームウェア更新は公知の方法で実行できるため、以下では、アクセサリ(レンズ102)またはサブアクセサリ(ズームアダプタ103)のファームウェアの更新動作について説明する。
S901でカメラ制御部112は、画面604で選択されたデバイスに対応するファームウェア更新ファイルを記録媒体114から読み出す。ファームウェア更新ファイルが既にバッファメモリ111に読み込まれていれば、S901の処理は不要である。
S902でカメラ制御部112は、適用するファームウェア更新ファイルの属性情報から、種別情報802(たとえば、レンズやズームアダプタ)を読み出してレンズ制御部119へ送信する。なお、同じデバイス種別に該当するアクセサリが複数装着されている場合には、種別情報802ではなく機種特定情報804を用いてもよい。
レンズ制御部119は、種別情報(または機種特定情報)をS903で受信し、S904で種別情報の内容を判別する。そして、レンズ制御部119は、種別情報(または機種特定情報)がレンズ(またはレンズ102の機種)を示す場合にはS905へ、ズームアダプタを(またはズームアダプタ103の機種)示す場合にはS907へ処理を進める。
S905でレンズ制御部119は、ズームアダプタ103に動作停止要求を送信する。これは、レンズのファームウェア更新中に、ズームアダプタ103からレンズ102へ不用意な要求を発生させないようにするためである。
S906でレンズ制御部119は、レンズ102のファームウェアを更新するための準備処理を行う。準備処理は例えばファームウェア更新によって消去させたくないデータの一時退避処理や、モータやアクチュエータの停止処理であってよいが、これらに限定されない。
S907でレンズ制御部119は、ズームアダプタ103へファームウェア更新の開始要求を送信する。
S908でアダプタ制御部121は、レンズ制御部119からのデータを受信し、データが動作停止要求(S905でレンズ制御部119が送信)か否かをS909で判定する。アダプタ制御部121は、受信データが動作停止要求と判定されればS911に、判定されなければS910に、それぞれ処理を進める。
アダプタ制御部121は、S911で、モータやアクチュエータが駆動中であれば動作停止させ、S912で、動作停止の完了をレンズ制御部119へ送信する。
一方、S910でアダプタ制御部121は、受信データがファームウェア更新の開始要求(S907でレンズ制御部119が送信)か否かを判定し、ファームウェア更新の開始要求と判定されればS913に、判定されなければS936に、それぞれ処理を進める。
S936でアダプタ制御部121は、受信したデータの内容に応じた処理を実行する。ここでは、ファームウェアの更新に関係する処理以外は便宜上S936でまとめて表記している。
S913でアダプタ制御部121はファームウェア更新の準備処理を行う。準備処理は例えばファームウェア更新によって消去させたくないデータの一時退避処理であってよいが、これらに限定されない。
S914でアダプタ制御部121は、ファームウェア更新の準備完了をレンズ制御部119へ送信する。
レンズ制御部119はアダプタ制御部121から、S915では動作停止の完了を、S916ではファームウェア更新の準備完了を受信し、処理をS917に進める。
S917でレンズ制御部119はS903で受信した種別情報に応じて、レンズもしくはズームアダプタのファームウェア更新の準備完了をカメラ制御部112に送信する。
S918でカメラ制御部112は、レンズもしくはアクセサリのファームウェア更新準備完了を受信する。
S919でカメラ制御部112は、S901で読み出したファームウェア更新ファイルからファームウェアデータを読み出し、レンズ制御部119へ送信する。
レンズ制御部119はS920でファームウェアデータを受信し、S921では、受信したファームウェアデータの対象デバイスを、S904での判定結果を参照することにより判定する。レンズ制御部119は、対象デバイスがレンズ102と判定されればS939へ、ズームアダプタ103と判定されればS923へ、処理を進める。
S939でレンズ制御部119は、メモリ部126に記憶された、ファームウェアの更新処理の状態を表すデータ(更新状態データ)を「未完了」を示す値にして、処理をS922に進める。
S922でレンズ制御部119は、レンズ102のメモリ部126に記憶されているファームウェアデータを、受信したファームウェアデータによって更新し、処理をS940に進める。
S923でレンズ制御部119は、カメラ制御部112から受信したファームウェアデータをアダプタ制御部121へ送信(転送)する。
S924でアダプタ制御部121は、レンズ制御部119からファームウェアデータを受信し、処理をS937に進める。
S937でアダプタ制御部121は、メモリ部127に記憶された、ファームウェアの更新処理の状態を表すデータ(更新状態データ)を「未完了」を示す値にして、処理をS925に進める。
S925でアダプタ制御部121は、ズームアダプタ103のメモリ部127に記憶されているファームウェアデータを、受信したファームウェアデータによって更新する。
S926でアダプタ制御部121は、ファームウェアの更新が正常に完了したか否かを判定する。例えばアダプタ制御部121は、以下の条件に該当する場合は正常に完了しなかったと判定し、いずれの条件にも該当しない場合は正常に完了したと判定することができる。
・受信したファームウェアデータに訂正不能な異常があった場合
・ファームウェアデータの受信を開始してからファームウェアの更新が終了するまでの間にレンズ制御部119との通信に異常が発生した場合
・ファームウェア更新が終了した後に実行したレンズ制御部119との通信で異常が発生した場合
なお、これらの条件は例示であり、他の条件を用いて判定してもよい。
アダプタ制御部121は、ファームウェアの更新が正常に完了したと判定されればS938に、判定されなければS928に、処理を進める。
S938でアダプタ制御部121は、メモリ部127の更新状態データを「完了」を示す値にし、処理をS927に進める。
S927でアダプタ制御部121は、ファームウェア更新結果(成功)をレンズ制御部119へ送信する。
S928でアダプタ制御部121は、ファームウェア更新結果(失敗)をレンズ制御部119へ送信する。
レンズ制御部119は、ズームアダプタ103のファームウェア更新結果(成功又は失敗)をS929でアダプタ制御部121から受信し、S930でカメラ制御部112に送信(転送)する。
S940でレンズ制御部119は、S922で実施したレンズ102のファームウェア更新が正常に完了したか否かを判定する。例えばレンズ制御部119は、以下の条件に該当する場合は正常に完了しなかったと判定し、いずれの条件にも該当しない場合は正常に完了したと判定することができる。
・受信したファームウェアデータに訂正不能な異常があった場合
・ファームウェアデータの受信を開始してからファームウェアの更新が終了するまでの間にカメラ制御部112との通信に異常が発生した場合
・ファームウェア更新が終了した後に実行したカメラ制御部112との通信で異常が発生した場合
なお、これらの条件は例示であり、他の条件を用いて判定してもよい。
レンズ制御部119は、ファームウェアの更新が正常に完了したと判定されればS941に、判定されなければS932に、処理を進める。
S941でレンズ制御部119は、メモリ部126の更新状態データを「完了」を示す値にし、処理をS931に進める。
S931でレンズ制御部119は、ファームウェア更新結果(成功)をカメラ制御部112へ送信する。
S932でレンズ制御部119は、ファームウェア更新結果(失敗)をカメラ制御部112へ送信する。
S933でカメラ制御部112は、レンズ102もしくはズームアダプタ103のうち、S902で送信した種別情報に対応するデバイス(画面604で選択されたデバイス)におけるファームウェア更新結果を受信する。
S934でカメラ制御部112は、S933で受信したファームウェア更新結果が成功であればファームウェア更新処理を終了し、失敗であれば処理をS935に進める。
S935でカメラ制御部112は、ファームウェアの更新に失敗したデバイスの種別に応じたエラー通知画面を表示部118に表示する。エラー通知画面は、例えば図8(a)および(b)に示した画面601や画面602であってよいが、他の画面であってもよい。
以上の処理により、本実施形態によれば、カメラに装着されるアクセサリだけでなく、アクセサリに装着されるサブアクセサリについてもカメラからファームウェアを更新することが可能である。
上述したように、本実施形態によれば、アクセサリに装着可能なサブアクセサリの装着有無や動作状態をアクセサリが検出して保持したり、カメラとサブアクセサリとの間の通信をアクセサリが中継するようにした。そのため、アクセサリに着脱可能なサブアクセサリの装着有無や動作状態(正常に動作しているか否か)を、アクセサリを通じてカメラが把握できるようになった。そのため、例えばファームウェアの更新に失敗して正常に動作しないサブアクセサリが装着されていることをカメラで検出することができ、正常に動作しないサブアクセサリが装着されていることによって正常な撮影動作が行えなくなることを防止できる。
また、新たなサブアクセサリの装着が検出されたり、カメラにアクセサリの装着が検出されたり、アクセサリのスリープが解除されたりした際に、サブアクセサリの動作状態を把握するように構成した。そのため、正常に動作しない(動作状態が不良な)サブアクセサリの装着を適切に検出できる。また、サブアクセサリの動作状態の把握は、カメラ−アクセサリ間の通信帯域の消費が少ないため、例えばAF制御のために行われるカメラ−アクセサリ間の通信への影響もないか、十分小さい。従って、例えば動画撮影中のように、カメラ−アクセサリ間でAF制御のための通信が頻繁に行われる場合であっても、新たにサブアクセサリが装着された際にはAF性能を低下させずに、かつ直ちにサブアクセサリの動作状態を把握することができる。
特に、アクセサリがスリープ状態にある場合、カメラとサブアクセサリとの通信ができないため、例えばサブアクセサリが交換されてもカメラはそれを把握することができない。そのため、本実施形態によれば、アクセサリのスリープ状態が解除された場合には新たにサブアクセサリが装着されたかどうか、また新たに装着されたサブアクセサリの動作は正常かどうかを検出するようにした。これにより、アクセサリがスリープ中に動作不良のサブアクセサリが装着されたとしても、撮影を開始する前に検出可能であり、動作不良のサブアクセサリに起因する撮影の失敗などを防止できる。
●(第2実施形態)
次に、本発明の第2実施形態について説明する。本実施形態は、アクセサリまたはサブアクセサリが状態不良であると判定された場合、判定結果をユーザに報知する条件、例えばタイミングを、アクセサリやサブアクセサリに応じて制御する。本実施形態に係る図面および説明において、第1実施形態と同様の構成および処理については第1実施形態と同じ参照数字を用いる。
図13は、本実施形態に係る遠隔撮影システムの構成を模式的に示した図である。遠隔撮影システムは、外部IF115を通じてカメラ101と通信可能な外部装置1300からカメラ101を遠隔操作することで、外部装置1300からの遠隔撮影を実現する。カメラ101を外部装置1300から遠隔操作するためのユーザインタフェースや、要求や応答の送受信に関する機能は、外部装置1300で稼働する遠隔撮影アプリケーションによって提供することができる。外部装置1300は例えば携帯電話機、メディアプレーヤ、タブレットデバイス、パーソナルコンピュータ、ゲーム機など、通信機能を有する電子機器であってよい。
外部装置1300は、カメラ101の外部IF115と通信可能な通信IF1308を備える。外部IF115と通信IF1308との通信に用いる媒体は、無線媒体、有線媒体のどちらでもよいが、ここでは無線媒体であるものとする。
外部装置1300は表示部1306を有し、表示部1306にEVF画面1010や遠隔撮影用のGUI1011〜1013を表示する。図13では遠隔撮影用GUIの例として、ズームボタン(W)1011、ズームボタン(T)1012、撮影指示ボタン1013を示しているが、これらに限定されない。ズームボタン(W)1011が操作されると、レンズ102の変倍レンズ104aを広角方向に移動させる、ズームアダプタ103の駆動要求が外部装置1300からカメラ101に送信される。ズームボタン(T)1012が操作されると、変倍レンズ104aを望遠方向に移動させる、ズームアダプタ103の駆動要求が外部装置1300からカメラ101に送信される。撮影指示ボタン1013が操作されると、静止画撮影要求が外部装置1300からカメラ101に送信される。
<外部装置の構成>
図14を参照して、図13の外部装置1300の構成例について説明する。制御部1301は、例えば1つ以上のプログラマブルプロセッサ(以下、便宜上MPUと呼ぶ)を有する。不揮発性メモリ1303に記憶されたプログラムを読み込んで制御部1301のMPUで実行することにより、カメラ101との通信を始め、外部装置1300の各種機能を実現する。不揮発性メモリ1303は、制御部1301が実行するプログラム(OSおよびアプリケーション)、各種設定値、GUIデータなどを記憶する。なお、制御部1301が装置全体を制御する代わりに、複数のハードウェアが分担して外部装置1300の全体を制御してもよい。
なお、遠隔制御システムに関する外部装置1300の動作は、遠隔撮影アプリケーションとして不揮発性メモリ1303に記憶されたプログラムを制御部1301で実行することによって実現される。カメラ通信アプリケーションは、遠隔撮影システムに関するコマンドの送受信、解釈および実行、遠隔撮影システムに係るGUIの表示や、GUI操作に応じた処理の実行などを実現する。なお、カメラ通信アプリケーションは外部装置1300で稼働するOSが提供する機能を利用するプログラムを有する。なお、外部装置1300で稼働するOSが本実施形態における外部装置1300の動作を実現するためのプログラムを含んでいてもよい。
撮像部1302はカメラモジュールであり、撮影光学系および撮像素子を備え、制御部1301の指示に基づく撮影によって得られた画像データを制御部1301に出力する。制御部1301は、画像データに一般的なデジタルカメラと同様の処理を適用し、作業用メモリ1304に一時的に保存する。その後、画像データは予め定められた記録形式に応じた画像ファイルに格納されて記録媒体1307に記録される。
作業用メモリ1304は、撮像部1302で生成された画像データを一時的に保存するバッファメモリとして、また、表示部1306の表示用メモリ(ビデオメモリ)として、さらには制御部1301の作業領域などとして使用される。
操作部1305は、外部装置1300に対してユーザが指示を入力するための入力デバイス群である。操作部1305には例えば、電源スイッチ、撮像部1302のシャッターボタン、表示部1306に形成されるタッチパネルなどが含まれる。
表示部1306は、撮像部1302で得られた画像データや、対話的な操作のためのユーザインタフェース、テキストメッセージ、通話に関する情報などの表示に用いられる。なお、表示部1306は必ずしも外部装置1300が内蔵する必要はない。外部装置1300は表示部1306と接続可能で、表示部1306の表示制御機能を有していればよい。
記録媒体1307は、例えばメモリカードのような不揮発性の記憶媒体であり、撮像部1302で得られた画像データを始め、外部装置1300で受信したデータやアドレス帳などを記録することができる。記録媒体1307は、外部装置1300に着脱可能な構成であってもよいし、外部装置1300に内蔵されていてもよい。すなわち、外部装置1300は少なくとも記録媒体1307にアクセス可能であればよい。
通信IF1308は、カメラ101の外部IF115と無線通信を行うためのインタフェースである。制御部1301は、通信IF1308を制御することでカメラ101との無線通信を実現する。マイク1309およびスピーカ1310は、音声信号の入力と出力を行う。接続部1311は、外部装置と接続するためのインターフェースである。
電源制御部1312は、電源部1313の装着状態、種類、残量、充放電回数、電圧などを検出する。また、電源制御部1312は、検出結果及び制御部1301の指示に基づいて、必要な電圧を必要な期間、各部へ供給する。電源部1313は、アルカリ電池やリチウム電池等の一次電池やNiCd電池やNiMH電池、Li電池等の二次電池、ACアダプタ等からなる。
次に、図15〜図17を参照して、本実施形態による、アクセサリもしくはサブアクセサリの動作不良状態を検出した際のレンズ102もしくはアクセサリの動作不良状態を検出した時の表示制御動作について説明する。なお、図15はカメラ制御部112、図16(a)はレンズ制御部119、図16(b)はアダプタ制御部121の動作を示している。
図15〜図16において、S201〜S234は第1実施形態と同様の処理であるため、説明を省略する。
カメラ制御部112は、S215(図15(b))で、サブアクセサリの装着状態を受信すると、処理をS1101に進める。
S1101でカメラ制御部112は、装着中のサブアクセサリごとに、エラーもしくは動作不良と判定された際に、判定結果を報知するための条件についての問い合わせをレンズ制御部119へ送信する。ここでは、報知を表示によって行うこと、条件をカメラ101の動作タイミングで規定することから、報知条件をエラー表示タイミングとよぶ。なお、報知の方法は表示に限定されない。また、条件を他の方法で規定してもよい。
レンズ制御部119は、S1102で受信したエラー表示タイミングの問い合わせを、対応するサブアクセサリにS1103で送信(転送)する。
S1104でアダプタ制御部121は、エラー表示タイミングの問い合わせをレンズ制御部119から受信する。
S1105でアダプタ制御部121は、エラー表示タイミング情報を例えばメモリ部127から読み出してレンズ制御部119へ送信する。
レンズ制御部119は、エラー表示タイミング情報をS1106でアダプタ制御部121から受信し、S1107でカメラ制御部112へ送信(転送)する。
S1108でカメラ制御部112は、サブアクセサリのエラー表示タイミング情報を受信する。
カメラ制御部112は、S1101における問い合わせを、装着中のサブアクセサリの各々について実行する。また、カメラ制御部112は、レンズやレンズ以外のアクセサリについても同様にしてエラー表示タイミング情報を取得する。そして、アクセサリおよびサブアクセサリから受信したエラー表示タイミング情報に基づいて、例えば図17に示すようなエラー表示タイミングテーブル1200を生成して、例えばバッファメモリ111またはメモリ部130に記憶する。
なお、ここではエラー表示タイミングをアクセサリやサブアクセサリに問い合わせる構成を説明したが、装着中のアクセサリおよびサブアクセサリの種別や識別情報に応じたエラー表示タイミングをカメラ制御部112が決定してもよい。アクセサリおよびサブアクセサリの種別や識別情報に応じたエラー表示タイミング情報を予め、例えばメモリ部130に記憶しておくことができる。
エラー表示タイミングテーブル1200は、装着中のアクセサリおよびサブアクセサリの識別情報1201と、対応するエラー表示タイミング1202とが関連付けられたテーブルである。
1203〜1208は、アクセサリまたはサブアクセサリごとのエラー表示タイミングの具体例を示している。例えばズームアダプタの動作不良状態が検出された場合、カメラ制御部112からレンズ102に対して(ズームアダプタに対する)ズーム駆動要求の送信時、あるいはズーム駆動要求を送信するような入力がなされた際にエラー表示することが指定されている。
その後、装着中のレンズ、アクセサリ、サブアクセサリのうち、S234で動作不良状態であると判定されたものがあれば、カメラ制御部112はS1109で、動作不良状態と判定されたものの識別情報を例えばバッファメモリ111に記憶する。
S1110でカメラ制御部112は、エラー表示タイミングが「即時表示」のデバイス(ここではレンズ102)が動作不良状態と判定されていればS1111に、動作不良状態と判定されていなければS1112に処理を進める。
S1111でカメラ制御部112は、表示部118にエラー状態を表示する。
S1112でカメラ制御部112は、現在の動作状態が、動作不良状態と判定され、かつエラー表示タイミングが「即時表示」でないデバイスについてのエラー表示タイミングに合致するか否かを判定する。カメラ制御部112は、合致すると判定されればS1111に、合致すると判定されなければS1113に処理を進める。
S1113でカメラ制御部112は、現在のカメラ動作を継続し、終了したら、あるいは定期的にS1112に処理を戻す。
次に、ズームアダプタ103が動作不良状態と判定されている場合に、外部装置1300からズーム駆動要求を受信した場合のカメラ制御部112のエラー表示動作について、図18を用いて説明する。
例えば撮影スタンバイ状態や動画撮影中など、カメラ101が動作中の状態において、カメラ制御部112は、外部IF115を通じて外部装置1300から要求を受信したか監視している(S1121)。
要求を受信した場合(S1121,Yes)、カメラ制御部112は、現在、動作不良状態と判定されているデバイスがあるかどうか確認し、あればS1123へ、なければS1125へ処理を進める。ここでは、ズームアダプタ103が動作不良状態と判定されているため、カメラ制御部112は処理をS1123へ進める。本実施形態ではズームアダプタ103のエラー表示タイミングは即時表示ではないため、動作不良状態と判定された時点ではエラー表示がなされていない。
S1123でカメラ制御部112は、外部装置1300から受信した要求の実行が、動作不良状態と判定されているデバイスに対応するエラー表示タイミングに合致するか否かを、S1108で作成したエラー表示タイミングテーブル1200を参照して判定する。本実施形態では、図17に示すように、ズームアダプタ103のエラー表示タイミングはズーム駆動時である。従って、外部装置1300から受信した要求が、ズームアダプタの駆動要求であれば、カメラ制御部112は処理をS1124に進めてエラー状態を表示部118に表示し、他の要求であればS1125に処理を進める。
S1125でカメラ制御部112は、受信した要求を実行する。
本実施形態によれば、動作不良と判定されたことをユーザに報知する条件を、アクセサリ(サブアクセサリを含む)ごとに設定できるようにした。そのため、動作不良であることが問題とならない状況では報知せず、問題となる状況になった時点で報知するといった制御が可能になるという効果が実現できる。
以上、本発明の例示的な実施形態について説明したが、本発明は実施形態で説明した具体的な構成に限定されず、特許請求の範囲に規定される範囲に含まれるさまざまな変形物や変更物もまた本発明に含まれる。
(その他の実施形態)
第2実施形態では、ズームアダプタ103が動作不良と判定されている場合、外部装置1300からズーム駆動要求が受信されるとエラー表示を行う構成であった。しかしながら、ズームアダプタ103が動作不良と判定された場合、カメラ101から外部装置1300に通知し、制御部1301がズーム駆動用のGUI操作を無効として、外部装置1300からズーム駆動要求を送信できないように構成してもよい。この場合、外部装置1300において、ズーム操作用のGUIをグレイアウト表示したり、ズームアダプタの動作不良を報知するメッセージなどを表示してもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。