図1には、本発明の実施例1である撮像装置(以下、カメラ本体という)200と、交換レンズ100および中間アクセサリ装置としてのアダプタ装置(以下、単にアダプタという)300を含む撮像システム(以下、カメラシステムという)の構成を示す。本実施例のカメラ本体200は、交換レンズ100とアダプタ300がともに装着された状態で使用可能である。
図1には例として1つのアダプタ300がカメラ本体200と交換レンズ100の間に装着されるカメラシステムを示すが、複数のアダプタを連結してカメラ本体200と交換レンズ100の間に装着してもよい。
本実施例のカメラシステムでは、複数の通信方式を用いて、カメラ本体200と交換レンズ100およびアダプタ300との間で通信を行う。カメラ本体200、交換レンズ100およびアダプタ300は、それぞれの第1通信部を介して制御コマンドやデータ(情報)の伝送を行う。また、各第1通信部は複数の通信方式をサポートしており、通信するデータの種類や通信目的に応じて、互いに同期して同一の通信方式に切り替えることにより、様々な状況に対して最適な通信方式を選択することができる。
また、本実施例のカメラシステムでは、カメラ本体200、交換レンズ100およびアダプタ300各第1の通信部を介して通信する経路のほかに、カメラ本体200および交換レンズ100の第2通信部を介して通信する経路を有している。
まず、交換レンズ100、カメラ本体200およびアダプタ300のより具体的な構成について説明する。
交換レンズ100とアダプタ300は、結合機構であるマウント400を介して機械的および電気的に接続されている。同様に、アダプタ300とカメラ本体200は、結合機構であるマウント401を介して機械的および電気的に接続されている。交換レンズ100およびアダプタ300は、マウント400,401に設けられた電源端子部(図示せず)を介してカメラ本体200から電源を取得する。そして、後述する各種アクチュエータや、レンズマイクロコンピュータ111およびアダプタマイクロコンピュータ302の動作に必要な電源を供給する。交換レンズ100、カメラ本体200およびアダプタ300は、マウント400,401に設けられた通信端子部(図示せず)を介して相互に通信を行う。
交換レンズ100は、撮像光学系を有する。撮像光学系は、被写体OBJ側から順に、フィールドレンズ101と、変倍を行う変倍レンズ102と、光量を調節する絞りユニット114を含む。さらに、撮像光学系は、像振れを低減(補正)する防振レンズ103と、焦点調節を行うフォーカスレンズ104とを含む。
変倍レンズ102とフォーカスレンズ104はそれぞれ、レンズ保持枠105,106により保持されている。レンズ保持枠105,106は、不図示のガイド軸により光軸方向(図中に破線で示す)に移動可能にガイドされており、ステッピングモータ107,108によって光軸方向に駆動される。ステッピングモータ107,108はそれぞれ、駆動パルスに同期してズームレンズ102およびフォーカスレンズ104を移動させる。
防振レンズ103は、撮像光学系の光軸に直交する方向にシフトすることで、カメラ振れ(手振れ等)に起因する像振れを低減する。
レンズマイクロコンピュータ(以下、レンズマイコンという)111は、交換レンズ100内の各部の動作を制御するレンズ制御部である。また、レンズマイコン111は、レンズ通信インタフェース回路を含むレンズ第1の通信部112を介して、カメラ本体200から送信された制御コマンドや送信要求コマンドを受信する。レンズマイコン111は、制御コマンドに対応するレンズ制御を行ったり、レンズ第1の通信部112を介して送信要求コマンドに対応するレンズデータをカメラ本体200に送信したりする。
また、レンズマイコン111は、制御コマンドのうち変倍やフォーカシングに関するコマンドに応答してズーム駆動回路119およびフォーカス駆動回路120に駆動信号を出力してステッピングモータ107,108を駆動させる。これにより、ズームレンズ102による変倍動作を制御するズーム処理やフォーカスレンズ104による焦点調節動作を制御するAF(オートフォーカス)処理を行う。
絞りユニット114は、絞り羽根114a,114bを備えている。絞り羽根114a,114bの状態(位置)は、ホール素子115により検出される。ホール素子115からの出力は、増幅回路122およびA/D変換回路123を介してレンズマイコン111に入力される。レンズマイコン111は、A/D変換回路123からの入力信号に基づいて絞り駆動回路121に駆動信号を出力して絞りアクチュエータ113を駆動させる。これにより、絞りユニット114による光量調節動作を制御する。
さらに、レンズマイコン111は、交換レンズ100内に設けられた振動ジャイロ等の振れセンサ(不図示)により検出されたカメラ振れに応じて、防振駆動回路125を介して防振アクチュエータ(ボイスコイルモータ等)126を駆動する。これにより、防振レンズ103のシフト動作(防振動作)を制御する防振処理が行われる。
また交換レンズ100は、ユーザにより回転操作可能なマニュアル操作リング(いわゆる電子リング)130とリング回転検出器131を有する。リング回転検出器131は、例えばマニュアル操作リング130の回転に応じて2相の信号を出力するフォトインタラプタにより構成されている。レンズマイコン111は、該2相の信号を用いて、マニュアル操作リング130の回転操作量(方向を含む)を検出することができる。また、レンズマイコン111はマニュアル操作リング130の回転操作量を、レンズ第1の通信部112を介してカメラマイコン205に通知することができる。
アダプタ300は、例えば焦点距離を変更するためのエクステンダであり、変倍レンズ301と、アダプタマイクロコンピュータ(以下、アダプタマイコンという)302とを有する。アダプタマイコン302は、アダプタ300内の各部の動作を制御するアダプタ制御部(アクセサリ制御部、通信制御部とも称する)である。また、アダプタマイコン302は、通信インタフェース回路を含むアダプタ第1の通信部(アクセサリ通信部)303を介して、カメラ本体200から送信された制御コマンドや送信要求コマンドを受信する。アダプタマイコン302は、制御コマンドに対応するアダプタ制御を行ったり、アダプタ第1の通信部303を介して送信要求コマンドに対応するアダプタデータをカメラ本体200に送信したりする。本実施例では、アダプタ300がエクステンダである場合を説明するが、焦点距離を変化させるワイドコンバータでもよいし、フランジバック長を変化させるマウントコンバータでもよい。
またアダプタ300は、交換レンズ100と同様に、ユーザにより回転操作可能な操作部材としてのアダプタ操作リング(いわゆる電子リング)310とリング回転検出器311を有する。リング回転検出器311も、交換レンズ100のリング回転検出器131と同様に、例えばアダプタ操作リング310の回転に応じて2相の信号を出力するフォトインタラプタにより構成されている。アダプタマイコン302は、該2相の信号を用いて、アダプタ操作リング310の回転操作量(方向を含む)を検出することができる。またアダプタマイコン302は、アダプタ操作リング310の回転操作量を、アダプタ第1の通信部303を介してカメラマイコン205に通知することができる。
なお、アダプタ300に設けられる操作部材は操作リング以外のもの、例えばスイッチ、ボタン、タッチパネルでもよい。また、アダプタ300に複数の操作部材を設けてもよい。
カメラ本体200は、CCDセンサやCMOSセンサ等の撮像素子201と、A/D変換回路202と、信号処理回路203と、記録部204と、カメラマイクロコンピュータ(以下、カメラマイコンという)205と、表示部206とを有する。
撮像素子201は、交換レンズ100内の撮像光学系により形成された被写体像を光電変換して電気信号(アナログ信号)を出力する。A/D変換回路202は、撮像素子201からのアナログ信号をデジタル信号に変換する。信号処理回路203は、A/D変換回路202からのデジタル信号に対して各種画像処理を行って映像信号を生成する。また、信号処理回路203は、映像信号から被写体像のコントラスト状態(撮像光学系の焦点状態)を示すフォーカス情報や露出状態を表す輝度情報も生成する。信号処理回路203は、映像信号を表示部206に出力し、表示部206は映像信号を構図やピント状態等の確認に用いられるライブビュー画像として表示する。
カメラ制御部としてのカメラマイコン(通信制御部とも称する)205は、不図示の撮像指示スイッチおよび各種設定スイッチ等のカメラ操作部材からの入力に応じてカメラ本体200の制御を行う。また、カメラマイコン205は、通信インタフェース回路を含むカメラ第1の通信部208を介して、不図示のズームスイッチの操作に応じてズームレンズ102の変倍動作に関する制御コマンドをレンズマイコン111に送信する。さらに、カメラマイコン205は、カメラ第1の通信部208を介して、輝度情報に応じた絞りユニット114の光量調節動作やフォーカス情報に応じたフォーカスレンズ104の焦点調節動作に関する制御コマンドをレンズマイコン111に送信する。またカメラマイコン205は、必要に応じて交換レンズ100の制御情報や状態情報を取得するための送信要求コマンドをレンズマイコン111に送信する。さらにカメラマイコン205は、アダプタ300の制御情報や状態情報を取得するための送信要求コマンドをアダプタマイコン302に送信する。
次に、カメラ本体200(カメラマイコン205)の第1通信部241と、アダプタ300(アダプタマイコン302)の第1通信部341と、交換レンズ100(レンズマイコン111)の第1通信部141との間に構成される通信経路について、図2Aを用いて説明する。この通信経路で行われる通信を第1通信とも称する。カメラマイコン205、レンズマイコン111およびアダプタマイコン302は、前述したマウント400,401に設けられた通信端子部を介して接続された信号線(チャネル)を用いて通信を行う。
信号線としては、通信制御用の信号を伝達するための信号線(第1の信号線:信号伝達チャネルに相当する)CSと、データを通信するための信号線(第2の信号線:データ通信チャネルに相当する)DATAとが設けられている。
信号線CSは、カメラマイコン205、アダプタマイコン302およびレンズマイコン111に接続されている。このため、カメラマイコン205、アダプタマイコン302およびレンズマイコン111は、信号線CSの状態としてのHi(High)とLowを検出することができる。また信号線CSは、カメラ本体200内で不図示の電源にプルアップ接続されている。そして、信号線CSは、交換レンズ100内の接地スイッチ1121、カメラ本体200内の接地スイッチ2081およびアダプタ300内の接地スイッチ3031を介してグランドGNDと接続(オープンドレイン接続)が可能となっている。
この構成により、カメラマイコン205、アダプタマイコン302およびレンズマイコン111はそれぞれ、接地スイッチ2081,1121,3031をオン(接続)することにより信号線CSをLowにすることが可能である。またカメラマイコン205、アダプタマイコン302およびレンズマイコン111はそれぞれ、接地スイッチ2081,1121,3031をオフ(遮断)することで、信号線CSをHiにすることができる。信号線CSを通じて伝達される通信制御用の信号(指示や通知)およびその出力処理の詳細については後述する。
信号線DATAは、データの送信方向を切り替えながら使用可能な単線の双方向データ通信線である。信号線DATAは、交換レンズ100内の入出力切替えスイッチ1122を介してレンズマイコン111と接続可能であり、カメラ本体200内の入出力切替えスイッチ2082を介してカメラマイコン205と接続可能である。また、信号線DATAは、アダプタ300内の入出力切替えスイッチ3032を介してアダプタマイコン302と接続可能である。各マイコンは、データを送信するためのCMOS方式のデータ出力部とデータを受信するためのCMOS方式のデータ入力部とを備えている(いずれも図示せず)。各マイコンは、上記入出力切替えスイッチを切り替えることで、信号線DATAをデータ出力部に接続するかデータ入力部に接続するかを選択することができる。
カメラマイコン205、アダプタマイコン302およびレンズマイコン111はそれぞれ、データを送信する際には、信号線DATAをデータ出力部に接続するように入出力切替えスイッチを設定する。またカメラマイコン205、アダプタマイコン302およびレンズマイコン111はそれぞれ、データを受信する際には、信号線DATAをデータ入力部と接続するように入出力切替えスイッチを設定する。信号線DATAの入出力切替え処理の詳細については後述する。
図2Aでは通信回路の一例を示したが、他の通信回路であってもよい。例えば、信号線CSをカメラ本体200内でGNDにプルダウン接続し、交換レンズ100の接地スイッチ1121、カメラ本体200の接地スイッチ2081およびアダプタ300の接地スイッチ3031を介して不図示の電源と接続可能な構成としてもよい。また、交換レンズ100、カメラ本体200およびアダプタ300において信号線DATAを常にデータ入力部に接続される構成とし、信号線DATAとデータ出力部との接続/遮断をスイッチにより切り替え可能な構成としてもよい。
なお、通信回路は、後述するブロードキャスト通信およびP2P通信が行えれば、図2Aに示した通信回路以外の構成を有していてもよい。
次に、カメラ本体200(カメラマイコン205)の第2通信部242と、交換レンズ100(レンズマイコン111)の第2通信部142との間に構成される通信経路について、図2Bを用いて説明する。この通信経路で行われる通信を第1通信とも称する。
第2通信接点群1420,3420,2420にはそれぞれ、クロック同期通信を行うためのカメラマイコン205から出力されるクロックラインLCLKの端子である第2通信LCLK端子1420a,3420a,3421a,2420aが含まれている。また、同様にクロック同期通信のカメラマイコン205から出力されるデータラインDCLの端子である第2通信DCL端子1420b,3420b,3421b,2420bが含まれている。また、同様にクロック同期通信のレンズマイコン111から出力されるデータラインDLCの端子である第2通信DLC端子1420c,3420c,3421c,2420cが含まれている。
図2Bに示すように、クロックラインLCLKおよびデータラインDCLは、交換レンズ100内でプルアップされている。また、クロックラインLCLKおよびデータラインDLCは、カメラ本体200内でプルアップされている。
アダプタ300内のクロックラインLCLK、データラインDCLおよびデータラインDLCはそれぞれ、第2通信接点3420,3421の間で短絡されている。
ここで第2通信は、第1通信と同じ通信方式や、双方向の調歩同期通信、マスタ・スレーブ方式、トークンパッシング方式等で実現可能である。調歩同期通信により実現する場合、クロックラインLCLKにカメラマイコン205から出力された信号に基づいて、データラインDCLおよびデータラインDLCの通信タイミングを制御するようにしても良い。
[通信データフォーマット]
次に、図2Cおよび図3を用いて、カメラ本体200(カメラマイコン205)、交換レンズ100(レンズマイコン111)およびアダプタ300(アダプタマイコン302)の間でやり取りされる通信データ通信フォーマットについて説明する。
まず、第1通信の通信データフォーマットについて説明する。通信データフォーマットは、後述するブロードキャスト通信とP2P通信とで共通である。ここでは、マイコン間で予め通信に使用する通信速度を取り決めておき、この取決めに従う通信ビットレートで送受信を行う、いわゆる調歩同期式通信を行う場合の通信データフォーマットについて説明する。
まずデータ送信を行っていない非送信状態では、信号レベルはHiに維持されている。次にデータ送信の開始をデータ受信側に通知するために、信号レベルを1ビット期間の間、Lowとする。この1ビット期間をスタートビットSTと呼ぶ。続いて、次の2ビット目から9ビット目までの8ビット期間で1バイトのデータを送信する。データのビット配列はMSBファーストフォーマットとして、最上位のデータD7から始まり、データD6、データD5、…、データD1と続き、最下位のデータD0で終わる。10ビット目には1ビットのパリティPA情報が付加され、最後に送信データの最後を示すストップビットSPの期間、信号レベルをHiとすることで、スタートビットSTから開始された1フレーム期間が終了する。
図3では通信データフォーマットの例を示したが、他の通信データフォーマットを用いてもよい。例えば、データのビット配列はLSBファーストや9ビット長でもよいし、パリティPA情報を付加しなくてもよい。またブロードキャスト通信とP2P通信とで通信データフォーマットを切り替えてもよい。
次に、第2通信のデータフォーマットについて説明する。図2の(b)は、第一通信が行われている時のクロックラインLCLK、データラインDCL、データラインDLCの波形を示している。カメラ本体200の第2通信部242は、クロックラインLCLKにクロックを出力すると共に、クロックラインLCLKの立ち上がり信号に合わせてデータラインDCLにB7~B0の8ビットのデータを出力する。
同様に、レンズ側第1通信部114は、クロックラインLCLKの立ち上がり信号に合わせてデータラインDLCにB7~B0の8ビットのデータを出力する。
さらにカメラ本体200の第2通信部242はクロックラインLCLKの立ち上がり信号に合わせてデータラインDLCのB7~B0の8ビットのデータを受信する。同様に交換レンズ100の第2通信部142はクロックラインLCLKの立ち上がり信号に合わせてデータラインDCLのB7~B0の8ビットのデータを受信する。
以上の構成により、カメラ本体200の第2通信部242および交換レンズ100の第2通信部142が通信データをお互いに交換することができる。
交換レンズ100の第2通信部142は、データラインDCLのB7~B0の8ビットのデータを受信すると、クロックラインLCLKをTbusyの時間LOWを出力し、その後LOWの出力を解除する。ここで、Tbusy時間は交換レンズ10が受信データを処理している時間であり、カメラ本体200の第2通信部242はデータ送信後にクロックラインLCLKがLOWからHIGHに変化するまでデータ送信を行わない構成となっている。この信号制御により、第1通信のフロー制御を行うことができる。
以上の処理を繰り返すことで、第1通信によりカメラ本体200の第2通信部242と交換レンズ100の第2通信部142の間でデータの伝達を行うことができる。
[ブロードキャスト通信]
次に、ブロードキャスト通信について、図4Aおよび図4Bを用いて説明する。ブロードキャスト通信は、カメラマイコン205、レンズマイコン111およびアダプタマイコン302のうちの1つが他の2つに対して同時にデータを送信する(すなわち一斉送信)を行う一対多通信である。このブロードキャスト通信は、信号線CSおよび信号線DATAを用いて行われる。また、ブロードキャスト通信が行われる通信モードをブロードキャスト通信モードともいう。
図4Aは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われるブロードキャスト通信での信号波形を示している。ここでは例として、カメラマイコン205からレンズマイコン111とアダプタマイコン302へのブロードキャスト通信に応答して、アダプタマイコン302がカメラマイコン205とレンズマイコン111にブロードキャスト通信を行う場合について説明する。
まず通信マスタであるカメラマイコン205は、ブロードキャスト通信を開始することをそれぞれ通信スレーブであるレンズマイコン111およびアダプタマイコン302に通知するために、信号線CSへのLow出力を開始する(401)。次にカメラマイコン205は、送信するデータを信号線DATAに出力する(402)。
一方、レンズマイコン111とアダプタマイコン302は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する(403,404)。この時点ではすでにカメラマイコン205が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
その後カメラマイコン205は、ストップビットSPの出力まで終了すると、信号線CSへのLow出力を解除する(405)。レンズマイコン111とアダプタマイコン302は、信号線DATAから入力されたデータをそのストップビットSPまで受信した後、受信したデータの解析および該受信データに関連付けられた内部処理を行う。そして、次のデータを受信するための準備が整った後に、レンズマイコン111とアダプタマイコン302は信号線CSへのLow出力を解除する(406,407)。前述した通り、信号線CSの信号レベルは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の全てが信号線CSへのLow出力を解除することでHiとなる。したがって、カメラマイコン205、レンズマイコン111およびアダプタマイコン302は、各々が信号線CSへのLow出力を解除した後に信号線CSの信号レベルがHiとなることを確認することができる。カメラマイコン205、レンズマイコン111およびアダプタマイコン302はそれぞれ、信号線CSの信号レベルがHiとなったことを確認することで、今回の通信処理を終了し、次の通信を行うための準備が整ったと判断することができる。
次にアダプタマイコン302は、信号線CSの信号レベルがHiに戻ったことを確認すると、ブロードキャスト通信を開始することをカメラマイコン205およびレンズマイコン111に通知するために、信号線CSへのLow出力を開始する(411)。
続いてアダプタマイコン302は、送信するデータを信号線DATAに出力する(412)。またカメラマイコン205およびレンズマイコン111は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する(413,414)。この時点ではすでにアダプタマイコン302が信号線CSへのLow出力を開始しているので、信号線CSに伝搬される信号レベルは変化しない。その後アダプタマイコン302は、ストップビットSPの出力まで終了すると信号線CSへのLow出力を解除する(415)。一方、カメラマイコン205およびレンズマイコン111は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および該受信データに関連付けられた内部処理を行う。そして、カメラマイコン205およびレンズマイコン111は、次のデータを受信するための準備が整った後に信号線CSへのLow出力を解除する(416,417)。
なお、カメラマイコン205のレンズマイコン111とアダプタマイコン302へのブロードキャスト通信に応答して、レンズマイコン111がカメラマイコン205とアダプタマイコン302にブロードキャスト通信を行う場合も同様である。すなわち、レンズマイコン111は信号線CSへのLow出力を開始し、信号線DATAに送信するデータを出力すると、レンズマイコン111は信号線CSへのLow出力を解除する。カメラマイコン205およびアダプタマイコン302が、レンズマイコン111によって出力されたデータを信号線DATAから入力されたストップビットSPまで受信した後に信号線CSへのLow出力を解除することで、次の通信が可能な状態へと戻る。
図4Bも、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われるブロードキャスト通信での信号波形を示している。ここでは、レンズマイコン111からブロードキャスト通信の開始をカメラマイコン205に通知する例を示す。この例では、カメラマイコン205からのレンズマイコン111およびアダプタマイコン302へのブロードキャスト通信に応答する形でアダプタマイコン302がカメラマイコン205およびレンズマイコン111にブロードキャスト通信を行う。
まずレンズマイコン111は、ブロードキャスト通信を開始することをカメラマイコン205およびアダプタマイコン302に通知するために、信号線CSへのLow出力を開始する(421)。すなわち、レンズマイコン111は信号線CSの信号レベルを変化させることにより、カメラマイコン205に通信要求を通知する。信号線CSの信号レベルがHi(第1の信号レベルとも称する)からLow(第2の信号レベルとも称する)になったことを検出したカメラマイコン205は、信号線CSへのLow出力を開始する(422)。この時点ではすでにレンズマイコン111が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
次にカメラマイコン205は、信号線CSによって通知された通信要求に対応して送信するデータを信号線DATAに出力する(423)。アダプタマイコン302は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する(424)。この時点ではすでにカメラマイコン205が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
カメラマイコン205は、ストップビットSPの出力まで終了すると、信号線CSへのLow出力を解除する(425)。一方、レンズマイコン111およびアダプタマイコン302は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および該受信データに関連付けられた内部処理を行いう。そして、レンズマイコン111およびアダプタマイコン302は、次のデータを受信するための準備が整った後に信号線CSへのLow出力を解除する(426,427)。前述した通り、信号線CSの信号レベルは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の全てが信号線CSへのLow出力を解除することでHiとなる。したがって、カメラマイコン205、レンズマイコン111およびアダプタマイコン302は、それぞれが信号線CSへのLow出力を解除した後、信号線CSの信号レベルがHiとなることを確認することができる。カメラマイコン205、レンズマイコン111およびアダプタマイコン302はそれぞれ、信号線CSの信号レベルがHiとなることを確認することで、今回の通信処理を終了し、次の通信を行うための準備が整ったと判断することができる。
次にアダプタマイコン302は、信号線CSの信号レベルがHiに戻ったことを確認すると、ブロードキャスト通信を開始することをカメラマイコン205およびレンズマイコン111に通知するために信号線CSへのLow出力を開始する(431)。すなわち、レンズマイコン111は信号線CSの信号レベルを変化させることにより、カメラマイコン205に通信要求を通知する。
次にアダプタマイコン302は、送信するデータを信号線DATAに出力する(432)。一方、カメラマイコン205およびレンズマイコン111は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する(433,434)。この時点ではすでにアダプタマイコン302が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
その後アダプタマイコン302は、ストップビットSPの出力まで終了すると、信号線CSへのLow出力を解除する(435)。一方、カメラマイコン205およびレンズマイコン111は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および該受信データに関連付けられた内部処理を行う。そして、カメラマイコン205およびレンズマイコン111は、次のデータを受信するための準備が整った後に信号線CSへのLow出力を解除する(436,437)。
図4Bの例では、通信スレーブであるレンズマイコン111およびアダプタマイコン302からブロードキャスト通信が開始する。この場合、通信マスタであるカメラマイコン205は、信号線CSへのLow出力が開始された時点(421)では、レンズマイコン111とアダプタマイコン302のどちらが信号線CSをLowにしたのかを判別することができない。このため、カメラマイコン205は、レンズマイコン111およびアダプタマイコン302の両方に対してブロードキャスト通信を開始したか(通信リクエストしたか)を確認する通信を行う必要がある。
また、カメラマイコン205がブロードキャスト通信を開始するために信号線CSにLowを出力したタイミングで、レンズマイコン111またはアダプタマイコン302がブロードキャスト通信を開始するために信号線CSにLowを出力する場合がある。この場合、カメラマイコン205はレンズマイコン111またはアダプタマイコン302が信号線CSにLowを出力したことを検出することができない。この場合、レンズマイコン111またはアダプタマイコン302に対して、ブロードキャスト通信を開始したか(通信リクエストしたか)を確認する通信が行われない。このため、所定時間が経過しても通信リクエストの確認通信が行われなかった場合は、信号線CSを再度Low出力して、カメラマイコン205に対して通信リクエストを行う。
以上のように、ブロードキャスト通信において信号線CSで伝達される信号は、ブロードキャスト通信の開始(実行)および実行中を示す信号として機能する。
図4Aおよび図4Bではブロードキャスト通信の例を示したが、他のブロードキャスト通信を行ってもよい。例えば、1回のブロードキャスト通信で送信するデータは、図4Aおよび図4Bに示したように1バイトのデータでもよいが、2バイトや3バイトのデータであってもよい。また、ブロードキャスト通信を通信マスタであるカメラマイコン205から通信スレーブであるレンズマイコン111およびアダプタマイコン302への一方向通信としてもよい。
[P2P通信]
次に、カメラ本体200(カメラマイコン205)、交換レンズ100(レンズマイコン111)およびアダプタ300(アダプタマイコン302)の間で行われるP2P通信について説明する。P2P通信は、通信マスタであるカメラ本体200が通信スレーブである交換レンズ100とアダプタ300から通信する相手(特定アクセサリ装置)を1つ指定(選択)し、その指定した通信スレーブとの間のみでデータを送受信する一対一通信(個別通信)である。このP2P通信は、信号線DATAと信号線CSを用いて行われる。また、P2P通信が行われる通信モードをP2P通信モードともいう。
図5は、例として、カメラマイコン205と通信相手として指定されたレンズマイコン111との間でやり取りされるP2P通信の信号波形を示している。カメラマイコン205からの1バイトのデータ送信に応答して、レンズマイコン111がカメラマイコン205に対して2バイトのデータ送信を行う。通信モード(ブロードキャスト通信モードとP2P通信モード)の切替え処理およびP2P通信での通信相手の指定処理については後述する。
まず通信マスタであるカメラマイコン205は、送信するデータを信号線DATAに出力する(501)。カメラマイコン205は、ストップビットSPの出力まで終了した後、信号線CSへのLow出力を開始する(502)。その後カメラマイコン205は、次のデータの受信準備が整った後に、信号線CSへのLow出力を解除する(503)。一方、レンズマイコン111は、信号線CSから入力されたLow信号を検出した後、信号線DATAから入力された受信データの解析および該受信データに関連付けられた内部処理を行う。その後レンズマイコン111は、信号線CSの信号レベルがHiに戻ったことを確認した後、送信すべきデータを2バイト分連続で信号線DATAに出力する(504)。レンズマイコン111は、2バイト目のストップビットSPの出力まで終了した後、信号線CSへのLow出力を開始する(505)。そしてレンズマイコン111は、次のデータの受信準備が整った後に信号線CSへのLow出力を解除する(506)。
P2P通信の通信相手として指定されていないアダプタマイコン302は、信号線CSおよび信号線DATAに信号を出力しない。
以上のように、P2P通信において信号線CSで伝達される信号は、データ送信の終了と次のデータ送信の待機要求を示す通知信号として機能する。
なお、図5ではP2P通信の例を示したが、他のP2P通信を行ってもよく、例えば信号線DATAにてデータを1バイトずつ送信してもよいし、3バイト以上のデータを送信してもよい。
[通信モードの切替え処理および通信相手の指定処理]
次に、通信モードの切替え処理とP2P通信での通信相手の指定処理について、図6を用いて説明する。図6は、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間でやり取りされる通信モード切替えおよび通信相手指定時の信号波形を示している。P2P通信の通信相手の指定は、ブロードキャスト通信により行われる。ここでは例として、カメラマイコン205からP2P通信の通信相手としてアダプタマイコン302が指定され、カメラマイコン205からの1バイトデータのP2P通信とアダプタマイコン302からの1バイトデータのP2P通信が実行される場合を説明する。また、その後にカメラマイコン205からP2P通信の通信相手としてレンズマイコン111が指定され、カメラマイコン205からの2バイトデータのP2P通信とレンズマイコン111からの3バイトデータのP2P通信が実行される。
まず通信マスタであるカメラマイコン205は、図4Aで説明した手順でブロードキャスト通信を実行する(601)。このブロードキャスト通信で通知するのは、次のP2P通信でカメラマイコン205と通信を行う相手を指定するスレーブ指定データである。通信スレーブであるレンズマイコン111およびアダプタマイコン302は、ブロードキャスト通信で受信したスレーブ指定データを基づいて、自身がP2P通信の通信相手として指定されたか否かを判定する。この判定結果によって、カメラマイコン205と指定された通信スレーブとの通信モードがブロードキャスト通信モードからP2P通信モードに切り替わる(602)。ここでは通信相手としてアダプタマイコン302が指定されているため、次のP2P通信では図5で説明した手順に従ってカメラマイコン205とアダプタマイコン302との間でデータの送受信が行われる(603)。ここではカメラマイコン205からアダプタマイコン302に1バイトデータを送信し、その後アダプタマイコン302からカメラマイコン205へ1バイトデータを送信する。
カメラマイコン205とアダプタマイコン302とのP2P通信が終了すると、カメラマイコン205は再びブロードキャスト通信によってP2P通信で通信する通信相手を指定することができる。ここでは次のP2P通信の通信相手としてレンズマイコン111を指定するために、スレーブ指定データとしてレンズマイコン111を設定して図4Aで説明した手順でブロードキャスト通信を実行する(604)。このブロードキャスト通信に応じてアダプタマイコン302はP2P通信を終了し、これと同時にカメラマイコン205とレンズマイコン111の通信モードがP2P通信モードに切り替えられる(605)。なお、ここでブロードキャスト通信を実行しない場合は、カメラマイコン205とアダプタマイコン302とのP2P通信が継続される。
次のP2P通信では、図5で説明した手順に従ってカメラマイコン205とレンズマイコン111との間でデータの送受信が行われる。ここではカメラマイコン205がレンズマイコン111に2バイトデータを送信し、その後レンズマイコン111がカメラマイコン205に3バイトデータを送信する(606)。
以上のように、ブロードキャスト通信によってP2P通信の通信相手を指定することが可能であり、同時にブロードキャスト通信とP2P通信の切替えを行うことができる。
[通信制御処理]
次に、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われる通信制御処理について説明する。まず、図7Aおよび図7Bのフローチャートを用いて、ブロードキャスト通信モードでの処理について説明する。図7Aはカメラマイコン205が行うブロードキャスト送信処理を示し、図7Bはレンズマイコン111およびアダプタマイコン302が行うブロードキャスト受信処理を示している。ここでは例として、カメラマイコン205からレンズマイコン111およびアダプタマイコン302に対してブロードキャスト通信を行う場合の処理を示している。それぞれコンピュータであるカメラマイコン205、レンズマイコン111およびアダプタマイコン302は、コンピュータプログラムとしての通信制御プログラムに従って本処理および後述する他の処理を実行する。
ブロードキャスト通信を開始するイベントが発生すると、カメラマイコン205は、図7AのステップS700において接地スイッチ2081をオン(接続)して信号線CSをLowにする。これにより、レンズマイコン111およびアダプタマイコン302に対してブロードキャスト通信の開始が通知される。イベントとは、例えば、カメラマイコン205がレンズマイコン111やアダプタマイコン302に対してデータ送信を要求したことである。また、レンズマイコン111またはアダプタマイコン302がブロードキャスト通信の開始を要求するために信号線CSにLowを出力したこともイベントの1つである。レンズマイコン111およびアダプタマイコン302は、このブロードキャスト通信の開始通知を受けることで、図7Bで説明するブロードキャスト受信処理を開始する。
次にステップS701では、カメラマイコン205は、入出力切換えスイッチ2082を動作させて信号線DATAをデータ出力部に接続する。次にステップS702では、カメラマイコン205は、信号線DATAを用いてデータ送信を行い、全データの送信が完了するとステップS703に進む。なお、ここで送受信するデータのバイト数に制限は無く、カメラマイコン205、レンズマイコン111およびアダプタマイコン302間で認識が一致していればよい。
ステップS703では、カメラマイコン205は、ステップS702で送信したデータがレンズマイコン111またはアダプタマイコン302からの送信も含む双方向コマンドであるか否かを判定する。カメラマイコン205は、双方向コマンドでない場合はステップS704に進み、双方向コマンドである場合は705に進む。
ステップS704では、カメラマイコン205は、通信処理が終了したことを示すために接地スイッチ2081をオフ(遮断)することで信号線CSへのLow出力を解除する。そして、ステップS715に進む。
ステップS705では、カメラマイコン205は、入出力切換えスイッチ2082を動作させることで信号線DATAをデータ入力部に接続する。そして、ステップS706において、カメラマイコン205は、通信処理が終了したことを示すために、接地スイッチ2081をオフ(遮断)することで信号線CSへのLow出力を解除する。
次にステップS707では、カメラマイコン205は、レンズマイコン111およびアダプタマイコン302のデータ受信が完了するまで、すなわち信号線CSがHiになるまで待機する。信号線CSがHiになるとステップS708に進む。
ステップS708では、カメラマイコン205は、レンズマイコン111またはアダプタマイコン302からのデータ送信が行われるまで、すなわち信号線CSがLowになるまで待機する。信号線CSがLowになるとS709に進む。
ステップS709では、カメラマイコン205は、信号線DATAからのデータ受信を許可する。次にステップS710では、カメラマイコン205は、信号線DATAのスタートビットを検出するまで待機する。スタートビットを検出するとステップS711に進む。
ステップS711では、カメラマイコン205は、通信処理中であることを示すために接地スイッチ2081をオン(接続)することで信号線CSへのLow出力を開始する。続いてステップS712では、カメラマイコン205は、全データを受信するまで待機する。そして全データの受信が完了するとステップS713に進む。なお、ここで送受信するデータのバイト数にも制限は無く、カメラマイコン205、レンズマイコン111およびアダプタマイコン302間で認識が一致していればよい。
ステップS713では、カメラマイコン205は、信号線DATAからのデータ受信を禁止する。続いてステップS714では、カメラマイコン205は、通信処理が終了したことを示すために接地スイッチ2081をオフ(遮断)することで信号線CSへのLow出力を解除する。そして、ステップS715では、カメラマイコン205は、レンズマイコン111およびアダプタマイコン302のデータ受信が完了するまで、すなわち信号線CSがHiになるまで待機する。信号線CSがHiになるとステップS716に進む。
ステップS716では、カメラマイコン205は、ステップS702でのデータ送信によりレンズマイコン111またはアダプタマイコン302をP2P通信の通信相手として指定したか否かを判定する。カメラマイコン205は、通信相手として指定していた場合はステップS717に進み、そうでなければブロードキャスト通信モードのままブロードキャスト通信の送信処理を終了する。
ステップS717では、カメラマイコン205は、P2P通信モードに移行してブロードキャスト送信処理を終了する。
図7Bにおいて、ブロードキャスト通信モードまたはP2P通信モードにおいて通信待機中に信号線CSがLowレベルになると、レンズマイコン111およびアダプタマイコン302は、これをブロードキャスト通信の開始通知と認識する。そしてブロードキャスト受信処理を開始する。
まずステップS720では、レンズマイコン111およびアダプタマイコン302は、信号線DATAからのデータ受信を許可する。次にステップS721では、レンズマイコン111およびアダプタマイコン302は、信号線DATAのスタートビットを受信したか否かを判定し、受信していなければステップS722に進み、受信していればステップS724に進む。このとき、レンズマイコン111およびアダプタマイコン302は、自身の通信モードがP2P通信モードであった場合はブロードキャスト通信モードに移行する。
ステップS722では、レンズマイコン111およびアダプタマイコン302は、信号線CSがHiか否かを判定し、Hiであればブロードキャスト通信の受信処理を終了するためにステップS723に進む。Hiでなければ、スタートビット受信を引き続き待つためにステップS721に戻る。
ステップS723では、レンズマイコン111およびアダプタマイコン302は、信号線DATAからのデータ受信を禁止し、ブロードキャスト受信処理を終了する。
一方、ステップS724では、レンズマイコン111およびアダプタマイコン302は、自身の通信モードがP2P通信モードである場合はブロードキャスト通信モードに移行する。そして、ステップS725では、レンズマイコン111およびアダプタマイコン302は、通信処理中であることを示すために接地スイッチ1121,3031をオン(接続)することで信号線CSへのLow出力を開始する。
次にステップS726では、レンズマイコン111およびアダプタマイコン302は、全データを受信するまで待機する。全データの受信が完了すると、ステップS727に進む。ここで受信するデータのバイト数にも制限は無く、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で認識が一致していればよい。
続いてS727では、レンズマイコン111およびアダプタマイコン302は、信号線DATAからのデータ受信を禁止する。そして、ステップS728では、レンズマイコン111およびアダプタマイコン302は、通信処理が終了したことを示すために接地スイッチ1121,3031をオフ(遮断)することで信号線CSへのLow出力を解除する。
次にステップS729では、レンズマイコン111およびアダプタマイコン302は、ステップS725で受信したデータが自身からの送信を意味する双方向コマンドであるか否かを判定する。レンズマイコン111およびアダプタマイコン302は、自身からの送信を意味する双方向コマンドであった場合にはステップS730に進み、そうでなければステップS735に進む。
ステップS730では、レンズマイコン111およびアダプタマイコン302は、他のマイコンがデータ受信を完了するまで、すなわち信号線CSがHiになるまで待機する。信号線CSがHiになるとS731に進む。
ステップS731では、レンズマイコン111およびアダプタマイコン302は、ブロードキャスト通信の開始を通知するために接地スイッチ1121,3031をオン(接続)して信号線CSをLowにする。そして、ステップS732では、レンズマイコン111およびアダプタマイコン302は、入出力切換えスイッチ1122,3032を動作させることで信号線DATAをデータ出力部に接続する。
続いてステップS733では、レンズマイコン111およびアダプタマイコン302は、信号線DATAを用いてデータ送信を行う。全データの送信が終了するとステップS734に進む。ここで受信するデータのバイト数にも制限は無く、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で認識が一致していればよい。
ステップS734では、レンズマイコン111およびアダプタマイコン302は、自身のデータ送信処理が終了したことを示すために、接地スイッチ1121,3031をオフ(遮断)することで信号線CSへのLow出力を解除する。
次にステップS735では、レンズマイコン111およびアダプタマイコン302は、他のマイコンのデータ受信が完了するまで、すなわち信号線CSがHiになるまで待機する。信号線CSがHiになるとステップS736に進む。
ステップS736では、レンズマイコン111およびアダプタマイコン302は、ステップS726でカメラマイコン205から受信したデータによりP2P通信の通信相手として指定されたか否かを判定する。レンズマイコン111およびアダプタマイコン302は、指定されていればステップS737に進み、そうでければブロードキャスト通信モードのままブロードキャスト受信処理を終了する。
ステップS737では、レンズマイコン111およびアダプタマイコン302は、信号線DATAからのデータ受信を許可する。続いてステップS738では、レンズマイコン111およびアダプタマイコン302は、P2P通信モードに移行してブロードキャスト受信処理を終了する。
以上のブロードキャスト送信および受信処理により、カメラマイコン205からレンズマイコン111およびアダプタマイコン302へのブロードキャスト通信を用いたデータ通信を実現することができる。
次に、図8Aおよび図8Bのフローチャートを用いて、P2P通信モードでの処理について説明する。図8Aはカメラマイコン205が行うP2P送信処理を示し、図8Bは、例としてカメラマイコン205によりP2P通信の通信相手として指定されたアダプタマイコン302が行うP2P受信処理を示している。P2P通信の通信相手として指定されたのがレンズマイコン111である場合も、図8Bと同様のP2P受信処理を行う。
P2P通信を開始するイベントが発生すると、カメラマイコン205は、ステップS800において入出力切替えスイッチ2082を動作させて信号線DATAをデータ出力部に接続し、ステップS801でデータ送信を行う。全データの送信が完了すると、カメラマイコン205はステップS802に進む。ここで送信するデータのバイト数には制限は無く、カメラマイコン205とアダプタマイコン302との間で認識が一致していればよい。
ステップS802では、カメラマイコン205は、接地スイッチ2081をオン(接続)することで信号線CSへのLow出力を開始して、P2P通信によるデータ送信の完了をアダプタマイコン302に通知する。アダプタマイコン302は、この通知を受けることで、図8Bで説明するP2P受信処理を開始する。
次にステップS803では、カメラマイコン205は、ステップS802で送信したデータがアダプタマイコン302からのデータ送信も含む双方向コマンドであるか否かを判定する。カメラマイコン205は、双方向コマンドでなければS804に進み、双方向コマンドであればS805に進む。
ステップS804では、カメラマイコン205は、アダプタマイコン302がデータ受信を完了したことを検出するために、接地スイッチ2081をオフ(遮断)することで信号線CSへのLow出力を解除する。そしてステップS809に進む。
ステップS805では、カメラマイコン205は、入出力切換えスイッチ2082を動作させることで信号線DATAをデータ入力部に接続する。そしてステップS806に進む。
ステップS806では、カメラマイコン205は、アダプタマイコン302からのデータ送信が完了したことを検出するために、接地スイッチ2081をオフ(遮断)することで信号線CSへのLow出力を解除する。そしてステップS807に進む。
ステップS807では、カメラマイコン205は、アダプタマイコン302からのデータ送信が完了するまで、すなわち信号線CSのLowになるまで待機する。信号線CSがLowになると、カメラマイコン205はアダプタマイコン302からのデータ送信が完了したと判定してステップS808に進む。ここで受信するデータのバイト数にも制限は無く、カメラマイコン205とアダプタマイコン302の間で認識が一致していればよい。
ステップS808では、カメラマイコン205は、信号線DATAから受信したデータの解析を行う。次にステップS809では、カメラマイコン205は、信号線CSがHiになるまで待機する。そして信号線CSがHiになると、カメラマイコン205は今回のP2P通信が完了したと判定してステップS810に進む。
ステップS810では、カメラマイコン205は、次の通信でブロードキャスト通信を開始するか否かを判定し、ブロードキャスト通信を開始する場合はステップS811に進む。引き続きP2P通信を行う場合は、P2P通信モードのままP2P送信処理を終了する。
ステップS811では、カメラマイコン205は、ブロードキャスト通信モードに移行してP2P送信処理を終了する。
図8BのステップS820において、アダプタマイコン302は、信号線DATAから受信したデータの解析を行う。次にステップS821では、アダプタマイコン302は、信号線CSがHiになるまで、すなわちステップS804もしくはステップS806の処理が完了するまで待機する。信号線CSがHiになると、ステップS822に進む。
ステップS822では、アダプタマイコン302は、ステップS820で解析した受信データが、アダプタマイコン302からのデータ送信も含む双方向コマンドであるか否かを判定する。アダプタマイコン302は、双方向コマンドでなければステップS823に進み、双方向コマンドであればステップS824に進む。
ステップS823では、アダプタマイコン302は、カメラマイコン205にデータ受信を完了したことを通知するために、接地スイッチ3031をオン(接続)することで、CSへのLow出力を開始する。この後、ステップS828に進む。
一方、ステップS824では、アダプタマイコン302は、入出力切換えスイッチ3032を動作させることで信号線DATAをデータ出力部に接続する。次にステップS825では、アダプタマイコン302は、信号線DATAを用いてデータ送信を行い、全データの送信が完了するとステップS826に進む。ここで送信するデータのバイト数には制限は無く、カメラマイコン205とアダプタマイコン302の間で認識が一致していればよい。
続いてステップS826では、アダプタマイコン302は、接地スイッチ3031をオン(接続)することで信号線CSへのLow出力を開始する。これにより、P2P通信によるデータ送信完了をカメラマイコン205へ通知する。
次にステップS827では、アダプタマイコン302は、入出力切換えスイッチ3032を動作させることで信号線DATAをデータ入力部に接続する。そしてステップS828に進む。
ステップS828では、アダプタマイコン302は、カメラマイコン205にP2P通信が完了したことを通知するために、接地スイッチ3031をオフ(遮断)することで信号線CSへのLow出力を解除する。次にステップS829では、アダプタマイコン302は、カメラマイコン205がP2P通信を完了したことを検出するために信号線CSがHiになるまで待機する。信号線CSがHiになると、アダプタマイコン302はP2P受信処理を終了する。
以上の処理により、通信マスタであるカメラマイコン205から通信スレーブであるアダプタマイコン302へのP2P通信を用いたデータ送信を行うことができる。
[アダプタの操作部材の操作に応じた制御]
次に、図9を用いて、本実施例におけるアダプタ操作リング310を用いた撮像制御を実現するためにカメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われる撮像通信処理(通信制御方法)について説明する。ここでは例として、図1および図2Aに示したようにカメラ本体200に1つのアダプタ300を介して交換レンズ100が接続されている場合について説明する。この例では、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で信号線CSと信号線DATAをブロードキャスト通信およびP2P通信を行う。そしてカメラマイコン205はアダプタマイコン302からアダプタ操作リング310の後述する操作状態情報を受信し、カメラマイコン205がレンズマイコン111を介して交換レンズ100内の絞りユニット114の駆動(以下、絞り駆動という)を制御する。
なお、アダプタ操作リング310の操作に応じて、交換レンズ100内の変倍レンズ102やフォーカスレンズ104の駆動を制御してもよいし、カメラ本体200内のTv値(露光時間)やISO感度を変更したり、設定メニューを選択したりしてもよい。
アダプタマイコン302が、ユーザによるアダプタ操作リング310の回転操作(以下、リング操作という)を検出すると(900)、本処理が開始される。アダプタマイコン302は、図1に示したリング回転検出器311の出力の変化を通じてリング操作の開始を検出すると、アダプタ操作リング310の操作状態情報(以下、リング操作状態情報という)のサンプリングを開始する(901)。リング操作状態情報としては、アダプタ操作リング310の操作方向(回転方向)を含む操作量(回転量)、該操作量の累積値、操作速度、操作加速度等があり、これらのうちいずれでもよい。本実施例では、操作量の累積値と操作速度をリング操作状態情報としてサンプリングする。
次にアダプタマイコン302は、カメラマイコン205に対してリング操作の開始を通知するために、当該通知の前に図4Bに示した信号線CSへのLow出力(421)でブロードキャスト通信の開始をカメラマイコン205に要求する(902)。すなわち、アダプタマイコン302はカメラマイコン205に対して通信要求を送信する。
アダプタマイコン302からの通信要求を受信したカメラマイコン205は、ブロードキャスト通信を開始するが、この時点ではレンズマイコン111とアダプタマイコン302のうちどちらが通信要求を送信してきたのかを判別することができない。さらに通信要求の要因(イベント)も不明であるため、カメラマイコン205はレンズマイコン111とアダプタマイコン302のそれぞれに通信要求の要因(以下、通信要求要因という)を問い合わせる必要がある。本実施例では、図6に示したブロードキャスト通信(604)を用いて、最初にP2P通信の通信相手としてレンズマイコン111を指定する(903)。なお、通信要求要因の問い合わせ順序は、アダプタマイコン302が先であってもよい。また、このときにレンズマイコン111がブロードキャスト通信の通信要求を出力しないことが予め明らかであれば、レンズマイコン111に対して通信要求要因を問い合わせなくてもよい。
次にカメラマイコン205は、図5で説明したP2P通信を用いてレンズマイコン111に対して信号線DATAを介して通信要求要因を問い合わせる。そして、レンズマイコン111から該通信要求要因を信号線DATAを介して受信する(904)。この例では通信要求を出力したのはレンズマイコン111ではないため、レンズマイコン111は通信要求要因がないことを示す情報をカメラマイコン205に送信する。このP2P通信によって、カメラマイコン205は、レンズマイコン111が通信要求を出力したのではないことを確認する。カメラマイコン205は、次に図6に示したブロードキャスト通信(601)を用いて、P2P通信の通信相手としてアダプタマイコン302を指定する(905)。そしてカメラマイコン205は、図5で説明したP2P通信を用いてアダプタマイコン302に対して信号線DATAを介して通信要求要因を問い合わせる(第3のデータを送信する)。そして、アダプタマイコン302から該通信要求要因(第4のデータ)を信号線DATAを介して受信する(906)。この例では通信要求を出力したのはアダプタマイコン302であるため、アダプタマイコン302は、通信要求要因がリング操作の開始であることを示す情報(以下、リング操作開始情報という)を送信する。カメラマイコン205がアダプタマイコン302からリング操作開始情報を受信することで、カメラマイコン205は、通信要求を送ったのがアダプタマイコン302であることと、当該通信要求の要因がリング操作の開始であることを判別することが可能である。
アダプタマイコン302からリング操作開始情報を受信したカメラマイコン205は、アダプタマイコン302から上述したリング操作状態情報を取得する。このために、まず図6に示したブロードキャスト通信(601)を用いて、P2P通信の通信相手としてアダプタマイコン302を指定する(907)。ただし、このブロードキャスト通信は、アダプタマイコン302の通信モードがP2P通信モードである場合は行わなくてもよい。続いてカメラマイコン205は、P2P通信を用いて、アダプタマイコン302に対してリング操作状態情報(第1のデータ)の送信を要求(すなわち第2のデータを送信)し、アダプタマイコン302からリング操作状態情報を受信する(908)。アダプタマイコン302は、リング操作状態情報を送信した時点で、次のリング操作状態情報を送信するために、内部のリング操作状態情報をリセットする。例えば、アダプタ操作リング310の操作量の累積値を0にリセットする。
これ以降、カメラマイコン205は、後述するリング操作終了情報を受信するまで、所定周期でブロードキャスト通信(601)でのアダプタマイコン302の指定とP2P通信でのアダプタマイコン302からのリング操作状態情報の受信(908)とを繰り返す。これにより、カメラマイコン205は、所定周期ごとに最新のリング操作状態情報を取得することができる。
リング操作状態情報を受信したカメラマイコン205は、レンズマイコン111に対して、リング操作状態情報に基づいて絞り駆動要求を送信する(909)。絞り駆動要求のための通信は、ブロードキャスト通信でもP2P通信でもよい。また。当該絞り駆動要求を、カメラマイコン205の第2通信部242を介して送信し、レンズマイコン111の第2通信部142で受信するようにしてもよい。つまり、絞り駆動に関する通信を第2通信部242と第2通信部142とを介した通信経路、すなわちリング操作状態情報の送受信を行う通信経路とは異なる通信経路で行ってもよい。これにより、絞り駆動に関する通信とリング操作状態に関する通信のリアルタイム性を向上させることができる。
また、カメラマイコン205は、リング操作状態情報を受信するごとに絞り駆動要求をレンズマイコン111に送信するが、この絞り駆動要求のレンズマイコン111への送信周期は、リング操作状態情報の受信周期と異なっていてもよい。例えば、絞り駆動要求のレンズマイコン111への送信周期よりもリング操作状態情報の受信周期を短く設定してもよい。リング操作状態情報の受信周期を長く設定してしまうと、受信周期の長さによっては操作量の累積量がオーバーフローしてしまう場合もある。また、絞り駆動要求のレンズマイコン111への送信周期は、AE制御の周期に依存させる必要がある。このように、絞り駆動要求のレンズマイコン111への送信周期とリング操作状態情報の受信周期とをそれぞれ適切な周期に制御することで、アダプタマイコン302とカメラマイコン302各々がより適した処理を行うことができる。
アダプタ操作リング310のユーザ操作に対する良好な絞り駆動を実現するためには、アダプタ操作リング310の操作量(累積値)と操作速度に比例した絞り駆動に加えて、動画品質のために滑らかで間欠的にならない連続的な絞り駆動が求められる。本実施例では、カメラマイコン205は、レンズマイコン111に対して絞り駆動要求として目標Av値(目標とする絞り値)と絞り駆動速度を送信する。受信した目標Av値と絞り駆動速度とに基づいて、レンズマイコン111が内部情報として保持する目標Av値と絞り駆動速度とを、絞りを駆動させながら更新する。レンズマイコン111は更新された目標Av値と絞り駆動速度に応じて、連続的な絞り駆動を行う。これを一定の周期で繰り返すことで、絞り駆動を停止させずに、絞り駆動を行うことが可能となる。絞り駆動を停止させると明るさの変化が間欠的になり、特に動画の画質に影響を及ぼす。これに対し、絞りを連続的に駆動させた場合には、明るさがなめらかに変化することから、より品位の高い動画を取得することができる。また、絞りを連続的に駆動させることで、絞り駆動の停止や、絞り駆動を停止した状態から絞り駆動を再開するためにかかる時間を削減することが可能である。
このときのカメラマイコン205からの絞り駆動要求の送信周期をTとし、前回の絞り駆動要求の送信から次回の絞り駆動要求の送信までの期間中におけるアダプタ操作リング310の操作量の累積値をCntとする。また、1Cntあたりの絞り駆動量を係数αで示し、レンズマイコン111が絞りを駆動させつつ目標Av値と絞り駆動速度を更新するための余裕時間をΔtとする。当該余裕時間を設けることで、マイコンの負荷や通信帯域の圧迫等の理由により、仮に絞り駆動要求の送信が遅延した場合であっても、絞り駆動を停止させずに絞り駆動を行うことができる。このとき、カメラマイコン205は、目標Av値と絞り駆動速度を下記の式(1)、(2)のように算出する。
目標Av値 = 前回の目標Av値 +(Cnt×α) (1)
絞り駆動速度 =(Cnt×α)/(T+Δt) (2)
上記計算式(1)、(2)は例にすぎず、他の計算式を用いて目標Av値と絞り駆動速度を算出してもよい。また、カメラマイコン205は、絞り駆動要求として目標Av値や絞り駆動速度以外の情報をレンズマイコン111に送信してもよい。
次にアダプタマイコン302は、リング回転検出器311の出力が所定時間を超えて変化しないことでアダプタ操作リング310の操作の終了を検出すると、リング操作状態情報にリング操作が終了したことを示すリング操作終了情報を格納する(910)。リング操作の終了は、上記方法とは別の方法で検出してもよい。
次にカメラマイコン205は、アダプタマイコン302からリング操作状態情報を受信する(908)。ただし、ここで受信するリング操作状態情報にはリング操作終了情報が含まれている。カメラマイコン205は、このリング操作終了情報に基づいてこれ以降の周期的なリング操作状態情報の取得を終了する(911)。カメラマイコン205は、最後に受信したリング操作状態情報に含まれるアダプタ操作リング310の操作量の累積値と操作速度に基づいて絞り駆動要求をレンズマイコン111に送信した後、周期的な絞り駆動要求の送信を終了する(912)。
次に、図11(a)のフローチャートを用いて、上述した撮像通信処理においてアダプタマイコン302が行うリング操作開始処理を説明する。アダプタマイコン302は、リング操作の開始を検出すると本処理を開始する。ステップS1101では、アダプタマイコン302は、カメラマイコン205に対してリング操作が開始されたこと通知するために、内部送信バッファにリング操作開始情報を通信要求要因として設定する。そして、カメラマイコン205に対してブロードキャスト通信の通信要求を送信する。内部送信バッファに設定した通信要求要因(リング操作開始情報)は、後述するP2P通信によりカメラマイコン205に送信する。
次にステップS1102では、アダプタマイコン302は、リング操作状態情報のサンプリングを行う。そしてステップS1103では、アダプタマイコン302は、リング操作が終了しているか否かを判定する。アダプタマイコン302は、操作が終了していなければステップS1102に戻り、終了していれば内部送信バッファにあるリング操作状態情報にリング操作終了情報を格納して本処理を終了する。
図11(b)のフローチャートを用いて、上述した撮像通信処理においてアダプタマイコン302が行うリング操作P2P通信処理を説明する。アダプタマイコン302は、カメラマイコン205によりP2P通信の通信相手として指定されると、本処理を開始する。
ステップS1111では、アダプタマイコン302は、カメラマイコン205からP2P通信により受信したデータを解析する。次にステップS1112では、アダプタマイコン302は、カメラマイコン205からの受信データが通信要求要因の送信要求であるか否かを判定し、そうであればステップS1113に進み、そうでなければステップS1114に進む。
ステップS1113では、アダプタマイコン302は、カメラマイコン205にステップS1101で内部送信バッファに設定した通信要求要因(リング操作開始情報)を送信して、本処理を終了する。内部送信バッファ内の通信要求要因はその送信後にリセットされる。
ステップS1114では、アダプタマイコン302は、受信データがリング操作状態情報の送信要求(操作状態送信要求)であるか否かを判定し、そうであればステップS1115に進み、そうでなければステップS1117に進む。
ステップS1115では、アダプタマイコン302は、ステップS1102でサンプリングして内部送信バッファに設定したリング操作状態情報をカメラマイコン205に送信する。そして、ステップS1116では、アダプタマイコン302は、リング操作状態情報のうち操作量の累積値をリセットして、本処理を終了する。操作量の累積値をリセットすることで、アダプタマイコン302はカメラマイコン205に対して過不足なく操作量送信することができる。
ステップS1117では、アダプタマイコン302は、カメラマイコン205に対して、通信要求要因およびリング操作状態情報の送信以外のP2P通信処理を行って本処理を終了する。通信要求要因およびリング操作状態情報の送信以外のP2P通信処理は、例えば、アダプタ300における操作部材の有無、リング操作状態情報を送信可能な最短周期(最短時間間隔)およびアダプタ300の光学倍率等、アダプタ固有の情報を送信する処理である。また、カメラマイコン205からの受信要求であってもよく、例えばリング操作状態情報のサンプリングの開始や停止の要求であってもよい。なお、本実施例では、リング操作状態情報を送信可能な最短周期は、アダプタ300が装着された状態でのカメラ200の起動時に、カメラマイコン205がアダプタマイコン302に要求し、アダプタマイコン302から受信する。
次に、図12(a)のフローチャートを用いて、上述した撮像通信処理においてカメラマイコン205が行う通信要求要因確認処理を説明する。この処理は、レンズマイコン111またはアダプタマイコン302のいずれかが出力した通信要求の要因を確認する処理である。
通信要求を受信したカメラマイコン205は、ステップS1201において、レンズマイコン111に対してP2P通信により通信要求要因の送信要求を送信し、レンズマイコン111から通信要求要因を取得する。
次にステップS1202では、カメラマイコン205は、ステップS1201で取得した通信要求要因を解析し、ブロードキャスト通信を要求したのがレンズマイコン111か否かを判定する。カメラマイコン205は、ブロードキャスト通信を要求したのがレンズマイコン111であれば本処理フローを終了し、そうでなければステップS1203に進む。
ステップS1203では、カメラマイコン205は、アダプタマイコン302に対してP2P通信により通信要求要因の送信要求を送信し、アダプタマイコン302から通信要求要因を取得する。そして本処理を終了する。
図12(b)のフローチャートを用いて、上述した撮像通信処理においてカメラマイコン205が行うリング操作状態情報取得処理を説明する。ステップS1211では、カメラマイコン205は、現時点がアダプタマイコン302からリング操作状態情報を取得するタイミングであるか否かを判定し、そうであればステップS1212に進み、そうでなければステップS1213に進む。
ステップS1212では、カメラマイコン205は、P2P通信によりアダプタマイコン305に対してリング操作状態情報の送信要求(操作状態送信要求)を送信し、アダプタマイコン305からリング操作状態情報を取得する。
次にステップS1213では、カメラマイコン205は、絞り駆動を行うタイミングであるか否かを判定し、そうであればステップS1214に進み、そうでなければステップS1215に進む。
ステップS1214では、カメラマイコン205は、レンズマイコン111に対して、絞り駆動要求を送信する。そしてステップS1215に進む。
ステップS1215では、カメラマイコン205は、アダプタマイコン302から取得したリング操作状態情報を解析する。リング操作終了情報が含まれていれば本処理を終了し、そうでなければステップS1211に戻る。
次に、図13のフローチャートを用いて、上述した撮像通信処理においてレンズマイコン111が行うP2P通信処理を説明する。カメラマイコン205によりP2P通信の通信相手に指定されたレンズマイコン111は、ステップS1311においてカメラマイコン205から受信したデータを解析する。
次に、ステップS1312では、レンズマイコン111は、受信データが通信要求要因の送信要求であるか否かを判定し、そうであればステップS1313に進み、そうでなければステップS1314に進む。
ステップS1313では、レンズマイコン111は、内部送信バッファに設定した通信要求要因をカメラマイコン205に送信して本処理フローを終了する。内部送信バッファに設定した通信要求要因はその送信後にリセットされる。
ステップS1314では、レンズマイコン111は、通信要求要因の送信以外のP2P通信処理をカメラマイコン205に対して行って本処理を終了する。通信要求要因の送信以外のP2P通信処理は、例えば、交換レンズ100における操作部材の有無、操作部材の操作状態情報、操作状態情報の送信可能な最短周期、焦点距離その他の光学情報といった交換レンズ100の固有情報の送信等である。また、カメラマイコン205からの受信要求であってもよく、例えば絞り駆動要求やフォーカスレンズ駆動要求であってもよい。
本実施例の処理によれば、カメラマイコン205がアダプタマイコン302に対して、リング操作の開始の検出の可否を要求するための通信を周期的に行わなくてもよい。これにより、ユーザによってリング操作がなされていない場合の通信やカメラマイコン205の処理を削減することができる。
また、ユーザによるリング操作に応じてアダプタマイコン30からカメラマイコン205に対してブロードキャスト通信を要求する。これにより、カメラマイコン205がアダプタマイコン302に対してリング操作(開始および終了)の検出の可否やリング操作状態情報のサンプリングの可否を通知するための通信を行う場合と比較して、より少ないタイムラグでブロードキャスト通信を開始することが可能となる。つまり、カメラ本体200と交換レンズ100との間に接続されたアダプタ300に設けられたアダプタ操作リング310のユーザ操作に対応(比例)した、かつリアルタイム性が高い良好な絞り駆動を行うことができる。