(57)【特許請求の範囲】
【請求項１】
少なくとも、第１のレジスタを有するネットワークプロトコルスタックの第１の下位層、該第１の下位層を制御する前記ネットワークのプロトコルスタックの第１の上位層、およびネットワークを介して接続された特定の末端ノードが備える前記ネットワークのプロトコルスタックの第１の下位層を制御する前記ネットワークのプロトコルスタックの第２の上位層を含む階層構造を有したノードを構成し、前記第１の下位層は前記第１のレジスタにストアされたデータに基づいて制御される通信装置であって、
前記第１の下位層は、ネットワークを介して他のノードと信号の授受を行い第１の命令と第２の命令とを受信する通信手段を含み、
前記第１の上位層は、前記第１の下位層が他のノードからネットワークを介して前記第１の命令を受け取ったことに応じて第１の制御信号を生成して該第１の制御信号を前記第１のレジスタに書き込む第１の下位層制御手段を含み、
ネットワークを介して接続された末端ノードにおいて保持されている該末端ノードの管理状態を表す管理情報を前記ネットワーク経由にて読み取る管理情報読取手段と、
前記読み取った管理情報に他のノードの識別情報が含まれていない時、自機の識別情報を前記末端ノードの管理情報保持領域に前記ネットワーク経由にて書き込む管理情報書込手段とを有し、
前記管理情報書込手段により自機の識別情報が管理情報の一部として末端ノードに書き込まれたとき、前記通信装置は該末端ノードの上位層の機能を代行するものとして動作し、
前記第２の上位層は、他のノードからネットワークを介して前記第２の命令を受け取ったことに応じて第２の制御信号を生成し、該第２の制御信号を前記末端ノードの第２の下位層が有する第２のレジスタにネットワークを介して書き込む末端ノード制御手段を備え、前記末端ノードの上位層の機能を代行し、ネットワークを介して前記末端ノードの前記ネットワークプロトコルスタックの第２の下位層の実行制御を行う統括ノードとして機能することを特徴とする通信装置。
【請求項２】
さらに、ネットワークを介して他の統括ノードから前記末端ノードに関する管理許可要求を受信する要求受信手段と、
前記受信した要求に応答して、管理許可又は拒絶レスポンスを前記他の統括ノードにネットワーク経由で返答する返答手段と、
前記他の統括ノードに管理許可を返答した時は、前記末端ノードの機能の代行を一時的に停止する停止手段とを有する請求項１記載の通信装置。
【請求項３】
さらに、前記返答手段が前記他の統括ノードに管理許可を返答した後に、当該他の統括ノードに対して前記特定の末端ノードの管理権の返還要求を行う返還要求手段を有する請求項２記載の通信装置。
【請求項４】
前記返答する管理許可は、一時的な許可又は完全な許可のいずれか１つである請求項２又は３記載の通信装置。
【請求項５】
さらに、前記読み取った管理情報が他の統括ノードの識別情報を含む時、該他の統括ノードに対して前記特定の末端ノードに関する管理許可の要求を行う要求手段を有し、
前記管理情報書込手段は、前記他の統括ノードから管理許可を受信した時、自機の識別情報を末端ノードに書き込む請求項１〜４のいずれか１項に記載の通信装置。
【請求項６】
前記受信した管理許可が一時的なものであった場合、前記管理情報書込み手段は、前記末端ノードの管理情報保持領域内の前記他の統括ノードの識別情報が書き込まれていた領域とは異なる領域に自機の識別情報を書き込む請求項５記載の通信装置。
【請求項７】
前記受信した管理許可が完全なものであった場合、前記管理情報書込手段は、前記末端ノードの管理情報保持領域内の前記他の統括ノードの識別情報が書き込まれていた領域に自機の識別情報を上書きする請求項５又は６記載の通信装置。
【請求項８】
さらに、前記読み取った管理情報が他の統括ノードの識別情報を含む場合、当該他の統括ノードが前記末端ノードを管理中であるか否かを確認する確認手段を有し、
前記管理情報書込手段は、前記他の統括ノードが前記末端ノードを管理中でない場合に、前記末端ノードに自機の管理情報を書き込む請求項１〜７のいずれか１項に記載の通信装置。
【請求項９】
前記確認手段は、前記管理情報が他の統括ノードの識別情報を含む場合、所定の時間間隔で繰り返し問い合わせを行う請求項８記載の通信装置。
【請求項１０】
さらに、前記管理情報に基づいて前記特定の末端ノードに関する一時的な管理が可能か否かを判定する判定手段を有し、
前記管理情報書込手段は、一時的な管理が可能とされた場合に、前記末端ノードの管理情報保持領域内の前記他の統括ノードの識別情報が書き込まれていた領域とは異なる領域に自機の識別情報を書き込み、一時的な管理が不可能であるとされた場合は、識別情報の書き込みを行わない請求項８又は９記載の通信装置。
【請求項１１】
さらに、前記特定の末端ノードの代理として機能する時、当該特定の末端ノードの機能に関する情報を保存する保存手段を有する請求項１〜１０のいずれか１項に記載の通信装置。
【請求項１２】
ネットワークに接続された末端ノードと統括ノードとを含んで構成されるネットワークシステムであって、
前記末端ノード及び前記統括ノードは、前記ネットワークのプロトコルスタックの下位層であって、指示を生成する他のノードとネットワークを介して信号の授受を行う通信手段と、前記下位層の動作を制御するデータを記憶するレジスタとをそれぞれ有し、
前記末端ノードは、当該末端ノードの管理状態を表す管理情報を保持し、前記統括ノードがネットワークを介して管理情報の読み取り及び書込みが可能な管理情報保持手段を有し、
前記統括ノードは、前記ネットワークのプロトコルスタックの第１の上位層であって、当該統括ノードの下位層が他のノードから受け取った第１の命令に応じて第１の制御データを生成し、当該統括ノードの下位層の前記レジスタに書き込む統括ノード下位層制御手段とを含む第１の上位層と、前記ネットワークを介して前記末端ノードの管理情報保持手段から管理情報を読み取る管理情報読取手段と、前記ネットワークを介して前記末端ノードの管理情報保持手段へ当該統括ノードの識別情報を管理情報の一部として書き込む書込手段と、前記ネットワークのプロトコルスタックの第２の上位層であって、当該統括ノードの下位層が他のノードから受け取った第２の命令に応じて第２の制御データを生成し、当該末端ノードの下位層の前記レジスタに書き込む末端ノード下位層制御手段とを含む第２の上位層とを有し、
前記統括ノードは、前記管理情報書込手段が前記末端ノードの前記管理情報保持手段へ当該統括ノードの識別情報を管理情報の一部として書き込んだ場合に、前記の第２の上位層により前記末端ノードの前記ネットワークのプロトコルスタックの上位層を代行するノードとして作動することを特徴とするネットワークシステム。
【請求項１３】
前記ネットワークは、さらに他の統括ノードを含んで構成され、
前記管理情報は、前記末端ノードの上位層を代行している統括ノードを表す第１の情報と一時的管理に関する第２の情報とを含み、
前記第２の情報が当該末端ノードが他の統括ノードによって一時的に管理されていることを示す時は、前記他の統括ノードが前記統括ノードによる当該末端ノードの上位層の機能の代行をさらに代替しており、
前記他の統括ノードは、前記ネットワークのプロトコルスタックの第３の上位層であって、当該他の統括ノードの下位層が、他のノードから受け取った第３の命令に応じて第３の制御データを生成し、当該他の統括ノードの下位層のレジスタに書き込む統括ノード下位層制御手段とを含む第３の上位層と、前記ネットワークを介して前記末端ノードの管理情報保持手段から管理情報を読み取る管理情報読取手段と、前記ネットワークを介して前記末端ノードの管理情報保持手段へ当該他の統括ノードの識別情報を管理情報の一部として書き込む書込手段と、前記ネットワークのプロトコルスタックの第４の上位層であって、当該他の統括ノードの下位層が他のノードから受け取った第４の命令に応じて第４の制御データを生成し、当該末端ノードの下位層の前記レジスタに書き込む末端ノード下位層制御手段とを含む第４の上位層とを有することを特徴とする請求項１２記載のネットワークシステム。
【請求項１４】
前記管理情報は、他の統括ノードによる一時的な管理が可能であるか否かを示すフラグを含む請求項１２又は１３記載のネットワークシステム。
【請求項１５】
前記管理情報は、当該末端ノードが前記他の統括ノードにより一時的に管理されているか否かを示すフラグを含む請求項１２〜１４のいずれか１項に記載のネットワークシステム。
【請求項１６】
前記管理情報は、当該末端ノードの上位層の機能代行している統括ノードをさらに代替する前記他の統括ノードの識別情報を含む請求項１２〜１５のいずれか１項に記載のネットワークシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、統括ノードと末端ノードを持つ通信装置に関し、より詳しくは、他のノードを管理することが出来る統括ノードと、該統括ノードによって管理される末端ノードに関する。
【０００２】
【従来の技術】
大容量高速転送が可能なシリアルインターフェイスの規格として、ＩＥＥＥ１３９４が知られている。このＩＥＥＥ１３９４規格に準拠したインターフェイス又は該インターフェイスを有する機器（以下、まとめてＩＥＥＥ１３９４デバイスと呼ぶ）は、それぞれが１つのノードとしてハードウェアからなるＩＥＥＥ１３９４バスプロトコル（下位層）と、その上にデバイスのコントロールやアイソクロナス転送のコントロールなどのプロトコル（上位層）をソフトウェアで実装している。
【０００３】
図１２は、ｍＬＡＮ（商標）上位層を実装した一般的なＡＶ（オーディオ・ビジュアル）装置のプロトコルスタックの一例を表す概念図である。ｍＬＡＮとは、ＩＥＥＥ１３９４規格に準拠し、その上位に位置するアプリケーションで、音楽のためのデジタルネットワークシステムである。
【０００４】
下位層は、例えば、物理層（Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ）、リンク層（Ｌｉｎｋ  Ｌａｙｅｒ）、トランザクション層（Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ）及びバス管理（Ｓｅｒｉａｌ  Ｂｕｓ  Ｍａｎａｇｅｍｅｎｔ）の各層を含んで構成される。
【０００５】
物理層では、物理的・電気的なインターフェイスが規定されている。物理層は、一般的にハードウェアで構成されている。
リンク層では、サブアクションと呼ばれる一方向の転送サービス、及びパケットの送受信に関するサービス（Ｐａｃｋｅｔ  Ｈａｎｄｌｅｒ）が提供される。リンク層も、物理層と同様、一般的にはハードウェアで構成される。リンク層では、例えば、アシンクロナス（非同期）転送（Ａｓｙｎｃｒｏｎｏｕｓ  Ｔｒａｎｓｍｉｓｓｉｏｎ）、及びアイソクロナス転送（Ｉｓｏｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｍｉｓｓｉｏｎ）に関するサービスが提供される。
【０００６】
また、特に、アイソクロナス転送については、オーディオ信号やビデオ信号等の高速な処理を必要とする信号を扱うので、ハードウェアであるリンク層で、全てのサービスを提供している。
【０００７】
トランザクション層では、アシンクロナス転送に関する処理が行われる。トランザクションとは、要求−応答型のデータ転送であり、読み込み（Ｒｅａｄ）トランザクション、書き込み（Ｗｒｉｔｅ）トランザクション、ロック（Ｌｏｃｋ）トランザクションの三種類がある。
【０００８】
読み込みトランザクションは、ターゲットの特定アドレス空間からデータの読み出しを行うためのトランザクションであり、書き込みトランザクションは、ターゲットの特定アドレス空間へのデータの書き込みを行うためのトランザクションである。ロックトランザクションは、参照データに基づき、ターゲット上の特定アドレス空間のデータを更新するためのトランザクションである。
【０００９】
バス管理は、バス上の資源を集中的に管理するためのモジュールである。バス管理では、電源供給の管理、トポロジーマップとスピードマップの管理、アイソクロナス・リソースの管理等が行われる。
【００１０】
上位層は、下位層及びノード全体を管理するためのソフトウェアであり、例えば、１３９４ＡＶプロトコル（ＩＥＣ−６１８８３）、及びｍＬＡＮ上位層により構成されている。
【００１１】
１３９４ＡＶプロトコルでは、アイソクロナス・パケットのデータ内容を表現するためのＣＩＰ（Ｃｏｍｍｏｎ  Ｉｓｏｃｈｒｏｎｏｕｓ  Ｐａｃｋｅｔ）フォーマット、仮想的な「プラグ」を定義してコネクションの管理を行うためのＣＭＰ（Ｃｏｎｎｅｃｔｉｏｎ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）、ＩＥＥＥ１３９４バスに接続される他の機器を管理するためのＦＣＰ（Ｆｕｎｃｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）等が定義されている。
【００１２】
ｍＬＡＮ上位層は、ＩＥＥＥ１３９４規格上でオーディオ／音楽情報の転送を行うためのプロトコル階層である。ｍＬＡＮ上位層は、オーディオ／音楽情報転送プロトコルとコネクション管理プロトコルから構成されており、どちらのプロトコルも１３９４ＡＶプロトコルに準拠している。
【００１３】
オーディオ／音楽情報転送プロトコルは、ＣＩＰの定義にオーディオ／音楽情報の転送のためのフォーマットを追加するものである。コネクション管理プロトコルは、ＣＭＰをインテリジェント化し、各ノード上での自律的なコネクション管理を行うためのプロトコルである。
【００１４】
【発明が解決しようとする課題】
これら上位層及び下位層は、その機能に多少の差はあっても、ＩＥＥＥ１３９４バスに接続される全てのＩＥＥＥ１３９４デバイスに実装されている。
【００１５】
上位層は、下位層に比べて複雑であるため、上位層を実装するために必要なハードウェア資源が下位層に比べて多くなってしまう。このため、全てのＩＥＥＥ１３９４デバイスに、上位層を実装すると製造コストが上がってしまう。
【００１６】
また、上位層は、下位層に比べてユーザインターフェイスに関係する場合が多いため、ユーザからの改善要求をフィードバックする機会が多くなり、新しい仕様に容易に変更できる構造が望ましいが、全てのＩＥＥＥ１３９４デバイスの上位層を、容易にアップグレードできる構造にすると製造コストを上げる要因になってしまう。
【００１７】
本出願と同一出願人による特許出願２００１−２２０８９５号の実施例の欄では、上位層を持たない末端ノードを他の統括ノードが代理することが提案されている。特許出願２００１−２２０８９５号の発明では、末端ノードの記憶領域に上位層を代理すべき統括ノードのＧＵＩＤが書き込まれる。これにより他の一般ノードから統括ノードを通した末端ノードの機能が使えるようになる。
【００１８】
ところが、上記発明によれば、記憶領域に書き込まれたＧＵＩＤを持つ統括ノードが何らかの理由で応対しなくなってしまうと、他の一般ノードは末端ノードの機能を使用することができなくなってしまう。
【００１９】
また、より新しいバージョンを持つ統括ノードがネットワークに参加したときや、別の統括ノードが代理したほうが末端ノードの機能をより有効に活用できる場合などに、現在他の統括ノードが代理している末端ノードを別の統括ノードが使用することが出来なかった。
【００２０】
本発明の目的は、製造コストをおさえたＩＥＥＥ１３９４規格に準拠した機器を提供することである。
また、本発明の他の目的は、他のノードを管理することができるＩＥＥＥ１３９４規格に準拠した機器を提供することである。
【００２１】
また、本発明のさらに他の目的は、他のノードが管理しているノードを一時的に管理することが出来るＩＥＥＥ１３９４規格に準拠した機器を提供することである。
【００２２】
本発明の一観点によれば、少なくとも、第１のレジスタを有するネットワークプロトコルスタックの第１の下位層、該第１の下位層を制御する前記ネットワークのプロトコルスタックの第１の上位層、およびネットワークを介して接続された特定の末端ノードが備える前記ネットワークのプロトコルスタックの第１の下位層を制御する前記ネットワークのプロトコルスタックの第２の上位層を含む階層構造を有したノードを構成し、前記第１の下位層は前記第１のレジスタにストアされたデータに基づいて制御される通信装置は、前記第１の下位層が、ネットワークを介して他のノードと信号の授受を行い第１の命令と第２の命令とを受信する通信手段を含み、前記第１の上位層は、前記第１の下位層が他のノードからネットワークを介して前記第１の命令を受け取ったことに応じて第１の制御信号を生成して該第１の制御信号を前記第１のレジスタに書き込む第１の下位層制御手段を含み、ネットワークを介して接続された末端ノードにおいて保持されている該末端ノードの管理状態を表す管理情報を前記ネットワーク経由にて読み取る管理情報読取手段と、前記読み取った管理情報に他のノードの識別情報が含まれていない時、自機の識別情報を前記末端ノードの管理情報保持領域に前記ネットワーク経由にて書き込む管理情報書込手段とを有し、前記管理情報書込手段により自機の識別情報が管理情報の一部として末端ノードに書き込まれたとき、前記通信装置は該末端ノードの上位層の機能を代行するものとして動作し、前記第２の上位層は、他のノードからネットワークを介して前記第２の命令を受け取ったことに応じて第２の制御信号を生成し、該第２の制御信号を前記末端ノードの第２の下位層が有する第２のレジスタにネットワークを介して書き込む末端ノード制御手段を備え、前記末端ノードの上位層の機能を代行し、ネットワークを介して前記末端ノードの前記ネットワークプロトコルスタックの第２の下位層の実行制御を行う統括ノードとして機能することを特徴とする。
【００２３】
本発明の他の観点によれば、ネットワークに接続された末端ノードと統括ノードとを含んで構成されるネットワークシステムは、前記末端ノード及び前記統括ノードが、前記ネットワークのプロトコルスタックの下位層であって、指示を生成する他のノードとネットワークを介して信号の授受を行う通信手段と、前記下位層の動作を制御するデータを記憶するレジスタとをそれぞれ有し、前記末端ノードは、当該末端ノードの管理状態を表す管理情報を保持し、前記統括ノードがネットワークを介して管理情報の読み取り及び書込みが可能な管理情報保持手段を有し、前記統括ノードは、前記ネットワークのプロトコルスタックの第１の上位層であって、当該統括ノードの下位層が他のノードから受け取った第１の命令に応じて第１の制御データを生成し、当該統括ノードの下位層の前記レジスタに書き込む統括ノード下位層制御手段とを含む第１の上位層と、前記ネットワークを介して前記末端ノードの管理情報保持手段から管理情報を読み取る管理情報読取手段と、前記ネットワークを介して前記末端ノードの管理情報保持手段へ当該統括ノードの識別情報を管理情報の一部として書き込む書込手段と、前記ネットワークのプロトコルスタックの第２の上位層であって、当該統括ノードの下位層が他のノードから受け取った第２の命令に応じて第２の制御データを生成し、当該末端ノードの下位層の前記レジスタに書き込む末端ノード下位層制御手段とを含む第２の上位層とを有し、前記統括ノードは、前記管理情報書込手段が前記末端ノードの前記管理情報保持手段へ当該統括ノードの識別情報を管理情報の一部として書き込んだ場合に、前記の第２の上位層により前記末端ノードの前記ネットワークのプロトコルスタックの上位層を代行するノードとして作動することを特徴とする。
【００２６】
【発明の実施の形態】
図１は、本発明の実施例によるＩＥＥＥ１３９４バス１の一例を表すブロック図である。
【００２７】
本発明の実施例によるＩＥＥＥ１３９４バス１は、例えば、上位層及び下位層を実装する一般ノード２ａ及び一般ノード２ｂ、上位層を持たない末端ノード３ａ、上位層及び下位層及び他のノード（末端ノード３ａ、３ｂ）の上位層を実装する統括ノード４（４ａ及び４ｂ）をＩＥＥＥ１３９４ケーブルで接続することにより構成される。
【００２８】
一般ノード２ａ及び２ｂは、ＩＥＥＥ１３９４インターフェイスを有する電子楽器、音響機器、ＡＶ機器、パーソナルコンピュータ、又は各種外部記憶装置等のいずれか１つである。一般ノード２ａ及び２ｂは、それぞれ上位層Ａ、下位層Ａ、上位層Ｅ、下位層Ｅを実装している。
【００２９】
末端ノード３ａは、ＩＥＥＥ１３９４インターフェイスを有する電子楽器、音響機器、ＡＶ機器、パーソナルコンピュータ、又は各種外部記憶装置等のいずれか１つであり、例えば、パワードスピーカ等である。末端ノード３ａは、上位層を実装しておらず、下位層Ｂのみを実装している。末端ノード３ａは、上位層を実装していないので、単体では、一般ノード２ａ又は２ｂと上位層で定義されるプロトコルによる正常な通信を行うことが出来ない。
【００３０】
このように、末端ノード３ａは、上位層を実装していないので、通常上位層で処理される１３９４ＡＶプロトコルに基づくコマンドやｍＬＡＮ規格に基づくコマンドを単体で処理することは出来ないが、各種トランザクションやアイソクロナス転送などは下位層に実装されているので、単体で処理することが出来る。
【００３１】
例えば、末端ノード３ａが、パワードスピーカである場合は、発音するための音声信号等は、通常アイソクロナス転送により送信されるので、下位層だけで処理することが出来る。一方、受信チャンネル等のコネクションの設定、ボリュームコントロールなどは、通常、上位層によりコマンドが受け付けられ、該コマンドに対応する機能レジスタ（下位層のハードウェアレジスタ）に書き込みが行われるので、下位層しか持たない末端ノード３ａ単体では処理することが出来ない。
【００３２】
末端ノード３ａは、自ノードが末端ノードであって、それを統括するノードに必要な上位層の種類を特定するＩＤを、後述のＣＳＲ（Ｃｏｎｔｒｏｌ  ａｎｄＳｔａｔｕｓ  Ｒｅｇｉｓｔｅｒｓ）メモリに記録している。また、現在、自ノードを統括している統括ノードのＧＵＩＤ（Ｇｒｏｂａｌ Ｕｎｉｑｕｅ Ｉｄｅｎｔｉｆｉｅｒ）をＣＳＲメモリに記録する。
【００３３】
末端ノード３ｂは、末端ノード３ａとほぼ同様の構成であるが、上位層Ｄ’及び下位層Ｄを実装している。末端ノード３ｂは、実装している上位層Ｄ’の機能を停止して、統括ノード４の上位層Ｄにより管理することができる。なお、末端ノード３ｂの上位層Ｄ’を、一部の機能しか管理しないものにして、不足する機能を統括ノード４の上位層Ｄにより管理してもよい。実装している上位層Ｄ’の機能は、外部からのコマンドにより実行又は停止することが出来る。
【００３４】
末端ノード３ｂも、末端ノード３ａと同様に、自ノードが末端ノードであって、それを統括するノードに必要な上位層の種類を特定するＩＤを、ＣＳＲメモリに記録している。また、実装している上位層Ｄ’の機能を停止する場合には、現在、自ノードを統括している統括ノードのＧＵＩＤをＣＳＲメモリに記録する。
【００３５】
統括ノード４ａ及び４ｂ（以下、統括ノード４ａ及び４ｂの双方又はいずれか１つを指して統括ノード４と呼ぶ）は、ＩＥＥＥ１３９４インターフェイスを有する電子楽器、音響機器、ＡＶ機器、パーソナルコンピュータ、又は各種外部記憶装置等のいずれか一つであり、例えば外部記憶装置を有するパーソナルコンピュータにより構成される。統括ノード４は、下位層Ｃ（統括ノード４ｂの場合は下位層Ｆ）と、自身の上位層Ｃ（統括ノード４ｂの場合は上位層Ｆ）に加えて、末端ノード３ａ及び３ｂの下位層を管理するための上位層Ｂ及びＤを実装している。これらの上位層Ｂ及びＤが、末端ノード３ａ及び３ｂの上位層の代理をして、一般ノード２ａ又は２ｂ等と、上位層で定義されるプロトコルによる通信を行うことが出来る。
【００３６】
統括ノード４は、自己が統括することが出来る末端ノードのＧＵＩＤを、該末端ノードを管理するためのソフトウェア（上位層）と関連付けて記録している。
図２は、本実施例による末端ノード３ａ（又は３ｂ）のＣＳＲメモリの一例を表す概念図である。
【００３７】
末端ノード３ａ（又は３ｂ）のＣＳＲメモリは、例えば、ＣＳＲコアレジスタ、シリアルバスレジスタ、Ｙアドレス情報を有するコンフィグＲＯＭ、及びＡＶ／Ｃ領域とＹ領域を有する機器固有レジスタを含んで構成される。
【００３８】
ＣＳＲコアレジスタ及びシリアルバスレジスタは周知のＩＥＥＥ１３９４デバイスのものと同様の構成である。
Ｙアドレス情報は、他のノード（特に統括ノード）に対して、Ｙ領域に含まれるリードオンリ領域、リードライト領域、及びリードライト領域内の統括ノードＩＤ記憶領域、下位層機能レジスタ領域、その他領域のアドレスを公開している。
【００３９】
統括ノードＩＤ記憶領域は、記憶エリアＭ１〜Ｍ４に分けられる。
記憶領域Ｍ１には、自機（末端ノード）を管理している統括ノードのＧＵＩＤが記憶される。自機（末端ノード）を管理している統括ノードがない場合には値「０」が記憶される。初期値は「０」である。また、電源オフ時にも、記憶エリアＭ１の内容を保持するようにしておくことが好ましい。
【００４０】
記憶エリアＭ２は、記憶領域Ｍ１にＧＵＩＤが記憶された統括ノード以外の統括ノードによる一時的な管理が可能か否かを示すフラグである。一時的な管理が可能な場合は、値「１」を書き込み、不可能な場合には値「０」を書き込む。記憶領域Ｍ１にＧＵＩＤが記憶された統括ノード以外の統括ノードによる一時的な管理は、例えば、記憶領域Ｍ１にＧＵＩＤが記憶された統括ノードが、電源オフ状態又は非アクティブ状態であるときや、同一バス上に存在しないときなどに、可能となる。
【００４１】
記憶エリアＭ３は、現在、自機（末端ノード）が、記憶領域Ｍ１にＧＵＩＤが記憶された統括ノード以外の統括ノードにより一時的な管理を受けているか否かを示すフラグである。一時的な管理を受けている時は、値「１」が書き込まれる。受けていない場合は、値「０」が書き込まれる。
【００４２】
記憶エリアＭ４には、自機（末端ノード）を一時的に管理している統括ノード（以下、一時統括ノードと呼ぶ）のＧＵＩＤを記憶する。一時統括ノードがない場合は、値「０」が記憶される。初期値は「０」である。また、電源オフ時には、クリアされることが好ましい。
【００４３】
記憶エリアＭ１又はＭ４にＧＵＩＤを記録されたノード（統括ノード）は、このＹアドレス情報を読み込むことにより、末端ノードを管理するために必要なレジスタのアドレスを検出することが出来る。
【００４４】
このように、記憶エリアＭ１又はＭ４に自機を管理している統括ノードのＧＵＩＤを記憶して、それを公開することにより、現在管理している統括ノードを知ることが出来、統括ノードの競合を避けることが出来る。
【００４５】
また、記憶エリアＭ２又はＭ３に、現在の末端ノードの状態（管理を受けているか否か）を、記録して公開することにより、他のノードから簡単に現在の状態を知ることが出来る。
【００４６】
また、記憶エリアＭ１又はＭ４にＧＵＩＤを記録されたノードのみが機器固有レジスタに対する書き込みを出来るように設定してもよい。このようにすると、記憶エリアＭ１又はＭ４にＧＵＩＤを記録されていない統括ノードが同一バス上に存在する場合にも、統括ノード同士が競合する事を防止できる。
【００４７】
また、統括ノードＩＤ記憶領域は、Ｙ領域内に用意されているが、統括ノードから読み書き可能な領域中に用意されていればよい。
図３は、本実施例による統括ノード４のＣＳＲメモリの一例を表す概念図である。
【００４８】
統括ノード４のＣＳＲメモリは、例えば、ＣＳＲコアレジスタ、シリアルバスレジスタ、コンフィグＲＯＭ、及びＡＶ／Ｃ領域を有する機器固有レジスタを含んで構成される。
【００４９】
ＣＳＲコアレジスタ及びシリアルバスレジスタは周知のＩＥＥＥ１３９４デバイスのものと同様の構成であり、その他の構成についても図２の末端ノード３ａ（又は３ｂ）のＣＳＲメモリとほぼ同様である。
【００５０】
この統括ノード４のＣＳＲメモリの特徴は、コンフィグＲＯＭ内に自身の情報以外に、管理下にある末端ノードの機能に関する情報を記録していることである。これらの管理下にある末端ノードの機能をコンフィグＲＯＭに追加することにより、他のノードからは、統括ノードが末端ノードの機能を有しているように見える。
【００５１】
図４は、一般ノード２ａと一般ノード２ｂ間の通信を表すブロック図である。
まず、一般ノード２ｂが一般ノード２ａ（送信側）から、上位層Ｅの機能に対応するアドレスに対するコマンド書き込み命令（パケット１）を受信する。次に、一般ノード２ｂ（受信側）の下位層Ｅは、上記書き込み命令に基づき、上位層Ｅの機能に対するアドレスへのコマンド書き込みを実行する。
【００５２】
その後、一般ノード２ｂの上位層Ｅは、書き込み命令（パケット１）を受付け、上記コマンドに対応するレジスタ（機能レジスタ）への書き込み命令を下位層Ｅに対して行う。すなわち、上位層Ｅは、受信したコマンドを解釈し、当該コマンドが管理しようとする機能に対応する下位層Ｅのレジスタ（機能レジスタ）に、当該コマンドの内容に応じた制御データを書き込む。以上により、下位層Ｅは、レジスタに書き込まれた制御データに基づいて一般ノード２ａの送信したコマンドに対応した動作を行うことが出来る。
【００５３】
正常に書き込みが行われたら、一般ノード２ｂの下位層Ｅは、一般ノード２ａに対して、上記書き込み命令が正常に行われたことを示すパケット２を送信する。
【００５４】
このように、上位層を持つノード同士では、上位層を介すことにより、機能レジスタへの書き込みを行い、お互いに他の機器を管理することが出来る。
図５は、本実施例による一般ノード２ａと末端ノード３ａ間の通信を表すブロック図である。なお、この例では統括ノード４がＩＥＥＥ１３９４バス１上に存在しないものとする。
【００５５】
末端ノード３ａは、まず、一般ノード２ａ（送信側）から、上位層の機能に対応するアドレスに対するコマンド書き込み命令（パケット１）を受信する。次に、末端ノード３ａ（受信側）の下位層Ｂは、上記書き込み命令に応じて、書き込みを実行しようとする。しかし、末端ノード３ａには、上位層が実装されていないため、該上位層の機能に対応するアドレスが存在せず、下位層Ｂは、エラー（パケット２）を一般ノード２ａに対して送信する。すなわち、末端ノード３ａには上位層がないので、受信したパケット１に応じたコマンドの書き込みは失敗し、したがって、そのコマンドに応じた下位層Ｂに対する制御が行われることはない。
【００５６】
このように、末端ノード３ａは、上位層の機能に対応するコマンドに対してエラーを帰すので、末端ノード３ａが上位層を実装してないことがわかる。
そこで、本実施例では、図６に示すように統括ノード４が、末端ノード３ａの上位層を実装して、一般ノード２ａとの通信を代理して行う。
【００５７】
図６は、本実施例による統括ノード４を介した一般ノード２ａと末端ノード３ａ間の通信を表すブロック図である。なお、統括ノード４は、後述の末端ノード管理設定処理により、末端ノード３ａを管理するように設定されている。
【００５８】
まず、統括ノード４の下位層Ｃは、一般ノード２ａ（要求元）から、末端ノード３ａの上位層Ｂの機能に対応するアドレスに対するコマンド書き込み命令（パケット１）を受信する。
【００５９】
次に、統括ノード４の下位層Ｃは、該受信した書き込み命令に基づき、上位層Ｂの機能に対応するアドレスに対してコマンドを書き込む。その後、上位層Ｂは、該コマンドで指示された機能に対応する末端ノード３ａ内の下位層Ｂの機能レジスタのアドレスを検出し、該検出したアドレスに対する該コマンドに応じた制御データの書き込み命令（パケット２）を末端ノード３ａに対して送信する。
【００６０】
その後、末端ノード３ａの下位層Ｂは、受け取った書き込み命令（パケット２）を実行し、すなわち、下位層Ｂの該機能レジスタに相当するアドレスへ該制御データを書き込み、その結果（パケット３）を、統括ノード４に対して送信する。下位層Ｂは、書き込まれた制御データに基づいて、一般ノード２ａが統括ノード４の上位層Ｂに対して送信したコマンドに対応した動作を行う。
【００６１】
末端ノード３ａからの処理結果（パケット３）を受信した統括ノードは、要求の発行元である（コマンドを送ってきた）一般ノード２ａに対して、当初のコマンドに対する応答（パケット４）を送信する。
【００６２】
一般ノード２ａは、統括ノード４からの応答（パケット４）を受信して、処理が正常に行われたことを認識する。
このように、統括ノード４が、本来末端ノードの上位層が果たすべき役割を代理して行い、上位層で処理すべき信号を下位層で処理できるフォーマットで末端ノードに送信してやることにより、上位層を持たない末端ノードに対するコマンドの書き込み等を行うことが出来る。
【００６３】
図７は、本実施例の統括ノード４における末端ノードの管理設定処理を表すフローチャートである。この末端ノード管理設定処理は、バスリセット（新たなノードがバスに接続されたり、これまで接続されていたノードがバスから外される等のトポロジー変化が起きた時に発生する）が実行されるごとに起動される。
【００６４】
ステップＳＡ１では、末端ノード管理設定処理を開始して次のステップＳＡ２に進む。
ステップＳＡ２では、末端ノード管理処理を初期化する。その後、次のステップＳＡ３に進む。
【００６５】
ステップＳＡ３では、管理すべき末端ノードのＧＵＩＤを書き換え可能な記憶装置から読み出す。本実施例の統括ノードには、以下の説明の便宜上、予め管理すべき末端ノードのＧＵＩＤが１つ記録されているものとする。なお、実際には、１つとは限らず、複数である場合もあるし、１つもない場合もある。また、管理すべき末端ノードのＧＵＩＤは、ユーザが入力するようにしてもよい。また、図５に示したように末端ノードに上位層の機能に対応するアドレスに対する書き込み命令を送信し、エラーが帰された末端ノードのＧＵＩＤを末端ノードのコンフィグＲＯＭから読み出すようにしてもよい。管理すべき末端ノードのＧＵＩＤを読み出したら、次のステップＳＡ４に進む。
【００６６】
ステップＳＡ４では、ＩＥＥＥ１３９４バス１に接続されたノードのＧＵＩＤを読み出す。なお、ここでは１つのノードのＧＵＩＤを読み出すが、このステップＳＡ４を繰り返すことにより全てのノードのＧＵＩＤを読み出す。その後、次のステップＳＡ５に進む。
【００６７】
ステップＳＡ５では、ステップＳＡ４で読み込んだＧＵＩＤが、ステップＳＡ３で読み込んだ管理すべき末端ノードのＧＵＩＤと等しいか否かを判断する。ステップＳＡ４で読み込んだＧＵＩＤが、ステップＳＡ３で読み込んだ管理すべき末端ノードのＧＵＩＤと等しい場合は、ＹＥＳの矢印で示すステップＳＡ６に進み、等しくない場合は、ＮＯの矢印で示すステップＳＡ１０に進む。
【００６８】
ステップＳＡ６では、後述する競合整理処理を行う。競合整理処理は、末端ノードの管理について、他の統括ノードとの競合を避けるための処理である。その後、次のステップＳＡ７に進む。
【００６９】
ステップＳＡ７では、ステップＳＡ５で管理すべき末端ノードのＧＵＩＤとＧＵＩＤが一致した末端ノードのコンフィグＲＯＭから、該末端ノードの管理に必要な情報を読み込む。その後、次のステップＳＡ８に進む。
【００７０】
ステップＳＡ８では、ステップＳＡ７で読み込んだ情報に基づき、自機（統括ノード）の上位層内に管理すべき末端ノードに対応するソフトウェアインスタンス（管理する末端ノードのための上位層）を作成する。その後、次のステップＳＡ９に進む。
【００７１】
ここで、末端ノードに対応するソフトウェアインスタンスを作成するというのは、本来末端ノードの上位層が受付けるべきコマンド（例えば、ＡＶ／Ｃコマンド等）を、末端ノードに代わって統括ノードの上位層が受付けることである。すなわち、このステップＳＡ８の処理以降は、統括ノードが、自身の管理する末端ノードに対する他のノードからのコマンドを受付ける状態にする。
【００７２】
ステップＳＡ９では、自身のコンフィグＲＯＭに、末端ノードの機能の情報を追記することで、末端ノードが持つ機能の追記が行われる。このようにすることで、他のノードからは、統括ノードが管理する末端ノードの機能を持っているかのように見せかけることが出来る。その後、次のステップＳＡ１０に進む。
【００７３】
統括ノードのコンフィグＲＯＭには、統括ノードが予め備えている上位層の内、管理する末端ノードのある上位層に対応する機能が記載され、管理する末端ノードの無い上位層に対応する機能は記載されない。
【００７４】
ステップＳＡ１０では、ＩＥＥＥ１３９４バス１に接続されている全てのノードのＧＵＩＤを読み込んだか否かが判断される。全てのノードのＧＵＩＤを読み込んだらＹＥＳの矢印で示すステップＳＡ１１に進む。全てのノードのＧＵＩＤを読み込んでいなければＮＯの矢印で示すステップＳＡ４に戻り、その後の処理を繰り返す。
【００７５】
ステップＳＡ１１では、他のノードに末端ノードを管理していることを認識させるために末端ノード管理設定完了通知を発行する。その後、次のステップＳＡ１２に進み末端ノード管理設定処理を終了する。
【００７６】
なお、このステップＳＡ１１で、バスリセットを発行して、統括ノードと同一のＩＥＥＥ１３９４バス１に接続された他のノードに、統括ノードの上位層に作成されたソフトウェアインスタンスを認識させることにより、あたかも上位層を備えた末端ノード３ａが存在するように認識させるようにしてもよい。
【００７７】
若しくは、統括ノードが末端ノードの機能を持っているように認識させることも出来る。いずれにしても、管理される末端ノードの上位層の機能に対応するコマンドは、統括ノードに対して送信されるようになる。
【００７８】
なお、アイソクロナス転送による通信は、下位層が直接処理することが出来るので、統括ノードを介さずに直接末端ノードに送信する。
以上の末端ノード管理設定処理を行うことにより、統括ノードは、自身が管理している末端ノードの上位層に対するアクセスを全て処理し、必要に応じて対応する末端ノードに対して定められたトランザクションを発行し、末端ノード動作状況を確認又は変更することが出来る。
【００７９】
また、新たな末端ノードがバスに参加した場合、及び、いずれかの末端ノードがバスから外れた場合にも、発生したバスリセットに応じて統括ノードが図７の処理を実行する。そして、新たに参加した末端ノードの機能の記述が該統括ノードのコンフィグＲＯＭに現れ、あるいは、外れた末端ノードの機能の記述が同コンフィグＲＯＭから消える。
【００８０】
図８は、図６に示す通信を行うための各ノードにおける処理の概念の理解を助けるためのフローチャートである。なお、統括ノードにおいて、図７に示す末端ノード管理設定処理が既に行われているものとする。また、図中点線の矢印はパケットの送信を表す。
【００８１】
ステップＳＢ１〜ＳＢ４は要求発行元（図６の一般ノード２ａ）での処理である。
ステップＳＢ１では、要求発行元処理を開始して、次のステップＳＢ２に進む。
【００８２】
ステップＳＢ２では、末端ノードの機能に相当するソフトウェアインスタンス（図６の統括ノード４の上位層Ｂ）に対する要求を送信する。その後、次のステップＳＢ３に進む。なお、ここで送信される要求は、後述するステップＳＢ６で統括ノードにより受信される。
【００８３】
ステップＳＢ３では、後述するステップＳＢ９で統括ノードから送信される末端ノードの処理結果を受信する。その後、次のステップＳＢ４に進み、要求発行元処理を終了する。
【００８４】
ステップＳＢ５〜ＳＢ１０は統括ノード（図６の統括ノード４）での処理である。
ステップＳＢ５では、統括ノード処理を開始して、次のステップＳＢ６に進む。
【００８５】
ステップＳＢ６では、統括ノード上位層内に作成した末端ノードの機能に相当するソフトウェアインスタンス（図６の統括ノード４の上位層Ｂ）に対する要求を受信する。その後、次のステップＳＢ７に進む。
【００８６】
ステップＳＢ７では、末端ノードの機能レジスタに対して書き込み命令を送信する。その後、次のステップＳＢ８に進む。なお、統括ノードは、前述したように、自己の管理下にある末端ノードの機能をコンフィグＲＯＭ内に記憶している。また、統括ノードは、末端ノードを制御するための各種情報（末端ノードの機能に関する情報、その機能に対応した末端ノードの機能レジスタのアドレス等）を統括ノード内のワークメモリに記録している。ここで送信される書き込み命令は後述するステップＳＢ１２で末端ノードによって受信される。
【００８７】
ステップＳＢ８では、後述するステップＳＢ１４で送信される末端ノードにおける処理結果を受信する。その後、次のステップＳＢ９に進む。
ステップＳＢ９では、ステップＳＢ８で受信した末端ノードでの処理結果に基づき、末端ノードでの処理結果を元の要求発行元に送信する。その後、次のステップＳＢ１０に進み統括ノード処理を終了する。
【００８８】
ステップＳＢ１１〜ＳＢ１５の処理は末端ノード（図６の末端ノード３ａ）での処理である。
ステップＳＢ１１では、末端ノード処理を開始して次のステップＳＢ１２に進む。
【００８９】
ステップＳＢ１２では、ステップＳＢ７で統括ノードから送信された機能レジスタに対する書き込み命令を受信し、機能レジスタに書き込む。書き込み命令の送受信及び、書き込み命令に基づく処理は、下位層であるトランザクション層により行われるので、上位層を持たない末端ノードにおいても正常に行うことが出来る。その後、次のステップＳＢ１３に進む。
【００９０】
ステップＳＢ１３では、該機能レジスタに対応する機能を実行する。例えば、機能レジスタに対して一定の値等を書き込む。その後、次のステップＳＢ１４に進む。
【００９１】
ステップＳＢ１４では、統括ノードに対して、該書き込み命令の処理結果を送信する。その後、次のステップＳＢ１５に進み、末端ノード処理を終了する。
図９は、図７のステップＳＡ６で行う競合整理処理を表すフローチャートである。競合整理処理は、例えば、図１に示すように同一バス上に２つ以上の統括ノード（統括ノード４ａ及び４ｂ）が存在し、該２つ以上の統括ノードが１つの末端ノード（末端ノード３ａ）を管理しようとした場合に起こりうる競合を整理するためのものである。
【００９２】
例えば、既にバス上に統括ノード（例えばミキサーなど）が存在する場合に、より高機能のコンピュータ等で構成される別の統括ノードを接続して、既にある統括ノードの変わりに末端ノードを管理する場合である。
【００９３】
また、例えば、末端ノードを管理していた統括ノードが、バスから切断されたり電源オフにされたりした場合に、そのときに発行されるバスリセットにより、他の統括ノードが末端ノードを管理するために行われる。
【００９４】
ステップＳＣ１では、競合整理処理をスタートして、次のステップＳＣ２に進む。
ステップＳＣ２では、管理すべき又は管理を希望する末端ノードの記憶エリアＭ１（図２）を読み込む。その後、次のステップＳＣ３に進む。
【００９５】
ステップＳＣ３では、ステップＳＣ２で読み込んだ記憶エリアＭ１の値が「０」か否かを判断する。記憶エリアＭ１の値が「０」であれば、ＹＥＳの矢印で示すステップＳＣ４に進む。記憶エリアＭ１の値が「０」でなければ、すなわち他の統括ノードのＧＵＩＤが記録されていれば、ＮＯの矢印で示すステップＳＣ５に進む。
【００９６】
ステップＳＣ４では、管理すべき又は管理を希望する末端ノードの記憶エリアＭ１に、自身のＧＵＩＤを書き込む。これにより、他の統括ノードに末端ノードの管理をはじめたことを知らせることが出来る。その後、ステップＳＣ１４に進む。
【００９７】
ステップＳＣ５では、ステップＳＣ２で読み込んだ末端ノードの記憶エリアＭ１のＧＵＩＤをレジスタに書き込む。ここでレジスタに書き込まれたＧＵＩＤは、後述する確認処理において利用される。その後、次のステップＳＣ６に進む。
【００９８】
ステップＳＣ６では、管理すべき又は管理を希望する末端ノードの記憶エリアＭ３（図２）を読み込み、その値が「０」か否かを判断する。記憶エリアＭ３の値が「０」であれば、ＹＥＳの矢印で示すステップＳＣ７に進む。記憶エリアＭ３の値が「０」でなければ、すなわち記憶エリアＭ３の値が「１」であり、他の一時統括ノードに一時的管理を受けている場合は、ＮＯの矢印で示すステップＳＣ１５に進んで、末端ノードの管理をあきらめる。
【００９９】
ステップＳＣ７では、末端ノードの記憶エリアＭ１に記憶されたＧＵＩＤを持つ統括ノードがバス上に存在するか否かを検出する。統括ノードがバス上に存在する場合は、ＹＥＳの矢印で示すステップＳＣ１０に進む。存在しない場合は、ＮＯの矢印で示すステップＳＣ８に進む。
【０１００】
ステップＳＣ８では、末端ノードの記憶エリアＭ２（図２）の値を読み込み、その値が「１」か否かを判断する。記憶エリアＭ２の値が「１」、すなわち末端ノードが一時的な管理の可能な状態にあるときは、ＹＥＳの矢印で示すステップＳＣ９に進む。記憶エリアＭ２の値が「０」、すなわち末端ノードが一時的な管理の不可能な状態にあるときは、ＮＯの矢印で示すステップＳＣ１５に進んで、末端ノードの管理をあきらめる。
【０１０１】
ステップＳＣ９では、末端ノードの記憶エリアＭ３に値「１」を記録するとともに、記憶エリアＭ４（図２）に、自身のＧＵＩＤを書き込み、現在末端ノードが一時統括ノードに管理されていることを他のノードに知らせる。その後、ステップＳＣ１４に進む。
【０１０２】
ステップＳＣ１０では、末端ノードの記憶エリアＭ１に記憶されているＧＵＩＤを持つ統括ノードに対して、末端ノード管理の許可を求める。末端ノードの記憶エリアＭ１に記憶されているＧＵＩＤを持つ統括ノードから、応答があったら、次のステップＳＣ１１に進む。
【０１０３】
この時、末端ノード管理の許可を求められた統括ノードは、要求元の統括ノードに対して末端ノードの管理の許可（一時的な許可又は完全な許可）又は不許可の応答をする。末端ノードの管理を許可する場合には、末端ノード管理の許可を求められる統括ノードは、末端ノードの管理を一時的に停止又は完全に中止する。
【０１０４】
ここで、一時的な許可とは、末端ノードの管理権を完全には放棄せずに、後ほど後述する管理権返還要求処理により末端ノードの管理権の返還を要求する場合に与える許可である。完全な許可とは、許可を求められた統括ノードを装置の入替えで新しいものにする時（新しい装置が要求元の統括ノードとなる場合）等に、要求元の統括ノードに対して、完全に管理権を与え、以降、該末端ノードの管理を行わない場合に与える許可である。
【０１０５】
ステップＳＣ１１では、末端ノードの記憶エリアＭ１に記憶されているＧＵＩＤを持つ統括ノードから、末端ノードの管理許可をもらえたか否かを判断する。管理許可を得られた場合は、ＹＥＳの矢印で示すステップＳＣ１２に進む。管理許可を得られなかった場合は、ＮＯの矢印で示すステップＳＣ１５に進んで、末端ノードの管理をあきらめる。
【０１０６】
ステップＳＣ１２では、末端ノードの記憶エリアＭ１に記憶されているＧＵＩＤを持つ統括ノードから得た末端ノードの管理許可が一時的なものか否かを判断する。管理許可が一時的なものであるなら、ＹＥＳの矢印で示すステップＳＣ９に進み、一時統括ノードとして末端ノードを管理する。管理許可が一時的なものでない場合、すなわち完全な管理権を得た場合には、ＮＯの矢印で示すステップＳＣ１３に進む。
【０１０７】
ステップＳＣ１３では、末端ノードの記憶エリアＭ１に自身のＧＵＩＤを書き込みむとともに、記憶エリアＭ３及びＭ４をクリアする（値「０」を書き込む）。こうすることにより、以降、該末端ノードを管理する統括ノードであることを他のノードに知らせる。その後、次のステップＳＣ１４に進む。
【０１０８】
ステップＳＣ１４では、競合整理処理を終了して図７のステップＳＡ７に戻り、末端ノード管理を行う。なお、このときステップＳＣ５で記憶した末端ノードの記憶エリアＭ１のＧＵＩＤをレジスタから消去するようにするとよい。
【０１０９】
ステップＳＣ１５では、末端ノード管理をあきらめ、次のステップＳＣ１６に進み、競合整理処理を終了して図７のステップＳＡ１１に戻る。
図１０は、統括ノードによる他の統括ノードに対する末端ノードの管理返還要求処理を表すフローチャートである。
【０１１０】
この管理返還要求処理は、例えば、本来、図１の統括ノード４ａが、末端ノード３ａの管理権を持っている場合に、上述の競合整理処理又は後述の確認処理により該管理権を統括ノード４ｂに一時的に与えた場合に、本来の管理権を持つ統括ノード４ａが、統括ノード４ｂに対して、末端ノード３ａの管理権の返還を要求するための処理である。
【０１１１】
ステップＳＤ１では、管理権返還要求処理をスタートして、次のステップＳＤ２に進む。
ステップＳＤ２では、管理権の返還を望む末端ノードの記憶エリアＭ３の値を読み込み、その値が「１」であるか否かを判断する。記憶エリアＭ３の値が「１」である場合、すなわち該末端ノードが一時統括ノードによって管理されている場合には、ＹＥＳの矢印で示すステップＳＤ３に進む。記憶エリアＭ３の値が「０」である場合は、ＮＯの矢印で示すステップＳＤ９に進む。
【０１１２】
ステップＳＤ３では、管理権の返還を望む末端ノードの記憶エリアＭ４のＧＵＩＤを読み込み、そのＧＵＩＤを持つ一時統括ノードに対して、該末端ノードの管理権の返還を要求する。その後、次のステップＳＤ４に進む。
【０１１３】
ステップＳＤ４では、末端ノードの記憶エリアＭ４のＧＵＩＤを持つ一時統括ノードからの応答を受信し、管理権の返還に応じるか否かを判断する。また、応答のない場合は、バス上に統括ノード４ｂがいないものと判断し強制的に返還に応じたものとして処理を行う。管理権の返還に応じる場合は、ＹＥＳの矢印で示すステップＳＤ６に進む。返還のための末端ノード管理の開放処理に時間がかかる等の理由で、管理権の返還に応じない場合には、ＮＯのステップで示すステップＳＤ５に進む。
【０１１４】
ステップＳＤ５では、末端ノードの記憶エリアＭ４のＧＵＩＤを持つ一時統括ノードが、現在末端ノードの管理の開放処理中であるか否かを判断する。処理中であれば、処理の終了する予定時刻、或いは処理終了までの時間を統括ノード４ｂから知らせてもらい、当該時刻まで或いは当該時間待機し、再度一時統括ノードに対して問い合わせを行う。しかし、処理中であっても、その処理が長くかかることが明らかな場合や、提示された時間或いは時刻を過ぎても以前処理中である場合は、ＹＥＳの矢印で示すステップＳＤ１０に進み管理権返還要求処理を一時的に終了する。処理中でない場合や、処理中を指示する応答がない場合は、強制的に管理権を返還させる為にＮＯの矢印で示すステップＳＤ６に進む。
【０１１５】
ステップＳＤ６では、末端ノードの記憶エリアＭ２に値「０」を書き込み、一時管理不可の状態にする。その後、次のステップＳＤ６に進む。
ステップＳＤ７では、末端ノードの記憶エリアＭ３及びＭ４に値「０」を書き込む。その後、次のステップＳＤ８に進む。
【０１１６】
ステップＳＤ８では、末端ノードの記憶エリアＭ２に値「１」を書き込み、再び一時管理可の状態にする。その後、次のステップＳＤ９に進む。
ステップＳＤ９では、前記ステップＳＡ７乃至ＳＡ９の処理を行い、以降末端ノードの管理を行う。その後、次のステップＳＤ１０に進み、管理権返還要求処理を終了する。但し、ステップＳＤ６及びステップＳＤ８の処理は、再び一時管理を他ノードに行わせる事を許可する時以外は省略してもよい。
【０１１７】
図１１は、本実施例の図１に示す統括ノード４ａにおける末端ノード管理中である他の統括ノード４ｂに対する確認処理を表すフローチャートである。この確認処理は、末端ノードを現在管理している統括ノード（末端ノードの記憶エリアＭ１にＧＵＩＤが書き込まれている統括ノード）が、バス上に存在し正常に末端ノードを管理しているか否かを確認するための処理である。なお、各末端ノード毎に同様にこの処理を行う。
【０１１８】
この確認処理を一定間隔で起動することにより、現在末端ノードを管理している統括ノード４ｂが例えばソフトウェアの暴走など、何らかの事情で正常に末端ノードの管理を行えなくなった場合に、現在の統括ノード４ｂに変わり末端ノードを一時的に管理することが出来る。よって、現在末端ノードを管理している統括ノード４ｂに不具合があっても、統括ノード４ａを含めた第３のノードによって、末端ノードの機能を使用することが出来る。
【０１１９】
ステップＳＥ１では、確認処理をスタートして、次のステップＳＥ２に進む。なお、この確認処理は、レジスタに他の統括ノードのＧＵＩＤが記憶されている場合に例えば、１秒間隔等の一定間隔で起動される割り込み処理である。
【０１２０】
ステップＳＥ２では、図９のステップＳＣ５でレジスタに記憶したＧＵＩＤを持つ統括ノードがバス上にいるか否か、すなわち正常に応答するか否かを確認する。バス上に存在する場合は、ＹＥＳの矢印で示すステップＳＥ１２に進み、確認処理を終了する。
ステップＳＥ３からステップＳＥ５までの処理は、それぞれ図９のステップＳＣ２からステップＳＣ４までの処理と同様である。
【０１２１】
ステップＳＥ６の処理は、図９のステップＳＣ６の処理と同様であり、ステップＳＥ７及びステップＳＥ８の処理は、それぞれ図９のステップＳＣ８及びステップＳＣ９の処理と同様である。
【０１２２】
ステップＳＥ９からステップＳＥ１１までの処理は、それぞれ図７のステップＳＡ７からステップＳＡ９までの処理と同様である。その後、ステップＳＥ１２に進み確認処理を終了する。
【０１２３】
なお、ステップＳＥ１１の後に、レジスタに記憶されたＧＵＩＤを消去するようにしてもよい。
以上、本実施例によれば、統括ノードとなるＩＥＥＥ１３９４デバイスにより、ＩＥＥＥ１３９４規格を使った上位層を実装しない機器（末端ノード）を管理することが出来る。
【０１２４】
また、１つの統括ノードにより複数の末端ノードを管理することが出来る。これにより、ユーザインターフェイス等のＩＥＥＥ１３９４規格を使った上位層の更新（「上位プロトコルの更新」だけでなく「バグの修正」や「性能の向上」のために行われる場合も含む）を各機器ごとに行う必要がなく、簡単に行うことが出来る。
【０１２５】
また、本実施例によれば、上位層を統括ノードに実装することにより、ＩＥＥＥ１３９４規格を使った上位層と交換性を保ったまま、上位層のないノードを提供することが出来る。
【０１２６】
また、統括ノードを介することにより、一般ノードに相当するＩＥＥＥ１３９４デバイスからも上位層を持たない末端ノードを制御することが出来る。
さらに、末端ノードから上位層を省くことにより、上位層を実装するためのハードウェア及びソフトウェア資源を節約することが出来、末端ノードを低価格で提供することが出来る。
【０１２７】
また、本実施例によれば、一部又は全部の上位層を実装した末端ノードの上位層の機能を停止して、統括ノードにより管理することが出来る。この場合、統括ノードの上位層を更新することにより、末端ノードに実装されている上位層を更新したのと同様の効果を得ることが出来る。
【０１２８】
また、本実施例によれば、新しいＩＥＥＥ１３９４規格を使った上位層が規定された場合などに、統括ノードの上位層のみを更新することにより、末端ノードを新しい規格に対応させることが出来る。
【０１２９】
なお、統括ノードがパーソナルコンピュータ等であり、末端ノードを管理するためのソフトウェア（上位層）を複数同時に実行する能力がある場合には、各実行中のソフトウェアがそれぞれ管理している末端ノードのＧＵＩＤを管理、記録して、複数のソフトウェアで１つの末端ノードを管理するような競合状態を避けるようにする。
【０１３０】
また、本実施例によれば、同一バス上に複数の統括ノードがある場合にも、末端ノードに対して管理可能か否かを問い合わせることにより、統括ノード同士の競合をなくすことが出来る。
【０１３１】
また、現在管理中の統括ノードが、非アクティブであるか、又はバス上に存在しない場合には、末端ノードに問い合わせることにより、他の統括ノードは、一時的に末端ノードを管理することが出来る。
【０１３２】
また、本実施例によれば、末端ノード中に現在管理している統括ノードのＧＵＩＤを記録するので、該末端ノードの管理を望む統括ノードは、末端ノードに記録されているＧＵＩＤを持つ統括ノードに直接該末端ノードの管理を要求することにより競合を回避することが出来る。
【０１３３】
また、本実施例によれば、現在管理中の統括ノードが、何らかの事情で正常に末端ノードを管理できなくなった場合にも、例えば、上述の確認処理により他の統括ノードにより末端ノードを一時的に管理することが出来る。
【０１３４】
なお、本実施例では、統括ノードのみが、末端ノードの記憶エリアをクリアする（値「０」を書き込む）ことが出来たが、末端ノード自身が記憶エリアをクリアできるようにしておくことが望ましい。記憶エリアにＧＵＩＤが記憶された統括ノードが、該末端ノードの管理権を保持したまま、同一バス上に接続されなくなってしまっても、末端ノード自身が記憶エリアをクリアすることで、他の統括ノードが管理権を取得することが出来る。
【０１３５】
なお、本実施例は、本実施例に対応するコンピュータプログラム等をインストールした市販のコンピュータ等によって、実施させるようにしてもよい。
その場合には、本実施例に対応するコンピュータプログラム等を、ＣＤ−ＲＯＭやフロッピー（登録商標）ディスク等の、コンピュータが読み込むことが出来る記憶媒体に記憶させた状態で、ユーザに提供してもよい。
【０１３６】
そのコンピュータ等が、ＬＡＮ、インターネット、電話回線等の通信ネットワークに接続されている場合には、通信ネットワークを介して、コンピュータプログラムや各種データ等をコンピュータ等に提供してもよい。
【０１３７】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。例えば、種々の変更、改良、組合せ等が可能なことは当業者に自明であろう。
【０１３８】
【発明の効果】
以上、本発明によれば、製造コストをおさえたＩＥＥＥ１３９４規格に準拠した機器を提供することができる。
【０１３９】
また、本発明によれば、他のノードを管理することができるＩＥＥＥ１３９４規格に準拠した機器を提供することができる。
また、本発明によれば、他のノードが管理しているノードを一時的に管理することが出来るＩＥＥＥ１３９４規格に準拠した機器を提供することができる。
【図面の簡単な説明】
【図１】  本発明の実施例によるＩＥＥＥ１３９４バス１の一例を表すブロック図である。
【図２】  本実施例による末端ノード３ａ（又は３ｂ）のＣＳＲメモリの一例を表す概念図である。
【図３】  本実施例による統括ノード４のＣＳＲメモリの一例を表す概念図である。
【図４】  一般ノード２ａと一般ノード２ｂ間の通信を表すブロック図である。
【図５】  本実施例による一般ノード２ａと末端ノード３ａ間の通信を表すブロック図である。
【図６】  本実施例による統括ノード４を介した一般ノード２ａと末端ノード３ａ間の通信を表すブロック図である。
【図７】  本実施例の統括ノード４における末端ノードの管理設定処理を表すフローチャートである。
【図８】  図６に示す通信を行うための各ノードにおける処理を表すフローチャートである。
【図９】  本実施例による競合整理処理を表すフローチャートである。
【図１０】  本実施例による管理権返還要求処理を表すフローチャートである。
【図１１】  本実施例の統括ノード４における他の統括ノードに対する確認処理を表すフローチャートである。
【図１２】  ｍＬＡＮ上位層を実装した一般的なＡＶ（オーディオ・ビジュアル）装置のプロトコルスタックの一例を表す概念図である。
【符号の説明】
１…ＩＥＥＥ１３９４バス、２…一般ノード、３…末端ノード、４…統括ノード
【図１】
0003882636.tif 000002
【図２】
0003882636.tif 000003
【図３】
0003882636.tif 000004
【図４】
0003882636.tif 000005
【図５】
0003882636.tif 000006
【図６】
0003882636.tif 000007
【図７】
0003882636.tif 000008
【図８】
0003882636.tif 000009
【図９】
0003882636.tif 000010
【図１０】
0003882636.tif 000011
【図１１】
0003882636.tif 000012
【図１２】
0003882636.tif 000013