(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-04
(45)【発行日】2024-10-15
(54)【発明の名称】撮像装置、アクセサリ装置および制御方法
(51)【国際特許分類】
G03B 17/14 20210101AFI20241007BHJP
H04N 23/66 20230101ALI20241007BHJP
【FI】
G03B17/14
H04N23/66
(21)【出願番号】P 2020155591
(22)【出願日】2020-09-16
【審査請求日】2023-09-12
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】杉山 和道
【審査官】門田 宏
(56)【参考文献】
【文献】特開2018-205719(JP,A)
【文献】特開2017-181838(JP,A)
【文献】特開2020-038345(JP,A)
【文献】特開2017-182002(JP,A)
【文献】米国特許出願公開第2020/0096840(US,A1)
【文献】米国特許出願公開第2017/0289425(US,A1)
【文献】中国特許出願公開第110720208(CN,A)
【文献】中国特許出願公開第107277311(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G03B 17/14
G02B 7/02-7/08
G03B 17/56
H04N 23/66
(57)【特許請求の範囲】
【請求項1】
撮像装置に取り外し可能に装着されるアクセサリ装置であって、
1フレーム単位のデータの第1の端子を介した送信に応じて第2の端子を介した通知を送信
する、または、1フレーム単位のデータの前記第1の端子を介した受信に応じて前記第2の端子を介した通知を受信する第1
の通信モードと、複数フレームを含むブロック単位のデータの前記第1
の端子を介した送信に応じて前記第2の端子を介した通知を受信
する第2の通信モードと、による通信を制御する制御手段を有し、
前記制御手段は、
前記第1の通信モードにて前記第1の端子を介した前記第2の通信モードへ移行するためのコマンドの受信及び前記第2の端子を介した通知の受信の後に、前記第2の通信モードにてブロック単位のデータを前記第1の端子を介して送信
することを特徴とするアクセサリ装置。
【請求項2】
前記制御手段は、前記ブロックのデータサイズを示す情報を前記第1の通信モードによって
前記コマンドよりも前に受信し、当該情報に基づくサイズのブロック単位のデータを前記第1の
端子を介して送信することを特徴とする請求項1に記載のアクセサリ装置。
【請求項3】
前記制御手段は、第1のブロックと前記第1のブロックの次の第2のブロックとの間の時間間隔を示す情報を前記第1の通信モードによって
前記コマンドよりも前に受信し、当該情報に基づく時間間隔でブロック単位のデータを前記第1の端子を介して送信することを特徴とする請求項1又は請求項2に記載のアクセサリ装置。
【請求項4】
前記制御手段は、前記ブロックの数を示す情報を前記第1の通信モードによって
前記コマンドよりも前に受信し、当該情報に基づく数のブロックを前記第1の端子を介して送信することに応じて前記第2の端子を介した通知を受信すること特徴とする請求項1乃至請求項3のいずれか1項に記載のアクセサリ装置。
【請求項5】
1フレームのデータは、スタートビットと8ビットのデータとストップビットとを有することを特徴とする請求項1乃至請求項4のいずれか1項に記載のアクセサリ装置。
【請求項6】
アクセサリ装置を取り外し可能に装着できる撮像装置であって、
1フレームの単位のデータの第1の端子を介した受信に応じて第2の端子を介した通知を受信
する、または、1フレームの単位のデータの前記第1の端子を介した送信に応じて前記第2の端子を介した通知を送信する第1
の通信モードと、複数フレームを含むブロック単位のデータの前記第1
の端子を介した受信に応じて前記第2の端子を介した通知を送信
する第2の通信モードと、による通信を制御する制御手段を有し、
前記制御手段は、
前記第1の通信モードにて前記第1の端子を介した前記第2の通信モードへ移行するためのコマンドの送信及び前記第2の端子を介した通知の送信の後に、前記第2の通信モードに
てブロック単位のデータを前記第1の端子を介して受信
することを特徴とする撮像装置。
【請求項7】
前記制御手段は、前記ブロックのデータサイズを示す情報を前記第1の通信モードによって
前記コマンドよりも前に送信し、当該情報に基づくサイズのブロック単位のデータを前記第1の
端子を介して受信することを特徴とする請求項6に記載の撮像装置。
【請求項8】
前記制御手段は、第1のブロックと前記第1のブロックの次の第2のブロックとの間の時間間隔を示す情報を前記第1の通信モードによって
前記コマンドよりも前に送信し、当該情報に基づく時間間隔でブロック単位のデータを前記第1の端子を介して受信することを特徴とする請求項6又は請求項7に記載の撮像装置。
【請求項9】
前記制御手段は、前記ブロックの数を示す情報を前記第1の通信モードによって
前記コマンドよりも前に送信し、当該情報に基づく数のブロックを前記第1の端子を介して受信することに応じて前記第2の端子を介した通知を送信すること特徴とする請求項6乃至請求項8のいずれか1項に記載の撮像装置。
【請求項10】
1フレームのデータは、スタートビットと8ビットのデータとストップビットとを有することを特徴とする請求項6乃至請求項9のいずれか1項に記載の撮像装置。
【請求項11】
1フレーム単位のデータの第1の端子を介した送信に応じて第2の端子を介した通知を送信
する、または、1フレーム単位のデータの前記第1の端子を介した受信に応じて前記第2の端子を介した通知を受信する第1
の通信モードと、複数フレームを含むブロック単位のデータの前記第1
の端子を介した送信に応じて前記第2の端子を介した通知を受信
する第2の通信モードと、による通信を制御する通信制御ステップを有し、
前記通信制御ステップでは、
前記第1の通信モードにて前記第1の端子を介した前記第2の通信モードへ移行するためのコマンドの受信及び前記第2の端子を介した通知の受信の後に、前記第2の通信モードに
てブロック単位のデータを前記第1の端子を介して送信
することを特徴とするアクセサリ装置の制御方法。
【請求項12】
アクセサリ装置を装着可能な撮像装置の制御方法であって、
1フレーム単位のデータの第1の端子を介した受信に応じて第2の端子を介した通知を受信
する、または、1フレームの単位のデータの前記第1の端子を介した送信に応じて前記第2の端子を介した通知送信する第1
の通信モードと、複数フレームを含むブロック単位のデータの前記第1
の端子を介した受信に応じて前記第2の端子を介した通知を送信
する第2の通信モードと、による通信を制御する通信制御ステップを有し、
前記通信制御ステップでは、
前記第1の通信モードにて前記第1の端子を介した前記第2の通信モードへ移行するためのコマンドの送信及び前記第2の端子を介した通知の送信の後に、前記第2の通信モードに
てブロック単位のデータを前記第1の端子を介して受信
することを特徴とする撮像装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、相互に通信を行う撮像装置と中間アダプタまたは交換レンズ等のアクセサリ装置、およびこれらの制御方法に関するものである。
【背景技術】
【0002】
カメラ本体と、カメラ本体に装着されるアクセサリ装置との間で通信を行う技術が知られている。
【0003】
特許文献1には、カメラ本体が、マウント部に設けられた接点を介して、カメラ本体に装着される交換レンズや、交換レンズとカメラ本体との間に装着される中間アダプタとの間で通信を行う技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
撮像制御の高度化や高フレームレート化も相まって通信されるデータ量が増加する傾向にあり、より多くのデータをより短時間で通信する技術が求められている。
【0006】
本発明は、より多くのデータをより短時間で通信することができる撮像装置、アクセサリ装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一側面は、撮像装置に取り外し可能に装着されるアクセサリ装置であって、1フレーム単位のデータの第1の端子を介した送信に応じて第2の端子を介した通知を送信する、または、1フレーム単位のデータの前記第1の端子を介した受信に応じて前記第2の端子を介した通知を受信する第1の通信モードと、複数フレームを含むブロック単位のデータの前記第1の端子を介した送信に応じて前記第2の端子を介した通知を受信する第2の通信モードと、による通信を制御する制御手段を有し、
前記制御手段は、前記第1の通信モードにて前記第1の端子を介した前記第2の通信モードへ移行するためのコマンドの受信及び前記第2の端子を介した通知の受信の後に、前記第2の通信モードにてブロック単位のデータを前記第1の端子を介して送信することを特徴とする。
【0008】
また、本発明の別側面は、アクセサリ装置を取り外し可能に装着できる撮像装置であって、1フレームの単位のデータの第1の端子を介した受信に応じて第2の端子を介した通知を受信する、または、1フレームの単位のデータの前記第1の端子を介した送信に応じて前記第2の端子を介した通知を送信する第1の通信モードと、複数フレームを含むブロック単位のデータの前記第1の端子を介した受信に応じて前記第2の端子を介した通知を送信する第2の通信モードと、による通信を制御する制御手段を有し、前記制御手段は、前記第1の通信モードにて前記第1の端子を介した前記第2の通信モードへ移行するためのコマンドの送信及び前記第2の端子を介した通知の送信の後に、前記第2の通信モードにてブロック単位のデータを前記第1の端子を介して受信することを特徴とする。
【発明の効果】
【0009】
本発明によれば、より多くのデータをより短時間で通信することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の撮像装置およびアクセサリ装置を含むカメラシステムの構成を示すブロック図である。
【
図2】本発明のカメラシステムにおける通信回路を示す概略図である。
【
図3】本発明において送受信されるデータのフォーマットを示す図である。
【
図4】ブロードキャスト通信における通信波形を示す図である。
【
図5】PSP通信における通信波形を示す図である。
【
図6】通信方式の切り換え時の通信波形を示す図である。
【
図7】通信マスタによるブロードキャスト通信における通信フローを説明するフローチャートである。
【
図8】通信スレーブによるブロードキャスト通信における通信フローを説明するフローチャートである。
【
図9】通信マスタによるPSP通信における通信フローを説明するフローチャートである。
【
図10】通信スレーブによるPSP通信における通信フローを説明するフローチャートである。
【
図11】スレーブ送信のP2Pバースト通信の通信波形を示す図である。
【
図12】通信マスタによるスレーブ送信のP2Pバースト通信における通信フローを説明するフローチャートである。
【
図13】通信スレーブによるスレーブ送信のP2Pバースト通信における通信フローを説明するフローチャートである。
【
図14】マスタ送信のP2Pバースト通信の通信波形を示す図である。
【
図15】通信マスタによるマスタ送信のP2Pバースト通信における通信フローを説明するフローチャートである。
【
図16】通信スレーブによるマスタ送信のP2Pバースト通信における通信フローを説明するフローチャートである。
【
図17】ブロードキャスト通信における通信波形を示す図である。
【
図18】スレーブ送信のP2Pバースト通信の通信波形を示す図である。
【
図19】通信マスタによるスレーブ送信のP2Pバースト通信における通信フローを説明するフローチャートである。
【
図20】通信スレーブによるスレーブ送信のP2Pバースト通信における通信フローを説明するフローチャートである。
【
図21】通知チャネルとデータ通信チャネルを用いた通信方式の通信波形を示す図である。
【
図22】通知兼データチャネルを用いた通信方式の通信波形を示す図である。
【
図23】第二通信の概念図および通信波形を示す図である。
【
図24】アクセサリ装置との初期通信処理からP2Pバースト通信によるアクセサリ装置からのデータ受信までの流れを示すフローチャートである。
【
図25】カメラと交換レンズの第二通信による初期通信処理の流れを示すフローチャートである。
【
図26】カメラとアクセサリ装置の第一通信による初期通信処理の流れを示すフローチャートである。
【
図27】P2Pバースト通信の対応情報を取得し、P2Pバースト通信の設定を行う流れを示すフローチャートである。
【
図28】P2Pバースト通信の設定を行う詳細な流れを示すフローチャートである。
【
図29】ファーム更新ファイル対応情報を取得する流れを示すフローチャートである。
【
図30】ファーム更新ファイルを選択するメニュー画面を示す図である。
【
図31】第一通信によりアクセサリのファームを更新する流れを示すフローチャートである。
【
図32】P2Pバースト通信を用いたカメラステータス通知の流れを示すフローチャートである。
【
図33】第二通信を調歩同期式の通信で実行する場合を説明する図である。
【発明を実施するための形態】
【0011】
(実施例1)
以下、本発明の実施例1について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照番号を付し、重複する説明は極力省略する。本実施例では、アクセサリ装置と撮像装置との間で、複数の通信方式に基づく通信が実行される。ここで、「通信方式」はブロードキャスト通信方式(第1通信方式)とP2P通信方式(第2通信方式)とP2Pバースト通信方式(第3通信方式)を意味する。
【0012】
<カメラシステムの構成>
図1は、本発明の撮像装置(以下、カメラ本体という)200と、カメラ本体200に装着可能なアクセサリ装置としての中間アダプタ300および交換レンズ100を含むカメラシステムの構成を示すブロック図である。カメラ本体200と交換レンズ100、中間アダプタ300は、各々の通信手段を用いて、機器間で制御命令や内部情報の伝送を行う。また、各々の通信手段はそれぞれ複数の通信方式をサポートしており、通信するデータの種類や通信目的に応じて、互いに同期して同一の通信方式へ切替えることにより、様々な状況に対する最適な通信形式を選択することが可能となっている。
【0013】
なお、
図1では、一例としてカメラ本体200に中間アダプタ300が装着されている構成を示しているが、本発明はこれに限定されない。交換レンズ100をカメラ本体200に直接、装着してもよいし、物理的に装着可能であれば、複数の中間アダプタを装着してもよい。
【0014】
交換レンズ100と中間アダプタ300は、結合機構である交換レンズ100のマウント400と中間アダプタ300のマウント401とを介して、機械的および電気的に接続されている。同様に、中間アダプタ300とカメラ本体200は、結合機構である中間アダプタのマウント402とカメラ本体200のマウント403とを介して、機械的および電気的に接続されている。
【0015】
交換レンズ100はマウント400に設けられた電源端子部(図示せず)を介してカメラ本体200から電源を取得し、後述する各種アクチュエータや各装置のマイクロコンピュータの動作に必要な電源を供給する。また、中間アダプタ300はマウント402に設けられた電源端子部(図示せず)を介してカメラ本体200から電源を取得し、後述する各種アクチュエータや各装置のマイクロコンピュータの動作に必要な電源を供給する。
【0016】
また、交換レンズ100、カメラ本体200および中間アダプタ300は、マウント400、401、402,403に設けられた通信端子部(
図2に示す)を介して相互に通信を行う。
【0017】
交換レンズ100は、撮像光学系を有する。撮像光学系は、被写体OBJ側から順に、フィールドレンズ101、変倍を行うズームレンズ(変倍レンズ)102、光量を調節する絞りユニット114、防振レンズ103および焦点調節を行うフォーカスレンズ104を含む。
【0018】
ズームレンズ102とフォーカスレンズ104はそれぞれ、レンズ保持枠105,106により保持されている。レンズ保持枠105,106は、不図示のガイド軸により光軸方向(図中に破線で示す)へ移動可能にガイドされており、ステッピングモータ107,108によって光軸方向へ駆動される。ステッピングモータ107,108はそれぞれ、駆動パルスに同期してズームレンズ102およびフォーカスレンズ104を移動させる。
【0019】
防振レンズ103は、撮像光学系の光軸に直交する方向へシフトすることで、手振れ等のカメラ振れに起因する像振れを低減する。
【0020】
レンズマイクロコンピュータ(以下、レンズマイコンという)111は、交換レンズ100内の各部の動作を制御するレンズ制御手段(アクセサリ制御部)である。レンズマイコン111は、交換レンズ専用通信部であるレンズ第一通信部112もしくはアクセサリ通信部としてのレンズ第二通信部132を介して、カメラマイコン205から送信された制御コマンドや送信要求コマンドを受信する。レンズマイコン111は、制御コマンドに対応するレンズ制御を行ったり、レンズ通信部112を介して送信要求コマンドに対応するレンズデータをカメラマイコン205に送信したりする。レンズ第一通信部112とレンズ第二通信部132は、例えばフォーカスレンズや絞りユニットなど交換レンズに特有な部材の操作に関する通信は第二通信部132を用いるようにしても良い。この場合に、鏡筒の操作部材の操作量を取得するなど中間アダプタと共通な制御に関する通信は第一通信部112を用いるというように使い分けてもよい。
【0021】
また、レンズマイコン111は、制御コマンドのうち変倍やフォーカシングに関するコマンドに応答してズーム駆動回路119およびフォーカス駆動回路120に駆動信号を出力してステッピングモータ107,108を駆動させる。これにより、ズームレンズ102による変倍動作を制御するズーム処理やフォーカスレンズ104による焦点調節動作を制御するAF(オートフォーカス)処理が行われる。
【0022】
絞りユニット114は、絞り羽根114a,114bを備えて構成される。絞り羽根114a,114bの状態は、ホール素子115により検出され、増幅回路122およびA/D変換回路123を介してレンズマイコン111に入力される。レンズマイコン111は、A/D変換回路123からの入力信号に基づいて絞り駆動回路121に駆動信号を出力して絞りアクチュエータ113を駆動させる。これにより、絞りユニット114による光量調節動作を制御する。
【0023】
さらに、レンズマイコン111は、交換レンズ100内に設けられた振動ジャイロ等の振れセンサ(不図示)により検出されたカメラ振れに応じて、防振駆動回路125を介して防振アクチュエータ(ボイスコイルモータ等)126を駆動する。これにより、防振レンズ103のシフト動作(防振動作)を制御する防振処理が行われる。
【0024】
また、交換レンズ100は、操作リング130および操作リング検出手段131を有する。操作リング検出手段131は、例えば、操作リング130の相対的な移動に応じて2相の信号を出力する2つのフォトインタラプタである。レンズマイコン111は、操作リング130の操作を検出可能である。また、レンズマイコン111は、操作リング130の操作量を、レンズ通信部112を介してカメラマイコン205に通知可能である。
【0025】
中間アダプタ300は、例えば、焦点距離を変更するためのエクステンダーであり、変倍レンズ301およびアダプタマイクロコンピュータ(以下、アダプタマイコンという)302を有する。アダプタマイコン302は、中間アダプタ300内の各部の動作を制御する中間アダプタ制御手段である。アダプタマイコン302は、アクセサリ通信部としてのアダプタ通信部303を介して、カメラマイコン205から送信された制御コマンドや送信要求コマンドを受信する。アダプタマイコン302は、制御コマンドに対応する中間アダプタ制御を行ったり、アダプタ通信部303を介して送信要求コマンドに対応する中間アダプタデータをカメラマイコン205に送信したりする。
【0026】
カメラ本体200は、CCDセンサやCMOSセンサ等の撮像素子201、A/D変換回路202、信号処理回路203、記録部204、カメラマイクロコンピュータ(以下、カメラマイコンという)205および表示部206を有する。
【0027】
撮像素子201は、交換レンズ100内の撮像光学系により形成された被写体像を光電変換して電気信号(アナログ信号)を出力する。A/D変換回路202は、撮像素子201からのアナログ信号をデジタル信号に変換する。信号処理回路203は、A/D変換回路202からのデジタル信号に対して各種画像処理を行って映像信号を生成する。また、信号処理回路203は、映像信号から被写体像のコントラスト状態(撮像光学系の焦点状態)を示すフォーカス情報や露出状態を表す輝度情報も生成する。信号処理回路203は映像信号を表示部206に出力し、表示部206は映像信号を構図やピント状態等の確認に用いられるライブビュー画像として表示する。
【0028】
カメラ制御手段としてのカメラマイコン205は、不図示の撮像指示スイッチおよび各種設定スイッチ等のカメラ操作部材からの入力に応じてカメラ本体200の制御を行う。また、カメラマイコン205は、カメラ第一通信部208またはカメラ第二通信部209を介して、ズームレンズ102の変倍動作に関する制御コマンドをレンズマイコン111に送信する。例えば不図示のズームスイッチの操作に応じて当該制御コマンドを送信するようにする。また、カメラマイコン205は、カメラ第一通信部208またはカメラ第二通信部209を介して、輝度情報に応じた絞りユニット114の光量調節動作に関する制御コマンドをレンズマイコン111に送信する。また、カメラマイコン205は、カメラ第一通信部208またはカメラ第二通信部209を介して、フォーカス情報に応じたフォーカスレンズ104の焦点調節動作に関する制御コマンドをレンズマイコン111に送信する。また、カメラマイコン205は、交換レンズ100の制御情報や状態情報を取得するための送信要求コマンドをレンズマイコン111に送信し、中間アダプタ300の制御情報や状態情報を取得するための送信要求コマンドをアダプタマイコン302に送信する。
【0029】
<第一通信(
図2)>
以下、
図2を参照して、カメラ本体200の第一通信部208、交換レンズ100の第1通信部112、および中間アダプタ300の通信部303を含むカメラシステムの間で構成される通信回路について説明する。
図2は、本発明のカメラシステムにおける通信回路を示す概略図である。
【0030】
カメラマイコン205、レンズマイコン111およびアダプタマイコン302は、マウント400、401、402、403に設けられた通信端子部を介して接続された信号線を用いて通信を行う。信号線は、通信のフロー制御を行うための信号を伝搬し、通信タイミングの通知に用いられる信号線CSと、送受信するデータを伝搬し、データ通信に用いられる信号線DATAの2本で構成される。信号線CSと信号線DATAを用いた通信を第一通信と称する。
【0031】
信号線CS(第2の信号線)を用いた通信は、CS端子401a,402a,403a,404aを介して実行される。また、信号線DATAを用いた通信はDATA端子401b,402b,403b,404bを用いて実行される。
【0032】
信号線CSは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302に接続されており、各マイコンは、信号線の信号レベル(電圧レベル)を検出可能である。
【0033】
また、信号線CSは、カメラ本体200内の電源にプルアップ接続されるとともに、交換レンズ100の接地スイッチ1121、カメラ本体200の接地スイッチ2081および中間アダプタ300の接地スイッチ3031を介してGNDに接続される。すなわち、信号線CSは、オープンドレイン接続されている。この構成により、レンズマイコン111、カメラマイコン205およびアダプタマイコン302はそれぞれ、各接地スイッチをオン(接続)することにより信号線CSの信号レベルをLowに設定可能である。一方、レンズマイコン111、カメラマイコン205およびアダプタマイコン302の全てが各々の接続スイッチをオフ(遮断)することで、信号線CSの信号レベルをHiに設定可能である。なお、通信時に信号線CSを使用して伝搬する制御信号の内容や操作手順の詳細については後述する。
【0034】
CSスイッチ3033は後述する認証通信を行うためのスイッチであり、定常状態では短絡されている。
【0035】
信号線DATA(第1の信号線)は、データの伝搬方向を切り換えながら使用可能な単線の双方向データ送信線である。信号線DATAは、交換レンズ100の入出力切り換えスイッチ1122を介してレンズマイコン111に接続可能である。また、信号線DATAは、カメラ本体200の入出力切り換えスイッチ2082を介してカメラマイコン205に接続可能である。また、信号線DATAは、中間アダプタ300の入出力切り換えスイッチ3032を介してアダプタマイコン302に接続可能である。各マイコンは、データを送信するためのデータ出力部(CMOS方式)とデータを受信するためのデータ入力部(CMOS方式)を備えている。各マイコンは、入出力切り換えスイッチを操作することで信号線DATAをデータ出力部に接続するかデータ入力部に接続するかを選択することができる。この構成により、レンズマイコン111、カメラマイコン205およびアダプタマイコン302は、信号線DATAがデータ出力部に接続するように入出力切り換えスイッチを操作することで、データ送信が可能となる。一方、レンズマイコン111、カメラマイコン205およびアダプタマイコン302は、信号線DATAがデータ入力部に接続するように入出力切り換えスイッチを操作することで、データ受信が可能となる。通信時における信号線DATAの入出力切り換え手順の詳細については後述する。
【0036】
なお、
図2では本発明における通信回路の一例について示したが、本発明はこれに限定されない。例えば、信号線CSをカメラ本体200内でGNDにプルダウン接続するとともに、接地スイッチ1121、接地スイッチ2081および接地スイッチ3031を介して不図示の電源に接続してもよい。また、信号線DATAは常に各マイコンのデータ入力部に接続される構成とし、信号線DATAと各データ出力部との接続/遮断をスイッチにより操作可能な構成としてもよい。
【0037】
<通信データフォーマットの説明(ブロードキャスト通信・P2P通信)>
図3を参照して、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間でやり取りされるデータのフォーマットについて説明する。
図3は、本発明において信号線DATAを使用して送受信されるデータのフォーマットを示す図である。なお、このフォーマットは、後述するブロードキャスト通信およびP2P通信で共通である。
【0038】
通信データフォーマットとしては、あらかじめ相互で通信を行う通信速度を規定しておき、この規定に沿った通信ビットレートで送受信を行う、いわゆる調歩同期式通信を基本としている。データ送信を行っていない非送信状態では、信号レベルはHiで維持されている。データの送信開始をデータ受信側に通知するために、信号レベルを1ビット期間(スタートビットST)だけLowにする。次の2ビット目から9ビット目までの8ビット期間で1バイトのデータを送信する。データのビット配列はMSBファーストフォーマットとして、最上位のデータD7から始まり、順にデータD6、データD5と続き、最下位のデータD0で終わる。最後に送信データの最後を示すために、信号レベルを1ビット期間(ストップビットSP)だけHiにすることで、スタートビットSTから開始された1フレームデータの送信期間が終了する。なお、
図3では、本発明における通信データフォーマットの一例について記載したが、本発明はこれに限定されない。例えば、データのビット配列はLSBファーストや9ビット長でもよいし、最下位のデータD0とストップビットSPとの間にパリティPA情報を付加してもよい。また、後述するブロードキャスト通信およびP2P通信でデータフォーマットを切り換えてもよい。
【0039】
<ブロードキャスト通信(第1通信方式)>
図4を参照して、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われるブロードキャスト通信(第1通信方式)の一例について説明する。
図4は、ブロードキャスト通信における通信波形を示す図である。ブロードキャスト通信とは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302のうちの1つのマイコンから他のマイコンに対して同時にデータを送信する、1対多の一斉配信モードである。
図4では、カメラマイコン205からレンズマイコン111およびアダプタマイコン302へのブロードキャスト通信に応答する形でアダプタマイコン302からカメラマイコン205およびレンズマイコン111へブロードキャスト通信を行う場合を示している。
【0040】
まず、通信マスタであるカメラマイコン205は、ブロードキャスト通信を開始することを通信スレーブであるレンズマイコン111およびアダプタマイコン302に通知するために、信号線CSへのLow出力を開始する。次に、カメラマイコン205は、送信するデータを信号線DATAに出力する。一方、レンズマイコン111とアダプタマイコン302は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する。なお、この時点ではすでにカメラマイコン205が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
【0041】
カメラマイコン205は、ストップビットSPの出力まで終了した後、信号線CSへのLow出力を解除する。一方、レンズマイコン111とアダプタマイコン302は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および受信したデータに紐づけられた内部処理を行う。その後、レンズマイコン111とアダプタマイコン302は、次のデータを受信するための準備を整えた後、信号線CSへのLow出力を解除する。前述したように、信号線CSの信号レベルは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の全てが信号線CSへのLow出力を解除することでHiとなる。したがって、信号線CSの信号レベルがHiとなることを確認することで、全てのマイコンが今回の通信に関する処理を終了し、次の通信を行うための準備を整えたと判断することができる。
【0042】
アダプタマイコン302は、信号線CSの信号レベルがHiに戻ったことを確認した後、ブロードキャスト通信を開始することをカメラマイコン205およびレンズマイコン111に通知するために、信号線CSへのLow出力を開始する。次に、アダプタマイコン302は、送信するデータを信号線DATAに出力する。一方、カメラマイコン205とレンズマイコン111は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する。なお、この時点ではすでにアダプタマイコン302が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
【0043】
アダプタマイコン302は、ストップビットSPの出力まで終了した後、信号線CSへのLow出力を解除する。一方、カメラマイコン205とレンズマイコン111は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および受信したデータに紐づけられた内部処理を行う。その後、カメラマイコン205とレンズマイコン111は、次のデータを受信するための準備を整えた後、信号線CSへのLow出力を解除する。
【0044】
以上のように、ブロードキャスト通信において信号線CSを用いて伝搬する信号は、ブロードキャスト通信の開始および通信処理を実行中であることを示す制御信号として作用する。
【0045】
なお、
図4では、ブロードキャスト通信の通信波形の一例について記載したが、本発明はこれに限定されない。例えば、一度のブロードキャスト通信で送信するデータを1バイトのデータにしているが、2バイトや3バイトのデータにしてもよい。また、ブロードキャスト通信を通信マスタであるカメラマイコン205から通信スレーブであるレンズマイコン111およびアダプタマイコン302への一方向限定通信としてもよい。
【0046】
<P2P通信(第2通信方式)>
図5を参照して、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われるP2P通信(第2通信方式)の一例について説明する。
図5は、PSP通信における通信波形を示す図である。P2P通信とは、カメラマイコン205と、レンズマイコン111とアダプタマイコン302の中からカメラマイコン205により指定された1つのマイコンとの間のみでデータを送受信する、1対1の個別通信モードである。
図5では、カメラマイコン205により通信相手としてレンズマイコン111が指定され、カメラマイコン205からの1バイトのデータ送信に応答する形でレンズマイコン111からカメラマイコン205に対して2バイトのデータ送信を行う場合を示している。なお、通信相手の指定方法や切り換え方法などの手順については後述する。
【0047】
まず、通信マスタであるカメラマイコン205は、送信するデータを信号線DATAに出力する。カメラマイコン205は、ストップビットSPの出力まで終了した後、信号線CSへのLow出力を開始する。その後、カメラマイコン205は、次のデータの受信準備を整えた後、信号線CSへのLow出力を解除する。
【0048】
レンズマイコン111は、信号線CSから入力されたLow信号を検出した後、信号線DATAから入力された受信データの解析および受信したデータに紐づけられた内部処理を行う。レンズマイコン111は、信号線CSの信号レベルがHiに戻ったことを確認した後、送信すべきデータを2バイト分連続で信号線DATAに出力する。レンズマイコン111は、2バイト目のストップビットSPの出力まで終了した後、信号線CSへのLow出力を開始する。その後、レンズマイコン111は、次のデータの受信準備を整えた後、信号線CSへのLow出力を解除する。
【0049】
なお、P2P通信の通信相手として指定されていないアダプタマイコン302は、信号線CSおよび信号線DATAの操作には一切関与しない。
【0050】
以上のように、P2P通信において信号線CSを用いて伝搬する信号は、送信側の送信終了および次のデータ送信の待機要求を示す制御信号として作用する。
【0051】
なお、
図5では、P2P通信の通信波形の一例について記載したが、本発明はこれに限定されない。例えば、送信するデータは1バイトずつや他の数でもよい。
【0052】
<通信モード切り換え>
図6を参照して、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われるブロードキャスト通信とP2P通信の切り換え、およびP2P通信での通信相手の指定方法の一例について説明する。
図6は、通信方式の切り換え時の通信波形を示す図である。P2P通信での通信相手の指定([1])は、ブロードキャスト通信で行われる。以下の説明では、カメラマイコン205によりP2P通信の通信相手としてアダプタマイコン302がブロードキャスト通信により指定された後、カメラマイコン205からの送信([2])のP2P通信が実行される。また、この送信に対し、アダプタマイコン302からの返信([3])のP2P通信が実行される。次に、カメラマイコン205によりP2P通信の通信相手としてレンズマイコン111が指定された([4])後、カメラマイコン205からの送信([5])と、レンズマイコン111からの返信([6])のP2P通信が実行される。
【0053】
まず、通信マスタであるカメラマイコン205は、
図4を参照して説明した手順でブロードキャスト通信を実行する。このブロードキャスト通信で通知するのは、次のP2P通信でカメラマイコン205と通信を行う相手を指定するスレーブ指定データ(通信相手指定データ)である。通信スレーブであるレンズマイコン111およびアダプタマイコン302はそれぞれ、ブロードキャスト通信で受信したスレーブ指定データに基づいて、P2P通信の通信相手として指定されたか否かを判断する。このブロードキャスト通信によって、カメラマイコン205および指定された通信スレーブはP2P通信に切り替わる。ここでは通信相手としてアダプタマイコン302が指定されているため、P2P通信では
図5を参照して説明した手順でカメラマイコン205とアダプタマイコン302との間でデータの送受信が行われる。前述したように、まず、カメラマイコン205はアダプタマイコン302にデータを送信し、その後、アダプタマイコン302はカメラマイコン205にデータを送信する。
【0054】
カメラマイコン205とアダプタマイコン302とのP2P通信が終了すると、カメラマイコン205はブロードキャスト通信によってP2P通信で通信する通信相手としてレンズマイコン111を指定する。このブロードキャスト通信によって、アダプタマイコン302はP2P通信を終了し、レンズマイコン111はP2P通信に切り替わる。なお、ブロードキャスト通信が実行されない場合、カメラマイコン205とアダプタマイコン302とのP2P通信は継続される。P2P通信では、
図5を参照して説明した手順でカメラマイコン205とレンズマイコン111との間でデータの送受信が行われる。前述したように、カメラマイコン205はレンズマイコン111にデータを送信し、その後、レンズマイコン111はカメラマイコン205にデータを送信する。
【0055】
<ブロードキャスト通信の通信フロー制御>
ブロードキャスト通信及びP2P通信について、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の間で行われる通信の手順である通信フロー制御について説明する。
【0056】
図7~
図8を参照して、ブロードキャスト通信における通信フローについて説明する。
図7は、通信マスタであるカメラマイコン205によるブロードキャスト通信における通信フローを説明するフローチャートである。
図8は、通信スレーブであるレンズマイコン111およびアダプタマイコン302によるブロードキャスト通信における通信フローを説明するフローチャートである。
【0057】
まず、カメラマイコン205の通信フローについて説明する。
【0058】
ステップS100では、カメラマイコン205は、ブロードキャスト通信を開始するイベントが発生したか否かを判定する。イベントが発生した場合、ステップS101に進み、イベントが発生していない場合、ステップS100の判定を繰り返し行う。
【0059】
ステップS101では、カメラマイコン205は、接地スイッチ2081をオン(接続)して信号線CSへのLow出力を開始する。これにより、レンズマイコン111およびアダプタマイコン302に対してブロードキャスト通信の開始が通知される。
【0060】
ステップS102では、カメラマイコン205は、入出力切り換えスイッチ2082を操作し、信号線DATAをカメラマイコン205のデータ出力部に接続する。
【0061】
ステップS103では、カメラマイコン205は、データ送信を開始する。
【0062】
ステップS104では、カメラマイコン205は、ステップS103で送信したデータに、送信要求コマンドが含まれるか否かを判定する。送信要求コマンドとは、通信マスタとしてのカメラマイコン205から送信されたデータを受信した通信スレーブに対して、カメラマイコン205へのデータ送信を要求するコマンドである。送信要求コマンドが含まれている場合、ステップS106に進み、送信要求コマンドが含まれていない場合、ステップS105に進む。
【0063】
ステップS105では、カメラマイコン205は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。
【0064】
ステップS106では、カメラマイコン205は、入出力切り換えスイッチ2082を操作し、信号線DATAをカメラマイコン205のデータ入力部に接続する。
【0065】
ステップS107では、カメラマイコン205は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。
【0066】
ステップS108では、カメラマイコン205は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS109に進み、信号レベルがHiでない場合、ステップS108の判定を繰り返す。
【0067】
ステップS109では、カメラマイコン205は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS110に進み、信号レベルがLowでない場合、ステップS109の判定を繰り返す。
【0068】
ステップS110では、カメラマイコン205は、信号線DATAからのデータ受信を許可する。
【0069】
ステップS111では、カメラマイコン205は、信号線DATAからスタートビットの受信を検出したか否かを判断する。スタートビットの受信を検出した場合、ステップS112に進み、スタートビットの受信を検出していない場合、ステップS111の判定を繰り返す。
【0070】
ステップS112では、カメラマイコン205は、接地スイッチ2081をオン(接続)して信号線CSへのLow出力を開始する。
【0071】
ステップS113では、カメラマイコン205は、全データを受信したか否かを判定する。全データを受信した場合、ステップS114に進み、全データを受信していない場合、ステップS113の判定を繰り返す。
【0072】
ステップS114では、カメラマイコン205は、信号線DATAからのデータ受信を禁止する。
【0073】
ステップS115では、カメラマイコン205は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。
【0074】
ステップS116では、カメラマイコン205は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS117に進み、信号レベルがHiでない場合、ステップS116の判定を繰り返す。
【0075】
ステップS117では、カメラマイコン205は、ステップS103で送信したデータが、通信相手を指定するスレーブ指定データであったか否かを判定する。スレーブ指定データである場合、ステップS118に進み、スレーブ指定データでない場合、本フローを終了する。
【0076】
ステップS118では、カメラマイコン205は、P2P通信モードへの移行を行う。
【0077】
次に、
図8を用いて、アダプタマイコン302の通信フローについて説明する。レンズマイコン111の通信フローは、アダプタマイコン302の通信フローとほぼ同じであるため、本実施形態では説明を省略する。
【0078】
ステップS200では、アダプタマイコン302は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS201に進み、信号レベルがLowでない場合、ステップS200の判定を繰り返す。
【0079】
ステップS201では、アダプタマイコン302は、ブロードキャスト通信として、信号線DATAからのデータ受信を許可する。
【0080】
ステップS202では、アダプタマイコン302は、信号線DATAからスタートビットの受信を検出したか否かを判断する。スタートビットの受信を検出した場合、ステップS205に進み、スタートビットの受信を検出していない場合、ステップS203に進む。
【0081】
ステップS203では、アダプタマイコン302は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS204に進み、信号レベルがHiでない場合、ステップS202に戻る。
【0082】
ステップS204では、アダプタマイコン302は、信号線DATAからのデータ受信を禁止する。
【0083】
ここで、ステップS203およびステップS204の処理を行うのは、カメラマイコン205とレンズマイコン111との間でP2P通信が行われ、アダプタマイコン302のみがブロードキャスト通信を行う状況に対応するためである。この状況では、アダプタマイコン302は、カメラマイコン205からデータを受信することはない。
【0084】
ステップS205では、アダプタマイコン302は、接地スイッチ3031をオン(接続)して信号線CSへのLow出力を開始する。
【0085】
ステップS206では、アダプタマイコン302は、全データを受信したか否かを判定する。全データを受信した場合、ステップS207に進み、全データを受信していない場合、ステップS206の判定を繰り返す。
【0086】
ステップS207では、アダプタマイコン302は、信号線DATAからのデータ受信を禁止する。
【0087】
ステップS208では、アダプタマイコン302は、接地スイッチ3031をオフ(遮断)して信号線CSへのLow出力を解除する。
【0088】
ステップS209では、アダプタマイコン302は、ステップS206で受信したデータに、送信要求コマンドが含まれるか否かを判定する。送信要求コマンドが含まれている場合、ステップS210に進み、送信要求コマンドが含まれていない場合、ステップS215に進む。
【0089】
ステップS210では、アダプタマイコン302は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS211に進み、信号レベルがHiでない場合、ステップS210の判定を繰り返す。
【0090】
ステップS211では、アダプタマイコン302は、接地スイッチ3031をオン(接続)して信号線CSへのLow出力を開始する。
【0091】
ステップS212では、アダプタマイコン302は、入出力切り換えスイッチ3032を操作し、信号線DATAをアダプタマイコン302のデータ出力部に接続する。
【0092】
ステップS213では、アダプタマイコン302は、データ送信を開始する。
【0093】
ステップS214では、アダプタマイコン302は、接地スイッチ3031をオフ(遮断)して信号線CSへのLow出力を解除する。
【0094】
ステップS215では、アダプタマイコン302は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS216に進み、信号レベルがHiでない場合、ステップS215の判定を繰り返す。
【0095】
ステップS216では、アダプタマイコン302は、ステップS206で受信したデータがスレーブ指定データであり、かつP2P通信におけるカメラマイコン205の通信相手として指定されたか否かの判定を行う。データがスレーブ指定データであり、かつ通信相手として指定された場合、ステップS217に進み、データがスレーブ指定データである場合または通信相手として指定されていない場合、本フローを終了する。
【0096】
ステップS217では、アダプタマイコン302は、P2P通信モードへの移行を行う。
【0097】
<P2P通信の通信フロー制御>
図9~
図10を参照して、P2P通信における通信フローについて説明する。
図9は、通信マスタであるカメラマイコン205によるP2P通信における通信フローを説明するフローチャートである。
【0098】
ステップS300では、カメラマイコン205は、P2P通信を開始するイベントが発生したか否かを判定する。イベントが発生した場合、ステップS301に進み、イベントが発生していない場合、ステップS300の判定を繰り返し行う。
【0099】
ステップS301では、カメラマイコン205は、入出力切り換えスイッチ2082を操作し、信号線DATAをカメラマイコン205のデータ出力部に接続する。
【0100】
ステップS302では、カメラマイコン205は、マスタ送信のP2Pバースト通信の送信を行うか否かを判定する。マスタ送信のP2Pバースト通信の送信を行う場合はステップS303に進み、行わない場合は、ステップS304に進む。
【0101】
ステップS303では、カメラマイコン205は、マスタ送信のP2Pバースト通信の送信を行い、S305へと進む。マスタ送信のP2Pバースト通信送信処理の詳細については後述する。
【0102】
ステップS304では、カメラマイコン205は、データ送信を開始する。
【0103】
ステップS305では、カメラマイコン205は、接地スイッチ2081をオン(接続)して信号線CSへのLow出力を開始する。
【0104】
ステップS306では、カメラマイコン205は、ステップS304で送信したデータに、送信要求コマンドが含まれるか否かを判定する。送信要求コマンドが含まれている場合、ステップS309に進み、送信要求コマンドが含まれていない場合、ステップS307に進む。
【0105】
ステップS307では、カメラマイコン205は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。
【0106】
ステップS308では、カメラマイコン205は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS316に進み、信号レベルがLowでない場合、ステップS308の判定を繰り返す。
【0107】
ステップS309では、カメラマイコン205は、入出力切り換えスイッチ2082を操作し、信号線DATAをカメラマイコン205のデータ入力部に接続する。
【0108】
ステップS311では、カメラマイコン205は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。
【0109】
ステップS312では、カメラマイコン205は、スレーブ送信のP2Pバースト通信の受信を行うか否かを判定する。スレーブ送信のP2Pバースト通信の受信を行う場合はステップS313に進み、行わない場合は、ステップS314に進む。
【0110】
ステップS313では、カメラマイコン205は、スレーブ送信のP2Pバースト通信の受信を行い、ステップS315へと進む。スレーブ送信のP2Pバースト通信受信処理の詳細については後述する。
【0111】
ステップS314では、カメラマイコン205は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS315に進み、信号レベルがLowでない場合、ステップS314の判定を繰り返す。
【0112】
ステップS315では、カメラマイコン205は、信号線DATAから受信したデータの解析を行う。
【0113】
ステップS316では、カメラマイコン205は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS317に進み、信号レベルがHiでない場合、ステップS316の判定を繰り返す。
【0114】
ステップS317では、カメラマイコン205は、ブロードキャスト通信への移行イベントが発生したか否かを判定する。イベントが発生した場合、ステップS318に進み、イベントが発生していない場合、本フローを終了する。
【0115】
ステップS318では、カメラマイコン205は、ブロードキャスト通信モードへの移行を行う。
【0116】
図10は、通信スレーブであるアダプタマイコン302によるP2P通信における通信フローを説明するフローチャートである。レンズマイコン111の通信フローは、アダプタマイコン302の通信フローとほぼ同じであるため、本実施形態では説明を省略する。
【0117】
ステップS400では、アダプタマイコン302は、P2P通信として、信号線DATAからのデータ受信を許可する。
【0118】
ステップS401では、アダプタマイコン302は、マスタ送信のP2Pバースト通信の受信を行うか否かを判定する。マスタ送信のP2Pバースト通信の受信を行う場合はステップS402に進み、行わない場合は、ステップS403に進む。
【0119】
ステップS402では、アダプタマイコン302は、マスタ送信のP2Pバースト通信の受信を行い、ステップS404へと進む。マスタ送信のP2Pバースト通信受信処理の詳細については後述する。
【0120】
ステップS403では、アダプタマイコン302は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS404に進み、信号レベルがLowでない場合、ステップS403の判定を繰り返す。
【0121】
ステップS404では、アダプタマイコン302は、ブロードキャスト通信として、信号線DATAからのデータ受信を許可する。
【0122】
ステップS405では、アダプタマイコン302は、信号線DATAから受信したデータの解析を行う。
【0123】
ステップS406では、アダプタマイコン302は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS408に進み、信号レベルがHiでない場合、ステップS407に進む。
【0124】
ステップS407では、アダプタマイコン302は、信号線DATAからスタートビットの受信を検出したか否かを判断する。スタートビットの受信を検出した場合、ステップS420に進み、スタートビットの受信を検出していない場合、ステップS406に進む。
【0125】
ステップS408では、アダプタマイコン302は、ステップS405で受信したデータに、送信要求コマンドが含まれるか否かを判定する。送信要求コマンドが含まれている場合、ステップS409に進み、送信要求コマンドが含まれていない場合、ステップS414に進む。
【0126】
ステップS409では、アダプタマイコン302は、入出力切り換えスイッチ3032を操作し、信号線DATAをアダプタマイコン302のデータ出力部に接続する。
【0127】
ステップS410では、アダプタマイコン302は、スレーブ送信のP2Pバースト通信の送信を行うか否かを判定する。スレーブ送信のP2Pバースト通信の送信を行う場合はステップS411に進み、行わない場合は、ステップS412に進む。
【0128】
ステップS411では、アダプタマイコン302は、スレーブ送信のP2Pバースト通信の送信を行い、ステップS413へと進む。スレーブ送信のP2Pバースト通信送信処理の詳細については後述する。
【0129】
ステップS412では、アダプタマイコン302は、データ送信を開始する。
【0130】
ステップS413では、アダプタマイコン302は、入出力切り換えスイッチ3032を操作し、信号線DATAをアダプタマイコン302のデータ入力部に接続する。
【0131】
ステップS414では、アダプタマイコン302は、接地スイッチ3031をオン(接続)して信号線CSへのLow出力を開始する。
【0132】
ステップS415では、アダプタマイコン302は、ブロードキャスト通信として、信号線DATAからのデータ受信を許可する。
【0133】
ステップS416では、アダプタマイコン302は、接地スイッチ3031をオフ(遮断)して信号線CSへのLow出力を解除する。
【0134】
ステップS417では、アダプタマイコン302は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS419に進み、信号レベルがHiでない場合、ステップS418に進む。
【0135】
ステップS418では、アダプタマイコン302は、信号線DATAからスタートビットの受信を検出したか否かを判断する。スタートビットの受信を検出した場合、ステップS420に進み、スタートビットの受信を検出していない場合、ステップS417に進む。
【0136】
ステップS419では、アダプタマイコン302は、ステップS405で受信したデータに基づく処理を実行する。なお、ステップS419の処理の実行後、本フローを再度開始することで、P2P通信を継続することができる。
【0137】
ステップS420では、アダプタマイコン302は、P2P通信の処理を中断する。その後、ブロードキャスト通信を行うために
図8のステップS205に進む。
【0138】
以上のように、ブロードキャスト通信によってP2P通信の通信相手を指定することが可能であり、同時にブロードキャスト通信とP2P通信の切り換えを行うことができる。
【0139】
しかし、一度のP2P通信で送信できるデータサイズは、受信側の受信バッファサイズにより制限されるため、膨大なデータを一度のP2P通信で通信することは困難である。また、P2P通信を何度も繰り返すことで膨大なデータを転送することは可能だが、P2P通信では、通信マスタと通信スレーブが交互にデータ及び信号線CSによる通知を行うため、転送時間が増加してしまう。この課題を解決させるために、次に示すP2Pバースト通信により膨大なデータの転送を行う。
【0140】
<スレーブ送信のP2Pバースト通信モードへの切り換えの説明>
図11~
図13を参照して、カメラマイコン205、アダプタマイコン302の間で行われるP2Pバースト通信の切り換え、およびP2Pバースト通信の一例について説明する。
【0141】
図11はアダプタマイコン302からカメラマイコン205へとデータを転送する、スレーブ送信のP2Pバースト通信の通信波形を示す図である。以下の説明では、カメラマイコン205によりブロードキャスト通信にて、P2P通信の通信相手としてアダプタマイコン302が指定([1])される。次に、カメラマイコン205からの送信([2])と、アダプタマイコン302からの返信([3])である、P2P通信が実行される。ここで、カメラマイコン205からの送信([2])によって、P2Pバースト通信におけるバースト通信情報が送信される(
図28のS2802に相当)。バースト通信情報はのちに行われるスレーブ送信のP2Pバースト通信の設定情報である。アダプタマイコンはバースト通信情報を受信すると、応答として返信([3])を行う(
図28のS2805に相当)。返信([3])で送信される情報は、例えばバースト通信情報を受信したことを示す情報である。その後、カメラマイコン205からスレーブ送信のP2Pバースト通信に移行するためのコマンドを送信([4])し、アダプタマイコン302からカメラマイコン205へのスレーブ送信のP2Pバースト通信([5])が行われる。
【0142】
なお、アダプタマイコン302からカメラマイコン205に、中間アダプタ300のバースト通信情報を送信しても良い。この場合は例えば、アダプタマイコン302からの返信([3])の後に、カメラマイコン205からの送信によってバースト通信情報を要求するコマンドを送信する(
図28のS2807に相当)。そして、アダプタマイコン302はこのコマンドを受信すると、応答としてバースト通信情報を送信する(
図28のS2809に相当)。このように構成することで、カメラ本体200と中間アダプタ300とでバースト通信情報に相違がある場合であっても、双方が実行可能な設定でP2Pバースト通信を実行することが可能である。
【0143】
P2P通信の通信相手を指定する処理と、P2P通信については
図6で説明した通りなので説明を省略する。
【0144】
本実施例のスレーブ送信のP2Pバースト通信におけるバースト通信情報は、ブロックサイズ、ブロック間ウェイト時間、フロー制御までのブロック数、トータルサイズである。
【0145】
ブロックとは、スレーブ送信のP2Pバースト通信でデータを連続通信するためのまとまりである。ブロックサイズは1ブロックに含まれるデータのバイト数である。本実施例におけるブロックサイズは、例えばスレーブ送信のP2Pバースト通信の受信側であるカメラマイコン205の連続受信可能サイズである。本実施例では16バイトとする。この場合、1ブロックは連続する16フレームデータを有する。前述のとおり、1フレームデータはLowレベルのスタートビットST、8ビット(1バイト)のデータ、HiレベルのストップビットSPで構成される。ブロックサイズが16バイトの場合には、1ブロックは16バイトのデータに加えて計16ビットのスタートビット計STと16ビットのストップビットSPを有する。
【0146】
ブロック間ウェイト時間は、スレーブ送信のP2Pバースト通信の送信側であるアダプタマイコン302が、1ブロックを送信完了した後に、次のブロックを送信開始するまでウェイトする時間である。本実施例におけるブロック間ウェイト時間は、スレーブ送信のP2Pバースト通信の受信側であるカメラマイコン205が1ブロック受信完了した後に、次のブロックが受信可能となるまでの時間であり、100μsとする。
【0147】
本実施例におけるフロー制御は、スレーブ送信のP2Pバースト通信の受信側であるカメラマイコン205が信号線CSを用いて通信タイミングの通知を行うことで実現される。例えばスレーブ送信のP2Pバースト通信以外の処理に充てる時間を確保する必要がある際は、その通信以外の処理を完了させたのちに通信タイミングの通知を行うことで、通信以外の処理の時間を確保することができる。
【0148】
フロー制御までのブロック数は、フロー制御ののち、次のフロー制御までに受けつけるブロック数である。本実施例におけるフロー制御までのブロック数は、スレーブ送信のP2Pバースト通信の受信側であるカメラマイコン205が、スレーブ送信のP2Pバースト通信以外の処理に充てる時間を確保するための間隔であり、4ブロックとする。フロー制御までのブロック数を所定のブロック数とも称する。
【0149】
トータルサイズは、スレーブ送信のP2Pバースト通信の送信側であるアダプタマイコン302が、スレーブ送信のP2Pバースト通信で転送したいデータのサイズである。例えばトータルサイズが128バイトでありブロックサイズが16バイトの場合には、合計8ブロックが送信される。
【0150】
続いて、カメラマイコン205からスレーブ送信のP2Pバースト通信に移行するためのコマンドを送信し、アダプタマイコン302からカメラマイコン205へ、先述のバースト通信情報に沿ったスレーブ送信のP2Pバースト通信が行われる。
【0151】
具体的には、カメラマイコン205は、アダプタマイコン302へと、スレーブ送信のP2Pバースト通信に移行するためのコマンドを送信し、信号線CSにより送信終了および次のデータ送信の待機要求を通知する。アダプタマイコン302は、スレーブ送信のP2Pバースト通信に移行するためのコマンドを受信すると、スレーブ送信のP2Pバースト通信で送信するデータの生成を行う。
【0152】
カメラマイコン205は、スレーブ送信のP2Pバースト通信の受信準備が完了すると、信号線CSにより、データ送信の待機要求を解除する。
【0153】
アダプタマイコン302は、送信するデータの生成が完了し、カメラマイコン205からの待機要求が解除されると、アダプタマイコン302からブロックサイズ16バイトである1ブロック分のデータを送信する。そして、ブロック間ウェイト時間である100μs以上通信を停止する。カメラマイコン205は、1ブロック分のデータを受信すると、ブロック間ウェイト時間である100μs以内に、次の1ブロック分受信するための処理を行う。
【0154】
カメラマイコン205及びアダプタマイコン302は、以上の1ブロック分転送する処理を、フロー制御までのブロック数である4ブロック分転送するまで行う。
【0155】
アダプタマイコン302は、フロー制御までのブロック数分送信が完了すると、カメラマイコン205からのフロー制御を待つ。
【0156】
カメラマイコン205は、フロー制御までのブロック数分受信が完了すると、信号線CSにより受信中断および次のデータ送信の待機要求を通知する。そして、スレーブ送信のP2Pバースト通信の受信準備が完了すると、信号線CSにより、フロー制御解除を示す、データ送信の待機要求を解除する。
【0157】
カメラマイコン205及びアダプタマイコン302は、以上のフロー制御の処理を、トータルサイズ分転送が完了するまで行う。
【0158】
カメラマイコン205は、トータルサイズ分の受信が完了すると、アダプタマイコン302からの、信号線CSによる送信終了および次のデータ送信の待機要求を待つ。
【0159】
アダプタマイコン302は、トータルサイズ分転送が完了すると、信号線CSにより、送信終了および次のデータ送信の待機要求を通知したのち、データ送信の待機要求を解除することで、スレーブ送信のP2Pバースト通信が終了する。
【0160】
アダプタからトータルサイズ分の転送が行われない場合には、カメラマイコン205が受信タイムアウトによる通信エラーと判断する。そしてスレーブ送信のP2Pバースト通信に移行するためのコマンドを送信([4])、もしくは、ブロードキャスト通信によるP2P通信の通信相手の指定([1])からやり直す。
【0161】
また、アダプタからあらかじめやり取りされたトータルサイズ分を超えたデータが送信された場合にはカメラはそのデータを受信できない。さらに、カメラマイコン205がアダプタマイコン302による信号線CSを用いた送信終了通知を待っている場合、その待ち時間を超過したときにカメラマイコン205が通信エラーと判断する。もしくは、アダプタマイコン302がカメラマイコン205による信号線CSを用いた通信タイミング通知を待っている場合には、その待ち時間を超過したときにアダプタマイコン302が通信エラーと判断する。信号線CSに関連するエラーから復帰するためには、ブロードキャスト通信によるP2P通信の通信相手の指定([1])、もしくは電源のリセットからやり直す必要がある。
【0162】
<スレーブ送信のP2Pバースト通信フロー説明>
図12~
図13を参照して、スレーブ送信のP2Pバースト通信における通信フローについて説明する。
図12は、通信マスタであるカメラマイコン205によるスレーブ送信のP2Pバースト通信における通信フローを説明するフローチャートである。
【0163】
ステップS500では、カメラマイコン205は、データの受信処理を行い、S501へと進む。
【0164】
ステップS501では、カメラマイコン205は、トータルサイズ分受信完了したか否かを判断し、受信完了した場合はステップS511へと進み、受信完了していない場合はステップS502へと進む。
【0165】
ステップS502では、カメラマイコン205は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、処理を終了し、信号レベルがLowでない場合、ステップS503へと進む。
【0166】
ステップS503では、カメラマイコン205は、ブロックサイズ分受信完了したか否かを判断し、受信完了した場合はステップS504へと進み、受信完了していない場合はステップS500へと進む。
【0167】
ステップS504では、カメラマイコン205は、フロー制御までのブロック数分受信完了したか否かを判断し、受信完了した場合はステップS507へと進み、受信完了していない場合はステップS505へと進む。
【0168】
ステップS505では、カメラマイコン205は、通信以外の処理を行う必要が有るか否かを判断し、通信以外の処理を行う必要が有る場合はステップS507へと進み、通信以外の処理を行う必要がない場合はステップS506へと進む。
【0169】
ステップS506では、バースト通信の受信データ処理を実施し、ステップS500へと進む。受信データ処理は、受信データを退避し、次のブロックを受信可能とする処理である。この処理は、先述のブロック間ウェイト時間内に必ず完了する必要がある。
【0170】
ステップS507では、カメラマイコン205は、接地スイッチ2081をオン(接続)して信号線CSへのLow出力を開始する。
【0171】
ステップS508では、カメラマイコン205は、ステップS506と同様の、受信データ処理を実施する。
【0172】
ステップS509では、カメラマイコン205は、通信以外の処理を実行する。
【0173】
ステップS510では、カメラマイコン205は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。
【0174】
ステップS511では、カメラマイコン205は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、処理を終了し、信号レベルがLowでない場合、ステップS511の判定を繰り返す。
【0175】
図13は、通信スレーブであるアダプタマイコン302によるスレーブ送信のP2Pバースト通信における通信フローを説明するフローチャートである。レンズマイコン111の通信フローは、アダプタマイコン302の通信フローとほぼ同じであるため、本実施形態では説明を省略する。
【0176】
ステップS600では、アダプタマイコン302は、データ送信を開始する。
【0177】
ステップS601では、アダプタマイコン302は、トータルサイズ分送信完了したか否かを判断し、送信完了した場合は処理を終了し、送信完了していない場合はステップS602へと進む。
【0178】
ステップS602では、アダプタマイコン302は、ブロックサイズ分送信完了したか否かを判断し、送信完了した場合はステップS603へと進み、送信完了していない場合はステップS600へと進む。
【0179】
ステップS603では、アダプタマイコン302は、フロー制御までのブロック数分送信完了したか否かを判断し、送信完了した場合はステップS607へと進み、送信完了していない場合はステップS604へと進む。
【0180】
ステップS604では、アダプタマイコン302は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS606に進み、信号レベルがLowでない場合、ステップS605へと進む。
【0181】
ステップS605では、アダプタマイコン302は、ブロック間ウェイト時間だけ経過したか判定し、経過した場合はステップS600へ、経過していない場合はステップS604へと進む。
【0182】
ステップS606では、アダプタマイコン302は、入出力切り換えスイッチ3032を操作し、信号線DATAをアダプタマイコン302のデータ入力部に接続し、ステップS609へと進む。
【0183】
ステップS607では、アダプタマイコン302は、入出力切り換えスイッチ3032を操作し、信号線DATAをアダプタマイコン302のデータ入力部に接続する。
【0184】
ステップS608では、ダプタマイコン302は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS609に進み、信号レベルがLowでない場合、ステップS608の判定を繰り返す。
【0185】
ステップS609では、アダプタマイコン302は、ブロードキャスト通信として、信号線DATAからのデータ受信を許可する。
【0186】
ステップS610では、アダプタマイコン302は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS612に進み、信号レベルがHiでない場合、ステップS611に進む。
【0187】
ステップS611では、アダプタマイコン302は、信号線DATAからスタートビットの受信を検出したか否かを判断する。スタートビットの受信を検出した場合、ステップS613に進み、スタートビットの受信を検出していない場合、ステップS610に進む。
【0188】
ステップS612では、アダプタマイコン302は、入出力切り換えスイッチ3032を操作し、信号線DATAをアダプタマイコン302のデータ出力部に接続する。
【0189】
ステップS613では、アダプタマイコン302は、P2P通信の処理を中断する。その後、ブロードキャスト通信を行うために
図8のステップS205に進む。
【0190】
ここで、カメラマイコン205とアダプタマイコン302がP2Pバースト通信を行っている最中のレンズマイコン111の動作について、
図8を用いて説明を行う。
【0191】
カメラマイコン205によりブロードキャスト通信にて、P2P通信の通信相手としてアダプタマイコン302を指定する通信において、レンズマイコン111は、ステップS216において、スレーブ指定されていないと判断し、P2P受信モードへ移行しない。
【0192】
次のP2P通信や、その後のP2Pバースト通信においては、信号線CSがLowとなっている間に信号線DATAがHi以外となることが無い。そのため、ステップS202でスタートビットを受信したと判断されることが無く、ステップS200、ステップS201、ステップS202、ステップS203、ステップS204の遷移を繰り返す。すなわち、カメラマイコン205とアダプタマイコン302は、レンズマイコン111等の、P2Pバースト通信の相手ではない通信スレーブが接続されていても、問題なくP2Pバースト通信を行うことができる。さらには、レンズマイコン111の処理にP2Pバースト通信を判断する処理が含まれない。このため、従来のブロードキャスト通信、P2P通信のみに対応したレンズマイコン111が接続されている場合にも、カメラマイコン205とアダプタマイコン302とでP2Pバースト通信を行うことができる。
【0193】
以上説明したように、本実施形態では、信号線CSと信号線DATAの2線で通信を行うカメラシステムにおいて、ブロードキャスト通信モードとP2P通信モードとで、信号線CSで伝搬する情報を適切に切り替える。これにより、カメラマイコン205とレンズマイコン111およびアダプタマイコン302との間の通信を、少ない信号線で実現することができる。加えて、P2P通信とは異なるスレーブ送信のP2Pバースト通信を、少ない信号線で実現することができる。
【0194】
<マスタ送信のP2Pバースト通信モードへの切り換えの説明>
図14~
図16を参照して、カメラマイコン205、アダプタマイコン302の間で行われるP2Pバースト通信の切り換え、およびP2Pバースト通信の別の一例について説明する。
【0195】
図14は、
図11で示した方向とは逆の、カメラマイコン205からアダプタマイコン302へとデータ転送するマスタ送信のP2Pバースト通信波形を示す図である。以下の説明では、カメラマイコン205によりブロードキャスト通信にて、P2P通信の通信相手としてアダプタマイコン302が指定([1])される。そして、カメラマイコン205からの送信([2])と、アダプタマイコン302からの返信([3])である、P2P通信が実行される。その後、カメラマイコン205からマスタ送信のP2Pバースト通信にてデータを転送([4])し、アダプタマイコン302からカメラマイコン205へ結果の返信([5])が行われる。
【0196】
P2P通信の通信相手を指定する処理と、P2P通信については
図6で説明した通りなので説明を省略する。このP2P通信において、のちに行われるマスタ送信のP2Pバースト通信に必要なバースト通信情報の共有を行う。本実施例のマスタ送信のP2Pバースト通信におけるバースト通信情報は、スレーブ送信のP2Pバースト通信におけるバースト通信情報と同じであり、ブロックサイズ、ブロック間ウェイト時間、フロー制御までのブロック数、トータルサイズである。
【0197】
本実施例におけるブロックサイズは、例えばマスタ送信のP2Pバースト通信の受信側であるアダプタマイコン302の連続受信可能サイズである。本実施例では8バイトとする。
【0198】
本実施例におけるブロック間ウェイト時間は、マスタ送信のP2Pバースト通信の受信側であるアダプタマイコン302が1ブロック受信完了した後に、次のブロックが受信可能となるまでの時間であり、150μsとする。但し、本実施例においては、1ブロック送信後必ずフロー制御を行う通信とするため、ブロック間ウェイト時間は使用されない。
【0199】
本実施例におけるフロー制御までのブロック数は、マスタ送信のP2Pバースト通信の受信側であるアダプタマイコン302が、マスタ送信のP2Pバースト通信以外の処理に充てる時間を確保するための間隔であり、1ブロックとする。すなわち、1ブロック送信後必ずフロー制御を行う通信とする。
【0200】
トータルサイズは、マスタ送信のP2Pバースト通信の送信側であるカメラマイコン205が、マスタ送信のP2Pバースト通信で転送したいデータのサイズである。
【0201】
続いて、カメラマイコン205からマスタ送信のP2Pバースト通信にてデータを転送し、完了後、アダプタマイコン302から返信を行う。
【0202】
具体的には、アダプタマイコン302は、バースト通信情報の共有を行うP2P通信に対して返信すると、マスタ送信のP2Pバースト通信を受信するための準備を行い、受信準備が完了すると、信号線CSにより、データ送信の待機要求を解除する。
【0203】
カメラマイコン205は、アダプタマイコン302からの待機要求の解除を受信すると、マスタ送信のP2Pバースト通信を開始し、まずはブロックサイズ8バイトである1ブロック分のデータを送信する。フロー制御までのブロック数が1ブロックなので、1ブロック送信後にブロック間ウェイト時間を待たず、アダプタマイコン302からのフロー制御を待つ。
【0204】
アダプタマイコン302は、フロー制御までのブロック数である1ブロック分受信が完了すると、信号線CSにより受信中断および次のデータ送信の待機要求を通知する。そして、マスタ送信のP2Pバースト通信の受信準備が完了すると、信号線CSにより、フロー制御解除を示す、データ送信の待機要求を解除する。
【0205】
カメラマイコン205及びアダプタマイコン302は、以上のフロー制御の処理を、トータルサイズ分転送が完了するまで行う。
【0206】
アダプタマイコン302は、トータルサイズ分の受信が完了すると、カメラマイコン205からの、信号線CSによる送信終了および次のデータ送信の待機要求を待つ。
【0207】
カメラマイコン205は、トータルサイズ分転送が完了すると、信号線CSにより、送信終了および次のデータ送信の待機要求を通知したのち、データ送信の待機要求を解除する。
【0208】
アダプタマイコン302は、カメラマイコン205からの、信号線CSによる送信終了および次のデータ送信の待機要求解除を受信すると、マスタ送信のP2Pバースト通信の受信結果を送信する。そして、信号線CSにより、送信終了および次のデータ送信の待機要求を通知したのち、データ送信の待機要求を解除することで、マスタ送信のP2Pバースト通信が終了する。
【0209】
<マスタ送信のP2Pバースト通信 フロー説明>
図15~
図16を参照して、マスタ送信のP2Pバースト通信における通信フローについて説明する。
図15は、通信マスタであるカメラマイコン205によるマスタ送信のP2Pバースト通信における通信フローを説明するフローチャートである。
【0210】
ステップS400では、カメラマイコン205は、データ送信を開始する。
【0211】
ステップS401では、カメラマイコン205は、トータルサイズ分送信完了したか否かを判断し、送信完了した場合は処理を終了し、送信完了していない場合はステップS402へと進む。
【0212】
ステップS402では、カメラマイコン205は、ブロックサイズ分送信完了したか否かを判断し、送信完了した場合はステップS403へと進み、送信完了していない場合はステップS400へと進む。
【0213】
ステップS403では、カメラマイコン205は、フロー制御までのブロック数分送信完了したか否かを判断し、送信完了した場合はステップS406へと進み、送信完了していない場合はステップS404へと進む。
【0214】
ステップS404では、カメラマイコン205は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS407に進み、信号レベルがLowでない場合、ステップS405へと進む。
【0215】
ステップS405では、カメラマイコン205は、ブロック間ウェイト時間だけ経過したか判定し、経過した場合はステップS400へ、経過していない場合はステップS404へと進む。
【0216】
ステップS406では、カメラマイコン205は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、ステップS407に進み、信号レベルがLowでない場合、ステップS406の判定を繰り返す。
【0217】
ステップS407では、カメラマイコン205は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS400に進み、信号レベルがHiでない場合、ステップS407の判定を繰り返す。
【0218】
図16は、通信スレーブであるアダプタマイコン302によるマスタ送信のP2Pバースト通信における通信フローを説明するフローチャートである。
【0219】
続いて、
図16を用いて、アダプタマイコン302によるマスタ送信のP2Pバースト通信受信処理の詳細について説明を行う。レンズマイコン111の通信フローは、アダプタマイコン302の通信フローとほぼ同じであるため、本実施形態では説明を省略する。
【0220】
ステップS800では、アダプタマイコン302は、データの受信処理を行う。
【0221】
ステップS801では、アダプタマイコン302は、トータルサイズ分受信完了したか否かを判断し、受信完了した場合はステップS816へと進み、受信完了していない場合はステップS802へと進む。
【0222】
ステップS802では、アダプタマイコン302は、信号線CSの信号レベルがLowであるか否かを判定する。信号レベルがLowである場合、処理を終了し、信号レベルがLowでない場合、ステップS803へと進む。
【0223】
ステップS803では、アダプタマイコン302は、ブロックサイズ分受信完了したか否かを判断し、受信完了した場合はステップS804へと進み、受信完了していない場合はステップS800へと進む。
【0224】
ステップS804では、アダプタマイコン302は、フロー制御までのブロック数分受信完了したか否かを判断し、受信完了した場合はステップS807へと進み、受信完了していない場合はステップS805へと進む。
【0225】
ステップS805では、アダプタマイコン302は、通信以外の処理を行う必要が有るか否かを判断し、通信以外の処理を行う必要が有る場合はステップS807へと進み、通信以外の処理を行う必要がない場合はステップS806へと進む。
【0226】
ステップS806では、バースト通信の受信データ処理を実施し、ステップS800へと進む。受信データ処理は、受信データを退避し、次のブロックを受信可能とする処理である。この処理は、先述のブロック間ウェイト時間内に必ず完了する必要がある。
【0227】
ステップS807では、アダプタマイコン302は、接地スイッチ2081をオン(接続)して信号線CSへのLow出力を開始する。
【0228】
ステップS808では、アダプタマイコン302は、ブロードキャスト通信として、信号線DATAからのデータ受信を許可する。
【0229】
ステップS809では、ステップS806と同様の受信データ処理を実施する。
【0230】
ステップS810では、通信以外の処理を実行する。
【0231】
ステップS811では、アダプタマイコン302は、接地スイッチ2081をオフ(遮断)して信号線CSへのLow出力を解除する。
【0232】
ステップS812では、アダプタマイコン302は、信号線CSの信号レベルがHiであるか否かを判定する。信号レベルがHiである場合、ステップS814に進み、信号レベルがHiでない場合、ステップS813に進む。
【0233】
ステップS813では、アダプタマイコン302は、信号線DATAからスタートビットの受信を検出したか否かを判断する。スタートビットの受信を検出した場合、ステップS815に進み、スタートビットの受信を検出していない場合、ステップS812に進む。
【0234】
ステップS814では、アダプタマイコン302は、P2P通信として、信号線DATAからのデータ受信を許可する。
【0235】
ステップS815では、アダプタマイコン302は、P2P通信の処理を中断する。その後、ブロードキャスト通信を行うために
図8のステップS205に進む。
【0236】
なお、カメラマイコン205とアダプタマイコン302がマスタ送信のP2Pバースト通信を行っている最中のレンズマイコン111の動作については、スレーブ送信のP2Pバースト通信と同様のため、説明を省略する。
【0237】
以上説明したように、本実施形態では、信号線CSと信号線DATAの2線で通信を行うカメラシステムにおいて、マスタ送信のP2Pバースト通信についても、少ない信号線で実現することができる。
【0238】
また、
図14に示すように、信号線CSによるフロー制御のみを使用し、ブロック間ウェイト時間を用いない処理のみを採用することも可能である。その場合、フロー制御までのブロック数を1ブロックと指定することで、受信側が受信バッファサイズ分受信した後、必ずフロー制御を行うようにすることが可能である。これにより、受信側による受信データの退避処理の処理時間が何らかの都合で可変する場合、すなわちブロック間ウェイト時間を規定できない場合でも、フロー制御を活用してP2Pバースト通信を行うことができる。
【0239】
また、ブロック間ウェイト時間による制御のみを使用し、フロー制御を用いない通信も採用可能としてもよい。例えば、フロー制御までのブロック数を0ブロックと指定することで、フロー制御を用いない通信を示すものとすることが可能である。その場合、
図12のステップS504、
図13のステップS603、
図15のステップS403、
図16のステップS804の条件分岐において、必ずフロー制御までのブロック数分通信完了していないと判断すればよい。
【0240】
さらには、
図12ステップS505、
図16ステップS805で示すように、ブロック間ウェイト時間による処理のタイミングにおいて、通信以外の処理を実行する必要が生じた場合、信号線CSをLowにする。P2Pバースト通信の送信側は、
図13のステップS604、
図15のステップS404に示す通り、ブロック間ウェイト時間だけウェイトする処理において、信号線CSがLow状態であることを検知した場合、信号線CSによるフロー制御の処理に移行する。以上のように、ブロック間ウェイト時間による処理のタイミングにおいて、通信以外の処理を実行する必要が生じた場合、フロー制御を発生させ、通信以外の処理の時間を確保することができる。
【0241】
また、本実施形態では、通信スレーブは、P2P通信モードにおいて、データ送信後の待機要求を示す制御信号を受信している間、すなわち信号線CSの信号レベルがLowレベルになっている間、ブロードキャスト通信の受信待ちを行う。具体的には、
図10のステップS404およびステップS415、
図13のステップS609、
図16のステップS808で説明したように、通信スレーブは、ブロードキャスト通信として信号線DATAからのデータ受信を許可する。そして、
図10のステップS407およびステップS418、
図13のステップS611、
図16のステップS813に示す通り、データの受信を許可している間にデータを受信するかどうかを判定する。データを受信した場合、
図10のステップS420、
図13のステップS613、
図16のステップS815に示す通り、P2P通信を中断し、ブローキャスト通信モードへの移行を行うことができる。
【0242】
例えば通信ノイズなどの影響により、カメラマイコン205がアダプタマイコン302やレンズマイコン111と通信タイミングの認識にずれが発生したことを検知されることあり得る。この場合に、上述の処理によってP2Pバースト通信の最中であってもブロードキャスト通信を用いて通信をやり直すことが可能となる。
【0243】
続いて、
図17を参照して、ブロードキャスト通信を、通信スレーブであるレンズマイコン111およびアダプタマイコン302から開始する場合について説明する。
図17は、ブロードキャスト通信における信号波形を示す図である。ブロードキャスト通信を、通信スレーブから開始することを、通信リクエストと呼ぶ。通信リクエストは、なお、カメラマイコン205から通信スレーブへの通信が一時停止された状態において、ブロードキャスト通信を、通信スレーブが主体的に再開させることを、通信リクエストと呼ぶ。カメラマイコン205への通信リクエストは、カメラマイコン205から通信スレーブへの通信が一時停止された状態において、通信スレーブがカメラマイコン205との通信を主体的に再開させるときに実行される。以下では、一例として、レンズマイコン111からブロードキャスト通信の開始を通知し、カメラマイコン205からのブロードキャスト通信に応答する形でアダプタマイコン302からブロードキャスト通信を行う場合について説明する。
【0244】
まず、レンズマイコン111は、ブロードキャスト通信を開始することをカメラマイコン205およびアダプタマイコン302に通知するために、信号線CSへのLow出力を開始する。次に、カメラマイコン205は、信号線CSの信号レベルがLowレベルになったことを検出すると、信号線CSへのLow出力を開始する。なお、この時点ではすでにレンズマイコン111が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
【0245】
次に、カメラマイコン205は、送信するデータを信号線DATAに出力する。一方、アダプタマイコン302は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する。なお、この時点ではすでにカメラマイコン205が信号線CSへのLow出力を開始しているので、信号線の信号レベルは変化しない。
【0246】
カメラマイコン205は、ストップビットSPの出力まで終了した後、信号線CSへのLow出力を解除する。一方、レンズマイコン111とアダプタマイコン302は信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および受信したデータに紐づけられた内部処理を行う。その後、レンズマイコン111とアダプタマイコン302は、次のデータを受信するための準備を整えた後、信号線CSへのLow出力を解除する。前述したように、信号線CSの信号レベルは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302の全てが信号線CSへのLow出力を解除することでHiとなる。したがって、信号線CSの信号レベルがHiとなることを確認することで、全てのマイコンが今回の通信に関する処理を終了し、次の通信を行うための準備を整えたと判断することができる。
【0247】
アダプタマイコン302は、信号線CSの信号レベルがHiに戻ったことを確認した後、ブロードキャスト通信を開始することをカメラマイコン205およびレンズマイコン111に通知するために、信号線CSへのLow出力を開始する。次に、アダプタマイコン302は、送信するデータを信号線DATAに出力する。一方、カメラマイコン205とレンズマイコン111は、信号線DATAから入力されたスタートビットSTを検出したタイミングで信号線CSへのLow出力を開始する。なお、この時点ではすでにアダプタマイコン302が信号線CSへのLow出力を開始しているので、信号線CSの信号レベルは変化しない。
【0248】
アダプタマイコン302は、ストップビットSPの出力まで終了した後、信号線CSへのLow出力を解除する。一方、カメラマイコン205とレンズマイコン111は、信号線DATAから入力されたストップビットSPまで受信した後、受信したデータの解析および受信したデータに紐づけられた内部処理を行う。その後、カメラマイコン205とレンズマイコン111は、次のデータを受信するための準備を整えた後、信号線CSへのLow出力を解除する。
【0249】
なお、通信スレーブであるレンズマイコン111およびアダプタマイコン302からブロードキャスト通信を開始するのは、カメラマイコン205、レンズマイコン111およびアダプタマイコン302すべてがブロードキャスト通信モードであるときのみである。
【0250】
また、通信スレーブからブロードキャスト通信を開始した場合、通信マスタであるカメラマイコン205はレンズマイコン111とアダプタマイコン302のどちらが信号線CSをLowにしたのか判別できない。したがって、カメラマイコン205は、レンズマイコン111およびアダプタマイコン302の両方に対してブロードキャスト通信を開始したか否かの情報を取得する通信を行う必要がある。
【0251】
また、カメラマイコン205がブロードキャスト通信を開始するために信号線CSにLowを出力したタイミングと、通信スレーブがブロードキャスト通信を開始するために信号線CSをLowに下げたタイミングが一致してしまう場合がある。このとき、カメラマイコン205は通信スレーブが信号線CSにLowを出力したことを検出できないため、通信スレーブからブロードキャスト通信を開始することを許可する許可通知をカメラマイコン205から通知するようにしてもよい。
【0252】
以上説明したように、本実施形態では、信号線CSと信号線DATAの2線で通信を行うカメラシステムにおいて、ブロードキャスト通信モードを、通信スレーブから開始可能である。これにより、カメラマイコン205が常にレンズマイコン111およびアダプタマイコン302に通信し続ける必要がなくなるため、無駄な通信を抑制し、通信量の削減を行うことが可能である。
【0253】
本実施例におけるバースト通信情報は、ブロックサイズ、ブロック間ウェイト時間、フロー制御までのブロック数、トータルサイズであるとしたが、これに限ることは無い。
【0254】
通信プロトコルとして、信号線CSによるフロー制御のみを使用し、ブロック間ウェイト時間を用いない処理のみを採用する場合、ブロック間ウェイト時間やフロー制御までのブロック数は共有不要である。同様に、ブロック間ウェイト時間による制御のみを使用し、フロー制御を用いない場合も、フォロー制御までのブロック数は共有不要である。
【0255】
また、これらの値を直接共有する必要は無く、これらのパラメータに相当する値がお互いに共有できれば良い。例えばフロー制御までのブロック数ではなく、フロー制御までのバイト数とした場合、ブロックサイズからフロー制御までのブロック数を算出可能である。同様に、トータルサイズではなくトータルブロック数としても、ブロックサイズからトータルサイズ相当が算出可能である。また、機能を示すIDや通信世代等を用いて共有を行ってもよい。
【0256】
さらには、バースト通信情報に別の情報を追加してもよい。例えばP2Pバースト通信の通信レートやパリティ有無等の通信設定を別途共有してもよい。P2Pバースト通信で送信するデータを特定するためのパラメータである、交換レンズ100やカメラ本体200の種類を判別するための値や取得データと紐づけられたコマンド等を付加してもよい。P2Pバースト通信で送信するデータの通信における信頼性を確認するためのパラメータである、チェックサムやCRC、ハッシュ値等を事前に共有してもよい。
【0257】
また、本実施例におけるバースト通信情報を、P2P通信でP2Pバースト通信の前に共有を行う構成としたが、これに限ることは無い。例えば、予め通信プロトコルとして取り決めておいても良いし、ブロードキャスト通信を用いてカメラマイコン205からアダプタマイコン302に通知してもよいし、別の通信ラインを用いて共有を行ってもよい。
【0258】
<実施例1の効果>
例えばカメラ本体とアクセサリ装置とで光学情報をカメラシステムの起動時に受信する場合、起動時には受信処理以外の処理も並列で行われる。例えば、後述の別の通信経路による交換レンズとの通信やアクセサリ装置のアクチュエータの初期化処理、カメラ本体の各部材の起動処理等である。このように、受信処理とその他の様々な処理を並列で実行する必要があり、これらの処理時間が起動時間に影響するため、より多くのデータをより短時間で取得できることが好ましい。
【0259】
ここで、膨大なデータをまとめて転送する場合に、受信側は、受信バッファがオーバーフローしないように制御する必要がある。例えば第1の通信方式や第2の通信方式を用いてカメラ本体が膨大なデータを受信しようとした場合、1回の受信処理で受信できるサイズ毎に区切ってデータを要求することが考えられる。この場合、データの要求とその受信処理を繰り返す必要があり、転送時間が増加するという課題がある。
【0260】
これに対し、本実施例の第3の通信方式ではブロック間のウェイトとフロー制御を併用した片方向通信によりアクセサリ装置からデータを受信する構成とした。これにより、より多くのデータをより短時間で取得することができる。
【0261】
(実施例2)
以下、本発明の実施例2について、図面を参照しながら詳細に説明する。実施例1との差異は、フロー制御を信号線CSではなく、信号線DATAを用いて行うことである。各図において、同一の部材については同一の参照番号を付し、重複する説明は省略する。また、実施例1と同様の構成においても、説明を省略する。
【0262】
図18はアダプタマイコン302からカメラマイコン205へとデータを転送する、スレーブ送信のP2Pバースト通信の通信波形を示す図である。実施例1の
図11においてはフロー制御が信号線CSで行われていたのに対し、本実施例では信号線DATAを用いて行っている。
【0263】
フロー制御のためにカメラマイコン205から出力される信号線DATAの値は2バイトであり、1バイト目は実施例1の信号線CSの立ち下がり、2バイト目は信号線CSの立ち上がりに相当する意味であるとする。
【0264】
続いて、
図19を用いて、カメラマイコン205によるスレーブ送信のP2Pバースト通信受信処理の詳細について説明を行う。なお、実施例1の
図12と同様の処理については同符号を付し、説明を省略する。
【0265】
ステップS901では、カメラマイコン205は、入出力切り換えスイッチ2082を操作し、信号線DATAをカメラマイコン205のデータ出力部に接続する。
【0266】
ステップS902では、カメラマイコン205は、1バイトのデータを出力する。
【0267】
ステップS903では、カメラマイコン205は、
図12のステップS506と同様の、受信データ処理を実施する。
【0268】
ステップS904では、カメラマイコン205は、
図12のステップS509と同様の、通信以外の処理を実行する。
【0269】
ステップS905では、カメラマイコン205は、1バイトのデータを送信する。
【0270】
ステップS906では、カメラマイコン205は、入出力切り換えスイッチ2082を操作し、信号線DATAをカメラマイコン205のデータ入力部に接続する。
【0271】
続いて、
図20を用いて、アダプタマイコン302によるスレーブ送信のP2Pバースト通信送信処理の詳細について説明を行う。なお、実施例1の
図13と同様の処理については同符号を付し、説明を省略する。
【0272】
ステップS1001では、アダプタマイコン302は、入出力切り換えスイッチ3032を操作し、信号線DATAをアダプタマイコン302のデータ入力部に接続する。
【0273】
ステップS1002では、アダプタマイコン302は、P2P通信として、信号線DATAからのデータ受信を許可する。
【0274】
ステップS1003では、アダプタマイコン302は、フロー制御までのブロック数分送信完了したか否かを判断し、送信完了した場合はステップS1006へと進み、送信完了していない場合はステップS1004へと進む。
【0275】
ステップS1004では、アダプタマイコン302は、1バイト目のデータを受信したか判定し、受信した場合はステップS1007へ、受信していない場合はステップS1005へと進む。
【0276】
ステップS1005では、アダプタマイコン302は、ブロック間ウェイト時間だけ経過したか判定し、経過した場合はステップS600へ、経過していない場合はステップS1004へと進む。
【0277】
ステップS1006では、ステップS1004と同様に、ダプタマイコン302は、1バイト目のデータを受信したか判定し、受信した場合はステップS1007へ、受信していない場合はステップS1006の判定を繰り返す。
【0278】
ステップS1007では、アダプタマイコン302は、2バイト目のデータを受信したか判定し、受信した場合はステップS1008へ、受信していない場合はステップS1007の判定を繰り返す。
【0279】
ステップS1008では、アダプタマイコン302は、入出力切り換えスイッチ3032を操作し、信号線DATAをアダプタマイコン302のデータ出力部に接続する。
【0280】
以上説明したように、本実施例では、スレーブ送信のP2Pバースト通信において、信号線DATAを用いてフロー制御を行うことが可能である。
【0281】
実施例1で説明した通り、信号線CSによる通知はレンズマイコン111等のP2Pバースト通信の相手ではない通信スレーブにも通知がされるため、動作に影響を与える。一方で、本実施例では信号線CSをLowにすることなくP2Pバースト通信を実行するため、レンズマイコン111等のP2Pバースト通信の相手ではない通信スレーブに対して全く影響を与えずに通信を行うことが可能である。
【0282】
但し、信号線DATAの出力をカメラマイコン205とアダプタマイコン302とで、信号線CSによる通知を介さずに切り替えて使用するため、信号線DATAの出力が衝突することの無いようにする必要がある。具体的には、
図19のステップS901で、カメラマイコン205が信号線DATAを出力に接続するよりも前に、
図20のステップS1001でアダプタマイコン302が信号線DATAを入力に接続する必要がある。また同様に、
図20のステップ1008で、アダプタマイコン302が信号線DATAを出力に接続するよりも前に、
図19のステップS906で、カメラマイコン205が信号線DATAを入力に接続する必要がある。そのため、
図19のステップS901や
図20のステップ1008の、信号線DATAを出力に接続する処理において、ある時間だけ待ってから処理を行う方が望ましい。
【0283】
なお、本実施例ではフロー制御として、信号線DATAにて2バイトのデータを送信する例としたが、これに限ることは無く、実施例1の信号線CSと同様に、信号線DATAをLowにして、Hiにすることでも実現可能である。
【0284】
また、ブロック間ウェイト時間による処理のタイミングにおいて、通信以外の処理を実行する必要が生じた場合を考慮しなくて良い場合、2バイト分のデータで行っていたフロー制御を1バイト分に省略することができる。この場合とはすなわち、
図19のステップS505の判断を行わない場合である。具体的にはP2Pバースト通信の送信側であるアダプタマイコン302は、
図20のステップS1004の条件分岐処理が不要となるため、ステップS1006、ステップS1007の処理を共通化し、1バイト分のデータとすることが可能となる。その場合、受信側であるカメラマイコン205は、
図19のステップS505の判断を省略することに加え、ステップS902を省略すればよい。
【0285】
なお、信号線DATAを用いたフロー制御について、マスタ送信のP2Pバースト通信においても同様であるため、説明を省略する。
【0286】
(実施例3)
実施例3では、P2Pバースト通信(第3通信方式)を用いてアクセサリからデータを受信する流れについて説明する。信号線CSと信号線DATAを介した通信を第一通信と称する。本実施例では更に第二通信の構成を有する。
【0287】
<第二通信(
図23)>
第二通信について
図23を用いて説明する。第二通信は、主にカメラ本体200と交換レンズ100とが通信するための通信チャネルである。
【0288】
図23の(a)は、第二通信を行う構成を示している。本実施例の第二通信はクロック同期通信を行う場合を例示するが、調歩同期式通信を行っても良い。マウント401、402、403、404にはそれぞれ、カメラ側第二通信部207から出力されるクロックラインLCLKの端子であるLCLK端子401c、402c、403c、404cが含まれている。本実施例ではまた、同様にクロック同期通信のカメラ側第二通信部207から出力されるデータラインDCLの端子であるDCL端子401d、402d、403d、404dが含まれている。また、同様にクロック同期通信のレンズ側第二通信部114から出力されるデータラインDLCの端子である第二通信DLC端子401e,402e,403e,404eが含まれている。
【0289】
図23の(a)が示す通り、クロックラインLCLK、データラインDCLは、交換レンズ10内でプルアップされている。またクロックラインLCLK、データラインDLCは、カメラ本体20内でプルアップされている。
【0290】
中間アダプタ30内のクロックラインLCLK、データラインDCL、データラインDLCは第二通信接点303と305の間で短絡されている。
【0291】
図23の(b)は、第二通信が行われている時のクロックラインLCLK、データラインDCL、データラインDLCの波形を示している。カメラ側第二通信部207は、クロックラインLCLKにクロックを出力すると共に、クロックラインLCLKの立ち上がり信号に合わせてデータラインDCLにB7~B0の8ビットのデータを出力する。同様にレンズ側第二通信部114は、クロックラインLCLKの立ち上がり信号に合わせてデータラインDLCにB7~B0の8ビットのデータを出力する。更にカメラ側第二通信部207はクロックラインLCLKの立ち上がり信号に合わせてデータラインDLCのB7~B0の8ビットのデータを受信する。同様にレンズ側第二通信部114はクロックラインLCLKの立ち上がり信号に合わせてデータラインDCLのB7~B0の8ビットのデータを受信する。以上によりカメラ側第二通信部207およびレンズ側第二通信部114が通信データをお互いに交換する事が出来る。レンズ側第二通信部114は、データラインDCLのB7~B0の8ビットのデータを受信すると、クロックラインLCLKをTbusyの時間LOW出力し、その後LOW出力を解除する。ここでTbusy時間は交換レンズ10が受信データを処理している時間であり、カメラ側第二通信部207はデータ送信後にクロックラインLCLKがLOWからHIGHに変化するまでデータ送信を行わない構成となっている。この信号制御により、第二通信のフロー制御を行う事ができる。以上の処理を繰り返す事で、第二通信によりカメラ側第二通信部207とレンズ側第二通信部114の間でデータの伝達を行う事が出来る。
【0292】
<初期通信と、第3通信方式によるデータ通信(
図24)>
次に、カメラマイコン205がアダプタマイコン302、交換レンズ100の識別情報を取得し、第一通信の第3通信方式でアクセサリからデータを受信する流れについて
図24を用いて説明する。初期通信では、カメラマイコン205が交換レンズ100やアダプタマイコン302など、カメラ本体200に装着されたアクセサリから、後述する認証情報など、後の通信のために用いられる情報が取得される。本実施例では第一通信の第3通信方式での通信前に、アクセサリが第3通信方式に対応しているかの情報を認証情報として取得し、第3通信方式の設定を行う。そして、第3通信方式によりアクセサリからデータを受信する。この流れを、
図24を用いて説明する。
図24は、中間アダプタおよび交換レンズが装着された状態で電源を供給された場合に実行される。
【0293】
S2401にてカメラ本体200が起動すると、S2402に遷移する。
【0294】
S2402に遷移すると、カメラ本体200は、不図示の電源供給用マウント接点を介して、交換レンズ100、中間アダプタ300に電源を供給し、S2403およびS2404に遷移する。
【0295】
S2403に遷移すると、カメラマイコン205は、第二通信にてレンズマイコン111から認証情報を取得する。認証情報は、交換レンズ識別情報を含んでいる。交換レンズ識別情報は、交換レンズの種類(機種)の識別に用いられる機種ナンバー(ID)等の情報であってもよいし、交換レンズ固有の光学データを示す光学データ識別情報であってもよい。また、交換レンズが有する機能を示す情報や同一機種の中での個体を識別可能な製造ナンバー(シリアルナンバー)等の情報を含んでいてもよい。
【0296】
第二通信にて交換レンズ100認証情報を取得するサブプロセスS2403の流れについては
図25を用いて後述する。S2404に遷移すると、カメラマイコン205は、第一通信にてアクセサリと初期通信を行い、アクセサリの認証情報を取得する。アクセサリの認証情報には、アクセサリの識別情報が含まれている。
【0297】
例えばアクセサリの認証情報が中間アダプタ認証情報である場合に、中間アダプタ認証情報にはアクセサリの識別情報として中間アダプタ識別情報が含まれる。中間アダプタ識別情報は、中間アダプタの種類(機種)の識別に用いられる機種ナンバー(ID)等の情報であってもよいし、中間アダプタ固有の光学データを示す光学データ識別情報であってもよい。また、中間アダプタが有する機能を示す情報や同一機種の中での個体を識別可能な製造ナンバー(シリアルナンバー)等の情報を含んでいてもよい。
【0298】
ただし、交換レンズの識別情報に関しては第二通信で取得するため、第一通信で送信する識別情報は中間アダプタの識別情報と重複しない値(例えば交換レンズであることを示す値)を送信してもよい。中間アダプタの識別情報と重複しない値とする理由は、第一通信の通信対象を通知するために識別情報を用いるからである。
【0299】
第一通信にて中間アダプタ認証情報を取得するサブプロセスS2404の流れについては
図26を用いて後述する。S2403およびS2404は、別の通信経路を使用するため、処理を並行して行ってもよいし、順次行ってもよい。
【0300】
S2403およびS2404により交換レンズの認証情報、装着されているアクセサリの認証情報を取得すると、S2405に遷移する。
【0301】
S2405に遷移すると、カメラマイコン205は、S2404にて取得したアクセサリの識別情報を用いて各アクセサリから第一通信の第3通信方式対応情報を取得する。第3通信方式対応情報は、そのアクセサリが第3通信方式に対応しているか否かを示す情報である。第3通信方式対応情報が、第3通信方式に対応していることを示す場合には、第3通信方式の設定を行う。第一通信にて各アクセサリの第3通信方式対応情報を取得し第3通信方式の設定を行うサブプロセスS2405の流れについては
図27を用いて後述する。
【0302】
第3通信方式の設定が完了すると、S2406へ遷移する。第3通信方式に対応しているアクセサリがある場合にはS2407へ遷移し、第3通信方式による中間アダプタ300からのデータ受信を行う。第3通信方式としては、
図11で説明したCSラインによりフロー制御を行うスレーブ送信のP2Pバースト通信でもよいし、
図18で説明したデータラインによりフロー制御を行うスレーブ送信のP2Pバースト通信でもよい。第一通信専用のマイコンを用いたり、DMAを用いたりしてフロー制御の必要が無い場合には、ブロック制御時間のみを設定すればよい。カメラ第一通信部の受信バッファが十分大きな場合には、ブロック制御も行わなくてよい。
【0303】
第3通信方式に対応しているアクセサリが無い場合にはS2408へ遷移する。
【0304】
S2407では第3通信方式によるデータ受信を行う。このとき、S2405で行った設定に従って第3通信方式でアクセサリからデータを受信する。S2407で第3通信方式によるデータ受信が完了するとS2408に遷移し、アクセサリ装置からのデータ受信は終了する。
【0305】
第3通信方式によるデータ取得後は、第二通信はカメラ本体200が交換レンズ100を制御するための通信に使われ、第一通信は主にカメラ本体200が中間アダプタ300、の操作情報を定常的に取得するための通信に使われる。交換レンズの操作部材130の操作情報を定常的に取得するための通信は、各通信経路の占有率や通信および制御に必要とされる即時性を考慮して、第一通信、第二通信のいずれを用いてもよい。
【0306】
<カメラと交換レンズの第二通信による認証情報の取得処理(
図25)>
図25は、実施例3のカメラシステムにおいて、カメラ本体200が交換レンズ100と行う初期通信であるサブプロセスS2403の流れを示している。S2403では、カメラマイコン205がレンズマイコン111から交換レンズ100の認証情報を取得する。
【0307】
S2501にてサブプロセスが開始されるとS2502に遷移する。
【0308】
S2502に遷移すると、カメラ第二通信部209はレンズ第二通信部132に対して、第二通信にて交換レンズ認証情報送信要求を送信する。
【0309】
S2503にて、レンズ第二通信部132が交換レンズ認証情報送信要求を受信するとS2504に遷移する。そして、レンズ第二通信部132は第一通信にて交換レンズ認証情報をカメラ第二通信部209に送信する。
【0310】
S2505にてカメラ第二通信部209が交換レンズ認証情報を受信すると、S2506に遷移し、受信した交換レンズ認証情報をカメラマイコン111に記憶する。
【0311】
S2507を以て、サブプロセスS2403は終了する。
【0312】
<カメラとアクセサリの第一通信による認証情報の取得処理(
図26)>
図26は、実施例3のカメラシステムにおいて、カメラ本体200とアクセサリとが行う初期通信処理であるサブプロセスS2404の流れを説明する図である。S2404では、カメラマイコン205がアクセサリの認証情報を取得する。
【0313】
S2602に遷移すると、カメラマイコン205は第一通信の第1通信方式で認証通信開始通知をブロードキャスト通信する。
【0314】
アダプタマイコン302はS2603で第1通信方式により認証通信開始通知を受信すると、S2605へ遷移し第一通信を第2通信方式の受信状態へ変更する。
【0315】
第一通信では、カメラ本体200が通信する相手が1個以上のアクセサリであることがあり得る。このような一対多の通信においては、例えば通信の対象とするアクセサリの識別情報を通信データの先頭に追加するなどして送信先を指定することができる。しかしながら、S2602の段階ではカメラマイコン205はアクセサリの識別情報を有していないため、通信データによる送信先の指定ができない。
【0316】
そこで、本サブプロセスにおいてカメラ本体200が複数のアクセサリと順次通信していく手段の一例として、次のように
図2で示した中間アダプタ300のCSラインに設置されているCSスイッチ3033を利用する方法が挙げられる。定常状態においてCSスイッチ3033は短絡しているとする。
【0317】
S2601においてカメラマイコン205が第一通信にて本サブプロセス開始情報を送信する。CSスイッチ3033が短絡されているので、各アクセサリは本サブプロセス開始情報を受信する。本サブプロセス開始情報を受信したアダプタマイコン302は、CSスイッチ3033を開放する。これにより、中間アダプタ通信部303だけがカメラ第一通信部208と接続されている状態になり、カメラ第一通信部208が送信するデータを受信することができる。受信したデータに対する処理が終了した中間アダプタ制御部309がCSスイッチ3033を短絡することで、交換レンズ第一通信部112はカメラ第一通信部208が送信するデータを受信することができる。CSスイッチ3033を短絡したアダプタマイコン302は、本サブプロセスが終了するS2621においてカメラマイコン205が送信する認証通信完了通知を受信するまで、カメラ第一通信部208が送信した情報に応答しない。
【0318】
このようにして、カメラマイコン205は複数のアクセサリと順次通信していくことが可能となる。
【0319】
S2604において、CSスイッチ3033が開放されているため、レンズマイコン111はS2602でカメラ第一通信部112から送信された認証通信開始通知を受信しない。
【0320】
S2602で認証通信開始通知を送信後S2606に遷移すると、カメラマイコン205は第一通信を第2通信方式の送信状態に切り替え、中間アダプタマイコン302に対して、認証情報要求を送信する。送信後、カメラマイコン205は第一通信を第2通信方式の受信状態に切り替える。
【0321】
本実施例の認証情報要求は、少なくともアクセサリの識別情報と、終端情報とを含む認証情報をカメラ制御部205へ送信することを要求する通信である。
【0322】
S2607にて中間アダプタ通信部303が第2通信方式により認証情報要求を受信すると、S2608に遷移する。
【0323】
S2608では、中間アダプタマイコン302は、アダプタマイコン302の認証情報を第一通信第2通信方式でカメラ第一通信部208に送信する。
【0324】
ここで、中間アダプタがカメラマイコン205に送信する認証情報には、少なくともアクセサリの識別情報と、終端情報とが含まれる。
【0325】
本実施例で、終端情報とは、カメラマイコン205からみて第一通信の終端であるか否かを示す情報である。当該中間アダプタがカメラマイコン205からみて第一通信の終端であれば、終端情報は「終端である」ことを示す情報である。カメラマイコン205からみて第一通信の終端でなければ、終端情報は「終端ではない」ことを示す情報である。
【0326】
S2608において、中間アダプタマイコン302は認証情報をカメラ第一通信部208に送信した後、S2609へ遷移し、CSスイッチ3033を短絡する。これにより、交換レンズ第一通信部112はカメラ第一通信部208が送信するデータを受信することができる。S2609まででアダプタマイコン302は初期通信でやり取りするデータの送受信が完了したので、第一通信を認証通信完了待ち状態へ変更し、以後、S2621において認証通信完了通知を第一通信第1通信方式で受信するまで、第一通信には反応しない。
【0327】
S2610にてカメラマイコン205が中間アダプタ300の認証情報を受信すると、S2611に遷移する。そこで、受信した認証情報を記憶する。
【0328】
以上、S2602~S2611により中間アダプタ300の認証情報を取得すると、S2612に遷移する。S2612、S2614~S2619ではS2602~S2603、S2605~S2611と同様に、カメラマイコン205は交換レンズ100の認証情報を取得する。
【0329】
S2613では、中間アダプタ制御部309は、カメラ制御部205が送信した認証情報要求を受信するが、本サブプロセス終了情報を受信していないため、応答しない。
【0330】
実施例3は交換レンズ1つと中間アダプタ1つの計2つのアクセサリを接続した例であるが、中間アダプタは2つ以上接続してもよい。中間アダプタをいくつ装着してもよいため、アクセサリの情報取得処理において、アクセサリの終端情報を取得することが好ましい。
【0331】
アクセサリの終端情報の取得方法として、例えば、本実施例のように、カメラマイコン205が認証情報要求を送信した際に、レンズ第二通信部115から返される終端情報により交換レンズであることを通知されてもよい。また、終端のアクセサリが、不図示の端子の接続状態などにより自身が終端であることを検知してカメラマイコン205に通知してもよい。本実施例では、カメラ制御部205からの認証情報要求に対してレンズマイコン111が終端情報を含む認証情報を返答することにより、終端情報が通知される場合について記述している。
【0332】
S2616においてS2610と同様にカメラマイコン205が第一通信第2通信方式にて認証情報要求を送信する。
【0333】
S2619によりカメラマイコン205が交換レンズ100の認証情報を受信する。この認証情報に交換レンズの識別情報および終端情報が含まれていることから、現在の通信対象が交換レンズであり、第一通信の末端のアクセサリであると判明する。交換レンズ識別情報を記憶する必要がある場合は、S2611と同様、カメラ制御部205に記憶する。
【0334】
末端のアクセサリとの認証通信が終了したので、S2620へ遷移し、第一通信の第1通信方式で認証通信完了通知を送信する。アダプタマイコン302はS2621で、レンズマイコン111はS2622で認証通信完了通知を受信し、定常状態へ遷移する。定常状態では、カメラマイコン205から第一通信の第1通信方式で自身の識別情報を受信した際、第一通信を第2通信方式の受信状態へ遷移させる。
【0335】
以上により、カメラとアクセサリの第一通信による認証情報の取得処理は終了し、S2623へ遷移する。これを以てサブプロセスS2404は終了する。
【0336】
本実施例では、本実施例では、第二通信接続スイッチを利用して、複数のアクセサリと順次通信していく手段を用いた処理について説明した。ただし、複数のアクセサリと通信することができれば別の手段であっても良い。例えば、アクセサリが自身に接続されている不図示の端子の電圧レベルを検知することで、カメラ本体側から何番目に装着されているかを把握することもできる。その場合、カメラから送信される情報送信要求の回数をカウントして自身の装着順と一致した時だけ情報をカメラ本体に送信する。
【0337】
<第3通信方式の対応情報を取得し、設定を行うサブプロセスS2405(
図27)>
実施例3において、通信によりカメラ本体200が第一通信の第3通信方式に対応しているアクセサリの第3通信方式の通信設定を行うサブプロセスS2405の流れについて
図27を用いて説明する。
【0338】
本サブプロセスでは、中間アダプタ300が第3通信方式に対応しているとする。交換レンズ100に対して第3通信方式の対応情報の取得及び設定を行う場合には、S2712で本サブプロセスを終了する前に中間アダプタ300に行う通信を交換レンズ100に対しても行えばよい。
【0339】
S2701にてサブプロセスが開始されるとS2702に遷移する。
【0340】
S2702に遷移すると、カメラマイコン205は第一通信の第1通信方式により中間アダプタ300の識別情報を送信する。第1通信方式はブロードキャスト通信なので、S2703においてアダプタマイコン302、レンズマイコン111とも中間アダプタ300の識別情報を受信する。
【0341】
S2704へ遷移すると、自身の識別情報を受信した中間アダプタ300のアダプタマイコン302は、第一通信を第2通信方式の受信状態へ変更する。一方で、自身の識別情報とは異なる情報を受信した交換レンズ100はS2705へ遷移し、現在の状態を維持する。
【0342】
S2702で中間アダプタ300の識別情報を送信したカメラマイコン205は、アダプタマイコン302と第一通信の第2通信方式で通信を行うため、第2通信方式への切り替えを行う。
【0343】
S2706でカメラマイコン205は第一通信の第2通信方式で第3通信方式対応情報送信要求を送信する。
【0344】
S2707で第3通信方式対応情報送信要求を受信したアダプタマイコン302はS2708へ遷移し、第一通信の第2通信方式で第3通信方式対応情報を送信する。
【0345】
S2709でカメラマイコン205が第一通信の第2通信方式で第3通信方式対応情報を受信すると、S2710へ遷移する。
【0346】
S2710へ遷移すると、カメラマイコン205はS2709でアダプタマイコン302から受信した情報に基づき、中間アダプタ300が第3通信方式に対応しているか判断する。中間アダプタ300が第3通信方式に対応していない場合にはS2712へ遷移し、サブプロセスS2405は終了する。
【0347】
中間アダプタ300が第3通信方式に対応している場合にはS2711へ遷移し、第3通信方式の設定を行う。第3通信方式の設定を行うサブプロセスS2711の流れについては
図28を用いて後述する。
【0348】
S2711で第3通信方式の設定を行うとS2712へ遷移し、サブプロセスS2405は終了する。
【0349】
<第3通信方式の設定を行うサブプロセスS2711(
図28)>
実施例3において、通信によりカメラ本体200が第一通信の第3通信方式に対応しているアクセサリに対して第3通信方式の設定を行うサブプロセスS2711の流れについて
図28を用いて説明する。
【0350】
本サブプロセスでは中間アダプタ300の設定を行う。本サブプロセス開始前にカメラマイコン205は第一通信の第1通信方式で中間アダプタ300を第2通信方式の通信対象として指定しているとする。交換レンズ100に対して設定を行う場合にも、本プロセスと同様に行えばよい。
【0351】
S2801にてサブプロセスが開始されるとS2802に遷移する。
【0352】
S2802に遷移すると、カメラマイコン205は第一通信の第2通信方式により第3通信方式設定情報を送信する。本実施例では、第3通信方式設定情報として、前述のバースト通信情報のうちブロックサイズ、ブロック間ウェイト時間、フロー制御までのブロック数である。また、第3通信方式設定情報が交換レンズ100の識別情報を含んでもよい。中間アダプタ300から受信する情報が、交換レンズ100の光学特性を中間アダプタ300の光学部材で補正した光学情報である場合など、装着されている交換レンズに紐づいている場合がある。この場合には、交換レンズ100の情報を中間アダプタ300へ伝えておく必要がある。この時に送信する交換レンズ100の識別情報は機種の識別が可能なように第二通信で取得した識別情報であることが好ましい。
【0353】
S2803で第3通信方式対応情報を受信すると、S2804へ遷移する。
【0354】
S2804へ遷移すると、アダプタマイコン302はS2803で受信したバースト通信情報に基づき第3通信方式の送信設定を行う。また、S2803で受信した交換レンズ100の識別情報から、当該交換レンズ製品を自身で補正した光学情報をカメラマイコン205へ送信する準備をする。
【0355】
送信設定が完了したらS2805へ遷移する。S2805では、第2通信方式で第3通信方式設定情報の受信結果を送信する。この送信では第3通信方式の各設定状態ではなく、S2803で受信が正常に行われたか否かを示す情報を返す。このように構成することで、例えば第3通信方式設定情報の対象とする項目が将来的に増えた場合であっても、同様に通信可能である。
【0356】
カメラマイコン205がS2806で第3通信方式設定情報の受信結果を受信する。アダプタマイコン302で受信が正常に行われていることが確認されたら、S2807へ遷移する。正常に行われていなかった場合には再度S2802からやり直す。何度やり直しても通信が正常に行われない場合には、アクセサリ装置に供給している電源をリセットし、認証情報の取得からやり直す。
【0357】
S2807に遷移するとカメラマイコン205は第2通信方式で第3通信方式設定送信要求を送信する。
【0358】
アダプタマイコン302はS2808で第3通信方式設定要求を受信するとS2809へ遷移し、S2804で設定した第3通信方式の設定状態を第2通信方式で送信する。本実施例の第3通信方式の設定情報は、前述のバースト通信情報であるブロックサイズ、ブロック数、ウェイト時トータルバイト数に加え、光学情報のヘッダのバイト数である。
【0359】
ヘッダには、光学情報全体のうち、各データのサイズと格納されているアドレスが保持されており、バースト通信開始時にアドレスおよびサイズを指定することで所望のデータだけを取得できる。アドレスに先頭の番地を、サイズにトータルバイト数を指定することで、光学情報全体を取得できる。
【0360】
ヘッダには、光学情報のうち簡易的な変換テーブルを含んでもよい。これにより、ヘッダ情報を取得すれば光学情報全体を取得する前に、レンズの光学情報の簡易変換が可能となる。
【0361】
カメラマイコン205はS2810で第3通信方式設定状態を受信すると、S2811へ遷移し、受信した中間アダプタ300の設定状態を確認し、自身の第3通信方式の設定を行う。S2811でカメラ本体の第3通信方式の設定が完了するとS2812へ遷移し、サブプロセスS2711は終了する。
【0362】
<実施例3の効果>
以上示すように、受信側の受信バッファサイズをブロックサイズとして規定し、1ブロック分転送した後に、受信側が必要な時間であるブロック間ウェイト時間だけ通信を行わない時間を設ける。これにより、データを連続して転送しても正常に受信することが可能となる。
【0363】
また、フロー制御までのブロック数だけ転送した後にフロー制御を行うことで、受信側が必要な時間だけ、送信側からのデータ転送を止めることが可能であり、通信以外の処理についても並行して行うことが可能である。
【0364】
さらには、P2P通信と異なり、P2Pバースト通信は、通信マスタと通信スレーブのうち、膨大なデータの送信側がデータを出力し、受信側だけ信号線CSによる通知を行うため、P2P通信に比べて通信時間を短くすることが可能である。
【0365】
また、P2Pバースト通信の受信側の信号線CSによるフロー制御は、通信マスタ、通信スレーブ全てが通知を取得する必要があるため、信号線CSをLowで維持する時間等はある程度の時間を確保する必要がある。そのため、フロックサイズやフロー制御までのブロック数をなるべく多くし、フロー制御の回数を減らすことで、P2Pバースト通信全体としては、転送時間の削減が可能となる。
【0366】
また、第二通信で取得した交換レンズの識別情報を含んだ第3通信方式の設定を行うことで、装着している交換レンズに紐づいた情報を中間アダプタから取得できる。
【0367】
(実施例4)
次に、本発明の実施例4について説明する。本実施例はS2407のサブプロセスである。本実施例のカメラシステムの構成は、実施例3と同様である。
【0368】
本実施例では、カメラ本体200を介して、中間アダプタ300のファームウェアを更新できることを特徴とする。具体的には、前述の第3通信方式で中間アダプタ300のファームウェア更新データを通信することで、一対多通信が可能な第1通信においてもファームウェア更新処理を正常かつ高速に行うことが可能となる。
【0369】
本実施例において、中間アダプタマイコン302は、書き換え可能な不揮発メモリ(不図示)を有しており、中間アダプタマイコン302が実行する制御ソフトウェア(ファームウェア)、中間アダプタ300に関する識別情報や状態情報を記憶する。識別情報は例えば機種名、光学特性、補正情報などの中間アダプタ300に固有の情報である。また、状態情報は例えば動作状態(正常/セーフモード)、ファームウェアのバージョンや更新状態などである。ただし、これらに限定されない。また、メモリには、後述するセーフモードで中間アダプタ300を動作させる際に実行するプログラムも記憶されている。
【0370】
また、中間アダプタマイコン302はCPUなどのプログラマブルプロセッサ(不図示)を有し、メモリからプログラムを読みだして実行することにより、後述する中間アダプタ300の動作をはじめとした、各種の動作を実現する。例えば中間アダプタマイコン302は、前述の通信部303を介してカメラマイコン205から受信した命令に応じた動作、メモリに記憶されたファームウェアの更新を実行する。
【0371】
中間アダプタマイコン302は、メモリに記憶されている古いファームウェアを、例えばカメラマイコン205から通信部303を介して受信した新しいファームウェアで上書きすることによってファームウェアを更新する。また、中間アダプタマイコン302は、ファームウェアの更新処理の状態を表すデータ(更新状態データ)をメモリに記録することで、更新処理を管理する。例えばアダプタマイコン302はファームウェアの上書きを行う前に、更新状態データを「未完了」を示す値にし、ファームウェアの上書きが完了すると更新状態データを「完了」を示す値にする。なお、「完了」を示す値は「正常完了」を示す値と「異常完了」を示す値とで異なっていてもよい。また「異常完了」を示す値は、異常の原因に応じて異なる値であってよい。
【0372】
例えば、ファームウェアの更新中に中間アダプタ300が外された場合、中間アダプタ300への電源供給が絶たれるため、更新状態データが「未完了」を示す値のまま更新処理が中断される。例えば中間アダプタマイコン302は、電源が再び供給された際に更新状態データを確認し、未完了状態を示す値であった場合には、動作が制限されたモード(セーフモード)に移行する。セーフモードはファームウェアの更新によって書き替えられない領域により動作し、ファームウェアの更新が完了しなかった場合であってもファームウェアの更新が行えることを保証する。
【0373】
セーフモードでは、ファームウェアの更新を行うために必要な処理を含む、制限された機能だけが実行可能である。具体的には、セーフモードであることを示す情報(あるいはファームウェア更新の要求)をカメラマイコン205に送信する処理と、カメラマイコン205から受信したファームウェアでメモリのファームウェアを更新する処理が可能である。それ以外の処理、例えば第3通信方式での送受信などは行うことができない。
【0374】
通常、メモリの容量はファームウェア全体を二重化して記憶できるほど大きくない。そのため、セーフモード用のプログラム記憶に利用できる容量は制限される。したがってセーフモードでは、中間アダプタ300の動作状態の送信やファームウェアの更新といった必要最低限の機能を含む、限られた機能だけが提供される。中間アダプタマイコン302はセーフモード中に通信部303で、セーフモードでは実行できない処理の要求、例えば第3通信方式設定要求などを受信した場合、要求を無視する。
【0375】
図29を用いて、カメラ本体200に挿入されたメディアに記録されているファーム更新ファイルが現在装着されている中間アダプタ300のファーム更新ファイルか否かを中間アダプタ300へ問い合わせるシーケンスについて説明する。このシーケンスで得られる情報により、中間アダプタ300のファーム更新ファイルのみをメニュー画面に表示する。表示画面のイメージを
図30に示す。
【0376】
<ファーム更新ファイル対応情報の取得(
図29)>
図29は、実施例4のカメラシステムにおいて、カメラ本体200に挿入されたメディアに記録されているファーム更新ファイルが中間アダプタ300のものか否かを確認する流れを説明する図である。本プロセスでは、カメラ本体200に挿入されたメディアに記録されているファーム更新ファイルの識別情報を、第一通信を用いてカメラ本体200から中間アダプタ300へ送信し、対応情報を取得する。
【0377】
S2901にてプロセスが開始されるとS2902に遷移する。
【0378】
S2902に遷移すると、カメラマイコン205は第一通信の第1通信方式により中間アダプタ300の識別情報を送信する。第1通信方式はブロードキャスト通信なので、S2903においてアダプタマイコン302、レンズマイコン111とも中間アダプタ300の識別情報を受信する。
【0379】
S2904へ遷移すると、自身の識別情報を受信した中間アダプタ300のアダプタマイコン302は第一通信を第2通信方式の受信状態へ変更する。一方で、自身の識別情報とは異なる情報を受信した交換レンズ100は、現在の状態を維持する。
【0380】
S2902で中間アダプタ300の識別情報を送信したカメラマイコン205は、アダプタマイコン302と第一通信の第2通信方式で通信を行うため、第2通信方式への切り替えを行う。
【0381】
S2906でカメラマイコン205は第一通信の第2通信方式でファーム更新ファイル識別情報を送信する。
【0382】
本実施例のファーム更新ファイル識別情報は、ファーム更新ファイルに記録されているアクセサリの識別情報でもよいし、その他アクセサリを示す情報でもよい。また、古いファームへのファーム変更を許さない場合などは、ファーム更新ファイルに記録されているバージョン情報を含んでもよい。また、交換レンズや中間アダプタなどアクセサリの種別を判断する情報を含んでもよい。
【0383】
S2907にて中間アダプタ通信部303が第2通信方式によりファーム更新ファイル識別情報を受信すると、S2908に遷移する。
【0384】
S2908では、中間アダプタマイコン302は、S2907で受信したファーム更新ファイル識別情報を元に、当該ファーム更新ファイルにより自身のファームが更新可能か否かを判断する。判断した結果をファーム更新ファイル対応情報として第一通信の第2通信方式でカメラ第一通信部208に送信する。
【0385】
S2908において、中間アダプタマイコン302は認証情報をカメラ第一通信部208に送信した後、S2912へ遷移する。
【0386】
S2609にてカメラマイコン205が中間アダプタ300のファーム更新ファイル対応情報を受信すると、S2911に遷移する。中間アダプタ300が当該ファーム更新ファイルに対応していれば
図30のようにファーム更新ファイル名をメニューに表示し、ユーザーが選択可能な状態にする。
【0387】
ファームアップファイルが複数ある場合には本プロセスを繰り返してもよい。続けて同じアクセサリ(本実施例では中間アダプタ300)に対応情報を問い合わせる場合には、第2通信方式の通信対象として中間アダプタ300がすでに指定されているため、S2902~S2904を省略してもよい。
【0388】
S2911が終了するとS2912へ遷移し、本プロセスは終了する。
【0389】
交換レンズからファーム更新ファイルの対応情報を取得するためには、本プロセスと同様に行ってもよいし、第二通信を用いてもよい。
【0390】
以上より、装着されているアクセサリに対応するファーム更新ファイルをメニューに表示し、ユーザーが選択可能な状態になる。
【0391】
<第一通信によるアクセサリのファーム更新(
図31)>
次に、第一通信による中間アダプタ300のファーム更新について説明する。
図31は、実施例4のカメラシステムにおいて、カメラ本体200に挿入されたメディアに記録されているファーム更新ファイルが選択されたとき、中間アダプタ300を第一通信によりファーム更新する流れを説明する図である。本プロセスでは、カメラ本体200に挿入されたメディアに記録されているファーム更新ファイルのうち、選択されたファイルのデータを中間アダプタ300に送信する。第一通信に対応しているアクセサリはもれなく第2通信方式によるファーム更新に対応していることを前提に説明する。第2通信方式によるファーム更新に対応しているか否かは
図29で説明したファーム更新ファイル対応情報に含んでもよい。すなわち、ファーム更新ファイルに対応しているということが第2通信方式によるファーム更新ファイルに対応していることを示す。これにより、第3通信方式に対応していないカメラ本体でのファームアップも可能となる。
【0392】
S3101にてプロセスが開始されるとS3102に遷移する。
【0393】
S3102に遷移すると、カメラマイコン205は第一通信の第1通信方式により中間アダプタ300の識別情報を送信する。第1通信方式はブロードキャスト通信なので、S3103においてアダプタマイコン302、レンズマイコン111とも中間アダプタ300の識別情報を受信する。
【0394】
S3104へ遷移すると、自身の識別情報を受信した中間アダプタ300のアダプタマイコン302は、第一通信を第2通信方式の受信状態へ変更する。一方で、自身の識別情報とは異なる情報を受信した交換レンズ100は、現在の状態を維持する。
【0395】
S3102で中間アダプタ300の識別情報を送信したカメラマイコン205は、アダプタマイコン302と第一通信の第2通信方式で通信を行うため、第2通信方式への切り替えを行う。
【0396】
S3106でカメラマイコン205は第一通信の第2通信方式で第3通信方式ファーム更新対応情報送信要求を送信する。
【0397】
本実施例の第3通信方式ファーム更新対応情報送信要求は、第3通信方式によるファーム更新に対応しているか否かの情報を送信するよう中間アダプタに要求するものである。
【0398】
S3107にて中間アダプタ通信部303が第2通信方式により第3通信方式ファーム更新対応情報送信要求を受信すると、S3108に遷移する。
【0399】
S3108では、中間アダプタマイコン302は、第3通信方式ファーム更新対応情報を第一通信の第2通信方式でカメラ第一通信部208に送信する。
【0400】
S3109では、カメラマイコン205がアダプタマイコン302から第3通信方式ファーム更新対応情報を受信する。S3110において、S3109で受信した第3通信方式ファーム更新対応情報に基づいて中間アダプタ300が第3通信方式によるファーム更新に対応しているかを判断する。第3通信方式によるファーム更新に対応している場合にはS3111に遷移する。
【0401】
S3111では、第3通信方式によりカメラマイコン205からアダプタマイコン302へファーム更新ファイルのデータを送信する。第3通信方式としては、
図14で説明したCSラインによりフロー制御を行うマスタ送信のP2Pバースト通信でもよいし、実施例3のスレーブ送信の場合と同様、データラインによりフロー制御を行うマスタ送信のP2Pバースト通信でもよい。ファーム更新の場合は定常の動作モードではないため、カメラマイコン205を占有してもよければ、フロー制御の必要はない。さらに、ブロック制御時間のみを設定すればよい。カメラ第一通信部の受信バッファが十分大きな場合には、ブロック制御も行わなくてよい。このような設定は、
図28で示したサブプロセスS2711と同様に行うが、本実施例ではカメラ本体200から中間アダプタ300への通信設定である。
【0402】
S3110において、中間アダプタ300が第3通信方式によるファーム更新に対応していなければ、S3112へ遷移し、第2通信方式によりファーム更新を行う。第2通信方式によりカメラマイコン205からアダプタマイコン302へファーム更新ファイルのデータを送信し、アダプタマイコン302はブロックを受信するごとにカメラマイコン205へ受信結果などのデータを返す。第2通信方式では、ブロック毎にアダプタマイコン302からカメラマイコン205へデータを送信しなければカメラマイコン205からアダプタマイコン302へ次のデータを送信できないからである。
【0403】
S3111もしくはS3112で全データをアダプタマイコン302へ送信し、中間アダプタ300のファーム更新が終了するとS3113へ遷移し、本プロセスは終了する。
【0404】
本実施例によれば、カメラ本体200を介して中間アダプタ300のファームウェアを更新する際、第3通信方式でアダプタ300のファームウェア更新データを通信することで、ファームウェア更新処理を高速に行うことが可能となる。
【0405】
(実施例5)
次に、本発明の実施例5について説明する。本実施例はS2407のサブプロセスである。本実施例のカメラシステムの構成は、実施例3と同様である。
【0406】
本実施例では、第一通信の第3通信方式により、カメラ本体から交換レンズ100へ定期的にカメラの状態(ステータス)を送信するフローについて説明する。送信するカメラの状態としては、カメラ本体200に搭載された振動ジャイロ等の振れセンサ(不図示)により検出されたカメラ振れ・姿勢の情報や、カメラ部材操作情報などがあげられる。カメラ本体の振れセンサにより検出されたカメラ振れ・姿勢の情報は、防振レンズ103のシフト動作(防振動作)を制御する防振処理に使われる。また、カメラ部材操作情報は例えば交換レンズ100の各種アクチュエータの操作に用いられる。
【0407】
これら情報は、リアルタイム性が求められるが、定常状態において第二通信はカメラ本体200が交換レンズ100を制御するための通信に使われるため、通信のリアルタイム性を損なう。そこで、第一通信の第3通信方式を用いて、これら情報を定期的に交換レンズ100へ送信する。
【0408】
<第一通信第3通信方式によるカメラステータス通知(
図32)>
第一通信第3通信方式を用いたカメラステータス通知について説明する。
【0409】
S3201にてプロセスが開始されるとS3202に遷移する。
【0410】
S3202に遷移すると、カメラマイコン205は第一通信の第1通信方式により交換レンズ100の識別情報を送信する。第1通信方式はブロードキャスト通信なので、S3103において中間アダプタ300、交換レンズ100とも交換レンズ100の識別情報を受信する。
【0411】
自身の識別情報を受信した交換レンズ100はS3204へ遷移し、第一通信を第2通信方式の受信状態へ変更する。一方で、自身の識別情報とは異なる情報を受信した中間アダプタ300は、現在の状態を維持する。
【0412】
S3202で交換レンズ100の識別情報を送信したカメラ本体200は交換レンズ100と第一通信の第2通信方式で通信を行うため、第2通信方式への切り替えを行う。
【0413】
S3205でカメラマイコン205は第一通信の第2通信方式で第3通信方式カメラステータス通知対応情報送信要求を送信する。
【0414】
本実施例の第3通信方式カメラステータス通知対応情報は、第3通信方式によるカメラステータスの受信に対応しているか否かを示す情報である。例えば、カメラ振れ情報に対応している、カメラ部材操作情報に対応しているなど、各ステータスの対応/非対応を含んでもよい。
【0415】
S3206にて交換レンズ第一通信部112が第2通信方式により第3通信方式カメラステータス通知対応情報送信要求を受信すると、S3207に遷移する。
【0416】
S3207で、交換レンズマイコン111は、第3通信方式カメラステータス通知対応情報を第一通信の第2通信方式でカメラ第一通信部208に送信する。
【0417】
S3208では、カメラマイコン205がレンズマイコン111から第3通信方式カメラステータス通知対応情報を受信する。S3209において、S3208で受信した第3通信方式カメラステータス通知対応情報に基づいて、カメラマイコン205は交換レンズ100が第3通信方式カメラステータス通知に対応しているかを判断する。第3通信方式カメラステータス通知に対応している場合にはS3210に遷移する。
【0418】
対応していない場合にはS3213へ遷移し、このプロセスは終了する。この場合カメラステータスは第二通信で送信するか、交換レンズの制御に使用しないと判断し送信を行わない。第一通信の第2通信方式を用いるのは、リアルタイム性の観点から好ましくない。
【0419】
S3210では、第3通信方式によりカメラマイコン205からレンズマイコン111に対し、第3通信方式の通信設定を行う。
図28で示したサブプロセスS2711と同様に行うが、本実施例ではカメラマイコン205から中間アダプタ300への通信設定である。第3通信方式としては、
図14で説明したCSラインによりフロー制御を行うマスタ送信のP2Pバースト通信でもよいし、実施例3のスレーブ送信の場合と同様、データラインによりフロー制御を行うマスタ送信のP2Pバースト通信でもよい。ファーム更新の場合は定常の動作モードではないため、カメラマイコン205を占有してもよければ、フロー制御の必要はない。さらに、ブロック制御時間のみを設定すればよい。カメラ第一通信部の受信バッファが十分大きな場合には、ブロック制御も行わなくてよい。
【0420】
カメラステータスとして小さなデータを周期的に行うことが想定される。そのような場合はフロー制御およびブロック制御の時間は設定しなくてもよい。設定が完了するとS3211へ遷移する。前述の通りカメラステータスが小さなデータの場合、交換レンズ第一通信部112は常に受信可能な状態を維持し、カメラマイコン205は1ブロック分のカメラステータス情報を周期的に送信する。
【0421】
S3211でカメラステータスを送信するたびにS3212へ遷移し、カメラステータス通信を終了するか否かを判断する。カメラステータス通信を継続する場合は、S3211をループして周期的な通信を行う。カメラステータス通信を終了する場合にはS3213へ遷移し、本プロセスは終了する。
【0422】
カメラステータスは周期的に通信するため、
図18の終わりに記載されているように交換レンズが全データを受信したと判断してCSを下げることはできない。第3通信方式によるカメラステータス通信を終了する際には、例えば、第一通信の第1通信方式で終了コマンドをブロードキャスト通信すればよい。これを受けた交換レンズ100は第一通信を第3通信方式から第1通信方式の受信状態へ変更する。
【0423】
本実施例によれば、交換レンズ100へカメラステータスを送信する際、第二通信による交換レンズ100の制御を行いつつ、第一通信の第3通信方式によりカメラステータスをリアルタイムかつ高速に送信することが可能となる。
【0424】
本実施例ではS3202からS3208で、カメラマイコン205が交換レンズ100から第3通信方式カメラステータス通知対応情報を取得したが、第3通信方式カメラステータス通知対応情報の取得に第二通信を用いてもよい。また、前述のS2403、電源供給後の交換レンズ識別情報を取得する際に第3通信方式カメラステータス通知対応情報を取得してもよい。
【0425】
<その他の実施例>
実施例3では第一通信の第3通信方式による高速通信を用いたアクセサリからのデータ受信、実施例4、5では第一通信の第3通信方式による高速通信を用いたアクセサリへのデータ送信について説明した。第3通信方式を使用するケースはこれに限らず、大量データや周期データの送受信に用いることができる。また、上述した実施例は適宜組み合わせてもよい。
【0426】
上述の実施例では、P2Pバースト通信をカメラ本体200のカメラマイコン205と中間アダプタ300のアダプタマイコン302との間で実行する例を説明した。同様に、P2Pバースト通信をカメラ本体200のカメラマイコン205と交換レンズ100のレンズマイコン111との通信に適用しても良い。
【0427】
例えば、受信側から送信側へとフロー制御の通知を行う通知チャネルと、送信側から受信側へデータを転送するデータ通信チャネルとを有する送信側装置と受信側装置とのデータ転送においても、同様の効果を奏することができる。
【0428】
具体的には、
図21に示すように、送信側装置は1ブロック分送信した後、ブロック間ウェイト時間だけ通信を停止する。これをフロー制御までのブロック数分行い、受信側装置からのフロー制御を待つ。受信側装置は、1ブロック分受信した後、ブロック間ウェイト時間内に次のブロックの受信準備を行う。これをフロー制御までのブロック数分行い、必要な処理を実行した後、フロー制御により次のデータの要求を行う。これらの処理を繰り返すことで、送信側から受信側へとデータ転送を行うことが可能である。
【0429】
また例えば、受信側から送信側へと行うフロー制御の通知と、送信側から受信側へと行うデータの転送とを同一の通知兼データチャネルで行う送信側装置と受信側装置とのデータ転送においても、同様の効果を奏することができる。
【0430】
具体的には、
図22に示すように、送信側装置は1ブロック分送信した後、ブロック間ウェイト時間だけ通信を停止する。これをフロー制御までのブロック数分行い、通知兼データチャネルを入力に切りかえ、受信側装置からのフロー制御を待つ。受信側装置は、1ブロック分受信した後、ブロック間ウェイト時間内に次のブロックの受信準備を行う。これをフロー制御までのブロック数分行った後、通知兼データチャネルを出力に切り替え、必要な処理を実行した後、フロー制御により次のデータの要求を行う。これらの処理を繰り返すことで、送信側から受信側へとデータ転送を行うことが可能である。
【0431】
なお、前述の実施例では第二通信でクロック同期式通信を行う場合について説明したが、これに代えて、同じく第二通信の3線を用いることで実現される3線調歩同期式通信を採用した場合であっても同様の効果を得ることができる。
【0432】
図33は、3線調歩同期式通信における信号波形を示している。3線調歩同期式通信の場合は、前述のクロックラインLCLKに代えて、送信要求ラインRTSを有する。送信要求ラインRTSは、データラインDCLによる通信とデータラインDLCによる通信のタイミングを制御する信号をカメラマイコン205からレンズマイコン111に送信するための信号線である。例えば、カメラマイコン205からレンズマイコン111へのレンズデータの送信要求や通信処理の切替え要求等の通知に用いられる。送信要求チャネルでの通知は該送信要求チャネルでの信号レベルをHighとLowとの間で切り替えることで行う。
【0433】
以下の説明では、送信要求ラインRTSに供給される信号を送信要求信号RTSという。送信要求信号RTSは、通信マスタとしてのカメラマイコン205から通信スレーブとしてのレンズマイコン111に送られる。
【0434】
レンズマイコン111が送信要求RTSを受信すると、
図33に示すようにデータラインDLCによる1フレームデータの送信開始をカメラマイコン205に通知するため、データラインDLCの信号レベルを1ビット期間の間Lowとする。この1ビット期間を1フレームの開始を示すスタートビットSTと呼ぶ。すなわち、このスタートビットSTから1フレームデータの送信が開始される。スタートビットSTは、レンズデータ信号DLCの1フレームごとにその先頭ビットに設けられている。
【0435】
続いて、レンズマイコン111は、次の2ビット目から9ビット目までの8ビット期間で1バイトのレンズデータをカメラマイコン205に送信する。データのビット配列はMSBファーストフォーマットとして、最上位のデータD7から始まり、順にデータD6、データD5と続き、最下位のデータD0で終わる。そして、レンズマイコン111は、10ビット目に1ビットのパリティ情報PAを付加し、1フレームの最後を示すストップビットSPの期間のデータラインDLCの信号レベルをHighとする。これにより、スタートビットSTから開始され1フレームデータが終了する。
【0436】
一方、カメラマイコン205はデータラインDLCのスタートビットSTを検出すると、これに応じてデータラインDCLによる1フレームデータの送信を開始する。1フレームデータのフォーマットはデータラインDLCと同じである。
【0437】
以上説明したように、第二通信ではクロック同期式の通信に代えて3線調歩同期式の通信を実行することができる。
【0438】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0439】
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。
【0440】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【0441】
100 交換レンズ
111 レンズマイクロコンピュータ
200 撮像装置
205 カメラマイクロコンピュータ
300 中間アダプタ
302 アダプタマイクロコンピュータ
401a,402a,403a,404a CS端子
401b,402b,403b,404b DATA端子