(57)【要約】【課題】制御対象のサブユニットの情報を確実に不揮発性メモリに記憶してそのターゲットを制御する。【解決手段】ステップ６においてサブユニットを含むターゲット機器からシリアルバスインターフェースを介してサブユニットの情報を取得し、ステップ１１、２３において、取得したサブユニット情報に基づいてそのサブユニットが制御対象か否かを判断し、ステップ１３において、制御対象と判断したサブユニットの情報を優先的に不揮発性メモリに記憶する。【選択図】        図１
2004185265.tif 000002
【特許請求の範囲】
【請求項１】
サブユニットを含むターゲット機器からシリアルバスインターフェースを介して前記サブユニットの情報を取得する手段と、
前記取得したサブユニット情報に基づいてそのサブユニットが制御対象か否かを判断する手段と、
前記判断結果に基づいて制御対象と判断したサブユニットの情報を優先的に不揮発性メモリに記憶する手段とを、
備えたコントローラ機器。
【請求項２】
前記制御対象と判断したサブユニットの情報が前記不揮発性メモリの容量を超える場合に、前記サブユニットの優先順に前記不揮発性メモリに記憶することを特徴とする請求項１に記載のコントローラ機器。
【請求項３】
サブユニットを含むターゲット機器からシリアルバスインターフェースを介して前記サブユニットの情報を取得するステップと、
前記取得したサブユニット情報に基づいてそのサブユニットが制御対象か否かを判断するステップと、
前記判断結果に基づいて制御対象と判断したサブユニットの情報を優先的に不揮発性メモリに記憶するステップとを、
備えたサブユニット情報記憶方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ターゲット機器からシリアルバスインターフェースを介してサブユニットの情報を取得して不揮発性メモリに記憶するコントローラ機器及びサブユニット情報記憶方法に関する。
【０００２】
【従来の技術】
例えばＶＣＲ（Ｖｉｄｅｏ  Ｃａｓｓｅｔｔｅ  Ｒｅｃｏｒｄｅｒ）やＳＴＢ（Ｓｅｔ  Ｔｏｐ  Ｂｏｘ）などのデジタルＡＶ機器を相互接続して、デジタルコンテンツと機器間の制御コマンドを送受信するインターフェースとして、「ＩＥＥＥ１３９４ハイ・パフォーマンス・シリアルバス」（以下、ＩＥＥＥ１３９４と略記する）がある。
【０００３】
ＩＥＥＥ１３９４は２種類のデータ転送モードを備え、通常のデータ転送に使用する非同期（Ａｓｙｎｃｈｒｏｎｏｕｓ）転送モードと、所定の時間（例えば１２５マイクロ秒）内にデータ転送されることが保証されている同期（Ｉｓｏｃｈｒｏｎｏｕｓ）転送モードがある。例えばマルチメディアシステムでは、非同期転送モードは転送の時間遅れがあまり問題にならないコマンドなどの転送に用いられ、同期転送モードは時間遅れが問題となる動画や音声データなどの転送に用いられる。
【０００４】
ＩＥＥＥ１３９４バスでは、６４ビットの固定アドレッシングが用いられ、その上位１６ビットがバス上の機器（ノード）のアドレスを示し、下位４８ビットは各機器内のアドレス空間を示す。上位１６ビットの内、その上位１０ビットはバスＩＤと呼ばれ、ローカルバス内では、全ビット＝１の１０２３が用いられる。下位６ビットはノードＩＤと呼ばれ、ＩＥＥＥ１３９４バスに新たな機器が接続されたり、バスから機器が取り外されたりした場合に発生するバスリセット時に、各機器に０から昇順で割り当てられる。非同期転送モードでは、このノードＩＤによって、パケットの転送元と転送先の機器（ノード）が決定される（例えば特許文献１）。
【０００５】
ＩＥＥＥ１３９４を搭載するＡＶ機器は、機器ごとに異なる６４ビットのＮｏｄｅＵｎｉｑｕｅ  ＩＤと呼ばれる識別番号をＣｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭと呼ばれる機器の情報を格納するメモリ内に持つことが決められている。ＩＥＥＥ１３９４バスに接続されている外部機器は、このＲＯＭの内容を非同期転送モードの読み出し転送で読み出すことが可能であるため、ＩＥＥＥ１３９４バスに接続されている個々の機器を一意に識別するための情報として用いることができる。
【０００６】
先に説明したノードＩＤは、パケットの転送アドレスを設定するのに用いられるが、バスリセットの度に、同一の機器に対して同一のノードＩＤが割り当てられる保証はない。よって、バスリセットを跨いで個々の機器を識別し、同一のアプリケーションを継続させるためには、バスリセット発生の度にバス上に存在する全ての機器（ノード）のＮｏｄｅ  Ｕｎｉｑｕｅ  ＩＤを読み出し、そのノードＩＤと関連付けて記憶する必要がある。
【０００７】
民生用ＡＶ機器では、上記のＣｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭには、Ｎｏｄｅ  Ｕｎｉｑｕｅ  ＩＤの他に、機器のベンダー名、モデル名などを示すテキストコードなども格納されているので、これらの情報を取得し、ＯＳＤなどでユーザに提示することが可能である。これらの情報は、いったん取得すれば変化するものではないため、バスエラーによって正常に情報が取得できなくなることを回避するとともに、バスリセット時などのバストラフィックを軽減させるため、Ｎｏｄｅ  Ｕｎｉｑｕｅ  ＩＤと関連付けて不揮発性メモリに記憶することが多い（例えば特許文献２）。
【０００８】
ＩＥＥＥ１３９４でＡＶ機器を制御するための仕様として、１３９４ＴＡ（Ｔｒａｄｅ  Ａｓｓｏｃｉａｔｉｏｎ）が定めた「ＡＶ／Ｃデジタル・インターフェース・コマンドセット」（以下、この仕様に基づくコマンドをＡＶ／Ｃコマンドと略記する）がある。その仕様の中で、図３に示すＡＶ／Ｃコマンドフレームと、図４に示すＡＶ／Ｃレスポンスフレームを使用して、それぞれコマンドとそれに対するレスポンスを送受信することが決められている。なお、ＡＶ／Ｃコマンド／レスポンスフレームの転送には前記非同期転送モードが使用される。
【０００９】
図３、図４に示されるＡＶ／Ｃコマンドフレーム及びＡＶ／Ｃレスポンスフレームを先頭のフィールドから説明する。先頭の「００００」は、コマンドセットがＡＶ／Ｃデジタル・インターフェース・コマンドセットであることを示す。次の「ｃｔｙｐｅ」は図５に詳しく示すコマンドタイプである。「ｓｕｂｕｎｉｔ＿ｔｙｐｅ」は図６に詳しく示すサブユニットのタイプであり、例えば５はチューナー（Ｔｕｎｅｒ）を表す。「ｓｕｂｕｎｉｔ＿ＩＤ」は図７に詳しく示すようにサブユニットの中での識別番号であり、各サブユニットのうち最大５台までを識別できる。「ｓｕｂｕｎｉｔ＿ｔｙｐｅ」と「ｓｕｂｕｎｉｔ＿ＩＤ」を合わせて図８に詳しく示すようにＡＶ／Ｃアドレスという。「ｏｐｃｏｄｅ」はコマンドの内容を示す。「ｏｐｅｒａｎｄ［０］〜［ｎ］」は前記「ｏｐｃｏｄｅ」に付帯するパラメータを示し、図９に詳しく示すように、例えばｏｐｃｏｄｅ＝Ｂ２１６、ｏｐｅｒａｎｄ＝７０１６はパワーオンを表す。「ｒｅｓｐｏｎｓｅ」は、図１０に詳しく示すようにコマンドの受け付け状況を表す。
【００１０】
１３９４バスに接続されている、ある機器が他の機器の動作を制御しようとする場合、このＡＶ／Ｃコマンドフレームをその機器に対して送る（以下では、便宜上コマンドを発行する機器をコントローラ、コマンドを受信する機器をターゲットと呼ぶ）。コマンドを受信したターゲットは、ＡＶ／Ｃコマンドフレームの内容を吟味し、制御内容を受け入れたどうかを示すＡＶ／Ｃレスポンスフレームをコントローラに送る。例えば図１１に示すようにパワーオンのＣＯＮＴＲＯＬのコマンドフレームを受け取ったターゲットがその制御内容を受け入れる場合には、図１２に示すようにｒｅｓｐｏｎｓｅ＝ＡＣＣＥＰＴＥＤとしたＡＶ／Ｃレスポンスフレームをコントローラに送り、機器の状態をパワーオンに遷移させる。一方、受け入れない場合には、図１３に示すようにｒｅｓｐｏｎｓｅ＝ＲＥＪＥＣＴＥＤとしたＡＶ／  Ｃレスポンスフレームをコントローラに送る。
【００１１】
次にＡＶ／Ｃコマンドで使用されるユニットとサブユニットについて説明する。ユニットとは１つのＡＶ機器を示し、サブユニットはそのＡＶ機器内に存在する機能単位を表す。例えば図１４にＶＣＲの例を示す。通常ＶＣＲは、テープレコーダ／プレイヤ部分とアナログチューナー部分を併せ持つので、ＶＣＲがユニットとなり、テープレコーダ／プレイヤとチューナーがサブユニットとなる。ＡＶ／Ｃコマンドは、ユニット又はサブユニットに対して送ることが可能である。例えばｓｕｂｕｎｉｔ＿ｔｙｐｅ＝１Ｆ１６，  ｓｕｂｕｎｉｔ＿ＩＤ  ＝  ７，  ｏｐｃｏｄｅ＝Ｂ２１６，  ｏｐｅｒａｎｄ＝７０１６をＶＣＲに送るとＶＣＲ全体がパワーオンする。一方、ｓｕｂｕｎｉｔ＿ｔｙｐｅ＝５，  ｓｕｂｕｎｉｔ＿ＩＤ  ＝０，  ｏｐｃｏｄｅ＝Ｂ２１６，  ｏｐｅｒａｎｄ＝７０１６  をＶＣＲに送るとＶＣＲの中のチューナー部分がパワーオンする。
【００１２】
ターゲットがユニット内にどのようなサブユニットを持っているかをコントローラが確認するためのＡＶ／Ｃコマンドとして、「ＳＵＢＵＮＩＴ  ＩＮＦＯ」コマンドがある。このコマンドを受信したターゲットは、自機器（ユニット）内に含まれるサブユニットの種類とその数をＡＶ／Ｃレスポンスフレームでコントローラに伝える。図１５に「ＳＵＢＵＮＩＴ  ＩＮＦＯ」コマンドのＡＶ／Ｃコマンドフレームを、図１６にそれに対するレスポンスフレームの一例を示す。
【００１３】
レスポンスフレームのｏｐｅｒａｎｄ［１］〜［４］には、サブユニットタイプとそのサブユニットの最大ＩＤを設定する。図１６に示した例において、ｏｐｅｒａｎｄ［１］では、サブユニットとしてチューナーを持ち、その最大ＩＤが２であることを示す。ｏｐｅｒａｎｄ［２］では、サブユニットとしてテープレコーダ／プレイヤを持ち、その最大ＩＤが１であることを示す。ｏｐｅｒａｎｄ［３］〜［４］では、それ以外にサブユニットを持たないことを示すために、ＦＦ１６が設定される。つまり、この例は、チューナーを３つ、テープレコーダ／プレイヤを２つ持つということになる。
【００１４】
ｏｐｅｒａｎｄ［０］のｐａｇｅは、このコマンド構造においてｏｐｅｒａｎｄ［１］〜［４］を用いて最大４種類のサブユニットの情報しか転送できないことを補うために用意されている仕組みであり、５種類以上のサブユニットを持つ可能性のあるユニットに対しては、このｐａｇｅを指定して次のサブユニット情報を読み出すことが可能となっている。
【００１５】
ターゲットのユニットがどのような種類の機器であるかによって、それを制御するアプリケーションは異なる。よって、コントローラがターゲットを制御するアプリケーションを実行する前に、ターゲットがどのような種別の機器であるかを識別する必要がある。また、ユーザが接続されているターゲット機器の中から、所望の制御対象機器を選択するための情報として、このターゲットの種別を利用することもできる。
【００１６】
このターゲット機器の種別は、いったん識別を行い確定すれば変化するものではないため、Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭの内容などと同様に、Ｎｏｄｅ  Ｕｎｉｑｕｅ  ＩＤと関連付けて不揮発性メモリに記憶しておく（例えば特許文献３）。
【００１７】
【特許文献１】
特開平１０−３０８７６４号公報
【特許文献２】
特開平１１−５５２９７号公報
【特許文献３】
特開２００２−６４８８４号公報
【００１８】
ここで、ＩＥＥＥ１３９４では、バスに新たな機器が接続されるとバスリセットが発生するため、通常、バスリセット終了後に接続された機器の種別を確認する処理を行う。図１７は、従来のコントローラが行う機器識別処理の一例を示すフローチャートである。まず、バスリセット発生を検出したら（ステップ１）、以前に取得した機器情報があれば不揮発性メモリから読み出す（ステップ２）。この不揮発性メモリからの機器情報の読み出しは、必ずしもバスリセット発生時に毎回行う必要はなく、コントローラの電源投入時に行ってもよい。次に、機器を一意に識別可能なＮｏｄｅ  Ｕｎｉｑｕｅ  ＩＤをバス上の全ての機器から読み出し（ステップ３）、新たな機器が接続されたかどうかを不揮発性メモリから読み出した機器情報を用いて確認する（ステップ４）。この確認の方法は、現在バス上に存在する機器のＮｏｄｅ  Ｕｎｉｑｕｅ  ＩＤと機器情報として記憶していたものとを比較し、どの機器情報のＩＤとも一致しない機器を新たにバスに接続された機器と判断する。
【００１９】
その後、新たな機器、つまり機器の情報を未だ取得していない機器に対しては、その機器のＣｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭを読み出すことにより、ベンダー名、モデル名などの情報を取得する（ステップ５）。さらに、機器の種別を決定するために、ＳＵＢＵＮＩＴ  ＩＮＦＯコマンドでサブユニット情報を取得する（ステップ６）。その後、ステップ４で取得できたサブユニットに対してその種別を決定するために、以下のステップ７から１０を繰り返す。通常、ＳＵＢＵＮＩＴ  ＩＮＦＯコマンドのレスポンスの先頭（ｏｐｅｒａｎｄ  ［１］）に記述されたサブユニットのＩＤ＝０のサブユニットから順にサブユニットの詳細情報を取得する。
【００２０】
ステップ９ではサブユニットの詳細な識別を行う。この詳細な識別というのは、サブユニットのサブユニットタイプと、それを制御するアプリケーションが存在するか否かによって変わる。例えば、テープレコーダ／プレイヤサブユニットなら、Ｄ−ＶＨＳタイプとＤＶタイプでは制御方法が異なるのでその詳細識別をテープレコーダ／プレイヤサブユニットに対して行う。また、チューナーサブユニットを制御対象としないなら、そのサブユニットの詳細識別は行わないなどの判断基準が考えられる。
【００２１】
ステップ１０では、サブユニットタイプに加えて、ステップ９で取得したサブユニットの詳細識別情報を用いて、サブユニットの種別を決定する。例えばテープレコーダ／プレイヤサブユニットがＤＶタイプと詳細識別されたなら、そのサブユニットの種別を「ＤＶ」とする。チューナーサブユニットが制御対象でないなら、「制御対象外」と判断する。
【００２２】
図１４に例示したサブユニット構成を持つ機器に対しては、テープレコーダ／プレイヤを１つ、チューナーを１つ持っているので、ステップ７から１０を２回繰り返す。テープレコーダ／プレイヤサブユニットのＩＤ＝０に対して詳細識別を行い、サブユニットの種別を、例えば「Ｄ−ＶＨＳ」と決定する。チューナーは制御対象ではないのなら、サブユニット種別を、例えば「制御対象外」とする。
【００２３】
図１８は、不揮発性メモリに記憶する各機器のサブユニット情報のテーブルの例である。ＡＶ／Ｃコマンドの発行に必要なサブユニットタイプ、サブユニットＩＤと共に、サブユニットの種別を記憶する。図１８では、図１４のサブユニット構成を持つ機器の例を示した。通常、不揮発性メモリの容量には限りがあるので、不揮発性メモリに記憶可能な各機器のサブユニット情報の最大数は限定される。この例では、記憶可能な最大数を４と設定した場合である。
【００２４】
この不揮発性メモリに記憶可能な最大数を超えてサブユニット情報を記憶することはできないため、ステップ７で不揮発性メモリに格納可能なサブユニット情報の最大数を超えないことを確認し、超えた場合にはそこでサブユニットの詳細識別を終了する。ステップ６から１０で取得したサブユニット情報により、ステップ１２で機器の種別を決定する。
【００２５】
例えば、図１４のサブユニット構成の機器に対して、テープレコーダ／プレイヤサブユニットが「Ｄ−ＶＨＳ」タイプのサブユニット、チューナーサブユニットが「制御対象外」と識別された場合には、その機器の種別を「Ｄ−ＶＨＳ」とする。この機器の種別は、Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭから取得されるベンダー名、モデル名などの情報と共に、このユニットの種別をＯＳＤなどでユーザに表示することにより、ユーザが制御対象の機器を選択するための情報として用いることができる。ステップ１３ではＣｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭから取得される情報などの機器の情報と共に、サブユニット情報を不揮発性メモリに記憶する。新たに接続された機器の数だけ、ステップ４からステップ１３を繰り返したら、全ての機器の識別が終了となる。
【００２６】
コントローラは、この機器識別のステップで判断された機器（ユニット）もしくはサブユニットの種別（Ｄ−ＶＨＳ、ＤＶ、ＳＴＢなど）に基づいて、適当なアプリケーションを選択し、ＡＶ／Ｃコマンドを用いてターゲットを制御することができる。また、これらの機器（ユニット）とサブユニットの情報を不揮発性メモリに記憶しているので、コントローラの電源が切断され、再投入されたときにも、再度機器の識別を行う必要がなく、バスエラーなどによって正常に情報が取得できなくなることを回避するとともに、バスリセット時のバストラフィックを軽減させ、すばやく機器の情報をユーザに提示することが可能となる。
【００２７】
【発明が解決しようとする課題】
コントローラ機器がサブユニット情報を不揮発性メモリに蓄積する場合、そのメモリハードウェアのコストとの関係で無尽蔵に大きなメモリを実装できるわけではない。よって、通常、不揮発性メモリに記憶可能な各機器のサブユニット情報の最大数は限定される。この記憶可能な最大数を、例えば４としたコントローラの場合、図１４の例のように、ターゲット機器のサブユニットの数（２つ）がこれを下回る場合には問題ないが、図１６で示したようなＳＵＢＵＮＩＴ  ＩＮＦＯコマンドのレスポンスを返す機器を識別するときに問題が生じる。
【００２８】
この例の場合、チューナーサブユニットとテープレコーダ／プレイヤサブユニットが合計５つで、全てのサブユニット情報を記憶することは不可能となる。図１７で示した従来の機器識別の処理では、ＳＵＢＵＮＩＴ  ＩＮＦＯコマンドのレスポンスのｏｐｅｒａｎｄ［１］に記述されているチューナーサブユニットのＩＤ＝０からサブユニットの詳細識別を開始し、ステップ７からステップ１０のサブユニット識別を行う。次に、このステップをチューナーサブユニットのＩＤ＝１、ＩＤ＝２、テープレコーダ／プレイヤサブユニットのＩＤ＝０の順に行う。この段階で、不揮発性メモリに記憶できるサブユニット数の上限に達したので、ステップ７の分岐で次のテープレコーダ／プレイヤサブユニットのＩＤ＝１の識別には進まず、サブユニットの識別は終了し、ステップ１２の機器種別の決定へと進む。
【００２９】
仮に、上記ターゲットのテープレコーダ／プレイヤサブユニットのＩＤ＝０は「ＤＶ」タイプと識別され、テープレコーダ／プレイヤサブユニットのＩＤ＝１のみが「Ｄ−ＶＨＳ」のサブユニットであったとする。このとき、コントローラが、チューナーやＤＶを制御するようなアプリケーションは実装しておらず、Ｄ−ＶＨＳを制御するアプリケーションのみを実装しているとすると、不要であるチューナーサブユニットのサブユニット情報は記憶するが、制御を試みたい「Ｄ−ＶＨＳ」タイプのサブユニットを識別せず、その情報も記憶しないので、このサブユニットを制御することができなくなってしまう。
【００３０】
本発明は上記従来例の問題点に鑑み、制御対象のサブユニットの情報を確実に不揮発性メモリに記憶してそのターゲットを制御することができるコントローラ機器及びサブユニット情報記憶方法を提供することを目的とする。
【００３１】
【課題を解決するための手段】
本発明は上記目的を達成するために、サブユニットが制御対象か否かを判断し、制御対象と判断したサブユニットの情報を優先的に不揮発性メモリに記憶するようにしたものである。
【００３２】
すなわち本発明によれば、サブユニットを含むターゲット機器からシリアルバスインターフェースを介して前記サブユニットの情報を取得する手段と、
前記取得したサブユニット情報に基づいてそのサブユニットが制御対象か否かを判断する手段と、
前記判断結果に基づいて制御対象と判断したサブユニットの情報を優先的に不揮発性メモリに記憶する手段とを、
備えたコントローラ機器が提供される。
【００３３】
また本発明によれば、サブユニットを含むターゲット機器からシリアルバスインターフェースを介して前記サブユニットの情報を取得するステップと、
前記取得したサブユニット情報に基づいてそのサブユニットが制御対象か否かを判断するステップと、
前記判断結果に基づいて制御対象と判断したサブユニットの情報を優先的に不揮発性メモリに記憶するステップとを、
備えたサブユニット情報記憶方法が提供される。
【００３４】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１は本発明に係るコントローラ機器及びサブユニット情報記憶方法の一実施の形態を示すフローチャート、図２は図１のサブユニット決定処理を詳しく説明するためのフローチャートである。
【００３５】
本発明では、ターゲット機器（ユニット）内に含まれるサブユニットの詳細識別をＲＡＭ上で展開可能な最大数まで行い、その中からコントローラとして用意しているアプリケーションを実現するために必要となるサブユニットを優先的に選択し、不揮発性メモリへ記憶するようにしている。
【００３６】
図１において、まず、バスリセット発生を検出したら（ステップ１）、以前に取得した機器情報があれば不揮発性メモリから読み出す（ステップ２）。次に、機器を一意に識別可能なＮｏｄｅ  Ｕｎｉｑｕｅ  ＩＤをバス上の全ての機器から読み出し（ステップ３）、新たな機器が接続されたかどうかを不揮発性メモリから読み出した機器情報を用いて確認する（ステップ４）。その後、新たな機器、つまり機器の情報を未だ取得していない機器に対しては、その機器のＣｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭから必要な情報を取得する（ステップ５）。さらに、機器の種別を決定するために、ＳＵＢＵＮＩＴ  ＩＮＦＯコマンドでサブユニット情報を取得する（ステップ６）。ここまでは、従来例と同じである。
【００３７】
その後、ステップ４で取得できたサブユニットに対してその種別を決定するために、以下のステップ７ａ、８からステップ１０までを繰り返す。ステップ８からステップ１０は従来例と同じであるが、ステップ７ａの判断基準が異なる。従来のステップ７では、不揮発性メモリに格納可能なサブユニット情報の最大数を超えないことを確認し、超えた場合にはそこでサブユニットの詳細識別を終了していたが、本発明のステップ７ａでは、サブユニットの情報取得最大数を超えない限りサブユニットの詳細識別を行う。
【００３８】
ここでいうサブユニットの情報取得最大数というのは、不揮発性メモリの容量には依存せず、図１８に示したようなサブユニット情報をいったんＲＡＭ上に展開することを想定し、そのＲＡＭ上で許される最大容量から決定される数である。通常、コントローラには、不揮発性メモリと比して、十分大きなＲＡＭが搭載されているので、この最大数には、ターゲット内のサブユニットを全て識別するのにほぼ十分な大きさの数を設定する。
【００３９】
ステップ７ａからステップ１０までの繰り返しで、全てのサブユニットの詳細識別を行った後、ステップ１１で、ＲＡＭ上に展開された全てのサブユニット情報の中から、コントローラとして必要であるサブユニットの情報を優先的に選択する。ステップ１１では、ステップ１０で選択したサブユニット情報により、機器の種別を決定する。ステップ１２では、Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭから取得される情報などの機器の情報と共に、ステップ１０で選択したサブユニット情報を不揮発性メモリに記憶する。新たに接続された機器の数だけ、ステップ４からステップ１２を繰り返したら、全ての機器の識別が終了となる。
【００４０】
図２に、ステップ１１において優先的に不揮発性メモリに記憶するサブユニットの決定アルゴリズムの実施例のフローチャートを示す。先にＲＡＭ上に取得したサブユニット情報の先頭から検索（選択）を開始し（ステップ２１）、まず制御対象のサブユニットを検索し、そのサブユニットを優先的に記憶するためにステップ２２からステップ２６を繰り返す。まず、不揮発性メモリに空きがあるかどうかを確認し（ステップ２２）、空きが無い場合には終了する。
【００４１】
ステップ２２において空きがある場合には、そのサブユニットが制御対象であるか否かを確認し（ステップ２３）、制御対象のサブユニットである場合にはその情報を不揮発性メモリに記憶するように設定する（ステップ２３→２４）。続くステップ２５においてそのサブユニットが最後のサブユニットでない場合には次のサブユニットを選択し（ステップ２５→２６）、ステップ２２に戻る。以上のループで制御対象のサブユニットを全て不揮発性メモリに記憶するように設定することができることになる。
【００４２】
次のステップ２７からステップ３１では、残りのサブユニットを不揮発性メモリに空きがある分だけ記憶する。詳しく説明すると、まず、ステップ２７では、不揮発性メモリに記憶していない最初のサブユニットを選択する。次いで不揮発性メモリに空きがあるかどうかを確認し（ステップ２８）、空きが無い場合には終了する。ステップ２８において空きがある場合には、その情報を不揮発性メモリに記憶するように設定する（ステップ２９）。続くステップ３０においてそのサブユニットが最後のサブユニットでない場合には次のサブユニットを選択し（ステップ３０→３１）、ステップ２８に戻る。
【００４３】
上記例では、優先度の判断として、制御対象であるかないかの２段階の場合を示したが、例えば制御対象のサブユニットの中でも、Ｄ−ＶＨＳよりもＤＶを優先するなど、更に優先度の段階を増やしてもよい。この場合には、制御対象と判断したサブユニットの情報が不揮発性メモリの容量を超える場合に、サブユニットの優先順に不揮発性メモリに記憶するようにしてもよい（すなわち、優先度が高い順からサブユニットを不揮発性メモリに記憶してもよい）。
【００４４】
本発明を図１６に示したサブユニット構成を持つ機器に適応した場合の例を以下に示す。この例では、コントローラとしては、Ｄ−ＶＨＳタイプのテープレコーダ／プレイヤサブユニットのみを制御対象とし、不揮発性メモリには４つのサブユニット情報を記憶可能で、ＲＡＭ上に展開できるサブユニット情報の最大数を３０とした場合である。
【００４５】
図１で示した機器識別の処理フローチャートのステップ６で取得したサブユニットは、チューナーサブユニット３つとテープレコーダ／プレイヤサブユニット２つで、合計５つであるので、ステップ７ａの判断では、サブユニット情報の最大数（＝３０）を超えることはない。よって、ＳＵＢＵＮＩＴ  ＩＮＦＯコマンドのレスポンスのｏｐｅｒａｎｄ［１］に記述されているチューナーサブユニットのＩＤ＝０からサブユニットの詳細識別を開始し、チューナーサブユニットのＩＤ＝１、ＩＤ＝２、テープレコーダ／プレイヤサブユニットのＩＤ＝０、ＩＤ＝１の順に、全てのサブユニットに対して詳細識別を行うことになる。テープレコーダ／プレイヤサブユニットのＩＤ＝０のサブユニットの種別はＤＶタイプ、ＩＤ＝１のサブユニットの種別はＤ−ＶＨＳタイプと識別されたとする。
【００４６】
ステップ１１において優先的に不揮発性メモリに記憶するサブユニットの決定処理では、制御対象であるＤ−ＶＨＳタイプのテープレコーダ／プレイヤサブユニットのＩＤ＝１のサブユニットがまず不揮発性メモリに記憶するサブユニットとして設定される。残りのサブユニットは、チューナーサブユニットのＩＤ＝０、ＩＤ＝１、ＩＤ＝２の順で、不揮発性メモリに記憶するサブユニットとして設定され、この段階で、不揮発性メモリの容量である４つに達するので、テープレコーダ／プレイヤサブユニットのＩＤ＝０のサブユニットは、不揮発性メモリに記憶されないことになる。この処理によって、制御対象であるＤ−ＶＨＳタイプのサブユニットを優先的に不揮発性メモリに記憶できることになる。
【００４７】
【発明の効果】
以上説明したように本発明によれば、サブユニットが制御対象か否かを判断し、制御対象と判断したサブユニットの情報を優先的に不揮発性メモリに記憶するようにしたので、制御対象のサブユニットの情報を確実に不揮発性メモリに記憶してそのターゲットを制御することができる。
また、コントローラの電源が切断され再投入されたときにも、再度機器の識別を行う必要がなく、バスエラーなどによって正常に情報が取得できなくなることを回避し、バスリセット時のバストラフィックを軽減させることができると同時に、そのサブユニットを適当なアプリケーションで制御することができる。
【図面の簡単な説明】
【図１】本発明に係るコントローラ機器及びサブユニット情報記憶方法の一実施の形態を示すフローチャートである。
【図２】図１のサブユニット決定処理を詳しく説明するためのフローチャートである。
【図３】ＡＶ／Ｃコマンドフレームを示す説明図である。
【図４】ＡＶ／Ｃレスポンスフレームを示す説明図である。
【図５】図３のＡＶ／Ｃコマンドフレームに含まれるｃｔｙｐｅを詳しく示す説明図である。
【図６】図３のＡＶ／Ｃコマンドフレーム、図４のＡＶ／Ｃレスポンスフレームに含まれるｓｕｂｕｎｉｔ  ｔｙｐｅを詳しく示す説明図である。
【図７】図３のＡＶ／Ｃコマンドフレーム、図４のＡＶ／Ｃレスポンスフレームに含まれるｓｕｂｕｎｉｔ  ＩＤを詳しく示す説明図である。
【図８】図３のＡＶ／Ｃコマンドフレーム、図４のＡＶ／Ｃレスポンスフレームに含まれるＡＶ／Ｃアドレスを詳しく示す説明図である。
【図９】図３のＡＶ／Ｃコマンドフレーム、図４のＡＶ／Ｃレスポンスフレームに含まれるｏｐｃｏｄｅ、ｏｐｅｒａｎｄの一例を示す説明図である。
【図１０】図４のＡＶ／Ｃレスポンスフレームに含まれるｒｅｓｐｏｎｓｅを詳しく示す説明図である。
【図１１】パワーオンのＣＯＮＴＲＯＬのＡＶ／Ｃコマンドフレームを示す説明図である。
【図１２】パワーオンのＡＣＣＥＰＴＥＤのＡＶ／Ｃレスポンスフレームを示す説明図である。
【図１３】パワーオンのＲＥＪＥＣＴＥＤのＡＶ／Ｃレスポンスフレームを示す説明図である。
【図１４】ＩＥＥＥ１３９４におけるユニットとサブユニットの構成例を示す説明図である。
【図１５】ＳＵＢＵＮＩＴ＿ＩＮＦＯのＡＶ／Ｃコマンドフレームを示す説明図である。
【図１６】ＳＵＢＵＮＩＴ＿ＩＮＦＯのＡＶ／Ｃレスポンスフレームの一例を示す説明図である。
【図１７】従来のコントローラ機器及びサブユニット情報記憶方法を示すフローチャートである。
【図１８】サブユニット情報テーブルの一例を示す説明図である。
【符号の説明】
６  サブユニット情報ステップ
１１  サブユニット決定ステップ
１３  サブユニット情報記憶ステップ
２３  制御対象サブユニット判別ステップ
【図１】
2004185265.tif 000003
【図２】
2004185265.tif 000004
【図３】
2004185265.tif 000005
【図４】
2004185265.tif 000006
【図５】
2004185265.tif 000007
【図６】
2004185265.tif 000008
【図７】
2004185265.tif 000009
【図８】
2004185265.tif 000010
【図９】
2004185265.tif 000011
【図１０】
2004185265.tif 000012
【図１１】
2004185265.tif 000013
【図１２】
2004185265.tif 000014
【図１３】
2004185265.tif 000015
【図１４】
2004185265.tif 000016
【図１５】
2004185265.tif 000017
【図１６】
2004185265.tif 000018
【図１７】
2004185265.tif 000019
【図１８】
2004185265.tif 000020