(57)【特許請求の範囲】
【請求項１】
ネットワーク内の通信装置であって、
パケットにより与えられる第１識別番号と、前記通信装置の識別番号として割り当てられている第２識別番号とを比較する比較部と、
前記第１識別番号と前記第２識別番号とが不一致であるとき、前記通信装置の前記識別番号が未変更であることを少なくとも１つのノードに通知し、前記第１識別番号と前記第２識別番号とが一致であるとき、前記通信装置の前記識別番号を、前記第２識別番号とは異なる第３識別番号に変更する制御部と
を有する通信装置。
【請求項２】
前記第１識別番号と前記第２識別番号とが一致であるとき、前記制御部は、さらに、前記識別番号の変更及び前記第３識別番号を前記少なくとも１つのノードに通知する、請求項１に記載の通信装置。
【請求項３】
前記第３識別情報は、直前のネットワークトポロジー内のノードの総数である、請求項２に記載の通信装置。
【請求項４】
前記通信装置の前記識別番号を与える第２パケットの送信後における前記第１識別番号と前記第２識別番号とが一致であるとき、前記制御部は、さらに、バスを初期化し、他のノードから受信したパケットに基づくカウント値として、前記通信装置の前記識別番号を設定する、請求項２又は３に記載の通信装置。
【請求項５】
前記制御部は、前記第１識別番号と前記通信装置の前記識別番号である前記第３識別番号とを比較し、前記第１識別番号と前記第３識別番号とが一致であるとき、前記第３識別番号の値をインクリメントする、請求項３に記載の通信装置。
【請求項６】
前記制御部は、さらに、前記通信装置の前記識別番号が未変更であること又は変更されたことを、他のノードに通知することを特徴とする請求項１〜５のいずれか１つに記載の通信装置。
【請求項７】
前記比較部及び前記制御部が物理層に設けられている、請求項１〜６のいずれか１つに記載の通信装置。
【請求項８】
前記制御部は、
前記第２識別番号を記憶する第１レジスタと、
前記第１識別番号と前記第２識別番号との比較結果を記憶する第２レジスタと、及び
セルフＩＤパケット生成部と、
を有し、
前記比較部は、さらに、前記パケットを受信し、前記受信されたパケットから前記第１識別番号を抽出し、
前記抽出された第１識別番号と前記第１レジスタに記憶された前記第２識別番号とを比較し、及び
前記第１識別番号と前記第２識別番号の比較結果を前記第２レジスタに記憶し、
前記セルフＩＤパケット生成部は、前記第１識別番号と前記第２識別番号とが不一致であるとき、セルフＩＤパケットを生成し、
前記セルフＩＤパケットは、前記第２識別番号の前記比較結果を含む、請求項１に記載の通信装置。
【請求項９】
複数のノードを含むネットワークシステムであって、
前記複数のノードのうち少なくとも１つのノードは、
パケットにより与えられる第１識別番号と、前記複数ノードのうち前記少なくとも１つのノードに割り当てられている第２識別番号とを比較する比較部と、
前記第１識別番号と前記第２識別番号とが不一致であるとき、前記第２識別番号が未変更であることを前記複数のノードのうち他のノードに通知し、前記第１識別番号と前記第２識別番号とが一致であるとき、前記前記複数ノードのうち前記少なくとも１つのノードの前記識別番号を、前記第２識別番号とは異なる第３識別番号に変更する制御部と
を有するネットワークシステム。
【請求項１０】
ネットワーク内の通信を実行する方法であって、
パケットにより与えられる第１識別番号と、第１ノードの識別番号として割り当てられている第２識別番号とを比較し、
前記第１識別番号と前記第２識別番号とが不一致であるとき、前記第１ノードの前記識別番号が未変更であることを少なくとも第２ノードに通知し、
前記第１識別番号と前記第２識別番号とが一致であるとき、前記第１ノードの前記識別番号を、前記第２識別番号とは異なる第３識別番号に変更する、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、ネットワークシステム及び通信方法に関するものである。
【背景技術】
【０００２】
従来、大量の音声や画像データを扱うパーソナルコンピュータやデジタルカメラといったノード間を互いに結ぶシリアルインターフェースの一つとしてＩＥＥＥ１３９４規格が注目されている。
【０００３】
この種の規格のネットワークにおいて、バスマスタとなるノードがネットワーク上のノードのノードＩＤを全て管理し、そのバスマスタとなるノードがノードＩＤの変更をコントロールする技術が知られている（例えば、特許文献１，２参照）。このようなネットワークでは、バスマスタとなるノードがネットワークからなくなる、又はバスマスタとなるノードが変わると、バスリセットが発生し、ネットワーク上のノードのノードＩＤが改めて割り当てられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１７４７５３号公報
【特許文献２】特開２００６−０８７１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ＩＥＥＥ１３９４規格では、ネットワークに外来する意図しないノイズによりバスリセットが発生することもある。このバスリセット後に、ネットワーク上のノードに再度ノードＩＤが割り当てられるが、再度割り当てられたノードＩＤがバスリセット前のノードＩＤと変わることがある。このようにノードＩＤが変わると、通信相手を改めてネットワークから探し出し、通信相手のノードＩＤを特定し、通信相手の機器情報（通信速度等）を収集するためのリクエストを行い、通信相手とネゴシエーションする必要がある。この一連の処理が、バスリセット後の通信再開の制約となる。
【課題を解決するための手段】
【０００６】
本発明の一観点によれば、ネットワーク内の複数のノードに識別番号を順次割り当てるためのパケットにより他のノードから通知される第１識別番号と、自身に割り当てられている第２識別番号とを比較する比較部と、前記第１識別番号と前記第２識別番号との不一致に応答して、前記識別番号の未変更及び前記第２識別番号を他のノードに通知する制御部とを有する。
【発明の効果】
【０００７】
本発明の一観点によれば、データ通信を迅速に再開させることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態のＩＰＣの内部構成例を示すブロック図。
【図２】第１実施形態のネットワークシステムを示すブロック図。
【図３】アドレス空間を説明するための説明図。
【図４】（ａ）、（ｂ）は、第１実施形態のセルフＩＤパケットのデータフォーマットを示す説明図。
【図５】（ａ）、（ｂ）は、セルフＩＤパケットを示す説明図。
【図６】ノードＩＤの設定方法を示すフローチャート。
【図７】ノードＩＤの設定方法を示すフローチャート。
【図８】ネットワークシステムの動作を示すフローチャート。
【図９】ノードＩＤの設定方法を説明するための説明図。
【図１０】ノードＩＤの設定方法を説明するための説明図。
【図１１】ノードＩＤの設定方法を説明するための説明図。
【図１２】ノードＩＤの設定方法を説明するための説明図。
【図１３】ノードＩＤの設定方法を説明するための説明図。
【図１４】従来のＩＰＣの内部構成例を示すブロック図。
【図１５】第２実施形態のネットワークシステムを示すブロック図。
【図１６】従来のセルフＩＤパケットのデータフォーマットを示す説明図。
【図１７】（ａ）、（ｂ）は、ノードＩＤの設定方法を説明するための説明図。
【発明を実施するための形態】
【０００９】
（第１実施形態）
以下、第１実施形態を図１〜図１２に従って説明する。
まず、所定の規格（例えば、ＩＥＥＥ１３９４規格）に準拠したネットワークシステム（トポロジ）を図２に従って説明する。ＩＥＥＥ１３９４バスに接続された各装置（ノード）Ａ〜Ｄは互いに通信可能に接続されている。具体的には、ノードＡにはＩＥＥＥ１３９４バスケーブル（バスケーブル）１ａを介してノードＢが接続され、そのノードＢにはバスケーブル１ｂを介してノードＣが接続され、そのノードＣにはバスケーブル１ｃを介してノードＤが接続されている。なお、これらノードＡ〜Ｄは、例えばパーソナルコンピュータ、ハードディスク装置（ＨＤＤ）、レコーダ、表示装置、プリンタ、デジタルカメラ等の接続ポイントの総称である。
【００１０】
これらノードＡ〜Ｄには、図３に示すように、固有の６４ビットのアドレス空間がそれぞれ割り当てられている。各アドレスの上位１６ビットは、ＩＥＥＥ１３９４バス上のノードを示す「ノードＩＤ」である。このノードＩＤの上位１０ビットは、バス同士を識別するための「ｂｕｓ＿ＩＤ（バスＩＤ）」であり、ノードＩＤの下位６ビットは、ノードを識別するための「ｐｈｙｓｉｃａｌ＿ＩＤ（物理ＩＤ）」である。このノードＩＤの全てのビットが１となるアドレスは予約されているため、１０２３個のバスと６３個のノードを指定することができる。また、アドレス空間の残りの４８ビットは、例えば各ノードに与えられたアドレス空間の指定に使用される。そして、各ノードＡ〜Ｄは、自ノードや相手ノードの物理ＩＤ（狭義のノードＩＤ）を認識することで、通信相手を指定したデータ通信を行うことができる。なお、実際には物理ＩＤがノードＩＤとなるため、以下の説明では、物理ＩＤの値をそのままノードＩＤの値として説明する場合もある。
【００１１】
また、上記ノードＡ〜Ｄは、図１に示すＩＥＥＥ１３９４規格に準拠したＩＥＥＥ１３９４プロトコルコントローラ（ＩＰＣ）１０をそれぞれ備えている。以下に、このＩＰＣ１０の内部構成例を説明する。なお、ここでは、ノードＢが備えるＩＰＣ１０を例に挙げて説明し、ノードＡ，Ｃ，Ｄが備えるＩＰＣ１０についてはその説明を省略する。
【００１２】
ポート回路２０ａ内の受信回路２１は、バスケーブル１ａを介して相手ノード（他ノード）Ａと接続されている。この受信回路２１は、ノードＡから受信する電気信号を装置内部で扱う電気信号に変換して物理層制御回路３０に出力する。受信回路２１は、ノードＡから受信するパケットデータ（セルフＩＤパケットやアイソクロナスパケット等）を物理層制御回路３０のデータ再同期部３１に出力するレシーバ回路２１ａと、ノードＡから受信するアービトレーション信号を物理層制御回路３０のアービトレーション制御部３２に出力するレシーバ回路２１ｂとを備えている。
【００１３】
ポート回路２０ａ内の送信回路２２は、物理層制御回路３０から入力される電気信号を、ＩＥＥＥ１３９４規格の電気信号に変換して他ノードＡに送信する。送信回路２２では、出力制御部２２ａが、物理層制御回路３０から入力されるパケットデータ又はアービトレーション制御部３２から入力されるアービトレーション制御信号のいずれか一方を選択し、ドライバ回路２２ｂを通じて他ノードＡに出力する。
【００１４】
なお、ノードＣと接続されるポート回路２０ｂもポート回路２０ａと同様の構成を備えているため、同一の部材にそれぞれ同一の符号を付して示し、それら各要素についての説明を省略する。
【００１５】
物理層制御回路３０は、バスの状態モニタ、バスリセット発生時のバスのコンフィグレーション、スピードシグナリングやアービトレーションなどを行う。なお、バスのコンフィグレーション（バスリセットシーケンス）では、トポロジ中の全ノードのバスに関する情報の初期化と、ルートノードの決定と、各ノードの物理ＩＤ（ノードＩＤ）の決定と、ノードＩＤを通知するためのセルフＩＤパケットの送信とが行われる。また、この物理層制御回路３０は、ポート回路２０ａ，２０ｂから入力される電気信号をリンク層が扱う論理信号に変換し、インターフェース回路５０を通じてリンク層に出力する。一方、物理層制御回路３０は、リンク層からインターフェース回路５０を通じて入力される論理信号を電気信号に変換してポート回路２０ａ，２０ｂに出力する。なお、リンク層では、データＣＲＣやヘッダＣＲＣの生成、ＣＲＣチェックやパケットの送受信制御が行われる。
【００１６】
本実施形態においては、ポート回路２０ａ，２０ｂ、物理層制御回路３０及びインターフェース回路５０がノードＢの物理層に設けられている。
上記物理層制御回路３０は、データ再同期部３１と、アービトレーション制御部３２と、シリアルパラレル（Ｓ／Ｐ）変換部３３と、パラレルシリアル（Ｐ／Ｓ）変換部３４と、選択回路３５，３６と、セルフＩＤパケット生成部（パケット生成部）３７と、識別番号生成部４０とを有している。
【００１７】
データ再同期部３１は、アービトレーション制御部３２からの制御信号に応答して、各レシーバ回路２１ａからの受信パケットデータをリンク層が扱う論理信号に変換してＳ／Ｐ変換部３３に出力する。また、データ再同期部３１は、受信パケットデータをリピート転送するためにリピートデータとして選択回路３６に出力する。データ再同期部３１は、受信パケットデータの終了を示す終了信号をアービトレーション制御部３２に出力する。
【００１８】
Ｓ／Ｐ変換部３３は、データ再同期部３１から入力される論理信号（シリアルデータ）をパラレルデータに変換してインターフェース回路５０を介してリンク層に出力する。また、Ｓ／Ｐ変換部３３は、セルフＩＤパケットに対応する論理信号をパラレルデータに変換して識別番号生成部４０に出力する。
【００１９】
選択回路３５は、アービトレーション制御部３２から入力される選択信号に応じて、リンク層から入力されるパケットデータ（アイソクロナスパケット等）と、パケット生成部３７から入力されるセルフＩＤパケットＳＰとのいずれか一方を選択し、Ｐ／Ｓ変換部３４に出力する。
【００２０】
Ｐ／Ｓ変換部３４は、パケットデータ又はセルフＩＤパケットＳＰをシリアルデータに変換して送信パケットデータとして選択回路３６に出力する。
選択回路３６は、アービトレーション制御部３２から入力される選択信号に応じて、Ｐ／Ｓ変換部３４からの送信パケットデータ又はデータ再同期部３１からのリピートデータのいずれか一方を選択し、上記出力制御部２２ａに出力する。
【００２１】
アービトレーション制御部３２は、物理層のメインコントローラである。このアービトレーション制御部３２には、各レシーバ回路２１ｂからのアービトレーション信号、データ再同期部３１からの終了信号や識別番号生成部４０からのバスリセット要求信号ＢＲｒが入力される。そして、アービトレーション制御部３２は、これらの信号に基づいて、リンク層からのアービトレーションのリクエストに対する応答、各ポート回路２０ａ，２０ｂの管理及び制御、バスのリセット及びコンフィグレーションなどを行う。また、アービトレーション制御部３２は、自ノードＢのセルフＩＤパケットＳＰの送信が許可されたことを示す送信許可信号ＴＸと、他ノードからセルフＩＤパケットＳＰを受信したことを示す受信信号ＲＸとを、識別番号生成部４０に出力する。
【００２２】
パケット生成部３７は、図４に示すデータフォーマットを有するセルフＩＤパケットＳＰを生成する。具体的には、パケット生成部３７は、自ノードＢが有するポート回路が１１つ以下の場合は、図４（ａ）に示す先頭パケットＳＰ１と、その先頭パケットＳＰ１に連結された連結パケットＳＰ２とを有するセルフＩＤパケットＳＰを生成する。また、パケット生成部３７は、自ノードＢが有するポート回路が１２つ以上の場合は、上記先頭パケットＳＰ１と連結パケットＳＰ２と併せて、図４（ｂ）に示す連結パケットＳＰ３を有するセルフＩＤパケットＳＰを生成する。このため、２つのポート回路２０ａ，２０ｂを有するノードＢのパケット生成部３７は、先頭パケットＳＰ１と連結パケットＳＰ２とを有するセルフＩＤパケットＳＰを生成する。ここで、セルフＩＤパケットＳＰのデータフォーマットを図４に従って説明する。
【００２３】
各パケットＳＰ１〜ＳＰ３の先頭の「１０」は、当該パケットがセルフＩＤパケットＳＰであることを示す。先頭パケットＳＰ１には、送信元の物理ＩＤを示すphy_ID(physical_ID)、リンク層とトランザクション層がアクティブであるか否かを示すL（link_active）等のフィールドが設けられている。また、先頭パケットＳＰ１には、現在のPHY_Configuration.gap_countの値を示すgap_cnt（gap_count）、転送スピード能力を示すSP（PHY_SPEED）等のフィールドが設けられている。また、先頭パケットＳＰ１には、ブリッジ能力を示すbrdg（bridge）、バス又はアイソクロナス・リソースマネージャ候補を示すc（CONTENDER）、パワークラスを示すpwr（POWER_CLASS）、ポートの接続状態を示すp0〜p2（NPORT）等のフィールドが設けられている。さらに、先頭パケットＳＰ１には、バスリセットを発効したノードであることを示すi（initiated_reset）、「１」の場合にセルフＩＤパケットＳＰが続くことを示すm（more_packets）等のフィールドが設けられている。一方、連結パケットＳＰ２には、上記phy_ID、Extended self-ID packet Sequence numberを示すn、「０」に設定されるReservedビットであるrsv、バスリセット前後でノードＩＤが変更されたか否かを示すsame等のフィールドが設けられている。また、連結パケットＳＰ２には、ポートの接続状態を示すp3〜p10、上記m等のフィールドが設けられている。連結パケットＳＰ３には、phy_IDフィールド、nフィールド、rsvフィールドやポートの接続状態を示すp11〜p15フィールド等が設けられている。
【００２４】
そして、パケット生成部３７は、識別番号生成部４０で生成される物理ＩＤ番号ＰＩＤを上記phy_IDフィールドに格納し、識別番号生成部４０で生成される同一フラグｓａｍｅを上記sameフィールドに格納し、先頭パケットＳＰ１のmフィールドに常に「１」を格納してセルフＩＤパケットＳＰを生成する。ここで、先頭パケットＳＰ１のmフィールドに常に「１」を格納するのは、自ノードＢが有するポート数が３つ以下の場合であっても、連結パケットＳＰ２に格納される同一フラグｓａｍｅの値を常にセルフＩＤパケットＳＰ内に格納するためである。このように生成されたセルフＩＤパケットＳＰが上記送信回路２２等を通じて他ノードにブロードキャスト送信されると、自ノードＢのノードＩＤがphy_IDフィールドに格納された物理ＩＤ番号ＰＩＤに設定されるとともに、バスリセット前後でノードＩＤが変更されたか否かが他ノードに通知される。
【００２５】
識別番号生成部４０は、自ノードＢのノードＩＤとして設定される物理ＩＤ番号ＰＩＤ、つまりセルフＩＤパケットＳＰのphy_IDフィールドに格納される物理ＩＤ番号ＰＩＤを生成する。また、識別番号生成部４０は、バスリセット前後で自ノードＢのノードＩＤが変更されたか否かを示す同一フラグｓａｍｅを生成する。以下に、この識別番号生成部４０の内部構成例を説明する。
【００２６】
抽出部４１には、他ノードＡ，Ｃ，Ｄから出力されたセルフＩＤパケットＳＰがＳ／Ｐ変換されて供給される。この抽出部４１は、制御部４２からのイネーブル信号に応じて、上記セルフＩＤパケットＳＰのphy_IDフィールドから、他ノードに設定された物理ＩＤ（ノードＩＤ）を示す第１識別番号ＩＤ１を抽出し、その抽出した第１識別番号ＩＤ１を制御部４２に出力する。
【００２７】
制御部４２は、図６に示すフローチャートの処理を実行する。この制御部４２は、直前に自ノードＢに設定されたノードＩＤ、例えばバスリセット発生前の自ノードＢのノードＩＤを示す第２識別番号ＩＤ２をレジスタ４３に格納し、現在のトポロジ構築におけるセルフＩＤカウント値Ｑをレジスタ４４に格納する。また、制御部４２は、第２識別番号ＩＤ２と異なる値、ここでは１つ前に構築されたトポロジ内の装置数（ノード数）を示す第３識別番号ＩＤ３をレジスタ４５に格納する。さらに、制御部４２は、上記同一フラグｓａｍｅをレジスタ４６に格納し、通常フラグｎｒｍｌをレジスタ４７に格納し、バスリセット要求信号ＢＲｒを上記アービトレーション制御部３２に出力する。
【００２８】
ここで、同一フラグｓａｍｅは、上述したように、バスリセット前後で自ノードＢのノードＩＤが変更されたか否かを示すビットである。具体的には、自ノードＢのノードＩＤ設定時（自身のセルフＩＤパケットＳＰ送信前）までに、上記第１識別番号ＩＤ１（他のノードに設定されたノードＩＤ）と第２識別番号ＩＤ２（バスリセット前の自ノードＢのノードＩＤ）とが一致していない場合には、同一フラグｓａｍｅが「１」に設定される。この同一フラグｓａｍｅ＝１は、バスリセット前後で自ノードＢのノードＩＤが変更されないことを示す。逆に、自ノードＢのノードＩＤ設定時までに、第１識別番号ＩＤ１と第２識別番号ＩＤ２とが一致した場合には、同一フラグｓａｍｅが「０」に設定される。
【００２９】
また、通常フラグｎｒｍｌは、従来と同様のバスのコンフィグレーションを実行するか否かを示すビットである。具体的には、リセット（power_reset）後、最初のバス初期化時には、従来と同様のコンフィグレーションを実行させるために、通常フラグｎｒｍｌが「１」に設定される。また、自ノードＢのノードＩＤ設定後に、その設定したノードＩＤ（第２識別番号ＩＤ２）と第１識別番号ＩＤ１（他ノードに設定されたノードＩＤ）とが一致した場合にも、通常フラグｎｒｍｌが「１」に設定される。一方、上述のように通常フラグｎｒｍｌが「１」に設定される条件以外の場合には、従来のコンフィグレーションとは異なるシーケンスを実行させるために、通常フラグｎｒｍｌが「０」に設定される。
【００３０】
レジスタ４３，４５に格納された第２及び第３識別番号ＩＤ２，ＩＤ３とレジスタ４４に格納されたセルフＩＤカウント値Ｑとは、上記制御部４２に出力される。また、セルフＩＤカウント値Ｑ及び第３識別番号ＩＤ３は選択回路４８に出力され、第２識別番号ＩＤ２は選択回路４９に出力される。
【００３１】
レジスタ４６に格納された同一フラグｓａｍｅは、選択回路４９と上記パケット生成部３７とに出力される。また、レジスタ４７に格納された通常フラグｎｒｍｌは、選択回路４８に出力される。
【００３２】
選択回路４８は、通常フラグｎｒｍｌの値に応じて、セルフＩＤカウント値Ｑ及び第３識別番号ＩＤ３のいずれか一方を選択的に選択回路４９に出力する。具体的には、選択回路４８は、通常フラグｎｒｍｌが「０」である場合には、第３識別番号ＩＤ３を選択回路４９に出力し、通常フラグｎｒｍｌが「１」である場合には、セルフＩＤカウント値Ｑを選択回路４９に出力する。
【００３３】
選択回路４９は、同一フラグｓａｍｅの値に応じて、第２識別番号ＩＤ２及び選択回路４８から入力される値のいずれか一方を選択し、その選択した値を物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力する。具体的には、選択回路４９は、同一フラグｓａｍｅが「０」である場合には、選択回路４８から入力される値（セルフＩＤカウント値Ｑ又は第３識別番号ＩＤ３）を物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力する。一方、選択回路４９は、同一フラグｓａｍｅが「１」である場合には、第２識別番号ＩＤ２を物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力する。
【００３４】
なお、ノードＡ〜Ｄは通信装置の一例、抽出部４１及び制御部４２は比較部の一例、パケット生成部３７及び識別番号生成部４０は制御部の一例である。
次に、このように構成されたネットワークシステム（とくに、各ノードＡ〜Ｄの識別番号生成部４０）の動作を図５〜図１２を参照して説明することにより、各構成の機能についてさらに詳述する。
【００３５】
今、図９に示すノードＡ〜Ｄの電源が投入されると（power_reset）、各パラメータが初期値に設定される（図６のステップＳ１）。具体的には、同一フラグｓａｍｅが「０」、通常フラグｎｒｍｌが「１」に設定されるとともに、自ノードのセルフＩＤパケットＳＰが未送信であることを示すために送信完了フラグＴＸＥが「０」に設定される。また、セルフＩＤカウント値Ｑが「０」、第２識別番号ＩＤ２が「３ＦＨ」、第３識別番号ＩＤ３が「３ＦＨ」、トポロジ内のノードの数を示す装置数Ｄｅｖが「０」、バスリセットを発生させるためのバスリセットフラグＢＲが「０」、バスリセット要求信号ＢＲｒが「０」に設定される。なお、周知ではあるが、「Ｈ」はその値が１６進数であることを示す。
【００３６】
続いて、各ノードＡ〜ＤのＩＰＣ１０によってバスのコンフィグレーション（バス初期化→ツリー識別→自己識別）が開始される（ステップＳ２）。詳述すると、まず、バス初期化フェーズにおいて、バスリセットが発生される。これにより、すべてのノードにおけるトポロジに関する情報が消去される。このバス初期化の終了後に、一部のパラメータが所定値に設定される（ステップＳ３）。具体的には、バスリセットフラグＢＲ、バスリセット要求信号ＢＲｒ、セルフＩＤカウント値Ｑ及び送信完了フラグＴＸＥが上記初期化と同様に、全て「０」に設定されるとともに、装置数Ｄｅｖが自ノードの数を示す「１」に設定される。
【００３７】
その後、ツリー識別フェーズにおいて図９に示すツリー状のトポロジが形成され、電源投入順序や接続形態などに応じて任意のノードがルートノード（許可装置）に決定される。ここでは、ノードＡがルートノードに決定される。続いて、自己識別フェーズにおいて各ノードＡ〜Ｄの物理ＩＤ（ノードＩＤ）が自動的に割り当てられる。このようなリセット（power_reset）後の最初のバスのコンフィグレーションの場合には、従来と同様のシーケンスによって、図９に示すように、ノードＤ，Ｃ，Ｂ，Ａの順番でノードＩＤが「０」、「１」、「２」、「３」と割り当てられる。以下に、ルートノードの決定からノードＩＤの設定までの処理を詳述する。
【００３８】
上記バスリセットが発生した後、各ノードＡ〜Ｄをツリー状に接続したものとして扱えるように、各ノードＡ〜Ｄのポート回路間において親子関係の設定が行われる。具体的には、バスリセットの発生後、各ノードＡ〜Ｄ毎にそれぞれ決められた時間が経過した後に、他のノードが一つのみ接続されている葉（リーフ）のノードからparent_notifyという信号が出力される。ここでは、最初にノードＤのポート回路２０ａからparent_notify信号が出力される。他のノードが２つ以上接続されている枝（ブランチ）のノード（ここでは、ノードＣ）は、上記parent_notify信号を受信し、予め決められた時間が経過した後に、上記parent_notify信号を受信したポート回路２０ｂにchild_notify信号を出力する。さらに、上記枝のノードＣは、残りのポート回路２０ａにparent_notify信号を出力する。これにより、ノードＤのポート回路２０ａが「親ポート」に設定され、ノードＣのポート回路２０ｂが「子ポート」に設定される。このような処理が繰り返され、ノードＣのポート回路２０ａとノードＢのポート回路２０ｂとの間で「親−子」の関係が設定され、続いて、ノードＢのポート回路２０ａとノードＡのポート回路２０ｂとの間で「親−子」の関係が設定される。そして、全てのノードのポート回路間で親子関係が設定された後に、全てのポート回路が「子ポート」に設定されたノード（ここでは、ノードＡ）がルートノードに決定される。なお、図９に示すように、他のノードが接続されていないポート回路は「切（ｏｆｆ）」に設定される。
【００３９】
ルートノードが決定されると、そのルートノードＡからグラントという信号が任意の一つのポート回路に出力される。具体的には、ルートノードＡは、予め割り振られているポートの番号の最小の番号を有するポート回路（ここでは、ポート回路２０ｂ）にグラント信号を出力する。このグラント信号はノードの親ポートで受け取って子ポートから出力され、次々に伝搬される。そして、子ポートを持たないノード、つまり葉のノード（ここでは、ノードＤ）がグラント信号を受信すると、そのノードＤのノードＩＤの設定（セルフＩＤパケットＳＰの送信）が開始される。このときのノードＤ（とくに、識別番号生成部４０及びパケット生成部３７）の処理を以下に説明する。
【００４０】
図６に示すステップＳ４において、バスのコンフィグレーション（自己識別フェーズ）が未完了である場合には、制御部４２は、アービトレーション制御部３２から入力される送信許可信号ＴＸが「１」であるか否かを判定する（ステップＳ５）。このとき、上述のグラント信号の受信によって送信許可信号ＴＸが「１」になっているため（ステップＳ５でＹＥＳ）、送信完了フラグＴＸＥを「１」に設定する（ステップＳ６）。
【００４１】
続いて、制御部４２は、同一フラグｓａｍｅが初期値の「０」であり（ステップＳ７でＹＥＳ）、通常フラグｎｒｍｌが初期値の「１」であるため（ステップＳ８でＹＥＳ）、現在のセルフＩＤカウント値Ｑ（＝０）を第２識別番号ＩＤ２に設定する（ステップＳ９）。さらに、このとき、識別番号生成部４０の選択回路４８，４９は、セルフＩＤカウント値Ｑを物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力する（ステップＳ９）。そして、自ノードＤのノードＩＤとなる物理ＩＤ番号ＰＩＤ（＝０）と同一フラグｓａｍｅ（＝０）の情報を含むセルフＩＤパケットＳＰ（図５（ａ）参照）がノードＤからブロードキャスト送信される。なお、このセルフＩＤパケットＳＰでは、上述したように、ポートの数が３つ以下の場合であっても同一フラグｓａｍｅの情報を含む連結パケットＳＰ２が転送されるように、先頭パケットＳＰ１のmフィールドには「１」がセットされている。
【００４２】
このように、ノードＤの物理層制御回路３０では、識別番号生成部４０で生成されたセルフＩＤカウント値Ｑを自ノードＤのノードＩＤとして使用し、このセルフＩＤカウント値Ｑ（ノードＩＤ）をセルフＩＤパケットＳＰにて他のノードＡ〜Ｃに転送することで、ノードＩＤの取得と通知を行っている。そして、このようなセルフＩＤパケットＳＰの送信により、図９に示すように、ノードＤのノードＩＤが「０」に確定されるとともに、同一フラグｓａｍｅ＝０の情報が他ノードＡ〜Ｃに通知される。
【００４３】
上記ノードＤのセルフＩＤパケットＳＰを受信し、自身のノードＩＤが未設定のノードＡ〜Ｃは、受信したセルフＩＤパケットＳＰ内のphy_IDフィールドから他ノードＤに設定されたノードＩＤを取得するとともに、セルフＩＤカウント値Ｑをインクリメントする。このときのノードＡ〜Ｃにおける識別番号生成部４０（特に、制御部４２）の処理を以下に説明する。
【００４４】
図６に示すステップＳ４において、コンフィグレーション（自己識別フェーズ）が未完了である場合には、制御部４２は、アービトレーション制御部３２から入力される送信許可信号ＴＸが「１」であるか否かを判定する（ステップＳ５）。このとき、上述のグラント信号が他ノードＤに出力されており送信許可信号ＴＸが「０」になっているため（ステップＳ５でＮＯ）、図７に示すステップＳ１０に移る。このステップＳ１０では、制御部４２は、受信信号ＲＸが「１」であるか否かを判定する、すなわち他ノードからセルフＩＤパケットＳＰを受信したか否かを判定する。ここでは、他ノードＤからセルフＩＤパケットＳＰを受信しているため（ステップＳ１０でＹＥＳ）、装置数Ｄｅｖをインクリメントする（ステップＳ１１）。これにより、ノードＡ〜Ｃにおける装置数Ｄｅｖは「２」になる。
【００４５】
続いて、他ノードＤから受信したセルフＩＤパケットＳＰが抽出部４１に入力され、その抽出部４１でセルフＩＤパケットＳＰから物理ＩＤ（＝０）が第１識別番号ＩＤ１として抽出される。そして、制御部４２は、その第１識別番号ＩＤ１（＝０）と、自ノードの第２識別番号ＩＤ２（ここでは、初期値である「３ＦＨ」）とが一致するか否かを判定し、両者が一致しないため（ステップＳ１２でＮＯ）、ステップＳ１３に移る。ここで、上記第２識別番号ＩＤ２の初期値（＝３ＦＨ）は、リセット後の最初のバスのコンフィグレーション時に、上記ステップＳ１２において、第１識別番号ＩＤ１と第２識別番号ＩＤ２とが一致しないように、その値が設定されている。ＩＥＥＥ１３９４規格では、１つのバスあたり最大６３台までノードの接続が可能であるため、「０」から順番にノードＩＤが付与された場合には、最大で「６２」のノードＩＤが付与される。つまり、上記第２識別番号ＩＤ２の初期値「３ＦＨ（１０進数の６３）」は、１つのバスあたりに最大台数のノードが接続された場合であっても、ノードＩＤとして設定されることのない値、すなわち第１識別番号ＩＤ１として抽出されることのない値に設定されている。
【００４６】
次に、制御部４２は、自ノードのセルフＩＤパケットＳＰが未送信であるため（ステップＳ１３でＹＥＳ）、上記第１識別番号ＩＤ１（＝０）と自ノードの第３識別番号ＩＤ３（ここでは、初期値である「３ＦＨ」）とが一致するか否かを判定する（ステップＳ１４）。ここでは、両者が一致しないため（ステップＳ１４でＮＯ）、制御部４２は、セルフＩＤカウント値Ｑをインクリメントする。これにより、ノードＡ〜ＣにおけるセルフＩＤカウント値Ｑは「１」になる。
【００４７】
このようにしてノードＤのノードＩＤの設定が終了すると、そのノードＤの親ポート２０ａからident_doneという信号が出力される。このident_done信号を受け取ったノードＣは、ノードＩＤが未設定のポート回路に対してグラント信号を発行する。そして、自身の全ての子ポートにident_done信号が検出されたノード（ここでは、ノードＣ）は、自ノードのノードＩＤの設定を開始する。このノードＩＤの設定は、上述したステップＳ４〜Ｓ９（図６参照）の処理によって実行される。このとき、現在のセルフＩＤカウント値Ｑ（＝１）が第２識別番号ＩＤ２に設定されるとともに、そのセルフＩＤカウント値Ｑ（＝１）が物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ９）。そして、この物理ＩＤ番号ＰＩＤ（＝１）と同一フラグｓａｍｅ（＝０）の情報を含むセルフＩＤパケットＳＰがノードＣからブロードキャスト送信される。これにより、図９に示すように、ノードＣのノードＩＤが「１」に確定される。
【００４８】
このセルフＩＤパケットＳＰを受信したノードＡ〜Ｃの制御部４２は、上述したようにステップＳ１０〜Ｓ１３の処理を実行する。すなわち、装置数Ｄｅｖをインクリメントし（ステップＳ１１）、受信したセルフＩＤパケットＳＰから抽出した第１識別番号ＩＤ１（＝１）と自ノードの第２識別番号ＩＤ２とが不一致であることを確認する（ステップＳ１２でＮＯ）。そして、自身のノードＩＤが未設定のノードＡ，Ｂは、セルフＩＤカウント値Ｑをインクリメントして「２」にする（ステップＳ１５）。一方、自身のノードＩＤが設定済みのノードＤは、送信完了フラグＴＸＥが「１」であるため（ステップＳ１３でＮＯ）、セルフＩＤカウント値Ｑをインクリメントせずに、図６に示すステップＳ４に戻る。
【００４９】
その後も同様に、図９に示すように、ノードＢ→ノードＡの順番で、他ノードから受信したセルフＩＤパケットＳＰの数に等しいセルフＩＤカウント値Ｑによって各ノードのノードＩＤが決定される。具体的には、ノードＢのノードＩＤが「２」に設定され、ルートノードＡのノードＩＤが最も大きい「３」に設定される。
【００５０】
以上説明したように、リセット後の最初のコンフィグレーションでは、従来と同様のシーケンス（受信したセルフＩＤパケットＳＰの数によってノードＩＤを決定するシーケンス）によって各ノードＡ〜ＤのノードＩＤが自動的に設定される。そして、全てのノードＡ〜ＤのノードＩＤが設定され、且つ全てのノードＡ〜ＤからセルフＩＤパケットＳＰが送信されると、自己識別フェーズが完了し、バスのコンフィグレーションが完了する（図６のステップＳ４でＹＥＳ）。
【００５１】
すると、全てのノードＡ〜Ｄの制御部４２は、その時の装置数Ｄｅｖを第３識別番号ＩＤ３に設定する（ステップＳ３０）。ここでは、全てのノードＡ〜Ｄにおける装置数Ｄｅｖがトポロジ内のノードの総数である「４」になるため、全てのノードＡ〜Ｄにおいて、第３識別番号ＩＤ３が「４」に設定される。続いて、全てのノードＡ〜ＤにおいてバスリセットフラグＢＲが初期値の「０」のままであるため（ステップＳ３１でＮＯ）、同一フラグｓａｍｅが「１」に設定され、通常フラグｎｒｍｌが「０」に設定される（ステップＳ３２）。その後、ステップＳ２に戻って、全てのノードＡ〜Ｄの識別番号生成部４０は、次のバスリセットが発生するまで待機する。
【００５２】
また、上述のようにコンフィグレーションが完了すると（図７のステップＳ４０）、各ノードＡ〜Ｄの物理層制御回路３０では、自ノード以外の全てのノードからｓａｍｅ＝１が格納されたセルフＩＤパケットＳＰを受信したか否かが判定される（ステップＳ４１）。ここでは、全てのノードＡ〜Ｄから出力されるセルフＩＤパケットＳＰにｓａｍｅ＝０が格納されていたため（ステップＳ４１でＮＯ）、ステップＳ４２に移る。ステップＳ４２では、各ノードＡ〜Ｄが、ｓａｍｅ＝１のセルフＩＤパケットＳＰを送信していないノードに対して機器情報の取得や機器情報の確認を行う。この場合には、各ノードＡ〜Ｄは、自ノード以外の全てのノードのコンフィグレーションＲＯＭ等を読み出す。なお、コンフィグレーションＲＯＭには、メーカ識別用のcompany ID、チップを識別するためのchip_ID、モジュールのメーカを識別するためのvender_IDやシリアルナンバーなどのノード固有の情報や、当該装置が送信装置又は受信装置である等の機能情報が格納されている。このため、これらの情報を読み出すことにより、各ノードＡ〜Ｄは、現在バスに接続されているノードがどのような装置であるかを認識することができる。
【００５３】
続いて、各ノードＡ〜Ｄは、各プロトコルに従って通信の確立処理（通信内容の確認や帯域の確保など）を実行する（ステップＳ４３）。例えばＡＶ機器であれば、ＡＶ／Ｃプロトコルに従ったチャネル等の設定が実行される。このような処理によって通信が確立されると、各ノードＡ〜Ｄ間でデータ通信が開始される（ステップＳ４４）。
【００５４】
次に、ノイズなどに起因してバスリセットが発生した場合の動作について図１０を併せ参照して説明する。
例えばノードＢ，Ｃ間を接続するバスケーブル１ｂに静電気などのノイズが乗って、ノードＢ，Ｃ間で同期喪失が検出されると、バスリセットが発生され、バスのコンフィグレーションが開始される（図６のステップＳ２）。詳述すると、上記バスリセットの後に、上述と同様に一部のパラメータが所定値に設定される（ステップＳ３）。その後、ツリー識別フェーズにおいて図１０に示すツリー状のトポロジが形成され、電源投入順序や接続形態などに応じて任意のノードがルートノードに決定される。ここでは、ノードＢがルートノードに決定される。すなわち、本動作例では、トポロジの接続形態はバスリセット前（図９）と同じであるが、ルートノードがノードＡからノードＢに変わっている。そして、その後の自己識別フェーズにおいて各ノードＡ〜ＤのノードＩＤが決定される。このとき、本実施形態のようにトポロジ内の全てのノードＡ〜Ｄが図１に示すＩＰＣ１０を備えている場合には、全てのノードＡ〜Ｄに対してバスリセット前と同じノードＩＤが設定される。すなわち、ノードＤ，Ｃ，Ｂ，ＡのノードＩＤがそれぞれ、「０」、「１」、「２」、「３」に設定される。以下に、このノードＩＤの設定処理について詳述する。
【００５５】
図１０に示すように、はじめにグラント信号を受信した葉のノード（ここでは、ノードＡ）からノードＩＤの設定（セルフＩＤパケットＳＰの送信）が実行される。このとき、仮に従来のシーケンスでノードＩＤの設定が行われると、この時のセルフＩＤカウント値Ｑ（＝０）がノードＡのノードＩＤに設定されることになる。このため、従来のシーケンスでは、バスリセット前のノードＩＤ（＝３）とバスリセット後のノードＩＤ（＝０）とが異なる番号に設定されてしまう。すなわち、従来のシーケンスでは、同じノードに設定されるノードＩＤがバスリセット前後で変更されてしまう。
【００５６】
これに対し、本実施形態のＩＰＣ１０を備えたノードＡでは、以下に説明する処理を実行することにより、バスリセット前後でノードＩＤが変更されないようにノードＩＤが設定される。
【００５７】
詳述すると、ノードＡの制御部４２は、コンフィグレーションが未完了であり（図６のステップＳ４でＮＯ）、アービトレーション制御部３２から入力される送信許可信号ＴＸが「１」であるため（ステップＳでＹＥＳ）、送信完了フラグＴＸＥを「１」に設定する（ステップＳ６）。
【００５８】
続いて、制御部４２は、同一フラグｓａｍｅが「０」であるか「１」であるかを判定する（ステップＳ７）。このとき、ノードＡでは、自身のセルフＩＤパケットＳＰを送信する前までに、第２識別番号ＩＤ２（＝３）と一致する第１識別番号ＩＤ１を受信していないため、同一フラグｓａｍｅが上記ステップＳ３２で設定された「１」のままである（ステップＳ７でＮＯ）。このため、識別番号生成部４０からは第２識別番号ＩＤ２（＝３）、つまりバスリセット前の自ノードＡのノードＩＤが物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ２０）。また、このときレジスタ４６からは「１」である同一フラグｓａｍｅがパケット生成部３７に出力される。そして、図１０に示すように、自ノードＡのノードＩＤとなる物理ＩＤ番号ＰＩＤ（＝３）と同一フラグｓａｍｅ（＝１）の情報を含むセルフＩＤパケットＳＰ（図５（ｂ）参照）がノードＡからブロードキャスト送信される。すなわち、バスリセット前の自ノードＡのノードＩＤと同じ物理ＩＤ番号ＰＩＤ（＝３）と、バスリセット前後でノードＩＤが変更されていないことを示す情報（ｓａｍｅ＝１）とがセルフＩＤパケットＳＰによって他のノードＢ〜Ｄに通知される。これにより、ノードＡのノードＩＤがバスリセット前と同じ「３」に確定される。
【００５９】
このセルフＩＤパケットＳＰを受信するノードＢ〜Ｄは、上述したようにステップＳ１０〜Ｓ１５（図７参照）の処理を実行する。これにより、ノードＢ〜Ｄにおける装置数Ｄｅｖが「２」になり、ノードＢ〜ＤにおけるセルフＩＤカウント値Ｑが「１」になる。
【００６０】
続いて、次の順番のノードＤにおいてノードＩＤの設定が実行される。このノードＤも上記ノードＡと同様に、自身のセルフＩＤパケットＳＰを送信する前までに、第２識別番号ＩＤ２（＝０）と一致する第１識別番号ＩＤ１を受信していないため、同一フラグｓａｍｅが「１」のままである（図６のステップＳ７でＮＯ）。このため、識別番号生成部４０からは第２識別番号ＩＤ２（＝０）、つまりバスリセット前の自ノードＤのノードＩＤが物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ２０）。また、このときレジスタ４６からは「１」である同一フラグｓａｍｅがパケット生成部３７に出力される。そして、図１０に示すように、バスリセット前の自ノードＤのノードＩＤと同じ物理ＩＤ番号ＰＩＤ（＝０）と、バスリセット前後でノードＩＤが変更されていないことを示す情報（ｓａｍｅ＝１）とがセルフＩＤパケットＳＰによって他のノードＡ〜Ｃに通知される。これにより、ノードＤのノードＩＤがバスリセット前と同じ「０」に確定される。
【００６１】
その後、ノードＣ，Ｂも同様に、自身のセルフＩＤパケットＳＰを送信する前までに、第２識別番号ＩＤ２と一致する第１識別番号ＩＤ１を受信しないため、第２識別番号ＩＤ２が自身のノードＩＤに設定される。そして、バスリセット前のノードＩＤと同じ物理ＩＤ番号ＰＩＤと、バスリセット前後でノードＩＤが変更されていないことを示す情報（ｓａｍｅ＝１）とがセルフＩＤパケットＳＰによって他のノードに通知される。これにより、ノードＣのノードＩＤがバスリセット前と同じ「１」に確定され、最後にルートノードＢのノードＩＤがバスリセット前と同じ「２」に確定される。
【００６２】
このようにコンフィグレーションが完了すると（ステップＳ４でＹＥＳ）、全てのノードＡ〜Ｄの制御部４２は、その時の装置数Ｄｅｖ（＝４）を第３識別番号ＩＤ３に設定し（ステップＳ３０）、同一フラグｓａｍｅを「１」に再度設定するとともに、通常フラグｎｒｍｌを「０」に再度設定する（ステップＳ３２）。これにより、次にバスリセットが発生した場合にも、バスリセット前後でノードＩＤが変更されないように動作される。
【００６３】
以上説明したように、本実施形態のネットワークシステムでは、ノイズ等によってバスリセットが発生しても、全てのノードＡ〜ＤのノードＩＤがバスリセット前と同じノードＩＤに自動的に設定される。さらに、全てのノードＡ〜Ｄから、バスリセット前後でノードＩＤが変更されていないこと示す情報（ｓａｍｅ＝１）が他の全てのノードに通知される。このｓａｍｅ＝１の情報に基づいて、各ノードＡ〜Ｄにおいて、自ノード以外の全てのノードのノードＩＤがバスリセット前と変更されていないことを判別することができるため、機器情報の取得・認識処理（ステップＳ４２）や通信の確立処理（ステップＳ４３）を省略することができる。このため、全てのノードＡ〜Ｄからｓａｍｅ＝１のセルフＩＤパケットＳＰを受信した場合には（図８のステップＳ４１でＹＥＳ）、機器情報の取得・認識処理（ステップＳ４２）や通信の確立処理（ステップＳ４３）が省略されて、データ通信が直ちに再開される（ステップＳ４４）。これにより、コンフィグレーション完了後、バスリセット前と同様にデータ通信を即座に再開することができる。
【００６４】
次に、図１０に示すネットワークシステムに２つのノードＥ，Ｆが追加された場合の動作について図１１を併せ参照して説明する。具体的には、図１に示すＩＰＣ１０を備えるノードＥのポート回路２０ａがノードＡのポート回路２０ａに新たに接続され、さらにＩＰＣ１０を備えるノードＦのポート回路２０ａがノードＥのポート回路２０ｂに新たに接続された場合の動作を説明する。
【００６５】
ノードＥ，Ｆの追加によってバスリセットが発生され、バスのコンフィグレーションが開始されると（ステップＳ２）、一部のパラメータが所定値に設定され（ステップＳ３）、任意のノード（ここでは、ノードＡ）がルートノードに決定される。その後、各ノードのノードＩＤの設定が開始される。このとき、新たに追加されたノードＥ，Ｆは、リセット後の最初のコンフィグレーションになるため、セルフＩＤカウント値Ｑによって自身のノードＩＤが設定される。
【００６６】
詳述すると、図１１に示すように、はじめにグラント信号を受信した葉のノード（ここでは、追加されたノードＦ）からセルフＩＤパケットＳＰの送信が実行される。この時のノードＦでは、同一フラグｓａｍｅが初期値の「０」であり（図６のステップＳ７でＹＥＳ）、通常フラグｎｒｍｌが初期値の「１」である（ステップＳ８でＹＥＳ）。このため、現在のセルフＩＤカウント値Ｑ（＝０）が第２識別番号ＩＤ２に設定されるとともに、セルフＩＤカウント値Ｑが物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ９）。そして、図１１に示すように、この物理ＩＤ番号ＰＩＤ（＝０）と同一フラグｓａｍｅ（＝０）の情報を含むセルフＩＤパケットＳＰがノードＦからブロードキャスト送信される。これにより、ノードＦのノードＩＤが「０」に確定される。
【００６７】
このセルフＩＤパケットＳＰを受信したノードＤの制御部４２は、装置数Ｄｅｖをインクリメントし（ステップＳ１１）、上記セルフＩＤパケットＳＰから抽出した第１識別番号ＩＤ１（＝０）と自身の第２識別番号ＩＤ２（＝０）が一致するか否かを判定する（ステップＳ１２）。ここでは、両者が一致するため（ステップＳ１２でＹＥＳ）、制御部４２は、同一フラグｓａｍｅを「０」に設定する（ステップＳ１７）。続いて、制御部４２は、送信完了フラグＴＸＥが「０」であり（ステップＳ１８でＮＯ）、上記第１識別番号ＩＤ１（＝０）と自身の第３識別番号ＩＤ３（＝４）とが不一致であるため（ステップＳ１４でＮＯ）、セルフＩＤカウント値ＱをインクリメントしてステップＳ４に戻る。一方、他のノードＡ〜Ｃ，Ｅは、ステップＳ１０〜Ｓ１５の処理を実行する。これにより、ノードＡ〜ＥにおけるセルフＩＤカウント値Ｑが「２」になる（ステップＳ１５）。
【００６８】
続いて、次の順番のノードＥにおいてノードＩＤの設定が実行される。このノードＥもノードＦと同様に追加されたノードであるため、現在のセルフＩＤカウント値Ｑ（＝１）が物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ９）。そして、図１１に示すように、この物理ＩＤ番号ＰＩＤ（＝１）と同一フラグｓａｍｅ（＝０）の情報を含むセルフＩＤパケットＳＰがノードＥからブロードキャスト送信される。これにより、ノードＥのノードＩＤが「１」に確定される。
【００６９】
このセルフＩＤパケットＳＰを受信したノードＣの制御部４２は、図７に示すステップＳ１０〜Ｓ１２，Ｓ１７，Ｓ１８の処理を実行する。すなわち、ノードＣの制御部４２は、上記セルフＩＤパケットＳＰから抽出した第１識別番号ＩＤ１（＝１）と自身の第２識別番号ＩＤ２（＝１）が一致するため（ステップＳ１２でＹＥＳ）、同一フラグｓａｍｅを「０」に設定する（ステップＳ１７）。その後、その制御部４２は、ステップＳ１４，Ｓ１５の処理を実行する。一方、ノードＩＤが未設定のノードＡ，Ｂ，ＤはステップＳ１０〜Ｓ１５の処理を実行し、ノードＩＤが設定済みのノードＦはステップＳ１０〜Ｓ１３の処理を実行する。
【００７０】
続いて、次の順番のノードＤにおいてノードＩＤの設定が実行される。このノードＤの制御部４２では、自身のセルフＩＤパケットＳＰを送信する前に、自身の第２識別番号ＩＤ２に一致する第１識別番号ＩＤ１が受信され、上記ステップＳ１７で同一フラグｓａｍｅが「０」に設定され（ステップＳ７でＹＥＳ）、通常フラグｎｒｍｌが「０」に設定されている（ステップＳ８でＮＯ）。このため、識別番号生成部４０からは第３識別番号ＩＤ３（＝４）、つまり直前のトポロジにおけるノードの総数である装置数Ｄｅｖが物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ２１）。また、このときレジスタ４６からは「０」である同一フラグｓａｍｅがパケット生成部３７に出力される。そして、図１１に示すように、バスリセット前のノードＩＤから変更された物理ＩＤ番号ＰＩＤ（＝４）と、バスリセット前後でノードＩＤが変更されたことを示す情報（ｓａｍｅ＝０）とがセルフＩＤパケットＳＰによって他のノードＡ〜Ｃ，Ｅ，Ｆに通知される。これにより、ノードＤのノードＩＤが「４」に確定される。ここで、第３識別番号ＩＤ３の値は、直前のトポロジにおいて設定されていない値となるように、直前のトポロジにおける装置数Ｄｅｖに設定されている。
【００７１】
このセルフＩＤパケットＳＰを受信したノードＡ〜Ｃの制御部４２は、ステップＳ１０〜Ｓ１４の処理を実行する。このとき、第１識別番号ＩＤ１（＝４）と自身の第３識別番号ＩＤ３（＝４）とが一致するため（ステップＳ１４でＹＥＳ）、上記制御部４２は、第３識別番号ＩＤ３の値をインクリメントして「５」にする（ステップＳ１６）。その後、制御部４２は、セルフＩＤカウント値ＱをインクリメントしてステップＳ４に戻る。一方、ノードＩＤが設定済みのノードＥ，Ｆの制御部４２は、ステップＳ１０〜Ｓ１３の処理を実行してステップＳ４に戻る。
【００７２】
続いて、次の順番のノードＣにおいてノードＩＤの設定が実行される。このノードＣの制御部４２では、上記ステップＳ１７で同一フラグｓａｍｅが「０」に設定され（ステップＳ７でＹＥＳ）、通常フラグｎｒｍｌが「０」に設定されている（ステップＳ８でＮＯ）。このため、識別番号生成部４０からは第３識別番号ＩＤ３（＝５）が物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ２１）。また、このときレジスタ４６からは「０」である同一フラグｓａｍｅがパケット生成部３７に出力される。そして、図１１に示すように、バスリセット前のノードＩＤから変更された物理ＩＤ番号ＰＩＤ（＝５）と、バスリセット前後でノードＩＤが変更されたことを示す情報（ｓａｍｅ＝０）とがセルフＩＤパケットＳＰによって他のノードＡ，Ｂ，Ｄ〜Ｆに通知される。これにより、ノードＣのノードＩＤが「５」に確定される。
【００７３】
なお、このセルフＩＤパケットＳＰを受信したノードＡ，Ｂの制御部４２は、第１識別番号ＩＤ１（＝５）と自身の第３識別番号ＩＤ３（＝５）とが一致するため（ステップＳ１４でＹＥＳ）、第３識別番号ＩＤ３の値をインクリメントして「６」にする（ステップＳ１６）。
【００７４】
その後、残りのノードＢ，Ａでは、自身のセルフＩＤパケットＳＰを送信する前までに、第２識別番号ＩＤ２と一致する第１識別番号ＩＤ１を受信しないため、第２識別番号ＩＤ２が自身のノードＩＤに設定される。すなわち、図１１に示すように、バスリセット前のノードＩＤと同じ物理ＩＤ番号ＰＩＤ（＝ＩＤ２）と、バスリセット前後でノードＩＤが変更されていないことを示す情報（ｓａｍｅ＝１）とがセルフＩＤパケットＳＰによって他のノードに通知される。これにより、ノードＢのノードＩＤがバスリセット前と同じ「２」に確定され、最後にルートノードＡのノードＩＤがバスリセット前と同じ「３」に確定される。
【００７５】
このようにコンフィグレーションが完了すると（ステップＳ４でＹＥＳ）、全てのノードＡ〜Ｆの制御部４２は、その時の装置数Ｄｅｖ（＝６）を第３識別番号ＩＤ３に設定する（ステップＳ３０）。続いて、全てのノードＡ〜ＦにおいてバスリセットフラグＢＲが初期値の「０」のままであるため（ステップＳ３１でＮＯ）、全てのノードＡ〜Ｆにおける同一フラグｓａｍｅが「１」に再度設定され、通常フラグｎｒｍｌが「０」に再度設定される（ステップＳ３２）。これにより、次にバスリセットが発生した場合に、バスリセット前後でノードＩＤが変更されないように各ノードＡ〜Ｆが動作される。
【００７６】
以上説明したように、図１０に示すネットワークシステムにノードＥ，Ｆが追加された場合には、ノードＡ，Ｂはバスリセット前と同じノードＩＤに設定され、一部のノードＣ，ＤのノードＩＤがバスリセット前後で変更される。このバスリセット前後でノードＩＤが変更されたノードＣ，Ｄと新たに追加されたノードＥ，Ｆとからは、ｓａｍｅ＝０のセルフＩＤパケットＳＰが送信される（図８のステップＳ４１でＮＯ）。このため、各ノードＡ〜Ｆは、ｓａｍｅ＝０のセルフＩＤパケットＳＰを送信したノードＣ〜Ｆに対してのみ機器情報の取得や機器情報の確認を行う（ステップＳ４２）。その後、通信の確立処理が完了すると（ステップＳ４３）、データ通信が再開される（ステップＳ４４）。
【００７７】
このように、新たなノードＥ，Ｆが追加された場合であっても、その追加されたノードＥ，Ｆとバスリセット前後でノードＩＤが変更されたノードＣ，Ｄに対してのみ、機器情報の認識処理を実行すれば良いため、データ通信を再開するまでの遅延を最小限に抑えることができる。すなわち、バスリセット前後におけるノードＩＤの変更が減少され、バスリセット後の機器情報の認識処理が減少されるため、バスリセット後のデータ通信を迅速に再開させることができる。
【００７８】
次に、図１０に示すネットワークシステムにノードＧが追加された場合の動作について図１２を併せ参照して説明する。具体的には、図１に示すＩＰＣ１０を備えるノードＧのポート回路２０ａがノードＤのポート回路２０ｂに新たに接続された場合の動作を説明する。
【００７９】
ノードＧの追加によってバスリセットが発生され、バスのコンフィグレーションが開始されると（図６のステップＳ２）、一部のパラメータが所定値に設定され（ステップＳ３）、任意のノード（ここでは、ノードＣ）がルートノードに決定される。その後、各ノードのノードＩＤの設定が開始される。
【００８０】
図１２に示すように、はじめにグラント信号を受信した葉のノード（ここでは、ノードＡ）からセルフＩＤパケットＳＰの送信が実行される。このノードＡでは、他ノードからセルフＩＤパケットＳＰを受信していないため、同一フラグｓａｍｅが「１」のままである（図６のステップＳ７でＮＯ）。このため、第２識別番号ＩＤ２（＝３）が物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ２０）。そして、図１２に示すように、バスリセット前のノードＩＤと同じ物理ＩＤ番号ＰＩＤ（＝３）と、バスリセット前後でノードＩＤが変更されていないことを示す情報（ｓａｍｅ＝１）とを含むセルフＩＤパケットＳＰがノードＡからブロードキャスト送信される。これにより、ノードＡのノードＩＤがバスリセット前と同じ「３」に確定される。
【００８１】
このセルフＩＤパケットＳＰを受信するノードＢ〜Ｄ，Ｇの制御部４２は、ステップＳ１０〜Ｓ１５の処理を実行する。これにより、ノードＢ〜Ｄ，ＧにおけるセルフＩＤカウント値Ｑが「１」になる。
【００８２】
続いて、次の順番のノードＢにおいてノードＩＤの設定が実行される。このノードＢでもノードＡと同様に、同一フラグｓａｍｅが「１」であるため、第２識別番号ＩＤ２（＝２）が物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される。そして、図１２に示すように、この物理ＩＤ番号ＰＩＤ（＝２）と、同一フラグｓａｍｅ（＝１）の情報を含むセルフＩＤパケットＳＰがノードＢからブロードキャスト送信される。これにより、ノードＢのノードＩＤがバスリセット前と同じ「２」に確定される。
【００８３】
このセルフＩＤパケットＳＰを受信するノードＣ，Ｄ，Ｇの制御部４２は、ステップＳ１０〜Ｓ１５の処理を実行する。これにより、ノードＣ，Ｄ，ＧにおけるセルフＩＤカウント値Ｑが「２」になる。
【００８４】
続いて、次の順番のノードＧ（追加されたノード）においてセルフＩＤパケットＳＰの送信が実行される。この時のノードＧでは、同一フラグｓａｍｅが初期値の「０」であり（図６のステップＳ７でＹＥＳ）、通常フラグｎｒｍｌが初期値の「１」である（ステップＳ８でＹＥＳ）。このため、現在のセルフＩＤカウント値Ｑ（＝２）が第２識別番号ＩＤ２に設定されるとともに、セルフＩＤカウント値Ｑが物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ９）。そして、図１２に示すように、この物理ＩＤ番号ＰＩＤ（＝２）と同一フラグｓａｍｅ（＝０）の情報を含むセルフＩＤパケットＳＰがノードＧからブロードキャスト送信される。これにより、ノードＧのノードＩＤが「２」に確定される。
【００８５】
このセルフＩＤパケットＳＰを受信するノードＢの制御部４２は、図７に示すステップＳ１０〜Ｓ１２の処理を実行する。このとき、第１識別番号ＩＤ１（＝２）と自ノードＢの第２識別番号ＩＤ２（＝２）とが一致するため（ステップＳ１２でＹＥＳ）、ノードＢの制御部４２は、同一フラグｓａｍｅを「０」に設定する（ステップＳ１７）。続いて、ノードＩＤが設定済みのノードＢでは、送信完了フラグＴＸＥが「１」であるため（ステップＳ１８でＹＥＳ）、バスリセットフラグＢＲが「１」に設定されるとともに、通常フラグｎｒｍｌが「１」に設定される（ステップＳ１９）。
【００８６】
その後、残りのノードＤ，Ｃでは、自身のセルフＩＤパケットＳＰを送信する前までに、第２識別番号ＩＤ２と一致する第１識別番号ＩＤ１を受信しないため、第２識別番号ＩＤ２が自身のノードＩＤに設定される。すなわち、図１２に示すように、バスリセット前のノードＩＤと同じ物理ＩＤ番号ＰＩＤと、バスリセット前後でノードＩＤが変更されていないことを示す情報（ｓａｍｅ＝１）とを含むセルフＩＤパケットＳＰがブロードキャスト送信される。これにより、ノードＤのノードＩＤが「０」に確定され、最後にルートノードＣのノードＩＤが「１」に確定される。
【００８７】
このようにして、全てのノードＡ〜Ｄ，ＧのノードＩＤが自動的に設定される。しかし、このときノードＢとノードＧとで同一のノードＩＤ（＝２）が設定されている。すなわち、ノードＡ〜Ｄ，Ｇを有するネットワークシステム内では、「２」のノードＩＤが２つ存在している。このため、このようなネットワークシステムでは、正常なデータ通信を行うことができない。
【００８８】
そこで、本実施形態のＩＰＣ１０では、同一のノードＩＤが重複して設定された場合に、コンフィグレーションを再度実行するようにした。具体的には、ＩＰＣ１０（制御部４２）では、自身のセルフＩＤパケットＳＰを送信した後に、第１識別番号ＩＤ１と自身の第３識別番号ＩＤ３とが一致した場合に（図７のステップＳ１２→Ｓ１７→Ｓ１８→Ｓ１９）、コンフィグレーションを実行するようにした。すなわち、上述のように全てのノードＡ〜Ｄ，ＧのノードＩＤが設定された後（図６のステップＳ４でＹＥＳ）、ノードＢにおけるバスリセットフラグＢＲがステップＳ１９で「１」に設定されているため（ステップＳ３１でＹＥＳ）、バスリセット要求信号ＢＲｒが「１」に設定され、第２識別番号ＩＤ２が「３ＦＨ」に設定される（ステップＳ３３）。このバスリセット要求信号ＢＲｒがアービトレーション制御部３２に出力されることにより、ノードＢからバスリセットが発生されコンフィグレーションが実行される。このコンフィグレーションにおいて、バスリセットを起したノードＢでは、従来と同様に、セルフＩＤカウント値ＱによってノードＩＤが設定される。一方、その他のノードＡ，Ｃ，Ｄ，Ｇでは、このコンフィグレーションが開始される前において、バスリセットフラグＢＲが「０」であるため（ステップＳ３１でＮＯ）、同一フラグｓａｍｅが「１」に設定され、通常フラグｎｒｍｌが「０」に設定される（ステップＳ３２）。このため、これらノードＡ，Ｄ，Ｃ，Ｇでは、バスリセット前後でノードＩＤが変更されないようにノードＩＤが設定される。以下、このときのノードＩＤの設定処理を説明する。
【００８９】
上述のようにコンフィグレーションが開始されると（図６のステップＳ２）、一部のパラメータが所定値に設定され（ステップＳ３）、任意のノード（ここでは、ノードＣ）がルートノードに決定される。その後、各ノードのノードＩＤの設定が開始される。
【００９０】
図１３に示すように、はじめにグラント信号を受信した葉のノード（ここでは、ノードＡ）からセルフＩＤパケットＳＰの送信が実行される。このノードＡでは、他ノードからセルフＩＤパケットＳＰを受信していないため、同一フラグｓａｍｅが「１」のままである（図６のステップＳ７でＮＯ）。このため、第２識別番号ＩＤ２（＝３）が物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ２０）。そして、図１３に示すように、バスリセット前のノードＩＤと同じ物理ＩＤ番号ＰＩＤ（＝３）と、バスリセット前後でノードＩＤが変更されていないことを示す情報（ｓａｍｅ＝１）とを含むセルフＩＤパケットＳＰがノードＡからブロードキャスト送信される。これにより、ノードＡのノードＩＤがバスリセット前と同じ「３」に確定される。
【００９１】
このセルフＩＤパケットＳＰを受信するノードＢ〜Ｄ，Ｇの制御部４２は、ステップＳ１０〜Ｓ１５の処理を実行する。これにより、ノードＢ〜Ｄ，ＧにおけるセルフＩＤカウント値Ｑが「１」になる。
【００９２】
続いて、次の順番のノードＢにおいてノードＩＤの設定が実行される。このノードＢでは、同一フラグｓａｍｅが「０」であり（ステップＳ７でＹＥＳ）、通常フラグｎｒｍｌが「１」である（ステップＳ８でＹＥＳ）。このため、現在のセルフＩＤカウント値Ｑ（＝１）が第２識別番号ＩＤ２に設定されるとともに、セルフＩＤカウント値Ｑが物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ９）。そして、図１３に示すように、この物理ＩＤ番号ＰＩＤ（＝１）と、同一フラグｓａｍｅ（＝０）の情報を含むセルフＩＤパケットＳＰがノードＢからブロードキャスト送信される。これにより、ノードＢのノードＩＤが「１」に確定される。
【００９３】
このセルフＩＤパケットＳＰを受信するノードＣの制御部４２は、図７に示すステップＳ１０〜Ｓ１２，Ｓ１７，Ｓ１８の処理を実行する。すなわち、ノードＣの制御部４２は、上記セルフＩＤパケットＳＰから抽出した第１識別番号ＩＤ１（＝１）と自身の第２識別番号ＩＤ２（＝１）が一致するため（ステップＳ１２でＹＥＳ）、同一フラグｓａｍｅを「０」に設定する（ステップＳ１７）。その後、その制御部４２は、ステップＳ１４，Ｓ１５の処理を実行する。一方、ノードＩＤが未設定のノードＤ，ＧはステップＳ１０〜Ｓ１５の処理を実行し、ノードＩＤが設定済みのノードＡ，ＢはステップＳ１０〜Ｓ１３の処理を実行する。
【００９４】
その後、ノードＧ，Ｄでは、自身のセルフＩＤパケットＳＰを送信する前までに、第２識別番号ＩＤ２と一致する第１識別番号ＩＤ１を受信しないため、第２識別番号ＩＤ２が自身のノードＩＤに設定される。すなわち、図１３に示すように、バスリセット前のノードＩＤと同じ物理ＩＤ番号ＰＩＤと、バスリセット前後でノードＩＤが変更されていないことを示す情報（ｓａｍｅ＝１）とを含むセルフＩＤパケットＳＰがブロードキャスト送信される。これにより、ノードＧのノードＩＤが「２」に確定され、ノードＤのノードＩＤが「０」に確定される。
【００９５】
最後に、ルートノードＣにおいてノードＩＤの設定が実行される。このノードＣの制御部４２では、上記ステップＳ１７で同一フラグｓａｍｅが「０」に設定され（ステップＳ７でＹＥＳ）、通常フラグｎｒｍｌが「０」に設定されている（ステップＳ８でＮＯ）。このため、識別番号生成部４０からは第３識別番号ＩＤ３（＝５）が物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ２１）。また、このときレジスタ４６からは「０」である同一フラグｓａｍｅがパケット生成部３７に出力される。そして、図１３に示すように、バスリセット前のノードＩＤから変更された物理ＩＤ番号ＰＩＤ（＝５）と、バスリセット前後でノードＩＤが変更されたことを示す情報（ｓａｍｅ＝０）とがセルフＩＤパケットＳＰによって他のノードＡ，Ｂ，Ｄ，Ｇに通知される。これにより、ルートノードＣのノードＩＤが「５」に確定される。
【００９６】
このように、コンフィグレーションが再度実行されると、各ノードＡ〜Ｄ，ＧのノードＩＤが重複しないように設定されるため、ノードＩＤの重複が解消される。なお、仮にコンフィグレーション前とルートノードが変更された場合であっても同様に、各ノードＡ〜Ｄ，ＧのノードＩＤが重複しないように設定されるため、ノードＩＤの重複が解消される。これにより、正常なデータ通信が可能となる。
【００９７】
以上説明した本実施形態によれば、以下の効果を奏することができる。
（１）他ノードから受信したセルフＩＤパケットＳＰ内のノードＩＤ、つまり第１識別番号ＩＤ１と自身の直前のノードＩＤである第２識別番号ＩＤ２とが一致しなければ、第２識別番号ＩＤ２を自身のノードＩＤとして設定するようにした。さらに、その自身のノードＩＤとして設定する第２識別番号ＩＤ２と、ノードＩＤが未変更であることを示す情報（ｓａｍｅ＝１）とを他のノードに通知するようにした。これにより、例えばノイズ等によってバスリセットが発生する場合であっても、そのバスリセット前と同じノードＩＤを自身のノードＩＤとして設定することができる。さらに、ｓａｍｅ＝１のセルフＩＤパケットＳＰを受信した他のノードでは、送信元のノードのノードＩＤが変更されていないことを判別することができる。このため、各ノード間で機器情報の取得・確認処理を省略することができ、バスリセット後にデータ通信を即座に再開することができる。
【００９８】
さらに、このとき、想定されるノイズ期間に相当する容量のバッファを各ノードに用意することによって、バスリセット前に転送中のデータ通信（例えば映像や音声データ）をバスリセット前後で途切れることなく継続することができる。これにより、ノイズ耐性をより向上させることができる。
【００９９】
（２）また、自身のセルフＩＤパケットＳＰを送信する前までに、第１識別番号ＩＤ１と第２識別番号ＩＤ２とが一致した場合には、その時の第２識別番号ＩＤ２とは異なる第３識別番号ＩＤ３を自身のノードＩＤとして設定するようにした。このため、例えばネットワークシステムにノードが追加された場合に、自身のノードＩＤ設定前に、自身の第２識別番号ＩＤ２と同一のノードＩＤが他のノードに設定されたとしても、そのノードＩＤとは別のノードＩＤを自身に設定することができる。これにより、重複したノードＩＤが設定されることを好適に抑制することができる。さらに、この場合には、ノードＩＤの変更されたノードと追加されたノードとに対してのみ機器情報の取得・確認処理を実行すればよいため、バスリセット後からデータ通信の再開までの遅延を最小限に抑えることができる。
【０１００】
（３）さらに、自身のセルフＩＤパケットＳＰを送信した後に、第１識別番号ＩＤ１と第２識別番号ＩＤ２とが一致した場合には、バスリセットフラグＢＲを「１」に設定することにより（ステップＳ１９）、コンフィグレーションを実行するようにした。さらに、そのコンフィグレーションでは、従来と同様に、セルフＩＤカウント値ＱによってノードＩＤを設定するようにした。これにより、仮に一つのネットワークシステム内で同一のノードＩＤが重複して設定された場合であっても、バスが初期化され、ノードＩＤが再設定されるため、そのノードＩＤの重複を解消することができる。
【０１０１】
（４）第１識別番号ＩＤ１と第２識別番号ＩＤ２とが一致しない場合に、バスリセット前後でノードＩＤを変更しないようにしたが、各ノード（又は任意のノード）のノードＩＤを固定しているわけではない。このため、各ノードのノードＩＤは、各ノードの物理層（ポート回路２０ａ，２０ｂ及び物理層制御回路３０）によって自動的に割り当てられる。したがって、ノードＩＤの管理などをユーザが行う必要がなく、プラグアンドプレイ機能を備えたネットワークシステムを実現することができる。
【０１０２】
（５）また、各ノードの物理層のみによってノードＩＤの設定を行うことができる。すなわち、各ノードのリンク層やアプリケーション層はノードＩＤの設定に関与しない。このため、アプリケーション層が動作しない装置では、物理層のみを動作させればノードＩＤの設定を行うことができるため、低消費電力化することができる。
【０１０３】
（６）ノードＩＤが変更されていないことを示す情報（ｓａｍｅ＝１）を他のノードに通知するようにしたため、各ノードは、その情報を取得することにより、ノードＩＤの変化の有無を判別することができる。このため、ノードＩＤの変化の有無を判別するために、全てのノードの機器情報とノードＩＤとを対応付けたテーブルなどを用意したり、マネージャとなるノードが全てのノードのノードＩＤの情報を管理したりする必要がない。したがって、ノードＩＤの変化の有無を判別するために、大きな容量の記憶装置を持つ必要がない。
【０１０４】
（７）ノードＩＤの変更の有無を示す情報、つまり同一フラグｓａｍｅを、セルフＩＤパケットＳＰを利用して転送するようにした。これにより、既存の規格に存在しない全く新しいパケットを追加することなく、同一フラグｓａｍｅを他のノードに通知することができる。
【０１０５】
（８）第１識別番号ＩＤ１と第３識別番号ＩＤ３とが一致した場合に、第３識別番号ＩＤ３の値をインクリメントするようにした。これにより、複数のノードにおいてノードＩＤが変更される場合であっても、ノードＩＤが重複して設定されることを好適に抑制することができる。
【０１０６】
（第２実施形態）
以下、第２実施形態について、図１４〜１６に従って説明する。この実施形態のネットワークシステムでは、図１に示すＩＰＣ１０を備えるノードと既存のＩＰＣ１０ａを備えるノードとがトポロジを構築する点が上記第１実施形態と異なっている。以下、第１実施形態との相違点を中心に説明する。
【０１０７】
まず、所定の規格（例えば、ＩＥＥＥ１３９４規格）に準拠したネットワークシステムを図１５に従って説明する。ノードＡ１にはバスケーブル１ａを介してノードＢが接続され、そのノードＢにはバスケーブル１ｂを介してノードＣが接続され、そのノードＣにはバスケーブル１ｃを介してノードＤが接続されている。
【０１０８】
ノードＢ〜Ｄは、上記第１実施形態と同様に、図１に示すＩＰＣ１０を備えている。一方、ノードＡ１は、既存（従来）のＩＥＥＥ１３９４プロトコルコントローラ（ＩＰＣ）１０ａを備えている。以下に、このＩＰＣ１０ａの内部構成例を説明する。
【０１０９】
図１４に示すように、ＩＰＣ１０ａは、セルフＩＤパケット生成部（パケット生成部）３７ａ及び識別番号生成部６０が異なること以外は上記ＩＰＣ１０と同様の構成であるため、その他の構成は説明を省略する。
【０１１０】
物理層制御回路３０ａの識別番号生成部６０は、制御部６１と、レジスタ６２とを備えている。制御部６１には、アービトレーション制御部３２から送信許可信号ＴＸと受信信号ＲＸとが入力される。この制御部６１は、他ノードからセルフＩＤパケットＳＰを受信したことを示す受信信号ＲＸを受信するたびにセルフＩＤカウント値Ｑをインクリメントし、そのセルフＩＤカウント値Ｑをレジスタ６２に格納する。また、制御部６１は、自身のセルフＩＤパケットＳＰの送信が許可されたことを示す送信許可信号ＴＸを受信すると、レジスタ６２に記憶されているセルフＩＤカウント値Ｑを物理ＩＤ番号ＰＩＤとしてパケット生成部３７ａに出力させる。
【０１１１】
パケット生成部３７ａは、図１６に示すデータフォーマットを有するセルフＩＤパケットＳＰａを生成する。具体的には、パケット生成部３７ａは、自ノードＡ１が有するポート回路が３つ以下の場合には、先頭パケットＳＰａ１のみを有するセルフＩＤパケットＳＰａを生成する。また、パケット生成部３７ａは、自ノードＡ１が有するポート回路が４つ以上の場合には、上記先頭パケットＳＰａ１と併せて、ポート回路の数に応じて連結パケットＳＰａ２，ＳＰａ３とを有するセルフＩＤパケットＳＰａを生成する。さらに、パケット生成部３７ａは、識別番号生成部６０で生成される物理ＩＤ番号ＰＩＤをphy_IDフィールドに格納してセルフＩＤパケットＳＰａを生成する。なお、このセルフＩＤパケットＳＰａには、sameフィールドは存在せず、対応する領域には「０」のreservedビットの格納されたrsvフィールドが設けられている。
【０１１２】
次に、このように既存のＩＰＣ１０ａを備えるノードＡ１が混在するネットワークシステムの動作を図６〜８及び図１７を参照して説明する。
今、図１７（ａ）に示すノードＡ１，Ｂ〜Ｄの電源が投入されると（power_reset）、バスのコンフィグレーション（バス初期化→ツリー識別→自己識別）が開始される（図６のステップＳ２）。詳述すると、まず、バス初期化フェーズにおいてバスリセットが発生され、ツリー識別フェーズにおいて図１７（ａ）に示すツリー状のトポロジが形成され、電源投入順序や接続形態などに応じて任意のノードがルートノードに決定される。ここでは、ノードＡ１がルートノードに決定される。その後、自己識別フェーズにおいて各ノードＡ１，Ｂ〜ＤのノードＩＤが自動的に割り当てられる。このとき、リセット（power_reset）後の最初のバスのコンフィグレーションであるため、ノードＢ〜Ｄにおいても従来と同様のシーケンスによってノードＩＤが設定される。このため、図１７（ａ）に示すように、ノードＤ，Ｃ，Ｂ，Ａ１の順番でノードＩＤが「０」、「１」、「２」、「３」と設定される。
【０１１３】
次に、ノイズなどに起因してバスリセットが発生した場合の動作を説明する。
例えばノードＢ，Ｃ間を接続するバスケーブル１ｂに静電気などのノイズが乗って、ノードＢ，Ｃ間で同期喪失が検出されると、バスリセットが発生され、バスのコンフィグレーションが開始される。詳述すると、上記バスリセット後のツリー識別フェーズにおいて図１７（ｂ）に示すツリー状のトポロジが形成され、電源投入順序や接続形態などに応じて任意のノード（ここでは、ノードＢ）がルートノードに決定される。すなわち、本動作例では、トポロジの接続形態はバスリセット前（図１７（ａ）参照）と同じであるが、ルートノードがノードＡ１からノードＢに変わっている。そして、その後の自己識別フェーズにおいて各ノードＡ１，Ｂ〜ＤのノードＩＤが自動的に割り当てられる。以下に、このノードＩＤの設定処理について詳述する。
【０１１４】
図１７（ｂ）に示すように、はじめにグラント信号を受信した葉のノードＡ１からノードＩＤの設定（セルフＩＤパケットＳＰａの送信）が実行される。このとき、ノードＡ１では、現在のセルフＩＤカウント値Ｑ（＝０）が物理ＩＤ番号ＰＩＤとしてパケット生成部３７ａに出力される。そして、この物理ＩＤ番号ＰＩＤ（＝０）を含むセルフＩＤパケットＳＰａがノードＡ１からブロードキャスト送信される。これにより、ノードＡ１のノードＩＤが「０」に確定される。
【０１１５】
このセルフＩＤパケットＳＰａを受信したノードＤの制御部４２は、装置数Ｄｅｖをインクリメントし（図７のステップＳ１１）、上記セルフＩＤパケットＳＰａから抽出した第１識別番号ＩＤ１（＝０）と自身の第２識別番号ＩＤ２（＝０）が一致するか否かを判定する（ステップＳ１２）。ここでは、両者が一致するため（ステップＳ１２でＹＥＳ）、制御部４２は、同一フラグｓａｍｅを「０」に設定する（ステップＳ１７）。続いて、制御部４２は、送信完了フラグＴＸＥが「０」であり（ステップＳ１８でＮＯ）、第３識別番号ＩＤ３（＝４）と第１識別番号ＩＤ１（＝１）とが不一致であるため（ステップＳ１４でＮＯ）、セルフＩＤカウント値ＱをインクリメントしてステップＳ４に戻る。一方、他のノードＢ，Ｃは、ステップＳ１０〜Ｓ１５の処理を実行する。これにより、ノードＢ〜ＤにおけるセルフＩＤカウント値Ｑが「２」になる（ステップＳ１５）。
【０１１６】
続いて、次の順番のノードＤにおいてノードＩＤの設定が実行される。このノードＤの制御部４２では、上記ステップＳ１７で同一フラグｓａｍｅが「０」に設定され（ステップＳ７でＹＥＳ）、通常フラグｎｒｍｌが「０」に設定されている（ステップＳ８でＮＯ）。このため、識別番号生成部４０からは第３識別番号ＩＤ３（＝４）が物理ＩＤ番号ＰＩＤとしてパケット生成部３７に出力される（ステップＳ２１）。また、このときレジスタ４６からは「０」である同一フラグｓａｍｅがパケット生成部３７に出力される。そして、図１７（ｂ）に示すように、バスリセット前のノードＩＤと異なる物理ＩＤ番号ＰＩＤ（＝４）と、バスリセット前後でノードＩＤが変更されたことを示す情報（ｓａｍｅ＝０）とがセルフＩＤパケットＳＰによって他のノードＡ１，Ｂ，Ｃに通知される。これにより、ノードＤのノードＩＤが「４」に確定される。
【０１１７】
その後、残りのノードＣ，Ｂでは、自身のセルフＩＤパケットＳＰを送信する前までに、第２識別番号ＩＤ２と一致する第１識別番号ＩＤ１を受信しないため、第２識別番号ＩＤ２が自身のノードＩＤに設定される。すなわち、図１７（ｂ）に示すように、バスリセット前のノードＩＤと同じノードＩＤと、バスリセット前後でノードＩＤが変更されていないことを示す情報（ｓａｍｅ＝１）とがセルフＩＤパケットＳＰによって他のノードに通知される。これにより、ノードＢのノードＩＤがバスリセット前と同じ「２」に確定され、最後にルートノードＡのノードＩＤがバスリセット前と同じ「３」に確定される。
【０１１８】
以上説明したように、ノードＢ，ＣのノードＩＤはバスリセット前と同じノードＩＤに設定され、一部のノードＤと既存のＩＰＣ１０ａを備えるノードＡ１のノードＩＤがバスリセット前後で変更される。このバスリセット前後でノードＩＤが変更されたノードＤからはｓａｍｅ＝０のセルフＩＤパケットＳＰが送信され、ノードＡ１からはｓａｍｅフィールドを有さないセルフＩＤパケットＳＰａが送信される（図８のステップＳ４１でＮＯ）。このため、各ノードＡ１，Ｂ〜Ｄは、上記ノードＡ１，Ｄに対してのみ機器情報の取得や機器情報の確認を行う（ステップＳ４２）。その後、通信の確立処理が完了すると（ステップＳ４３）、データ通信が再開される（ステップＳ４４）。
【０１１９】
このように、既存のノードＡ１とトポロジを構築する場合であっても、その既存のノードＡ１とバスリセット前後でノードＩＤが変更されたノードＤに対してのみ、機器情報の認識処理を実行すれば良いため、データ通信を再開するまでの遅延を最小限に抑えることができる。
【０１２０】
以上説明した実施形態から、図１に示すＩＰＣ１０を備えることにより、第１実施形態の（１）〜（８）の効果に加えて以下の効果を奏することができると言える。
（９）自身のセルフＩＤパケットＳＰを送信する前までに、第１識別番号ＩＤ１と第２識別番号ＩＤ２とが一致した場合には、その時の第２識別番号ＩＤ２とは異なる第３識別番号ＩＤ３を自身のノードＩＤとして設定するようにした。このため、例えばネットワークシステム内に既存のノードＡ１が混在する場合に、そのノードＡ１が自身の第２識別番号ＩＤ２と同一のノードＩＤを設定した場合であっても、そのノードＩＤとは別のノードＩＤを自身に設定することができる。これにより、ネットワーク内に既存のノードＡ１が混在する場合であっても、重複したノードＩＤが設定されることを好適に抑制することができ、各ノードのノードＩＤを支障なく自動的に割り当てることができる。さらに、この場合には、ノードＩＤの変更されたノードと既存のノードとに対してのみ機器情報の取得・確認処理を実行すればよいため、バスリセット後からデータ通信の再開までの遅延を最小限に抑えることができる。
【０１２１】
（１０）パケット生成部３７で生成されるセルフＩＤパケットＳＰは、既存のセルフＩＤパケットＳＰａのrsvフィールドの一部をsameフィールドに置換しているが、そのデータフォーマットは既存のセルフＩＤパケットＳＰａのそれと略同一である。このため、そのセルフＩＤパケットＳＰを受信するノードが既存のＩＰＣ１０ａしか備えていなくとも、そのノードとの間で支障なくセルフＩＤパケットＳＰの転送を行うことができる。
【０１２２】
（他の実施形態）
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記各実施形態では、直前のトポロジにおけるノードの総数を示す装置数Ｄｅｖを第３識別番号ＩＤ３に設定したが、他のノードに設定されたノードＩＤと重複しない値であれば特に制限されない。例えばノードＩＤの最大値（＝６２）を第３識別番号ＩＤ３に設定するようにしてもよい。この場合には、ステップＳ１６の処理は、第３識別番号ＩＤ３の値をデクリメントする処理に変更する。また、この場合には、ステップＳ１１（図７参照）の処理を省略してもよい。
【０１２３】
・上記各実施形態におけるステップＳ１４，Ｓ１６（図７参照）の処理を省略してもよい。
・上記各実施形態では、自身のセルフＩＤパケットＳＰを送信する前までに、第１識別番号ＩＤ１と自身の第２識別番号ＩＤ２とが一致した場合に、第２識別番号ＩＤ２とは異なる第３識別番号ＩＤ３を自身のノードＩＤに設定するようにした。これに限らず、例えば自身のセルフＩＤパケットＳＰを送信する前までに、第１識別番号ＩＤ１と自身の第２識別番号ＩＤ２とが一致した場合に、リセット時と同様のコンフィグレーションを実行するようにしてもよい。
【０１２４】
・上記各実施形態における識別番号生成部４０の内部構成は図１の回路に限定されない。
・上記各実施形態における同一フラグｓａｍｅの情報を、セルフＩＤパケットＳＰとは別のパケットによって他のノードに通知するようにしてもよい。
【０１２５】
・上記各実施形態では、１つのＩＰＣ１０に２つのポート回路２０ａ，２０ｂを設けるようにしたが、ポート回路を３つ以上設けるようにしてもよい。
・上記各実施形態におけるネットワーク内のノード数に特に制限はない。
【０１２６】
・上記実施形態では、ノードＡ〜ＧをＩＥＥＥ１３９４規格に準拠した装置に具体化したが、これに限らず、例えばＩＤＢ−１３９４規格やＵＳＢ規格に準拠した装置に具体化してもよい。
【符号の説明】
【０１２７】
Ａ〜Ｇ  ノード（通信装置）
１ａ〜１ｃ  バスケーブル
１０  ＩＰＣ
３０  物理層制御回路
３７  セルフＩＤパケット生成部
４０  識別番号生成部
４１  抽出部
４２  制御部
４３〜４７  レジスタ
４８，４９  選択回路
【図１】
0005618805.tif 000002
【図２】
0005618805.tif 000003
【図３】
0005618805.tif 000004
【図４】
0005618805.tif 000005
【図５】
0005618805.tif 000006
【図６】
0005618805.tif 000007
【図７】
0005618805.tif 000008
【図８】
0005618805.tif 000009
【図９】
0005618805.tif 000010
【図１０】
0005618805.tif 000011
【図１１】
0005618805.tif 000012
【図１２】
0005618805.tif 000013
【図１３】
0005618805.tif 000014
【図１４】
0005618805.tif 000015
【図１５】
0005618805.tif 000016
【図１６】
0005618805.tif 000017
【図１７】
0005618805.tif 000018