以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載の情報処理システム(例えば、図1の記録再生装置1)は、第1の情報処理装置(例えば、図1のカメラブロック11)は、第2の情報処理装置(例えば、図1の記録再生ブロック12)に送信される第1のデータ(例えば、図4のコマンドアックパケット211)に、第2の情報処理装置への送信待ちのデータが蓄積される送信バッファ(例えば、図2の送信キュー108)の残量情報(例えば、図4の送信キュー情報)を付加する付加手段(例えば、図2の情報付加部113)と、付加手段により送信バッファの残量情報が付加された第1のデータを、第2の情報処理装置に送信する第1の送信手段(例えば、図2の送信キューコントローラ106)とを備え、第2の情報処理装置は、第1の情報処理装置に、第2のデータ(例えば、図4のコマンドパケット201)を送信する第2の送信手段(例えば、図2の送信キューコントローラ136)と、第1の情報処理装置から送信されてくる第1のデータを受信するデータ受信手段(例えば、図2の受信キューコントローラ134)と、データ受信手段により受信された第1データに付加された送信バッファの残量情報に基づいて、送信バッファの残量が所定値より小さいか否かを判定する残量判定手段(例えば、図2のメインCPU41)と、残量判定手段により送信バッファの残量が所定値より小さいと判定された場合、第2の送信手段による第2のデータの送信よりも、第1の送信手段による第1のデータの送信を優先して行うように、第1の情報処理装置との通信を制御する通信制御手段(例えば、図2の通信制御部131)とを備えることを特徴とする。
請求項2に記載の情報処理システムは、第2のデータは、制御コマンドデータ(例えば、図4のコマンドパケット201)であり、第1のデータは、第1の情報処理装置により第2のデータが受信されたことを通知する通知データ(例えば、図4のコマンドアックパケット211)、または、第1の情報処理装置により第2のデータに応じて実行された処理の結果を示す結果データ(例えば、図4のリザルトパケット212)であることを特徴とする。
請求項3に記載の情報処理装置(例えば、図1のカメラブロック11)は、他の情報処理装置(例えば、図1の記録再生ブロック12)から送信されてくる第1のデータ(例えば、図4のコマンドパケット201)を受信する受信手段(例えば、図2の受信キューコントローラ104)と、他の情報処理装置に送信される第2のデータ(例えば、図4のコマンドアックパケット211)に、他の情報処理装置への送信待ちのデータが蓄積される送信バッファ(例えば、図2の送信キュー108)の残量情報(例えば、図4の送信キュー情報)を付加する付加手段(例えば、図2の情報付加部113)と、付加手段により送信バッファの残量情報が付加された第2のデータを、他の情報処理装置に送信する送信手段(例えば、図2の送信キューコントローラ106)とを備え、他の情報処理装置により、送信手段により送信された第2のデータに付加された送信バッファの残量情報に基づいて、送信バッファの残量が所定値より小さいと判定された場合、送信手段による第2のデータの送信は、受信手段による第1のデータの受信よりも優先的に実行されることを特徴とする。
請求項4に記載の情報処理装置は、第1のデータは、制御コマンドデータ(例えば、図4のコマンドパケット201)であり、第2のデータは、受信手段により第1のデータが受信されたことを通知する通知データ(例えば、図4のコマンドアックパケット211)、または、第1のデータに応じて実行された処理の結果を示す結果データ(例えば、図4のリザルトパケット212)であることを特徴とする。
請求項6に記載の情報処理装置は、受信手段により受信された第1のデータが蓄積される受信バッファ(例えば、図2の受信キュー105)の残量が所定値より小さいか否かを判定する残量判定手段(例えば、図2のカメラ用CPU21)をさらに備え、残量判定手段により受信バッファの残量が所定値より小さいと判定された場合、送信手段は、通知データの送信を待機し、結果データを送信することを特徴とする。
請求項7に記載の情報処理方法は、他の情報処理装置から送信されてくる第1のデータを受信する受信ステップ(例えば、図10のステップS75)と、他の情報処理装置に送信される第2のデータに、他の情報処理装置への送信待ちのデータが蓄積される送信バッファの残量情報を付加する付加ステップ(例えば、図13のステップS104)と、付加ステップの処理により送信バッファの残量情報が付加された第2のデータを、他の情報処理装置に送信する送信ステップ(例えば、図13のステップS105)とを含み、他の情報処理装置により、送信ステップの処理により送信された第2のデータに付加された送信バッファの残量情報に基づいて、送信バッファの残量が所定値より小さいと判定された場合、第2のデータの送信は、第1のデータの受信よりも優先的に実行されることを特徴とする。
なお、請求項8に記載の記録媒体および請求項9に記載のプログラムも、上述した請求項7に記載の情報処理方法と基本的に同様の構成であるため、繰り返しになるのでその説明は省略する。
請求項10に記載の情報処理装置(例えば、図1の記録再生ブロック12)は、他の情報処理装置(例えば、図1のカメラブロック11)に、第1のデータ(例えば、図4のコマンドパケット201)を送信する送信手段(例えば、図2の送信キューコントローラ136)と、他の情報処理装置から送信されてくる、他の情報処理装置の送信バッファ(例えば、図2の送信キュー108)の残量情報(例えば、図4の送信キュー情報)が付加された第2のデータ(例えば、図4のコマンドアックパケット211)を受信する受信手段(例えば、図2の受信キューコントローラ134)と、受信手段により受信された第2データに付加された送信バッファの残量情報に基づいて、送信バッファの残量が所定値より小さいか否かを判定する残量判定手段(例えば、図2のメインCPU41)と、残量判定手段により送信バッファの残量が所定値より小さいと判定された場合、送信手段による第1のデータの送信よりも、受信手段による第2のデータの受信を優先して行うように、他の情報処理装置との通信を制御する通信制御手段(例えば、図2の通信制御部131)とを備えることを特徴とする。
請求項12に記載の情報処理装置は、第1のデータは、制御コマンドデータ(例えば、図4のコマンドパケット201)であり、第2のデータは、送信手段により送信された第1のデータが他の情報処理装置により受信されたことを通知する通知データ(例えば、図4のコマンドアックパケット211)、または、他の情報処理装置において第1のデータに応じて実行された処理の結果を示す結果データ(例えば、図4のリザルトパケット212)であることを特徴とする。
請求項13に記載の情報処理方法は、他の情報処理装置に、第1のデータを送信する送信ステップ(例えば、図8のステップS56)と、他の情報処理装置から送信されてくる、他の情報処理装置の送信バッファの残量情報が付加された第2のデータを受信する受信ステップ(例えば、図14のステップS123)と、受信ステップの処理により受信された第2データに付加された送信バッファの残量情報に基づいて、送信バッファの残量が所定値より小さいか否かを判定する残量判定ステップ(例えば、図6のステップS23)と、残量判定ステップの処理により送信バッファの残量が所定値より小さいと判定された場合、第1のデータの送信よりも、第2のデータの受信を優先して行うように、他の情報処理装置との通信を制御する通信制御ステップ(例えば、図6のステップS23のNOの処理)とを含むことを特徴とする。
なお、請求項14に記載の記録媒体および請求項15に記載のプログラムも、上述した請求項13に記載の情報処理方法と基本的に同様の構成であるため、繰り返しになるのでその説明は省略する。
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用した記録再生装置の一実施の形態の構成例を示すブロック図である。
図1においては、記録再生装置1とパーソナルコンピュータ(PC)2とがUSB(Universal Serial Bus)ケーブル3を介して接続され、双方向に通信が可能になっている。
記録再生装置1は、カメラブロック11と記録再生ブロック12から構成されている。
カメラブロック11は、カメラ用CPU21、撮像部22、バッファ23、表示部24、NVRAM(Non Volatile Random Access Memory)25、通信部26、および電源回路27から構成され、撮像部22における撮像処理および表示部24の画像の表示を制御する。
記録再生ブロック12は、メインCPU41、操作部42、USBI/F(Universal Serial Bus Interface)43、オーディオ信号処理部44、オーディオ入出力部45、スピーカ46、マイク47、記録再生部48、バッファ49、電源供給部50、記憶部51、および通信部52から構成され、記録再生部48に装着されたディスク60に対する画像または楽曲(のデータ)の記録および読み出しを制御する。
なお、カメラブロック11の通信部26と記録再生ブロック12の通信部52とは、シリアル線161や通信制御線163(いずれも図2)などからなる通信バス71で接続されており、各種のデータが必要に応じて相互に授受可能となされている。
カメラブロック11のカメラ用CPU21は、通信部26、通信バス71、および通信部52を介して、記録再生ブロック12のメインCPU41の制御のもと、シリアル通信により、記録再生ブロック12のメインCPU41とデータの送受信を行う。カメラ用CPU21は、記録再生ブロック12のメインCPU41から、通信部52、通信バス71、および通信部26を介して、シリアル通信により送信されてくるコマンドに応じて、カメラブロック11の各部を制御する。
例えば、カメラ用CPU21は、メインCPU41から送信されてくるコマンドに応じて、撮像部22を制御し、被写体を撮像する。カメラ用CPU21は、撮像の結果、撮像部22から供給される被写体の画像(のデータ)を、バッファ23に供給する。また、カメラ用CPU21は、メインCPU41から送信されてくるコマンドに応じて、バッファ23から画像データを読み出し、その画像データに対して、例えば、JPEG(Joint Photographic Experts Group)エンコード処理を行う。そして、カメラ用CPU21は、エンコード後の画像データを、メインCPU41に送信する。
さらに、カメラ用CPU21は、例えば、メインCPU41から送信されてくるコマンドに応じて、メイン41から送信されてくる画像データをバッファ23に記憶させ、メインCPU41から送信されてくるコマンドに応じて、バッファ23から画像データを読み出し、表示部24に供給したり、NVRAM25からアイコンの画像、背景画像、カウンタ画像などの、表示部24に複数回表示される可能性が高い画像のデータ(以下、固定画像データという)を読み出して、表示部24に供給する。
なお、表示部24の表示は、背景画像レイヤ、写真画像レイヤ、およびアイコン画像レイヤなどの形式別のレイヤ構造を有しており、それぞれのレイヤは、独立して表示、非表示が選択可能に構成されている。そして、バッファ23は、各レイヤ用のバッファで構成されている。
撮像部22は、CMOS(Complementary Mental Oxide Semiconductor)やCCD(Charge Coupled Device)などの撮像素子およびAF(Auto Focus)モジュールなどで構成され、被写体にフォーカスして撮像を行い、撮像された画像(データ)をカメラ用CPU21に供給する。バッファ23は、カメラ用CPU21からの画像データを一時的に記憶する。表示部24は、例えば、液晶ディスプレイから構成され、カメラ用CPU21からの画像データに対応する画像を表示する。
NVRAM25は、書き換え可能なメモリであり、固定画像データを記憶している。なお、NVRAM25に記憶されている固定画像データは、カメラ用CPU21により、メインCPU41から送信されてくるコマンドに応じて、書き換えられる。
通信部26は、カメラ用CPU21からの制御のもと、通信バス71を介して、記録再生ブロック12の通信部52と通信制御信号の送受信を行い、シリアル通信により、各種データの送受信を行う。
電源回路27は、記録再生ブロック12の電源供給部50と、電源供給線72を介して接続されており、電源回路27には、電源供給線72を介して、電源供給部50からの電源(POWER)が供給される。電源回路27は、カメラ用CPU21の制御のもと、カメラブロック11の各部に電源供給部50から供給された電源を供給する。
記録再生ブロック12のメインCPU41は、例えば、操作部42からの操作信号に応じて、ディスク60に対する画像や楽曲のデータの記録(書き込み)および読み出し、楽曲の再生などのための各種の演算および各部の制御を行う。また、メインCPU41は、操作部42からの操作信号に応じて、カメラブロック11の各部を制御するコマンドを生成し、通信部52、通信バス71、および通信部26を介して、カメラブロック11のカメラ用CPU21に送信する。すなわち、記録再生ブロック12とカメラブロック11間の通信の制御も、メインCPU41が行う。
操作部42は、例えば、記録再生装置1の表面に設けられたボタンやダイヤルなどからなり、撮像や画像の表示、または楽曲の再生などの、記録再生装置1に対するユーザの指示を受け付け、その指示を表す操作信号をメインCPU41に供給する。USBI/F43は、メインCPU41の制御により、記録再生部48からの画像や楽曲のデータを、USBケーブル3を介して、PC2に供給する。また、USBI/F43には、PC2から、例えばダウンロードされた画像や楽曲のデータが供給され、USBI/F43は、その画像や楽曲のデータを、記録再生部48に供給する。
オーディオ信号処理部44は、メインCPU41からの楽曲のデータに対して、例えば、1-7RLL (1-7 Run-Length Limited coding)変調処理などを行い、記録再生部48に供給する。また、オーディオ信号処理部44は、記録再生部48からの楽曲のデータに対して、1-7RLL復調処理などを行い、オーディオ入出力部45に供給する。
オーディオ入出力部45は、オーディオ信号処理部44からの楽曲のデータに対応する音声を、スピーカ46に供給する。また、オーディオ入出力部45は、マイク47からの音声を、オーディオ信号処理部44に供給する。スピーカ46は、オーディオ入出力部45からの音声を外部に出力し、マイク47は、外部から取得した音声をオーディオ入出力部45に供給する。
記録再生部48は、メインCPU41の制御により、ディスク60から読み出した画像や楽曲のデータをバッファ49に供給したり、バッファ49に記憶されている画像や楽曲のデータを読み出す。なお、ディスク60としては、光ディスク(CD(Compact Disc)、DVD(Digital Versatile Disk)など)、光磁気ディスク(MD(Mini-Disc)Hi-MD(Hi-Mini-Disk)(商標)など)、磁気ディスクなどを用いることが可能である。
また、記録再生部48は、バッファ49から読み出した楽曲のデータを、オーディオ信号処理部44に供給したり、オーディオ信号処理部44から供給される楽曲のデータを、ディスク60に記録する。さらに、記録再生部48は、バッファ49から読み出した画像のデータを、メインCPU41に供給したり、メインCPU41から供給される画像のデータを、ディスク60に記録する。
バッファ49は、記録再生部48から供給されるディスク60から読み出された画像や楽曲のデータなどを記憶する。
電源供給部50は、メインCPU41の制御により、記録再生ブロック12の動作状態に応じて、記録再生ブロック12の各部に電源を供給したり、メインCPU41の制御により、電源供給線72を介して、カメラブロック11の電源回路27に電源を供給する。
記憶部51は、例えば、NVRAM25に記憶されている固定画像データに関する情報(以下、固定画像データ関連情報という)などを記憶している。メインCPU41は、記憶部51から、固定画像データ関連情報を読み出し、その固定画像データ関連情報に基づいて、画像の表示を指令するコマンドを、通信部52、通信バス71、および通信部26を介して、カメラ用CPU21に送信する。
通信部52は、メインCPU41からの制御のもと、通信バス71を介して、カメラブロック11の通信部26と通信制御信号の送受信を行い、シリアル通信により、各種データの送受信を行う。
以上のように構成される記録再生装置1においては、メインCPU41により記録再生装置1全体の制御および通信の制御が行われる。すなわち、メインCPU41は、操作部42からの操作信号に応じて、記録再生ブロック12の各部を制御するとともに、カメラブロック11の各部を制御するコマンドを生成し、カメラブロック11のカメラ用CPU21に送信する。
これにより、記録再生装置1において、カメラ用CPU21が、メインCPU41からシリアルバス71を介して送信されてくるコマンドに応じて、NVRAM25に記憶されている固定画像データに対応する画像を、表示部24に表示させたり、メインCPU41から送信されてくる画像データに対応する画像を、表示部24に表示させる。また、カメラ用CPU21は、メインCPU41から送信されてくるコマンドに応じて、撮像した結果得られる画像データを、メインCPU41に送信し、メインCPU41が、その画像データを、ディスク60に記録させる。さらに、メインCPU41は、ディスク60に記録されている楽曲データに対応する音声を、スピーカ46から出力させる。
図2は、カメラブロック11の通信部26と記録再生ブロック12の通信部52の詳細な構成例を示している。
カメラブロック11の通信部26は、通信制御部101、カメラ用通信I/F(インタフェース)102、S/P(serial/parallel)変換部103、受信キューコントローラ104、受信キュー105、送信キューコントローラ106、バッファ107、送信キュー108、およびP/S (parallel /serial)変換部109により構成される。
記録再生ブロック12の通信部52は、通信制御部131、メイン用通信I/F132、S/P変換部133、受信キューコントローラ134、受信キュー135、送信キューコントローラ136、送信キュー138、およびP/S変換部139により構成される。
カメラブロック11の通信部26と記録再生ブロック12の通信部52は、それぞれのカメラ用通信I/F102およびメイン用通信I/F132を介して接続されており、各種データを送受信する。具体的には、カメラ用通信I/F102は、シリアルI/F111およびポート112により構成され、記録再生ブロック12のメイン用通信I/F132は、シリアルI/F141およびポート142により構成され、カメラブロック11と記録再生ブロック12間のデータやクロック、制御信号を送受信する。
シリアルI/F111および141は、シリアルデータ線161−1とシリアルクロック線161−2からなるシリアル線161を介して相互に接続されている。シリアルI/F111および141は、シリアルデータ線161−1を介して、P/S変換部109および139からのパケット化されたデータ(以下、単にパケットとも称する)を、それぞれ送受信する。また、シリアルI/F111は、通信制御部101からのクロックを、シリアルクロック線161−2を介して、シリアルI/F141に供給する。
ポート112および142は、8本からなる通信制御線163を介して相互に接続されており、通信制御部101および131からの各種制御信号をそれぞれ送受信する。
図2のカメラブロック11のカメラ用CPU21は、受信キューコントローラ104から、記録再生ブロック12からのパケット(カメラブロック11を制御するコマンドパケット)が供給されると、受信キューコントローラ104から、受信キュー105の残量情報を取得し、取得した受信キュー105の残量情報に基づいて、受信キュー105が次のデータを受信可能な残量があるか否かを判定する。
カメラ用CPU21は、受信キュー105が次のデータを受信可能な残量があると判定した場合、コマンドの受信完了を通知するデータをパケット化したコマンドアックパケットを生成し、生成したコマンドアックパケットを、送信キューコントローラ106に供給し、通信制御部101にコマンドアックパケットの送信を要求する。すなわち、コマンドアックパケットは、次のコマンドを受信可能であることを示すパケットであるともいえる。
また、カメラ用CPU21は、供給されたコマンドに応じてカメラブロック11の各部を制御し、コマンドの実行が完了したとき、コマンドの実行完了を通知するデータをパケット化したリザルトパケットを生成し、生成したリザルトパケットを、送信キューコントローラ106に供給し、通信制御部101にリザルトパケットの送信を要求する。なお、コマンドの実行完了にデータが伴う場合には、リザルトパケットに付随して、リザルトデータパケットも生成され、連続して送信キューコントローラ106に供給される。
通信制御部101は、カメラ用CPU21からのパケット(コマンドアックパケットまたはリザルトパケット)送信の要求やパケット受信受諾などに応じて、ポート112を介して、記録再生ブロック12の通信制御部131と各種制御信号を送受信する。通信制御部101は、通信制御部131の制御のもと、シリアルI/F111を介して、記録再生ブロック12に、内蔵するクロック生成部(図示せず)で生成された所定のクロックを供給し、クロックに同期して、送信キューコントローラ106を制御し、バッファ107または送信キュー108に蓄積されているパケットを、記録再生ブロック12に送信させる。このとき、クロックは、S/P変換部103およびP/S変換部109にも供給される。
なお、通信制御部101は、カメラ用CPU21の制御のもと、カメラブロック11から送信するパケットのうち、リザルトパケットよりも、コマンドアックパケットを優先的に送信するように、送信キューコントローラ106を制御する。
S/P変換部103は、通信制御部101からのクロックに同期して、シリアルI/F111からのパケットをS/P変換し、受信キューコントローラ104に供給する。
受信キューコントローラ104は、S/P変換部103からのパケットを受信キュー105に蓄積し、カメラ用CPU21の制御のもと、受信キュー105のパケットを、カメラ用CPU21に供給する。また、受信キューコントローラ104は、カメラ用CPU21の要求に応じて受信キュー105の残量情報を通知する。
送信キューコントローラ106は、カメラ用CPU21から、コマンドアックパケットが供給されると、バッファ107に一旦蓄積し、カメラ用CPU21から、リザルトパケットが供給されると、送信キュー108に一旦蓄積する。すなわち、コマンドアックパケットは、リザルトパケットよりも優先して送信するために、送信キュー108には積まれない。また、送信キューコントローラ106は、情報付加部113を内蔵している。情報付加部113は、送信キュー108の総容量を記憶し、送信キュー108の残量を監視している。
送信キューコントローラ106は、通信制御部101からの送信要求に応じて、バッファ107からコマンドアックパケットを読み出し、あるいは、送信キュー108からリザルトパケットを読み出し、情報付加部113を制御し、読み出したパケットに、送信キュー108の総容量と残量の情報(以下、送信キュー情報と称する)を付加させて、P/S変換部109に供給する。
P/S変換部109は、通信制御部101からのクロックに同期して、送信キューコントローラ106からのパケットをP/S変換し、シリアルI/F111に供給する。
図2の記録再生ブロック12のメインCPU41は、カメラブロック11の送信キュー108の総容量および残量を保持している。メインCPU41は、受信キューコントローラ134から供給されるパケットのパリティチェックや、パケット解析を行うとともに、パケットに付加された送信キュー情報を取得すると、保持している送信キュー108の総容量と残量を更新する。
メインCPU41は、操作部42を介して入力されるユーザからの指示のもと、所定の処理のコマンドをパケット化したコマンドパケットを生成すると、生成したコマンドパケットを、送信キューコントローラ136に供給し、コマンドパケットの送信処理を、カメラブロック11からのパケットの送信処理よりも優先的に行うように、通信制御部131を制御する。
ただし、メインCPU41は、前回送信したコマンドに対応するコマンドアックパケットをすでに受信しているか否かを判定し、前回送信したコマンドに対応するコマンドアックパケットをすでに受信していると判定するまでコマンド送信を待機(禁止)する。すなわち、この場合、メインCPU41は、通信制御部131に、カメラ用CPU21からのパケット送信要求を優先させる。
また、メインCPU41は、カメラブロック11から受信したパケットに基づいて更新される送信キュー108の残量が予め設定されているしきい値よりも小さいか否かを判定し、送信キュー108の残量が予め設定されているしきい値よりも小さいと判定した場合も、コマンド送信を待機し、通信制御部131に、カメラ用CPU21からのパケット送信要求を優先させる。
メインCPU41は、前回送信したコマンドに対応するコマンドアックパケットをすでに受信していると判定した場合、かつ、送信キュー108の残量が予め設定されているしきい値よりも大きいと判定した場合、通信制御部131にコマンドパケットの送信を要求する。なお、コマンドにデータが伴う場合には、コマンドパケットに付随して、コマンドデータパケットも生成され、送信キューコントローラ136に連続して供給される。
通信制御部131は、メインCPU41からのパケット(コマンドパケット)送信要求やパケット受信受諾などに応じて、ポート142を介して、カメラブロック11の通信制御部101と制御信号を送受信し、カメラブロック11と記録再生ブロック12間のパケット通信を制御する。このとき、通信制御部131は、メインCPU41の制御のもと、通信制御部101から送信されてくるカメラ用CPU21からのパケットの送信要求よりも、メインCPU41からのパケット(コマンドパケット)送信要求を優先して受け付ける。
通信制御部131が、カメラブロック11の通信制御部101にパケットの送受信の受諾する信号を送信すると、カメラブロック11からのクロックは、通信制御部131とともに、S/P変換部133およびP/S変換部139にも供給される。通信制御部131は、クロックを受信すると、クロックに同期して、送信キューコントローラ136に、送信キュー138に蓄積されているパケットを、カメラブロック11に送信させる。
S/P変換部133は、シリアルI/F141からのクロックに同期して、シリアルI/F141からのパケットをS/P変換し、受信キューコントローラ134に供給する。
受信キューコントローラ134は、S/P変換部133からのデータを受信キュー135に蓄積し、メインCPU41の制御のもと、受信キュー135のデータを、メインCPU41に供給する。また、受信キューコントローラ134は、メインCPU41の要求に応じて受信キュー135の残量情報を通知する。
送信キューコントローラ136は、メインCPU41から、コマンドパケットが供給されると、送信キュー138に一旦蓄積する。送信キューコントローラ136は、メインCPU41の要求に応じて送信キュー138の残量情報を通知する。送信キューコントローラ136は、通信制御部101からの送信要求に応じて、送信キュー138からコマンドパケットを読み出し、P/S変換部139に供給する。
P/S変換部139は、通信制御部131からのクロックに同期して、送信キューコントローラ136からのデータをP/S変換し、シリアルI/F141に供給する。
図3は、カメラ用通信I/F102とメイン用通信I/F132の詳細な構成例を示している。なお、図3において、図2における場合と対応する部分には対応する符号を付してあり、その説明は繰り返しになるので省略する。
カメラ用通信I/F102は、シリアルI/F111、DMA(Direct Memory Access)バッファ171、およびポート112から構成される。また、メイン用通信I/F132は、シリアルI/F141、DMAバッファ181、およびポート142から構成される。
カメラブロック11のシリアルI/F111と、記録再生ブロック12のシリアルI/F141とは、シリアル線161であるシリアルデータ線(C_SIO)161−1と、シリアルクロック線(SCK)161−2を介して接続されている。
シリアルI/F111は、シリアルクロック線161−2を介して、通信制御部101から供給される所定のクロックを、シリアルI/F141に送信する。また、シリアルI/F111は、シリアルデータ線161−1を介して、シリアルI/F141とシリアル通信を行い、必要に応じて、シリアル通信を行うデータを、DMAバッファ171に供給し、記憶させる。シリアルI/F141は、シリアルI/F111と同様に、必要に応じて、シリアル通信を行うデータを、DMAバッファ181に供給し、記憶させる。
ポート112とポート142とは、8本の通信制御線163−1乃至163−8を介して、接続されている。通信制御線163−1は、REQ(リクエスト)信号(ドライブ_REQ)を、メイン用通信I/F132(のポート142)から、カメラ用通信I/F102(のポート112)に送信し、通信制御部101に割り込み(interrupt)を行う。通信制御線163−2は、ポート112からのREQ信号(カメラ_REQ)を、カメラ用通信I/F102から、メイン用通信I/F132に送信し、通信制御部131に割り込みを行う。ここで、通信制御部101と通信制御部131は、カメラ用CPU21またはメインCPU41の制御のもと、例えば、シリアル線161によるシリアル通信の確立を要求するとき、通信制御線163−1または163−2により、REQ信号を送信する。
通信制御線163−3は、ACK(acknowledgement)信号(ドライブ_ACK)を、メイン用通信I/F132から、カメラ用通信I/F102に送信し、通信制御部101に割り込みを行う。通信制御線163−4は、ACK信号(カメラ_ACK)を、カメラ用通信I/F102から、メイン用通信I/F132に送信し、通信制御部131に割り込みを行う。
通信制御線163−5は、NACK(Negative acknowledgement)信号(ドライブ_NACK)を、メイン用通信I/F132から、カメラ用通信I/F102に送信し、通信制御部101に割り込みを行う。通信制御線163−6は、NACK信号(カメラ_NACK)を、カメラ用通信I/F102から、メイン用通信I/F132に送信し、通信制御部131に割り込みを行う。
ここで、通信制御部101と通信制御部131は、カメラ用CPU21またはメインCPU41の制御のもと、相手から送信されてくるデータを正常に受信した場合、あるいは、相手から送信されてくる要求を受諾する場合、その相手にACK信号を送信し、相手から送信されてくるデータを正常に受信しない場合、その相手にNACK信号を送信する。
通信制御線163−7は、カメラ用CPU21に対する初期化を指示するRESET信号を、メインCPU41の制御のもと、メイン用通信I/F132から、カメラ用通信I/F102を介して、カメラ用CPU21に送信する。通信制御線163−8は、カメラ用CPU21に起動を指示するWAKE信号を、メインCPU41の制御のもと、メイン用通信I/F132から、カメラ用通信I/F102を介して、カメラ用CPU21に送信する。
次に、図4を参照して、カメラブロック11と記録再生ブロック12で送受信されるデータを詳しく説明する。
記録再生ブロック12のメインCPU41は、カメラブロック11に対して動作を指示するコマンドをパケット化したコマンドパケット201を、シリアルデータ線161−1を介して、カメラブロック11に送信する。このとき、メインCPU41は、必要に応じて、コマンドパケット201に付随して、所定のデータをパケット化したコマンドデータパケットを、カメラブロック11に送信することが可能である。
具体的には、コマンドパケット201は、記録再生ブロック12のメインCPU41から、シリアルI/F141、シリアルデータ線161、およびシリアルI/F111を介して、カメラブロック11のカメラ用CPU21に送信されるパケットであり、コマンドパケット201には、メインCPU41からのカメラ用CPU21に対する動作の指示を行うコマンドが記載されている。
コマンドパケット201には、送信するコマンドの種類によってデータが含まれたコマンドデータパケットが付随して送信される。例えば、ディスク60に記録されている画像データをカメラブロック11の表示部24に表示させるコマンドの場合には、表示部24に表示する画像データがパケット化されて、コマンドデータパケットとして、コマンドパケット201に連続して送信される。
なお、コマンドパケット201は、カメラブロック11から、前回に送信したコマンドパケット201に対応するコマンドアックパケット211が記録再生ブロック12に受信されていなければ、記録再生ブロック12において送信されることが禁止されている。すなわち、この場合、記録再生ブロック12においては、前回に送信したコマンドパケット201に対応するコマンドアックパケット211の受信が最優先される。
また、コマンドパケット201は、記録再生ブロック12において、カメラブロック11から受信される、コマンドアックパケット211およびリザルトパケット212に付加されているカメラブロック11の送信キュー108の残量情報に基づいて、送信キュー108の残量が所定のしきい値よりも小さいと判定された場合(すなわち、送信キュー108において待ち状態が続き、送信キュー108にデータがあふれてしまう状態であると判定された場合)にも、送信されることが禁止される。
すなわち、この場合、記録再生ブロック12においては、コマンドアックパケット211やリザルトパケット212の受信が最優先され、コマンドアックパケット211やリザルトパケット212のために通信路が開放される。すなわち、送信キュー情報が付加されたコマンドアックパケット(リザルトパケット)は、カメラブロック11からの送信のために通信路を空けて欲しいことや、通信路を空けて欲しいか否かを通知するパケットともいえる。
カメラブロック11のカメラ用CPU21は、メインCPU41からのコマンドパケット201を受信すると、コマンドパケット201の受信完了を通知するデータをパケット化したコマンドアックパケット211を、シリアルデータ線161−1を介して、記録再生ブロック12に送信する。
具体的には、コマンドアックパケット211は、カメラブロック11のカメラ用CPU21から、シリアルI/F111、シリアルデータ線161−1、およびシリアルI/F141を介して、記録再生ブロック12のメインCPU41に送信されるパケットであり、コマンドアックパケット211には、メインCPU41からのコマンドパケット201の受信の完了通知が記載され、さらに、カメラブロック11の送信キュー108の総容量と残量の情報である送信キュー情報が付加されている。なお、この送信キュー情報は、送信キュー108の残量がわかる情報であればよく、送信キュー108の残量情報だけであってもよいし、総容量と蓄積されているデータ容量の情報であってもよい。
コマンドアックパケット211は、1つのコマンドパケット201に対して必ず1つ生成されるパケットであり、カメラブロック11において、受信キュー105が次のコマンドパケット201を受信できる状態である、すなわち、受信キュー105の残量が所定のしきい値より大きいと判定された場合、リザルトパケット212よりも優先して送信される。
カメラブロック11のカメラ用CPU21は、メインCPU41から受信したコマンドパケット201のコマンドに対応する動作を行い、動作の完了後、動作の完了を通知するリザルトデータをパケット化したリザルトパケット212を、シリアルデータ線161−1を介して、記録再生ブロック12に送信する。このとき、カメラ用CPU21は、必要に応じて、リザルトパケット212に付随して、所定のデータをパケット化したリザルトデータパケットを、記録再生ブロック12に送信することが可能である。
具体的には、リザルトパケット212は、カメラブロック11のカメラ用CPU21から、シリアルI/F111、シリアルデータ線161−1、およびシリアルI/F141を介して、記録再生ブロック12のメインCPU41に送信されるパケットであり、リザルトパケット212には、メインCPU41からのコマンドパケット201に対応する動作の完了通知が記載され、さらに、カメラブロック11の送信キュー108の総容量と残量の情報である送信キュー情報が付加されている。
リザルトパケット212には、受信し、完了したコマンドの種類によってデータが含まれたリザルトデータパケットが付属して送信される。例えば、撮像部22に被写体の映像を入力させ、入力された画像データを記録再生ブロック12のディスク60に記録させるコマンドに対応するリザルトの場合には、撮像部22から入力され、ディスク60に記録する画像データがパケット化されて、リザルトデータパケットとしてリザルトパケット212に連続して送信される。
リザルトパケット212は、カメラブロック11において、コマンドアックパケット211よりも送信の優先度が低い。したがって、リザルトパケット212よりも先に、コマンドアックパケット211の送信要求がある場合には、コマンドアックパケット211の送信後に、リザルトデータパケット212の送信が開始される。
なお、リザルトパケット212は、コマンドパケット201に対して、必ず1つ生成されるとは限らず、コマンドの種類に応じて、複数のリザルトパケットが生成される場合もあれば、リザルトパケット212が生成されない場合もある。例えば、無限に何かをさせるなどのコマンドにおいては、リザルトパケット212は生成されない。
次に、図5のフローチャートを参照して、記録再生装置1の画像表示制御処理を説明する。
ユーザは、操作部42を操作し、ディスク60に記録されている画像の表示を指示する。操作部42は、ユーザの指示を受け付け、その指示を表す操作信号を、メインCPU41に供給する。
メインCPU41は、ステップS1において、画像表示が指示されるまで待機している。メインCPU41は、操作部42から操作信号を入力すると、ステップS1において、画像表示が指示されたと判定し、ステップS2に進み、カメラブロック11の電源をONさせる。
すなわち、メインCPU41は、電源供給部50にカメラブロック11の電源回路27へ電源供給線72を介して電源を供給させるとともに、通信制御部131を制御し、ポート142の通信制御線163−8を介して、カメラ用CPU21に起動を指示するWAKE信号を送信させる。WAKE信号は、ポート112、および通信制御部101を介して、カメラ用CPU21に供給される。カメラ用CPU21は、WAKE信号に応じて起動し、電源回路27を制御し、カメラブロック11の所定の各部に電源を供給させる。
これにより、カメラブロック11の電源はON状態になり、カメラ用CPU21は、通信制御部101を制御し、ポート112の通信制御線163−2,163−4,および163−6(カメラ_***)をすべて初期状態にする。通信制御部131は、カメラ側の通信制御線163−2,163−4,および163−6が初期状態へ移行したことを認識し、メインCPU41に供給する。
メインCPU41は、カメラブロック11からの通信制御線163−2,163−4,および163−6がすべて初期状態になったことで、カメラブロック11の起動を確認すると、ステップS3に進み、カメラ用CPU21を制御し、カメラ用CPU21に内蔵されるRAM (Random Access Memory)(図示せぬ)に、ディスク60からの画像データを格納するためのデータ領域を確保させる。
すなわち、メインCPU41は、カメラ用CPU21に対して、カメラ用CPU21に内蔵されるRAMに、画像データのデータ領域を確保させるコマンドをパケット化したコマンドパケットを生成する。これに対応して、メインCPU41とカメラ用CPU21は、生成されたコマンドパケットを送受信し、受信されたコマンドパケットの処理を実行し、その実行を完了するまでの処理であるコマンド通信制御処理を実行する。このコマンド通信制御処理の詳細は、図6を参照して後述する。なお、以降のステップS4乃至S7においても、同様のコマンド通信制御処理が実行される。
このコマンド通信制御処理においては、記録再生ブロック12から、メインCPU41により生成されたコマンドパケットがカメラブロック11のカメラ用CPU21で受信される。カメラ用CPU21は、コマンドパケットに対応するコマンドアックパケットを送信するとともに、コマンドを実行する。このコマンドが実行されることにより、カメラブロック11のカメラ用CPU21に内蔵されるRAMに画像データのデータ領域が確保される。これにより、カメラ用CPU21は、コマンド実行完了を確認し、記録再生ブロック12にリザルトパケットを送信する。
メインCPU41は、カメラ用CPU21からのリザルトパケットを受信すると、ステップS3のコマンド実行完了を認識し、ステップS4に進み、記録再生部48を制御し、ディスク60から読み出させた画像データを、カメラブロック11に送信する。
すなわち、メインCPU41は、カメラ用CPU21に対して、画像データを受信させ、カメラブロック11のカメラ用CPU21に内蔵されるRAMに、画像データを蓄積させるコマンドをパケット化したコマンドパケットを生成する。これに対応して、メインCPU41とカメラブロック11のカメラ用CPU21は、コマンド通信制御処理(図6)を実行する。
このコマンド通信制御処理においては、記録再生ブロック12から、メインCPU41により生成されたコマンドパケット、および画像データを含むコマンドデータパケットが、カメラブロック11のカメラ用CPU21で受信される。カメラ用CPU21は、コマンドパケットに対応するコマンドアックパケットを送信するとともに、コマンドを実行する。このコマンドが実行されることにより、カメラブロック11において画像データが受信され、受信された画像データがカメラ用CPU21に内蔵されるRAMに蓄積される。これにより、カメラ用CPU21は、コマンド実行完了を確認し、記録再生ブロック12にリザルトパケットを送信する。
メインCPU41は、リザルトパケットを受信すると、ステップS4のコマンド実行完了を認識し、ステップS5に進み、カメラ用CPU21に内蔵されるRAMに蓄積された画像データを、カメラブロック11のバッファ23に格納させる。なお、表示部24の表示は、背景画像レイヤ、写真画像レイヤ、およびアイコン画像レイヤなどの形式別のレイヤ構造を有しており、それぞれのレイヤは、独立して表示、非表示が選択可能である。そして、バッファ23は、各レイヤ用のバッファで構成されている。
すなわち、メインCPU41は、カメラ用CPU21に対して、カメラ用CPU21に内蔵されるRAMに蓄積された画像データを、カメラブロック11のバッファ23の所定のレイヤ(写真画像レイヤ)用のバッファに格納させるコマンドをパケット化したコマンドパケットを生成する。これに対応して、メインCPU41とカメラブロック11のカメラ用CPU21は、コマンド通信制御処理(図6)を実行する。
このコマンド通信制御処理においては、記録再生ブロック12から、メインCPU41により生成されたコマンドパケットが、カメラブロック11のカメラ用CPU21で受信される。カメラ用CPU21は、コマンドパケットに対応するコマンドアックパケットを送信するとともに、コマンドを実行する。このコマンドが実行されることにより、カメラ用CPU21に内蔵されるRAMに蓄積された画像データが、カメラブロック11のバッファ23の写真画像レイヤ用のバッファに格納される。これにより、カメラ用CPU21は、コマンド実行完了を確認し、記録再生ブロック12にリザルトパケットを送信する。
メインCPU41は、リザルトパケットを受信すると、ステップS5のコマンド実行完了を認識し、ステップS6に進み、カメラ用CPU21に、カメラブロック11の表示部24の電源をONさせる。
すなわち、メインCPU41は、カメラ用CPU21に対して、カメラブロック11の表示部24の電源をONさせるコマンドをパケット化したコマンドパケットを生成する。これに対応して、メインCPU41とカメラブロック11のカメラ用CPU21は、コマンド通信制御処理(図6)を実行する。
このコマンド通信制御処理においては、記録再生ブロック12から、メインCPU41により生成されたコマンドパケットが、カメラブロック11のカメラ用CPU21で受信される。カメラ用CPU21は、コマンドパケットに対応するコマンドアックパケットを送信するとともに、コマンドを実行する。このコマンドが実行されることにより、カメラブロック11の電源回路27により、表示部24に電源が供給され、表示部24の電源がONされる。これにより、カメラ用CPU21は、コマンド実行完了を確認し、記録再生ブロック12にリザルトパケットを送信する。
メインCPU41は、リザルトパケットを受信すると、ステップS6のコマンド実行完了を認識し、ステップS7に進み、表示部24の表示を構成する写真画像レイヤをONさせ、バッファ23の写真画像レイヤ用のバッファから画像データを写真画像レイヤに表示させる。
すなわち、メインCPU41は、カメラ用CPU21に、カメラブロック11の表示部24の表示を構成する写真画像レイヤをONさせ、バッファ23の写真画像レイヤ用のバッファから画像データを写真画像レイヤに表示させるコマンドをパケット化したコマンドパケットを生成する。これに対応して、メインCPU41とカメラブロック11のカメラ用CPU21は、コマンド通信制御処理(図6)を実行する。
このコマンド通信制御処理においては、記録再生ブロック12から、メインCPU41により生成されたコマンドパケットが、カメラブロック11のカメラ用CPU21で受信される。カメラ用CPU21は、コマンドパケットに対応するコマンドアックパケットを送信するとともに、コマンドを実行する。このコマンドが実行されることにより、表示部24の表示を構成する写真画像レイヤがONされ、バッファ23の写真画像レイヤ用のバッファから画像データが読み出され、画像データに対応する画像が、写真画像レイヤに表示される。これにより、カメラ用CPU21は、コマンド実行完了を確認し、記録再生ブロック12にリザルトパケットが送信される。
メインCPU41は、リザルトパケットを受信すると、カメラブロック11において、ディスク60に記録される画像データに対応する画像が、表示部24の写真画像レイヤに表示されたことを確認し、画像表示制御処理を終了させる。
以上のように、記録再生ブロック12のメインCPU41は、カメラブロック11のカメラ用CPU21に対して制御したい処理のコマンドをパケット化したコマンドパケットを生成し、コマンド通信制御処理を行うことにより、カメラブロック11に、生成したコマンドに対応する処理を実行させることができる。
なお、上記説明においては、記録再生ブロック12がリザルトパケットを受信してから次のコマンドパケットを送信する例を説明したが、カメラブロック11と記録再生ブロック12間においては、記録再生ブロック12からのパケット送信の優先度が高いので、記録再生ブロック12は、前のコマンドに対応するコマンドアックパケットが受信されていれば、かつ、カメラブロック11の送信キュー108の残量が少なくなければ、前後のコマンドの内容に応じて、リザルトパケットが受信される前であっても、次のコマンドパケットを送信することもできる。
例えば、撮像部22から入力された画像データを、記録再生ブロック12のディスク60に記録させるコマンドに対応するリザルトの場合には、撮像部22から入力され、ディスク60に記録される画像データが、リザルトデータパケットとしてリザルトパケット212に連続して送信される。このような場合には、撮像部22から入力された画像データを、記録再生ブロック12のディスク60に記録させるコマンドに対応するコマンドアックパケット211を受信していて、かつ、カメラブロック11の送信キュー108の残量が少なくなければ、記録再生ブロック12は、リザルトパケット212が受信される前であっても、例えば、撮像部22に次の画像を入力させるコマンドパケット201などを送信することができる。
次に、図6のフローチャートと図7を参照して、図5のステップS3乃至S7の処理において実行されるコマンド通信制御処理を説明する。すなわち、図5のステップS3乃至S7は、処理されるコマンドの処理内容が異なるだけであり、コマンド通信制御については、同様の処理を行うため、図6を参照してまとめて説明する。
なお、図6の例においては、1つのコマンドに対する一連のコマンド通信の制御処理を順番に説明するために、説明の便宜上、カメラブロック11および記録再生ブロック12が行う処理がまとめて、通信制御の順番に示されている。すなわち、図6の例においては、ステップS21乃至S23、S28、およびS32は、記録再生ブロック12の処理であり、ステップS25、S26、S29、およびS30は、カメラブロック11の処理であり、ステップS24、S27およびS31は、カメラブロック11および記録再生ブロック12相互の処理である。
また、以下、ステップS21乃至S23の処理をまとめて、コマンドパケット送信準備処理とも適宜称し、ステップS25およびS26の処理をまとめて、コマンドアックパケット送信準備処理とも適宜称し、また、ステップS29およびS30の処理を、リザルトパケット送信準備処理とも適宜称する。
記録再生ブロック12のメインCPU41は、ステップS21において、所定のコマンド(例えば、図5のステップS3の場合、カメラ用CPU21に、画像データを受信させ、カメラブロック11のカメラ用CPU21に内蔵されるRAMに、画像データを蓄積させるコマンド)をパケット化したコマンドパケットを生成し、生成したコマンドパケットを送信キューコントローラ136に供給し、ステップS22に進み、前回送信したコマンドに対応するコマンドアックパケットが受信されたか否かを判定する。
メインCPU41は、ステップS22において、前回送信したコマンドに対応するコマンドアックパケットが受信されていないと判定した場合、ステップS23および24の処理をスキップし、ステップS25に進む。すなわち、この場合には、メインCPU41は、コマンドパケット送信要求は行わず、例えば、カメラCPU21がコマンドアックパケット送信要求を行った場合には、それを受諾する。
換言すると、メインCPU41は、後述するステップS27の処理において、前回のコマンドアックパケットがカメラブロック11から送信され、それを受信するまで、コマンドパケットの送信を待機(禁止)する。なお、この場合の対象となるコマンドアックパケットは、今回のコマンドパケットに対応するものではなく、前回のコマンドパケットに対応する前回のコマンドアックパケットである。
ステップS22において、前回送信したコマンドに対応するコマンドアックが受信されていると判定された場合、メインCPU41は、ステップS23に進み、記憶している送信キュー108の残量情報に基づいて、送信キュー108の残量が所定のしきい値よりも大きいか否かを判定する。
ステップS23において、送信キュー108の残量が所定のしきい値よりも小さいと判定された場合、送信キュー108に前のコマンドが処理された結果のリザルトパケットが蓄積されているので、ステップS24乃至30の処理は、スキップされ、処理は、ステップS31に進み、リザルトパケットの送信受信処理が優先的に実行される。すなわち、この場合には、メインCPU41は、コマンドパケット送信要求は行わず、カメラCPU21が行うリザルトパケット送信要求を受諾する。
換言すると、メインCPU41は、後述するステップS31の処理において、今回より前のリザルトパケットがカメラブロック11から送信され、それを受信して、送信キュー108の残量が所定のしきい値よりも大きいと判定するまで、コマンドパケットの送信を待機(禁止)する。
なお、このとき、ステップS22において前回のコマンドアックパケットは受信されていると判定されているので、ステップS25乃至S27のコマンドアックパケットに関する処理もスキップされているが、前回のコマンドアックパケットが受信されていない場合に、バッファ107にコマンドアックパケットがある場合には、処理は、ステップS27に進み、リザルトパケット送信の前にコマンドアックパケットが送信される。また、この場合の対象となるリザルトパケットは、今回のコマンドパケットに対応するものではなく、今回より前のコマンドパケットに対応するリザルトパケットである。
メインCPU41は、ステップS23において、送信キュー108の残量情報に基づいて、送信キュー108の残量が所定のしきい値よりも大きいと判定した場合、通信制御部131に、コマンドパケット201の送信要求を行う。
これに対応して、記録再生ブロック12の通信制御部131と、カメラブロック11の通信制御部101は、メインCPU41およびカメラ用CPU21の制御のもと、ステップS24において、図7に示されるコマンドパケット送受信制御処理M1を実行する。
コマンドパケット送受信制御処理M1は、記録再生ブロック12の通信制御部131が、メインCPU41の制御のもと、シリアルデータ線161−1を介して、コマンドパケット201を送信し、カメラブロック11の通信制御部101が、カメラ用CPU21の制御のもと、記録再生ブロック12により送信されたコマンドパケット201を受信する処理である。
この記録再生ブロック12の通信制御部131によるコマンドパケット送信制御処理は、図8および図9を参照し、これに対応するカメラブロック11の通信制御部101のコマンドパケット受信制御処理は、図10および図11を参照して詳しく説明する。
ステップS24のコマンドパケット送受信制御処理により、カメラブロック11のカメラ用CPU21は、記録再生ブロック12により送信されたコマンドパケット201を受信する。カメラ用CPU21は、コマンドパケット201のパリティチェックを行い、コマンドパケット201を解析することにより、コマンドパケット201の受信完了を確認した後、コマンドパケット201のコマンド処理を実行し、ステップS25に進む
カメラ用CPU21は、ステップS25において、受信キューコントローラ104から受信キュー105の残量情報を取得し、受信キュー105の残量が所定のしきい値より大きいか否か判定することにより、次のコマンドパケットが受信可能か否かを判定する。
カメラ用CPU21は、ステップS25において、受信キュー105の残量が所定のしきい値よりも小さいと判定した場合、ステップS26乃至28の処理をスキップし、ステップS29に進み、リザルトパケットの送信準備処理を開始する。この場合の対象となるリザルトパケットは、今回のコマンドパケットに対応するものではなく、今回より前のコマンドパケットに対応するリザルトパケットである。
すなわち、カメラ用CPU21は、受信キュー105に蓄積されているコマンドパケットのコマンドが実行され、完了されて、受信キュー105に蓄積されているコマンドパケットの残量が所定のしきい値よりも大きいと判定するまで、次のコマンドパケットが受信不可能であると判定し、コマンドアックパケットの送信を待機(禁止)する。したがって、その間に、コマンドが実行され、完了されることで、後述するステップS30において、リザルトパケットが生成された場合には、後述するステップS31のリザルトパケットの送受信処理が優先して実行される。
カメラ用CPU21は、ステップS25において、受信キュー105の残量が所定のしきい値よりも大きいと判定した場合、次のコマンドパケットが受信可能であるとし、ステップS26において、受信完了を確認したコマンドパケット201の受信完了を示すコマンドアックパケット211を生成し、送信キューコントローラ106に供給し、通信制御部101に、コマンドアックパケット211の送信要求を行う。
これに対応して、カメラブロック11の通信制御部101と、記録再生ブロック12の通信制御部131は、カメラ用CPU21およびメインCPU41の制御のもと、ステップS27において、図7に示されるコマンドアックパケット送受信制御処理M2を実行する。
コマンドアックパケット送受信制御処理M2は、カメラブロック11の通信制御部101が、カメラ用CPU21の制御のもと、シリアルデータ線161−1を介して、コマンドアックパケット211を送信し、記録再生ブロック12の通信制御部131が、メインCPU41の制御のもと、カメラブロック11により送信されたコマンドアックパケット211を受信する処理である。
このカメラブロック11の通信制御部101によるコマンドアックパケット送信制御処理は、図13を参照し、これに対応する記録再生ブロック12の通信制御部131によるコマンドアックパケット受信制御処理は、図14を参照して詳しく説明する。
このコマンドアックパケット送受信制御処理により、記録再生ブロック12においては、送信したコマンドに対応するコマンドアックパケットが受信され、コマンドアックパケットに付加されている送信キュー情報に基づいて、メインCPU41の送信キュー108の残量情報が更新される。
コマンドアックパケットを受信した記録再生ブロック12のメインCPU41は、ステップS28において、ステップS21において生成されたコマンドパケットが送信されたか否かを判定し、生成されたコマンドパケットがまだ送信されていないと判定した場合、ステップS22に戻り、それ以降の処理を繰り返す。すなわち、生成されたコマンドパケットがまだ送信されていないと判定した場合のステップS27においては、前回のコマンドに対応するコマンドアックパケットが送受信されている。
記録再生ブロック12のメインCPU41は、ステップS28において、コマンドパケットをもう送信したと判定した場合、すなわち、受信されたコマンドアックパケットは、ステップS21において生成されたコマンドパケットに対応するものなので、次のコマンドパケットを送信可能であることを認識し、次のコマンドパケット201の送信準備(すなわち、ステップS21乃至S23の処理)を開始することができる。
一方、カメラブロック11において、ステップS27のコマンドアックパケット送受信制御処理とは並行して、コマンドパケット201のコマンドは実行されている。ステップS27のコマンドアックパケット送受信制御処理が終了すると、カメラ用CPU21は、ステップS29において、コマンドパケット201のコマンドの実行が完了したか否かを判定し、コマンドパケット201のコマンドの実行が完了するまで待機している。
カメラ用CPU21は、ステップS29において、コマンドパケット201のコマンドの実行が完了したと判定した場合、ステップS30に進み、コマンドの実行が完了したコマンドパケット201の実行完了を示すリザルトパケット212を生成し、送信キューコントローラ106に供給するとともに、通信制御部101に、リザルトパケット212の送信要求を行う。
これに対応して、カメラブロック11の通信制御部101と、記録再生ブロック12の通信制御部131は、カメラ用CPU21およびメインCPU41の制御のもと、ステップS31において、図7に示されるリザルトパケット送受信制御処理M3を実行する。
リザルトパケット送受信制御処理M3は、カメラブロック11の通信制御部101が、カメラ用CPU21の制御のもと、シリアルデータ線161−1を介して、リザルトパケット212を送信し、記録再生ブロック12の通信制御部131が、メインCPU41の制御のもと、カメラブロック11により送信されたリザルトパケット212を受信する処理である。
このカメラブロック11の通信制御部101によるリザルトパケット送信制御処理は、図16を参照し、これに対応する記録再生ブロック12の通信制御部131によるリザルトパケット受信制御処理は、図17を参照して詳しく説明する。
このリザルトパケット受信制御処理により、カメラブロック11において、リザルトパケットが送信されるので、カメラブロック11の送信キュー108に蓄積されているリザルトパケットが減り、送信キュー108の残量が増える。また、記録再生ブロック12において、前に送信したコマンドに対応するリザルトパケットが受信され、そのリザルトパケットに付加されている送信キュー情報に基づいて、メインCPU41の送信キュー108の残量情報が更新される。
ステップS31の処理により、リザルトパケットを受信した記録再生ブロック12のメインCPU41は、ステップS32において、ステップS21において生成されたコマンドパケットが送信されたか否かを判定し、生成されたコマンドパケットがまだ送信されていないと判定した場合、ステップS22に戻り、それ以降の処理を繰り返す。すなわち、生成されたコマンドパケットがまだ送信されていないと判定した場合のステップS31の処理においては、今回より前のコマンドに対応するリザルトパケットが送受信されている。
記録再生ブロック12のメインCPU41は、ステップS32において、コマンドパケットをもう送信したと判定した場合、このコマンドの通信制御処理を終了する。
なお、送受信されるコマンドの内容によっては、リザルトパケットが生成されないコマンドもある。この場合には、上述した図6の処理のうち、ステップS29乃至S31の処理は、スキップされる。
以上のように、記録再生ブロック12およびカメラブロック11間のコマンド通信においては、記録再生装置1全体の制御を行う側の記録再生ブロック12のコマンド送信が優先されているが、カメラブロック11側から送信されるパケット(リザルトパケットまたはコマンドアックパケット)に、カメラブロック11の送信キュー108の残量情報を付加してから送信するようにしたので、コマンド通信において制御を行う記録再生ブロック12は、カメラブロック11の送信キュー108の状態を知ることができ、送信キュー108の残量がしきい値を超えた場合、記録再生ブロック12よりも、カメラブロック11からのパケット送信を優先させることができる。
これにより、カメラブロック11からのパケット送信が優先されることで、カメラブロック11側で、パケットが送信されずに、受信キュー108があふれてしまうことが抑制される。したがって、コマンド通信の制御が困難になることを抑制することができる。
また、カメラブロック11から、コマンドパケットに1対1で対応するコマンド受信完了および次のコマンド受信可能を示すコマンドアックパケットを送信するようにし、記録再生ブロック12においては、送信したコマンドパケットに対応するコマンドアックパケットが受信されなければ、次のコマンドパケットの送信を禁止するようにしたので、カメラブロック11側でコマンドパケットが受信されすぎること(受信キュー105がパケットであふれること)が抑制される。
さらに、そのコマンドアックパケットにも、カメラブロック11の送信キュー108の残量情報を付加して送信するようにしたので、コマンド実行の完了が遅い場合など、リザルトパケットが長時間送受信されない場合があったとしても、コマンドアックパケットはコマンドの送信ごとに、送受信されるので、コマンド通信において制御を行う記録再生ブロック12は、カメラブロック11の送信キュー108の状態を逐次知ることができる。
すなわち、記録再生ブロック12においては、カメラブロック11の送信キュー108の状態を逐次知ることができるので、常にカメラブロック11の状態変化の過程(実行中の処理など)を保持しておかなくても、コマンド通信の制御が困難になることが抑制される。
以上により、記録再生ブロック12およびカメラブロック11間のコマンド通信において、記録再生ブロック12のメインCPU41だけの制御により、快適な通信を行うことができる。
さらに、コマンド仕様が変更されても、記録再生装置1全体(コマンド通信の制御を含めた)の制御を行っている記録再生ブロック12側の変更だけで対応でき、カメラブロック11側を変更する手間を省くことができる。
次に、図8乃至図11のフローチャート、並びに図12のアローチャートを参照して、図6のステップS24のコマンドパケット送受信制御処理を説明する。図8および図9は、記録再生ブロック12のコマンドパケット送信制御処理を表しており、図10および図11は、カメラブロック11のコマンドパケット受信制御処理を表している。図12は、記録再生ブロック12およびカメラブロック11の処理の関係を表している。
以下、図8乃至図11を参照して、記録再生ブロック12およびカメラブロック11の処理について、個別に説明するが、これらのブロックの相互の処理の関係は、図12の対応するステップを参照することで、容易に理解することが可能である。なお、図12においては、記録再生ブロック12およびカメラブロック11の相互の処理に係わらないステップは、適宜省略されている。
まず、図8および図9のフローチャートを参照して、記録再生ブロック12のコマンドパケット送信制御処理を説明する。
記録再生ブロック12の通信制御部131は、ステップS51において、メインCPU41からコマンドパケットの送信が要求されるまで待機しており、メインCPU41からコマンドパケットの送信が要求されたと判定した場合、ステップS52に進み、ポート142の通信制御線163−1を介して、REQ信号(ドライブ_REQ)をカメラブロック11に送信する。
カメラブロック11は、通信制御線163−1、およびポート112を介して、REQ信号(ドライブ_REQ)を受信すると、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を送信してくる(図10と図12のステップS72)。
記録再生ブロック12の通信制御部131は、ステップS53において、通信制御線163−4、およびポート142を介して、ACK信号(カメラ_ACK)を受信し、メインCPU41に通知し、ステップS54に進む。通信制御部131は、ステップS54において、メインCPU41のコマンドパケットの送信準備の完了に基づいて、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信し、ステップS55に進み、カメラブロック11からのクロックが受信されるまで待機している。
カメラブロック11は、通信制御線163−3を介して、ACK信号(ドライブ_ACK)を受信すると、シリアルI/F111、およびシリアルクロック線161−2を介して、所定のクロックを送信してくる(図10と図12のステップS74)。
記録再生ブロック12の通信制御部131は、ステップS55において、シリアルクロック線161−2、およびシリアルI/F141を介してクロックを受信したと判定し、ステップS56に進み、送信キューコントローラ136を制御し、受信したクロックに同期して、コマンドパケットをカメラブロック11に送信させる。
具体的には、メインCPU41は、図6のステップS21においてコマンドパケットを生成し、生成したコマンドパケットを送信キューコントローラ136に供給している。送信キューコントローラ136は、供給されたコマンドパケットを、送信キュー138に一旦格納しており、通信制御部131の制御のもと、ステップS56において、送信キュー138からコマンドパケットを読み出し、P/S変換部139に供給する。P/S変換部139は、カメラブロック11からのクロックに同期して、コマンドパケットをP/S変換し、シリアルI/F141に供給する。シリアルI/F141は、P/S変換部139からのコマンドパケットを、シリアルデータ線161−1を介して、カメラブロック11に送信する。
カメラブロック11は、シリアルデータ線161−1を介して、コマンドパケットを受信すると、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を送信してくる(図11と図12のステップS77またはS79)。
記録再生ブロック12の通信制御部131は、ステップS57において、通信制御線163−4、およびポート142を介して、カメラブロック11からのACK信号(カメラ_ACK)を受信すると、メインCPU41に通知し、メインCPU41の制御のもと、図9のステップS58において、送信すべきデータパケットがあるか否か、すなわち、送信キュー138にコマンドデータパケットがあるか否かを判定し、送信すべきデータパケットがあると判定した場合、ステップS59に進み、メインCPU41のコマンドデータパケットの送信準備の完了に基づいて、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信し、ステップS60に進み、カメラブロック11からのクロックが受信されるまで待機している。
カメラブロック11は、通信制御線163−3を介して、ACK信号(ドライブ_ACK)を受信すると、シリアルI/F111、およびシリアルクロック線161−2を介して、所定のクロックを送信してくる(図11と図12のステップS81またはS85)。
記録再生ブロック12の通信制御部131は、ステップS60において、シリアルクロック線161−2、およびシリアルI/F141を介してクロックを受信したと判定し、ステップS61に進み、送信キューコントローラ136を制御し、受信したクロックに同期して、コマンドデータパケットをカメラブロック11に送信させ、ステップS58に戻り、それ以降の処理を繰り返す。
すなわち、記録再生ブロック12において、コマンドデータパケットがすべて送信されるまで、ステップS59乃至S61の処理が繰り返され、これに対応する、カメラブロック11の処理も繰り返される(図11と図12のステップS84乃至S86)。
ステップS58において、送信すべきデータパケットがないと判定された場合、記録再生ブロック12の通信制御部131は、コマンドパケット送信制御処理を終了する。この後、図6のステップS25に進み、コマンドアックパケットの送信準備処理が実行される。
次に、図10および図11のフローチャートを参照して、カメラブロック11のコマンドパケット受信制御処理について説明する。
記録再生ブロック12は、ポート142の通信制御線163−1を介して、REQ信号(ドライブ_REQ)をカメラブロック11に送信してくる(図8と図12のステップS52)。
カメラブロック11の通信制御部101は、ステップS71において、記録再生ブロック12からREQ信号(ドライブ_REQ)を受信するまで待機しており、通信制御線163−1、およびポート112を介して、REQ信号(ドライブ_REQ)を受信し、カメラ用CPU21に通知し、ステップS72に進む。通信制御部101は、ステップS72において、カメラ用CPU21のコマンドパケット送信要求の受諾に基づいて、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を記録再生ブロック12に送信する。
記録再生ブロック12は、通信制御線163−4を介して、ACK信号(カメラ_ACK)を受信すると、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信してくる(図8と図12のステップS54)。
カメラブロック11の通信制御部101は、ステップS73において、通信制御線163−3およびポート112を介してACK信号(ドライブ_ACK)を受信し、カメラ用CPU21に通知し、ステップS74に進む。通信制御部101は、ステップS74において、カメラ用CPU21の制御のもと、内蔵するクロック生成部(図示せぬ)により生成した所定のクロックを、シリアルI/F111、およびシリアルクロック線161−2を介して、記録再生ブロック12に送信する。
記録再生ブロック12は、シリアルクロック線161−2を介して、クロックを受信すると、シリアルデータ線161−1を介して、コマンドパケットをカメラブロック11に送信してくる(図8と図12のステップS56)。
カメラブロック11のカメラ用CPU21は、ステップS75において、シリアルデータ線161−1、シリアルI/F111、S/P変換部103、および受信キューコントローラ104を介してコマンドパケットを受信し、パリティチェックやコマンドパケット解析を行い、エラーがなかった場合には、図11のステップS76に進む。
具体的には、シリアルI/F111は、シリアルデータ線161−1を介して、コマンドパケットを受信し、S/P変換部103に供給する。S/P変換部103は、通信制御部101からのクロックに基づいて、コマンドパケットにS/P変換を施し、受信キューコントローラ104に供給する。受信キューコントローラ104は、供給されたコマンドパケットを一旦受信キュー105に格納し、カメラ用CPU21の制御のもと、コマンドパケットを受信キュー105から読み出し、カメラ用CPU21に供給する。
なお、図示は省略するが、ステップS75において、エラーがあった場合には、カメラ用CPU21は、通信制御部101を制御し、ポート112、および通信制御線163−6を介して、記録再生ブロック12に、NACK信号(カメラ_NACK)を送信させる。これにより、記録再生ブロック12においては、コマンドパケットが再送される。
カメラ用CPU21は、ステップS76において、コマンドパケットに続いてコマンドデータパケットが受信されるか、すなわち、受信すべきデータパケットがあるか否かを判定し、受信すべきデータパケットがないと判定した場合には、ステップS77に進み、通信制御部101を制御し、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を記録再生ブロック12に送信し、コマンドパケット受信制御処理を終了する。この後、図6のステップS25に進み、コマンドアックパケットの送信準備処理が実行される。
また、カメラ用CPU21は、ステップS76において、受信すべきデータパケットがあると判定した場合には、ステップS78に進み、受信キューコントローラ104から、受信キュー105の残量情報を取得し、受信キュー105が受信可能となるまで待機し、受信キュー105が受信可能であると判定した場合、ステップS79に進み、通信制御部101を制御し、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を記録再生ブロック12に送信し、ステップS80に進む。
記録再生ブロック12は、通信制御線163−4を介して、ACK信号(カメラ_ACK)を受信すると、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信してくる(図9と図12のステップS59)。
カメラブロック11の通信制御部101は、ステップS80において、通信制御線163−3およびポート112を介してACK信号(ドライブ_ACK)を受信し、カメラ用CPU21に通知し、ステップS81に進む。通信制御部101は、ステップS81において、カメラ用CPU21の制御のもと、内蔵するクロック生成部(図示せぬ)により生成した所定のクロックを、シリアルI/F111、およびシリアルクロック線161−2を介して、記録再生ブロック12に送信する。
記録再生ブロック12は、シリアルクロック線161−2を介して、クロックを受信すると、シリアルデータ線161−1を介して、コマンドデータパケットをカメラブロック11に送信してくる(図9と図12のステップS61)。
カメラブロック11のカメラ用CPU21は、ステップS82において、シリアルデータ線161−1、シリアルI/F111、S/P変換部103、および受信キューコントローラ104を介してコマンドパケットを受信し、パリティチェックやコマンドパケット解析を行い、エラーがなかった場合には、ステップS83に進む。
カメラ用CPU21は、ステップS83において、まだ、受信すべきデータパケットがあるか否かを判定し、受信すべきデータパケットがないと判定した場合には、コマンドパケット受信制御処理を終了する。この後、図6のステップS25に進み、コマンドアックパケットの送信準備処理が実行される。
また、カメラ用CPU21は、ステップS83において、受信すべきデータパケットがあると判定した場合には、ステップS84に進む。
記録再生ブロック12は、送信すべきデータパケットがまだある場合には、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信してくる(図9と図12のステップS59)。
カメラブロック11の通信制御部101は、ステップS84において、通信制御線163−3およびポート112を介してACK信号(ドライブ_ACK)を受信し、カメラ用CPU21に通知し、ステップS85に進む。通信制御部101は、ステップS85において、カメラ用CPU21の制御のもと、内蔵するクロック生成部(図示せぬ)により生成した所定のクロックを、シリアルI/F111、およびシリアルクロック線161−2を介して、記録再生ブロック12に送信する。
記録再生ブロック12は、シリアルクロック線161−2を介して、クロックを受信すると、シリアルデータ線161−1を介して、コマンドデータパケットをカメラブロック11に送信してくる(図9と図12のステップS61)。
カメラブロック11のカメラ用CPU21は、ステップS86において、シリアルデータ線161−1、シリアルI/F111、S/P変換部103、および受信キューコントローラ104を介してコマンドパケットを受信し、パリティチェックやコマンドパケット解析を行い、エラーがなかった場合には、ステップS83に戻り、それ以降の処理を繰り返す。
すなわち、カメラブロック11において、コマンドデータパケットがすべて受信されるまで、ステップS84乃至S86の処理が繰り返され、これに対応する、記録再生ブロック12の処理も繰り返される(図9と図12のステップS59乃至S61)。
次に、図13および図14のフローチャート、並びに図15のアローチャートを参照して、図6のステップS27のコマンドアックパケット送受信制御処理を説明する。図13は、カメラブロック11のコマンドアックパケット送信制御処理を表しており、図14は、記録再生ブロック12のコマンドアックパケット受信制御処理を表している。図15は、カメラブロック11および記録再生ブロック12の処理の関係を表している。
以下、図13および図14を参照して、カメラブロック11および記録再生ブロック12の処理について、個別に説明するが、これら装置の相互の処理の関係は、図15の対応するステップを参照することで、容易に理解することが可能である。なお、図15においては、カメラブロック11および記録再生ブロック12の相互の処理に係わらないステップは、適宜省略されている。
まず、図13のフローチャートを参照して、カメラブロック11のコマンドアックパケット送信制御処理について説明する。
カメラブロック11の通信制御部101は、ステップS101において、カメラ用CPU21からコマンドアックパケットの送信が要求されるまで待機しており、カメラ用CPU21からコマンドアックパケットの送信が要求されたと判定した場合、ステップS102に進み、ポート112の通信制御線163−2を介して、REQ信号(カメラ_REQ)を記録再生ブロック12に送信する。
記録再生ブロック12は、通信制御線163−2を介して、REQ信号(カメラ_REQ)を受信すると、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信してくる(図14と図15のステップS122)。
カメラブロック11の通信制御部101は、ステップS103において、通信制御線163−3およびポート112を介してACK信号(ドライブ_ACK)を受信し、カメラ用CPU21に通知し、記録再生ブロック12のメインCPU41の受信受諾を確認し、ステップS104に進む。
通信制御部101は、カメラ用CPU21のコマンドアックパケットの送信準備の完了に基づいて、ステップS104において、送信キューコントローラ106を制御し、コマンドアックパケットに送信キュー108の総容量および残量の情報である送信キュー情報を付加させ、ステップS105に進み、所定のクロックを、シリアルクロック線161−2を介して記録再生ブロック12に送信するとともに、送信キューコントローラ106を制御し、送信キュー情報が付加されたコマンドアックパケットを送信させる。
具体的には、カメラ用CPU21は、図6のステップS26においてコマンドアックパケットを生成し、生成したコマンドアックパケットを送信キューコントローラ106に供給している。送信キューコントローラ106は、供給されたコマンドアックパケットを、バッファ107に一旦格納しており、通信制御部101の制御のもと、ステップS104において、バッファ107からコマンドアックパケットを読み出し、情報付加部113に、送信キュー108の総容量および残量の情報である送信キュー情報を付加させ、ステップS105において、送信キュー情報が付加されたコマンドアックパケットを、P/S変換部109に供給する。
このとき、通信制御部101は、所定のクロックをシリアルクロック線161−2を介して記録再生ブロック12に送信するとともに、P/S変換部109に供給している。P/S変換部109は、通信制御部101からのクロックに同期して、コマンドアックパケットをP/S変換し、シリアルI/F111に供給する。シリアルI/F111は、P/S変換部109からのコマンドアックパケットを、シリアルデータ線161−1を介して、記録再生ブロック12に送信する。
記録再生ブロック12は、シリアルクロック線161−2を介して、クロックを受信するとともに、受信したクロックに同期して、シリアルデータ線161−1を介して、コマンドアックパケットを受信すると、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信してくる(図14および図15のステップS126)。
カメラブロック11の通信制御部101は、ステップS106において、通信制御線163−3およびポート112を介してACK信号(ドライブ_ACK)を受信し、カメラ用CPU21に通知する。これにより、カメラ用CPU21は、記録再生ブロック12にコマンドアックパケットが受信されたことを確認し、コマンドアックパケット送信制御処理を終了し、この後、図6のステップS28に進み、ステップS21で生成されたコマンドパケットの送信が判定される。
次に、図14のフローチャートを参照して、記録再生ブロック12のコマンドアックパケット受信制御処理について説明する。
カメラブロック11は、ポート112の通信制御線163−2を介して、REQ信号(カメラ_REQ)を記録再生ブロック12に送信してくる(図13と図15のステップS102)。
記録再生ブロック12の通信制御部131は、ステップS121において、カメラブロック11からREQ信号(カメラ_REQ)を受信するまで待機しており、ポート142、および通信制御線163−2を介して、REQ信号(カメラ_REQ)を受信し、メインCPU41に通知し、ステップS122に進む。通信制御部131は、ステップS122において、メインCPU41のコマンドアックパケット送信要求の受諾に基づいて、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信する。
なお、図13の例においては、記録再生ブロック12からのREQ信号(ドライブ_REQ)が送信されていない場合(すなわち、REQ信号がカメラブロック11および記録再生ブロック12において、ほぼ同時に送信されていない場合)であるので、通信制御部131は、CPU41がコマンドアックパケットの受信準備ができると、ACK信号(ドライブ_ACK)をカメラブロック11に送信する。
カメラブロック11は、通信制御線163−3を介して、ACK信号(ドライブ_ACK)を受信すると、シリアルクロック線161−2を介して、所定のクロックを送信してくるとともに、シリアルデータ線161−1を介して、コマンドアックパケットを送信してくる(図13と図15のステップS105)。
記録再生ブロック12のメインCPU41は、ステップS123において、シリアルクロック線161−2を介して受信されるクロックに同期して、シリアルデータ線161−1を介して、コマンドアックパケットを受信し、ステップS124に進む。
具体的には、シリアルクロック線161−2、およびシリアルI/F141を介して受信されるクロックは、通信制御部131、およびS/P変換部133に供給される。また、シリアルI/F141は、シリアルデータ線161−1を介して受信したコマンドアックパケットを、S/P変換部133に供給する。S/P変換部133は、シリアルI/F141からのクロックに同期して、コマンドアックパケットを、S/P変換し、受信キューコントローラ134に供給する。
受信キューコントローラ134は、供給されたコマンドアックパケットを受信キュー135に一旦格納し、メインCPU41の制御のもと、受信キュー135からコマンドアックパケットを読み出し、メインCPU41に供給する。
記録再生ブロック12のメインCPU41は、ステップS124において、コマンドアックパケットのパリティチェックを行い、コマンドアックパケットの解析を行い、エラーがなかった場合、コマンドアックパケットに付加されている送信キュー情報を取得し、ステップS125に進む。
なお、図示は省略するが、ステップS124において、エラーがあった場合には、メインCPU41は、通信制御部131を制御し、ポート142、および通信制御線163−5を介して、カメラブロック11に、NACK信号(ドライブ_NACK)を送信させる。これにより、カメラブロック11においては、コマンドアックパケットが再送される。
記録再生ブロック12のメインCPU41は、ステップS125において、取得した送信キュー情報に基づいて、記憶しているカメラブロック11の送信キュー108の残量情報を更新し、ステップS126に進む。この更新された送信キュー108の残量情報が、上述した図6のステップS23において、所定のしきい値と比較、判定されることにより、コマンド通信制御が行われる。
記録再生ブロック12のメインCPU41は、ステップS126において、通信制御部131を制御し、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信し、コマンドアックパケット受信制御処理を終了する。この後、図6のステップS28に進み、ステップS21で生成されたコマンドパケットの送信が判定される。
次に、図16および図17のフローチャート、並びに図18のアローチャートを参照して、図6のステップS31のリザルトパケット送受信制御処理を説明する。図16は、カメラブロック11のリザルトパケット送信制御処理を表しており、図17は、記録再生ブロック12のリザルトパケット受信制御処理を表している。図18は、カメラブロック11および記録再生ブロック12の処理の関係を表している。
以下、図16および図17を参照して、カメラブロック11および記録再生ブロック12の処理について、個別に説明するが、これら装置の相互の処理の関係は、図18の対応するステップを参照することで、容易に理解することが可能である。なお、図18においては、カメラブロック11および記録再生ブロック12の相互の処理に係わらないステップは、適宜省略されている。
まず、図16のフローチャートを参照して、カメラブロック11のリザルトパケット送信制御処理について説明する。
カメラブロック11の通信制御部101は、ステップS141において、カメラ用CPU21からリザルトパケットの送信が要求されるまで待機しており、カメラ用CPU21からリザルトパケットの送信が要求されたと判定した場合、ステップS142に進み、ポート112の通信制御線163−2を介して、REQ信号(カメラ_REQ)を記録再生ブロック12に送信する。
記録再生ブロック12は、通信制御線163−2を介して、REQ信号(カメラ_REQ)を受信すると、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信してくる(図17と図18のステップS162)。
カメラブロック11の通信制御部101は、ステップS143において、通信制御線163−3およびポート112を介してACK信号(ドライブ_ACK)を受信し、カメラ用CPU21に通知し、記録再生ブロック12のメインCPU41の受信受諾を確認し、ステップS144に進む。通信制御部101は、カメラ用CPU21のリザルトパケットの送信準備の完了に基づいて、ステップS144において、送信キューコントローラ106を制御し、リザルトパケットに送信キュー108の総容量および残量の情報である送信キュー情報を付加させ、ステップS145に進み、所定のクロックを、シリアルクロック線161−2を介して記録再生ブロック12に送信するとともに、送信キューコントローラ106を制御し、送信キュー情報が付加されたリザルトパケットを送信させる。
具体的には、カメラ用CPU21は、図6のステップS30においてリザルトパケットを生成し、生成したリザルトパケットを送信キューコントローラ106に供給している。送信キューコントローラ106は、供給されたリザルトパケットを、送信キュー108に一旦格納しており、通信制御部101の制御のもと、ステップS104において、送信キュー108からリザルトパケットを読み出し、情報付加部113に、送信キュー108の総容量および残量の情報である送信キュー情報を付加させ、ステップS105において、送信キュー情報が付加されたリザルトパケットを、P/S変換部109に供給する。
このとき、通信制御部101は、所定のクロックをシリアルクロック線161−2を介して記録再生ブロック12に送信するとともに、P/S変換部109に供給している。P/S変換部109は、通信制御部101からのクロックに同期して、リザルトパケットをP/S変換し、シリアルI/F111に供給する。シリアルI/F111は、P/S変換部109からのリザルトパケットを、シリアルデータ線161−1を介して、記録再生ブロック12に送信する。
記録再生ブロック12は、シリアルクロック線161−2を介して、クロックを受信するとともに、受信したクロックに同期して、シリアルデータ線161−1を介して、リザルトパケットを受信すると、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信してくる(図17と図18のステップS168またはS170)。
カメラブロック11の通信制御部101は、ステップS146において、通信制御線163−3およびポート112を介してACK信号(ドライブ_ACK)を受信し、カメラ用CPU21に通知する。これにより、カメラ用CPU21は、記録再生ブロック12にリザルトパケットが受信されたことを確認し、ステップS147において、送信すべきデータパケットがあるか否か、すなわち、送信キュー108にリザルトデータパケットがあるか否かを判定し、送信すべきデータパケットがないと判定した場合、コマンドパケット送信制御処理を終了する。この後、図6のステップS32に進み、ステップS21で生成されたコマンドパケットの送信が判定される。
ステップS147において、送信すべきデータパケットがあると判定された場合、ステップS148に進み、通信制御部101は、カメラ用CPU21のリザルトデータパケットの送信準備の完了に基づいて、所定のクロックを、シリアルクロック線161−2を介して記録再生ブロック12に送信するとともに、送信キューコントローラ106を制御し、送信キュー情報が付加されたリザルトデータパケットを送信させる。
記録再生ブロック12は、シリアルクロック線161−2を介して、クロックを受信するとともに、受信したクロックに同期して、シリアルデータ線161−1を介して、リザルトデータパケットを受信し、受信可能になると、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信してくる(図17と図18のステップS168)。
カメラブロック11の通信制御部101は、ステップS149において、通信制御線163−3およびポート112を介してACK信号(ドライブ_ACK)を受信し、カメラ用CPU21に通知する。これにより、カメラ用CPU21は、記録再生ブロック12にリザルトパケットが受信されたことを確認し、ステップS147に戻り、それ以降の処理を繰り返す。
すなわち、カメラブロック11において、リザルトデータパケットがすべて送信されるまで、ステップS148およびS149の処理が繰り返され、これに対応する、記録再生ブロック12の処理も繰り返される(図17と図18のステップS167乃至S169)。
次に、図17のフローチャートを参照して、記録再生ブロック12のリザルトパケット受信制御処理について説明する。
カメラブロック11は、ポート112の通信制御線163−2を介して、REQ信号(カメラ_REQ)を記録再生ブロック12に送信してくる(図16と図18のステップS142)。
記録再生ブロック12の通信制御部131は、ステップS161において、カメラブロック11からREQ信号(カメラ_REQ)を受信するまで待機しており、ポート142、および通信制御線163−2を介して、REQ信号(カメラ_REQ)を受信し、メインCPU41に通知し、ステップS162に進む。通信制御部131は、ステップS162において、メインCPU41のリザルトパケット送信要求の受諾に基づいて、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信する。
なお、図17の例においては、図14の例と同様に、記録再生ブロック12からのREQ信号(ドライブ_REQ)が送信されていない場合(すなわち、REQ信号がカメラブロック11および記録再生ブロック12において、ほぼ同時に送信されていない場合)であるので、通信制御部131は、CPU41がコマンドアックパケットの受信準備ができると、ACK信号(ドライブ_ACK)をカメラブロック11に送信する。
カメラブロック11は、通信制御線163−3を介して、ACK信号(ドライブ_ACK)を受信すると、シリアルクロック線161−2を介して、所定のクロックを送信してくるとともに、シリアルデータ線161−1を介して、リザルトパケットを送信してくる(図16のステップS145)。
記録再生ブロック12のメインCPU41は、ステップS163において、シリアルクロック線161−2を介して受信されるクロックに同期して、シリアルデータ線161−1を介して、リザルトパケットを受信し、ステップS164に進む。
具体的には、シリアルクロック線161−2、およびシリアルI/F141を介して受信されるクロックは、通信制御部131、およびS/P変換部133に供給される。また、シリアルI/F141は、シリアルデータ線161−1を介して受信したリザルトパケットを、S/P変換部133に供給する。S/P変換部133は、シリアルI/F141からのクロックに同期して、リザルトパケットを、S/P変換し、受信キューコントローラ134に供給する。
受信キューコントローラ134は、供給されたリザルトパケットを受信キュー135に一旦格納し、メインCPU41の制御のもと、受信キュー135からリザルトパケットを読み出し、メインCPU41に供給する。
記録再生ブロック12のメインCPU41は、ステップS164において、リザルトパケットのパリティチェックを行い、リザルトパケットの解析を行い、エラーがなかった場合、リザルトパケットに付加されている送信キュー情報を取得し、ステップS165に進む。
なお、図示は省略するが、ステップS164において、エラーがあった場合には、メインCPU41は、通信制御部131を制御し、ポート142、および通信制御線163−5を介して、カメラブロック11に、NACK信号(ドライブ_NACK)を送信させる。これにより、カメラブロック11においては、リザルトパケットが再送される。
記録再生ブロック12のメインCPU41は、ステップS165において、取得した送信キュー情報に基づいて、記憶しているカメラブロック11の送信キュー108の残量情報を更新し、ステップS166に進む。この更新された送信キュー108の残量情報が、上述した図6のステップS23において、所定のしきい値と比較、判定されることにより、コマンドパケット送信制御が行われる。
記録再生ブロック12のメインCPU41は、ステップS166において、リザルトパケットに続いてリザルトデータパケットが受信されるか、すなわち、受信すべきデータがあるか否かを判定し、受信すべきデータがあると判定した場合には、ステップS167に進み、受信キューコントローラ134から、受信キュー135の残量情報を取得し、受信キュー135が受信可能となるまで待機し、受信キュー135が受信可能であると判定した場合、ステップS168において、通信制御部131を制御し、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を記録再生ブロック12に送信し、ステップS169に進む。
カメラブロック11は、通信制御線163−3を介して、ACK信号(ドライブ_ACK)を受信すると、シリアルクロック線161−2を介して、所定のクロックを送信してくるとともに、シリアルデータ線161−1を介して、リザルトデータパケットを送信してくる(図16のステップS149)。
記録再生ブロック12のメインCPU41は、ステップS169において、シリアルクロック線161−2を介して受信されるクロックに同期して、シリアルデータ線161−1を介して、リザルトデータパケットを受信し、ステップS166に戻り、それ以降の処理を繰り返す。
すなわち、記録再生ブロック12において、リザルトデータパケットがすべて受信されるまで、ステップS167乃至S169の処理が繰り返され、これに対応する、カメラブロック11の処理も繰り返される(図16と図18のステップS148およびS149)。
また、メインCPU41は、ステップS166において、受信すべきデータがないと判定した場合には、ステップS170に進み、通信制御部131を制御し、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を記録再生ブロック12に送信し、リザルトパケット受信制御処理を終了する。この後、図6のステップS32に進み、ステップS21で生成されたコマンドパケットの送信が判定される。
以上のように、コマンドパケットの実行完了結果であるリザルトパケット、およびコマンドパケットに1対1で対応するコマンドアックパケットに、送信キューの情報を付加することにより、カメラブロック11側の送信キュー情報を取得できるようにしたので、記録再生ブロック12側の制御だけであっても、カメラブロック11の送信キューがあふれるなどして、カメラブロック11が制御不可能になることを抑制することができ、カメラブロックと記録再生ブロック間において、シリアル線により、快適なパケット通信を行うことができる。
また、記録再生ブロック12においては、一度コマンドパケットをカメラブロック11に送信してしまうと、送信したコマンドパケットに対応するコマンドアックパケットが受信するまで、次のコマンドパケットが送信できない。すなわち、記録再生ブロック12においては、コマンドパケットが送信されれば、必ずコマンドアックパケットが受信される。
したがって、このコマンドアックパケットに送信キュー情報を付加することにより、コマンドパケットが送信された場合には、必ず、送信キュー情報を得ることができる。したがって、リザルトパケットだけに、送信キュー情報が付加される場合よりも、逐次、カメラブロック側のバッファの情報が取得できるのでより効果がある。
また、送信キュー情報が付加されたコマンドアックパケット(リザルトパケット)が記録再生ブロックに受信され、送信キュー情報に示される送信キューの残量がしきい値よりも小さい場合には、記録再生ブロックのコマンドの送信が行われず、カメラブロックの送信のために通信路が開放される。すなわち、送信キュー情報が付加されたコマンドアックパケット(リザルトパケット)は、通信路を空けて欲しいことを通知するパケットともいえる。
なお、上記説明においては、パケットの送受信において、記録再生ブロック12からのREQ信号(ドライブ_REQ)および、カメラブロック11からのREQ信号(カメラ_REQ)のどちらかしか送信されていない場合、すなわち、記録再生ブロック12からのREQ信号(ドライブ_REQ)と、カメラブロック11からのREQ信号(カメラ_REQ)による割り込みが略同時に行われていない場合を説明したが、記録再生ブロック12からのREQ信号(ドライブ_REQ)と、カメラブロック11からのREQ信号(カメラ_REQ)による割り込みが略同時に行われてしまう場合もある。
そこで、記録再生ブロック12からのREQ信号(ドライブ_REQ)と、カメラブロック11からのREQ信号(カメラ_REQ)による割り込みが略同時に行われてしまう場合のパケットの送受信制御処理を、図19乃至図22のアローチャートを参照して説明する。
なお、図19乃至図22のパケットの送受信制御処理は、図8乃至図18を参照して上述した各パケットの送受信制御処理の他の例であり、記録再生ブロック12およびカメラブロック11の個々の処理は、記録再生ブロック12からのREQ信号(ドライブ_REQ)と、カメラブロック11からのREQ信号(カメラ_REQ)が送信されていない場合と基本的に同様の処理を行うため、繰り返しになるので、その図示および詳細な説明は省略する。
まず、図19のアローチャートを参照して、記録再生ブロック12からのREQ信号(ドライブ_REQ)の送信が、カメラブロック11からのREQ信号(カメラ_REQ)の送信よりも十分に早い場合を説明する。
記録再生ブロック12の通信制御部131は、ステップS201において、メインCPU41からコマンドパケットの送信が要求されると、ステップS202に進み、ポート142の通信制御線163−1を介して、REQ信号(ドライブ_REQ)をカメラブロック11に送信する。
これに対応して、カメラブロック11の通信制御部101は、ステップS221において、ポート112、および通信制御線163−1を介して、REQ信号(ドライブ_REQ)を受信する。
一方、カメラブロック11のカメラ用CPU21は、前のコマンド実行の処理を完了し、その結果として、リザルトパケットの送信を通信制御部101に要求する。通信制御部101は、ステップS222において、カメラ用CPU21からリザルトパケットの送信が要求されるが、ステップS221において、REQ信号(ドライブ_REQ)を受信しているので、それをカメラ用CPU21に通知し、リザルトパケットの送信要求を待機させ、REQ信号(カメラ_REQ)の送信を行わない(禁止する)。
そして、カメラブロック11の通信制御部101は、ステップS223に進み、カメラ用CPU21のコマンドパケット受信の受諾に基づいて、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を送信する。
記録再生ブロック12の通信制御部131は、ステップS203において、通信制御線163−4、およびポート142を介して、ACK信号(カメラ_ACK)を受信し、メインCPU41のコマンドパケットの送信準備が完了すると、ステップS204に進み、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信する。
カメラブロック11の通信制御部101は、ステップS224において、通信制御線163−3を介して、ACK信号(ドライブ_ACK)を受信し、ステップS225に進み、シリアルI/F111、およびシリアルクロック線161−2を介して、所定のクロックを送信する。
記録再生ブロック12の通信制御部131は、ステップS205において、シリアルクロック線161−2、およびシリアルI/F141を介してクロックを受信し、メインCPU41に通知する。メインCPU41は、ステップS206に進み、送信キューコントローラ136を制御し、ステップS205において受信したクロックに同期して、コマンドパケットをカメラブロック11に送信させる。
カメラブロック11のカメラ用CPU21は、ステップS226において、シリアルデータ線161−1を介して、コマンドパケットを受信し、受信したコマンドパケットを解析し、エラーがない場合、ステップS227に進み、通信制御部101を制御し、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を記録再生ブロック12に送信させる。
記録再生ブロック12の通信制御部131は、ステップS207において、カメラブロック11から送信されてくるACK信号(カメラ_ACK)を、通信制御線163−4、およびポート142を介して受信し、メインCPU41に通知する。これにより、メインCPU41は、コマンド送信が完了したことを確認する。
一方、カメラブロック11のカメラ用CPU21は、通信制御部101が、ACK信号(カメラ_ACK)を送信した後、通信制御部101に、待機していたリザルトパケットの送信を再度要求する。通信制御部101は、ステップS228において、カメラ用CPU21からリザルトパケットの送信の要求を受け、ステップS229に進み、ポート112の通信制御線163−2を介して、REQ信号(カメラ_REQ)を記録再生ブロック12に送信する。
記録再生ブロック12の通信制御部131は、ステップS207においてコマンド送信を完了しているので、ステップS208において、カメラブロック11からのREQ信号(カメラ_REQ)を受信する。
なお、図19のステップS208およびS229以降の処理は、図16乃至図18のリザルトパケット送受信制御処理(ステップS162およびS143以降の処理)と同様の処理を行うため、その説明は繰り返しになるので省略する。
次に、図20のアローチャートを参照して、記録再生ブロック12からのREQ信号(ドライブ_REQ)の送信が実行された直後に、カメラブロック11からのREQ信号(カメラ_REQ)が受信される場合を説明する。
記録再生ブロック12の通信制御部131は、ステップS241において、メインCPU41からコマンドパケットの送信が要求されると、ステップS242に進み、ポート142の通信制御線163−1を介して、REQ信号(ドライブ_REQ)をカメラブロック11に送信する。
一方、カメラブロック11のカメラ用CPU21は、前のコマンド実行の処理を完了し、その結果として、リザルトパケットの送信を通信制御部101に要求する。カメラブロック11の通信制御部101は、ステップS261において、カメラ用CPU21からリザルトパケットの送信が要求されると、ステップS262に進み、ポート112の通信制御線163−2を介して、REQ信号(カメラ_REQ)を、記録再生ブロック12に送信し、記録再生ブロック12からのACK信号(ドライブ_ACK)(すなわち、リザルトパケット受信要求への受諾)を待っている。
しかしながら、カメラブロック11の通信制御部101は、ステップS263において、ポート112、および通信制御線163−1を介して、コマンドパケット送信要求であるREQ信号(ドライブ_REQ)を受信する。通信制御部101は、記録再生ブロック12から、ACK信号(ドライブ_ACK)ではなく、REQ信号(ドライブ_REQ)が受信されたことにより、記録再生ブロック12において、REQ信号(カメラ_REQ)が受信されなかったことを認識し、それをカメラ用CPU21に通知する。カメラ用CPU21は、コマンドパケット送信要求を受諾するとともに、リザルトパケットの送信要求を待機し、ステップS264に進み、通信制御部101を制御し、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を送信させる。
カメラブロック11から、通信制御線163−2を介して、REQ信号(カメラ_REQ)が送信されてくるが、記録再生ブロック12の通信制御部131は、ステップS242において、REQ信号(ドライブ_REQ)を送信したので、REQ信号(カメラ_REQ)の受信を無視して、ACK信号(ドライブ_ACK)の送信を行わず(禁止し)、ステップS243に進む。
記録再生ブロック12の通信制御部131は、ステップS243において、カメラブロック11から、通信制御線163−4を介して、ACK信号(カメラ_ACK)を受信し、メインCPU41のコマンドパケットの送信準備が完了すると、ステップS244に進み、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信する。
カメラブロック11の通信制御部101は、ステップS265において、通信制御線163−3を介して、ACK信号(ドライブ_ACK)を受信し、ステップS266に進み、シリアルI/F111、およびシリアルクロック線161−2を介して、所定のクロックを送信する。
記録再生ブロック12の通信制御部131は、ステップS245において、シリアルクロック線161−2、およびシリアルI/F141を介してクロックを受信し、メインCPU41に通知する。メインCPU41は、ステップS246に進み、送信キューコントローラ136を制御し、ステップS245において受信したクロックに同期して、コマンドパケットをカメラブロック11に送信させる。
カメラブロック11のカメラ用CPU21は、ステップS267において、シリアルデータ線161−1を介して、コマンドパケットを受信し、受信したコマンドパケットを解析し、エラーがない場合、ステップS268に進み、通信制御部101を制御し、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を記録再生ブロック12に送信させる。
記録再生ブロック12の通信制御部131は、ステップS247において、カメラブロック11から送信されてくるACK信号(カメラ_ACK)を、通信制御線163−4、およびポート142を介して受信し、メインCPU41に通知する。これにより、メインCPU41は、コマンド送信が完了したことを確認する。
一方、カメラブロック11のカメラ用CPU21は、通信制御部101が、ACK信号(カメラ_ACK)を送信した後、通信制御部101に、待機されていたリザルトパケットの送信を再度要求する。通信制御部101は、ステップS269において、カメラ用CPU21からリザルトパケットの送信の要求を受け、ステップS270に進み、ポート112の通信制御線163−2を介して、REQ信号(カメラ_REQ)を記録再生ブロック12に送信する。
記録再生ブロック12の通信制御部131は、ステップS247においてコマンド送信を完了しているので、ステップS248において、カメラブロック11からのREQ信号(カメラ_REQ)を受信する。
なお、図20のステップS248およびS270以降の処理は、図16乃至図18のリザルトパケット送受信制御処理(ステップS162およびS143以降の処理)と同様の処理を行うため、その説明は繰り返しになるので省略する。
次に、図21のアローチャートを参照して、記録再生ブロック12からのREQ信号(ドライブ_REQ)が送信される直前に、カメラブロック11からのREQ信号(カメラ_REQ)が受信される場合を説明する。
カメラブロック11のカメラ用CPU21は、前のコマンド実行の処理を完了し、その結果として、リザルトパケットの送信を通信制御部101に要求する。カメラブロック11の通信制御部101は、ステップS301において、カメラ用CPU21からリザルトパケットの送信が要求されると、ステップS302に進み、ポート112の通信制御線163−2を介して、REQ信号(カメラ_REQ)を記録再生ブロック12に送信し、記録再生ブロック12からのACK信号(ドライブ_ACK)(すなわち、リザルトパケット受信要求への受諾)を待っている。
一方、記録再生ブロック12の通信制御部131は、ステップS281において、メインCPU41からコマンドパケットの送信要求を受けると、その直後に、カメラブロック11から、通信制御線163−2を介して、REQ信号(カメラ_REQ)が送信されてくる。
しかしながら、記録再生ブロック12の通信制御部131は、REQ信号(カメラ_REQ)が送信されてくる直前のステップS281に、メインCPU41からコマンドパケットの送信要求を受けているので、REQ信号(カメラ_REQ)の受信を無視して、ACK信号(ドライブ_ACK)の送信を行わず(禁止し)、ステップS282に進み、メインCPU41からコマンドパケットの送信要求に応じて、ポート142の通信制御線163−1を介して、REQ信号(ドライブ_REQ)をカメラブロック11に送信する。
カメラブロック11の通信制御部101は、ステップS303において、ポート112、および通信制御線163−1を介して、コマンドパケット送信要求であるREQ信号(ドライブ_REQ)を受信する。通信制御部101は、記録再生ブロック12から、ACK信号(ドライブ_ACK)ではなく、REQ信号(ドライブ_REQ)が受信されたことにより、記録再生ブロック12において、REQ信号(カメラ_REQ)が受信されなかったことを認識し、それをカメラ用CPU21に通知する。カメラ用CPU21は、コマンドパケット送信要求を受諾するとともに、リザルトパケットの送信要求を待機し、ステップS304に進み、通信制御部101を制御し、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を送信させる。
記録再生ブロック12の通信制御部131は、ステップS283において、カメラブロック11から、通信制御線163−4を介して、ACK信号(カメラ_ACK)を受信し、コマンドパケットの送信準備が完了すると、ステップS284に進み、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信する。
カメラブロック11の通信制御部101は、ステップS305において、通信制御線163−3を介して、ACK信号(ドライブ_ACK)を受信し、ステップS306に進み、シリアルI/F111、およびシリアルクロック線161−2を介して、所定のクロックを送信する。
記録再生ブロック12の通信制御部131は、ステップS285において、シリアルクロック線161−2、およびシリアルI/F141を介してクロックを受信し、メインCPU41に通知する。メインCPU41は、ステップS286に進み、送信キューコントローラ136を制御し、受信したクロックに同期して、コマンドパケットをカメラブロック11に送信させる。
カメラブロック11のカメラ用CPU211は、ステップS307において、シリアルデータ線161−1を介して、コマンドパケットを受信し、受信したコマンドパケットを解析し、エラーがない場合、ステップS308に進み、通信制御部101を制御し、ポート112、および通信制御線163−4を介して、ACK信号(カメラ_ACK)を記録再生ブロック12に送信する。
記録再生ブロック12の通信制御部131は、ステップS287において、カメラブロック11から送信されてくるACK信号(カメラ_ACK)を、通信制御線163−4、およびポート142を介して受信し、メインCPU41に通知する。これにより、メインCPU41は、コマンド送信が完了したことを確認する。
一方、カメラブロック11のカメラ用CPU21は、通信制御部101が、ACK信号(カメラ_ACK)を送信した後、通信制御部101に、待機されていたリザルトパケットの送信を再度要求する。通信制御部101は、ステップS309において、カメラ用CPU21からリザルトパケットの送信の要求を受け、ステップS310に進み、ポート112の通信制御線163−2を介して、REQ信号(カメラ_REQ)を記録再生ブロック12に送信する。
記録再生ブロック12の通信制御部131は、ステップS287においてコマンド送信を完了しているので、ステップS288において、カメラブロック11からのREQ信号(カメラ_REQ)を受信する。
なお、図21のステップS288およびS310以降の処理は、図16乃至図18のリザルトパケット送受信制御処理(ステップS162およびS143以降の処理)と同様の処理を行うため、その説明は繰り返しになるので省略する。
さらに、図22のアローチャートを参照して、カメラブロック11からのREQ信号(カメラ_REQ)の送信が、記録再生ブロック12からのREQ信号(ドライブ_REQ)の送信よりも十分に早い場合を説明する。
カメラブロック11のカメラ用CPU21は、前のコマンド実行の処理を完了し、その結果として、リザルトパケットの送信を通信制御部101に要求する。カメラブロック11の通信制御部101は、ステップS341において、カメラ用CPU21からリザルトパケットの送信が要求されると、ステップS342に進み、ポート112の通信制御線163−2を介して、REQ信号(カメラ_REQ)を記録再生ブロック12に送信し、記録再生ブロック12からのACK信号(ドライブ_ACK)(すなわち、リザルトパケット受信要求への受諾)を待っている。
記録再生ブロック12の通信制御部131は、ステップS321において、通信制御線163−2を介して、REQ信号(カメラ_REQ)を受信し、メインPCU41のリザルトパケットの受信準備が完了すると、ステップS322に進み、ポート142、および通信制御線163−3を介して、リザルトパケット受信要求への受諾であるACK信号(ドライブ_ACK)を、カメラブロック11に送信し、ステップS323に進む。
記録再生ブロック12のメインCPU41は、次のコマンドパケットの送信を、通信制御部131に要求する。記録再生ブロック12の通信制御部131は、ステップS323において、メインCPU41からコマンドパケットの送信要求を受けるが、すでに、ステップS322においてACK信号(ドライブ_ACK)をカメラブロック11に送信してしまっているので、それをメインCPU41に通知し、コマンドパケットの送信要求を待機させ、REQ信号(ドライブ_REQ)の送信を行わない(禁止する)。
カメラブロック11の通信制御部101は、ステップS343において、ポート112、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)を受信し、カメラ用CPU21のリザルトパケットの送信準備(送信キュー情報の付加も含まれる)ができると、ステップS344に進み、シリアルI/F111、およびシリアルクロック線161−2を介して、所定のクロックを送信するとともに、送信キューコントローラ106を制御し、シリアルデータ線161−1を介して、リザルトパケットを送信させる。
記録再生ブロック12のメインCPU41は、ステップS324において、シリアルデータ線161−1を介して、リザルトパケットを受信し、受信したリザルトパケットを解析し、エラーがない場合、ステップS325に進み、通信制御部131を制御し、ポート142、および通信制御線163−3を介して、ACK信号(ドライブ_ACK)をカメラブロック11に送信させる。
カメラブロック11の通信制御部101は、ステップS345において、記録再生ブロック12から送信されてくるACK信号(ドライブ_ACK)を、通信制御線163−3、およびポート112を介して受信し、カメラ用CPU21に通知する。これにより、カメラ用CPU21は、リザルトパケット送信が完了したことを確認する。
一方、記録再生ブロック12のメインCPU41は、通信制御部131が、ACK信号(ドライブ_ACK)を送信した後、通信制御部131に、待機していた次のコマンドパケットの送信を再度要求する。通信制御部131は、ステップS326において、メインCPU41からコマンドパケットの送信の要求を受け、ステップS327に進み、ポート142の通信制御線163−1を介して、REQ信号(ドライブ_REQ)をカメラブロック11に送信する。
これに対応して、カメラブロック11の通信制御部101は、ステップS221において、ポート112、および通信制御線163−1を介して、REQ信号(ドライブ_REQ)を受信する。
なお、図22のステップS327およびS346以降の処理は、図8乃至図12のコマンドパケット送受信制御処理(ステップS53およびS72以降の処理)と同様の処理を行うため、その説明は繰り返しになるので省略する。
以上のように、記録再生ブロック12からのREQ信号(ドライブ_REQ)と、カメラブロック11からのREQ信号(カメラ_REQ)による割り込みが略同時に行われてしまう場合には、記録再生ブロック12は、カメラブロック11からのREQ信号(カメラ_REQ)の受諾を示すACK信号(ドライブ_ACK)を送信する直前までにコマンド送信要求があれば、自己のコマンド送信要求を優先する。それに対して、カメラブロック11は、記録再生ブロック12から送信されてくるREQ信号(ドライブ_REQ)またはACK信号(ドライブ_ACK)に応じて、自己のREQ信号(カメラ_REQ)が受け入れられたか否かを判定する。
なお、上述した図19乃至図22においては、カメラブロック11からは、リザルトパケットの送信が要求される例を説明したが、コマンドアックパケットの場合も同様の処理を行うため、その説明は繰り返しになるので省略する。
上記説明においては、記録再生装置1内部を構成するシリアル線で接続されたカメラブロック11および記録再生ブロック12を用いて説明したが、本発明は、例えば、カメラと、記録再生装置などのように、個々の装置単体の通信にも適用することができる。この場合、カメラや記録再生装置に限らず、パーソナルコンピュータの通信に適用することができることはもちろん、例えば、携帯電話機、その他のPDA(Personal Digital Assistant)機器や、AV(Audio Visual)機器や家電(家庭用電化製品)などのCE(Consumer Electronics)機器などの通信にも適用することもできる。
また、本発明は、シリアル線に限らず、インターネットや、LAN(local area network)や無線通信にも適用するようにしてもよい。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。この場合、例えば、図1の記録再生装置1のカメラブロック11および記録再生ブロック12は、図23に示されるようなパーソナルコンピュータ401により構成される。
図23において、CPU(Central Processing Unit)411は、ROM(Read Only Memory) 412に記憶されているプログラム、または、記憶部418からRAM(Random Access Memory)413にロードされたプログラムに従って各種の処理を実行する。RAM413にはまた、CPU411が各種の処理を実行する上において必要なデータなどが適宜記憶される。
CPU411、ROM412、およびRAM413は、バス414を介して相互に接続されている。このバス414にはまた、入出力インタフェース415も接続されている。
入出力インタフェース415には、キーボード、マウスなどよりなる入力部416、CRT(Cathode Ray Tube),LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部417、ハードディスクなどより構成される記憶部418、モデム、ターミナルアダプタなどより構成される通信部419が接続されている。通信部419は、無線などのネットワークを介しての通信処理を行う。なお、入出力インタフェース415には、必要に応じて、撮像部22(図1のカメラブロック11の場合)も接続される。
入出力インタフェース415にはまた、必要に応じてドライブ420が接続され、磁気ディスク421、光ディスク422、光磁気ディスク423、或いは半導体メモリ424などが適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部418にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
なお、このプログラムは、全体として上述した一連の処理を実行できれば、その形態は特に限定されない。例えば、上述した各ブロックのそれぞれに対応するモジュールのそれぞれからなるモジュール構成とされてもよいし、幾つかのブロックの機能の一部または全部が組み合わされたモジュール、若しくは、ブロックの機能が分割されたモジュールからなるモジュール構成とされてもよい。或いは、単に1つのアルゴリズムを有するプログラムでもよい。
このプログラムが記録される記録媒体は、図23に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク421(フレキシブルディスクを含む)、光ディスク422(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク423(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリ424などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM412や、記憶部418に含まれるハードディスクなどで構成される。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであってもよい。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであってもよい。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
1 記録再生装置,11 カメラブロック,12 記録再生ブロック,21 カメラ用CPU,41 メインCPU,42 操作部,71 通信バス,101 通信制御部,102 カメラ用I/F,104 受信キューコントローラ,105 受信キュー,106 送信キューコントローラ,107 バッファ,108 送信キュー,111 シリアルI/F,112 ポート,113 情報付加部,131 通信制御部,132 メイン用I/F,134 受信キューコントローラ,135 受信キュー,136 送信キューコントローラ,138 送信キュー,141 シリアルI/F,142 ポート,161 シリアル線,161−1 シリアルデータ線,161−2 シリアルクロック線,163,163−1乃至163−8 通信制御線,201 コマンドパケット,211 コマンドアックパケット,212 リザルトパケット