(57)【特許請求の範囲】
【請求項１】
カメラボディに着脱可能な交換レンズであって、
前記カメラボディから出力されるクロック信号を受信するクロック受信手段と、
前記クロック信号に同期した、前記交換レンズへの制御指示を表す制御指示データ信号であって前記制御指示の種類を表す種類データを含む制御指示データ信号を前記カメラボディから受信する制御指示受信手段と、
前記受信された制御指示データ信号の前記種類データに基づいて、当該種類データを含む応答データ信号を生成する生成手段と、
前記クロック受信手段で受信された前記クロック信号に同期して、前記制御指示受信手段が前記カメラボディから次の制御指示データ信号を受信すると共に、前記応答データ信号を前記カメラボディに送信する応答送信手段とを備え、
前記生成手段は、前記制御指示データ信号を正常に受信できた場合には、当該正常に受信された制御指示データ信号中の前記種類データに基づいて、当該種類データを含む応答データ信号を生成し、前記制御指示データ信号を正常に受信できなかった場合には、前回正常に受信されたときの制御指示データ信号中の前記種類データに基づいて生成された応答データ信号を維持することを特徴とする交換レンズ。
【請求項２】
請求項１に記載の交換レンズにおいて、
前記制御指示受信手段により受信された前記制御指示データが異常であることを検知する異常検知手段を更に備え、
前記生成手段は、前記制御指示受信手段により前回受信された前記制御指示データについて前記異常検知手段により異常が検知された場合には、前回受信した前記種類データに代わり前記異常を表す異常データを含む前記応答データ信号を生成することを特徴とする交換レンズ。
【請求項３】
請求項２に記載の交換レンズにおいて、
前記制御指示受信手段により連続して受信される２つの前記制御指示データ信号は、一方の前記制御指示データ信号に含まれる前記種類データと他方の前記制御指示データ信号に含まれる前記種類データとが一致しないように構成され、
前記異常データは、前記制御指示受信手段により前々回受信された前記種類データであることを特徴とする交換レンズ。
【請求項４】
請求項１〜３のいずれか一項に記載の交換レンズにおいて、
前記受信された制御指示データ信号に基づいて所定の制御を行う制御手段と、
前記応答データ信号は、前記制御手段が前記制御指示受信手段により前回受信された前記制御指示データに基づいて行った制御の結果を表す制御結果データを更に含むことを特徴とする交換レンズ。
【請求項５】
請求項１〜４のいずれか一項に記載の交換レンズにおいて、
前記生成手段は、前記制御指示受信手段が複数の前記制御指示データ信号を順次受信している場合において、当該複数の前記制御指示データ信号のうちの、最後の制御指示データ信号の中の種類を表す種類データを含む最後の応答データ信号を生成し、
前記応答送信手段は、前記生成手段が前記最後の応答データを生成した後に前記クロック受信手段で受信した前記クロック信号に応じて、前記最後の応答データを信号をカメラボディに送信することを特徴とする交換レンズ。
【請求項６】
請求項１〜４のいずれか一項に記載の交換レンズにおいて、
前記生成手段は、前記制御指示受信手段が複数の前記制御指示データ信号を順次受信している場合において、当該複数の前記制御指示データ信号のうちの、最後の制御指示データ信号の中の種類を表す種類データに基づく応答データ信号の生成を行わないことを特徴とする交換レンズ。
【請求項７】
請求項１〜６のいずれか一項に記載の交換レンズが取り付けられるカメラボディであって、
前記交換レンズにクロック信号を送信するクロック送信手段と、
前記クロック信号に同期して、前記交換レンズに前記制御指示データ信号を送信する制御指示送信手段と、
前記交換レンズから、前記クロック信号に同期した前記応答データ信号を受信する応答受信手段と、
前記応答受信手段により受信された前記応答データ信号に基づいて、前記制御指示送信手段により前回送信された前記制御指示データ信号が前記交換レンズに正常に受信されたか否かを判定する判定手段と、
を備えることを特徴とするカメラボディ。
【請求項８】
請求項７に記載のカメラボディにおいて、
前記制御指示送信手段は、前回送信した前記制御指示データ信号が前記交換レンズに正常に受信されなかったと前記判定手段により判定された場合には、当該制御指示データ信号を前記交換レンズに再度送信することを特徴とするカメラボディ。
【請求項９】
請求項７又は８に記載のカメラボディにおいて、
前記クロック送信手段は、前記制御指示送信手段が複数の前記制御指示データ信号を前記交換レンズに対して順次送信している場合において、当該複数の前記制御指示データ信号のうちの、最後の制御指示データ信号を送信した後に、前記応答データを受信するためのクロック信号を、前記交換レンズに送信することを特徴とするカメラボディ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、交換レンズおよびカメラボディに関する。
【背景技術】
【０００２】
交換レンズとカメラボディとの間で、三線式の同期通信により双方向通信を実現したものが知られている。これは３つの信号線を用いて実現される通信方式で、１つの信号線がクロック信号に、残り２つの信号線がレンズからボディへの通信、ボディからレンズへの通信にそれぞれ割り当てられている。レンズまたはボディからクロック信号が出力されると、レンズおよびボディは、このクロック信号に同期して同時にデータの出力を行う。つまり、レンズからボディへのデータ送信と、ボディからレンズへのデータ送信とが同時に行われることになる。例えば特許文献１には、６組の接点を用いて上述の双方向通信を行う撮像装置が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１０５４０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１には、通信中の伝送エラー等により送受信が正しく行えなかった場合について何ら記載されておらず、通信の信頼性に問題があった。
【課題を解決するための手段】
【０００５】
請求項１に係る発明は、カメラボディに着脱可能な交換レンズであって、カメラボディから出力されるクロック信号を受信するクロック受信手段と、クロック信号に同期した、交換レンズへの制御指示を表す制御指示データ信号であって制御指示の種類を表す種類データを含む制御指示データ信号をカメラボディから受信する制御指示受信手段と、受信された制御指示データ信号の種類データに基づいて、当該種類データを含む応答データ信号を生成する生成手段と、クロック受信手段で受信されたクロック信号に同期して、制御指示受信手段がカメラボディから次の制御指示データ信号を受信すると共に、応答データ信号をカメラボディに送信する応答送信手段とを備え、生成手段は、制御指示データ信号を正常に受信できた場合には、当該正常に受信された制御指示データ信号中の種類データに基づいて、当該種類データを含む応答データ信号を生成し、制御指示データ信号を正常に受信できなかった場合には、前回正常に受信されたときの制御指示データ信号中の種類データに基づいて生成された応答データ信号を維持することを特徴とする交換レンズである。
請求項７に係る発明は、請求項１〜６のいずれか一項に記載の交換レンズが取り付けられるカメラボディであって、交換レンズにクロック信号を送信するクロック送信手段と、クロック信号に同期して、交換レンズに制御指示データ信号を送信する制御指示送信手段と、交換レンズから、クロック信号に同期した応答データ信号を受信する応答受信手段と、応答受信手段により受信された応答データ信号に基づいて、制御指示送信手段により前回送信された制御指示データ信号が交換レンズに正常に受信されたか否かを判定する判定手段と、を備えることを特徴とするカメラボディである。
【発明の効果】
【０００６】
本発明によれば、通信の信頼性が向上する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施の形態に係るカメラシステムの外観を示す斜視図である。
【図２】第１の実施の形態に係るカメラシステム１の構成を示す断面図である。
【図３】カメラボディ１００と交換レンズ２００との間の伝送路の詳細を示すブロック図である。
【図４】コマンドデータ通信の例を示すタイミングチャートである。
【図５】コマンドデータ通信において授受される各パケットのデータ構造を示す図である。
【図６】コマンドデータ通信におけるカメラボディ１００側の処理のフローチャートである。
【図７】コマンドデータ通信における交換レンズ２００側の処理のフローチャートである。
【図８】ホットライン通信の例を示すタイミングチャートである。
【発明を実施するための形態】
【０００８】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係るカメラシステムの外観を示す斜視図である。カメラシステム１は、カメラボディ１００と、交換レンズ２００とから構成される。交換レンズ２００はカメラボディ１００に着脱可能に取り付けられる。交換レンズ２００の取り付けは、カメラボディ１００のボディ側レンズマウント１０１に、交換レンズのレンズ側レンズマウント２０１を嵌め込むことにより行われる。
【０００９】
ボディ側レンズマウント１０１の近傍には、データ通信および電源供給のための複数の接点を備えた接点群１０２が存在する。レンズ側レンズマウント２０１の近傍には、カメラボディ側の接点群１０２の各々に対応する複数の接点を備えた接点群２０２が存在する。交換レンズ２００がカメラボディ１００に取り付けられると、接点群１０２と接点群２０２が接続され、カメラボディ１００から交換レンズ２００に交換レンズ２００を動作させるための電力が供給されると共に、カメラボディ１００と交換レンズ２００との間で後述するデータ通信を行うことができるようになる。
【００１０】
カメラボディ１００はボディＣＰＵ１０３を備える。ボディＣＰＵ１０３は所定の制御プログラムを実行することにより、カメラボディ１００内の各部の制御を行う。交換レンズ２００はレンズＣＰＵ２０３を備える。レンズＣＰＵ２０３は所定の制御プログラムを実行することにより、交換レンズ２００内の各部の制御を実行する。
【００１１】
撮像素子１０４は被写体像を撮像し、撮像信号を出力する。カメラボディ１００に設けられたレリーズスイッチ１０７が押下されると、ボディＣＰＵ１０３はこの撮像信号に各種の画像処理を行い、画像データを作成する。作成された画像データは、記憶媒体挿入口１０５内の可搬記憶媒体１０６に記憶される。
【００１２】
図２は、第１の実施の形態に係るカメラシステム１の構成を示す断面図である。交換レンズ２００は、複数のレンズ２１０ａ〜２１０ｅから構成される撮影光学系２１０と虹彩絞り２１１とを内蔵する。これら複数のレンズには、撮影光学系２１０の焦点調節を行うフォーカスレンズ２１０ｃと、被写体像の像ぶれを補正するブレ補正レンズ２１０ｄとが含まれている。レンズＣＰＵ２０３はボディＣＰＵ１０３からの指示に従って、不図示のアクチュエータ（モータ等）により、被駆動部材としてのフォーカスレンズ２１０ｃ、ブレ補正レンズ２１０ｄ、虹彩絞り２１１等を駆動させる。フォーカスレンズ２１０ｃは光軸Ｒに沿って駆動される。ブレ補正レンズ２１０ｄは光軸Ｒに対し垂直な横軸４２と縦軸４３とに沿って（光軸方向とは垂直な方向の成分を持つ移動方向に）駆動される。なお、ぶれ補正レンズ２１０ｄは必ずしも光軸Ｒに対して垂直な方向に動かなくても、これら横軸４２、縦軸４３の方向に沿った成分を含む方向に動くことによってブレ補正の目的を達成することができる。虹彩絞り２１１は、被写体光束が通過する開口（光軸Ｒを中心とした開口）の大きさを可変するように駆動される。
【００１３】
なお交換レンズ２００を、変倍用レンズを電気的に駆動して焦点距離を任意に変更可能な、いわゆるパワーズームレンズとしても良い。この場合には、交換レンズ２００に、ズームレンズ（変倍用レンズ）を設けると共に、そのズームレンズを電気的に駆動可能なズーム機構が設けられている。そしてこの場合、ズームレンズが被駆動部材となり、ズームレンズは光軸Ｒに沿って駆動される。
【００１４】
撮像素子１０４の前面には、光学的ローパスフィルターと赤外線カットフィルターを合わせたフィルター１１１が設置されている。交換レンズ２００内の撮影光学系２１０を通過した被写体光は、光軸Ｒを中心に、フィルター１１１を介して撮像素子１０４に入射する。ボディＣＰＵ１０３は、撮像素子１０４が出力する撮像信号から表示用画像を作成し、カメラボディ１００の背面に設置されているＬＣＤモジュール１１０に表示する。
【００１５】
ボディＣＰＵ１０３とレンズＣＰＵ２０３との間、すなわちカメラボディ１００と交換レンズ２００との間には、図１に示す接点群１０２と接点群２０２とを介した２系統の伝送部が設けられている。これら２系統の伝送部は互いに独立しているので、一方の伝送部においてデータが伝送されている場合であっても、他方の伝送部によりデータを伝送することが可能である。以下の説明では、２系統の伝送部をそれぞれ第１伝送部３０１、第２伝送部３０２と称する。また、ボディＣＰＵ１０３とレンズＣＰＵ２０３が、それぞれボディ側第１通信回路１１２とレンズ側第１通信回路２１２を制御しながら第１伝送部３０１を用いて行う通信を「コマンドデータ通信」と呼び、またそれぞれボディ側第２通信回路１１３とレンズ側第２通信回路２１３を制御しながら第２伝送部３０２を用いて行う通信を「ホットライン通信」と呼ぶ。第１伝送部３０１および第２伝送部３０２を構成する信号線、ならびに、コマンドデータ通信およびホットライン通信の具体的な通信内容については後に詳述する。
【００１６】
カメラボディ１００内には、コマンドデータ通信を行うボディ側第１通信回路１１２と、ホットライン通信を行うボディ側第２通信回路１１３が設置される。これらの回路はそれぞれボディＣＰＵ１０３に接続される。同様に交換レンズ２００内には、コマンドデータ通信を行うレンズ側第１通信回路２１２と、ホットライン通信を行うレンズ側第２通信回路２１３が設置される。これらの回路はそれぞれレンズＣＰＵ２０３に接続される。
【００１７】
換言すれば、ボディ側第１通信回路１１２とボディ側第２通信回路１１３はそれぞれボディ側の通信インターフェースであり、レンズ側第１通信回路２１２とレンズ側第２通信回路２１３はそれぞれ交換レンズ側の通信インターフェースである。ボディＣＰＵ１０３とレンズＣＰＵ２０３はそれぞれ、上記の各通信インターフェースを制御して、各通信（コマンドデータ通信、ホットライン通信）を行う。
【００１８】
なお本実施形態では、通信インターフェースを、２つの通信（ホットライン通信、コマンドデータ通信）に対してそれぞれ個別に設けているが、これらが一体に形成されているものを代替使用してもよい。またボディＣＰＵ１０３やレンズＣＰＵ２０３の代わりに、２つの通信インターフェースの機能を備えたＣＰＵを使用しても良い。
【００１９】
ボディ側第１通信回路１１２とレンズ側第１通信回路２１２とは、第１伝送部３０１により互いに接続される。同様に、ボディ側第２通信回路１１３とレンズ側第２通信回路２１３とは、第２伝送部３０２により互いに接続される。
【００２０】
なお、以下の説明において、ボディＣＰＵ１０３がボディ側第１通信回路１１２にホットライン通信を行わせることを「ボディＣＰＵ１０３がホットライン通信を行う」と記述し、またボディＣＰＵ１０３がボディ側第２通信回路１１３にコマンドデータ通信を行わせることを「ボディＣＰＵ１０３がコマンドデータ通信を行う」と記述することがある。レンズＣＰＵ２０３、レンズ側第１通信回路２１２、レンズ側第２通信回路２１３についても同様である。
【００２１】
（各伝送路の説明）
図３は、カメラボディ１００と交換レンズ２００との間の伝送路の詳細を示すブロック図である。レンズ側第１通信回路２１２は４つの通信端子ＯＲＤＹ、ＩＣＬＫ、ＩＤＡＴＡＢ、およびＯＤＡＴＡＬを備える。ボディ側第１通信回路１１２は、これらの端子に対応する４つの通信端子ＩＲＤＹ、ＯＣＬＫ、ＯＤＡＴＡＢ、およびＩＤＡＴＡＬを備える。第１伝送部３０１は、これら４対の通信端子をそれぞれ接続する４本の信号線ＲＤＹ、ＣＬＫ、ＤＡＴＡＢ、およびＤＡＴＡＬにより構成される。すなわち、コマンドデータ通信はこれら４本の信号線を用いて行われる。
【００２２】
信号線ＲＤＹには、レンズＣＰＵ２０３およびレンズ側第１通信回路２１２から、通信開始の可否を示す信号レベルが出力される。信号線ＣＬＫには、ボディ側第１通信回路１１２から、データ通信のためのクロック信号出力される。信号線ＤＡＴＡＢには、ボディＣＰＵ１０３およびボディ側第１通信回路１１２から、データ信号が出力される。信号線ＤＡＴＡＬには、レンズＣＰＵ２０３およびレンズ側第１通信回路２１２から、データ信号が出力される。
【００２３】
レンズ側第２通信回路２１３は４つの通信端子ＩＨＲＥＱ、ＯＨＡＮＳ、ＩＨＣＬＫ、およびＯＨＤＡＴＡＬを備える。ボディ側第２通信回路１１３は、これらの端子に対応する４つの通信端子ＯＨＲＥＱ、ＩＨＡＮＳ、ＯＨＣＬＫ、およびＩＨＤＡＴＡＬを備える。第２伝送部３０２は、これら４対の通信端子をそれぞれ接続する４本の信号線ＨＲＥＱ、ＨＡＮＳ、ＨＣＬＫ、およびＨＤＡＴＡＬにより構成される。すなわち、ホットライン通信はこれら４本の信号線を用いて行われる。
【００２４】
信号線ＨＲＥＱには、ボディＣＰＵ１０３およびボディ側第２通信回路１１３から、通信開始を要求する信号（Ｈｉｇｈ／Ｌｏｗレベル）が出力されるする。信号線ＨＡＮＳには、レンズＣＰＵ２０３およびレンズ側第２通信回路２１３から、通信準備完了を示す信号（Ｈｉｇｈ／Ｌｏｗレベル）が出力される。信号線ＨＣＬＫには、ボディＣＰＵ１０３およびボディ側第２通信回路１１３から、データ通信のためのクロック信号が出力される。信号線ＨＤＡＴＡＬには、レンズＣＰＵ２０３およびレンズ側第２通信回路２１３から、データ信号が出力される。
【００２５】
（コマンドデータ通信の説明）
コマンドデータ通信は、第１伝送部３０１を用いて行われる双方向の通信である。ここで、本実施形態における双方向通信は、カメラボディ１００から交換レンズ２００への情報通信を専用の一方向伝送路を使って行う構成となっており、その伝送路とは別個に設けられた一方向伝送路を使って交換レンズ２００からカメラボディ１００への情報通信も行う構成となっている。つまり第２伝送部３０２は、カメラボディからレンズへの一方向伝送路と、レンズからカメラボディへの一方向伝送路の２つの一方向伝送路を備えている。
【００２６】
コマンドデータ通信では、ボディ側第１通信回路１１２から送信されるデータと、レンズ側第１通信回路２１２から送信されるデータと、が同一のクロック信号に同期する。すなわち、カメラボディ１００から送信されるデータと、交換レンズ２００から送信されるデータと、が第１伝送部３０１により同時に伝送される。なおカメラボディ１００内のボディＣＰＵ１０３は、第１の所定周期毎にコマンドデータ通信を行うように構成されている。従ってボディ側第１通信回路１１２は、このコマンドデータ通信で使用する第１の所定周波数のクロック信号を第１の所定周期で発生する。これによりコマンドデータ通信において、カメラボディ１００と交換レンズ２００との間の情報通信は、第１の所定周期で行われる。
【００２７】
図４は、コマンドデータ通信の例を示すタイミングチャートである。以下、図４を参照して、コマンドデータ通信の手順を説明する。
【００２８】
ボディＣＰＵ１０３はまず、コマンドデータ通信によってレンズＣＰＵ２０３に送信するデータ（後述するＣＭＤデータ、ＬＥＮデータ、およびＤＡＴＡ１〜ＤＡＴＡＮデータ）をボディ側第１通信回路１１２の内部のバッファメモリに書き込む。データの書き込みを終えると、ボディＣＰＵ１０３はボディ側第１通信回路１１２に送信指示信号を出力する。この送信指示信号は、上記のデータの送信指示を表す信号である。ボディ側第１通信回路１１２はこの送信指示信号に応じて、コマンドデータ通信を開始する。
【００２９】
ボディ側第１通信回路１１２はコマンドデータ通信の開始時（Ｔ１）、まず信号線ＲＤＹの信号レベルを確認する。信号線ＲＤＹの信号レベルはレンズ側第１通信回路２１２の通信可否を表しており、レンズ側第１通信回路２１２が通信できない状態である場合には、信号線ＲＤＹはＨ（Ｈｉｇｈ）レベルとなっている。ボディ側第１通信回路１１２は信号線ＲＤＹがＨレベルである場合、Ｌレベルになるまで次の処理を実行しない。
【００３０】
信号線ＲＤＹがＬ（Ｌｏｗ）レベルであれば、ボディ側第１通信回路１１２は内部のバッファメモリに書き込まれたデータに基づくボディ側コマンドパケット４１０ａ（後に詳述する）を、信号線ＤＡＴＡＢを介してレンズ側第１通信回路２１２に送信する。すなわち、ボディ側コマンドパケット４１０ａを表す信号を、信号線ＤＡＴＡＢに出力する。以下、信号線を介したデータの授受においては、信号線に当該データを表す信号が伝送されているものとする。ボディ側第１通信回路１１２はボディ側コマンドパケット４１０ａの送信と同時に、信号線ＣＬＫにクロック信号４００ａを出力する。なおクロック信号４００ａのパルス数は、ボディ側コマンドパケット４１０ａの送信に必要なパルス数である。本実施形態においてボディ側コマンドパケット４１０ａのサイズは４バイト（３２ビット）であるので、クロック信号４００ａは３２パルス分の長さとなっている。
【００３１】
レンズ側第１通信回路２１２は、信号線ＤＡＴＡＢを介してボディ側コマンドパケット４１０ａを受信すると共に、信号線ＤＡＴＡＬを介してボディ側第１通信回路１１２にレンズ側コマンドパケット４２０ａ（後に詳述する）を送信する。レンズ側第１通信回路２１２は、ボディ側第１通信回路１１２が出力するクロック信号４００ａに同期して、ボディ側コマンドパケット４１０ａの受信およびレンズ側コマンドパケット４２０ａの送信を行う。レンズ側コマンドパケット４２０ａのサイズはボディ側コマンドパケット４１０ａのサイズと同じである。従って、ボディ側コマンドパケット４１０ａの送信完了（Ｔ２）と同時に、レンズ側コマンドパケット４２０ａの送信が完了する。
【００３２】
レンズ側第１通信回路２１２は、レンズ側コマンドパケット４２０ａの送信完了に応じて、信号線ＲＤＹの信号レベルをＨレベルにする（Ｔ２）。そして、レンズＣＰＵ２０３に通信完了の割り込みを発生させる。この割り込みを受けたレンズＣＰＵ２０３は、受信したボディ側コマンドパケット４１０ａの内容に応じた処理である第１制御処理４３０ａを開始する。例えば受信したボディ側コマンドパケット４１０ａが、レンズＣＰＵ２０３に特定のデータを送信するよう指示する内容であった場合、レンズＣＰＵ２０３は第１制御処理４３０ａとして、当該データの生成を行う処理を実行する。
【００３３】
レンズＣＰＵ２０３は第１制御処理４３０ａが完了すると、レンズ側第１通信回路２１２に第１制御処理の完了を表す信号を出力する。レンズ側第１通信回路２１２はこの信号に応じて、信号線ＲＤＹの信号レベルをＬレベルにする（Ｔ３）。ボディ側第１通信回路１１２はこの信号レベルの変化に応じて、信号線ＤＡＴＡＢを介してレンズ側第１通信回路２１２にボディ側データパケット４１０ｂ（後に詳述する）を送信すると共に、信号線ＣＬＫにクロック信号４００ｂを出力する。なおクロック信号４００ｂのパルス数は、ボディ側データパケット４１０ｂの送信に必要なパルス数である。
【００３４】
レンズ側第１通信回路２１２は、信号線ＤＡＴＡＢを介してボディ側データパケット４１０ｂを受信すると共に、信号線ＤＡＴＡＬを介してボディ側第１通信回路１１２にレンズ側データパケット４２０ｂ（後に詳述する）を送信する。レンズ側第１通信回路２１２は、ボディ側第１通信回路１１２が出力するクロック信号４００ｂに同期して、ボディ側データパケット４１０ｂの受信およびレンズ側データパケット４２０ｂの送信を行う。レンズ側データパケット４２０ｂのサイズはボディ側データパケット４１０ｂのサイズと同じである。従って、ボディ側データパケット４１０ｂの送信完了（Ｔ４）と同時に、レンズ側データパケット４２０ｂの送信が完了する。
【００３５】
レンズ側第１通信回路２１２はレンズ側データパケット４２０ｂの送信が完了すると、信号線ＲＤＹの信号レベルをＨレベルにする（Ｔ４）。そして、レンズＣＰＵ２０３に受信完了の割り込みを発生させる。レンズＣＰＵ２０３はこの割り込みを受けて、受信したボディ側コマンドパケット４１０ａおよびボディ側データパケット４１０ｂの内容に応じた処理である第２制御処理４３０ｂを開始する。例えば受信したボディ側コマンドパケット４１０ａが、レンズＣＰＵ２０３にフォーカスレンズ２１０ｃを駆動するよう指示する内容であり、受信したボディ側データパケット４１０ｂがフォーカスレンズ２１０ｃの駆動量を表す内容であった場合、レンズＣＰＵ２０３は第２制御処理４３０ｂとして、フォーカスレンズ２１０ｃを当該駆動量だけ駆動する処理を実行する。レンズＣＰＵ２０３は第２制御処理４３０ｂが完了すると、レンズ側第１通信回路２１２に第２制御処理の完了を表す信号を出力する。レンズ側第１通信回路２１２はこの信号に応じて、信号線ＲＤＹの信号レベルをＬレベルにする（Ｔ５）。
【００３６】
上述した時刻Ｔ１〜時刻Ｔ５に行われた通信が、１回のコマンドデータ通信である。上述のように、１回のコマンドデータ通信では、ボディＣＰＵ１０３およびボディ側第１通信回路１１２によりボディ側コマンドパケット４１０ａおよびボディ側データパケット４１０ｂがそれぞれ１つずつ送信される。すなわち、処理の都合上２つに分割されて送信されるものの、ボディ側コマンドパケット４１０ａおよびボディ側データパケット４１０ｂは２つ合わせて交換レンズ２００（レンズＣＰＵ２０３）への一制御指示を表す制御指示データである。
【００３７】
同様に、１回のコマンドデータ通信では、レンズＣＰＵ２０３およびレンズ側第１通信回路２１２によりレンズ側コマンドパケット４２０ａおよびレンズ側データパケット４２０ｂがそれぞれ１つずつ送信される。すなわち、レンズ側コマンドパケット４２０ａおよびレンズ側データパケット４２０ｂは２つ合わせてカメラボディ１００（ボディＣＰＵ１０３）への一応答を表す応答データである。
【００３８】
（コマンドパケットおよびデータパケットの説明）
図５は、コマンドデータ通信において授受される各パケットのデータ構造を示す図である。なお、図５に示す各データ構造は、図の左方向が下位ビット、右方向が上位ビットにそれぞれ対応している。本実施形態において各データの送受信は下位ビットから順に行われる。
【００３９】
図５（ａ）にはボディ側コマンドパケット４１０ａのデータ構造が示されている。このボディ側コマンドパケット４１０ａは、ボディＣＰＵ１０３によって生成されるものである。ボディ側コマンドパケット４１０ａはＳＹＮＣ、ＣＭＤ、ＬＥＮ、ＳＵＭの４つのデータから構成されている。本実施形態では、これら４つのデータはそれぞれ１バイトのサイズとなっている。
【００４０】
ＳＹＮＣデータはボディ側コマンドパケット４１０ａの開始を表す固定値であり、例えば１２８（１６進数で８０Ｈ）という値である。ＣＭＤデータはボディ側コマンドパケット４１０ａにより表される制御指示の種類を表す種類データである。例えばＣＭＤデータが１であればボディ側コマンドパケット４１０ａはフォーカスレンズ２１０ｃの駆動指示、ＣＭＤデータが２であれば虹彩絞り２１１の駆動指示である。
【００４１】
ＬＥＮデータはこのボディ側コマンドパケット４１０ａと対になるボディ側データパケット４１０ｂのサイズを表す数値である。例えばＬＥＮデータが２０であれば、このボディ側コマンドパケット４１０ａに引き続いてボディＣＰＵ１０３が送信するボディ側データパケット４１０ｂのサイズは２０バイトである。
【００４２】
ＳＵＭはボディ側コマンドパケット４１０ａのチェックサムを表す数値である。ＳＵＭの値は、ボディ側コマンドパケット４１０ａの各バイトの合計が２５６の倍数になるよう定められる。例えばＳＹＮＣが１２８、ＣＭＤが２、ＬＥＮが５であれば、ＳＵＭの値は１２１である。
【００４３】
図５（ｂ）にはレンズ側コマンドパケット４２０ａのデータ構造が示されている。このレンズ側コマンドパケット４２０ａは、レンズＣＰＵ２０３によって生成されるものである。レンズ側コマンドパケット４２０ａはＳＹＮＣ、ＲＣＭＤ、ＳＵＭの３つのデータと、１つのダミーデータ（図中にＮ／Ａと記載されたデータ）とから構成されている。ＳＹＮＣデータおよびＳＵＭデータについては図５（ａ）で説明したボディ側コマンドパケット４１０ａの同名のデータと同様であるので説明を省略する。
【００４４】
ＲＣＭＤデータは、レンズＣＰＵ２０３によって前回受信されたボディ側コマンドパケット４１０ａのＣＭＤデータである。すなわち、前回受信された種類データである。レンズＣＰＵ２０３は、ボディ側コマンドパケット４１０ａおよびボディ側データパケット４１０ｂが正常に受信できた場合、ボディ側コマンドパケット４１０ａに含まれているＣＭＤデータを不図示のメモリに記憶させる。そして、次のコマンドデータ通信において、当該ＣＭＤデータをレンズ側コマンドパケット４２０ａのＲＣＭＤデータとして使用する。つまりレンズＣＰＵ２０３は、前回受信された種類データ（ＣＭＤデータ）を使って、レンズ側コマンドパケット４２０ａ（応答データ）を生成する。
【００４５】
なお、図５（ａ）に示すボディ側コマンドパケット４１０ａにおけるＬＥＮデータに相当するデータが、図５（ｂ）に示すレンズ側コマンドパケット４２０ａにおいてダミーデータ（どのような値であってもよい、送受信後に一切利用されないデータ）となっているのは、レンズＣＰＵ２０３がレンズ側データパケット４２０ｂのサイズを指定する必要がないためである。これは、レンズ側データパケット４２０ｂのサイズがボディ側データパケット４１０ｂのサイズと同一であることによる。
【００４６】
図５（ｃ）にはボディ側データパケット４１０ｂのデータ構造が示されている。このボディ側コマンドパケット４１０ｂは、ボディＣＰＵ１０３によって生成されるものである。ボディ側データパケット４１０ｂはＳＹＮＣおよびＳＵＭの２つのデータと、１つ以上（Ｎ個）のＤＡＴＡ１、ＤＡＴＡ２、…、ＤＡＴＡＮデータとから構成されている。つまり、ボディ側データパケット４１０ｂのデータサイズは可変であり、そのサイズはボディ側コマンドパケット４１０ａのＬＥＮデータにより規定される。
【００４７】
ＳＹＮＣデータおよびＳＵＭデータについては、図５（ａ）で説明したボディ側コマンドパケット４１０ａの同名のデータと同様であるので説明を省略する。ＤＡＴＡ１〜ＤＡＴＡＮデータは、ボディ側コマンドパケット４１０ａに付随するパラメータを表している。例えばボディ側コマンドパケット４１０ａがフォーカスレンズ２１０ｃの駆動指示を表していた場合、ＤＡＴＡ１〜ＤＡＴＡＮはフォーカスレンズ２１０ｃの駆動方向および駆動量を表すパラメータである。なお、パラメータが不要である場合には、ＤＡＴＡ１〜ＤＡＴＡＮはダミーデータとして扱われる。
【００４８】
レンズ側データパケット４２０ｂは、レンズＣＰＵ２０３によって生成されるものであり、図５（ｃ）に示すボディ側データパケット４１０ｂと同様のデータ構造を備える。ただし、ＤＡＴＡ１〜ＤＡＴＡＮデータが、制御指示のパラメータではなくレンズＣＰＵ２０３に関する情報を表す点で、ボディ側データパケット４１０ｂとは異なる。例えばボディ側コマンドパケット４１０ａが、レンズＣＰＵ２０３に虹彩絞り２１１の現在の絞り値を送信するよう指示する内容であった場合、対応するレンズ側データパケット４２０ｂのＤＡＴＡ１〜ＤＡＴＡＮデータは、虹彩絞り２１１の現在の絞り値を表すデータである。
【００４９】
（カメラボディ１００側のコマンドデータ通信処理の説明）
図６は、コマンドデータ通信におけるカメラボディ１００側（ボディＣＰＵ１０３）の処理のフローチャートである。図６の処理は、ボディＣＰＵ１０３がボディ側第１通信回路１１２の内部のバッファメモリに前述のデータを書き込み、ボディ側第１通信回路１１２に送信指示信号を出力することにより開始される。
【００５０】
まずステップＳ６００ではボディＣＰＵ１０３およびボディ側第１通信回路１１２が、信号線ＲＤＹの信号レベルがＨレベルか否かを判定する。信号レベルがＨレベルであれば、ＬレベルになるまでステップＳ６００の処理を繰り返す。他方、信号レベルがＬレベルであれば、処理はステップＳ６１０に進む。ステップＳ６１０ではボディＣＰＵ１０３およびボディ側第１通信回路１１２が、信号線ＣＬＫへのクロック信号４００ａの出力と、信号線ＤＡＴＡＢを介したボディ側コマンドパケット４１０ａの送信と、信号線ＤＡＴＡＬを介したレンズ側コマンドパケット４２０ａの受信と、を行う。
【００５１】
ステップＳ６２０ではボディＣＰＵ１０３およびボディ側第１通信回路１１２が、ステップＳ６００と同様に信号線ＲＤＹの信号レベルがＨレベルか否かを判定する。信号レベルがＨレベルであれば、ＬレベルになるまでステップＳ６２０の処理を繰り返す。他方、信号レベルがＬレベルであれば、処理はステップＳ６３０に進む。ステップＳ６３０ではボディＣＰＵ１０３およびボディ側第１通信回路１１２が、信号線ＣＬＫへのクロック信号４００ｂの出力と、信号線ＤＡＴＡＢを介したボディ側データパケット４１０ｂの送信と、信号線ＤＡＴＡＬを介したレンズ側データパケット４２０ｂの受信と、を行う。
【００５２】
ステップＳ６４０ではボディＣＰＵ１０３が、ボディ側第１通信回路１１２により受信されたレンズ側コマンドパケット４２０ａおよびレンズ側データパケット４２０ｂのＳＵＭデータの検証を行う。ＳＵＭデータの検証とは、各パケットの総和が２５６の倍数となっているか否かを検証することを指す。各パケットの総和が２５６の倍数にならないことは、受信したデータに例えばデータ化け等の何らかの異常があることを意味する。なお、ＳＵＭデータの検証により以上が検知された場合には、ボディＣＰＵ１０３は例えば次々回のコマンドデータ通信においてデータを再送する。
【００５３】
ステップＳ６６０ではボディＣＰＵ１０３が、ボディ側第１通信回路１１２により受信されたレンズ側コマンドパケット４２０ａのＲＣＭＤデータと、前回のコマンドデータ通信において送信したボディ側コマンドパケット４１０ａのＣＭＤデータとを比較する。ステップＳ６７０ではボディＣＰＵ１０３が、ステップＳ６６０における比較の結果、異常が検知されたか否かを判定する。ボディＣＰＵ１０３は上記のＲＣＭＤデータとＣＭＤデータとが一致しなかった場合、異常が検知されたと判定し、処理はステップＳ６８０に進む。ステップＳ６８０ではボディＣＰＵ１０３が、前回のコマンドデータ通信において送信した制御指示データ、すなわち一対のボディ側コマンドパケット４１０ａおよびボディ側データパケット４１０ｂを再送する。すなわち、異常検知時の処理として、ボディ側は、前回送信したけれども、きちんと交換レンズ側に認識されていない恐れのあるコマンドパケット（およびそれに対応するデータパケット）を再度送信するエラー処理を行う。
【００５４】
なおボディＣＰＵ１０３のエラー処理としては、上述の再送処理だけでなく、使用者に対して警告メッセージ（例えば「通信エラーが生じている可能性があります」等）をボディ側の表示部（例えば背面ＬＣＤ）に表示する警告動作を行っても良い。
【００５５】
なお、ステップＳ６７０において、異常が検知されなかった場合には、本フローを終了する。
【００５６】
ところで、ある期間のコマンドデータ通信（一連のコマンドデータ通信）では、通常、「コマンドパケット−データパケット」の組み合わせが、連続して複数組出力される。例えばカメラボディ側が交換レンズ側に対して５種類の要求を行うときには、５組の「コマンドパケット−データパケット」の組の送受信動作が、一連のコマンドデータ通信として、カメラボディ１００と交換レンズ２００との間で行われる。この場合において、カメラボディ側から交換レンズ側に対して最後に出力された最終コマンドパケット（例えば５組の場合には５個目／以降では「最終コマンドパケット４１０ａ−ｅｎｄ」と称す）に関しても、レンズＣＰＵ２０３では、その最終コマンドパケット４１０ａ−ｅｎｄに基づき、ＲＣＭＤデータ（そのＲＣＭＤデータを含むレンズ側最終コマンドパケットデータ４２０ａ−ｅｎｄ／最終の応答データ）を生成する。しかしながら、その生成したレンズ側最終コマンドパケットデータ４２０ａ−ｅｎｄを、カメラ側に送信するために必要なクロック信号を、本実施形態におけるカメラＣＰＵ１０３は出力しない。このため本実施形態では、レンズ側からレンズ側最終コマンドパケットデータ４２０ａ−ｅｎｄをボディ側に送信できない。このためボディＣＰＵ１０３は、最終コマンドパケットに関しては、エラーチェック処理を行うことが出来ない。つまり最終コマンドパケットに関しては、レンズＣＰＵ２０３は図７の処理を行うが、ボディＣＰＵ１０３は図６の処理を行わない。
【００５７】
（交換レンズ２００側のコマンドデータ通信処理の説明）
図７は、コマンドデータ通信における交換レンズ２００側（レンズＣＰＵ２０３）の処理のフローチャートである。まずステップＳ７００ではレンズＣＰＵ２０３およびレンズ側第１通信回路２１２が、信号線ＣＬＫにおいてクロック信号４００ａを検知したか否かを判定する。レンズ側第１通信回路２１２は、クロック信号４００ａを検知するまでステップＳ７００を繰り返し実行する。
【００５８】
ステップＳ７１０ではレンズＣＰＵ２０３およびレンズ側第１通信回路２１２が、信号線ＣＬＫに出力されたクロック信号４００ａに同期して、信号線ＤＡＴＡＢを介したボディ側コマンドパケット４１０ａの受信と、信号線ＤＡＴＡＬを介したレンズ側コマンドパケット４２０ａの送信とを行う。ここで送信されるレンズ側コマンドパケット４２０ａには、後述するステップＳ８１０で前回記憶されたＲＣＭＤデータが含まれている。換言すれば、レンズＣＰＵ２０３は、上述の一連のコマンドデータ通信（複数の「コマンドパケット−データパケット」の組み合わせ）において、次の組のボディ側コマンドパケット４１０ａの受信を行っているその裏で、レンズ側コマンドパケット４２０ａ（応答データ＝前回のコマンドパケットのＣＭＤデータに基づき生成されたＲＣＭＤデータを含む応答データ）の送信を行う。
【００５９】
ステップＳ７２０ではレンズＣＰＵ２０３およびレンズ側第１通信回路２１２が、信号線ＲＤＹの信号レベルをＨレベルにする。ステップＳ７３０ではレンズＣＰＵ２０３が、受信されたボディ側コマンドパケット４１０ａに異常を検知したか否かを判定する。この異常検知は、例えば前述のＳＵＭデータの検証などにより行われる。ボディ側コマンドパケット４１０ａに異常がなかった場合にはステップＳ７４０に進む。
【００６０】
ステップＳ７４０ではレンズＣＰＵ２０３が、ステップＳ７１０で受信されたボディ側コマンドパケット４１０ａに基づく第１制御処理４３０ａを実行する。ステップＳ７５０ではレンズ側第１通信回路２１２が、信号線ＲＤＹの信号レベルをＬレベルにする。ステップＳ７６０ではレンズ側第１通信回路２１２がステップＳ７００と同様に、信号線ＣＬＫにおいてクロック信号４００ｂを検知したか否かを判定する。レンズＣＰＵ２０３およびレンズ側第１通信回路２１２は、クロック信号４００ｂを検知するまでステップＳ７６０を繰り返し実行する。
【００６１】
ステップＳ７７０ではレンズＣＰＵ２０３およびレンズ側第１通信回路２１２がステップＳ７１０と同様に、信号線ＣＬＫに出力されたクロック信号４００ｂに同期して、信号線ＤＡＴＡＢを介したボディ側データパケット４１０ｂの受信と、信号線ＤＡＴＡＬを介したレンズ側データパケット４２０ｂの送信とを行う。ステップＳ７８０ではレンズ側第１通信回路２１２が、信号線ＲＤＹの信号レベルをＨレベルにする。
【００６２】
ステップＳ７９０ではレンズＣＰＵ２０３がステップＳ７３０と同様に、受信されたボディ側データパケット４１０ｂに異常を検知したか否かを判定する。ボディ側データパケット４１０ｂに異常がなかった場合にはステップＳ８００に進む。ステップＳ８００ではレンズＣＰＵ２０３が、ステップＳ７１０で受信されたボディ側コマンドパケット４１０ａとステップＳ７７０で受信されたボディ側データパケット４１０ｂとに基づく第２制御処理４３０ｂを実行する。ステップＳ８１０ではレンズＣＰＵ２０３が、ステップＳ７１０で受信されたボディ側コマンドパケット４１０ａに含まれるＲＣＭＤデータを不図示のメモリに記憶する。ステップＳ８２０ではレンズ側第１通信回路２１２が信号線ＲＤＹの信号レベルをＬレベルにし、通信処理は終了する。
【００６３】
ステップＳ７３０においてボディ側コマンドパケット４１０ａに異常が検知された場合には、処理はステップＳ８３０に進む。ステップＳ８３０〜ステップＳ８６０はステップＳ７４０〜ステップＳ８１０と同様の処理となっているが、第１制御処理４３０ａなど、受信されたボディ側コマンドパケット４１０ａおよびボディ側データパケット４１０ｂに基づく処理は実行されない。これは、受信したデータに異常がある場合には正常な処理を行うことができないためである。ステップＳ７３０において異常が検知された場合には、不図示のメモリにＲＣＭＤデータは記憶されない。従って、図７に示す１回のコマンドデータ通信における交換レンズ側の処理が完了したとき、不図示のメモリには直前のコマンドデータ通信におけるＲＣＭＤデータ、すなわち前々回受信されたＲＣＭＤデータが記憶され続けていることになる。次のコマンドデータ通信では、レンズ側第１通信回路２１２によりこのＲＣＭＤデータがボディ側第１通信回路１１２に送信される。ボディＣＰＵ１０３は、ボディ側第１通信回路１１２がこの「前々回のＲＣＭＤデータ」を受信すると、前回送信したボディ側コマンドパケット４１０ａまたはボディ側データパケット４１０ｂが正常に受信されなかったと判定し、これらのデータを再送する。また、ステップＳ７９０においてボディ側データパケット４１０ｂに異常が検知された場合にも同様に、第２制御処理４３０ｂは実行されず、ＲＣＭＤデータは記憶されない。
【００６４】
（ホットライン通信の説明）
ホットライン通信は第２伝送部３０２を用いて行われる単方向の通信である。ここで、本実施形態における単方向通信は、交換レンズ２００からカメラボディ１００への情報通信を専用の一方向伝送路を使って行う構成となっている。つまり第１伝送部３０１は、レンズからカメラボディへの一方向伝送路を１つ備えている。ホットライン通信はコマンドデータ通信と同様に、ボディＣＰＵ１０３により開始される。ボディＣＰＵ１０３が第２伝送部３０２を構成する信号線のうち、通信開始用の信号線の信号レベルを変化させると、レンズＣＰＵ２０３がこれを検知する。レンズＣＰＵ２０３はこの検知に応じて、フォーカスレンズ２１０ｃの現在位置を検出して、当該位置を表す位置データをボディＣＰＵ１０３に送信する。
【００６５】
ここで、カメラボディ１００内のボディＣＰＵ１０３は、このホットライン通信で使用する第１の所定周波数のクロック信号（コマンドデータ通信において既述したもの）を、第２の所定周期で発生するように構成されている。ここで第２の所定周期は、コマンドデータ通信において既述した第１の所定周期よりも短い周期に設定されている（例えば、第２の所定周期は、第１の所定周期の１／１０以下の極めて短い周期に設定されている）。これによりホットライン通信では、交換レンズ２００からカメラボディ１００に対する情報通信が、前述のコマンドデータ通信に比して非常に速い周期（第２の所定周期）で繰り返し行われる。
【００６６】
ボディＣＰＵ１０３は、ホットライン通信を所定周期毎（上述の第２の所定周期）に実行する。ホットライン通信はコマンドデータ通信とは異なり、ボディＣＰＵ１０３がレンズＣＰＵ２０３から交換レンズ２００に関するデータをわずかな処理で受信することができる。これは、コマンドデータ通信によりデータを受信する場合にはまずレンズＣＰＵ２０３に対する指示を表すデータを送信する必要があるのに対し、ホットライン通信は特定の信号線の信号レベルを変化させるだけで即座にレンズＣＰＵ２０３からのデータの送信が開始されるためである。
【００６７】
ここで、本実施形態では、コマンドデータ通信とホットライン通信の両方で同じ周波数のクロック信号（上述の第１の所定周波数のクロック信号）を使用するようにしているが、本発明はこれに限られるものでは無く、これら２つの通信で使用されるクロック信号の周波数を互いに異なる周波数にしても構わない。例えば、ホットライン通信を行う際に、交換レンズ２００とカメラボディ１００との間の情報通信（データ転送）が十分に間に合うのであれば、ホットライン通信で使用するクロック信号の周波数を、上述の第１の周波数よりも低い周波数にしても良い。
【００６８】
図８は、ホットライン通信の例を示すタイミングチャートである。なお、図８（ｂ）は、図８（ａ）の一期間Ｔｘを拡大した図である。以下、図８を参照して、ホットライン通信の手順を説明する。
【００６９】
ホットライン通信はコマンドデータ通信と同様に、ボディＣＰＵ１０３により開始される。ボディＣＰＵ１０３はホットライン通信の開始時（Ｔ６）、信号線ＨＲＥＱの信号レベルをＬレベルにする。レンズ側第２通信回路２１３は、信号線ＨＲＥＱの信号レベルがＨレベルからＬレベルになったことに応じて、レンズＣＰＵ２０３に通信要求の割り込みを発生させる。この割り込みを受けたレンズＣＰＵ２０３は、レンズデータを生成する生成処理６１０の実行を開始する。生成処理６１０においてレンズＣＰＵ２０３は、フォーカスレンズ２１０ｃの現在位置を検出し、レンズ側第２通信回路２１３内部のバッファメモリに書き込むことにより、当該位置を表す位置データを生成する。
【００７０】
レンズＣＰＵ２０３は生成処理６１０の最後に、レンズ側第２通信回路２１３に送信指示信号を出力する。この送信指示信号は、生成した位置データの送信指示を表す信号である。送信指示信号が入力されたレンズ側第２通信回路２１３は、信号線ＨＡＮＳの信号レベルをＨレベルからＬレベルにする（Ｔ７）。
【００７１】
ボディ側第２通信回路１１３は、信号線ＨＡＮＳの信号レベルがＨレベルからＬレベルに変化したことに応じて、信号線ＨＣＬＫにクロック信号６２０を出力する。本実施形態において位置データはフォーカスレンズ２１０ｃの現在位置を０〜６５５３５の範囲の整数で表した２バイトのデータとなっている。従って、クロック信号６２０は２バイト分のパルス数の信号となっている。
【００７２】
レンズ側第２通信回路２１３は、ボディ側第２通信回路１１３により送出されたクロック信号６２０に同期して、信号線ＨＤＡＴＡＬを介してボディ側第２通信回路１１３に位置データを表す位置データ信号６３０を送信する。ボディ側第２通信回路１１３は位置データ信号６３０を受信し、この信号が表す位置データをボディ側第２通信回路１１３の内部のバッファメモリに書き込む。位置データの送受信はボディ側第２通信回路１１３およびレンズ側第２通信回路２１３によって行われる。つまり、ボディＣＰＵ１０３およびレンズＣＰＵ２０３は、位置データの送受信中に他の処理を実行することが可能である。
【００７３】
位置データの送信が完了すると、レンズ側第２通信回路２１３は信号線ＨＡＮＳの信号レベルをＨレベルにする（Ｔ８）。他方、ボディ側第２通信回路１１３は位置データの受信完了に応じて、ボディＣＰＵ１０３に通信完了の割り込みを発生させる。ボディＣＰＵ１０３はこの割り込みに応じて、ボディ側第２通信回路１１３内部のバッファメモリから受信された位置データを読み出す。その後、ボディＣＰＵ１０３はボディ側第２通信回路１１３に通信完了信号を送出する。通信完了信号が入力されたボディ側第２通信回路１１３は、信号線ＨＲＥＱの信号レベルをＨレベルにする（Ｔ９）。
【００７４】
上述した第１の実施の形態によるカメラシステムによれば、次の作用効果が得られる。
（１）レンズ側第１通信回路２１２は、カメラボディ１００から出力されるクロック信号４００ａ、４００ｂを受信する。更に、交換レンズ２００への制御指示を表す制御指示データ信号であって制御指示の種類を表すＣＭＤデータを含むボディ側コマンドパケット４１０ａおよびボディ側データパケット４１０ｂをカメラボディ１００からクロック信号４００ａ、４００ｂに同期して受信する。このときレンズ側第１通信回路２１２は、クロック信号４００ａ、４００ｂに同期して、前回受信したＣＭＤデータであるＲＣＭＤデータを含む応答データであるレンズ側コマンドパケット４２０ａ（このレンズ側コマンドパケット４２０ａは、前回（１つ前）のカメラボディ１００からの通信でレンズ側が受信したボディ側コマンドパケット４１０ａそのものである）およびレンズ側データパケット４２０ｂ（このレンズ側データパケット４２０ｂは、前回（１つ前）のカメラボディ１００からの通信でレンズ側が受信したボディ側コマンドパケットに応じてレンズ側が行った処理に関するデータ（例えば、絞り駆動コマンドに対して、実際にレンズ側が駆動した絞り駆動量である）である）を、カメラボディ１００に送信する。このようにしたので、カメラボディ１００は前回の通信が正常に行われたことを確認することができ、通信の信頼性が向上する。
【００７５】
（２）レンズＣＰＵ２０３は、レンズ側第１通信回路２１２により受信されたボディ側コマンドパケット４１０ａおよびボディ側データパケット４１０ｂが異常であることを検知する。レンズ側第１通信回路２１２は、前回受信したボディ側コマンドパケット４１０ａまたはボディ側データパケット４１０ｂに異常が検知された場合には、前回受信したＣＭＤデータに代わり、前々回受信したＣＭＤデータを、異常を表すデータとしてレンズ側コマンドパケット４２０ａに含ませて送信する。このようにしたので、カメラボディ１００は前回の通信が正常に行われたことを、前回送信したＣＭＤデータと比較するだけで容易に確認することができる。
【００７６】
次のような変形も本発明の範囲内であり、変形例の一つ、もしくは複数を上述の実施形態と組み合わせることも可能である。
【００７７】
（変形例１）
上述した実施の形態では、１回のコマンドデータ通信において授受されるデータが、コマンドパケットとデータパケットとに分割されていた。本発明はこのような実施形態に限定されない。すなわち、コマンドデータ通信において、上述のコマンドパケットとデータパケットとが一体になった１つのデータが授受されるようにした場合や、３つ以上のパケットに分割されたデータが授受されるようにした場合であっても、本発明を適用することができる。
【００７８】
（変形例２）
図６および図７に示した通信処理では、コマンドパケットおよびデータパケットのチェックサムデータであるＳＵＭデータを用いて各パケットを検証し、各パケットの異常を検知していた。各パケットの異常を、これ以外の方法により検知してもよい。また、ここで言う「異常」は、通信の異常に限定されない。例えば、制御処理において異常が検知された場合であっても、異常を表す異常データ、すなわち前々回受信されたＣＭＤデータを返すようにしてよい。
【００７９】
（変形例３）
異常を表す異常データとして、前々回受信されたＣＭＤデータ以外のデータを使用するようにしてもよい。例えば制御指示の種類を１〜１００までの数値で表すとしたとき、１０１以上の数値が異常を表すものと規定し、このようなデータが返されるようにしてもよい。
【００８０】
（変形例４）
図５（ｂ）に示すレンズ側コマンドパケット４２０ａに、「Ｎ／Ａ」で示すダミーデータの代わりに、他の有用なデータが含まれるようにしてもよい。例えば前回実行した第１制御処理４３０ａおよび第２制御処理４３０ｂの制御の結果を表す制御結果データが含まれるようにしてもよい。制御結果データの例としては、フォーカスレンズ２１０ｃや虹彩絞り２１１が正常に駆動されたことを表すデータ、フォーカスレンズ２１０ｃや虹彩絞り２１１が正常に駆動されなかったことをその原因ごとに表すデータ、等が考えられる。
【００８１】
（変形例５）
異常を表すＲＣＭＤデータとして前々回受信されたＣＭＤデータを用いる場合、ボディ側第１通信回路１１２から同一のＣＭＤデータを含むボディ側コマンドパケット４１０ａが繰り返し送信された場合に異常を検知することが難しくなる。そこで、ボディＣＰＵ１０３が、同一のＣＭＤデータを含むボディ側コマンドパケット４１０ａ、すなわち同一の制御指示を表す制御指示データを繰り返し送信しないようにしてもよい。また、制御指示の種類ごとに、対応する種類データを２種類用意してもよい。例えば「１」および「１０」のいずれのＣＭＤデータもフォーカスレンズ２１０ｃの駆動指示を表す、と規定し、ボディＣＰＵ１０３がこれら２つのＣＭＤデータを交互に用いるようにしてもよい。
【００８２】
（変形例６）
上記実施形態では、レンズＣＰＵ２０３は、一連のコマンドデータ通信において、最終コマンドデータ通信に関しても、レンズ側からレンズ側最終コマンドパケットデータ４２０ａ−ｅｎｄを作成するようにしている。しかしながら上記実施形態では、レンズ側最終コマンドパケットデータ４２０ａ−ｅｎｄは、カメラボディ１００に送信しない。このためレンズＣＰＵ２０３は、このレンズ側最終コマンドパケットデータ４２０ａ−ｅｎｄを作成しないように構成しても良い。このように特に必要のないデータの生成を行わないようにすることで、レンズＣＰＵ２０３における負荷を削減することが出来る。
【００８３】
（変形例７）
上記実施形態では、カメラボディ１００から交換レンズ２００との間で行われる一連のコマンドデータ通信（「コマンドパケット−データパケット」の組み合わせが、連続して複数組出力されるコマンドデータ通信）において、カメラボディ側から交換レンズ側に対して最後に出力されたコマンドパケット４１０ａ−ｅｎｄ（最終コマンドパケット）に関しては、エラーチェック処理が出来ないようになっていた。すなわち、交換レンズ側で、その最終コマンドパケット４１０ａ−ｅｎｄに基づき生成されたＲＣＭＤデータ（そのＲＣＭＤデータを含むレンズ側最終コマンドパケットデータ４２０ａ−ｅｎｄ）は、交換レンズ２００から出力されることがなかった。しかしながら、カメラボディ１００側で、この最終コマンドパケットに関する通信エラーチェック処理を行えるように構成しても良い。
【００８４】
この場合には、レンズ側最終コマンドデータパケット４２０ａ−ｅｎｄを受け取るために、ボディＣＰＵ１０３およびボディ側第１通信回路１１２から特別に、上述のクロック信号４００ａ（最終クロック信号４００ａ−ｅｎｄ）を出力しても良い。そしてレンズＣＰＵ２０３およびレンズ側第１通信回路２１２は、この最終クロック信号４００ａ−ｅｎｄに応じて、上記たレンズ側最終コマンドパケットデータ４２０ａ−ｅｎｄをボディ側に出力する。この場合において、カメラＣＰＵ１０３およびボディ側第１通信回路１１２は、クロック信号を、図４に示すように（通常のコマンドパケット通信と同様に）、コマンドパケット送受信用のクロック信号４００ａとデータパケット送受信用のクロック信号４００ｂとのセットで交換レンズに送信するようにしても良いし、或いはデータパケット送受信用のクロック信号４００ｂは送信せずにコマンドパケット送受信用のクロック信号４００ａのみを送信するようにしても良い。
【００８５】
このように構成すれば、カメラボディ側は、最終コマンドパケットに関しても、レンズ側で確実にそして正確に受け取られているかを確認するエラーチェックが出来る。
【００８６】
（変形例８）
上記実施形態では、ＲＣＭＤデータとＣＭＤデータとが一致しなかった場合に、カメラボディ１００が行うエラー処理として、交換レンズ２００に伝わっていない虞のあるコマンドデータを再送する処理や、警告表示処理などを行っている。しかしながらエラー処理としては、これらの処理以外にも、「次に」送信する「コマンドパケット−データパケット」の組において、それのデータパケットに補正を加えた上で（前回のコマンドデータ通信のときに交換レンズに対して指示した内容を加味した上で）、次のコマンドデータ通信を行う、というエラー処理を行っても良い。具体的に述べると、通信失敗したコマンドパケットおよびデータパケットの組が例えば、「フォーカスレンズを被写体側に５ｍｍ動かせ」という内容であり、且つ次に送信しようとするコマンドパケットおよびデータパケットの組が例えば、「フォーカスレンズを被写体側に３ｍｍ動かせ」という内容であった仮定する。この場合、その通信失敗した内容（「フォーカスレンズを被写体側に５ｍｍ動かせ」）を踏まえて、次に送信予定だったコマンドパケットおよびデータパケットの内容（「フォーカスレンズを被写体側に３ｍｍ動かせ」）を、「フォーカスレンズを被写体側に８ｍｍ動かせ」という内容に補正した上で、コマンドデータ通信を行う。
【００８７】
（変形例９）
上記実施形態では、ブレ補正機構として、光軸Ｒとは垂直な方向の成分をもつように移動可能なブレ補正レンズを含み、そのブレ補正レンズを駆動することにより手振れ補正を行うものについて述べた。しかしながらブレ補正機構としてはこれに限らず、ブレ補正光学系を、光学系２１０の光軸を含む面内方向に回転（揺動）させてブレ補正を行う方式のものでも良い。
【００８８】
本発明の特徴を損なわない限り、本発明は上記実施の形態に限定されるものではなく、本発明の技術的思想の範囲内で考えられるその他の形態についても、本発明の範囲内に含まれる。
【符号の説明】
【００８９】
１…カメラシステム、１００…カメラボディ、１０３…ボディＣＰＵ、１１２…ボディ側第１通信回路、１１３…ボディ側第２通信回路、２００…交換レンズ、２０３…レンズＣＰＵ、２１２…レンズ側第１通信回路、２１３…レンズ側第２通信回路
【図１】
0005182357.tif 000002
【図２】
0005182357.tif 000003
【図３】
0005182357.tif 000004
【図４】
0005182357.tif 000005
【図５】
0005182357.tif 000006
【図６】
0005182357.tif 000007
【図７】
0005182357.tif 000008
【図８】
0005182357.tif 000009