以下、本発明の実施形態について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照番号を付し、重複する説明は省略する。アクセサリとカメラとの間では、複数の通信方式に基づく通信が実行される。「通信方式」はブロードキャスト通信方式(第1通信方式)とP2P通信方式(第2通信方式)を意味する。
本発明では、ブロードキャスト通信において、通信マスタとしてのカメラは、通信スレーブとしての各アクセサリに対して一斉にデータ送信を行う。カメラが、特定のアクセサリとの1対1の通信であるP2P通信を行う場合、P2P通信におけるカメラとの通信相手を示す情報がブロードキャスト通信において各アクセサリに対して通知される。
P2P通信が開始されるタイミングでは、各アクセサリに対してカメラの通信相手が通知されているため、P2P通信において、カメラは通信相手を特定するための情報を各アクセサリに送信する必要がない。このように、ブロードキャスト通信においてカメラとの通信相手を選択した上で、カメラと選択された通信相手との1対1の通信方式であるP2P通信への切り替えを行うことで、P2P通信における通信速度を向上させることができる。
<カメラシステムの構成についての説明>
図1は、本発明のカメラ200と、カメラ200に対して着脱可能なアクセサリとしての中間アダプタ300および交換レンズ100を含むカメラシステムの構成を示すブロック図である。交換レンズ100および中間アダプタ300等のアクセサリとカメラ200は、各々の通信手段を用いて、機器間で制御命令や内部情報の伝送を行う。また、各々の通信手段はそれぞれ複数の通信方式をサポートしており、通信するデータの種類や通信目的に応じて、互いに同期して同一の通信方式へ切替えることにより、様々な状況に対する最適な通信形式を選択することが可能となっている。なお、図1では、一例としてカメラ200に中間アダプタ300が装着されている構成を示しているが、本発明はこれに限定されない。交換レンズ100をカメラ200に直接、装着してもよいし、1つまたは複数の中間アダプタを介してカメラ200に装着してもよい。
交換レンズ100と中間アダプタ300は、結合機構であるマウント400を介して機械的および電気的に接続されている。同様に、中間アダプタ300とカメラ200は、結合機構であるマウント401を介して機械的および電気的に接続されている。交換レンズ100および中間アダプタ300は、マウント400,401に設けられた電源端子部(図示せず)を介してカメラ200から電力を取得し、後述する各種アクチュエータや各装置のマイクロコンピュータの動作に必要な電力を供給する。また、交換レンズ100、カメラ200および中間アダプタ300は、マウント400,401に設けられた通信端子部を介して相互に通信を行う。
交換レンズ100は、撮像光学系を有する。撮像光学系は、被写体OBJ側から順に、フィールドレンズ101、変倍を行うズームレンズ(変倍レンズ)102、光量を調節する絞りユニット114、防振レンズ103および焦点調節を行うフォーカスレンズ104を含む。
ズームレンズ102はステッピングモータ107によって駆動されるレンズ保持枠105により保持され、フォーカスレンズ104はステッピングモータ108によって駆動されるレンズ保持枠106により保持されている。
ズームレンズ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により検出され、増幅回路122およびA/D変換回路123を介してレンズマイコン111に入力される。レンズマイコン111は、A/D変換回路123からの入力信号に基づいて絞り駆動回路121に駆動信号を出力して絞りアクチュエータ113を駆動させる。これにより、絞りユニット114による光量調節動作が制御される。
さらに、レンズマイコン111は、カメラ200の振動に応じて、防振駆動回路125を介して防振アクチュエータ126を駆動し、防振レンズ103をシフトさせる。これにより、防振処理が行われる。
また、交換レンズ100は、操作リング130と、操作リング130の操作量および操作方向を検出する操作リング検出手段131とを有する。
中間アダプタ300は、例えば、焦点距離を変更するためのエクステンダであり、変倍レンズ301およびアダプタマイクロコンピュータ(以下、アダプタマイコンという)302を有する。アダプタマイコン302は、中間アダプタ300内の各部の動作を制御する中間アダプタ制御手段(アクセサリ制御部)である。アダプタマイコン302は、アクセサリ通信部としてのアダプタ通信部303を介して、カメラ200から送信された制御コマンドや送信要求コマンドを受信する。アダプタマイコン302は、制御コマンドに対応する中間アダプタ制御を行ったり、アダプタ通信部303を介して送信要求コマンドに対応する中間アダプタデータをカメラ200に送信したりする。
カメラ200は、CCDセンサやCMOSセンサ等の撮像素子201が生成し、A/D変換回路202および信号処理回路203を介した被写体像の信号を、記録部204に記録し、表示部206に表示させる。
カメラマイコン205は、不図示の撮像指示スイッチおよび各種設定スイッチ等のカメラ操作部材からの入力に応じてカメラ200の制御を行う。また、カメラマイコン205は、カメラ通信部208を介して、不図示のズームスイッチの操作に応じてズームレンズ102の変倍動作に関する制御コマンドをレンズマイコン111に送信する。また、カメラマイコン205は、カメラ通信部208を介して、輝度情報に応じた絞りユニット114の光量調節動作やフォーカス情報に応じたフォーカスレンズ104の焦点調節動作に関する制御コマンドをレンズマイコン111に送信する。また、カメラマイコン205は、交換レンズ100の制御情報や状態情報を取得するための送信要求コマンドをレンズマイコン111に送信し、中間アダプタ300の制御情報や状態情報を取得するための送信要求コマンドをアダプタマイコン302に送信する。
カメラマイコン205は、ブロードキャスト通信方式では、中間アダプタ300と交換レンズ100に対してデータを一斉に送信し、P2P通信方式では、中間アダプタ300と交換レンズ100のいずれか一方と1対1のデータ通信を行う。
<通信回路の構成についての説明>
以下、図2を参照して、カメラ200、交換レンズ100および中間アダプタ300を含むカメラシステムの間で構成される通信回路について説明する。図2は、カメラシステムにおける通信回路を示す概略図である。
カメラマイコン205、レンズマイコン111およびアダプタマイコン302は、マウント400,401に設けられた通信端子部を介して接続された信号線を用いて通信を行う。信号線は、通信のフロー制御を行うための信号を伝搬し、信号の伝達に用いられる信号線(通知チャネル)CSと、送受信するデータを伝搬し、データ通信に用いられる信号線(データ通信チャネル)DATAの2本で構成される。
信号線CSは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302に接続されており、各マイコンは、信号線の信号レベル(電圧レベル)を検出可能である。また、信号線CSは、カメラ200内の電源にプルアップ接続されるとともに、交換レンズ100の接地スイッチ1121、カメラ200の接地スイッチ2081および中間アダプタ300の接地スイッチ3031を介してGNDに接続される。すなわち、信号線CSは、オープンドレイン接続されている。この構成により、交換レンズ100、カメラ200および中間アダプタ300はそれぞれ、各接地スイッチをオン(接続)することにより信号線CSの信号レベルをLow(第1レベル)に設定可能である。一方、交換レンズ100、カメラ200および中間アダプタ300の全てが各々の接続スイッチをオフ(遮断)することで、信号線CSの信号レベルをHi(第2レベル)に設定可能である。本実施形態では、接地スイッチを接続状態とすることを「信号線CSにLow出力を行う」と記載する。また、接地スイッチを遮断状態とすることを「信号線CSにHigh出力を行う」と記載する。なお、通信時に信号線CSを使用して伝搬する制御信号の内容や操作手順の詳細については後述する。
信号線DATAは、データの伝搬方向を切り換えながら使用可能な単線の双方向データ送信線である。信号線DATAは、交換レンズ100の入出力切り換えスイッチ1122を介してレンズマイコン111に接続可能である。また、信号線DATAは、カメラ200の入出力切り換えスイッチ2082を介してカメラマイコン205に接続可能である。また、信号線DATAは、中間アダプタ300の入出力切り換えスイッチ3032を介してアダプタマイコン302に接続可能である。各マイコンは、データを送信するためのデータ出力部(CMOS方式)とデータを受信するためのデータ入力部(CMOS方式)を備えている。各マイコンは、入出力切り換えスイッチを操作することで信号線DATAをデータ出力部に接続するかデータ入力部に接続するかを選択することができる。この構成により、信号線DATAがデータ出力部に接続するように入出力切り換えスイッチが操作されることで、交換レンズ100、カメラ200および中間アダプタ300はデータ送信が可能となる。一方、信号線DATAがデータ入力部に接続するように入出力切り換えスイッチが操作されることで、交換レンズ100、カメラ200および中間アダプタ300はデータ受信が可能となる。通信時における信号線DATAの入出力切り換え手順の詳細については後述する。
なお、図2では本発明における通信回路の一例について示したが、本発明はこれに限定されない。例えば、信号線CSをカメラ200内でGNDにプルダウン接続するとともに、接地スイッチ1121、接地スイッチ2081および接地スイッチ3031を介して不図示の電源に接続してもよい。また、信号線DATAは常に各マイコンのデータ入力部に接続される構成とし、信号線DATAと各データ出力部との接続/遮断をスイッチにより操作可能な構成としてもよい。
<通信データフォーマットの説明>
図3を参照して、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間でやり取りされるデータのフォーマットについて説明する。図3は、信号線DATAを使用して送受信されるデータのフォーマットを示す図である。なお、このフォーマットは、後述するブロードキャスト通信およびP2P通信で共通である。
通信データフォーマットとしては、あらかじめ相互で通信を行う通信速度を規定しておき、この規定に沿った通信ビットレートで送受信を行う、いわゆる調歩同期式通信を基本としている。通信ビットレートとは、1秒間に転送することができるデータ量を示し、単位はbps(bit per second)で表される。図3では、最小通信単位である1フレームデータの信号波形が示されている。データ送信を行っていない非送信状態では、信号レベルはHiで維持されている。データの送信開始をデータ受信側に通知するために、信号レベルを1ビット期間(スタートビットST)だけLowにする。次の2ビット目から9ビット目までの8ビット期間で1バイトのデータを送信する。データのビット配列はMSB(Most Significant Bit)ファーストフォーマットとして、最上位のデータD7から始まり、順にデータD6、データD5と続き、最下位のデータD0で終わる。続いて、10ビット目には1ビットのパリティー情報(PA)が付加され、最後に送信データの最後を示すために、信号レベルを1ビット期間(ストップビットSP)だけHiにすることで、スタートビットSTから開始された1フレームデータの送信期間が終了する。
なお、図3では、本発明におけるデータフォーマットの一例について記載したが、本発明はこれに限定されない。例えば、データのビット配列をLSB(Least Significant Bit)ファーストフォーマットとして、最下位のデータD0から始まり、順にデータD1、データD2と続き、最上位のデータD7で終わるようにしてもよい。また、本実施形態では、8ビット期間で1バイトのデータが送信されるが、8ビット以外のビット期間で1バイトのデータが送信されるようにしてもよい。また、パリティー情報を付加しなくてもよい。また、後述するブロードキャスト通信およびP2P通信でデータフォーマットを切り換えてもよい。
<ブロードキャスト通信の説明>
図4を参照して、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われるブロードキャスト通信の一例について説明する。図4は、ブロードキャスト通信における通信波形を示す図である。ブロードキャスト通信とは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302のうちの1つのマイコンから他のマイコンに対して同時にデータを送信する、1対多の一斉配信モードである。図4では、カメラマイコン205からレンズマイコン111およびアダプタマイコン302へのブロードキャスト通信に応答する形でアダプタマイコン302からカメラマイコン205およびレンズマイコン111へブロードキャスト通信を行う場合を示している。
まず、カメラマイコン205は、ブロードキャスト通信を開始することをレンズマイコン111およびアダプタマイコン302に通知するために、信号線CSへのLow出力を開始する。次に、カメラマイコン205は、信号線CSへのLOW出力の開始からインターバル時間(所定のインターバル時間、第4インターバル時間)Tbm1経過後に、送信するデータを信号線DATAに出力する。一方、レンズマイコン111とアダプタマイコン302は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する。なお、この時点ではすでにカメラマイコン205が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
レンズマイコン111およびアダプタマイコン302は、信号線CSにLow出力を行うことで、通信待機要求を通知する。通信待機要求は、カメラシステムにおける通信を一時停止させるためのものであり、信号線CSの信号レベルにより通信待機要求の有無が判断される。
カメラマイコン205は、ストップビットSPの出力まで終了した後、信号線CSへのLow出力を解除する。一方、レンズマイコン111とアダプタマイコン302は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および受信したデータに紐づけられた内部処理を行う。その後、レンズマイコン111とアダプタマイコン302は、次のデータを受信するための準備を整えた後、信号線CSへのLow出力を解除する。前述したように、信号線CSの信号レベルは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の全てが信号線CSへのLow出力を解除することでHiとなる。したがって、信号線CSの信号レベルがHiとなることを確認することで、全てのマイコンが今回の通信に関する処理を終了し、次の通信を行うための準備を整えたと判断することができる。
アダプタマイコン302は、信号線CSの信号レベルがHiに戻ったことを確認した後、ブロードキャスト通信を開始することをカメラマイコン205およびレンズマイコン111に通知するために、信号線CSへのLow出力を開始する。次に、アダプタマイコン302は、信号線CSへのLOW出力の開始からインターバル時間(所定のインターバル時間、第1インターバル時間)Tbs1経過後に、送信するデータを信号線DATAに出力する。一方、カメラマイコン205とレンズマイコン111は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する。なお、この時点ではすでにアダプタマイコン302が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
アダプタマイコン302は、ストップビットSPの出力まで終了した後、信号線CSへのLow出力を解除する。一方、カメラマイコン205とレンズマイコン111は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および受信したデータに紐づけられた内部処理を行う。その後、カメラマイコン205とレンズマイコン111は、次のデータを受信するための準備を整えた後、信号線CSへのLow出力を解除する。したがって、信号線CSの信号レベルはHiとなる。これにより、全てのマイコンが今回の通信に関する処理を終了し、次の通信を行うための準備を整えたと判断することができる。
以上説明したように、ブロードキャスト通信では、データ送信側が、信号線CSにLow出力を行い、信号線CSの信号レベルをHiからLowにすることで、ブロードキャスト通信の開始をデータ受信側に通知している。また、データ受信側は、信号線CSへの出力をLow出力からHigh出力に変化させることで、通信待機要求の解除をカメラシステムの各構成要素に通知している。
なお、図4では、ブロードキャスト通信の通信波形の一例について記載したが、本発明はこれに限定されない。例えば、一度のブロードキャスト通信で送信するデータを1バイトのデータでなく、複数バイトにしてもよい。
通信方式をブロードキャスト通信からP2P通信に切り替える場合は、カメラマイコン205からレンズマイコン111およびアダプタマイコン302に対して、通信方式の切り替えを指示するデータを送信すればよい。また、後述する通信相手指定データにブロードキャスト通信からP2P通信への切り替えコマンドとしての機能を持たせてもよい。
<P2P通信の説明>
図5を参照して、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われるP2P通信の一例について説明する。図5は、P2P通信における通信波形を示す図である。P2P通信とは、カメラマイコン205と、レンズマイコン111とアダプタマイコン302の中からカメラマイコン205により指定された1つのマイコンとの間のみでデータを送受信する、1対1の個別通信モードである。
図5では、ブロードキャスト通信からP2P通信への切り替わり後、またはP2P通信にて、レンズマイコン111にてデータが送信された後、再度P2P通信を行う場合を示している。P2P通信は、信号線CSの信号レベルがHiに変化した後、開始される。図5では、カメラマイコン205からの1バイトのデータ送信に応答する形でレンズマイコン111からカメラマイコン205に対して2バイトのデータ送信を行う場合を示している。
P2P通信では、データ送信側が、信号線CSにLow出力を行わず、信号線CSの信号レベルをHiに維持したままデータ受信側にデータを送信する。すなわち、カメラ200から交換レンズ100または中間アダプタ300にデータを送信する間の信号線CSの信号レベルを、ブロードキャスト通信とP2P通信とで異ならせている。
P2P通信が開始されると、まず、カメラマイコン205は、信号線CSの信号レベルがHiになったことを検出してからインターバル時間(所定のインターバル時間、第5インターバル時間)Tpm1経過後に、送信するデータを信号線DATAに出力する。カメラマイコン205は、ストップビットSPの出力まで終了した後、インターバル時間(所定のインターバル時間、第6インターバル時間)Tpm2経過後に信号線CSへのLow出力を行い、通信待機要求の通知を行う。その後、カメラマイコン205は、データ受信側としてデータを受信する準備が完了した後、信号線CSへのLow出力を解除する。
レンズマイコン111は、信号線CSから入力されたLow信号を検出した後、信号線DATAから入力された受信データの解析および受信したデータに紐づけられた内部処理を行う。レンズマイコン111は、信号線CSの信号レベルがHiになったことを検出してからインターバル時間(所定のインターバル時間、第2インターバル時間)Tps1経過後に、送信すべきデータを2バイト分連続で信号線DATAに出力する。レンズマイコン111は、2バイト目のストップビットSPの出力まで終了した後、インターバル時間(所定のインターバル時間、第3インターバル時間)Tps2経過後に信号線CSへのLow出力を行い、通信待機要求の通知を行う。その後、レンズマイコン111は、データ受信側としてデータを受信する準備が完了した後、信号線CSへのLow出力を解除する。
なお、P2P通信の通信相手として指定されていないアダプタマイコン302は、信号線CSおよび信号線DATAの操作には一切関与しない。
レンズマイコン111は、信号線CSへのLow出力を解除した後のカメラマイコン205からのデータ送信タイミングによって、P2P通信が継続されているのか、ブロードキャスト通信への切り替えが行われたのかを判断する。信号線CSの信号レベルがHiのままの状態で、カメラマイコン205からのデータを受信した場合、レンズマイコン111はP2P通信が継続されていると判断する。一方、信号線CSの信号レベルがLowに変化した後に、カメラマイコン205からのデータを受信した場合、レンズマイコン111はP2P通信からブロードキャスト通信に切り換えられたと判断する。
以上説明したように、P2P通信では、データ送信側が、信号線CSにLow出力を行い、信号線CSの信号レベルをHiからLowにすることで、データ送信側によるデータの送信が完了したことをデータ受信側に通知している。そのため、P2P通信では、データ送信側が信号線CSの信号レベルを変化させるまで、複数のデータフレームを連続して送信することができる。通信スレーブが1つのデータフレームを送信するごとに通信マスタからの通信が挿入されるシステム構成ではないため、カメラマイコン205と、レンズマイコン111やアダプタマイコン302等のアクセサリとの間の通信を高速に行うことができる。そして、データ送信側は、次の通信におけるデータ受信側としてのデータ受信準備が完了するまで、信号線CSの信号レベルをLowのままとすることで、通信待機要求を通知している。
なお、図5では、P2P通信の通信波形の一例について記載したが、本発明はこれに限定されない。例えば、送信するデータは1バイトずつや他のバイト数でもよい。
<通信方式の切り替えについての説明>
図6を参照して、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われるブロードキャスト通信とP2P通信の切り換え、およびP2P通信での通信相手の指定方法の一例について説明する。図6は、通信方式の切り換え時の通信波形を示す図である。P2P通信での通信相手の指定は、ブロードキャスト通信で行われる。以下の説明では、カメラマイコン205によりP2P通信の通信相手としてアダプタマイコン302が指定された後、カメラマイコン205からの送信1バイト、アダプタマイコン302からの送信1バイトのP2P通信が実行される。次に、カメラマイコン205によりP2P通信の通信相手としてレンズマイコン111が指定された後、カメラマイコン205からの送信2バイト、レンズマイコン111からの送信3バイトのP2P通信が実行される。
まず、カメラマイコン205は、図4を参照して説明した手順でブロードキャスト通信を実行する。このブロードキャスト通信で通知するのは、次のP2P通信でカメラマイコン205と通信を行う相手を指定する通信相手指定データである。レンズマイコン111およびアダプタマイコン302はそれぞれ、ブロードキャスト通信で受信した通信相手指定データに基づいて、P2P通信の通信相手として指定されたか否かを判断する。このブロードキャスト通信によって、カメラマイコン205および指定された通信スレーブはP2P通信に切り替わる。具体的には、アダプタマイコン302は、P2P通信への切り替えが完了すると、信号線CSにHigh出力を行うことで、通信方式の切り替え完了をカメラマイコン205に通知する。カメラマイコン205も、P2P通信への切り替えが完了すると、信号線CSにHigh出力を行う。本実施形態では、通信相手としてアダプタマイコン302が指定されているため、P2P通信では図5を参照して説明した手順でカメラマイコン205とアダプタマイコン302との間でデータの送受信が行われる。前述したように、まず、カメラマイコン205はアダプタマイコン302に1バイトデータを送信し、その後、アダプタマイコン302はカメラマイコン205に1バイトデータを送信する。
P2P通信における通信相手として選択されていないレンズマイコン111は通信相手指定データを受信した後、カメラマイコン205から受信したデータの解析や内部処理が終了した時点で信号線CSにHigh出力を行う。そして、カメラマイコン205とアダプタマイコン302との間でP2P通信が行われている間、信号線CSへの出力を変化させることなく、ブロードキャスト通信に対応した設定を維持する。
カメラマイコン205とアダプタマイコン302とのP2P通信が終了すると、カメラマイコン205はブロードキャスト通信によってP2P通信で通信する通信相手としてレンズマイコン111を指定する。このブロードキャスト通信によって、アダプタマイコン302はP2P通信を終了し、レンズマイコン111はP2P通信に切り替わる。なお、ブロードキャスト通信が実行されない場合、カメラマイコン205とアダプタマイコン302とのP2P通信は継続される。アダプタマイコン302は、カメラマイコン205からデータが送信される前に信号線CSの信号レベルがLowになったことにより、P2P通信からブロードキャスト通信への切り替えが実行されたことを認識する。P2P通信では、図5を参照して説明した手順でカメラマイコン205とレンズマイコン111との間でデータの送受信が行われる。前述したように、カメラマイコン205はレンズマイコン111に2バイトデータを送信し、その後、レンズマイコン111はカメラマイコン205に3バイトデータを送信する。
以上のように、ブロードキャスト通信によってP2P通信の通信相手を指定することが可能であり、同時にブロードキャスト通信とP2P通信の切り換えを行うことができる。
<ブロードキャスト通信における通信フローの説明>
図7Aおよび図7Bを参照して、ブロードキャスト通信における通信フローについて説明する。各マイコンは、コンピュータプログラムである通信制御プログラムに従って、図7Aまたは図7Bのフローチャートに沿って通信制御を行う。図7Aは、カメラマイコン205によるブロードキャスト通信における通信フローを説明するフローチャートである。図7Bは、レンズマイコン111およびアダプタマイコン302によるブロードキャスト通信における通信フローを説明するフローチャートである。
まず、カメラマイコン205の通信フローについて説明する。
ステップS100では、カメラマイコン205は、ブロードキャスト通信を開始するイベントが発生したか否かを判定する。イベントが発生した場合、ステップS101に進み、イベントが発生していない場合、ステップS100の判定を繰り返し行う。
ステップS101では、カメラマイコン205は、接地スイッチ2081をオン(接続)して信号線CSへのLow出力を開始する。これにより、レンズマイコン111およびアダプタマイコン302に対してブロードキャスト通信の開始が通知される。
ステップS102では、カメラマイコン205は、信号線CSへのLow出力の開始からインターバル時間Tbm1が経過したか否かを判定する。インターバル時間Tbm1が経過した場合、ステップS103に進み、インターバル時間Tbm1が経過していない場合、ステップS102の判定を繰り返し行う。
ステップS103では、カメラマイコン205は、入出力切り換えスイッチ2082を操作し、信号線DATAをカメラマイコン205のデータ出力部に接続する。
ステップS104では、カメラマイコン205は、データ送信を開始する。
ステップS105では、カメラマイコン205は、ステップS104で送信したデータに、送信要求コマンドが含まれるか否かを判定する。送信要求コマンドとは、通信マスタとしてのカメラマイコン205から送信されたデータを受信した通信スレーブに対して、カメラマイコン205へのデータ送信を要求するコマンドである。送信要求コマンドが含まれている場合、ステップS107に進み、送信要求コマンドが含まれていない場合、ステップS106に進む。
ステップS106では、カメラマイコン205は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。
ステップS107では、カメラマイコン205は、入出力切り換えスイッチ2082を操作し、信号線DATAをカメラマイコン205のデータ入力部に接続する。
ステップS108では、カメラマイコン205は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。
ステップS109では、カメラマイコン205は、信号線CSの信号レベルがHiであるか否かを判定する。信号線CSの信号レベルがHiである場合、カメラシステムが通信可能な状態であることを意味している。信号レベルがHiである場合、ステップS110に進み、信号レベルがHiでない場合、ステップS109の判定を繰り返す。
ステップS110では、カメラマイコン205は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS111に進み、信号レベルがLowでない場合、ステップS110の判定を繰り返す。
ステップS111では、カメラマイコン205は、信号線DATAからのデータ受信を許可する。
ステップS112では、カメラマイコン205は、信号線DATAからスタートビットの受信を検出したか否かを判断する。スタートビットの受信を検出した場合、ステップS113に進み、スタートビットの受信を検出していない場合、ステップS112の判定を繰り返す。
ステップS113では、カメラマイコン205は、接地スイッチ2081をオン(接続)して信号線CSへのLow出力を開始する。
ステップS114では、カメラマイコン205は、ストップビットを受信したか否か、すなわち全データを受信したか否かを判定する。ストップビットを受信した場合、ステップS115に進み、ストップビットを受信していない場合、ステップS114の判定を繰り返す。
ステップS115では、カメラマイコン205は、信号線DATAからのデータ受信を禁止し、受信したデータの解析や受信したデータに対応する内部処理を実行する。
ステップS116では、カメラマイコン205は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。
ステップS117では、カメラマイコン205は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS118に進み、信号レベルがHiでない場合、ステップS117の判定を繰り返す。
ステップS118では、カメラマイコン205は、ステップS104で送信したデータが、通信相手を指定する通信相手指定データであったか否かを判定する。通信相手指定データである場合、ステップS119に進み、通信相手指定データでない場合、本フローを終了する。
ステップS119では、カメラマイコン205は、P2P通信モードへの移行を行う。
次に、アダプタマイコン302の通信フローについて説明する。レンズマイコン111の通信フローは、アダプタマイコン302の通信フローとほぼ同じであるため、本実施形態では説明を省略する。
ステップS200では、アダプタマイコン302は、信号線CSの信号レベルがLowであるか否かを判定する。信号線CSの信号レベルがLowになることに応じて、カメラマイコン205からのデータ送信が開始される。信号レベルがLowである場合、ステップS201に進み、信号レベルがLowでない場合、ステップS200の判定を繰り返す。
ステップS201では、アダプタマイコン302は、ブロードキャスト通信として、信号線DATAからのデータ受信を許可する。
ステップS202では、アダプタマイコン302は、信号線DATAからスタートビットの受信を検出したか否かを判断する。スタートビットの受信を検出した場合、ステップS205に進み、スタートビットの受信を検出していない場合、ステップS203に進む。
ステップS203では、アダプタマイコン302は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS204に進み、信号レベルがHiでない場合、ステップS202に戻る。
ステップS204では、アダプタマイコン302は、信号線DATAからのデータ受信を禁止する。
ここで、ステップS203およびステップS204の処理を行うのは、カメラマイコン205とレンズマイコン111との間でP2P通信が行われ、アダプタマイコン302のみがブロードキャスト通信を行う状況に対応するためである。この状況では、アダプタマイコン302は、カメラマイコン205からデータを受信することはないため、ステップS204において信号線DATAからのデータの受信を禁止する。
信号線CSの信号レベルは、通常時はHiであり、ブロードキャスト通信においては、通信待機要求を通知する場合や、通信の開始を通知する場合にLowに設定される。また、P2P通信においては、通信待機要求を通知する場合にLowに設定される。
ステップS202において、アダプタマイコン302がカメラマイコン205からスタートビットを受信していない状況としては、以下の状況が考えられる。
1つ目の状況は、カメラマイコン205が信号線CSの信号レベルをLowにした後、データ送信を開始していない状況である。2つ目の状況は、カメラマイコン205とレンズマイコン111がP2P通信を行っており、アダプタマイコン302がP2P通信に関与していない状況である。
1つ目の状況の場合、信号線CSの信号レベルはHiにならないため、ステップS203からステップS202に戻り、カメラマイコン205からのデータ送信が開始されるまで、ステップS202およびステップS203の処理が繰り返される。
2つ目の状況の場合、カメラマイコン205とレンズマイコン111のいずれかが通信待機要求を通知していない限り、信号線CSの信号レベルはHiになっている。この状況では、基本的にはステップS203からステップS204に進み、信号線DATAからのデータの受信が禁止される。なお、P2P通信において、通信待機要求が通知されている場合、ステップS203からステップS202に戻り、再びステップS203の処理が行われる。ステップS203の処理が複数回実施されることはあるが、通信待機要求が解除され、信号線CSの信号レベルがHiになると、ステップS203からステップS204に進む。
以上のように、ステップS203およびステップS204の制御フローを追加することで、カメラシステムの中でブロードキャスト通信とP2P通信を併用することができる。本実施形態では、カメラマイコン205とレンズマイコン111との間でP2P通信を行う一方で、ブロードキャスト通信に対応した状態でアダプタマイコン302を待機させることができる。
ステップS205では、アダプタマイコン302は、受信したデータの解析や受信したデータに対応する内部処理を開始するとともに、接地スイッチ2081をオン(接続)して信号線CSにLow出力を行う。これにより、カメラシステムを構成する各構成要素に対して通信待機要求を通知する。
ステップS206では、アダプタマイコン302は、ストップビットを受信したか否か、すなわち全データを受信したか否かを判定する。ストップビットを受信した場合、ステップS207に進み、ストップビットを受信していない場合、ステップS206の判定を繰り返す。
ステップS207では、アダプタマイコン302は、信号線DATAからのデータ受信を禁止し、受信したデータの解析や受信したデータに対応する内部処理を継続する。解析や内部処理が完了し、次のデータ通信を実行可能な状態になると、ステップS208に進む。
ステップS208では、アダプタマイコン302は、接地スイッチ3031をオフ(遮断)して信号線CSへのLow出力を解除する。
ステップS209では、アダプタマイコン302は、ステップS206で受信したデータに、送信要求コマンドが含まれるか否かを判定する。送信要求コマンドが含まれている場合、ステップS210に進み、送信要求コマンドが含まれていない場合、ステップS215に進む。
ステップS210では、アダプタマイコン302は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、カメラシステムが通信可能な状態であることを意味している。信号レベルがHiである場合、ステップS211に進み、信号レベルがHiでない場合、ステップS210の判定を繰り返す。
ステップS211では、アダプタマイコン302は、接地スイッチ3031をオン(接続)して信号線CSへのLow出力を開始する。これにより、カメラマイコン205およびレンズマイコン111に対してブロードキャスト通信の開始を通知する。
ステップS212では、アダプタマイコン302は、信号線CSへのLow出力の開始からインターバル時間Tbs1が経過したか否かを判定する。インターバル時間Tbs1が経過した場合、ステップS213に進み、インターバル時間Tbs1が経過していない場合、ステップS212の判定を繰り返し行う。
ステップS213では、アダプタマイコン302は、入出力切り換えスイッチ3032を操作し、信号線DATAをアダプタマイコン302のデータ出力部に接続する。
ステップS214では、アダプタマイコン302は、データ送信を開始する。
ステップS215では、アダプタマイコン302は、接地スイッチ3031をオフ(遮断)して信号線CSへのLow出力を解除する。
ステップS216では、アダプタマイコン302は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS217に進み、信号レベルがHiでない場合、ステップS216の判定を繰り返す。
ステップS217では、アダプタマイコン302は、ステップS206で受信したデータが通信相手指定データであり、かつ、自身がP2P通信におけるカメラマイコン205の通信相手として選択された、すなわちスレーブ指定されたか否かを判定する。受信したデータが通信相手指定データであり、かつ、自身がP2P通信におけるカメラマイコン205の通信相手として選択された場合、ステップS218に進む。受信したデータが通信相手指定データでない場合、またはP2P通信におけるカメラマイコン205の通信相手として選択されていない場合、本フローを終了する(ブロードキャスト通信が継続される。
ステップS218では、アダプタマイコン302は、信号線DATAからのデータの受信を許可する。
ステップS219では、アダプタマイコン302は、ブロードキャスト通信からP2P通信への移行を行う。
<P2P通信における通信フローの説明>
図8Aおよび図8Bを参照して、P2P通信における通信フローについて説明する。各マイコンは、コンピュータプログラムである通信制御プログラムに従って、図8Aまたは図8Bのフローチャートに沿って通信制御を行う。図8Aは、カメラマイコン205によるP2Pブロードキャスト通信における通信フローを説明するフローチャートである。図8Bは、レンズマイコン111およびアダプタマイコン302によるP2Pブロードキャスト通信における通信フローを説明するフローチャートである。
まず、図10Aを参照して、カメラマイコン205における通信フローについて説明する。図10Aは、カメラマイコン205によるP2P通信における通信フローを示す図である。
まず、カメラマイコン205がレンズマイコン111とP2P通信を行う場合の通信フローについて説明する。
ステップS300では、カメラマイコン205は、P2P通信を開始するイベントが発生したか否かを判定する。イベントが発生した場合、ステップS301に進み、イベントが発生していない場合、ステップS300の判定を繰り返し行う。
ステップS300では、カメラマイコン205は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、データの送信が可能な状態であることを示している。信号レベルがHiである場合、ステップS301に進み、信号レベルがHiでない場合、ステップS300の判定を繰り返す。
ステップS301では、カメラマイコン205は、信号線CSの信号レベルがHiになってからインターバル時間Tpm1が経過したか否かを判定する。インターバル時間Tpm1が経過した場合、ステップS302に進み、インターバル時間Tpm1が経過していない場合、ステップS301の判定を繰り返し行う。
ステップS302では、カメラマイコン205は、入出力切り替えスイッチ2082を動作させることで、信号線DATAをカメラマイコン205のデータ出力部に接続する。
ステップS303では、カメラマイコン205は、データ送信を開始する。
ステップS304では、カメラマイコン205は、データ送信が完了してからインターバル時間Tpm2が経過したか否かを判定する。インターバル時間Tpm2が経過した場合、ステップS305に進み、インターバル時間Tpm2が経過していない場合、ステップS304の判定を繰り返し行う。
ステップS305では、カメラマイコン205は、信号線CSにLow出力を行い、信号線CSの信号レベルをLowにする。これにより、カメラマイコン205は、レンズマイコン111に対して通信待機要求を行う。信号レベルがLowである間、レンズマイコン111はカメラマイコン205に対するデータ送信を行わない。
ステップS306では、カメラマイコン205は、ステップS303で送信したデータに、送信要求コマンドが含まれるか否かを判定する。送信要求コマンドが含まれている場合、ステップS309に進み、送信要求コマンドが含まれていない場合、ステップS307に進む。送信要求コマンドが含まれない場合、レンズマイコン111からデータが送信されることはない。
ステップS307では、カメラマイコン205は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。
ステップS308では、カメラマイコン205は、信号線CSの信号レベルがLowであるか否か、すなわちレンズマイコン111が通信待機要求を通知しているか否かを判定する。信号レベルがLowである場合、ステップS313に進み、信号レベルがLowでない場合、ステップS308の判定を繰り返す。
ステップS309では、カメラマイコン205は、入出力切り換えスイッチ2082を操作し、信号線DATAをカメラマイコン205のデータ入力部に接続する。
ステップS310では、カメラマイコン205は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。カメラマイコン205は、信号線CSの信号レベルがHiの状態で、レンズマイコン111からのデータ受信を行う。
ステップS311では、カメラマイコン205は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS312に進み、信号レベルがLowでない場合、ステップS311の判定を繰り返す。
ステップS312では、カメラマイコン205は、信号線DATAから受信したデータの解析を行う。
ステップS313では、カメラマイコン205は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、レンズマイコン111がデータ通信可能な状態であることを意味している。信号レベルがHiである場合、ステップS314に進み、信号レベルがHiでない場合、ステップS313の判定を繰り返す。
ステップS314では、カメラマイコン205は、ブロードキャスト通信への移行イベントが発生したか否かを判定する。イベントが発生した場合、ステップS315に進み、イベントが発生していない場合、本フローを終了する(P2P通信が継続して行われる)。
ステップS315では、カメラマイコン205は、ブロードキャスト通信モードへの移行を行う。
次に、レンズマイコン111の通信フローについて説明する。アダプタマイコン302の通信フローは、レンズマイコン111の通信フローとほぼ同じであるため、本実施形態では説明を省略する。
ステップS400では、レンズマイコン111は、カメラマイコン205から送信されるデータを、信号線DATAを介して受信する。レンズマイコン111がデータを受信している間、信号線CSの信号レベルはHiに保たれている。
ステップS401では、レンズマイコン111は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS402に進み、信号レベルがLowでない場合、ステップS401の判定を繰り返す。
ステップS402では、レンズマイコン111は、信号線DATAから受信したデータの解析を行う。
ステップS403では、レンズマイコン111は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがLowである場合、カメラマイコン205が通信待機要求を通知している状態であることを意味している。信号レベルがHiである場合、ステップS404に進み、信号レベルがHiでない場合、ステップS403の判定を繰り返す。
ステップS404では、レンズマイコン111は、ステップS403で受信したデータに、送信要求コマンドが含まれるか否かを判定する。送信要求コマンドが含まれている場合、ステップS407に進み、送信要求コマンドが含まれていない場合、ステップS405に進む。
ステップS405では、レンズマイコン111は、受信したデータの解析や受信したデータに対応する内部処理を開始するとともに、接地スイッチ1121をオン(接続)して信号線CSへのLow出力を開始する。これにより、カメラマイコン205に対して通信待機要求を通知する。
ステップS406では、レンズマイコン111は、接地スイッチ1121をオフ(遮断)して信号線CSへのLow出力を解除する。
ステップS407では、レンズマイコン111は、信号線CSの信号レベルがHiになってからインターバル時間Tps1が経過したか否かを判定する。インターバル時間Tps1が経過した場合、ステップS408に進み、インターバル時間Tps1が経過していない場合、ステップS407の判定を繰り返し行う。
ステップS408では、レンズマイコン111は、入出力切り換えスイッチ1122を操作し、信号線DATAをレンズマイコン111のデータ出力部に接続する。
ステップS409では、レンズマイコン111は、データ送信を開始する。
ステップS410では、レンズマイコン111は、データ送信が完了してからインターバル時間Tps2が経過したか否かを判定する。インターバル時間Tps2が経過した場合、ステップS411に進み、インターバル時間Tps2が経過していない場合、ステップS410の判定を繰り返し行う。
ステップS411では、レンズマイコン111は、接地スイッチ1121をオン(接続)して信号線CSへのLow出力を開始する。これにより、カメラマイコン205に対して通信待機要求を通知する。信号レベルがLowの間、カメラマイコン205はレンズマイコン111に対するデータ送信を行わない。
ステップS412では、レンズマイコン111は、入出力切り換えスイッチ1122を操作し、信号線DATAをレンズマイコン111のデータ入力部に接続する。
ステップS413では、レンズマイコン111は、接地スイッチ1121をオフ(遮断)して信号線CSへのLow出力を解除する。
ステップS414では、レンズマイコン111は、信号線CSの信号レベルがHiであるか否かを判定する。信号線CSの信号レベルがHiである場合、カメラマイコン205およびレンズマイコン111が通信可能な状態であることを意味している。信号レベルがHiである場合、本フローを終了し、信号レベルがHiでない場合、ステップS414の判定を繰り返し行う。
以上説明したように、カメラ200から、交換レンズ100および中間アダプタ300等のアクセサリにデータを送信する間の信号線CSの信号レベルを、ブロードキャスト通信とP2P通信とで異ならせている。このようなシステムにより、カメラ200が特定のアクセサリと個別に通信を行う場合に、通信相手が変更されるまでは通信相手を改めて通知する必要がない。したがって、カメラ200と、交換レンズ100や中間アダプタ300等のアクセサリとの間の通信を高速に行うことができる。
また、信号線CSの変化とデータ通信とのタイミング間に適切なインターバル時間を設けることで、カメラ200とアクセサリとの間で通信方式の誤認識を防ぐことができるため、通信品質の高い通信を実現できる。
なお、本実施形態で説明したブロードキャスト通信方式およびP2P通信方式における信号線の信号レベルの変化を全て逆にしてもよい。この場合でも、本発明の効果を得ることは可能である。
<変形例>
以下、図9を参照して、図4で説明したブロードキャスト通信における通信制御方法とは異なる通信制御方法について説明する。図4で説明したブロードキャスト通信では、カメラマイコン205が信号線CSにLow出力を行って、信号線CSの信号レベルをLowにすることでブロードキャスト通信の開始を各通信スレーブに通知する。
図9では、レンズマイコン111やアダプタマイコン302が、ブロードキャスト通信の開始をカメラマイコン205にリクエストする態様が示されている。カメラマイコン205への通信リクエストは、カメラマイコン205からアクセサリのマイコンへの通信が一時停止された状態において、アクセサリのマイコンが、カメラマイコン205との通信を主体的に再開させる場合に実行される。
本変形例は、例えば、中間アダプタ300に設けられた操作部材304がユーザによって操作された場合に実行される。交換レンズ100に設けられた操作リング130がユーザによって操作された場合にも実行される。カメラシステムにおいて、通信が一時停止された状態から通信を再開させる場合、基本的には、カメラマイコン205が主体的に通信を再開させることが適切である。アクセサリのマイコンに通信を再開させる機能を持たせることは、カメラシステムにおいて、予期しないタイミングでの通信再開が行われるおそれがある。そのため、通信スレーブに対して、無制限に通信を再開させる機能を持たせることは好ましくない。
そこで、本変形例では、アクセサリのマイコンが、カメラマイコン205への通信開始リクエストを行うという形で、アクセサリのマイコンに、通信を再開させる機能を持たせている。
図9は、本変形例のブロードキャスト通信における通信波形を示す図である。本変形例の通信制御方法では、レンズマイコン111やアダプタマイコン302が、通信イベントの発生の有無を監視している。通信イベントが発生した場合、信号線CSにLow出力を行うことで信号線CSの信号レベルをLowにする。
カメラマイコン205は、信号線CSの信号レベルがLowになったことに応じて、信号線CSにLow出力を行った上でブロードキャスト通信を開始する。このとき、カメラマイコン205は、信号線CSの信号レベルがLowになってからインターバル時間Tbm2経過後に、送信するデータを信号線DATAに出力する。データを信号線DATAに出力した後のブロードキャスト通信のフローは、図4で説明したフローと同じであるため、ここでの説明は省略する。
以上説明した実施例は、信号線CSと信号線DATAを含む信号線に加え、別の信号線と併用可能である。その一例を、図10を参照して説明する。図10は、その他の信号線について説明する図である。図10において、図1と同一の部材には同一の符号を付し、重複する説明は省略する。また、図10において、図1に記載されている部材の一部の図示を省略している。信号線CSおよび信号線DATAは、第3通信という通信用の信号線である。
レンズマイコン111は、レンズ通信部112に加え、第1通信を行うための通信部132および第2通信を行うための通信部133を制御する。カメラマイコン205は、カメラ通信部208に加え、第1通信を行うための通信部209および第2通信を行うための通信部210を制御する。
まず、第1通信について説明する。第1通信は、通信部132および通信部209を介して行われる。通信部132および通信部209はそれぞれ、レンズマイコン111およびカメラマイコン205からの指示に基づいて、信号線CS1,DCL,DLCを介して通信を行う。信号線CS1は、カメラ200から交換レンズ100への通信要求の通知等に用いられる。信号線DCLは、カメラ200から交換レンズ100にデータを送信する際に用いられる。信号線DLCは、交換レンズ100からカメラ200にデータを送信する際に用いられる。通信部132および通信部209は、信号線CS1の信号レベル、および調歩同期通信の際の通信レート(単位時間当たりのデータ量)や通信電圧を設定する。また、通信部132および通信部209は、レンズマイコン111およびカメラマイコン205からの指示を受けて、信号線DCL,DLCを介したデータの送受信を行う。
カメラマイコン205およびレンズマイコン111は、第1通信では、クロック同期通信または調歩同期通信により通信を行う。交換レンズ100がカメラ200に接続された際に行われる初期通信も、まずは第1通信により行われる。カメラマイコン205およびレンズマイコン111は交換レンズ100の識別情報を通信し、カメラ200に装着された交換レンズ100が調歩同期通信に対応可能であることが判明すると、クロック同期通信から調歩同期通信に通信方式を切り替える。また、識別情報の通信の結果、カメラマイコン205は、交換レンズ100が、中間アダプタ300も含めて通信を行う第3通信に対応可能かどうかを識別してもよい。カメラマイコン205は、交換レンズ100が第3通信に対応可能であると判断した場合、交換レンズ100や中間アダプタ300を認識するための認証通信を、P2P通信を介して行ってもよい。
次に、第2通信について説明する。第2通信は、交換レンズ100からカメラ200への一方向の通信であり、通信部133および通信部210を介して行われる。通信部133および通信部210はそれぞれ、レンズマイコン111およびカメラマイコン205からの指示に基づいて、信号線CS2,DLC2を介して通信を行う。カメラマイコン205およびレンズマイコン111は、第2通信では、クロック同期通信または調歩同期通信により通信を行う。第1通信の信号線DLCとともに第2通信の信号線DLC2を用いることで、交換レンズ100からカメラ200に対して大量のデータを短時間で送信することが可能となる。
<インターバル時間の説明>
図11を参照して、インターバル時間について説明する。図11は、各ノードの信号線CSの信号検出タイミングを説明する図である。
本実施形態の通信を行うカメラおよびアクセサリを、ノードと定義する。また、信号線CSに信号出力を行うノードをノード0、それ以外のノードをノード1、ノード2と定義する。例えば、図11(a)の場合、図4が示す例ではノード0がカメラ200であり、ノード1、ノード2がそれぞれ中間アダプタ300、交換レンズ100となる。
図11(a)は、信号線CSの信号レベルがHiからLowに変化した場合を示している。図11(a)の「CS」は、信号線CSの信号変化を示している。通信を全ノードで正しく行うために、信号線CSの信号レベルがLowであると判定するための電圧があらかじめ定められている。ここで、信号線CSの信号レベルがLowであると判断する電圧範囲の上限をCS Low検出レベルLcslmax、下限をCS Low検出レベルLcslminと定義する。本実施形態では、ノード1が、信号線CSの信号レベルがLowであると判断する信号レベルをCS Low検出レベルLcslmaxとしている。また、ノード2が、信号線CSの信号レベルがLowであると判断する信号レベルをCS Low検出レベルLcslminとしている。
ノード0が、信号線CSにLow出力を行うタイミングをTcsl1とすると、信号線CSのインピーダンスの関係で徐々に、信号線CSの信号レベルが変化する。
図11(a)に示されるように、信号線CSの信号レベルが、CS Low検出レベルLcslmaxと一致したタイミングTcsl2にて、ノード1は信号線CSの信号レベルがLowになったと判断する。また、信号線CSの信号レベルが、CS Low検出レベルLcslminと一致したタイミングTcsl3にて、ノード2は信号線CSの信号レベルがLowとなったと判断する。
ここで、タイミングTcsl1からタイミングTcsl3までの時間をインターバル時間TΔcsl1と定義する。ノード0が信号線CSにLow出力を行ってから時間TΔcsl1だけ経過すると、すべてのノードは信号線CSの信号レベルがLowであると判断できる。
また、タイミングTcsl2からタイミングTcsl3までの時間をインターバル時間TΔcsl2と定義する。ノード1のCS Low検出レベルがCS Low検出レベルLcslmaxである場合、信号線CSへのLow出力を検出してからインターバル時間TΔcsl2だけ経過すると、すべてのノードが信号線CSの信号レベルがLowであると判断できる。
インターバル時間TΔcsl1,TΔcsl2を考慮せず、信号線DATAにデータを送信すると、データ通信タイミングと信号線CSの信号レベルとの関係がノード間で異なる見解となり、正しく通信を行うことができなくなる。
図11(b)は、信号線CSの信号レベルがLowからHiに変化した場合を示している。図11(b)の「CS」は、信号線CSの信号変化を示している。通信を全ノードで正しく行うために、信号線CSの信号レベルがHiであると判定するための電圧があらかじめ定められている。ここで、信号線CSの信号レベルがHiであると判断する電圧範囲の上限をCS High検出レベルLcshmax、下限をCS High検出レベルLcshminと定義する。
ここで、タイミングTcsh1からタイミングTcsh3までの時間をインターバル時間TΔcsh1と定義する。ノード0が信号線CSにHigh出力を行ってからインターバル時間TΔcsh1だけ経過すると、すべてのノードは信号線CSの信号レベルがHiであると判断できる。
また、タイミングTcsh2からタイミングTcsh3までの時間をインターバル時間TΔcsh2とする。ノード1のCS High検出レベルがCS High検出レベルLcshminである場合、信号線CSへのHigh出力を検出してからインターバル時間TΔcsh2だけ経過すると、すべてのノードは信号線CSの信号レベルがLowであると判断できる。
本実施形態では、前述した所定のインターバル時間が、信号線CSの信号レベルが変化するまでの間の信号レベルの変化の時定数(信号線CSの信号レベルの変化時の時定数、信号変化時間)より長くなるように設定されている。
なお、信号レベルがHighからLowに切り替わる場合、信号線CSが接地されるため、回路的に電圧変化を俊敏に行うことができる。そのため、信号レベルの変化がLowからHighに変わる場合に比べて時間を短くすることが可能である。したがって、信号線CSの信号レベルがHighからLowに切り替わる場合と、LowからHighに切り替わる場合で所定のインターバル時間を変化させればよい。具体的には、信号レベルがHighからLowに変化した後の所定のインターバル時間を、信号レベルがHighからLowに変化した後の所定のインターバル時間より短くすればよい。
図12は、各ノードの発振誤差(発振誤差時間)による影響を説明する図である。図12では、時間TΔcsl1,TΔcsl2と、ノード0が実際にインターバル時間TΔcsl1として計測した時間であるTΔcsl1-0、ノード1が実際に時間TΔcsl2として計測したインターバル時間TΔcsl2-1との関係を示している。時間TΔcsl1-0,TΔcsl2-1はそれぞれ、インターバル時間TΔcsl1,TΔcsl2に対して、短い時間として計測されている。これは、時間測定を行っているマイコンの発振子または振動子の発振誤差に応じて発生する。発振誤差は、発振子または振動子の個体バラつきや温度変化によって変化する。したがって、インターバル時間に対して、各ノードは発振誤差に基づく乗算値IErrGainを乗算した値をインターバル時間として使用する必要がある。ここで、乗算値IErrGainは、あらかじめ定められた値が使用される。また、通信にて発信誤差情報をノード間で共有し、一番発振誤差の大きいものに応じて乗算値IErrGainを決定してもよい。
インターバル時間Tbm1,Tbm2,Tbs1,Tpm1,Tpm2,Tps1,Tps2はそれぞれ、以下の式(1)~(7)で表すことができる。
ここで、各ノードが信号線CSの信号レベルを検出後、データ受信処理に切り替えるための時間(データ受信処理の送受信切り替え時間)をTch1と定義する。時間Tch1は、接続された全ノードの中で、データ受信処理に切り替えるための時間が一番長い時間となる。また、データ受信完了後、信号線CSの信号変化を検出できる状態になるまでの時間(信号線CSの変化検出を準備するための時間)をTch2と定義する。時間Tch2は、接続された全ノードの中で、データ受信完了後、信号線CSの信号変化を検出できる状態になるまでの時間が一番長い時間となる。時間Tch1,Tch2は、あらかじめ決められた値が使用される。また、通信にて、信号線CSの信号レベルの検出後、データ受信処理に切り替えるための時間、データ受信完了後、信号線CSの信号変化を検出できる状態になるまでの時間を共有し、一番長い時間に応じて時間Tch1,Tch2を決定してもよい。
Tbm1=(TΔcsl1+Tch1)×IErrGain (1)
Tbm2=(TΔcsl2+Tch1)×IErrGain (2)
Tbs1=(TΔcsl1+Tch1)×IErrGain (3)
Tpm1=(TΔcsh2+Tch1)×IErrGain (4)
Tpm2=Tch2×IErrGain (5)
Tps1=(TΔcsh2+Tch1)×IErrGain (6)
Tps2=Tch2×IErrGain (7)
以上説明したように、適切なインターバル時間を設定することで、全ノード間で信号線通CSの信号レベルと、データ受信タイミングとの関係が一致し、ノード間による通信方式の誤認識を防ぎ、安定的な通信を実現できる。
[その他の実施例]
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。