図1には、本発明の実施例1である撮像装置(以下、カメラ本体という)200と、それぞれアクセサリ装置である交換レンズ100および中間アダプタ装置(以下、単にアダプタという)300を含む撮像システム(以下、カメラシステムという)の構成を示す。本実施例では、アダプタ300を介して交換レンズ100が接続された状態(複数のアクセサリ装置が接続された状態)で使用可能となっているカメラ本体200を示している。
図1には例として1つのアダプタ300がカメラ本体200と交換レンズ100の間に接続されるカメラシステムを示すが、複数のアダプタを連結してカメラ本体200と交換レンズ100の間に接続してもよい。
本実施例のカメラシステムでは、複数の通信方式を用いて、カメラ本体200と交換レンズ100およびアダプタ300との間で通信を行う。カメラ本体200、交換レンズ100およびアダプタ300は、それぞれの通信部を介して制御コマンドやデータ(情報)の伝送を行う。また、各通信部は複数の通信方式をサポートしており、通信するデータの種類や通信目的に応じて、互いに同期して同一の通信方式に切り替えることにより、様々な状況に対して最適な通信方式を選択することができる。
まず、交換レンズ100、カメラ本体200およびアダプタ300のより具体的な構成について説明する。
交換レンズ100とアダプタ300は、結合機構であるマウント400を介して機械的および電気的に接続されている。同様に、アダプタ300とカメラ本体200は、結合機構であるマウント401を介して機械的および電気的に接続されている。交換レンズ100およびアダプタ300は、マウント400,401に設けられた電源端子部(図示せず)を介してカメラ本体200から電源を取得する。そして、後述する各種アクチュエータや、レンズマイクロコンピュータ111およびアダプタマイクロコンピュータ302の動作に必要な電源を供給する。交換レンズ100、カメラ本体200およびアダプタ300は、マウント400,401に設けられた通信端子部(図2に示す)を介して相互に通信を行う。
交換レンズ100は、撮像光学系を有する。撮像光学系は、被写体OBJ側から順に、フィールドレンズ101と、変倍を行う変倍レンズ102と、光量を調節する絞りユニット114を含む。さらに、撮像光学系は、像振れを低減(補正)する防振レンズ103と、焦点調節を行うフォーカスレンズ104とを含む。
変倍レンズ102とフォーカスレンズ104はそれぞれ、レンズ保持枠105,106により保持されている。レンズ保持枠105,106は、不図示のガイド軸により光軸方向(図中に破線で示す)に移動可能にガイドされており、ステッピングモータ107,108によって光軸方向に駆動される。ステッピングモータ107,108はそれぞれ、駆動パルスに同期してズームレンズ102およびフォーカスレンズ104を移動させる。
防振レンズ103は、撮像光学系の光軸に直交する方向にシフトすることで、カメラ振れ(手振れ等)に起因する像振れを低減する。
レンズマイクロコンピュータ(以下、レンズマイコンという)111は、交換レンズ100内の各部の動作を制御するレンズ制御部(アクセサリ制御部)である。また、レンズマイコン111は、レンズ通信インタフェース回路を含むレンズ通信部(アクセサリ通信部)112を介して、カメラ本体200から送信された制御コマンドや送信要求コマンドを受信する。レンズマイコン111は、制御コマンドに対応するレンズ制御を行ったり、レンズ通信部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の回転操作量を、レンズ通信部112を介してカメラマイコン205に通知することができる。
アダプタ300は、例えば焦点距離を変更するためのエクステンダであり、変倍レンズ301と、アダプタマイクロコンピュータ(以下、アダプタマイコンという)302とを有する。アダプタマイコン302は、アダプタ300内の各部の動作を制御するアダプタ制御部(アクセサリ制御部)である。また、アダプタマイコン302は、通信インタフェース回路を含むアダプタ通信部(アクセサリ通信部)303を介して、カメラ本体200から送信された制御コマンドや送信要求コマンドを受信する。アダプタマイコン302は、制御コマンドに対応するアダプタ制御を行ったり、アダプタ通信部303を介して送信要求コマンドに対応するアダプタデータをカメラ本体200に送信したりする。
カメラ本体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は、通信インタフェース回路を含むカメラ通信部208を介して、不図示のズームスイッチの操作に応じてズームレンズ102の変倍動作に関する制御コマンドをレンズマイコン111に送信する。さらに、カメラマイコン205は、カメラ通信部208を介して、輝度情報に応じた絞りユニット114の光量調節動作やフォーカス情報に応じたフォーカスレンズ104の焦点調節動作に関する制御コマンドをレンズマイコン111に送信する。またカメラマイコン205は、必要に応じて交換レンズ100の制御情報や状態情報を取得するための送信要求コマンドをレンズマイコン111に送信する。さらにカメラマイコン205は、アダプタ300の制御情報や状態情報を取得するための送信要求コマンドをアダプタマイコン302に送信する。
次に、カメラ本体200(カメラマイコン205)と交換レンズ100(レンズマイコン111)とアダプタ300(アダプタマイコン302)の間に構成される通信回路について、図2を用いて説明する。カメラマイコン205、レンズマイコン111およびアダプタマイコン302は、前述したマウント400,401に設けられた通信端子部を介して接続された信号線(チャネル)を用いて通信を行う。
信号線としては、通信制御用の信号を伝達するための信号線(第1の信号線:信号伝達チャネルに相当する)CSと、データを通信するための信号線(第2の信号線:データ通信チャネルに相当する)DATAとが設けられている。
信号線CSは、カメラマイコン205、アダプタマイコン302およびレンズマイコン111に接続されている。このため、カメラマイコン205、アダプタマイコン302およびレンズマイコン111は、信号線CSの状態としての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をHighにすることができる。
さらにスイッチ付きアクセサリ装置としてのアダプタ300内には、CSスイッチ(チャネルスイッチ)3033が設けられている。アダプタマイコン302は、CSスイッチ3033を接続状態と切断状態に切り替えることで、信号線CSを接続および切断することができる。CSスイッチ3033の切断状態では、アダプタ300よりカメラ本体側(本実施例ではカメラ本体200)からの信号線CSへの信号出力状態とアダプタ300からの信号線CSへの信号出力状態が交換レンズ側(本実施例では交換レンズ100自体)に伝達されない。すなわち、後述するブロードキャスト通信をアダプタ300より交換レンズ側の通信スレーブに対して行えなくなる。
ただし、CSスイッチ3033の接続および切断を切り替える際に、不要な信号としてのノイズが発生することがあり、このノイズがカメラマイコン205、レンズマイコン111およびアダプタマイコン302の誤動作を招くおそれがある。このノイズに対する対策については後述する。
また、信号線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の入出力切替え処理の詳細については後述する。
図2では通信回路の一例を示したが、他の通信回路であってもよい。例えば、信号線CSをカメラ本体200内でGNDにプルダウン接続し、交換レンズ100の接地スイッチ1121、カメラ本体200の接地スイッチ2081およびアダプタ300の接地スイッチ3031を介して不図示の電源と接続可能な構成としてもよい。また、交換レンズ100、カメラ本体200およびアダプタ300において信号線DATAを常にデータ入力部に接続される構成とし、信号線DATAとデータ出力部との接続/遮断をスイッチにより切り替え可能な構成としてもよい。
[通信データフォーマット]
次に、図3を用いて、カメラ本体200(カメラマイコン205)、交換レンズ100(レンズマイコン111)およびアダプタ300(アダプタマイコン302)の間でやり取りされる通信データのフォーマットについて説明する。この通信データフォーマットは、後述する第1の通信であるブロードキャスト通信と第2の通信であるP2P通信とで共通である。ここでは、マイコン間で予め通信に使用する通信速度を取り決めておき、この取決めに従う通信ビットレートで送受信を行う、いわゆる調歩同期式通信を行う場合の通信データフォーマットについて説明する。
まずデータ送信を行っていない非送信状態では、信号レベル(電圧レベル)はHighに維持されている。次にデータ送信の開始をデータ受信側に通知するために、信号レベルを1ビット期間の間、Lowとする。この1ビット期間をスタートビットSTと呼ぶ。続いて、次の2ビット目から9ビット目までの8ビット期間で1バイトのデータを送信する。データのビット配列はMSBファーストフォーマットとして、最上位のデータD7から始まり、データD6、データD5、…、データD1と続き、最下位のデータD0で終わる。10ビット目には1ビットのパリティPA情報が付加され、最後に送信データの最後を示すストップビットSPの期間、信号レベルをHighとすることで、スタートビットSTから開始された1フレーム期間が終了する。
図3では通信データフォーマットの例を示したが、他の通信データフォーマットを用いてもよい。例えば、データのビット配列はLSBファーストや9ビット長でもよいし、パリティPA情報を付加しなくてもよい。またブロードキャスト通信とP2P通信とで通信データフォーマットを切り替えてもよい。
[ブロードキャスト通信]
次に、ブロードキャスト通信(第1の通信)について説明する。ブロードキャスト通信は、カメラマイコン205、レンズマイコン111およびアダプタマイコン302のうちの1つが他の2つに対して同時にデータを送信する(すなわち一斉送信)を行う一対多通信である。このブロードキャスト通信は、信号線CSと信号線DATAを用いて行われる。また、ブロードキャスト通信が行われる通信モードをブロードキャスト通信モード(第1の通信モード)ともいう。
図4は、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われるブロードキャスト通信での信号波形を示している。ここでは例として、カメラマイコン205からレンズマイコン111とアダプタマイコン302へのブロードキャスト通信に応答して、アダプタマイコン302がカメラマイコン205とレンズマイコン111にブロードキャスト通信を行う場合について説明する。
まず通信マスタであるカメラマイコン205は、ブロードキャスト通信を開始することを通信スレーブであるレンズマイコン111およびアダプタマイコン302に通知するために、信号線CSへのLow出力を開始する。次にカメラマイコン205は、送信するデータを信号線DATAに出力する。一方、レンズマイコン111およびアダプタマイコン302は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する。この時点ではすでにカメラマイコン205が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
その後カメラマイコン205は、ストップビットSPの出力まで終了すると信号線CSへのLow出力を解除する。一方、レンズマイコン111およびアダプタマイコン302は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および受信したデータに関連付けられた内部処理を行う。そして、次のデータを受信するための準備が整うと信号線CSへのLow出力を解除する。前述した通り、信号線CSの信号レベルは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の全てが信号線CSへのLow出力を解除することでHighとなる。したがって、カメラマイコン205、レンズマイコン111およびアダプタマイコン302は、それぞれが信号線CSへのLow出力を解除した後に信号線CSの信号レベルがHighとなることを確認することができる。カメラマイコン205、レンズマイコン111およびアダプタマイコン302はそれぞれ、信号線CSの信号レベルがHighとなったことを確認することで、今回の通信処理を終了し、次の通信を行うための準備が整ったと判断することができる。
次にアダプタマイコン302は、信号線CSの信号レベルがHighに戻ったことを確認すると、ブロードキャスト通信を開始することをカメラマイコン205およびレンズマイコン111に通知するために、信号線CSへのLow出力を開始する。
続いてアダプタマイコン302は、送信するデータを信号線DATAに出力する。また、カメラマイコン205およびレンズマイコン111は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する。この時点ではすでにアダプタマイコン302が信号線CSへのLow出力を開始しているので、信号線CSに伝搬される信号レベルは変化しない。その後アダプタマイコン302は、ストップビットSPの出力まで終了すると信号線CSへのLow出力を解除する。一方、カメラマイコン205およびレンズマイコン111は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および受信したデータに関連付けられた内部処理を行う。そして、次のデータを受信するための準備が整った後に信号線CSへのLow出力を解除する。
以上のように、ブロードキャスト通信において信号線CSで伝達される信号は、ブロードキャスト通信の開始(実行)および実行中を示す信号として機能する。
図4ではブロードキャスト通信の例を示したが、他のブロードキャスト通信を行ってもよい。例えば、1回のブロードキャスト通信で送信するデータは、図4に示したように1バイトのデータでもよいが、2バイトや3バイトのデータであってもよい。また、ブロードキャスト通信を通信マスタであるカメラマイコン205から通信スレーブであるレンズマイコン111およびアダプタマイコン302への一方向通信としてもよい。
[P2P通信]
次に、カメラ本体200(カメラマイコン205)、交換レンズ100(レンズマイコン111)およびアダプタ300(アダプタマイコン302)の間で行われるP2P通信について説明する。P2P通信は、通信マスタであるカメラ本体200が通信スレーブである交換レンズ100とアダプタ300から通信する相手(特定アクセサリ装置)を1つ指定(選択)し、その指定した通信スレーブとの間のみでデータを送受信する一対一通信(個別通信)である。このP2P通信も、信号線CSと信号線DATAを用いて行われる。また、P2P通信が行われる通信モードをP2P通信モード(第2の通信モード)ともいう。
図5は、例として、カメラマイコン205と通信相手として指定されたレンズマイコン(特定アクセサリ装置)111との間でやり取りされるP2P通信の信号波形を示している。カメラマイコン205からの1バイトのデータ送信に応答して、レンズマイコン111がカメラマイコン205に対して2バイトのデータ送信を行う。通信モード(ブロードキャスト通信モードとP2P通信モード)の切替え処理およびP2P通信での通信相手の指定処理については後述する。
まず通信マスタであるカメラマイコン205は、レンズマイコン111に送信するデータを信号線DATAに出力する。カメラマイコン205は、ストップビットSPの出力まで終了した後、信号線CSへのLow出力(待機要求)を開始する。カメラマイコン205は、次のデータの受信準備が整った後に、信号線CSへのLow出力を解除する。一方、レンズマイコン111は、信号線CSから入力されたLow信号を検出した後、信号線DATAから入力された受信データの解析および受信したデータに関連付けられた内部処理を行う。その後レンズマイコン111は、信号線CSの信号レベルがHighに戻ったことを確認すると、送信すべきデータを2バイト分連続で信号線DATAに出力する。
レンズマイコン111は、2バイト目のストップビットSPの出力まで終了した後、信号線CSへのLow出力を開始する。その後レンズマイコン111は、次のデータの受信準備が整うと信号線CSへのLow出力を解除する。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は、図4で説明した手順でブロードキャスト通信を実行する。このブロードキャスト通信で通知するのは、次のP2P通信でカメラマイコン205と通信を行う相手を指定するスレーブ指定データである。このときの通信スレーブであるレンズマイコン111およびアダプタマイコン302は、ブロードキャスト通信で受信したスレーブ指定データに基づいて、自身がP2P通信の通信相手として指定されたか否かを判定する。この判定結果によって、カメラマイコン205と指定された通信スレーブ(特定アクセサリ装置)との通信モードがブロードキャスト通信モードからP2P通信モードに切り替わる。ここでは通信相手としてアダプタマイコン302が指定されているため、次のP2P通信では図5で説明した手順に従ってカメラマイコン205とアダプタマイコン302との間でデータの送受信が行われる。ここではカメラマイコン205からアダプタマイコン302に1バイトデータを送信し、その後アダプタマイコン302からカメラマイコン205へ1バイトデータを送信する。
カメラマイコン205とアダプタマイコン302とのP2P通信が終了すると、カメラマイコン205は再びブロードキャスト通信によってP2P通信で通信する通信相手を指定することができる。ここでは次のP2P通信の通信相手としてレンズマイコン111を指定するために、スレーブ指定データとしてレンズマイコン111を設定して図4で説明した手順でブロードキャスト通信を実行する。このブロードキャスト通信に応じてアダプタマイコン302はP2P通信を終了し、これと同時にカメラマイコン205とレンズマイコン111の通信モードがP2P通信モードに切り替えられる。なお、ここでブロードキャスト通信を実行しない場合は、カメラマイコン205とアダプタマイコン302とのP2P通信が継続される。
次のP2P通信では、図5で説明した手順に従ってカメラマイコン205とレンズマイコン111との間でデータの送受信が行われる。ここではカメラマイコン205がレンズマイコン111に2バイトデータを送信し、その後レンズマイコン111がカメラマイコン205に3バイトデータを送信する。
以上のように、ブロードキャスト通信によってP2P通信の通信相手を指定することが可能であり、同時にブロードキャスト通信とP2P通信の切替えを行うことができる。
[通信制御処理]
次に、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われる通信制御処理について説明する。まず、図7Aおよび図7Bのフローチャートを用いて、ブロードキャスト通信モードでの処理について説明する。図7Aはカメラマイコン205が行う処理を示し、図7Bはレンズマイコン111およびアダプタマイコン302が行う処理を示している。それぞれコンピュータであるカメラマイコン205、レンズマイコン111およびアダプタマイコン302は、コンピュータプログラムとしての通信制御プログラムに従って本処理および後述する他の処理を実行する。
ステップS100においてブロードキャスト通信を開始するイベントが発生すると、カメラマイコン205は、ステップS101において接地スイッチ2081をオン(接続)して信号線CSをLowにする。これにより、レンズマイコン111およびアダプタマイコン302に対してブロードキャスト通信の開始を通知する。ステップS200において信号線CSのLowを検出したレンズマイコン111およびアダプタマイコン302は、ステップS201において信号線DATAからのデータ受信を許可する。
次にカメラマイコン205は、ステップS102において入出力切替えスイッチ2082を動作させて信号線DATAをデータ出力部に接続し、ステップS103でデータ送信を行う。レンズマイコン111およびアダプタマイコン302は、ステップS202で信号線DATAのスタートビットを検出すると、ステップS205にて通信処理中であることを示すために接地スイッチ1121および接地スイッチ3031をオン(接続)する。これにより、信号線CSへのLow出力を開始する。その後、レンズマイコン111およびアダプタマイコン302、ステップS206において全データを受信したと判定すると、ステップS207において信号線DATAからのデータ受信を禁止する。さらにステップS208において、通信処理が終了したことを示すために接地スイッチ1121および接地スイッチ3031をオフ(遮断)して信号線CSへのLow出力を解除する。なお、ここで送受信するデータのバイト数に制限は無く、カメラマイコン205、レンズマイコン111およびアダプタマイコン302間で認識が一致していればよい。
続いてカメラマイコン205は、ステップS104において、ステップS103で送信したデータがレンズマイコン111またはアダプタマイコン302からの送信も含む双方向コマンドであるか否かを判定する。双方向コマンドでない場合には、カメラマイコン205はステップS105にて接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除し、ステップS116に進む。双方向コマンドである場合には、カメラマイコン205はステップS106にて入出力切替えスイッチ2082を動作させて信号線DATAをデータ入力部に接続する。そして、ステップS107において接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除し、ステップS108にて信号線CSがHighになるまで待機する。
一方、レンズマイコン111およびアダプタマイコン302は、ステップS209において、ステップS206で受信したデータが自身からの送信も含む双方向コマンドであるか否かを判定する。レンズマイコン111およびアダプタマイコン302は、双方向コマンドでなかった場合にはステップS215に進み、双方向コマンドであった場合にはステップS210にて信号線CSがHighになるまで待機する。そして、信号線CSがHighになると、レンズマイコン111およびアダプタマイコン302は、ステップS211において接地スイッチ1121,3031をオン(接続)して信号線CSをLowにすることで、ブロードキャスト通信の開始を通知する。カメラマイコン205は、ステップS109において信号線CSのLowを検出すると、ステップS110において信号線DATAからのデータ受信を許可する。
続いてレンズマイコン111およびアダプタマイコン302は、ステップS212において入出力切替えスイッチ1122,3032を動作させて信号線DATAをデータ出力部に接続し、ステップS213でデータ送信を行う。カメラマイコン205は、ステップS111において信号線DATAのスタートビットを検出すると、ステップS112において通信処理中であることを示すために接地スイッチ2081をオン(接続)する。これにより、信号線CSへのLow出力を開始する。レンズマイコン111およびアダプタマイコン302は、全データの送信が終了した後に、ステップS214において接地スイッチ1121,3031をオフ(遮断)することで、信号線CSへのLow出力を解除する。
カメラマイコン205は、ステップS113で全データを受信したと判定すると、ステップS114で信号線DATAからのデータ受信を禁止する。そして、カメラマイコン205は、ステップS115において通信処理が終了したことを示すために接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。なお、ここで送受信するデータのバイト数に制限は無く、カメラマイコン205、レンズマイコン111およびアダプタマイコン302間で認識が一致していればよい。
続いてカメラマイコン205は、ステップS116において信号線CSがHighになるまで待機する。信号線CSがHighになると、カメラマイコン205はステップS117において、ステップS103で送信したデータによりレンズマイコン111またはアダプタマイコン302をP2P通信の通信相手として指定したか否かを判定する。カメラマイコン205は、レンズマイコン111およびアダプタマイコン302を通信相手として指定していない場合はそのまま処理を終了し、いずれかを指定した場合にはステップS118でP2P通信モードに移行する。
一方、レンズマイコン111およびアダプタマイコン302は、ステップS215で信号線CSがHighになるまで待機する。信号線CSがHighになると、レンズマイコン111およびアダプタマイコン302はステップS216において、ステップS206で受信したデータによりカメラマイコン205からP2P通信の通信相手として指定されたか否かを判定する。レンズマイコン111およびアダプタマイコン302は、通信相手として指定されていない場合には、そのまま処理を終了する。通信相手として指定されていた場合には、レンズマイコン111およびアダプタマイコン302のうち指定されたマイコンは、ステップS217において信号線DATAからのデータ受信を許可し、ステップS218においてP2P通信モードに移行する。
なお、レンズマイコン111およびアダプタマイコン302は、ステップS202においてスタートビットを検出していない場合は、ステップS203において信号線CSがHighになったか否かを確認する。信号線CSがHighになった(戻った)場合には、レンズマイコン111およびアダプタマイコン302は、ステップS204において信号線DATAからのデータ受信を禁止して処理を終了する。これは、P2P通信の通信相手として指定されていない通信スレーブが、カメラマイコン205と他の通信スレーブとの間のP2P通信による信号線CSへのLow出力に対応するための処理である。
次に、図8Aおよび図8Bのフローチャートを用いて、P2P通信モードでの処理について説明する。図8Aはカメラマイコン205が行う処理を示し、図8Bはレンズマイコン111およびアダプタマイコン302のうちP2P通信の通信相手として指定されたマイコン(以下、特定マイコンという)が行う処理を示している。
ステップS300においてP2P通信を開始するイベントが発生すると、カメラマイコン205は、ステップS301において入出力切替えスイッチ2082を動作させて信号線DATAをデータ出力部に接続し、ステップS302でデータ送信を行う。その後、全てのデータ送信が終了すると、カメラマイコン205は、ステップS303において接地スイッチ2081をオン(接続)して信号線CSへのLow出力を開始する。一方、特定マイコンは、ステップS400において信号線CSのLowを検出するとカメラマイコン205からのデータ送信が終了したと判定し、ステップS401において信号線DATAから受信したデータの解析を行う。
続いてカメラマイコン205は、ステップS304において、ステップS302で送信したデータが特定マイコンからの送信も含む双方向コマンドであるか否かを判定する。カメラマイコン205は、双方向コマンドでない場合には、ステップS305で接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。そして、ステップS306で信号線CSがHighになるまで待機してからステップS311に進む。双方向コマンドである場合には、カメラマイコン205は、ステップS307で入出力切替えスイッチ2082を動作させて信号線DATAをデータ入力部に接続する。そして、ステップS308で接地スイッチ2081をオフ(遮断)することで信号線CSへのLow出力を解除する。
一方、特定マイコンは、ステップS402で信号線CSがHighになるまで待機した後、ステップS403において、ステップS401で受信したデータが自身からの送信も含む双方向コマンドであるか否かを判定する。双方向コマンドでない場合には、特定マイコンは、ステップS404およびステップS405において接地スイッチ(1121または3031)をオン(接続)およびオフ(遮断)する。これにより、信号線CSへのLow出力の開始および解除を行い、ステップS411に進む。双方向コマンドである場合には、特定マイコンは、ステップS406において、入出力切替えスイッチ(1122または3032)を動作させて信号線DATAをデータ出力部に接続し、ステップS407においてデータ送信を行う。その後、全てのデータ送信が終了すると、特定マイコンは、ステップS408において接地スイッチ(1121または3031)をオン(接続)することで信号線CSへのLow出力を開始する。
続いてカメラマイコン205は、ステップS609において信号線CSのLowを検出すると、ステップS310において特定マイコンからのデータ送信が終了したと判定して、信号線DATAから受信したデータの解析を行う。一方、特定マイコンは、ステップS409において入出力切替えスイッチ(1122または3032)を動作させて信号線DATAをデータ入力部に接続する。その後、特定マイコンは、ステップS410において接地スイッチ(1121または3031)をオフ(遮断)して信号線CSへのLow出力を解除する。
次にカメラマイコン205は、ステップS311において信号線CSがHighになるまで待機する。その後、ステップS312でブロードキャスト通信を開始するイベントが発生すると、カメラマイコン205はステップS313でブロードキャスト通信モードに移行する。一方、特定マイコンは、ステップS411において信号線CSがHighになるまで待機して処理を終了する。
このように、本実施例では、ブロードキャスト通信とP2P通信とで、信号線CSで伝達する信号の意味(機能)を適切に切り替える。これによりカメラマイコン205、レンズマイコン111およびアダプタマイコン302間の通信を、少ない信号線数(チャネル数)で実現することができる。
[認証通信処理]
次に、図9および図10を用いて本実施例における認証通信処理について説明する。図9は、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われる認証通信処理での信号波形を示している。
図中の一番上には信号線DATAで通信されるデータを示し、「カメラ」はカメラマイコン205が出力するデータを、「アダプタ」はアダプタマイコン302が出力するデータを、「レンズ」はレンズマイコン111が出力するデータをそれぞれ示している。「CS信号(カメラ)」はカメラマイコン205が検出する信号線CSの信号出力状態(以下、CS信号状態という)を示し、「CS出力(カメラ)」はカメラマイコン205が信号線CSに出力する信号を示す。「CS信号(アダプタ)」はアダプタマイコン302が検出するCS信号状態を示し、「CS出力(アダプタ)」はアダプタマイコン302が信号線CSに出力する信号を示す。「CSSW」は、アダプタマイコン302が制御するCSスイッチ3033の状態を示し、Lowが接続状態を表す。「CS信号(レンズ)」はレンズマイコン111が検出するCS信号状態を示し、「CS出力(レンズ)」はレンズマイコン111が信号線CSに出力する信号を示す。
図10のフローチャートには、認証通信処理の流れを示している。この認証通信処理は、カメラ本体200に設けられたレンズ検出スイッチ1123により交換レンズ100の接続を検出することに応じて、カメラ本体200から交換レンズ100およびアダプタ300に電源供給が開始されることに応じて行われる。
図11は、図10に示した認証通信処理におけるCS不感設定(S502,S505,S506,S516,S518)とCS変化無視設定(S511,S514,S522,S524)のタイミングと期間を示している。図11中のCS信号(カメラ)、CS信号(アダプタ)およびCS信号(レンズ)における点線部分が、図10におけるCS不感設定とCS変化無視設定のタイミングと期間を示す。
認証通信処理の開始において、カメラマイコン205はステップS500においてブロードキャスト通信により信号線DATAを介して認証開始要求コマンドを送信する。すなわち認証開始通信を行う。この処理は、カメラマイコン205による認証通信の前処理として行われる。またこのとき、CSスイッチ3033は接続状態に設定されている。なお、ブロードキャスト通信および後に行われるP2P通信での処理は図7A,7Bおよび図8A,8Bを用いて説明した通りである。また、アダプタマイコン302およびレンズマイコン111は、先に説明したようにブロードキャスト通信およびP2P通信においてカメラマイコン205との通信中(通信開始〜終了)と通信待機中とで信号線CSに異なる信号(LowとHigh)を出力する。これら通信中と通信待機中を示す信号が、アクセサリ信号に相当する。
認証開始要求コマンドを送信したカメラマイコン205は、ステップS501において、所定期間の間、信号線CSの信号変化を感知しない状態、言い換えれば信号変化を受け付けない状態に移行する。すなわち、CS不感設定を行う。その後、上記一定時間が経過すると、カメラマイコン205は、ステップS502において信号線CSの信号変化を感知する(受け付ける)状態に戻る。すなわち、CS不感設定を解除する。このように、本実施例では、信号線CSの信号変化を感知しない入力無効期間としてのCS不感期間を設ける。これにより、後述するステップS512でアダプタマイコン302がCSスイッチ3033を切り替えることにより信号線CSにノイズによる信号変化が発生しても、これがCS不感期間内であることで、カメラマイコン205の誤動作を防止することができる。
認証開始要求コマンドを受信したアダプタマイコン302とレンズマイコン111はそれぞれ、ステップS510、S521においてブロードキャスト通信の受信処理を行う。受信した結果が認証開始要求コマンドであった場合は、アダプタマイコン302は、ステップS511に進む。
ステップS511では、アダプタマイコン302はCS変化無視設定を行う。また、これと同時にステップS522において、レンズマイコン111もCS変化無視設定を行う。このCS変化無視設定は、信号線CSの信号が変化してから短時間内に元に戻った場合には、通常であれば信号線CSの信号変化に応じて行う処理を行わない設定である。言い換えれば、アダプタマイコン302およびレンズマイコン111は、所定期間の間、信号線CSの信号変化を検出する(受け付ける)がこれを無視する(無効とする)状態に移行する。すなわち、アダプタマイコン302およびレンズマイコン111は、信号線CSの信号変化を検出しても、該信号線CSの信号変化は無かったものとして認識する。このCS信号の変化を無視する設定がなされる所定期間(以下、CS変化無視期間という)も入力無効期間に相当する。
その後アダプタマイコン302は、ステップS512において、CSスイッチ3033を接続状態から切断状態に切り替える。その後、後述するステップS513を経て、CS変化無視期間が終了すると、アダプタマイコン302は、ステップS514において、信号線CSの信号変化を感知する状態に移行する。すなわち、CS変化無視設定を解除する。これにより、ステップS512でのCSスイッチ3033の切替えにより信号線CSにノイズによる信号変化が発生しても、これがCS変化無視期間内であるため、アダプタマイコン302の誤動作を防止することができる。
ここでは、CSスイッチ3033の切替えタイミングがアダプタマイコン302が信号線CSへのLow出力を解除した後(図7BのステップS208の後)となっているが、Low出力解除の直前または同時であっても構わない。
一方、ステップS502でCS不感設定を解除したカメラマイコン205は、アダプタマイコン302による信号線CSへのLow出力が解除されて通信回路が通信待機中になることに応じて、ステップS503の処理を行う。ステップS503では、カメラマイコン205は、ブロードキャスト通信により信号線DATAを介して認証要求コマンドを送信する。すなわち認証要求通信を行う。これ以降の処理でカメラマイコン205は認証通信を行う。認証要求コマンドは、ブロードキャスト通信にてそれを受け取った通信スレーブを指定スレーブ(特定アクセサリ装置)として指定するためのスレーブ指定データとなる。ステップS512にて信号線CSはCSスイッチ3033により切断されているため、ステップS503での信号線CSへのLow出力は、レンズマイコン111には検出されない。
一方、信号線DATAは接続されているため、認証要求コマンドはレンズマイコン111に送信されている。しかし、認証要求コマンドは、信号線CSがLowであるときにのみデータ受信が可能なブロードキャスト通信を前提としたコマンドである。このため、信号線CSがHighの状態で認証要求コマンドを受信したレンズマイコン111はこれを無視する。
また、アダプタマイコン302は、ステップS513においてブロードキャスト通信で信号線DATAを介して認証要求コマンドを受信する。認証要求コマンドを受信したアダプタマイコン302は、これが初めての認証要求コマンドの受信であるため、それが自分に送信されたスレーブ指定データであり、次に行われるP2P通信が自分宛ての通信であると解釈する。この受信が終わると、アダプタマイコン302は、ステップS514において、CS変化無視設定を解除する。
次にカメラマイコン205は、ステップS504においてP2P通信により信号線DATAを介してID通信要求コマンドを送信する。すなわち認証情報通信を行う。このときカメラマイコン205はP2P通信の通信相手がアダプタマイコン302であることを認識していない。これは、この時点ではまだカメラ本体200にどのようなアクセサリがいくつ接続されているかが判明していないためである。カメラマイコン205は、ただステップS503で送信した認証要求コマンドにより指定スレーブを指定することで、接続されている何れかの通信スレーブがP2P通信に応答してくることを知っているだけである。
指定スレーブとして指定されたアダプタマイコン302は、ステップS515においてP2P通信によりID通信要求コマンドを受信し、これに応答してP2P通信により自身のID情報(認証情報)を信号線DATAを介してカメラマイコン205に送信する。
次にカメラマイコン205は、ID情報(認証情報)を受信すると、ステップS505において、再びCS不感設定を行う。そして、一定時間が経過すると、カメラマイコン205は、ステップS506においてCS不感設定を解除する。これにより、後述するステップS517にてアダプタマイコン302がCSスイッチ3033を切り替えることにより信号線CSにノイズによる信号変化が発生しても、これがCS不感期間内であることで、カメラマイコン205の誤動作を防止することができる。
アダプタマイコン302も同様に、ステップS516において、CS不感設定を行う。その後、一定期間(CS不感期間)が経過すると、アダプタマイコン302は、ステップS517においてCSスイッチ3033を切断状態から接続状態に切り替える。CSスイッチ3033を接続状態に切り替えたアダプタマイコン302は、ステップS518において、CS不感設定を解除する。これにより、ステップS517でのCSスイッチ3033の切替えにより信号線CSにノイズによる信号変化が発生しても、これがCS不感期間内であるため、アダプタマイコン302の誤動作を防止することができる。
ここでは、CSスイッチ3033の切替えのタイミングがアダプタマイコン302が信号線CSへのLow出力を解除した後(図8BのステップS410の後)となっているが、Low出力解除の直前または同時であっても構わない。
また、ステップS504,S515でのP2P通信は、図9に示すようにカメラマイコン205とアダプタマイコン302との間で一往復だけ行われてもよいし、二往復以上行われてもよい。
さらに、CSスイッチ3033を接続状態に切り替えるタイミングを、本フローチャートではステップS515の後としたが、ステップS515の前(ステップS513での認証要求コマンドの受信後)でも構わない。これは、ブロードキャスト通信により認証要求コマンドを受信したアダプタマイコン302は、それが自分へのスレーブ指定データであると認識し、認証要求コマンドを受信していないレンズマイコン111は自分へのスレーブ指定データとは認識しないためである。このため、ステップS513の後でCSスイッチ3033を接続状態に切り替えても、ステップS515でのID通信要求コマンドに応答するのはアダプタマイコン302だけである。
次にカメラマイコン205は、アダプタマイコン302による信号線CSへのLow出力が解除されて通信回路が通信待機中になることに応じて、ステップS507において再びブロードキャスト通信により信号線DATAを介して認証要求コマンドを送信する。ここでは、信号線CSが接続されているため、アダプタマイコン302はステップS519にて認証要求コマンドを受信し、さらにステップS523にてレンズマイコン111も受信する。ただし、アダプタマイコン302は既に一度、認証要求コマンドおよびID通信要求コマンドに応答する通信(すなわち認証)を終えているため、ここでは認証要求コマンドを無視する。一方、レンズマイコン111はこれが初めての認証要求コマンドの受信となるため、自分に対するスレーブ指定データであると解釈し、P2P通信の準備をする。受信が終わると、レンズマイコン111は、ステップS524において、CS変化無視設定を解除する。
その後カメラマイコン205は、ステップS508においてP2P通信により信号線DATAを介してID通信要求コマンドを送信する。ここでもカメラマイコン205はP2P通信の相手がレンズマイコン111であることを認識していない。これはアダプタマイコン302に対してと同じ理由による。レンズマイコン111は、ステップS525においてID通信要求コマンドに対してP2P通信により自身のID情報(認証情報)を信号線DATAを介してカメラマイコン205に送信する。カメラマイコン205は、受信したID情報が交換レンズ100のものであることを確認すると、これ以上認証すべき通信スレーブは接続されていないと判断する。そして、カメラマイコン205は、ステップS509において認証通信処理を終了するための認証終了要求コマンドをブロードキャスト通信により信号線DATAを介して送信する。すなわち認証終了通信を行う。ステップS520,526において、アダプタマイコン302とレンズマイコン111は認証終了要求コマンドを受信する。これにより、認証通信処理が終了する。
このように、本実施例では、カメラマイコン205は、CS出力状態が通信待機中を示すごとにブロードキャスト通信を用いて指定スレーブを順次指定しながら、ブロードキャスト通信およびP2P通信を用いて該指定スレーブに対する認証通信を行う。
本実施例によれば、信号線CSと信号線DATAの2線(2チャネル)で通信を行うカメラシステムにおいて、アダプタ300に設けたCSスイッチ3033の切替えによってカメラ本体200により近いアクセサリ装置から順次、認証通信を行うことができる。そして、最後に交換レンズに対する認証通信を行うことができる。これにより、カメラ本体200に複数のアクセサリ装置が接続されていても短時間で認証通信を行うことができる。
しかも、この認証通信を行う間にCSスイッチ3033の切替えによりノイズが発生しても、カメラマイコン205、アダプタマイコン302およびレンズマイコン111がCS不感期間またはCS変化無視期間を設けることで誤動作を回避することができる。すなわち、認証通信のやり直しを防ぐことができる。これにより、カメラ本体200に複数のアクセサリ装置が接続されていても短時間で認証通信を行うことができる。
[変形例]
以下、実施例1の変形例について説明する。実施例1では、カメラマイコン205、アダプタマイコン302およびレンズマイコン111の間で認証通信を行う際にCS不感期間やCS変化無視期間を設ける場合について説明した。しかし、カメラマイコン205、アダプタマイコン302およびレンズマイコン111の間で認証通信以外の通信を行う際にCS不感期間やCS変化無視期間を設けてもよい。すなわち、カメラマイコン205がアダプタマイコン302およびレンズマイコン111を順次指定しながら認証通信その他の特定通信を行う際にCS不感期間やCS変化無視期間を設けてもよい。また実施例1では、カメラマイコン205、アダプタマイコン302およびレンズマイコン111は各種要求コマンドに応答してデータ通信を行う場合について説明した。しかし、データ通信とは異なる処理を行ってもよく、この場合にもCS不感期間やCS変化無視期間を設けてもよい。
ID通信要求コマンドに応答してアダプタマイコン302とレンズマイコン111がカメラマイコン205に送信する認証情報としてのID情報は、アクセサリ装置の種類ごとの通し番号(例えば、交換レンズは00で、エクステンダは01)の情報であってもよい。また、bitごとに意味が割り振られた情報であってもよい。さらに、複数バイトの情報であってもよい。ID情報は、アクセサリ装置の種類や機能を示す情報であればよい。
上述した認証通信処理では、カメラマイコン205は、ID情報が交換レンズ100のものであることを確認して認証通信の終了を判断する場合について説明した。これとは異なり、ID情報に交換レンズを示す情報とともに認証通信終了を指示する情報を含ませておき、カメラマイコン205がそれを検出することで認証通信の終了を判断してもよい。また、ID情報の通信とは別に、認証通信を終了可能か否かを通信スレーブに確認するための確認通信をID通信の前後にP2P通信で別途行ってもよい。
また実施例1では、CSスイッチ3033を接続するタイミングをカメラマイコン205が指示しない場合について説明したが、CSスイッチ接続コマンドを設けて、これを認証通信処理中にP2P通信でカメラマイコン205が送信してもよい。この場合、CSスイッチ接続コマンドをP2P通信で送受信するので、アダプタマイコン302は認証情報をカメラマイコン205に送信してもよい。
また実施例1では、アダプタマイコン302およびレンズマイコン111について、認証開始要求コマンドの受信(ステップS510,S521)後にCS変化無視期間を設けた場合について説明した。しかし、CS変化無視期間に代えて、カメラマイコン205と同様にCS不感期間を設けてもよい。
また実施例1では、カメラ本体200と交換レンズ100との間に1つのアダプタ300が接続されている場合について説明したが、複数のアダプタが連結されて接続されていてもよい。このように複数のアダプタが接続されている場合でも、実施例1で説明した手順と同様の手順で各アダプタおよび交換レンズ100を短時間で認証することが可能である。この際、認証開始要求コマンドをブロードキャスト通信で一斉に受信した複数のアダプタは、ほぼ同時にCSスイッチを切断状態にする。このため、その後の認証は必ずカメラ本体200により近いアダプタから1つずつ順次指定されながら行われていくことになる。そして、1つのアダプタが接続されている場合と同様に、最後に交換レンズ100が認証されて一連の認証通信処理が完了となる。
また、アダプタ300が接続されておらず、カメラ本体200に交換レンズ100が直接接続されている場合には、図9および図10に示した認証通信処理のうちアダプタ300に対する認証通信の部分が行われずに交換レンズ100に対する認証通信が行われる。
さらに、実施例1におけるアダプタ300は、前述したようにエクステンダであってもよいし、駆動可能な光学部材(フォーカスレンズ、絞り、防振レンズ等)を含むアダプタや、各種センサ(位相差センサ、角速度センサ等)を含むアダプタであってもよい。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。例えば、上記実施例では、アクセサリ装置として交換レンズと中間アダプタを用いた例を示したが、アクセサリ装置として、カメラ本体に直接装着される交換レンズとカメラ本体に直接装着されるストロボ等を用いてもよい。