(第1の実施の形態)
以下、本発明の第1の実施の形態に係るレンズ交換式のデジタルカメラについて説明する。なお、以下の説明では本発明に特に関係する箇所について述べ、それ以外の箇所については図示と説明を省略する。
図1(a)は、本発明を適用したレンズ交換式のカメラシステムを示した斜視図である。なお、図1(a)では本発明に係わる機器および装置のみを示し、それ以外の機器および装置については図示と説明を省略する。カメラシステム1は、カメラボディ100と、カメラボディ100に着脱可能な交換レンズ200とから構成される。
カメラボディ100には交換レンズ200が着脱可能に取り付けられるボディ側マウント部101が設けられている。ボディ側マウント部101の近傍(ボディ側マウント部101の内周側)の位置には、ボディ側マウント部101の内周側に部分的に突出する状態で、接点を保持する保持部(電気的な接続部)102が設けられている。この保持部102には複数の接点が設けられている。
また交換レンズ200には、ボディ側マウント部101に対応する、カメラボディ100が着脱可能に取り付けられるレンズ側マウント部201が設けられている。レンズ側マウント部201の近傍(レンズ側マウント部201の内周側)の位置には、レンズ側マウント部201の内周側に部分的に突出する状態で、接点を保持する保持部(電気的な接続部)202が設けられている。この保持部202には複数の接点が設けられている。
カメラボディ100に交換レンズ200が装着されると、複数の接点が設けられたカメラボディ100側の保持部102が、複数の接点が設けられた交換レンズ200側の保持部202に電気的に且つ物理的に接続される。両保持部102,202は、カメラボディ100から交換レンズ200への電力供給、および、カメラボディ100と交換レンズ200との信号の送受信に利用される。
カメラボディ100内のボディ側マウント部101後方には、例えばCMOSやCCDなどの撮像素子104が設けられる。カメラボディ100の上方には、レリーズスイッチ105が設けられている。ユーザはレリーズスイッチ105や不図示の操作部材を用いて、カメラボディ100に撮影指示や撮影条件の設定指示等を行う。交換レンズ200の側面(マウント面とは異なる面)には、交換レンズ200内に設けられたズームレンズ(後述)を駆動させるためのズーム操作部材であるスライドスイッチ219が設けられている。
図1(b)は、スライドスイッチ219の正面図である。スライドスイッチ219は可動域220、221を移動可能に構成されている。図1(b)の上方に位置する可動域220は望遠方向に、図1(b)の下方に位置する可動域221は広角方向に、それぞれ対応している。スライドスイッチ219は不図示のバネ等により、外部から力が加えられていない場合には両可動域220、221の中央に位置するように構成されている。撮影者がスライドスイッチ219を可動域220の方向に押し上げると、後述するズームレンズがスライドスイッチ219の移動量に応じた速度で駆動され、交換レンズ200の焦点距離が望遠側に変化する。同様に、可動域221の方向にスライドスイッチ219を動かすと、交換レンズ200の焦点距離が広角側に変化する。
図2は、本発明を適用したレンズ交換式のカメラシステムを示した断面図である。交換レンズ200は、被写体像を結像させる結像光学系210を備える。結像光学系210は同一の光軸O上に配置された複数のレンズ210a〜210dにより構成されている。これら複数のレンズ210a〜210dには、結像光学系210の焦点距離を変化させるズームレンズ210bおよび被写体像のピント位置を調節するためのフォーカスレンズ210cが含まれている。
結像光学系210は、いわゆるバリフォーカル光学系である。すなわち、ズームレンズ210bを駆動し結像光学系210の焦点距離が変化すると、撮影距離とフォーカスレンズ210cの光軸O上の位置との関係が変化する。例えば、結像光学系210の焦点距離が20mmとなる位置にズームレンズ210bがあり、撮影距離が3m(撮像素子104の撮像面から3m先の被写体にピントが合う状態)となる位置にフォーカスレンズ210cがあるとき、ズームレンズ210bが駆動され焦点距離が40mmになると、フォーカスレンズ210cの撮影距離は3mではない距離(例えば4mや6m)となる。ズームレンズ210bとフォーカスレンズ210cとの関係については後に詳述する。
交換レンズ200内部には、交換レンズ200の各部の制御を司るレンズ制御部203が設けられている。レンズ制御部203は不図示のマイクロコンピュータおよびその周辺回路等から構成される。レンズ制御部203には、レンズ側第1通信部217、レンズ側第2通信部218、ズーム駆動部212、フォーカス駆動部214、ROM215、およびRAM216が接続されている。
レンズ側第1通信部217およびレンズ側第2通信部218は、保持部102、202の各通信接点を介してカメラボディ100との信号の送受信を行う。このレンズ側第1通信部217とレンズ側第2通信部218はそれぞれ、交換レンズ200側の通信インターフェースである。レンズ制御部203はこれら通信インターフェースを使って、カメラボディ100(後述するボディ制御部103)との間で後述する各通信(ホットライン通信、コマンドデータ通信)を行う。
ズーム駆動部212は駆動力を発生させるモータ(例えばステッピングモータ等のアクチュエータ)と、当該駆動力をズームレンズ210bに伝達する伝達系(例えば複数のギア等を組み合わせたもの)を有している。ズーム駆動部212はレンズ制御部203により制御され、ズームレンズ210bを、レンズ制御部203が指定した駆動速度で光軸O方向に駆動する。つまり、交換レンズ200は、いわゆるパワーズーム機能を有するズームレンズである。フォーカス駆動部214は、駆動対象がフォーカスレンズ210cであることを除き、ズーム駆動部212と同様の構成を有する。
レンズ制御部203は、ズームレンズ210bおよびフォーカスレンズ210cの、光軸O上の位置を取得可能に構成されている。例えば不図示のエンコーダを設けることによりズームレンズ210bやフォーカスレンズ210cの位置を検出するようにしてもよいし、ズームレンズ210bやフォーカスレンズ210cを駆動するアクチュエータ(ステッピングモータ等)への入力信号を監視することにより位置を検出するようにしてもよい。
ROM215は不揮発性の記憶媒体であり、レンズ制御部203が実行する所定の制御プログラムが予め記憶される。RAM216は揮発性の記憶媒体であり、レンズ制御部203により各種データの一時記憶領域として利用される。
撮像素子104の前面には、撮像素子104の露光状態を制御するためのシャッター115と、光学的ローパスフィルターや赤外線カットフィルターを組み合わせた光学フィルター116とが設けられている。結像光学系210を透過した被写体光は、シャッター115およびフィルター116を介して撮像素子104に入射する。
カメラボディ100内部には、カメラボディ100の各部の制御を司るボディ制御部103が設けられている。ボディ制御部103は不図示のマイクロコンピュータ、RAMおよびその周辺回路等から構成される。
ボディ制御部103には、ボディ側第1通信部117およびボディ側第2通信部118が接続されている。ボディ側第1通信部117は保持部102に接続されており、保持部102に設けられた複数の接点を介して、レンズ側第1通信部217と信号の送受信を行うことができる。同様に、ボディ側第2通信部118はレンズ側第2通信部218と信号の送受信を行うことができる。換言すれば、ボディ側第1通信部117とボディ側第2通信部118はそれぞれ、ボディ側の通信インターフェースである。ボディ制御部103はこれら通信インターフェースを使って、交換レンズ200(レンズ制御部203)との間で、後述する各通信(ホットライン通信、コマンドデータ通信)を行う。
カメラボディ100の背面には、LCDパネル等により構成される表示装置111が配置される。ボディ制御部103はこの表示装置111に対し、撮像素子104の出力に基づく被写体の画像(いわゆるスルー画)や、撮影条件等を設定するための各種のメニュー画面を表示する。
レンズ制御部203は、第1駆動制御部203aと、第2駆動制御部203bと、駆動状態送信部203cとを、機能的に備える。これらの各部は、レンズ制御部203がROM215に格納されている所定の制御プログラムを実行することにより、ソフトウェア的に実現される。なお、これらの各部を、同等の機能を有する電子回路として構成することも可能である。
第1駆動制御部203aは、カメラボディ100から送信された駆動コマンド(駆動指示)に基づき、フォーカスレンズ210cの駆動制御を行う。第2駆動制御部203bは、スライドスイッチ219の操作に基づき、フォーカスレンズ210cの駆動制御を行う。駆動状態送信部203cは、カメラボディ100から送信された状態確認コマンドに応じて、カメラボディ100に駆動状態データを送信する。なお、これらの各部の動作については後に詳述する。
(保持部102,202の説明)
図3は保持部102,202の詳細を示す模式図である。なお図3において保持部102がボディ側マウント部101の右側に配置されているのは、実際のマウント構造に倣ったものである。すなわち、本実施形態の保持部102は、ボディ側マウント部101のマウント面よりも奥まった場所(図3においてボディ側マウント部101よりも右側の場所)に配置されている。同様に、保持部202がレンズ側マウント部201の右側に配置されているのは、本実施形態の保持部202がレンズ側マウント部201のマウント面よりも突出した場所に配置されていることを表している。保持部102と保持部202がこのように配置されているので、ボディ側マウント部101のマウント面とレンズ側マウント部201のマウント面とを接触させて、カメラボディ100と交換レンズ200とをマウント結合させると、保持部102と保持部202とが接続され、両保持部に設けられている電気接点同士も接続することになる。このようなマウント構造については周知であるのでこれ以上の説明、図示を省略する。
図3に示すように、保持部102にはBP1〜BP12の12個の接点が存在する。また保持部202には、上記の12個の接点にそれぞれ対応する、LP1〜LP12の12個の接点が存在する。
接点BP1および接点BP2は、カメラボディ100内の第1電源回路130に接続されている。第1電源回路130は、接点BP1に、アクチュエータ等の駆動系を有し消費電力が比較的大きい回路(ズーム駆動部212、絞り駆動部213、フォーカス駆動部214など)を除く交換レンズ200内の各部の動作電圧を供給する。すなわち、接点BP1および接点LP1からは、上記の各駆動部を除く交換レンズ200内の各部の動作電圧が供給される。この接点BP1に供給可能な電圧値は、最小電圧値〜最大電圧値の範囲(例えば3V台での電圧幅)をもつが、標準的に供給される電圧値はその最大電圧値と最小電圧値の中間値近傍の電圧値である。そしてこれにより、カメラボディ100側から交換レンズ200側に供給される電流値は、電源ON状態において、約数10mA〜数100mAの範囲内の電流値である。
接点BP2は、接点BP1に与えられる上記動作電圧に対応する接地端子である。すなわち、接点BP2および接点LP2は、上記の動作電圧に対応する接地端子電圧である。
以下の説明では、接点BP1および接点LP1により構成される信号線を、信号線V33と呼ぶ。また、接点BP2および接点LP2により構成される信号線を、信号線GNDと呼ぶ。これらの接点LP1,LP2、BP1,BP2は、カメラボディ100側から交換レンズ200側へ電源供給するための、電源系接点を構成する。
接点BP3,BP4,BP5,およびBP6は、ボディ側第1通信部117に接続されている。これらの接点に対応する交換レンズ200側の接点LP3,LP4,LP5,およびLP6は、レンズ側第1通信部217に接続されている。ボディ側第1通信部117とレンズ側第1通信部217は、これらの接点(通信系接点)を用いて、互いに信号の送受信を行う。ボディ側第1通信部117とレンズ側第1通信部217が行う通信の内容については、後に詳述する。
なお以下の説明では、接点BP3および接点LP3により構成される信号線を、信号線CLKと呼ぶ。同様に、接点BP4および接点LP4により構成される信号線を信号線BDATと、接点BP5および接点LP5により構成される信号線を信号線LDATと、接点BP6および接点LP6により構成される信号線を信号線RDYと呼ぶ。
接点BP7,BP8,BP9,およびBP10は、ボディ側第2通信部118に接続されている。これらの接点に対応する交換レンズ200側の接点LP7,LP8,LP9,およびLP10は、レンズ側第2通信部218に接続されている。レンズ側第2通信部218は、これらの接点(通信系接点)を用いて、ボディ側第2通信部118に信号の送信を行う。ボディ側第2通信部118とレンズ側第2通信部218が行う通信の内容については、後に詳述する。
なお以下の説明では、接点BP7および接点LP7により構成される信号線を、信号線HREQと呼ぶ。同様に、接点BP8および接点LP8により構成される信号線を信号線HANSと、接点BP9および接点LP9により構成される信号線を信号線HCLKと、接点BP10および接点LP10により構成される信号線を信号線HDATと呼ぶ。
接点BP11および接点BP12は、カメラボディ100内の第2電源回路131に接続されている。第2電源回路131は、接点BP12に、アクチュエータ等の駆動系を有し消費電力が比較的大きい回路(ズーム駆動部212、絞り駆動部213、フォーカス駆動部214など)の駆動電圧を供給する。すなわち、接点BP12および接点LP12からは、ズーム駆動部212、絞り駆動部213、およびフォーカス駆動部214の駆動電圧が供給される。この接点BP12に供給可能な電圧値は、最小電圧値〜最大電圧値の範囲をもつが、その範囲はいずれも、前述した接点BP1に供給可能な電圧値範囲よりも大きい電圧値である(例えば、接点BP12に供給可能な最大電圧値は、接点BP1に供給可能な最大電圧値の数倍程度)。即ち接点BP12に供給される電圧値は、上述の接点BP1に供給される電圧値とは、その大きさが異なる電圧値である。なお接点BP12に標準的に供給される電圧値は、接点BP12に供給可能な最大電圧値と最小電圧値の中間値近傍の電圧値である。そしてこれにより、カメラボディ100側から交換レンズ200側に供給される電流は、電源ON状態において、約10mA〜数Aの電流値となる。
接点BP11は、接点BP12に与えられる上記駆動電圧に対応する接地端子である。すなわち、接点BP11および接点LP11は、上記駆動電圧に対応する接地端子である。
以下の説明では、接点BP11および接点LP11により構成される信号線を、信号線PGNDと呼ぶ。また、接点BP12および接点LP12により構成される信号線を、信号線BATと呼ぶ。これらの接点LP11,LP12、BP11,BP12は、カメラボディ100側から交換レンズ200側へ電源供給するための、電源系接点を構成する。
なお、上述の接点BP12、接点LP12に供給される電圧値(電流値)と、接点BP1,LP1に供給される電圧値(電流値)との大小関係から明らかなように、それら各接点に供給される電圧にそれぞれに対する接地端子となる接点BP11および接点LP11を流れる電流の最大値と最小値との差は、接点BP2および接点LP2を流れる電流の最大値と最小値との差よりも大きくなっている。これは、アクチュエータ等の駆動系を有する各駆動部が消費する電力が、交換レンズ200内のレンズ制御部203等の電子回路に比べて大きいこと、ならびに、それら各駆動部により駆動される被駆動部材を駆動する必要がない場合には各駆動部が電力を消費しないことに拠る。
(コマンドデータ通信の説明)
レンズ制御部203は、レンズ側第1通信部217を制御して、接点LP3〜LP6、すなわち信号線CLK,BDAT,LDAT,およびRDYを介して、ボディ側第1通信部117からの制御データの受信と、ボディ側第1通信部117への応答データの送信とを並行して、第1の所定周期(本実施形態では例えば16ミリ秒)で行う。以下、レンズ側第1通信部217とボディ側第1通信部117との間で行われる通信の詳細を説明する。
なお、本実施形態において、レンズ制御部203およびレンズ側第1通信部217と、ボディ制御部103およびボディ側第1通信部117との間で行われる通信を「コマンドデータ通信」と称する。また、コマンドデータ通信に利用される4つの信号線(信号線CLK,BDAT,LDAT,およびRDY)から成る伝送路を第1伝送路と称する。
図4は、コマンドデータ通信の例を示すタイミングチャートである。ボディ制御部103およびボディ側第1通信部117は、コマンドデータ通信の開始時(T1)、まず信号線RDYの信号レベルを確認する。信号線RDYの信号レベルはレンズ側第1通信部217の通信可否を表している。レンズ制御部203およびレンズ側第1通信部217は、通信できない状態である場合には、接点LP6からH(High)レベルの信号を出力する。すなわち、信号線RDYの信号レベルをHレベルにする。ボディ制御部103およびボディ側第1通信部117は、信号線RDYがHレベルである場合、これがLレベルになるまで通信開始しない。また通信中の次の処理を実行しない。
信号線RDYがL(Low)レベルであれば、ボディ制御部103およびボディ側第1通信部117は接点BP3からクロック信号401を出力する。すなわち、信号線CLKを介してレンズ側第1通信部217にクロック信号401を伝送する。ボディ制御部103およびボディ側第1通信部117はこのクロック信号401に同期して、接点BP4から制御データの前半部分であるボディ側コマンドパケット信号402を出力する。すなわち、信号線BDATを介してレンズ側第1通信部217にボディ側コマンドパケット信号402を伝送する。
また、信号線CLKにクロック信号401が出力されると、レンズ制御部203およびレンズ側第1通信部217は、クロック信号401に同期して接点LP5から応答データの前半部分であるレンズ側コマンドパケット信号403を出力する。すなわち、信号線LDATを介してボディ側第1通信部117にレンズ側コマンドパケット信号403を伝送する。
レンズ制御部203およびレンズ側第1通信部217は、レンズ側コマンドパケット信号403の送信完了に応じて、信号線RDYの信号レベルをHレベルにする(T2)。レンズ制御部203は、受信したボディ側コマンドパケット信号402の内容に応じた処理
である第1制御処理404(後述)を開始する。
レンズ制御部203は第1制御処理404が完了すると、レンズ側第1通信部217に第1制御処理404の完了を通知する。レンズ側第1通信部217はこの通知に応じて、接点LP6からLレベルの信号を出力する。すなわち、信号線RDYの信号レベルをLレベルにする(T3)。ボディ制御部103およびボディ側第1通信部117はこの信号レベルの変化に応じて、接点BP3からクロック信号405を出力する。すなわち、信号線CLKを介してレンズ側第1通信部217にクロック信号405を伝送する。
ボディ制御部103およびボディ側第1通信部117はこのクロック信号405に同期して、接点BP4から制御データの後半部分であるボディ側データパケット信号406を出力する。すなわち、信号線BDATを介してレンズ側第1通信部217にボディ側データパケット信号406を伝送する。
また、信号線CLKにクロック信号405が出力されると、レンズ制御部203およびレンズ側第1通信部217はクロック信号405に同期して接点LP5から応答データの後半部分であるレンズ側データパケット信号407を出力する。すなわち、信号線LDATを介してボディ側第1通信部117にレンズ側データパケット信号407を伝送する。
レンズ制御部203およびレンズ側第1通信部217は、レンズ側データパケット信号407の送信完了に応じて、信号線RDYの信号レベルを再びHレベルにする(T4)。レンズ制御部203は、受信したボディ側データパケット信号406の内容に応じた処理である第2制御処理408(後述)を開始する。
ここで、レンズ制御部203が行う第1制御処理404、および第2制御処理408について述べる。
例えば、受信したボディ側コマンドパケット信号402が、交換レンズ側の特定のデータを要求する内容であった場合について述べる。レンズ制御部203は、第1制御処理404として、ボディ側コマンドパケット信号402の内容を解析処理すると共に、当該要求されている特定データを生成する処理を実行する。更にレンズ制御部203は、第1制御処理404として、コマンドパケット信号402に含まれているチェックサムデータを用いて、コマンドパケット信号402の通信にエラーがないか否かをデータバイト数から簡易的にチェックする通信エラーチェック処理をも実行する。この第1制御処理404で生成された特定データの信号は、レンズ側データパケット信号407としてボディ側に出力される。なお、この場合においてコマンドパケット信号402の後でボディ側から出力されるボディ側データパケット信号406は、レンズ側にとっては特に意味をなさないダミーデータ信号(チェックサムデータは含む)となっている。この場合にはレンズ制御部203は、第2制御処理408として、ボディ側データパケット信号406に含まれるチェックサムデータを用いた、上述の如き通信エラーチェック処理を実行する。
また例えば、受信したボディ側コマンドパケット信号402が、レンズ側の被駆動部材を駆動する指示であった場合について述べる。例えば、コマンドパケット信号402がフォーカスレンズ210cの駆動指示であり、受信したボディ側データパケット信号406がフォーカスレンズ210cの駆動量であった場合について述べる。レンズ制御部203は、第1制御処理404として、コマンドパケット信号402の内容を解析処理すると共に、その内容を理解したことを表す了解信号を生成する。更にレンズ制御部203は、第1制御処理404として、コマンドパケット信号402に含まれているチェックサムデータを用いて、上述の如き通信エラーチェック処理をも実行する。この第1制御処理404で生成された了解信号は、レンズ側データパケット信号407としてボディ側に出力される。またレンズ制御部203は、第2制御処理408として、ボディ側データパケット信号406の内容の解析処理を実行すると共に、ボディ側データパケット信号406に含まれるチェックサムデータを用いた上述の如き通信エラーチェック処理を実行する。
レンズ制御部203は第2制御処理408が完了すると、レンズ側第1通信部217に第2制御処理408の完了を通知する。これによってレンズ制御部203は、レンズ側第1通信部217に、接点LP6からLレベルの信号を出力させる。すなわち、信号線RDYの信号レベルをLレベルにする(T5)。
なお受信したボディ側コマンドパケット信号402が、上述のようなレンズ側の被駆動部材(たとえばフォーカスレンズ210c)を駆動する指示であった場合、レンズ制御部203は、レンズ側第1通信部217に信号線RDYの信号レベルをLレベルにさせつつ、フォーカス駆動部214に対して、フォーカスレンズ210cを当該駆動量だけ駆動する処理を実行させる。
上述した時刻T1〜時刻T5に行われた通信が、1回のコマンドデータ通信である。上述のように、1回のコマンドデータ通信では、ボディ制御部103およびボディ側第1通信部117により、ボディ側コマンドパケット信号402およびボディ側データパケット信号406がそれぞれ1つずつ送信される。すなわち、処理の都合上2つに分割されて送信されるものの、ボディ側コマンドパケット信号402およびボディ側データパケット信号406は2つ合わせて1つの制御データを構成する。
同様に、1回のコマンドデータ通信では、レンズ制御部203およびレンズ側第1通信部217によりレンズ側コマンドパケット信号403およびレンズ側データパケット信号407がそれぞれ1つずつ送信される。すなわち、レンズ側コマンドパケット信号403およびレンズ側データパケット信号407は2つ合わせて1つの応答データを構成する。
以上のように、レンズ制御部203およびレンズ側第1通信部217は、ボディ側第1通信部117からの制御データの受信と、ボディ側第1通信部117への応答データの送信とを並行して行う。コマンドデータ通信に利用される接点LP6および接点BP6は、他のクロック信号に同期しない非同期信号(信号線RDYの信号レベル/H(High)レベル、またはL(Low)レベル)が伝送される接点である。
(ホットライン通信の説明)
レンズ制御部203は、レンズ側第2通信部218を制御して、接点LP7〜LP10、すなわち信号線HREQ,HANS,HCLK,およびHDATを介して、ボディ側第2通信部118へレンズ位置データを送信する。以下、レンズ側第2通信部218とボディ側第2通信部118との間で行われる通信の詳細を説明する。
なお、本実施形態において、レンズ制御部203およびレンズ側第2通信部218と、ボディ制御部103およびボディ側第2通信部118との間で行われる通信を「ホットライン通信」と称する。また、ホットライン通信に利用される4つの信号線(信号線HREQ,HANS,HCLK,およびHDAT)から成る伝送路を第2伝送路と称する。
図5は、ホットライン通信の例を示すタイミングチャートである。本実施形態のボディ制御部103は、ホットライン通信を第2の所定周期(本実施形態では例えば1ミリ秒)毎に開始するように構成されている。この周期は、コマンドデータ通信を行う周期よりも短い。図5(a)は、ホットライン通信が所定周期Tn毎に繰り返し実行されている様子を示す図である。繰り返し実行されるホットライン通信のうち、ある1回の通信の期間Txを拡大した様子が図5(b)に示されている。以下、図5(b)のタイミングチャートに基づいて、ホットライン通信の手順を説明する。
ボディ制御部103およびボディ側第2通信部118は、ホットライン通信の開始時(T6)、まず接点BP7からLレベルの信号を出力する。すなわち、信号線HREQの信号レベルをLレベルにする。レンズ側第2通信部218は、この信号が接点LP7に入力されたことをレンズ制御部203に通知する。レンズ制御部203はこの通知に応じて、レンズ位置データを生成する生成処理501の実行を開始する。生成処理501とは、レンズ制御部203が不図示のフォーカシングレンズ位置検出部にフォーカスレンズ210cの位置を検出させ、検出結果を表すレンズ位置データを生成する処理である。
レンズ制御部203が生成処理501を実行完了すると、レンズ制御部203およびレンズ側第2通信部218は接点LP8からLレベルの信号を出力する(T7)。すなわち、信号線HANSの信号レベルをLレベルにする。ボディ制御部103およびボディ側第2通信部118は、この信号が接点BP8に入力されたことに応じて、接点BP9からクロック信号502を出力する。すなわち、信号線HCLKを介してレンズ側第2通信部218にクロック信号を伝送する。
レンズ制御部203およびレンズ側第2通信部218は、このクロック信号502に同期して、接点LP10からレンズ位置データを表すレンズ位置データ信号503を出力する。すなわち、信号線HDATを介してボディ側第2通信部118にレンズ位置データ信号503を伝送する。
レンズ位置データ信号503の送信が完了すると、レンズ制御部203およびレンズ側第2通信部218は接点LP8からHレベルの信号を出力する。すなわち、信号線HANSの信号レベルをHレベルにする(T8)。ボディ側第2通信部118は、この信号が接点BP8に入力されたことに応じて、接点LP7からHレベルの信号を出力する。すなわち、信号線HREQの信号レベルをHレベルにする(T9)。
上述した時刻T6〜時刻T9に行われた通信が、1回のホットライン通信である。上述のように、1回のホットライン通信では、レンズ制御部203およびレンズ側第2通信部218により、レンズ位置データ信号503が1つ送信される。ホットライン通信に利用される接点LP7、LP8、BP7、およびBP8は、他のクロック信号に同期しない非同期信号が伝送される接点である。つまり接点LP7およびBP7は、非同期信号(信号線HREQの信号レベル/H(High)レベル、またはL(Low)レベル)が伝送される接点であり、接点LP8およびBP8は、非同期信号(信号線HANSの信号レベル/H(High)レベル、またはL(Low)レベル)が伝送される接点である。
なお、コマンドデータ通信とホットライン通信は、同時にも或いは一部並行的にも実行することが可能である。すなわち、レンズ側第1通信部217とレンズ側第2通信部218との一方は、その他方がカメラボディ100と通信を行っている場合であってもカメラボディ100と通信を行うことが可能である。
(ズーム制御の説明)
ボディ制御部103は、コマンドデータ通信により、レンズ制御部203にズーム駆動コマンドを送信可能に構成されている。ズーム駆動コマンドは、焦点距離を少なくとも含むコマンドである。交換レンズ200内のROM215には、ズームレンズ210bの光軸O上の位置と所定の焦点距離との対応を表すテーブルが記憶されている。第2駆動制御部203bはこのズーム駆動コマンドを受信すると、上記のテーブルを参照し、ズーム駆動コマンドにより指定された焦点距離と対応するズームレンズ210bの位置を取得する。そして、ズームレンズ210bが取得した位置に駆動されるようにズーム駆動部212を制御する。その結果、結像光学系210の焦点距離はズーム駆動コマンドにより指定された焦点距離になる。
撮影者により交換レンズ200のズーム操作部材(スライドスイッチ219)が操作されると、レンズ制御部203は、そのズーム操作部材(スライドスイッチ219)への操作に応じたスライドスイッチ219の位置情報(換言すれば、ズームレンズのズーミング方向やズーミング速度を指定するための情報)をコマンドデータ通信系を介してカメラボディ側のボディ制御部103に送信する。ボディ制御部103では、交換レンズ200から受信したこのスライドスイッチ219の位置情報に基づいて、交換レンズ200に対するズーミング指示を示すズーム用コマンドデータ(ズーム駆動コマンド)を生成する。具体的には、カメラボディ100は、ズーム操作部材(スライドスイッチ219)の位置情報に応じたテーブル情報を予め備えている。このテーブル情報は、スライドスイッチ219の操作位置と、ズームレンズ210bに対する指令内容(テレ方向、ワイド方向などのズーミング方向と、高速、中速、低速などのズーミング速度)とを関係付けるものである。そしてボディ制御部103は、交換レンズ200に送信すべきズーム駆動コマンドを準備すると、それをコマンドデータ通信系を用いてレンズ制御部203に送信する。
図6は、ズームレンズ210bとフォーカスレンズ210cの位置関係を示す図である。図6に示した曲線L0〜L4は、それぞれ特定の撮影距離に対応するズーム位置およびフォーカスレンズ210cの光軸上の位置(それぞれの撮影距離に対して合焦する合焦レンズ位置)を表す曲線である。横軸がズーム位置を、縦軸がフォーカスレンズ210cの光軸O上の位置(合焦レンズ位置)にそれぞれ対応している。なおズーム位置とは、交換レンズ200において予め設定された、ボディ制御部103がズームレンズ210bを移動させる対象とする離散的な位置である。レンズ制御部203は図6に示すズーム位置より細かくズームレンズ210bの位置を取得可能である。
図6に0〜5という整数で示した各ズーム位置にはそれぞれ所定の焦点距離が対応している。ボディ制御部103がズーム駆動コマンドを送信すると、ズームレンズ210bは図6に0〜5という数値で示した各ズーム位置から、ズーム駆動コマンドにより指定された焦点距離に対応するズーム位置を選択する。そして、そのズーム位置に対応する光軸O上の位置にズームレンズ210bを駆動させる。
本実施形態の結像光学系210はいわゆるバリフォーカル光学系であるので、図6に示すように、ズームレンズ210bを駆動する際に撮影距離を一定に保つためには、ズームレンズ210bの駆動に応じてフォーカスレンズ210cを駆動させる必要がある。例えば図6では、曲線L0が無限遠の撮影距離に対応するフォーカスレンズ210cの位置を表している。同様に曲線L1、L2、L3、L4は、無限遠側から順に、それぞれ特定の撮影距離(例えば6m、3m、1m、50cm等)に対応するフォーカスレンズ210cの位置を表している。
ズーム位置が1のとき、フォーカスレンズ210cが図6にP(0,1)で表す位置にあれば、結像光学系210の撮影距離は無限遠である。すなわち、結像光学系210は、無限遠に位置する被写体にピントが合った状態である。なお図6では、m番目の撮影距離とk番目のズーム位置に対応する点を、P(m,k)の形で表している。以下の説明でも同様に、撮影距離mとズーム位置kに対応する点をP(m,k)として表す。
ここでズーム位置が1より大きくなるようにズームレンズ210bが駆動されると、撮影距離を無限遠に保つためには、フォーカスレンズ210cを曲線L0に沿って駆動させなければならない。例えばズーム位置が2になったとき、フォーカスレンズ210cがP(0,2)の位置に来るように、ズーム位置が3になったとき、フォーカスレンズ210cがP(0,3)の位置に来るように、それぞれフォーカスレンズ210cを駆動させなければならない。
交換レンズ200内のROM215には、図6に示した曲線L0〜L4上の点が離散的に記憶されている。具体的には、曲線L0〜L4と0〜5の各ズーム位置に対応する点(図6にP(m,k)の形で示した点)の座標が、当該曲線の撮影距離と共に記憶されている。すなわちROM215には、複数のズームレンズ210bの位置の各々について、複数の撮影距離にそれぞれ対応するフォーカスレンズ210cの位置(合焦レンズ位置)が記憶されている。以下の説明では、ROM215に記憶されているこれらのフォーカスレンズ210cの位置を、フォーカスレンズ210cの位置情報(あるいは、単に位置情報)と呼ぶ。
なお、図6では5つの撮影距離にそれぞれ対応する曲線L0〜L4と、6つのズーム位置0〜5を示しているが、これはROM215に記憶されている位置情報の一部を説明のために示したに過ぎず、実際には更に多数の撮影距離およびズーム位置に対応する位置情報が記憶されている。
第2駆動制御部203bは、ズームレンズ210bを駆動させる際、撮影距離が維持されるようにフォーカスレンズ210cを並行して駆動させる、いわゆるズームトラッキングを行う。これにより、バリフォーカルな光学系を有する交換レンズ200であるにも関わらず、ユーザはあたかもバリフォーカルでない光学系を有しているかのようにズーム操作を行うことができる。ズームトラッキングは、ズームレンズ210bとフォーカスレンズ210cとをそれぞれ並列に駆動させることにより、撮影距離を一定に保ったまま結像光学系210の焦点距離を変化させる駆動制御である。
(自動焦点調節処理の説明)
ユーザが所定のAF操作(例えばレリーズスイッチ105の半押し操作)を行うと、ボディ制御部103は、いわゆるコントラスト検出方式の自動焦点調節処理を実行する。コントラスト検出方式の自動焦点調節処理は、撮像素子104から出力される撮像信号を用いて周知のコントラスト検出演算を行いながらフォーカスレンズ210cを駆動させ、焦点評価値(コントラスト値)がピークとなるフォーカスレンズ210cの位置を検出することにより自動焦点調節を行う処理である。
レンズ制御部203は、自動焦点調節処理のために、第1駆動コマンドと、第2駆動コマンドと、第3駆動コマンドと、の3種類の駆動指示に対応している。ボディ制御部103がコマンドデータ通信によりこれらの各駆動コマンドをレンズ制御部203に送信すると、第1駆動制御部203aはフォーカスレンズ210cの駆動制御を実行する。
第1駆動コマンドは、フォーカスレンズ210cを自動焦点調節処理の初期位置に駆動させるコマンドである。自動焦点調節処理の初期位置は、例えば至近位置や無限遠位置である。第1駆動制御部203aは、レンズ側第1通信部217が第1駆動コマンドを受信すると、フォーカスレンズ210cを所定の初期位置まで駆動する。
第2駆動コマンドは、フォーカスレンズ210cを所定のスキャン範囲で駆動させる、いわゆるスキャン動作を実行させるコマンドである。第1駆動制御部203aは、レンズ側第1通信部217が第2駆動コマンドを受信すると、フォーカスレンズ210cを所定のスキャン範囲で駆動させる。このとき、第1駆動制御部203aは、被写体像の像面移動速度が一定となるようにフォーカスレンズ210cを駆動させる。
第3駆動コマンドは、フォーカスレンズ210cを指定した絶対位置まで駆動させるコマンドである。第3駆動コマンドには、制御パラメータとして、フォーカスレンズ210cの絶対位置情報が含まれる。第1駆動制御部203aは、レンズ側第1通信部217が第3駆動コマンドを受信すると、フォーカスレンズ210cを指定された絶対位置まで駆動させる。
これら3種類の駆動コマンドは、制御パラメータとして識別子を含んでいる。識別子は、各々の駆動コマンドについて一意な識別子であり、例えば0以上の整数値である。ボディ制御部103は、駆動コマンドを送るたびに、異なる整数値を識別子として駆動コマンドに付与する。
例えば、ある時刻にボディ制御部103が識別子「1」の付与された第1駆動コマンドをレンズ制御部203に送信したとする。この後、これとは異なる時刻にボディ制御部103が第1駆動コマンドをレンズ制御部203に送信する場合、ボディ制御部103は当該第1駆動コマンドに、「1」とは異なる識別子(例えば「2」)を付与する。
なお、各々の駆動コマンドについて識別子が一意であると説明したが、カメラボディ100の電源断の前後で識別子が一意である必要はない。また、極めて長い期間の前後で識別子が一意である必要もない。例えば、識別子を16ビットの符号なし整数値とした場合、識別子は0〜65535の値をとる。識別子としてこれら65536通りの整数値を順に使用した場合、65537個目の駆動コマンドは、1個目の駆動コマンドと同一の識別子を有することになるが、このような識別子であっても本発明においては十分な一意性を有しているものとする。
レンズ制御部203は、以上で説明した3種類の駆動コマンドに加えて、更に、状態確認コマンドに対応している。レンズ制御部203は、更に、状態確認コマンドに対応している。ボディ制御部103がコマンドデータ通信により状態確認コマンドをレンズ制御部203に送信すると、駆動状態送信部203cはこれに応じて、第1駆動制御部203aの現在の駆動制御状態を表す駆動状態データをボディ制御部103に送信する。第1駆動制御部203aの駆動制御状態とは、ボディ制御部103から送信された上記3種類の駆動コマンドの実行状態のことである。
第1駆動制御部203aがボディ制御部103から送信された駆動コマンドを実行中である場合、駆動状態送信部203cは第1駆動状態データをボディ制御部103に送信する。つまり、第1駆動状態データは、駆動コマンドを実行中であることを表す駆動状態データである。
第1駆動制御部203aがボディ制御部103から送信された駆動コマンドの実行を完了していた場合、駆動状態送信部203cは第2駆動状態データをボディ制御部103に送信する。つまり、第2駆動状態データは、駆動コマンドの実行が完了したことを表す駆動状態データである。
この他に、第3駆動状態データという駆動状態データも存在する。これについては後に詳述する。
なお、駆動コマンドを受信してから実際にフォーカスレンズ210cが駆動開始されるまで、若干のタイムラグが生じることがある。このタイムラグの期間中に状態確認コマンドを受信した場合、駆動状態送信部203cは、ボディ制御部103に第1駆動状態データを送信する。つまり、第1駆動状態データが送信された場合であっても、フォーカスレンズ210cが駆動中ではなく停止していることもある。
これら第1〜第3駆動状態データは、それぞれボディ制御部103から送信された駆動コマンドに含まれる識別子を含んでいる。例えばボディ制御部103が識別子「1」を含む駆動コマンドを送信し、その後、ボディ制御部103が状態確認コマンドを送信した場合、駆動状態送信部203cは、識別子「1」を含む駆動状態データをボディ制御部103に送信する。ボディ制御部103は、受信した駆動状態データに含まれる識別子を確認することで、第1駆動制御部203aがどの駆動コマンドを実行中であるのか(または実行完了したのか)を容易に識別することができる。
次に、第1〜第3駆動コマンドおよび状態確認コマンドを用いた自動焦点調節の手順について説明する。
図7は、自動焦点調節処理のタイムチャートである。まず、時刻T10に、ボディ制御部103がレンズ制御部203に第1駆動コマンドを送信する。この第1駆動コマンドの識別子は「3」である。第1駆動制御部203aは、この第1駆動コマンドに応じて、フォーカスレンズ210cの駆動制御(所定の初期位置への駆動)を開始する。
その後、ボディ制御部103は、所定期間ごと(例えば1ミリ秒ごと)に、レンズ制御部203に状態確認コマンドを送信し、時刻T10に送信した第1駆動コマンドの実行状態を追跡する。図7では、時刻T11に送信した状態確認コマンドに応じて、駆動状態送信部203cから、識別子が「3」の第1駆動状態データが送信されている。従って、ボディ制御部103は、時刻T11の時点でまだ第1駆動コマンドが実行中であると判断する。
その後、時刻T12に送信した状態確認コマンドに応じて、駆動状態送信部203cから、識別子が「3」の第1駆動状態データが送信されている。従って、ボディ制御部103は、時刻T12の時点でまだ第1駆動コマンドが実行中であると判断する。
その後、時刻T13に送信した状態確認コマンドに応じて、駆動状態送信部203cから、識別子が「3」の第2駆動状態データが送信されている。ボディ制御部103は、この第2駆動状態データから、第1駆動制御部203aによる駆動制御が完了した、すなわち、フォーカスレンズ210cが初期位置に移動したと判断する。ボディ制御部103はこれに応じて、時刻T14に、識別子が「4」の第2駆動コマンドを送信する。第1駆動制御部203aはこの第2駆動コマンドに応じて、フォーカスレンズ210cのスキャン駆動を開始する。
ボディ制御部103はスキャン駆動と並行して、所定期間ごとに、撮像素子104による撮像と、当該撮像により撮像素子104から出力される撮像信号に基づくコントラスト検出演算とを実行する。ボディ制御部103は更に、所定期間ごとに状態確認コマンドを送信する。なお、コントラスト検出演算の実行周期と状態確認コマンドの送信周期とは、同一であってもよいし異なっていてもよい。図7では、時刻T15、T16に状態確認コマンドを送信し、これに応じて識別子が「4」の第1駆動状態データを受信している。
いま、時刻T17に、コントラスト値のピーク、すなわち合焦位置が見つかったものとする。合焦位置が見つかると、ボディ制御部103は、当該合焦位置にフォーカスレンズ210cを駆動させるための第3駆動コマンドを送信する。図7では、時刻T17に識別子が「5」の第3駆動コマンドを送信している。時刻T17において第1駆動制御部203aは、第2駆動コマンドの実行中であるが、新たな第3駆動コマンドが受信されたので、現在実行中の第2駆動コマンドを中止して新たに受信された第3駆動コマンドに基づく駆動制御を開始する。
ボディ制御部103は、引き続き所定期間ごとに状態確認コマンドを送信し(時刻T18、T19)、第3駆動コマンドの実行完了を待機する。そして、時刻T19に識別子が「5」の第2駆動状態データを受信したので、ボディ制御部103は時刻T19をもって自動焦点調節処理を完了する。
図8は、ボディ制御部103およびレンズ制御部203により実行される自動焦点調節処理のフローチャートである。まず、紙面左側に示した、ボディ制御部103が実行する自動焦点調節処理について説明する。
ステップS100でボディ制御部103は、第1駆動コマンドをレンズ制御部203に送信する。ステップS110でボディ制御部103は、自動焦点調節処理のための前準備処理を実行する。前準備処理は、例えば撮像素子104のフレームレートを自動焦点調節用のフレームレートに切り替える処理を含む。
ステップS120でボディ制御部103は、状態確認コマンドをレンズ制御部203に送信する。ステップS130でボディ制御部103は、駆動状態データをレンズ制御部203から受信する。ステップS140でボディ制御部103は、第1駆動制御部203aによる駆動制御が完了したか否か、すなわち、ステップS130で受信した駆動状態データが第2駆動状態データであるか否かを判定する。駆動制御が完了していない場合、ボディ制御部103は処理をステップS120に進める。他方、駆動制御が完了している場合には、ボディ制御部103は処理をステップS150に進める。
ステップS150でボディ制御部103は、第2駆動コマンドをレンズ制御部203に送信する。ステップS160でボディ制御部103は、状態確認コマンドをレンズ制御部203に送信する。ステップS170でボディ制御部103は、駆動状態データをレンズ制御部203から受信する。ステップS180でボディ制御部103は、第1駆動制御部203aによる駆動制御が完了したか否か、すなわち、ステップS170で受信した駆動状態データが第2駆動状態データであるか否かを判定する。駆動制御が完了していない場合、ボディ制御部103は処理をステップS190に進める。
ステップ190でボディ制御部103は、撮像素子104により出力された撮像信号に基づき、焦点評価値(コントラスト量)を演算する。ステップS200でボディ制御部103は、焦点評価値がピークとなるフォーカスレンズ210cの位置、すなわち合焦位置が見つかった否かを判定する。合焦位置が見つかっていない場合、ボディ制御部103は処理をステップS160に進める。他方、合焦位置が見つかった場合、ボディ制御部103は処理をステップS210に進める。
ステップS210でボディ制御部103は、第3駆動コマンドをレンズ制御部203に送信する。ステップS220でボディ制御部103は、状態確認コマンドをレンズ制御部203に送信する。ステップS230でボディ制御部103は、駆動状態データをレンズ制御部203から受信する。ステップS240でボディ制御部103は、第1駆動制御部203aによる駆動制御が完了したか否か、すなわち、ステップS230で受信した駆動状態データが第2駆動状態データであるか否かを判定する。駆動制御が完了していない場合、ボディ制御部103は処理をステップS220に進める。他方、駆動制御が完了している場合には、ボディ制御部103は自動焦点調節処理を終了する。
なお、ステップS180において、駆動制御が完了した場合、すなわちスキャン動作を行ったが合焦位置を見つけられない場合には、ボディ制御部103は自動焦点調節処理を終了する。このとき、フォーカスレンズ210cを所定位置(例えば無限遠)に駆動するようにボディ制御部103を構成してもよい。
次に、図8の紙面右側に示した、レンズ制御部203が実行する自動焦点調節処理について説明する。まずステップS300において、レンズ側第1通信部217は、ボディ制御部103から第1駆動コマンドを受信する。ステップS310で第1駆動制御部203aは、フォーカスレンズ210cを初期位置に駆動するための駆動制御を開始する。
ステップS320でレンズ側第1通信部217は、ボディ制御部103から状態確認コマンドを受信する。ステップS330で駆動状態送信部203cは、ボディ制御部103に駆動状態データを送信する。ステップS340で第1駆動制御部203aは、ステップS300で受信された第1駆動コマンドに基づく駆動制御が完了したか否かを判定する。駆動制御が完了していない場合、第1駆動制御部203aは処理をステップS320に進める。他方、駆動制御が完了していた場合、第1駆動制御部203aは処理をステップS350に進める。
ステップS350でレンズ側第1通信部217は、ボディ制御部103から第2駆動コマンドを受信する。ステップS360で第1駆動制御部203aは、フォーカスレンズ210cのスキャン駆動を開始する。ステップS370でレンズ側第1通信部217は、ボディ制御部103から状態確認コマンドを受信する。ステップS380で駆動状態送信部203cは、ボディ制御部103に駆動状態データを送信する。ステップS390で第1駆動制御部203aは、ステップS350で受信された第2駆動コマンドに基づく駆動制御が完了したか否かを判定する。駆動制御が完了していた場合、第1駆動制御部203aは自動焦点調節処理を終了する。他方、駆動制御が完了していない場合、第1駆動制御部203aは処理をステップS400に進める。
ステップS400でレンズ側第1通信部217は、ボディ制御部103から第3駆動コマンドを受信したか否かを判定する。第3駆動コマンドを受信していない場合、レンズ側第1通信部217は、処理をステップS370に進める。他方、第3駆動コマンドを受信していた場合、レンズ側第1通信部217は処理をステップS410に進める。
ステップS410で第1駆動制御部203aは、ステップS400で受信された第3駆動コマンドにより指定された位置へのフォーカスレンズ210cの駆動を開始する。ステップS420でレンズ側第1通信部217は、ボディ制御部103から状態確認コマンドを受信する。ステップS430で駆動状態送信部203cは、ボディ制御部103に駆動状態データを送信する。ステップS440で第1駆動制御部203aは、ステップS400で受信された第3駆動コマンドに基づく駆動制御が完了したか否かを判定する。駆動制御が完了していない場合、第1駆動制御部203aは処理をステップS420に進める。他方、駆動制御が完了していた場合、第1駆動制御部203aは自動焦点調節処理を終了する。
(自動焦点調節処理とズーム制御との競合の説明)
次に、自動焦点調節処理の実行中に行われるズーム制御について説明する。前述の通り、本実施形態の結像光学系210は、いわゆるバリフォーカル光学系であり、第2駆動制御部203bはズームレンズ210bの駆動と並行してフォーカスレンズ210cの駆動を行う。なお以下の説明では、スライドスイッチ操作によるズーム動作・ズームトラッキング動作(すなわちパワーズーム操作に伴うズームトラッキング動作)を行う場合について説明するが、交換レンズに設けられているズーム操作環の操作によるズーム動作・ズームトラッキング動作(いわゆるマニュアルズーム操作(回転操作)に伴うズームトラッキング動作)の場合も同様である。
本実施形態では、第2駆動制御部203bによる駆動制御は、第1駆動制御部203aによる駆動制御よりも優先的に実行される。例えば、ボディ制御部103が自動焦点調節処理の実行を開始し、第1駆動制御部203aが第1〜第3駆動コマンドのいずれかを実行しているときに、ユーザがスライドスイッチ219を操作すると、第2駆動制御部203bは、第1駆動制御部203aによる駆動制御を中止させた後にいわゆるズームトラッキングを実行する。
駆動状態送信部203cは、第2駆動制御部203bにより第1駆動制御部203aの駆動制御が中止させられている場合、ボディ制御部103に第3駆動状態データを送信する。つまり、第3駆動状態データは、第2駆動制御部203bにより第1駆動制御部203aの駆動制御が中止されたことを表す駆動状態データである。
ボディ制御部103は、駆動状態送信部203cから第3駆動状態データを受信すると、実行中の自動焦点調節処理を中止する。その後、ユーザが再度AF操作を行うと、ボディ制御部103は自動焦点調節処理を最初からやり直す。
なお、駆動状態送信部203cは、第1駆動制御部203aの駆動制御が完了した後に、第2駆動制御部203bによる駆動制御が開始されていた場合にも、上記の第3駆動状態データを送信する。これは、第2駆動制御部203bによる駆動制御が開始された場合、フォーカスレンズ210cは、第1駆動制御部203aによる駆動制御が完了した時点での位置から移動しているため、フォーカスレンズ210cの位置は、ボディ制御部103が期待する位置にない可能性が高いためである。
例えば、ボディ制御部103が第1駆動コマンドを送信し、第1駆動制御部203aがフォーカスレンズ210cを所定の初期位置に駆動したとする。第1駆動制御部203aによる駆動制御が完了し、フォーカスレンズ210cが初期位置に到達した後から、第2駆動制御部203bがズームトラッキングを実行してしまえば、フォーカスレンズ210cはボディ制御部103が期待する初期位置とは異なる位置に移動してしまう。このため、ボディ制御部103から見れば、第1駆動制御部203aの駆動制御が第2駆動制御部203bにより中止させられた場合も、第1駆動制御部203aの駆動制御が完了していた場合も、結局本来の自動焦点調節処理を中止しなければならないことに変わりはない。
上述した第1の実施の形態によるカメラシステムによれば、次の作用効果が得られる。
(1)フォーカスレンズ210cは、駆動力を受けて状態が変化する被駆動部材である。レンズ側第1通信部217(駆動指示受信手段)は、フォーカスレンズ210cの駆動指示を表す駆動コマンド(駆動指示信号)をカメラボディ100から順次受信する。第1駆動制御部203aは、レンズ側第1通信部217により受信された駆動コマンドに基づき、フォーカスレンズ210cの駆動制御(第1駆動制御)を行う。レンズ側第1通信部217(確認要求受信手段)は、第1駆動制御部203aの駆動制御状態の確認要求を表す状態確認コマンド(状態確認信号)をカメラボディ100から受信する。駆動状態送信部203c(駆動状態送信手段)は、レンズ側第1通信部217による状態確認コマンドの受信に応じて、第1駆動制御部203aの駆動制御状態を表す駆動状態データ(駆動状態信号)をカメラボディ100に送信する。駆動コマンドには、駆動コマンドごとに一意な識別子が含まれる。駆動状態送信部203cは、レンズ側第1通信部217により受信された駆動コマンドに含まれる識別子を含む駆動状態データを送信する。このようにしたので、交換レンズが現在どの駆動指示に従って動作しているのかを、カメラボディから確認することができる。
(2)駆動状態送信部203cは、駆動コマンドに基づく駆動制御が完了していることを表す第2駆動状態データと、駆動コマンドに基づく駆動制御が未完了であることを表す第1駆動状態データと、のいずれかを送信する。このようにしたので、交換レンズが駆動指示に基づく駆動制御を完了したのか、あるいは実行中であるのかをカメラボディから確認することができる。単純にフォーカスレンズ210cの駆動状態を確認する場合と異なり、駆動コマンドを受信してから実際にフォーカスレンズ210cの駆動を開始するまでの期間であっても、その駆動コマンドを実行中であることを確実に把握することができる。
(3)第2駆動制御部203b(第2駆動制御手段)は、スライドスイッチ219の操作に応じて、第1駆動制御部203aによるフォーカスレンズ210cの駆動制御(第1駆動制御)とは異なる駆動制御(第2駆動制御)を行う。第2駆動制御部203bは、第1駆動制御部203aが駆動制御を行っているときにスライドスイッチ219が操作された場合、第1駆動制御部203aによる駆動制御を中止させた後に駆動制御を行う。駆動状態送信部203cは、第1駆動制御部203aによる駆動制御が第2駆動制御部203bにより中止されていた場合、第2駆動制御部203bにより第1駆動制御部203aの駆動制御が中止されたことを表す第3駆動状態データを送信する。このようにしたので、第2駆動制御部203bに割り込まれた場合に、駆動コマンドに基づく駆動制御が完了したと誤認してしまうことがない。
(4)駆動状態送信部203cは、第1駆動制御部203aによる駆動制御が完了した後に第2駆動制御部203bによる駆動制御が開始されていた場合にも、第2駆動制御部203bにより第1駆動制御部203aの駆動制御が中止されたことを表す第3駆動状態データを送信する。このようにしたので、第2駆動制御部203bが駆動制御を行った結果、フォーカスレンズ210cの現在位置が期待した位置からずれてしまった場合にも、自動焦点調節処理の精度が低下しない。
(5)結像光学系210は、バリフォーカルな光学系であり、第2駆動制御部203bは、いわゆるズームトラッキングを行う。このようにしたので、ズームトラッキングを自動焦点調節処理よりも優先して動作させることができ、交換レンズ200の操作性が向上する。
次のような変形も本発明の範囲内であり、変形例の一つ、もしくは複数を上述の実施形態と組み合わせることも可能である。
(変形例1)
本発明は、図1に示したものとは異なるカメラシステムに適用することもできる。例えば、クイックリターンミラーを備えた、いわゆる一眼レフレックス方式のカメラシステムにも本発明を適用することが可能である。
(変形例2)
第2駆動制御部203bが実行する駆動制御は、いわゆるズームトラッキング以外の駆動制御であってもよい。例えば、カメラボディ100や交換レンズ200に設けられた操作部材に為されたフォーカシング操作に応じて、フォーカス駆動部214にフォーカスレンズ210cを駆動させる、いわゆるパワーフォーカスを、第2駆動制御部203bが実行するようにしてもよい。
(変形例3)
レンズ側第1通信部217による駆動コマンドの受信に応じて、駆動状態送信部203cが、当該駆動コマンドの前に受信された駆動コマンドに関する駆動状態データをカメラボディ100に送信するようにしてもよい。例えば、コマンドデータ通信により駆動コマンドが送信されたとき、コマンドパケット信号402が駆動コマンドであったとすれば、駆動状態送信部203cが、当該駆動コマンドの前に受信された駆動コマンドに関する駆動状態データをレンズ側データパケット信号407として送信するようにしてもよい。この、駆動コマンドの受信に応じて送信される駆動状態データは、状態確認コマンドとは無関係に送信される。つまり、駆動状態送信部203cは、駆動コマンドが受信されると、次に状態確認コマンドが受信されるのを待たずに、直前の駆動コマンドに関する駆動状態データをすぐに送信する。
駆動状態送信部203cをこのように構成することで、状態確認コマンドの送信タイミングと合焦位置の発見タイミングとの兼ね合いで生じる不整合を防止することができる。以下、この点について詳述する。
図9は、自動焦点調節処理のタイムチャートである。第2駆動コマンドの実行中、ボディ制御部103は、所定期間ごとに状態確認コマンドを送信する。そして、合焦位置が見つかると、その時点で第3駆動コマンドを送信する。
第3駆動コマンドの送信前、直近の状態確認コマンドの送信時(時刻T21)から、第3駆動コマンドの送信時(時刻T22)までの間に、スライドスイッチ219が操作されると、フォーカスレンズ210cの位置はボディ制御部103が想定していない位置に変化する。従って、時刻T21から時刻T22の間に演算された焦点評価値は、ボディ制御部103が想定していない位置にフォーカスレンズ210cがあるときの焦点評価値であり、正しい焦点評価値でない。つまり、この正しくない焦点評価値に基づいて発見された合焦位置もまた正しくない可能性がある。
ところが、時刻T21に状態確認コマンドを送信してから、第3駆動コマンドを送信するまでの間に、状態確認コマンドを送信するタイミングは存在しない。従って、ボディ制御部103は、正しくない可能性がある合焦位置にフォーカスレンズ210cを駆動させ、自動焦点調節処理が正常に完了したと判断してしまう。
時刻T22に送信される第3駆動コマンドに応じて、駆動状態送信部203cがその1つ前の駆動コマンド、すなわち第2駆動コマンドに関する駆動状態データを送信するようにしておけば、ボディ制御部103は、その駆動状態データが第3駆動状態データであり、時刻T21から時刻T22までの間に第2駆動制御部203bによりフォーカスレンズ210cが想定外の位置に駆動されたことを知ることができる。このようにすることで、自動焦点調節処理の精度が向上する。
本発明の特徴を損なわない限り、本発明は上記実施の形態に限定されるものではなく、本発明の技術的思想の範囲内で考えられるその他の形態についても、本発明の範囲内に含まれる。