(57)【要約】【課題】  信頼性の高い転送スピードでのデータ転送スピードを選択することを特徴としたＩＥＥＥ１３９４データ転送方法を提供する。【解決手段】  ＩＥＥＥ１３９４バスにおいてある転送スピードの通信時に転送エラーが発生することにより所定のトランズアクションが正常に完了しない場合、受信側が信頼性の高い転送スピードで通信を行う為に自デバイスが発行するセルフＩＤパケット中のスピード情報を変更しバスの初期化を行う。【選択図】        図２８
2006134222.tif 000002
【特許請求の範囲】
【請求項１】
ＩＥＥＥ１３９４に準拠した通信制御バスに接続された通信を行うデバイス間における２ノード間における通信において、ＩＥＥＥ１３９４トランズアクションエラーが所定の頻度を超えて発生する場合、トランズアクションの受信側が信頼性の高い転送スピードで通信を行う為に自デバイスが発行するセルフＩＤパケット中のスピード情報を変更し、バスの初期化を行うことを特徴とする情報処理装置。
【請求項２】
ＩＥＥＥ１３９４に準拠した通信制御バスに接続された通信を行うデバイス間における２ノード間における通信において、ＩＥＥＥ１３９４トランズアクションエラーが所定の頻度を超えて発生する場合、トランズアクションの受信側が信頼性の高い転送スピードで通信を行う為に自デバイスが発行するセルフＩＤパケット中のスピード情報を変更し、バスの初期化を行うことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＥＥＥ１３９４等のインタフェースで接続される情報処理装置及び方法に関するものである。
【背景技術】
【０００２】
１３９４ネットワークは、１００／２００／４００Ｍｂｐｓのデータ転送速度に対応している。上位のデータ転送速度を持つ機器は、下位のデータ転送速度をサポートすることができるため、異なるデータ転送速度に対応する機器同士を接続することができる。
【０００３】
１３９４インタフェースを装着するデバイスにおいてデバイス間通信を行う場合、バスの初期化処理において個々のデバイスが所定の手段を使って自デバイスのスピード性能を公開する（例えば、特許文献１）。バスの初期化シーケンスにおいて、これら情報をもとにデバイス間の転送スピードの決定を行い、接続されるデバイス双方が送受できる最高転送スピードが選択される。
【特許文献１】特開平１０−２２９４２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながらデバイス間の相性、接続に使用するケーブル、ノイズの影響等により様々な接続環境下でデバイス間通信が行われ、高速データ転送を阻む劣悪な接続環境で動作が行われることもある。そういった場合、環境がバスの初期化時に決定されたデバイス間転送スピードでの通信に影響を及ぼし、データ転送エラーの多発などにより正常なデータ転送が行われない場合がある。
【０００５】
本発明は、上述の問題点に着目して成されたものであって、信頼性の高い転送スピードでのデータ転送スピードを選択することを特徴としたＩＥＥＥ１３９４データ転送を実現できる情報処理装置及び方法の提供を目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記課題を解決するために以下（１）の構成を備える。
【０００７】
（１）ＩＥＥＥ１３９４に準拠した通信制御バスに接続された通信を行うデバイス間における２ノード間における通信において、ＩＥＥＥ１３９４トランズアクションエラーが所定の頻度を超えて発生する場合、トランズアクションの受信側が信頼性の高い転送スピードで通信を行う為に自デバイスが発行するセルフＩＤパケット中のスピード情報を変更し、バスの初期化を行うことを特徴とする情報処理装置。
【０００８】
すなわち本発明の情報信号処理装置及び同システムは、ＩＥＥＥ１３９４バスにおいてある転送スピードの通信時に転送エラーが発生することにより所定のトランズアクションが正常に完了しない場合、受信側が信頼性の高い転送スピードで通信を行う為に自デバイスが発行するセルフＩＤパケット中のスピード情報を変更しバスの初期化を行うことにより、信頼性の高い転送スピードでのデータ転送スピードを選択することを特徴としたＩＥＥＥ１３９４データ転送方法を提供する。
【発明の効果】
【０００９】
本発明によれば、ＩＥＥＥ１３９４で接続されたデバイス通信において、機器間の相性、接続に使用するケーブル、ノイズの影響等により決定されたデバイス間転送スピードでの通信に影響を及ぼしデータ転送エラーの多発などにより正常なデータ転送が行われない場合があるようなケースでは、トランズアクションの受信側デバイスがより信頼性の高いスピードにて通信を行う為にセルフＩＤパケットのスピード情報を調整し、バスリセットを発行することにより、より信頼性の高い転送スピードでのデータ転送モードに切り替えることが可能となり通信安定性が期待され、トランズアクションエラー状態が発生する頻度が低減される。
【発明を実施するための最良の形態】
【００１０】
以下に本発明を実施するための最良の形態を、実施例に基づいて説明する。
【実施例】
【００１１】
図１は、本発明を最もよくあらわす図であり、ＩＥＥＥ１３９４で接続されたホストコンピュータ（以下ホスト）１ａとプリンタ１ｂを表している。コンピュータ１ａとプリンタ１ｂの通信はＩＥＥＥ１３９４インタフェース上で接続されている。両デバイス共に４００Ｍｂｐｓの転送レートに対応したデバイスである。
【００１２】
〈ＩＥＥＥ１３９４の技術の概要〉
以下、本実施例のデジタルインタフェースに適用されるＩＥＥＥ１３９４−１９９５規格の技術について簡単に説明する。尚、ＩＥＥＥ１３９４−１９９５規格（以下、ＩＥＥＥ１３９４規格）についての詳細は、１９９６年８月３０日にＩＥＥＥ（Ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ，Ｉｎｃ．）から出版された「ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ａ  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｓｅｒｉａｌ  Ｂｕｓ」に記述されている。
【００１３】
（１）概要
図２にＩＥＥＥ１３９４規格に準拠したデジタルインタフェース（以下、１３９４インタフェース）を具備するノードにより構成される通信システム（以下、１３９４ネットワーク）の一例を示す。１３９４ネットワークは、シリアルデータの通信可能なバス型ネットワークを構成するものである。
【００１４】
図２において、各ノードＡ〜Ｆは、ＩＥＥＥ１３９４規格に準拠した通信ケーブルを介して接続されている。これらのノードＡ〜Ｆは、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、デジタルＶＴＲ（Ｖｉｄｅｏ  Ｔａｐｅ  Ｒｅｃｏｒｄｅｒ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｃ）プレーヤ、デジタルカメラ、ハードディスク、モニタ等の電子機器である。
【００１５】
１３９４ネットワークの接続方式は、ディジーチェーン方式とノード分岐方式とに対応しており、自由度の高い接続を可能としている。
【００１６】
又、１３９４ネットワークでは、例えば、既存の機器を削除したり、新たな機器を追加したり、既存の機器の電源をＯＮ／ＯＦＦしたりした場合に、自動的にバスリセットを行う。このバスリセットを行うことにより、１３９４ネットワークは、新たな接続構成の認識と各機器に対するＩＤ情報の割り当てとを自動的に行うことができる。この機能によって、１３９４ネットワークは、ネットワークの接続構成を常時認識することができる。
【００１７】
又、１３９４ネットワークは、他の機器から転送されたデータを中継する機能を有している。この機能により、全ての機器がバスの動作状況を把握することができる。
【００１８】
又、１３９４ネットワークは、Ｐｌｕｇ＆Ｐｌａｙと呼ばれる機能を有している。この機能により、全ての機器の電源をＯＦＦにすることなく、接続するだけで自動に接続機器を認識することができる。
【００１９】
又、１３９４ネットワークは、１００／２００／４００Ｍｂｐｓのデータ転送速度に対応している。上位のデータ転送速度を持つ機器は、下位のデータ転送速度をサポートすることができるため、異なるデータ転送速度に対応する機器同士を接続することができる。
【００２０】
更に、１３９４ネットワークは、２つの異なるデータ転送方式（即ち、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードとＩｓｏｃｈｒｏｎｏｕｓ転送モード）に対応している。
【００２１】
Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードは、必要に応じて非同期に転送することが要求されるデータ（即ち、コントロール信号やファイルデータ等）を転送する際に有効である。又、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、所定量のデータを一定のデータレートで連続的に転送することが要求されるデータ（即ち、ビデオデータやオーディオデータ等）を転送する際に有効である。
【００２２】
Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードとＩｓｏｃｈｒｏｎｏｕｓ転送モードとは、各通信サイクル（通常１サイクルは、１２５μＳ）内において、混在させることが可能である。各転送モードは、サイクルの開始を示すサイクル・スタート・パケット（以下、ＣＳＰ）の転送後に実行される。
【００２３】
尚、各通信サイクル期間において、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードよりも優先順位が高く設定されている。又、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードの転送帯域は、各通信サイクル内で保証されている。
【００２４】
（２）アーキテクチャ
次に、図３を用いて１３９４インタフェースの構成要素を説明する。
【００２５】
１３９４インタフェースは、機能的に複数のレイヤ（階層）から構成されている。図３において、１３９４インタフェースは、ＩＥＥＥ１３９４規格に準拠した通信ケーブル（１３９４シリアルバスケーブル）３０１を介して他のノードの１３９４インタフェースと接続される。又、１３９４インタフェースは、１つ以上の通信ポート（１３９４通信ポート）３０２を有し、通信ポート３０２は、ハードウェア部に含まれるフィジカルレイヤ３０３と接続される。
【００２６】
図３において、ハードウェア部は、フィジカルレイヤ３０３とリンクレイヤ３０４とから構成されている。フィジカルレイヤ３０３は、他のノードとの物理的、電気的なインタフェース、バスリセットの検出とそれに伴う処理、入出力信号の符号化／復号化、バス使用権の調停等を行う。又、リンクレイヤ３０４は、通信パケットの生成と送受信、サイクルタイマの制御等を行う。
【００２７】
又、図３において、ファームウェア部は、トランザクションレイヤ３０５とシリアルバスマネージメント３０６とを含んでいる。トランザクションレイヤ３０５は、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードを管理し、各種のトランザクション（リード、ライト、ロック）を提供する。シリアルバスマネージメント３０６は、後述するＣＳＲアーキテクチャに基づいて、自ノードの制御、自ノードの接続状態の管理、自ノードのＩＤ情報の管理、シリアルバスネットワークの資源管理を行う機能を提供する。
【００２８】
以上、ハードウェア部とファームウェア部とが実質的に１３９４インタフェースを構成するものであり、それらの基本構成は、ＩＥＥＥ１３９４規格により規定されている。
【００２９】
又、ソフトウェア部に含まれるアプリケーションレイヤ３０７は、使用するアプリケーションソフトによって異なり、ネットワーク上でどのようにデータを通信するのかを制御する。例えば、デジタルＶＴＲの動画像データの場合は、ＡＶ／Ｃプロトコルなどの通信プロトコルによって規定されている。
【００３０】
（２−１）リンクレイヤ３０４
図４は、リンクレイヤ３０４の提供可能なサービスを示す図である。図４において、リンクレイヤ３０４は、次の４つのサービスを提供する。即ち、（イ）応答ノードに対して所定のパケットの転送を要求するリンク要求（ＬＫ＿ＤＡＴＡ．ｒｅｑｕｅｓｔ）、（ロ）応答ノードに所定のパケットの受信を通知するリンク通知（ＬＫ＿ＤＡＴＡ．ｉｎｄｉｃａｔｉｏｎ）、（ハ）応答ノードからのアクノリッジを受信したことを示すリンク応答（ＬＫ＿ＤＡＴＡ．ｒｅｓｐｏｎｓｅ）、（ニ）要求ノードからのアクノリッジを確認するリンク確認（ＬＫ＿ＤＡＴＡ．ｃｏｎｆｉｒｍａｔｉｏｎ）である。尚、リンク応答（ＬＫ＿ＤＡＴＡ．ｒｅｓｐｏｎｓｅ）は、ブロードキャスト通信、Ｉｓｏｃｈｒｏｎｏｕｓパケットの転送の場合には存在しない。
【００３１】
又、リンクレイヤ３０４は、上述のサービスに基づいて、上述の２種類の転送方式、即ち、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モード、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードを実現する。
【００３２】
（２−２）トランザクションレイヤ３０５
図５は、トランザクションレイヤ３０５の提供可能なサービスを示す図である。図５において、トランザクションレイヤ３０５は、次の４つのサービスを提供する。即ち、（イ）応答ノードに対して所定のトランザクションを要求するトランザクション要求（ＴＲ＿ＤＡＴＡ．ｒｅｑｕｅｓｔ）、（ロ）応答ノードに所定のトランザクション要求の受信を通知するトランザクション通知（ＴＲ＿ＤＡＴＡ．ｉｎｄｉｃａｔｉｏｎ）、（ハ）応答ノードからの状態情報（ライト、ロックの場合は、データを含む）を受信したことを示すトランザクション応答（ＴＲ＿ＤＡＴＡ．ｒｅｓｐｏｎｓｅ）、（ニ）要求ノードからの状態情報を確認するトランザクション確認（ＴＲ＿ＤＡＴＡ．ｃｏｎｆｉｒｍａｔｉｏｎ）である。
【００３３】
又、トランザクションレイヤ３０５は、上述のサービスに基づいてＡｓｙｎｃｈｒｏｎｏｕｓ転送を管理し、次の３種類のトランザクション、即ち、１）リード・トランザクション、２）ライト・トランザクション、３）ロック・トランザクションを実現する。
【００３４】
１）リード・トランザクションは、要求ノードが応答ノードの特定アドレスに格納された情報を読み取る。
【００３５】
２）ライト・トランザクションは、要求ノードが応答ノードの特定アドレスに所定の情報を書き込む。
【００３６】
３）ロック・トランザクションは、要求ノードが応答ノードに対して参照データと更新データとを転送し、応答ノードの特定アドレスの情報とその参照データとを比較し、その比較結果に応じて特定アドレスの情報を更新データに更新する。
【００３７】
（２−３）シリアルバスマネージメント３０６
シリアルバスマネージメント３０６は、具体的に、次の３つの機能を提供することができる。３つの機能とは、即ち、１）ノード制御、２）アイソクロナス・リソース・マネージャ（以下、ＩＲＭ）、３）バスマネージャである。
【００３８】
１）ノード制御は、上述の各レイヤを管理し、他のノードとの間で実行されるＡｓｙｎｃｈｒｏｎｏｕｓ転送を管理する機能を提供する。
【００３９】
２）ＩＲＭは、他のノードとの間で実行されるＩｓｏｃｈｒｏｎｏｕｓ転送を管理する機能を提供する。具体的には、転送帯域幅とチャネル番号の割り当てに必要な情報を管理し、これらの情報を他のノードに対して提供する。
【００４０】
ＩＲＭは、ローカルバス上に唯一存在し、バスリセット毎に他の候補者（ＩＲＭの機能を有するノード）の中から動的に選出される。又、ＩＲＭは、後述のバスマネージャの提供可能な機能（接続構成の管理、電源管理、速度情報の管理等）の一部を提供してもよい。
【００４１】
３）バスマネージャは、ＩＲＭの機能を有し、ＩＲＭよりも高度なバス管理機能を提供する。具体的には、より高度な電源管理（通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理）、より高度な速度情報の管理（各ノード間の最大転送速度の管理）、より高度な接続構成の管理（トポロジーマップの作成）、これらの管理情報に基づくバスの最適化等を行い、更にこれらの情報を他のノードに提供する機能を有する。
【００４２】
又、バスマネージャは、シリアルバスネットワークを制御するためのサービスをアプリケーションに対して提供できる。ここで、サービスには、シリアルバス制御要求（ＳＢ＿ＣＯＮＴＲＯＬ．ｒｅｑｕｅｓｔ）、シリアルバス・イベント制御確認（ＳＢ＿ＣＯＮＴＲＯＬ．ｃｏｎｆｉｒｍａｔｉｏｎ）、シリアルバス・イベント通知（ＳＢ＿ＣＯＮＴＲＯＬ．ｉｎｄｉｃａｔｉｏｎ）等がある。
【００４３】
ＳＢ＿ＣＯＮＴＲＯＬ．ｒｅｑｕｅｓｔは、アプリケーションがバスリセットを要求するサービスである。ＳＢ＿ＣＯＮＴＲＯＬ．ｃｏｎｆｉｒｍａｔｉｏｎは、ＳＢ＿ＣＯＮＴＲＯＬ．ｒｅｑｕｅｓｔをアプリケーションに対して確認するサービスである。ＳＢ＿ＣＯＮＴＲＯＬ．ｉｎｄｉｃａｔｉｏｎは、非同期に発生するイベントをアプリケーションに対して通知するサービスである。
【００４４】
（３）アドレス指定
図６は、１３９４インタフェースにおけるアドレス空間を説明する図である。尚、１３９４インタフェースは、ＩＳＯ／ＩＥＣ１３２１３：１９９４に準じたＣＳＲ（Ｃｏｍｍａｎｄ  ａｎｄ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ）アーキテクチャに従い、６４ビット幅のアドレス空間を規定している。
【００４５】
図６において、最初の１０ビットのフィールド６０１は、所定のバスを指定するＩＤ番号に使用され、次の６ビットのフィールド６０２は、所定の機器（ノード）を指定するＩＤ番号に使用される。この上位１６ビットを「ノードＩＤ」と呼び、各ノードはこのノードＩＤにより他のノードを識別する。又、各ノードは、このノードＩＤを用いて相手を識別した通信を行うことができる。
【００４６】
残りの４８ビットからなるフィールドは、各ノードの具備するアドレス空間（２５６Ｍバイト構造）を指定する。その内の２０ビットのフィールド６０３は、アドレス空間を構成する複数の領域を指定する。
【００４７】
フィールド６０３において、「０〜０ｘＦＦＦＦＤ」の部分は、メモリ空間と呼ばれる。「０ｘＦＦＦＦＥ」の部分は、プライベート空間と呼ばれ、各ノードで自由に利用できるアドレスである。又、「０ｘＦＦＦＦＥ」の部分は、レジスタ空間と呼ばれ、バスに接続されたノード間において共通の情報を格納する。各ノードは、レジスタ空間の情報を用いることにより、各ノード間の通信を管理することができる。
【００４８】
最後の２８ビットのフィールド６０４は、各ノードにおいて共通或いは固有となる情報が格納されるアドレスを指定する。
【００４９】
例えば、レジスタ空間において、最初の５１２バイトは、ＣＳＲアーキテクチャのコア（ＣＳＲコア）レジスタ用に使用される。ＣＳＲコアレジスタに格納される情報のアドレス及び機能を図７に示す。図中のオフセットは、「０ｘＦＦＦＦＦ０００００００」からの相対位置である。
【００５０】
次の５１２バイトは、シリアルバス用のレジスタとして使用される。シリアルバス・レジスタに格納される情報のアドレス及び機能を図８に示す。図中のオフセットは、「０ｘＦＦＦＦＦ００００２００」からの相対位置である。
【００５１】
その次の１０２４バイトは、Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭ用に使用される。
【００５２】
Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭには最小形式と一般形式とがあり、「０ｘＦＦＦＦＦ００００４００」から配置される。最小形式のＣｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭを図９に示す。図９において、ベンダＩＤは、ＩＥＥＥにより各ベンダに対して固有に割り当てられた２４ビットの数値である。
【００５３】
又、一般形式のＣｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭを図１０に示す。図１０において、上述のベンダＩＤは、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙ１００２に格納されている。Ｂｕｓ  Ｉｎｆｏ  Ｂｌｏｃｋ１００１とＲｏｏｔ  Ｌｅａｆ（Ｒｏｏｔ＆ｕｎｉｔ  ｌｅａｖｅｓ）１００５とには、各ノードを識別する固有のＩＤ情報としてノードユニークＩＤを保持することが可能である。
【００５４】
ここで、ノードユニークＩＤは、メーカ、機種に関わらず、１つのノードを特定することのできる固有のＩＤを定めるようになっている。ノードユニークＩＤは６４ビットにより構成され、上位２４ビットは上述のベンダＩＤを示し、下位４８ビットは各ノードを製造するメーカにおいて自由に設定可能な情報（例えば、ノードの製造番号等）を示す。尚、このノードユニークＩＤは、例えばバスリセットの前後で継続して特定のノードを認識する場合に使用される。
【００５５】
又、図１０において、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙ１００２には、ノードの基本的な機能に関する情報を保持することが可能である。詳細な機能情報は、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙ１００２からオフセットされるサブディレクトリ（Ｕｎｉｔ  Ｄｉｒｅｃｔｏｒｉｅｓ１００４）に格納される。Ｕｎｉｔ  Ｄｉｒｅｃｔｏｒｉｅｓ１００４には、例えば、ノードのサポートするソフトウェアユニットに関する情報が格納される。具体的には、ノード間のデータ通信を行うためのデータ転送プロトコル、所定の通信手順を定義するコマンドセット等に関する情報が保持される。
【００５６】
又、図１０において、Ｎｏｄｅ  Ｄｅｐｅｎｄｅｎｔ  Ｉｎｆｏ  Ｄｉｒｅｃｔｏｒｙ１００３には、デバイス固有の情報を保持することが可能である。Ｎｏｄｅ  Ｄｅｐｅｎｄｅｎｔ  Ｉｎｆｏ  Ｄｉｒｅｃｔｏｒｙ１００３は、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙ１００２によりオフセットされる。
【００５７】
更に、図１０において、Ｖｅｎｄｏｒ  Ｄｅｐｅｎｄｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ１００６には、ノードを製造、或いは販売するベンダ固有の情報を保持することができる。
【００５８】
残りの領域は、ユニット空間と呼ばれ、各ノード固有の情報、例えば、各機器の識別情報（会社名、機種名等）や使用条件等が格納されたアドレスを指定する。ユニット空間のシリアルバス装置レジスタに格納される情報のアドレス及び機能を図１１に示す。図中のオフセットは、「０ｘＦＦＦＦＦ００００８００」からの相対位置である。
【００５９】
尚、一般的に、異種のバスシステムの設計を簡略化したい場合、各ノードは、レジスタ空間の最初の２０４８バイトのみを使うべきである。つまり、ＣＳＲコアレジスタ、シリアルバス・レジスタ、Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭ、ユニット空間の最初の２０４８バイトの合わせて４０９６バイトで構成することが望ましい。
【００６０】
（４）通信ケーブルの構成
図１２にＩＥＥＥ１３９４規格に準拠した通信ケーブルの断面図を示す。
【００６１】
通信ケーブルは、２組のツイストペア信号線と電源ラインとにより構成されている。電源ラインを設けることによって、１３９４インタフェースは、主電源のＯＦＦとなった機器、故障により電力低下した機器等にも電力を供給することができる。尚、電源線内を流れる電源の電圧は８〜４０Ｖ、電流は最大電流ＤＣ１．５Ａと規定されている。
【００６２】
２組のツイストペア信号線には、ＤＳ−Ｌｉｎｋ（Ｄａｔａ／Ｓｔｒｏｂｅ  Ｌｉｎｋ）符号化方式にて符号化された情報信号が伝送される。図１３は、ＤＳ−Ｌｉｎｋ符号化方式を説明する図である。
【００６３】
このＤＳ−Ｌｉｎｋ符号化方式は、高速なシリアルデータ通信に適しており、その構成は、２組のより対線を必要とする。一組のより対線は、データ信号を送り、他のより対線は、ストローブ信号を送る構成になっている。受信側は、２組の信号線から受信したデータ信号とストローブ信号との排他的論理和をとることによって、クロックを再現することができる。
【００６４】
尚、ＤＳ−Ｌｉｎｋ符号化方式を用いることにより、１３９４インタフェースには、例えば次のような利点がある。
１）他の符号化方式に比べて転送効率が高い。
２）ＰＬＬ回路が不要となり、コントローラＬＳＩの回路規模を小さくできる。
３）アイドル状態であることを示す情報を送る必要が無いため、トランシーバ回路をスリープ状態とし易く、消費電力の低減が図れる。
【００６５】
（５）バスリセット
各ノードの１３９４インタフェースは、ネットワークの接続構成に変化が生じたことを自動的に検出することができる。この場合、１３９４ネットワークは以下に示す手順によりバスリセットと呼ばれる処理を行う。尚、接続構成に変化は、各ノードの具備する通信ポートかかるバイアス電圧の変化により検知することができる。
【００６６】
ネットワークの接続構成の変化（例えば、ノードの挿抜、ノードの電源のＯＮ／ＯＦＦなどによるノード数の増減）を検出したノード、又は新たな接続構成を認識する必要のあるノードは、１３９４インタフェースを介して、バス上にバスリセット信号を送信する。
【００６７】
バスリセット信号を受信したノードの１３９４インタフェースは、バスリセットの発生を自身のリンクレイヤ３０４に伝達すると共に、そのバスリセット信号を他のノードに転送する。バスリセット信号を受信したノードは、今まで認識していたネットワークの接続構成及び各機器に割り当てられたノードＩＤをクリアにする。最終的に全てのノードがバスリセット信号を検知した後、各ノードは、バスリセットに伴う初期化処理（即ち、新たな接続構成の認識と新たなノードＩＤの割り当て）を自動的に行う。
【００６８】
尚、バスリセットは、先に述べたような接続構成の変化による起動の他に、ホスト側の制御によって、アプリケーションレイヤ３０７がフィジカルレイヤ３０３に対して直接命令を出すことによって起動させることも可能である。
【００６９】
又、バスリセットが起動するとデータ転送は一時中断され、バスリセットに伴う初期化処理の終了後、新しいネットワークのもとで再開される。
【００７０】
（６）バスリセット起動後のシーケンス
バスリセットの起動後、各ノードの１３９４インタフェースは、新たな接続構成の認識と新たなノードＩＤの割り当てとを自動的に実行する。以下、バスリセットの開始からノードＩＤの割り当て処理までの基本的なシーケンスを図１４〜１６を用いて説明する。
【００７１】
図１４は、図２の１３９４ネットワークにおけるバスリセット起動後の状態を説明する図である。
【００７２】
図１４において、ノードＡは１つの通信ポート、ノードＢは２つの通信ポート、ノードＣは２つの通信ポート、ノードＤは３つの通信ポート、ノードＥは１つの通信ポート、ノードＦは１つの通信ポートを具備している。各ノードの通信ポートには、各ポートを識別するためにポート番号を付されている。
【００７３】
以下、図１４におけるバスリセットの開始からノードＩＤの割り当てまでを図１５のフローチャートを用いて説明する。
【００７４】
図１５において、１３９４ネットワークを構成する各ノードＡ〜Ｆは、バスリセットが発生したか否かを常時監視している（ステップＳ１５０１）。接続構成の変化を検出したノードからバスリセット信号が出力されると、各ノードは以下の処理を実行する。
【００７５】
バスリセットの発生後、各ノードＡ〜Ｆは、夫々の具備する通信ポート間において親子関係の宣言を行う（ステップＳ１５０２）。
【００７６】
各ノードＡ〜Ｆは、全てのノード間の親子関係が決定されるまで、ステップＳ１５０２の処理を繰り返し行う（ステップＳ１５０３）。
【００７７】
全てのノード間の親子関係が決定した後、１３９４ネットワークは、ネットワークの調停を行うノード、即ちルートを決定する。（ステップＳ１５０４）。
【００７８】
ルートを決定した後、各ノードの１３９４インタフェース夫々は、自己のノードＩＤを自動的に設定する作業を実行する（ステップＳ１５０５）。
【００７９】
全てのノードＡ〜Ｆに対してノードＩＤの設定がなされるまで、各ノードは所定の手順に基づきステップＳ１５０５の処理を実行する（ステップＳ１５０６）。
【００８０】
最終的に全てのノードＡ〜Ｆに対してノードＩＤが設定された後、各ノードは、Ｉｓｏｃｈｒｏｎｏｕｓ転送或いはＡｓｙｎｃｈｒｏｎｏｕｓ転送を実行する（ステップＳ１５０７）。
【００８１】
ステップＳ１５０７の処理を実行すると共に、各ノードの１３９４インタフェースは、再びバスリセットの発生を監視する。バスリセットが発生した場合には、ステップＳ１５０１以降の処理を再び実行する。
【００８２】
以上の手順により、各ノードの１３９４インタフェースは、バスリセットが起動する毎に、新たな接続構成の認識と新たなノードＩＤの割り当てとを自動的に実行することができる。
【００８３】
（７）親子関係の決定
次に、図１６を用いて、図１５に示したステップＳ１５０２の処理（即ち、各ノード間の親子関係を認識する処理）について詳細に説明する。
【００８４】
図１６において、バスリセットの発生後、１３９４ネットワーク上の各ノードＡ〜Ｆは、自分の具備する通信ポートの接続状態（接続又は未接続）を確認する（ステップＳ１６０１）。
【００８５】
通信ポートの接続状態の確認後、各ノードＡ〜Ｆは、他のノードと接続されている通信ポート（以下、接続ポート）の数をカウントする（ステップＳ１６０２）。
【００８６】
ステップＳ１６０２の処理の結果、接続ポートの数が１つである場合、そのノードは、自分が「リーフ」であると認識する（ステップＳ１６０３）。ここで、リーフとは、１つのノードとのみ接続されているノードのことである。
【００８７】
リーフとなるノードは、その接続ポートに接続されているノードに対して、「自分は子（Ｃｈｉｌｄ）」であることを宣言する（ステップＳ１６０４）。このとき、リーフは、その接続ポートが「親ポート（親ノードと接続された通信ポート）」であると認識する。
【００８８】
ここで、親子関係の宣言は、まず、ネットワークの末端であるリーフとブランチとの間にて行われ、続いて、ブランチとブランチとの間で順次に行われる。各ノード間の親子関係は、早く宣言の行える通信ポートから順に決定される。又、各ノード間において、子であることを宣言した通信ポートは「親ポート」であると認識され、その宣言を受けた通信ポートは「子ポート（子ノードと接続された通信ポート）」であると認識される。例えば、図１４において、ノードＡ、Ｅ、Ｆは、自分がリーフであると認識した後、親子関係の宣言を行う。これにより、ノードＡ−Ｂ間では子−親、ノードＥ−Ｄ間では子−親、ノードＦ−Ｄ間では子−親と決定される。
【００８９】
又、ステップＳ１６０２の処理の結果、接続ポートの数が２つ以上の場合、そのノードは、自分を「ブランチ」であると認識する（ステップＳ１６０５）。ここで、ブランチとは、２つ以上のノードと接続されているノードのことである。
【００９０】
ブランチとなるノードは、各接続ポートのノードから親子関係の宣言を受け付ける（ステップＳ１６０６）。宣言を受け付けた接続ポートは、「子ポート」として認識される。
【００９１】
１つの接続ポートを「子ポート」と認識した後、ブランチは、まだ親子関係の決定されていない接続ポート（即ち、未定義ポート）が２つ以上あるか否かを検出する（ステップＳ１６０７）。その結果、未定義ポートが２つ以上ある場合、ブランチは、再びステップＳ１６０６の動作を行う。
【００９２】
ステップＳ１６０７の結果、未定義ポートが１つだけ存在する場合、ブランチは、その未定義ポートが「親ポート」であると認識し、そのポートに接続されているノードに対して「自分は子」であることを宣言する（ステップＳ１６０８、Ｓ１６０９）。
【００９３】
ここで、ブランチは、残りの未定義ポートが１つになるまで自分自身が子であると他のノードに対して宣言することができない。例えば、図１４において、ノードＢ、Ｃ、Ｄは、自分がブランチであると認識すると共に、リーフ或いは他のブランチからの宣言を受け付ける。ノードＤは、Ｄ−Ｅ間、Ｄ−Ｆ間の親子関係が決定した後、ノードＣに対して親子関係の宣言を行っている。又、ノードＤからの宣言を受けたノードＣは、ノードＢに対して親子関係の宣言を行っている。
【００９４】
又、ステップＳ１６０８の処理の結果、未定義ポートが存在しない場合（つまり、ブランチの具備する全ての接続ポートが親ポートとなった場合）、そのブランチは、自分自身がルートであることを認識する（ステップＳ１６１０）。
【００９５】
例えば、図１４において、接続ポートの全てが親ポートとなったノードＢは、１３９４ネットワーク上の通信を調停するルートとして他のノードに認識される。ここで、ノードＢがルートと決定されたが、ノードＢの親子関係を宣言するタイミングが、ノードＣの宣言するタイミングに比べて早い場合には、他のノードがルートになる可能性もある。即ち、宣言するタイミングによっては、どのノードもルートとなる可能性がある。従って、同じネットワーク構成であっても同じノードがルートになるとは限らない。
【００９６】
このように全ての接続ポートの親子関係が宣言されることによって、各ノードは、１３９４ネットワークの接続構成を階層構造（ツリー構造）として認識することができる（ステップＳ１６１１）。尚、上述の親ノードは階層構造における上位であり、子ノードは階層構造における下位となる。
【００９７】
（８）ノードＩＤの割り当て
図１７は、図１５に示したステップＳ１５０５の処理（即ち、自動的に各ノードのノードＩＤを割り当てる処理）を詳細に説明するフローチャートである。ここで、ノードＩＤは、バス番号とノード番号とから構成されるが、本実施例では、各ノードを同一バス上に接続するものとし、各ノードには同一のバス番号が割り当てられるものとする。
【００９８】
図１７において、ルートは、ノードＩＤが未設定のノードが接続されている子ポートの内、最小番号を有する通信ポートに対してノードＩＤの設定許可を与える（ステップＳ１７０１）。
【００９９】
尚、図１７において、ルートは、最小番号の子ポートに接続されている全ノードのノードＩＤを設定した後、その子ポートを設定済とし、次に最小となる子ポートに対して同様の制御を行う。最終的に子ポートに接続された全てのノードのＩＤ設定が終了した後、ルート自身のノードＩＤを設定する。尚、ノードＩＤに含まれるノード番号は、基本的にリーフ、ブランチの順に０、１、２…と割り当てられる。従って、ルートが最も大きなノード番号を有することになる。
【０１００】
ステップＳ１７０１において、設定許可を得たノードは、自分の子ポートの内、ノードＩＤが未設定となるノードを含む子ポートがあるか否かを判断する（ステップＳ１７０２）。
【０１０１】
ステップＳ１７０２において、未設定ノードを含む子ポートが検出された場合、上述の設定許可を得たノードは、その子ポートに直接接続されたノードに対してその設定許可を与えるように制御する（ステップＳ１７０３）。
【０１０２】
ステップＳ１７０３の処理後、上述の設定許可を得たノードは、自分の子ポートの内、ノードＩＤが未設定であるノードを含む子ポートがあるか否かを判断する（ステップＳ１７０４）。ここで、ステップＳ１７０４の処理後、未設定ノードを含む子ポートの存在が検出された場合、そのノードは、再びステップＳ１７０３の処理を実行する。
【０１０３】
又、ステップＳ１７０２或いはＳ１７０４において、未設定ノードを含む子ポートが検出されなかった場合、設定許可を得たノードは、自分自身のノードＩＤを設定する（ステップＳ１７０５）。
【０１０４】
自分のノードＩＤを設定したノードは、自己のノード番号、通信ポートの接続状態に関する情報等を含んだセルフＩＤパケットをブロードキャストする（ステップＳ１７０６）。尚、ブロードキャストとは、あるノードの通信パケットを、１３９４ネットワークを構成する不特定多数のノードに対して転送することである。
【０１０５】
ここで、各ノードは、このセルフＩＤパケットを受信することにより、各ノードに割り当てられたノート番号を認識することができ、自分に割り当てられるノード番号を知ることができる。例えば、図１４において、ルートであるノードＢは、最小ポート番号「＃１」の通信ポートに接続されたノードＡに対してノードＩＤ設定の許可を与える。ノードＡは、自己のノード番号「Ｎｏ．０」と割り当て、自分自身に対してバス番号とノード番号とからなるノードＩＤを設定する。又、ノードＡは、そのノード番号を含むセルフＩＤパケットをブロードキャストする。
【０１０６】
図１８にセルフＩＤパケットの構成例を示す。図１８において、１８０１はセルフＩＤパケットを送出したノードのノード番号を格納するフィールド、１８０２は対応可能な転送速度に関する情報を格納するフィールド、１８０３はバス管理機能（バスマネージャの能力の有無等）の有無を示すフィールド、１８０４は電力の消費及び供給の特性に関する情報を格納するフィールドである。
【０１０７】
又、図１８において、１８０５はポート番号「＃０」となる通信ポートの接続状態に関する情報（接続、未接続、通信ポートの親子関係等）を格納するフィールド、１８０６はポート番号「＃１」となる通信ポートの接続状態に関する情報（接続、未接続、通信ポートの親子関係等）を格納するフィールド、１８０７はポート番号「＃２」となる通信ポートの接続状態に関する情報（接続、未接続、通信ポートの親子関係等）を格納するフィールドである。
【０１０８】
尚、セルフＩＤパケットを送出するノードにバスマネージャとなり得る能力がある場合には、フィールド１８０３に示すコンテンダビットを「１」とし、なり得る能力がなければ、コンテンダビットを０とする。
【０１０９】
ここで、バスマネージャとは、上述のセルフＩＤパケットに含まれる各種の情報に基づいて、バスの電源管理（通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理する）、速度情報の管理（各ノードの対応可能な転送速度に関する情報から各ノード間の最大転送速度を管理する）、トポロジーマップ情報の管理（通信ポートの親子関係情報からネットワークの接続構成を管理する）、トポロジーマップ情報に基づくバスの最適化等を行い、それらの情報を他のノードに提供する機能を有するノードである。これらの機能により、バスマネージャとなるノードは１３９４ネットワーク全体のバス管理を行うことができる。
【０１１０】
ステップＳ１７０６の処理後、ノードＩＤの設定を行ったノードは、親ノードがあるか否かを判断する（ステップＳ１７０７）。親ノードがある場合、その親ノードが、ステップＳ１７０２以下の処理を再び実行する。そして、まだノードＩＤの設定されていないノードに対して許可を与える。
【０１１１】
又、親ノードが存在しない場合、そのノードは、ルート自身であると判断される。ルートは、全ての子ポートに接続されたノードに対してノードＩＤが設定されたか否かを判別する（ステップＳ１７０８）。
【０１１２】
ステップＳ１７０８において、全てのノードに対するＩＤ設定処理が終了しなかった場合、ルートは、そのノードを含む子ポートの内、最小番号となる子ポートに対してＩＤ設定の許可を与える（ステップＳ１７０１）。その後、ステップＳ１７０２以下の処理を実行する。
【０１１３】
又、全てのノードに対するＩＤ設定処理が終了した場合、ルートは、自分自身のノードＩＤの設定を実行する（ステップＳ１７０９）。ノードＩＤの設定後、ルートは、セルフＩＤパケットをブロードキャストする（ステップＳ１７１０）。
【０１１４】
以上の処理によって、１３９４ネットワークは、各ノードに対して自動的にノードＩＤを割り当てることができる。
【０１１５】
ここで、ノードＩＤの設定処理後、複数のノードがバスマネージャの能力を具備する場合、ノード番号の最も大きいノードがバスマネージャとなる。つまり、ネットワーク内で最大となるノード番号を持つルートがバスマネージャになり得る機能を有している場合には、ルートがバスマネージャとなる。
【０１１６】
しかしながら、ルートにその機能が備わっていない場合には、ルートの次に大きいノード番号を具備するノードがバスマネージャとなる。又、どのノードがバスマネージャになったかについては、各ノードがブロードキャストするセルフＩＤパケット内のコンテンダビット１８０３をチェックすることにより把握することができる。
【０１１７】
（９）アービトレーション
図１９は、図１の１３９４ネットワークにおけるアービトレーションを説明する図である。
【０１１８】
１３９４ネットワークでは、データ転送に先立って、必ずバス使用権のアービトレーション（調停）を行う。１３９４ネットワークは、論理的なバス型ネットワークであり、各ノードから転送された通信パケットを他のノードに中継することによって、ネットワーク内の全てのノードに同じ通信パケットを転送することのできる。従って、通信パケットの衝突を防ぐために、必ずアービトレーションが必要となる。これによって、ある時間において一つのノードのみが転送を行うことができる。
【０１１９】
図１９（ａ）は、ノードＢとノードＦとが、バス使用権の要求を発している場合について説明する図である。
【０１２０】
アービトレーションが始まるとノードＢ、Ｆは、夫々親ノードに向かって、バス使用権の要求を発する。ノードＢの要求を受けた親ノード（即ち、ノードＣ）は、自分の親ノード（即ち、ノードＤ）に向かって、そのバス使用権を中継する。この要求は、最終的に調停を行うルート（ノードＤ）に届けられる。
【０１２１】
バス使用要求を受けたルートは、どのノードにバスを使用させるかを決める。この調停作業はルートとなるノードのみが行えるものであり、調停によって勝ったノードにはバスの使用許可が与えられる。
【０１２２】
図１９（ｂ）は、ノードＦの要求が許可され、ノードＢの要求が拒否されたことを示す図である。
【０１２３】
アービトレーションに負けたノードに対してルートは、ＤＰ（Ｄａｔａ  ｐｒｅｆｉｘ）パケットを送り、拒否されたことを知らせる。拒否されたノードは、次回のアービトレーションまでバス使用要求を待機する。
【０１２４】
以上のようにアービトレーションを制御することによって、１３９４ネットワークは、バスの使用権を管理することができる。
【０１２５】
（１０）通信サイクル
Ｉｓｏｃｈｒｏｎｏｕｓ転送モードとＡｓｙｎｃｈｒｏｎｏｕｓ転送モードとは、各通信サイクル期間内において時分割に混在させることができる。ここで、通信サイクルの期間は、通常、１２５μＳである。
【０１２６】
図２０は、１通信サイクルにおいてＩｓｏｃｈｒｏｎｏｕｓ転送モードとＡｓｙｎｃｈｒｏｎｏｕｓ転送モードとを混在させた場合を説明する図である。
【０１２７】
Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードより優先して実行される。その理由は、サイクル・スタート・パケットの後、Ａｓｙｎｃｈｒｏｎｏｕｓ転送を起動するために必要なアイドル期間（ｓｕｂａｃｔｉｏｎ  ｇａｐ）が、Ｉｓｏｃｈｒｏｎｏｕｓ転送を起動するため必要なアイドル期間（Ｉｓｏｃｈｒｏｎｏｕｓ  ｇａｐ）よりも長くなるように設定されているためである。これにより、Ｉｓｏｃｈｒｏｎｏｕｓ転送は、Ａｓｙｎｃｈｒｏｎｏｕｓ転送に優先して実行される。
【０１２８】
図２０において、各通信サイクルのスタート時には、サイクル・スタート・パケット（以下、ＣＳＰ）が所定のノードから転送される。各ノードは、このＣＳＰを用いて時刻調整を行うことによって、他のノードと同じ時間を計時することができる。
【０１２９】
（１１）Ｉｓｏｃｈｒｏｎｏｕｓ転送モード
Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、同期型の転送方式である。Ｉｓｏｃｈｒｏｎｏｕｓモード転送は、通信サイクルの開始後、所定の期間において実行可能である。又、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、リアルタイム転送を維持するために、各サイクル毎に必ず実行される。
【０１３０】
Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、特に動画像データや音声データ等のリアルタイムな転送を必要とするデータの転送に適した転送モードである。Ｉｓｏｃｈｒｏｎｏｕｓ転送モードは、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードのように１対１の通信ではなく、ブロードキャスト通信である。つまり、あるノードから送出されたパケットは、ネットワーク上の全てのノードに対して一様に転送される。尚、Ｉｓｏｃｈｒｏｎｏｕｓ転送には、ａｃｋ（受信確認用返信コード）は存在しない。
【０１３１】
図２０において、チャネルｅ（ｃｈ  ｅ）、チャネルｓ（ｃｈ  ｓ）、チャネルｋ（ｃｈ  ｋ）は、各ノードがＩｓｏｃｈｒｏｎｏｕｓ転送を行う期間を示す。１３９４インタフェースでは、複数の異なるＩｓｏｃｈｒｏｎｏｕｓ転送を区別するために、夫々異なるチャネル番号を与えている。これにより、複数ノード間でのＩｓｏｃｈｒｏｎｏｕｓ転送が可能となる。ここで、このチャネル番号は、送信先を特定するものではなく、データに対する論理的な番号を与えているに過ぎない。
【０１３２】
又、図２０に示したＩｓｏｃｈｒｏｎｏｕｓ  ｇａｐとは、バスのアイドル状態を示すものである。このアイドル状態が一定時間を経過した後、Ｉｓｏｃｈｒｏｎｏｕｓ転送を希望するノードは、バスが使用できると判断し、アービトレーションを実行する。
【０１３３】
次に、図２１にＩｓｏｃｈｒｏｎｏｕｓ転送モードに基づいて転送される通信パケットのフォーマットを示す。以下、Ｉｓｏｃｈｒｏｎｏｕｓ転送モードに基づいて転送される通信パケットを、Ｉｓｏｃｈｒｏｎｏｕｓパケットと称する。
【０１３４】
図２１において、Ｉｓｏｃｈｒｏｎｏｕｓパケットはヘッダ部２１０１、ヘッダＣＲＣ２１０２、データ部２１０３、データＣＲＣ２１０４から構成される。
【０１３５】
ヘッダ部２１０１には、データ部２１０３のデータ長を格納するフィールド２１０５、Ｉｓｏｃｈｒｏｎｏｕｓパケットのフォーマット情報を格納するフィールド２１０６、Ｉｓｏｃｈｒｏｎｏｕｓパケットのチャネル番号を格納するフィールド２１０７、パケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード（ｔｃｏｄｅ）を格納するフィールド２１０８、同期化コードを格納するフィールド２１０９がある。
【０１３６】
（１２）Ａｓｙｎｃｈｒｏｎｏｕｓ転送モード
Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードは、非同期型の転送方式である。Ａｓｙｎｃｈｒｏｎｏｕｓ転送は、Ｉｓｏｃｈｒｏｎｏｕｓ転送期間の終了後、次の通信サイクルが開始されるまでの間（即ち、次の通信サイクルのＣＳＰが転送されるまでの間）、実行可能である。
【０１３７】
図２０において、最初のサブアクション・ギャップ（ｓｕｂａｃｔｉｏｎ  ｇａｐ）は、バスのアイドル状態を示すものである。このアイドル時間が一定値になった後、Ａｓｙｎｃｈｒｏｎｏｕｓ転送を希望するノードは、バスが使用できると判断し、アービトレーションを実行する。
【０１３８】
アービトレーションによりバスの使用権を得たノードは、図２２に示すパケットを所定のノードに対して転送する。このパケットを受信したノードは、ａｃｋ（受信確認用返送コード）或いは応答パケットをａｃｋ  ｇａｐ後に返送する。
【０１３９】
図２２は、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードに基づく通信パケットのフォーマットを示す図である。以下、Ａｓｙｎｃｈｒｏｎｏｕｓ転送モードに基づいて転送される通信パケットを、Ａｓｙｎｃｈｒｏｎｏｕｓパケットと称する。
【０１４０】
図２２において、Ａｓｙｎｃｈｒｏｎｏｕｓパケットは、ヘッダ部２２０１、ヘッダＣＲＣ２２０２、データ部２２０３、データＣＲＣ２２０４から構成される。
【０１４１】
ヘッダ部２２０１において、フィールド２２０５には宛先となるノードのノードＩＤ、フィールド２２０６にはソースとなるノードのノードＩＤ、フィールド２２０７には一連のトランザクションを示すためのラベル、フィールド２２０８には再送ステータスを示すコード、フィールド２２０９にはパケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード（ｔｃｏｄｅ）、フィールド２２１０には優先順位、フィールド２２１１には宛先のメモリ・アドレス、フィールド２２１２にはデータ部のデータ長、フィールド２２１３には拡張されたトランザクションコードが格納される。
【０１４２】
又、Ａｓｙｎｃｈｒｏｎｏｕｓ転送は、自己ノードから相手ノードへの１対１の通信である。転送元ノードから転送されたパケットは、ネットワーク中の各ノードに行き渡るが、自分宛てのアドレス以外のものは無視される。従って、宛先となるノードのみが、そのパケットを読み込むことができる。
【０１４３】
尚、Ａｓｙｎｃｈｒｏｎｏｕｓ転送中に次のＣＳＰを転送すべき時間に至った場合、無理に転送を中断せず、その転送が終了した後、次のＣＳＰを送信する。これにより、１つの通信サイクルが１２５μＳ以上続いたときは、その分、次の通信サイクル期間を短縮する。このようにすることによって、１３９４ネットワークは、ほぼ一定の通信サイクルを保持することができる。
【０１４４】
（１３）デバイスマップ
デバイスマップを作成するためにアプリケーションが１３９４ネットワークのトポロジーを知る手段として、ＩＥＥＥ１３９４規格上は以下の手段がある。
１．バスマネージャのトポロジーマップレジスターをリードする。
２．バスリセット時にセルフＩＤパケットから推定する。
【０１４５】
しかし上記１、２の手段では、各ノードの親子関係によるケーブル接続順のトポロジーは判明するものの、物理的な位置関係のトポロジーを知ることは出来ない（実装されていないポートまで見えてしまう、といった問題もある）。
【０１４６】
また、デバイスマップを作成するための情報を、コンフィギュレーションＲＯＭ以外のデータベースとして持つ、といった手段もあるが、その場合、各種情報を得る手段はデータベースアクセスのためのプロトコルに依存してしまう。
【０１４７】
ところで、コンフィギュレーションＲＯＭ自体やコンフィギュレーションＲＯＭを読む機能は、ＩＥＥＥ１３９４規格を遵守したデバイスが必ず持つものである。そこで、デバイスの位置、機能等の情報を各ノードのコンフィギュレーションＲＯＭに格納し、それらをアプリケーションから読む機能を与えることにより、データベースアクセス、データ転送等の特定のプロトコルに依存することなく、各ノードのアプリケーションがいわゆるデバイスマップ表示機能を実装することができる。
【０１４８】
コンフィグレーションＲＯＭにはノード固有の情報として物理的な位置、機能などが格納可能であり、デバイスマップ表示機能の実現に使用することが可能である。
【０１４９】
この場合、アプリケーションが物理的な位置関係による１３９４ネットワークトポロジーを知る手段としては、バスリセット時やユーザーからの要求時に、各ノードのコンフィギュレーションＲＯＭを読み取ることにより、１３９４ネットワークのトポロジーを知る、という方法が可能となる。更に、コンフィギュレーションＲＯＭ内にノードの物理的位置のみならず、機能などの各種ノード情報も記述することによって、コンフィギュレーションＲＯＭを読むことで、ノードの物理的位置と同時に各ノードの機能情報等も得ることができる。アプリケーションが各ノードのコンフィギュレーションＲＯＭ情報を取得する際には、指定ノードの任意のコンフィギュレーションＲＯＭ情報を取得するＡＰＩを用いる。
このような手段を用いることにより、ＩＥＥＥ１３９４ネットワーク上のデバイスのアプリケーションは、物理的なトポロジーマップ、各ノードの機能マップなど、用途に応じて様々なデバイスマップを作成することができ、ユーザーが必要な機能をもつデバイスを選択する、といったことも可能となる。
【０１５０】
＜本実施例の説明＞
本実施例の構成、並びに接続デバイスについて説明する。
【０１５１】
まず、ＩＥＥＥ１３９４バスに接続されるホスト、プリンタ各ノードの共通部分として１３９４シリアルバスインターフェース部の構成を説明する。
【０１５２】
図２３は１３９４Ｉ／Ｆブロックの基本構成ブロック図である。
【０１５３】
図中２３０２は１３９４シリアルバスを直接ドライブするフィジカルレイヤ制御ＩＣ（ＰＨＹＩＣ）であり、前述の〈ＩＥＥＥ１３９４の技術の概要〉におけるフィジカルレイヤの機能を実現する。主な機能としては、バスイニシャル化とアービトレーション、送信データ符号のエンコード／デコード、ケーブル通電状態の監視ならびに負荷終端用電源の供給（アクティブ接続認識用）、リンクレイヤＩＣとのインタフェースである。
【０１５４】
２３０１はデバイス本体とのインタフェースを行い、ＰＨＹＩＣのデータ転送をコントロールするリンクレイヤ制御ＩＣ（ＬＩＮＫＩＣ）であり、前述の〈ＩＥＥＥ１３９４の技術の概要〉におけるリンクレイヤの機能を実現する。本ＩＣが備える主な機能としてはＰＨＹＩＣを介する送信／受信データを一時格納する送受信ＦＩＦＯ、送信データのパケット化機能、ＰＨＹＩＣの受信データが本ノードアドレス、またはＩｓｏｃｈｒｏｎｏｕｓ転送データの場合は割り当てられたチャンネル向けのものであるかの判定機能、またそのデータのエラーチェックを行うレシーバー機能、そしてデバイス本体とのインタフェースを行う機能がある。
【０１５５】
図中２３０４はリンクレイヤＩＣ、ＰＨＹＩＣをはじめとする１３９４インタフェース部をコントロールするＣＰＵであり、２３０５は同インタフェース部のコントロール用プログラムが格納されているＲＯＭである。
【０１５６】
２３０６はＲＡＭであり、送受信データを蓄えるデータバッファをはじめ、制御用ワークエリア、１３９４アドレスにマッピングされた各種レジスタのデータ領域に使用されている。
【０１５７】
図中２３０３はコンフィギュレーションＲＯＭであり、各機器固有の識別、通信条件等が格納されている。本ＲＯＭのデータフォーマットは〈ＩＥＥＥ１３９４の技術の概要〉で説明したようにＩＥＥＥ１２１２並びにＩＥＥＥ１３９４規格で定められたフォーマットに準じている。
【０１５８】
各ノードは図２４に示す様な一般形式のコンフィグレーションＲＯＭを装備しており、各デバイスのソフトウェアユニット情報はユニットディレクトリに、ノード固有の情報はノードディペンデントインフォディレクトリに保存されている。
【０１５９】
本実施例のプリンタでの場合、通信プロトコルとしてＳＢＰ−３をサポートするためにユニットディレクトリにＳＢＰ−３を識別するＩＤが装備されている。
【０１６０】
〈ＩＥＥＥ１３９４の技術の概要〉で説明したように１３９４シリアルバスのアドレス設定のうち、最後の２８ビットはシリアルバスに接続される他のデバイスからアクセス可能な、各機器の固有データの領域として確保されている。図２５はこの２８ビットのアドレス空間を表した図である。
【０１６１】
図中００００番地から０２００番地の領域にはＣＳＲコアレジスタ群が配置されている。
【０１６２】
これらレジスタはＣＳＲアーキテクチャで定められたノード管理の為の基本的な機能として存在し、図２６で示されている。
【０１６３】
０２００番地から０４００番地の領域は、ＣＳＲアーキテクチャにより、シリアルバスに関するレジスタが格納される領域として定義されている。図２６中、ＩＥＥＥ１３９４の技術の概要〉で説明したように０２００〜０２３０番地のレジスタが定義されておりデータ転送の同期、電源供給、バスリソース管理等に使用されるレジスタが配置されている。この部分は図８と同じ物である。
【０１６４】
前述のコンフィギュレーションＲＯＭは４００番地から８００番地の領域に配置されている。
【０１６５】
０８００番地から１０００番地までの領域には、現在の１３９４バスのトポロジー情報、またノード間の転送スピードに関する情報が格納されている。
【０１６６】
１０００番地以降の領域はユニット空間と呼ばれ、各デバイス固有の動作に関連するレジスタが配置されている。この領域には各デバイスがサポートする上位プロトコルで規定されたレジスタ群とデータ転送用メモリマップドバッファ領域、また各機器固有のレジスタが配置される。
【０１６７】
上記の１３９４インタフェース部を装備する図１で示したホスト１ａとプリンタ１ｂの動きを以下に説明する。
【０１６８】
本実施例のホストは所定の通信プロトコルを用いてプリンタ装置との間で通信を行うシステムである。上記１ｂのプリンタはホスト１ａからプリンタ１ｂへ送られたプリンタコントロール、並びにプリントデータを受信し処理する機能、プリンタ１ｂへのコントロールに対応して現在のプリンタステータスデータをホスト１ａに送信する機能を備える。
【０１６９】
プリンタ１ｂの上記機能の制御はホスト１ａ−プリンタ１ｂ間で樹立されるデータ転送チャネル経由でプリンタ制御コマンドをホスト１ａからプリンタ１ｂへ転送することによって実現される。
【０１７０】
ホスト１ａ・プリンタ１ｂ双方にはこのデータ転送チャネル用の通信セッション樹立、切断といったマネージメントを行うコネクション・マネージメント機能を装備している。本実施例で使用されるホストＰＣ・プリンタ間の通信プロトコルはＩＥＥＥ１３９４のリード・ライトトランズアクションを使って行なわれる。そしてこれらトランズアクションは２つのデバイスが１３９４バスに接続された時に発行されたバスリセット、並びにバスリセット後の初期化動作時に決定されたデータ通信速度で行なわれる。この手順は＜ＩＥＥＥ１３９４の技術の概要＞で説明されているとおりである。
【０１７１】
具体的にはバスの初期化動作においてノードＩＤを割り当てられたＰＣとプリンタ両ノードは自ノードのデータ転送スピード性能情報を含んだセルフＩＤパケットをブロードキャストする。双方のノードはこのブロードキャストされたセルフＩＤパケットを受信することにより、ノードＩＤ、データ転送スピード情報を含め、相手ノードに関する情報を認識する。本実施例の場合、ＰＣ、プリンタ双方ともに、最高データ転送スピードが４００Ｍｂｐｓであり、それぞれのセルフＩＤパケット中のＳｐフィールドにはそれを示す値、二進数で１０ｂがセットされている。この様子を図２７に示す。
【０１７２】
これにより、ＰＣ、プリンタ双方相手デバイスが４００Ｍｂｐｓデータ転送が可能であることを認識し、デバイス間は４００Ｍｂｐｓでのデータ通信が行なわれる。
【０１７３】
接続に使用されるケーブルの品質、接続環境、またはデバイス間の諸条件により通信環境が劣悪になり、所定の転送スピードにてトランズアクションが正常に行なわれない場合がある。具体的には１３９４ライト・トランズアクションが正常に相手デバイスに到達しない、またトランズアクションに対する応答パケットが発行元に到達しない、といったことが起こりうる。
【０１７４】
これらのエラー状態はＩＥＥＥ１３９４のトランズアクションの定義に基づいて検出することが可能でありトランズアクションの再発行、すなわちリトライが行なわれる。
【０１７５】
このようなエラー状態とそれに伴うリトライが発生する頻度が高い場合、全体的なデータ転送効率が低下する。またエラー状態が解消されない場合はデバイス間の通信が正常に行なわれなくなってしまうケースも考えられる。
【０１７６】
本発明の特徴的な部分について説明する。
【０１７７】
本実施例のプリンタにおける１３９４インタフェース制御部にはレシーバーが検出した上記エラー状態を記録し、その頻度を計測する手段を備えている。
【０１７８】
本実施例において、上記計測手段において予め定められた値以上の頻度でトランズアクションエラー状態が検出されたとする。
【０１７９】
プリンタはエラーの異常頻発を検出すると、自デバイスであるプリンタと接続先デバイスであるホストＰＣ間の現在のデータ転送スピード情報を求める。具体的にはバスリセット後のバス初期化処理の際にブロードキャストされた両デバイスのセルフＩＤパケットを元に、決定されたスピードでデータ転送が行なわれているはずである。本例の場合、両デバイス共に最高で４００Ｍｂｐｓの転送スピードをサポートしているという情報を含んだセルフＩＤパケットをブロードキャストしているので、データ転送は４００Ｍｂｐｓで行なわれる。
【０１８０】
プリンタは現在の転送スピード情報を元に、それより一段低い転送スピード、この場合は２００Ｍｂｐｓ、二進数で０１ｂを自デバイスのセルフＩＤパケット中のＳｐフィールドに、がセットする。この様子を図２８に示す。
【０１８１】
プリンタはバスリセットを発行し、バスの初期化が開始される。
【０１８２】
デバイスの初期化のシーケンスとしてノードＩＤ決定後、セルフＩＤパケットのブロードキャストが行なわれる。前述のように転送可能スピード最大２００ＭｂｐｓとしたプリンタのセルフＩＤパケットがブロードキャストされ、ＰＣはプリンタと通信する場合には相手デバイスが２００Ｍｂｐｓ以下のデータ転送が可能であることを認識する。ホストＰＣとプリンタ間のデータ転送はバスリセット前と違い、より低速な２００Ｍｂｐｓで行なわれる。
【０１８３】
転送スピードをより低速にすることにより、通信安定性が期待され、トランズアクションエラー状態が発生する頻度が低減される。
【図面の簡単な説明】
【０１８４】
【図１】本発明のホスト・プリンタ通信システムの構成を示した図
【図２】１３９４シリアルバスのネットワークの構成を示した図
【図３】本発明の１３９４シリアルバスの構成要素を示した図
【図４】本発明の１３９４シリアルバスのリンクレイヤ提供可能なサービスを示す図
【図５】本発明の１３９４シリアルバスのトランズアクション・レイヤ提供可能なサービスを示す図
【図６】１３９４インタフェースにおけるアドレス空間を説明する図
【図７】１３９４インタフェースにおけるＣＳＲコアレジスタに格納される情報のアドレス及び機能を示す図
【図８】１３９４インタフェースにおけるシリアルバス・レジスタに格納される情報のアドレス及び機能を示す図
【図９】１３９４インタフェースにおける最小形式のＣｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭを示す図
【図１０】１３９４インタフェースにおける一般形式のＣｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭを示す図
【図１１】１３９４インタフェースにおけるシリアルバス装置レジスタに格納される情報のアドレス及び機能を示す図
【図１２】ＩＥＥＥ１３９４規格に準拠した通信ケーブルの断面図
【図１３】ＤＳ−Ｌｉｎｋ符号化方式を説明する図
【図１４】１３９４ネットワークにおけるバスリセット起動後の状態を説明する図
【図１５】バスリセットの開始からノードＩＤの割り当てまでを説明するフローチャート
【図１６】各ノード間の親子関係を認識する処理について説明するフローチャート
【図１７】図１５に示したステップＳ１５０５の処理（即ち、自動的に各ノードのノードＩＤを割り当てる処理）を詳細に説明するフローチャート
【図１８】１３９４インタフェースにおけるセルフＩＤパケットの構成を示した図
【図１９】１３９４ネットワークにおけるアービトレーションを説明する図
【図２０】１通信サイクルにおいてＩｓｏｃｈｒｏｎｏｕｓ転送モードとＡｓｙｎｃｈｒｏｎｏｕｓ転送モードとを混在させた場合を説明する図
【図２１】Ｉｓｏｃｈｒｏｎｏｕｓ転送モードに基づいて転送される通信パケットのフォーマットを示した図
【図２２】本発明のＡｓｙｎｃｈｒｏｎｏｕｓ転送のパケットフォーマットを示した図
【図２３】本実施例におけるプリンタ・ホストのＩＥＥＥインタフェース部のブロック図
【図２４】本実施例におけるプリンタのコンフィグレーションＲＯＭを示す図
【図２５】本実施例におけるプリンタの１３９４アドレス空間を示す図
【図２６】本実施例におけるプリンタのコアＣＳＲレジスタを示す図
【図２７】本実施例におけるプリンタ・ホスト間でブロードキャストされるセルフＩＤパケットを示した図
【図２８】本実施例におけるプリンタが発行するバスリセット後にブロードキャストされるプリンタのセルフＩＤパケットを示した図
【符号の説明】
【０１８５】
１ａ  ホストコンピュータ
１ｂ  プリンタ
３０１  １３９４シリアルバスケーブル
３０２  １３９４通信ポート
３０３  フィジカルレイヤ
３０４  リンクレイヤ
３０５  トランザクションレイヤ
３０６  シリアルバスマネージメント
３０７  アプリケーションレイヤ
【図１】
2006134222.tif 000003
【図２】
2006134222.tif 000004
【図３】
2006134222.tif 000005
【図４】
2006134222.tif 000006
【図５】
2006134222.tif 000007
【図６】
2006134222.tif 000008
【図７】
2006134222.tif 000009
【図８】
2006134222.tif 000010
【図９】
2006134222.tif 000011
【図１０】
2006134222.tif 000012
【図１１】
2006134222.tif 000013
【図１２】
2006134222.tif 000014
【図１３】
2006134222.tif 000015
【図１４】
2006134222.tif 000016
【図１５】
2006134222.tif 000017
【図１６】
2006134222.tif 000018
【図１７】
2006134222.tif 000019
【図１８】
2006134222.tif 000020
【図１９】
2006134222.tif 000021
【図２０】
2006134222.tif 000022
【図２１】
2006134222.tif 000023
【図２２】
2006134222.tif 000024
【図２３】
2006134222.tif 000025
【図２４】
2006134222.tif 000026
【図２５】
2006134222.tif 000027
【図２６】
2006134222.tif 000028
【図２７】
2006134222.tif 000029
【図２８】
2006134222.tif 000030