JP2005123739A - 通信システム、端末装置、通信システムの制御方法、記録媒体およびプログラム - Google Patents

通信システム、端末装置、通信システムの制御方法、記録媒体およびプログラム Download PDF

Info

Publication number
JP2005123739A
JP2005123739A JP2003354142A JP2003354142A JP2005123739A JP 2005123739 A JP2005123739 A JP 2005123739A JP 2003354142 A JP2003354142 A JP 2003354142A JP 2003354142 A JP2003354142 A JP 2003354142A JP 2005123739 A JP2005123739 A JP 2005123739A
Authority
JP
Japan
Prior art keywords
data
control
node
transmission
receiving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003354142A
Other languages
English (en)
Other versions
JP2005123739A5 (ja
Inventor
Mitsuhisa Araida
光央 新井田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2003354142A priority Critical patent/JP2005123739A/ja
Publication of JP2005123739A publication Critical patent/JP2005123739A/ja
Publication of JP2005123739A5 publication Critical patent/JP2005123739A5/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】 簡便な接続手順で、高速なデータ転送が可能であるとともにデータ転送の確実性が保証できる通信システムを提供する。
【解決手段】 ユニット間のアシンクロナスコネクションを確立するためのコマンドに、ユニット内のサブユニットプラグを指定するためのフィールドを拡張して追加し、ユニット間におけるアシンクロナスコネクション、およびユニット内でのサブユニットプラグとユニットが備えるポートとの間におけるコネクションを単一のコマンドにより、同時に接続あるいは切断することができるようにする。
【選択図】 図36

Description

本発明は、通信システム、端末装置、通信システムの制御方法、記録媒体およびプログラムに関し、特に、制御信号とデータとを混在させて通信可能なデータ通信バスを介して、複数の電子機器を通信可能なように接続し、各機器間でデータ通信を行う通信システムに用いて好適なものである。
パーソナル・コンピュータ(以下、「PC」と称す。)の周辺機器の中で、ハードディスクやプリンタは利用頻度が高く、小型コンピュータ用汎用型インターフェースで代表的なデジタルインターフェース(以下、「デジタルI/F」と称す。)であるSCSI(Small Computer System Interface)等を用いてPCに対して接続され、データ通信が行われている。また、デジタルカメラやデジタルビデオカメラ等の画像記録再生装置も、PCとの間でデータ通信可能な周辺機器の1つであり、近年、画像記録再生装置により撮影した映像(静止画像や動画像)をPCに取り込んで、ハードディスクに記憶保存したり、またはPCを用いて編集した後、プリンタでカラー印刷したりする技術が発達し、画像記録再生装置により撮影した映像を保存、編集するユーザーも増加している。
上述のように、取り込んだ画像データをPCからプリンタやハードディスクに出力する際などには、上記SCSI等のデジタルI/Fを介してデータ通信が行われるので、画像データのようにデータ量が多い情報を送るためにも、転送データレートが高く、かつ汎用性を有するデジタルI/Fが必要とされる。このような要望に応えるものとして、IEEE1394規格に準拠したデータ通信バス(以下、「1394シリアルバス」と称す。)がある。
以下に、1394シリアルバスの概要について説明する。
家庭用デジタルVTRやDVDの登場に伴い、ビデオデータやオーディオデータ等のリアルタイム性が要求され、かつ情報量が多いデータを、リアルタイムで転送して、PCに取り込んだり、その他のデジタル機器に転送したりするには、高速データ転送可能なデジタルI/Fが必要である。そのような観点から開発されたデジタルI/F規格の1つが、IEEE1394−1995規格(High Performance Serial Bus)である。
1394シリアルバスにおける各機器間の接続方式は、デイジーチェーン方式とノード分岐方式とを混在可能としたものであり、高い自由度で各機器を接続することができる。また、各機器は、固有のノードIDをそれぞれ有し、互いに認識し合うことによって、1394シリアルバスを介して接続された範囲において1つのネットワークを構成する。各機器間をそれぞれ1本の1394シリアルバスケーブルで順次接続するだけで、それぞれの機器が中継の役割を担い、全体として1つのネットワークを構成するものである。
また、機器の電源を入れたままケーブルを抜き差しできる、いわゆるホットスワップ機能や、1394シリアルバスのケーブルを機器に接続した時点で、機器や接続状況等を自動的に認識する、いわゆるプラグ・アンド・プレイ機能を有している。
1394シリアルバスは、全体としてレイヤ(階層)構造で構成されている。1394シリアルバスにおいて、最もハードウェア的であるのが1394シリアルバスのケーブルであり、そのケーブルのコネクタが接続されるコネクタポートがある。その上階層には、ハードウェアとして物理レイヤとリンク・レイヤとがある。さらに、その上には、通常はソフトウェアとして構成されるトランザクション・レイヤおよびアプリケーション・レイヤがある。
1394シリアルバスの接続ケーブルは、2組のツイストペア信号線に加え、電源線を設けている。これにより、電源を備えない機器や、故障等により電源電圧が低下した機器等にも電力を供給することが可能になっている。電源線内を流れる電源の電圧は8〜40V、電流は最大電流DC1.5Aと規定されている。
1394シリアルバスにおけるハードウェア部は、実質的なインターフェースチップ(IC等)の部分であり、ハードウェア部の物理レイヤは、符号化やコネクタ関連の制御等を行い、リンク・レイヤはパケット転送やサイクルタイムの制御等を行う。また、ファームウェア部のトランザクション・レイヤは、転送(トランザクション)すべきデータの管理を行い、読み出し(Read)や書き込み(Write)等の命令を出す。シリアルバスマネージメントは、接続されている各機器の接続状況やノードIDの管理を行い、ノード制御やネットワーク構成を管理する部分である。
また、データ転送速度は100/200/400Mbpsが規定されており、データ転送速度が機器間で異なる場合には、上位の転送速度を有する機器が下位の転送速度をサポートして互換をとる。データ転送モードは、制御信号(制御データ)等のアシンクロナスデータを転送するアシンクロナス(Asynchronous)転送モード、およびリアルタイムなビデオデータやオーディオデータ等のアイソクロナスデータを転送するアイソクロナス(Isochronous)転送モードがある。アシンクロナスデータとアイソクロナスデータとは、各サイクル(通常1サイクルは125μs)の開始を示すサイクル・スタート・パケット(CSP)の転送に続いて、アイソクロナスデータの転送を優先しつつ各サイクル内で混在して転送可能である。
上述したように1394シリアルバスでは、接続されている各機器(ノード)はノードIDを与えられ、ネットワーク構成として認識されている。ここで、例えば、ケーブルの挿抜や電源のON/OFF操作等によるノード数の増減などによりネットワーク構成に変化が生じ、ネットワーク構成を新たに認識する必要が生じたとする。このとき、変化を検知したノードは1394シリアルバス上にバスリセット信号を送信し、新たなネットワーク構成を認識する動作モードに入る。なお、ネットワーク構成の変化の検知方法は、1394ポート基板上でのバイアス電圧の変化を検知することにより行われる。
各ノードの物理レイヤは、1394シリアルバスを介してあるノードから伝達されたバスリセット信号を受信すると同時にリンク・レイヤにバスリセットの発生を伝達するとともに、他のノードにバスリセット信号を伝達する。最終的に、すべてのノードがバスリセット信号を検知した後、バスリセットが起動となる。
バスリセットは、上述したようなケーブルの挿抜や通信異常等のハードウェア検出による起動に限らず、プロトコルからのホスト制御等により物理レイヤに対して命令を直接出すことによっても起動する。また、バスリセットが起動すると、1394シリアルバスを介したデータ転送は、一時中断されてバスリセットの間のデータ転送は待たされる。そして、バスリセット終了後に、新しいネットワーク構成のもとでデータ転送が再開される。以上がバスリセットのシーケンスである。
IEEE Std 1394-1995, IEEE Standard for a High Performance Serial Bus, Institute of Electrical and Electronics Engineers, Inc.
ここで、上述した従来例においては、記録または記憶されたファイルや、ファイルの持つ属性データを、アイソクロナスデータを用いて高速に転送することが可能である。しかしながら、このアイソクロナス転送の場合にはデータ転送の確実性は保証されない。また、データ転送の確実性が保証されているアシンクロナスデータを用いたアシンクロナス転送では、記録または記憶されたファイルや、ファイルの持つ属性データを転送するためのメカニズムが定義されていないという問題点があった。
本出願人は、上記問題点を解決するための1つの方法を提案しているが、上記方法においては、機器内部の複数の機能ブロックと当該機器の入出カポートとの接続手順、および機器間の接続手順を別にそれぞれ設ける必要があり、接続手順が煩雑であった。また、上記方法においては、上記機器内部の複数の機能ブロックと当該機器の入出カポートとの接続、および機器間の接続に関して、排他制御が不可能であった。
本発明は、上記問題点に鑑みて成されたものであり、簡便な接続手順で、高速なデータ転送が可能であるとともにデータ転送の確実性が保証できる通信システムを提供することを目的とする。また、機器内部の複数の機能ブロックと当該機器の入出カポートとの接続、および機器間の接続にて排他制御できるようにすることを目的とする。
本発明の通信システムは、シリアルデータを送受信可能なシリアルバスを介して、データを送信する送信ノードと、上記送信ノードから送信されたデータを受信する受信ノードとが接続された通信システムであって、任意の制御データを出力する制御手段を備え、上記送信ノードは、上記シリアルバスを介してデータを送信するための送信手段と、上記送信手段にデータを出力可能な出力手段を有するとともに、上記制御手段からの制御データにより制御可能な所定の機能を有する機能動作手段と、上記送信手段と上記出力手段との接続状態を制御する通信路制御手段とを備え、上記制御データは、単一の制御命令を用いて送信可能な上記送信手段と上記出力手段との接続状態を制御するための制御データを含むことを特徴とする。
本発明の通信システムの他の特徴とするところは、シリアルデータを送受信可能なシリアルバスを介して、データを送信する送信ノードと、上記送信ノードから送信されたデータを受信する受信ノードとが接続された通信システムであって、任意の制御データを出力する制御手段を備え、上記受信ノードは、上記シリアルバスを介してデータを受信するための受信手段と、上記受信手段で受信したデータを入力可能な入力手段を有するとともに、上記制御手段からの制御データにより制御可能な所定の機能を有する機能動作手段と、上記受信手段と上記入力手段との接続状態を制御する通信路制御手段とを備え、上記制御データは、単一の制御命令を用いて送信可能な上記受信手段と上記入力手段との接続状態を制御するための制御データを含むことを特徴とする。
本発明の通信システムのその他の特徴とするところは、任意の制御データを送信する制御ノードと、上記制御データを受信する送信ノードおよび受信ノードとがシリアルデータを送受信するためのシリアルバスを介して接続された通信システムであって、上記送信ノードは、上記制御データの一部により制御可能であるとともに、データを出力するための出力手段をそれぞれ備えた所定の機能を有するn個(nは自然数)の機能動作手段と、上記シリアルバスを介してアシンクロナス転送によりデータを送信するための送信手段とを具備し、上記受信ノードは、上記シリアルバスを介してアシンクロナス転送により上記データを受信するための受信手段を具備し、上記制御ノードは、単一のデータ送信により上記出力手段と上記送信手段との間のデータ送信路を確保するためのデータを含む上記制御データを上記送信ノードに送信することを特徴とする。
本発明の通信システムのその他の特徴とするところは、任意の制御データを送信する制御ノードと、上記制御データを受信する送信ノードおよび受信ノードとがシリアルデータを送受信するためのシリアルバスを介して接続された通信システムであって、上記送信ノードは、上記シリアルバスを介してアシンクロナス転送によりデータを送信するための送信手段を具備し、上記受信ノードは、上記制御データの一部により制御可能であるとともに、データを入力するための入力手段をそれぞれ備えた所定の機能を有するm個(mは自然数)の機能動作手段と、上記シリアルバスを介してアシンクロナス転送により上記データを受信するための受信手段とを具備し、上記制御ノードは、単一のデータ送信により上記入力手段と上記受信手段との間のデータ受信路を確保するためのデータを含む上記制御データを上記受信ノードに送信することを特徴とする。
本発明の通信システムのその他の特徴とするところは、任意の制御データを送信する制御ノードと、上記制御データを受信する送信ノードおよび受信ノードとがシリアルデータを送受信するためのシリアルバスを介して接続された通信システムであって、上記送信ノードは、データを記録するための記録手段と、上記記録手段に記録されているデータを上記シリアルバスを介してアシンクロナス転送により送信するための送信手段とを具備し、上記受信ノードは、上記送信ノードから送信されたデータを受信するための受信手段を具備し、上記制御データは、単一のデータ送信により上記記録手段と上記送信手段との論理的な接続を行うための制御データを含むことを特徴とする。
本発明の通信システムのその他の特徴とするところは、任意の制御データを送信する制御ノードと、上記制御データを受信する送信ノードおよび受信ノードとがシリアルデータを送受信するためのシリアルバスを介して接続された通信システムであって、上記送信ノードは、ファイルシステムを具備するとともに、当該ファイルシステムを上記シリアルバスを介してアシンクロナス転送により上記受信ノードに提供し、上記制御データは、単一のデータ送信により上記ファイルシステムとの論理的な接続を行うための制御データを含むことを特徴とする。
本発明の端末装置は、シリアルデータを送受信可能なシリアルバスを介して、データを受信する受信ノードに接続された端末装置であって、上記シリアルバスを介してデータを送信するための送信手段と、上記送信手段にデータを出力可能な出力手段を有するとともに、制御データに基づいて制御可能な所定の機能を有する機能動作手段と、上記送信手段と上記出力手段との接続状態を、単一の制御命令を用いて送信された制御データに基づいて制御可能な通信路制御手段とを備えることを特徴とする。
本発明の端末装置の他の特徴とするところは、シリアルデータを送受信可能なシリアルバスを介して、データを送信する送信ノードに接続された端末装置であって、上記シリアルバスを介してデータを受信するための受信手段と、上記受信手段で受信したデータを入力可能な入力手段を有するとともに、制御データに基づいて制御可能な所定の機能を有する機能動作手段と、上記受信手段と上記入力手段との接続状態を、単一の制御命令を用いて送信された制御データに基づいて制御可能な通信路制御手段とを備えることを特徴とする。
本発明の通信システムの制御方法は、シリアルデータを送受信可能なシリアルバスを介して、データを送信する送信ノードと、上記送信ノードから送信されたデータを受信する受信ノードとが接続された通信システムの制御方法であって、上記送信ノードが備える、所定の機能を有する機能動作手段からデータを出力するための出力手段と、上記シリアルバスを介してデータを外部に送信するための送信手段との接続状態を、単一の制御命令を用いて送信された制御データに基づいて制御することを特徴とする。
本発明の通信システムの制御方法の他の特徴とするところは、シリアルデータを送受信可能なシリアルバスを介して、データを送信する送信ノードと、上記送信ノードから送信されたデータを受信する受信ノードとが接続された通信システムの制御方法であって、上記受信ノードが備える、所定の機能を有する機能動作手段にデータを入力するための入力手段と、上記シリアルバスを介してデータを外部から受信するための受信手段との接続状態を、単一の制御命令を用いて送信された制御データに基づいて制御することを特徴とする。
本発明のプログラムは、シリアルデータを送受信可能なシリアルバスを介してデータを受信する受信ノードに接続された送信ノードが備える、所定の機能を有する機能動作手段からデータを出力するための出力手段と、上記シリアルバスを介してデータを外部に送信するための送信手段との接続状態の制御を、単一の制御命令を用いて送信された制御データに基づいてコンピュータに実行させることを特徴とする。
本発明のプログラムの他の特徴とするところは、シリアルデータを送受信可能なシリアルバスを介してデータを送信する送信ノードに接続された受信ノードが備える、所定の機能を有する機能動作手段にデータを入力するための入力手段と、上記シリアルバスを介してデータを外部から受信するための受信手段との接続状態の制御を、単一の制御命令を用いて送信された制御データに基づいてコンピュータに実行させることを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、シリアルデータを送受信可能なシリアルバスを介してデータを受信する受信ノードに接続された送信ノードが備える、所定の機能を有する機能動作手段からデータを出力するための出力手段と、上記シリアルバスを介してデータを外部に送信するための送信手段との接続状態の制御を、単一の制御命令を用いて送信された制御データに基づいてコンピュータに実行させるためのプログラムを記録したことを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体の他の特徴とするところは、シリアルデータを送受信可能なシリアルバスを介してデータを送信する送信ノードに接続された受信ノードが備える、所定の機能を有する機能動作手段にデータを入力するための入力手段と、上記シリアルバスを介してデータを外部から受信するための受信手段との接続状態の制御を、単一の制御命令を用いて送信された制御データに基づいてコンピュータに実行させるためのプログラムを記録したことを特徴とする。
本発明によれば、単一のデータ送信によりノード内部の接続を制御する制御データを含む制御データを送信するようにしたので、単一のデータ送信で機器間の接続および機器内部での接続を同時に制御することができ、簡単な接続手順で、高速なデータ転送が可能であるとともにデータ転送の確実性が保証できる通信システムを実現することができる。
また、単一のデータ送信により機器間の接続および機器内部での接続に関し排他制御を行うための制御データを送信するようにしたので、機器間の接続および機器内部での接続の双方の制御に関して、効率良く排他制御を行うことができる。
以下、本発明の実施形態を図面に基づいて説明する。
図1は、本発明の一実施形態による通信システムの一構成例を示すブロック図であり、各機能ブロックの電気的接続構成をも示している。図1において、100はプリンタ、200は電子スチルカメラであり、IEEE1394シリアルバスのケーブル(以下、「1394ケーブル」とも称す。)10を介して通信可能なように接続されている。
各機器の構成について説明する。プリンタ100は、通信部101、通信補助部102、画像処理部103、着脱可能記録部104、表示部105、制御部106、操作部107、メモリ108および印刷出力部109により構成され、各ブロックは制御を行うためのコントロールバス110とデータを伝送するためのデータバス111とにより接続されている。
通信部101は、IEEE1394規格に準拠した通信方式により1394ケーブル10を介して外部の機器(例えば、電子スチルカメラ200)等との間で通信を行うためのものである。通信補助部102は、IEEE1394規格準拠の通信方式にプリンタ100内部の情報を変換するためのものである。
画像処理部103は、1394ケーブル10を介してプリンタ100に送られてきたデータや、着脱可能記録部104に記録されているデータを印刷出力できるように、上記データに画像処理を施す。着脱可能記録部104は、プリンタ100に限らず、別の機器に接続してデータを記録したり、読み出したりすることも可能であり、表示部105は、ユーザーがプリンタ100を操作する際に操作の補助になる情報を提示する。
制御部106は、プリンタ100全体の制御を行う。操作部107は、ユーザーがプリンタ100を実際に操作するためのものであり、メモリ108は画像処理部103にて印刷出力用に画像処理が施されたデータを一時的に記録しておき、印刷出力部109は、画像処理が施されたデータを印刷出力する。
電子スチルカメラ200は、通信部201、通信補助部202、画像処理部203、着脱可能記録部204、表示部205、制御部206、操作部207、メモリ208および撮像部209により構成され、各ブロックは制御を行うためのコントロールバス210とデータを伝送するためのデータバス211とにより接続されている。
通信部201は、IEEE1394規格に準拠した通信方式により1394ケーブル10を介して外部の機器(例えば、プリンタ100)等との間で通信を行うためのものである。通信補助部202は、IEEE1394規格準拠の通信方式に電子スチルカメラ200内部の情報を変換するためのものである。
画像処理部203は、撮像部209によって得られたデータに画像処理を施し、画像として認識できる状態にする。着脱可能記録部204は、電子スチルカメラ200に限らず、別の機器に接続してデータを記録したり、読み出したりすることが可能であり、表示部205は、ユーザーが電子スチルカメラ200を操作する際に操作の補助になる情報を提示する。
制御部206は、電子スチルカメラ200全体の制御を行う。操作部207は、ユーザーが電子スチルカメラ200を実際に操作するためのものであり、メモリ208は画像処理が施されたデータを一時的に記録するためのものである。撮像部209は、被写体像を撮影し電気的信号として得るためのものである。
次に、1394シリアルバスを介して電子スチルカメラ200からプリンタ100に画像データを転送し、プリンタ100にて印刷出力する際の各機器の動作について説明する。
電子スチルカメラ200にて、ユーザーが表示部205で被写体像を確認しながら操作部207によって撮影を促す操作を行うと、制御部206は被写体像を撮影するように撮像部209を制御する。撮像部209により得られた画像データは、データバス211を介してメモリ208に一時的に記録される。さらに、メモリ208に記録された画像データは、画像処理部203にて画像処理が施された後、データバス211を介して着脱可能記録部204にファイルとして記録される。
着脱可能記録部204に記録された画像データに係る画像は、ユーザーが操作部207により再生操作を行うことで表示部205に表示することも可能であるし、電子スチルカメラ200から着脱可能記録部204を切り離してPC等に接続することで再生(表示)することも可能である。
また、着脱可能記録部204に記録された画像データは、通信部201を介して1394シリアルバス経由でプリンタ100に送信して印刷出力することも可能である。この場合には、電子スチルカメラ200は、データ伝送を保証するためにIEEE1394規格に準拠した通信方式で通信を行わなければならない。本実施形態では、AV/C Compatible Asynchronous Serial Bus Connections規格(1394 Trade Association)、およびAV/C Commands for Management of Asynchronous Serial Bus Connections規格(1394 Trade Association)を利用してデータ転送を行う。以下、上記二つの転送方法(規格)を総称して「アシンクロナスコネクション(Asynchronous Connection)」と称す。通信部201は、上記アシンクロナスコネクションを行う手段を有しており、これによりデータ転送が保証される。
プリンタ100に転送し印刷する画像の画像データは、電子スチルカメラ200の表示部205に表示される着脱可能記録部204に記録された画像データの中から操作部207を用いて選択される。選択された画像データは、1394シリアルバス経由でプリンタ100に伝送されるが、画像データを伝送する前に、プリンタ100を制御するためのコマンドが電子スチルカメラ200からプリンタ100に送信される。
送信されたコマンドは、プリンタ100の通信部101を介して制御部106に転送され、制御部106はプリンタ100をデータ受信待ち状態に制御する。その後、選択された画像データが電子スチルカメラ200の通信部201を介してアシンクロナスコネクションによりプリンタ100に伝送される。データ受信待ち状態のプリンタ100は、電子スチルカメラ200から送信されてくる画像データを受信すると、データバス111を介してメモリ108に一時的に記録する。メモリ108に記録された画像データは、画像処理部103にて印刷出力用に画像処理が施され、印刷出力部109によって出力される。
上述した説明は、電子スチルカメラ200からプリンタ100に画像データを伝送して印刷するプッシュモデルである。
以下に、プリンタ100が電子スチルカメラ200に記録された画像を選択して、1394シリアルバス経由で取得し印刷する際の動作について説明する。
電子スチルカメラ200の通信補助部202は、着脱可能記録部204にファイルとして記録されている画像データに関するファイル情報を読み出し、所定のファイルシステムにマッピングを行う。通信補助部202により表現される上記ファイルシステムは、1394シリアルバスを介して外部の機器から参照することができる。すなわち、1394シリアルバスを介して接続された各機器は、通信補助部202を各機器に実装しておくことで、各機器における記録媒体の記録方式が異なっていたとしても1394シリアルバス上では同様のファイルシステムとして取り扱うことが可能になる。
図2は、本実施形態における上記ファイルシステムの構成例を示す図である。なお、この図2において、図1に示したブロック等と同一の機能を有するブロック等には同一の符号を付し、重複する説明は省略する。
電子スチルカメラ200にて撮影された画像が、上記図1に示した着脱可能記録部204に記録形式A2−1で記録されている。通信補助部202は、記録形式A2−1で記録されているファイル情報を、図2に示すような予め定められた形式の情報形態(ファイルフォーマット)に変換して、変換により得られたファイル情報2−5を内部メモリ2−6に一時的に記録しておく。
そして、プリンタ100の操作部107にて所定の操作を行い、電子スチルカメラ200が有するファイル情報を取得するためのコマンドをプリンタ100から電子スチルカメラ200に送信する。これにより、プリンタ100は、通信補助部202の内部メモリ2−6に保持するファイル情報2−5を1394シリアルバス経由で取得することができる。また、仮に記録形式A2−1とは異なる記録形式B2−2、記録形式C2−3、もしくは記録形式D2−4で電子スチルカメラ200の着脱可能記録部204にファイル情報が記録されていたとしても、プリンタ100は同一のファイルフォーマットのファイル情報2−5として認識することができる。
上述のようにして取得したファイル情報は、プリンタ100の表示部105に表示され、ユーザーは操作部107を用いて印刷したい画像を選択する。上記選択に応じて、プリンタ100は、選択された画像の画像データを取得するためのコマンドを電子スチルカメラ200に送信する。同時に、プリンタ100内部では、1394シリアルバス経由で画像データを受信し印刷するためにデータ受信待ち状態になる。
電子スチルカメラ200は、上記画像データの取得を要求するコマンドを受信すると、アシンクロナスコネクションによりプリンタ100に対して画像データの伝送を行う。プリンタ100は、電子スチルカメラ200からの画像データを受信すると、当該画像データをメモリ108に一時的に記録し、画像処理部103にて印刷出力用に画像処理を施した後、印刷出力部109によって出力する。
次に、上記図1に示した着脱可能記録部104、204のような記録デバイス(記録媒体)に記録されたファイルヘのアクセス手段について説明する。
<ファイルシステムのデータ構造>
本実施形態における記録デバイスでは、指定されたファイルにアクセスする際にファイルパス(file_path)を用いる。上記ファイルパスは、可変長のデータであり、例えば、ルートディレクトリからのフルパス名である。また、上記ファイルパスでは、例えば、ディレクトリのデリミタとして”/”の文字(“5C16”)(下付の添え字“16”は16進数表記であることを示す。以下についても同様である。)を用いるとともに、ターミネータとしてNULL(ヌル)文字(“0016”)を用いる。
上記ファイルパスのデータ長は、ファイルパス長(file_path_length)により示され、当該ファイルパス長には、最後のNULL文字の長さは含まれない。
上記ファイルパスデータおよびファイルパス長データは、後述するファイルアクセスコマンドセットにて使用される。
本実施形態における記録デバイスからファイルの情報を取得する側のデバイス(以下、「コントローラ」と称す。)は、ファイルの情報を取得するために、記録デバイスに対してファイルリストを要求する。上記ファイルリストは、上記ファイルリストを要求するコマンドのレスポンスとして、記録デバイスからコントローラに転送される。ここで、ファイルリストは、複数のディレクトリエントリと、各ディレクトリエントリが保持しているファイルあるいはディレクトリの情報とを含む。また、ファイルリストのディレクトリエントリは、例えばサイズが20バイトであり、図3に示すようなデータ構造を有する。
図3は、本実施形態におけるディレクトリエントリのデータ構造の一例を示す図である。図3に示したディレクトリエントリの各フィールドは、例えば、DOS(disk operating system)−FAT(file allocation table)システムとして知られているデータ構造と同様のデータ構造を有している。しかしながら、上記図3に示したディレクトリエントリでは、DOS−FATシステムのようなカレントディレクトリおよび親ディレクトリ情報は保持していない。
図3において、最初の11バイト(アドレスオフセット値“0016”〜“0A16”)のフィールドは、名前(name)フィールド301および拡張子(extension)フィールド302であり、ファイルの名前を示す。上記2つのフィールド301、302により、例えば、上述したDOS−FATシステムにおけるファイル名8文字と拡張子3文字とを形成することができる。上記記録デバイスに保持されているファイルの名前または拡張子が、上記2つのフィールド長よりも小さい場合には、例えば、パディングバイト(padding byte)が詰められる。上記パディングバイトの値は、例えば“2016”である。
次の1バイト(アドレスオフセット値“0B16”)のフィールドは、属性(attribute_byte)フィールド303であり、ファイルの属性情報を示す。属性フィールド303は、図4に示すようなビットフィールドを含む。
図4は、属性フィールド303の構成を示す図であり、ディレクトリ(directory)ビット401は、当該ディレクトリエントリがサブディレクトリか否かを示す。例えば、ディレクトリビット401が“1”にセットされている時には、当該ディレクトリエントリはサブディレクトリである。また、リード・オンリ(read_only)ビット402は、当該ディレクトリエントリ内のファイルに対して読み出しのみが可能であり、書き込み/消去が不可能であるか否かを示す。例えば、リード・オンリビット402が“1”にセットされている時には、ファイルは読み出し専用である。なお、図4において、複数のイグノア(ignored)ビットは、当該記録デバイスがいかなる値を書き込んでも、コントローラに無視されるようになっている。
図3に戻り、更新時間(modification_time)フィールド304(アドレスオフセット値“0C16”、“0D16”)、および更新日付(modification_date)フィールド305(アドレスオフセット値“0E16”、“0F16”)は、ファイルの最新更新日時を示す。また、ファイルサイズ(file_size)フィールド306(アドレスオフセット値“1016”〜“1316”)は、ファイル長(単位はバイト)を示す。
本実施形態においては、複数の記録メディアと、当該記録メディア上の複数に分割されたいわゆるパーティションとを取り扱うことができる。上記記録メディアを、例えば「物理ボリューム」と称すると共に、上記パーティションを、例えば「論理ボリューム」と称する。
本実施形態では、上記物理ボリュームの指定を物理ボリューム番号(physical_volume_number)データにて行い、上記論理ボリュームの指定を論理ボリューム番号(logical_volume_number)データにて行う。コントローラは、上記物理ボリューム番号および論理ボリューム番号により記録デバイス上の特定エリアを指定することができる。上記物理ボリューム番号および論理ボリューム番号は、後述するファイルアクセスコマンドセットにて使用される。
上記物理ボリューム番号データは、例えば“0016”から“FE16”の値をとり、最初の物理ボリューム番号は“0016”の値をとる。“FF16”の値は、例えば特別であり、上記物理ボリューム番号値は後述するファイルアクセスコマンドセットに応じて意味付けが異なる。
上記論理ボリューム番号データは、例えば“0016”から“FE16”の値をとり、最初の論理ボリューム番号は“0016”の値をとる。“FF16”の値は、例えば特別であり、上記論理ボリューム番号値は後述するファイルアクセスコマンドセットに応じて意味付けが異なる。
なお、本実施形態では、上記物理ボリューム番号および論理ボリューム番号の値が“FF16”の場合を例外としているが、“0016”から“FF16”の値をとるように構成しても良い。
本実施形態の記録デバイスでは、記録メディアの交換を通知するのにメディア・カウント(media_generation_count)を用い、記録メディアが記録デバイスに挿入された時に、メディア・カウントの値が“1”だけ増加される。なお、記録デバイスが複数の物理ボリュームをサポートしている場合には、各物理ボリュームに対して固有のメディア・カウントを有する。
電源投入等により記録デバイスが初期化された時には、上記メディア・カウントは初期化される。なお、メディア・カウントの初期値は、記録デバイスに固有の値であり、例えば、零であっても良く、乱数であっても良い。また、記録デバイスが、電源切断時等にフラッシュメモリやその他の不揮発性メモリ等にメディア・カウントの値を記憶させることができる場合には、次の初期化の際の初期値として記憶したメディア・カウントの値を使用するようにしても良い。本実施形態では、上記メディア・カウントは1バイトのデータであり、バスリセットが発生した場合にはメディア・カウントの値は保持されるようになっている。
コントローラは、記録デバイスに記録メデイアが挿入され、メディア・カウントの値が増加したことを検出すると、上述したファイルリストを再取得する。本実施形態における記録デバイスでは、記録メデイアの抜去によりメディア・カウントの値が増加することがないので、記録メディアの抜去により新たなファイルリストの取得を行う必要がなく、不要なトランザクションを発生させることがない。
<ファイルアクセスコマンドセット>
次に、本実施形態のファイルシステムに関するコマンドについて説明する。本実施形態では、コマンドを用いることで、ファイル属性の取得やファイルの転送などのファイルに関する様々な制御を行うことが可能である。
本実施形態のファイルシステムに関するコマンドは、例えば、IEEE1394規格で定義されているFCP(Function Control Protocol)を用いている。
以下、図5を参照してFCPについて説明する。
図5は、FCPを説明するための概念図である。FCPは、1394シリアルバスを介して接続されたデバイスを制御するためにIEEE1394規格に基づいて設計されており、種々のコマンドセットとコマンドトランザクションとが、FCP上で利用可能である。また、FCPではコマンドおよびレスポンスを送信する際に、IEEE1394規格のアシンクロナスパケット(Asynchronous packet)が用いられる。
FCPにおいて、他の(複数の)ノードを制御するノードを“コントローラ”と呼び、制御されるノードを“ターゲット”と呼ぶ。図5においては、500はコントローラ、510はターゲットとして動作するようになっている。
また、FCPにおいては、コントローラからターゲットに送られるFCPフレームを“コマンドフレーム”と呼び、ターゲットからコントローラに送られるFCPフレームを“レスポンスフレーム”と呼ぶ。上記コマンドフレームを受け取る準備をしたレジスタを“コマンドレジスタ”と呼び、上記レスポンスフレームを受け取る準備をしたレジスタを“レスポンスレジスタ”と呼ぶ。図5においては、501および502は、コントローラ500上のコマンドレジスタおよびレスポンスレジスタであり、511および512は、ターゲット510上のコマンドレジスタおよびレスポンスレジスタである。
FCPフレームを用いて送出されるアシンクロナスパケットのデータ構造を図6に示す。
図6において、601はデスティネーションIDフィールド、602はトランザクション・ラベル(tl)フィールド、603はリトライコード(rt)フィールド、604はトランザクション・コード(tcode)フィールド、605はプライオリティ(pri)フィールド、606はソースIDフィールド、607はデスティネーションオフセットフィールド、608はデータ長フィールド、609は拡張トランザクション・コードフィールド、610はヘッダCRC(header_CRC)フィールド、611はデータフィールド(FCPフレーム)、612はデータCRC(data_CRC)フィールドである。上記アシンクロナスパケットは、例えば4バイト(32ビット、以下「クアッドレッド」と称す。)を単位とするデータパケットである。
図6に示したアシンクロナスパケットにおいて、最初の16ビットのフィールドが、デスティネーションIDフィールド601であり、受信側(送信先)のノードIDを示す。次の6ビットのフィールドが、トランザクション・ラベルフィールド602であり、各トランザクション固有のタグである。次の2ビットのフィールドが、リトライコードフィールド603であり、パケットがリトライを試みるか否かを指定する。
次の4ビットのフィールドが、トランザクション・コードフィールド604であり、パケットのフォーマットや実行しなければならないトランザクションのタイプを指定する。本実施形態では、例えば、このフィールドの値が“00012”(下付の添え字“2”は2進数表記であることを示す。以下についても同様である。)である、データブロックの書き込みリクエストのトランザクションを用いる。
次の4ビットのフィールドが、プライオリティフィールド605であり、優先順位を指定する。本実施形態ではアシンクロナスパケットを用いているので、このフィールドの値は、例えば“00002”である。
次の16ビットのフィールドが、ソースIDフィールド606であり、送信側(送信元)のノードIDを示す。次の48ビットのフィールドが、デスティネーションオフセットフィールド607であり、パケットの受信側ノードアドレスの下位48ビットがこのフィールドによって指定される。
次の16ビットのフィールドが、データ長フィールド608であり、後述するデータフィールド611の長さをバイト単位で示す。次の16ビットのフィールドが、拡張トランザクション・コードフィールド609であり、本実施形態にて用いられるデータブロックの書き込みリクエストのトランザクションにおいては、この値は、例えば“000016”である。
次の32ビットのフィールドが、ヘッダCRCフィールド610であり、パケットヘッダ(上述したデスティネーションIDフィールド601から拡張トランザクション・コードフィールド609まで)のエラー検出に用いられる。
次の可変長のフィールドが、データフィールド611であり、後述するCTS(Command/Transaction Set)にて用いられるコマンドフレームおよびレスポンスフレームが詰められる。上記データフィールド611を「ペイロード」と称する。本実施形態では、上記データフィールド611にてクアッドレットの倍数に満たないビットには、“0”の値が詰められるようになっている。つまり、上記データ長フィールド608に格納されるデータ長がバイト(8ビット)単位で示されるとき、当該データ長フィールド608の値が“4”の倍数でない場合には、上記データフィールドは、クアッドレットを満たすまで“0016”の値のデータによって埋められる。
最後の32ビットのフィールドが、データCRCフィールド612であり、上述したヘッダCRCフィールド610と同様に、上記データフィールド611のエラー検出に用いられる。
FCPにおいて、データブロックの書き込みリクエスト(“Write request for data block packet”)のペイロードであるデータフィールド611は、“FCPフレーム”と呼ばれ、コマンドフレームは、ターゲット上のコマンドレジスタに書き込まれるとともに、レスポンスフレームは、コントローラ上のレスポンスレジスタに書き込まれる。ここで、コマンドレジスタとレスポンスレジスタとは切り離されており、これらのレジスタのデスティネーションオフセットアドレスは、図7に示すようにFCPで規定されている。
本実施形態においては、デスティネーションオフセットアドレスとして、“FFFF F000 0B0016”、および“FFFF F000 0D0016”を含むライトトランザクション(Write transaction)のみが許されている。
CTSは、コマンドセット、コマンドフィールドとレスポンスフィールドとの構造、およびコマンドとレスポンスとを送出する際に用いられるトランザクションの規則を指定したFCPフレームの一つのコンポーネントである。
CTSで用いられるFCPフレームのデータ構造を図8に示す。
図8において、801はCTSフィールドである。CTSフィールド801は、4ビットのフィールドであり、CTSフィールド801の符号化の一例を図9に示す。本実施形態において、CTSフィールド801の値は、例えば“00002”を用いる。
図10は、本実施形態におけるコマンドフレームおよびレスポンスフレームのデータ構造を示す図である。
図10(a)は、コマンドフレームのデータ構造を示しており、図10(a)において、1001はコマンドタイプ(ctype)フィールド、1002はサブユニットタイプ(subunit_type)フィールド、1003はサブユニットID(subunit_ID)フィールド、1004はオペコード(opcode)である。また、図10(a)において、オペコード1004以降は、1バイト毎に(n+1)個(nは整数)のオペランド(operand[0]、operand[1]、…、operand[n])が続く。
4ビットからなるコマンドタイプフィールド1001は、コマンドのタイプを示す。
図11は、コマンドタイプフィールド1001の値とコマンドタイプとの関係の一例を示す図である。
図11に示すように、コマンドタイプフィールド1001の値が“00002”(コマンドタイプが“CONTROL”)のコマンドフレームは、コントローラが、ターゲットの制御を行うために用いる。制御内容は、後述するオペコードやオペランドによって指定される。また、コマンドタイプフィールド1001の値が“00012”(コマンドタイプが“STATUS”)のコマンドフレームは、コントローラが、ターゲットの現在の状態を問い合わせるために用いる。状態の指定は、後述するオペコードやオペランドによって行う。
また、上記コマンドタイプフィールド1001の値が“00112”(コマンドタイプが“NOTIFY”)のコマンドフレームは、コントローラが、ターゲットの状態が変化したことをターゲットから通知させるために用いる。後述するオペコードやオペランドによって状態の指定を行うことは、上述した“STATUS”コマンドと同様である。
さらに、コマンドタイプフィールド1001の値が“00102”あるいは“01002”(コマンドタイプが“SPECIFIC INQUIRY”あるいは“GENERAL INQUIRY”)のコマンドフレームは、同じオペコードを有する“CONTROL”コマンドが、ターゲットに実装されているか否かを確認するために用いる。ここで、“SPECIFIC INQUIRY”コマンドの場合には、オペコードと全てのオペランドとを指定しなければならないが、“GENERAL INQUIRY”コマンドの場合には、オペコードのみを指定する。これが、“SPECIFIC INQUIRY”コマンドと“GENERAL INQUIRY”コマンドとの相違点である。
5ビットからなるサブユニットタイプフィールド1002と、3ビットからなるサブユニットIDフィールド1003とで、コマンドフレームが送られるサブユニット(subunit)を識別する。サブユニットは、AV/C Digital Interface Command Set General Specification(March 1998, 1394 Trade Association)規格(以下、「AV/Cコマンドセット規格」と称す。)等で定義されており、AVユニット(以下、単に「ユニット」とも称す。)の中で唯一つに識別されるとともに、首尾一貫した機能のセットを提供する仮想的なエントリーである。上記ユニットも、AV/Cコマンドセット規格にて同様に、定義されている。AVユニットは、1394シリアルバスに対して接続されているノードを有する電子デバイスを示す。
上記AV/Cコマンドセット規格によれば、ユニットは、複数のサブユニットを有することができるようになっている。そこで、サブユニットタイプフィールド1002とサブユニットIDフィールド1003とは、1394インターフェースに接続されるユニット中のサブユニットを識別するためのアドレスを示すようになっている。サブユニットタイプフィールド1002の値とサブユニットのタイプとの関係の一例を図12に示す。
上記サブユニットタイプフィールド1002とサブユニットIDフィールド1003とを総合して、「サブユニットアドレス」または「AV/Cアドレス」と称す。なお、上記サブユニットタイプフィールド1002の値が“111112”で、かつサブユニットIDフィールド1003の値が“0112”の場合には、サブユニットアドレスは、ユニットを示すようになっている。
本実施形態において、プリンタ100にコマンドフレームを送信する場合には、例えば、サブユニットタイプフィールド1002に“000102”の値を、サブユニットIDフィールド1003に“0002”の値を指定する。また、本実施形態において、電子スチルカメラ200のカメラサブユニットにコマンドフレームを送信する場合には、例えば、サブユニットタイプフィールド1002に“001112”の値を、サブユニットIDフィールド1003に“0002”の値を指定する。
さらに、本実施形態において、電子スチルカメラ200のファイルシステムを形成する通信補助部202は、図12におけるカメラ・ストレージ・サブユニット(Camera Storage Subunit)として動作する。このため、当該サブユニットにコマンドフレームを送信する場合には、例えば、サブユニットタイプフィールド1002に“010112”の値を、サブユニットIDフィールド1003に“0002”の値を指定する。
オペコード1004は、制御内容や後述するレスポンスフレームによって返される状態を定義する。オペコード1004の後に続く、オペランドの数と意味付けは、上述したコマンドタイプ、サブユニットタイプ、あるいはオペコードに応じて異なる。
図10(b)は、レスポンスフレームのデータ構造を示す図である。図10(b)において、図10(a)に示したフィールドと同一の機能を有するフィールドには同一の符号を付し、重複する説明は省略する。図10(b)において、1005はレスポンス(response)フィールドであり、レスポンスのタイプを示す。
図13は、レスポンスフィールド1005の値とレスポンスタイプとの関係の一例を示す図である。
本実施形態では、ターゲットとなるサブユニットは、コマンドタイプ、サブユニットアドレス、オペコード、およびオペランドにより構成されるコントローラから送出されたコマンドフレームに対して、適切なレスポンスフレームを発生させてコントローラに返すようになっている。上記レスポンスフレームは、受信したコマンドフレームに応じたレスポンスタイプ、サブユニットアドレス、オペコード、およびオペランドにより構成される。
次に、本実施形態におけるカメラ・ストレージ・サブユニットのコマンドについて説明する。図14は、カメラ・ストレージ・サブユニットのコマンドと、カメラ・ストレージ・サブユニットのオペコード値との関係の一例を示す図である。
カメラ・ストレージ・サブユニットのコマンドは、コントローラからコマンドフレームとして発行される時、およびレスポンスフレームとしてコントローラに返される時に、共通のヘッダ領域(“common frame header”、以下、「共通フレームヘッダ」と称す。)を有する。制御コマンド(control command)(以下、単に「コマンド」とも称す。)における共通フレームヘッダのフォーマットを図15に示す。なお、図15においては、コマンドフレーム(command frame)における共通フレームヘッダのフォーマットを一例として示している。
図15において、オペコード(opcode)には、上記図14に示したオペコード値が入力される。また、レスポンスフレーム(response frame)におけるオペコードには、コマンドフレームのオペコードの値と同じ値が入力される。
第0のオペランド(operand[0])は、1バイトのサブファンクション(subfunction)フィールドであり、制御コマンドの動作モードを指定する。上記制御コマンドの動作モードとサブファンクションフィールド値との関係を図16に示す。カメラ・ストレージ・サブユニットが無効なサブファンクションフィールド値が入力されたコマンドフレームを受信した場合には、“NOT IMPLEMENTED”のレスポンス値(レスポンスフィールドの値が“10002”)を有するレスポンスフレームを返す。また、レスポンスフレームにおける第0のオペランドには、コマンドフレームの第0のオペランドの値と同じ値が入力される。
第1のオペランド(operand[1])は、1バイトのフィールドであり、固定値“FF16”が入力される。また、レスポンスフレームにおける第1のオペランドには結果コード(result code)が入力されて返される。上記結果コードの符号化の一例を図17に示す。ここで、カメラ・ストレージ・サブユニットが複数の理由により“REJECTED”レスポンスフレーム(レスポンスフィールドの値が“10102”)を返す場合には、図17に示した最も小さい値のデータが上記結果コードとして第1のオペランドに入力される。また、カメラ・ストレージ・サブユニットが“INTERIM”レスポンスフレーム(レスポンスフィールドの値が“11112”)を返す場合には、コントローラが発行した固定値と同じ“FF16”が結果コードとして入力される。
第2のオペランド(operand[2])は、物理ボリューム番号フィールドであり、物理ボリュームの指定を行う。第3のオペランド(operand[3])は、論理ボリューム番号フィールドであり、論理ボリュームの指定を行う。また、上述したようにコントローラがこれらのフィールドを用いないことを示す場合には、値“FF16”が入力される。
ここで、コマンドフレーム内の物理ボリューム番号フィールドの値または論理ボリューム番号フィールドの値が無効な場合には、カメラ・ストレージ・サブユニットは“REJECTED”レスポンスフレームあるいは“NOT IMPLEMENTED”レスポンスフレームを返す。このとき本実施形態では、例えば、以下のように動作する。
・コマンドフレームで指定された物理ボリューム番号(物理ボリューム番号フィールド値)の記録メディアが存在しない場合には、カメラ・ストレージ・サブユニットは、結果コードとして“no media”(A016)の値が第1のオペランドに入力された“REJECTED”レスポンスフレームを返す。
・コマンドフレームで指定された論理ボリューム番号(論理ボリューム番号フィールド値)が物理ボリューム内に存在しない場合には、カメラ・ストレージ・サブユニットは、結果コードとして“invalid volume number”(9116)の値が第1のオペランドに入力された“REJECTED”レスポンスフレームを返す。
・カメラ・ストレージ・サブユニット内に存在しない物理ボリューム番号がコマンドフレームにより指定された場合には、カメラ・ストレージ・サブユニットは“NOT IMPLEMENTED”レスポンスフレームを返す。
第4のオペランド(operand[4])は、メディア・カウントフィールドであり、記録メディアの交換を通知するために用いられる。コントローラが上記図14に示したメディア情報(“MEDIA INFO”)コマンドフレームおよびボリューム情報(“VOLUME INFO”)コマンドフレーム以外のコマンドフレームを発行する場合には、コントローラが保持しているメディア・カウントの値が上記メディア・カウントフィールドに設定される。また、コントローラがメディア情報コマンドフレーム、あるいはボリューム情報コマンドフレームを発行する場合には、上記メディア・カウントフィールドに“FF16”の値が設定される。
カメラ・ストレージ・サブユニットは、上記メディア情報コマンドフレーム以外のコマンドフレームに対し、自らが保持しているメディア・カウント値を第4のオペランドに設定したレスポンスフレームを返す。このとき、受信したコマンドフレームがメディア情報コマンドフレーム、ボリューム情報コマンドフレーム以外のコマンドフレームであった場合には、カメラ・ストレージ・サブユニットは、自らが保持しているメディア・カウント値とコマンドフレーム内のメディア・カウント値とを比較する。その結果、メディア・カウント値が異なる場合には、カメラ・ストレージ・サブユニットは、結果コードとして“invalid generation count”(9016)の値が第1のオペランドに入力された“REJECTED”レスポンスフレームを返す。
また、通常は、コントローラがカメラ・ストレージ・サブユニットに任意の制御コマンドフレームを最初に送信する以前に、コントローラはボリューム情報コマンドフレームを発行して現在のメディア・カウント値を取得する。
図18は、ファイルリストコマンド(FILE LIST control command)フレームのフォーマットを示す図である。
ファイルリストコマンドフレームにおいて、最初の6バイトのフィールドは、上述した共通フレームヘッダである。
第5のオペランド(operand[5])は、ファイルタイプ(file_type)フィールドであり、取得するディレクトリエントリのファイル型を指定する。ファイルタイプフィールド値の定義を図19に示す。ファイルタイプフィールド値が“0016”(ファイルタイプ“any”)の場合には、返されるディレクトリエントリは任意のファイルあるいはディレクトリを含む。また、ファイルタイプフィールド値が“0116”(ファイルタイプ“still image”)の場合には、返されるディレクトリエントリは静止画像ファイルのみを含む。
第6のオペランド(operand[6])の下位2ビットは、属性(attribute)フィールドであり、取得するディレクトリエントリの型を指定する。属性フィールドの定義を図20に示す。
属性フィールドの下位ビット(“bit0”)が“1”に設定されている時には、カメラ・ストレージ・サブユニットはサブディレクトリを含んだディレクトリエントリを返す。一方、属性フィールドの下位ビットが“0”にクリアされている時には、カメラ・ストレージ・サブユニットはサブディレクトリを含んだディレクトリエントリを返さない。
また、属性フィールドの上位ビット(“bit1”)が“1”に設定されている時には、カメラ・ストレージ・サブユニットはファイルを含んだディレクトリエントリを返す。一方、属性フィールドの上位ビットが“0”にクリアされている時には、カメラ・ストレージ・サブユニットはファイルを含んだディレクトリエントリを返さない。
さらに、属性フィールドの双方のビットがともに“1”に設定されている時には、カメラ・ストレージ・サブユニットはファイルとサブディレクトリとを含んだディレクトリエントリを返す。
第7および第8のオペランド(operand[7]およびoperand[8])は、開始番号(start_number)フィールドを構成し、開始番号フィールドは、取得するディレクトリエントリの開始位置を指定する。開始番号フィールド値は、“0”から始まり、開始番号フィールド値により後述するページングパラメータを指定する。
第9のオペランド(operand[9])の最上位ビット(MSB)は、エンド・オブ・リスト(“eol”:end of list)ビットである。レスポンスフレーム内のエンド・オブ・リストビットは、レスポンスフレーム内の最後のディレクトリエントリが、コマンドフレームで指定されたディレクトリの中の最後のディレクトリエントリであるか否かを示す。
具体的には、レスポンスフレームのエンド・オブ・リストビットの値が“0”にクリアされている場合には、レスポンスフレーム内の最後のディレクトリエントリが、コマンドフレームで指定されたディレクトリの最後のディレクトリエントリでないことを示す。一方、レスポンスフレームのエンド・オブ・リストビットの値が“1”に設定されている場合には、レスポンスフレーム内の最後のディレクトリエントリがコマンドフレームで指定されたディレクトリの最後のディレクトリエントリであることを示す。
また、コントローラは、エンド・オブ・リストビットを“0”にクリアしてコマンドフレームを発行する。
第9のオペランドの下位5ビットは、エントリ数(number_of_entries)フィールドであり、コマンドフレームでは取得するディレクトリエントリ数を指定し、レスポンスフレームではレスポンスフレーム内に実際に含まれるディレクトリエントリ数を示す。コマンドフレーム内のエントリ数フィールド値と、その応答としてのレスポンスフレーム内のエントリ数フィールド値とは一致しないことがあり得るが、レスポンスフレーム内のエントリ数フィールド値は、それに対応するコマンドフレーム内のエントリ数フィールド値以下になることが保証されている。
上記開始番号フィールド、エンド・オブ・リストビット、およびエントリ数フィールドの値に基づいて、ページング機構が提供される。ここで、ページングは、カメラ・ストレージ・サブユニットがレスポンスフレームにより一度に返すことが可能なデータ長に制限があるため、複数のコマンド、レスポンストランザクションによりデータを授受する仕組みである。
図21は、ページング動作を示すフローチャートである。なお、図21においては、コントローラにおけるファイルリスト取得時のページング動作の一例を示している。
図21において、ステップstep1にて、本実施形態におけるページング動作が開始されると、ステップstep2にて、コントローラは、上記開始番号の値を初期化する(例えば、開始番号の値に“0”を入力する)。
次のステップstep3にて、コントローラは、上記エントリ数の値を初期化する。ここで、エントリ数の初期値は、コマンドフレームおよびレスポンスフレームの最大バイト数に応じて十分大きな値が入力される。例えば、コマンドフレームおよびレスポンスフレームの最大バイト数が256バイトの場合には、エントリ数の初期値として“128”等が入力される。
次に、コントローラは、ステップstep4にて、ファイルリストコマンドフレームを送信し、ステップstep5にて、カメラ・ストレージ・サブユニットからのレスポンスフレームを受信する。コントローラは、レスポンスフレーム内の開始番号フィールド、エンド・オブ・リストビット、およびエントリ数フィールドの値をそれぞれ解析して、後に続く動作を決定する。
まずステップstep6にて、エンド・オブ・リストビットが検査される。エンド・オブ・リストビットの値が“0”のときには、上述したようにディレクトリエントリが最後に達していないので、さらにディレクトリエントリを取得するために次のステップstep7に進む。ステップstep7では、開始番号フィールドの値と、レスポンスフレーム中のエントリ数フィールドの値とを加算して、新たな開始番号値を生成する。
次のステップstep8にて、レスポンスフレームから抽出したエントリ数フィールドの値をコマンドフレーム中のエントリ数フィールドに入力する。上述したように、レスポンスフレーム内のエントリ数フィールドの値は、それに対応するコマンドフレーム内のエントリ数フィールドの値以下となることが保証されているとともに、上記ステップstep3ではコマンドフレーム中のエントリ数フィールドの値に十分に大きな値が入力されているので、ステップstep8にてエントリ数フィールドに入力される値はレスポンスフレームにて返すことができる最大エントリ数である確率が高い。
上記ステップstep4〜step8はループを構成しており、全てのディレクトリエントリを取得するまでステップstep4〜step8が実行される。一方、ステップstep6にて、エンド・オブ・リストビットの値が“1”のときには、ディレクトリエントリが最後に達しているので、ステップstep9に進み、ディレクトリエントリ取得動作を終了する。
上述したページング動作により、コントローラは着目したディレクトリに対して効率良くディレクトリエントリを取得することができる。
図18に戻り、第10および第11のオペランド(operand[10]およびoperand[11])は、リザーブ(reserved)フィールドであり、当該フィールドにいかなる値を設定してもカメラ・ストレージ・サブユニットに無視される。コントローラは、当該フィールドに、例えば“FF16”の値を設定してコマンドフレームを送信する。
第12のオペランド(operand[12])は、リクエストパス長(request_path_length)フィールドであり、後に続くリクエストパス(request_path)フィールドのバイト長を示す。第13のオペランド(operand[13])以降は、可変長のリクエストパスフィールドであり、所望のディレクトリまたはファイルのパス名を指定する。上記リクエストパス長およびリクエストパスは、上述したファイルパス長およびファイルパスにそれぞれ相当する。
上述したファイルリストコマンドフレームに対する応答としてのレスポンスフレームにおいては、ファイルリスト(file_list)フィールドが上述したリクエストパスフィールドの領域に設定される。ファイルリストフィールドは、可変長フィールドであり、上述したディレクトリエントリが保持されている。ファイルリストフィールドには複数のディレクトリエントリを含むことが可能であり、ファイルリストフィールドに含まれるディレクトリエントリ数は、上述したレスポンスフレーム内のエントリ数フィールドにより指示される。また、図3に示したように、各ディレクトリエントリのサイズは20バイトである。
図22は、メディア情報コマンド(MEDIA INFO control command)フレームのフォーマットを示す図である。メディア情報コマンドは、カメラ・ストレージ・サブユニット内の記録メディアの情報を取得するために使用される。
メディア情報コマンドフレームにおいて、最初の6バイトのフィールドは、上述した共通フレームヘッダであり、物理ボリューム番号フィールド、論理ボリューム番号フィールド、およびメディア・カウントフィールドには固定値“FF16”をそれぞれ指定する。
図23は、メディア情報コマンドフレームに対するレスポンスフレームのフォーマットを示す図であり、最初の6バイトのフィールドは共通フレームヘッダに対する応答部分である。
第5のオペランド(operand[5])は、物理ボリューム数(number_of_physical_volume)フィールドであり、カメラ・ストレージ・サブユニット内の記録メディア数、すなわち物理ボリューム数が入力される。なお、記録メディアが着脱可能であって記録メディアが挿入されていない時にも、当該記録メディアが物理ボリューム数に加えられている。
第6のオペランド(operand[6])以降は、論理ボリューム数(number_of_logical_volume)フィールドであり、物理ボリューム毎の論理ボリューム数が入力される。論理ボリューム数フィールドの総数は、上記物理ボリューム数フィールドの値に応じて異なり、物理ボリューム数フィールドの値がn(nは自然数)の場合には、第0の論理ボリューム数フィールド(number_of_logical_volume[0])から第(n−1)のボリューム数フィールド(number_of_logical_volume[n-1])までのn個の論理ボリューム数フィールドが存在する。なお、記録メディアが着脱可能であって記録メディアが挿入されていない時には、当該記録メディアに関連付けられている論理ボリューム数フィールドには“0016”の値が入力される。
図24は、ファイル受信コマンド(RECEIVE FILE control command)フレームのフォーマットを示す図である。ファイル受信コマンドは、カメラ・ストレージ・サブユニット内の記録メディアにサブユニット・デスティネーションプラグ(subunit destination plug)から受信したファイルを記録するために使用される。
ファイル受信コマンドフレームにおいて、最初の6バイトのフィールドは、上述した共通フレームヘッダであり、物理ボリューム番号フィールドおよび論理ボリューム番号フィールドには記録される受信ファイルのボリュームを指定する。コントローラは、当該フィールドに“FF16”(“any available volume”)の値を設定して、カメラ・ストレージ・サブユニットが選択した任意の記録可能な物理ボリュームおよび論理ボリュームにファイルを記録することができる。そして、カメラ・ストレージ・サブユニットは、記録時に選択した物理ボリューム番号および論理ボリューム番号を、上記物理ボリューム番号フィールドおよび論理ボリューム番号フィールドにそれぞれ設定してレスポンスフレームを返す。
なお、コントローラがコマンドフレームの物理ボリューム番号フィールドに“FF16”の値を設定した場合には、カメラ・ストレージ・サブユニットは、コマンドフレーム内のメディア・カウントフィールドを無視するととも、選択した物理ボリュームのメディア・カウント値をメディア・カウントフィールドに設定したレスポンスフレームを返す。
第5〜第8のオペランド(operand[5]〜operand[8])の4バイトは、受信サイズ(receive_size)フィールドであり、記録するファイルのバイト数を指定する。コントローラが、記録するファイルのバイト数を予め決定できない場合には、コントローラは受信サイズフィールドに零(“00 00 00 0016”)の値を設定して、カメラ・ストレージ・サブユニットにファイルを記録させることができる。
第9のオペランド(operand[9])は、デスティネーションプラグ(destination_plug)フィールドであり、ファイルデータを入力するためのサブユニット・デスティネーションプラグを指定する。通常、コントローラは、ファイル受信コマンドフレームを発行するのに先立ち、カメラ・ストレージ・サブユニットのサブユニット・デスティネーションプラグと、ユニットプラグ(unit plug)または同じユニット内の他のサブユニットのサブユニット・ソースプラグ(subunit source plug)とのコネクションを確立する。
ここで、コントローラがデスティネーションプラグフィールドにて指定するサブユニット・デスティネーションプラグが既に使用されている場合には、カメラ・ストレージ・サブユニットは、結果コードとして“busy”(“8016”)の値が第1のオペランドに入力された“REJECTED”レスポンスフレームを返す。
第10のオペランド(operand[10])は、受信モード(receive_mode)フィールドであり、第13のオペランド(operand[13])以降のファイルパスフィールドで指定されたファイルパス名と同じファイルパス名のファイルが既に存在するときの動作を指定する。受信モードフィールドの符号化の一例を図25に示す。
第11のオペランド(operand[11])は、ファイルタイプフィールドであり、受信されるファイルの型を指定する。ファイルタイプフィールドの符号化の一例を図26に示す。
ファイル受信コマンドフレームに対する応答としてのレスポンスフレームでは、例えば、上記受信サイズフィールド、デスティネーションプラグフィールド、受信モードフィールド、およびファイルタイプフィールドには、コマンドフレームと同じ値が入力されて返される。
第12のオペランド(operand[12])は、ファイルパス長フィールド、第13のオペランド以降は可変長のファイルパスフィールドであり、上述したファイルパス長およびファイルパスに相当する。上述したように記録された結果のファイルパス名は、上記ファイルパスフィールドに設定され、レスポンスフレームによりコントローラに返される。なお、ファイル受信コマンドフレームに対して“REJECTED”レスポンスフレームが返されるときは、ファイルパスフィールドには零の値が設定される。
図27は、ファイル送信コマンド(SEND FILE control command)フレームのフォーマットを示す図である。ファイル送信コマンドフレームは、ファイルデータの送信トリガとして使用される。
ファイル送信コマンドフレームにおいて、最初の6バイトの領域は、上述した共通フレームヘッダである。また、第5〜第8のオペランド(operand[5]〜operand[8])には固定値“FF16”が設定される。
第9のオペランド(operand[9])は、ソースプラグ(source_plug)フィールドであり、ファイルデータの送信に使用されるサブユニット・ソースプラグを指定する。通常、コントローラは、ファイル送信コマンドフレームを発行するのに先立ち、カメラ・ストレージ・サブユニットのサブユニット・ソースプラグと、ユニットプラグまたは同じユニット内の他のサブユニットのサブユニット・デスティネーションプラグとのコネクションを確立する。
ここで、カメラ・ストレージ・サブユニットがファイル送信コマンドフレームを受信したとき、当該コマンドフレームのソースプラグフィールドで指定されたサブユニット・ソースプラグが既に使用されている場合には、カメラ・ストレージ・サブユニットは、結果コードとして“busy”(“8016”)の値が第1のオペランドに入力された“REJECTED”レスポンスフレームを返す。
また、ファイル送信コマンドで指定されたサブユニット・ソースプラグに接続されているユニットプラグまたは同じユニット内の他のサブユニットのサブユニット・デスティネーションプラグが指定されたファイルを受信できない場合には、カメラ・ストレージ・サブユニットは、結果コードとして“invalid file type”(“A616”)の値が第1のオペランドに入力された“REJECTED”レスポンスフレームを返す。
上述したファイル受信コマンドフレームと同様に、第12のオペランド(operand[12])はファイルパス長フィールド、第13のオペランド(operand[13])以降は可変長のファイルパスフィールドであり、上述したファイルパス長およびファイルパスに相当する。上述したように記録された結果のファイルパス名は、上記ファイルパスフィールドに設定され、レスポンスフレームによりコントローラに返される。なお、ファイル送信コマンドフレームに対して“REJECTED"レスポンスフレームが返されるときは、ファイルパスフィールドには零の値が設定される。
図28は、ボリューム情報コマンド(VOLUME INFO control command)フレームのフォーマットを示す図であり、図29は、ボリューム情報コマンドフレームに対するレスポンスフレームのフォーマットを示す図である。ボリューム情報コマンドは、指定されたボリュームの情報を取得するために使用される。
上記図28に示したボリューム情報コマンドフレームにおいて、最初の6バイトのフィールドは、上述した共通フレームヘッダであり、物理ボリューム番号フィールドおよび論理ボリューム番号フィールドには、情報を取得する物理ボリュームおよび論理ボリュームをそれぞれ指定する。
第4のオペランド(operand[4])は、ボリューム情報コマンドフレームにおいては固定値“FF16”が設定され、レスポンスフレームにおいてはメディア・カウント値が設定される。
第5のオペランド(operand[5])は、ボリューム情報コマンドフレームにおいては固定値“FF16”が設定され、レスポンスフレームにおいては属性(attributes)フィールドである。属性フィールドは、指定されたボリュームの状態を示す属性がビットアサインされる。
属性フィールドのフォーマットを図30に示す。図30において、最上位ビットから6ビットのフィールドは、リザーブビットであり、当該領域に指定した値はカメラ・ストレージ・サブユニットにて無視される。最下位ビットから2ビット目のビット(“bit1”)は、書き込み禁止指示(write_protected)ビットであり、指定されたボリュームが書き込み禁止の場合には“1”に設定される。最下位ビット(“bit0”)は、読み出し専用指示(read_only_media)ビットであり、指定されたボリュームが読み出し専用の場合には、“1”に設定される。
ボリューム情報コマンドフレームにおいて、第9〜第16のオペランド(operand[9]〜operand[16])および第17〜第24のオペランド(operand[17]〜operand[24])には、固定値“FF FF FF FF FF FF FF FF16”が設定される。
ボリューム情報コマンドフレームに対するレスポンスフレームにおいて、第9〜第16のオペランド(operand[9]〜operand[16])は、最大容量(maximum_capacity)フィールドであり、指定されたボリュームの最大容量がバイト単位で設定される。また、第17〜第24のオペランド(operand[17]〜operand[24])は、空き容量(free_space)フィールドであり、指定されたボリュームの現在の空き容量がバイト単位で設定される。
<ファイル転送>
次に、コントローラとカメラ・ストレージ・サブユニットとの間での標準的な通信手順について説明する。図31は、コントローラとカメラ・ストレージ・サブユニットとの間でのコマンドの発行手順の概要を示す図である。
まず、コントローラは、カメラ・ストレージ・サブユニットに対してメディア情報コマンドを発行して、カメラ・ストレージ・サブユニットが有する記録メディアのボリューム数の情報を取得する(S11)。コントローラは、メディア情報コマンドによりボリューム数の情報を取得した後、1つのボリュームを選択する。
コントローラは、選択したボリュームにアクセスする前にボリューム情報コマンドを発行して、カメラ・ストレージ・サブユニットから現在のメディア・カウント値を取得する(S12)。当該ボリューム情報コマンドにより取得した値は、コントローラが選択したボリュームにアクセスするための各コマンドのコマンドフレームを発行する際に、メディア・カウントフィールドに設定される。
その後、コントローラは、ファイルリストコマンドを発行して、カメラ・ストレージ・サブユニットからファイルリストを取得する(S13)。コントローラは、ファイルリストを取得した後、ファイル送信コマンドあるいはファイル受信コマンドを発行し、コントローラとカメラ・ストレージ・サブユニットとの間でのファイル転送を開始させる(S14)。
次に、カメラ・ストレージ・サブユニットからのファイル(データ)転送手順について説明する。上記図31に示した通信手順により、ファイルリストを取得したコントローラは、ファイル送信コマンドを発行してデータ送信要求を行う。
このとき、コントローラは、ファイル送信コマンドの発行に先立って、カメラ・ストレージ・サブユニットのサブユニット・ソースプラグと、送信先(受信側)の装置であるデスティネーションとの間に、例えば上述したアシンクロナスコネクション(Asynchronous Connection)により、コネクションを確立する。なお、上記デスティネーションはコントローラであっても良いし、他の装置であっても良い。
図32は、カメラ・ストレージ・サブユニットからファイルを転送させる際のコマンドフローの一例を示す図であり、縦方向(T軸方向)は概念的な時間経過を示している。
図32において、例えばコントローラとカメラ・ストレージ・サブユニットとの間に、アシンクロナスコネクションによりコネクションを確立する(S21)。次に、コントローラは、カメラ・ストレージ・サブユニットに対してファイル送信コマンドを発行して(S22)、カメラ・ストレージ・サブユニットからのデータの転送(S23)を開始させる。本実施形態では、コントローラは、図32に示したように上記コネクションが確立されている間において、複数のファイル送信コマンドを発行して、複数のトランザクションを発生させることが可能である(S24、S25)。コントローラは、データ転送が終了すると上記ステップS21にて確立したコネクションを切断する(S26)。
次に、カメラ・ストレージ・サブユニットにファイルを受信させる手順について説明する。図33は、カメラ・ストレージ・サブユニットにファイルを受信させる際のコマンドフローの一例を示す図であり、上記図32と同様に縦方向(T軸方向)は概念的な時間経過を示している。上記図31に示した通信手順により、ボリュームに関する情報を取得したコントローラは、ファイル受信コマンドを発行してファイルデータの受信要求を行う。
このとき、コントローラは、ファイル受信コマンドの発行に先立って、カメラ・ストレージ・サブユニットのサブユニット・デスティネーションプラグと、送信元(送信側)の装置であるソースとの間にアシンクロナスコネクションによりコネクションを確立する(S31)。なお、上記ソースは、コントローラであっても良いし、他の装置であっても良く、例えば図33においては、コントローラをソースとしてコネクションを確立している。
次に、コントローラは、カメラ・ストレージ・サブユニットに対してファイル受信コマンドを発行して(S32)、カメラ・ストレージ・サブユニットにファイルデータの受信(S33)を開始させる。図33に示したように上記コネクションが確立している間において、コントローラは、複数のファイル受信コマンドを発行して、複数のファイルを受信させることが可能である(S34、S35)。コントローラは、ファイルデータ転送が終了すると上記ステップS31にて確立したコネクションを切断する(S36)。
上述したファイル転送の手順において、コネクションは確立されているが、コントローラからファイル転送のトリガになるコマンド、例えばファイル送信コマンドあるいはファイル受信コマンドが発行されていないにもかかわらずファイルデータが送受信された場合には、カメラ・ストレージ・サブユニットは当該ファイルデータを破棄する。
以上説明したように、データの送信側であるプロデューサノード(以下、「プロデューサ」と称す。)と、データの受信側であるコンシューマノード(以下、「コンシューマ」と称す。)とのコネクションを管理するコントローラノード(以下、「コントローラ」と称す。)が、プロデューサとコンシューマとを制御する場合には、コントローラは次の手順に従ってコマンドを発行する。
1)コントローラは、コネクションを確立するコマンドをコンシューマおよびプロデューサに発行する。
2)コントローラは、トリガコマンド(例えば、ファイル受信コマンド)をコンシューマに発行する。
3)コントローラは、コンシューマからのレスポンスを受け取った後、トリガコマンド(例えば、ファイル送信コマンド)をプロデューサに発行する。
<アシンクロナスコネクション(Asynchronous Connection)>
上述したように本実施形態におけるファイルシステムでは、アシンクロナスコネクションにより、ファイルデータの転送およびファイル属性データの転送が行われる。アシンクロナスコネクションによりデータを送受信する通信システムは、例えば図34に示すように、データの送信側であるプロデューサ3401、データの受信側であるコンシューマ3402、およびプロデューサとコンシューマとのコネクションを管理するコントローラ3403から構成される。なお、図34においては、プロデューサ3401、コンシューマ3402、およびコントローラ3403をそれぞれ異なるノードとして示しているが、コントローラ3403を設けずに、プロデューサ3401がコントローラ3403の機能を有するようにしても良いし、コンシューマ3402がコントローラ3403の機能を有するようにしても良い。
プロデューサ3401およびコンシューマ3402は、データの送受信を行うためのアシンクロナスプラグレジスタ(Asynchronous Plug Register)をそれぞれ所有する。上記アシンクロナスプラグレジスタは、図35に示すように構成されており、1つのアシンクロナス入力ポートレジスタ(iAPR:input Asynchronous Port Register)と、複数のアシンクロナス出力ポートレジスタ(oAPR:output Asynchronous Port Register)(図35に示した例においては、第1〜第14のアシンクロナス出力ポートレジスタ(oAPR[1]〜oAPR[14]))とで構成される。また、1つのアシンクロナス入力ポートレジスタおよび複数のアシンクロナス出力ポートレジスタは、IEEE1394インターフェースのアドレス空間にそれぞれ割り当てられる。
ここで、プロデューサとしての機能のみを有するノードは、アシンクロナス出力ポートレジスタだけを備え、コンシューマとしての機能のみを有するノードは、アシンクロナス入力ポートレジスタとデータ受信用のセグメントバッファ(segment buffer)とを備える。また、プロデューサおよびコンシューマの双方の機能を有するノードは、アシンクロナス入力ポートレジスタとアシンクロナス出力ポートレジスタとセグメントバッファとを備える。
ここで、プロデューサは、1つのコネクションで複数のコンシューマに対してデータを送信することができる場合には、そのデータ送信能力に応じて複数のアシンクロナス出力ポートレジスタを備え、1つのコンシューマにのみデータを送信することができない場合には、1つのアシンクロナス出力ポートレジスタだけを備えていれば良い。
また、複数のコネクションを同時に形成することができるノードは、上記図35に示したアシンクロナスプラグレジスタを複数備える。このようにノードによっては複数のアシンクロナスプラグを有する場合もあり、各アシンクロナスプラグはプラグID(plug_id)により識別される。
例えば、プロデューサ3401がライトトランザクションによりコンシューマ3402が備えるセグメントバッファに画像データ等を書き込むとする。このとき、書き込まれるデータをフレームと呼び、フレームのサイズがセグメントバッファのサイズより大きい場合には、複数回のセッションに分けて書き込みが行われる。この1回のセッションで書き込まれるデータをセグメントと呼ぶ。
コントローラ3403は、コンシューマ3402のノードID、コネクションに使用するコンシューマ3402のプラグアドレス、プラグ番号等の情報をプロデューサ3401に対して送信する。同様に、コントローラ3403は、プロデューサ3401のノードID、コネクションに使用するプロデューサ3401のプラグアドレス、プラグ番号等の情報をコンシューマ3402に対して送信する。コントローラ3403からの情報を受信したプロデューサ3401およびコンシューマ3402は、受信した情報に基づいてデータの通信を開始し、プロデューサ3401からコンシューマ3402にデータが送信される。
上述したコントローラ3403からプロデューサ3401あるいはコンシューマ3402に対しての通信、およびプロデューサ3401とコンシューマ3402との間でのデータの通信は、アシンクロナストランザクションを用いて行われる。このアシンクロナストランザクションに用いられるパケットフォーマットは、上記図6に示したデータ構造と同様である。
上記アシンクロナスコネクションに用いられるコマンドフレームのフォーマットは、例えば図36に示すように構成されている。なお、コントローラ3403からプロデューサ3401あるいはコンシューマ3402に送信されるコマンドフレームと、プロデューサ3401あるいはコンシューマ3402からコントローラ3403に送信されるレスポンスフレームとは、同じフォーマットである。
オペコード(opcode)3601は、コマンドの種類を示しており、アシンクロナスコネクションのコマンドフレームであることを示すコード値“2616”が設定される。
サブファンクションフィールド3602は、当該コマンドによりプロデューサやコンシューマが行う動作(プラグリソースの確保、コネクションの設定/解除等)を指定する。サブファンクションフィールドの符号化について図37に示す。
なお、以下の説明では、アシンクロナスコネクションコマンド(ASYNCHRONOUS CONNECTION control command)フレームは、サブファンクションフィールドに基づいて呼称する。例えば、アシンクロナスコネクションコマンドフレームのサブファンクションフィールドの値が“E116”(EX_ALLOCATE)の場合には、“EX_ALLOCATE”コマンドフレームと称する。
ステータス(status)フィールド3603は、コマンド実行結果の状態を表すフィールドであり、レスポンスフレームにおいてデータが設定され、コントローラに状態が通知される。
プラグID(plug_id)フィールド3604は、コネクションに使用するプラグ番号を指定する。プラグIDフィールドの符号化の一例を図38に示す。図38において、値“BF16”は特別であり、コントローラが、カメラ・ストレージ・サブユニットのようなアシンクロナスコネクションをサポートしたデバイスに対して、現在使用していないプラグIDを用いてコネクションを確立するように指示するために使用される。
プラグオフセット(plug_offset)フィールド3605は、42ビットのフィールドであり、プラグの先頭アドレス(図35に示したアシンクロナス入力ポートレジスタに相当するアドレス)が設定される。
ポートID(port_id)フィールド3606は、プラグ内のどのポートが選択されているかを示す。ポートIDフィールドの符号化の一例を図39に示す。図39において、コンシューマポート(Consumer Port[0])は、図35に示したアシンクロナス入力ポートレジスタ(iAPR)に対応し、第1〜第14のプロデューサポート(Producer Port[1]〜Producer Port[14])は、図35に示した第1〜第14のアシンクロナス出力ポート(oAPR[1]〜oAPR[14])にそれぞれ対応する。また、値“0F16”は特別であり、コントローラが、カメラ・ストレージ・サブユニットのようなアシンクロナスコネクションをサポートしたデバイスに対して、現在使用していないプロデューサポートを用いてコネクションを確立するように指示するために使用される。
したがって、コネクションに使用されるポートレジスタのオフセットアドレスは、例えば次式(1)により計算される。
(オフセットアドレス)=(plug_offset)≪6|(port_id)≪2 …(1)
ここで、上記式(1)において、“≪”は左ビットシフト演算を示し、“|”はビット毎の論理和(OR)演算を示す(以下についても同様である。)。
ポートビット(port_bits)フィールド3607は、選択されているポートの能力を示す。ポートビットフィールドの符号化の一例を図40に示す。なお、図40において“X”は、考慮しないビット(Don't Care)であることを示す。
接続ノードID(connected_node_id)フィールド3608は、コネクションを設定する相手のノード(以下、「接続ノード」と称す。)を示す。コントローラは、コンシューマに対しては接続されるプロデューサのノードIDを設定してコマンドフレームで通知し、プロデューサに対しては接続されるコンシューマのノードIDを設定してコマンドフレームで通知する。
接続プラグオフセット(connected_plug_offset)フィールド3609は、接続ノードが有するプラグのアドレスを示す。
接続ポートID(connected_port_ID)フィールド3610は、コネクションに使用する接続ノードのポート番号を示す。
したがって、接続ノードのポートレジスタのオフセットアドレスは、次式(2)により計算される。
(オフセットアドレス)
=(connected_plug_offset)≪6|(connected_port_id)≪2 …(2)
接続ポートビット(connected_port_bits)フィールド3611は、接続ノードのポートの能力を示す。
接続プラグID(connected_plug_id)フィールド3612は、コネクションに使用される接続ノードのプラグ番号を示す。
排他制御(ex:exclusive)ビット3613は、コントローラが、内部コネクションとユニットから他のユニットへの接続との双方の制御に関して、他のコントローラを排除することを指定するビットである。
具体的には、排他制御ビット3613が“1”に設定されたアシンクロナスコネクションコマンドフレームを受け入れたターゲットノード(コントローラからのコマンドフレームを受信するノード)は、その後に発行され、受信したアシンクロナスコネクションコマンドフレームを調べ、受信したアシンクロナスコネクションコマンドフレームを発行したコントローラのノードIDと、排他制御ビット3613が“1”に設定されたアシンクロナスコネクションコマンドフレームを発行したコントローラのノードIDとが一致するか否かを検出する。その結果、ノードIDが不一致の場合には、ターゲットノードは受信したコマンドフレームに対して“REJECTED”レスポンスフレームを返す。
また、排他制御ビット3613が“1”に設定されたアシンクロナスコネクションコマンドフレームは、次の場合にターゲットノードに受けつけられる。
・指定されたプラグがコンシューマのプラグの場合
・指定されたプロデューサのプラグが使用されていない場合
上述の場合には、ターゲットノードは、当該アシンクロナスコネクションコマンドフレームを発行したコントローラに対して、“ACCEPTED”レスポンスフレームを返す。
コネクションカウント(connection_count)フィールド3614は、コンシューマのポートがいくつのプロデューサポートに接続されているかを示す。
ライトインターバル(write_interval)フィールド3615は、プロデューサがコンシューマのセグメントバッファにライトトランザクションを行う際のトランザクションの最小間隔を示す。
リトライカウント(retry_count)フィールド3616は、シリアルバストランザクションに失敗した場合に必要になるリトライ(再実行)回数の値を示す。リトライカウントフィールドの値は、コンシューマからのレスポンスフレームで設定される。
サブユニットタイプ(subunit_type)フィールド3617とサブユニットID(subunit_id)フィールド3618とで、ソースまたはデスティネーションになるサブユニットを指定する。サブユニットタイプフィールド3617とサブユニットIDフィールド3618の定義は、上述したサブユニットアドレスと同様である。
サブユニットプラグ(subunit_plug)フィールド3619は、データを授受するための入出力プラグであるサブユニットプラグ番号を指定する。
次に、上述したアシンクロナスコネクションにおけるコネクション確立手順について説明する。図41は、アシンクロナスコネクションにおけるコネクション確立手順を示す図である。
図41において、4100はプロデューサ、4101はプロデューサ4100が有する第1のサブユニット、4102はソースプラグ、4103はプロデューサポート、4110はコントローラ、4120はコンシューマ、4121はコンシューマ4120が有する第2のサブユニット、4122はデスティネーションプラグ、4123はコンシューマポートである。
図41に示すように、本実施形態では、コントローラ4110は、まず、“EX_ALLOCATE”コマンド(EX_ALLOCATE control command)フレームをコンシューマ4120に対して発行する(1a)。このとき、図41に示した例では、コンシューマ4120内における第2のサブユニット4121のデスティネーションプラグ4122とコンシューマポート4123との内部コネクションが確立される。
なお、デスティネーションプラグ4122とコンシューマポート4123との内部コネクションは、最初の“EX_ALLOCATE”コマンドフレームの発行後、後述する“EX_ATTACH”コマンド(EX_ATTACH control command)フレームが発行されるまでの間、当該内部コネクションが変更されないように排他的にロックされる。
上記図37に示したように、“EX_ALLOCATE”コマンドフレームは、アシンクロナスコネクションにおけるコンシューマポートの取得要求、サブユニット・デスティネーションプラグの取得要求、およびコンシューマポートとサブユニット・デスティネーションプラグとの間の接続要求を行う。コンシューマ4120は、サブユニットプラグIDとコンシューマポートのアドレスとを、上記“EX_ALLOCATE”コマンドフレームに対する“EX_ALLOCATE”レスポンスフレームとしてコントローラ4110に返す(1b)。
次に、コントローラ4110は、“EX_ALLOCATE_ATTACH”コマンド(EX_ALLOCATE_ATTACH control command)フレームをプロデューサ4100に対して発行し(2a)、サブユニット・ソースプラグの取得要求、プロデューサポートの取得要求、およびサブユニット・ソースプラグとプロデューサポートとの接続要求を行う。
これにより、プロデューサ4100内における第1のサブユニット4101のソースプラグ4102とプロデューサポート4103との内部コネクションが確立される。また、プロデューサ4100は、上記“EX_ALLOCATE_ATTACH”コマンドフレームに対する“EX_ALLOCATE_ATTACH”レスポンスフレームをコントローラ4110に返す(2b)。
さらに、コントローラ4110は、“EX_ATTACH”コマンド(EX_ATTACH control command)フレームをコンシューマ4120に対して発行し(3a)、プロデューサポート4103とコンシューマポート4123との接続要求を行う。コンシューマ4120は、上記“EX_ATTACH”コマンドフレームに対する“EX_ATTACH”レスポンスフレームをコントローラ4110に返す(3b)。
コンシューマ4120は、プロデューサ4100内のアシンクロナス出力ポートレジスタを更新して受信準備が終了したことを示す(4)。なお、プロデューサポート4103は、コンシューマ4120がプロデューサ4100内のアシンクロナス出力ポートレジスタを更新するまでの間、インアクティブ状態(非動作状態)に留まる。
上述のようにしてコネクションの確立手順に従って動作することにより、本実施形態では、第1のサブユニット4101と第2のサブユニット4121との間でのアシンクロナスコネクションが確立される。
次に、上述したアシンクロナスコネクションにおけるコネクション切断手順について説明する。図42は、アシンクロナスコネクションにおけるコネクション切断手順を示す図である。なお、この図42において、図41に示したブロック等と同一の機能を有するブロック等には同一の符号を付し、重複する説明は省略する。
図42に示すように、まず、コントローラ4110が“EX_DETACH”コマンド(EX_DETACH control command)フレームをコンシューマ4120に対して発行し(1a’)、コネクション切断手順が開始される。当該“EX_DETACH”コマンドフレームは、コネクションカウント値を減少させる。
コンシューマ4120が、上記“EX_DETACH”コマンドフレームに対する応答として、コントローラ4110に返す“EX_DETACH”レスポンスフレーム(1b’)にて通知されるコネクションカウント値が零であるときには、コンシューマ4120が滞りなくコネクション切断手順に入ったことを示す。
一方、上記“EX_DETACH”レスポンスフレームにて通知されるコネクションカウント値が零でないときには、コンシューマ4120は、まだ少なくとも1つのコネクションを有していることを示す。コネクションカウント値が零でない場合には、コントローラ4110は、後述する“EX_DETACH_RELEASE”コマンド(EX_DETACH_RELEASE control command)フレームを発行しないようになっている。
上述のように、上記“EX_DETACH”レスポンスフレームにて通知されるコネクションカウント値が零のとき、コンシューマ4120内の第2のサブユニット4121のデスティネーションプラグ4122とコンシューマポート4123とがインアクティブ状態になったままである。このインアクティブ状態のとき、コンシューマポート4123は、プロデューサ4100からのレジスタ更新、およびセグメントバッファへの書き込みを受け付ける。
次に、コントローラ4110は、“EX_DETACH_RELEASE”コマンドフレームをプロデューサ4100に対して発行し、(2a’)、プロデューサ4100内の第1のサブユニット4101のソースプラグ4102とプロデューサポート4103とのコネクションが切断される。また、プロデューサ4100は、上記“EX_DETACH_RELEASE”コマンドフレームに対する“EX_DETACH_RELEASE”レスポンスフレームをコントローラ4110に返す(2b’)。
最後に、コントローラ4110は、“EX_RELEASE”コマンド(EX_RELEASE control command)フレームをコンシューマ4120に対して発行し(3a’)、コンシューマ4120内における内部コネクションが切断される。コンシューマ4120は、上記“EX_RELEASE”コマンドフレームに対する“EX_RELEASE”レスポンスフレームをコントローラ4110に返す(3b’)。
上述のようにしてコネクションの切断手順に従って動作することにより、本実施形態では、第1のサブユニット4101と第2のサブユニット4121との間でのアシンクロナスコネクションが切断される。
以上、説明したように本実施形態によれば、アシンクロナスコネクションによりコネクションを確立するための既存のコマンドに加え、ユニット(プロデューサやコンシューマ)内のサブユニットプラグ(サブユニット・ソースプラグ、サブユニット・デスティネーションプラグ)を指定するためのフィールドを拡張して追加する。これにより、ユニット間におけるアシンクロナスコネクション、およびユニット内でのサブユニットプラグとユニットが備えるポートとの間におけるコネクションを単一のコマンドにより、同時に接続あるいは切断することができ、簡単な接続手順で、高速なデータ転送が可能であるとともに、データ転送の確実性が保証できる通信システムを実現することができる。
また、アシンクロナスコネクションにおける排他制御ビットを設けることで、当該排他制御ビットの値に応じて、ユニット内部でのコネクションと、ユニットから他のユニットへの接続との双方の制御に関して他のコントローラを排除し、効率良く排他制御を行うことができる。
なお、上述したアシンクロナスコネクションコマンドにおいては、AV/C Commands for Management of Asynchronous Serial Bus Connection規格と同じオペコード値(“2616”)を用いているが、他の任意の値を用いても良い。
[他の実施形態]
本発明は、単一の機器からなる装置にも適用可能であるとともに、例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタなどの複数の機器から構成されるシステムにも適用可能である。
また、上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、上記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ(CPUあるいはMPU)に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体、およびそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM(プログラムROM、EPROM、EEPROMなど)等を用いることができる。
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているOS(オペレーティングシステム)あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
本発明の実施形態による通信システムの一構成例を示すブロック図である。 ファイルシステムの構成例を示す図である。 ディレクトリエントリのデータ構造の一例を示す図である。 属性フィールドの構成を示す図である。 FCPを説明するための概念図である。 アシンクロナスパケットのデータ構造を示す図である。 コマンドレジスタおよびレスポンスレジスタのデスティネーションオフセットアドレスを示す図である。 FCPフレームのデータ構造を示す図である。 CTSフィールドの符号化の一例を示す図である。 コマンドフレームおよびレスポンスフレームのデータ構造を示す図である。 コマンドタイプフィールドの値とコマンドタイプとの関係の一例を示す図である。 サブユニットタイプフィールドの値とサブユニットのタイプとの関係の一例を示す図である。 レスポンスフィールドの値とレスポンスタイプとの関係の一例を示す図である。 カメラ・ストレージ・サブユニットのコマンドと、カメラ・ストレージ・サブユニットのオペコード値との関係の一例を示す図である。 共通フレームヘッダのフォーマットを示す図である。 制御コマンドの動作モードとサブファンクションフィールド値との関係を示す図である。 結果コードの符号化の一例を示す図である。 ファイルリストコマンドフレームのフォーマットを示す図である。 ファイルタイプフィールド値の定義を示す図である。 属性フィールドの定義を示す図である。 ページング動作を示すフローチャートである。 メディア情報コマンドフレームのフォーマットを示す図である。 メディア情報コマンドフレームに対するレスポンスフレームのフォーマットを示す図である。 ファイル受信コマンドフレームのフォーマットを示す図である。 受信モードフィールドの符号化の一例を示す図である。 ファイルタイプフィールドの符号化の一例を示す図である。 ファイル送信コマンドフレームのフォーマットを示す図である。 ボリューム情報コマンドフレームのフォーマットを示す図である。 ボリューム情報コマンドフレームに対するレスポンスフレームのフォーマットを示す図である。 属性フィールドのフォーマットを示す図である。 コントローラとカメラ・ストレージ・サブユニットとの間でのコマンドの発行手順の概要を示す図である。 カメラ・ストレージ・サブユニットからファイルを転送させる際のコマンドフローの一例を示す図である。 カメラ・ストレージ・サブユニットにファイルを受信させる際のコマンドフローの一例を示す図である。 アシンクロナスコネクションによりデータを送受信する通信システムの構成例を示す図である。 アシンクロナスプラグレジスタの構成例を示す図である。 アシンクロナスコネクションに用いられるコマンドフレームのフォーマットを示す図である。 サブファンクションフィールドの符号化の一例を示す図である。 プラグIDフィールドの符号化の一例を示す図である。 ポートIDフィールドの符号化の一例を示す図である。 ポートビットフィールドの符号化の一例を示す図である。 アシンクロナスコネクションにおけるコネクション確立手順を示す図である。 アシンクロナスコネクションにおけるコネクション切断手順を示す図である。
符号の説明
10 ケーブル
100 プリンタ
101、201 通信部
102、202 通信補助部
103、203 画像処理部
104、204 着脱可能記録部
105、205 表示部
106、206 制御部
107、207 操作部
108、208 メモリ
109 印刷出力部
110、210 コントロールバス
111、211 データバス
200 電子スチルカメラ
209 撮像部

Claims (35)

  1. シリアルデータを送受信可能なシリアルバスを介して、データを送信する送信ノードと、上記送信ノードから送信されたデータを受信する受信ノードとが接続された通信システムであって、
    任意の制御データを出力する制御手段を備え、
    上記送信ノードは、上記シリアルバスを介してデータを送信するための送信手段と、
    上記送信手段にデータを出力可能な出力手段を有するとともに、上記制御手段からの制御データにより制御可能な所定の機能を有する機能動作手段と、
    上記送信手段と上記出力手段との接続状態を制御する通信路制御手段とを備え、
    上記制御データは、単一の制御命令を用いて送信可能な上記送信手段と上記出力手段との接続状態を制御するための制御データを含むことを特徴とする通信システム。
  2. 上記制御データは、上記送信手段を識別するデータおよび上記出力手段を識別するためのデータを含むことを特徴とする請求項1に記載の通信システム。
  3. 上記制御データは、さらに上記送信手段と上記出力手段との接続状態の制御にて排他制御を行うためのデータを含むことを特徴とする請求項1または2に記載の通信システム。
  4. 上記機能動作手段は、データを記録するための記録手段であり、
    上記送信手段は、上記記録手段に記録されたデータを送信可能であることを特徴とする請求項1〜3の何れか1項に記載の通信システム。
  5. 上記記録手段は、ファイルデータおよびファイル属性データを記録することを特徴とする請求項4に記載の通信システム。
  6. シリアルデータを送受信可能なシリアルバスを介して、データを送信する送信ノードと、上記送信ノードから送信されたデータを受信する受信ノードとが接続された通信システムであって、
    任意の制御データを出力する制御手段を備え、
    上記受信ノードは、上記シリアルバスを介してデータを受信するための受信手段と、
    上記受信手段で受信したデータを入力可能な入力手段を有するとともに、上記制御手段からの制御データにより制御可能な所定の機能を有する機能動作手段と、
    上記受信手段と上記入力手段との接続状態を制御する通信路制御手段とを備え、
    上記制御データは、単一の制御命令を用いて送信可能な上記受信手段と上記入力手段との接続状態を制御するための制御データを含むことを特徴とする通信システム。
  7. 上記制御データは、上記受信手段を識別するデータおよび上記入力手段を識別するためのデータを含むことを特徴とする請求項6に記載の通信システム。
  8. 上記制御データは、さらに上記受信手段と上記入力手段との接続状態の制御にて排他制御を行うためのデータを含むことを特徴とする請求項6または7に記載の通信システム。
  9. 上記シリアルバスは、IEEE1394規格に準拠したシリアルバスであり、上記送信ノードと上記受信ノードとの間でのデータの送受信はアシンクロナス転送により行われることを特徴とする請求項1〜8の何れか1項に記載の通信システム。
  10. 任意の制御データを送信する制御ノードと、上記制御データを受信する送信ノードおよび受信ノードとがシリアルデータを送受信するためのシリアルバスを介して接続された通信システムであって、
    上記送信ノードは、上記制御データの一部により制御可能であるとともに、データを出力するための出力手段をそれぞれ備えた所定の機能を有するn個(nは自然数)の機能動作手段と、
    上記シリアルバスを介してアシンクロナス転送によりデータを送信するための送信手段とを具備し、
    上記受信ノードは、上記シリアルバスを介してアシンクロナス転送により上記データを受信するための受信手段を具備し、
    上記制御ノードは、単一のデータ送信により上記出力手段と上記送信手段との間のデータ送信路を確保するためのデータを含む上記制御データを上記送信ノードに送信することを特徴とする通信システム。
  11. 上記制御ノードは、上記出力手段と上記送信手段との間のデータ送信路の確保に関する排他制御を行うためのデータを含む上記制御データを上記送信ノードに送信することを特徴とする請求項10に記載の通信システム。
  12. 任意の制御データを送信する制御ノードと、上記制御データを受信する送信ノードおよび受信ノードとがシリアルデータを送受信するためのシリアルバスを介して接続された通信システムであって、
    上記送信ノードは、上記シリアルバスを介してアシンクロナス転送によりデータを送信するための送信手段を具備し、
    上記受信ノードは、上記制御データの一部により制御可能であるとともに、データを入力するための入力手段をそれぞれ備えた所定の機能を有するm個(mは自然数)の機能動作手段と、
    上記シリアルバスを介してアシンクロナス転送により上記データを受信するための受信手段とを具備し、
    上記制御ノードは、単一のデータ送信により上記入力手段と上記受信手段との間のデータ受信路を確保するためのデータを含む上記制御データを上記受信ノードに送信することを特徴とする通信システム。
  13. 上記制御ノードは、上記入力手段と上記受信手段との間のデータ受信路の確保に関する排他制御を行うためのデータを含む上記制御データを上記受信ノードに送信することを特徴とする請求項12に記載の通信システム。
  14. 任意の制御データを送信する制御ノードと、上記制御データを受信する送信ノードおよび受信ノードとがシリアルデータを送受信するためのシリアルバスを介して接続された通信システムであって、
    上記送信ノードは、データを記録するための記録手段と、
    上記記録手段に記録されているデータを上記シリアルバスを介してアシンクロナス転送により送信するための送信手段とを具備し、
    上記受信ノードは、上記送信ノードから送信されたデータを受信するための受信手段を具備し、
    上記制御データは、単一のデータ送信により上記記録手段と上記送信手段との論理的な接続を行うための制御データを含むことを特徴とする通信システム。
  15. 上記記録手段は、ファイルデータおよびファイル属性データを記録することを特徴とする請求項14に記載の通信システム。
  16. 上記制御データは、上記記録手段と上記送信手段と上記受信ノードとの接続制御にて排他制御を行うための制御データを含むことを特徴とする請求項14または15に記載の通信システム。
  17. 任意の制御データを送信する制御ノードと、上記制御データを受信する送信ノードおよび受信ノードとがシリアルデータを送受信するためのシリアルバスを介して接続された通信システムであって、
    上記送信ノードは、ファイルシステムを具備するとともに、当該ファイルシステムを上記シリアルバスを介してアシンクロナス転送により上記受信ノードに提供し、
    上記制御データは、単一のデータ送信により上記ファイルシステムとの論理的な接続を行うための制御データを含むことを特徴とする通信システム。
  18. 上記制御データは、上記ファイルシステムと上記受信ノードとの接続制御にて排他制御を行うための制御データを含むことを特徴とする請求項17に記載の通信システム。
  19. 上記制御ノードと上記受信ノードとが、同一のノードであることを特徴とする請求項10〜18の何れか1項に記載の通信システム。
  20. シリアルデータを送受信可能なシリアルバスを介して、データを受信する受信ノードに接続された端末装置であって、
    上記シリアルバスを介してデータを送信するための送信手段と、
    上記送信手段にデータを出力可能な出力手段を有するとともに、制御データに基づいて制御可能な所定の機能を有する機能動作手段と、
    上記送信手段と上記出力手段との接続状態を、単一の制御命令を用いて送信された制御データに基づいて制御可能な通信路制御手段とを備えることを特徴とする端末装置。
  21. 上記単一の制御命令を用いて送信される制御データは、上記送信手段と上記出力手段との接続状態の制御にて排他制御を行うためのデータを含むことを特徴とする請求項20に記載の端末装置。
  22. シリアルデータを送受信可能なシリアルバスを介して、データを送信する送信ノードに接続された端末装置であって、
    上記シリアルバスを介してデータを受信するための受信手段と、
    上記受信手段で受信したデータを入力可能な入力手段を有するとともに、制御データに基づいて制御可能な所定の機能を有する機能動作手段と、
    上記受信手段と上記入力手段との接続状態を、単一の制御命令を用いて送信された制御データに基づいて制御可能な通信路制御手段とを備えることを特徴とする端末装置。
  23. 上記単一の制御命令を用いて送信される制御データは、上記受信手段と上記入力手段との接続状態の制御にて排他制御を行うためのデータを含むことを特徴とする請求項22に記載の端末装置。
  24. シリアルデータを送受信可能なシリアルバスを介して、データを送信する送信ノードと、上記送信ノードから送信されたデータを受信する受信ノードとが接続された通信システムの制御方法であって、
    上記送信ノードが備える、所定の機能を有する機能動作手段からデータを出力するための出力手段と、上記シリアルバスを介してデータを外部に送信するための送信手段との接続状態を、単一の制御命令を用いて送信された制御データに基づいて制御することを特徴とする通信システムの制御方法。
  25. 上記送信手段と上記出力手段との接続状態の制御にて、上記単一の制御命令を用いて送信された制御データに基づき排他制御を行うことを特徴とする請求項24に記載の通信システムの制御方法。
  26. シリアルデータを送受信可能なシリアルバスを介して、データを送信する送信ノードと、上記送信ノードから送信されたデータを受信する受信ノードとが接続された通信システムの制御方法であって、
    上記受信ノードが備える、所定の機能を有する機能動作手段にデータを入力するための入力手段と、上記シリアルバスを介してデータを外部から受信するための受信手段との接続状態を、単一の制御命令を用いて送信された制御データに基づいて制御することを特徴とする通信システムの制御方法。
  27. 上記受信手段と上記入力手段との接続状態の制御にて、上記単一の制御命令を用いて送信された制御データに基づき排他制御を行うことを特徴とする請求項26に記載の通信システムの制御方法。
  28. シリアルデータを送受信可能なシリアルバスを介してデータを受信する受信ノードに接続された送信ノードが備える、所定の機能を有する機能動作手段からデータを出力するための出力手段と、上記シリアルバスを介してデータを外部に送信するための送信手段との接続状態の制御を、単一の制御命令を用いて送信された制御データに基づいてコンピュータに実行させるためのプログラム。
  29. 上記単一の制御命令を用いて送信された制御データに基づいて、さらに上記送信手段と上記出力手段との接続状態の排他制御をコンピュータに実行させるための請求項28に記載のプログラム。
  30. シリアルデータを送受信可能なシリアルバスを介してデータを送信する送信ノードに接続された受信ノードが備える、所定の機能を有する機能動作手段にデータを入力するための入力手段と、上記シリアルバスを介してデータを外部から受信するための受信手段との接続状態の制御を、単一の制御命令を用いて送信された制御データに基づいてコンピュータに実行させるためのプログラム。
  31. 上記単一の制御命令を用いて送信された制御データに基づいて、さらに上記受信手段と上記入力手段との接続状態の排他制御をコンピュータに実行させるための請求項30に記載のプログラム。
  32. シリアルデータを送受信可能なシリアルバスを介してデータを受信する受信ノードに接続された送信ノードが備える、所定の機能を有する機能動作手段からデータを出力するための出力手段と、上記シリアルバスを介してデータを外部に送信するための送信手段との接続状態の制御を、単一の制御命令を用いて送信された制御データに基づいてコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
  33. 上記単一の制御命令を用いて送信された制御データに基づいて、さらに上記送信手段と上記出力手段との接続状態の排他制御をコンピュータに実行させるためのプログラムを記録したことを特徴とする請求項32に記載のコンピュータ読み取り可能な記録媒体。
  34. シリアルデータを送受信可能なシリアルバスを介してデータを送信する送信ノードに接続された受信ノードが備える、所定の機能を有する機能動作手段にデータを入力するための入力手段と、上記シリアルバスを介してデータを外部から受信するための受信手段との接続状態の制御を、単一の制御命令を用いて送信された制御データに基づいてコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
  35. 上記単一の制御命令を用いて送信された制御データに基づいて、さらに上記受信手段と上記入力手段との接続状態の排他制御をコンピュータに実行させるためのプログラムを記録したことを特徴とする請求項34に記載のコンピュータ読み取り可能な記録媒体。
JP2003354142A 2003-10-14 2003-10-14 通信システム、端末装置、通信システムの制御方法、記録媒体およびプログラム Pending JP2005123739A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003354142A JP2005123739A (ja) 2003-10-14 2003-10-14 通信システム、端末装置、通信システムの制御方法、記録媒体およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003354142A JP2005123739A (ja) 2003-10-14 2003-10-14 通信システム、端末装置、通信システムの制御方法、記録媒体およびプログラム

Publications (2)

Publication Number Publication Date
JP2005123739A true JP2005123739A (ja) 2005-05-12
JP2005123739A5 JP2005123739A5 (ja) 2006-11-30

Family

ID=34612217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003354142A Pending JP2005123739A (ja) 2003-10-14 2003-10-14 通信システム、端末装置、通信システムの制御方法、記録媒体およびプログラム

Country Status (1)

Country Link
JP (1) JP2005123739A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009128158A1 (ja) * 2008-04-17 2009-10-22 パイオニア株式会社 制御装置、制御方法、制御プログラム及びネットワークシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009128158A1 (ja) * 2008-04-17 2009-10-22 パイオニア株式会社 制御装置、制御方法、制御プログラム及びネットワークシステム
JPWO2009128158A1 (ja) * 2008-04-17 2011-08-04 パイオニア株式会社 制御装置、制御方法、制御プログラム及びネットワークシステム
JP5050098B2 (ja) * 2008-04-17 2012-10-17 パイオニア株式会社 制御装置、制御方法、制御プログラム及びネットワークシステム

Similar Documents

Publication Publication Date Title
US6498598B2 (en) Imaging device system, control method for the system, imaging device, control device, control method for the imaging device, control method for the control device, and storage medium
JP2002016613A (ja) 電子機器、電子機器システムおよび通信制御方法
TW541812B (en) Electronic equipment, and method for controlling state of physical layer circuit thereof
JP4027189B2 (ja) 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体
US6963938B2 (en) Information processing apparatus and method therefor
JP2001119410A (ja) 自己識別フェーズにおける処理方法
KR100311707B1 (ko) 데이타 통신 시스템, 데이타 통신 방법, 데이타 통신 장치 및 디지탈 인터페이스
US6457079B1 (en) Communication apparatus with means for allocating alternate designation information to each function unit, and communication system with said two communication apparatuses
US7177959B2 (en) Information signal processing apparatus and method
JP2005123739A (ja) 通信システム、端末装置、通信システムの制御方法、記録媒体およびプログラム
JP3943722B2 (ja) データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体
KR20010007376A (ko) 제어장치, 통신시스템 및 제어방법
JPH10164113A (ja) データ通信システム、装置及び方法
US7167940B2 (en) Data processing method, data processing apparatus, communications device, communications method, communications protocol and program
US20020067741A1 (en) Information control method, information processing apparatus, and information control system
JP3977051B2 (ja) 通信装置及び制御方法
JP3897773B2 (ja) 通信方法及び通信装置
JP4143205B2 (ja) データ通信システム
KR100297060B1 (ko) 프로토콜 인터페이스 방법
JP2000299710A (ja) データ通信システム、データ通信装置、ファイル管理方法及び記憶媒体
JP4095384B2 (ja) 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体
KR100577147B1 (ko) 버스시스템의기기제어방법
EP1028383A2 (en) Data communication system, device, method and storage medium
JP2000049833A (ja) データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体
JP2005176266A (ja) 画像処理装置、制御装置、制御システム、画像処理装置および制御装置の制御方法、制御プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061013

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061013

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090224