JP2004064665A - Data transfer device, transmitting device, receiving device, and method for controlling them - Google Patents

Data transfer device, transmitting device, receiving device, and method for controlling them Download PDF

Info

Publication number
JP2004064665A
JP2004064665A JP2002223580A JP2002223580A JP2004064665A JP 2004064665 A JP2004064665 A JP 2004064665A JP 2002223580 A JP2002223580 A JP 2002223580A JP 2002223580 A JP2002223580 A JP 2002223580A JP 2004064665 A JP2004064665 A JP 2004064665A
Authority
JP
Japan
Prior art keywords
data
address
node
receiving
area
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.)
Withdrawn
Application number
JP2002223580A
Other languages
Japanese (ja)
Inventor
Kiyoshi Katano
片野 清
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 JP2002223580A priority Critical patent/JP2004064665A/en
Publication of JP2004064665A publication Critical patent/JP2004064665A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data transfer device by which flow control is easily performed, and data is easily divided and re-constituted. <P>SOLUTION: When connection is requested from a transmitting device to a receiving device (2801), the receiving device gives the address and the size of a writable data window in response (2802). The transmitting device writes data in the data window in response to the report (2803, 2804). The receiving device further secures a memory space, and reports it to the transmitting device by a window report 2806. The transmitting device writes data till transmission is completed in response to the data window reported from the receiving device. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、例えばメモリマップバス等を介して接続してデータ転送を行うデータ転送装置および方法に関する。特にIEEE1394バスを介して接続しデータ転送を行うデータ転送装置及び送信装置及び受信装置及びそれらの制御方法に関する。
【0002】
【従来の技術】
従来、メモリマップバス特にIEEE1394バスを用いた転送方式として、シン(Thin)プロトコル、AV/Cアシンクロナスコネクション(AV/C Asynchronous Connection)、SBP2などがあった。シンプロトコルではネゴシエーションでデータ転送ウィンドウのアドレスとサイズが固定されている。AV/Cアシンクロナスコネクションのセグメントバッファ(Segment Buffer)もアドレス・サイズはあらかじめ固定されている。SBP2では、データ領域等はORBで指定可能であるため可変だが、領域の転送が完了しないうちにダイナミックに領域を変化させることはない。なおメモリマップバスとは、マッピングされたメモリ空間に対してデータの書き込み及び読み出しが行えるアーキテクチャのことである。
【0003】
【発明が解決しようとする課題】
送信装置の上のたとえばファイルのような連続した一塊のデータを受信装置に簡易に転送しようとする場合に、上記従来例においては、以下のような問題点がある。シンプロトコルではネゴシエーションでデータ転送ウィンドウ(セグメントレジスタ)のアドレスとサイズを固定して、転送するデータのサイズがこのサイズを超える場合には、データをセグメントに分割する必要があり、各セグメントにはセグメントヘッダを付加する必要がある。AV/Cアシンクロナスコネクションのセグメントバッファもアドレスはあらかじめ固定しており、送信装置は、受信装置がセグメントバッファのデータをすべて処理するまで、次のデータの転送をはじめられない。SBP2ではORBで領域は可変だが、ORBで指定されている領域の転送が完了しないうちにダイナミックにその領域のアドレスをスライドさせることはないので、連続データを一度に転送しようとすると非常に大きな内部メモリ資源が必要になる。
【0004】
このように、大量のデータ転送にあたっては、いずれの転送方式によっても、転送処理のためのオーバーヘッドが生じたり、あるいは大量のメモリ資源が必要となるなどの問題が生じていた。
【0005】
本発明は上記従来例に鑑みてなされたもので、フローコントロールが簡単で、データの分割および再構成が容易なデータ転送装置及び送信装置及び受信装置及びそれらの制御方法を提供することにある。
【0006】
【課題を解決するための手段】
上記目的を達成するために本発明は次のような構成を備える。
【0007】
メモリマップバスにより接続された第1の装置および第2の装置を有するデータ転送システムであって、
前記第1の装置は、
前記メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変にデータ領域を配置する配置手段と、
前記配置手段により配置した領域のアドレスおよびサイズ情報を前記第2の装置に通知する通知手段とを備え、
前記第2の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記第1の装置における前記データ領域を介して前記第1の装置との間においてデータ転送を遂行する。
【0008】
更に好ましくは、前記第1の装置は、書き込み可能なデータ領域を前記配置手段により配置して前記通知手段によりそのアドレス及びサイズ情報を前記第2の装置に通知し、前記第2の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記メモリマップバスを介して前記データ領域にデータを書き込むことで、前記第2の装置から前記第1の装置に対するデータ転送を遂行する。
【0009】
更に好ましくは、前記第2の装置は、データを、そのアドレスが前記ノードアドレス空間のアドレスと対応するように分割して前記データ領域に書き込み、前記第1の装置は、前記データ領域に書き込まれたデータを、そのアドレスがノードアドレス空間のアドレスと対応するように再構成する。
【0010】
更に好ましくは、前記第1の装置は、前記データ領域にデータを書き込んで、前記通知手段によりそのアドレス及びサイズ情報を前記第2の装置に通知し、前記第2の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記メモリマップバスを介して前記データ領域からデータを読み込むことで、前記第1の装置から前記第2の装置に対するデータ転送を遂行する。
【0011】
更に好ましくは、前記第1の装置は、データを、そのアドレスが前記ノードアドレス空間のアドレスと対応するように分割して前記データ領域に書き込み、前記第2の装置は、前記データ領域に書き込まれたデータを、そのアドレスがノードアドレス空間のアドレスと対応するように再構成する。
【0012】
更に好ましくは、前記第1の装置はさらに、前記配置手段により配置したデータ領域を解除する解除手段を備え、前記配置手段による配置と前記解除手段による解除との繰り返しにより前記データ領域をノードアドレス空間内で移動させる。
【0013】
更に好ましくは、前記メモリマップバスはIEEE1394バスであり、前記通知手段による通知及び前記データ転送は、IEEE1394インターフェースのトランザクションレイヤにより提供されるトランザクションで行われる。
【0014】
あるいは、メモリマップバスにより送信装置と接続された受信装置であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置する配置手段と、
前記領域のアドレスおよびサイズ情報を前記送信装置に通知する通知手段と、
前記領域に前記送信装置により書き込まれたデータを受信する受信手段とを備える。
【0015】
あるいは、メモリマップバスにより受信装置と接続された送信装置であって、
前記受信装置よりアドレスおよびサイズ情報を受信する受信手段と、
前記受信手段により受信した前記アドレス及びサイズ情報により特定される領域にデータを書き込むことでデータを送信する送信手段とを備える。
【0016】
あるいは、メモリマップバスにより受信装置と接続された送信装置であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置し、該領域に送信データを書き込む手段と、
前記領域のアドレスおよびサイズ情報を前記受信装置に通知する通知手段と、
前記領域に前記送信装置により書き込まれたデータを送信する送信手段とを備える。
【0017】
あるいは、メモリマップバスにより送信装置と接続された受信装置であって、
前記送信装置よりアドレスおよびサイズ情報を受信する第1受信手段と、
前記受信手段により受信した前記アドレス及びサイズ情報により特定される領域からデータを読み出すことでデータを受信する第2受信手段とを備える。
【0018】
この構成により、メモリマップバスのノードアドレス空間上に、データ転送のための領域の通知によりフローコントロールを簡単にし、転送データのアドレスとノードアドレス空間のアドレスを1対1に対応させることにより、送信時のデータ分割、受信後のデータ再構成を容易にして、簡易なデータ転送装置を提供することができる。
【0019】
【発明の実施の形態】
(第1の実施の形態)
本発明の、第1の実施の形態として、送信装置と受信装置をIEEE1394バスで接続したデータ転送システムを説明する。図1は、本実施の形態を示すブロック図である。図中、1は送信装置であり、2は受信装置であり、3はIEEE1394ケーブルである。送信装置1は、システムバス11を介して互いに接続するCPU12、ROM13、RAM14、外部装置15、IEEE1394インターフェース16からなり、CPU12はROM13に格納されたプログラムに基づいて、RAM13を作業域として使って、ストレージ装置である外部装置15に格納されたファイルを、IEEE1394インターフェース16を介して受信装置に送信する。受信装置2は、システムバス21を介して互いに接続するCPU22、ROM23、RAM24、外部装置25、IEEE1394インターフェース26からなり、CPU22はROM23に格納されたプログラムに基づいて、RAM23を作業域として使って、ストレージ装置である外部装置25に、IEEE1394インターフェース26を介して送信装置より受信したファイルを格納する。送信装置のIEEE1394インターフェース16と受信装置のIEEE1394インターフェース26はIEEE1394ケーブル3を介して互いに接続する。
【0020】
ここで本実施の形態において用いるIEEE1394の技術について、その概要を説明する。
【0021】
〈IEEE1394の技術の概要〉
以下、本実施例のデジタルインタフェースに適用されるIEEE1394−1995規格の技術について簡単に説明する。尚、IEEE1394−1995規格(以下、IEEE1394規格)についての詳細は、1996年の8月30日にIEEE(The Institute of Electrical and Electronics Engineers, Inc.)から出版された「IEEE Standard for a High Performance Serial Bus」に記述されている。
【0022】
(1)概要
図2にIEEE1394規格に準拠したデジタルインタフェース(以下、1394インタフェース)を具備するノードにより構成される通信システム(以下、1394ネットワーク)の一例を示す。1394ネットワークは、シリアルデータの通信可能なバス型ネットワークを構成するものである。
【0023】
図2において、各ノードA〜Fは、IEEE1394規格に準拠した通信ケーブルを介して接続されている。これらのノードA〜Hは、例えば、PC(Personal Computer)、デジタルVTR(Video Tape Recorder)、DVD(Digital Video Disc)プレーヤ、デジタルカメラ、ハードディスク、モニタ等の電子機器である。
1394ネットワークの接続方式は、ディジーチェーン方式とノード分岐方式とに対応しており、自由度の高い接続を可能としている。
【0024】
又、1394ネットワークでは、例えば、既存の機器を削除したり、新たな機器を追加したり、既存の機器の電源をON/OFFしたりした場合に、自動的にバスリセットを行う。このバスリセットを行うことにより、1394ネットワークは、新たな接続構成の認識と各機器に対するID情報の割り当てとを自動的に行うことができる。この機能によって、1394ネットワークは、ネットワークの接続構成を常時認識することができる。
【0025】
又、1394ネットワークは、他の機器から転送されたデータを中継する機能を有している。この機能により、全ての機器がバスの動作状況を把握することができる。
【0026】
又、1394ネットワークは、Plug&Playと呼ばれる機能を有している。この機能により、全ての機器の電源をOFFにすることなく、接続するだけで自動に接続機器を認識することができる。
【0027】
又、1394ネットワークは、100/200/400Mbpsのデータ転送速度に対応している。上位のデータ転送速度を持つ機器は、下位のデータ転送速度をサポートすることができるため、異なるデータ転送速度に対応する機器同士を接続することができる。
【0028】
更に、1394ネットワークは、2つの異なるデータ転送方式(即ち、Asynchronous転送モードとIsochronous転送モード)に対応している。
【0029】
Asynchronous転送モードは、必要に応じて非同期に転送することが要求されるデータ(即ち、コントロール信号やファイルデータ等)を転送する際に有効である。又、Isochronous転送モードは、所定量のデータを一定のデータレートで連続的に転送することが要求されるデータ(即ち、ビデオデータやオーディオデータ等)を転送する際に有効である。
Asynchronous転送モードとIsochronous転送モードとは、各通信サイクル(通常1サイクルは、125μS)内において、混在させることが可能である。各転送モードは、サイクルの開始を示すサイクル・スタート・パケット(以下、CSP)の転送後に実行される。
【0030】
尚、各通信サイクル期間において、Isochronous転送モードは、Asynchronous転送モードよりも優先順位が高く設定されている。又、Isochronous転送モードの転送帯域は、各通信サイクル内で保証されている。
【0031】
(2)アーキテクチャ
次に、図3を用いて1394インタフェースの構成要素を説明する。
1394インタフェースは、機能的に複数のレイヤ(階層)から構成されている。図3において、1394インタフェースは、IEEE1394規格に準拠した通信ケーブル301を介して他のノードの1394インタフェースと接続される。又、1394インタフェースは、1つ以上の通信ポート302を有し、通信ポート302は、ハードウェア部に含まれるフィジカル・レイヤ303と接続される。
【0032】
図3において、ハードウェア部は、フィジカル・レイヤ303とリンク・レイヤ304とから構成されている。フィジカル・レイヤ303は、他のノードとの物理的、電気的なインタフェース、バスリセットの検出とそれに伴う処理、入出力信号の符号化/復号化、バス使用権の調停等を行う。又、リンク・レイヤ304は、通信パケットの生成と送受信、サイクルタイマの制御等を行なう。
【0033】
又、図3において、ファームウェア部は、トランザクション・レイヤ305とシリアル・バス・マネージメント306とを含んでいる。トランザクション・レイヤ305は、Asynchronous転送モードを管理し、各種のトランザクション(リード、ライト、ロック)を提供する。シリアル・バス・マネージメント306は、後述するCSRアーキテクチャに基づいて、自ノードの制御、自ノードの接続状態の管理、自ノードのID情報の管理、シリアルバスネットワークの資源管理を行う機能を提供する。
【0034】
以上、ハードウェア部とファームウェア部とが実質的に1394インタフェースを構成するものであり、それらの基本構成は、IEEE1394規格により規定されている。
【0035】
又、ソフトウェア部に含まれるアプリケーション・レイヤ307は、使用するアプリケーションソフトによって異なり、ネットワーク上でどのようにデータを通信するのかを制御する。例えば、デジタルVTRの動画像データの場合は、AV/Cプロトコルなどの通信プロトコルによって規定されている。
【0036】
(2−1)リンク・レイヤ304
図4は、リンク・レイヤ304の提供可能なサービスを示す図である。図4において、リンク・レイヤ304は、次の4つのサービスを提供する。即ち、(1)応答ノードに対して所定のパケットの転送を要求するリンク要求(LK_DATA.request)、(2)応答ノードに所定のパケットの受信を通知するリンク通知(LK_DATA.indication)、(3)応答ノードからのアクノリッジを受信したことを示すリンク応答(LK_DATA.response)、(4)要求ノードからのアクノリッジを確認するリンク確認(LK_DATA.confirmation)である。尚、リンク応答(LK_DATA.response)は、ブロードキャスト通信、Isochronousパケットの転送の場合には存在しない。
又、リンク・レイヤ304は、上述のサービスに基づいて、上述の2種類の転送方式、即ち、Asynchronous転送モード、Isochronous転送モードを実現する。
【0037】
(2−2)トランザクション・レイヤ305
図5は、トランザクション・レイヤ305の提供可能なサービスを示す図である。図5において、トランザクション・レイヤ305は、次の4つのサービスを提供する。即ち、(1)応答ノードに対して所定のトランザクションを要求するトランザクション要求(TR_DATA.request)、(2)応答ノードに所定のトランザクション要求の受信を通知するトランザクション通知(TR_DATA.indication)、(3)応答ノードからの状態情報(ライト、ロックの場合は、データを含む)を受信したことを示すトランザクション応答(TR_DATA.response)、(4)要求ノードからの状態情報を確認するトランザクション確認(TR_DATA.confirmation)である。
【0038】
又、トランザクション・レイヤ305は、上述のサービスに基づいてAsynchronous転送を管理し、次の3種類のトランザクション、即ち、(1)リード・トランザクション、(2)ライト・トランザクション、(3)ロック・トランザクションを実現する。
(1)リード・トランザクションは、要求ノードが応答ノードの特定アドレスに格納された情報を読み取る。
(2)ライト・トランザクションは、要求ノードが応答ノードの特定アドレスに所定の情報を書き込む。
(3)ロック・トランザクションは、要求ノードが応答ノードに対して参照データと更新データとを転送し、応答ノードの特定アドレスの情報とその参照データとを比較し、その比較結果に応じて特定アドレスの情報を更新データに更新する。
【0039】
(2−3)シリアル・バス・マネージメント306
シリアル・バス・マネージメント306は、具体的に、次の3つの機能を提供することができる。3つの機能とは、即ち、(1)ノード制御、(2)アイソクロナス・リソース・マネージャ(以下、IRM)、(3)バスマネージャである。
(1)ノード制御は、上述の各レイヤを管理し、他のノードとの間で実行されるAsynchronous転送を管理する機能を提供する。
(2)IRMは、他のノードとの間で実行されるIsochronous転送を管理する機能を提供する。具体的には、転送帯域幅とチャネル番号の割り当てに必要な情報を管理し、これらの情報を他のノードに対して提供する。
IRMは、ローカルバス上に唯一存在し、バスリセット毎に他の候補者(IRMの機能を有するノード)の中から動的に選出される。又、IRMは、後述のバスマネージャの提供可能な機能(接続構成の管理、電源管理、速度情報の管理等)の一部を提供してもよい。
(3)バスマネージャは、IRMの機能を有し、IRMよりも高度なバス管理機能を提供する。具体的には、より高度な電源管理(通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理)、より高度な速度情報の管理(各ノード間の最大転送速度の管理)、より高度な接続構成の管理(トポロジ・マップの作成)、これらの管理情報に基づくバスの最適化等を行ない、更にこれらの情報を他のノードに提供する機能を有する。
【0040】
又、バスマネージャは、シリアルバスネットワークを制御するためのサービスをアプリケーションに対して提供できる。ここで、サービスには、シリアルバス制御要求(SB_CONTROL.request)、シリアルバス・イベント制御確認(SB_CONTROL.confirmation)、シリアルバス・イベント通知(SB_CONTROL.indication)等がある。
【0041】
SB_CONTROL.requestは、アプリケーションがバスリセットを要求するサービスである。SB_CONTROL.confirmationは、SB_CONTROL.requestをアプリケーションに対して確認するサービスである。SB_CONTROL.indicationは、非同期に発生するイベントをアプリケーションに対して通知するサービスである。
【0042】
(3)アドレス指定
図6は、1394インタフェースにおけるアドレス空間を説明する図である。尚、1394インタフェースは、ISO/IEC 13213:1994に準じたCSR(Command and Status Register)アーキテクチャに従い、64ビット幅のアドレス空間を規定している。
【0043】
図6において、最初の10ビットのフィールド601は、所定のバスを指定するID番号に使用され、次の6ビットのフィールド602は、所定の機器(ノード)を指定するID番号に使用される。この上位16ビットを「ノードID」と呼び、各ノードはこのノードIDにより他のノードを識別する。又、各ノードは、このノードIDを用いて相手を識別した通信を行うことができる。
【0044】
残りの48ビットからなるフィールドは、各ノードの具備するアドレス空間(256Mバイト構造)を指定する。このアドレス空間をノードアドレス空間と呼ぶ。その内の20ビットのフィールド603は、アドレス空間を構成する複数の領域を指定する。
【0045】
フィールド603において、「0〜0xFFFFD」の部分は、メモリ空間と呼ばれる。「0xFFFFE」の部分は、プライベート空間と呼ばれ、各ノードで自由に利用できるアドレスである。又、「0xFFFFF」の部分は、レジスタ空間と呼ばれ、バスに接続されたノード間において共通の情報を格納する。各ノードは、レジスタ空間の情報を用いることにより、各ノード間の通信を管理することができる。
【0046】
最後の28ビットのフィールド604は、各ノードにおいて共通或いは固有となる情報が格納されるアドレスを指定する。
例えば、レジスタ空間において、最初の512バイトは、CSRアーキテクチャーのコア(CSRコア)レジスタ用に使用される。CSRコア・レジスタに格納される情報のアドレス及び機能を図7に示す。図中のオフセットは、「0xFFFFF0000000」からの相対位置である。
【0047】
次の512バイトは、シリアルバス用のレジスタとして使用される。シリアルバス・レジスタに格納される情報のアドレス及び機能を図8に示す。図中のオフセットは、「0xFFFFF0000200」からの相対位置である。
【0048】
その次の1024バイトは、Configuration ROM用に使用される。
【0049】
Configuration ROMには最小形式と一般形式とがあり、「0xFFFFF0000400」から配置される。最小形式のConfiguration ROMを図9に示す。図9において、ベンダIDは、IEEEにより各ベンダに対して固有に割り当てられた24ビットの数値である。
【0050】
又、一般形式のConfiguration ROMを図10に示す。図10において、上述のベンダIDは、Root Directory1002に格納されている。Bus Info Block1001とRoot Leaf1005とには、各ノードを識別する固有のID情報としてノードユニークIDを保持することが可能である。
【0051】
ここで、ノードユニークIDは、メーカ、機種に関わらず、1つのノードを特定することのできる固有のIDを定めるようになっている。ノードユニークIDは64ビットにより構成され、上位24ビットは上述のベンダIDを示し、下位48ビットは各ノードを製造するメーカにおいて自由に設定可能な情報(例えば、ノードの製造番号等)を示す。尚、このノードユニークIDは、例えばバスリセットの前後で継続して特定のノードを認識する場合に使用される。
【0052】
又、図10において、Root Directory1002には、ノードの基本的な機能に関する情報を保持することが可能である。詳細な機能情報は、Root Directory1002からオフセットされるサブディレクトリ(Unit Directories1004)に格納される。Unit Directories1004には、例えば、ノードのサポートするソフトウェアユニットに関する情報が格納される。具体的には、ノード間のデータ通信を行うためのデータ転送プロトコル、所定の通信手順を定義するコマンドセット等に関する情報が保持される。
【0053】
又、図10において、Node Dependent Info Directory1003には、デバイス固有の情報を保持することが可能である。Node Dependent Info Directory1003は、Root Directory1002によりオフセットされる。
【0054】
更に、図10において、Vendor Dependent Information1006には、ノードを製造、或いは販売するベンダ固有の情報を保持することができる。
【0055】
残りの領域は、ユニット空間と呼ばれ、各ノード固有の情報、例えば、各機器の識別情報(会社名、機種名等)や使用条件等が格納されたアドレスを指定する。ユニット空間のシリアルバス装置レジスタに格納される情報のアドレス及び機能を図11に示す。図中のオフセットは、「0xFFFFF0000800」からの相対位置である。
【0056】
尚、一般的に、異種のバスシステムの設計を簡略化したい場合、各ノードは、レジスタ空間の最初の2048バイトのみを使うべきである。つまり、CSRコア・レジスタ、シリアルバス・レジスタ、Configuration ROM、ユニット空間の最初の2048バイトの合わせて4096バイトで構成することが望ましい。
【0057】
(4)通信ケーブルの構成
図12にIEEE1394規格に準拠した通信ケーブルの断面図を示す。
【0058】
通信ケーブルは、2組のツイストペア信号線と電源ラインとにより構成されている。電源ラインを設けることによって、1394インタフェースは、主電源のOFFとなった機器、故障により電力低下した機器等にも電力を供給することができる。尚、電源線内を流れる電源の電圧は8〜40V、電流は最大電流DC1.5Aと規定されている。
【0059】
2組のツイストペア信号線には、DS−Link(Data/Strobe Link)符号化方式にて符号化された情報信号が伝送される。図13は、DS−Link符号化方式を説明する図である。
【0060】
このDS−Link符号化方式は、高速なシリアルデータ通信に適しており、その構成は、2組のより対線を必要とする。一組のより対線は、データ信号を送り、他のより対線は、ストローブ信号を送る構成になっている。受信側は、2組の信号線から受信したデータ信号とストローブ信号との排他的論理和をとることによって、クロックを再現することができる。
【0061】
尚、DS−Link符号化方式を用いることにより、1394インタフェースには、例えば次のような利点がある。(1)他の符号化方式に比べて転送効率が高い。(2)PLL回路が不要となり、コントローラLSIの回路規模を小さくできる。(3)アイドル状態であることを示す情報を送る必要が無いため、トランシーバ回路をスリープ状態とし易く、消費電力の低減が図れる。
【0062】
(5)バスリセット
各ノードの1394インタフェースは、ネットワークの接続構成に変化が生じたことを自動的に検出することができる。この場合、1394ネットワークは以下に示す手順によりバスリセットと呼ばれる処理を行う。尚、接続構成に変化は、各ノードの具備する通信ポートかかるバイアス電圧の変化により検知することができる。
【0063】
ネットワークの接続構成の変化(例えば、ノードの挿抜、ノードの電源のON/OFFなどによるノード数の増減)を検出したノード、又は新たな接続構成を認識する必要のあるノードは、1394インタフェースを介して、バス上にバスリセット信号を送信する。
【0064】
バスリセット信号を受信したノードの1394インタフェースは、バスリセットの発生を自身のリンク・レイヤ304に伝達すると共に、そのバスリセット信号を他のノードに転送する。バスリセット信号を受信したノードは、今まで認識していたネットワークの接続構成及び各機器に割り当てられたノードIDをクリアにする。最終的に全てのノードがバスリセット信号を検知した後、各ノードは、バスリセットに伴う初期化処理(即ち、新たな接続構成の認識と新たなノードIDの割り当て)を自動的に行う。
【0065】
尚、バスリセットは、先に述べたような接続構成の変化による起動の他に、ホスト側の制御によって、アプリケーション・レイヤ307がフィジカル・レイヤ303に対して直接命令を出すことによって起動させることも可能である。
【0066】
又、バスリセットが起動するとデータ転送は一時中断され、バスリセットに伴う初期化処理の終了後、新しいネットワークのもとで再開される。
【0067】
(6)バスリセット起動後のシーケンス
バスリセットの起動後、各ノードの1394インタフェースは、新たな接続構成の認識と新たなノードIDの割り当てとを自動的に実行する。以下、バスリセットの開始からノードIDの割り当て処理までの基本的なシーケンスを図14〜16を用いて説明する。
【0068】
図14は、図2の1394ネットワークにおけるバスリセット起動後の状態を説明する図である。
【0069】
図14において、ノードAは1つの通信ポート、ノードBは2つの通信ポート、ノードCは2つの通信ポート、ノードDは3つの通信ポート、ノードEは1つの通信ポート、ノードFは1つの通信ポートを具備している。各ノードの通信ポートには、各ポートを識別するためにポート番号を付されている。
【0070】
以下、図14におけるバスリセットの開始からノードIDの割り当てまでを図15のフローチャートを用いて説明する。
【0071】
図15において、1394ネットワークを構成する各ノードA〜Fは、バスリセットが発生したか否かを常時監視している(ステップS1501)。接続構成の変化を検出したノードからバスリセット信号が出力されると、各ノードは以下の処理を実行する。
【0072】
バスリセットの発生後、各ノードは、夫々の具備する通信ポート間において親子関係の宣言を行なう(ステップS1502)。
【0073】
各ノードは、全てのノード間の親子関係が決定されるまで、ステップS1502の処理を繰り返し行なう(ステップS1503)。
【0074】
全てのノード間の親子関係が決定した後、1394ネットワークは、ネットワークの調停を行なうノード、即ちルートを決定する。(ステップS1504)。
【0075】
ルートを決定した後、各ノードの1394インタフェース夫々は、自己のノードIDを自動的に設定する作業を実行する(ステップS1505)。
【0076】
全てのノードに対してノードIDの設定がなされるまで、各ノードは所定の手順に基づきステップS1505の処理を実行する(ステップS1506)。
【0077】
最終的に全てのノードに対してノードIDが設定された後、各ノードは、Isochronous転送或いはAsynchronous転送を実行する(ステップS1507)。
【0078】
ステップS1507の処理を実行すると共に、各ノードの1394インタフェースは、再びバスリセットの発生を監視する。バスリセットが発生した場合には、ステップS1501以降の処理を再び実行する。
【0079】
以上の手順により、各ノードの1394インタフェースは、バスリセットが起動する毎に、新たな接続構成の認識と新たなノードIDの割り当てとを自動的に実行することができる。
【0080】
(7)親子関係の決定
次に、図16を用いて、図15に示したステップS1502の処理(即ち、各ノード間の親子関係を認識する処理)について詳細に説明する。
【0081】
図16において、バスリセットの発生後、1394ネットワーク上の各ノードA〜Fは、自分の具備する通信ポートの接続状態(接続又は未接続)を確認する(ステップS1601)。
【0082】
通信ポートの接続状態の確認後、各ノードは、他のノードと接続されている通信ポート(以下、接続ポート)の数をカウントする(ステップS1602)。
【0083】
ステップS1602の処理の結果、接続ポートの数が1つである場合、そのノードは、自分が「リーフ」であると認識する(ステップS1603)。ここで、リーフとは、1つのノードとのみ接続されているノードのことである。
【0084】
リーフとなるノードは、その接続ポートに接続されているノードに対して、「自分は子(Child)」であることを宣言する(ステップS1604)。このとき、リーフは、その接続ポートが「親ポート(親ノードと接続された通信ポート)」であると認識する。
【0085】
ここで、親子関係の宣言は、まず、ネットワークの末端であるリーフとブランチとの間にて行われ、続いて、ブランチとブランチとの間で順次に行われる。各ノード間の親子関係は、早く宣言の行なえる通信ポートから順に決定される。又、各ノード間において、子であることを宣言した通信ポートは「親ポート」であると認識され、その宣言を受けた通信ポートは「子ポート(子ノードと接続された通信ポート)」であると認識される。例えば、図14において、ノードA、E、Fは、自分がリーフであると認識した後、親子関係の宣言を行う。これにより、ノードA−B間では子−親、ノードE−D間では子−親、ノードF−D間では子−親と決定される。
【0086】
又、ステップS1602の処理の結果、接続ポートの数が2つ以上の場合、そのノードは、自分を「ブランチ」であると認識する(ステップS1605)。ここで、ブランチとは、2つ以上のノードと接続されているノードのことである。
【0087】
ブランチとなるノードは、各接続ポートのノードから親子関係の宣言を受け付ける(ステップS1606)。宣言を受け付けた接続ポートは、「子ポート」として認識される。
【0088】
1つの接続ポートを「子ポート」と認識した後、ブランチは、まだ親子関係の決定されていない接続ポート(即ち、未定義ポート)が2つ以上あるか否かを検出する(ステップS1607)。その結果、未定義ポートが2つ以上ある場合、ブランチは、再びステップS1606の動作を行う。
【0089】
ステップS1607の結果、未定義ポートが1つだけ存在する場合、ブランチは、その未定義ポートが「親ポート」であると認識し、そのポートに接続されているノードに対して「自分は子」であることを宣言する(ステップS1608、S1609)。
【0090】
ここで、ブランチは、残りの未定義ポートが1つになるまで自分自身が子であると他のノードに対して宣言することができない。例えば、図14において、ノードB、C、Dは、自分がブランチであると認識すると共に、リーフ或いは他のブランチからの宣言を受け付ける。ノードDは、D−E間、D−F間の親子関係が決定した後、ノードCに対して親子関係の宣言を行っている。又、ノードDからの宣言を受けたノードCは、ノードBに対して親子関係の宣言を行っている。
【0091】
又、ステップS1608の処理の結果、未定義ポートが存在しない場合(つまり、ブランチの具備する全ての接続ポートが親ポートとなった場合)、そのブランチは、自分自身がルートであることを認識する。(ステップS1610)。
【0092】
例えば、図14において、接続ポートの全てが親ポートとなったノードBは、1394ネットワーク上の通信を調停するルートとして他のノードに認識される。ここで、ノードBがルートと決定されたが、ノードBの親子関係を宣言するタイミングが、ノードCの宣言するタイミングに比べて早い場合には、他のノードがルートになる可能性もある。即ち、宣言するタイミングによっては、どのノードもルートとなる可能性がある。従って、同じネットワーク構成であっても同じノードがルートになるとは限らない。
【0093】
このように全ての接続ポートの親子関係が宣言されることによって、各ノードは、1394ネットワークの接続構成を階層構造(ツリー構造)として認識することができる(ステップS1611)。尚、上述の親ノードは階層構造における上位であり、子ノードは階層構造における下位となる。
【0094】
(8)ノードIDの割り当て
図17は、図15に示したステップS1505の処理(即ち、自動的に各ノードのノードIDを割り当てる処理)を詳細に説明するフローチャートである。ここで、ノードIDは、バス番号とノード番号とから構成されるが、本実施例では、各ノードを同一バス上に接続するものとし、各ノードには同一のバス番号が割り当てられるものとする。
【0095】
図17において、ルートは、ノードIDが未設定のノードが接続されている子ポートの内、最小番号を有する通信ポートに対してノードIDの設定許可を与える(ステップS1701)。
【0096】
尚、図17において、ルートは、最小番号の子ポートに接続されている全ノードのノードIDを設定した後、その子ポートを設定済とし、次に最小となる子ポートに対して同様の制御を行なう。最終的に子ポートに接続された全てのノードのID設定が終了した後、ルート自身のノードIDを設定する。尚、ノードIDに含まれるノード番号は、基本的にリーフ、ブランチの順に0、1、2…と割り当てられる。従って、ルートが最も大きなノード番号を有することになる。
【0097】
ステップS1701において、設定許可を得たノードは、自分の子ポートの内、ノードIDが未設定となるノードを含む子ポートがあるか否かを判断する(ステップS1702)。
【0098】
ステップS1702において、未設定ノードを含む子ポートが検出された場合、上述の設定許可を得たノードは、その子ポートに直接接続されたノードに対してその設定許可を与えるように制御する(ステップS1703)。
【0099】
ステップS1703の処理後、上述の設定許可を得たノードは、自分の子ポートの内、ノードIDが未設定であるノードを含む子ポートがあるか否かを判断する(ステップS1704)。ここで、ステップS1704の処理後、未設定ノードを含む子ポートの存在が検出された場合、そのノードは、再びステップS1703の処理を実行する。
【0100】
又、ステップS1702或いはS1704において、未設定ノードを含む子ポートが検出されなかった場合、設定許可を得たノードは、自分自身のノードIDを設定する(ステップS1705)。
【0101】
自分のノードIDを設定したノードは、自己のノード番号、通信ポートの接続状態に関する情報等を含んだセルフIDパケットをブロードキャストする(ステップS1706)。尚、ブロードキャストとは、あるノードの通信パケットを、1394ネットワークを構成する不特定多数のノードに対して転送することである。
【0102】
ここで、各ノードは、このセルフIDパケットを受信することにより、各ノードに割り当てられたノート番号を認識することができ、自分に割り当てられるノード番号を知ることができる。例えば、図14において、ルートであるノードBは、最小ポート番号「#1」の通信ポートに接続されたノードAに対してノードID設定の許可を与える。ノードAは、自己のノード番号「No.0」と割り当て、自分自身に対してバス番号とノード番号とからなるノードIDを設定する。又、ノードAは、そのノード番号を含むセルフIDパケットをブロードキャストする。
【0103】
図18にセルフIDパケットの構成例を示す。図18において、1801はセルフIDパケットを送出したノードのノード番号を格納するフィールド、1802は対応可能な転送速度に関する情報を格納するフィールド、1803はバス管理機能(バスマネージャの能力の有無等)の有無を示すフィールド、1804は電力の消費及び供給の特性に関する情報を格納するフィールドである。
【0104】
又、図18において、1805はポート番号「#0」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールド、1806はポート番号「#1」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールド、1807はポート番号「#2」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールドである。
【0105】
尚、セルフIDパケットを送出するノードにバスマネージャとなり得る能力がある場合には、フィールド1803に示すコンテンダビットを「1」とし、なり得る能力がなければ、コンテンダビットを0とする。
【0106】
ここで、バスマネージャとは、上述のセルフIDパケットに含まれる各種の情報に基づいて、バスの電源管理(通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理する)、速度情報の管理(各ノードの対応可能な転送速度に関する情報から各ノード間の最大転送速度を管理する)、トポロジ・マップ情報の管理(通信ポートの親子関係情報からネットワークの接続構成を管理する)、トポロジ・マップ情報に基づくバスの最適化等を行ない、それらの情報を他のノードに提供する機能を有するノードである。これらの機能により、バスマネージャとなるノードは1394ネットワーク全体のバス管理を行なうことができる。
【0107】
ステップS1706の処理後、ノードIDの設定を行ったノードは、親ノードがあるか否かを判断する(ステップS1707)。親ノードがある場合、その親ノードが、ステップS1702以下の処理を再び実行する。そして、まだノードIDの設定されていないノードに対して許可を与える。
【0108】
又、親ノードが存在しない場合、そのノードは、ルート自身であると判断される。ルートは、全ての子ポートに接続されたノードに対してノードIDが設定されたか否かを判別する(ステップS1708)。
【0109】
ステップS1708において、全てのノードに対するID設定処理が終了しなかった場合、ルートは、そのノードを含む子ポートの内、最小番号となる子ポートに対してID設定の許可を与える(ステップS1701)。その後、ステップS1702以下の処理を実行する。
【0110】
又、全てのノードに対するID設定処理が終了した場合、ルートは、自分自身のノードIDの設定を実行する(ステップS1709)。ノードIDの設定後、ルートは、セルフIDパケットをブロードキャストする(ステップS1710)。
【0111】
以上の処理によって、1394ネットワークは、各ノードに対して自動的にノードIDを割り当てることができる。
【0112】
ここで、ノードIDの設定処理後、複数のノードがバスマネージャの能力を具備する場合、ノード番号の最も大きいノードがバスマネージャとなる。つまり、ネットワーク内で最大となるノード番号を持つルートがバスマネージャになり得る機能を有している場合には、ルートがバスマネージャとなる。
【0113】
しかしながら、ルートにその機能が備わっていない場合には、ルートの次に大きいノード番号を具備するノードがバスマネージャとなる。又、どのノードがバスマネージャになったかについては、各ノードがブロードキャストするセルフIDパケット内のコンテンダビット1803をチェックすることにより把握することができる。
【0114】
(9)アービトレーション
図19は、図1の1394ネットワークにおけるアービトレーションを説明する図である。
【0115】
1394ネットワークでは、データ転送に先立って、必ずバス使用権のアービトレーション(調停)を行なう。1394ネットワークは、論理的なバス型ネットワークであり、各ノードから転送された通信パケットを他のノードに中継することによって、ネットワーク内の全てのノードに同じ通信パケットを転送することのできる。従って、通信パケットの衝突を防ぐために、必ずアービトレーションが必要となる。これによって、ある時間において一つのノードのみが転送を行なうことができる。
【0116】
図19(a)は、ノードBとノードFとが、バス使用権の要求を発している場合について説明する図である。
【0117】
アービトレーションが始まるとノードB、Fは、夫々親ノードに向かって、バス使用権の要求を発する。ノードBの要求を受けた親ノード(即ち、ノードC)は、自分の親ノード(即ち、ノードD)に向かって、そのバス使用権を中継する。この要求は、最終的に調停を行なうルート(ノードD)に届けられる。
【0118】
バス使用要求を受けたルートは、どのノードにバスを使用させるかを決める。この調停作業はルートとなるノードのみが行なえるものであり、調停によって勝ったノードにはバスの使用許可が与えられる。
【0119】
図19(b)は、ノードFの要求が許可され、ノードBの要求が拒否されたことを示す図である。
【0120】
アービトレーションに負けたノードに対してルートは、DP(Data prefix)パケットを送り、拒否されたことを知らせる。拒否されたノードは、次回のアービトレーションまでバス使用要求を待機する。
【0121】
以上のようにアービトレーションを制御することによって、1394ネットワークは、バスの使用権を管理することができる。
【0122】
(10)通信サイクル
Isochronous転送モードとAsynchronous転送モードとは、各通信サイクル期間内において時分割に混在させることができる。ここで、通信サイクルの期間は、通常、125μSである。
【0123】
図20は、1通信サイクルにおいてIsochronous転送モードとAsynchronous転送モードとを混在させた場合を説明する図である。
【0124】
Isochronous転送モードは、Asynchronous転送モードより優先して実行される。その理由は、サイクル・スタート・パケットの後、Asynchronous転送を起動するために必要なアイドル期間(subaction gap)が、Isochronous転送を起動するため必要なアイドル期間(Isochronous gap)よりも長くなるように設定されているためである。これにより、Isochronous転送は、Asynchronous転送に優先して実行される。
【0125】
図20において、各通信サイクルのスタート時には、サイクル・スタート・パケット(以下、CSP)が所定のノードから転送される。各ノードは、このCSPを用いて時刻調整を行うことによって、他のノードと同じ時間を計時することができる。
【0126】
(11)Isochronous転送モード
Isochronous転送モードは、同期型の転送方式である。Isochronousモード転送は、通信サイクルの開始後、所定の期間において実行可能である。又、Isochronous転送モードは、リアルタイム転送を維持するために、各サイクル毎に必ず実行される。
【0127】
Isochronous転送モードは、特に動画像データや音声データ等のリアルタイムな転送を必要とするデータの転送に適した転送モードである。Isochronous転送モードは、Asynchronous転送モードのように1対1の通信ではなく、ブロードキャスト通信である。つまり、あるノードから送出されたパケットは、ネットワーク上の全てのノードに対して一様に転送される。尚、Isochronous転送には、ack(受信確認用返信コード)は存在しない。
【0128】
図20において、チャネルe(ch e)、チャネルs(ch s)、チャネルk(chk)は、各ノードがIsochronous転送を行う期間を示す。1394インタフェースでは、複数の異なるIsochronous転送を区別するために、夫々異なるチャネル番号を与えている。これにより、複数ノード間でのIsochronous転送が可能となる。ここで、このチャネル番号は、送信先を特定するものではなく、データに対する論理的な番号を与えているに過ぎない。
【0129】
又、図20に示したIsochronous gapとは、バスのアイドル状態を示すものである。このアイドル状態が一定時間を経過した後、Isochronous転送を希望するノードは、バスが使用できると判断し、アービトレーションを実行する。
【0130】
次に、図21にIsochronous転送モードに基づいて転送される通信パケットのフォーマットを示す。以下、Isochronous転送モードに基づいて転送される通信パケットを、Isochronousパケットと称する。
【0131】
図21において、Isochronousパケットはヘッダ部2101、ヘッダCRC2102、データ部2103、データCRC2104から構成される。
【0132】
ヘッダ部2101には、データ部2103のデータ長を格納するフィールド2105、Isochronousパケットのフォーマット情報を格納するフィールド2106、Isochronousパケットのチャネル番号を格納するフィールド2107、パケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード(tcode)を格納するフィールド2108、同期化コードを格納するフィールド2109がある。
【0133】
(12)Asynchronous転送モード
Asynchronous転送モードは、非同期型の転送方式である。Asynchronous転送は、Isochronous転送期間の終了後、次の通信サイクルが開始されるまでの間(即ち、次の通信サイクルのCSPが転送されるまでの間)、実行可能である。
【0134】
図20において、最初のサブアクション・ギャップ(subaction gap)は、バスのアイドル状態を示すものである。このアイドル時間が一定値になった後、Asynchronous転送を希望するノードは、バスが使用できると判断し、アービトレーションを実行する。
【0135】
アービトレーションによりバスの使用権を得たノードは、図22に示すパケットを所定のノードに対して転送する。このパケットを受信したノードは、ack(受信確認用返送コード)或いは応答パケットをack gap後に返送する。
【0136】
図22は、Asynchronous転送モードに基づく通信パケットのフォーマットを示す図である。以下、Asynchronous転送モードに基づいて転送される通信パケットを、Asynchronousパケットと称する。
【0137】
図22において、Asynchronousパケットは、ヘッダ部2201、ヘッダCRC2202、データ部2203、データCRC2204から構成される。
【0138】
ヘッダ部2201において、フィールド2205には宛先となるノードのノードID、フィールド2206にはソースとなるノードのノードID、フィールド2207には一連のトランザクションを示すためのラベル、フィールド2208には再送ステータスを示すコード、フィールド2209にはパケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード(tcode)、フィールド2210には優先順位、フィールド2211には宛先のメモリ・アドレス、フィールド2212にはデータ部のデータ長、フィールド2213には拡張されたトランザクション・コードが格納される。
【0139】
又、Asynchronous転送は、自己ノードから相手ノードへの1対1の通信である。転送元ノードから転送されたパケットは、ネットワーク中の各ノードに行き渡るが、自分宛てのアドレス以外のものは無視される。従って、宛先となるノードのみが、そのパケットを読み込むことができる。
【0140】
尚、Asynchronous転送中に次のCSPを転送すべき時間に至った場合、無理に転送を中断せず、その転送が終了した後、次のCSPを送信する。これにより、1つの通信サイクルが125μS以上続いたときは、その分、次の通信サイクル期間を短縮する。このようにすることによって、1394ネットワークは、ほぼ一定の通信サイクルを保持することができる。
【0141】
(13)デバイス・マップ
デバイスマップを作成するためにアプリケーションが1394ネットワークのトポロジーを知る手段として、IEEE1394規格上は以下の手段がある。
1.バスマネージャーのトポロジーマップレジスターをリードする
2.バスリセット時にセルフIDパケットから推定する
しかし上記1、2の手段では、各ノードの親子関係によるケーブル接続順のトポロジーは判明するものの、物理的な位置関係のトポロジーを知ることは出来ない(実装されていないポートまで見えてしまう、といった問題もある)。
【0142】
また、デバイスマップを作成するための情報を、コンフィギュレーションROM以外のデータベースとして持つ、といった手段もあるが、その場合、各種情報を得る手段はデータベースアクセスのためのプロトコルに依存してしまう。
【0143】
ところで、コンフィギュレーションROM自体やコンフィギュレーションROMを読む機能は、IEEE1394規格を遵守したデバイスが必ず持つものである。そこで、デバイスの位置、機能等の情報を各ノードのコンフィギュレーションROMに格納し、それらをアプリケーションから読む機能を与えることにより、データベースアクセス、データ転送等の特定のプロトコルに依存することなく、各ノードのアプリケーションがいわゆるデバイスマップ表示機能を実装することができる。
【0144】
コンフィグレーションROMにはノード固有の情報として物理的な位置、機能などが格納可能であり、デバイスマップ表示機能の実現に使用することが可能である。
【0145】
この場合、アプリケーションが物理的な位置関係による1394ネットワークトポロジーを知る手段としては、バスリセット時やユーザーからの要求時に、各ノードのコンフィギュレーションROMを読み取ることによ り、1394ネットワークのトポロジーを知る、という方法が可能となる。さらに、コンフィギュレーションROM内にノードの物理的位置のみならず、機能などの各種ノード情報も記述することによって、コンフィギュレーションROMを読むことで、ノードの物理的位置と同時に各ノードの機能情報等も得ることができる。アプリケーションが各ノードのコンフィギュレーションROM情報を取得する際には、指定ノードの任意のコンフィギュレーションROM情報を取得するAPIを用いる。
【0146】
このような手段を用いることにより、IEEE1394ネットワーク上のデバイスのアプリケーションは、物理的なトポロジーマップ、各ノードの機能マップなど、用途に応じて様々なデバイスマップを作成することができ、ユーザーが必要な機能をもつデバイスを選択する、といったことも可能となる。
【0147】
<1394ブリッジの概要>
本実施形態の構成、並びに接続デバイスについて説明する。
【0148】
以下、本実施例のデジタルインタフェースに適用されるIEEE1394ブリッジの技術について簡単に説明する。尚、IEEE1394ブリッジ(以下、1394ブリッジ)規格はIEEEp1394.1分科会にて策定中である。
【0149】
1394規格では、ひとつの1394バス上には最大63のノードまで接続可能であり、そのホップ数は16までとされている。
63個以上の1394ノードを1394ネットワークに接続したい場合、また遠隔地にあるなどの理由で16ホップ以上の接続を行なう必要がある機器同士を接続したい場合などには一般に1394ブリッジが使われる。
【0150】
IEEE1394はIEEE1212規格に従った64ビット固定アドレッシングを使用し、10ビットをバスIDとして定義をしている為、ローカルバスを指定するID1023を除いた最大1023個のバスを1394ブリッジ経由で接続し1394ネットワークを構成することが可能となる。
【0151】
1394ブリッジの果たす主な機能は、ブリッジを経由したバス間の1394ノードトランザクションの制御である。
【0152】
1394トランザクションの場合、トランザクションを発行するノード、発行先ノードの指定は〈IEEE1394の技術の概要〉の欄で記述のようにノードIDを使い行なわれる。1394ブリッジは接続する2つのバスのトポロジ情報、ノードID情報等の情報をテーブルとして持ち、接続する2つバスに相手のバス・ノード情報を開示することによりバス間のトランザクションを可能にしている。
【0153】
また、1394バスの場合、デバイスノードの追加接続といった接続形態に変化が生じたり、あるノードが意図的に指示を行なうことによりにバスリセットが発生し、バスリセットを起点に自動的にノードIDの再割り当てを行なうためにバスリセットのシーケンス、ノードID決定のシーケンスが行なわれ、新たなトポロジが生成される。このシーケンスの詳細については上記〈IEEE1394の技術の概要〉の〈バスリセットのシーケンス〉、〈ノードID決定のシーケンス〉の項で説明されているので割愛する。
【0154】
この特性により、接続するバスのトポロジ・ノードID情報は動的に変化する為、その情報のアップデートもブリッジは行なう。
【0155】
一方で、1394のバスリセットシーケンスが行なわれている間はそのバス内のデータ転送が中断される上に、ノードIDの再割り当てという複雑なシーケンスが行われる為、バスリセットシーケンスの発生が必要のない他のバスにバスリセット信号を伝搬させることは非常に非効率とされている為、1394ブリッジは接続された一方のバスリセット信号を他方のバスには伝搬させないということになっている。
【0156】
その他のブリッジの機能としては、複数のバスブリッジが接続された複数バス構成のネットワークにおいて、1394ブリッジ同士の調停、ブリッジの情報交換によるパケットルーティング機能などが挙げられる。
【0157】
以上が、1394インタフェースを用いて構成される通信システムの構成及び機能に関する説明である。
【0158】
<データ転送手順>
次に、図1の送信装置1、および受信装置2について説明する。送信装置1は、受信装置2に対して、トランザクションレイヤ305により提供される機能を利用して、データを送信する。もちろん送信装置と受信装置は双方とも送受信機能を備えた対等の装置であっても良い。そして、この本実施形態は、図3のトランザクションレイヤ305のサービスを利用してアプリケーションレイヤ307にサービスを提供する、中間的な層のプロトコルを開示するものである。本実施形態では、トランザクション305について既に説明したとおりに動作することから、この中間層プロトコルについて説明する。アプリケーションレイヤ307は例えばこの中間層プロトコルを実現するプログラム等に対して、送信側ではデータを提供する。一方受信側では、例えば受信したデータにより特定されるアプリケーションプログラム等が起動して受信したデータが処理される。以下では送信装置や受信装置の動作を説明しているが、説明の対象はこの中間層プロトコルであって、アプリケーションレイヤやトランザクションレイヤにおける手順は省略している。
【0159】
図23は、本実施の形態の図1に示した送信装置1および受信装置2のノードアドレス空間を示す図である。ノードアドレス空間とは、図6に説明した通りのもので、48ビットのアドレスで特定されるメモリ空間である。図23中、コントロールウィンドウ2301は、送信装置1、および受信装置2とも備え、接続の制御、およびデータ転送のフローコントロールに用いる。本実施の形態においては、ノードアドレス空間のアドレスは、各装置のConfigROM2300のNodeDependentInfoDirectoryに記述し(図示せず)、他ノードから知ることができるものとする。データウィンドウ2302は受信装置2が備えるもので、送信装置1はこの領域に、図5で説明したライト・トランザクションを用いてデータを送信する。データウインドウ2302のアドレスおよびサイズは、受信装置2によって記憶されており、データ転送の進行とともに更新される。そして、受信装置2から送信装置1に、前述のコントロールウィンドウ2301を用いて通知される。また、データイメージは送信装置1から送信されるファイルイメージをノードアドレス空間にマッピングしたイメージであり、データウィンドウ2302は、このデータイメージをカバーするようにスライドする。
【0160】
図24はコントロールウィンドウのデータフォーマットを示す。図中、コマンド2401は、16ビット幅のデータで接続およびフローコントロールのためのコマンドを記述する。ウィンドウアドレス上位2402は16ビット幅でデータウィンドウのノードアドレス空間内でのアドレスの上位16ビットを示す。ウィンドウアドレス下位2403は同じく下位32ビットを示す。ウィンドウサイズ2404はデータウィンドウのバイトサイズを64ビット幅で示す。
【0161】
図24で示すコントロールウインドウと同じ形式のコマンドが送信装置と受信装置との間で交換される。このコマンドもデータと同様に、ある装置が他の装置のライト・トランザクションによりコントロールウインドウ2301に書き込むことで交換される。
【0162】
コマンドの値と意味を図25に示す。接続要求コマンド(C)2501は、送信装置から受信装置に対してコネクションの設立のために送信されるコマンドであり、ウィンドウアドレス、ウィンドウサイズは使用しない。接続許可応答コマンド(A)2502は受信装置から送信装置に対して送られる、接続要求コマンドに対して接続を許可する応答であり、必要な場合にはウィンドウアドレス、ウィンドウサイズを使用する。接続要求に対する接続拒否応答コマンド(B)2503は受信装置から送信装置に対して送られ、接続要求コマンドに対して接続を拒否する応答であり、ウィンドウアドレス、ウィンドウサイズは使用しない。ウィンドウ通知コマンド(N)2504は受信装置から送信装置に対してウインドウアドレスを通知するためのコマンドであり、ウィンドウアドレス、ウィンドウサイズを使用する。切断要求コマンド(T)2505は、送信装置から受信装置に対してコネクションの切断を要求するためのコマンドであり、ウィンドウアドレス、ウィンドウサイズは使用しない。
【0163】
図26は送信装置1の状態遷移を示し、ROM13に格納されたプログラムをCPU12が実行することにより実現する。図中、TX0は初期状態、TX1接続応答待ち状態、TX2はデータ送信状態、TX3はウィンドウ通知待ち状態、TX4はウィンドウ検出状態を示す。TX0aは受信装置2への接続要求送信によるTX1への状態遷移を示す。TX1aは接続許可応答受信によるTX2への状態遷移を示す。TX1bは接続応答を受信できずタイムアウトによるか、接続拒否応答の受信によるTX0への状態遷移を示す。TX2aはデータウィンドウへの書き込みがデータウィンドウサイズに達したことによるTX3への状態遷移を示す。TX2bはウィンドウ通知の受信によるTX4への状態遷移を示す。TX2cは終了要求送信によるTX0への状態遷移を示す。TX3aはウィンドウ通知の受信によるTX4への状態遷移を示す。TX4aは新たなウィンドウアドレス、ウィンドウサイズの検出によるTX2への状態遷移を示す。
【0164】
このように、いったん接続が確立されれば、切断要求によって接続が切断されるまで、データ送信状態とウインドウ通知待ち状態とウインドウ検出状態とを、TX2a,TX3a,TX4aあるいはTX2b,TX4aの径路に沿って遷移する。
【0165】
すなわち、送信装置は、受信装置からウインドウ通知により通知されるデータウインドウのアドレス及びサイズをメモリ(送信データ管理メモリ)に記憶しておく。そして、データを送信する都度、送信したサイズに応じて送信データ管理メモリを更新する。すなわち、送信したサイズぶんだけ、送信データ管理メモリで表示される残りサイズから差し引く。そして、残りサイズが0になれば、すなわち、通知されたデータウインドウに空き領域がなくなればウインドウ通知待ち状態となる。
【0166】
ウインドウ通知待ち状態あるいはデータ送信状態においてウインドウ通知があれば、ウインドウ検出状態となる。その状態においては、ウインドウ通知からデータウインドウのアドレス及びサイズを検出して、検出したアドレス及びサイズによって送信データ管理メモリの内容を更新し、データ送信状態に移行する。送信データ管理メモリの更新は、ウインドウ通知により通知されたアドレス情報及びサイズ情報から得られるデータウインドウ末尾のアドレスが、送信データ管理メモリにより管理されているデータウインドウのアドレス及びサイズから得られるデータウインドウ末尾のアドレスと一致するように、サイズ情報を更新することで行われる。これは、データ送信とウインドウ通知が入れ違いになった場合には、送信装置が管理するデータウインドウのアドレスの方が最新の値となるためである。
【0167】
こうして、コネクションがいったん設定されたなら、送信装置はデータ送信と通知されたデータウインドウサイズの更新を繰返し、大サイズのデータをデータウインドウサイズに合わせて送信することができる。データ送信に際しては、送信順序がデータの並びそのものを表すために、受信側は、受信したデータを受信した順序で再配置することで、送信データを再構成でき、それをひとまとまりのデータとして処理することができる。
【0168】
図27は受信装置2の状態遷移を示し、ROM23に格納されたプログラムをCPU22が実行することにより実現する。図中、RX0は初期状態、RX1は受信開始状態、RX2はデータ受信状態、RX3はウィンドウ更新待ち状態、RX4はウィンドウ更新状態を示す。RX0aは接続要求受信によるRX1への状態遷移を示す。RX1aはウィンドウ通知を含む接続許可応答の送信によるRX2への状態遷移を示す。RX1bは接続拒否応答の送信によるRX0への状態遷移を示す。RX2aは受信データがウィンドウサイズに達したことによるRX3への状態遷移を示す。RX2bは受信データ処理によるRX4への状態遷移を示す。RX2cは終了要求受信によるRX0への状態遷移を示す。RX3aは受信データ処理によるRX4への状態遷移を示す。RX4aはウィンドウ更新によるRX2への状態遷移を示す。
【0169】
このように、いったん接続が確立されれば、切断要求によって接続が切断されるまで、データ受信状態とウインドウ更新待ち状態とウインドウ更新状態とを、RX2a,RX3a,RX4aあるいはRX2b,RX4aの径路に沿って遷移する。
【0170】
すなわち、受信装置はコントロールウインドウのアドレス情報及びサイズ情報により空いているデータウインドウを管理し、サイズが0すなわち通知したデータウインドウに空き領域がなくなれば、ウインドウ更新待ち状態となる。
【0171】
ウインドウ更新待ち状態あるいはデータ受信状態において、データウインドウのために利用できる空き領域があれば、あるいはあらたに生じれば、ウインドウ更新状態となる。この状態では、コントロールウインドウに含まれるデータウインドウのアドレス及びサイズを更新し、送信装置に対して更新されたウインドウ通知を発行する。そしてデータ受信状態に戻る。
【0172】
こうして、コネクションがいったん設定されたなら、受信装置はデータ受信とデータウインドウの更新およびウインドウ通知を繰返し、大サイズのデータであってもデータウインドウサイズに合わせて送信させることができる。データ受信に際しては、受信順序がデータの並びそのものを表すために、受信装置は、受信したデータを受信した順序で再配置することで、ひとまとまりのデータとして処理することができる。例えば、ウインドウサイズずつ受信したデータを、アプリケーションプログラムにより指定されるバッファに一連のデータとして格納し、切断要求の受信によってそのコネクションにおける全データを受信したものと判断し、そのデータをアプリケーションプログラムに引き渡す。
【0173】
以下、データ通信フローの一例を示しながら、データ通信処理を説明する。送信装置1は外部装置15に格納したサイズnバイトのファイルを受信装置2に転送するものとし、受信装置2は受信したファイルを外部装置25に格納するものとする。図28は、データ通信フローの一例を示す。なお、コマンド名は図25に示したような略称(かっこ書きで示したもの)で示しており、コマンド名に続くかっこ内の数値は(ウインドウ上位アドレス:ウインドウ下位アドレス,ウインドウサイズ)を示す。図25に示したように、パラメータを使用しないコマンドについては(0:0,0)で示す。
【0174】
図28において、コマンドC(0:0,0)2801は送信装置1から受信装置2への接続要求を示し、受信装置2のコントロールウィンドウにライト・トランザクションを使って書き込む。これにより送信装置1の状態は、初期状態TX0から接続応答待ち状態TX1に遷移する(TX1a)。
【0175】
受信装置2は接続要求を受け取って、その状態は初期状態RX0から受信開始状態RX1へ遷移する(RX1a)。受信装置2は、送信を許可する場合には、接続許可応答コマンドA(1:0,3072)2802を、送信装置1のコントロールウィンドウ2301にブロックライトトランザクションを使って書き込む。受信装置2の状態は、接続許可応答を送信して受信開始状態RX1からデータ受信状態RX2へ遷移する(RX1a)。送信装置1は接続許可応答を受け取って、受信装置2のデータウィンドウの上位アドレス1、下位アドレス0、サイズ3072バイトを検出し、その状態は、応答待ち状態TX1からデータ送信状態TX2へ遷移する(TX1a)。ここで、送信装置1はファイルの先頭からウインドウサイズである3072バイトを読み出して、送信の準備をする。
【0176】
コマンドW(1:0,1024)2803は送信装置1から受信装置2へのデータ転送を示す。送信装置1は、受信装置2のノードアドレス空間の上位アドレス1、下位アドレス0で特定されるアドレス(010000H:Hは16進数を表す)に、ライト・トランザクションを使って先に読み出したファイルの先頭の1024バイトのデータを書き込む。続く、コマンドW(1:1024,1024)2804も、同じく送信装置1から受信装置2へのデータ転送を示す。送信装置1は、受信装置2のノードアドレス空間の上位アドレス1、下位アドレス1024で特定されるアドレス(010400H)に、ライト・トランザクションを使って次の1024バイトの書き込みを行う。W(1:2048,1024)2805も同様である。送信装置1は、受信装置2のノードアドレス空間の上位アドレス1、下位アドレス2048で特定されるアドレス(010800H)に、ライト・トランザクションを使って次の1024バイトの書き込みを行う。
【0177】
ここで、送信装置1は受信装置2から通知されたデータウィンドウサイズである3072バイト(1024バイト×3回)分のデータ送信を完了する。そしてその状態は、データ送信状態TX2からウインドウ通知待ち状態TX3へ遷移する(TX2a)。
【0178】
一方、受信装置2はW(1:1024,1024)2804を受信したあと受信データを処理して、データウィンドウを上位アドレス1、下位アドレス2048、サイズ3072バイトに更新し(RX2b)、ウィンドウ通知N(1:2048,3072)2806を、送信装置1のコントロールウィンドウにライト・トランザクションを使って送信する(RX4a)。
【0179】
このあと、受信装置2は、送信装置1からW(1:2048,1024)2805を受信する。これによって上位アドレス1、下位アドレス2048で特定されるデータウィンドウのサイズである3072バイトのうち、空き領域は上位アドレス1、下位アドレス3072で特定されるアドレス(010C00H)から2048バイトになる。
【0180】
送信装置1はW(1:2048,1024)2805の送信後にウィンドウ通知N(1:2048,3072)2806を受信し(TX3a)、受信装置2のデータウィンドウが上位アドレス1、下位アドレス2048で特定されるアドレスから開始され、サイズ3072バイトであることを検出する。それにより送信装置2の状態はウインドウ検出状態TX4からデータ送信状態TX2へ遷移する(TX4a)。送信装置1はすでに、W(1:2048,1024)2805を送信しているので、続く2048バイトをファイルから読み出して、W(1:2048,1024)2805によって書き込まれたメモリ空間の続きアドレス(010C00H)を指定して、データ送信を行う。すなわち、W(1:3072,1024)2807を、ライト・トランザクションを使って送信する。同様に、W(1:4096,1024)2808を、W(1:3072,1024)2807で書き込んだ続きアドレスからライト・トランザクションを使用して受信装置2のメモリ空間に書き込む。これにより、受信装置2の、上位アドレス1、下位アドレス2048で開始アドレスが特定されるサイズ3072バイトのデータウィンドウへのデータ送信が完了し、送信装置1は、ウインドウ待ち状態TX3に遷移する(TX2a)。
【0181】
受信装置2は、W(1:2048,1024)2805、W(1:3072,1024)2807、W(1:4096,1024)2808を受信すると、データ受信状態RX2からウインドウ更新待ち状態RX3へ遷移する(RX2a)。そして受信データを処理して、データウィンドウのアドレスを、上位アドレス1、下位アドレス2048で特定されるアドレスから、それに受信した3072バイト分加えたアドレス、すなわち上位アドレスを1に、下位アドレスを5120に、サイズを3072バイトに更新する(RX3a)。更新されたデータウインドウのアドレス及びサイズを、ウィンドウ通知コマンドN(1:5120,3072)2809を送信装置1のコントロールウィンドウにライトトランザクションを使って書き込むことで送信する(RX4a)。
【0182】
送信装置1はウィンドウ通知、N(1:5120,3072)2809を受信し(TX3a)、受信装置2のデータウィンドウの上位アドレス1、下位アドレス5120、サイズ3072バイトを検出し、ウインドウ検出状態TX4からデータ送信状態TX2へ遷移する(TX4a)。
【0183】
以下、送信装置1および受信装置2は、上記処理を繰り返し、W(1:4096,1024)2802808から最後のデータW(1:n−r,r)2811までの転送を行う。そのあと、送信装置1は切断要求T(0:0,0)2812を受信装置2のコントロールウィンドウにライトトランザクションを使って送信し、初期状態TX0に戻る(TX2b)。
【0184】
受信装置2は接続要求T(0:0,0)2812を受信すると受信データを処理して受信処理を終了し、初期状態RX0に戻る(RX2b)。
【0185】
以上説明したように、送信装置1は、受信装置2のノードアドレス空間の指定アドレスから指定バイトのデータを書き込むことにより、指定サイズのファイルの転送を行うことができる。
【0186】
すなわち、送信装置はデータ送信に先立ってまず受信装置に接続要求を発行し、コネクションの確立を試みる。受信装置は接続要求を受けると、データ受信用のメモリ空間をそのアドレス及びサイズによって通知する。これによりコネクションが確立される。送信装置は、そのコネクションを通じて通知されたメモリ空間に対して送信データを書き込むことでデータ送信する。この際、送信装置は、送信データの残りサイズと通知されたメモリ空間の空き容量とを比較し、通知されたメモリ空間の空き容量以下のサイズに区切ってデータを送信する。また受信装置は、そのリソースの使用状況に合わせて受信用のメモリ空間を確保し、その情報を送信側に通知することで、データ受信をデータのサイズに関わらず行える。
【0187】
これにより、受信側がデータ受信のために確保できるメモリを利用して大容量のデータを送信できる。
【0188】
受信側の用意するメモリ空間は、送信側によるデータ送信ごとに動的に変更可能であるために、受信側がそのリソースの利用状態等に応じて確保したメモリ空間を効率的に利用できる。
【0189】
さらに、送信時に、空き容量分のデータを送信する必要はない。送信側は、適切なサイズに区切ってデータを送信することで、トランザクションレイヤのデータのフローを制御することができる。本実施形態では、データ送信は受信メモリ空間のサイズに関わらず1024バイトずつ行われている。トランザクション処理はアシンクロナスモードを用いて行われ、アシンクロナスモードはアイソクロナスモードよりも優先度が低いことから、トランザクションのための十分な帯域が確保できない場合もあり得る。このような場合でも、一定サイズ以下のセグメントごとに区切って送信することで、データ送信のタイムアウトやそれに伴う再送等を防止でき、不要なトラフィックを抑制できる。
【0190】
また、1394ネットワークでは、ノードは家庭電化製品等の様々な機器であることが想定される。このような機器はかならずしも十分なデータ処理能力を有しているとは限らない。本実施形態においては、このような場合でも、受信装置がウインドウ通知により主導して、送信装置と受信装置との間に設定されたコネクションの帯域を制御できる。
【0191】
(第2の実施の形態)
本発明の、第2の実施の形態として、送信装置のノードアドレス空間内の領域から受信装置がデータを読み出すことにより転送を行う場合について説明する。本実施形態の構成は、前記第1の実施の形態の構成と同様であり、本実施形態の説明においても、図1、図23、図24、および図25を用いる。
【0192】
図1は、本実施の形態を示すブロック図で、構成は、前述の第1の実施の形態と同様である。次に、送信装置1および受信装置2について説明する。
【0193】
図23は、本実施の形態の送信装置1および受信装置2のノードアドレス空間を示す図である。図中、コントロールウィンドウは、送信装置1、および受信装置2とも備え、接続の制御、およびデータ転送のフローコントロールに用いる。本実施の形態においては、そのアドレスは、各装置のConfigROMのNodeDependentInfoDirectoryに記述し(図示せず)、他ノードから知ることができるものとする。データウィンドウは送信装置1が備えるもので、受信装置2はこの領域から、リードトランザクションを用いてデータを受信する。そのアドレス、およびサイズは、データ転送の進行とともに更新され、送信装置1から受信装置2に、前述のコントロールウィンドウを用いて通知される。また、データイメージは送信装置1から送信されるファイルイメージをノードアドレス空間にマッピングしたイメージであり、前述のデータウィンドウはこのデータイメージをカバーするように、アドレスをスライドする。
【0194】
図24はコントロールウィンドウのデータフォーマットを示す。図中コマンド、ウィンドウアドレス上位、ウィンドウアドレス下位、およびウィンドウサイズは、前述の、第1の実施の形態と同様である。コマンドの値と意味も図25に示すとおり、前述の、第1の実施の形態と同様である。
【0195】
図29は送信装置1の状態遷移を示し、ROM13に格納されたプログラムをCPU12が実行することにより実現する。図中、TX10は初期状態、TX11接続応答待ち状態、TX12はウィンドウ更新状態、TX13はデータ送信状態、TX14はウィンドウ更新待ち状態状態、を示す。TX10aは受信装置2への接続要求送信によるTX11への状態遷移を示す。TX11aは接続応答受信によるTX12への状態遷移を示す。TX11bは接続許可応答を受信できずタイムアウトによるか、接続拒否応答の受信によるTX10への状態遷移を示す。TX12aはウィンドウ通知の送信によるTX13への状態遷移を示す。TX12bは終了要求送信によるTX10への状態遷移を示す。TX13aは送信データがウィンドウサイズに達したことによるTX14への状態遷移を示す。TX13bはデータウィンドウの更新によるTX12への状態遷移を示す。TX14aはデータウィンドウの更新によるTX12への状態遷移を示す。
【0196】
このように、いったん接続が確立されれば、切断要求によって接続が切断されるまで、データ送信状態とウインドウ更新待ち状態とウインドウ更新状態とを、TX13a,TX14a,TX12aあるいはTX12a,TX13bの径路に沿って遷移する。
【0197】
すなわち、送信装置は、送信データをデータウインドウに格納して、そのアドレス及びサイズをコントロールウインドウによって受信装置に通知すると、データ送信状態となる。この状態において、受信装置がデータウインドウからデータを読み出すつど、コントロールウインドウのアドレス及びサイズを、読み出されたデータ量に応じて更新する。そして、サイズが0になれば、すなわちデータウインドウからデータが読み尽くされれば、ウインドウ更新待ち状態TX14となる。
【0198】
ウインドウ更新待ち状態あるいはデータ送信状態において、あらたなデータがデータウインドウに用意されたならウインドウ更新状態TX12に遷移して、データウインドウのアドレス及びサイズによりコントロールウインドウを更新し、ウインドウ通知を受信装置に発行する。そしてデータ送信状態TX13となる。
【0199】
こうして、コネクションがいったん設定されたなら、送信装置は送信データの用意及びデータウインドウの更新とウインドウ通知とを繰返し、大サイズのデータであってもデータウインドウサイズに合わせて送信することができる。データ送信に際しては、送信順序がデータの並びそのものを表すために、受信側は、受信したデータを受信した順序で再配置することで、ひとまとまりのデータとして処理することができる。
【0200】
図30は受信装置2の状態遷移を示し、ROM23に格納されたプログラムをCPU22が実行することにより実現する。図中、RX10は初期状態、RX11は受信開始状態、RX12はウィンドウ通知待ち状態、RX13はウィンドウ検出状態、RX14はデータ受信状態、を示す。RX10aは接続要求受信によるRX11への状態遷移を示す。RX11aは接続許可応答の送信によるRX12への状態遷移を示す。RX11bは接続拒否応答の送信によるRX10への状態遷移を示す。RX12aはウィンドウ通知受信によるRX13への状態遷移を示す。RX12bは終了要求受信によるRX10への状態遷移を示す。RX13aはウィンドウ検出によるRX14への状態遷移を示す。RX14aは受信データがウィンドウサイズに達したことによるRX12への状態遷移を示す。RX14bはデータ受信状態においてウィンドウ通知を受信したことによるRX13への状態遷移を示す。
【0201】
このように、いったん接続が確立されれば、切断要求によって接続が切断されるまで、ウインドウ通知待ち状態とウインドウ検出状態とデータ受信状態とを、RX12a,RX13a,RX14aあるいはRX14b,RX13aの径路に沿って遷移する。
【0202】
すなわち、受信装置は、送信装置からウインドウ通知によって通知されるデータウインドウのアドレス及びサイズをメモリ(受信データ管理メモリ)に記憶しておく。そして、通知されたデータウインドウからデータを読むごとに、読み出したサイズに応じて受信データ管理メモリに記憶したアドレス及びサイズを更新し、残りデータのアドレス及びサイズが受信データ管理メモリに記憶されているように管理する。そして、送信装置が用意したデータを読み尽くせば、すなわち管理している残りデータサイズが0になれば、受信状態RX14からウインドウ通知待ち状態RX12に移る。
【0203】
そして、ウインドウ通知待ち状態RX12あるいはデータ受信状態RX14において、送信装置からウインドウ通知があれば、ウインドウ検出状態RX13に遷移する。ウインドウ検出状態においては、ウインドウ通知に表示されたデータウインドウのアドレス及びサイズを読み取って、受信データ表示メモリを更新し、データ受信状態RX14に戻る。
【0204】
こうして、コネクションがいったん設定されたなら、受信装置はデータ受信とデータウインドウの更新およびウインドウ通知を繰返し、大サイズのデータであってもデータウインドウサイズに合わせて送信させることができる。データ受信に際しては、受信順序がデータの並びそのものを表すために、受信装置は、受信したデータを受信した順序で再配置することで、ひとまとまりのデータとして処理することができる。例えば、ウインドウサイズずつ受信したデータを、アプリケーションプログラムにより指定されるバッファに一連のデータとして格納し、切断要求の受信によってそのコネクションにおける全データを受信したものと判断し、そのデータをアプリケーションプログラムに引き渡す。
【0205】
以下、データ通信フローの一例を示しながら、データ通信処理を説明する。送信装置1は外部装置15に格納したサイズnバイトのファイルを受信装置2に転送するものとし、受信装置2は受信したファイルを外部装置25に格納するものとする。図28は、データ通信フローの一例を示す。なお、コマンド名は図25に示したような略称(かっこ書きで示したもの)で示しており、コマンド名に続くかっこ内の数値は(ウインドウ上位アドレス:ウインドウ下位アドレス,ウインドウサイズ)を示す。図25に示したように、パラメータを使用しないコマンドについては(0:0,0)で示す。
送信装置1は外部装置15に格納したサイズnバイトのファイルを受信装置2に転送するものとし、受信装置2は受信したファイルを外部装置25に格納するものとする。
【0206】
図31は、データ通信フローの一例を示す。
【0207】
図中、C(0:0,0)3101は送信装置1から受信装置2への接続要求を示し、受信装置2のコントロールウィンドウにブロックライトトランザクションを使って書き込む。送信装置1の状態はTX10からTX11に遷移する(TX11a)。受信装置2の状態は接続要求を受け取って、RX10からRX11へ遷移する(RX11a)。A(0:0,0)3102は受信装置2からの接続許可応答を示し、送信装置1のコントロールウィンドウにライトトランザクションを使って書き込む。受信装置2の状態は接続許可応答を送信してRX11からRX12へ遷移する(RX11a)。送信装置1の状態は接続許可応答を受け取って、TX11からTX12へ遷移する(TX11a)。このとき、送信装置1はファイルの先頭から3072バイトを読み出して、送信装置1のノードアドレス空間の上位アドレス1、下位アドレス0、ウィンドウサイズ3072バイトを読み出し可能に設定し、送信の準備をする。
【0208】
次に、N(1:0,3072)3103は送信装置1から受信装置2へのウィンドウ通知を示し、送信装置1のノードアドレス空間の上位アドレス1、下位アドレス0、ウィンドウサイズ3072バイトが読み出し可能であることを、受信装置2のコントロールウィンドウにブロックライトトランザクションを使って送信する(TX12a)。受信装置2はウィンドウ通知を受信するとRX13に状態遷移し(RX12a)、送信装置1の更新されたデータウィンドウを検出するとRX14に遷移する(RX13a)。
R(1:0,1024)3104は受信装置2から送信装置1へのリードリクエストを示し、送信装置1のノードアドレス空間の上位アドレス1、下位アドレス0から、ブロックリードトランザクションを使って先に読み出したファイルの先頭1024バイトのデータを読み出す。D(1:0,1024)3105は送信装置1から受信装置2へのリードレスポンスを示し、受信装置2からのノードアドレス空間の上位アドレス1、下位アドレス0への1024バイトのリードリクエストに対して、送信装置はファイルの先頭1024バイトのデータを返す。
【0209】
続く、R(1:1024,1024)3106も、同じく受信装置2から送信装置1へのリードリクエストを示し、送信装置1のノードアドレス空間の上位アドレス1、下位アドレス1024から、ブロックリードトランザクションを使って先に読み出したファイルの、次の1024バイトのデータを読み出す。D(1:1024,1024)3107は送信装置1から受信装置2へのリードレスポンスを示し、受信装置2からのノードアドレス空間の上位アドレス1、下位アドレス1024への1024バイトのリードリクエストに対して、送信装置は次の1024バイトのデータを返す。
【0210】
ここで、送信装置1はファイルの先頭から3072バイトの、次の2048バイトを読み出して、送信装置1のノードアドレス空間の上位アドレス1、下位アドレス2048、ウィンドウサイズ3072バイトを読み出し可能に設定し、データウィンドウを更新する(TX13b)。N(1:2048,3072)3108は送信装置1から受信装置2へのウィンドウ通知を示し、送信装置1のノードアドレス空間の上位アドレス1、下位アドレス2048、ウィンドウサイズ3072バイトが読み出し可能であることを、受信装置2のコントロールウィンドウにブロックライトトランザクションを使って送信する(TX12a)。受信装置2はウィンドウ通知を受信するとRX13に状態遷移し(RX14b)、送信装置1の更新されたデータウィンドウを検出するとRX14に遷移する(RX13a)。
【0211】
R(1:2048,1024)3109、R(1:3072,1024)3111、R(1:4096,1024)3113は受信装置2から送信装置1へのリードリクエストを示し、D(1:2048,1024)3110、D(1:3072,1024)3112、D(1:4096,1024)3114は送信装置1から受信装置2へのリードレスポンスを示す。送信装置1はデータウィンドウの3072バイトの送信を完了して、TX12に遷移し(TX14a)、受信装置2は同じく3072バイトの受信を完了してRX12に遷移する(RX14a)。
【0212】
送信装置1はファイルから次の3072バイトを読み出して、送信装置1のノードアドレス空間の上位アドレス1、下位アドレス5120、ウィンドウサイズ3072バイトを読み出し可能に設定し、送信の準備をする。
【0213】
次に、N(1:5120,3072)3115は送信装置1から受信装置2へのウィンドウ通知を示し、送信装置1のノードアドレス空間の上位アドレス1、下位アドレス5120、ウィンドウサイズ3072バイトが読み出し可能であることを、受信装置2のコントロールウィンドウにブロックライトトランザクションを使って送信する(TX12a)。受信装置2はウィンドウ通知を受信するとRX13に状態遷移し(RX12a)、送信装置1の更新されたデータウィンドウを検出するとRX14に遷移する(RX13a)。
【0214】
以下、送信装置1、および受信装置2は、上記処理を繰り返し、R(1:5120,1024)3116、D(1:5120,1024)3117から最後のR(1:n−r,r)3118、D(1:n−r,r)3119までの転送を行う。そのあと、送信装置1は接続要求T(0:0,0)を受信装置2のコントロールウィンドウにブロックライトトランザクションを使って送信し初期状態TX10に戻る(TX12b)。受信装置2は接続要求T(0:0,0)3120を受信すると受信データを処理して受信処理を終了して初期状態RX10に戻る(RX12b)。
【0215】
以上説明したように、受信装置2は、送信装置1のノードアドレス空間の指定されたアドレスから指定されたサイズのデータを読み込むことにより、指定サイズのファイルの転送を行うことができる。
【0216】
すなわち、送信装置はデータ送信に先立ってまず受信装置に接続要求を発行し、コネクションの確立を試みる。受信装置は接続要求を受けると、接続許可を通知する。これによりコネクションが確立される。送信装置は、そのコネクションを通じて、まず送信データのアドレスとサイズとを受信装置に通知し、受信装置は、通知されたメモリ空間から、すべてあるいは適当なセグメントに区切って送信データを読み込むことでデータを受信する。このセグメントは、例えば受信装置が用意できる受信用メモリサイズに応じて決定したり、あるいは、適当なサイズを予め決めておき、受信用メモリのサイズに関わらずそのサイズずつデータを読み出しても良い。
【0217】
これにより、受信側がデータ受信のために確保できるメモリを利用して大容量のデータを送信できる。
【0218】
受信側は、その主導によってデータ送信を進行させることができ、また、送信側で用意するメモリ空間は、データを送信しつつ動的に変更可能であるために、送信側がそのリソースの利用状態等に応じて確保したメモリ空間を効率的に利用できる。
【0219】
さらに、送信時に、送信側が用意したデータをすべて受信側が一括して読み出す必要はない。受信側は、適切なサイズに区切ってデータを読み出すことで、データのフローを制御することができる。
【0220】
また、1394ネットワークでは、ノードは家庭電化製品等の様々な機器であることが想定される。このような機器はかならずしも十分なデータ処理能力を有しているとは限らない。本実施形態においては、このような場合でも、受信装置がウインドウ通知により主導して、送信装置と受信装置との間に設定されたコネクションの帯域を制御できる。
【0221】
以上説明したように本実施形態によれば、データ転送のための領域の通知によりフローコントロールを簡単にし、転送データのアドレスとノードアドレス空間のアドレスを1対1に対応させることにより、送信時のデータ分割、受信後のデータ再構成を容易にするとともに、転送のためのリソース状況に合わせて、データ転送のための領域を移動させることにより、機器の処理能力に応じたデータ転送を可能にする、簡易なデータ転送装置を提供することができる。
【0222】
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0223】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【0224】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0225】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0226】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0227】
【発明の効果】
以上説明したように本発明によれば、メモリマップバスのノードアドレス空間上に確保した、データ転送のための領域の通知により、フローコントロールを簡単にした。
【0228】
さらに、転送データのアドレスとノードアドレス空間のアドレスを1対1に対応させることにより、送信時のデータ分割、受信後のデータ再構成を容易にした。
【0229】
さらに、転送のためのリソース状況に合わせて、データ転送のための領域を移動させることにより、機器の処理能力に応じたデータ転送を可能にした。
【図面の簡単な説明】
【図1】第1および第2の、実施の形態の構成を示すブロック図である。
【図2】1394シリアルバスのネットワークの構成を示した図である。
【図3】本発明の1394シリアルバスの構成要素を示した図である。
【図4】本発明の1394シリアルバスのリンク・レイヤ提供可能なサービスを示す図である。
【図5】本発明の1394シリアルバスのトランズアクション・レイヤ提供可能なサービスを示す図である。
【図6】1394インタフェースにおけるアドレス空間を説明する図である
【図7】1394インタフェースにおけるCSRコア・レジスタに格納される情報のアドレス及び機能を示す図である。
【図8】1394インタフェースにおけるシリアルバス・レジスタに格納される情報のアドレス及び機能を示す図である。
【図9】1394インタフェースにおける最小形式のConfiguration ROMを示す図である。
【図10】1394インタフェースにおける一般形式のConfiguration ROMを示す図である。
【図11】1394インタフェースにおけるシリアルバス装置レジスタに格納される情報のアドレス及び機能を示す図である。
【図12】IEEE1394規格に準拠した通信ケーブルの断面図である。
【図13】DS−Link符号化方式を説明する図である。
【図14】、
【図15】、
【図16】バスリセットの開始からノードIDの割り当て処理までの基本的なシーケンスを示した図である。
【図17】図15に示したステップS1505の処理(即ち、自動的に各ノードのノードIDを割り当てる処理)を詳細に説明するフローチャートである。
【図18】1394インタフェースにおけるセルフIDパケットの構成を示した図である。
【図19】1394ネットワークにおけるアービトレーションを説明する図である。
【図20】1通信サイクルにおいてIsochronous転送モードとAsynchronous転送モードとを混在させた場合を説明する図である。
【図21】Isochronous転送モードに基づいて転送される通信パケットのフォーマットを示した図である。
【図22】本発明のアシンクロナス転送のパケットフォーマットを示した図である。
【図23】第1および第2の、実施の形態のノードアドレス空間を示す図である。
【図24】第1および第2の、実施の形態の、コントロールウィンドウのデータフォーマットを示す図である。
【図25】第1および第2の、実施の形態の、コマンドの値と意味を示す図である。
【図26】第1の、実施の形態の、送信装置1の状態遷移図である。
【図27】第1の、実施の形態の、受信装置2の状態遷移図である。
【図28】第1の、実施の形態の、通信フローの1例を示す図である。
【図29】第2の、実施の形態の、送信装置1の状態遷移図である。
【図30】第2の、実施の形態の、受信装置2の状態遷移図である。
【図31】第2の、実施の形態の、通信フローの1例を示す図である。
【符号の説明】
1 送信装置
11 システムバス
12 CPU
13 ROM
14 RAM
15 外部装置
16 IEEE1394インタフェース
2 受信装置
21 システムバス
22 CPU
23 ROM
24 RAM
25 外部装置
26 IEEE1394インタフェース
3 IEEE1394ケーブル
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data transfer device and method for performing data transfer by connecting via a memory map bus or the like. In particular, the present invention relates to a data transfer device, a transmission device, a reception device, and a control method thereof which are connected via an IEEE 1394 bus and perform data transfer.
[0002]
[Prior art]
Conventionally, as a transfer method using a memory map bus, particularly an IEEE 1394 bus, there have been a thin protocol, an AV / C asynchronous connection, an SBP2, and the like. In the thin protocol, the address and size of the data transfer window are fixed by negotiation. The address size of the segment buffer (Segment Buffer) of the AV / C asynchronous connection is also fixed in advance. In SBP2, the data area and the like are variable because they can be specified by the ORB, but the area is not dynamically changed before the area transfer is completed. Note that the memory map bus is an architecture in which data can be written to and read from a mapped memory space.
[0003]
[Problems to be solved by the invention]
In a case where a continuous block of data, such as a file, on a transmitting device is to be easily transferred to a receiving device, the above-described conventional example has the following problems. In the thin protocol, the address and size of the data transfer window (segment register) are fixed by negotiation, and if the size of the data to be transferred exceeds this size, it is necessary to divide the data into segments. You need to add a header. The address of the segment buffer of the AV / C asynchronous connection is also fixed in advance, and the transmitting device cannot start transferring the next data until the receiving device processes all the data in the segment buffer. In SBP2, the area is variable in the ORB, but the address of that area does not slide dynamically before the transfer of the area specified by the ORB is completed. Requires memory resources.
[0004]
As described above, when transferring a large amount of data, any of the transfer methods causes a problem such as an overhead for a transfer process or a need for a large amount of memory resources.
[0005]
The present invention has been made in view of the above conventional example, and has as its object to provide a data transfer device, a transmission device, a reception device, and a control method thereof, in which flow control is simple and data division and reconstruction are easy.
[0006]
[Means for Solving the Problems]
In order to achieve the above object, the present invention has the following configuration.
[0007]
A data transfer system having a first device and a second device connected by a memory map bus,
The first device comprises:
Arranging means for arranging a data area variably in address and size in a node address space of the memory map bus;
Notifying means for notifying the second device of the address and size information of the area arranged by the arranging means,
The second device performs data transfer with the first device via the data area in the first device based on the address and size information notified by the notifying unit.
[0008]
More preferably, the first device arranges a writable data area by the arrangement means, and notifies the address and size information to the second device by the notifying means, wherein the second device The data is transferred from the second device to the first device by writing data to the data area via the memory map bus based on the address and size information notified by the notification means.
[0009]
More preferably, the second device divides the data so that its address corresponds to the address of the node address space and writes the data into the data area, and the first device writes the data into the data area. The data is reconfigured so that its address corresponds to the address in the node address space.
[0010]
More preferably, the first device writes data in the data area, and notifies the second device of the address and size information by the notifying unit, and the second device transmits the address and size information by the notifying unit. The data is transferred from the first device to the second device by reading data from the data area via the memory map bus based on the notified address and size information.
[0011]
More preferably, the first device divides the data so that its address corresponds to the address of the node address space and writes the data into the data area, and the second device writes the data into the data area. The data is reconfigured so that its address corresponds to the address in the node address space.
[0012]
More preferably, the first device further includes a release unit for releasing the data area allocated by the allocation unit, and the data area is set in the node address space by repeating the allocation by the allocation unit and the release by the release unit. Move within.
[0013]
More preferably, the memory map bus is an IEEE 1394 bus, and the notification by the notification unit and the data transfer are performed by a transaction provided by a transaction layer of an IEEE 1394 interface.
[0014]
Alternatively, a receiving device connected to the transmitting device by a memory map bus,
Arranging means for arranging a writable area by the transmitting device variably in address and size in a node address space of a memory map bus;
Notifying means for notifying the transmitting device of the address and size information of the area,
Receiving means for receiving data written in the area by the transmitting device.
[0015]
Alternatively, a transmitting device connected to the receiving device by a memory map bus,
Receiving means for receiving address and size information from the receiving device;
Transmitting means for transmitting data by writing data in an area specified by the address and size information received by the receiving means.
[0016]
Alternatively, a transmitting device connected to the receiving device by a memory map bus,
Means for arranging a writable area by the transmitting device variably in address and size in a node address space of a memory map bus, and writing transmission data in the area;
Notifying means for notifying the receiving device of the address and size information of the area,
Transmission means for transmitting data written by the transmission device to the area.
[0017]
Alternatively, a receiving device connected to the transmitting device by a memory map bus,
First receiving means for receiving address and size information from the transmitting device;
Second receiving means for receiving data by reading data from an area specified by the address and size information received by the receiving means.
[0018]
With this configuration, the flow control is simplified by notifying the area for data transfer on the node address space of the memory map bus, and the transmission data is made to correspond one-to-one with the address of the transfer data and the address of the node address space. It is possible to provide a simple data transfer device by facilitating data division at the time and data reconstruction after reception.
[0019]
BEST MODE FOR CARRYING OUT THE INVENTION
(First Embodiment)
As a first embodiment of the present invention, a data transfer system in which a transmitting device and a receiving device are connected by an IEEE 1394 bus will be described. FIG. 1 is a block diagram showing the present embodiment. In the figure, 1 is a transmitting device, 2 is a receiving device, and 3 is an IEEE1394 cable. The transmission device 1 includes a CPU 12, a ROM 13, a RAM 14, an external device 15, and an IEEE 1394 interface 16 connected to each other via a system bus 11. The CPU 12 uses the RAM 13 as a work area based on a program stored in the ROM 13. The file stored in the external device 15 as a storage device is transmitted to the receiving device via the IEEE 1394 interface 16. The receiving device 2 includes a CPU 22, a ROM 23, a RAM 24, an external device 25, and an IEEE 1394 interface 26 connected to each other via a system bus 21, and the CPU 22 uses the RAM 23 as a work area based on a program stored in the ROM 23. The file received from the transmitting device via the IEEE1394 interface 26 is stored in the external device 25 which is a storage device. The IEEE 1394 interface 16 of the transmitting device and the IEEE 1394 interface 26 of the receiving device are connected to each other via an IEEE 1394 cable 3.
[0020]
Here, the outline of the IEEE 1394 technology used in the present embodiment will be described.
[0021]
<Overview of IEEE 1394 Technology>
Hereinafter, the technology of the IEEE 1394-1995 standard applied to the digital interface of the present embodiment will be briefly described. The details of the IEEE 1394-1995 standard (hereinafter referred to as the IEEE 1394 standard) are described in detail in "IEE. Bus ".
[0022]
(1) Overview
FIG. 2 shows an example of a communication system (hereinafter, a 1394 network) including nodes having a digital interface (hereinafter, a 1394 interface) based on the IEEE 1394 standard. The 1394 network constitutes a bus network capable of communicating serial data.
[0023]
In FIG. 2, nodes A to F are connected via a communication cable conforming to the IEEE 1394 standard. These nodes A to H are electronic devices such as a PC (Personal Computer), a digital VTR (Video Tape Recorder), a DVD (Digital Video Disc) player, a digital camera, a hard disk, and a monitor.
The connection method of the 1394 network corresponds to the daisy chain method and the node branch method, and enables connection with a high degree of freedom.
[0024]
In the 1394 network, for example, when an existing device is deleted, a new device is added, or the power of the existing device is turned on / off, the bus is automatically reset. By performing the bus reset, the 1394 network can automatically recognize a new connection configuration and assign ID information to each device. With this function, the 1394 network can always recognize the connection configuration of the network.
[0025]
The 1394 network has a function of relaying data transferred from another device. With this function, all devices can grasp the operation status of the bus.
[0026]
Further, the 1394 network has a function called Plug & Play. With this function, the connected device can be automatically recognized only by connecting without turning off the power of all devices.
[0027]
Further, the 1394 network supports a data transfer rate of 100/200/400 Mbps. A device having a higher data transfer rate can support a lower data transfer speed, so that devices corresponding to different data transfer speeds can be connected.
[0028]
Further, the 1394 network supports two different data transfer schemes (ie, Asynchronous transfer mode and Isochronous transfer mode).
[0029]
The Asynchronous transfer mode is effective when transferring data (that is, control signals, file data, and the like) that is required to be transferred asynchronously as necessary. In addition, the isochronous transfer mode is effective when transferring data (that is, video data, audio data, and the like) required to continuously transfer a predetermined amount of data at a constant data rate.
The Asynchronous transfer mode and the Isochronous transfer mode can be mixed in each communication cycle (usually one cycle is 125 μS). Each transfer mode is executed after transfer of a cycle start packet (hereinafter, CSP) indicating the start of a cycle.
[0030]
Note that in each communication cycle period, the isochronous transfer mode is set to have a higher priority than the asynchronous transfer mode. The transfer band in the isochronous transfer mode is guaranteed in each communication cycle.
[0031]
(2) Architecture
Next, components of the 1394 interface will be described with reference to FIG.
The 1394 interface is functionally composed of a plurality of layers (layers). In FIG. 3, the 1394 interface is connected to a 1394 interface of another node via a communication cable 301 conforming to the IEEE 1394 standard. Further, the 1394 interface has one or more communication ports 302, and the communication ports 302 are connected to a physical layer 303 included in a hardware unit.
[0032]
In FIG. 3, the hardware unit includes a physical layer 303 and a link layer 304. The physical layer 303 performs physical and electrical interfaces with other nodes, detection of bus resets and associated processing, encoding / decoding of input / output signals, arbitration of bus use rights, and the like. The link layer 304 generates and transmits and receives communication packets, controls a cycle timer, and the like.
[0033]
In FIG. 3, the firmware unit includes a transaction layer 305 and a serial bus management 306. The transaction layer 305 manages Asynchronous transfer mode and provides various transactions (read, write, lock). The serial bus management 306 provides functions for controlling the own node, managing the connection state of the own node, managing ID information of the own node, and managing resources of the serial bus network based on a CSR architecture described later.
[0034]
As described above, the hardware section and the firmware section substantially constitute a 1394 interface, and the basic configuration thereof is defined by the IEEE 1394 standard.
[0035]
The application layer 307 included in the software unit differs depending on the application software used, and controls how data is communicated on the network. For example, in the case of moving image data of a digital VTR, it is specified by a communication protocol such as the AV / C protocol.
[0036]
(2-1) Link layer 304
FIG. 4 is a diagram showing services that the link layer 304 can provide. In FIG. 4, the link layer 304 provides the following four services. That is, (1) a link request (LK_DATA.request) for requesting the response node to transfer a predetermined packet, (2) a link notification (LK_DATA.indication) for notifying the response node of reception of the predetermined packet, (3) A) a link response (LK_DATA.response) indicating that an acknowledgment has been received from the responding node; and (4) a link confirmation (LK_DATA.confirmation) confirming the acknowledgment from the requesting node. It should be noted that the link response (LK_DATA.response) does not exist in the case of the broadcast communication and the transfer of the isochronous packet.
Further, the link layer 304 realizes the above-mentioned two types of transfer methods, that is, the asynchronous transfer mode and the isochronous transfer mode, based on the above-mentioned service.
[0037]
(2-2) Transaction layer 305
FIG. 5 illustrates services that can be provided by the transaction layer 305. In FIG. 5, the transaction layer 305 provides the following four services. That is, (1) a transaction request (TR_DATA.request) for requesting a predetermined transaction to the response node, (2) a transaction notification (TR_DATA.indication) for notifying the reception node of the reception of the predetermined transaction request, (3). A transaction response (TR_DATA.response) indicating that status information (including data in the case of write or lock) has been received from the responding node, and (4) a transaction confirmation (TR_DATA.confirmation) confirming status information from the requesting node. ).
[0038]
The transaction layer 305 manages Asynchronous transfer based on the above-described service, and performs the following three types of transactions: (1) read transaction, (2) write transaction, and (3) lock transaction. Realize.
(1) In a read transaction, a requesting node reads information stored at a specific address of a responding node.
(2) In a write transaction, a requesting node writes predetermined information to a specific address of a responding node.
(3) In the lock transaction, the request node transfers the reference data and the update data to the response node, compares the information of the specific address of the response node with the reference data, and specifies the specific address according to the comparison result. Is updated to the update data.
[0039]
(2-3) Serial bus management 306
The serial bus management 306 can specifically provide the following three functions. The three functions are (1) node control, (2) isochronous resource manager (hereinafter, IRM), and (3) bus manager.
(1) The node control provides a function of managing the above-described layers and managing Asynchronous transfer executed with another node.
(2) The IRM provides a function of managing Isochronous transfer performed between other nodes. Specifically, it manages information necessary for assigning a transfer bandwidth and a channel number, and provides this information to other nodes.
The IRM exists solely on the local bus, and is dynamically selected from other candidates (nodes having an IRM function) at each bus reset. The IRM may provide some of the functions (such as connection configuration management, power supply management, and speed information management) that can be provided by a bus manager described later.
(3) The bus manager has an IRM function and provides a more advanced bus management function than the IRM. More specifically, more advanced power management (information on whether or not power can be supplied via a communication cable, whether or not power must be supplied for each node, etc.), more advanced speed information It performs management (management of the maximum transfer rate between each node), management of a more advanced connection configuration (creation of a topology map), optimization of a bus based on the management information, and the like, and further transfers the information to another node. It has a function to provide.
[0040]
Also, the bus manager can provide services for controlling the serial bus network to the application. Here, the services include a serial bus control request (SB_CONTROL.request), a serial bus event control confirmation (SB_CONTROL.confirmation), a serial bus event notification (SB_CONTROL.indication), and the like.
[0041]
SB_CONTROL. The request is a service for requesting a bus reset by an application. SB_CONTROL. The confirmation is defined as SB_CONTROL. This is a service for confirming the request to the application. SB_CONTROL. Indication is a service for notifying an application of an event that occurs asynchronously.
[0042]
(3) Address specification
FIG. 6 is a diagram illustrating an address space in the 1394 interface. The 1394 interface defines a 64-bit address space according to a CSR (Command and Status Register) architecture conforming to ISO / IEC 13213: 1994.
[0043]
In FIG. 6, the first 10-bit field 601 is used for an ID number specifying a predetermined bus, and the next 6-bit field 602 is used for an ID number specifying a predetermined device (node). The upper 16 bits are called “node ID”, and each node identifies another node by this node ID. Also, each node can perform communication in which the other party is identified using the node ID.
[0044]
The remaining 48-bit field specifies the address space (256 Mbyte structure) of each node. This address space is called a node address space. The 20-bit field 603 specifies a plurality of areas constituting the address space.
[0045]
In the field 603, the portion of "0 to 0xFFFFD" is called a memory space. The “0xFFFFE” portion is called a private space, and is an address that can be freely used by each node. The portion of “0xFFFFFF” is called a register space and stores common information between nodes connected to the bus. Each node can manage communication between the nodes by using the information of the register space.
[0046]
The last 28-bit field 604 specifies the address where common or unique information is stored in each node.
For example, in the register space, the first 512 bytes are used for CSR architecture core (CSR core) registers. FIG. 7 shows addresses and functions of information stored in the CSR core register. The offset in the figure is a relative position from “0xFFFFF00000000”.
[0047]
The next 512 bytes are used as a register for the serial bus. FIG. 8 shows addresses and functions of information stored in the serial bus register. The offset in the figure is a relative position from “0xFFFFF0000200”.
[0048]
The next 1024 bytes are used for the Configuration ROM.
[0049]
The configuration ROM has a minimum format and a general format, and is arranged from “0xFFFFF0000400”. FIG. 9 shows a minimum configuration ROM. In FIG. 9, the vendor ID is a 24-bit numerical value uniquely assigned to each vendor by IEEE.
[0050]
FIG. 10 shows a general configuration ROM. In FIG. 10, the above-described vendor ID is stored in the Root Directory 1002. The Bus Info Block 1001 and the Root Leaf 1005 can hold a node unique ID as unique ID information for identifying each node.
[0051]
Here, the node unique ID is set to a unique ID capable of specifying one node regardless of a maker and a model. The node unique ID is composed of 64 bits, the upper 24 bits indicate the above-described vendor ID, and the lower 48 bits indicate information (for example, a node serial number or the like) that can be freely set by a manufacturer that manufactures each node. The node unique ID is used, for example, when a specific node is continuously recognized before and after a bus reset.
[0052]
In FIG. 10, the Root Directory 1002 can hold information on basic functions of the node. Detailed function information is stored in a subdirectory (Unit Directories 1004) offset from the Root Directory 1002. In the Unit Directories 1004, for example, information on software units supported by the node is stored. Specifically, information on a data transfer protocol for performing data communication between nodes, a command set for defining a predetermined communication procedure, and the like are held.
[0053]
In FIG. 10, device-specific information can be stored in the Node Dependent Info Directory 1003. The Node Dependent Info Directory 1003 is offset by the Root Directory 1002.
[0054]
Further, in FIG. 10, Vendor Dependent Information 1006 can hold information unique to a vendor that manufactures or sells a node.
[0055]
The remaining area is called a unit space, and specifies an address in which information unique to each node, for example, identification information (company name, model name, etc.) of each device, use conditions, and the like are stored. FIG. 11 shows addresses and functions of information stored in the serial bus device register in the unit space. The offset in the figure is a relative position from “0xFFFFF0000800”.
[0056]
In general, if it is desired to simplify the design of heterogeneous bus systems, each node should use only the first 2048 bytes of the register space. In other words, it is desirable that the configuration is made up of 4096 bytes including the CSR core register, the serial bus register, the configuration ROM and the first 2048 bytes of the unit space.
[0057]
(4) Communication cable configuration
FIG. 12 is a sectional view of a communication cable conforming to the IEEE 1394 standard.
[0058]
The communication cable includes two twisted pair signal lines and a power supply line. By providing the power supply line, the 1394 interface can supply power to a device whose main power is turned off, a device whose power is reduced due to a failure, and the like. The voltage of the power supply flowing in the power supply line is specified to be 8 to 40 V, and the current is specified to be the maximum current DC 1.5 A.
[0059]
An information signal encoded by a DS-Link (Data / Strobe Link) encoding method is transmitted to the two twisted pair signal lines. FIG. 13 is a diagram illustrating the DS-Link coding scheme.
[0060]
This DS-Link coding scheme is suitable for high-speed serial data communication, and its configuration requires two pairs of twisted pairs. One twisted pair carries a data signal, and the other twisted pair sends a strobe signal. The receiving side can reproduce the clock by taking the exclusive OR of the data signal and the strobe signal received from the two sets of signal lines.
[0061]
By using the DS-Link coding method, the 1394 interface has the following advantages, for example. (1) Transfer efficiency is higher than other encoding methods. (2) No PLL circuit is required, and the circuit size of the controller LSI can be reduced. (3) Since there is no need to send information indicating the idle state, the transceiver circuit can be easily put into the sleep state, and power consumption can be reduced.
[0062]
(5) Bus reset
The 1394 interface of each node can automatically detect that a change has occurred in the network connection configuration. In this case, the 1394 network performs a process called a bus reset according to the following procedure. The change in the connection configuration can be detected by the change in the bias voltage applied to the communication port provided in each node.
[0063]
A node that has detected a change in the network connection configuration (for example, an increase or decrease in the number of nodes due to insertion / removal of a node, power ON / OFF of a node, or the like) or a node that needs to recognize a new connection configuration is connected via the 1394 interface. And transmits a bus reset signal on the bus.
[0064]
The 1394 interface of the node that has received the bus reset signal transmits the occurrence of the bus reset to its own link layer 304 and transfers the bus reset signal to another node. The node that has received the bus reset signal clears the network connection configuration and the node ID assigned to each device that have been recognized so far. After all the nodes finally detect the bus reset signal, each node automatically performs initialization processing (that is, recognition of a new connection configuration and assignment of a new node ID) accompanying the bus reset.
[0065]
The bus reset may be started by the application layer 307 directly issuing a command to the physical layer 303 under the control of the host, in addition to the start by the change in the connection configuration as described above. It is possible.
[0066]
Further, when the bus reset is activated, the data transfer is temporarily suspended, and is resumed under a new network after the completion of the initialization processing accompanying the bus reset.
[0067]
(6) Sequence after starting bus reset
After the start of the bus reset, the 1394 interface of each node automatically recognizes a new connection configuration and assigns a new node ID. Hereinafter, a basic sequence from the start of the bus reset to the node ID assignment processing will be described with reference to FIGS.
[0068]
FIG. 14 is a diagram illustrating a state after activation of the bus reset in the 1394 network of FIG.
[0069]
In FIG. 14, node A has one communication port, node B has two communication ports, node C has two communication ports, node D has three communication ports, node E has one communication port, and node F has one communication port. It has a port. The communication port of each node is provided with a port number for identifying each port.
[0070]
Hereinafter, the process from the start of the bus reset to the assignment of the node ID in FIG. 14 will be described with reference to the flowchart in FIG.
[0071]
In FIG. 15, each of the nodes A to F configuring the 1394 network constantly monitors whether or not a bus reset has occurred (step S1501). When a bus reset signal is output from a node that detects a change in the connection configuration, each node executes the following processing.
[0072]
After the occurrence of the bus reset, each node declares a parent-child relationship between the respective communication ports (step S1502).
[0073]
Each node repeats the processing of step S1502 until the parent-child relationship between all nodes is determined (step S1503).
[0074]
After the parent-child relationship between all nodes is determined, the 1394 network determines a node that performs network arbitration, that is, a route. (Step S1504).
[0075]
After determining the route, each of the 1394 interfaces of each node executes a task of automatically setting its own node ID (step S1505).
[0076]
Until node IDs are set for all nodes, each node executes the processing of step S1505 based on a predetermined procedure (step S1506).
[0077]
After the node IDs are finally set for all the nodes, each node executes Isochronous transfer or Asynchronous transfer (step S1507).
[0078]
While executing the processing in step S1507, the 1394 interface of each node monitors again for the occurrence of the bus reset. If a bus reset has occurred, the processing after step S1501 is executed again.
[0079]
Through the above procedure, the 1394 interface of each node can automatically execute recognition of a new connection configuration and assignment of a new node ID every time a bus reset is activated.
[0080]
(7) Determination of parent-child relationship
Next, the process of step S1502 shown in FIG. 15 (that is, the process of recognizing the parent-child relationship between the nodes) will be described in detail with reference to FIG.
[0081]
In FIG. 16, after the occurrence of the bus reset, each of the nodes A to F on the 1394 network confirms the connection state (connected or not connected) of its own communication port (step S1601).
[0082]
After checking the connection state of the communication ports, each node counts the number of communication ports (hereinafter, connection ports) connected to other nodes (step S1602).
[0083]
If the result of the processing in step S1602 is that the number of connection ports is one, the node recognizes that it is a “leaf” (step S1603). Here, a leaf is a node connected to only one node.
[0084]
The node serving as a leaf declares to the node connected to the connection port that "it is a child (Child)" (step S1604). At this time, the leaf recognizes that the connection port is “parent port (communication port connected to the parent node)”.
[0085]
Here, the declaration of the parent-child relationship is first made between the leaf and the branch, which are the ends of the network, and then sequentially made between the branches. The parent-child relationship between the nodes is determined in order from the communication port that can make the declaration earlier. The communication port that is declared as a child between the nodes is recognized as a “parent port”, and the communication port that has received the declaration is a “child port (communication port connected to the child node)”. It is recognized that there is. For example, in FIG. 14, nodes A, E, and F declare a parent-child relationship after recognizing that they are leaves. As a result, child-parent is determined between nodes AB, child-parent is determined between nodes ED, and child-parent is determined between nodes FD.
[0086]
If the result of the processing in step S1602 is that the number of connection ports is two or more, the node recognizes itself as a “branch” (step S1605). Here, a branch is a node connected to two or more nodes.
[0087]
The branch node receives a declaration of the parent-child relationship from the node of each connection port (step S1606). The connection port that has accepted the declaration is recognized as a “child port”.
[0088]
After recognizing one connection port as a “child port”, the branch detects whether or not there are two or more connection ports for which a parent-child relationship has not yet been determined (that is, undefined ports) (step S1607). As a result, when there are two or more undefined ports, the branch performs the operation of step S1606 again.
[0089]
As a result of step S1607, if there is only one undefined port, the branch recognizes that the undefined port is a “parent port”, and “owns a child” for a node connected to the port. Is declared (steps S1608 and S1609).
[0090]
Here, the branch cannot declare itself as a child to other nodes until the remaining undefined port becomes one. For example, in FIG. 14, nodes B, C, and D recognize that they are branches and accept declarations from leaves or other branches. After the parent-child relationship between DE and DF is determined, the node D declares the parent-child relationship to the node C. Further, the node C that has received the declaration from the node D has declared the parent-child relationship with the node B.
[0091]
If there is no undefined port as a result of the processing in step S1608 (that is, if all the connection ports of the branch have become parent ports), the branch recognizes that it is the root itself. . (Step S1610).
[0092]
For example, in FIG. 14, a node B in which all of the connection ports are parent ports is recognized by another node as a route for mediating communication on the 1394 network. Here, although the node B is determined to be the root, if the timing of declaring the parent-child relationship of the node B is earlier than the timing of declaring the node C, another node may be the root. That is, depending on the timing of declaration, any node may be the root. Therefore, even with the same network configuration, the same node does not always become the root.
[0093]
By declaring the parent-child relationship of all connection ports in this manner, each node can recognize the connection configuration of the 1394 network as a hierarchical structure (tree structure) (step S1611). The above-mentioned parent node is higher in the hierarchical structure, and the child node is lower in the hierarchical structure.
[0094]
(8) Assignment of node ID
FIG. 17 is a flowchart illustrating in detail the process of step S1505 (that is, the process of automatically assigning the node ID of each node) illustrated in FIG. Here, the node ID is composed of a bus number and a node number. In this embodiment, it is assumed that each node is connected to the same bus, and that each node is assigned the same bus number. .
[0095]
In FIG. 17, the root gives the node ID setting permission to the communication port having the smallest number among the child ports to which the node whose node ID is not set is connected (step S1701).
[0096]
In FIG. 17, after setting the node IDs of all the nodes connected to the child port with the smallest number, the root sets the child port as already set, and performs the same control for the next smallest child port. Do. Finally, after the ID setting of all nodes connected to the child port is completed, the node ID of the root itself is set. Note that the node numbers included in the node ID are basically assigned 0, 1, 2,... In the order of leaf and branch. Therefore, the route will have the highest node number.
[0097]
In step S1701, the node that has obtained the setting permission determines whether or not there is a child port including a node whose node ID has not been set among its own child ports (step S1702).
[0098]
If a child port including an unset node is detected in step S1702, the node that has obtained the above setting permission performs control so as to give the setting permission to the node directly connected to the child port (step S1703). ).
[0099]
After the processing in step S1703, the node that has obtained the setting permission determines whether or not there is a child port including a node whose node ID has not been set among its own child ports (step S1704). Here, if the existence of the child port including the unset node is detected after the processing of step S1704, the node executes the processing of step S1703 again.
[0100]
If no child port including an unset node is detected in step S1702 or S1704, the node that has obtained the setting permission sets its own node ID (step S1705).
[0101]
The node that has set its own node ID broadcasts a self-ID packet including its own node number, information on the connection state of the communication port, and the like (step S1706). The broadcast means transferring a communication packet of a certain node to an unspecified number of nodes constituting the 1394 network.
[0102]
Here, each node can recognize the note number assigned to each node by receiving the self ID packet, and can know the node number assigned to itself. For example, in FIG. 14, the node B, which is the root, gives permission for node ID setting to the node A connected to the communication port with the minimum port number “# 1”. The node A assigns its own node number “No. 0” and sets a node ID including a bus number and a node number for itself. Further, the node A broadcasts a self ID packet including the node number.
[0103]
FIG. 18 shows a configuration example of the self ID packet. In FIG. 18, reference numeral 1801 denotes a field for storing a node number of a node which has transmitted a self ID packet; 1802, a field for storing information on a transfer rate that can be supported; 1803, a bus management function (such as the presence or absence of a bus manager's capability); A field 1804 for indicating the presence or absence is a field for storing information on characteristics of power consumption and supply.
[0104]
In FIG. 18, 1805 is a field for storing information (connection, non-connection, parent-child relationship of communication ports, etc.) relating to the connection state of the communication port having the port number "# 0", and 1806 is a port number "# 1". A field 1807 stores information (connection, non-connection, parent-child relationship of communication ports, etc.) related to the connection state of the communication port. This is a field for storing parent-child relationships of ports.
[0105]
If the node transmitting the self ID packet has the ability to become a bus manager, the contender bit shown in the field 1803 is set to “1”.
[0106]
Here, the bus manager refers to the bus power management (whether power can be supplied via a communication cable and whether power supply is necessary or not) based on various information included in the above-described self ID packet. And the like for each node), management of speed information (management of the maximum transfer speed between each node from information on transfer speeds that each node can support), management of topology map information (communication port The node has a function of managing the connection configuration of the network from the parent-child relationship information, optimizing the bus based on the topology map information, and providing the information to other nodes. With these functions, a node serving as a bus manager can perform bus management of the entire 1394 network.
[0107]
After the processing in step S1706, the node that has set the node ID determines whether there is a parent node (step S1707). If there is a parent node, the parent node executes the processing of step S1702 and subsequent steps again. Then, permission is given to a node for which a node ID has not yet been set.
[0108]
If there is no parent node, the node is determined to be the root itself. The root determines whether a node ID has been set for the nodes connected to all the child ports (step S1708).
[0109]
If the ID setting process has not been completed for all nodes in step S1708, the root grants ID setting permission to the child port having the lowest number among the child ports including the node (step S1701). After that, the process from step S1702 is executed.
[0110]
When the ID setting process for all nodes is completed, the root sets its own node ID (step S1709). After setting the node ID, the route broadcasts a self ID packet (step S1710).
[0111]
Through the above processing, the 1394 network can automatically assign a node ID to each node.
[0112]
Here, if a plurality of nodes have the bus manager capability after the node ID setting process, the node with the largest node number becomes the bus manager. That is, when the route having the maximum node number in the network has a function that can be the bus manager, the route is the bus manager.
[0113]
However, if the route does not have the function, the node having the next highest node number becomes the bus manager. Further, which node has become the bus manager can be grasped by checking the contender bit 1803 in the self ID packet broadcast by each node.
[0114]
(9) Arbitration
FIG. 19 is a diagram illustrating arbitration in the 1394 network of FIG.
[0115]
In the 1394 network, arbitration (arbitration) of the right to use the bus is always performed prior to data transfer. The 1394 network is a logical bus network. By relaying a communication packet transferred from each node to another node, the same communication packet can be transferred to all nodes in the network. Therefore, arbitration is required to prevent collision of communication packets. This allows only one node to transfer at a given time.
[0116]
FIG. 19A is a diagram illustrating a case where the node B and the node F have issued a bus use request.
[0117]
When the arbitration starts, the nodes B and F each issue a bus use request to the parent node. The parent node (that is, node C) that has received the request from node B relays the right to use the bus toward its parent node (that is, node D). This request is finally delivered to the arbitrating route (node D).
[0118]
The route receiving the bus use request determines which node uses the bus. This arbitration work can be performed only by the root node, and the node that wins the arbitration is given permission to use the bus.
[0119]
FIG. 19B is a diagram showing that the request of the node F is permitted and the request of the node B is rejected.
[0120]
The route sends a DP (Data prefix) packet to the node that has lost the arbitration to notify that the node has been rejected. The rejected node waits for a bus use request until the next arbitration.
[0121]
By controlling arbitration as described above, the 1394 network can manage the right to use the bus.
[0122]
(10) Communication cycle
The Isochronous transfer mode and the Asynchronous transfer mode can be mixed in a time division manner in each communication cycle period. Here, the period of the communication cycle is usually 125 μS.
[0123]
FIG. 20 is a diagram illustrating a case where the Isochronous transfer mode and the Asynchronous transfer mode are mixed in one communication cycle.
[0124]
The Isochronous transfer mode is executed prior to the Asynchronous transfer mode. The reason is that after the cycle start packet, the idle period (subaction gap) required to start the asynchronous transfer is set to be longer than the idle period (isochronous gap) required to start the isochronous transfer. Because it is. As a result, Isochronous transfer is executed prior to Asynchronous transfer.
[0125]
In FIG. 20, at the start of each communication cycle, a cycle start packet (hereinafter, CSP) is transferred from a predetermined node. Each node can time the same time as the other nodes by adjusting the time using the CSP.
[0126]
(11) Isochronous transfer mode
The Isochronous transfer mode is a synchronous transfer method. Isochronous mode transfer can be executed for a predetermined period after the start of the communication cycle. In addition, the Isochronous transfer mode is always executed in each cycle in order to maintain real-time transfer.
[0127]
The isochronous transfer mode is a transfer mode particularly suitable for transferring data that requires real-time transfer, such as moving image data and audio data. The Isochronous transfer mode is not a one-to-one communication as in the Asynchronous transfer mode, but a broadcast communication. That is, a packet transmitted from a certain node is uniformly transferred to all nodes on the network. The acknowledgment (acknowledgement reply code) does not exist in the isochronous transfer.
[0128]
In FIG. 20, a channel e (ch e), a channel s (ch s), and a channel k (chk) indicate periods during which each node performs Isochronous transfer. In the 1394 interface, different channel numbers are given to distinguish a plurality of different isochronous transfers. This enables Isochronous transfer between a plurality of nodes. Here, the channel number does not specify the transmission destination, but merely gives a logical number for the data.
[0129]
The Isochronous gap shown in FIG. 20 indicates an idle state of the bus. After a certain period of time in the idle state, a node desiring Isochronous transfer determines that the bus can be used and executes arbitration.
[0130]
Next, FIG. 21 shows a format of a communication packet transferred based on the Isochronous transfer mode. Hereinafter, a communication packet transferred based on the Isochronous transfer mode is referred to as an Isochronous packet.
[0131]
In FIG. 21, the Isochronous packet includes a header section 2101, a header CRC 2102, a data section 2103, and a data CRC 2104.
[0132]
The header section 2101 has a field 2105 for storing the data length of the data section 2103, a field 2106 for storing the format information of the isochronous packet, a field 2107 for storing the channel number of the isochronous packet, a format of the packet, and processing to be executed. There is a field 2108 for storing a transaction code (tcode) for identifying, and a field 2109 for storing a synchronization code.
[0133]
(12) Asynchronous transfer mode
The Asynchronous transfer mode is an asynchronous transfer method. Asynchronous transfer can be performed after the end of the Isochronous transfer period until the next communication cycle starts (that is, until the CSP of the next communication cycle is transferred).
[0134]
In FIG. 20, a first subaction gap indicates a bus idle state. After the idle time reaches a fixed value, a node desiring asynchronous transfer determines that the bus can be used and executes arbitration.
[0135]
The node that has obtained the right to use the bus by arbitration transfers the packet shown in FIG. 22 to a predetermined node. The node receiving this packet returns an ack (reception confirmation return code) or a response packet after the ack gap.
[0136]
FIG. 22 is a diagram showing a format of a communication packet based on the Asynchronous transfer mode. Hereinafter, a communication packet transferred based on the Asynchronous transfer mode is referred to as an Asynchronous packet.
[0137]
In FIG. 22, the Asynchronous packet includes a header section 2201, a header CRC 2202, a data section 2203, and a data CRC 2204.
[0138]
In the header section 2201, a field 2205 indicates the node ID of a destination node, a field 2206 indicates a node ID of a source node, a field 2207 indicates a label indicating a series of transactions, and a field 2208 indicates a retransmission status. A code, a field 2209, a transaction code (tcode) for identifying a packet format and processing to be executed, a field 2210, a priority, a field 2211, a destination memory address, and a field 2212, data of a data portion The extended field 2213 stores an extended transaction code.
[0139]
Asynchronous transfer is one-to-one communication from a self-node to a partner node. The packet transferred from the transfer source node is distributed to each node in the network, but the address other than the address addressed to itself is ignored. Therefore, only the destination node can read the packet.
[0140]
When the time to transfer the next CSP is reached during Asynchronous transfer, the transfer is not forcibly interrupted, and after the transfer is completed, the next CSP is transmitted. Thus, when one communication cycle continues for 125 μS or more, the period of the next communication cycle is shortened accordingly. By doing so, the 1394 network can maintain a substantially constant communication cycle.
[0141]
(13) Device map
As means for the application to know the topology of the 1394 network in order to create a device map, there are the following means in the IEEE 1394 standard.
1. Read the bus manager's topology map register
2. Estimate from self ID packet at bus reset
However, in the above-mentioned means 1 and 2, although the topology of the cable connection order based on the parent-child relationship of each node is known, the topology of the physical positional relationship cannot be known (ports that are not mounted can be seen. There is a problem.)
[0142]
In addition, there is a means for storing information for creating a device map as a database other than the configuration ROM. In this case, a means for obtaining various information depends on a protocol for accessing the database.
[0143]
By the way, the configuration ROM itself and the function of reading the configuration ROM are necessarily possessed by devices complying with the IEEE1394 standard. Therefore, by storing information such as device position and function in the configuration ROM of each node and providing a function to read them from an application, each node can be operated independently of a specific protocol such as database access and data transfer. Can implement a so-called device map display function.
[0144]
The configuration ROM can store a physical position, a function, and the like as node-specific information, and can be used to realize a device map display function.
[0145]
In this case, as means for the application to know the 1394 network topology based on the physical positional relationship, the bus reads the configuration ROM of each node at the time of bus reset or at the time of a request from the user to know the 1394 network topology. That method becomes possible. Furthermore, not only the physical position of the node but also various node information such as functions are described in the configuration ROM. By reading the configuration ROM, not only the physical position of the node but also the function information of each node and the like can be obtained. Obtainable. When the application acquires the configuration ROM information of each node, an API that acquires arbitrary configuration ROM information of the designated node is used.
[0146]
By using such means, an application of a device on the IEEE 1394 network can create various device maps according to applications, such as a physical topology map, a function map of each node, and the like. It is also possible to select a device having a function.
[0147]
<Overview of 1394 Bridge>
The configuration of the present embodiment and the connection device will be described.
[0148]
Hereinafter, the technology of the IEEE 1394 bridge applied to the digital interface of the present embodiment will be briefly described. The IEEE 1394 bridge (hereinafter 1394 bridge) standard is being developed by the IEEE 1394.1 subcommittee.
[0149]
According to the 1394 standard, up to 63 nodes can be connected on one 1394 bus, and the number of hops is up to 16.
A 1394 bridge is generally used when 63 or more 1394 nodes are to be connected to the 1394 network, or when it is necessary to connect devices that need to make a connection of 16 hops or more because they are at remote locations.
[0150]
IEEE 1394 uses 64-bit fixed addressing according to the IEEE 1212 standard, and defines 10 bits as a bus ID. Therefore, a maximum of 1023 buses except for an ID 1023 specifying a local bus are connected via a 1394 bridge, and A network can be configured.
[0151]
The main function of the 1394 bridge is to control 1394 node transactions between buses via the bridge.
[0152]
In the case of a 1394 transaction, the node that issues the transaction and the destination node are specified using the node ID as described in the column of <Overview of IEEE 1394 Technology>. The 1394 bridge has, as a table, information such as topology information and node ID information of two buses to be connected, and enables bus-to-bus transactions by disclosing partner bus / node information to the two buses to be connected.
[0153]
Further, in the case of the 1394 bus, a change occurs in a connection form such as additional connection of a device node, or a bus reset occurs when a certain node intentionally gives an instruction. In order to perform the reallocation, a bus reset sequence and a node ID determination sequence are performed, and a new topology is generated. The details of this sequence have been described in the section of <Bus Reset Sequence> and <Node ID Determination Sequence> in <Overview of IEEE 1394 Technology>, and will not be described.
[0154]
Due to this characteristic, the topology / node ID information of the bus to be connected changes dynamically, and the bridge also updates the information.
[0155]
On the other hand, while the 1394 bus reset sequence is being performed, data transfer in the bus is interrupted, and a complicated sequence of reassigning node IDs is performed. Therefore, it is necessary to generate a bus reset sequence. Propagating the bus reset signal to other buses is considered very inefficient, so the 1394 bridge does not propagate one connected bus reset signal to the other bus.
[0156]
Other bridge functions include arbitration between 1394 bridges in a network with a plurality of buses connected to a plurality of bus bridges, and a packet routing function through bridge information exchange.
[0157]
The above is the description regarding the configuration and functions of the communication system configured using the 1394 interface.
[0158]
<Data transfer procedure>
Next, the transmitting device 1 and the receiving device 2 in FIG. 1 will be described. The transmitting device 1 transmits data to the receiving device 2 using the function provided by the transaction layer 305. Of course, both the transmitting device and the receiving device may be equal devices having a transmitting / receiving function. This embodiment discloses an intermediate layer protocol that provides a service to the application layer 307 by using the service of the transaction layer 305 in FIG. In the present embodiment, since the transaction 305 operates as described above, this intermediate layer protocol will be described. The application layer 307 provides data on the transmission side to, for example, a program that realizes the intermediate layer protocol. On the receiving side, for example, an application program specified by the received data is activated and the received data is processed. Hereinafter, the operation of the transmitting device and the receiving device will be described, but the target of the description is the intermediate layer protocol, and the procedures in the application layer and the transaction layer are omitted.
[0159]
FIG. 23 shows a node address space of transmitting apparatus 1 and receiving apparatus 2 shown in FIG. 1 of the present embodiment. The node address space is as described in FIG. 6 and is a memory space specified by a 48-bit address. In FIG. 23, a control window 2301 includes both the transmission device 1 and the reception device 2 and is used for connection control and data transfer flow control. In the present embodiment, the addresses in the node address space are described in the NodeDependentInfoDirectory of the ConfigROM 2300 of each device (not shown), and can be known from other nodes. The data window 2302 is included in the receiving device 2, and the transmitting device 1 transmits data to this area using the write transaction described with reference to FIG. The address and size of the data window 2302 are stored by the receiving device 2 and are updated as the data transfer progresses. Then, the receiving apparatus 2 notifies the transmitting apparatus 1 using the control window 2301 described above. The data image is an image obtained by mapping the file image transmitted from the transmission device 1 to the node address space, and the data window 2302 slides to cover this data image.
[0160]
FIG. 24 shows the data format of the control window. In the figure, a command 2401 describes a command for connection and flow control with 16-bit width data. The window address upper 2402 has a 16-bit width and indicates the upper 16 bits of the address in the node address space of the data window. The window address lower 2403 also indicates the lower 32 bits. The window size 2404 indicates the byte size of the data window in a 64-bit width.
[0161]
Commands of the same format as the control window shown in FIG. 24 are exchanged between the transmitting device and the receiving device. As with the data, this command is exchanged when a certain device writes to the control window 2301 by a write transaction of another device.
[0162]
FIG. 25 shows the values and meanings of the commands. The connection request command (C) 2501 is a command transmitted from the transmitting device to the receiving device for establishing a connection, and does not use a window address or a window size. The connection permission response command (A) 2502 is a response that is sent from the receiving device to the transmitting device and that permits connection in response to the connection request command, and uses a window address and a window size if necessary. The connection rejection response command (B) 2503 for the connection request is sent from the reception device to the transmission device, and is a response for rejecting the connection in response to the connection request command, and does not use the window address and the window size. The window notification command (N) 2504 is a command for notifying the transmitting device of the window address from the receiving device, and uses the window address and the window size. The disconnection request command (T) 2505 is a command for requesting disconnection of the connection from the transmitting device to the receiving device, and does not use the window address and the window size.
[0163]
FIG. 26 shows a state transition of the transmission device 1, which is realized by the CPU 12 executing a program stored in the ROM 13. In the figure, TX0 indicates an initial state, a TX1 connection response waiting state, TX2 indicates a data transmission state, TX3 indicates a window notification waiting state, and TX4 indicates a window detection state. TX0a indicates a state transition to TX1 due to transmission of a connection request to the receiving device 2. TX1a indicates a state transition to TX2 upon receipt of the connection permission response. TX1b indicates a state transition to TX0 due to a timeout due to a failure to receive a connection response or a reception of a connection rejection response. TX2a indicates a state transition to TX3 due to writing to the data window reaching the data window size. TX2b indicates a state transition to TX4 due to reception of the window notification. TX2c indicates a state transition to TX0 due to transmission of the end request. TX3a indicates a state transition to TX4 due to reception of the window notification. TX4a indicates a state transition to TX2 due to detection of a new window address and window size.
[0164]
As described above, once the connection is established, the data transmission state, the window notification waiting state, and the window detection state are changed along the path of TX2a, TX3a, TX4a or TX2b, TX4a until the connection is disconnected by the disconnection request. Transition.
[0165]
That is, the transmitting device stores the address and the size of the data window notified by the window notification from the receiving device in a memory (transmission data management memory). Then, each time data is transmitted, the transmission data management memory is updated according to the transmitted size. That is, the size of the transmitted data is subtracted from the remaining size displayed in the transmission data management memory. Then, if the remaining size becomes 0, that is, if the notified data window has no free space, it enters a window notification waiting state.
[0166]
If there is a window notification in the window notification waiting state or the data transmission state, a window detection state is set. In this state, the address and size of the data window are detected from the window notification, the contents of the transmission data management memory are updated with the detected address and size, and the state shifts to the data transmission state. The transmission data management memory is updated by updating the data window end address obtained from the address information and size information notified by the window notification to the data window end obtained from the data window address and size managed by the transmission data management memory. This is performed by updating the size information so that the address matches the address. This is because, when data transmission and window notification are interchanged, the address of the data window managed by the transmitting device has the latest value.
[0167]
Once the connection is thus set, the transmitting apparatus can repeat the update of the data window size notified of data transmission, and transmit large-sized data according to the data window size. When transmitting data, the receiving side can rearrange the received data in the order in which it was received, because the transmission order represents the data sequence itself, so that the transmitted data can be reconstructed and processed as a group of data. can do.
[0168]
FIG. 27 shows a state transition of the receiving device 2, which is realized by the CPU 22 executing a program stored in the ROM 23. In the figure, RX0 indicates an initial state, RX1 indicates a reception start state, RX2 indicates a data reception state, RX3 indicates a window update waiting state, and RX4 indicates a window update state. RX0a indicates a state transition to RX1 due to reception of a connection request. RX1a indicates a state transition to RX2 due to transmission of a connection permission response including a window notification. RX1b indicates a state transition to RX0 due to transmission of a connection rejection response. RX2a indicates a state transition to RX3 due to the reception data reaching the window size. RX2b indicates a state transition to RX4 due to received data processing. RX2c indicates a state transition to RX0 due to reception of the termination request. RX3a indicates a state transition to RX4 due to received data processing. RX4a indicates a state transition to RX2 due to window update.
[0169]
As described above, once the connection is established, the data reception state, the window update waiting state, and the window update state are changed along the path of RX2a, RX3a, RX4a or RX2b, RX4a until the connection is disconnected by the disconnection request. Transition.
[0170]
That is, the receiving device manages the empty data window based on the address information and the size information of the control window, and if the size is 0, that is, if the notified data window runs out of empty space, the receiving device enters a window update waiting state.
[0171]
In the window update waiting state or the data reception state, if there is a free area available for the data window, or if a new area is available, the state is the window update state. In this state, the address and size of the data window included in the control window are updated, and an updated window notification is issued to the transmitting device. Then, the state returns to the data receiving state.
[0172]
Thus, once the connection is established, the receiving apparatus can repeat data reception, data window update, and window notification, and can transmit even large-sized data according to the data window size. At the time of data reception, since the reception order represents the data sequence itself, the receiving apparatus can process the received data as a set of data by rearranging the received data in the order in which they were received. For example, data received by each window size is stored as a series of data in a buffer specified by the application program, and it is determined that all data in the connection has been received by receiving a disconnection request, and the data is transferred to the application program. .
[0173]
Hereinafter, the data communication process will be described with reference to an example of the data communication flow. The transmitting device 1 transfers a file of size n bytes stored in the external device 15 to the receiving device 2, and the receiving device 2 stores the received file in the external device 25. FIG. 28 shows an example of a data communication flow. The command name is represented by an abbreviated name (shown in parentheses) as shown in FIG. 25, and the numerical value in parentheses following the command name indicates (window upper address: window lower address, window size). As shown in FIG. 25, a command not using a parameter is indicated by (0: 0, 0).
[0174]
In FIG. 28, a command C (0: 0,0) 2801 indicates a connection request from the transmitting device 1 to the receiving device 2 and writes the request into the control window of the receiving device 2 using a write transaction. As a result, the state of the transmitting device 1 changes from the initial state TX0 to the connection response waiting state TX1 (TX1a).
[0175]
The receiving device 2 receives the connection request, and its state transits from the initial state RX0 to the reception start state RX1 (RX1a). To permit transmission, the receiving device 2 writes a connection permission response command A (1: 0, 3072) 2802 in the control window 2301 of the transmitting device 1 using a block write transaction. The state of the receiving device 2 changes from the reception start state RX1 to the data reception state RX2 by transmitting a connection permission response (RX1a). The transmission device 1 receives the connection permission response, detects the upper address 1, the lower address 0, and the size of 3072 bytes of the data window of the reception device 2, and the state transits from the response waiting state TX1 to the data transmission state TX2 ( TX1a). Here, the transmitting device 1 reads out the window size of 3072 bytes from the beginning of the file and prepares for transmission.
[0176]
Command W (1: 0, 1024) 2803 indicates data transfer from transmitting apparatus 1 to receiving apparatus 2. The transmitting device 1 sends the first file read out using the write transaction to the address (010000H: H represents a hexadecimal number) specified by the upper address 1 and the lower address 0 in the node address space of the receiving device 2. 1024 bytes of data are written. The subsequent command W (1: 1024,1024) 2804 also indicates data transfer from the transmitting device 1 to the receiving device 2. The transmitting device 1 uses the write transaction to write the next 1024 bytes to the address (010400H) specified by the upper address 1 and the lower address 1024 in the node address space of the receiving device 2. The same applies to W (1: 2048,1024) 2805. The transmitting device 1 uses the write transaction to write the next 1024 bytes to the address (010800H) specified by the upper address 1 and the lower address 2048 in the node address space of the receiving device 2.
[0177]
Here, the transmitting device 1 completes data transmission of 3072 bytes (1024 bytes × 3 times), which is the data window size notified from the receiving device 2. Then, the state transits from the data transmission state TX2 to the window notification waiting state TX3 (TX2a).
[0178]
On the other hand, receiving apparatus 2 processes the received data after receiving W (1: 1024,1024) 2804, updates the data window to upper address 1, lower address 2048, size 3072 bytes (RX2b), and sends window notification N (1: 2048, 3072) 2806 is transmitted to the control window of the transmitting device 1 using a write transaction (RX4a).
[0179]
Thereafter, the receiving device 2 receives W (1: 2048,1024) 2805 from the transmitting device 1. As a result, of 3072 bytes, which is the size of the data window specified by the upper address 1 and the lower address 2048, the free area becomes 2048 bytes from the address (010C00H) specified by the upper address 1 and the lower address 3072.
[0180]
The transmitting device 1 receives the window notification N (1: 2048, 3072) 2806 after transmitting the W (1: 2048, 1024) 2805 (TX3a), and specifies the data window of the receiving device 2 by the upper address 1 and the lower address 2048. Starting from the address to be detected, it is detected that the size is 3072 bytes. As a result, the state of the transmission device 2 changes from the window detection state TX4 to the data transmission state TX2 (TX4a). Since the transmitting apparatus 1 has already transmitted W (1: 2048,1024) 2805, the next 2048 bytes are read from the file, and the subsequent address (W (1: 2048,1024) 2805) of the memory space written by W (1: 2048,1024) 2805 is read. 010C00H) to perform data transmission. That is, W (1: 3072,1024) 2807 is transmitted using a write transaction. Similarly, W (1: 4096,1024) 2808 is written to the memory space of the receiving device 2 by using a write transaction from the subsequent address written in W (1: 3072,1024) 2807. As a result, data transmission to the data window of 3072 bytes in size whose start address is specified by the upper address 1 and the lower address 2048 of the receiving device 2 is completed, and the transmitting device 1 transits to the window waiting state TX3 (TX2a). ).
[0181]
Upon receiving W (1: 2048,1024) 2805, W (1: 3072,1024) 2807, and W (1: 4096,1024) 2808, the receiving apparatus 2 transitions from the data reception state RX2 to the window update waiting state RX3. (RX2a). Then, the received data is processed, and the address of the data window is added to the address specified by the upper address 1 and the lower address 2048 by the received 3072 bytes, that is, the upper address is set to 1, and the lower address is set to 5120. , The size is updated to 3072 bytes (RX3a). The updated data window address and size are transmitted by writing a window notification command N (1: 5120, 3072) 2809 into the control window of the transmitting device 1 using a write transaction (RX4a).
[0182]
The transmitting device 1 receives the window notification, N (1: 5120,3072) 2809 (TX3a), detects the upper address 1, the lower address 5120, and the size of 3072 bytes of the data window of the receiving device 2, and determines from the window detection state TX4. The state transits to the data transmission state TX2 (TX4a).
[0183]
Thereafter, the transmitting device 1 and the receiving device 2 repeat the above-described processing, and transfer the data from W (1: 4096,1024) 2802808 to the last data W (1: n−r, r) 2811. After that, the transmitting device 1 transmits a disconnection request T (0: 0, 0) 2812 to the control window of the receiving device 2 using a write transaction, and returns to the initial state TX0 (TX2b).
[0184]
When receiving the connection request T (0: 0,0) 2812, the receiving device 2 processes the received data, ends the receiving process, and returns to the initial state RX0 (RX2b).
[0185]
As described above, the transmitting device 1 can transfer a file of a specified size by writing data of a specified byte from a specified address in the node address space of the receiving device 2.
[0186]
That is, the transmitting device first issues a connection request to the receiving device prior to data transmission, and attempts to establish a connection. Upon receiving the connection request, the receiving device notifies the memory space for data reception by its address and size. This establishes a connection. The transmitting device transmits data by writing transmission data to the memory space notified through the connection. At this time, the transmission device compares the remaining size of the transmission data with the notified free space of the memory space, and transmits the data in a size equal to or smaller than the notified free space of the memory space. Further, the receiving apparatus secures a memory space for reception in accordance with the use state of the resource, and notifies the transmitting side of the information so that data reception can be performed regardless of the data size.
[0187]
As a result, a large amount of data can be transmitted using a memory that can be secured by the receiving side for data reception.
[0188]
Since the memory space prepared by the receiving side can be dynamically changed each time data is transmitted by the transmitting side, it is possible to efficiently use the memory space secured by the receiving side according to the use state of the resource.
[0189]
Further, at the time of transmission, there is no need to transmit data for the free space. The transmitting side can control the data flow of the transaction layer by transmitting the data in an appropriate size. In the present embodiment, data transmission is performed in units of 1024 bytes regardless of the size of the reception memory space. Transaction processing is performed using the asynchronous mode, and since the asynchronous mode has a lower priority than the isochronous mode, there is a possibility that a sufficient band for a transaction cannot be secured. Even in such a case, by transmitting data in segments each having a certain size or less, it is possible to prevent timeout of data transmission and retransmission accompanying the data transmission, and suppress unnecessary traffic.
[0190]
In the 1394 network, the nodes are assumed to be various devices such as home appliances. Such devices do not always have sufficient data processing capabilities. In the present embodiment, even in such a case, the receiving device can take the initiative based on the window notification and control the bandwidth of the connection set between the transmitting device and the receiving device.
[0191]
(Second embodiment)
As a second embodiment of the present invention, a case will be described in which the receiving device reads data from an area in the node address space of the transmitting device to perform transfer. The configuration of the present embodiment is the same as the configuration of the first embodiment, and FIGS. 1, 23, 24, and 25 are used in the description of the present embodiment.
[0192]
FIG. 1 is a block diagram showing the present embodiment, and the configuration is the same as that of the above-described first embodiment. Next, the transmitting device 1 and the receiving device 2 will be described.
[0193]
FIG. 23 is a diagram illustrating a node address space of the transmitting device 1 and the receiving device 2 according to the present embodiment. In the figure, a control window is provided for both the transmitting device 1 and the receiving device 2, and is used for connection control and data transfer flow control. In the present embodiment, the address is described in NodeDependentInfoDirectory of the ConfigROM of each device (not shown) and can be known from other nodes. The data window is provided in the transmission device 1, and the reception device 2 receives data from this area using a read transaction. The address and the size are updated as the data transfer progresses, and are notified from the transmitting device 1 to the receiving device 2 using the control window described above. The data image is an image obtained by mapping the file image transmitted from the transmission device 1 to the node address space, and the data window slides the address so as to cover the data image.
[0194]
FIG. 24 shows the data format of the control window. In the figure, the command, the window address upper order, the window address lower order, and the window size are the same as those in the first embodiment. As shown in FIG. 25, the values and meanings of the commands are the same as those in the first embodiment.
[0195]
FIG. 29 shows a state transition of the transmission device 1, which is realized by the CPU 12 executing a program stored in the ROM 13. In the figure, TX10 indicates an initial state, TX11 connection response waiting state, TX12 indicates a window update state, TX13 indicates a data transmission state, and TX14 indicates a window update wait state. TX10a indicates a state transition to TX11 due to transmission of a connection request to the receiving device 2. TX11a indicates a state transition to TX12 due to the reception of the connection response. The TX 11b cannot receive a connection permission response and indicates a state transition to the TX 10 due to a timeout or a reception of a connection rejection response. TX12a indicates a state transition to TX13 due to transmission of the window notification. TX12b indicates a state transition to TX10 due to transmission of a termination request. TX13a indicates a state transition to TX14 when the transmission data reaches the window size. TX13b indicates a state transition to TX12 by updating the data window. TX14a indicates a state transition to TX12 by updating the data window.
[0196]
As described above, once the connection is established, the data transmission state, the window update wait state, and the window update state are changed along the path of TX13a, TX14a, TX12a or TX12a, TX13b until the connection is disconnected by the disconnection request. Transition.
[0197]
That is, the transmitting device stores the transmission data in the data window, and notifies the receiving device of the address and the size through the control window to enter the data transmission state. In this state, each time the receiving device reads data from the data window, the address and size of the control window are updated according to the amount of data read. Then, when the size becomes 0, that is, when the data is completely read from the data window, the state becomes the window update waiting state TX14.
[0198]
In the window update wait state or the data transmission state, when new data is prepared in the data window, the state transits to the window update state TX12, updates the control window with the address and size of the data window, and issues a window notification to the receiving device. I do. Then, the state becomes the data transmission state TX13.
[0199]
Once the connection is set in this way, the transmitting device repeats preparation of transmission data, update of the data window, and window notification, and can transmit even large-sized data according to the data window size. At the time of data transmission, since the transmission order represents the data sequence itself, the receiving side can process the received data as a group of data by rearranging the received data in the received order.
[0200]
FIG. 30 shows a state transition of the receiving device 2, which is realized by the CPU 22 executing a program stored in the ROM 23. In the figure, RX10 indicates an initial state, RX11 indicates a reception start state, RX12 indicates a window notification waiting state, RX13 indicates a window detection state, and RX14 indicates a data reception state. RX10a indicates a state transition to RX11 due to reception of a connection request. RX11a indicates a state transition to RX12 due to transmission of a connection permission response. RX11b indicates a state transition to RX10 due to transmission of a connection rejection response. RX12a indicates a state transition to RX13 due to the reception of the window notification. RX12b indicates a state transition to RX10 upon receipt of the end request. RX13a indicates a state transition to RX14 due to window detection. RX14a indicates a state transition to RX12 due to the reception data reaching the window size. RX14b indicates a state transition to RX13 due to the reception of the window notification in the data reception state.
[0201]
As described above, once the connection is established, the window notification waiting state, the window detection state, and the data reception state are changed along the path of RX12a, RX13a, RX14a or RX14b, RX13a until the connection is disconnected by the disconnection request. Transition.
[0202]
That is, the receiving device stores the address and size of the data window notified by the window notification from the transmitting device in a memory (received data management memory). Each time data is read from the notified data window, the address and size stored in the reception data management memory are updated according to the read size, and the address and size of the remaining data are stored in the reception data management memory. To manage. Then, when the transmitting device has exhausted all the data prepared, that is, when the remaining data size managed becomes 0, the state shifts from the receiving state RX14 to the window notification waiting state RX12.
[0203]
Then, if there is a window notification from the transmitting device in the window notification waiting state RX12 or the data reception state RX14, the state transits to the window detection state RX13. In the window detection state, the address and size of the data window displayed in the window notification are read, the received data display memory is updated, and the process returns to the data reception state RX14.
[0204]
Thus, once the connection is established, the receiving apparatus can repeat data reception, data window update, and window notification, and can transmit even large-sized data according to the data window size. At the time of data reception, since the reception order represents the data sequence itself, the receiving apparatus can process the received data as a set of data by rearranging the received data in the order in which they were received. For example, data received by each window size is stored as a series of data in a buffer specified by the application program, and it is determined that all data in the connection has been received by receiving a disconnection request, and the data is transferred to the application program. .
[0205]
Hereinafter, the data communication process will be described with reference to an example of the data communication flow. The transmitting device 1 transfers a file of size n bytes stored in the external device 15 to the receiving device 2, and the receiving device 2 stores the received file in the external device 25. FIG. 28 shows an example of a data communication flow. The command name is represented by an abbreviated name (shown in parentheses) as shown in FIG. 25, and the numerical value in parentheses following the command name indicates (window upper address: window lower address, window size). As shown in FIG. 25, a command not using a parameter is indicated by (0: 0, 0).
The transmitting device 1 transfers a file of size n bytes stored in the external device 15 to the receiving device 2, and the receiving device 2 stores the received file in the external device 25.
[0206]
FIG. 31 shows an example of a data communication flow.
[0207]
In the figure, C (0: 0,0) 3101 indicates a connection request from the transmitting device 1 to the receiving device 2 and writes the request into the control window of the receiving device 2 using a block write transaction. The state of the transmitting device 1 transits from TX10 to TX11 (TX11a). Upon receiving the connection request, the state of the receiving device 2 transits from RX10 to RX11 (RX11a). A (0: 0,0) 3102 indicates a connection permission response from the receiving device 2 and writes the response to the control window of the transmitting device 1 using a write transaction. The state of the receiving device 2 transmits a connection permission response and transits from RX11 to RX12 (RX11a). Upon receiving the connection permission response, the state of the transmitting device 1 transits from TX11 to TX12 (TX11a). At this time, the transmitting device 1 reads 3072 bytes from the beginning of the file, sets the upper address 1, the lower address 0, and the window size 3072 bytes of the node address space of the transmitting device 1 to be readable, and prepares for transmission.
[0208]
Next, N (1: 0, 3072) 3103 indicates a window notification from the transmitting device 1 to the receiving device 2, and the upper address 1, the lower address 0, and the window size 3072 bytes of the node address space of the transmitting device 1 can be read. Is transmitted to the control window of the receiving device 2 using a block write transaction (TX12a). When receiving the window notification, the receiving device 2 makes a state transition to RX13 (RX12a), and when detecting the updated data window of the transmitting device 1, makes a transition to RX14 (RX13a).
R (1: 0, 1024) 3104 indicates a read request from the receiving device 2 to the transmitting device 1, and is read first from the upper address 1 and the lower address 0 of the node address space of the transmitting device 1 using a block read transaction. Read the first 1024 bytes of data of the file. D (1: 0,1024) 3105 indicates a read response from the transmitting device 1 to the receiving device 2, in response to a 1024-byte read request from the receiving device 2 to the upper address 1 and the lower address 0 of the node address space. , The transmitting device returns the first 1024 bytes of data of the file.
[0209]
The subsequent R (1: 1024, 1024) 3106 also indicates a read request from the receiving device 2 to the transmitting device 1, and uses a block read transaction from the upper address 1 and the lower address 1024 of the node address space of the transmitting device 1. The next 1024-byte data of the file read earlier is read. D (1: 1024,1024) 3107 indicates a read response from the transmitting device 1 to the receiving device 2, in response to a 1024-byte read request from the receiving device 2 to the upper address 1 and the lower address 1024 of the node address space. , The transmitting device returns the next 1024-byte data.
[0210]
Here, the transmission device 1 reads the next 2048 bytes of the 3072 bytes from the beginning of the file, and sets the upper address 1, the lower address 2048, and the window size 3072 bytes of the node address space of the transmission device 1 to be readable. The data window is updated (TX13b). N (1: 2048, 3072) 3108 indicates a window notification from the transmitting device 1 to the receiving device 2, and the upper address 1, the lower address 2048, and the window size 3072 bytes of the node address space of the transmitting device 1 can be read. Is transmitted to the control window of the receiving device 2 using a block write transaction (TX12a). When receiving the window notification, the receiving device 2 makes a state transition to RX13 (RX14b), and when detecting the updated data window of the transmitting device 1, makes a transition to RX14 (RX13a).
[0211]
R (1: 2048,1024) 3109, R (1: 3072,1024) 3111, R (1: 4096,1024) 3113 indicate a read request from the receiving device 2 to the transmitting device 1, and D (1: 2048, 1024) 1024) 3110, D (1: 3072, 1024) 3112, and D (1: 4096, 1024) 3114 indicate a read response from the transmitting device 1 to the receiving device 2. The transmitting device 1 completes the transmission of 3072 bytes of the data window and transits to TX12 (TX14a), and the receiving device 2 completes the reception of 3072 bytes and transits to RX12 (RX14a).
[0212]
The transmitting device 1 reads the next 3072 bytes from the file, sets the upper address 1, the lower address 5120, and the window size 3072 bytes of the node address space of the transmitting device 1 to be readable and prepares for transmission.
[0213]
Next, N (1: 5120,3072) 3115 indicates a window notification from the transmitting device 1 to the receiving device 2, and the upper address 1, the lower address 5120, and the window size 3072 bytes of the node address space of the transmitting device 1 can be read. Is transmitted to the control window of the receiving device 2 using a block write transaction (TX12a). When receiving the window notification, the receiving device 2 makes a state transition to RX13 (RX12a), and when detecting the updated data window of the transmitting device 1, makes a transition to RX14 (RX13a).
[0214]
Thereafter, the transmitting device 1 and the receiving device 2 repeat the above processing, and from R (1: 5120,1024) 3116 and D (1: 5120,1024) 3117 to the last R (1: n−r, r) 3118. , D (1: n−r, r) 3119. Thereafter, the transmitting device 1 transmits the connection request T (0: 0,0) to the control window of the receiving device 2 using a block write transaction, and returns to the initial state TX10 (TX12b). When receiving the connection request T (0: 0,0) 3120, the receiving device 2 processes the received data, ends the receiving process, and returns to the initial state RX10 (RX12b).
[0215]
As described above, the receiving device 2 can transfer the file of the specified size by reading the data of the specified size from the specified address in the node address space of the transmitting device 1.
[0216]
That is, the transmitting device first issues a connection request to the receiving device prior to data transmission, and attempts to establish a connection. When receiving the connection request, the receiving device notifies connection permission. This establishes a connection. The transmitting device first notifies the receiving device of the address and size of the transmission data through the connection, and the receiving device reads the transmission data from the notified memory space by reading the transmission data in all or appropriate segments. Receive. This segment may be determined according to, for example, a receiving memory size that can be prepared by the receiving device, or an appropriate size may be determined in advance, and data may be read by the size regardless of the size of the receiving memory.
[0219]
As a result, a large amount of data can be transmitted using a memory that can be secured by the receiving side for data reception.
[0218]
The receiving side can proceed with data transmission under its initiative, and the memory space prepared by the transmitting side can be dynamically changed while transmitting data. The memory space secured according to the above can be used efficiently.
[0219]
Further, at the time of transmission, it is not necessary for the receiving side to collectively read all the data prepared by the transmitting side. The receiving side can control the data flow by reading out the data in an appropriate size.
[0220]
In the 1394 network, the nodes are assumed to be various devices such as home appliances. Such devices do not always have sufficient data processing capabilities. In the present embodiment, even in such a case, the receiving device can take the initiative based on the window notification and control the bandwidth of the connection set between the transmitting device and the receiving device.
[0221]
As described above, according to the present embodiment, the flow control is simplified by notifying the area for the data transfer, and the address of the transfer data and the address of the node address space are made to correspond one-to-one, so that the transmission Facilitates data division and data reconstruction after reception, and enables data transfer according to the processing capacity of devices by moving the data transfer area according to the resource status for transfer. , A simple data transfer device can be provided.
[0222]
The present invention can be applied to a system including a plurality of devices (for example, a host computer, an interface device, a reader, a printer, etc.), but can be applied to a device including one device (for example, a copier, a facsimile machine, etc.). May be applied.
[0223]
Further, an object of the present invention is to supply a storage medium (or a recording medium) recording software program codes for realizing the functions of the above-described embodiments to a system or an apparatus, and to provide a computer (or a CPU or a CPU) of the system or the apparatus. (MPU) reads and executes the program code stored in the storage medium.
[0224]
In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiment, and the program code itself and the storage medium storing the program code constitute the present invention.
[0225]
When the computer executes the readout program code, not only the functions of the above-described embodiments are realized, but also an operating system (OS) running on the computer based on the instruction of the program code. This also includes a case where some or all of the actual processing is performed and the functions of the above-described embodiments are realized by the processing.
[0226]
Further, after the program code read from the storage medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer, the function of the program is performed based on the instruction of the program code. This includes the case where the CPU provided in the expansion card or the function expansion unit performs part or all of the actual processing, and the processing realizes the functions of the above-described embodiments.
[0227]
【The invention's effect】
As described above, according to the present invention, the flow control is simplified by notifying the area for data transfer secured on the node address space of the memory map bus.
[0228]
Further, by associating the address of the transfer data with the address of the node address space on a one-to-one basis, data division at the time of transmission and data reconstruction after reception are facilitated.
[0229]
Furthermore, by moving the area for data transfer according to the resource status for transfer, data transfer according to the processing capacity of the device has been made possible.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of first and second embodiments.
FIG. 2 is a diagram showing a configuration of a 1394 serial bus network.
FIG. 3 is a diagram showing components of a 1394 serial bus of the present invention.
FIG. 4 is a diagram showing services that can be provided by a link layer of a 1394 serial bus according to the present invention.
FIG. 5 is a diagram showing services that can be provided by a transaction layer of a 1394 serial bus according to the present invention.
FIG. 6 is a diagram illustrating an address space in a 1394 interface.
FIG. 7 is a diagram showing addresses and functions of information stored in a CSR core register in the 1394 interface.
FIG. 8 is a diagram showing addresses and functions of information stored in a serial bus register in the 1394 interface.
FIG. 9 is a diagram showing a minimum format Configuration ROM in the 1394 interface.
FIG. 10 is a diagram illustrating a general configuration ROM in a 1394 interface.
FIG. 11 is a diagram showing addresses and functions of information stored in a serial bus device register in the 1394 interface.
FIG. 12 is a sectional view of a communication cable conforming to the IEEE 1394 standard.
FIG. 13 is a diagram illustrating a DS-Link coding scheme.
FIG.
FIG.
FIG. 16 is a diagram showing a basic sequence from a start of a bus reset to a process of assigning a node ID.
FIG. 17 is a flowchart illustrating in detail a process of step S1505 (ie, a process of automatically assigning a node ID of each node) illustrated in FIG. 15;
FIG. 18 is a diagram showing a configuration of a self ID packet in the 1394 interface.
FIG. 19 is a diagram illustrating arbitration in a 1394 network.
FIG. 20 is a diagram illustrating a case where the isochronous transfer mode and the asynchronous transfer mode are mixed in one communication cycle.
FIG. 21 is a diagram showing a format of a communication packet transferred based on an isochronous transfer mode.
FIG. 22 is a diagram showing a packet format of asynchronous transfer according to the present invention.
FIG. 23 is a diagram illustrating a node address space according to the first and second embodiments.
FIG. 24 is a diagram illustrating a data format of a control window according to the first and second embodiments.
FIG. 25 is a diagram illustrating command values and meanings according to the first and second embodiments.
FIG. 26 is a state transition diagram of the transmission device 1 according to the first embodiment.
FIG. 27 is a state transition diagram of the receiving device 2 according to the first embodiment.
FIG. 28 is a diagram illustrating an example of a communication flow according to the first embodiment.
FIG. 29 is a state transition diagram of the transmission device 1 according to the second embodiment.
FIG. 30 is a state transition diagram of the receiving device 2 according to the second embodiment.
FIG. 31 is a diagram illustrating an example of a communication flow according to the second embodiment.
[Explanation of symbols]
1 transmitting device
11 System bus
12 CPU
13 ROM
14 RAM
15 External devices
16 IEEE 1394 interface
2 Receiver
21 System bus
22 CPU
23 ROM
24 RAM
25 External device
26 IEEE 1394 interface
3 IEEE1394 cable

Claims (18)

メモリマップバスにより接続された第1の装置および第2の装置を有するデータ転送システムであって、
前記第1の装置は、
前記メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変にデータ領域を配置する配置手段と、
前記配置手段により配置した領域のアドレスおよびサイズ情報を前記第2の装置に通知する通知手段とを備え、
前記第2の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記第1の装置における前記データ領域を介して前記第1の装置との間においてデータ転送を遂行することを特徴とするデータ転送システム。
A data transfer system having a first device and a second device connected by a memory map bus,
The first device comprises:
Arranging means for arranging a data area variably in address and size in a node address space of the memory map bus;
Notifying means for notifying the second device of the address and size information of the area arranged by the arranging means,
The second device performs data transfer with the first device via the data area in the first device based on the address and size information notified by the notification means. Characterized data transfer system.
前記第1の装置は、書き込み可能なデータ領域を前記配置手段により配置して前記通知手段によりそのアドレス及びサイズ情報を前記第2の装置に通知し、前記第2の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記メモリマップバスを介して前記データ領域にデータを書き込むことで、前記第2の装置から前記第1の装置に対するデータ転送を遂行することを特徴とする請求項1に記載のデータ転送システム。The first device arranges a writable data area by the arranging means, notifies the address and size information to the second device by the notifying means, and the second device notifies the second device by the notifying means. The data transfer from the second device to the first device is performed by writing data to the data area via the memory map bus based on the notified address and size information. The data transfer system according to claim 1. 前記第2の装置は、データを、そのアドレスが前記ノードアドレス空間のアドレスと対応するように分割して前記データ領域に書き込み、前記第1の装置は、前記データ領域に書き込まれたデータを、そのアドレスがノードアドレス空間のアドレスと対応するように再構成することを特徴とする請求項2に記載のデータ転送システム。The second device divides data so that an address thereof corresponds to an address of the node address space and writes the divided data into the data area, and the first device writes the data written into the data area. 3. The data transfer system according to claim 2, wherein the address is reconfigured so as to correspond to an address in the node address space. 前記第1の装置は、前記データ領域にデータを書き込んで、前記通知手段によりそのアドレス及びサイズ情報を前記第2の装置に通知し、前記第2の装置は、前記通知手段により通知されたアドレスおよびサイズ情報に基づいて、前記メモリマップバスを介して前記データ領域からデータを読み込むことで、前記第1の装置から前記第2の装置に対するデータ転送を遂行することを特徴とする請求項1に記載のデータ転送システム。The first device writes data in the data area, and notifies the second device of the address and size information by the notifying unit, and the second device notifies the address notified by the notifying unit of the address. 2. The data transfer from the first device to the second device by reading data from the data area via the memory map bus based on the size information and the size information. Data transfer system as described. 前記第1の装置は、データを、そのアドレスが前記ノードアドレス空間のアドレスと対応するように分割して前記データ領域に書き込み、前記第2の装置は、前記データ領域に書き込まれたデータを、そのアドレスがノードアドレス空間のアドレスと対応するように再構成することを特徴とする請求項4に記載のデータ転送システム。The first device divides data so that its address corresponds to an address in the node address space and writes the divided data into the data area, and the second device writes the data written into the data area, 5. The data transfer system according to claim 4, wherein the address is reconfigured so as to correspond to an address in the node address space. 前記第1の装置はさらに、前記配置手段により配置したデータ領域を解除する解除手段を備え、前記配置手段による配置と前記解除手段による解除との繰り返しにより前記データ領域をノードアドレス空間内で移動させることを特徴とする請求項1乃至5のいずれか1項に記載のデータ転送システム。The first device further includes a release unit that releases the data area arranged by the arrangement unit, and moves the data area in the node address space by repeating the arrangement by the arrangement unit and the release by the release unit. The data transfer system according to any one of claims 1 to 5, wherein: 前記メモリマップバスはIEEE1394バスであり、前記通知手段による通知及び前記データ転送は、IEEE1394インターフェースのトランザクションレイヤにより提供されるトランザクションで行われることを特徴とする請求項1に記載のデータ転送システム。2. The data transfer system according to claim 1, wherein the memory map bus is an IEEE 1394 bus, and the notification by the notification unit and the data transfer are performed by a transaction provided by a transaction layer of an IEEE 1394 interface. メモリマップバスにより送信装置と接続された受信装置であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置する配置手段と、
前記領域のアドレスおよびサイズ情報を前記送信装置に通知する通知手段と、
前記領域に前記送信装置により書き込まれたデータを受信する受信手段と
を備えることを特徴とする受信装置。
A receiving device connected to the transmitting device by a memory map bus,
Arranging means for arranging a writable area by the transmitting device variably in address and size in a node address space of a memory map bus;
Notifying means for notifying the transmitting device of the address and size information of the area,
Receiving means for receiving data written in the area by the transmitting device.
メモリマップバスにより受信装置と接続された送信装置であって、
前記受信装置よりアドレスおよびサイズ情報を受信する受信手段と、
前記受信手段により受信した前記アドレス及びサイズ情報により特定される領域にデータを書き込むことでデータを送信する送信手段と
を備えることを特徴とする送信装置。
A transmitting device connected to the receiving device by a memory map bus,
Receiving means for receiving address and size information from the receiving device;
A transmitting unit for transmitting data by writing data in an area specified by the address and size information received by the receiving unit.
メモリマップバスにより受信装置と接続された送信装置であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置し、該領域に送信データを書き込む手段と、
前記領域のアドレスおよびサイズ情報を前記受信装置に通知する通知手段と、
前記領域に前記送信装置により書き込まれたデータを送信する送信手段と
を備えることを特徴とする送信装置。
A transmitting device connected to the receiving device by a memory map bus,
Means for arranging a writable area by the transmitting device variably in address and size in a node address space of a memory map bus, and writing transmission data in the area;
Notifying means for notifying the receiving device of the address and size information of the area,
Transmitting means for transmitting data written by the transmitting device to the area.
メモリマップバスにより送信装置と接続された受信装置であって、
前記送信装置よりアドレスおよびサイズ情報を受信する第1受信手段と、
前記受信手段により受信した前記アドレス及びサイズ情報により特定される領域からデータを読み出すことでデータを受信する第2受信手段と
を備えることを特徴とする受信装置。
A receiving device connected to the transmitting device by a memory map bus,
First receiving means for receiving address and size information from the transmitting device;
A receiving apparatus comprising: a second receiving unit that receives data by reading data from an area specified by the address and size information received by the receiving unit.
メモリマップバスにより送信装置と接続された受信装置の制御方法であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置する配置工程と、
前記領域のアドレスおよびサイズ情報を前記送信装置に通知する通知工程と、
前記領域に前記送信装置により書き込まれたデータを受信する受信工程と
を備えることを特徴とする受信装置の制御方法。
A method for controlling a receiving device connected to a transmitting device by a memory map bus,
An arranging step of arranging a writable area by the transmitting device at an address and a size variable in a node address space of a memory map bus;
A notifying step of notifying the address and size information of the area to the transmitting device,
A receiving step of receiving data written in the area by the transmitting device.
メモリマップバスにより受信装置と接続された送信装置の制御方法であって、
前記受信装置よりアドレスおよびサイズ情報を受信する受信工程と、
前記受信工程により受信した前記アドレス及びサイズ情報により特定される領域にデータを書き込むことでデータを送信する送信手段と
を備えることを特徴とする送信装置の制御方法。
A method for controlling a transmitting device connected to a receiving device by a memory map bus,
A receiving step of receiving address and size information from the receiving device,
A control unit for transmitting data by writing data in an area specified by the address and size information received in the receiving step.
メモリマップバスにより受信装置と接続された送信装置の制御方法であって、
メモリマップバスのノードアドレス空間内にアドレスおよびサイズ可変に前記送信装置により書き込み可能な領域を配置し、該領域に送信データを書き込む工程と、
前記領域のアドレスおよびサイズ情報を前記受信装置に通知する通知工程と、
前記領域に前記送信装置により書き込まれたデータを送信する送信工程と
を備えることを特徴とする送信装置の制御方法。
A method for controlling a transmitting device connected to a receiving device by a memory map bus,
Arranging a writable area by the transmitting device at an address and a size variable in a node address space of a memory map bus, and writing transmission data to the area;
Notification step of notifying the address and size information of the area to the receiving device,
Transmitting the data written by the transmitting device to the area.
メモリマップバスにより送信装置と接続された受信装置の制御工程であって、
前記送信装置よりアドレスおよびサイズ情報を受信する第1受信工程と、
前記受信工程により受信した前記アドレス及びサイズ情報により特定される領域からデータを読み出すことでデータを受信する第2受信工程と
を備えることを特徴とする受信装置の制御方法。
A control process of the receiving device connected to the transmitting device by a memory map bus,
A first receiving step of receiving address and size information from the transmitting device;
A second receiving step of receiving data by reading data from an area specified by the address and size information received in the receiving step.
請求項12または15のいずれか1項に記載の受信装置の制御方法をコンピュータにより実現するためのコンピュータプログラム。A computer program for realizing a control method of a receiving device according to claim 12 by a computer. 請求項13または14のいずれか1項に記載の送信装置の制御方法をコンピュータにより実現するためのコンピュータプログラム。A computer program for realizing a control method of a transmission device according to claim 13 by a computer. 請求項16または17のいずれか1項に記載のコンピュータプログラムを記録したコンピュータ可読記録媒体。A computer-readable recording medium on which the computer program according to claim 16 is recorded.
JP2002223580A 2002-07-31 2002-07-31 Data transfer device, transmitting device, receiving device, and method for controlling them Withdrawn JP2004064665A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002223580A JP2004064665A (en) 2002-07-31 2002-07-31 Data transfer device, transmitting device, receiving device, and method for controlling them

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002223580A JP2004064665A (en) 2002-07-31 2002-07-31 Data transfer device, transmitting device, receiving device, and method for controlling them

Publications (1)

Publication Number Publication Date
JP2004064665A true JP2004064665A (en) 2004-02-26

Family

ID=31943294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002223580A Withdrawn JP2004064665A (en) 2002-07-31 2002-07-31 Data transfer device, transmitting device, receiving device, and method for controlling them

Country Status (1)

Country Link
JP (1) JP2004064665A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8339629B2 (en) 2004-07-21 2012-12-25 Canon Kabushiki Kaisha Data processing device, communication processing method, and computer program
JP2013068992A (en) * 2011-09-20 2013-04-18 Toshiba Corp Memory device and host device
JP2013141137A (en) * 2012-01-05 2013-07-18 Ricoh Co Ltd Composite system
US9239692B2 (en) 2013-11-29 2016-01-19 Canon Kabushiki Kaisha Communication apparatus performing communication speed changing process, communication control method and storage medium
CN111427828A (en) * 2020-03-02 2020-07-17 深圳震有科技股份有限公司 SPI flow control method, system, master device, slave device and storage medium

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8339629B2 (en) 2004-07-21 2012-12-25 Canon Kabushiki Kaisha Data processing device, communication processing method, and computer program
JP2013068992A (en) * 2011-09-20 2013-04-18 Toshiba Corp Memory device and host device
US8799605B2 (en) 2011-09-20 2014-08-05 Kabushiki Kaisha Toshiba Initializing and writing to a nonvolatile storage device based on a client/server model
JP2013141137A (en) * 2012-01-05 2013-07-18 Ricoh Co Ltd Composite system
US9239692B2 (en) 2013-11-29 2016-01-19 Canon Kabushiki Kaisha Communication apparatus performing communication speed changing process, communication control method and storage medium
CN111427828A (en) * 2020-03-02 2020-07-17 深圳震有科技股份有限公司 SPI flow control method, system, master device, slave device and storage medium

Similar Documents

Publication Publication Date Title
EP1134937B1 (en) Information signal processing apparatus, corresponding system, method and computer readable storage medium
JP4035235B2 (en) Electronics
JP4027189B2 (en) Information processing system, information processing apparatus, information processing method, program, and storage medium
US6823408B2 (en) Electronic equipment, and method for controlling state of physical layer circuit therefor
JP2003174486A (en) Information communication device, information communication method and information communication processing program
JP2002077211A (en) Information processing equipment, its method and recording medium
US7177959B2 (en) Information signal processing apparatus and method
JP2004064665A (en) Data transfer device, transmitting device, receiving device, and method for controlling them
JP2004509518A (en) Communication systems and devices
JP2003229857A (en) Serial bus system, device for managing band of serial bus, and communication equipment
JP2003110651A (en) Data processing method, data processing apparatus, communication protocol and program
JP4095384B2 (en) Information processing system, information processing apparatus, information processing method, program, and storage medium
JP4109983B2 (en) Communications system
JP2004102443A (en) Information processing system, information processing method, program and storage medium
JP2006134222A (en) Information processor and method
JP2001144783A (en) Serial bus bridge, terminal equipment, information communication system, its method and storage medium
JP2005044078A (en) Communication method, printing device, and host device
JP3495878B2 (en) Data processing method, data processing device and printer
JP2004274608A (en) Communication apparatus
JP2004179898A (en) Image processing apparatus
JP2009027349A (en) Network apparatus
JP2004223965A (en) Printing device
JPH11177589A (en) Data transfer device, data processing method therefor and computer readable storage medium stored with program
JP2004192559A (en) Image processing system
JP2001160938A (en) Image processing unit and image processing system, and control method therefor

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20051004