以下、本発明の実施例について、図面を参照しながら詳細に説明する。各実施例において、アクセサリは、交換レンズ(レンズ装置)または中間アクセサリであるが、これらに限定されるものではない。
まず、図1を参照して、本発明の実施例1におけるカメラシステム(撮像システム)について説明する。図1は、カメラシステム1のブロック図である。カメラシステム1は、交換レンズ(レンズ装置)10、カメラ本体(撮像装置)20、および、中間アクセサリ30、40を備えて構成される。交換レンズ10は、中間アクセサリ30、40を介して、または直接、カメラ本体20に着脱可能に取り付けられる。
カメラシステム1は、カメラ本体20から交換レンズ10への制御命令伝達のため、並びに、交換レンズ10からカメラ本体20への操作情報および光学情報伝達のための通信経路である第一通信経路を有する。またカメラシステム1は、カメラ本体20と複数の中間アクセサリ30、40との操作情報および光学情報伝達のための通信経路である第二通信経路を有する。以後、第一通信経路により行う通信を第一通信、第二通信経路により行う通信を第二通信とも称する。さらに、第三通信として、交換レンズ10がカメラ本体20へ情報を送信する一方向通信を設けてもよい。第一通信は、後述のようにCLKまたはRTSに対応するタイミングで通信を行うが、第三通信はそれに制約されず、例えば第一通信によって指定された周期でデータを送信する。例えば、一定の周期でレンズのステータス情報を送信するようにすることで第一通信を開放でき、より細かい操作情報の送信が可能となる。
第一通信経路は、カメラ側第一通信部207とレンズ側第一通信部114との間で相互に行う通信を、後述の第一通信接点群202、305、303、405、403、102を介して行う経路である。なお、カメラ側第一通信部207とレンズ側第一通信部114はそれぞれ、通信制御手段(第一通信手段)の一例である。このように、あるユニットが当該ユニットとは異なる1つのユニットとの間で行う通信を、本実施例では一対一の通信とも称する。
第二通信経路は、カメラ側第二通信部208が各アクセサリの通信部と通信する経路である。その際、カメラ側第二通信部208から第二通信接点群203、306を介して行われるとともに、第二通信接点群304、406、404、103の少なくとも一部を介して、通信が実施される。カメラ側第二通信部208は、第二通信経路により、例えば、レンズ側第二通信部115、中間アクセサリ側第二通信部308、408との間で通信を行う。なお、カメラ側第二通信部208、レンズ側第二通信部115、中間アクセサリ側第二通信部308、および中間アクセサリ側の408はそれぞれ、通信制御手段(第二通信手段)の一例である。このように、あるユニットが当該ユニットとは異なる複数のユニットとの間で行う通信を、本実施例では一対多の通信とも称する。
図1において、交換レンズ10は、撮影に関する可動光学部材を制御するレンズ装置である。カメラ本体20は、映像を撮影するカメラ本体である。中間アクセサリ30、40は、交換レンズ10とカメラ本体20との間に装着されたエクステンダー等の中間アクセサリである。
交換レンズ10、中間アクセサリ40、中間アクセサリ30、およびカメラ本体20は、マウント101と401、402と301、および、302と201がそれぞれ取り外し可能に取り付けられる。マウント101は交換レンズ10に設けられ、マウント401、402は中間アクセサリ40に設けられ、マウント301、302は中間アクセサリ30に設けられ、マウント201はカメラ本体20に設けられている。
マウント101、401、402、301、302、201にはそれぞれ、第一通信を行うための1つ以上の接点を持つ接点端子群である第一通信接点群102、403、405、303、305、202が設けられている。ここで、第一通信接点群102、403、405、303、305、202は、交換レンズ10、中間アクセサリ30、中間アクセサリ40、カメラ本体20が接続されたときに導通する構成となっている。本実施例において、第一通信は、交換レンズ10の光学部材をカメラ本体20が制御するためにも用いられる。
更に、マウント101、401、402、301、302、201にはそれぞれ、第二通信を行うための1つ以上の接点を持つ接点端子群である第二通信接点群103、404、406、304、306、203が設けられている。ここで、第二通信接点群103、404、406、304、306、203は、交換レンズ10、中間アクセサリ30、中間アクセサリ40、カメラ本体20が接続されたときに導通する構成となっている。本実施例において、第二通信は、カメラ本体20が中間アクセサリ30、中間アクセサリ40と、交換レンズ10とに対して一対多の通信を行うことが可能であるように構成されている。
このように、カメラ本体20と交換レンズ10の一対一の通信である第一通信と、カメラ本体20と複数のアクセサリ30、40との一対多の通信を行う第二通信とのそれぞれに対応して、異なる第一通信経路と第二通信経路が設けられている。これにより、同一の通信経路を用いて通信を行う場合と比較して、例えば第一通信ではより意図したタイミングで交換レンズ10に交換レンズ制御命令を伝達することができる。交換レンズ制御命令をカメラ本体20が意図したタイミングで直ぐに交換レンズ10に伝達できるため、交換レンズ10に実装された複数の光学部材を高速かつ高精度で制御することができる。
交換レンズ10は、フォーカスレンズ104、ズームレンズ105、アイリス106、ぶれ補正レンズ107と、各光学部材を制御する制御部(108~111)、およびレンズ全体を制御するレンズマイコン(レンズ制御部、制御手段)113を備える。フォーカスレンズ104、ズームレンズ105、アイリス106、および、ぶれ補正レンズ107により光学系(撮像光学系)が構成される。また交換レンズ10は、第一通信を行うレンズ側第一通信部114、第二通信を行うレンズ側第二通信部115、ぶれ量を検出するぶれ量検出部112、交換レンズに設けられた操作部材であるレンズ操作部材116を備える。各構成について説明をする。
フォーカスレンズ104は、撮影映像のピント状態を変化させるためのものである。ズームレンズ105は、撮影映像のズームを行うためのものである。アイリス(絞り)106は、撮影映像の光量調整を行うためのものである。ぶれ補正レンズ107は、被写体像の像ぶれを補正するためのぶれ補正レンズである。
フォーカスレンズ制御部108は、フォーカスレンズ104の位置検出および駆動制御を行う。ズームレンズ制御部109は、ズームレンズ105の位置検出および駆動制御を行う。アイリス制御部110は、アイリス106の位置検出および駆動制御を行う。ぶれ補正制御部111は、ぶれ補正レンズ107の位置検出および駆動制御を行うためのぶれ補正制御部である。フォーカスレンズ制御部108、ズームレンズ制御部109、アイリス制御部110、ぶれ補正制御部111は、それぞれ例えば絶対値エンコーダ等の位置センサと、超音波モータやステッピングモータ等の駆動モータにより構成される。ぶれ量検出部112は、交換レンズ10の振動量を検出するためのものであり、例えばジャイロセンサで構成される。
レンズマイコン113は、レンズを制御するためのものであり、不図示のメモリを有している。レンズマイコン113は、通信制御部の一例である。レンズ側第一通信部114は、交換レンズ10にて第一通信を行うためのものである。レンズ側第二通信部115は、交換レンズ10にて第二通信を行うためのものである。
レンズマイコン113が備えるメモリは、書き換え可能な不揮発メモリで構成され、CPUが実行する制御ソフトウエア(ファームウエア)、交換レンズ10に関する固有情報や状態情報を記憶する。固有情報は、例えば機種名(識別情報)、光学特性、補正情報などである。状態情報は、例えば動作状態(正常/セーフモード)、ズームレンズ105の位置情報(または倍率)、フォーカスレンズ104の位置情報、アイリス106のF値、ぶれ補正レンズ107の位置情報、ファームウエアのバージョンや更新状態などである。ただし本実施例は、これらに限定されるものではない。また、メモリには、後述するセーフモードで交換レンズ10を動作させる際に実行するプログラムも記憶されている。
レンズマイコン113は、CPUなどのプログラマブルプロセッサを有し、メモリからプログラムを読みだして実行することにより、後述する交換レンズ10の動作などの各種の動作を実現する。例えばレンズマイコン113は、後述する第一通信でカメラマイコン205から受信した命令に応じた動作を実行する。命令に応じた動作とは、例えばフォーカスレンズ制御部108、ズームレンズ制御部109、アイリス制御部110、ぶれ補正制御部111の制御や、メモリに記憶されたファームウエアの更新を実行する。
レンズマイコン113は、メモリに記憶されている古いファームウエアを、例えばカメラ本体20から第一通信で受信した新しいファームウエアで上書きすることによってファームウエアを更新する。また、レンズマイコン113は、ファームウエアの更新処理の状態を表すデータ(更新状態データ)をメモリに記録することで、更新処理を管理する。例えばレンズマイコン113はファームウエアの上書きを行う前に、更新状態データを「未完了」を示す値にし、ファームウエアの上書きが完了すると更新状態データを「完了」を示す値にする。なお、「完了」を示す値は「正常完了」を示す値と「異常完了」を示す値とで異なっていてもよい。また「異常完了」を示す値は、異常の原因に応じて異なる値であってよい。
例えば、ファームウエアの更新中に交換レンズ10が外された場合、交換レンズ10への電源供給が絶たれるため、更新状態データが「未完了」を示す値のまま更新処理が中断される。例えばレンズマイコン113は、電源が再び供給された際に更新状態データを確認し、未完了状態を示す値であった場合には、ファームウエアの更新が中断された状態であるため、動作が制限されたモード(セーフモード)に移行する。また、メモリが記憶している交換レンズ10の動作状態を、セーフモードに書き換える。セーフモードでは、ファームウエアの更新を行うために必要な処理を含む、制限された機能だけが実行可能である。ファームウエアの更新を行うために必要な処理とは、具体的には、交換レンズ10の識別情報と動作状態情報(あるいはファームウェア更新の要求)をカメラ本体20に送信する処理である。また、カメラ本体20から受信したファームウエアでメモリに記録しているファームウエアを更新する処理も、ファームウエアの更新を行うために必要な処理である。なお、それ以外の処理、例えばフォーカスレンズ制御部108の制御などを行うことはできない。
通常、メモリの容量はファームウエア全体を二重化して記憶できるほど大きくない。そのため、セーフモード用のプログラム記憶に利用できる容量は制限される。したがってセーフモードでは、交換レンズ10の動作状態の送信やファームウエアの更新といった必要最低限の機能を含む、限られた機能だけが提供される。レンズマイコン113は、セーフモード中に第一通信で、セーフモードでは実行できない処理の要求、例えばフォーカスレンズ104の駆動要求などを受信した場合、要求を無視する。レンズ操作部材116は、交換レンズ10に備え付けられた操作部材であり、例えばスイッチ又は電子リングである。レンズ操作部材116が操作されると、操作信号がレンズマイコン113へ出力される。
次に、カメラ本体20の構成の説明をする。カメラ本体20は、撮像素子204、カメラ本体を制御するカメラマイコン(カメラ制御部)205、カメラ本体20が撮影した映像などを表示する映像表示部206、カメラ本体20に設けられた操作部材であるカメラ操作部材209を備える。さらに、カメラ本体20は、第一通信及び第二通信を制御するカメラ側第一通信部207、カメラ側第二通信部208を備える。各構成について説明をする。
撮像素子204は、CMOSセンサやCCDセンサであり、交換レンズ(撮像光学系)10を介して形成された光学像(被写体像)を光電変換する光電変換素子である。カメラマイコン205は、カメラ本体20を制御するためのものであり、不図示のメモリを有する。カメラマイコン205は、通信制御部の一例である。またカメラマイコン205は、算出手段205a、設定手段205b、および、判定手段205cを有する。算出手段205aは、デフォーカス量を算出する。設定手段205bは、オートフォーカスにおけるフォーカスレンズ104の合焦可能範囲(フォーカスリミット範囲)を設定する。判定手段205cは、算出手段205aにより算出されたデフォーカス量が合焦可能範囲にある被写体であるか否かを判定する。
カメラ側第一通信部207は、カメラ本体20にて第一通信を行うためのものである。カメラ側第二通信部208は、カメラ本体20にて第二通信を行うためのものである。カメラマイコン205、カメラ側第一通信部207、カメラ側第二通信部208は例えばカメラ本体20内のCPUを用いて構成されている。
映像表示部206は、例えば液晶モニタであり、カメラ本体20が撮影した映像や、記録媒体211に記録された画像データ、GUIなどの表示に用いられる。このとき映像表示部206は、交換レンズ10もしくは中間アクセサリ30、40のファームウエア更新をユーザが指示するためのメニュー表示にも用いられる。また、カメラマイコン205は、装着されている交換レンズ10や中間アクセサリ30、40がセーフモードであることを検知すると、ファームウエアの更新が必要であることをメッセージ表示などによってユーザに報知することができる。
カメラ操作部材209は、撮影条件を設定するためのものであり、例えばダイアルリングやスイッチである。カメラ操作部材209が操作されると、操作信号がカメラマイコン205へ出力される。
メディアIF210は、例えば着脱可能なメモリーカードである記録媒体211に対してデータの記録や読み出しを行うためのインターフェースである。記録媒体211は、カメラ本体20での撮影によって得られた画像データや音声データの記録先として用いられる。また、記録媒体211は、カメラ本体20、交換レンズ10、中間アクセサリ30、40のファームウエア更新時には新しいファームウエアの供給元としても用いられる。
中間アクセサリ30、40はそれぞれ、中間アクセサリ光学部材307、407と、第二通信を行う中間アクセサリ側第二通信部308、408と、中間アクセサリの制御を行うアダプタマイコン(中間アクセサリ制御部)309、409を備える。また中間アクセサリ30、40はそれぞれ、中間アクセサリ30、40に設けられた操作部材である中間アクセサリ操作部材310、410を備える。各構成について説明をする。
本実施例の中間アクセサリ光学部材307、407は一例として、撮影映像に対して光学特性の変化をもたらす光学部材であり、例えば変倍レンズやNDフィルタである。中間アクセサリ側第二通信部308、408はそれぞれ、中間アクセサリ30、40にて第二通信を行うための通信部である。アダプタマイコン309、409はそれぞれ、中間アクセサリ30、40を制御するための制御部であり、不図示のメモリを有している。アダプタマイコン309、409は、各々が通信制御部の一例である。アダプタマイコン309、409、中間アクセサリ側第二通信部308、408は、中間アクセサリのCPUを用いて構成されている。
アダプタマイコン309、409が有するメモリは、書き換え可能な不揮発メモリで構成され、CPUが実行する制御ソフトウエア(ファームウエア)、中間アクセサリ30、40に関する固有情報や状態情報を記憶する。固有情報は例えば機種名(識別情報)、光学特性、補正情報などである。状態情報は、例えば動作状態(正常/セーフモード)、中間アクセサリ操作部材310、410の操作情報(位置や速度)、ファームウエアのバージョンや更新状態などである。ただし本実施例は、これらに限定されるものではない。また、メモリには、後述するセーフモードで中間アクセサリ30、40を動作させる際に実行するプログラムも記憶されている。
また、アダプタマイコン309、409は、CPUなどのプログラマブルプロセッサを有し、メモリからプログラムを読み出して実行することにより、後述する中間アクセサリ30、40の動作などの各種の動作を実現する。例えばアダプタマイコン309、409は、後述する第二通信でカメラマイコン205から受信した命令に応じた動作、例えば中間アクセサリ操作部材310、410の操作情報の送信、メモリに記憶されたファームウエアの更新を実行する。
アダプタマイコン309、409は、メモリに記憶されている古いファームウエアを、例えばカメラ本体20から第一通信で受信した新しいファームウエアで上書きすることによってファームウエアを更新する。また、アダプタマイコン309、409は、ファームウエアの更新処理の状態を表すデータ(更新状態データ)をメモリに記録することで、更新処理を管理する。例えばアダプタマイコン309、409はファームウエアの上書きを行う前に、更新状態データを「未完了」を示す値にし、ファームウエアの上書きが完了すると更新状態データを「完了」を示す値にする。なお、「完了」を示す値は「正常完了」を示す値と「異常完了」を示す値とで異なっていてもよい。また「異常完了」を示す値は、異常の原因に応じて異なる値であってよい。
例えば、ファームウエアの更新中に中間アクセサリ30、40が外された場合、中間アクセサリ30、40への電源供給が絶たれるため、更新状態データが「未完了」を示す値のまま更新処理が中断される。例えばアダプタマイコン309、409は、電源が再び供給された際に更新状態データを確認し、未完了状態を示す値であった場合には、動作が制限されたモード(セーフモード)に移行する。また、メモリが記憶している中間アクセサリ30、40の動作状態を、セーフモードに書き換える。
セーフモードでは、ファームウエアの更新を行うために必要な処理を含む、制限された機能だけが実行可能である。ファームウエアの更新を行うために必要な処理とは、具体的には、中間アクセサリ30、40の識別情報とセーフモードであることを示す情報(あるいはファームウェア更新の要求)などの認証情報をカメラ本体20に送信する処理である。また、カメラ本体20から受信したファームウエアでメモリに記録されているファームウエアを更新する処理もファームウエアの更新を行うために必要な処理である。それ以外の処理、例えば中間アクセサリ操作部材310、410の操作情報の送信などを行うことはできない。
通常、メモリの容量はファームウエア全体を二重化して記憶できるほど大きくない。そのため、セーフモード用のプログラム記憶に利用できる容量は制限される。したがってセーフモードでは、中間アクセサリ30、40の動作状態の送信やファームウエアの更新といった必要最低限の機能を含む、限られた機能だけが提供される。アダプタマイコン309、409は、セーフモード中に第二通信で、セーフモードでは実行できない処理の要求、例えば中間アクセサリ操作部材310、410の操作情報の送信受信した場合、要求を無視する。
中間アクセサリ操作部材310、410はそれぞれ、中間アクセサリ30、40に備え付けられた操作部材であり、例えばスイッチまたは電子リングである。中間アクセサリ操作部材310、410が操作されると、操作信号がアダプタマイコン309、409へ出力される。
第二通信接続スイッチ311、411はそれぞれ、中間アクセサリ30、40の第二通信線上、かつ、中間アクセサリ側第二通信部よりレンズ側に備え付けられたスイッチである。第二通信接続スイッチ311、411はそれぞれ、アダプタマイコン309、409により短絡・開放を制御できる。これらを設けることにより、自身よりレンズ側の第二通信を遮断することが可能となる。つまり、これらのスイッチの短絡・解放を制御することで、第二通信の通信状態を変更することが可能である。
本実施例において、交換レンズ10に入射した光が、映像として出力されるまでの流れは以下の通りである。交換レンズ10に入射した光は、フォーカスレンズ104、ズームレンズ105、アイリス106、ぶれ補正レンズ107、中間アクセサリ光学部材407、307を通り撮像素子204で結像し、電気信号に変換される。撮像素子204から出力された電気信号は、カメラマイコン205にて映像信号に変化され、映像表示部206に出力される。また、入射した光は、デフォーカス量の検出にも用いられる。デフォーカス量の検出には、位相差検出方式やコントラスト検出方式などがあるが、本実施例はデフォーカス量の検出方式に限定されるものではない。位相差検出方式を用いる場合には、撮像素子に位相差検出用の画素を設けてもよいし、位相差検出用のユニットへ入射させて、そのユニットによりデフォーカス量を検出してもよい。
次に、第一通信について説明する。図2(A)は、第一通信を行う構成を示している。本実施例の第一通信はクロック同期通信を行う場合を例示するが、調歩同期式通信を行っても良い。調歩同期式通信については変形例として後述する。第一通信接点群102、403、405、303、305、202にはそれぞれ、カメラ側第一通信部207から出力されるクロックラインLCLKの端子である第一通信LCLK端子102a、403a、405a、303a、305a、202aが含まれている。本実施例ではまた、同様にクロック同期通信のカメラ側第一通信部207から出力されるデータラインDCLの端子である第一通信DCL端子102b、403b、405b、303b、305b、202bが含まれている。なお、第一通信DCL端子102b、403b、405b、303b、305b、202bの各々が、第一通信端子の一例である。また、同様にクロック同期通信のレンズ側第一通信部114から出力されるデータラインDLCの端子である第一通信DLC端子102c、403c、405c、303c、305c、202cが含まれている。ばお、第一通信DLC端子102c、403c、405c、303c、305c、202cの各々が、第三通信端子の一例である。
図2(A)に示されるように、クロックラインLCLK、データラインDCLは、交換レンズ10内でプルアップされている。またクロックラインLCLK、データラインDLCは、カメラ本体20内でプルアップされている。中間アクセサリ30、40内のクロックラインLCLK、データラインDCL、データラインDLCはそれぞれ第一通信接点403と405および303と305の間で短絡されている。
次に、図2(B)を参照して、カメラ本体20と交換レンズ10との間で構成される通信回路とこれらの間で行われる通信制御である第一通信について説明する。なお図2(B)では、中間アクセサリを省略している。カメラマイコン205は、レンズマイコン113との間での通信フォーマットを管理する機能と、レンズマイコン113に対して送信要求等の通知を行う機能とを有する。またレンズマイコン113は、レンズデータを生成する機能と該レンズデータを送信する機能とを有する。
本実施例では、カメラマイコン205とレンズマイコン113は、3つのチャネルを用いた3線式の通信方式A及び通信方式Bによるシリアル通信を行う。上記3つのチャネルのうちの1つは、通信方式Aではクロックチャネルとなり、通信方式Bでは送信要求チャネルとなる通知チャネルである。他の2つのチャネルのうち1つは、レンズマイコン113からカメラマイコン205へのレンズデータ送信に用いられる第一データ通信チャネルである。他の1つのチャネルは、カメラマイコン205からレンズマイコン113へのカメラデータ送信に用いられる第二データ通信チャネルである。第一データ通信チャネルでレンズマイコン113からカメラマイコン205に信号として送信されるレンズデータを、レンズデータ信号DLCという。また、第二データ通信チャネルでカメラマイコン205からレンズマイコン113に信号として送信されるカメラデータを、カメラデータ信号DCLという。
まず、通信方式Aでの通信について説明する。通信方式Aでは、通信マスタとしてのカメラマイコン205から通信スレーブとしてのレンズマイコン113にクロック信号LCLKがクロックチャネルを介して出力される。カメラデータ信号DCLは、カメラマイコン205からレンズマイコン113への制御コマンドや送信要求コマンド等を含む。一方、レンズデータ信号DLCは、クロック信号LCLKに同期してレンズマイコン113からカメラマイコン205に送信される様々なデータを含む。カメラマイコン205とレンズマイコン113は、共通のクロック信号LCLKに同期して相互かつ同時に送受信を行う全二重通信方式(フルデュープレックス方式)で通信可能である。
図3(A)、(B)は、カメラマイコン205とレンズマイコン113との間でやり取りされる信号の波形を示している。このやり取りの手順を取り決めたものを通信プロトコルと呼ぶ。
図3(A)は、最小通信単位である1フレームの信号波形を示している。まず、カメラマイコン205は、8周期のクロックパルスを1組とするクロック信号LCLKを出力するとともに、クロック信号LCLKに同期してレンズマイコン113に対してカメラデータ信号DCLを送信する。これと同時に、カメラマイコン205は、クロック信号LCLKに同期してレンズマイコン113から出力されたレンズデータ信号DLCを受信する。
このようにして、レンズマイコン113とカメラマイコン205との間で1組のクロック信号LCLKに同期して1バイト(8ビット)のデータが送受信される。この1バイトのデータ送受信の期間をデータフレームと呼ぶ。この1バイトのデータの送受信後に、レンズマイコン113がカメラマイコン205に対して通信待機要求BUSYを通知する信号(以下、BUSY信号という)を送信し、これにより通信待機期間が挿入される。この通信待機期間をBUSYフレームと呼び、BUSYフレームを受信している間、カメラマイコン205は通信待機状態となる。そして、データフレーム期間とBUSYフレーム期間とを1組とする通信単位が1フレームとなる。なお、通信状況により、BUSYフレームが付加されない場合もあるが、この場合はデータフレーム期間のみで1フレームが構成される。
図3(B)は、カメラマイコン205がレンズマイコン113に要求コマンドCMD1を送信し、これに対応する2バイトのレンズデータDT1(DT1a、DT1b)をレンズマイコン113から受信するときの信号波形を示している。図3(B)では、「通信CMD1」に応じてデータ通信が実行される例を示している。
カメラマイコン205とレンズマイコン113との間では、予め複数種類のコマンドCMDのそれぞれに対応するレンズデータDTの種類とバイト数が決められている。通信マスタであるカメラマイコン205が、特定のコマンドCMDをレンズマイコン113に送信すると、レンズマイコン113は該コマンドCMDに対応するレンズデータバイト数の情報に基づいて必要なクロック数をカメラマイコン205に送信する。また、コマンドCMD1に対するレンズマイコン113の処理には、各フレームのクロック信号LCLKにBUSY信号を重畳することが含まれており、データフレーム間には上述したBUSYフレームが挿入される。
通信CMD1では、カメラマイコン205はクロック信号LCLKをレンズマイコン113に送信し、さらにレンズデータDT1の送信を要求する要求コマンドCMD1をカメラデータ信号DCLとしてレンズマイコン113に送信する。このフレームでのレンズデータ信号DLCは無効データとして扱われる。
続いて、カメラマイコン205は、クロックチャネルでクロック信号LCLKを8周期だけ出力した後にカメラマイコン側(カメラ本体側)のクロックチャネルを出力設定から入力設定に切り替える。レンズマイコン113は、カメラマイコン側のクロックチャネルの切り替えが完了すると、レンズマイコン113側(交換レンズ側)のクロックチャネルを入力設定から出力設定に切り替える。そして、レンズマイコン113は、通信待機要求BUSYをカメラマイコン205に通知するために、クロックチャネルの電圧レベルをLowにする。これにより、クロックチャネルにBUSY信号を重畳する。カメラマイコン205は、通信待機要求BUSYが通知されている期間はクロックチャネルの入力設定を維持し、レンズマイコン113への通信を停止する。
レンズマイコン113は、通信待機要求BUSYの通知期間中に送信要求コマンドCMD1に対応するレンズデータDT1を生成する。そして、レンズデータDT1を次のフレームのレンズデータ信号DLCとして送信する準備が完了すると、レンズマイコン側のクロックチャネルの信号レベルをHighに切り替え、通信待機要求BUSYを解除する。
カメラマイコン205は、通信待機要求BUSYの解除を認識すると、1フレームのクロック信号LCLKをレンズマイコン113に送信することでレンズマイコン113からレンズデータDT1aを受信する。次のフレームでカメラマイコン205がクロック信号LCLKを再び8周期だけ出力したカメラマイコン205とレンズマイコン113が上記と同様の動作を繰り返すことで、カメラマイコン205はレンズマイコン113からレンズデータDT1bを受信する。
次に、通信方式Bでの通信について説明する。ここでは通信方式Bを用いてフォーマットF1により通信を行う通信モードM2についても併せて説明する。図4は、通信モードM2でのカメラマイコン205とレンズマイコン113との間でやり取りされる通信信号の波形を示している。前述のように、フォーマットF1では、レンズデータ信号DLCにBUSYフレームが選択的に付加される。
通信方式Bにおいて、送信要求チャネルは、通信マスタであるカメラマイコン205から通信スレーブとしてのレンズマイコン113へのレンズデータの送信要求等の通知に用いられる。送信要求チャネルでの通知は該送信要求チャネルでの信号のレベル(電圧レベル)をHigh(第一レベル)とLow(第二レベル)との間で切り替えることで行う。以下の説明では、通信方式Bにおいて送信要求チャネルに供給される信号を送信要求信号RTSという。
第一データ通信チャネルは、通信方式Aと同様に、レンズマイコン113からカメラマイコン205への各種データを含むレンズデータ信号DLCの送信に用いられる。第二データ通信チャネルも、通信方式Aと同様に、カメラマイコン205からレンズマイコン113への制御コマンドや送信要求コマンド等を含むカメラデータ信号DCLの送信に用いられる。
通信方式Bでは、通信方式Aと異なり、カメラマイコン205とレンズマイコン113は、共通のクロック信号に同期してデータの送受信を行うのではなく、予め通信速度を設定し、この設定に基づいた通信ビットレートで送受信を行う。通信ビットレートとは、1秒間に転送することができるデータ量を示し、単位はbps(bit per second)で表される。なお、本実施例では、通信方式Bにおいても、通信方式Aと同様に、カメラマイコン205とレンズマイコン113は相互に送受信を行う全二重通信方式(フルデュープレックス方式)で通信を行う。
図4は、最小通信単位である1フレームの信号波形を示している。1フレームのデータフォーマットの内訳は、カメラデータ信号DCLとレンズデータ信号DLCでは一部異なる部分がある。
まず、レンズデータ信号DLCのデータフォーマットについて説明する。1フレームのレンズデータ信号DLCは、前半のデータフレームとこれに続くBUSYフレームとにより構成されている。レンズデータ信号DLCは、データ送信を行っていない状態では信号レベルはHighに維持されている。
レンズマイコン113は、レンズデータ信号DLCの1フレームの送信開始をカメラマイコン205に通知するため、レンズデータ信号DLCの電圧レベルを1ビット期間の間LOWとする。この1ビット期間をスタートビットSTと呼び、スタートビットSTからデータフレームが開始される。続いて、レンズマイコン113は、スタートビットSTに続く2ビット目から9ビット目までの8ビット期間で1バイトのレンズデータを送信する。
データのビット配列はMSB(Most Significant Bit)ファーストフォーマットとして、最上位のデータD7から始まり、順にデータD6、データD5と続き、最下位のデータD0で終了する。そして、レンズマイコン113は、10ビット目に1ビットのパリティー情報(PA)を付加し、1フレームの最後を示すストップビットSPの期間、レンズデータ信号DLCの電圧レベルをHIGHとする。これにより、スタートビットSTから開始されたデータフレーム期間が終了する。なお、パリティー情報は1ビットである必要はなく、複数のビットのパリティー情報が付加されても良い。また、パリティー情報は必須ではなく、パリティー情報が付加されないフォーマットとしても良い。
続いて、図中の「DLC(BUSY有)」に示されるように、レンズマイコン113は、ストップビットSPの後にBUSYフレームを付加する。BUSYフレームは、通信方式Aと同様に、レンズマイコン113からカメラマイコン205に通知する通信待機要求BUSYの期間を表す。レンズマイコン113は、通信待機要求BUSYを解除するまでレンズデータ信号DLCの信号レベルをLowに保持する。
一方、レンズマイコン113からカメラマイコン205への通信待機要求BUSYの通知が不要な場合がある。この場合のために、図中の「DLC(BUSY無)」に示すように、BUSYフレーム(以下、BUSY通知ともいう)を付加せずに1フレームを構成するデータフォーマットも設けられている。つまり、レンズデータ信号DLCのデータフォーマットとしては、レンズマイコン側の処理状況に応じてBUSY通知を付加したものと付加しないものとを選択することができる。
カメラマイコン205が行うBUSY通知の有無の識別方法について説明する。図4の「DLC(BUSY無)」に示す信号波形および図4の「DLC(BUSY有)」に示す信号波形には、B1とB2というビット位置が含まれている。カメラマイコン205は、これらB1とB2のいずれかのビット位置をBUSY通知の有無を識別するBUSY識別位置Pとして選択する。このように本実施例では、BUSY識別位置PをB1とB2のビット位置から選択するデータフォーマットを採用する。これにより、レンズマイコン113の処理性能によってレンズデータ信号DLCのデータフレーム送信後にBUSY通知(DLCのLow)が確定するまでの処理時間が異なる課題に対処することができる。
BUSY識別位置PをB1のビット位置とするかB2のビット位置とするかは、通信方式Bでの通信を行う前にカメラマイコン205とレンズマイコン113との間で通信により決定する。なお、BUSY識別位置PをB1とB2のビット位置のいずれかに固定する必要はなく、カメラマイコン205、レンズマイコン113の処理能力に応じて変更してもよい。なお、BUSY識別位置Pは、B1やB2に限らず、ストップビットSPよりも後の所定位置に設定することができる。
ここで、通信方式Aにおいてクロック信号LCLKに付加されたBUSYフレームが、通信方式Bではレンズデータ信号DLCに付加されるデータフォーマットとした理由について説明する。
通信方式Aでは、通信マスタであるカメラマイコン205が出力するクロック信号LCLKと通信スレーブであるレンズマイコン113が出力するBUSY信号とを同一のクロックチャネルでやり取りする必要がある。このため、カメラマイコン205とレンズマイコン113の出力同士の衝突を時分割方式で防止している。つまり、クロックチャネルにおけるカメラマイコン205とレンズマイコン113の出力可能期間を適宜割り当てることで出力同士の衝突を防ぐことができる。
ただしこのとき、分割方式では、カメラマイコン205とレンズマイコン113の出力同士の衝突を確実に防ぐ必要がある。このため、カメラマイコン205が8パルスのクロック信号LCLKの出力を完了した時点からレンズマイコン113がBUSY信号の出力を許容される時点までの間に、両マイコンの出力が禁止される一定の出力禁止期間が挿入される。この出力禁止期間はカメラマイコン205とレンズマイコン113が通信できない通信無効期間となるため、実効的な通信速度を低下させる原因となる。
このような課題を解決するために、通信方式Bでは、レンズマイコン113の専用出力チャネルである第一データ通信チャネルでのレンズデータ信号DLCにレンズマイコン113からのBUSYフレームを付加するデータフォーマットを採用している。
次に、カメラデータ信号DCLのデータフォーマットについて説明する。1フレームのデータフレームの仕様はレンズデータ信号DLCと共通である。ただし、カメラデータ信号DCLは、レンズデータ信号DLCとは異なり、BUSYフレームの付加が禁止されている。
次に、カメラマイコン205とレンズマイコン113との間での通信方式Bでの通信の手順について説明する。まず、カメラマイコン205は、レンズマイコン113との通信を開始するイベントが発生すると、送信要求信号RTSの電圧レベルをLowにする(以下、送信要求信号RTSをアサートするという)ことで、レンズマイコン113に対して通信要求を通知する。
レンズマイコン113は、送信要求信号RTSの電圧レベルがLowに変化したことにより通信要求を検出すると、カメラマイコン205に送信するレンズデータ信号DLCの生成処理を行う。そして、該レンズデータ信号DLCの送信準備が整うと、第一データ通信チャネルを介して1フレームのレンズデータ信号DLCの送信を開始する。ここで、レンズマイコン113は、通信要求信号RTSの電圧レベルがLowとなった時点から、カメラマイコン205とレンズマイコン113との間で相互に設定した設定時間内にレンズデータ信号DLCの送信を開始する。
すなわち、通信方式Bでは、通信要求信号RTSの電圧レベルがLowとなった時点からレンズデータ信号DLCの送信が開始されるまでの間に、送信するレンズデータを確定させればよい。通信方式Aのように、最初のクロックパルスが入力される時点までに送信するレンズデータを確定させておく必要があるといった厳しい制約がないため、レンズデータ信号DLCの送信を開始するタイミングに自由度を持たせることができる。
次に、カメラマイコン205は、レンズマイコン113から受信したレンズデータ信号DLCのデータフレームの先頭に付加されたスタートビットSTの検出に応じて、送信要求信号RTSの電圧レベルをHighに戻す。以下、送信要求信号RTSをネゲートするという。これにより、送信要求を解除するとともに第二通信チャネルでのカメラデータ信号DCLの送信を開始する。なお、送信要求信号RTSのネゲートとカメラデータ信号DCLの送信開始はどちらが先であってもよく、レンズデータ信号DLCのデータフレームの受信が完了するまでにこれらを行えばよい。
レンズデータ信号DLCのデータフレームを送信したレンズマイコン113は、カメラマイコン205に通信待機要求BUSYを通知する必要がある場合には、レンズデータ信号DLCにBUSYフレームを付加する。カメラマイコン205は、通信待機要求BUSYの通知の有無を監視しており、通信待機要求BUSYが通知されている間は次の送信要求のために送信要求信号RTSをアサートすることが禁止される。
レンズマイコン113は、通信待機要求BUSYによりカメラマイコン205からの通信を待機させている期間に必要な処理を実行し、次の通信準備が整った後に通信待機要求BUSYを解除する。カメラマイコン205は、通信待機要求BUSYが解除され、かつカメラデータ信号DCLのデータフレームの送信が完了したことを条件に、次の送信要求のために送信要求信号RTSをアサートすることが許可される。
このように本実施例では、カメラマイコン205での通信開始イベントがトリガとなって送信要求信号RTSがアサートされたことに応じて、レンズマイコン113がカメラマイコン205にレンズデータ信号DLCのデータフレームの送信を開始する。そして、カメラマイコン205は、レンズデータ信号DLCのスタートビットSTを検出することに応じて、カメラデータ信号DCLのデータフレームのレンズマイコン113への送信を開始する。
ここでレンズマイコン113は、必要に応じて通信待機要求BUSYのためにレンズデータ信号DLCのデータフレームの後にBUSYフレームを付加し、その後、通信待機要求BUSYを解除することで1フレームの通信処理が完了する。この通信処理により、カメラマイコン205とレンズマイコン113との間で相互に1バイトの通信データが送受信される。
次に、通信方式Bを用いてフォーマットF2により通信を行う通信モードM3について説明する。図5(A)は、通信モードM3においてカメラマイコン205とレンズマイコン113との間でやり取りされる通信信号の波形を示している。図5(A)では、連続的に3フレームのデータを送信するときにおける通信信号の波形を示している。前述のように、フォーマットF2では、レンズデータ信号DLCに通信待機要求BUSYを付加することは禁止される。
通信モードM3におけるレンズデータ信号DLCのデータフォーマットでは、データフレームのみで1フレームが構成され、BUSYフレームは存在しない。このため、通信モードM3では、レンズマイコン113からカメラマイコン205への通信待機要求BUSYを通知することができない。このようなフォーマットF2は、比較的大きな容量のデータをカメラマイコン205とレンズマイコン113との間で転送する際に、フレーム間の間隔を短くした連続通信を行う用途に用いられる。すなわち、フォーマットF2により、大容量データの高速通信が可能となる。
次に、本実施例におけるカメラマイコン205とレンズマイコン113との間の通信制御処理について説明する。図5(B)は、カメラマイコン205とレンズマイコン113がそれぞれ、nフレームのカメラデータ信号DCLおよびレンズデータ信号DLCを連続的に送受信するときにおける通信信号の波形を示している。カメラマイコン205は、レンズマイコン113との通信を開始するイベントが発生すると、送信要求信号RTSをアサートする。フォーマットF2では、フォーマットF1と異なり、カメラマイコン205は送信要求信号RTSを1フレームごとにネゲートする必要はない。そのため、連続的にデータ送受信が可能な状態である間は、送信要求信号RTSのアサート状態を維持する。
レンズマイコン113は、送信要求信号RTSのアサートにより通信要求を検出すると、カメラマイコン205に送信するレンズデータ信号DLCの生成処理を行う。そして、該レンズデータ信号DLCの送信準備が整うと、第一データ通信チャネルでの1フレーム目のレンズデータ信号DLC(DL1)の送信を開始する。
1フレーム目のレンズデータ信号DLCのデータフレームを送信したレンズマイコン113は、再び送信要求信号RTSを確認する。このとき、送信要求信号RTSがアサート状態であった場合には、レンズマイコン113は送信が完了した1フレーム目に続けて次の2フレーム目のレンズデータ信号DLC(DL2)をカメラマイコン205に送信する。このようにして送信要求信号RTSのアサート状態が維持されている間はレンズマイコン113からのレンズデータ信号DLC(DL1~DLn)がカメラマイコン205に連続的に送信される。そして、予め決められたフレーム数nの送信が完了すると、レンズデータ信号DLCの送信が停止される。
カメラマイコン205からは、レンズマイコン113からのレンズデータ信号DCLのフレームごとのスタートビットSTを検出することに応じて、nフレームのカメラデータ信号DCL(DC1~DCn)の第二通信チャネルでの送信が開始される。
図5(C)は、図5(B)で示した連続データ送受信の通信中にカメラマイコン205から又はレンズマイコン113から一時的な通信待機が指示された場合の通信信号の波形を示している。ここでも、カメラマイコン205から通信要求信号RTSがアサートされることでレンズマイコン113がレンズデータ信号DLCの送信を開始し、そのスタートビットSTの検出に応じてカメラマイコン205がカメラデータ信号DCLの送信を開始する。
T2w1は、カメラマイコン205から通信待機が指示された期間である通信待機期間を示し、該指示は送信要求信号RTSを一時的にネゲートすることでレンズマイコン113に通知される。レンズマイコン113は、送信要求信号RTSがネゲートされたことを検出すると、その検出時点で送信途中のレンズデータ信号DLCのフレーム(図ではDL6:以下、休止フレームという)の送信を完了した後、送信を休止する。
レンズデータ信号DLCの送信休止を受けて、カメラマイコン205も、カメラデータ信号DCLのうち上記休止フレームに対応するフレーム(DC6)を送信した後にカメラデータ信号DCLの送信を休止する。このような通信制御により、連続データ送受信の通信中に通信待機指示が発生した場合でもレンズデータ信号DLCとカメラデータ信号DCLの送信済みフレーム数を同数にするように管理することができる。
カメラマイコン205は、通信待機の要求イベントがなくなると、送信要求信号RTSを再びアサートすることでレンズマイコン113に対して通信再開を指示することができる。通信再開指示に応じて、レンズマイコン113は休止フレームの次のフレーム(DL7:以下、再開フレームという)からレンズデータ信号DLCの送信を再開する。そして、再開フレームのスタートビットSTの検出に応じて、カメラマイコン205はカメラデータ信号DCLの上記再開フレームに対応するフレーム(DC7)からの送信を再開する。
一方、T2w2はレンズマイコン113から通信待機が指示された期間である通信待機期間を表している。図では、通信待機期間T2w1の終了後はカメラマイコン205およびレンズマイコン113とも通信待機を指示しておらず、上述した再開フレームDL7、DC7およびそれに続くフレームDL8、DC8~DL9、DC9の順で連続データ送受信を行っている。そして、レンズマイコン113内でフレームDL9の送信(カメラマイコン205でのフレームDC9の受信)が完了したときに通信待機要求イベントが発生することで、レンズマイコン113はカメラマイコン205に対して通信待機指示を通知する。
送信要求信号RTSがアサート状態であるときに、レンズマイコン113がレンズデータ信号DLCを送信しないことで、レンズマイコン113からカメラマイコン205へ通信を休止することが通知される。
カメラマイコン205は、レンズデータ信号DLCのフレームごとのスタートビットSTを常時監視しており、スタートビットSTを検出しない場合には、次のカメラデータ信号DCLのフレームの送信を停止するよう取り決めている。カメラマイコン205は、送信要求信号RTSをアサートしていてもレンズマイコン113からのレンズデータ信号DLC(図ではDL10)を受信しない場合は、カメラデータ信号DCL(DC10)を送信することなく通信を休止する。なお、カメラマイコン205は、レンズマイコン113からの指示による通信待機期間T2w2中は送信要求信号RTSをアサート状態に維持する。
その後、レンズマイコン113内で通信待機要求イベントがなくなってレンズマイコン113がレンズデータ信号DLCの再開フレームDL10の送信を再開する。カメラマイコン205は、該再開フレームDL10のスタートビットSTを検出することに応じてカメラデータ信号DCLにおける対応フレームDC10の送信を再開する。
次に、図6を参照して、カメラマイコン205とレンズマイコン113の間で行われる通信フォーマットの決定手順について説明する。カメラマイコン205およびレンズマイコン113は、コンピュータプログラムである通信制御プログラムに従って、図6および図7のフローチャートに示される通信制御を行う。なお図6および図7において「S」はステップを意味する。
まず、カメラ本体200に交換レンズ100が装着されると、ステップS100、ステップS200において、カメラマイコン205およびレンズマイコン113は、通信フォーマットを、通信の成立が保障された初期通信フォーマットに設定する。ここで、初期通信フォーマットは、本実施例で開示した通信方式とデータフォーマットの組み合わせでもよいし、それ以外の通信フォーマットでもよい。なお、初期通信フォーマットとして調歩同期式の通信フォーマットが選択されるときには、どのようなカメラと交換レンズが組み合わされても通信が実行できるようにBUSY識別位置Pを設定することが好ましい。
続いてステップS101において、カメラマイコン205は、カメラ本体200において対応可能な通信フォーマットを表すカメラ識別情報をレンズマイコン113に送信する。また、ステップS202において、レンズマイコン113は、交換レンズ100において対応可能な通信フォーマットを表すレンズ識別情報をカメラマイコン205に送信する。ここで、「識別情報」には、クロック同期式と調歩同期式のいずれの通信方式に対応しているのかを示す情報や、対応可能な通信ビットレートの範囲を示す情報が含まれる。BUSY識別位置Pを示す情報も識別情報に含まれる。
カメラマイコン205は、ステップS102においてレンズ識別情報を受信する。レンズマイコン113は、ステップS201においてカメラ識別情報を受信する。ここで、図6のフローチャートでは、カメラ識別情報が送信された後にレンズ識別情報が送信されているが、カメラ識別情報の送信とレンズ識別情報の送信は同時であってもよい。また、レンズ識別情報が送信された後にカメラ識別情報が送信されるようにしてもよい。
続いてステップS103およびステップS203において、以降の通信における通信フォーマットの設定が行われる。具体的には、カメラマイコン205とレンズマイコン113は、互いに対応可能な通信ビットレートのうち最速レートを通信ビットレートとして決定する。また、互いに対応可能なBUSY識別位置のうちストップビットSPから最も近い位置をBUSY識別位置に設定する。以上の通信制御を経て、カメラマイコン205とレンズマイコン113は、通信モードM2の状態に移行する。
次に、図7を参照して、調歩同期式の通信方式におけるデータ通信フローについて説明する。図7では、BUSY信号の付加が許可されたデータフォーマットにおける通信フローについて説明する。
カメラマイコン205は、レンズマイコン113との通信を開始する通信イベントが発生したか否かを監視しており、ステップS110において通信イベントが発生したときにステップS111に進む。ステップS111では、前述のように、通信要求信号RTSをアサートすることで、レンズマイコン113に対して通信要求を行う。
レンズマイコン113は、通信要求信号RTSがアサートされたか否かを監視しており、ステップS210において通信要求信号RTSがアサートされたことを認識するとステップS211に進む。ステップS211において、レンズマイコン113は、第一データ通信チャネルを介してレンズデータ信号DLCをカメラマイコン205に送信する。
カメラマイコン205は、レンズマイコン113からレンズデータ信号DLCを受信すると(ステップS112のYES)、ステップS113に進み、通信要求信号RTSをネゲートする。そして、ステップS114に進み、第二データ通信チャネルを介してカメラデータ信号DCLをレンズマイコン113に送信する。
レンズマイコン113は、ステップS212でカメラデータ信号DCLの受信開始を検出すると、ステップS213に進み、カメラデータ信号DCLの受信処理を行う。ステップS213の処理と並行してステップS214において、カメラマイコン205に通信待機要求BUSYを通知する必要があるか否かの判定を行う。通信待機要求BUSYを通知する必要がない場合は、ステップS218に進み、カメラデータ信号DCLの受信が完了するまで待機する。
一方、レンズマイコン113からカメラマイコン205に対して通信待機要求BUSYを通知する必要があるときは、ステップS215に進み、レンズデータ信号DLCにBUSYフレームを付加する。レンズマイコン113は、通信待機要求BUSYを通知している間に必要な処理を実行し、次の通信準備が整った後に(ステップS216のYes)、通信待機要求BUSYを解除する(ステップS217)。通信待機要求BUSYを解除した後は、ステップS218に進み、カメラデータ信号DCLの受信が完了するまで待機する。カメラデータ信号DCLの受信が完了すると(ステップS218のYes)、ステップS210に戻り、通信要求信号RTSがアサートされたか否かの監視を継続する。
カメラマイコン205は、ステップS115において通信待機要求BUSYの通知を受けると、通信待機要求BUSYが解除されるまで待機する。通信待機要求BUSYが解除される(ステップS116のYES)と、ステップS117に進み、カメラデータ信号DCLの送信が完了したか否かの判定を行う。また、ステップS115において通信待機要求BUSYの通知を受けていないときにもステップS117に進み、カメラデータ信号DCLの送信が完了したか否かの判定を行う。ステップS117において、カメラデータ信号DCLの送信が完了したと判定されると、ステップS110に戻り、通信イベントが発生したか否かの監視を継続する。
以上説明したように、本実施例は、3つのチャネルから構成される調歩同期式(通信方式B)の通信における通信制御に関するものである。レンズマイコン113の専用出力チャネルである第一データ通信チャネルを介して、レンズマイコン113からカメラマイコン205に通信待機要求BUSYが送信される。一方、カメラマイコン205からの送信要求信号RTSは、カメラマイコン205の専用出力チャネルとしての通知チャネルを介して、カメラマイコン205からレンズマイコン113へ送信される。
このように、レンズマイコン113からの通信待機要求BUSYは、レンズマイコン113の専用出力チャネルを介して送受信し、カメラマイコン205からの送信要求信号RTSは、カメラマイコン205の専用出力チャネルを介して送受信される。これにより、カメラマイコン205とレンズマイコン113の間の通信無効期間を短縮することができ、結果として実行的な通信速度を高速化させることができる。
また、通信の開始タイミングに関しては、レンズマイコン113からカメラマイコン205へのデータ送信が先に開始される。カメラマイコン205は、レンズマイコン113から送信されるデータフレームのスタートビットSTを検出することに応じてデータ送信を開始する。通信の開始タイミングをこのように設定することで、送信要求信号RTSを受けたレンズマイコン113がカメラマイコン205に対してのデータ送信を開始するタイミングに自由度を持たせることができる。例えば、レンズマイコン113の情報処理能力に応じてデータ送信の開始タイミングを変化させることができる。これにより、通信の破綻を招くことなく、カメラ本体200と交換レンズ100の間の通信速度を向上させることができる。
次に、図8を参照して、カメラ本体20と交換レンズ10と中間アクセサリ30と中間アクセサリ40との間に構成される「1対多」の通信が可能な通信回路である第二通信について説明する。なお、通信回路は「1対多」の通信が可能であれば、これに限定されるものではない。さらに、複数の通信回路を持つ場合は、他の通信回路についてはクロック同期式のシリアル通信やUART通信のような「1対1」の通信でも構わない。
カメラ側第二通信部208、レンズ側第二通信部115、中間アクセサリ側第二通信部308、408は、第一通信と同様に接点部を介して接続される。より具体的には、前述の第二通信接点群103、404、406、304、306、203を介して接続される。本実施例において、第二通信接点群103、404、406、304、306、203は各々CS信号端子103a、404a、406a、304a、306a、203aとDATA信号端子103b、404b、406b、304b、306b、203bを有する。カメラ側第二通信部208、レンズ側第二通信部115、中間アクセサリ側第二通信部308は、CS信号端子を介して接続されたCS信号線、DATA信号端子を介して接続されたDATA信号線を用いて通信を行う。なお、第二通信接点群103、404、406、304、306、203が各々有するDATA信号端子は、第二通信端子の一例である。
カメラ通信回路は、接地スイッチ221と入出力切り換えスイッチ222によって構成されている。レンズ通信回路は、接地スイッチ121と入出力切り換えスイッチ122によって構成されている。中間アクセサリ通信回路は、接地スイッチ321、421と入出力切り換えスイッチ322、422によって構成されている。
信号線は、通信のフロー制御を行うための信号を伝搬するためのCS信号線(第一信号線)と、送受信するデータを伝搬するためのDATA信号線(第二信号線)の2本で構成される。
CS信号線は、カメラ側第二通信部208と中間アクセサリ側第二通信部308、およびレンズ側第二通信部115に接続されており、信号線の状態(Hi/Low)を検出可能な構成としている。またCS信号線はカメラ本体内で不図示の電源にプルアップ接続されている。CS信号線は交換レンズ10の接地スイッチ121、カメラ本体20の接地スイッチ221、中間アダプタの接地スイッチ321、421を介してGNDと接続可能な構成としている(オープンドレイン接続)。この構成により、交換レンズ10、カメラ本体20、中間アクセサリ30、40はそれぞれ接地スイッチをオン(接続)することによりCS信号線の状態をLowにすることが可能である。一方、交換レンズ10、カメラ本体20、中間アクセサリ30、40の全てが各々の接続スイッチをオフ(遮断)することで、CS信号線の状態をHiとすることができる。CS信号線は、ブロードキャスト通信とP2P(ピア・ツー・ピア)通信を区別するため、もしくはP2P通信における通信方向の切り替えなどに用いられる。
DATA信号線は、データの伝搬方向を切り換えながら使用可能な単線の双方向データ送信線である。DATA信号線は、交換レンズ10の入出力切り換えスイッチ122を介してレンズ側第二通信部115と接続可能である。また、DATA信号線は、カメラ本体20の入出力切り換えスイッチ222を介してカメラ側第二通信部208と接続可能である。また、DATA信号線は、中間アクセサリ30、40の入出力切り換えスイッチ322、422を介して中間アクセサリ側第二通信部308、408とそれぞれ接続可能である。それぞれのマイコンにはデータを送信するためのデータ出力部(CMOS方式)とデータを受信するためのデータ入力部(CMOS方式)が備えられている。入出力切り換えスイッチを操作することでDATA信号線をデータ出力部に接続するかデータ入力部に接続するかを選択することができる。この構成により、交換レンズ10、カメラ本体20、中間アクセサリ30、40は自分がデータを送信する場合にはDATA信号線をデータ出力部と接続するように各々入出力切り換えスイッチを操作することでデータ送信が可能となる。一方、交換レンズ10、カメラ本体20、中間アクセサリ30、40は自分がデータを受信する場合にはDATA信号線をデータ入力部と接続するように各々入出力切り換えスイッチを操作することでデータ受信が可能となる。
ここで、CS信号とデータ信号により行われるブロードキャスト通信とP2P通信について述べる。
図9Aおよび図9Bを参照して、第二通信で実行されるブロードキャスト通信について説明する。図9Aおよび図9Bは、カメラ本体20と交換レンズ10との間に中間アクセサリ30が装着された場合の通信を表している。以後、中間アクセサリ30をアダプタともいう。ブロードキャスト通信は、カメラマイコン205、レンズマイコン113およびアダプタマイコン309のうちの1つが他の2つに対して同時にデータを送信する(すなわち一斉送信)を行う一対多通信である。このブロードキャスト通信は、信号線CSおよび信号線DATAを用いて行われる。また、ブロードキャスト通信が行われる通信モードをブロードキャスト通信モードともいう。ブロードキャスト通信モードは、第一通信モードの一例である。
図9Aは、カメラマイコン205、レンズマイコン113およびアダプタマイコン309の間で行われるブロードキャスト通信での信号波形を示している。ここでは例として、カメラマイコン205からレンズマイコン113とアダプタマイコン309へのブロードキャスト通信に応答して、アダプタマイコン309がカメラマイコン205とレンズマイコン113にブロードキャスト通信を行う場合について説明する。
まず通信マスタであるカメラマイコン205は、ブロードキャスト通信を開始することをそれぞれ通信スレーブであるレンズマイコン113およびアダプタマイコン309に通知するために、信号線CSへのLow出力を開始する(901)。次にカメラマイコン205は、送信するデータを信号線DATAに出力する(902)。
一方、レンズマイコン113とアダプタマイコン309は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する(903、904)。この時点ではすでにカメラマイコン205が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
その後、カメラマイコン205は、ストップビットSPの出力まで終了すると、信号線CSへのLow出力を解除する(905)。レンズマイコン113とアダプタマイコン309は、信号線DATAから入力されたデータをそのストップビットSPまで受信した後、受信したデータの解析および該受信データに関連付けられた内部処理を行う。そして、次のデータを受信するための準備が整った後に、レンズマイコン113とアダプタマイコン309は信号線CSへのLow出力を解除する(906、907)。前述した通り、信号線CSの信号レベルは、カメラマイコン205、レンズマイコン113およびアダプタマイコン309の全てが信号線CSへのLow出力を解除することでHiとなる。したがって、カメラマイコン205、レンズマイコン113およびアダプタマイコン309は、各々が信号線CSへのLow出力を解除した後に信号線CSの信号レベルがHiとなることを確認することができる。カメラマイコン205、レンズマイコン113およびアダプタマイコン309はそれぞれ、信号線CSの信号レベルがHiとなったことを確認することで、今回の通信処理を終了し、次の通信を行うための準備が整ったと判定することができる。
次に、アダプタマイコン309は、信号線CSの信号レベルがHiに戻ったことを確認すると、ブロードキャスト通信を開始することをカメラマイコン205およびレンズマイコン113に通知するために、信号線CSへのLow出力を開始する(911)。
続いてアダプタマイコン309は、送信するデータを信号線DATAに出力する(912)。またカメラマイコン205およびレンズマイコン113は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する(913、914)。この時点ではすでにアダプタマイコン309が信号線CSへのLow出力を開始しているので、信号線CSに伝搬される信号レベルは変化しない。その後、アダプタマイコン309は、ストップビットSPの出力まで終了すると信号線CSへのLow出力を解除する(915)。一方、カメラマイコン205およびレンズマイコン113は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および該受信データに関連付けられた内部処理を行う。そして、カメラマイコン205およびレンズマイコン113は、次のデータを受信するための準備が整った後に信号線CSへのLow出力を解除する(916、917)。
なお、カメラマイコン205のレンズマイコン113とアダプタマイコン309へのブロードキャスト通信に応答して、レンズマイコン113がカメラマイコン205とアダプタマイコン309にブロードキャスト通信を行う場合も同様である。すなわち、レンズマイコン113は信号線CSへのLow出力を開始し、信号線DATAに送信するデータを出力すると、レンズマイコン113は信号線CSへのLow出力を解除する。カメラマイコン205およびアダプタマイコン309が、レンズマイコン113によって出力されたデータを信号線DATAから入力されたストップビットSPまで受信した後に信号線CSへのLow出力を解除することで、次の通信が可能な状態へと戻る。
図9Bも、カメラマイコン205、レンズマイコン113およびアダプタマイコン309の間で行われるブロードキャスト通信での信号波形を示している。ここでは、レンズマイコン113からブロードキャスト通信の開始をカメラマイコン205に通知する例を示す。この例では、カメラマイコン205からのレンズマイコン113およびアダプタマイコン309へのブロードキャスト通信に応答する形でアダプタマイコン309がカメラマイコン205およびレンズマイコン113にブロードキャスト通信を行う。
まずレンズマイコン113は、ブロードキャスト通信を開始することをカメラマイコン205およびアダプタマイコン309に通知するために、信号線CSへのLow出力を開始する(921)。すなわち、レンズマイコン113は信号線CSの信号レベルを変化させることにより、カメラマイコン205に通信要求を通知する。信号線CSの信号レベルがHi(第一信号レベルとも称する)からLow(第二信号レベルとも称する)になったことを検出したカメラマイコン205は、信号線CSへのLow出力を開始する(922)。この時点ではすでにレンズマイコン113が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
次に、カメラマイコン205は、信号線CSによって通知された通信要求に対応して送信するデータを信号線DATAに出力する(923)。アダプタマイコン309は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する(924)。この時点ではすでにカメラマイコン205が信号線CSへのLow出力を開始しているため、信号線CSの信号レベルは変化しない。
カメラマイコン205は、ストップビットSPの出力まで終了すると、信号線CSへのLow出力を解除する(925)。一方、レンズマイコン113およびアダプタマイコン309は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および該受信データに関連付けられた内部処理を行う。そして、レンズマイコン113およびアダプタマイコン309は、次のデータを受信するための準備が整った後に信号線CSへのLow出力を解除する(926、927)。前述した通り、信号線CSの信号レベルは、カメラマイコン205、レンズマイコン113およびアダプタマイコン309の全てが信号線CSへのLow出力を解除することでHiとなる。したがって、カメラマイコン205、レンズマイコン113およびアダプタマイコン309は、それぞれが信号線CSへのLow出力を解除した後、信号線CSの信号レベルがHiとなることを確認することができる。カメラマイコン205、レンズマイコン113およびアダプタマイコン309はそれぞれ、信号線CSの信号レベルがHiとなることを確認することで、今回の通信処理を終了し、次の通信を行うための準備が整ったと判定することができる。
次に、アダプタマイコン309は、信号線CSの信号レベルがHiに戻ったことを確認すると、ブロードキャスト通信を開始することをカメラマイコン205およびレンズマイコン113に通知するために信号線CSへのLow出力を開始する(931)。すなわち、レンズマイコン113は信号線CSの信号レベルを変化させることにより、カメラマイコン205に通信要求を通知する。
次に、アダプタマイコン309は、送信するデータを信号線DATAに出力する(932)。一方、カメラマイコン205およびレンズマイコン113は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する(933、934)。この時点ではすでにアダプタマイコン309が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
その後、アダプタマイコン309は、ストップビットSPの出力まで終了すると、信号線CSへのLow出力を解除する(935)。一方、カメラマイコン205およびレンズマイコン113は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および該受信データに関連付けられた内部処理を行う。そして、カメラマイコン205およびレンズマイコン113は、次のデータを受信するための準備が整った後に信号線CSへのLow出力を解除する(936、937)。
図9Bの例では、通信スレーブであるレンズマイコン113およびアダプタマイコン309からブロードキャスト通信が開始する。この場合、通信マスタであるカメラマイコン205は、信号線CSへのLow出力が開始された時点(921)では、レンズマイコン113とアダプタマイコン309のどちらが信号線CSをLowにしたのかを判別することができない。このため、カメラマイコン205は、レンズマイコン113およびアダプタマイコン309の両方に対してブロードキャスト通信を開始したか(通信リクエストしたか)を確認する通信を行う必要がある。
また、カメラマイコン205がブロードキャスト通信を開始するために信号線CSにLowを出力したタイミングで、レンズマイコン113またはアダプタマイコン309がブロードキャスト通信を開始するために信号線CSにLowを出力する場合がある。この場合、カメラマイコン205はレンズマイコン113またはアダプタマイコン309が信号線CSにLowを出力したことを検出することができない。この場合、レンズマイコン113またはアダプタマイコン309に対して、ブロードキャスト通信を開始したか(通信リクエストしたか)を確認する通信が行われない。このため、所定時間が経過しても通信リクエストの確認通信が行われなかった場合は、信号線CSを再度Low出力して、カメラマイコン205に対して通信リクエストを行う。
以上のように、ブロードキャスト通信において信号線CSで伝達される信号は、ブロードキャスト通信の開始(実行)および実行中を示す信号として機能する。なお、図9Aおよび図9Bではブロードキャスト通信の例を示したが、他のブロードキャスト通信を行ってもよい。例えば、1回のブロードキャスト通信で送信するデータは、図9Aおよび図9Bに示されるように1バイトのデータでもよいが、2バイトや3バイトのデータであってもよい。また、ブロードキャスト通信を通信マスタであるカメラマイコン205から通信スレーブであるレンズマイコン113およびアダプタマイコン309への一方向通信としてもよい。
次に、第二通信においてカメラ本体20、交換レンズ10およびアダプタ30の間で行われるP2P通信について説明する。P2P通信は、通信マスタであるカメラ本体20が、通信スレーブである交換レンズ10とアダプタ30から通信する相手(特定アクセサリ装置)を1つ指定し、その指定した通信スレーブとの間のみでデータを送受信する一対一通信(個別通信)である。P2P通信は、信号線DATAと信号線CSを用いて行われる。また、P2P通信が行われる通信モードをP2P通信モードともいう。P2P通信モードは第二通信モードの一例である。
図10は、例として、カメラマイコン205と通信相手として指定されたレンズマイコン113との間でやり取りされるP2P通信の信号波形を示している。カメラマイコン205からの1バイトのデータ送信に応答して、レンズマイコン113がカメラマイコン205に対して2バイトのデータ送信を行う。通信モード(ブロードキャスト通信モードとP2P通信モード)の切替え処理およびP2P通信での通信相手の指定処理については後述する。
まず、通信マスタであるカメラマイコン205は、送信するデータを信号線DATAに出力する(1001)。カメラマイコン205は、ストップビットSPの出力まで終了した後、信号線CSへのLow出力を開始する(1002)。その後、カメラマイコン205は、次のデータの受信準備が整った後に、信号線CSへのLow出力を解除する(1003)。一方、レンズマイコン113は、信号線CSから入力されたLow信号を検出した後、信号線DATAから入力された受信データの解析および該受信データに関連付けられた内部処理を行う。その後、レンズマイコン113は、信号線CSの信号レベルがHiに戻ったことを確認した後、送信すべきデータを2バイト分連続で信号線DATAに出力する(1004)。レンズマイコン113は、2バイト目のストップビットSPの出力まで終了した後、信号線CSへのLow出力を開始する(1005)。そしてレンズマイコン113は、次のデータの受信準備が整った後に信号線CSへのLow出力を解除する(1006)。
P2P通信の通信相手として指定されていないアダプタマイコン309は、信号線CSおよび信号線DATAに信号を出力しない。つまり、P2P通信の通信相手として指定されていないアダプタマイコン309は、カメラマイコン205と通信を行わない。
以上のように、P2P通信において信号線CSで伝達される信号は、データ送信の終了と次のデータ送信の待機要求を示す通知信号として機能する。なお、図10ではP2P通信の例を示したが、他のP2P通信を行ってもよく、例えば信号線DATAにてデータを1バイトずつ送信してもよいし、3バイト以上のデータを送信してもよい。
次に、図11を参照して、通信モードの切替え処理とP2P通信での通信相手の指定処理について説明する。図11は、カメラマイコン205、レンズマイコン113およびアダプタマイコン309の間でやり取りされる通信モード切替えおよび通信相手指定時の信号波形を示している。P2P通信の通信相手の指定は、ブロードキャスト通信により行われる。ここでは例として、カメラマイコン205からP2P通信の通信相手としてアダプタマイコン309が指定され、カメラマイコン205からの1バイトデータのP2P通信とアダプタマイコン309からの1バイトデータのP2P通信が実行される場合を説明する。また、その後にカメラマイコン205からP2P通信の通信相手としてレンズマイコン113が指定され、カメラマイコン205からの2バイトデータのP2P通信とレンズマイコン113からの3バイトデータのP2P通信が実行される。
まず、通信マスタであるカメラマイコン205は、図9Aで説明した手順でブロードキャスト通信を実行する(1101)。このブロードキャスト通信で通知するのは、次のP2P通信でカメラマイコン205と通信を行う相手を指定するスレーブ指定データである。ステーブ指定データとして、例えば指定するスレーブの識別情報を用いることができる。通信スレーブであるレンズマイコン113およびアダプタマイコン309は、ブロードキャスト通信で受信したスレーブ指定データを基づいて、自身がP2P通信の通信相手として指定されたか否かを判定する。この判定結果によって、カメラマイコン205と指定された通信スレーブとの通信モードがブロードキャスト通信モードからP2P通信モードに切り替わる(1102)。ここでは通信相手としてアダプタマイコン309が指定されているため、次のP2P通信では図10で説明した手順に従ってカメラマイコン205とアダプタマイコン309との間でデータの送受信が行われる(1103)。ここではカメラマイコン205からアダプタマイコン309に1バイトデータを送信し、その後、アダプタマイコン309からカメラマイコン205へ1バイトデータを送信する。
カメラマイコン205とアダプタマイコン309とのP2P通信が終了すると、カメラマイコン205は再びブロードキャスト通信によってP2P通信で通信する通信相手を指定することができる。ここでは次のP2P通信の通信相手としてレンズマイコン113を指定するために、スレーブ指定データとしてレンズマイコン113を設定して図9Aで説明した手順でブロードキャスト通信を実行する(1104)。このブロードキャスト通信に応じてアダプタマイコン309はP2P通信を終了し、これと同時にカメラマイコン205とレンズマイコン113の通信モードがP2P通信モードに切り替えられる(1105)。なお、ここでブロードキャスト通信を実行しない場合は、カメラマイコン205とアダプタマイコン309とのP2P通信が継続される。
次のP2P通信では、図10で説明した手順に従ってカメラマイコン205とレンズマイコン113との間でデータの送受信が行われる。ここではカメラマイコン205がレンズマイコン113に2バイトデータを送信し、その後、レンズマイコン113がカメラマイコン205に3バイトデータを送信する(1106)。以上のように、ブロードキャスト通信によってP2P通信の通信相手を指定することが可能であり、同時にブロードキャスト通信とP2P通信の切替えを行うことができる。
次に、カメラマイコン205、レンズマイコン113およびアダプタマイコン309の間で行われる通信制御処理について説明する。まず、図12Aおよび図12Bのフローチャートを用いて、ブロードキャスト通信モードでの処理について説明する。図12Aはカメラマイコン205が行うブロードキャスト送信処理を示し、図12Bはレンズマイコン113およびアダプタマイコン309が行うブロードキャスト受信処理を示している。ここでは例として、カメラマイコン205からレンズマイコン113およびアダプタマイコン309に対してブロードキャスト通信を行う場合の処理を示している。それぞれコンピュータであるカメラマイコン205、レンズマイコン113およびアダプタマイコン309は、コンピュータプログラムとしての通信制御プログラムに従って本処理および後述する他の処理を実行する。
ブロードキャスト通信を開始するイベントが発生すると、カメラマイコン205は、図12AのステップS1200において、接地スイッチ221をオン(接続)して信号線CSをLowにする。これにより、レンズマイコン113およびアダプタマイコン309に対してブロードキャスト通信の開始が通知される。イベントとは、例えば、カメラマイコン205がレンズマイコン113やアダプタマイコン309に対してデータ送信を要求したことである。また、レンズマイコン113またはアダプタマイコン309がブロードキャスト通信の開始を要求するために信号線CSにLowを出力したこともイベントの1つである。レンズマイコン113およびアダプタマイコン309は、このブロードキャスト通信の開始通知を受けることで、図12Bで説明するブロードキャスト受信処理を開始する。
続いてステップS1201において、カメラマイコン205は、入出力切換えスイッチ222を動作させて信号線DATAをデータ出力部に接続する。次にステップS1202では、カメラマイコン205は、信号線DATAを用いてデータ送信を行い、全データの送信が完了するとステップS1203に進む。なお、ここで送受信するデータのバイト数に制限は無く、カメラマイコン205、レンズマイコン113およびアダプタマイコン309間で認識が一致していればよい。
ステップS1203において、カメラマイコン205は、ステップS1202で送信したデータがレンズマイコン113またはアダプタマイコン309からの送信も含む双方向コマンドであるか否かを判定する。カメラマイコン205は、双方向コマンドでない場合はステップS1204に進み、双方向コマンドである場合はステップS1205に進む。ステップS1204において、カメラマイコン205は、通信処理が終了したことを示すために接地スイッチ221をオフ(遮断)することで信号線CSへのLow出力を解除する。そして、ステップS1215に進む。ステップS1205において、カメラマイコン205は、入出力切換えスイッチ222を動作させることで信号線DATAをデータ入力部に接続する。そして、ステップS1206において、カメラマイコン205は、通信処理が終了したことを示すために、接地スイッチ221をオフ(遮断)することで信号線CSへのLow出力を解除する。
続いてステップS1207において、カメラマイコン205は、レンズマイコン113およびアダプタマイコン309のデータ受信が完了するまで、すなわち信号線CSがHiになるまで待機する。信号線CSがHiになるとステップS1208に進む。ステップS1208において、カメラマイコン205は、レンズマイコン113またはアダプタマイコン309からのデータ送信が行われるまで、すなわち信号線CSがLowになるまで待機する。信号線CSがLowになるとS1209に進む。ステップS1209において、カメラマイコン205は、信号線DATAからのデータ受信を許可する。続いてステップS1210において、カメラマイコン205は、信号線DATAのスタートビットを検出するまで待機する。スタートビットを検出すると、ステップS1211に進む。
ステップS1211において、カメラマイコン205は、通信処理中であることを示すために接地スイッチ221をオン(接続)することで信号線CSへのLow出力を開始する。続いてステップS1212において、カメラマイコン205は、全データを受信するまで待機する。そして全データの受信が完了するとステップS1213に進む。なお、ここで送受信するデータのバイト数にも制限は無く、カメラマイコン205、レンズマイコン113およびアダプタマイコン309間で認識が一致していればよい。
ステップS1213において、カメラマイコン205は、信号線DATAからのデータ受信を禁止する。続いてステップS1214において、カメラマイコン205は、通信処理が終了したことを示すために接地スイッチ221をオフ(遮断)することで信号線CSへのLow出力を解除する。そしてステップS1215において、カメラマイコン205は、レンズマイコン113およびアダプタマイコン309のデータ受信が完了するまで、すなわち信号線CSがHiになるまで待機する。信号線CSがHiになると、ステップS1216に進む。
ステップS1216において、カメラマイコン205は、ステップS1202でのデータ送信によりレンズマイコン113またはアダプタマイコン309をP2P通信の通信相手として指定したか否かを判定する。カメラマイコン205は、通信相手として指定していた場合にはステップS717に進み、そうでなければブロードキャスト通信モードのままブロードキャスト通信の送信処理を終了する。ステップS1217において、カメラマイコン205は、P2P通信モードに移行してブロードキャスト送信処理を終了する。
図12Bにおいて、ブロードキャスト通信モードまたはP2P通信モードにおいて通信待機中に信号線CSがLowレベルになると、レンズマイコン113およびアダプタマイコン309は、これをブロードキャスト通信の開始通知と認識する。そしてブロードキャスト受信処理を開始する。
まずステップS1220において、レンズマイコン113およびアダプタマイコン309は、信号線DATAからのデータ受信を許可する。次にステップS1221では、レンズマイコン113およびアダプタマイコン309は、信号線DATAのスタートビットを受信したか否かを判定し、受信していなければステップS1222に進み、受信していればステップS1224に進む。このとき、レンズマイコン113およびアダプタマイコン309は、自身の通信モードがP2P通信モードであった場合はブロードキャスト通信モードに移行する。
ステップS1222において、レンズマイコン113およびアダプタマイコン309は、信号線CSがHiか否かを判定し、Hiであればブロードキャスト通信の受信処理を終了するためにステップS1223に進む。Hiでなければ、スタートビット受信を引き続き待つためにステップS1221に戻る。ステップS1223において、レンズマイコン113およびアダプタマイコン309は、信号線DATAからのデータ受信を禁止し、ブロードキャスト受信処理を終了する。
一方、ステップS1224において、レンズマイコン113およびアダプタマイコン309は、自身の通信モードがP2P通信モードである場合はブロードキャスト通信モードに移行する。そしてステップS1225において、レンズマイコン113およびアダプタマイコン309は、通信処理中であることを示すために接地スイッチ1121、321をオン(接続)することで、信号線CSへのLow出力を開始する。
続いてステップS1226において、レンズマイコン113およびアダプタマイコン309は、全データを受信するまで待機する。全データの受信が完了すると、ステップS1227に進む。ここで受信するデータのバイト数にも制限は無く、カメラマイコン205、レンズマイコン113およびアダプタマイコン309の間で認識が一致していればよい。
続いてステップS1227において、レンズマイコン113およびアダプタマイコン309は、信号線DATAからのデータ受信を禁止する。そして、ステップS1228において、レンズマイコン113およびアダプタマイコン309は、通信処理が終了したことを示すために接地スイッチ121、321をオフ(遮断)することで信号線CSへのLow出力を解除する。
続いてステップS1229において、レンズマイコン113およびアダプタマイコン309は、ステップS1225で受信したデータが自身からの送信を意味する双方向コマンドであるか否かを判定する。レンズマイコン113およびアダプタマイコン309は、自身からの送信を意味する双方向コマンドであった場合にはステップS1230に進み、そうでなければステップS1235に進む。ステップS1230において、レンズマイコン113およびアダプタマイコン309は、他のマイコンがデータ受信を完了するまで、すなわち信号線CSがHiになるまで待機する。信号線CSがHiになるとS1231に進む。
ステップS1231において、レンズマイコン113およびアダプタマイコン309は、ブロードキャスト通信の開始を通知するために接地スイッチ121、321をオン(接続)して信号線CSをLowにする。そしてステップS1232において、レンズマイコン113およびアダプタマイコン309は、入出力切換えスイッチ122、322を動作させることで信号線DATAをデータ出力部に接続する。
続いてステップS1233において、レンズマイコン113およびアダプタマイコン309は、信号線DATAを用いてデータ送信を行う。全データの送信が終了するとステップS1234に進む。ここで受信するデータのバイト数にも制限は無く、カメラマイコン205、レンズマイコン113およびアダプタマイコン309の間で認識が一致していればよい。ステップS1234において、レンズマイコン113およびアダプタマイコン309は、自身のデータ送信処理が終了したことを示すために、接地スイッチ121、321をオフ(遮断)することで信号線CSへのLow出力を解除する。
続いてステップS1235において、レンズマイコン113およびアダプタマイコン309は、他のマイコンのデータ受信が完了するまで、すなわち信号線CSがHiになるまで待機する。信号線CSがHiになるとステップS1236に進む。ステップS1236において、レンズマイコン113およびアダプタマイコン309は、ステップS1226でカメラマイコン205から受信したデータによりP2P通信の通信相手として指定されたか否かを判定する。レンズマイコン113およびアダプタマイコン309は、指定されていればステップS1237に進み、そうでければブロードキャスト通信モードのままブロードキャスト受信処理を終了する。
ステップS1237において、レンズマイコン113およびアダプタマイコン309は、信号線DATAからのデータ受信を許可する。続いてステップS1238において、レンズマイコン113およびアダプタマイコン309は、P2P通信モードに移行してブロードキャスト受信処理を終了する。
以上のブロードキャスト送信および受信処理により、カメラマイコン205からレンズマイコン113およびアダプタマイコン309へのブロードキャスト通信を用いたデータ通信を実現することができる。
次に、図13Aおよび図13Bのフローチャートを参照して、P2P通信モードでの処理について説明する。図13Aは、カメラマイコン205が行うP2P送信処理を示すフローチャートである。図13Bは、例としてカメラマイコン205によりP2P通信の通信相手として指定されたアダプタマイコン309が行うP2P受信処理のフローチャートである。P2P通信の通信相手として指定されたのがレンズマイコン113である場合も、図13Bと同様のP2P受信処理を行う。
P2P通信を開始するイベントが発生すると、カメラマイコン205は、ステップS1300において入出力切替えスイッチ222を動作させて信号線DATAをデータ出力部に接続し、ステップS1301でデータ送信を行う。全データの送信が完了すると、カメラマイコン205はステップS1302に進む。ここで送信するデータのバイト数には制限は無く、カメラマイコン205とアダプタマイコン309との間で認識が一致していればよい。
ステップS1302において、カメラマイコン205は、接地スイッチ221をオン(接続)することで信号線CSへのLow出力を開始して、P2P通信によるデータ送信の完了をアダプタマイコン309に通知する。アダプタマイコン309は、この通知を受けることで、図13Bで説明するP2P受信処理を開始する。
続いてステップS1303において、カメラマイコン205は、ステップS1302で送信したデータがアダプタマイコン309からのデータ送信も含む双方向コマンドであるか否かを判定する。カメラマイコン205は、双方向コマンドでなければS1304に進み、双方向コマンドであればステップS1305に進む。
ステップS1304において、カメラマイコン205は、アダプタマイコン309がデータ受信を完了したことを検出するために、接地スイッチ221をオフ(遮断)することで信号線CSへのLow出力を解除する。そしてステップS1309に進む。
ステップS1305において、カメラマイコン205は、入出力切換えスイッチ222を動作させることで信号線DATAをデータ入力部に接続する。そしてステップS1306に進む。ステップS1306において、カメラマイコン205は、アダプタマイコン309からのデータ送信が完了したことを検出するために、接地スイッチ221をオフ(遮断)することで信号線CSへのLow出力を解除する。そしてステップS1307に進む。
ステップS1307において、カメラマイコン205は、アダプタマイコン309からのデータ送信が完了するまで、すなわち信号線CSのLowになるまで待機する。信号線CSがLowになると、カメラマイコン205はアダプタマイコン309からのデータ送信が完了したと判定してステップS1308に進む。ここで受信するデータのバイト数にも制限は無く、カメラマイコン205とアダプタマイコン309の間で認識が一致していればよい。
ステップS1308において、カメラマイコン205は、信号線DATAから受信したデータの解析を行う。次にステップS1309では、カメラマイコン205は、信号線CSがHiになるまで待機する。そして信号線CSがHiになると、カメラマイコン205は今回のP2P通信が完了したと判定してステップS1310に進む。ステップS1310において、カメラマイコン205は、次の通信でブロードキャスト通信を開始するか否かを判定し、ブロードキャスト通信を開始する場合はステップS1311に進む。引き続きP2P通信を行う場合は、P2P通信モードのままP2P送信処理を終了する。ステップS1311において、カメラマイコン205は、ブロードキャスト通信モードに移行してP2P送信処理を終了する。
図13BのステップS1320において、アダプタマイコン309は、信号線DATAから受信したデータの解析を行う。続いてステップS1321において、アダプタマイコン309は、信号線CSがHiになるまで、すなわちステップS1304もしくはステップS1306の処理が完了するまで待機する。信号線CSがHiになると、ステップS1322に進む。
ステップS1322において、アダプタマイコン309は、ステップS1320で解析した受信データが、アダプタマイコン309からのデータ送信も含む双方向コマンドであるか否かを判定する。アダプタマイコン309は、双方向コマンドでなければステップS1323に進み、双方向コマンドであればステップS1324に進む。
ステップS1323において、アダプタマイコン309は、カメラマイコン205にデータ受信を完了したことを通知するために、接地スイッチ321をオン(接続)することで、CSへのLow出力を開始する。この後、ステップS1328に進む。
一方、ステップS1324において、アダプタマイコン309は、入出力切換えスイッチ322を動作させることで信号線DATAをデータ出力部に接続する。続いてステップS1325において、アダプタマイコン309は、信号線DATAを用いてデータ送信を行い、全データの送信が完了するとステップS1326に進む。ここで送信するデータのバイト数には制限は無く、カメラマイコン205とアダプタマイコン309の間で認識が一致していればよい。ステップS1326において、アダプタマイコン309は、接地スイッチ321をオン(接続)することで信号線CSへのLow出力を開始する。これにより、P2P通信によるデータ送信完了をカメラマイコン205へ通知する。
続いてステップS1327において、アダプタマイコン309は、入出力切換えスイッチ322を動作させることで信号線DATAをデータ入力部に接続する。そしてステップS1328に進む。ステップS1328において、アダプタマイコン309は、カメラマイコン205にP2P通信が完了したことを通知するために、接地スイッチ321をオフ(遮断)することで信号線CSへのLow出力を解除する。続いてステップS1329において、アダプタマイコン309は、カメラマイコン205がP2P通信を完了したことを検出するために信号線CSがHiになるまで待機する。信号線CSがHiになると、アダプタマイコン309はP2P受信処理を終了する。
以上の処理により、通信マスタであるカメラマイコン205から通信スレーブであるアダプタマイコン309へのP2P通信を用いたデータ送信を行うことができる。
次に、図14を参照して、カメラ本体20から交換レンズ10へフォーカスリミット範囲(合焦可能範囲)の情報を送信し、フォーカスレンズ104の駆動範囲を設定する流れについて説明する。図14は、カメラ本体20および交換レンズ10によるフォーカスリミット設定処理のフローチャートである。
ステップS1401においてカメラ本体20が起動すると、ステップS1402へ遷移する。ステップS1402において、カメラ本体20は、不図示の電源供給用マウント接点を介して、交換レンズ10へ電源を供給する。続いてステップS1403において、カメラ本体20は、第一通信にて交換レンズ10と初期通信を行う。当該初期通信では、カメラ本体20がどのような機能に対応しているかを交換レンズ10へ送信し、逆に交換レンズ10が対応している機能をカメラ本体20へ送信する。交換レンズ10の機能情報を取得する。より具体的にはたとえば交換レンズ10が防振機能を備えるか否か、あるいは図4、図5にて説明した通信モードM2、通信モードM3に対応するか否かなどの情報である。カメラ本体20および交換レンズ10の双方が通信モードM2および通信モードM3に対応していることが認識できた場合、初期通信中もしくは初期通信完了後、カメラ本体20および交換レンズ10は、より効率の良い通信モードへ移行する。初期通信終了後、ステップS1404へ遷移する。
ステップS1404において、ステップS1403で取得した交換レンズ10の機能情報を参照し、交換レンズ10がフォーカスリミット設定の機能を有するか否かを判定する。交換レンズ10がフォーカスリミット設定の機能を有する場合には、ステップS1405へ遷移し、交換レンズ10がフォーカスリミット設定の機能を有さない場合には、ステップS1406へ遷移する。
ステップS1405において、カメラ本体20は、フォーカスリミット設定UIを表示する。フォーカスリミット設定UIとしてはメニュー一覧に表示されるフォーカスリミット設定メニューでもよいし、ライブビュー上にメニュー遷移用の専用UIを表示してもよい。もしくは、実施例4に後述するようにライブビュー上に表示される距離表示をタッチしてフォーカスリミット範囲を変更するようなUIでもよい。ステップS1406において、カメラ本体20は、フォーカスリミット設定UIを表示しない。なお、フォーカスリミット設定UIが表示されている場合、カメラ本体20はそれを非表示とする。
ステップS1405またはステップS1406にてフォーカスリミット設定UI表示の処理が終了すると、カメラシステム1は、定常動作状態へ遷移する。定常動作状態とは、ステップS1407、S1411、S1407のサイクルであるユーザ操作受付状態、もしくはステップS1411においてフォーカス釦が押下されるなどしてステップS1412へ遷移し、オートフォーカス制御を行う状態である。また、非図示の防振処理および測光処理などのカメラ動作、さらにフォーカス釦が押下された際に行われるフォーカスレンズ駆動を伴うオートフォーカス制御に備えた現在位置におけるフォーカス検出動作も行われている。さらに、カメラ本体20は交換レンズ10から一定周期で交換レンズ10のステータス情報を取得している。交換レンズ10のステータス情報とは、フォーカスレンズ104、絞り、および防振機能の駆動状態、レンズ位置に伴う情報、交換レンズ10のスイッチ情報などであるが、これらに限定されるものではない。
ステップS1407においてユーザ操作によりフォーカスリミットが設定されたことを検知した場合、ステップS1408へ遷移する。ステップS1408において、カメラ本体20は交換レンズ10へユーザによって設定されたフォーカスリミットの情報を送信する。フォーカスリミットの情報は、フォーカスレンズの駆動範囲であって、被写体までの距離を通知してもよいし、UI表示にのっとった情報でもよい。フォーカスリミットの情報を交換レンズ10が受信すると、ステップS1409へ遷移する。
ステップS1409において、交換レンズ10は、受信したフォーカスリミット情報に伴う初期設定を行う。なお、フォーカスリミット情報に伴う初期設定を行うサブプロセスステップS1409の流れについては、図15を参照して後述する。交換レンズ10は初期設定が完了すると、カメラ本体20へ初期設定が終了したことを通知する。カメラ本体20がフォーカスリミット情報に伴う初期設定が完了したことを受信すると、ステップS1410へ遷移する。
ステップS1410において、カメラ本体20は、交換レンズ10から「交換レンズのステータス情報」を取得する。このときに取得される交換レンズのステータス情報は、ステップS1408で通知したフォーカスリミット情報を反映したものである。フォーカスリミット情報のステータス情報への反映についてはサブプロセスステップS1412の説明内で述べる。ステップS1410で交換レンズのステータス情報を取得すると、ステップS1411へ遷移し、前述の定常状態に入る。定常状態においては前述のとおり、一定周期で交換レンズのステータス情報を取得し続ける。
ステップS1411において、フォーカスボタンが押下されるとステップS1412へ遷移する。ステップS1412において、カメラ本体20から交換レンズ10へフォーカスレンズ駆動命令を送信と前述の交換レンズステータス情報の取得を繰り返すことでフォーカスレンズの駆動制御を行う。なお、フォーカスレンズ104の駆動制御行うサブプロセスステップS1412の流れについては、図16Aおよび図16Bを参照して後述する。
図15は、本実施例のカメラシステム1において、交換レンズ10がカメラ本体20からフォーカスリミット情報を受信した際に、交換レンズ10が初期設定を行うサブプロセスステップS1409の流れを説明する図である。当該初期設定では、交換レンズ10がカメラ本体20から通知されたフォーカスリミット情報に基づき、フォーカスレンズ駆動端情報を更新し、フォーカスレンズ駆動端情報に基づきフォーカス制御およびフォーカスレンズステータスの変更を行う。
ステップS1501にてサブプロセスが開始されると、ステップS1502に遷移する。ステップS1502において、カメラ本体20から通知されたフォーカスリミットを交換レンズ10が設定可能かを判定する。通知されたフォーカスリミットが設定できない場合としては、フォーカスリミットの幅が狭い場合や、第一通信のエラーなどによって無限側の設定値と至近側の設定値の関係が逆転している場合などが考えられる。そのような場合にはフォーカスリミットを設定しなくてもよいし、フォーカスリミットの幅が狭い場合はフォーカスをリミット位置に固定してもよい。フォーカスをリミット位置に固定するためには、指定されたリミット位置にフォーカスを駆動し、フォーカスリミットを再設定されるまではフォーカス駆動命令を受け付けないといった制御を行う。その際、レンズステータスを常にリミット端にいる状態としてカメラ本体20へ送信する。
ステップS1502において通知されたフォーカスリミットが設定できないと判定した場合、ステップS1506へ遷移する。ステップS1506において、カメラ本体20へフォーカスリミットの設定ができない旨通知し、ステップS1507へ遷移する。これにより、本サブプロセスステップS1410は終了する。
ステップS1502において、通知されたフォーカスリミットが設定可能と判定した場合には、ステップS1503へ遷移する。ステップS1503において、交換レンズ10は、フォーカスリミットの無限端および至近端の設定を行う。設定された無限端および至近端の情報は、カメラ本体20からフォーカスの駆動命令を受けた時に停止する位置の判定や、カメラ本体20へ送信するステータス情報を生成する際の判定、現在のレンズ位置から端位置までの最大デフォーカス量の算出に用いられる。なお、これらの情報の詳細は、後述のサブプロセスステップS1412の説明内で述べる。
無限端および至近端の設定がなされると、ステップS1504へ遷移する。ステップS1504において、現在のフォーカスレンズ位置がフォーカスリミット内かリミット外かを判定する。この判定は、ステップS1503で設定した無限端および至近端の設定値に基づいて行われる。ステップS1504で現在のフォーカスレンズ位置がフォーカスリミット外であった場合、ステップS1505へ遷移し、フォーカスリミット内へフォーカスレンズを駆動させる。レンズの駆動先としては、フォーカスリミットの中央でもよいし、無限側にはずれていたらフォーカスリミットの無限端、至近側にはずれていたらフォーカスリミットの至近端でもよい。現在のフォーカスレンズ位置がフォーカスリミットの範囲外であっても問題ない場合には、レンズ駆動しなくてもよい。
ステップS1505においてフォーカスレンズの駆動が終了すると、フォーカスリミットによる初期設定は完了となる。このためステップS1506へ遷移し、カメラ本体20へフォーカスリミットの変更に伴うレンズの初期設定が終了した旨通知する。通知が完了した場合、ステップS1507へ遷移し、本サブプロセスステップS1409は終了する。
図16Aおよび図16Bは、ユーザによってカメラ本体20のオートフォーカス釦が押下されたときのカメラ本体20および交換レンズ10のオートフォーカス制御であるサブプロセスステップS1412の流れの説明図である。当該オートフォーカス制御では、交換レンズ10は、サブプロセスステップS1409で設定したフォーカスリミット端設定に基づきカメラ本体20へ送信する情報を変更する。これによりカメラ本体20は、現在設定されているフォーカスリミットを考慮せずにオートフォーカス制御を行うことが可能となる。
ステップS1601においてサブプロセスが開始されると、ステップS1602へ遷移する。ステップS1602において、カメラ本体20から至近端もしくは無限端に向けてフォーカスレンズ104を駆動させる。一方向へフォーカスレンズ104を駆動させながら、一定周期で焦点検出処理を行う。検出された位相差信号から被写体を捕捉するまで一定駆動を行う。このようなフォーカスレンズ104の駆動量を指定せずに、フォーカス端までフォーカスレンズ104を駆動するレンズ動作をサーチ駆動と呼ぶ。ステップS1602において、カメラ本体20は、交換レンズ10へサーチ駆動命令を送る。
ステップS1603においてサーチ駆動命令を受信した交換レンズ10はステップS1604へ遷移し、カメラ本体20から指定された方向へフォーカスレンズをサーチ駆動させる。ステップS1602において交換レンズ10へフォーカスサーチ命令を送信したカメラ本体20は、ステップS1605へ遷移する。交換レンズ10がフォーカスレンズ104をサーチ駆動させている中で、カメラ本体20は焦点検出処理を行う。
焦点検出処理が終了すると、ステップS1606へ遷移し、位相差検出画素への入力信号より、算出手段205aはデフォーカス量を算出する。算出手段205aがデフォーカス量を算出すると、ステップS1607へ遷移する。ステップS1607において、カメラマイコン205は、被写体を捕捉したか否かを判定する。被写体が捕捉したか否かの判定は、例えばステップS1606でデフォーカス量が算出できたか否か、もしくはデフォーカスの算出に用いた信号から算出したデフォーカス量の信頼性により判定する。ステップS1607において被写体が捕捉できなかった場合、ステップS1608へ遷移する。
一方、フォーカスレンズ104のサーチ駆動中の交換レンズ10は、逐次レンズステータスの更新を行っている。レンズステータスには防振機構や絞り機構のアクチュエータ駆動状態などが含まれるが、本実施例ではフォーカスレンズ駆動に関するステータスに着目する。フォーカス駆動に関するステータスとしては、レンズの駆動状態(駆動中/停止中)はもとより、現在のレンズ位置からフォーカスリミット端までのデフォーカス量、端到達情報が挙げられる。レンズの駆動状態には、駆動方向(無限方向/至近方向)を含んでもよい。
現在のレンズ位置からフォーカスリミット端までのデフォーカス量とは、現在のレンズ位置から無限端までのデフォーカス量と現在のレンズ位置から至近端までのデフォーカス量から成る。ステップS1609で更新する。その後、ステップS1610へ遷移する。
端到達情報は、現在のレンズ位置がフォーカスリミット端か否かを表す情報である。サーチ駆動命令を受けた交換レンズ10は命令に従いフォーカスレンズのサーチ駆動を行う。ステップS1610でフォーカスリミット端に到達していない場合はステップS1609へ遷移し、フォーカスリミット端へ到達するかカメラ本体20からフォーカスレンズ停止命令を受けるまでステップS1609、S1610のループを回る。ステップS1610において、フォーカスリミット端へ到達するとステップS1611へ遷移する。フォーカスリミット端における停止位置としては、ユーザが設定した位置の通り停止位置を設定してもよいし、コントラストAFを採用している場合などにはユーザが設定した位置よりも少し外側に停止位置を設定してもよい。
ステップS1611において、レンズ駆動を停止し、それに伴いレンズの駆動状態を表すステータスを停止状態として、前記端到達情報を「端到達」に更新する。「端到達」状態としては、端に到達した状態を「真」、端に到達していない状態を「偽」のように2値で表現してもよいし、「無限端に到達」、「至近端に到達」、「端に到達していない」のようにどちらの端に到達したかも表現できるような定義を用いてもよい。
ここで、カメラ本体20の説明に戻る。ステップS1608へ遷移したカメラ本体20は、交換レンズ10へレンズステータス送信要求を送信し、交換レンズ10から送信されるレンズステータスを受信する。レンズステータスを取得したらステップS1612へ遷移する。
ステップS1611において、ステップS1607で取得したレンズステータスを確認して、フォーカスレンズがフォーカスリミット端に到達したか否かを判定する。フォーカスリミット端に到達していない場合、フォーカスレンズ104はサーチ駆動中である。このため、ステップS1605へ遷移して再度焦点検出処理を行う。フォーカスレンズ104がフォーカスリミット端に到達するかカメラ本体20が被写体を捕捉するまで、ステップS1605、S1606、S1611のループを回る。ステップS1611においてフォーカスレンズ104がフォーカスリミット端に達している場合、ステップS1612へ遷移する。
ステップS1612において、行ったサーチ回数を確認し、サーチ回数が所定数を超えていなかった場合、ステップS1613へ遷移する。ステップS1613において、カメラ本体20は現在のサーチ方向と逆方向へのサーチ命令を交換レンズ10へ送信する。現在のサーチ方向の判定は、交換レンズ10へ送信したサーチ命令を記憶しておいたものを用いてもよいし、前述のレンズステータス情報に含まれる駆動方向により判定してもよい。または、レンズステータス情報の「端到達情報」にどちらの端に到達したかを表現する情報が含まれているのであれば、それを用いて判定してもよい。ステップS1613にてサーチ命令を送信すると、ステップS1614へ遷移する。
ステップS1614において、カメラマイコン205は、ステップS1612の判定で用いるサーチ回数をインクリメントして、ステップS1605へ遷移する。ステップS1605において、カメラマイコン205は、再び焦点検出処理を行う。以後、逆方向のサーチ動作に対して、フォーカスレンズ104がフォーカスリミット端に到達するかカメラ本体20が被写体を捕捉するまで、ステップS1605、S1606、S1611のループを回る。
ステップS1612にて所定の回数を超えていた場合、ステップS1615へ遷移しサーチ回数をクリアする。その後、ステップS1616へ遷移し、今回のオートフォーカス制御の結果を「非合焦」として、本サブプロセスステップS1412を終了する。
ステップS1607において被写体を捕捉したと判定した場合、ステップS1618へ遷移する。被写体を捕捉したと判定した場合、カメラ本体20は、交換レンズ10へサーチ停止命令を送ってもよいし、交換レンズ10のサーチ駆動を継続したままでもよい。サーチ駆動を継続する場合、以後のデフォーカス量及びレンズ駆動量の計算にサーチ駆動量を考慮する。
ステップS1618において、カメラ本体20は、交換レンズ10へ現在レンズ位置からフォーカスリミット端までのデフォーカス量(第一デフォーカス量および第二デフォーカス量)を要求する命令を送る。現在レンズ位置からフォーカスリミット端までのデフォーカス量は、交換レンズ10がステップS1609で算出した値である。交換レンズ10からリミット端までのデフォーカス量を取得すると、ステップS1619へ遷移する。
ステップS1619において、カメラ本体20はステップS1606で算出した被写体位置までのデフォーカス量とステップS1618で取得したリミット端までのデフォーカス量とを比較する。被写体位置までのデフォーカス量がリミット端までのデフォーカス量より小さい場合には被写体がフォーカスリミット範囲内であると判定し、ステップS1620へ遷移する。被写体位置までのデフォーカス量がリミット端までのデフォーカス量より大きい場合、被写体がフォーカスリミット範囲外であると判定し、ステップS1605へ遷移する。ステップS1605において、カメラマイコン205は、再度サーチ動作を行う。ステップS1619でフォーカスリミット外と判定した被写体をステップS1607における被写体補足の判定から除外してもよいし、再度被写体を捕捉したと判定して、ステップS1618、S1619、S1605のループでサーチを継続してもよい。
ステップS1620において、カメラ本体20はステップS1606で算出したデフォーカス量に応じてフォーカスレンズ104を駆動量させる。フォーカスレンズ駆動を終えるとステップS1621へ遷移し、今回のオートフォーカス制御の結果を「合焦」として、本サブプロセスステップS1412を終了する。以上のように、ユーザから設定されたフォーカスリミットに基づいたフォーカス駆動制御が可能となる。
本実施例の構成によれば、メカ的なフォーカスリミット機構を持たない交換レンズ10に対して、フォーカスリミットを所望の箇所に設定することができる。またカメラ本体20は、フォーカスレンズ104の位置およびフォーカスリミット位置を監視することなく、フォーカスリミットが設定されていない状態と同様の制御によりユーザが設定したフォーカスリミットに基づくフォーカス駆動制御が可能となる。なお本実施例の制御は、交換レンズ式の撮像装置に限定されるものではなく、一体的に構成されたレンズ鏡筒を有するコンパクトカメラにも適用可能である。