(57)【要約】【課題】IEEE1394シリアルバスに接続されるコントローラ機器において、制御対象となる全てのターゲット機器の機器情報を取得するのに要する時間を短縮する。【解決手段】リストＹにレコードを追加することができない場合に（Ｓ３１でＹＥＳ）、コントローラの種類と追加対象となるレコードに含まれるターゲットの機器情報とに基づいて、該当のターゲットがコントローラによって制御される可能性が高いか否かという観点から、該当のターゲットの機器情報の優先度を設定し（Ｓ３２）、リストＹに格納されているレコードの中から、該当のターゲットの機器情報の優先度よりも低い優先度のレコードを削除するようにした（Ｓ３６）。これにより、リストＹに該当のコントローラによって制御される可能性が高いターゲットの機器情報を残すことができるので、各ターゲットから機器情報を直接取得する頻度を低下させることができる。【選択図】図１４
2005086556.tif 000002
【特許請求の範囲】
【請求項１】
IEEE1394シリアルバスを介してネットワークに接続され、
バスリセット発生後に、ネットワーク上の各ターゲット機器から各ターゲット機器固有のＧＵＩＤ（Global Unique Identification）を含む情報を受信するＧＵＩＤ受信手段と、
前記ＧＵＩＤ受信手段により受信したＧＵＩＤを含む情報の送信元のターゲット機器に対して、該当のターゲット機器の機器情報の問合せ用のコマンドを送信する送信手段と、
前記送信手段により送信した問合せ用のコマンドに対して、問合せ先のターゲット機器から返された問合せ結果を受信する問合せ結果受信手段と、
前記問合せ結果受信手段により受信した問合せ結果に含まれる各ターゲット機器の機器情報に基づいて、各ターゲット機器を制御する制御手段とを備えたIEEE1394シリアルバスに接続されるコントローラ機器において、
前記問合せ結果に含まれる各ターゲット機器の機器情報に基づいて作成した、前記バスに現在接続されている各ターゲット機器の機器情報のリストである現機器情報リストと、前記バスに過去に接続されていたターゲット機器の機器情報のリストである旧機器情報リストとを記憶する記憶手段と、
バスリセット後に、前記ＧＵＩＤ受信手段により各ターゲット機器からＧＵＩＤを受信したときに、そのＧＵＩＤに該当するターゲット機器のレコードを前記現機器情報リスト内のレコードから検索する第１の検索手段と、
前記第１の検索手段により該当のターゲット機器のレコードを検索することができなかったときに、前記ＧＵＩＤ受信手段により受信したＧＵＩＤに該当するターゲット機器のレコードを前記旧機器情報リスト内のレコードから検索する第２の検索手段と、
前記旧機器情報リストにレコードを追加することができるか否かを判定する判定手段とをさらに備え、
バスリセット前に前記現機器情報リスト内に格納されていたレコードの中に、前記ＧＵＩＤ受信手段により受信したＧＵＩＤ以外のＧＵＩＤを持つレコードが含まれているときは、該当のレコードを前記現機器情報リストから削除して、削除したレコードに相当するレコードを前記旧機器情報リストに追加し、
前記旧機器情報リストにレコードを追加する際に、前記判定手段によりレコードを追加することができないと判定された場合、
前記追加対象となるレコードに含まれているターゲット機器の機器情報と該コントローラ機器の種類とに基づいて、該当のターゲット機器が該コントローラ機器によって制御される可能性が高いか否かという観点から、該当の機器情報の優先度を設定し、
前記旧機器情報リストに格納されているレコードの中から、前記機器情報の優先度よりも低い優先度のレコードを、先頭のレコードから順に検索して、検索できたときは、最初に検索されたレコードを削除し、検索できなかったときは、前記旧機器情報リストに格納されているレコードの中から、前記機器情報の優先度と同じ優先度のレコードを、先頭のレコードから順に検索して、最初に検索されたレコードを削除し、
前記旧機器情報リスト内のレコードを先頭から順に詰めて、前記追加対象となるレコードを前記旧機器情報リスト内の最後に追加するようにしたことを特徴とするIEEE1394シリアルバスに接続されるコントローラ機器。
【請求項２】
IEEE1394シリアルバスを介してネットワークに接続され、
バスリセット発生後に、ネットワーク上の各ターゲット機器に対して、該当のターゲット機器の機器情報の問合せ用のコマンドを送信する送信手段と、
前記送信手段により送信した問合せ用のコマンドに対して、問合せ先のターゲット機器から返された問合せ結果を受信する問合せ結果受信手段と、
前記問合せ結果受信手段により受信した問合せ結果に含まれる各ターゲット機器の機器情報に基づいて、各ターゲット機器を制御する制御手段とを備えたIEEE1394シリアルバスに接続されるコントローラ機器において、
前記バスに過去に接続されていたターゲット機器の機器情報のリストである旧機器情報リストを記憶する記憶手段と、
前記旧機器情報リストにレコードを追加することができるか否かを判定する判定手段とをさらに備え、
前記旧機器情報リストにレコードを追加する際に、前記判定手段によりレコードを追加することができないと判定された場合、
前記追加対象となるレコードに含まれているターゲット機器の機器情報と該コントローラ機器の種類とに基づいて、該当のターゲット機器が該コントローラ機器によって制御される可能性が高いか否かという観点から、該当の機器情報の優先度を設定し、
前記旧機器情報リストに格納されているレコードの中から、前記機器情報の優先度よりも低い優先度のレコードを、先頭のレコードから順に検索して、検索できたときは、最初に検索されたレコードを削除し、検索できなかったときは、前記旧機器情報リストに格納されているレコードの中から、前記機器情報の優先度と同じ優先度のレコードを、先頭のレコードから順に検索して、最初に検索されたレコードを削除するようにしたことを特徴とするIEEE1394シリアルバスに接続されるコントローラ機器。
【請求項３】
前記旧機器情報リストにレコードを追加する際に、前記旧機器情報リストに格納されているレコードを削除した場合は、前記旧機器情報リスト内のレコードを先頭から順に詰めて、前記追加対象となるレコードを前記旧機器情報リスト内の最後に追加するようにした請求項２に記載のIEEE1394シリアルバスに接続されるコントローラ機器。
【請求項４】
前記旧機器情報リストにレコードを追加する際に、前記判定手段によりレコードを追加することができないと判定された場合、
前記追加対象となるレコードに含まれているターゲット機器の機器情報と該コントローラ機器の種類に加えて、該当のターゲット機器と該コントローラ機器との距離を考慮して、該当の機器情報の優先度を設定するようにした請求項２に記載のIEEE1394シリアルバスに接続されるコントローラ機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、IEEE1394シリアルバスに接続されるコントローラ機器に係わり、特に、バス上のトラフィックを減少させる技術に関する。
【背景技術】
【０００２】
従来、IEEE1394シリアルバス（以下、バスと略す）に接続されるコントローラ機器は、バスリセット発生後に、バスに接続されている各ターゲット機器に対して、各ターゲット機器が有する機器情報の問合せ用のコマンドを送信し、問合せ先のターゲット機器から返された問合せ結果の情報に基づいて、各ターゲット機器を制御していた。
【０００３】
また、バスに接続される接続機器の分野において、バスインタフェースのチャンネルの獲得が競合したときに、競合しているプラグのうち、最も優先度の高いプラグにチャンネルを切り換えるようにしたものが知られている（例えば、特許文献１参照）。さらにまた、この種の接続機器の分野において、検出されたイベントに関連付けられている機器の優先度をアップさせて、優先度がアップした機器に対して優先的に帯域を割り当てるようにしたものが知られている（例えば、特許文献２参照）。
【０００４】
しかしながら、上記のような従来のコントローラ機器では、バスリセットが発生する度に、各ターゲット機器の制御に必要な機器情報を、各ターゲット機器から直接取得していたので、制御対象となる全てのターゲット機器の機器情報を取得するのに時間がかかるという問題があった。この問題は、該当のコントローラ機器が制御するターゲット機器の台数に比例して大きくなる。なお、上記特許文献１及び特許文献２に示される発明では、上記の問題を解消することはできない。
【特許文献１】特開２００２−１６６２０号公報（第１−１０頁、図１−１９）
【特許文献２】特開２００３−１８１６１号公報（第２−６頁、図１−１１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記の問題を解決するためになされたものであり、制御対象となる全てのターゲット機器の機器情報を取得するのに要する時間を短縮することが可能なIEEE1394シリアルバスに接続されるコントローラ機を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために請求項１の発明は、IEEE1394シリアルバスを介してネットワークに接続され、バスリセット発生後に、ネットワーク上の各ターゲット機器から各ターゲット機器固有のＧＵＩＤ（Global Unique Identification）を含む情報を受信するＧＵＩＤ受信手段と、ＧＵＩＤ受信手段により受信したＧＵＩＤを含む情報の送信元のターゲット機器に対して、該当のターゲット機器の機器情報の問合せ用のコマンドを送信する送信手段と、送信手段により送信した問合せ用のコマンドに対して、問合せ先のターゲット機器から返された問合せ結果を受信する問合せ結果受信手段と、問合せ結果受信手段により受信した問合せ結果に含まれる各ターゲット機器の機器情報に基づいて、各ターゲット機器を制御する制御手段とを備えたIEEE1394シリアルバスに接続されるコントローラ機器において、問合せ結果に含まれる各ターゲット機器の機器情報に基づいて作成した、バスに現在接続されている各ターゲット機器の機器情報のリストである現機器情報リストと、バスに過去に接続されていたターゲット機器の機器情報のリストである旧機器情報リストとを記憶する記憶手段と、バスリセット後に、ＧＵＩＤ受信手段により各ターゲット機器からＧＵＩＤを受信したときに、そのＧＵＩＤに該当するターゲット機器のレコードを現機器情報リスト内のレコードから検索する第１の検索手段と、第１の検索手段により該当のターゲット機器のレコードを検索することができなかったときに、ＧＵＩＤ受信手段により受信したＧＵＩＤに該当するターゲット機器のレコードを旧機器情報リスト内のレコードから検索する第２の検索手段と、旧機器情報リストにレコードを追加することができるか否かを判定する判定手段とをさらに備え、バスリセット前に現機器情報リスト内に格納されていたレコードの中に、ＧＵＩＤ受信手段により受信したＧＵＩＤ以外のＧＵＩＤを持つレコードが含まれているときは、該当のレコードを現機器情報リストから削除して、削除したレコードに相当するレコードを旧機器情報リストに追加し、旧機器情報リストにレコードを追加する際に、判定手段によりレコードを追加することができないと判定された場合、追加対象となるレコードに含まれているターゲット機器の機器情報とコントローラ機器の種類とに基づいて、該当のターゲット機器がコントローラ機器によって制御される可能性が高いか否かという観点から、該当の機器情報の優先度を設定し、旧機器情報リストに格納されているレコードの中から、該当の機器情報の優先度よりも低い優先度のレコードを、先頭のレコードから順に検索して、検索できたときは、最初に検索されたレコードを削除し、検索できなかったときは、旧機器情報リストに格納されているレコードの中から、機器情報の優先度と同じ優先度のレコードを、先頭のレコードから順に検索して、最初に検索されたレコードを削除し、旧機器情報リスト内のレコードを先頭から順に詰めて、追加対象となるレコードを旧機器情報リスト内の最後に追加するようにしたものである。
【０００７】
上記構成においては、旧機器情報リストにレコードを追加する際に、判定手段によりレコードを追加することができないと判定された場合、追加対象となるレコードに含まれているターゲット機器の機器情報とコントローラ機器の種類とに基づいて、該当のターゲット機器がコントローラ機器によって制御される可能性が高いか否かという観点から、該当の機器情報の優先度を設定し、旧機器情報リストに格納されているレコードの中から、該当の機器情報の優先度よりも低い優先度のレコードを検索して、検索できたときは、最初に検索されたレコードを削除する。これにより、旧機器情報リストに該当のコントローラ機器によって制御される可能性が高いターゲット機器の機器情報を残すことができるので、現機器情報リストと旧機器情報リストに格納された機器情報に基づいて、各ターゲット機器を制御手段により制御することができる確立を高めることができる。従って、各ターゲット機器から機器情報を直接取得する頻度を低下させることができるので、制御対象となる全てのターゲット機器の機器情報を取得するのに要する時間を短縮することができる。
【０００８】
また、旧機器情報リストに格納されているレコードの中から、追加対象となるレコードに含まれている機器情報の優先度よりも低い優先度のレコードを、先頭のレコードから順に検索して、検索できたときは、最初に検索されたレコードを削除し、検索できなかったときは、旧機器情報リストに格納されているレコードの中から、追加対象となるレコードに含まれている機器情報の優先度と同じ優先度のレコードを、先頭のレコードから順に検索して、最初に検索されたレコードを削除するようにした。これにより、旧機器情報リストに格納されている同じ優先度のレコードの中で、最も格納時期が古いレコードを削除することができるので、該当のコントローラ機器によって最近制御された実績のあるターゲット機器の機器情報を旧機器情報リストに残すことができる。
【０００９】
また、請求項２の発明は、IEEE1394シリアルバスを介してネットワークに接続され、バスリセット発生後に、ネットワーク上の各ターゲット機器に対して、該当のターゲット機器の機器情報の問合せ用のコマンドを送信する送信手段と、送信手段により送信した問合せ用のコマンドに対して、問合せ先のターゲット機器から返された問合せ結果を受信する問合せ結果受信手段と、問合せ結果受信手段により受信した問合せ結果に含まれる各ターゲット機器の機器情報に基づいて、各ターゲット機器を制御する制御手段とを備えたIEEE1394シリアルバスに接続されるコントローラ機器において、問合せ結果に含まれる各ターゲット機器の機器情報に基づいて作成した、バスに過去に接続されていたターゲット機器の機器情報のリストである旧機器情報リストを記憶する記憶手段と、旧機器情報リストにレコードを追加することができるか否かを判定する判定手段とをさらに備え、旧機器情報リストにレコードを追加する際に、判定手段によりレコードを追加することができないと判定された場合、追加対象となるレコードに含まれているターゲット機器の機器情報とコントローラ機器の種類とに基づいて、該当のターゲット機器がコントローラ機器によって制御される可能性が高いか否かという観点から、該当の機器情報の優先度を設定し、旧機器情報リストに格納されているレコードの中から、該当の機器情報の優先度よりも低い優先度のレコードを、先頭のレコードから順に検索して、検索できたときは、最初に検索されたレコードを削除し、検索できなかったときは、旧機器情報リストに格納されているレコードの中から、該当の機器情報の優先度と同じ優先度のレコードを、先頭のレコードから順に検索して、最初に検索されたレコードを削除するようにしたものである。
【００１０】
この構成においては、上記請求項１と同様な作用を得ることができる。
【００１１】
また、請求項３の発明は、請求項２の発明において、旧機器情報リストにレコードを追加する際に、旧機器情報リストに格納されているレコードを削除した場合は、旧機器情報リスト内のレコードを先頭から順に詰めて、追加対象となるレコードを旧機器情報リスト内の最後に追加するようにしたものである。
【００１２】
この構成においては、旧機器情報リスト内のレコードを格納時期が古い順に整列させることができる。
【００１３】
また、請求項４の発明は、請求項２の発明において、旧機器情報リストにレコードを追加する際に、判定手段によりレコードを追加することができないと判定された場合、追加対象となるレコードに含まれているターゲット機器の機器情報とコントローラ機器の種類に加えて、該当のターゲット機器とコントローラ機器との距離を考慮して、該当の機器情報の優先度を設定するようにしたものである。
【００１４】
この構成においては、上記請求項２に記載の作用を的確に得ることができる。
【発明の効果】
【００１５】
請求項１の発明によれば、旧機器情報リストにレコードを追加することができないと判定された場合は、追加対象となるレコードに含まれているターゲット機器の機器情報とコントローラ機器の種類とに基づいて、該当のターゲット機器がコントローラ機器によって制御される可能性が高いか否かという観点から、該当の機器情報の優先度を設定し、旧機器情報リストに格納されているレコードの中から、該当の機器情報の優先度よりも低い優先度のレコードを削除するようにした。また、該当の機器情報の優先度よりも低い優先度のレコードを検索することができなかった場合は、旧機器情報リストに格納されている同じ優先度のレコードの中で、最も格納時期が古いレコードを削除するようにした。これにより、旧機器情報リストに該当のコントローラ機器によって制御される可能性が高いターゲット機器の機器情報を残すことができるので、現機器情報リストと旧機器情報リストに格納された機器情報に基づいて、各ターゲット機器を制御することができる確立を高めることができる。従って、各ターゲット機器から機器情報を直接取得する頻度を低下させることができるので、制御対象となる全てのターゲット機器の機器情報を取得するのに要する時間を短縮することができる。
【００１６】
また、請求項２の発明によれば、上記請求項１と同等の効果を得ることができる。
【００１７】
また、請求項３の発明によれば、旧機器情報リストに格納されているレコードを削除した場合に、旧機器情報リスト内のレコードを先頭から順に詰めて、追加対象となるレコードを旧機器情報リスト内の最後に追加するようにしたことにより、旧機器情報リスト内のレコードを格納時期が古い順に整列させることができる。
【００１８】
また、請求項４の発明によれば、追加対象となるレコードに含まれているターゲット機器の機器情報とコントローラ機器の種類に加えて、該当のターゲット機器とコントローラ機器との距離を考慮して、該当の機器情報の優先度を設定するようにしたことにより、上記請求項２に記載の効果を的確に得ることができる。
【発明を実施するための最良の形態】
【００１９】
本発明を実施するための最良の形態について図面を参照して説明する。以下に記載した実施形態は、本発明を網羅するものではなく、本発明は、下記の形態だけに限定されない。図１は、第１の実施形態によるコントローラ機器と、このコントローラ機器により制御される各ターゲット機器の電気的ブロック構成を示す。コントローラ機器１０（以下、コントローラと略す）は、IEEE1394シリアルバス９（以下、バスと略す）を介して、制御対象となる各ターゲット機器２０ａ，２０ｂ（以下、ターゲット２０と総称する）と接続されている。
【００２０】
上記のコントローラ１０は、装置全体の制御を行うＣＰＵ１１と、各種のデータを記憶するメモリ１２（記憶手段）とを有している。ＣＰＵ１１は、IEEE1394のプロトコル上におけるアプリケーション層の機能の提供も行い、請求項における制御手段としても機能する。また、メモリ１２は、各ターゲット機器の制御に必要となる各ターゲット機器のＧＵＩＤと機器情報とを格納したリストを作成するためのプログラム（機器情報リスト作成プログラム）１３、コントローラ１０自体及びバス９上の他の接続機器に関する各種の情報を格納したレジスタ空間１４、上記の機器情報リスト作成プログラム１３で作成した各種リスト１６等を記憶している。上記のレジスタ空間１４には、自機のＧＵＩＤ等の情報を記憶したコンフィグレーションＲＯＭ１５が格納されている。機器情報リスト作成プログラム１３及びＣＰＵ１１は、請求項における第１の検索手段、第２の検索手段及び判定手段に相当する。
【００２１】
また、コントローラ１０は、IEEE1394のプロトコル上におけるリンク層レベルのサービスを提供するＬＩＮＫ１７と、物理層レベルのサービスを提供するＰＨＹ１８と、バス９のケーブルを接続するためのIEEE1394ポート１９とを有している。これらのＬＩＮＫ１７、ＰＨＹ１８及びIEEE1394ポート１９は、請求項１におけるＧＵＩＤ受信手段、送信手段及び問合せ結果受信手段に相当する。
【００２２】
上記の各ターゲット２０も、コントローラ１０と同様に、ＣＰＵ２１、メモリ２２、ＬＩＮＫ２７、ＰＨＹ２８、及びIEEE1394ポート２９を有しており、また、メモリ２２内にレジスタ空間２４を内包している。しかし、コントローラ１０と異なり、メモリ２２内に機器情報リスト作成プログラム１３及び各種リスト１６を格納していない。
【００２３】
次に、図２乃至図５を参照して、上記のコントローラ１０のメモリ１２内に格納されている各種リスト１６について説明する。各種リスト１６には、バス９に現在接続されている各ターゲット２０の機器情報のリストである現ポインタリスト３１及び現リストＸ３２（現機器情報リスト）と、バス９に過去に接続されていた各ターゲット２０の機器情報のリストであるリストＹ３３（旧機器情報リスト）とが含まれている。現リストＸ３２は、図４に示されるように、バス９に現在接続されている各ターゲット２０の機器情報のデータを実際に格納したレコードＡ〜Ｇよりなるリストである。これに対して、現ポインタリスト３１は、図２及び図３に示されるように、現リストＸ３２の各レコードＡ〜Ｇに対するポインタ＊Ａ〜＊Ｇを格納したレコードよりなる環状のリストである。また、図５に示されるリストＹ３３には、ＧＵＩＤと機器情報に加えて、機器情報の優先度が格納されている。この優先度は、コントローラ１０内のコンフィグレーションＲＯＭ１５内に格納された自機の種類に関する情報と、ターゲット２０の機器情報とに基づいて、ターゲット２０がコントローラ１０によって制御される可能性が高いか否かという観点から設定されたものであり、数が大きいほど高くなる。
【００２４】
コントローラ１０は、過去に一度もリスト３１、３２を作成していない場合には、全てのターゲット２０に対して各機器が有する機能の問合せを行って、その問合せ結果に基づいてリスト３１、３２を作成する。コントローラ１０は、電源が切断されても、これらのリスト３１、３２内のレコードを保持する。そして、コントローラ１０は、バスリセットの発生を検知すると、バスコンフィグレーション終了後に、各ターゲット２０からＧＵＩＤを受信して、図６に示されるようなＧＵＩＤリスト３４を作成し、バスリセット発生前の現リストＸ３２に格納されていた各レコードのＧＵＩＤが、ＧＵＩＤリスト３４に含まれていないときには、現リストＸ３２内の該当のレコードに相当するレコードをリストＹ３３に格納する。コントローラ１０は、電源が切断されても、リストＹ３３内のレコードを保持するが、ＧＵＩＤリスト３４内のレコードについては保持しない。
【００２５】
次に、図３乃至図１３を参照して、バス９に新たなターゲット２０が追加接続された場合や、バス９に接続されているターゲット２０が取り外された場合におけるコントローラ１０の処理について説明する。図７のフローチャートに示されるように、コントローラ１０は、バスリセットが発生して（Ｓ１）、バスコンフィグレーション終了後に各ターゲット２０からＧＵＩＤを受信すると、図６に示されるようなＧＵＩＤリスト３４を作成する（Ｓ２）。そして、図３に示されるバスリセット発生前の現ポインタリスト３１と同一フォーマットの新ポインタリスト４０（図９参照）、及び図４に示されるバスリセット発生前の現リストＸ３２と同一フォーマットの新リストＸ４２（図１０参照）を作成する。なお、図９と図１０は、レコードの格納が終了した後の新ポインタリスト４０と新リストＸ４２とを示したものであり、バスリセット発生直後の段階では、これらのリスト４０，４２にはレコードは格納されていない。
【００２６】
次に、コントローラ１０は、ＧＵＩＤリスト３４から、ＧＵＩＤを１つ取り出して（Ｓ３）、このＧＵＩＤを格納したレコードが、バスリセット発生前の現リストＸ３２内に存在するか否かをチェックする（Ｓ４）。例えば、ＧＵＩＤリスト３４内に、図６に示されるようなＧＵＩＤが格納されている場合には、先頭のＧＵＩＤであるａを取り出して、このＧＵＩＤ（ａ）を格納したレコードが、図４に示される現リストＸ３２内のレコードＡ〜Ｇに存在するか否かをチェックする。そして、この場合のように、該当のＧＵＩＤ（ａ）を格納したレコードが現リストＸ３２内のレコードに存在する場合には（Ｓ４でＹＥＳ）、コントローラ１０は、図４中の３０に示される現リストＸ３２内の該当のレコードＡをコピーして、図１０中の４７に示されるように、新リストＸ４２に格納すると共に、図９中の４８に示されるように、新ポインタリスト４０内に、新リストＸ４２のレコードＡへのポインタ（＊Ａ）を格納したレコード（ｄａｔａ０）を追加する（Ｓ５）。この後、コントローラ１０は、現リストＸ３２から、図４中の３０に示される該当のレコードＡを削除する（Ｓ６）。これに対して、ＧＵＩＤリスト３４から取り出したＧＵＩＤを格納したレコードが、バスリセット発生前の現リストＸ３２内に存在しない場合には、機器情報取得処理を行う（Ｓ７）。
【００２７】
次に、図８を参照して、上記の機器情報取得処理について説明する。例えば、図６中の３７に示されるＧＵＩＤ（ｈ）や、図６中の３８に示されるＧＵＩＤ（ｏ）を格納したレコードは、図４に示されるバスリセット発生前の現リストＸ３２内には存在しない。コントローラ１０は、上記Ｓ３の処理で取り出したＧＵＩＤが、このようなＧＵＩＤである場合には、該当のＧＵＩＤを格納したレコードが、図５に示されるリストＹ３３内に存在するか否かをチェックする（Ｓ２１）。例えば、上記Ｓ３の処理で取り出したＧＵＩＤが、図６中の３７に示される“ｈ”であるときには、ＧＵＩＤ＝“ｈ”のレコード５１が図５に示されるリストＹ３３内に存在するので、コントローラ１０は、リストＹ３３内の該当のレコード５１に基づいて作成したレコードＨ（図１０中の４３参照）を、新リストＸ４２に格納すると共に、図９中の４９に示されるように、新ポインタリスト４０内に、新リストＸ４２のレコードＨへのポインタ（＊Ｈ）を格納したレコード（ｄａｔａ５）を追加する（Ｓ２２）。この後、コントローラ１０は、図５に示されるリストＹ３３から、該当のレコード５１を削除する（Ｓ２３）。これにより、リストＹ３３内のデータは、図１１に示される内容になる。
【００２８】
上記Ｓ２１の判定処理で、該当のＧＵＩＤを格納したレコードが、リストＹ３３内に存在しない場合には（Ｓ２１でＮＯ）、コントローラ１０は、該当のＧＵＩＤを持つターゲット２０に対して各機器が有する機器情報の問合せコマンドを送信し、問合せ先のターゲット２０から取得した問合せ結果の情報に基づいて作成したレコードを、新リストＸ４２と新ポインタリスト４０に追加する（Ｓ２４、Ｓ２５）。例えば、上記Ｓ３の処理で取り出したＧＵＩＤが、図６中の３８に示される“ｏ”であるときには、ＧＵＩＤ＝“ｏ”のレコードが図５に示されるリストＹ３３内に存在しないので、コントローラ１０は、該当のＧＵＩＤ（ｏ）を持つターゲット２０に対して、そのターゲット２０が有する機器情報の問合せコマンドを送信する。そして、問合せ先のターゲット２０から取得した問合せ結果の情報に基づいて、図１０中の４４に示されるレコードＯを新リストＸ４２に格納すると共に、図９中の５０に示されるように、新ポインタリスト４０内に、新リストＸ４２のレコードＯへのポインタ（＊Ｏ）を格納したレコード（ｄａｔａ６）を追加する。
【００２９】
上記のような処理を繰り返して、ＧＵＩＤリスト３４に格納された全てのＧＵＩＤについての処理を完了すると（Ｓ８でＹＥＳ）、コントローラ１０は、図４に示されるバスリセット発生前の現リストＸ３２内に、削除されなかったレコードが残っているか否かをチェックする。その結果、現リストＸ３２内にレコードが残っている場合には（Ｓ９でＹＥＳ）、残っているレコードをリストＹ３３に追加する。例えば、バスリセット発生前の現リストＸ３２が図４に示される内容であり、バスリセット発生後に取得したＧＵＩＤリスト３４が図６に示される内容である場合には、上記Ｓ１乃至Ｓ８の処理の終了後に、現リストＸ３２内に、処理対象とならなかったレコードＣ（図４中の３５参照）とレコードＦ（図４中の３６参照）とが残ってしまう。従って、コントローラ１０は、図１２及び図１３に示されるように、これらのレコードＣ，Ｆと同一内容のレコード５３，５５をリストＹ３３に追加する（Ｓ１０）。このリストＹ３３へのレコードの追加処理については、後述する。このレコードの追加処理が終了すると、コントローラ１０は、バスリセット発生前の現リストＸ３２及び現ポインタリスト３１を削除して、図１０に示される新リストＸ４２及び図９に示される新ポインタリスト４０を、現リストＸ３２及び現ポインタリスト３１として保持する（Ｓ１１）。
【００３０】
次に、上記図４乃至図１３と図１５に加えて、図１４のフローチャートを参照して、図７中のＳ１０に示されるリストＹ３３へのレコードの追加処理について詳述する。リストＹ３３へのレコードの追加処理を行う際には、コントローラ１０は、リストＹ３３内のレコード数が最大になっているか否かを確認する（Ｓ３１）。そして、リストＹ３３内のレコード数が最大になっておらず（Ｓ３１でＮＯ）、リストＹ３３にレコードを追加格納することができるときには、リストＹ３３内の既存のレコードを削除する必要がないので、コントローラ１０は、現リストＸ３２内に残っているレコードに基づいて作成したレコードを、そのままリストＹ３３の最後に追加する（Ｓ３８）。例えば、リストＹ３３内に格納可能な最大のレコード数が６であり、リストＹ３３内に格納されているレコードが図１１に示される内容であるときには、図１２に示されるように、現リストＸ３２内に残っているレコードＣに基づいて作成したレコード５３を、そのままリストＹ３３の最後に追加する。
【００３１】
これに対して、リストＹ３３内のレコード数が最大になっており（Ｓ３１でＹＥＳ）、リストＹ３３にこれ以上レコードを格納することができないときには、リストＹ３３内の既存のレコードを削除する必要が生ずる。この場合には、コントローラ１０は、まず、コントローラ１０内のコンフィグレーションＲＯＭ１５内に格納された自機の種類に関する情報と、追加するレコードの元になる現リストＸ３２内の残レコードに含まれるターゲット２０の機器情報とに基づいて、追加対象となるレコードの機器情報の優先度を設定する（Ｓ３２）。そして、コントローラ１０は、この機器情報の優先度と、リストＹ３３内の各レコードの優先度とを、リストＹ３３内の先頭レコードから順に比較して（Ｓ３３）、追加対象となるレコードの機器情報の優先度よりも低い優先度のレコードを検出し、検出できた場合には（Ｓ３４でＹＥＳ）、最初に検出したレコードをリストＹ３３から削除して（Ｓ３６）、リストＹ３３内のレコードを先頭から順に詰める（Ｓ３７）。この後、コントローラ１０は、現リストＸ３２内に残っているレコードに基づいて作成したレコードを、リストＹ３３の最後に追加する（Ｓ３８）。例えば、リストＹ３３内に格納されているレコードが図１２に示される内容であるときに、現リストＸ３２内に残っているレコードＦ（図４中の３６参照）に基づいて作成したレコードの優先度が２であれば、この優先度（２）と、リストＹ３３内の各レコードの優先度とを、リストＹ３３内の先頭レコードから順に比較する。そして、レコードＦに基づいて作成したレコード５５の優先度（２）よりも低い優先度のレコードの中で最初に検出したレコード５２（図１２参照）をリストＹ３３から削除して、図１３に示されるように、リストＹ３３内のレコードを先頭から順に詰め、レコードＦに基づいて作成したレコード５５をリストＹ３３の最後に追加する。
【００３２】
これに対して、追加対象となるレコードの機器情報の優先度よりも低い優先度のレコードを検出できなかった場合には（Ｓ３４でＮＯ）、コントローラ１０は、追加対象となるレコードの機器情報の優先度と同じ優先度のレコードをリストＹ３３内の先頭レコードから順に検出する（Ｓ３５）。そして、同じ優先度のレコードを検出できた場合には（Ｓ３５でＹＥＳ）、最初に検出したレコードをリストＹ３３から削除して（Ｓ３６）、リストＹ３３内のレコードを先頭から順に詰める（Ｓ３７）。この後、コントローラ１０は、現リストＸ３２内に残っているレコードに基づいて作成したレコードを、リストＹ３３の最後に追加する（Ｓ３８）。例えば、リストＹ３３内に格納されているレコードが図１３に示される内容であるときに、バス９に接続されていたＧＵＩＤ＝“ｇ”のターゲット２０が取り外された場合には、図１５に示されるように、図４中のレコードＧに基づいて作成したレコード５６の優先度が２であるため、コントローラ１０は、リストＹ３３内にレコード５６の優先度（２）よりも低い優先度のレコードを検出することができない。この場合、コントローラ１０は、レコード５６の優先度（２）と同じ優先度のレコードをリストＹ３３内の先頭レコードから順に検出して、最初に検出したレコード５４（図１３参照）をリストＹ３３から削除して、図１５に示されるように、リストＹ３３内のレコードを先頭から順に詰め、レコードＧに基づいて作成したレコード５６をリストＹ３３の最後に追加する。
【００３３】
しかし、同じ優先度のレコードを検出できなかった場合には（Ｓ３５でＮＯ）、リストＹ３３へのレコードの追加を行わない。
【００３４】
上述したように、第１の実施形態によるコントローラ１０によれば、リストＹ３３にレコードを追加することができない場合に、追加対象となるレコードに含まれているターゲット２０の機器情報と、コントローラ１０内のコンフィグレーションＲＯＭ１５内に格納されたコントローラ１０の種類の情報とに基づいて、該当のターゲット２０がコントローラ１０によって制御される可能性が高いか否かという観点から、該当のターゲット２０の機器情報の優先度を設定し、リストＹ３３に格納されているレコードの中から、該当のターゲット２０の機器情報の優先度よりも低い優先度のレコードを削除するようにした。また、該当のターゲット２０の機器情報の優先度よりも低い優先度のレコードを検索することができなかった場合には、リストＹ３３に格納されている同じ優先度のレコードの中で、最も格納時期が古いレコードを削除するようにした。これにより、リストＹ３３に該当のコントローラ１０によって制御される可能性が高いターゲット２０の機器情報を残すことができるので、現リストＸ３２とリストＹ３３に格納された機器情報に基づいて、各ターゲット２０を制御することができる確立を高めることができる。従って、各ターゲット２０から機器情報を直接取得する頻度を低下させることができるので、制御対象となる全てのターゲット２０の機器情報を取得するのに要する時間を短縮することができる。
【００３５】
次に、図１６を参照して、第２の実施形態によるコントローラ１について説明する。図に示されるディジタルチューナー６０が、第２の実施形態によるコントローラ１に相当する。第１の実施形態では、コントローラ１０の種類に関する情報と、追加するレコードの元になるレコードに含まれる機器情報とに基づいて、追加対象となるレコードの機器情報の優先度を設定したが、第２の実施形態では、コントローラ１０の種類に関する情報と、追加するレコードの元になるレコードに含まれるターゲット２０の機器情報とに加えて、該当のターゲット２０とコントローラ１０との距離を考慮して、追加対象となるレコードの機器情報の優先度を設定するようにした。図に示されるように、ディジタルチューナー６０には、IEEE1394ケーブル６７（以下、ケーブルと略す）を介して、ディジタルテレビ６１、Hard Disc Recorder(ＨＤ−ＲＥＣ)６２、Digital Versatile Disc Recorder(ＤＶＤ−ＲＥＣ)６３、Digital Video Home System（Ｄ−ＶＨＳ）６４、及びディジタルビデオカメラ６５が接続されている。これらのディジタル機器６１乃至６５は、コントローラ１であるディジタルチューナー６０から見たターゲット２０である。これらのディジタル機器６１乃至６５の優先度は、図中の括弧内に示されように、ディジタルテレビ６１については３、ＨＤ−ＲＥＣ６２については２上、ＤＶＤ−ＲＥＣ６３については２中、Ｄ−ＶＨＳ６４については２下、ディジタルビデオカメラ６５については１である。これらのディジタル機器のうち、ＨＤ−ＲＥＣ６２、ＤＶＤ−ＲＥＣ６３及びＤ−ＶＨＳ６４については、コントローラ１０の種類に関する情報と、追加するレコードの元になるレコードに含まれる機器情報とに基づいて決定された優先度は、いずれも２であるが、各ディジタル機器６２乃至６４とコントローラ１０であるディジタルチューナー６０との距離が異なるため、ディジタルチューナー６０との距離が近いほど、優先度が高くなるように設定した。この理由は、ディジタルチューナー６０との距離が近いほど、ディジタルチューナー６０による制御の対象となる確立が高いと考えられるからである。
【００３６】
なお、本発明は、上記実施形態に限られるものではなく、様々な変形が可能である。例えば、上記第１の実施形態では、リストＹにレコードを追加する際に、リストＹの最後にレコードを追加したが、リストＹの先頭にレコードを追加してもよい。また、リストＹ内の削除されたレコードが存在した位置にレコードを追加してもよい。また、上記第２の実施形態において優先度を設定する際の基準となる「距離」は、ケーブルの合計長であってもよいし、コントローラから該当のターゲットに至るまでの中継の回数であってもよい。
【図面の簡単な説明】
【００３７】
【図１】本発明の第１の実施形態によるコントローラ機器と各ターゲット機器の電気的ブロック構成を示す図。
【図２】上記コントローラ機器に格納されている現ポインタリストのイメージを示す図。
【図３】上記現ポインタリストの内容を示す図。
【図４】上記コントローラ機器に格納されている現リストＸの内容を示す図。
【図５】上記コントローラ機器に格納されているリストＹのバスリセット前の内容を示す図。
【図６】上記コントローラ機器に格納されているＧＵＩＤリストの内容を示す図。
【図７】バスに新たなターゲットが追加接続された場合や、バスに接続されているターゲットが取り外された場合におけるコントローラの処理のフローチャート。
【図８】図７中の機器情報取得処理のフローチャート。
【図９】上記コントローラ機器に格納されている新ポインタリストの内容を示す図。
【図１０】上記コントローラ機器に格納されている新リストＸの内容を示す図。
【図１１】図５に示されるリストＹからＧＵＩＤ＝“ｈ”のレコードを削除した様子を示す図。
【図１２】図１１に示されるリストＹにＧＵＩＤ＝“ｃ”のレコードを追加した様子を示す図。
【図１３】図１２に示されるリストＹからＧＵＩＤ＝“ｊ”のレコードを削除して、ＧＵＩＤ＝“ｆ”のレコードを追加した様子を示す図。
【図１４】図７中のリストＹへのレコード追加処理のフローチャート。
【図１５】図１２に示されるリストＹからＧＵＩＤ＝“ｉ”のレコードを削除して、ＧＵＩＤ＝“ｇ”のレコードを追加した様子を示す図。
【図１６】本発明の第２の実施形態によるコントローラ機器と各ターゲット機器との距離と優先度を示す図。
【符号の説明】
【００３８】
９    IEEE1394シリアルバス
１０  コントローラ（IEEE1394シリアルバスに接続されるコントローラ機器）
１１  ＣＰＵ（第１の検索手段、第２の検索手段、制御手段、判定手段）
１２  メモリ（記憶手段）
１３  機器情報リスト作成プログラム（第１の検索手段、第２の検索手段、判定手段）
１７  ＬＩＮＫ（ＧＵＩＤ受信手段、送信手段、問合せ結果受信手段）
１８  ＰＨＹ（ＧＵＩＤ受信手段、送信手段、問合せ結果受信手段）
１９  IEEE1394ポート（ＧＵＩＤ受信手段、送信手段、問合せ結果受信手段）
２０  ターゲット
３１  現ポインタリスト（現機器情報リスト）
３２  現リストＸ（現機器情報リスト）
３３  リストＹ（旧機器情報リスト）
【図１】
2005086556.tif 000003
【図２】
2005086556.tif 000004
【図３】
2005086556.tif 000005
【図４】
2005086556.tif 000006
【図５】
2005086556.tif 000007
【図６】
2005086556.tif 000008
【図７】
2005086556.tif 000009
【図８】
2005086556.tif 000010
【図９】
2005086556.tif 000011
【図１０】
2005086556.tif 000012
【図１１】
2005086556.tif 000013
【図１２】
2005086556.tif 000014
【図１３】
2005086556.tif 000015
【図１４】
2005086556.tif 000016
【図１５】
2005086556.tif 000017
【図１６】
2005086556.tif 000018