(第1の実施の形態)
以下、本発明を適用した第1の実施の形態に係るカメラシステムについて、図面を用いて説明する。図1は、第1の実施の形態に係るカメラシステムの構成を示す斜視図である。図1に示したデジタルカメラシステムは、カメラボディ100と、カメラボディ100に取り付け可能な第1の交換レンズ200aとから構成される。なお、カメラボディ100には、第1の交換レンズ200a以外にも、第2の交換レンズ200bや、第3の交換レンズ200cを取り付けることができる。これら3種類の交換レンズ200a、200b、200cの相違点については後に詳述する。
カメラボディ100は、いわゆるバヨネット方式のボディ側マウント部101を備える。第1の交換レンズ200aのレンズ側マウント部201をボディ側マウント部101に嵌め込み固定すると、レンズ側マウント部201に設けられた複数の電気接点202が、ボディ側マウント部101に設けられた複数の電気接点102と電気的に接続される。また、カメラボディ100には、半押し操作と全押し操作が可能なレリーズスイッチ120が設けられている。
(カメラボディ100と第1の交換レンズ200aとのデジタルカメラシステムの説明)
図2は、カメラボディ100および第1の交換レンズ200aの模式的な断面図である。第1の交換レンズ200aは、被写体からの光束を受光して被写体像を撮像面上に結像させる結像光学系を有する。この結像光学系は複数のレンズ203、204、205と、絞り206とから構成される。このうちレンズ204は、光軸Xの方向に移動可能なフォーカシングレンズである。カメラボディ100は、結像光学系により結像された被写体像を撮像し、被写体像を電気信号に変換して出力する撮像素子104を有する。撮像素子104は例えばCCDやCMOSなどの固体撮像素子である。なお図2では省略しているが、撮像素子104の撮像面には、赤外光をカットするための赤外カットフィルタや画像の折り返しノイズを防止するための光学的ローパスフィルタなどが配置されている。
カメラボディ100内の、結像光学系を透過した光束の光路上には、撮像素子104を遮る形でクイックリターンミラー103が配置されている。クイックリターンミラー103は、露光前(非撮影時)には図2に実線で示す位置にあり、結像光学系からの被写体光をカメラボディ100の上部に配置したファインダースクリーン107に向けて反射させる。ファインダースクリーン107は、クイックリターンミラー103に対し撮像素子104と共役な位置に配置されている。
クイックリターンミラー103の反射面で反射した被写体光は、ファインダースクリーン107を透過してペンタプリズム108(ペンタゴナルダハプリズム)に導入され、接眼レンズ110に向け出射される。従って、露光前の状態のとき、撮影者は接眼レンズ110を介して被写体像を視認することができる。
クイックリターンミラー103の中心付近(光学系の光軸X付近)はハーフミラーになっており、被写体光の一部はこのハーフミラー部を透過する。この透過光束は、クイックリターンミラー103の裏面に設けられたサブミラー105により反射し、カメラボディ100の下部に設けられた焦点検出装置106に入射する。焦点検出装置106は、結像光学系の焦点調節状態を検出する。
露光時、クイックリターンミラー103およびサブミラー105は、ファインダースクリーン107の下部(退避位置)に移動する。クイックリターンミラー103およびサブミラー105が退避位置に移動すると、結像光学系を透過した被写体光が撮像素子104に導入されるようになる。撮像素子104はこの後に、撮像面に結像した被写体像を撮像する。
第1の交換レンズ200aは、第1の交換レンズ200aの各部を制御する第1のレンズ制御装置209aを備える。また、カメラボディ100は、カメラボディ100の各部を制御するボディ制御装置109を備える。第1のレンズ制御装置209aとボディ制御装置109は、カメラボディ側および交換レンズ側それぞれのマウント部に設けられた複数の電気接点102、202を介して電気信号を授受することにより、双方向のデータ通信を行うことができる。
第1の交換レンズ200aは、フォーカシングレンズ204を光軸Xに沿った方向に駆動するレンズ駆動部207と、被写体光の通過する開口の大きさを変更するように絞り206を駆動する絞り駆動部208とを備える。レンズ駆動部207および絞り駆動部208は、それぞれ不図示のアクチュエータ(例えばステッピングモータ等)を備え、第1のレンズ制御装置209aから与えられた駆動速度、駆動量、および駆動方向に従ってフォーカシングレンズ204や絞り206を駆動する。
カメラボディ100は、不図示のアクチュエータを有するボディ内絞り駆動部111を備える。ボディ内絞り駆動部111は、絞り206の駆動機構を備えていない交換レンズ(後述)が取り付けられた場合に、そのアクチュエータによる駆動力を交換レンズ内の絞り206に伝達し、絞り206を駆動する。図2に示した第1の交換レンズ200aは絞り駆動部208を備えているので、第1の交換レンズ200aが装着されているとき、ボディ内絞り駆動部111は何もしない。
第1の交換レンズ200aは、不揮発性の記憶媒体であるROM210を備えている。レンズ側ROM210には、絞り206の駆動に関するレンズデータ(後に詳述する)が記憶されている。同様に、カメラボディ100は、不揮発性の記憶媒体であるボディ側ROM112を備えている。ボディ側ROM112には、後述するレンズ側ROM210にレンズデータが正しく記憶されていることを判定するためのボディ側判定データ(ボディ側データ)(後に詳述する)が予め記憶されている。
第1のレンズ制御装置209aは、レンズ側ROM210に記憶されているレンズデータ(詳細は後述する)に基づいて、レンズ側ROM210にレンズデータが正しく記憶されているか否かをカメラボディ100側(ボディ制御装置109)にて判定することが可能なレンズ側判定データを、ボディ制御装置109に送信する。ボディ制御装置109は、ボディ側ROM112に記憶されているボディ側判定データ(ボディ側データ)と、上述の受信したレンズ側判定データとを比較することにより、レンズ側ROM210にレンズデータが正しく記憶されているか否かを判定する。この判定については後に詳述する。
(絞り駆動の説明)
交換レンズ200に絞り駆動の制御を開始せしめる前に、まずボディ制御装置109は、ボディ側マウント部101に装着されている交換レンズがどのような交換レンズであるのか(交換レンズの種類)を、上述の電気接点102、202を介した交換レンズ200との初期通信によって認識する。ボディ制御装置109は、初期通信によって交換レンズ200側から取得したレンズデータの内容(或いはレンズデータ取得の有無等)に基づいて、第1の交換レンズ200aなのか、第2の交換レンズ200bなのか、或いは第3の交換レンズ200cなのかを識別する。
本第1の実施の形態では、ボディ側マウント部101に、まず第1の交換レンズ200aが装着されている(とボディ側制御装置109が識別した)場合について、以降の説明を行う。
ボディ制御装置109は、例えば露光時など、絞り206の開口径を変化させる必要がある場合、複数の電気接点102、202を介したデータ通信により、第1のレンズ制御装置209aに絞り駆動コマンドを送信する。第1のレンズ制御装置209aは、ボディ制御装置109から絞り駆動コマンドを受信すると、その絞り駆動コマンドのパラメータに従って絞り駆動部208を制御し、絞り駆動部208に絞り206を駆動させる。
絞り駆動コマンドには絞り206の駆動量、駆動方向、および駆動速度を表すパラメータが含まれる。例えば、現在の絞り206の開口径がF2相当の大きさであり、これをF4相当の大きさに変化させたいものとする。この場合、ボディ制御装置109は、駆動量を「2段分」、駆動方向を「絞り込み方向」、駆動速度を「最高速」とする絞り駆動コマンドを第1のレンズ制御装置209aに送信する。ここで、交換レンズ200aのレンズ制御装置209aは、ボディ制御装置109から、駆動速度を「最高速」とする絞り駆動コマンドを受け取ると、交換レンズ200a自身(絞り駆動部208自身)が駆動することが出来る最大の絞り駆動速度で、絞り206を目標の絞り位置(駆動量)まで駆動制御する。
なお絞り206の駆動量を「開放F値からの絞込み段数」として定義している場合には、上記「駆動量」とは独立して上記「駆動方向」を表すパラメータを、上記「絞り駆動コマンド」の中に含めておく必要は無い。
ボディ制御装置109は、通常、絞り206の駆動速度として「最高速」を指定する。他方、(1)第1の交換レンズ200aの消費電力を抑えたい場合、(2)第1の交換レンズ200aの動作音を小さくしたい場合、(3)動画の撮影中に絞り206を駆動する場合、のいずれかに該当する状況で、ボディ制御装置109は駆動速度として「最高速」以外の値を指定した絞り駆動コマンドを第1のレンズ制御装置209aに送信する。
「(1)第1の交換レンズ200aの消費電力を抑えたい場合」とは、例えばバッテリーの残量が少ない場合や、ユーザが省電力動作を指示した場合などである。「(2)第1の交換レンズ200aの動作音を小さくしたい場合」とは、例えば撮影と平行して音声の録音が行われている場合や、ユーザが静音動作を指示した場合などである。「(3)動画の撮影中に絞り206を駆動する場合」とは、ユーザがそのような動画の撮影を指示した場合などである。
ボディ制御装置109は、上述のような絞り駆動コマンドを送信する前に、絞り駆動時間予測コマンドを第1のレンズ制御装置209aに送信する。
ここで、カメラボディ100側から交換レンズ200側に出力される「絞り駆動時間予測コマンド」について説明する。絞り駆動時間予測コマンドとは、カメラボディ100側から指定した絞り駆動量(段数)を、同じくカメラボディ100側から指定した絞り駆動速度で、交換レンズ200側の絞り駆動部208に絞り206を駆動させた場合に、どのくらいの駆動時間を要するかを、交換レンズ200側(第1のレンズ制御装置209a)に予測(例えば予測演算)させて、その予測(例えば予測演算)結果をカメラボディ100側に出力(送信)させるためのコマンドである。
カメラボディ側(ボディ制御装置109)は、この予測結果(絞りの予測駆動時間)を受信すると、その予測駆動時間を、撮影動作に関するタイミング制御、例えば露光処理に関するタイミング制御に利用する。露光処理に関するタイミング制御としては、たとえば、静止画撮影におけるシャッタの開閉のタイミング制御や、動画撮影中に絞り値(絞り開口サイズ)を変えたとしても露出変化を生じさせないように(露光量が一定になるように)、絞りの動きに応じて撮影感度を変化させる際の撮影感度のタイミング制御などがある。
第1のレンズ制御装置209aは、ボディ制御装置109から絞り駆動時間予測コマンドを受信すると、その絞り駆動時間予測コマンドの内容(少なくとも絞り駆動量a、及び絞り駆動速度vを含む)に基づいて、絞り206の駆動に要する時間を予測(演算)する。そして第1のレンズ制御装置209aは、予測(演算)した駆動時間を、ボディ制御装置109に送信(返信)する。
第1のレンズ制御装置209aは、レンズ側ROM210に記憶されているレンズデータに基づいて駆動時間を予測する。ここで、レンズ側ROM210レンズデータについて説明する。レンズ側ROM210は、上述の絞り駆動量aおよび絞り駆動速度vとから予測駆動時間Tを演算する演算式が、レンズデータとして含まれている。その演算式の一例を次式(1)に示す。
T=a/v+α ・・・(1)
ここでαは絞り駆動時間の補正項であり、例えば絞り206の駆動制御開始から実際に絞り206の駆動が開始されるまでの遅れ時間や、絞り206を目的の駆動量だけ駆動してから絞り206が静止し安定するまでの時間などを考慮して定められる。この補正項αは、交換レンズ毎に異なる値が格納されている。また交換レンズの種類によっては、レンズの設定条件に応じて(例えばズームレンズの場合には焦点距離に応じて)異なる値が格納されている場合もある。レンズ側ROM210のレンズデータには、この補正項αの値も含まれており、その値は第1の交換レンズ200aの設計時に決定される。例えば、絞り駆動量aが「2段」、絞り駆動速度vが「10段/秒」、補正項αが「0.1秒」であれば、上記(1)式により、第1のレンズ制御装置209aは予測駆動時間Tを0.3秒と予測する。なお上述の補正項αは、駆動速度や駆動量(段数)に応じて複数個格納して(設けて)おくようにしても良い。
ボディ制御装置109は、以上のようにして予測された予測駆動時間Tに基づいて、静止画撮影におけるレリーズタイミングの制御などを行う。
(カメラボディ100と第2の交換レンズ200bとのデジタルカメラシステムの説明)
図3は、カメラボディ100および第2の交換レンズ200bの模式的な断面図である。以下、第2の交換レンズ200bの、第1の交換レンズ200aとは異なる点について説明する。
第2の交換レンズ200bは、第1のレンズ制御装置209aの代わりに、第2のレンズ制御装置209bを備える。
まず、ボディ制御装置109は、既述の電気接点102,202を介して第2のレンズ制御装置209bと初期通信を行って、その通信結果に基づいてボディ側マウント部101に、第2の交換レンズ200bが装着されていると識別する。
第2のレンズ制御装置209bは、第1のレンズ制御装置209aとは異なり、絞り206の駆動速度の指定に対応していない。このためボディ制御装置109は、上述(第1のレンズ制御装置209aに送る絞り駆動コマンド)とはその内容の異なる絞り駆動コマンド、即ちその内容に絞り駆動速度を含まない絞り駆動コマンドを、第2のレンズ制御装置209bに送信する。
第2のレンズ制御装置209bは、ボディ制御装置109から送信された絞り駆動コマンドを受信すると、第1のレンズ制御装置209aと同様に、その絞り駆動コマンドの内容に従って絞り駆動部208を制御し、絞り駆動部208に絞り206を駆動させる。ただし絞り駆動速度の指定を含まない絞り駆動コマンドであるため、第2の交換レンズ200bをカメラボディ100に取り付けた場合、絞り206は常に所定速度(例えば第2の交換レンズ200bの出せる最高速度)で駆動されることになる。
更に、第2のレンズ制御装置209bは、上述の第1の交換レンズ200aで行うような、絞り206の駆動時間の予測(演算)に対応していない。また、第2の交換レンズ200bは、上述したレンズデータが記憶されているレンズ側ROM210を備えていない。
ところで、絞り駆動コマンドの形態としては、上述の形態(第1の交換レンズ200aと第2の交換レンズ200bとで互いに異なるコマンドを使用する形態)に限られず、例えば第1の交換レンズ200aと第2の交換レンズ200bとの間で、ボディ制御装置109の出力する絞り駆動コマンドを共通化することも可能である。もしこのような共通化した絞り駆動コマンドを使用する場合には、第2のレンズ制御装置209bは、絞り駆動コマンドに含まれている絞り206の駆動量および駆動方向のパラメータを参照するが、絞り206の駆動速度を表すパラメータを参照しないように構成する。このように第2のレンズ制御装置209bを構成することで、上記と同様に、第2の交換レンズ200bをカメラボディ100に取り付けた場合、絞り206は常に所定速度(例えば最高速度)で駆動されることになる。
(カメラボディ100と第3の交換レンズ200cとのデジタルカメラシステムの説明)
図4は、カメラボディ100および第3の交換レンズ200cの模式的な断面図である。以下、第3の交換レンズ200cの、第1の交換レンズ200aとは異なる点について説明する。
第3の交換レンズ200cは、第1のレンズ制御装置209aの代わりに、第3のレンズ制御装置209cを備える。
まず、ボディ制御装置109は、既述の電気接点102,202を介して第3のレンズ制御装置209cと初期通信を行って、その通信結果に基づいてボディ側マウント部101に、第3の交換レンズ200cが装着されていると識別する。
第3の交換レンズ200cは、絞り駆動部208を備えておらず、従って第3のレンズ制御装置209cは、絞り駆動コマンドに対応していない。つまり、第3の交換レンズ200cは、自身で絞り206を駆動することができない。その代わりに、第3の交換レンズ200cのレンズ側マウント部201近傍には、絞り206に連動する不図示の絞り連動レバーが設けられている。この絞り連動レバーは、所定方向に沿って移動可能なレバーである。絞り連動レバーの位置は絞り206の開口径の大きさに連動しており、絞り連動レバーを動かすとそれに応じて絞り206の開口径が変化する。つまり、絞り206の開口径をある大きさに設定したい場合は、絞り連動レバーをその開口径に対応する位置に動かせばよい。
絞り連動レバーは、第3の交換レンズ200cをカメラボディ100に取り付けたとき、ボディ内絞り駆動部111が備える不図示の駆動部材に係合する。ボディ内絞り駆動部111は、この駆動部材を駆動する不図示のアクチュエータを備えている。ボディ内絞り駆動部111が駆動部材を駆動すると、駆動部材に係合している絞り連動レバーが移動し、絞り206の開口径が変化する。すなわち、ボディ内絞り駆動部111は、第3の交換レンズ200cが備える絞り206を駆動する。第3の交換レンズ200cが取り付けられているとき、ボディ制御装置109は、第3のレンズ制御装置209cに絞り駆動コマンドを送信する代わりに、ボディ内絞り駆動部111に上記の駆動部材を駆動させることにより、絞り206の開口径を所望の大きさに変化させる。
更に、第3のレンズ制御装置209cは、絞り206の駆動時間の予測(演算)に対応していない。また、第3の交換レンズ200cは、上述したレンズデータが記憶されているレンズ側ROM210を備えていない。
(カメラボディ100と交換レンズ200とのデジタルカメラシステムにおける、初期化処理の説明)
次に、ボディ制御装置109および各レンズの制御装置209(特には、第1のレンズ制御装置209a)がそれぞれ実行する初期化処理について説明する。ボディ制御装置109は、例えば電源オン状態のカメラボディ100に交換レンズが取り付けられた場合や、電源オフ状態のカメラボディ100に交換レンズが取り付けられた後にカメラボディ100が電源オン状態になった場合など、所定のタイミングにおいて、初期化処理を実行する。ボディ制御装置109は、以下に説明する初期化処理において、第1〜第4の制御モードのいずれかをカメラボディ100に設定する。各制御モードの内容は後述する。なお、以下の説明において、第1のレンズ制御装置209a、第2のレンズ制御装置209b、および第3のレンズ制御装置209cを総称して「レンズ制御装置」という。
図5は、ボディ制御装置109が実行する初期化処理のフローチャートである。まずボディ制御装置109とレンズ制御装置209との間での通信が成立した後で、最初のステップS100では、レンズ制御装置に「レンズ機能データ要求コマンド」を送信する。ステップS110では、レンズ制御装置から上記コマンドに応答して送信される「レンズ機能データ」をボディ制御装置109が受信する。レンズ機能データは、交換レンズが有している機能を判別するためのデータであり、例えば絞り駆動部208の有無、絞り206の駆動速度の指定可否、絞り206が動作可能な最高駆動速度(上述の絞りの最高速)に関する情報、ズーム機構の有無などの情報が含まれている。
ステップS120では、ステップS110で受信したレンズ機能データの内容から、ボディ側マウント部101に取り付けられている交換レンズは第3の交換レンズ200cであるか否かを判定する。例えば、レンズ機能データから絞り駆動部208が存在しないことを認識すれば、第3の交換レンズ200cが取り付けられていると判定する。第3の交換レンズ200cが取り付けられていると判定した場合にはステップS121に進み、カメラボディ100の制御モードを第3の制御モードに設定する。第3の制御モードが設定されている場合、ボディ制御装置109は、絞り206の駆動制御をボディ内絞り駆動部111により行い、レンズ制御装置に対して絞り駆動コマンドを送信しない。
他方、ステップS120において、第3の交換レンズ200c以外の交換レンズが取り付けられていると判定した場合、処理はステップS130に進む。ステップS130では、ステップS110で受信したレンズ機能データの内容から、ボディ側マウント部101に取り付けられている交換レンズは第2の交換レンズ200bであるか否かを判定する。例えば、レンズ機能データから絞り206の駆動速度の指定ができないことを認識すれば、第2の交換レンズ200bが取り付けられていると判定する。第2の交換レンズ200bが取り付けられていると判定した場合にはステップS131に進み、カメラボディ100の制御モードを第2の制御モードに設定する。第2の制御モードが設定されている場合、ボディ制御装置109は絞り206の駆動制御を、レンズ制御装置に絞り駆動コマンドを送信することにより行うが、送信される絞り駆動コマンドは絞り206の駆動速度を含まない。
他方、ステップS130において、第2の交換レンズ200b以外の交換レンズが取り付けられていると判定した場合、処理はステップS140に進む。なお、本実施形態においてステップS140に進むのは、第3の交換レンズ200cでも第2の交換レンズ200bでもない交換レンズが取り付けられている場合、すなわち第1の交換レンズ200aが取り付けられている場合である。
ステップS140では、ボディ制御装置109が第1のレンズ制御装置209aに「判定データ要求コマンド」を送信する。ステップS150では、第1のレンズ制御装置209aから上記コマンドに応答して送信される「レンズ側判定データ」をボディ制御装置109が受信する。本実施形態における、カメラボディ側で判定に使用されるレンズ側判定データは、レンズ側ROM210に記憶されているレンズデータそのものである。既述の通り、レンズデータは、絞り駆動量(駆動段数)aおよび絞り駆動速度vとから予測駆動時間Tを演算する演算式(1)「T=a/v+α」と、その演算式で使用される絞り駆動時間の補正項αを含む。このためレンズ制御装置209aはこのレンズデータに基づいて生成された演算式(1)「T=a/v+α」と補正項αを、レンズ側判定データとしてカメラボディに送信する。なお、レンズ側ROM210は、補正項αを数値データとして記憶し、演算式(1)を文字列データとして記憶しており、レンズ制御装置209aは、これら数値データ、文字列データをカメラボディに送信する。
ステップS160では、ボディ制御装置109がボディ側ROM112に記憶されているボディ側判定データとステップS150で受信したレンズ側判定データとを比較し、それら2つのデータの内容が一致するか否かを判定する。本実施形態のボディ側判定データの内容は、ボディ側ROM112に予め記憶されているレンズ側判定データそのもの(つまり上述の演算式(1)と補正項α)である。すなわち、本実施形態ではボディ側ROM112とレンズ側ROM210にそれぞれ、同一内容の判定用データ(演算式(1)「T=a/v+α」と補正項α)が予め記憶されており、ステップS160においてボディ制御装置109はそれら2つのレンズデータの内容が一致しているか否かを判定する。
ステップS160においてボディ側判定データとレンズ側判定データの内容が一致した場合にはステップS161に進み、ボディ制御装置109はカメラボディ100の制御モードを第1の制御モードに設定する。第1の制御モードが設定されている場合、ボディ制御装置109は絞り206の駆動制御を、絞り206の駆動速度を含む絞り駆動コマンドをレンズ制御装置に送信することにより行う。またボディ制御装置109は、第1の制御モードが設定されている場合、絞り206の駆動前に絞り駆動時間予測コマンドをレンズ制御装置209に送信して予測駆動時間を得ておき、この予測駆動時間を用いた絞り206の駆動制御を行う。
他方、ステップS160においてボディ側判定データとレンズ側判定データの内容が一致しなかった場合にはステップS162に進む。この場合、ボディ制御装置109は、第1の交換レンズ200a内のROM210に記憶されているレンズデータが、例えば静電気などの強い電気的な衝撃により破損してしまっていると見なし、絞り206の駆動に制約を設けた第4の制御モードをカメラボディ100に設定する。第4の制御モードにおいて、ボディ制御装置109は、第1のレンズ制御装置209aに対し絞り駆動コマンドを送信せず、絞り206の開口径を固定したままで撮影動作等を行う。また、不図示の表示装置(液晶ディスプレイ等)に、ROM210の記憶内容に不整合が見られる旨(レンズ側に不具合がある旨)のメッセージを表示し(いわゆる警告表示)、のメッセージを表示し、絞り206の制御が制限されていることを利用者に報知する。
なお本実施形態では、上述の「第4の制御モード」の内容として、上述のようなメッセージ表示をし、且つ絞り206の制御を制限するものとして説明した。しかしながら、第4の制御モードの設定内容は、これに限られるものではない。例えば、第4の制御モードの内容を、単に上述のごとき警告表示のみに留めるようにしても構わない。或いは更に強い制限、例えばカメラボディ側からアクセサリ側への給電を制限(例えば絞り駆動系に供給すべき給電を禁止する)ようにしても構わない。或いは更に強い制限、例えばカメラボディ側において撮影動作を禁止するように構成しても構わない。
また警告表示の方法についても、上述したようなメッセージ表示に限らず、使用者に対してレンズ側に異常が生じている旨の警告を伝えることが出来ればどのような表示形態でも構わない。例えばLED等を用いた点滅や点灯の警告表示でも構わない。或いは液晶ディスプレイ等に絞り制御が制限されていることを示す簡単なメッセージ表示(例えば「絞りNG」など)でも、或いは絞りNGを示すアイコン表示でも構わない。
図6は、第1のレンズ制御装置209aが実行するレンズ初期化処理のフローチャートである。まずステップS200では、ボディ制御装置109から「レンズ機能データ要求コマンド」を受信する(図5のステップS100に対応)。ステップS210では、ボディ制御装置109に対して「レンズ機能データ」を送信する(図5のステップS110に対応)。ステップS220では、ボディ制御装置109から「判定データ要求コマンド」を受信する(図5のステップS140に対応)。ステップS230では、ROM210からレンズデータを読み出し、読み出したレンズデータを「レンズ側判定データ」としてボディ制御装置109に送信する(図5のステップS150に対応)。
(撮影処理の説明)
図7は、第1の制御モードにおいてボディ制御装置109が実行する撮影処理のフローチャートである。まずステップS300において、ボディ制御装置109が利用者により成されたレリーズスイッチ120の半押し操作を受け付ける。ステップS310では、ボディ制御装置109によって、周知の自動露出(AE)制御および自動焦点調節(AF)制御が実行される。ボディ制御装置109はこのAE制御によって、露光時の絞り206の開口径(絞り値)や撮像素子104の露光時間等を算出する。その後、ステップS320において、ボディ制御装置109が利用者により成されたレリーズスイッチ120の全押し操作を受け付ける。ボディ制御装置109はこの全押し操作に応じて露光制御を開始する。
ステップS330でボディ制御装置109は、第1のレンズ制御装置209aに絞り駆動時間予測コマンドを送信する。このコマンドには、ステップS310において算出された開口径(絞り値)に対応するパラメータが含まれる。すなわち、ここで送信される絞り駆動時間予測コマンドは、現在の開口径からステップS310において算出された開口径まで絞り206を駆動するために必要な時間を第1のレンズ制御装置209aに予測させるコマンドである。
ステップS340でボディ制御装置109は、第1のレンズ制御装置209aから絞り206の予測駆動時間を受信する。ステップS350では、第1のレンズ制御装置209aに対し、ステップS310において算出された開口径(絞り値)まで絞り206を駆動させる絞り駆動コマンドを送信する。このコマンドには、ステップS310において算出された開口径(絞り値)に対応するパラメータが含まれる。
ステップS360でボディ制御装置109は、ステップS340で受信した絞り206の予測駆動時間が所定のしきい値より大きいか否かを判定する。本実施形態では、このしきい値を、カメラボディ100におけるレリーズタイムラグ(例えば、クイックリターンミラー103の退避位置への駆動に要する時間など)の値とする。つまりステップS360では、絞り206の撮影準備に要する時間が、カメラボディ100側の撮影準備に要する時間より大きいか否かを判定している。
ステップS360において、予測駆動時間が所定のしきい値より大きいと判定された場合には、処理はステップS370に進む。ステップS370でボディ制御装置109は、絞り206の駆動完了に必要な時間だけ待機した後、ステップS380に進む。ここで待機する時間は、絞り206の予測駆動時間からカメラボディ100側のレリーズタイムラグを引いた時間である。他方、ステップS360において予測駆動時間が所定のしきい値以下であった場合、カメラボディ100側の撮影準備が完了する頃には絞り206の駆動が完了しているはずなので、ステップS370のような待ち時間を設けることなくステップS380に進む。ステップS380では撮影動作が実行される。すなわち、撮像素子104の露光がなされ、撮像素子104の受光出力に基づいてボディ制御装置109が撮影画像データを作成する。
図8は、第1の制御モードにおいて第1のレンズ制御装置209aが実行する撮影処理のフローチャートである。まずステップS400で、第1のレンズ制御装置209aがボディ制御装置109から絞り駆動時間予測コマンドを受信する(図7のステップS330に対応)。そして、ステップS410で、受信した絞り駆動時間予測コマンドに含まれるパラメータ(絞り駆動量aおよび絞り駆動速度v)と、レンズ側ROM210に記憶されているレンズデータ(上述の演算式(1)と補正項α)とに基づいて、絞り206の駆動時間を予測する(予測駆動時間を演算する)。ステップS420では、ステップS410で演算した予測駆動時間をボディ制御装置109に送信する(図7のステップS340に対応)。
ステップS430で第1のレンズ制御装置209aは、ボディ制御装置109から絞り駆動コマンドを受信する(図7のステップS350に対応)。そして、ステップS440で、受信した絞り駆動コマンドに含まれるパラメータに基づいて絞り駆動部208を制御し、指定された駆動量、駆動方向、および駆動速度で絞り206を駆動させる。
上述した第1の実施の形態によるカメラシステムによれば、次の作用効果が得られる。(1)第1の交換レンズ200aは、被駆動部材である絞り206を含む光学系と、絞り206を駆動する絞り駆動部208と、絞り駆動部208による絞り206の駆動に関するレンズデータを記憶するレンズ側ROM210とを備える。第1のレンズ制御装置209aは、レンズ側ROM210に記憶されているレンズデータに基づいて構成され、レンズ側ROM210にレンズデータが正しく記憶されているか否かを判定することが可能なレンズ側判定データをカメラボディ100に送信する。このようにしたので、カメラボディ側では、実際の撮影動作(絞り制御動作)の時に使用するレンズデータを用いて、そのレンズデータの正誤性を判断できる。この判断で「正」と判断されれば、レンズ側ROM210内に保持されているデータの安全性が高いものとして、つまりレンズ側ROM210に格納されているレンズデータが正しく記憶されているものとして、扱うことができる。これにより以降の撮影動作時に行われる絞り206の予測駆動時間の演算も正しく行われるものとして、扱うことができる。
(2)ボディ制御装置109は、レンズ側ROM210に記憶されているレンズデータに基づいて構成されレンズ側ROM210にレンズデータが正しく記憶されているか否かをカメラボディ100側で判定することが可能なレンズ側判定データを第1の交換レンズ200aから受信し、そのレンズ側判定データに基づいて、レンズ側ROM210にレンズデータが正しく記憶されているか否かを判定する。このようにしたので、実際の撮影動作(絞り制御動作)を行う前に、絞り駆動制御に関するレンズデータの正誤性を判断できるので、誤ったレンズ側データに基づく撮影失敗を未然に防ぐことが出来る。
(3)第1のレンズ制御装置209aは、ROM210に記憶されているレンズデータに基づいて、絞り駆動部208が所定速度で所定量だけ絞り206を駆動するために必要な駆動時間の予測を行う。このようにしたので、カメラボディ100側に、交換レンズ200側の絞り駆動と、カメラボディ側のシャッター駆動との時間的な連係をとらせることが可能となり、レリーズタイムラグの短縮化を図ることが出来る。
(4)第1のレンズ制御装置209aは、レンズ側ROM210に記憶されているレンズデータをレンズ側判定データとしてカメラボディ100に送信する。またボディ制御装置109は、レンズ側ROM210に記憶されているレンズデータをレンズ側判定データとして第1の交換レンズ200aから受信する。このようにしたので、実際の撮影動作(絞り制御動作)に使用するレンズ側データ(レンズデータ)そのものを使って、その正誤性を判断することになる。この判断で「正」と判断されれば、レンズデータが正しく記憶されているもとして扱うことができ、以降の撮影動作時に行われる絞り206の予測駆動時間の演算も正しく行われるものとして扱うことが出来る。
(第2の実施の形態)
本発明の第2の実施の形態に係るカメラシステムは、一部を除き第1の実施の形態と同一の構成を有する。以下、第1の実施の形態との差異について説明する。なお、以下の説明において、第1の実施の形態と同一の箇所については、第1の実施の形態と同一の符号を付して説明を省略する。
第2の実施の形態に係るカメラシステムでは、上述した絞り206の予測駆動時間Tに関する簡易な予測駆動時間T’を、上述の第1の実施形態よりも「簡易な手法」(例えば簡易な演算)で求める(生成する)ことができる手法を、予測駆動時間Tの予測手法とは別途に備えており、その簡易な手法で求めた絞り予測駆動時間(簡易な演算値)をレンズ側判定データとする。
ここで上記「簡易な手法」について説明する。第1の実施の形態では、レンズ側ROM210にレンズデータとして演算式(1)「T=a/v+α」(絞り駆動量a、絞り駆動速度v、予測駆動時間T、補正項α)と補正項αとを格納しており、この演算式(1)を用いて予測駆動時間Tを算出している。一方、本第2の実施の形態におけるレンズ側ROM210には、上記演算式(1)と補正項αとの組合わせの他に、この演算式(1)から補正項αを除いた簡易な演算式(2)「T’=a/v」も格納されている。この簡易な演算式(2)を用いて「簡易な予測駆動時間T’」を算出(生成)することが、第2の実施の形態における「簡易な手法」である。演算式(2)から明らかなように、「簡易な予測駆動時間T’」は絞り駆動量aおよび絞り駆動速度vのみにより算出される時間である。
ボディ制御装置109は、第1の実施形態で既述した判定データ要求コマンドの代わりに、所望のパラメータ(所望の絞り駆動量(段数)a、所望の絞り駆動速度v)を含み、且つ「簡易な予測駆動時間T’」を交換レンズ200aに要求する「簡易版絞り駆動時間予測コマンド」を、第1のレンズ制御装置209aに送信する。
一方、ボディ制御装置109は、ボディ側ROM112に、ボディ側データとして、上記の簡易演算式(2)と同内容の簡易演算式「T’=a/v」を予め格納している。つまり簡易演算式「T’=a/v」は、ボディ側ROM112とレンズ側ROM210とにそれぞれ共通に格納されている演算式である(以降の説明では上記簡易演算式(2)を「共通演算式」と称することもある。)。
ボディ制御装置109は、「簡易版絞り駆動時間予測コマンド」を、第1のレンズ制御装置209aに送信した後で、ボディ側ROM112に格納されている上記共通演算式(ボディ側データ)と、交換レンズ200aに送信した上記所望のパラメータ(絞り駆動量a、絞り駆動速度v)とに基づいて、独自に絞り駆動時間の予測を行う。
具体的には、ボディ側データに含まれる共通演算式に、上記の所望のパラメータ(絞り駆動量a、絞り駆動速度v)を適用し、簡易な予測駆動時間T’を演算する。そして、第1のレンズ制御装置209aから受信した簡易な予測駆動時間T’と、自身で演算した簡易な予測駆動時間T’とを比較し、その値が一致すれば、レンズ側ROM210にレンズデータ(演算式(2)だけでなく、演算式(1)および補正項α)が正しく記憶されていると見なす。
図9は、第2の実施の形態に係るボディ制御装置109が実行する初期化処理のフローチャートである。なお、ステップS100〜S130は第1の実施の形態におけるレンズ初期化処理(図5)と同一であるので説明を省略する。
ステップS130において、第1の交換レンズ200aが装着されているとボディ制御装置109が判断した場合、処理はステップS500に進む。ステップS500では、ボディ制御装置109から第1のレンズ制御装置209aに対し、所望のパラメータ(絞り駆動量a、絞り駆動速度v)を含む簡易版絞り駆動時間予測コマンドを送信する。ここで設定されるパラメータは、固定値(所定パラメータ、即ち所定の絞り駆動量aと所定の絞り駆動速度vとの組合わせ)であってもよいし、初期化処理を実行する度に異なるランダムな値であってもよい(絞り駆動量a、絞り駆動速度vの両方がランダムな値の組み合わせでも、あるいは何れか片方のみがランダムな値の組み合わせでも良い)。続くステップS510において、第1のレンズ制御装置209aから簡易な予測駆動時間T’を受信する。
ステップS520ではボディ制御装置109が、ボディ側ROM112に格納されているボディ側データ(共通演算式)とステップS500で送信した絞り駆動時間予測コマンドのパラメータ(絞り駆動量a、絞り駆動速度v)とに基づいて、絞り206の駆動時間を簡易に予測する。そして、ステップS530において、ステップS510で受信した簡易な予測駆動時間T’と、ステップS520で演算した簡易な予測駆動時間T’とが一致しているか否かを判定する。これら2つの値が一致していた場合にはステップS161に進み、ボディ制御装置109はカメラボディ100の制御モードを第1の制御モードに設定する。
他方、ステップS530においてボディ側で算出した簡易な予測駆動時間T’とレンズ側で算出された簡易な予測駆動時間T’とが一致しなかった場合には、ステップS162に進む。この場合、ボディ制御装置109は、第1の交換レンズ200a内のレンズ側ROM210に記憶されている上述のレンズデータ(演算式(2)だけでなく、演算式(1)および補正項αも)が、例えば静電気などの強い電気的な衝撃により破損してしまっていると見なし、絞り206の駆動に制約を設けた第4の制御モードをカメラボディ100に設定する。
図10は、第2の実施の形態に係る第1のレンズ制御装置209aが実行する初期化処理のフローチャートである。なお、ステップS200およびステップS210は第1の実施の形態におけるレンズ初期化処理(図6)と同一であるので説明を省略する。
ステップS600において、第1のレンズ制御装置209aは、ボディ制御装置109から「簡易版絞り駆動時間予測コマンド」を受信する(図9のステップS500に対応)。ステップS610では、図8のステップS410と同様に、受信した簡易版絞り駆動時間予測コマンドに含まれるパラメータ(絞り駆動量a、絞り駆動速度v)と、レンズ側ROM210に記憶されているレンズデータ(共通演算式)とに基づいて、絞り206の駆動時間を簡易予測する(簡易な予測駆動時間T’を演算する)。ステップS620では、ステップS610で演算した簡易な予測駆動時間T’をボディ制御装置109に送信する(図9のステップS510に対応)。
上述した第2の実施の形態によるカメラシステムによれば、次の作用効果が得られる。(1)第1のレンズ制御装置209aは、絞り206の簡易な予測駆動時間T’をレンズ側判定データとしてカメラボディ100に送信する。またボディ制御装置109は、第1のレンズ制御装置209aがレンズデータ(共通演算式)に基づいて簡易予測した、任意速度で任意量(段数)だけ絞り206を駆動するために必要な駆動時間を簡易に演算した結果T’を、レンズ側判定データとして第1の交換レンズ200aから受信する。カメラボディ100内のボディ側ROM112には、第1の交換レンズ200a内のレンズ側ROM210に記憶されているレンズデータの一部(共通演算式)と同一のレンズデータ(共通演算式)が記憶される。ボディ制御装置109は、ボディ側ROM112に記憶されているレンズデータ(共通演算式)に基づいて、任意速度で任意量(段数)だけ絞り206を駆動するために必要な駆動時間を簡易予測し、その簡易な予測駆動時間T’と、第1の交換レンズ200aから受信したレンズ側判定データ(レンズ側で演算した簡易な予測駆動時間T’)とを比較することにより、レンズ側ROM210に記憶されているレンズ側判定データを、安全性が高いものとして扱うことができ(レンズ側ROM210に格納されているレンズ側判定データが正しく記憶されているものとして、扱うことができ)、ひいてはレンズ側ROM自体を安全性が高いものとして扱うこと、つまりレンズ側ROM210内の全てのレンズデータ(共通演算式、演算式(1)、補正項αの3つとも)を安全性が高いものとして(正しく記憶されているものと見做して)、扱うことができる。このようにしたので、簡易な予測駆動時間T’の演算結果のみで、レンズデータの安全性の確認を行うことができるので、レンズ側判定データのサイズを削減し、通信負荷を低減することができる。また、レンズデータが正しく記憶されていることのみならず、そのレンズデータ(演算式(1)の一部分である演算式(2))を用いて簡易な予測駆動時間T’を正しく演算できるか否かの判定、即ち演算式(1)の部分的な判定もすることができる。
(第3の実施の形態)
本発明の第3の実施の形態に係るカメラシステムは、一部を除き第1の実施の形態と同一の構成を有する。以下、第1の実施の形態との差異について説明する。なお、以下の説明において、第1の実施の形態と同一の箇所については、第1の実施の形態と同一の符号を付して説明を省略する。
第3の実施の形態に係るカメラシステムでは、カメラボディ100のボディ側ROM112に上記各実施形態で説明したようなボディ側データが記憶されていない。ボディ制御装置109は、パラメータがそれぞれ異なる(絞り駆動量a、絞り駆動速度vの値の少なくとも1つが異なる)2つの絞り駆動時間予測コマンドを第1のレンズ制御装置209aに送信する。そして、それらの各コマンドにより得られた2つの予測駆動時間の大小関係が期待通りか否かを判定することにより、レンズ側ROM210にレンズデータが正しく記憶されているかを判定する。
例えば、1つ目の絞り駆動時間予測コマンド(以降では「絞り駆動時間予測コマンドA」と称する場合がある)が所定方向に所定の絞り駆動速度で絞り206を2段分(絞り駆動量a=2段)だけ駆動する場合の駆動時間を予測するコマンドであり、2つ目の絞り駆動時間予測コマンド(以降では「絞り駆動時間予測コマンドB」と称する場合がある)が1つ目の絞り駆動時間予測コマンドと同一方向に同一絞り駆動速度で絞り206を4段分(絞り駆動量a=4段)だけ駆動する場合の駆動時間を予測するコマンドであるとする。この場合、1つ目の絞り駆動時間予測コマンドに対する応答として第1のレンズ制御装置209aから送信されてきた予測駆動時間(v=所定速度、a=2段、上述の演算式(1)および補正項αを用いて演算された時間)は、2つ目の絞り駆動時間予測コマンドに対する応答として送信されてきた予測駆動時間(v=所定速度、a=4段、上述の演算式(1)および補正項αを用いて演算された時間)よりも小さいはずである。なぜなら絞り駆動時間予測コマンドAにおける絞り駆動量(2段)の方が、絞り駆動時間予測コマンドBにおける絞り駆動量(4段)よりも少ないからである。当然、ボディ制御装置109は、第1のレンズ制御装置209aから送信される予測駆動時間のうち、絞り駆動時間予測コマンドAに対する応答として予測駆動時間が、絞り駆動時間予測コマンドBに対する応答としての予測駆動時間よりも小さい(短い)ことを予め予期している。そこでボディ制御装置109は、1つ目の予測駆動時間が2つ目の予測駆動時間より小さいか否かを判定することで、第1のレンズ制御装置209aが絞り206の駆動時間を正しく予測できているか、すなわち、レンズ側ROM210にレンズデータが正しく記憶されているかを検査する。本第3の実施の形態では、1つ目の予測駆動時間が2つ目の予測駆動時間より小さい場合に、第1のレンズ制御装置209aが絞り206の駆動時間を正しく予測できているものと推定する。
図11は、第3の実施の形態に係るボディ制御装置109が実行するレンズ初期化処理のフローチャートである。なお、ステップS100〜S130は第1の実施の形態におけるレンズ初期化処理(図5)と同一であるので説明を省略する。
ステップS130において、第1の交換レンズ200aが装着されているとボディ制御装置109が判断した場合、処理はステップS700に進む。ステップS700では、ボディ制御装置109から第1のレンズ制御装置209aに対し、所定のパラメータを含む絞り駆動時間予測コマンド(以下、絞り駆動時間予測コマンドAと称する)を送信する。ここで設定されるパラメータは、固定値であってもよいし、初期化処理を実行する度に異なるランダムな値であってもよい。続くステップS710において、第1のレンズ制御装置209aから予測駆動時間(以下、予測駆動時間Aと称する)を受信する。
ステップS720ではボディ制御装置109が、ステップS700で送信したものとは異なるパラメータを含む絞り駆動時間予測コマンド(以下、絞り駆動時間予測コマンドBと称する)を送信する。絞り駆動時間予測コマンドBに含まれるパラメータは、絞り駆動時間予測コマンドAのパラメータよりも、駆動時間の予測結果が確実に大きくなるようなパラメータとする。例えば、駆動方向と駆動速度は同一とし、駆動量は絞り駆動時間予測コマンドBの方を大きくする。あるいは、駆動量と駆動方向を同一とし、駆動速度を駆動時間予測コマンドBの方が小さくなるようにする。続くステップS730において、第1のレンズ制御装置209aから予測駆動時間(以下、予測駆動時間Bと称する)を受信する。
ステップS740において、ボディ制御装置109は、ステップS710で受信した予測駆動時間Aが、ステップS730で受信した予測駆動時間Bより小さいか否かを判定する。予測駆動時間Aが予測駆動時間Bよりも小さい場合にはステップS161に進み、ボディ制御装置109はカメラボディ100の制御モードを第1の制御モードに設定する。
他方、ステップS740において予測駆動時間Aが予測駆動時間B以上であった場合にはステップS162に進む。この場合、ボディ制御装置109は、第1の交換レンズ200a内のレンズ側ROM210に記憶されているレンズデータが、例えば静電気などの強い電気的な衝撃により破損してしまっていると見なし、絞り206の駆動に制約を設けた第4の制御モードをカメラボディ100に設定する。
図12は、第3の実施の形態に係る第1のレンズ制御装置209aが実行するレンズ初期化処理のフローチャートである。なお、ステップS200およびステップS210は第1の実施の形態における初期化処理(図6)と同一であるので説明を省略する。
ステップS800において、第1のレンズ制御装置209aは、ボディ制御装置109から「絞り駆動時間予測コマンドA」を受信する(図11のステップS700に対応)。ステップS810では、図8のステップS410と同様に、受信した絞り駆動時間予測コマンドAに含まれるパラメータ(絞り駆動量a、絞り駆動速度v)と、レンズ側ROM210に記憶されているレンズデータ(上記演算式(1)および補正項α)とに基づいて、絞り206の駆動時間を予測する(予測駆動時間Aを演算する)。ステップS820では、ステップS810で演算した予測駆動時間Aをボディ制御装置109に送信する(図11のステップS710に対応)。
なお、レンズ側ROM210に記憶されるレンズデータとして、上述の演算式(2)を格納しておき、上記ステップS810において、この演算式(2)を用いて絞り206の駆動時間を予測する(予測駆動時間Aを演算する)ように構成しても良い。
ステップS830〜ステップS850では、ステップS800〜ステップS820と同様に、ボディ制御装置109から「絞り駆動時間予測コマンドB」を受信(図11のステップS720に対応)して上記ステップS810と同様に予測駆動時間Bを演算し、ボディ制御装置109に送信する(図11のステップS730に対応)。
上述した第3の実施の形態によるカメラシステムによれば、次の作用効果が得られる。(1)ボディ制御装置109は、それぞれ異なるパラメータを含む2つの絞り駆動時間予測コマンドを第1のレンズ制御装置209aに送信し、それら2つのコマンドへの応答として第1のレンズ制御装置209aが送信する2つの予測駆動時間を比較することにより、ROM210にレンズデータが正しく記憶されているか否か(レンズデータの安全性)を判定する。このようにしたので、カメラボディ100内のボディ側ROM112に予めレンズデータの安全性を判別する際に使用されるボディ側データを記憶しておく必要なしに、レンズデータの安全性を判断することができる。
(第4の実施の形態)
本発明の第4の実施の形態に係るカメラシステムは、一部を除き第1および第2の実施の形態と同一の構成を有する。以下、第1および第2の実施の形態との差異について説明する。なお、以下の説明において、第1および第2の実施の形態と同一の箇所については、それら実施の形態と同一の符号を付して説明を省略する。
第4の実施の形態に係るカメラシステムでは、上述した絞り206の予測駆動時間Tを、上述の第1の実施の形態で説明した演算式(1)を用いて算出し、その算出した絞り予測駆動時間をレンズ側判定データとする。
第4の実施の形態におけるボディ側ROM112は、上記演算式(1)を予め格納しているが、補正項αのデータ(数値データ)を格納していない。これは補正項αのデータは1本の交換レンズ用のデータだけでもデータサイズが大きくなる可能性があり、複数本の交換レンズそれぞれの補正項αのデータをボディ側ROM112に格納しようとすると、例えばメモリ(ROMなど)の増設が必要になる可能性もある。そこで本第4の実施の形態では、補正項αのデータは、予めボディ側ROM112に格納しておかず、必要に応じてその都度(交換レンズ側に、補正項αのデータ要求コマンドを出して)、交換レンズ側(レンズ側ROM210)から受信するようにシステムを構成している。なお、ボディ制御装置109は、レンズ制御装置209aに対して、所望のパラメータ(絞り駆動量a、絞り駆動速度v)を含む絞り駆動時間予測コマンドを送信する際に、補正項αのデータ要求コマンドを送信する。
レンズ制御装置209は、上記絞り駆動時間予測コマンドを受信すると、レンズ側ROM210に格納されている上記演算式(1)と補正項αのデータとを用いて、予測駆動時間Tを算出する。レンズ制御装置209は、また、補正項αのデータ要求コマンドを受信すると、レンズ側ROM210に格納された補正項αの複数のデータの中から、所望のパラメータに相応しい補正項αのデータを抽出する。そしてレンズ制御装置は、算出した予測駆動時間Tと、抽出した補正項αのデータ(数値データ)とをボディ側に送信する。
ボディ制御装置109は、レンズ側ROM210から補正項αのデータを受信すると、その受信した補正項αのデータと、ボディ側ROM112に格納されている上述の演算式(1)(ボディ側データ)と、交換レンズ200aに送信した上記所望のパラメータ(絞り駆動量a、絞り駆動速度v)とに基づいて、独自に絞り駆動時間の予測(演算)を行う。そして、第1のレンズ制御装置209aから受信した予測駆動時間Tと、自身で演算した予測駆動時間Tとを比較し、その値が一致すれば、レンズ側ROM210にレンズデータ(演算式(1)および補正項α)が正しく記憶されていると見做す。
図13は、第4の実施の形態に係るボディ制御装置109が実行する初期化処理のフローチャートである。なお、ステップS100〜S130は第1の実施の形態におけるレンズ初期化処理(図5)と同一であるので説明を省略する。
ステップS130において、第1の交換レンズ200aが装着されているとボディ制御装置109が判断した場合、処理はステップS900に進む。
ステップS900では、ボディ制御装置109から第1のレンズ制御装置209aに対し、所望のパラメータ(絞り駆動量a、絞り駆動速度v)を含む駆動時間予測コマンドを送信する。ここで設定されるパラメータは、固定値(所定パラメータ、即ち所定の絞り駆動量aと所定の絞り駆動速度vとの組み合わせ)であってもよいし、初期化処理を実行する度に異なるランダムな値であってもよい(絞り駆動量a、絞り駆動速度vの両方がランダムな値の組み合わせでも、あるいは何れか片方のみがランダムな値の組み合わせでも良い)。
また本ステップS900では、ボディ制御装置109から第1のレンズ制御装置209aに対し、既述した補正項αのデータを要求するコマンドを送信する。ボディ制御装置109は、この要求コマンドにより、所定の絞り駆動量aと所定の絞り駆動速度vとの組み合わせに相応しい補正項αのデータを、レンズ制御装置209に要求する。
続くステップS910において、第1のレンズ制御装置209aから予測駆動時間T’を受信する。また本ステップS910において、レンズ制御装置209aが抽出した補正項αの数値データを受信する。
ステップS920ではボディ制御装置109が、ボディ側ROM112に格納されているボディ側データ(演算式(1))とステップS900で送信した絞り駆動時間予測コマンドのパラメータ(絞り駆動量a、絞り駆動速度v)と、ステップS910でレンズ側から取得した補正項αの数値データとに基づいて、絞り206の駆動時間を簡易に予測演算する。そして、ステップS930において、ステップS910で受信した予測駆動時間Tと、ステップS920で演算した予測駆動時間Tとが一致しているか否かを判定する。これら2つの値が一致していた場合にはステップS161に進み、ボディ制御装置109はカメラボディ100の制御モードを第1の制御モードに設定する。
他方、ステップS930においてボディ側で算出した予測駆動時間Tとレンズ側で算出された予測駆動時間Tとが一致しなかった場合には、ステップS162に進む。この場合、ボディ制御装置109は、第1の交換レンズ200a内のレンズ側ROM210に記憶されている上述のレンズデータ(演算式(1)および補正項αのデータの少なくとも一方)が、例えば静電気などの強い電気的な衝撃により破損してしまっていると見なし、絞り206の駆動に制約を設けた第4の制御モードをカメラボディ100に設定する。
図14は、第4の実施の形態に係る第1のレンズ制御装置209aが実行する初期化処理のフローチャートである。なお、ステップS200およびステップS210は第1の実施の形態におけるレンズ初期化処理(図6)と同一であるので説明を省略する。
ステップS1000において、第1のレンズ制御装置209aは、ボディ制御装置109から「絞り駆動時間予測コマンド」および「補正項αのデータ要求コマンド」とを受信する(図13のステップS900に対応)。ステップS1010では、図8のステップS410と同様に、受信した絞り駆動時間予測コマンドに含まれるパラメータ(絞り駆動量a、絞り駆動速度v)と、レンズ側ROM210に記憶されているレンズデータ(演算式(1)と補正項αの数値データ)とに基づいて、絞り206の駆動時間を予測演算する(予測駆動時間Tを演算する)。ステップS1020では、ステップS1010で演算した予測駆動時間Tをボディ制御装置109に送信する(図13のステップS910に対応)。
上述した第4の実施の形態によるカメラシステムによれば、次の作用効果が得られる。(1)ボディ側ROM112に、複数の交換レンズの補正項αのデータを持たせておかなくても、レンズ側ROM210内に格納されているデータの安全性を判定することができるので、カメラボディ側のハード構成を簡易にすることができる。
次のような変形も本発明の範囲内であり、変形例の一つ、もしくは複数を上述の実施形態と組み合わせることも可能である。
(変形例1)
上述の各実施形態では、光束の通過する開口の大きさを変更するように移動可能な絞り206の駆動に関するレンズデータについて本発明を適用した例を説明したが、本発明は他の被駆動部材に適用することも可能である。例えば、光学系の光軸Xの方向に移動可能なフォーカシングレンズ204の駆動に関するレンズデータについて本発明を適用してもよい。すなわち、第1の交換レンズ200aを、フォーカシングレンズ204の駆動時間を予測可能に構成し、レンズ側ROM210にはフォーカシングレンズ204の駆動に関するレンズデータを格納してもよい。また、第1の交換レンズ200aに被写体像の像振れを補正する振れ補正レンズ(光軸Xに垂直な方向の成分を含むように移動可能なレンズ)を追加し、この振れ補正レンズに本発明を適用することも可能である。
(変形例2)
第1の実施の形態において、レンズ側判定データとしてレンズデータを全てカメラボディ100に送信するのではなく、その一部のみをレンズ側判定データとして生成してカメラボディ100に送信するようにしてもよい。例えば、レンズデータに絞り206の駆動時間を予測する演算式とその補正項とが含まれる場合、演算式のみをレンズ側判定データとして生成して送信してもよい。この場合、カメラボディ100内のボディ側ROM112には、演算式のみが記憶されていればよい。
また、レンズ側判定データは上述した予測駆動時間の演算式や補正項以外のデータであってもよい。例えば、予測駆動時間の演算式に与えられる補正項以外のパラメータであってもよいし、絞り206の駆動制御の単位(絞り駆動部208の駆動単位)を表すデータ(例えば、データ「1LSB」が表す絞り駆動段数)であってもよい。また、レンズ側ROM210にレンズデータが記憶されているか否かを表すデータであってもよい。
(変形例3)
カメラボディ100内のボディ側ROM112にボディ側判定データを記憶するタイミングは、例えば当該カメラボディ100の製造時であってもよいし、あるいは当該カメラボディ100に当該交換レンズを初めて装着したときであってもよい。後者の場合、初回装着時に正常なレンズ側判定データを記憶しておき、その後当該交換レンズの装着の都度、レンズデータの判定が行われることになる。
(変形例4)
上述した各実施形態では、初期化処理においてレンズデータの判定が行われていたが、本発明はこのような実施の形態に限定されない。例えば、デジタルカメラ1が電源オン状態のときに、所定時間ごとにレンズデータの判定が行われるようにしてもよいし、あるいは撮影の都度判定が行われるようにしてもよい。
(変形例5)
第2の実施の形態において、2つの予測駆動時間を比較する際、それら2つの値は必ずしも厳密に一致しなくてもよい。例えば浮動小数点演算の精度などによっては、それら2つの予測駆動時間に誤差が生じることがあるので、2つの予測駆動時間の差が所定のしきい値以下であることをもって一致と判断してもよい。
(変形例6)
第2の実施の形態において、レンズ制御装置209aは共通演算式を用いて絞り駆動時間を簡易演算しているが、このような演算式では無く、テーブル(例えば絞り駆動量aと絞り駆動速度vをパラメータとする二次元テーブル)を用いて簡易な絞り駆動予測時間T’を求めるように構成しても良い。この場合、ボディ制御装置109も、この算出テーブルと同一内容のテーブルを持つように構成しておく。
(変形例7)
上述した各実施形態では、第4の制御モードが設定された場合(レンズデータが正しく記憶されていないと判断した場合)、第1のレンズ制御装置209aに対し絞り駆動コマンドを送信せず、絞り206の開口径を固定したままで撮影動作等を行っていたが、レンズデータが正しく記憶されていない場合の動作として、これら各実施形態とは異なるものを採用してもよい。例えば絞り206の駆動速度の指定は行わないが絞り駆動は行う(駆動速度のパラメータを含まない絞り駆動コマンドを送信する)ようにしてもよい(即ち、上述の実施形態における「第2の制御モード」に設定しても良い)し、交換レンズへの給電を停止したり、当該交換レンズを用いた撮影を禁止してもよい。
(変形例8)
第2の実施の形態において、判定の際にボディ制御装置109が送信する、簡易版絞り駆動時間予測コマンドを、撮影時に用いる絞り駆動時間予測コマンドと同一のものを用いるようにしても良い。つまり、ボディ側マウント部に装着されている交換レンズ200のレンズ側ROM210に格納されている演算式(1)と補正項αと同一の演算式(1)と補正項αとを、予めボディ側ROM112に格納しておけば、別途簡易な共通演算式を用いなくても(互いのROMに格納しておかなくても)、第2の実施の形態と同様の判定が出来る。
(変形例9)
上記各実施の形態において、レンズ制御装置209aは演算式(1)と補正項αとを用いて絞り駆動時間Tを演算しているが、このような演算式では無く、テーブル(例えば、絞り駆動量aと絞り駆動速度vをパラメータとする二次元テーブルであって、テーブル内の数値には予め補正項αが加味されているもの)を用いて絞り駆動予測時間Tを求めるように構成しても良い。
(変形例10)
上記第3の実施の形態では、絞り駆動時間予測コマンドAに対する応答として予測駆動時間が、絞り駆動時間予測コマンドBに対する応答としての予測駆動時間よりも小さい(短い)場合に、第1のレンズ制御装置209aが絞り206の駆動時間を正しく予測できている(レンズ側ROM210にレンズデータが正しく記憶されている)と判定するよう構成している。しかしながら、この大小関係の判定を逆にしても構わない。すなわち、ボディ制御装置109は、絞り駆動時間予測コマンドAにおける絞り駆動量を、絞り駆動時間予測コマンドBにおける絞り駆動量よりも大きく設定しておき、1つ目の予測駆動時間が2つ目の予測駆動時間より大きいか否かを判定する(大きい場合に、第1のレンズ制御装置209aが絞り206の駆動時間を正しく予測できている、すなわち、レンズ側ROM210にレンズデータが正しく記憶されている、と判定する)ようにしても良い。
(変形例11)
上記第3の実施の形態および変形例10では、第1のレンズ制御装置209aが、ボディ制御装置109からの絞り駆動時間予測コマンドAおよびBに応じてそれぞれ予測駆動時間を求め、且つその求めた予測駆動時間をボディ制御装置109に対して送信するように構成している。またボディ制御装置109は、レンズ制御装置209aから受け取った2つの予測駆動時間を互いに比較して大小を判別するよう構成している。しかしながら、ボディ制御装置109としては、2つの予測駆動時間を受け取って比較動作をしなくても、2つの予測駆動時間(時間A,B)の大小関係(第3実施形態で言えば「時間A<時間B」、変形例10で言えば「時間A>時間B」)さえ分かれば良い。よって、レンズ制御装置209aが2つの予測駆動時間を算出した後で、自らがそれら2つの予測駆動時間の大小関係を比較し、且つその比較結果を示す情報(算出した2つの予測駆動時間の大小関係を示す情報、例えば、第3実施形態で言えば「時間A<時間B」を示す情報であり、変形例10で言えば「時間A>時間B」を示す情報)をボディ制御装置109に送信するように構成しても良い。
(変形例12)
上記第2の実施の形態では、ボディ制御装置109も、上述の「共通演算式」を用いて独自に絞り駆動時間の簡易予測を行っている。しかしながら、ボディ制御装置109が、上記「共通演算式」を用いた簡易予測(演算)を行う代わりに、予めボディ側ROM112に記憶させたテーブル情報(後述)(ボディ側データ)を用いて、上述の「簡易な予測駆動時間T’」を求めるようにしても良い。具体的には、ボディ側ROM112に、所望のパラメータ(所望の絞り駆動量aおよび所望の絞り駆動速度vの組み合わせ)と、その各組み合わせにそれぞれ対応する「簡易な予測駆動時間T’」とで構成されるテーブル情報(ボディ側データ)を記憶しておく。そしてボディ制御装置109は、レンズ側にコマンドとして送る所望のパラメータ(絞り駆動量aと絞り駆動速度v)に応じて、比較対象として使用する「簡易な予測駆動時間T’」をテーブル情報から選択する。そして、ボディ制御装置109は、レンズ制御装置209aから送信される「簡易な予測駆動時間T’」と、上述のテーブル情報から選択した「簡易な予測駆動時間T’」とを比較する。以降の処理は、上記第2の実施の形態と同様である。このようにすればボディ制御装置109は、共通演算式を用いた演算を行うことなく、「簡易な予測駆動時間T’」同士を比較することができる。
以下、第2の実施の形態の変形である変形例12について、図15および図16を用いて説明する。なお、以下の説明において、第2の実施の形態と同一の箇所については、第2の実施の形態と同一の符号を付して説明を省略する。
図15は、ボディ側ROM112が記憶するテーブル情報の一例を示す図である。ボディ側ROM112は、既述の「簡易な演算式(2)「T’=a/v」」の代わりに、テーブル情報10を記憶している。テーブル情報10は、絞り駆動量aと絞り駆動速度vとを含むパラメータに、簡易な予測駆動時間T’が関連づけられたセットを、複数(図16では5つ)含んでいる。以下の説明では、このセットをパラメータセット(ボディ側データ)と呼ぶ。なお図15に示した簡易な予測駆動時間T1’〜T5’は、例えば本カメラシステムを製造する工場に設置されるコンピュータ等に予め記憶されている既述の「簡易な演算式(2)」に、図15に示した絞り駆動量a1〜a5と絞り駆動速度v1〜v5とをそれぞれ代入することにより予め算出される値である。このテーブル情報は、工場出荷時等に、ボディ側ROM112に記憶される。
図16は、変形例12に係るボディ側制御装置109が実行する初期化処理のフローチャートである。ステップS100〜S131の動作については、図9に示したフローチャートと同一であるので説明を省略する。
カメラボディ100に第1の交換レンズ200aが装着されている場合、ボディ側制御装置109によりステップS130において否定判定がなされ、処理はステップS1090に進む。ステップS1090ではボディ制御装置109が、ボディ側ROM112に記憶されているテーブル情報10から、いずれかの1つパラメータセットを選択する。
続くステップS1100において、ボディ制御装置109は、第1のレンズ制御装置209aに対して、簡易版絞り駆動時間予測コマンドを送信する。このコマンドには、ステップS1090において選択したパラメータセットの絞り駆動量および絞り駆動速度が含まれる。例えばステップS1090において第1セットが選択されていた場合、ステップS1100で送信されるコマンドには、絞り駆動量a1と絞り駆動速度v1とが含まれる。
次のステップS510では、ボディ制御装置109が第1のレンズ制御装置209aから、第1のレンズ制御装置209aにより演算された簡易な予測駆動時間T’を受信する。この予測駆動時間T’は、第1のレンズ制御装置209aが、既述の簡易な演算式(2)に、ステップS1100で送信されたコマンドに含まれる絞り駆動量および絞り駆動速度を与えて演算した値である。例えばステップS1090において第1セットが選択されていた場合、第1のレンズ制御装置209aは、絞り駆動量a1と絞り駆動速度v1とを用いて簡易な予測駆動時間T’を演算する。
そして、ステップS1120においてボディ制御装置109は、テーブル情報10から、ステップS1090で選択したパラメータセットに含まれる簡易な予測駆動時間T’を取得する。例えばステップS1090において第1セットが選択されていた場合、ステップS1120では当該第1セットに含まれる簡易な予測駆動時間T1’が取得される。その後、ステップS1130においてボディ制御装置109は、ステップS510で受信した簡易な予測駆動時間T’と、ステップS1120において取得した簡易な予測駆動時間T’(例えばT1’)とが一致しているか否かを判定する。これら2つの値が一致していた場合にはステップS161に進み、ボディ制御装置109はカメラボディ100の制御モードを前述の第1の制御モードに設定する。他方、ステップS1130において2つの値が一致しなかった場合にはステップS162に進み、前述の第4の制御モードをカメラボディ100に設定する。
なお、この変形例12において、第1のレンズ制御装置209aの動作は図10に示すフローチャートと同一であるので説明を省略する。
ところで、上記変形例12では、テーブル情報10における簡易な予測駆動時間T1’〜T5’を予め算出しておく場合、および図16のステップS510で交換レンズ側から受信する簡易な予測駆動時間T’を交換レンズ側で演算させる場合に用いる演算式として、簡易な演算式(2)「T’=a/v」を用いるものとしていた。しかしながら、この簡易な演算式(2)ではなく、既述の演算式(1)「T=a/v+α (T=α+a/v)」を用いるように構成してもよい。
また、上記変形例12では、テーブル情報10が第1〜第5セットの5つのパラメータセットを含む例について説明したが、パラメータセットの数は5つに限らず、これより多くても少なくてもよい。例えば、テーブル情報10にパラメータセットが1つだけ含まれるようにしてもよい。ただし、2つ以上のパラメータセットがテーブル情報10に含まれていれば、2つ以上のパラメータセットを順次交換レンズ側に送信し、その各々について簡易な予測駆動時間T’のチェックを行うことが可能となり、レンズ側ROM210に記憶されているレンズデータの安全性確認の効果を高めることができるので、テーブル情報10には複数のパラメータセットが含まれていることが好ましい。
(変形例13)
上述した各実施の形態および各変形例では、カメラボディ側の制御において、ボディ制御装置が上述の第1の制御モードを設定するか、あるいは上述の第4の制御モードを設定するかの判定動作(例えば図5のステップS160、図9のステップS530、図15のステップS1130等)を1度だけ行うものとしていた。この判定を複数回行うようにカメラボディを構成してもよい。あるいは、この判定を1度行い、第1または第4の制御モードを設定した後に、所定のタイミング(例えば再判定が要求された場合や、前回の判定から所定時間が経過したとき等)において再度この判定を行うようにしてもよい。また、所定周期ごとに繰り返しこの判定を行うようにしてもよい。
なお、この再判定を行う際には、カメラボディ側から交換レンズ側に対して、レンズ側判定データを再度カメラボディに送信するように要求し、且つカメラボディ側でもレンズ側判定データとの比較用のデータを再度準備するよう動作することになる。図15で例を挙げると、ステップS1090〜ステップS1130までの動作を再度繰り返すよう動作することになる。
本発明の特徴を損なわない限り、本発明は上記実施の形態に限定されるものではなく、本発明の技術的思想の範囲内で考えられるその他の形態についても、本発明の範囲内に含まれる。