(57)【要約】【課題】ネットワークの構成変更に伴う通信装置の接続関係の管理情報の更新を効率化する。【解決手段】ＧＵＩＤ、物理ＩＤ、及びバス接続機器の接続関係を示す接続情報を対応付けて記録したＧＵＩＤマップによって、ＩＥＥＥ１３９４バスに接続された機器の接続関係を管理する。まず、バスリセット発生後にバスに接続されている機器の物理ＩＤ、及びこれらの機器が有するポートの接続状態を含むセルフＩＤパケットを取得する。次に、ルートノードのＧＵＩＤを取得する。続いて、ルートノードを起点として、各機器のポートの接続状態がバスリセット前後で変化しているか否かを、セルフＩＤパケットに示されたポートの接続状態と、ＧＵＩＤマップの接続情報とを照合することにより判定し、変化している情報は、バスリセット前のＧＵＩＤマップを上書き更新していくことによって、バスリセット後の機器の接続情報を示すＧＵＩＤマップを生成する。【選択図】図３
2007281839.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数の通信装置の各々に固有の識別子であるＧＵＩＤ、前記複数の通信装置の各々を識別する識別子であってネットワーク構成に応じて変化する物理ＩＤ、及び前記複数の通信装置の接続情報を記録したマップ情報によって、前記ネットワークに接続された前記複数の通信装置の接続関係を管理する管理方法であって、
前記ネットワークの構成変更が発生した場合に、前記ネッワークに接続されている複数の通信装置の物理ＩＤ、及びこれらの通信装置が有する通信ポートの接続状態を含む構成情報を取得し、
前記ネットワークの構成変更後に前記ネッワークに接続されている基準装置のＧＵＩＤを取得し、
前記基準装置が有する通信ポートを起点として、前記基準装置のＧＵＩＤ、前記構成情報及び前記マップ情報に基づいて、前記複数の通信装置が有する各通信ポートに接続された通信装置が前記ネットワークの構成変更の前後で変化しているか否かを順次判定し、接続された通信装置が変化していると判定した通信ポートに関する情報を順次更新することによって、前記ネットワークの構成変更後のマップ情報を生成する、通信装置の管理方法。
【請求項２】
前記基準装置から取得したＧＵＩＤが前記マップ情報に含まれるか否かを判定し、
前記マップ情報に含まれる場合は、前記マップ情報において当該ＧＵＩＤに対応付けて記録された物理ＩＤを前記基準装置の物理ＩＤによって更新し、
前記マップ情報に含まれない場合は、前記基準装置のＧＵＩＤと物理ＩＤとを対応付けて前記マップ情報に追加記録する、請求項１に記載の方法。
【請求項３】
前記ネットワークの構成変更後のマップ情報の生成は、
前記構成情報において他の通信装置と接続された状態にある通信ポートが前記ネットワークの構成変更前にも接続された状態にあると判定した場合は、前記マップ情報において当該通信ポートの対向装置に指定されている通信装置のＧＵＩＤに対応付けて記憶された物理ＩＤを更新するとともに、前記マップ情報における当該通信ポートの接続情報を更新し、
前記構成情報において他の通信装置と接続された状態にある通信ポートが前記ネットワークの構成変更前は未接続の状態であると判定した場合は、当該通信ポートに接続された対向装置に対してＧＵＩＤの送信を要求し、受信したＧＵＩＤと送信元の物理ＩＤを対応付けて前記マップ情報に追加記録するとともに、前記マップ情報における当該通信ポートの接続情報を更新することにより行う、請求項１又は２に記載の方法。
【請求項４】
前記ネットワークはＩＥＥＥ１３９４シリアルバスであり、
前記構成情報は、ＩＥＥＥ１３９４シリアルバスのバスリセットに応じて前記複数の通信装置が送信するセルフＩＤパケットである請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記基準装置は、ＩＥＥＥ１３９４シリアルバスにおいて最大の物理ＩＤを有するルートノードである請求項４に記載の方法。
【請求項６】
前記マップ情報は、ＧＵＩＤとＧＵＩＤのデータ長より小さい管理番号とを対応付けたＧＵＩＤ管理テーブル、及び、管理番号と物理ＩＤと接続情報を対応付けたマップテーブルによって構成される請求項１に記載の方法。
【請求項７】
前記構成情報の取得後に、前記ネットワークに接続されている通信装置が1台のみであるか否かを前記構成情報に基づいて判定し、前記ネットワークに接続されている通信装置が1台のみと判定した場合は、前記基準装置のＧＵＩＤ取得以降の処理を行わない請求項１に記載の方法。
【請求項８】
前記構成情報の取得後に、前記ネットワークに接続されている通信装置が前記ネットワークの構成変更前に比べて増加しているか否かを前記構成情報に基づいて判定し、増加していないと判定した場合は、前記構成情報において対向装置と接続された状態にある通信ポートが、一律に、前記ネットワークの構成変更の前にも接続された状態であるとみなして前記マップ情報の更新を行う請求項１に記載の方法。
【請求項９】
前記ネットワークに接続された前記複数の通信装置の各々に固有の識別子であるＧＵＩＤ、前記複数の通信装置の各々を識別する識別子であってネットワーク構成に応じて変化する物理ＩＤ、及び前記複数の通信装置の接続情報を含むマップ情報を記憶する記憶手段と、
前記ネットワークの構成変更が発生した場合に、前記ネッワークに接続されている複数の通信装置の物理ＩＤ、及びこれらの通信装置が有する通信ポートの接続状態を含む構成情報を取得する取得手段と、
前記構成情報に基づいて、前記マップ情報を更新するマップ生成手段とを備え、
前記マップ生成手段は、
前記ネットワークの構成変更後に前記ネッワークに接続されている基準装置のＧＵＩＤを取得し、
前記基準装置が有する通信ポートを起点として、前記基準装置のＧＵＩＤ、前記構成情報及び前記マップ情報に基づいて、前記複数の通信装置が有する各通信ポートに接続された通信装置が前記ネットワークの構成変更の前後で変化しているか否かを順次判定し、接続された通信装置が変化していると判定した通信ポートに関する情報を順次更新することによって、前記ネットワークの構成変更後のマップ情報を生成する、機器認識装置。
【請求項１０】
前記マップ生成手段は、
前記基準装置から取得したＧＵＩＤが前記マップ情報に含まれるか否かを判定し、
前記マップ情報に含まれる場合は、前記マップ情報において当該ＧＵＩＤに対応付けて記録された物理ＩＤを前記基準装置の物理ＩＤによって更新し、
前記マップ情報に含まれない場合は、前記基準装置のＧＵＩＤと物理ＩＤとを対応付けて前記マップ情報に追加記録する、請求項９に記載の機器認識装置。
【請求項１１】
前記ネットワークの構成変更後のマップ情報の生成は、
前記構成情報において他の通信装置と接続された状態にある通信ポートが前記ネットワークの構成変更前にも接続された状態にあると判定した場合は、前記マップ情報において当該通信ポートの対向装置に指定されている通信装置のＧＵＩＤに対応付けて記憶された物理ＩＤを更新するとともに、前記マップ情報における当該通信ポートの接続情報を更新し、
前記構成情報において他の通信装置と接続された状態にある通信ポートが前記ネットワークの構成変更前は未接続の状態であると判定した場合は、当該通信ポートに接続された対向装置に対してＧＵＩＤの送信を要求し、受信したＧＵＩＤと送信元の物理ＩＤを対応付けて前記マップ情報に追加記録するとともに、前記マップ情報における当該通信ポートの接続情報を更新することにより行う、請求項９又は１０に記載の機器認識装置。
【請求項１２】
前記機器認識装置は、前記複数の通信装置とは別に前記ネットワークに接続された装置である請求項９に記載の機器認識装置。
【請求項１３】
前記ネットワークはＩＥＥＥ１３９４シリアルバスであり、
前記構成情報は、ＩＥＥＥ１３９４シリアルバスのバスリセットに応じて前記複数の通信装置が送信するセルフＩＤパケットである請求項９乃至１１のいずれかに記載の機器認識装置。
【請求項１４】
前記基準装置は、ＩＥＥＥ１３９４シリアルバスにおいて最大の物理ＩＤを有するルートノードである請求項１３に記載の機器認識装置。
【請求項１５】
前記マップ情報は、ＧＵＩＤとＧＵＩＤのデータ長より小さい管理番号とを対応付けたＧＵＩＤ管理テーブル、及び、管理番号と物理ＩＤと接続情報を対応付けたマップテーブルによって構成される請求項９に記載の機器認識装置。
【請求項１６】
前記マップ生成手段は、前記ネットワークに接続されている通信装置が1台のみであるか否かを前記構成情報に基づいて判定し、前記ネットワークに接続されている通信装置が1台のみと判定した場合は、前記基準装置のＧＵＩＤ取得以降の処理を行わない請求項９に記載の機器認識装置。
【請求項１７】
前記マップ生成手段は、前記ネットワークに接続されている通信装置が前記ネットワークの構成変更前に比べて増加しているか否かを前記構成情報に基づいて判定し、増加していないと判定した場合は、前記構成情報において対向装置と接続された状態にある通信ポートが、一律に、前記ネットワークの構成変更の前にも接続された状態であるとみなして前記マップ情報の更新を行う請求項９に記載の機器認識装置。
【請求項１８】
コンピュータを、
ネットワークに接続された複数の通信装置の各々に固有の識別子であるＧＵＩＤ、前記複数の通信装置の各々を識別する識別子であってネットワーク構成に応じて変化する物理ＩＤ、及び前記複数の通信装置の接続情報を含むマップ情報を記憶する記憶手段、
前記ネットワークの構成変更が発生した場合に、前記ネッワークに接続されている複数の通信装置の物理ＩＤ、及びこれらの通信装置が有する通信ポートの接続状態を含む構成情報を取得する取得手段、及び、
前記構成情報に基づいて前記マップ情報を更新するマップ生成手段として機能させるプログラムであって、
前記マップ生成手段は、
前記ネットワークの構成変更後に前記ネッワークに接続されている基準装置のＧＵＩＤを取得し、
前記基準装置が有する通信ポートを起点として、前記基準装置のＧＵＩＤ、前記構成情報及び前記マップ情報に基づいて、前記複数の通信装置が有する各通信ポートに接続された通信装置が前記ネットワークの構成変更の前後で変化しているか否かを順次判定し、接続された通信装置が変化していると判定した通信ポートに関する情報を順次更新することによって、前記ネットワークの構成変更後のマップ情報を生成する、プログラム。
【請求項１９】
前記マップ生成手段は、
前記基準装置から取得したＧＵＩＤが前記マップ情報に含まれるか否かを判定し、
前記マップ情報に含まれる場合は、前記マップ情報において当該ＧＵＩＤに対応付けて記録された物理ＩＤを前記基準装置の物理ＩＤによって更新し、
前記マップ情報に含まれない場合は、前記基準装置のＧＵＩＤと物理ＩＤとを対応付けて前記マップ情報に追加記録する、請求項１８に記載のプログラム。
【請求項２０】
前記ネットワークの構成変更後のマップ情報の生成は、
前記構成情報において他の通信装置と接続された状態にある通信ポートが前記ネットワークの構成変更前にも接続された状態にあると判定した場合は、前記マップ情報において当該通信ポートの対向装置に指定されている通信装置のＧＵＩＤに対応付けて記憶された物理ＩＤを更新するとともに、前記マップ情報における当該通信ポートの接続情報を更新し、
前記構成情報において他の通信装置と接続された状態にある通信ポートが前記ネットワークの構成変更前は未接続の状態であると判定した場合は、当該通信ポートに接続された対向装置に対してＧＵＩＤの送信を要求し、受信したＧＵＩＤと送信元の物理ＩＤを対応付けて前記マップ情報に追加記録するとともに、前記マップ情報における当該通信ポートの接続情報を更新することにより行う、請求項１８又は１９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＥＥＥ１３９４バス等のネットワークに接続されている通信装置の接続関係の管理方法に関する。
【背景技術】
【０００２】
ＡＶ機器やＰＣ周辺機器等の様々な機器を１つのネットワークに統合でき、高速のデータ転送を可能とするインタフェースの１つに、ＩＥＥＥ１３９４インタフェースがある。ＩＥＥＥ１３９４のネットワークは、図１５に示すように、高速シリアルバス（ＩＥＥＥ１３９４バスと呼ぶ）には多様な種類の機器が接続される。これらの機器を制御するためには、ＩＥＥＥ１３９４バスに接続されている機器の接続関係を特定し、さらに、各機器の名称や機器種別等の機器情報を取得し、バスに接続されている機器を認識する必要がある。このような認識処理を以下では、機器認識処理と呼ぶ。
【０００３】
また、ＩＥＥＥ１３９４では、ＩＥＥＥ１３９４バスに接続されている機器に対する識別子（物理ＩＤ）の割り当てが自動的に行われるという特徴を有する。しかしながら、この物理ＩＤの割当て処理は、バスへの新たな機器の接続又はバスからの機器の取り外しや、バスの異常時になどに発生するバスリセットのたびに実行される。つまり、バスリセット前からバス上に存在する機器の物理ＩＤがバスリセットの前後で変更される可能性がある。このため、上述した機器認識処理もバスリセットのたびに実行する必要がある。
【０００４】
ＩＥＥＥ１３９４ネットワークでは、バスリセットの発生に応じて、バスに接続されている機器の接続関係を解析するツリー・アイデンティファイと呼ばれる処理が行われる。その後、バスに接続された各機器が、物理ＩＤ、ポート数、ポートの接続状態の情報を含むセルフＩＤパケットを送付することによって、バスに接続された機器の物理ＩＤの決定、バスに接続された機器の機器情報の認識等を行うセルフ・アイデンティファイと呼ばれる処理が行われる。
【０００５】
ＩＥＥＥ１３９４のネットワークトポロジは、図１６に示すようにツリー構造となる。なお、以下ではＩＥＥＥ１３９４バスに接続され、1又は複数のポートを有する機器をノードと呼ぶこととする。バスリセット後のツリー・アイデンティファイによって、隣接する２つのノードの間で親子関係が決定されることによって、図１６に示すようなツリー構造が決定される。具体的には、親となったノード側のポートの接続状態を"子接続"と呼び、子となったノード側のポートの接続状態を"親接続"と呼ぶ。ツリー・アイデンティファイによって全てのポートが子接続となったノードが、ツリー構造の頂点にあたるルートノードとなる。図１６の例では、機器Ａがルートノードに相当する。
【０００６】
ツリー・アイデンティファイによって、ツリー構造が決定されると、引き続いてセルフ・アイデンティファイが行われる。セルフ・アイデンティファイでは、ルートノードによる調停の下で各ノードに物理ＩＤが割当てられる。また、物理ＩＤの割り当てを受けたノードはセルフＩＤパケットをブロードキャストし、自ノードの情報を他の全てのノードに転送する。ＩＥＥＥ１３９４のセルフＩＤパケットには、送信元の各機器の物理ＩＤ、及び送信元の各機器が備えるポートの接続状態、具体的には未接続、親接続、又は子接続のいずれであるか等の情報が含まれる。
【０００７】
なお、物理ＩＤは、１の親接続ポートのみを有するツリーの末端に位置するノード（リーフノードと呼ぶ）からルートノードに向かって小さい値から順番に割当てられ、ルートノードが最大値となる。物理ＩＤの最小値はゼロであり、最大値は６３である。さらに、複数の子接続を有するノード（ブランチノードと呼ぶ）が存在する場合、ブランチノードの複数の子接続ポートのうち、ポート番号の小さいポートに接続されているノードに小さい物理ＩＤが割当てられる。図１６の例では、リーフノードの１つである機器Ｄに最小の物理ＩＤ"０"が割当てられ、ルートノードである機器Ａに最大の物理ＩＤ"４"が割当てられている。また、例えば、ブランチノードである機器Ｂは２つの子接続を有するが、このうちポート番号"１"のポートに接続された機器Ｄに物理ＩＤ"０"が割り当てられ、ポート番号"２"のポートに接続された機器Ｃに物理ＩＤ"１"が割り当てられている。
【０００８】
ＩＥＥＥ１３９４ネットークでは、バスリセットの発生に応じて、バスに接続された機器に対する物理アドレスの再割り当てが行われる。このため、バスに接続されている各機器は、バスリセットが発生するたびに物理ＩＤに対応する機器が如何なる属性、種別の機器であるかを識別する機器認識処理を行う必要がある。
【０００９】
以下では、特許文献１に記載されている従来の機器認識処理の詳細を説明する。特許文献１に開示された機器認識装置は、セルフＩＤパケットに基づいて決定したバスリセット後の機器の接続関係をバスリセット前の機器の接続関係と比較し、バスリセット前後での機器の接続関係の対応付けを行い、バスリセット前から存在する機器に対しては新たな機器情報の取得を行わずに、バスリセット前に取得した機器情報をそのまま使用し、新たなにＩＥＥＥ１３９４バスに接続された機器に対してのみ機器情報の取得を行うものである。ここで、機器情報とは、各機器の名称や機器種別等の識別情報である。
【００１０】
特許文献１に開示された機器認識装置の構成を図１７に示す。図１７の機器認識装置６は、ＩＥＥＥ１３９４バス５０に接続され、当該バスに接続された各機器の接続関係を認識し、物理ＩＤの取得、機器情報の収集を行う装置である。
【００１１】
機器認識装置６は、バスリセット発生時にバス上の各機器が送信するセルフＩＤパケットを収集する収集手段６０、収集手段６０が収集したセルフＩＤパケットに含まれる情報を参照して、バス上に接続されている機器の接続情報を作成する接続情報作成手段６１、バスリセット発生前及び発生後の接続情報と機器情報を記憶しておく記憶手段６２、記憶手段６２が記憶しているバスリセット発生前及び発生後の接続情報から変化情報を作成して記憶手段６２に記憶させる変化情報作成手段６３、及び、新規に接続された機器から新たに機器情報を取得し、記憶手段６２に記憶させる取得手段６４を備えている。
【００１２】
図１８は、機器認識装置６が行う機器認識処理を示すフローチャートである。まず始めに、収集手段６０が、バスリセットの発生を検出する（ステップＳ１０）。なお、バスリセットの発生は、いずれかのポートにおいてバスリセット信号を受信することによって検出される。バスリセットが発生すると、上述したツリー・アイデンティファイによって機器の接続関係が決定され、続くセルフ・アイデンティファイによって各機器の物理ＩＤが決定され、各機器によってセルフＩＤパケットが送信される。収集手段６０は、各機器が送信するセルフＩＤパケットを取得する（ステップＳ１１）。
【００１３】
収集手段６０で取得されたセルフＩＤパケットは、接続情報作成手段６１に渡される。接続情報作成手段６１は受け取ったセルフＩＤパケットを参照して接続情報を作成し、記憶手段６２に格納する（ステップＳ１２）。ここで、接続情報とは、ＩＥＥＥ１３９４バス上の各機器が持つポートに他のどの機器が接続されているかを示す情報である。接続情報の一例を図１９に示す。
【００１４】
次に、変化情報作成手段６３が、バスリセット発生前の接続情報及びバスリセット発生後の接続情報を記憶手段６２から取得し、それらを比較することにより、図２０に示すような変化情報を作成する。作成された変化情報は、記憶手段６２に格納される（ステップＳ１３）。図２０に示す変化情報は、ＩＥＥＥ１３９４バス上に接続されているすべての機器に対して、バスリセット発生前と発生後の物理ＩＤの対応付けを行った情報である。この変化情報を用いることによって、バスリセット発生前から接続されている機器に対しては機器情報の再取得を行わず、バスリセット発生前に取得した機器情報を参照して機器を特定することができる。
【００１５】
最後に取得手段６４が、変化情報作成手段６３が作成した変化情報を参照し、ＩＥＥＥ１３９４バスに新たに接続された機器が存在している場合に、当該機器の機器情報を取得する（ステップＳ１４）。
【００１６】
次に、図２１乃至図２３を用いて、接続情報作成（ステップＳ１２）、変化情報作成（ステップＳ１３）及び機器情報取得（ステップＳ１４）の詳細手順を説明する。
【００１７】
図２１は接続情報作成（ステップＳ１２）の処理手順を示すフローチャートである。接続情報の作成処理は、ルートノードを起点として、各ノードが有するポートに接続されている機器の物理ＩＤを順々に明確にしていくことにより行う。したがって、現在の解析対象ノードを示す検索ノードの初期値には、ルートノードの物理ＩＤが設定される（ステップＳ２００）。さらに、カレントＩＤの初期値としてルートノードの物理ＩＤを設定する（ステップＳ２０１）。なお、カレントＩＤは、図２１に示す処理において、未確認の子接続のポートに接続された機器が有する物理ＩＤの現在の候補値として使用される。
【００１８】
検索ノードが備えるポートに接続されている機器の物理ＩＤを明確にする処理は、検索ノードが持つポートのうち、最大のポート番号から順に実行する。したがって、検索ポートの初期値として検索ノードが持つポートのポート番号のうち、最大のポート番号を設定する（ステップＳ２０２）。検索ポートを設定したら、収集手段５０によって収集したセルフＩＤパケットに含まれる情報に基づいて、そのポートの状態が未確認の子接続であるかを確認する（ステップＳ２０３）。ここで、未確認とは、未だ接続情報作成における検索対象となっていないことを表している。
【００１９】
検索ポートの状態が未確認の子接続であった場合は、カレントＩＤの値を現在値から１つ減らし（ステップＳ２０４）、カレントＩＤの値を検索ポートに接続されている機器の物理ＩＤとして記憶しておき、検索ポートの状態を確認済みにする（ステップＳ２０５）。次に、検索ノードを検索ポートに接続されているノードつまり、カレントＩＤが示すノードに移動する（ステップＳ２０７）。その際、新たに検索ノードとなる機器の親ノードとして移動前の検索ノードを記憶しておく（ステップＳ２０６）。ここで、親ノードとは、接続された２つノードのうち、ルートノードに近い側の機器を意味する。例えば、図１６に示したネットワークにおける機器Ｂの親ノードは機器Ａであり、機器Ｄの親ノードは機器Ｂである。
【００２０】
一方、ステップＳ２０３において検索ポートの状態が未確認の子接続でなかった場合は、検索ポートの状態が未確認の親接続であるか否かを確認する（ステップＳ２０８）。検索ポートの状態が未確認の親接続であった場合、検索ポートに接続されている機器の物理ＩＤとして、検索ノードに設定されている親ノードの物理ＩＤを記憶し、検索ポートの状態を確認済みにする（ステップＳ２０９）。
【００２１】
検索ポートの状態が未確認の親接続でないときは、検索ポートの値を１つ減らす（ステップＳ２１０）。検索ポートの値がゼロ以下、つまり検索ノードが持つすべてのポートに対して確認を行った場合（ステップＳ２１１）、その検索ノードに親ノードが設定されているか確認し（ステップＳ２１２）、親ノードが設定されている場合は、検索ノードを親ノードへ移動する（ステップＳ２１３）。一方、検索ノードが親ノードを持たない場合、つまりルートノードが持つすべてのポートに対して確認を完了した場合は、すべての接続情報が確認済みであるので接続情報作成処理を終了する。
【００２２】
次に図２２のフローチャートを用いて、変化情報作成（ステップＳ１３）の詳細な動作を説明する。変化情報は、バスリセット発生前に作成した接続情報とバスリセット発生後に新たに作成した接続情報を基に作成される。変化情報の作成は、自ノードのバスリセット発生前の物理ＩＤとバスリセット発生後の物理ＩＤとを記憶した上で、自ノードを起点に開始する。したがって検索ノードの初期値には、変化情報作成の作成を行うノード自身を設定する（ステップＳ３００）。また検索ポートの初期値は、バスリセット発生後の検索ノードが持つ最大ポート番号のポートとする（ステップＳ３０１）。
【００２３】
検索ポートを設定したら、そのポートに未確認の接続が行われているか確認する（ステップＳ３０２）。未確認の接続が行われていた場合は、バスリセット発生後に作成した接続情報を参照し、変化情報におけるバスリセット発生後の物理ＩＤを表す新物理ＩＤの項目に、検索ポートに接続されているノードの物理ＩＤを設定する（ステップＳ３０３）。次に、バスリセット発生前の接続情報を参照し、バスリセット発生前から当該検索ポートに機器が接続されていたか否かを確認する（ステップＳ３０４）。バスリセット発生前から機器が接続されていた場合は、変化情報におけるバスリセット発生前の物理ＩＤを表す旧物理ＩＤの項目に、バスリセット発生前の検索ポートに接続されているノードの物理ＩＤを設定する（ステップＳ３０５）。一方、バスリセット発生前に当該検索ポートに機器が接続されていない場合は、変化情報における旧物理ＩＤの項目に未接続を設定する（ステップＳ３０６）。
【００２４】
以上の手順により、検索ポートに接続されている機器に対して、バスリセット発生後の物理ＩＤ（新物理ＩＤ）とバスリセット発生前の物理ＩＤ（旧物理ＩＤ）が既知となったので、これらの情報を変化情報に記録し、検索ポートの状態を確認済みにする（ステップＳ３０７）。次に、検索ノードを検索ポートに接続されているノードに移動する（ステップＳ３０９）。その際に、移動先の検索ノードに対する戻り先ノードとして、移動前の検索ノードを設定する（ステップＳ３０８）。
【００２５】
一方、ステップＳ３０２において検索ポートに未確認の接続が無かった場合、検索ポートの値を１つ減らす（ステップＳ３１０）。このとき、検索ポートの値が０以上であれば（ステップＳ３１１）、1つ減らした新たな検索ポートに対して上述した処理を繰り返し実行する。検索ポートの値が０より小さい場合は、その検索ノードに戻り先ノードが設定されているか確認する（ステップＳ３１２）。戻り先ノードが設定されている場合は、検索ノードを戻り先ノードに移動し（ステップＳ３１３）、戻り先ノードが設定されていない場合は、バス上に接続されているすべての機器の変化情報が既知となったので処理を終了する。
【００２６】
続いて、図２３のフローチャートを用いて、機器情報取得（ステップＳ１４）の詳細な動作を説明する。まず、機器情報取得の初期値として、検索ノードにルートノードを設定する（ステップＳ４００）。次に、作成した変化情報を参照することにより、検索ノードが新規接続かどうかを確認する（ステップＳ４０１）。新規接続である場合は、そのノードに対してＩＥＥＥ１３９４のアシンクロナス通信によって機器情報の取得を行う（ステップＳ４０２）。新規接続でない場合は、変化情報を参照してバスリセット発生前の物理ＩＤを確認し、その物理ＩＤに対する機器情報を新たな物理ＩＤの機器情報とする（ステップＳ４０３）。
【００２７】
検索ノードの機器情報が明確になったら、検索ノードの値を１つ減らす（ステップＳ４０４）。このとき検索ノードの値が０以上であれば（ステップＳ４０５）、検索ノードに対して上述した処理を繰り返し行う。検索ノードが０より小さい場合は、全てのノードの機器情報が明確となっているため処理を終了する。
【００２８】
これらの処理によって、機器認識装置６は、ＩＥＥＥ１３９４バス上に接続されている全ての機器の機器認識を行う。
【００２９】
また、特許文献２には、バスリセットによって変化しない機器に固有の識別子であるＧＵＩＤ（Global Unique ID）を利用して、バスリセット後の機器情報の取得を効率化する方法が開示されている。具体的には、バスリセットを検出すると、まず始めに、ＩＥＥＥ１３９４バスに接続された全ての機器のＧＵＩＤの取得を行う。次に、取得したＧＵＩＤを過去のトポロジ情報に含まれるＧＵＩＤと比較することによって、新規にバスに接続された機器の有無を確認する。続いて、新規に接続された機器に対してのみトポロジ情報の取得を行い、バスリセット前から存在する機器のＧＵＩＤを有する機器のトポロジ情報は、過去のトポロジ情報を再利用する。これにより、全ての機器からトポロジ情報を再取得する必要がなく、トポロジ情報の再取得に要する時間を短縮するものである。なお、特許文献２におけるトポロジ情報とは、機器の種別、ノードＩＤ（物理ＩＤ）、ＧＵＩＤ、機器名称等を対応付けた情報であって、特許文献１に関する説明で述べた機器情報に相当するものである。
【００３０】
しかしながら、特許文献２に開示された方法では、全ての機器からＧＵＩＤを取得するためのアシンクロナス通信によるサブアクションが発生する。また、上述したように特許文献２におけるトポロジ情報は機器情報を示す情報であり、特許文献２に開示された方法は、ＧＵＩＤと物理ＩＤとの対応を得ているのみである。このため、バスリセット前後でのＩＥＥＥ１３９４ネットワークのトポロジ変更、つまり、バスリセット前後でのＩＥＥＥ１３９４バスに接続された機器の接続関係の変化をどのように認識するかについての開示はなされていない。
【００３１】
また、特許文献３には、特許文献２と同様に、バスリセットによって変化しない機器に固有の識別子であるＧＵＩＤ（Global Unique ID）を利用して、バスリセット後の機器情報の取得を効率化する方法が開示されている。しかしながら、特許文献２と同様に、ＩＥＥＥ１３９４バスに接続された全ての機器に対してＧＵＩＤの取得を行うことによってバスリセット後のトポロジマップを再構成する旨の記載がなされているが、バスリセット前後でのＩＥＥＥ１３９４バスに接続された機器の接続関係の変化をどのように認識するかについての開示はない。
【特許文献１】特開平１１−１９６１１０号公報
【特許文献２】特開２００３−１３４１２１号公報
【特許文献３】特開２００３−２４４１５４号公報
【発明の開示】
【発明が解決しようとする課題】
【００３２】
上述したように、特許文献１に開示されたバスリセット発生後の機器認識処理では、バスリセット後の機器の接続関係を得るための中間的なデータとして、バスリセット前後における機器の接続関係の変化を示す"変化情報"を作成する。"変化情報"の作成は、バスに接続された機器の全体をバスリセット前後で比較することによって行われるため、変化情報を作成するためには必ず、バスリセット前の接続情報とバスリセット後の接続情報とを別々に保持しておかなければならないという事情がある。このため、特許文献１に開示された方法では、バスリセット後の機器の接続関係を得るために大きな記憶容量を必要とするという問題がある。
【課題を解決するための手段】
【００３３】
本発明にかかる方法は、ネットワークに接続された複数の通信装置の各々に固有の識別子であるＧＵＩＤ、前記複数の通信装置の各々を識別する識別子であってネットワーク構成に応じて変化する物理ＩＤ、及び前記複数の通信装置の接続関係を示す接続情報を記録したマップ情報によって、前記ネットワークに接続された前記複数の通信装置の接続関係を管理する管理方法である。具体的には、（１）前記ネットワークの構成変更が発生した場合に、前記ネットワークの構成変更後に前記ネッワークに接続されている複数の通信装置の物理ＩＤ、及びこれらの通信装置が有する通信ポートの接続状態を含む構成情報を取得し、（２）前記ネットワークの構成変更後に前記ネッワークに接続されている基準装置のＧＵＩＤを取得し、（３）前記基準装置が有する通信ポートを起点として、前記基準装置のＧＵＩＤ、前記構成情報及び前記マップ情報に基づいて、前記複数の通信装置が有する各通信ポートに接続された通信装置が前記ネットワークの構成変更の前後で変化しているか否かを順次判定し、接続された通信装置が変化していると判定した通信ポートに関する情報を順次更新することによって、前記ネットワークの構成変更後のマップ情報を生成する。
【００３４】
上述した本発明にかかる方法では、通信ポートに接続された通信装置の変化の判定結果に応じて、ネットワークの構成変更前のマップ情報を順次更新していくことによって、ネットワークの構成変更後の機器の接続情報を示すマップ情報を生成することができる。このため、ネットワークの構成変更前の接続情報を示すマップ情報とネットワークの構成変更後の接続情報を示すマップ情報とを別々に保持しておく必要がなく、ネットワークの構成変更後の機器の接続関係を得る処理に要する記憶容量を削減することができる。
【００３５】
一方、本発明にかかる機器認識装置は、ネットワークに接続された複数の通信装置の接続関係を認識する機器認識装置であって、（１）前記ネットワークに接続された前記複数の通信装置の各々に固有の識別子であるＧＵＩＤ、前記複数の通信装置の各々を識別する識別子であってネットワーク構成に応じて変化する物理ＩＤ、及び前記複数の通信装置の接続情報を含むマップ情報を記憶する記憶手段と、（２）前記ネットワークの構成変更が発生した場合に、前記ネットワークの構成変更後に前記ネッワークに接続されている複数の通信装置の物理ＩＤ、及びこれらの通信装置が有する通信ポートの接続状態を含む構成情報を取得する取得手段と、（３）前記構成情報に基づいて、前記マップ情報を更新するマップ生成手段とを備える。さらに、前記マップ生成手段は、（ａ）前記ネットワークの構成変更後に前記ネッワークに接続されている基準装置のＧＵＩＤを取得し、（ｂ）前記基準装置が有する通信ポートを起点として、前記基準装置のＧＵＩＤ、前記構成情報及び前記マップ情報に基づいて、前記複数の通信装置が有する各通信ポートに接続された通信装置が前記ネットワークの構成変更の前後で変化しているか否かを順次判定し、接続された通信装置が変化していると判定した通信ポートに関する情報を順次更新することによって、前記ネットワークの構成変更後のマップ情報を生成するものである。
【００３６】
このような構成により、通信ポートに接続された通信装置の変化の判定結果に応じて、ネットワークの構成変更前のマップ情報を順次更新していくことによって、ネットワークの構成変更後の機器の接続情報を示すマップ情報を生成することができる。このため、ネットワークの構成変更前の接続情報を示すマップ情報とネットワークの構成変更後の接続情報を示すマップ情報とを別々に保持しておく必要がなく、ネットワークの構成変更後の機器の接続関係を得る処理に要する記憶容量を削減することができる。
【００３７】
また、本発明にかかるプログラムは、コンピュータを上述した本発明にかかる機器認識装置として機能させるためのプログラムである。
【発明の効果】
【００３８】
本発明により、ネットワークの構成変更に伴う通信装置の接続関係の管理情報の更新を効率化することができる。
【発明を実施するための最良の形態】
【００３９】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００４０】
発明の実施の形態１．
本実施の形態にかかる機器認識装置１の構成を図１に示す。機器認識装置１は、ＩＥＥＥ１３９４バス５０に接続され、同じくＩＥＥＥ１３９４バス５０に接続された他のＩＥＥＥ１３９４接続機器との間で通信を行う。以下では、ＩＥＥＥ１３９４バス５０をバス５０と呼び、ＩＥＥＥ１３９４バス５０に接続された他のＩＥＥＥ１３９４接続機器を単に機器と呼ぶ。
【００４１】
図１において、収集手段１０は、バス５０に接続された各機器が送信するセルフＩＤパケットを収集する。ＧＵＩＤマップ作成手段１１は、収集手段１０が受信したセルフＩＤパケットを参照し、バス５０に接続された機器のＧＵＩＤ、物理ＩＤ及び接続情報を対応付けてＧＵＩＤマップを作成する。取得手段１３は、ＧＵＩＤマップ作成手段１１によってバスリセット後に更新されたＧＵＩＤマップに基づいて、バス５０に新たに接続された機器から機器情報を取得し、機器情報テーブルを更新する。記憶手段１２は、ＧＵＩＤマップ及び機器情報テーブルを格納する。ここで、機器情報とは、各機器の名称や機器種別等の識別情報である。
【００４２】
ＧＵＩＤマップの一例を図２に示す。ＧＵＩＤマップとは、ＩＥＥＥ１３９４バスに接続されている機器の物理ＩＤとＧＵＩＤとを対応付けるとともに、各機器が有するポートに他のどの機器が接続されているかを示す接続情報をＧＵＩＤと対応付けて記述したマップ情報である。また、ＧＵＩＤは、ＩＥＥＥ１３９４バスの構成変化に応じて変更される物理ＩＤとは異なり、ＩＥＥＥ１３９４バスに接続される各機器が持つ固有の識別子である。ＩＥＥＥ１３９４のＧＵＩＤは、６４ビットのデータで構成される。
【００４３】
なお、図２のＧＵＩＤマップは、ＧＵＩＤ、物理ＩＤ及び接続情報を１つのテーブルに集約しているが、このようなデータ構造は必須ではない。例えば、ＧＵＩＤと物理ＩＤの対応関係を定めるテーブルと、ＧＵＩＤと接続情報を対応付けて定めるテーブルと別々に記憶してもよい。
【００４４】
次に、機器認識装置１が行う機器認識処理の概要を図３のフローチャートを用いて説明する。なお、比較を容易にするため、図３のフローチャートのステップのうち、図１８に示した従来の機器認識処理と同様のステップには、図１８と同一の符号を付している。
【００４５】
まず始めに、収集手段１０にて、バス５０でのバスリセットの発生を検出すると（ステップＳ１０）、ツリー・アイデンティファイにより機器の接続関係が決定される。収集手段１０は、ツリー・アイデンティファイに続くセルフ・アイデンティファイにおいて、バス５０に接続されている全ての機器が自発的に送信するセルフＩＤパケットを取得する（ステップＳ１１）。ＩＥＥＥ１３９４のセルフＩＤパケットには、送信元の各機器の物理ＩＤ、及び送信元の各機器が備えるポートの接続状態、具体的には未接続、親接続、又は子接続のいずれであるかが示されている。
【００４６】
次に、ＧＵＩＤマップ作成手段１１は、記憶手段１２に格納されているバスリセット発生前のＧＵＩＤマップと、収集手段１０が取得したセルフＩＤパケットとを用いて、バスリセット発生後にバス５０に接続されている機器の接続関係を示す新たなＧＵＩＤマップを作成する（ステップＳ１５）。
【００４７】
ステップＳ１６では、取得手段１３が、ＧＵＩＤマップ作成手段１１によって作成されたバスリセット後のＧＵＩＤマップを参照し、バス５０に接続されている機器の機器情報を取得する。このとき、機器情報の取得は、バスリセット前にはバス５０に接続されていなかった新たな機器に対してのみ実行し、バスリセット前からバス５０に接続されている機器の機器情報は、過去の機器情報を再利用するものとする。具体的には、各機器の機器情報をＧＵＩＤと対応付けて記憶手段１２に記憶するものとし、バスリセット後のＧＵＩＤマップに含まれるＧＵＩＤを、記憶手段１２に格納された機器情報に対応するＧＵＩＤと照合して、新規なＧＵＩＤであれば機器情報を取得し、過去に機器情報を取得済みのＧＵＩＤであれば、その機器情報をそのまま再利用すればよい。
【００４８】
続いて、上述したステップＳ１５におけるＧＵＩＤマップの作成処理の詳細手順を図４に示すフローチャートを用いて説明する。バスリセット後のＧＵＩＤマップの作成は、ルートノードを起点として、バス５０に存在するノード（機器）の全ての機器の接続関係を解析することにより、バスリセット前のＧＵＩＤマップにおける接続情報を更新することによって行う。以下、図４に従って具体的に説明する。なお、図４において、図２１に示した従来の接続情報の作成処理において行われる処理と同様の処理を行うステップには、図２１と同一の符号を付している。
【００４９】
始めに、検索ノードの初期値と、カレントＩＤの初期値にルートノードの物理ＩＤを設定する（ステップＳ２００及びＳ２０１）。ここで、検索ノードは、現在の解析対象ノードを示す。また、カレントＩＤは、図４に示す処理において、未確認の子接続のポートに接続された機器が有する物理ＩＤの現在の候補値として使用される。次に、ルートノードのＧＵＩＤをアシンクロナス通信により取得する（ステップＳ５００）。ルートノードのＧＵＩＤを取得したら、取得したＧＵＩＤが既知であるか否かを、現在のＧＵＩＤマップに検索ノードのＧＵＩＤが含まれているか否かによって判定する（ステップＳ５０１）。
【００５０】
ステップＳ５０１の判定においてＧＵＩＤが既知、つまり現在のＧＵＩＤマップに検索ノードのＧＵＩＤが含まれている場合は、現在のＧＵＩＤマップ上の同じＧＵＩＤの機器に対する物理ＩＤの値を、現在の検索ノードの値に書き換える（ステップＳ５０３）。一方、ステップＳ５０１の判定おいてＧＵＩＤが既知で無かった場合、当該ルートノードは、バスリセット前には存在しない新規な機器と判断できる。このため、検索ノード、つまりルートノードの物理ＩＤ及びＧＵＩＤを現在のＧＵＩＤマップに新規項目として追加する（ステップＳ５０２）。また、ステップＳ５０１乃至Ｓ５０３における、ＧＵＩＤマップとの照合が終了した機器のＧＵＩＤ値は、チェック済み機器として記憶しておく。
【００５１】
次に、検索ポートの設定を行う。ここでは、検索ノードが持つポートのうち、最大のポート番号を持つポートを検索ポートに設定する（ステップＳ２０２）。検索ポートの設定後、ステップＳ１１で収集手段１０が取得したセルフＩＤパケットに含まれる情報を参照し、検索ポートの接続状態が、未確認の子接続であるか否かを確認する（ステップＳ２０３）。ここで、未確認とは、当該機器認識処理におけるポートの解析が終了していない状態を意味する。
【００５２】
検索ポートの接続状態が未確認の子接続であった場合、カレントＩＤの値を１つ減らす（ステップＳ２０４）。次に、検索ポートに接続されている機器がバスリセット発生前から接続されていた機器であるか否かを、現在のＧＵＩＤマップを参照して判定する（ステップＳ５０４）。ＧＵＩＤマップに示されている検索ポートの接続情報が未接続を示している場合、その機器はバスリセット前にはバス５０に接続されていない機器であると判定できる。また、ＧＵＩＤマップにおいて未接続でなければバスリセット発生前から接続されている機器であると判定できる。
【００５３】
検索ポートに接続されている機器がバスリセット前からバス５０に接続されていた機器と判定した場合は、現在のＧＵＩＤマップにおいて検索ポートに接続された機器のＧＵＩＤ値をＧＵＩＤマップから抽出し、検索ポートの状態を確認済みとする（ステップＳ５０５）。
【００５４】
一方、バスリセット前にはバス５０に接続されていない機器と判定した場合は、アシンクロナス通信を使用してカレントＩＤのＧＵＩＤを取得し（ステップＳ５０６）、現在の検索ポートの接続情報に取得したＧＵＩＤを記録し、検索ポートの状態を確認済みとする（ステップＳ５０７）。
【００５５】
検索ポートに接続されている機器のＧＵＩＤが明確になったら、現在のＧＵＩＤマップにおけるカレントＩＤに対する親ノードとして、現在の検索ノードのＧＵＩＤを記録する（ステップＳ２０６）。その後、検索ノードをカレントＩＤが示す物理ＩＤに変更する。（ステップＳ２０７）。
【００５６】
また、上述したステップＳ２０３の判定において、検索ポートの状態が未確認の子接続でないと判定した場合は、検索ポートの状態が未確認の親接続であるか否かを確認する（ステップＳ２０８）。検索ポートの状態が未確認の親接続であった場合、ＧＵＩＤマップに示された検索ポートの接続機器のＧＵＩＤを、現在の親ノードのＧＵＩＤによって更新し、検索ポートの状態を確認済みにする（ステップＳ５０８）。
【００５７】
検索ポートの状態が未確認の親接続でないときは、検索ポートの値を１つ減らす（ステップＳ２１０）。検索ポートの値がゼロ以下、つまり検索ノードが持つすべてのポートに対して確認を行った場合（ステップＳ２１１）、その検索ノードに親ノードが設定されているか確認し（ステップＳ２１２）、親ノードが設定されている場合は、検索ノードを親ノードへ移動する（ステップＳ２１３）。一方、検索ノードが親ノードを持たない場合は、バス５０上に接続されているすべての機器に対する解析を終了し、全ての機器の接続情報をＧＵＩＤマップに記録し終えたことを意味する。このため、この時点のＧＵＩＤマップに示されたＧＵＩＤのうち、ステップＳ５０２又はＳ５０３でチェックが行われていないＧＵＩＤの情報を、切断等によってバス５０に接続されていない状態となった機器の情報として削除する（ステップＳ５０９）。
【００５８】
次に以下では、実動作における具体例として、図５に示す機器Ａ〜機器Ｃの３台の機器が接続されたＩＥＥＥ１３９４ネットワークに新たに機器Ｄが接続され、図６に示す構成に変化した場合における、機器認識処理の流れを説明する。なお、図５及び図６の構成において、機器Ａ〜機器Ｄのいずれか、又は全ての機器が本実施の形態にかかる機器認識装置１として動作するものとする。
【００５９】
図７は、バスリセット発生前つまり図５に示す機器の接続構成に対するＧＵＩＤマップを示している。ＧＵＩＤマップには、物理ＩＤとＧＵＩＤとの対応、各ポートは未接続であるか否か、各ポートに接続された機器のＧＵＩＤが示されている。
【００６０】
機器Ｄが機器Ｃのポート（ポート番号：１）に接続されたことによってバスリセットが発生すると、まず、初期設定として検索ノードとカレントＩＤにルートノードの物理ＩＤを設定する（ステップＳ２００、Ｓ２０１）。具体的には、図６の接続例において、ルートノードである機器Ｃの物理ＩＤは３であるため、検索ノード及びカレントＩＤに３を設定する。
【００６１】
次にルートノードのＧＵＩＤをアシンクロナス通信により取得する（ステップＳ５００）。図６の接続例において、ルートノードである機器ＣのＧＵＩＤは"機器Ｃ"である。ルートノードのＧＵＩＤを取得したら、取得したＧＵＩＤが既知であるか否かを、図７に示す現在のＧＵＩＤマップに検索ノードのＧＵＩＤが含まれているか否かによって判定する（ステップＳ５０１）。いま、検索ノードのＧＵＩＤである機器Ｃは図７に示すＧＵＩＤマップに含まれているので、図７に示したＧＵＩＤマップにおける機器Ｃの物理ＩＤの値を１から３に書き換える。また、バスリセット発生後に機器情報の更新を行ったノードとして機器Ｃをチェックする（ステップＳ５０３）。機器Ｃの物理ＩＤ値を書き換えた後のＧＵＩＤマップは図８となる。
【００６２】
次に検索ポートの設定を行う。検索ポートは検索ノードが持つ最大のポート番号を設定する（ステップＳ２０２）。いま、図６に示すように、現在の検索ノードである物理ＩＤ＝３のノードが持つ最大のポート番号は２であるため、検索ポートに２を設定する。検索ポートの設定後、そのポートの接続状態を確認する。図６より物理ＩＤ＝３、ポート番号＝２の接続状態は未接続なので、検索ポートを次のポート番号である１に設定する（ステップＳ２０３、Ｓ２０８、Ｓ２１０及びＳ２１１）。
【００６３】
図６に示すように、物理ＩＤ＝３、ポート番号＝１の接続状態は未確認の子接続であるため、カレントＩＤの値を３から１つ減らして２に変更し（ステップＳ２０４）、検索ポートにバスリセット前から機器が接続されているか否かを確認する（ステップＳ５０４）。現在のＧＵＩＤマップである図８のＧＵＩＤマップを参照することにより、物理ＩＤ＝３、ポート番号＝１は未接続であることが分かる。このため、このポートに接続されている機器は、バスリセット発生前には接続されていなかった新規な機器であることが分かる。
【００６４】
物理ＩＤ＝２の機器は新規に接続された機器であるため、この機器のＧＵＩＤをアシンクロナス通信にて取得する（ステップＳ５０６）。この結果、物理ＩＤ＝２のＧＵＩＤは機器Ｄであることがわかる。続いて、図８に示すGUIDマップの物理ＩＤ＝３、検索ポート＝１の接続情報を未接続から機器Ｄに書き換え、このポートの状態を確認済みにする（ステップＳ５０７）。検索ポートの接続情報を書き換えたら、カレントＩＤである物理ＩＤ＝２に対する親ノードに物理ＩＤ＝３を設定し（ステップＳ２０６）、検索ノードを物理ＩＤ＝２に変更する（ステップＳ２０７）。
【００６５】
新たな検索ノードとなった物理ＩＤ＝２のＧＵＩＤである機器Ｄは、図８に示すＧＵＩＤマップに存在しないので、ＧＵＩＤマップの新たなエリアに物理ＩＤ＝２とＧＵＩＤ＝機器Ｄを記入し、バスリセット発生後に機器情報の更新を行ったノードとして機器Ｄをチェックする。また、新たにＧＵＩＤマップに記録した物理ＩＤ＝２、ＧＵＩＤ＝Ｄの機器に対する接続情報のエリアにはセルフＩＤパケットに示されたポート状態を記入しておく（ステップＳ５０２）。この段階でのＧＵＩＤマップは図９のようになる。
【００６６】
次に、図６に示すように、検索ノード（物理ＩＤ＝２）の最大ポート番号であるポート番号＝１を検索ポートに設定し（ステップＳ２０２）、このポートの接続状態を確認する。図６より、物理ＩＤ＝２、ポート番号＝１の接続状態は未接続であるため、ポート番号を１つ減らして検索ポートに０を設定し、このポートに対する検索を開始する（ステップＳ２０３、Ｓ２０８、Ｓ２１０及びＳ２１１）。
【００６７】
図６より、物理ＩＤ＝２、ポート番号＝０の接続状態は未確認の親接続である。このため、図９に示すＧＵＩＤマップの機器Ｄ、ポート番号＝０の接続情報を、親接続から、検索ノードである物理ＩＤ＝２の親ノードにあたる物理ＩＤ＝３の機器のＧＵＩＤ"機器C"に書き換え、このポートの状態を確認済みにする（ステップＳ５０８）。
【００６８】
機器Ｄのポート番号＝０の接続情報を更新したら、検索ポートの値を１つ減らす。ここで検索ポートの値が０よりも小さくなったので、次の検索ノードに現在の検索ノードに対する親ノードの物理ＩＤ（物理ＩＤ＝３）を設定する（ステップＳ２１２及びＳ２１３）。図６より、物理ＩＤ＝３のポートの接続状態は、ポート番号＝２は未接続であり、ポート番号＝１は確認済みである。一方でポート番号＝０のポート状態は未確認の子接続である。このため、カレントＩＤの値を１つ減らして１に設定し（ステップＳ２０４）、このポートの接続情報を解析する処理に移行する（ステップＳ５０４）。
【００６９】
図９に示したＧＵＩＤマップより物理ＩＤ＝３、ポート番号＝０には機器Ａが接続されているので（ステップＳ５０４）、この機器のＧＵＩＤ値である"機器Ａ"を取得し、このポートの状態を確認済みにする（ステップＳ５０５）。続いて、カレントＩＤである物理ＩＤ＝１の機器に対する親ノードとして物理ＩＤ＝３を設定した後に（ステップＳ２０６）、検索ノードを物理ＩＤ＝１に設定し（ステップＳ２０７）、ＧＵＩＤマップにおける物理ＩＤ＝１の機器の情報を更新する処理へ移行する。
【００７０】
新たな検索ノードである物理ＩＤ＝１のＧＵＩＤ値"機器Ａ"は、図９に示すＧＵＩＤマップに記載されている既知の値である（ステップＳ５０１）。このため、図９に示すＧＵＩＤマップの機器Ａに対する物理ＩＤの値を２から検索ノードの値である物理ＩＤ＝１に書き換える。また、バスリセット発生後に機器情報の更新を行ったノードとして機器Ａをチェックする（ステップＳ５０３）。この段階でのＧＵＩＤマップは図１０のようになる。
【００７１】
次に、図６より、検索ノード（物理ＩＤ＝１）の最大ポート番号であるポート番号＝２を検索ポートに設定し（ステップＳ２０２）、このポートの接続状態を確認する。図６より、物理ＩＤ＝１、ポート番号＝２の接続状態は親接続であるため、図１０に示すＧＵＩＤマップの機器Ａのポート番号＝２の接続情報を、検索ノードである物理ＩＤ＝１のノードの親ノードである物理ＩＤ＝３のＧＵＩＤ値"機器Ｃ"に書き換え、このポートの状態を確認済みにする（ステップＳ５０８）。
【００７２】
物理ＩＤ＝１、ポート番号＝２の接続情報を更新したら、検索ポートの値を１つ減らして１に設定する（ステップＳ２１０）。なお、図６より、物理ＩＤ＝１、ポート番号＝１は未接続であるため、検索ポートの値を１つ減らして０に設定する（ステップＳ２０３、Ｓ２０８及びＳ２１０）。
【００７３】
図６より、物理ＩＤ＝１、ポート番号＝０の接続状態は未確認の子接続であるので、カレントＩＤの値を１つ減らして０に設定し（ステップＳ２０４）、このポートの接続情報を解析する処理に移行する（ステップＳ５０４）。
【００７４】
図１０に示すＧＵＩＤマップより、物理ＩＤ＝１のポート番号＝０には機器Ｂが接続されているので（ステップＳ５０４）、この機器のＧＵＩＤ値である"機器Ｂ"を取得し、このポートの状態を確認済みにする（ステップＳ５０５）。
【００７５】
続いて、カレントＩＤである物理ＩＤ＝０の機器に対する親ノードとして物理ＩＤ＝１を設定した後に（ステップＳ２０６）、検索ノードを物理ＩＤ＝０に設定し（ステップＳ２０７）、ＧＵＩＤマップにおける物理ＩＤ＝０の機器の情報を更新する処理へ移行する。
【００７６】
新たな検索ノードである物理ＩＤ＝０のＧＵＩＤ値"機器Ｂ"は、図１０に示すＧＵＩＤマップに記載されている既知の値である（ステップＳ５０１）。このため、図１０に示すＧＵＩＤマップの機器Ｂに対する物理ＩＤの値を検索ノードの値である物理ＩＤ＝０に書き換える。また、バスリセット発生後に機器情報の更新を行ったノードとして機器Ｂをチェックする（ステップＳ５０３）。この段階でのGUIDマップは先ほどと変わらず図１０のようになる。
【００７７】
次に、図６より、検索ノード（物理ＩＤ＝０）の最大ポート番号であるポート番号＝１を検索ポートに設定し（ステップＳ２０２）、このポートの接続状態を確認する。図６より物理ＩＤ＝０、ポート番号＝１の接続状態は未確認の親接続であるため、図１０に示すＧＵＩＤマップの機器Ｂのポート番号＝１の接続情報を、現在の検索ノードである物理ＩＤ＝０のノードの親ノードのＧＵＩＤ値である"機器Ａ"を上書きし、ポートの状態を確認済みにする（ステップＳ５０８）。
【００７８】
物理ＩＤ＝０、ポート番号＝１の接続情報を更新したら、検索ポートの値を１つ減らして０に設定する（ステップＳ２１０）。なお、図６より、物理ＩＤ＝０のポート番号＝０のポート状態は未接続なので、検索ポートの値をさらに１つ減らす（ステップＳ２０３、Ｓ２０８及びＳ２１０）。ここで、検索ポートの値が０よりも小さくなったので、検索ノードに現在の検索ノードである物理ＩＤ＝０に対する親ノードの物理ＩＤ＝１を設定する（ステップＳ２１１、Ｓ２１２及びＳ２１３）。
【００７９】
いま、物理ＩＤ＝１のポート状態は、ポート番号＝２は確認済み、ポート番号＝１は未接続、ポート番号＝０は確認済みとなっている。このため、検索ノードに現在の検索ノードである物理ＩＤ＝１に対する親ノード、物理ＩＤ＝３を設定する（ステップＳ２０３、Ｓ２０８、Ｓ２１０、Ｓ２１１、Ｓ２１２及びＳ２１３）。
【００８０】
物理ＩＤ＝３のポート状態は全て確認済みであり、また当該ノードはルートノードであって親ノードは存在しない。このため、これですべての検索を終了する（ステップＳ２１２）。検索終了後のＧＵＩＤマップ（図１０）に示されているＧＵＩＤは全てバスリセット発生後に機器情報の更新を行った確認済みのＧＵＩＤなので、ＧＵＩＤマップからの切断された機器の情報の削除は行わない（ステップＳ５０９）。以上の処理によって、図６に示すＩＥＥＥ１３９４バス上のすべての機器のＧＵＩＤが明確となる。
【００８１】
このように、ＧＵＩＤ、物理ＩＤ及び接続情報を関連付けて記憶しておき、バスリセット時には、まず始めにルートノードのＧＵＩＤ取得を行った後に、セルフＩＤパケットに示されたポートの接続状態と、ＧＵＩＤマップの接続情報とを照合することにより、ルートノードを起点として全ての機器を一巡する解析のみで、バスリセット後の機器の接続関係を認識することができる。
【００８２】
上述した特許文献１に開示されたバスリセット発生後の機器認識処理、つまり、ＩＥＥＥ１３９４バスに接続されている機器の接続関係を特定し、各機器の機器情報を取得する処理においては、バスリセット後の機器の接続関係を示す接続情報を作成する処理と、バスリセット前後での接続情報の比較によって各機器の物理ＩＤの変化を特定する処理、の２回の処理においてＩＥＥＥ１３９４バスに接続された全ての機器の状態を順次確認する必要がある。このため、機器認識処理に多くの処理量を必要とし、機器認識処理に要する処理時間が増大するという問題がある。
【００８３】
これに対して本実施の形態にかかる機器認識処理は、バス５０に接続された機器を一巡する解析を１回だけ行うことにより、バスリセット後の機器の接続関係を認識することができる。このため、機器認識処理に要する手順が簡略化され、機器認識処理に要する時間を削減することが可能となる。
【００８４】
また、上述した従来の機器認識処理では、機器認識のための中間的なデータとして、バスリセット前後における機器の接続関係の変化を示す"変化情報"を作成するために、バスリセット前の接続情報とバスリセット後の接続情報とを別々に保持しておかなければならず、変化情報の作成に際して大きな記憶容量を必要とするという問題がある。これに対して、本実施の形態にかかる機器認識処理は、バスリセット前のＧＵＩＤマップを上書き更新していくことによって、バスリセット後の機器の接続情報を示すＧＵＩＤマップを生成することができる。このため、バスリセット前の接続情報を示すＧＵＩＤマップとバスリセット後の接続情報を示すＧＵＩＤマップとを別々に保持しておく必要がなく、機器認識処理に要する記憶容量を削減することができる。
【００８５】
また、実施の形態にかかる機器認識処理において、ＧＵＩＤの取得を行う対象機器は、ルートノード及びバスリセット前には存在しない新規接続機器のみである。このため、全ての機器に対して一律にＧＵＩＤを取得する必要がある特許文献２及び３に開示された方法に比べて、ＧＵＩＤの取得に要する時間を削減することができる。
【００８６】
上述した本実施の形態１にかかる機器認識装置１は、プログラムを実行するＣＰＵ（Central Processing Unit）を用いて実現可能である。具体的な構成例を図１１に示す。図１１において、ＩＥＥＥ１３９４ポート１７は、ＩＥＥＥ１３９４バス５０と接続されて、他の接続機器とのデータ送受信を担う通信ポートである。上述したセルフＩＤパケットの収集、ＧＵＩＤマップの作成、及び新規接続機器の機器情報の取得の各処理を実行するためには、ＲＯＭ１６又はフラッシュメモリ（不図示）等の不揮発性の記憶部に、上述したセルフＩＤパケットの収集、ＧＵＩＤマップの作成、及び新規接続機器の機器情報の取得の各処理をＣＰＵ１４に実行させるためのプログラムを格納しておき、当該プログラムをＣＰＵ１４で実行することとすればよい。また、記憶手段１２に格納されるＧＵＩＤマップ、機器情報テーブル等は、ＲＡＭ１５又はフラッシュメモリ（不図示）等の記憶部に格納すればよい。
【００８７】
なお、ＣＰＵ１４が実行するプログラムは、ＲＯＭ１６又はフラッシュメモリ（不図示）等の機器認識装置１内部に存在する記憶部に限らず、様々な種類の記憶媒体に格納することが可能であり、また、通信媒体を介して伝達することが可能である。ここで、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、バッテリバックアップ付きＲＡＭメモリカートリッジ等を含む。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等を含み、インターネットも含まれる。
【００８８】
また、本実施の形態にかかる機器認識装置１は、ＩＥＥＥ１３９４のノードとして認識されるＩＥＥＥ１３９４対応の通信装置のほか、ＩＥＥＥ１３９４のノードとして認識されない試験装置として実現することもできる。
【００８９】
発明の実施の形態２．
発明の実施の形態２にかかる機器認識装置は、発明の実施の形態１にかかる機器認識装置１において、図４のステップＳ１５として説明したＧＵＩＤマップ作成処理を効率化したものである。なお、本実施の形態にかかる機器認識装置の構成は、図１に示した発明の実施の形態１にかかる機器認識装置１の構成と同様であるため、詳細な説明を省略するとともに、以下の説明において、本実施の形態にかかる機器認識装置の構成に言及する際は、機器認識装置１の構成に付した符号を準用することとする。
【００９０】
図１２は、図４のステップＳ１５のＧＵＩＤマップ作成処理に相当する本実施の形態にかかる処理手順を示すフローチャートである。本実施の形態では、バスリセットの発生後にセルフＩＤパケットを取得した後に、まず、バス５０に接続された機器が自ノードのみであるか否かを判定する（ステップＳ２１）。上述したように、ＩＥＥＥ１３９４では、ツリー構造の末端に位置するリーフノードから順に小さいＩＤ値が割り当てられ、ルートノードの物理ＩＤが最も大きい値となる。このため、受信したセルフＩＤパケットから最大の物理ＩＤ値を確認すれば、バス上に接続されている機器の台数を確認することができる。具体的には、物理ＩＤの最小値はゼロであるため、ルートノードに相当する最大の物理ＩＤ値がバス５０に接続されている自機器以外の機器台数を示すことになる。
【００９１】
したがって、ステップＳ２１では、ルートノードの物理ＩＤを確認し、物理ＩＤ＝０であればバス上に接続されている機器が自機器のみと判定できる。この場合は、ＧＵＩＤマップの初期化を行う（ステップＳ２２）。
【００９２】
ステップＳ２３では、バスリセット発生前のルートノードの物理ＩＤを確認することにより、バスリセット発生前に接続されていた機器が自機器のみであるか否かを判定する。具体的には、バスリセット発生前のルートノードの物理ＩＤが０であった場合、バスリセット発生前にバス５０に接続されていた機器が自機器のみであり、他の機器は全て新規接続機器であると判定できる。
【００９３】
バスリセット発生前にバス５０に接続されていた機器が自機器のみであり、他の機器は全て新規接続機器であると判定した場合、バス５０に接続された機器の接続情報の作成を行う（ステップＳ２４）。このとき、接続情報の作成は、図２１に示した従来技術の接続情報作成手順に則って行えばよい。次に、バス５０に接続されている全ての接続機器のＧＵＩＤをアシンクロナス通信にて取得する（ステップＳ２５）。続いて、取得したＧＵＩＤを、ステップＳ２４で作成した接続情報の物理ＩＤに対応付けて記憶することにより、バスリセット後のＧＵＩＤマップを作成することができる（ステップＳ２６）。
【００９４】
ステップＳ２３において、バスリセット発生前にバス５０に接続されていた機器が自機器のみでないと判定した場合、バスリセット発生前のルートノードの物理ＩＤと、バスリセット発生後のルートノードの物理ＩＤを比較することにより、バスリセット後にバス５０への接続機器数が増加しているか否かを判定する（ステップＳ２７）。具体的には、バスリセット発生後のルートノードの物理ＩＤが、バスリセット発生前のルートノードの物理ＩＤよりも値が大きければ、接続機器の台数が増加したことを判定できる。
【００９５】
接続機器の増加は、新規接続機器が存在することを示すため、この場合は、図４のフローチャートに示した発明の実施の形態１と同様の手順によってＧＵＩＤマップを作成する（ステップＳ２８）。
【００９６】
一方、バスリセット発生前とバスリセット発生後のルートノードの物理ＩＤが同じ場合、又はバスリセット発生前のルートノードの物理ＩＤがバスリセット発生後のルートノードの物理ＩＤより大きい場合は、接続機器に変化がないか、又はバス上の接続機器が切断され、接続機器数が減少したことを意味する。この場合、バス５０に接続されている機器は全てバスリセット発生前から接続されている機器であるから、図４のフローチャートにおけるステップＳ５０１の検索ノードのＧＵＩＤが既知か否かを判定する処理、及びＳ５０４の検索ポートは従来接続か否かを判定する処理は不要となる。このため、これらの処理を省略することによって図４のフローチャートを簡略化した図１３のフローチャートによる処理によって、バスリセット後のＧＵＩＤマップを作成することができる（ステップＳ２９）。なお、図１３のフローチャートの各ステップの処理内容は、図４のフローチャートと同様であるため、対応するステップに同一の符号を付して詳細な説明を省略する。
【００９７】
上述した発明の実施の形態１では、バス５０に接続されている機器の増減にかかわらず、同一の処理手順に則ってＧＵＩＤマップを作成する場合を示した。これに対して本実施の形態では、最初に、バスリセット前後でのルートノードの物理ＩＤの変化を確認することによって、バス５０に接続されている機器数の増減を判定している、さらに、接続機器数が減少している場合には、ＧＵＩＤマップを作成する処理の手順を簡略化している。このため、ＧＵＩＤマップの作成処理を効率良く行うことができる。
【００９８】
発明の実施の形態３．
本実施の形態にかかる機器認識装置は、発明の実施の形態１にかかる機器認識装置１において、記憶手段１２に格納するＧＵＩＤマップのデータ構造を変更したものである。なお、本実施の形態にかかる機器認識装置の構成は、図１に示した発明の実施の形態１にかかる機器認識装置１の構成と同様であるため、詳細な説明を省略するとともに、以下の説明において、本実施の形態にかかる機器認識装置の構成に言及する際は、機器認識装置１の構成に付した符号を準用することとする。
【００９９】
上述したように、ＧＵＩＤのデータ長は６４ビットである。このため、機器認識装置１が記憶手段１２に保持するＧＵＩＤマップのように、ＧＵＩＤ及び各ポートの接続情報を記憶するためにＧＵＩＤ値を直接格納してしまうと、ＧＵＩＤマップの記憶に大きな記憶領域を要することになる。そこで、図１４（ｂ）に示すような、ＧＵＩＤと、ＧＵＩＤのデータ長より小さい管理番号とを対応付けたＧＵＩＤ管理テーブルを用意しておき、ＧＵＩＤマップのＧＵＩＤ及び各ポートの接続情報には、ＧＵＩＤ管理テーブルの管理番号を使用するとよい。このようなＧＵＩＤマップの例を図１４（ａ）に示す。このような構成によって、発明の実施の形態１の機器認識装置１に比べて、ＧＵＩＤマップをより小さな記憶領域で保持することができる。
【０１００】
なお、上述した発明の実施の形態１乃至３では、ＩＥＥＥ１３９４バスに接続された機器のトポロジ、つまり各機器の接続関係及び各機器の詳細な機器情報を認識する装置に本発明を適用した。しかしながら、本発明は、ＩＥＥＥ１３９４バスに限らず、ＩＥＥＥ１３９４と同様のツリー構造のバスアーキテクチャを有し、ネットワーク構成によって動的に変更される物理ＩＤによるアドレッシングを行うような他のネットワークに対しても適用可能である。
【０１０１】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【０１０２】
【図１】発明の実施の形態１にかかる機器認識装置の構成図である。
【図２】発明の実施の形態１にかかる機器認識装置が生成するＧＵＩＤマップの構造を示す図である。
【図３】発明の実施の形態１にかかる機器認識装置が行う機器認識処理の手順を示すフローチャートである。
【図４】発明の実施の形態１にかかる機器認識装置が行うＧＵＩＤマップ作成処理の手順を示すフローチャートである。
【図５】ＧＵＩＤマップ作成処理の具体例を説明するためのネットワーク構成図である。
【図６】ＧＵＩＤマップ作成処理の具体例を説明するためのネットワーク構成図である。
【図７】ＧＵＩＤマップ作成処理におけるＧＵＩＤマップの更新を説明するための図である。
【図８】ＧＵＩＤマップ作成処理によるＧＵＩＤマップの更新を説明するための図である。
【図９】ＧＵＩＤマップ作成処理によるＧＵＩＤマップの更新を説明するための図である。
【図１０】ＧＵＩＤマップ作成処理によるＧＵＩＤマップの更新を説明するための図である。
【図１１】発明の実施の形態１にかかる機器認識装置の具体的構成を示す図である。
【図１２】発明の実施の形態１にかかる機器認識装置が行うＧＵＩＤマップ作成処理の手順を示すフローチャートである。
【図１３】発明の実施の形態１にかかる機器認識装置が行うＧＵＩＤマップ作成処理の手順を示すフローチャートである。
【図１４】発明の実施の形態３にかかるＧＵＩＤマップ及びＧＵＩＤ管理テーブルの構成を示す図である。
【図１５】ＩＥＥＥ１３９４バスへの機器の接続を示す概念図である。
【図１６】ＩＥＥＥ１３９４バスに接続された機器のポート接続状態と物理ＩＤとの関係を説明するための図である。
【図１７】従来の機器認識装置の構成図である。
【図１８】従来の機器認識装置が行う機器認識処理を示すフローチャートである。
【図１９】接続情報の一例を示す図である。
【図２０】変化情報の一例を示す図である。
【図２１】従来の機器認識装置が行う接続情報作成処理を示すフローチャートである。
【図２２】従来の機器認識装置が行う変化情報作成処理を示すフローチャートである。
【図２３】従来の機器認識装置が行う機器情報取得処理を示すフローチャートである。
【符号の説明】
【０１０３】
１、２  機器認識装置
１０  収集手段
１１  ＧＵＩＤマップ作成手段
１２  記憶手段
１３  取得手段
１４  ＣＰＵ
１５  ＲＡＭ
１６  ＲＯＭ
１７  ＩＥＥＥ１３９４ポート
３ａ〜３ｄ  ＩＥＥＥ１３９４接続機器
５０  ＩＥＥＥ１３９４バス
【図１】
2007281839.tif 000003
【図２】
2007281839.tif 000004
【図３】
2007281839.tif 000005
【図４】
2007281839.tif 000006
【図５】
2007281839.tif 000007
【図６】
2007281839.tif 000008
【図７】
2007281839.tif 000009
【図８】
2007281839.tif 000010
【図９】
2007281839.tif 000011
【図１０】
2007281839.tif 000012
【図１１】
2007281839.tif 000013
【図１２】
2007281839.tif 000014
【図１３】
2007281839.tif 000015
【図１４】
2007281839.tif 000016
【図１５】
2007281839.tif 000017
【図１６】
2007281839.tif 000018
【図１７】
2007281839.tif 000019
【図１８】
2007281839.tif 000020
【図１９】
2007281839.tif 000021
【図２０】
2007281839.tif 000022
【図２１】
2007281839.tif 000023
【図２２】
2007281839.tif 000024
【図２３】
2007281839.tif 000025