(57)【特許請求の範囲】
【請求項１】
各ノードに対してノード識別子が割り当てられたバスシステムにおいて、制御ノードの制御の下にデータファイルを出力する第１のノードから、データファイルを入力する第２のノードに少なくとも１個以上のデータファイルを転送するデータ転送方法において、
上記制御ノードは、上記第１のノードに対して、第２のノードのノード識別子を含む第１の指示を送信し、
上記第２のノードに対して、第１のノードのノード識別子を含む第２の指示を送信し、
上記第１の指示は、上記第１のノードが送信すべきデータファイルの個数をあらわすフィールドを含み、該フィールドの値が１以上のときは、上記第１のノードが、該フィールドで指定された個数のデータファイルの送信を完了したときに、上記第２のノードに転送の終了を指示することでデータ転送を終了し、該フィールドの値が０のときは、データファイルの送信を継続することを特徴とするデータ転送方法。
【請求項２】
各ノードに対してノード識別子が割り当てられたバスシステムにおいて、制御ノードの制御の下に少なくとも１個以上のデータファイルを出力する第１のノードから、少なくとも１個以上のデータファイルを入力する第２のノードに少なくとも１個以上のデータファイルを転送するデータ転送方法において、
上記制御ノードは、上記第１のノードに対して、第２のノードのノード識別子を含む第１の指示を送信し、
上記第２のノードに対して、第１のノードのノード識別子を含む第２の指示を送信し、
上記第２の指示は、上記第２のノードが受信すべきデータファイルの個数をあらわすフィールドを含み、該フィールドの値が１以上のときは、上記第２のノードが、該フィールドで指定された個数のデータファイルの受信を完了したときに、上記第１のノードに転送の終了を指示することでデータ転送を終了し、該フィールドの値が０のときは、データファイルの受信を継続することを特徴とするデータ転送方法。
【請求項３】
前記第１の指示に含まれる、前記第１のノードが送信すべきデータファイルの個数をあらわすフィールドの値が１以上のときは、前記第１のノードが、前記フィールドで指定された個数のデータファイルの送信を完了し、前記第２のノードに転送の終了を指示したときに、前記制御ノードに対し転送の終了を通知することを特徴とする請求項１記載のデータ転送方法。
【請求項４】
前記第２の指示に含まれる、前記第２のノードが受信すべきデータファイルの個数をあらわすフィールドの値が１以上のときは、前記第２のノードが、前記フィールドで指定された個数のデータファイルの受信を完了し、前記第１のノードに転送の終了を指示したときに、前記制御ノードに対し転送の終了を通知することを特徴とする請求項２記載のデータ転送方法。
【請求項５】
前記制御ノードと第２のノードが同一のノードである場合は、前記第２のノードに対する第２の指示および前記第２のノードから前記制御ノードへの実行結果の通知がバス上に発行されないことを特徴とする請求項１記載のデータ転送方法。
【請求項６】
前記制御ノードと第１のノードが同一のノードである場合は、前記第１のノードに対する第１の指示および前記第１のノードから前記制御ノードへの実行結果の通知がバス上に発行されないことを特徴とする請求項２記載のデータ転送方法。
【請求項７】
各々識別子が割り当てられた複数の機器が接続されたバスシステムにおいて、データファイルを出力する第１の機器から、データファイルを入力する第２の機器に少なくとも１個以上のデータファイルを転送するデータ転送システムにおいて、
上記第１の機器に対して、第２の機器の識別子を含む第１の指示を送信し、上記第２の機器に対して、第１の機器の識別子を含む第２の指示を送信する制御用の第３の機器を有し、
上記第１の指示は、上記第１の機器が送信すべきデータファイルの個数をあらわすフィールドを含み、上記第２の指示は、上記第２の機器が受信すべきデータファイルの個数をあらわすフィールドを含み、
上記送受信すべきデータファイルの個数をあらわすフィールドの値が１以上のときは、上記第１の機器と上記第２の機器間で該フィールドで指定された個数のデータファイルの送受信を完了したときに、上記第１の機器と上記第２の機器間で相互にデータ転送の終了を指示することで、上記第３の機器の介在なしでデータ転送を終了し、該フィールドの値が０のときは、データファイルの送受信を継続することを特徴とするデータ転送システム。
【請求項８】
前記送受信すべきデータファイルの個数をあらわすフィールドの値が１以上のときは、前記第１の機器と上記第２の機器間で、上記フィールドで指定された個数のデータファイルの送受信を完了し、上記機器間で相互に転送の終了を指示したときに、上記１の機器と上記第２の機器の少なくとも一方が前記制御用の第３の機器に対し転送の終了を通知することを特徴とする請求項７記載のデータ転送システム。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、静止画像データや文書データ等のリアルタイム処理を必要としないデータを複数の機器間で転送する際に用いられるデータ転送方法およびデータ転送システムに関する。
【０００２】
（背景技術）
近年、デジタルスチルカメラやプリンタなど静止画像を取り扱う機器の市場拡大が進んでいる。これらの機器は従来パーソナルコンピュータの存在する環境で使用されていたが、近年、これらの機器をコンピュータのない環境で簡単に取り扱いたいというニーズが高まっている。
【０００３】
従来では、このような静止画像データや文書データに代表される、リアルタイム処理を必要としないデータの送受信を複数の機器間で行う場合のデータ転送方法として、制御ノードが送信ノードと受信ノードのそれぞれに対して指示を行い、データ転送の開始と終了を制御するデータ転送方式が、１３９４トレード・アソシエイション（1394 Trade Association）において、 AV/C Compatible Asynchronous Serial Bus Connections, Draft1.11, September 1, 1998および AV/C Management of Asynchronous Serial Bus Connections, September 21, 1998で提案されている。これらは、IEEE Std 1394-1995, Standard for a High Performance Serial Bus（以下、IEEE 1394-1995と記述する）をバスシステムとして用い、従来の、リアルタイム処理を必要とするデータ送受信のためのデータ転送制御方法を拡張する形で、非同期のデータ転送方法を提案したものである。各ノードに対してノード識別子が割り当てられるバスシステム上の第１のノードから第２のノードに非同期データを転送するに際し、制御ノードが第１のノードおよび第２のノードそれぞれに対して転送のための指示を行い、コマンドおよびデータの処理効率の向上を図ったデータ転送方式である。
【０００４】
図１５は、この既存のデータ転送方法を用いた静止画データ転送システムの構成を示すブロック図である。図１５において、１０１はデジタルスチルカメラなどの画像を送出する機器であるデータ送信ノード（第１のノード）、１０２はプリンタなど画像を受信する機器であるデータ受信ノード（第２のノード）、１０３はパーソナルコンピュータやセットトップボックスなどの制御ノードであり、これらの機器は同一のバスシステム（IEEE 1394-1995）１００に接続されている。
【０００５】
図１６は、この既存のデータ転送方法において、制御ノード１０３の制御のもとデータ送信ノード１０１からデータ受信ノード１０２に対してデータを転送する動作を説明するシステムブロック図である。
【０００６】
ここで、矢印１０４は制御ノード１０３がデータ受信ノード１０２に対して発行するデータ受信命令、矢印１０６は制御ノード１０３がデータ送信ノード１０１に対して発行するデータ送信命令を表している。また、矢印１０５はデータ受信ノード１０２がデータ受信命令１０４の実行結果を制御ノード１０３に報告するデータ受信命令応答、矢印１０７は、データ送信ノード１０１がデータ送信命令１０５の実行結果を制御ノード１０３に報告するデータ送信命令応答を表している。
【０００７】
データ送信ノード１０１とデータ受信ノード１０２はそれぞれ、制御ノード１０３から発行されるデータ送信命令１０６、データ受信命令１０４を受け、実行結果を制御ノード１０３に通知することにより、接続を確立しデータの転送を開始することとなる。ここで、１０８はデータ送信ノード１０１からデータ受信ノード１０２に転送されるデータを表している。
【０００８】
また、図１７は、この既存のデータ転送方法において、制御ノード１０３の制御のもとデータ送信ノード１０１からデータ受信ノード１０２に対するデータの転送を終了させる動作を説明するブロック図である。
【０００９】
ここで、矢印１０９は制御ノード１０３がデータ受信ノード１０２に対して発行するデータ受信終了命令、矢印１１１は制御ノード１０３がデータ送信ノード１０１に対して発行するデータ送信終了命令を表している。また、矢印１１０はデータ受信ノード１０２がデータ受信命令１０４の実行結果を制御ノード１０３に報告するデータ受信終了命令応答、矢印１１２はデータ送信ノード１０１がデータ送信命令１０６の実行結果を制御ノード１０３に報告するデータ送信終了命令応答を表している。ここで、矢印１０８はデータ送信ノード１０１からデータ受信ノード１０２に転送されるデータを表している。
【００１０】
データ送信ノード１０１とデータ受信ノード１０２はそれぞれ、制御ノード１０３から発行されるデータ送信終了命令１１１、データ受信終了命令１０９を受け、実行結果を制御ノード１０３に通知することにより、データの転送を終了し切断されることとなる。
【００１１】
しかしながら、上述した従来のデータ転送方法においては、データ送信ノード１０１とデータ受信ノード１０２間の接続は制御ノード１０３からの終了命令の指示がない限り切断されることはない。そのため、あらかじめ制御ノード１０３が伝送すべき静止画の枚数を決定している場合でも、制御ノード１０３は現在行われているデータ転送の終了を知りその切断を指示するためには、データ送信ノード１０１またはデータ受信ノード１０２に対して、定期的に状況を問い合わせるための命令を発行し、その命令応答を受けるという手順を踏まなければならない。そのため、転送の終了を検出するために余分な命令の発行が必要となり、また、制御ノード１０３から切断を指示するための命令が必要となるため、処理効率が悪いものとなっていた。
【００１２】
以上説明した通り、従来のデータ転送方法を用いて、静止画データの転送を行うシステムを考えると、データ転送を終了し切断するタイミングがわかりにくいという課題を有していた。
【００１３】
また、常に制御ノードの制御のもとで切断処理が実行されるため、制御ノードからの命令発行数が多く、処理効率が悪くなるという課題を有していた。
【００１４】
本発明は、これらの課題を解決するもので、データ送信ノード、あるいはデータ受信ノード主導によるデータ転送後の自動切断と制御ノード主導の従来の切断方法を両立させ、命令の発行を必要最小限に抑え、処理の効率化を図ったデータ転送システム及びその方法を提供することを第１の目的とする。
【００１５】
さらに本発明は、制御ノードがデータ転送の終了を容易に検出でき、連続して行われるデータ転送において、制御処理の簡易化を図ったデータ転送システム及びその方法を提供することを第２の目的とする。
【００１６】
（発明の開示）
本発明は上記目的を達成するために、各ノードに対してノード識別子が割り当てられたバスシステムにおいて、送信ノードから受信ノードにデータファイルを送信するに際し、制御ノードは、送信ノードに対して受信ノードの識別子と送信すべきデータファイル個数を表すフィールドの値を含む命令を発行してデータ転送が実行され、データファイル個数が１以上のときは、送信ノードが、フィールドで指定された個数のデータファイルの送信を完了した後に、受信ノードに転送の終了を指示することでデータ転送を終了し、フィールドの値が０のときは、データファイルの送信を継続し、データ送信ノードまたはデータ受信ノード主導によるデータ転送後の自動切断を採り入れたことを特徴としている。
【００１７】
これにより、データ転送の終了のタイミングがわかりやすく、バス上に発行される命令を最小限に抑えた処理効率のよいデータ転送方法を、従来のデータ転送方法と両立して得ることができる。
【００１８】
本発明の第１の発明は、各ノードに対してノード識別子が割り当てられたバスシステムにおいて、制御ノードの制御の下にデータファイルを出力する第１のノードから、データファイルを入力する第２のノードに少なくとも１個以上のデータファイルを転送するデータ転送方法において、上記制御ノードは、上記第１のノードに対して、第２のノードのノード識別子を含む第１の指示を送信し、上記第２のノードに対して、第１のノードのノード識別子を含む第２の指示を送信し、上記第１の指示は、上記第１のノードが送信すべきデータファイルの個数をあらわすフィールドを含み、該フィールドの値が１以上のときは、上記第１のノードが、該フィールドで指定された個数のデータファイルの送信を完了したときに、上記第２のノードに転送の終了を指示することでデータ転送を終了し、該フィールドの値が０のときは、データファイルの送信を継続することを特徴とする。
【００１９】
これにより、前記第１のノードから前記第２のノードに送信すべきデータファイルの個数が決まっている場合には、データ転送の終了のタイミングがわかりやすく、かつ、送受信ノード間で自動的に切断処理を行うため、バス上に発行される命令を最小限に押さえることが可能となる。即ち、コマンドフィールドに送受信するデータファイルの個数を入れることにより、データ送信ノードまたはデータ受信ノード主導の自動切断によって、命令の発行を必要最小限に抑え、処理の効率化を図っている。
【００２０】
本発明の第２の発明は、上記第１の指示が含む、上記第１のノードが送信すべきデータファイルの個数をあらわすフィールドの値が１以上のときは、前記第１のノードが、前記フィールドで指定された個数のデータファイルの送信を完了し、前記第２のノードに転送の終了を指示したときに、前記制御ノードに対し転送の終了を通知することを特徴とする。
【００２１】
これにより、制御ノードはデータ転送の終了を容易に検出でき、連続してデータ転送を行う場合、スムーズに次のデータ転送に移行していくことが可能となる。即ち、データ送信ノードまたはデータ受信ノード主導による自動切断した後に、第２のレスポンスを制御ノードに返すことによって、制御ノードがデータ転送の終了を容易に検知でき、連続して行われるデータ転送において、制御処理の簡易化が図れる。
【００２２】
また、本発明の第３の発明は、各々識別子が割り当てられた複数の機器が接続されたバスシステムにおいて、データファイルを出力する第１の機器から、データファイルを入力する第２の機器に少なくとも１個以上のデータファイルを転送するデータ転送システムにおいて、上記第１の機器に対して、第２の機器の識別子を含む第１の指示を送信し、上記第２の機器に対して、第１の機器の識別子を含む第２の指示を送信する制御用の第３の機器を有し、上記第１の指示は、上記第１の機器が送信すべきデータファイルの個数をあらわすフィールドを含み、上記第２の指示は、上記第２の機器が受信すべきデータファイルの個数をあらわすフィールドを含み、上記送受信すべきデータファイルの個数をあらわすフィールドの値が１以上のときは、上記第１の機器と上記第２の機器との間で該フィールドで指定された個数のデータファイルの送受信を完了したときに、上記第１の機器と上記第２の機器間で相互にデータ転送の終了を指示することで、上記第３の機器の介在なしでデータ転送を終了し、該フィールドの値が０のときは、データファイルの送受信を継続することを特徴とするデータ転送システムを提供する。
【００２３】
上記構成において、上記第１の機器は上記第２の機器に対して、データ転送の終了を通知し、上記第２の機器は上記第１の機器に対して、データ転送の終了を了解したことを通知することにより、上記機器間の接続は自動切断されて、各機器の送受信用アドレス空間はクリアされる。
【００２４】
上記構成において、前記送受信すべきデータファイルの個数をあらわすフィールドの値が１以上のときは、上記第１の機器と上記第２の機器間で、上記フィールドで指定された個数のデータファイルの送受信を完了し、上記機器間で相互に転送の終了を指示したときに、上記１の機器または上記第２の機器が前記制御用の第３の機器に対し転送の終了を通知する。
【００２５】
（発明を実施するための最良の形態）
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００２６】
（実施の形態１）
図１は、本発明の実施の形態１によるデータ転送方法のシステムのブロック図である。図１において、１はデジタルスチルカメラなどの画像を送出する機器であるデータ送信ノード（第１のノード）、２はプリンタなど画像を受信する機器であるデータ受信ノード（第２のノード）、３はパーソナルコンピュータやセットトップボックスなどの制御ノードであり、これらの機器は同一のバスシステム１００に接続されている。
【００２７】
本実施の形態では、バスシステムとしてIEEE 1394-1995を用い、これに接続された機器間でデータ転送を行う場合を例にとって説明する。また、各命令および命令に対する応答については、IEC-61883, Proposed standard for Digital Interface for Consumer Electronic Audio/Video Equipmentで定義されているFunction Control Protocol（以下、FCPと記述する）を用いてコマンドとレスポンスの伝送を行うものであり、AV/C Digital Interface Command Set（以下、AV/Cコマンドと記述する）の規約に従って実行される。
【００２８】
図２は、本実施例の動作を説明するシステムブロック図である。ここで、データ送信ノード１からデータ受信ノード２へ転送するデータは、３２ｋバイトの１つの静止画データとする。また、本実施例では、受信ノードからのｏＡＰＲの書き換えにおいて、受信バッファサイズは２５６Ｋの固定値としているが、他の値の受信バッファサイズとしてもよい。
【００２９】
Ｃ１は制御ノード３がデータ受信ノード２に対して発行するアロケイト（ALLOCATE）命令、Ｒ１はデータ受信ノード２がALLOCATE命令４の実行結果を制御ノード３に報告するALLOCATE命令応答、Ｃ２は制御ノード３がデータ送信ノード１に対して発行するアロケイト・アタッチ（ALLOCATE_ATTACH）命令、Ｒ２はデータ送信ノード１がALLOCATE_ATTACH命令Ｃ２の実行結果を制御ノード３に報告するALLOCATE_ATTACH命令応答、Ｃ３は制御ノード３からデータ受信ノード２に対して発行するアタッチ（ATTACH）命令、Ｒ３はデータ受信ノード２がATTACH命令Ｃ３の実行結果を制御ノード３に報告するATTACH命令応答を表している。ここで、アロケイト・アタッチ（ALLOCATE_ATTACH）はアロケイト・コネクト（ALLOCATE_CONNECT）とも表記され、アタッチ（ATTACH）はコネクト（CONNECT）と表記されることもある。
【００３０】
図３は、ALLOCATE命令Ｃ１／ALLOCATE命令応答Ｒ１、ALLOCATE_ATTACH命令Ｃ２／ALLOCATE_ATTACH命令応答Ｒ２、ATTACH命令Ｃ３／ATTACH命令応答Ｒ３のデータフォーマットを示すものである。図３において、１０はパケットヘッダ部、１１はＦＣＰフレーム部（あるいは、データブロック部）、これらのパケットヘッダ部１０、ＦＣＰフレーム部１１によりIEEE 1394-1995で定義される非同期ライトパケットを構成する。また、１３は１６ビットのパケット送出先ノード識別子、１４はパケット送出元ノード識別子であり、これらについてもIEEE 1394-1995で定義されているものである。
【００３１】
AV/Cコマンドでは、ＦＣＰフレーム部１１にノードへの命令Ｃ１、Ｃ２、Ｃ３または命令応答Ｒ１、Ｒ２、Ｒ３のデータが含まれる。ここで、各命令と各命令応答は、共通のデータ形式を有するもので、データ受信ノード２は命令を受信し、処理を実行した後で、先に受け取っていた命令の特定フィールドの値を必要に応じて書き換えた後、このパケットを命令応答として制御ノード３に転送する処理を行うものである。
【００３２】
ここで、１５はコマンドフィールド、１６はサブファンクションフィールド、１７はデータファイル数フィールド、１８は接続元ノードのレジスタアドレス（plug offset で表記される）、１９は接続先ノード識別子、２０は接続先ノードのレジスタアドレス（connected plug offset で表記される）である。非同期データを転送するための接続においては、コマンドフィールド１５に非同期データ転送のための接続を指定し、サブファンクションフィールド１６に各命令を指定する。
【００３３】
まず、制御ノード３はデータ受信ノード２に対して、図３のパケット形式を持つ、ALLOCATE命令Ｃ１を発行する。このときに発行されるパケットの各データフィールドの値を（表１）に示す。
【００３４】
【表１】
ALLOCATE命令Ｃ１
0003673473.tif 000002
【００３５】
ALLOCATE命令Ｃ１は、制御ノード３がデータ受信ノード２に対して、データ受信のためのアドレス空間を確保するように指示するものである。ALLOCATE命令応答Ｒ１は、先に受け取っていたALLOCATE命令Ｃ１のデータフィールドのうち、データ受信のためのアドレス空間が確保できた場合は、接続元ノードのレジスタアドレス１８を現在の“不明”から受信ノード２の上記確保できたアドレスに書き換えた後、また、確保出来なかった場合は、書き換えずに“不明”のままで、命令応答Ｒ１として制御ノード３に転送し、処理を行うものである。ここで、アドレス値が不明であることを示す０ｘＦＦは、０ｘで１６進数を表し、ＦＦですべて１が立つことを表す符号である。
【００３６】
受信したALLOCATE命令応答Ｒ１の、接続元ノードのレジスタアドレス１８が書き換えられていれば、即ち、データ受信ノード２において、データ受信のためのアドレス空間を確保できた場合は、制御ノード３は、データ送信ノード１に対して、図３のパケット形式を持つALLOCATE_ATTACH命令Ｃ２を発行する。このときに発行されるパケットの各データフィールドの値を（表２）に示す。ALLOCATE_ATTACH命令Ｃ２において、データファイル数フィールド１７には送信すべきデータファイル数がセットされる。
【００３７】
表２に示すようにALLOCATE_ATTACH命令Ｃ２は、制御ノード３がデータ送信ノード１に対して、データ受信ノード２で確保された受信用アドレス空間の番号をALLOCATE_ATTACH命令Ｃ２の接続先ノードのレジスタアドレス（２０）の値として通知するとともに、データ受信ノード２に送信すべきデータファイル数（＝１）を通知し、データ送信のためのアドレス空間（１８）を確保するように指示するものである。ALLOCATE_ATTACH命令応答Ｒ２は、先に受け取っていたALLOCATE_ATTACH命令Ｃ２のデータフィールドのうち、データ送信のためのアドレス空間が確保できた場合は、接続元ノードのレジスタアドレス１８を不明から具体的アドレス番号に書き換えた後、また、確保出来なかった場合は書き換えずに、命令応答Ｒ２として制御ノード３に転送し、処理を行うものである。
【００３８】
次に、制御ノード３は、受信したALLOCATE_ATTACH命令応答Ｒ２の、接続元ノードのレジスタアドレス１８が書き換えられていれば、データ受信ノード２に対して、図３のパケット形式を持つ、ATTACH命令Ｃ３を発行する。このときに発行されるパケットの各データフィールドの値を（表３）に示す。
【００３９】
ATTACH命令Ｃ３は、制御ノード３がデータ受信ノード２に対して、データ送信ノード１で確保された送信用アドレス空間を表３の接続先ノードのレジスタアドレス（２０）の値として通知し、データ転送を開始するよう指示するものである。データ受信ノード２は、先に受け取っていた表３に示すATTACH命令Ｃ３をそのまま命令応答Ｒ３として制御ノード３に転送し、データ送信ノード１とデータ受信ノード２のデータ転送が開始されることとなる。
【００４０】
ここで、図２の後半部に示すデータ送信ノード１とデータ受信ノード２のデータ転送処理において、ステップ１Ｓ，４Ｓ，６Ｓに示されるリミット・カウント（limitCount）は最新規格では“ｏＡＰＲ”と表記されるもので、データ送信ノード１において送信を制御するためのレジスタを表し、ステップ３Ｓ，５Ｓに示されるプロデューサ・カウント（ProducerCount）は最新規格では“ｉＡＰＲ”と表記されるもので、データ受信ノード２において受信を制御するためのレジスタを指す。これら各ノードのレジスタマッピング構成の関連を図4および図５に示す。
【００４１】
【表２】
ALLOCATE_ATTACH命令Ｃ２
0003673473.tif 000003
【００４２】
図4に示すように、IEEE1394-1995 では、６４ビット幅のアドレスを使用し、そのうち下位の４８ビットが機器内部で使用するアドレス空間４１を示す。非同期プラグレジスタ４２はメモリ空間に置かれ、ポートレジスタ部４３とセグメントバッファアドレス部４４を有することができる。
【００４３】
【表３】
ATTACH命令Ｃ３
0003673473.tif 000004
【００４４】
図５において、非同期プラグレジスタ４２は、１５個のポートを保持することができ、ｉＡＰＲ，ｏＡＰＲ（１），ｏＡＰＲ（２）．．．ｏＡＰＲ（１４）の順に配置される。即ち、送信ノード１は、各３２ビットからなる、少なくとも１個以上のｏＡＰＲ１からなるプラグレジスタを有し、同様に、受信ノード２は、各３２ビットからなる、１個のｉＡＰＲとバッファからなるプラグレジスタを有する。ここで、各プラグレジスタが実際に有するポートの数は機器に依存する。
【００４５】
上記リミット・カウント（limitCount）で示されるｏＡＰＲレジスタのフォーマットを図６に、プロデューサ・カウント（ProducerCount）で示されるｉＡＰＲレジスタのフォーマットを図７にビット単位で示す。これらは各々３２ビットからなるフォーマットで構成される。また、このフォーマット内のモードフィールド（３ビット）に指定され、フロー制御のために使用されるモードのうち、主要なものを（表４）に示す。
【００４６】
ただし、表４ではモード値FREEについては「全ファイルの送受信終了」(FINAL)の意味で使用しているが、最新規格では「初期状態」という位置付けと「切断を開始」といった意味で使用されるようになっている。
【００４７】
【表４】
0003673473.tif 000005
【００４８】
図２では、送信側ｏＡＰＲレジスタへの書き換えを、ｏＡＰＲ =（受信バッファサイズ）|（モード）の形式で記述する。また、受信側ｉＡＰＲレジスタへの書き換えを、ｉＡＰＲ =（送信データサイズ）|（モード）の形式で記述する。ｏＡＰＲレジスタ、ｉＡＰＲレジスタへの書き換えはIEEE 1394-1995の４バイトのコンペア・スワップ（Compare_Swap）ロックトランザクションによって行われる。
【００４９】
図２に示すデータ送信ノード１とデータ受信ノード２のデータ転送処理において、まず、データ受信ノード２はデータ送信ノード１に対して、データ受信が可能であるバッファの容量（ここでは、２５６ｋバイトとする）を通知する（ステップ１Ｓ）。データ送信ノード１はデータ受信ノード２に対して、IEEE 1394-1995非同期ライトパケットを用いて、３２ｋバイトのデータを転送する（ステップ２Ｓ）。３２ｋバイトのファイルの送信を終了すると、データ送信ノード１はデータ受信ノード２に対して、現在のデータファイルの送信が成功裏に終了したことを通知する（ステップ３Ｓ）。データ受信ノード２はデータ送信ノード１に対して、次のデータファイルの受信が可能であることを通知する（ステップ４Ｓ）。データ送信ノード１はデータ受信ノード２に対して、データ転送の終了を通知する（ステップ５Ｓ）。データ受信ノード２はデータ送信ノード１に対して、データ転送の終了を了解したことを通知する（ステップ６Ｓ）。これで、データ送信ノード１とデータ受信ノード２間の接続は切断されて、データ送信ノード１は確保した送信用アドレス空間を解放し、データ受信ノード２は確保した受信用アドレス空間を解放する。即ち、各機器の送受信用アドレス空間ｏＡＰＲ、ｉＡＰＲはクリアされる。ここで、「クリアされる」とは、「初期化」のみ行う場合と、「アドレス空間の開放」まで行う場合を含めた意味をもち、機器によって、「初期化」のみ行うのか、「アドレス空間の開放」まで行うのか、が決まる。恒久的に送受信用アドレス空間を持ち続ける機器は「初期化」のみ行うが、機器によっては、切断と同時に「アドレス空間の開放」まで行う場合がある。
【００５０】
このように、送信すべきデータファイル数が予め決定されている場合には、制御ノード３の介在なしに、データ送信ノード１とデータ受信ノード２で切断を行うことができ、転送終了と同時に切断が実行され、また、バス上に発行される命令数も軽減できる。また、制御ノード３の制御も簡単なものとなる。
【００５１】
（実施の形態２）
次に、本発明の実施の形態２について説明する。図８は本実施の形態によるデータ転送方法のシステムのブロック図である。なお、本実施の形態は、図２に示した実施の形態１と基本的には同等であるので、システムの構成要素およびその動作に関する詳細な説明は省略する。
【００５２】
図８に示した本実施の形態が、先に説明した実施の形態１と異なる点は、制御ノード３がデータ受信ノード２に含まれる構成である点である。
【００５３】
図８の構成においては、図２で図示されていた、ALLOCATE命令Ｃ１、ALLOCATE命令応答Ｒ１、ATTACH命令Ｃ３、ATTACH命令応答Ｒ３については、内部的に処理されるため、バス上にこれらのパケットデータは送信されない。
【００５４】
一方で、データ送信ノード１に対して発行されるALLOCATE_ATTACH命令Ｃ２、ALLOCATE_ATTACH命令応答Ｒ２は、図３で説明した実施の形態１の場合のパケット形式とまったく同じ形式をとる。ここで実施の形態１と本実施の形態との相違点は、ALLOCATE_ATTACH命令Ｃ２において、パケット送出元ノード識別子１４の値と接続先ノード識別子１９の値が同じ値となる点のみである。
【００５５】
この点を除けば、この本実施の形態の動作およびデータ送信ノード１の制御方法に関しては、先に説明した実施の形態１とまったく同じ処理でデータ転送処理を行うことが可能である。
【００５６】
以上、本発明の実施の形態１，２を比較することで、制御ノード３の制御の元で、様々なシステム構成に柔軟に対応可能で、かつ処理効率の良いシステムを構築することが可能となることがわかる。
【００５７】
（実施の形態３）
次に、本発明の実施の形態３について説明する。図９は、本実施の形態の動作を説明するシステムブロック図である。ここで、データ送信ノード１からデータ受信ノード２へ転送するデータは、３２ｋバイトの１つの静止画データとする。なお、本実施の形態は、図２に示した実施の形態１と共通する動作を含み、その動作に関する詳細な説明は省略する。
【００５８】
図９に示した実施の形態３が、先に説明した実施の形態１と異なる点は、図３で説明した実施の形態１の場合のパケット形式を持つALLOCATE_ATTACH命令Ｃ２、ATTACH命令Ｃ３のデータフィールドの一つであるデータファイル数フィールド１７の値およびデータ転送開始後の手順である。ALLOCATE命令Ｃ１の各データフィールドの値は実施の形態１と同様であるので説明を省略する。ALLOCATE_ATTACH命令Ｃ２の各データフィールドの値を（表５）に、ATTACH命令Ｃ３の各データフィールドの値を（表６）に示す。
【００５９】
【表５】
ALLOCATE_ATTACH命令Ｃ２
0003673473.tif 000006
【００６０】
【表６】
ATTACH命令Ｃ３
0003673473.tif 000007
【００６１】
以下、図９を用いて、本実施の形態の動作を説明する。
【００６２】
まず、データ受信ノード２はデータ送信ノード１に対して、データ受信が可能であるバッファの容量（ここでは、２５６ｋバイトとする）を通知する（ステップ１１Ｓ）。データ送信ノード１はデータ送信ノード２に対して、IEEE 1394-1995非同期ライトパケットを用いて、データを転送する（ステップ１２Ｓ）。３２ｋバイトのファイルの送信を終了すると、データ送信ノード１はデータ受信ノード２に対して、現在のデータファイルの送信が成功裡に終了したことを通知する（ステップ１３Ｓ）。データ受信ノード２はデータ送信ノード１に対して、データ転送の終了を通知する（ステップ１４Ｓ）。データ送信ノード１はデータ受信ノード２に対して、データ転送の終了を了解したことを通知する（ステップ１５Ｓ）。これで、データ送信ノード１とデータ受信ノード２間の接続は切断され、データ送信ノード１は確保した送信用アドレス空間を解放し、データ受信ノード２は確保した受信用アドレス空間を解放する。
【００６３】
このように、実施の形態１と同様、受信すべきデータファイル数が予め決定されている場合には、制御ノード３の介在なしに、データ送信ノード１とデータ受信ノード２で切断を行うため、転送終了と同時に切断が実行され、また、バス上に発行される命令数も軽減できる。また、制御ノード３の制御も簡単なものとなる。
【００６４】
（実施の形態４）
次に、本発明の実施の形態４について説明する。図１０は本実施の形態によるデータ転送方法のシステムのブロック図である。なお、本実施の形態は、図９に示した実施の形態３と基本的には同等であるので、システムの構成要素およびその動作に関する詳細な説明は省略する。
【００６５】
図１０に示した実施の形態４が、先に説明した実施の形態３と異なる点は、制御ノード３がデータ送信ノード１内に含まれる点である。
【００６６】
図１０においては、図９で図示されていた、ALLOCATE_ATTACH命令Ｃ２、ALLOCATE_ATTACH命令応答Ｒ２については、内部的に処理されるため、バス上にこれらのパケットデータは送信されない。
【００６７】
一方で、データ受信ノード２に対して発行されるALLOCATE命令Ｃ１、ALLOCATE命令応答Ｒ１、ATTACH命令Ｃ３、ATTACH命令応答Ｒ３は、図９で説明した実施の形態３の場合のパケット形式とまったく同じ形式をとる。ここで実施の形態３と本実施の形態の相違点は、ALLOCATE命令Ｃ１、ATTACH命令Ｃ３において、パケット送出元ノード識別子１４の値と接続先ノード識別子１９の値が同じ値となる点のみである。
【００６８】
この点を除けば、この本実施の形態の動作およびデータ受信ノード２の制御方法に関しては、先に説明した実施の形態３とまったく同じ処理でデータ転送処理を行うことが可能である。
【００６９】
以上、本発明の実施の形態３，４を比較することで、制御ノード３の制御の元で、様々なシステム構成に柔軟に対応可能で、かつ処理効率の良いシステムを構築することが可能となることがわかる。
【００７０】
（実施の形態５）
次に、本発明の実施の形態５について説明する。図１１は、本実施の形態のシステムのブロック図である。図１１において、１はデジタルスチルカメラなどの画像を送出する機器であるデータ送信ノード（第１のノード）、２ａおよび２ｂはプリンタなど画像を受信する機器であるデータ受信ノード（第２のノードおよび第４のノード）、３はパーソナルコンピュータやセットトップボックスなどの制御ノードであり、これらの機器は同一のバスシステム１００に接続されている。ここで、データ送信ノード１からデータ受信ノード２ａへ３２ｋバイトの１つの静止画データを転送し、データ送信ノード１からデータ受信ノード２ｂへ３２ｋバイトの１つの静止画データを転送する。
【００７１】
図１２は、本実施の形態のシステムの、データ送信ノード１からデータ受信ノード２に対してデータを転送する動作を説明するものである。なお、本実施の形態は、図２に示した実施の形態１と共通する動作を含み、その動作に関する詳細な説明は省略する。
【００７２】
図１２において、Ｃ２は、図１３のパケット形式を持つALLOCATE_ATTACH命令である。なお、図１３で示したデータフォーマットの各データフィールドは、基本的には図３で説明した実施の形態１の場合のパケット形式と共通しており、その説明を省略する。図１３において、２１は転送の状況を示すためのステータスフィールドである。即ち、送信ノードのレジスタは上記ALLOCATE_ATTACH命令Ｃ２のパケットを保持するパケット保持部（不図示）を有する。このときに発行されるパケットＣ２の各データフィールドの値を（表７）に示す。
【００７３】
【表７】
ALLOCATE_ATTACH命令Ｃ２
0003673473.tif 000008
【００７４】
ALLOCATE_ATTACH命令Ｃ２は、制御ノード３がデータ送信ノード１に対して、データ受信ノード２で確保された受信用アドレス空間と、データ受信ノード２ａに送信すべきデータファイル数（＝１）を通知し、データ送信のためのアドレス空間を確保するように指示するものである。第１のALLOCATE_ATTACH命令応答Ｒ２ａは、先に受け取っていたALLOCATE_ATTACH命令Ｃ２のデータフィールドのうち、データ送信のためのアドレス空間が確保できた場合は接続元ノードのレジスタアドレス１８を書き換えた後、また、確保出来なかった場合は書き換えずに、命令応答として制御ノード３に転送し、処理を行うものである。ここで、第１のALLOCATE_ATTACH命令応答Ｒ２ａは、ステータスフィールド２１を書き換えられることなく、そのまま制御ノード３に転送されるものである。
【００７５】
そして、実施の形態１と同様のデータ転送が行われた後、データ送信ノード１は、先に受け取っていたALLOCATE_ATTACH命令Ｃ２のデータフィールドのうち、接続元ノードのレジスタアドレス１８とステータスフィールド２１を書き換えた後、制御ノード３へ第２のALLOCATE_ATTACH命令応答Ｒ２ｂとして転送し、処理を行う。このときに発行されるパケットの各データフィールドの値を（表８）に示す。
【００７６】
【表８】
第２のALLOCATE_ATTACH命令応答Ｒ２ｂ
0003673473.tif 000009
【００７７】
制御ノード３は、データ送信ノード１から第２のALLOCATE_ATTACH命令応答Ｒ２ｂを受け取り、第１のデータ受信ノード２ａへのデータ転送が終了したことを知ると、データ送信ノード１から第２のデータ受信ノード２ｂに対するデータ転送のための動作を開始する。その動作は、受信ノードが第１のデータ受信ノード２ａから第２のデータ受信ノード２ｂに変わった以外は、前記したデータ送信ノード１からデータ受信ノード２へのデータ転送の動作と同様であるので、その動作に関する詳細な説明は省略する。
【００７８】
このように、送信すべきデータファイル数が予め決定されている場合には、データ送信ノード１とデータ受信ノード２で切断を行うため、転送終了と同時に切断が実行され、また、バス上に発行される命令数も軽減できる。また、制御ノード３にもその切断が報告されることにより、制御ノード３が次に行われるデータ転送のために実行中の転送の状況を問い合わせる必要がなく、バス上に発行される命令数が軽減し、次の転送動作への移行もスムーズである。
【００７９】
（実施の形態６）
次に、本発明の実施の形態６について説明する。本実施の形態のシステムは、図１１に示した実施の形態５と基本的には同等であるので、システムの構成要素およびその動作に関する詳細な説明は省略する。ここで、データ送信ノード１から第１のデータ受信ノード２ａへ３２ｋバイトの１つの静止画データを転送し、データ送信ノード１から第２のデータ受信ノード２ｂへ３２ｋバイトの１つの静止画データを転送する。
【００８０】
図１４は、本実施例のシステムの、データ送信ノード１からデータ受信ノード２に対してデータを転送する動作を説明するものである。なお、本実施の形態は、図９に示した実施の形態３と共通する動作を含み、その動作に関する詳細な説明は省略する。
【００８１】
図１４において、Ｃ３は、図１３で説明した実施の形態５の場合と同等のパケット形式を持つATTACH命令である。即ち、受信ノード２のレジスタはATTACH命令Ｃ３を保持するパケット保持部（不図示）を有する。このときに発行されるパケットの各データフィールドの値を（表９）に示す。
【００８２】
ATTACH命令Ｃ３は、制御ノード３がデータ受信ノード２に対して、データ送信ノード１で確保された送信用アドレス空間を通知し、データ転送を開始するよう指示するものである。データ受信ノード２は、先に受け取っていたATTACH命令Ｃ３をそのまま命令応答として制御ノード３に転送し（第１のATTACH命令応答Ｒ３ａ）、データ送信ノード１とデータ受信ノード２のデータ転送が開始されることとなる。ここで、第１のATTACH命令応答Ｒ３ａは、データフィールドを書き換えられることなく、そのまま制御ノード３に転送されるものである。
【００８３】
【表９】
ATTACH命令Ｃ３
0003673473.tif 000010
【００８４】
そして、実施の形態３と同様のデータ転送が行われた後、データ受信ノード２は、先に受け取っていたATTACH命令Ｃ３のデータフィールドのうち、ステータスフィールド２１を書き換えた後、制御ノード３へ第２のATTACH命令応答Ｒ３ｂとして転送し、処理を行う。このときに発行されるパケットの各データフィールドの値を（表１０）に示す。
【００８５】
制御ノード３は、データ受信ノード２ａから第２のATTACH命令応答Ｒ３ｂを受け取り、データ受信ノード２ａへのデータ転送が終了したことを知ると、データ送信ノード１からデータ受信ノード２ｂに対するデータ転送のための動作を開始する。その動作は、受信ノードがデータ受信ノード２ａからデータ受信ノード２ｂに変わった以外は、前記したデータ送信ノード１からデータ受信ノード２へのデータ転送の動作と同様であるので、その動作に関する詳細は説明は省略する。
【００８６】
【表１０】
第２のATTACH命令応答Ｒ３ｂ
0003673473.tif 000011
【００８７】
このように実施の形態５と同様、受信すべきデータファイル数が予め決定されている場合には、データ送信ノード１とデータ受信ノード２ａで切断を行うため、転送終了と同時に切断が実行され、また、バス上に発行される命令数も軽減できる。また、制御ノード３にもその切断が報告されることにより、制御ノード３が次に行われるデータ転送のために実行中の転送の状況を問い合わせる必要がなく、バス上に発行される命令数が軽減し、次の転送動作への移行もスムーズである。
【００８８】
なお、以上の実施の形態では、AV/Cコマンドを用いて命令および応答の伝送を行う場合を例にとって説明したが、これ以外のコマンド伝送方式を用いても良い。
【００８９】
また、ノードが接続されるバスとして、IEEE 1394-1995を用いた場合を例にとって説明したが、これに限定されるものではなく、複数の機器が同時に接続可能なバスであれば良い。
【００９０】
また、制御ノードが、データ送受信を行うノードと独立して存在する場合と、データ送信ノードに含まれる場合と、データ受信ノードに含まれる場合について説明したが、実際のシステム構成では、独立した制御ノードと、制御ノードを含むデータ送信ノードと、制御ノードを含むデータ受信ノードの３つの機器でシステムを構成することも可能である。このような場合では、ユーザがボタンを操作するなどのオペレーションを行った機器が制御ノードの機能を果たす。
【００９１】
また、データ送信ノードとデータ受信ノードは、必ずしもそれぞれがデータの送信と受信という固定された機能を持つことを表しているのではなく、制御ノードにより発行されるコマンドの種類によって、あるノードがデータ送信ノードになったり、データ受信ノードになったりする構成も可能である。たとえば２台のデジタルスチルカメラを接続し、相互にデータを交換するようなシステムが実現可能可能であることはいうまでもない。
【００９２】
（産業上の利用の可能性）
本発明のデータ転送方法を用いることにより、様々なシステム構成に柔軟に対応可能で、命令の発行数を軽減することにより処理の効率をあげ、また、制御ノードはデータ転送の終了を容易に検出でき、連続してデータ転送を行う場合、スムーズに次のデータ転送に移行していくことが可能となり、転送制御処理が簡単なシステムを実現することが可能である。
【図面の簡単な説明】
【図１】本発明の実施の形態１によるデータ転送方法を用いたシステムのブロック図である。
【図２】同データ転送方法を用いたシステムの動作を表すブロック図である。
【図３】同データ転送方法による各命令および各命令応答のデータフォーマットを示す図である。
【図４】各ノードのオフセット構成の関連を示す階層図である。
【図５】各プラグレジスタのマッピング配置を示す構成図である。
【図６】同データ転送方法によるlimitCountレジスタのフォーマットを示す図である。
【図７】同データ転送方法によるproducerCountレジスタのフォーマットを示す図である。
【図８】本発明の実施の形態２によるデータ転送方法を用いたシステムのブロック図である。
【図９】本発明の実施の形態３によるデータ転送方法を用いたシステムの動作を表すブロック図である。
【図１０】本発明の実施の形態４によるデータ転送方法を用いたシステムのブロック図である。
【図１１】本発明の実施の形態５によるデータ転送方法を用いたシステムのブロック図である。
【図１２】同データ転送方法を用いたシステムの動作を表すブロック図である。
【図１３】同データ転送方法による各命令および各命令応答のデータフォーマットを示す図である。
【図１４】本発明の実施の形態６によるデータ転送方法を用いたシステムの動作を表すブロック図である。
【図１５】従来のデータ転送方法を用いたシステムのブロック図である。
【図１６】従来のデータ転送方法による静止画データシステムの転送開始時の動作を表すブロック図である。
【図１７】従来のデータ転送方式による静止画データシステムの転送終了時の動作を表すブロック図である。
【図１】
0003673473.tif 000012
【図２】
0003673473.tif 000013
【図３】
0003673473.tif 000014
【図４】
0003673473.tif 000015
【図５】
0003673473.tif 000016
【図６】
0003673473.tif 000017
【図７】
0003673473.tif 000018
【図８】
0003673473.tif 000019
【図９】
0003673473.tif 000020
【図１０】
0003673473.tif 000021
【図１１】
0003673473.tif 000022
【図１２】
0003673473.tif 000023
【図１３】
0003673473.tif 000024
【図１４】
0003673473.tif 000025
【図１５】
0003673473.tif 000026
【図１６】
0003673473.tif 000027
【図１７】
0003673473.tif 000028