(57)【特許請求の範囲】
【請求項１】
Asynchronous Write トランザクションを用いたデータ伝送に必要なコネクションが送信側装置と受信側装置との間に設定される前に、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたか否かを識別し、前記コネクションが前記送信側装置と前記受信側装置との間に設定された後に、前記データ伝送が中断されたか否かを識別する識別手段を有し、
前記コネクションが前記送信側装置と前記受信側装置との間に設定されたことが識別された場合に、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたことを示す表示を行い、
前記データ伝送が中断されたことが識別された場合に、前記データ伝送が中断されたことを示す表示を行うことを特徴とする通信装置。
【請求項２】
前記識別手段はさらに、前記コネクションが解除されたか否かを識別し、
前記通信装置はさらに、前記コネクションが解除されたことが識別された場合に、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたことを示す表示を停止することを特徴とする請求項１に記載の通信装置。
【請求項３】
Asynchronous Write トランザクションを用いたデータ伝送に必要なコネクションが送信側装置と受信側装置との間に設定された後に、前記データ伝送が中断されたか否かを識別する識別手段を有し、
前記データ伝送が中断されたことが識別された場合に、前記データ伝送が中断されたことを示す表示を行うことを特徴とする通信装置。
【請求項４】
前記識別手段はさらに、前記データ伝送が行われているか否かを識別し、
前記通信装置はさらに、前記データ伝送が行われていることが識別された場合に、前記データ伝送が行われていることを示す表示を行うことを特徴とする請求項１から３のいずれかに記載の通信装置。
【請求項５】
前記通信装置は、前記送信側装置であることを特徴とする請求項１から４のいずれかに記載の通信装置。
【請求項６】
Asynchronous Write トランザクションを用いたデータ伝送を行う通信装置を制御する制御方法であって、
前記データ伝送に必要なコネクションが送信側装置と受信側装置との間に設定される前に、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたか否かを識別するステップと、
前記コネクションが前記送信側装置と前記受信側装置との間に設定された後に、前記データ伝送が中断されたか否かを識別するステップと、
前記コネクションが前記送信側装置と前記受信側装置との間に設定されたことが識別された場合に、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたことを示す表示を行うステップと、
前記データ伝送が中断されたことが識別された場合に、前記データ伝送が中断されたことを示す表示を行うステップとを有することを特徴とする制御方法。
【請求項７】
前記コネクションが解除されたか否かを識別するステップと、
前記コネクションが解除されたことが識別された場合に、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたことを示す表示を停止するステップとをさらに有することを特徴とする請求項６に記載の制御方法。
【請求項８】
Asynchronous Write トランザクションを用いたデータ伝送を行う通信装置を制御する制御方法であって、
前記データ伝送に必要なコネクションが送信側装置と受信側装置との間に設定された後に、前記データ伝送が中断されたか否かを識別するステップと、
前記データ伝送が中断されたことが識別された場合に、前記データ伝送が中断されたことを示す表示を行うステップとを有することを特徴とする制御方法。
【請求項９】
前記データ伝送が行われているか否かを識別するステップと、
前記データ伝送が行われていることが識別された場合に、前記データ伝送が行われていることを示す表示を行うステップとをさらに有することを特徴とする請求項６から８のいずれかに記載の制御方法。
【請求項１０】
前記通信装置は、前記送信側装置であることを特徴とする請求項６から９のいずれかに記載の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Asynchronous Write トランザクションを用いたデータ伝送を行う通信装置及びこのような通信装置を制御する制御方法に関する。
【０００２】
【従来の技術】
デジタルカメラやデジタルビデオカメラといった記録再生装置は、パーソナルコンピュータ（以下ＰＣとする）への入力手段として活用されている。デジタルカメラやデジタルビデオカメラで撮影した静止画や動画などの情報をＰＣへ取り込み、ハードディスクに記録したり、またはＰＣで編集した後にプリンタでカラープリントするといった分野の技術が進んでおり、ユーザーも増えている。
【０００３】
このように、ビデオデータやオーディオデータなどのリアルタイムでかつ大容量のデータ伝送をサポートする必要があり、高速データ伝送可能なインタフェースが必要であるという観点から開発されたインタフェースがIEEE1394−1995で規格化された高速シリアルバス（以下1394シリアルバス）である。
【０００４】
1394シリアルバスの伝送では、リアルタイム性を要する動画像データや音声データを伝送するための同期伝送モード（Isochronous伝送、以下Isoch伝送と呼ぶ）と、機器制御や機器の状態を問い合わせるための各種コマンドデータを伝送するための非同期伝送モード（Asynchronous伝送、以下Async伝送と呼ぶ）が混在して存在する。
【０００５】
図７にAsync伝送のパケットフォーマットを示す。1394シリアルバスにおけるパケットは4byte（32bits、以下クアッドレットと称する）を単位とするデータパケットである。
【０００６】
Asyncパケットにおいて、最初の16bitsはdestination＿IDフィールドであり、受信先のノードIDを示す。次の6bitsのフィールドは、トランザクション・ラベル（tl）フィールドであり、各伝送（トランザクション）固有のタグである。次の2bitsのフィールドは、リトライ（rt）コードであり、パケットがリトライを試みるかどうかを指定する。
【０００７】
次の4bitsのフィールドは、トランザクションコード（tcode）である。tcodeは、パケットのフォーマットや、実行しなければならない伝送のタイプを指定する。例えば、この値が0001（２進数）である場合、Asynchronous Write トランザクション用のパケットであることを示す。
【０００８】
次の4bitsのフィールドは、プライオリティ（pri）フィールドであり、優先順位を指定する。次の16bitsはsource＿IDフィールドであり、送信元のノードIDを示す。次の48bitsはdestination＿offsetフィールドであり、パケット受信先ノードの目的アドレスの下位48bitsがこのフィールドによって指定される。
【０００９】
次の16bitsはdata＿lengthフィールドであり、後述するデータフィールドの長さを、バイト単位で示している。次の16bitsはextended＿tcodeフィールドである。次の32bitsはheader＿CRCフィールドであり、上述したdestination＿IDフィールドからextended＿tcodeフィールドまでを、パケットヘッダと称し、ヘッダパケットのエラー検出に用いられる。
【００１０】
次のフィールドは可変長のデータフィールドであり、このデータフィールドをパケットのペイロードと称する。このフィールドにセットするペイロードのサイズがクアッドレットの倍数でない場合、クアッドレットに満たないビットには０が詰められる。
【００１１】
次の32bitsのフィールドはdata＿CRCフィールドであり、上記のheader＿CRCフィールドと同様に、データフィールドのエラー検出に用いられる。
【００１２】
現在、デジタルVTR、デジタルTV、セットトップボックス、ＭＤなどのＡＶ機器や、PC等を1394シリアルバスを用いて相互に接続し、それらの機器間で静止画データ、番組情報等を送受信するための通信規格が提案されている（以下、Asynchronous Connectionsと記す）。
【００１３】
図４に示すように、このシステムはデータの送信側であるproducerノード（以下producer）４０２、受信側であるconsumerノード（以下consumer）４０３、producerとconsumerのコネクションを管理するcontrollerノード（以下Controller）４０１によって構成される。
【００１４】
このController４０１からの制御によって、producerノード４０２からconsumerノード４０３に向けてAsync伝送が行なわれる。
【００１５】
Controllerとproducer,consumerとの通信にはAsynchronous Writeトランザクションが用いられる。この通信には前記図７に示したパケットが用いられ、ペイロードには例えば図８に示すフォーマットのデータがセットされる。図８に示すデータのフォーマットは、ＡＶ機器の制御コマンドに使用されており、FCP(Function Control Protocol)フレームと呼ばれる．ＡＶ機器には各機種毎にCTS(Command Transaction Set)と呼ばれるコマンドセットが用意されており、FCPフレームに該当データをセットして、Asynchronous Write トランザクションを用いてコマンドの送信及び、そのコマンドに対するレスポンスを送信する。コマンド送信用のFCPフレームはコマンドフレーム、レスポンス送信用のFCPフレームはレスポンスフレームと呼ばれる。コマンドフレーム、レスポンスフレームの送信先オフセットアドレスは固定アドレスが割り当てられており、コマンドフレームのオフセットアドレスはFFFF F000 0B00 (１６進)、レスポンスフレームのオフセットアドレスはFFFF F0000D00（１６進）であり、図５のdestination＿offsetフィールドにそれぞれの値がセットされる．コマンドフレームが書き込まれるアドレス領域はコマンドレジスタ、レスポンスフレームが書き込まれるアドレス領域はレスポンスレジスタと呼ばれる。
【００１６】
以上の各レジスタにAsynchronous Write トランザクションを用いて各データを書き込むことでコマンドの送受信を行い、Async Connectionを行いAsync伝送を実行する。
【００１７】
【発明が解決しようとする課題】
IEEE1394で規定されたシリアルバスでの伝送では、図２１で示されるように、複数個のノードがツリー状のリンクを構成することがある。
【００１８】
このとき例えば、ノード２からノード３へAsync伝送が行なわれる場合、これらの機器の使用者は、この伝送の状態をはじめとして、このネットワーク全体の機器の状態を把握することは極めて困難である。
【００１９】
そこで、本発明は、Asynchronous Write トランザクションを用いたデータ伝送に必要なコネクションが設定されたか否か、Asynchronous Write トランザクションを用いたデータ伝送が行われているか否か、Asynchronous Write トランザクションを用いたデータ伝送が中断されたか否か、Asynchronous Write トランザクションを用いたデータ伝送に必要なコネクションが解除されたか否かのうち、少なくともAsynchronous Write トランザクションを用いたデータ伝送が中断されたか否かを使用者に通知できるようにし、操作性をより向上させることを目的とする。
【００２０】
【課題を解決するための手段】
本発明に係る通信装置の一つは、例えば、Asynchronous Write トランザクションを用いたデータ伝送に必要なコネクションが送信側装置と受信側装置との間に設定される前に、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたか否かを識別し、前記コネクションが前記送信側装置と前記受信側装置との間に設定された後に、前記データ伝送が中断されたか否かを識別する識別手段を有し、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたことが識別された場合に、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたことを示す表示を行い、前記データ伝送が中断されたことが識別された場合に、前記データ伝送が中断されたことを示す表示を行うことを特徴とする。
本発明に係る他の通信装置は、例えば、Asynchronous Write トランザクションを用いたデータ伝送に必要なコネクションが送信側装置と受信側装置との間に設定された後に、前記データ伝送が中断されたか否かを識別する識別手段を有し、前記データ伝送が中断されたことが識別された場合に、前記データ伝送が中断されたことを示す表示を行うことを特徴とする。
本発明に係る制御方法の一つは、例えば、Asynchronous Write トランザクションを用いたデータ伝送を行う通信装置を制御する制御方法であって、前記データ伝送に必要なコネクションが送信側装置と受信側装置との間に設定される前に、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたか否かを識別するステップと、前記コネクションが前記送信側装置と前記受信側装置との間に設定された後に、前記データ伝送が中断されたか否かを識別するステップと、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたことが識別された場合に、前記コネクションが前記送信側装置と前記受信側装置との間に設定されたことを示す表示を行うステップと、前記データ伝送が中断されたことが識別された場合に、前記データ伝送が中断されたことを示す表示を行うステップとを有することを特徴とする。
本発明に係る他の制御方法は、例えば、Asynchronous Write トランザクションを用いたデータ伝送を行う通信装置を制御する制御方法であって、前記データ伝送に必要なコネクションが送信側装置と受信側装置との間に設定された後に、前記データ伝送が中断されたか否かを識別するステップと、前記データ伝送が中断されたことが識別された場合に、前記データ伝送が中断されたことを示す表示を行うステップとを有することを特徴とする。
【００３３】
【発明の実施の形態】
本発明の第一の実施例を図１に示す。図１は、Async Connection におけるデータ伝送の送信側装置１０１に含まれるProducer１０３と受信側装置１０６であるConsumer１０７との間でコネクションが張られたことを表示する装置１０４をController１０２に設けた構成を表すものである。
【００３４】
まずはじめに、Producer１０３、Consumer１０７の間でコネクションを張るためのController１０２の制御を説明する。
【００３５】
producer,consumerはデータ送受信のためのAsynchronous Plug をそれぞれ所有する。このPlugは図５のようになっており、ひとつのiAPR(input Asynchronous Port Register)５０１と複数のoAPR(output Asynchronous Port Register)５０２〜５０５で構成され、IEEE1394のアドレススペースに割り当てられる。producerの機能のみを有するノードは図６(a)のようにoAPRだけを、consumer機能のみを有するノードは図６(b)のようにiAPRとデータ受信用のsegment buffer５０７を、producer,consumerの両方の機能を有するノードは図６(c)のようにiAPR,oAPR,segment buffer５０７を有する。producerノードは１つのコネクションで、複数のconsumerに対してデータを送信することが出来る場合はその能力に応じて図６(a)のように複数のoAPRを有し、１つのconsumerにしかデータを送信できなければ図６(c)のように１つだけoAPRを有する。
【００３６】
producerはconsumerの持つsegment buffer にwriteトランザクションで例えば画像データなどを書き込む。書き込まれるデータをフレームと呼び、フレームのサイズがsegment buffer のサイズより大きい場合は、複数回のセッションに分けて書き込みを行う。１回のセッションで書き込まれるデータをセグメントと呼ぶ。
【００３７】
Controllerは、producerに対して、consumerのノードID、コネクションに使用するconsumerのプラグアドレス、プラグ番号等の情報を送信する。またconsumerに対しては、producerのノードID、コネクションに使用するproducerのプラグアドレス、プラグの番号等の情報を送信する。情報を受信したproducer,consumerは、受信したデータを元に通信を開始してproducerからconsumerにデータが送信される。
【００３８】
従来例で述べられたように、Controllerとproducer,consumerとの通信にはAsynchronous Write トランザクションが用いられる。この通信には前記図７に示したIEEE1394パケットが用いられ、ペイロードには例えば図８に示すフォーマットのコマンドフレームレスポンスフレームに該当するFCPフレームデータがセットされる。
【００３９】
図８(a)はコマンドフレーム、図８(b)はレスポンスフレームのフォーマットである。図８(a)のctypeフィールドはコマンドの種類を示す物であり、表１に示すコマンドタイプを指定する。Subunit＿type,subunit ID フィールドは、指定したノード内のどのユニットに対してのコマンドなのかを示すフィールドである。例えば、subunit＿typeでVTRを、subunit ID でVTRサブユニットの０番目のユニットを指定する。opcode,operandフィールドは実際のコマンドを内容を指定するフィールドである。
【００４０】
【表１】
0003977051.tif 000002
【００４１】
図８(b)のresponseフィールドはレスポンスの種類を示す物であり、表２に示すレスポンスタイプを指定する。Subunit＿type,subunit ID フィールドは、ノード内のどのユニットからのレスポンスなのかを示すフィールドである。opcode,operandフィールドはレスポンスデータを指定するフィールドである。
【００４２】
【表２】
0003977051.tif 000003
【００４３】
前記Controllerとproducer,consumerとの通信でのopcode,operandフィールドは図９に示すフォーマットのデータである。Controllerからproducer,consumerに送信されるコマンドフレーム、producer,consumerからControllerに送信されるレスポンスフレーム共に同じフォーマットである。
【００４４】
opcodeはコマンドの種類を示すもので、Asynchronous Connectionsのコマンドであることを示すコードがセットされる。
【００４５】
subfunctionフィールドは、このコマンドによってProduce,consurnerが行う動作を指定する。プラグリソースの確保、コネクションの設定／解除等を指定するフィールドである。
【００４６】
statusフィールドはコマンド実行結果の状態を表すフィールドで、レスポンスフレームでデータがセットされてControllerに状態が通知される。
【００４７】
plug id フィールドはコネクションに使用するプラグの番号を指定する。表３にplug id フィールドにセットするコードの例を示す。
【００４８】
【表３】
0003977051.tif 000004
【００４９】
plug offset フィールドは42bitのフィールドで、プラグの先頭アドレスがセットされる。図５のiAPRに相当するアドレスである。
【００５０】
port id フィールドは、プラグ内のどのポートが選択されているかを示すフィールドである。表４にport id フィールドにセットするコードの例を示す。
【００５１】
【表４】
0003977051.tif 000005
【００５２】
Consumer portは図５のiAPRに、producer prot［1］〜producer port［14］はoAPR［1］〜oAPR［14］に対応する。コネクションに使用されるポートレジスタのオフセットアドレスは、以下の式によって計算される。
【００５３】
(オフセットアドレス)＝(plug offset)＜＜６｜(port id)＜＜２
port bits フィールドは選択されているポートの能力を示す。表５にport bits フィールドにセットするコードの例を示す。
【００５４】
【表５】
0003977051.tif 000006
【００５５】
connected node id フィールドは、コネクションを設定する相手のノード（producerの場合は接続されるconsumerをconsumerの場合は接続されるproducer。以下、接続ノードと記す）を示す。consumerに対しては、producerのノードIDを、producerに対してはconsumerのノードIDをControllerがセットしてコマンドフレームで通知する。
【００５６】
connected plug offset フィールドは、接続ノードが持つプラグのアドレスを示すフィールドである。
【００５７】
connected port ID フィールドはコネクションに使用する接続ノードのポート番号を示す。接続ノードのポートレジスタのオフセットアドレスは、以下の式によって計算される。
【００５８】
(オフセットアドレス)＝(connected plug offset)＜＜６｜(connected port id)＜＜２
connected port bits フィールドは接続ノードのポートの能力を示す。
【００５９】
connected plug id はコネクションに使用される接続ノードのプラグ番号を示す。
【００６０】
ex(exclusive)ビットは、コネクションに使用するポートを他のControllerがアクセスできるかどうかを指定するためのビットである。コマンドフレームでこのビットを１にセットした場合、producer,consumerはそのポートヘアクセスするコマンドフレームを受信するとコマンド送信元のノードIDを調べて、コネクションを設定したControllerのノードIDと異なる場合はそのコマンドに対してRejectedのレスポンスフレームを送信する。
【００６１】
connection count フィールドは consumerのポートがいくつのproducerポートに接続されているかを示す。
【００６２】
write interval はproducerがconsumerのセグメントバッファーにwriteトランザクションを行う時の、トランザクションの最小間隔を示す。
【００６３】
retry count フィールドはシリアルバストランザクションに失敗したときに必要となるretry count値を示す。これは、 consumerからのレスポンスフレームでセットされる。
【００６４】
図１０を用いてcontrollerがproducer,consumerの持つ０番目のAsynchronous Plug間にコネクションを設定する手順を説明する。consumer,producerともにPlugのオフセットアドレスは、FFFF F0001800であり、 consumerが持つsegment buffer に対して先頭アドレスからの順次書き込みにしか対応しておらず、マルチキャストコネクションがサポートされていないものとする。またproducerはconsumerのsegment buffer が固定サイズで変化しないものにしか対応していないとする。ここではそれぞれのノードIDが、controller=0,producer=1,consumer=2になっているとする。
【００６５】
図１０中の実線で示してある矢印１ａ,２ａ,３ａはコマンドフレームの流れを、波線で示している矢印１ｂ,２ｂ,３ｂはレスポンスフレームの流れを示す。コマンドフレームのctypeフィールドにはControlを、subunit＿type,subunit＿IDフィールドにはターゲットであるconsumer,producerノード内の適切なサブユニットを指定するデータをセットする。レスポンスフレームのresponseフィールドにはコマンドを受け付けたかどうかがセットされるが、ここでは受け付けられたものとしてAcceptedがセットされる場合について説明を行う。レスポンスフレームのsubunit＿type,subunit＿IDフィールドにはコマンドフレームのsubunit＿type,subunit＿IDフィールドと同一のデータがセットされる。このFCPフレームは図７のパケットのdata field にセットされ、destination ID,source ID,destination offset等のパケットヘッダがセットされた後に、controllerとconsumerおよびproducer間でwriteトランザクションを用いて送信される。
【００６６】
まず、controllerがconsumerに対して、ALLOCATEコマンドを送信する。このときのコマンドフレーム内のopecode,operandフィールドの例を図１１(1a)に示す。
【００６７】
opecodeフィールドにはAsynchronous Connection のコマンドであることを示すコード２６（１６進）がセットされる。
【００６８】
subfunctionフィールドにはリソースの確保を指示するためのALLOCATEコマンドのコード０１（１６進）がセットされる。
【００６９】
plug id フィールドには、０番目のAsynchronous Plugを確保することを示すコードＡ０（１６進）がセットされる。
【００７０】
port id フィールドにはiAPRを示すポート番号０がセットされる。
【００７１】
ex(exclusive)フィールドには、他のControllerからのアクセスも許可する事を示すコード０がセットされる。
【００７２】
そのほかのフィールドには、ダミーデータとして全てのビットに１がセットされる。
【００７３】
前記データのコマンドフレームがAsynchronousパケットのdata field にセットされ、controllerからconsumerのコマンドレジスタにwriteトランザクションで書き込まれることによってALLOCATEコマンドの発行が行われる。
【００７４】
前記FCPコマンドフレームを受信したconsumerはcontrollerに対して、このコマンドを受け付けたことを通知するAcceptedのレスポンスフレームを送信する。このときのレスポンスフレーム内のopecode,operandフィールドの例を図１１(1b)に示す。
【００７５】
opecodeフィールドにはAsynchronous Connectionコマンドに対するレスポンスであることを示すコード２６（１６進）がセットされる。
【００７６】
subfunctionフィールドにはALLOCATEコマンドのレスポンスであることを示すコ一ド０１（１６進）がセットされる。
【００７７】
statusフィールドには、リソースの確保ができた状態であることを示すFIXEDのコ−ド（０２（１６進））がセットされる。
【００７８】
plug id フィールドには、０番目のAsynchronous Plugが確保されたことを示すコードＡ０（１６進）がセットされる。
【００７９】
plug offset フィールドには、consumerが持つ０番目のplugのオフセットアドレスを示すコードがセットされる。
【００８０】
port id フィールドにはiAPRを示すポート番号０がセットされる。
【００８１】
plug offset フィールドとport id フィールドのデータから、実際に使用するportのオフセットアドレスが以下の式によって計算される。
【００８２】
(オフセットアドレス)=(plug offset)＜＜６｜(port id)＜＜２= FFFF F0001800(16進)  port bits フィールドには、consumerが持つsegment buffer に対して先頭アドレスからの順次書き込みにしか対応しておらず、マルチキャストコネクションがサポートされていない事を示すコード００（２進）がセットされる。
【００８３】
connection count フィールドには、まだproducer port に接続されていない事を示すコード００（１６進）がセットされる。
【００８４】
write interval,retry count フィールドは、表５のct bit が０の場合使用されないことになっており、共にダミーデータのＦ（１６進）がセットされる。
【００８５】
そのほかのフィールドには、コマンドフレームと同一の値がセットされる。
【００８６】
上記データのFCPレスポンスフレームがAsynchronousパケットのdata field にセットされ、consumerからcontrollerのレスポンスレジスタにwriteトランザクションで書き込まれることによってALLOCATEコマンドに対するレスポンスの発行が行われる。
【００８７】
consumerからALLOCATEコマンドに対するAcceptedレスポンスを受け取ると、controllerはproducerに対して、ALLOCATE＿ATTACHコマンドを送信する。このときのコマンドフレーム内のopecode,operandフィールドの例を図１２(2a)に示す。
【００８８】
opecodeフィールドにはAsynchronous Connectionのコマンドであることを示すコード２６（１６進）がセットされる。
【００８９】
subfunctionフィールドにはリソースの確保とconsumerへの接続を指示するためのALLOCATE＿ATTACHコマンドのコード０３（１６進）がセットされる。
【００９０】
plug id フィールドには、０番目のAsynchronous Plug を確保することを示すコードＡ０（１６進）がセットされる。
【００９１】
port id フィールドにはoAPR［1］を示すポート番号１がセットされる。
【００９２】
connected node id フィールドには、consumerのnode id である０００２（１６進）がセットされる。
【００９３】
connected plug offset フィールドには、 consumerから通知されたconsumerが持つ０番目のplugのオフセットアドレスを示すコードがセットされる。
【００９４】
connected port id フィールドには、iAPRを示すポート番号０がセットされる。
【００９５】
connected port bits フィールドには、 consumerから通知された受信能力を示すコード００（２進）がセットされる。
【００９６】
connected plug id フィールドには、 consumerの０番目のAsynchronous Plug
と接続することを示すコードＡ０（１６進）がセットされる。
【００９７】
ex(exclusive)フィールドには、他のControllerからのアクセスも許可する事を示すコード０がセットされる。
【００９８】
そのほかのフィールドには、ダミーデータとして全てのビットに１がセットされる。
【００９９】
前記データのコマンドフレームがAsynchronousパケットのdata field にセットされ、controllerからproducerのコマンドレジスタにwriteトランザクションで書き込まれることによってALLOCATE＿ATTACHコマンドの発行が行われる。
【０１００】
前記FCPコマンドフレームを受信したproducerはcontrollerに対して、このコマンドを受け付けたことを通知するAcceptedのレスポンスフレームを送信する。このときのレスポンスフレーム内のopecode,operandフィールドの例を図１２(2b)に示す。
【０１０１】
opecodeフィールドにはAsynchronous Connection コマンドに対するレスポンスであることを示すコード２６（１６進）がセットされる。
【０１０２】
subfunctionフィールドにはALLOCATE＿ATTACHコマンドのレスポンスであることを示すコード０３（１６進）がセットされる。
【０１０３】
statusフィールドには、指定されたポートが使用可能状態であることを示すACTIVEのコード０３（１６進）がセットされる。
【０１０４】
plug id フィールドには、０番目のAsynchronous Plugが確保されたことを示すコードＡ０（１６進）がセットされる。
【０１０５】
plug offset フィールドには、producerが持つ０番目のplugのオフセットアドレスを示すコードがセットされる。
【０１０６】
port id フィールドにはoAPR［1］を示すポート番号１がセットされる。
【０１０７】
plug offset フィールドとport id フィールドのデータから、実際に使用するportのオフセットアドレスが以下の式によって計算される。
【０１０８】
(オフセットアドレス)=(plug offset)＜＜６｜(port id)＜＜２= FFFF F0001804(16進)  port bits フィールドには、指定されたproducerのportは固定サイズのsegmentbufferに対するデータ転送にしか対応していないことを示すコード００（２進）がセットされる。
【０１０９】
そのほかのフィールドには、コマンドフレームと同一の値がセットされる。
【０１１０】
上記データのFCPレスポンスフレームがAsynchronousパケットのdata field にセットされ、producerからcontrollerのレスポンスレジスタにwriteトランザクションで書き込まれることによってALLOCATE＿ATTACHコマンドに対するレスポンスの発行が行われる。
【０１１１】
producerからALLOCATE＿ATTACHコマンドに対するAcceptedレスポンスを受け取ると、controllerはconsumerに対して、ATTACHコマンドを送信する。このときのコマンドフレーム内のopecode,operandフィールドの例を図１１(3a)に示す。
【０１１２】
opecodeフィールドにはAsynchronous Connectionのコマンドであることを示すコード２６（１６進）がセットされる。
【０１１３】
subfunctionフィールドにはproducerへの接続を指示するためのATTACHコマンドのコード０２（１６進）がセットされる。
【０１１４】
plug id フィールドには、ALLOCATEコマンドの発行時と同じ０番目のAsynchronous Plugを示すコードＡ０（１６進）がセットされる。
【０１１５】
plug offset フィールドには、ALLOCATEコマンドのレスポンスで通知された、consumerのplug offset を示すコードがセットされる。
【０１１６】
port id フィールドにはALLOCATEコマンドの発行時と同じiAPRを示すポート番号０がセットされる。
【０１１７】
port bits フィールドには、ALLOCATEコマンドのレスポンスで通知された、consumerの送信能力を示すコード００（２進）がセットされる。
【０１１８】
connected node id フィールドには、producerのnode id である０００１（１６進）がセットされる。
【０１１９】
connected plug offset フィールドには、producerから通知されたproducerが持つ０番目のplugのオフセットアドレスを示すコードがセットされる。
【０１２０】
connected port id フィールドには、oAPR［1］を示すポート番号１がセットされる。
【０１２１】
connected port bits フィールドには、producerから通知された送信能力を示すコード００（２進）がセットされる。
【０１２２】
connected plug id フィールドには、producerの０番目のAsynchronous Plug と接続することを示すコードＡ０（１６進）がセットされる。
【０１２３】
ex(exclusive)フィールドには、他のControllerからのアクセスも許可する事を示すコード０がセットされる。
【０１２４】
そのほかのフィールドには、ダミーデータとして全てのビットに１がセットされる。
【０１２５】
前記データのコマンドフレームがAsynchronousパケットのdata field にセットされ、controllerからconsumerのコマンドレジスタにwriteトランザクションで書き込まれることによってATTACHコマンドの発行が行われる。
【０１２６】
前記FCPコマンドフレームを受信したconsumerはcontrollerに対して、このコマンドを受け付けたことを通知するAcceptedのレスポンスフレームを送信する。このときのレスポンスフレーム内のopecode,operandフィールドの例を図１３(3b)に示す。
【０１２７】
opecodeフィールドにはAsynchronous Connectionコマンドに対するレスポンスであることを示すコード２６（１６進）がセットされる。
【０１２８】
subfunctionフィールドにはATTACHコマンドのレスポンスであることを示すコード０２（１６進）がセットされる。
【０１２９】
statusフィールドには、指定されたポートが使用可能状態であることを示すACTIVEのコード０３（１６進）がセットされる。
【０１３０】
plug id,plug offset,port id,port bits フィールドは、ATTACHコマンドフレーム内の各フィールド値が、ALLOCATEレスポンスでcontrollerに通知した値と一致していることを確認して、コマンドフレームの各フィールド値と同じ値がセットされる。
【０１３１】
connection count フィールドは、１箇所だけコネクションが張られていることを示すコード（０１（１６進））がセットされる。
【０１３２】
そのほかのフィールドには、コマンドフレームと同一の値がセットされる。
【０１３３】
上記データのFCPレスポンスフレームがAsynchronousパケットのdata field にセットされ、consumerからcontrollerのレスポンスレジスタにwriteトランザクションで書き込まれることによってATTACHコマンドに対するレスポンスの発行が行われる。
【０１３４】
以上図１１、図１２、図１３に示すコマンドフレーム、レスポンスフレームをcontrollerとconsumer,producer間で送信する事によって、consumer,producerそれぞれに接続ノードのnode id,plug id,plug offset,port id が通知され、consumerとproducerの間にコネクションが設定される。
【０１３５】
次に、ProducerとConsumerとのコネクションが設定されたことを表示する装置を説明する。
【０１３７】
１対１のAsync伝送の場合、Controllerを持つ機器の種類によって（ａ）〜（ｃ）のような構成が考えられる。ここでは、（ａ）を実現する一例としてデジタルビデオカメラがControllerとProducer、ビデオプリンタをConsumerとした場合の実施例を説明する。
【０１３８】
デジタルビデオカメラからビデオプリンタヘ静止画像データをAsync伝送で送り、ビデオプリンタから静止画像をプリントアウトするとき、ProducerであるデジタルビデオカメラとConsumerであるプリンタとの間でAsync Connection が張られる。それを制御するControllerがディジタルビデオカメラの中に存在する場合、図２（ａ）に示されるように、Controllerである画像データ再生・送信制御回路２０４とProducerである画像データ再生回路２０３との間は、同一機器内であるので、1394シリアルバスを設ける必要はなく、Asynchronous Write トランザクションと同等の制御信号を２０５、２０６を介して伝送すればよい。
【０１３９】
ここでは前述のようにProducerとConsumerとのコネクションを張るためにControllerとProducer、Consumerがそれぞれ通信するALLOCATE（la、lb）、ALLOCATE＿ATTACH （2a、2b）、ATTACH（3a、3b）の各信号のうち、3bの信号でopecode、operand［0］、operand［1］などからコネクションの完成を認識し、Connected node idから受信側の機器２１０を識別して表示回路２０７にそれらの情報を伝送し、表示回路２０７において図３(a)に示されるように、コネクションが張られた機器をLEDを点灯させることで表示する。ここでは、IEEE1394プロトコルのsource＿ID、destination＿IDの信号から、コネクションの張られた機器を識別してもよい。
【０１４０】
複数のプリンタとコネクションを張る場合も、ATTACH信号の後に他のノードに向けて順次Controllerから発行されるADD＿OVERLAYコマンドによってコネクションの張られたノードを識別し、図３(b)のように識別されたノードを表示する。
【０１４１】
また、ビデオプリンタ側２２０にControllerであるデジタルビデオカメラを制御するコマンドを出力する画像データ受信・出力制御回路２２３をもつ場合、図２(b)のような構成が考えられるが、この場合も(a)の場合と同様の制御であり、表示回路２２６において図３(d)のように表示される。
【０１４２】
また、このようにController２２３がビデオプリンタ側に存在する場合、Consumer２２２のレジスタを参照することによってコネクションの状態を表示することも可能である。
【０１４３】
以上のように、Async Connection を張るためのAsync Write トランザクションの信号などからコネクションが張られたノードを識別し、表示することによって、Async伝送されるデータの送信側、受信側を使用者に明確にすることができ、機器の操作性をより向上させることが可能となる。
【０１４４】
次に、本発明の第二の実施例を説明する。 Async Connection におけるデータ伝送の送信側であるProducerから受信側であるConsumerヘデータが伝送されていることを表示する装置をControllerに設けた構成を表す図は、第一の実施例と同様に図１で表される。
【０１４５】
まず、コネクションが設定された後のproducer,consumer間でのデータ転送手順について説明する。
【０１４６】
コネクションが設定された後は、consumerとproducerの間でiAPR,oAPRを使用してハンドシェイクが行われ、producerがconsumerのsegment buffer にwriteトランザクションでデータを書き込むことによってproducerの持つフレームデータがconsumerに転送される。
【０１４７】
consumerはproducerが持つoAPRにLockトランザクションを用いてconsumerが持つsegment buffer のサイズを通知し、データ転送の開始を指示する。転送開始を指示されたproducerは、producerが保持するフレームデータをconsumerが持つsegment buffer にwriteトランザクションで書き込んでいく。フレームデータのサイズがsegment buffer のサイズよりも大きい場合、フレームデータはsegment buffer のサイズのセグメントに分割されて転送される。フレームデータの最終データまたはセグメントの最終データを転送すると、producerはconsumerの持つiAPRにLockトランザクションを用いて、転送したデータのサイズと次のセグメントデータが存在するかフレームの転送が終了したかを通知する。producerからの通知を受けたconsumerはsegment buffer に書き込まれたデータの処理を開始し、処理が終了するとproducerのoAPRに最初と同様、segment buffer のサイズを通知して、次のセグメントデータの送信開始を指示する。これをフレームデータの転送が終了するまで繰り返す。
【０１４８】
図１８は、consumerが持つiAPRのフォーマットである。producerノードは、セグメントデータの送信後、送信終了を通知するためにLockトランザクションを用いてこのレジスタを更新する。
【０１４９】
r(reserved)フィールドは、将来の拡張用のフィールドである.
hb(heartbeat)フィールドは、規定時間以上データ通信が行われない場合にタイムアウトを起こさないためにハンドシェイクを行うためのフィールドである。
【０１５０】
modeフィールドは、送信したデータの状態やコネクションの状態を通知するためのフィールドである。表６にこのフィールドのデータ例を示す。
【０１５１】
【表６】
0003977051.tif 000007
【０１５２】
sc(segment count)フィールドは、データ転送を正しく行うためのチェック用フィールドである。
【０１５３】
countフィールドは、送信したセグメントデータのバイトサイズを通知するためのフィールドである。
【０１５４】
図１９はproducerが持つoAPRのフォーマットである。consumerノードは、データ受信用のsegment buffer の準備が出来るとLockトランザクションを用いてこのレジスタを更新して、セグメントデータの送信要求を行う。
【０１５５】
r(reserved)フィールドは、将来の拡張用のフィールドである。hb(heartbeat)フィールドは、規定時間以上データ通信が行われない場合にタイムアウトを起こさないためにハンドシェイクを行うためのフィールドである。
【０１５６】
modeフィールドは、送信要求やコネクションの状態を通知するためのフィールドである。表７にこのフィールドのデータ例を示す。
【０１５７】
【表７】
0003977051.tif 000008
【０１５８】
sc(segment count)フィールドは、データ転送が正確に行われたかどうかをチェックするためのフィールドである。
【０１５９】
countHiフィールドは、segment buffer のバイトサイズを通知するためのフィールドである。この１８ビットのフィールド値の下位に６ビットの０を付加した２４ビットの値が実際のsegment buffer のサイズである。
【０１６０】
runフィールドはproducerからのconsumerに対するアクセスを制御するためのフィールドである．この値が０の場合、producerはconsumerの持つiAPRへのLockトランザクション及び、segment buffer へのWriteトランザクションを行うことは出来ない。
【０１６１】
maxLoadフィールドは、consumerが１回のWriteトランザクションで受信できる最大のペイロードサイズを示すフィールドである。そのバイトサイズは、以下の式によって求められる。
【０１６２】
payloadSize＝２＾(maxLoad＋１)
図１０のシーケンスによって、producerとconsumerの間にコネクションが設定された後のデータ転送の流れを図２０に示す。この例ではconsumerは３２ｋｂのsegment bufferを持ち、受信できる最大のペイロードサイズは1ｋｂとし、producerから５０ｋｂのフレームデータを転送する場合について説明する。iAPRもoAPRも初期値は全てのビットが０になっている。
【０１６３】
まずconsumerがproducerのoAPRをLockトランザクションを用いて更新する。
【０１６４】
このときのmodeをSENDにセットすることによって、producerに対しての転送開始要求となる。図２０ではcountHiはconsumerのセグメントバッファが３２ｋｂのサイズを持つことを示し、maxLoadは最大ペイロードサイズが１ｋｂであることを示している。runが１に更新され、producerはconsumerに対してトランザクションを行うことが許可される。
【０１６５】
oAPRを更新されたproducerは、consumerのsegment buffer に対してwriteトランザクションでセグメントデータの送信を開始する。producerの保有する５０ｋｂのフレームデータを、writeトランザクションでconsumerのsegment buffer の先頭アドレスから順番に１ｋｂずつ書き込みを行っていく。 writeパケットを送信する毎にwriteのオフセットアドレスは１ｋｂずつインクリメントされ、３２ｋｂのセグメントデータを送信するとconsumerのiAPRを更新してセグメントデータの送信が終了したことを通知する。このときのmodeをMOREにセットすることによって、このセグメントデータに統いて次のセグメントデータが送信されることを通知する。scはconsumerから更新されたoAPRのscの値と同一の値がセットされる。 countには３２ｋｂのデータを送信したことを通知するデータがセットされる。
【０１６６】
iAPRの更新が行われるとconsumerは前回更新したoAPRのscの値と更新されたiAPRのscの値を比較し、同一の値である場合正しくデータが送信されたとみなしてセグメントデータの処理を開始する。セグメントデータの処理が終わり、segment bufferが使用可能な状態になったら再びconsumerはproducerのoAPRを更新する。このときscの値を前回とは反転させることによって、新しいセグメントの送信要求となる。その他のフィールドは最初の場合と同様である。
【０１６７】
oAPRを更新されたproducerは、consumerのsegment buffer に対してwriteトランザクションで次のセグメントデータの送信を開始する。送信済みの３２ｋｂ以降のデータから開始して、writeトランザクションでconsumerのsegment buffer の先頭アドレスから順番に１ｋｂずつ書き込みを行っていく。writeパケットを送信する毎にwriteのオフセットアドレスは１ｋｂずつインクリメントされ、１８ｋｂ（５０ｋｂ−３２ｋｂ）のセグメントデータを送信するとconsumerのiAPRを更新してセグメントデータの送信が終了したことを通知する。このときのmodeをLASTにセットすることによって、このフレームの全データの送信が終了したことを通知する。scはconsumerから更新されたoAPRのscの値と同一の値がセットされる。 countには１８ｋｂのデータを送信したことを通知するデータがセットされる。
【０１６８】
iAPRを更新されたconsumerは前回と同様、scの値を調べた後にセグメントデータの処理を行い、処理が終了するとproducerのoAPRを更新する。
【０１６９】
以上のシーケンスでproducerからconsumerにフレームデータが転送される。
producerが他にも転送するデータを持っていれば同様の手順で転送を繰り返す。
【０１７０】
次に、ProducerからconsumerへAsyncデータが伝送されていることを表示する装置を説明する。
【０１７１】
１対１のAsync伝送の場合、Controllerを持つ機器の種類によって図１（ａ）〜（ｃ）のような構成が考えられる。ここでは、図１（ａ）を実現する一例としてデジタルビデオカメラがControllerとProducer、ビデオプリンタをConsumerとした場合の実施例を説明する。
【０１７２】
デジタルビデオカメラからビデオプリンタヘ静止画像データをAsync伝送で送り、ビデオプリンタから静止画像をプリントアウトするとき、ProducerであるデジタルビデオカメラとConsumerであるプリンタとの間でAsync Connection が張られ、静止画像データがデジタルビデオカメラからビデオプリンタに非同期モードで伝送される。それを制御するControllerがデジタルビデオカメラの中に存在する場合、図２(a)に示されるように、Controllerである画像データ再生・送信制御回路２０４とProducerである画像デ一夕再生回路２０３との間は、同一機器内であるので、1394シリアルバスを設ける必要はなく、Asynchronous Write トランザクションと同等の制御信号を２０５、２０６を介して伝送すればよい。
【０１７３】
ここでは前述のようにProducerからConsumerへ静止画像データを伝送するときにProducerのoAPRのmode１９０１に書き込まれる「SEND」１９０３、またはrun１９０２に書き込まれる送信可能状態を示す「１」などのConsumerからのLockトランザクションの信号から、静止画像データが伝送状態にあることを識別して、画像データ再生・送信制御回路２０４にデータ伝送状態である信号を送り、画像データ再生・送信制御回路２０４は表示回路２０７にそれらの情報を伝送し、表示回路２０７において図３(c)に示されるように、伝送状態を示す矢印３０１を表すLEDを点灯させることで表示する。ここでは、ProducerがConsumerのiAPRにLockトランザクションで書き込む信号のmode１８０１の「MORE」１８０２などを識別してもよい。
【０１７４】
ここでは、伝送状態を表示する以外にも、例えば伝送途中で伝送を中断して完全に静止画像データを伝送しなかった場合には、iAPRのmode１８０１の「LOST」１８０３やoAPRのmode１９０１の「TOSS」１９０４を識別して、図３(f)のように表示してもよい。
【０１７５】
複数のプリンタヘ静止画像データを伝送する場合も同様に、IEEE1394プロトコルのノードIDなどから受信側を識別して、図３(b)のように伝送状態を表示する。
【０１７６】
また、ビデオプリンタ側２２０にControllerであるデジタルビデオカメラを制御するコマンドを出力する画像データ受信・出力制御回路２２３をもつ場合、図２(b)ような構成が考えられるが、この場合も(a)の場合と同様の制御であり、図３(e)のように表示される。
【０１７７】
図１(c)の構成の場合、図２(c)のように制御装置２３８が別にIEEE1394シリアルバスで接続されているので、Producer２２９からConsumer２３６6へ送られる静止画像データを識別することはできない。この場合は、Producerであるディジタルビデオ力メラ側から、別のFCPプロトコルのコマンドをController２４０に向けて送信するアプリケーションを作成して通知することで表示すればよい。
【０１７８】
以上のように、Async伝送を実行するためのAsync Lockトランザクションの信号からProducerからConsumerへのデータの伝送状態を識別し、表示することによって、Async伝送の状態にあることを使用者に明確にすることができ、機器の操作性をより向上させることが可能となる。
【０１７９】
次に本発明の第三の実施例を説明する。Async Connection におけるデータ伝送の送信側であるProducerと受信側であるConsumerとの間でコネクションが解除されたことを表示する装置をControllerに設けた構成を表す図は、第一、第二の実施例と同様に図１で表される。
【０１８０】
まず、Producer、Consumerの間でコネクションを解除するためのControllerの制御を説明する。
【０１８１】
フレームの転送が終了すると、必要に応じてcontrollerはproducerとconsumerの間に設定されたコネクションを解除する。図１４にコネクションを解除する場合のコマンドフレーム、レスポンスフレームの流れを示す。図１４中の実線で示してある矢印1ａ，２ａ，３ａはコマンドフレームの流れを、波線で示している矢印1ｂ，２ｂ，３ｂはレスポンスフレームの流れを示す。
【０１８２】
まずcontrollerはconsumerに対して、DETACHコマンドを送信する。このときのコマンドフレーム内のopcode,operandフィールドの例を図１５(1a)に示す。
【０１８３】
opecodeフィールドにはAsynchronous Connection のコマンドであることを示すコード２６（１６進）がセットされる。
【０１８４】
subfunctionフィールドにはコネクションの解除を指示するためのDETACHコマンドのコード０６（１６進）がセットされる。
【０１８５】
plug idフィールドには、ATTACHコマンドの発行時と同じ０番目のAsynchronousPlugを示すコードＡ０（１６進）がセットされる。
【０１８６】
port id フィールドにはATTACHコマンドの発行時と同じiAPRを示すポート番号０がセットされる。
【０１８７】
ex(exclusive)フィールドには、他のControllerからのアクセスも許可する事を示すコード０がセットされる。
【０１８８】
そのほかのフィールドには、ダミーデータとして全てのビットに１がセットされる。
【０１８９】
前記データのコマンドフレームがAsynchronousパケットのdata field にセットされ、controllerからconsumerのコマンドレジスタにwriteトランザクションで書き込まれることによってDETACHコマンドの発行が行われる。
【０１９０】
前記FCPコマンドフレームを受信したconsumerはcontrollerに対して、このコマンドを受け付けたことを通知するAcceptedのレスポンスフレームを送信する。このときのレスポンスフレーム内のopcode,operandフィールドの例を図１５(1b)に示す。
【０１９１】
opecodeフィールドにはAsynchronous Connectionコマンドに対するレスポンスであることを示すコード２６（１６進）がセットされる。
【０１９２】
subfunctionフィールドにはDETACHコマンドのレスポンスであることを示すコード０６（１６進）がセットされる。
【０１９３】
statusフィールドには、指定されたポートが停止状態であることを示すINACTIVEのコード（０４（１６進））がセットされる。
【０１９４】
plug id フィールドには、コマンドフレームで指定されたplu9番号がセットされる。
【０１９５】
plug offset フィールドには、コマンドフレームで指定されたplugのオフセットアドレスを示すコードがセットされる。
【０１９６】
port idフィールドには、コマンドフレームで指定されたport番号がセットされる。
【０１９７】
port bitsフィールドには、コマンドフレームで指定されたportの能力を示すコードがセットされる。
【０１９８】
connected node id,connected plug offset,connected port id,connected port bits,connected plug id フィールドにはコネクションを設定していたproducerノードのノードID、plugのオフセットアドレス、port番号、portの能力、plu9番号がセットされる。
【０１９９】
connection count フィールドには、DETACHコマンドを受け取る前のconnection countの値から１を引いた値である０がセットされる。
【０２００】
そのほかのフィールドには、コマンドフレームと同一の値がセットされる。
【０２０１】
上記データのFCPレスポンスフレームがAsynchronousパケットのdata field にセットされ、consumerからcontrollerのレスポンスレジスタにwriteトランザクションで書き込まれることによってDETACHコマンドに対するレスポンスの発行が行われる。
【０２０２】
consumerからDETACHコマンドのレスポンスを受信したcontrollerはproducerに対して、DETACH＿RELEASEコマンドを送信する。このときのコマンドフレーム内のopcode,operandフィールドの例を図１６(2a)に示す。
【０２０３】
opecodeフィールドにはAsynchronous Connectionのコマンドであることを示すコード２６（１６進）がセットされる。
【０２０４】
subfunctionフィールドにはコネクションの解除とリソースの解放を指示するためのDETACH＿RELEASEコマンドのコード０７（１６進）がセットされる。
【０２０５】
plug id フィールドには、ALLOCATE＿ATTACHコマンドの発行時と同じ０番目のAsynchronous Plug を示すコードＡ０（１６進）がセットされる。
【０２０６】
port id フィールドにはALLOCATE＿ATTACHコマンドの発行時と同じoAPR［1］を示すポート番号１がセットされる。
【０２０７】
ex(exclusive)フィールドには、他のControllerからのアクセスも許可する事を示すコード０がセットされる。
【０２０８】
そのほかのフィールドには、ダミーデータとして全てのビットに１がセットされる。
【０２０９】
前記データのコマンドフレームがAsynchronousパケットのdata field にセットされ、controllerからproducerのコマンドレジスタにwriteトランザクションで書き込まれることによってDETACH＿RELEASEコマンドの発行が行われる。
【０２１０】
前記FCPコマンドフレームを受信したproducerはcontrollerに対して、このコマンドを受け付けたことを通知するAcceptedのレスポンスフレームを送信する。このときのレスポンスフレーム内のopcode,operandフィールドの例を図１６(2b)に示す。
【０２１１】
opecodeフィールドにはAsynchronous Connectionコマンドに対するレスポンスであることを示すコード２６（１６進）がセットされる。
【０２１２】
subfunctionフィールドにはDETACH＿RELEASEコマンドのレスポンスであることを示すコード０７（１６進）がセットされる。
【０２１３】
statusフィールドには、指定されたポートが使用されていない状態であることを示すFREEのコード（０１（１６進））がセットされる。
【０２１４】
そのほかのフィールドには、コマンドフレームと同一の値がセットされる。
【０２１５】
上記データのFCPレスポンスフレームがAsynchronousパケットのdata field にセットされ、producerからcontrollerのレスポンスレジスタにwriteトランザクションで書き込まれることによってDETACH＿RELEASEコマンドに対するレスポンスの発行が行われる。
【０２１６】
producerからDETACH＿RELEASEコマンドのレスポンスを受信したcontrollerはconsumerに対して、RELEASEコマンドを送信する。このときのコマンドフレーム内のopcode,operandフィールドの例を図１７(3a)に示す。
【０２１７】
opecodeフィールドにはAsynchronous Connection のコマンドであることを示すコード２６（１６進）がセットされる。
【０２１８】
subfunctionフィールドにはリソースの解放を指示するためのRELEASEコマンドのコード０５（１６進）がセットされる。
【０２１９】
plug idフィールドには、ALLOCATEコマンドの発行時と同じ０番目のAsynchronous Plugを示すコードＡ０（１６進）がセットされる。
【０２２０】
port id フィールドにはALLOCATEコマンドの発行時と同じiAPRを示すポート番号０がセットされる。
【０２２１】
ex(exclusive)フィールドには、他のControllerからのアクセスも許可する事を示すコード０がセットされる。
【０２２２】
そのほかのフィールドには、ダミーデータとして全てのピットに１がセットされる。
【０２２３】
前記データのコマンドフレームがAsynchronousパケットのdata field にセットされ、controllerからconsumerのコマンドレジスタにwriteトランザクションで書き込まれることによってRELEASEコマンドの発行が行われる。
【０２２４】
前記FCPコマンドフレームを受信したconsumerはcontrollerに対して、このコマンドを受け付けたことを通知するAcceptedのレスポンスフレームを送信する。このときのレスポンスフレーム内のopcode,operandフィールドの例を図１７(3b)に示す。
【０２２５】
opecodeフィールドにはAsynchronous Connection コマンドに対するレスポンスであることを示すコード２６（１６進）がセットされる。
【０２２６】
subfunctionフィールドにはRELEASEコマンドのレスポンスであることを示すコード０５（１６進）がセットされる。
【０２２７】
statusフィールドには、指定されたポートが使用されていない状態であることを示すFREEのコード（０１（１６進））がセットされる。
【０２２８】
そのほかのフィールドには、コマンドフレームと同一の値がセットされる。
【０２２９】
上記データのFCPレスポンスフレームがAsynchronousパケットのdata field にセットされ、consumerからcontrollerのレスポンスレジスタにwriteトランザクションで書き込まれることによってRELEASEコマンドに対するレスポンスの発行が行われる。
【０２３０】
以上図１５、図１６、図１７に示すコマンドフレーム、レスポンスフレームをcontrollerとconsumer,producer間で送信する事によって、consumerとproducerの間に設定されたコネクションが解除される。
【０２３１】
次に、ProducerとConsumerとのコネクションが解除され、設定されたことの表示を中止する制御を説明する。
【０２３２】
１対１のAsync伝送の場合、Controllerを持つ機器の種類によって図１（ａ）〜（ｃ）のような構成が考えられる。ここでは、図１（ａ）を実現する一例としてデジタルビデオカメラがControllerとProducer、ビデオプリンタをConsumerとした場合の実施例を説明する。
【０２３３】
デジタルビデオカメラからビデオプリンタヘ静止画像データをAsync伝送で送り、ビデオプリンタから静止画像をプリントアウトするとき、ProducerであるデジタルビデオカメラとConsumerであるプリンタとの間でAsync Connectionが張られ、静止画像データがデジタルビデオカメラからビデオプリンタに非同期モードで伝送され、伝送が終了するとAsync Connection は解除される。それを制御するControllerがデジタルビデオカメラの中に存在する場合、図２(a)に示されるように、Controllerである画像データ再生・送信制御回路２０４とProducerである画像データ再生回路２０３との間は、同一機器内であるので、1394シリアルバスを設ける必要はなく、Asynchronous Write トランザクションと同等の制御信号２０５、２０６を介して伝送すればよい。
【０２３４】
ここでは前述のように、ProducerとConsumerとのコネクションを解除するためにControllerとProducer、Consumerがそれぞれ通信するDETACH（1a、1b）、DETACH＿RELEASE（2a、2b）、RELEASE（3a、3b）の各信号のうち、3bの信号でopecode、operand［０］、operand［１］などからコネクションの解除を認識し、表示回路２０７にそれらの情報を伝送し、表示回路２０７においてそれまでコネクションが張られていたことが表示されていた機器のLEDを消灯させる。ここでは、IEEE1394プロトコルのsource1＿ID、destination＿IDの信号から、コネクションの張られた機器を識別する。または、１ｂのWriteトランザクションの信号のconnected node id からProducerのノードIDを識別してもよい。
【０２３５】
複数のプリンタとコネクションを解除する場合も、同様にコネクションの張られたノードを識別し、解除されたノードのLEDを消灯する。
【０２３６】
また、ビデオプリンタ側２２０にControllerであるデジタルビデオカメラを制御するコマンドを出力する画像データ受信・出力制御回路２２３をもつ場合、図２(b)のような構成が考えられるが、この場合も図２(a)の場合と同様の制御である。
【０２３７】
また、このようにControllerがビデオプリンタ側２２０に存在する場合、Consumerのレジスタを参照することによってコネクションの状態を表示することも可能である。
【０２３８】
以上のように、Async Connection を解除するためのAsync Write トランザクションの信号などからコネクションが解除されたノードを識別し、表示を消灯することによって、Async伝送の終了を使用者に明確にすることができ、機器の操作性をより向上させることが可能となる。
【０２３９】
【発明の効果】
本発明によれば、Asynchronous Write トランザクションを用いたデータ伝送に必要なコネクションが設定されたか否か、Asynchronous Write トランザクションを用いたデータ伝送が行われているか否か、Asynchronous Write トランザクションを用いたデータ伝送が中断されたか否か、Asynchronous Write トランザクションを用いたデータ伝送に必要なコネクションが解除されたか否かのうち、少なくともAsynchronous Write トランザクションを用いたデータ伝送が中断されたか否かを使用者に通知することができるので、操作性をより向上させることができる。
【図面の簡単な説明】
【図１】  本発明の構成例を説明する図である。
【図２】  本発明の実施例を説明する図である。
【図３】  本発明の実施例である表示装置の表示の状態を表す図である。
【図４】  IEEE1394非同期伝送のコネクションを制御する信号を示す図である。
【図５】  プラグレジスタを示す図である。
【図６】  プラグレジスタを示す図である。
【図７】  IEEE1394パケットを示す図である。
【図８】  FCPのコマンドを示す図である。
【図９】  opecode、operandフィールドのフォーマットを示す図である。
【図１０】  Asyncコネクションの設定を説明する図である。
【図１１】  コネクション設定時のコマンドフレーム、レスポンスフレ−ムを表す図である。
【図１２】  コネクション設定時のコマンドフレーム、レスポンスフレ−ムを表す図である。
【図１３】  コネクション設定時のコマンドフレーム、レスポンスフレ−ムを表す図である。
【図１４】  Asyncコネクションの解除を説明する図である。
【図１５】  コネクション解除時のコマンドフレーム、レスポンスフレームを表す図である。
【図１６】  コネクション解除時のコマンドフレーム、レスポンスフレームを表す図である。
【図１７】  コネクション解除時のコマンドフレーム、レスポンスフレームを表す図である。
【図１８】  Consumerが持つiAPRのフォーマットである。
【図１９】  Producerが持つoAPRのフォーマットである。
【図２０】  ProducerからConsumerへのデータ転送の流れを説明する図である。
【図２１】  IEEE1394シリアルバスで繋がれた各機器の状態を示す図である。
【符号の説明】
１０１・１０８・１１５  送信側装置
１０２・１１２・１１９  Controller
１０３・１０９・１１６  Producer
１０４・１１４・１１８  Display（表示回路）
１０５・１１０・１２０・１２１  IEEE1394シリアルバス
１０６・１１１・１２２  受信側装置
１０７・１１３・１２３  Consumer
２０１・２１４・２２７  デジタルビデオカメラ
２０２・２１５・２２８  画像データ記録媒体
２０３・２１６・２２９  画像データ再生回路
２０４  画像データ再生・送信制御回路
２０５・２０６・２２４・２２５・２４１・２４２  制御信号
２０７・２２６・２４３  表示回路
２０８・２１１・２１８・２２１・２３１・２３５・２３９  IEEE1394インタフェース回路
２０９・２１９・２３２・２３３  IEEE1394シリアルバス
２１０・２２０・２３４  ビデオプリンタ
２１２・２３４  画像データ出力制御回路
２１３・２２２・２３６  画像データ出力回路
２１７・２３０  画像データ再生制御回路
２２３  画像データ受信・出力制御回路
２３８  制御装置
２４０  画像データ送受信制御回路
【図１】
0003977051.tif 000009
【図２】
0003977051.tif 000010
【図３】
0003977051.tif 000011
【図４】
0003977051.tif 000012
【図５】
0003977051.tif 000013
【図６】
0003977051.tif 000014
【図７】
0003977051.tif 000015
【図８】
0003977051.tif 000016
【図９】
0003977051.tif 000017
【図１０】
0003977051.tif 000018
【図１１】
0003977051.tif 000019
【図１２】
0003977051.tif 000020
【図１３】
0003977051.tif 000021
【図１４】
0003977051.tif 000022
【図１５】
0003977051.tif 000023
【図１６】
0003977051.tif 000024
【図１７】
0003977051.tif 000025
【図１８】
0003977051.tif 000026
【図１９】
0003977051.tif 000027
【図２０】
0003977051.tif 000028
【図２１】
0003977051.tif 000029