JP2004328424A - 電子機器の接続制御装置及び接続制御方法 - Google Patents
電子機器の接続制御装置及び接続制御方法 Download PDFInfo
- Publication number
- JP2004328424A JP2004328424A JP2003121036A JP2003121036A JP2004328424A JP 2004328424 A JP2004328424 A JP 2004328424A JP 2003121036 A JP2003121036 A JP 2003121036A JP 2003121036 A JP2003121036 A JP 2003121036A JP 2004328424 A JP2004328424 A JP 2004328424A
- Authority
- JP
- Japan
- Prior art keywords
- serial bus
- connection
- node
- bus
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Abstract
【課題】IEEE1394シリアルバスにおいて、バスリセット時にリセット前の接続状態を確実に復元する。
【解決手段】IEEE1394シリアルバスにより複数の機器をチャンネルを介して接続した際に、接続された機器のGUIDを読み出してメモリに記憶しておき、バスリセットが発生したときに、記憶したGUIDを読み出して、リセット前に接続されていた機器を特定し、当該機器に割り振られたノードIDに基づき、IRMに対してリソース要求を行ってバスリセット前の接続状態を復元する。接続を復元する過程で、リセット前に接続されていなかった他の機器がIRMにリソース要求を出しても、それを拒否するようにする。
【選択図】 図15
【解決手段】IEEE1394シリアルバスにより複数の機器をチャンネルを介して接続した際に、接続された機器のGUIDを読み出してメモリに記憶しておき、バスリセットが発生したときに、記憶したGUIDを読み出して、リセット前に接続されていた機器を特定し、当該機器に割り振られたノードIDに基づき、IRMに対してリソース要求を行ってバスリセット前の接続状態を復元する。接続を復元する過程で、リセット前に接続されていなかった他の機器がIRMにリソース要求を出しても、それを拒否するようにする。
【選択図】 図15
Description
【0001】
【発明の属する技術分野】
この発明は、IEEE1394規格に準拠したシリアルバスによって、相互に接続された複数の電子機器の接続状態を制御する接続制御装置及び接続制御方法に関し、特にバスリセット後に、元の接続状況を的確に復元できるようにした接続制御装置及び接続制御方法に関する。
【0002】
【従来の技術】
従来、IEEE1394規格に準拠したシリアルバスで複数の電子機器、例えばAV(Audio/Visual)機器を接続して、AV信号を機器間で伝送すると共に、機器の動作を制御する制御信号を伝送可能としたシステムが実用に供されている。
【0003】
すなわち、例えば、デジタル衛星放送を受信するSTB(Set Top Box)とD−VHS(Digital Video Home System:登録商標)VTR(Video Tape Recorder)をこのシリアルバスで接続して、STBで受信したMPEG(Moving Picture Experts Group)2のTS(Transport Stream)信号をバスを経由してD−VHSに伝送し、さらにD−VHSの動作を制御する制御信号(AV/C:Audio Video Control コマンド)をバスを介して伝送してD−VHSの動作を制御することでTS信号をD−VHSで記録するようなシステムを構築することが可能である。
【0004】
IEEE1394規格(以下単に1394と略称することもある)では、1本のバスあたり最大63台の機器を接続することが可能で、さらに最大1023本のバスを扱うことが可能である。したがって理論上64449台の機器を接続することが可能である。
【0005】
一般の家庭においては、そのような膨大な台数の機器を扱うことは、ないと思われるが、それでも、AV信号を取得するためのSTB1台、AV信号を視聴するためのモニタ1台の他、数台の録画機器を接続してシステムを構築することはそれほど珍しいことではない。
【0006】
IEEE1394規格においては、情報の送受信をハード的にノード単位で行なうように構成されており、規格に準拠した機器はこのノードを1個あるいは複数備えたモジュールを内部に具備している。
各ノードには、ソケット(ポート)が設けられており、ソケットに専用ケーブルを接続して各機器をツリー型、スター型あるいはデイジーチェーン型に接続する。また、1394シリアルバスには、伝送の方式として、Asynchronous(アシンクロナス)方式とIsochronous(アイソクロナス)方式があり、AV機器の映像及び音声を構成するデータは、リアルタイムで伝送する必要があるため、アイソクロノス方式で伝送され、AV/Cはアシンクロナス方式で伝送される。
【0007】
そのように構築されたシステムにおいて、ユーザが1394シリアルバスに対して、新たな機器を増設(追加)したり、接続されていた機器の取り外し(削除)を行った場合には、バスリセットが実行され、一旦初期状態に戻った後で、所定の処理を経て、再び機器間の接続が行われてシステムが構築される。
【0008】
バスリセットから、再びシステムが構築されるまでの処理は、まず各ノードがそれまで保有していた情報がクリアされ、次いで、ツリー識別処理が実行され、各ノードがどのように接続されているかの識別と、通信の管理を行うノード(ルートノード)の選択が行われる。
【0009】
次いで、各ノードの自己識別処理が行われて、各ノードにノードIDが新たに割り振られ、このノードIDに基づいて、通信を行うためのチャンネルの確保と、チャンネルの帯域の確保が実行され、さらに、通信を行うノード間で論理接続処理が行われることで新たなシステムが構築されることになる。バスリセット発生後、復元までの時間は、isoch_resource_delayとして規定で決められており1秒である。
【0010】
新たなシステムが構築された際には、バスリセット前に、信号のやり取りをしていた2個のノードが存在していたとすると、原則的には、それがそのまま復元され、それらノードが再びチャンネルを介して接続される。すなわち接続が復元される。
【0011】
しかしながらIEEEシリアルバス規格においては、リセット前の接続状態に復元させるということは、強制力のある規定ではなく、isoch_resource_delayを守らずに、バスリセット前の状態では、信号伝送状態に接続されていない機器が、信号伝送を行うべく新たな接続を試みるということが起こる場合もあり、そのような場合には、バスリセット前の接続状態の復元が失敗に終わるということが発生する可能性がある。
【0012】
すなわち、STBから第1のD−VHSに信号を伝送して録画している最中に、バスリセットが発生した場合、STBと第1のD−VHS間の接続が復元されて録画が継続されるというのが本来の動作であるが、STBと第1のD−VHSとの接続が実行されない前に、第二のD−VHSがSTBあるいは他の機器との接続を要求して、STBと第1のD−VHSとの接続の復元を阻害するということが起きる場合もある。
【0013】
このため、機器の取り扱い説明書等で、一般ユーザに対して、録画実行中には、IEEEシリアルバスのケーブルをたとえ動作していない機器のものであっても決して抜かないように注意を呼びかけているが、ケーブルを抜いたり、差し込んだりする動作以外にも、バスリセットが発生することがあり問題となっている。
【0014】
すなわち、IEEEシリアルバスは、通信速度が100Mbpsから400Mbpsで高速であるため、外部からのノイズの影響を受けやすく、それによってバスリセットが発生して、それまでの接続状態が復元できないという事故が発生することがあった。
【0015】
従来、バスリセットが発生した際に、リセット前の接続状態を復元させるための提案は数多くなされており、例えば特許文献1あるいは特許文献2に示されているが、これら特許文献には、バスリセット後に確実に復元がされるようにすることが記述されているだけで、バスリセット後に新たに接続を試みようとする機器に対する対策は示されていない。
【0016】
【特許文献1】
特開2002−217908号公報(第8頁、図6)
【特許文献2】
特開2001−51935号公報(第4〜5頁、図6)
【0017】
【発明が解決しようとする課題】
以上のように、従来のIEEE1394シリアルバスにおいて、バスリセットが発生した後に、リセット前には接続されていなかった機器が接続を試みようとして、リセット前と同じ接続状態に復元するのを阻害するということがあり、その対策が強く要望されている。
【0018】
本発明は、以上の点に対処してなされたもので、リセット前には接続されていなかった機器が接続を試みようとした場合に、その接続を阻止して、リセット前と同じ接続状態に確実に復元できるようにした電子機器の接続制御装置及び制御方法を提供することを目的とする。
【0019】
【課題を解決するための手段】
本発明の電子機器の接続制御装置は、IEEE1394シリアルバスに接続された複数の電子機器と、
前記複数の電子機器のうち前記シリアルバスによってデータを伝送するように接続されている機器を特定する情報を当該機器から読み出して記憶する記憶手段と、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記シリアルバスに接続された電子機器からの接続要求を受けるか否か判断し、接続要求を受付けると判断した電子機器の接続を行い、接続要求を受付けないと判断した電子機器の接続を拒否する制御手段と、
【0020】
を具備したことを特徴とする。
本発明によれば、バスリセット発生後に、それまでデータを伝送すべく接続されていた機器を正確に特定してその接続を復元し、それ以外の機器が接続を要求してもこれを拒否するようにしたので、接続の復元を間違いなく行なうことができるものである。
【0021】
本発明の電子機器の接続制御装置は、IEEE1394シリアルバスに接続された複数の電子機器と、
前記複数の電子機器のうち前記シリアルバスによってデータを伝送するように論理接続されている機器を特定する情報を当該機器から読み出して記憶する記憶手段と、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記バスリセットが発生する前に前記シリアルバスによってデータを伝送するように接続されていた機器を特定し、その機器に割り振られたノードIDに基づく前記シリアルバスのアイソクロノス・リソース・マネージャ(IRM)に対するリソース要求を受けて、当該機器の前記シリアルバスによる論理接続を確立し、他の機器からのリソース要求を拒否する制御手段と、
【0022】
を具備したことを特徴とする。
本発明によれば、バスリセット発生後に、それまでデータを伝送すべく接続されていた機器を正確に特定してその接続を復元し、それ以外の機器が接続を要求してもこれを拒否するようにしたので、接続の復元を間違いなく行なうことができるものである。
【0023】
本発明の電子機器の接続制御方法は、IEEE1394シリアルバスに接続された複数の電子機器のうち前記シリアルバスによってデータを伝送するように接続されている機器を特定する情報を当該機器から読み出して記憶するステップと、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記電子機器からの接続要求を受けるか否か判定するステッブと、
接続要求を受けると判定した当該機器を前記シリアルバスによるデータ伝送を可能とすべく接続するステップと、
接続要求を拒否すると判定した機器からの接続要求を拒否するステップと、
を具備したことを特徴とする。
本発明によれば、バスリセット発生後に、それまでデータを伝送すべく接続されていた機器を正確に特定してその接続を復元し、それ以外の機器が接続を要求してもこれを拒否するようにしたので、接続の復元を間違いなく行なうことができるものである。
【0024】
本発明の電子機器の接続制御方法は、IEEE1394シリアルバスに接続された複数の電子機器のうち前記シリアルバスによってデータを伝送するように論理接続されている機器を特定する情報を当該機器から読み出して記憶するステップと、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記バスリセットが発生する前に前記シリアルバスによってデータを伝送するように接続されていた機器を特定し、その機器に割り振られたノードIDに基づく前記シリアルバスのアイソクロノス・リソース・マネージャ(IRM)に対するリソース要求を受けて、当該機器の前記シリアルバスによる論理接続を確立し、他の機器からのリソース要求を拒否するステップと、
【0025】
を具備したことを特徴とする。
本発明によれば、バスリセット発生後に、それまでデータを伝送すべく接続されていた機器を正確に特定してその接続を復元し、それ以外の機器が接続を要求してもこれを拒否するようにしたので、接続の復元を間違いなく行なうことができるものである。
【0026】
【発明の実施の形態】
以下、図面を参照して本発明の一実施の形態を説明する。
図1は、電子機器に適用される本発明のIEEEシリアルバスの構成を模式的に示す構成図である。図に示すように、1394シリアルバスは、トランザクションレイヤ11、リンクレイヤ12、物理レイヤ13の3つのレイヤと、それらを管理するシリアルバス管理部14とで構成されている。
【0027】
トランザクションレイヤ11は、機器のアプリケーション15から非同期(Asynchronous)の命令やデータを受付けてリンクレイヤ12に渡すと共に、リンクレイヤ12からの非同期データや機器の動作を制御するためのAV/C(Audio Video Control)コマンドをアプリケーション15に渡す。また、リンクレイヤ12の処理を利用して、リクエストパケットの送信とレスポンスパケットの送信を行なうことで、指定されたノードとアドレスに対する1つの通信処理を実行している。
【0028】
リンクレイヤ12は、トランザクションレイヤ11から非同期命令やデータを受けて、パケット化して物理レイヤ13に送り、物理レイヤ13から非同期命令の命令やデータを受けてトランザクションレイヤ11に送る。さらに、トランザクションレイヤ11を介さずに、アプリケーション15からアイソクロノス命令やデータを受けて物理レイヤ13に送ると共に、物理レイヤ13からのアイソクロノス命令やデータをアプリケーション15に送る。リンクレイヤ12は、パケット送受信のために、アドレス割り当て、データチェック、データのフレーム分けを行なう他、サイクルのコントロールも行なっている。
【0029】
物理レイヤ13は、他のノードとの窓口となり、データの転送あるいは受信を実行する他、ルートノードの設定、ノード間のアービトレーションも扱う。また、物理レイヤ13は、コネクタ、ケーブル等の機械的インターフェースの規定、リンクレイヤ12が使用する信号の符号化/復号化、信号レベル等の電気的インターフェースの規定、通信クロックの再同期、バスの初期化検出等接続状態の監視を行なっている。
【0030】
シリアルバス管理部14は、各レイヤ全体の制御を行なうもので、バスマネージャ16、アイソクロノス・リソースマネージャ(IRM)17、ノードコントローラ18で構成され、それぞれ各レイヤと通信を行なう。また、バスマネージャ16、IRM17及びノードコントローラ18はそれぞれレジスタ(CSR:Control and Status Register)16r、17r及び18rを備えている。
【0031】
アプリケーション15には、アプリケーションを制御するためのMPU(Micro Processing Unit)19とメモリ20が接続されている。メモリ20は、アプリケーションの処理を実行するワークエリアとして働く他、IEEE1394シリアルバスで接続される各機器をユニークに特定するGUID((Global Unique Identification)を記憶する働きをするが、その詳細については後述する。
【0032】
トランザクションレイヤ11とシリアルバス管理部14は、ファームウエアで構成され、リンクレイヤ12と物理レイヤ13はハードウェアとして構成される。
図2及び図3に、実際にシリアルバスに接続される機器の状態を模式的に示す。各機器は、シリアルバスに対して、論理的な接続を行なう「プラグ」という仮想的な概念で接続される。プラグは入力プラグと出力プラグがあり、それぞれ複数持つことが可能である。これらプラグにそれぞれ対応するようにレジスタ(Plug Control Register)が設けられる。レジスタは、入力プラグに対応するiPCRと、出力プラグに対応するoPCRがある。これらPCRはCSRのアドレス空間にマッピングされる。
【0033】
機器の接続方法は2通りあり、ポイント−ポイント接続(Point to Point Connection)とブロードキャスト接続(Broadcast Connection)がある。ポイント−ポイント接続は、例えば図2に示すようにチャンネルXを介して機器AのoPCRと機器BのiPCR間を接続したり、機器AのoPCRと機器CのiPCR間を接続することである。
【0034】
また、ブロードキャスト接続は、図3に示すようにチャンネルYと機器AのoPCR間の接続、あるいはチャンネルYと機器BのiPCR間の接続、チャンネルYと機器CのiPCR間の接続を指し、チャンネルとoPCRとの接続をbroadcast out connection(Bout)、チャンネルとiPCRとの接続をbroadcast in connection(Bin)と称す。
【0035】
さて、実際に機器を接続してデータの伝送を行なわせるには、AV機器においては、リアルタイムでの伝送が必要であるため伝送時間が保証されるアイシンクロナス伝送で行なう。
通常は、機器の電源が投入されると、まず、パワーリセット処理が実行され、バスの初期化が行なわれる。次に、ツリー識別により接続された各ノードをツリー状に接続したものとして扱えるように識別する。この際、適切な一つのノードを選択し、それをルートとして他のノードが枝に繋がる道筋を識別する。
【0036】
すなわち、各ノードは、図4に示すように接続状態に応じて、2つ以上のノードに接続されたもの[枝](branch)と1つのノードにのみ接続されたもの[葉](leaf)及他のノードと接続されておらず孤立しているものの3通りに分けられる。図4においては、ノードBとノードCが[枝]であり、ノードA,D,Eは[葉]である。各ノードはそれぞれ1〜8個のポートPが設けられており、ポートPを介して他のノードと接続される。
【0037】
ルートとなるノードを選択する処理は次のとおりである。各ノードのポートは、ノード選択処理の過程で、ノード側に接続されるparent(親)ポートと、ノードとは逆側に接続されるchild(子)ポートと、全く接続されないoffにラベル付けされるが、リセット直後はラベル付けはされておらず未確定となっている。
【0038】
各ノードの内、ラベルが未確定なポートが1個のノードは、そのポートが親に接続されるparentポートであることを宣言するparent_notifyを接続先のポートに出力する。図4の例では、まず、ノードA、ノードD、ノードEが、それぞれのポートP1からparent_notifyを接続先のポートに出力し、それらを受け取ったノードB、ノードCは、それらが出力されたポートへchild_notifyを送り返す。それによっノードA,D,Eのポートがparentポートとラベル付けられ、それらと接続されたノードBとノードCのポートがchildポートとラベル付けられる。
【0039】
その結果ノードBとCは、互いに未確定のポートが1個残ったので、そのポートからparent_notifyを出力することができるが、先にparent_notifyを出力したほうがparentポートになり、parent_notify を受けchild_notifyを送り返した方がchildポートとなる。そして全てのポートがchildポートになったノードがルートノードとなる。図4の例では、ノードBが全てのポートがchildポートにラベル付けられてルートノードとなる。
【0040】
ノードがparent_notifyを送信するまでの待ち時間は、調整によって設定することができ、したがって特定のノードがルートに選択されるように設定することは可能である。待ち時間は、各ノードが持つ変数であるSTATE_SET.force_rootのビットを変えることによって調整できる。STATE_SETは、CSRに組み込まれている。
【0041】
ツリーの識別処理が終了したら、自己識別処理に移り、各ノードは、ルートノードの制御の下に、自らを識別するIDとしてのPhysical_IDを決定する。Physical_IDは、最も早くself−IDパケットを送ったノードから順に割り当てられもので、self_ID_countのカウント順に設定される。self_ID_countのためのカウンタは各ノードに設けられており、初期状態では、リセットによって値は全てゼロになっている。
【0042】
具体的処理は、図5に示すように、まずルートノードBが自らのポート番号の最も小さいポートP1に接続されているノードAに、self−identifyを促すgrant(送信許可信号)を送り、他のポート全てには、接続されたノードを受信状態に設定するためのdata_prefixを送る。
【0043】
grantが送られたノードは、未確定の自分の最小番号のポートからgrantを送るが、図5の場合には、ノードAは他のポートP2,P3がいずれもオフでgrantを送るノードが存在しないため、self_ID_count=0を自分のノードIDとし、全ノードに対してdata_prefixを送ってから、self_ID_packetを送信する。
【0044】
他のノードは、self_ID_packetを受信すると、それぞれself_ID_countを1増やす。ノードAは、self_ID_packet の送信が完了すると、自分と自分に接続された他のポート(ノードAの場合は他のポートなし)のself−identify が完了したことを示すident_done をルートノードBに対して送る。
【0045】
次にルートノードBが、ポート番号P2に接続されたノードCのポートにgrantを送り、ノードCはこれを受けて、自分の未確定の最小ポートP2からgrant を出力する。ノードEはそれを受けて、自分の未確定の最小ポートにgrantを送ろうとするが、対象となるポートが存在しないため、self_ID_count=1を自分のノードIDとし、全ノードに対してdata_prefixを送ってから、self_ID_packetを送信する。他のID未確定のノードは、self_ID_packetを受信すると、それぞれself_ID_countを1増やす。
【0046】
ルートノードBは、ポートP2にident_doneが送られて来ないため、再度ポートP2にgrant を送る。それを受けてノードCは次のポートP3からgrant を出力し、それによって、ノードDがself_ID_count=2を自分のノードIDとし、全ノードに対してdata_prefixを送ってから、self_ID_packetを送信する。他のID未確定のノードは、self_ID_packetを受信すると、それぞれself_ID_countを1増やす。
【0047】
self_ID_packet の送信が完了すると、ノードCは、self_ID_count=3を自分ノードIDとしてself_ID_packetを送り、さらに自分と自分に接続された他のポートのself−identify が完了したことを示すident_done をノードBに対して送る。ノードBは自分の全てのポートにident_doneが送られてきたことを検出すると、最後にノードB自身も、self_ID_packetを送って処理を終了する。この結果、ノードBがself_ID_count=4でノードIDが4となる。
【0048】
self_ID_packetの中の「L」ビット「C」ビットを立てているノードの中で、最も大きなノードIDが付されたノードがIRMとなることが決められており、通常は、自己識別処理により、ルートノードに対して最も大きなIDが割り振られるため、ルートノード、すなわち図5のノードBがIRMとなる。
【0049】
このようにして、自己認識処理が終了すると、各ノードは通常のアービトレーションを使ってパケット送信をすることが可能となる。
アイソクロノス通信を行う場合、送信を行いたいノードは、IRMに対して使用するチャンネルと、帯域幅のリソース要求を行い、IRMがリソースに空きがあるかを判定して、その結果を応答する。それによって、そのノードがチャンネルと帯域幅を使用する権利を得る。
【0050】
図6に、具体的な機器の接続状況を示す。図6において、STB61と、第1のD−VHS62及び第2のD−VHS63がIEEE1394シリアルケーブルで接続され、さらに、第1のD−VHS62と第3のD−VHS64、第4のD−VHS65がIEEE1394シリアルケーブルで接続される。また、STB62とモニタ66がアナログ映像ケーブルで接続されている。
【0051】
STB61で受信した放送信号を第2のD−VHS63で録画する場合、例えば、図示しないリモートコントローラ等を操作して、モニタ66にGUI(Graphical User Interface)によるメニューを表示し、第2のD−VHS63を選択して、さらにSTB61で受信した放送信号からEPG番組表を構築してこれをモニタ66に表示し、録画したい番組を選択する。
【0052】
録画機器の選択により、STB61からIRMである第1のD−VHS62に対して、帯域リソースの要求と、チャンネルリソースの要求を行い、IRMがそれに応答して応答信号(complete)を返すことで、STB61がリソースを使用する権利を得て、自らのoPCRと第2のD−VHS63のiPCRとの論理接続を行なう。
【0053】
選択した番組が放送されるとそれがSTB61で受信され、MPEG2のTS信号(パーシャルTS)として出力され、このMPEG2のTS信号がアイソクロノスパケットに分配されて第2のD−VHS63に供給される。さらにSTB61から、第2のD−VHS63に対して録画コマンドのAV/Cコマンド信号を供給し、第2のD−VHS63では、受信したアイソクロノスパケットから、MPEGのTS信号を抽出して録画を開始する。
【0054】
録画が終了される処理では、まず、STB61から第2のD−VHS63に対して、録画を終了して例えば停止モードに設定するためのAV/Cコマンド信号を供給し、第2のD−VHS63の録画動作を終了させる。次いで、STB61からのMPEG2のTS信号(パーシャルTS)のアイソクロノス伝送を停止する。
【0055】
そのように接続されたシステムにおいて、STB61と第2のD−VHS63との間が接続されて録画が実行されている途中に、バスリセットが発生して接続を復元しようとする際に、図7に示すように、STB61と第2のD−VHS63との接続が復元される前に、第4のD−VHS65が第3のD−VHS64との接続を実行すべく、IRMである第1のD−VHS62に対して、帯域リソース要求及びチャンネルリソース要求を出した場合に、IRMがこれを受付けると第4のD−VHS65と第3のD−VHS64間の接続のためにリソースが使用され、STB61と第2のD−VHS63間の接続の復元が阻害されることがある。
【0056】
本発明は、バスリセット後にそのような障害が発生しないようにしたものであり、GUIで、STB61に接続するD−VHS63を選択して、IMRによって論理接続を確立した際に、それら機器にユニークに割り当てられているGUIDを、アプリケーション処理のために用いられる図1に示すメモリ20に記憶させておく。GUIDは、図8に示すIEEE1394シリアルバスのCSRの初期レジスタ空間81に含まれるコンフィグレーションROMに書き込まれている。初期レジスタ空間は他のノードからアクセス可能である。
【0057】
メモリ20は、図1に示すアプリケーション15処理用のメモリであるが、IEEE1394シリアルバスの接続処理を行なうミドルウェアに設けられた図示しないメモリを適用してもよい。
このように、バスリセットが発生する前に接続されている機器(ノード)のGUIDを所定のメモリに記憶させておくことにより、バスリセットが発生して回復処理が実行される過程で各ノードのノードIDが確定した際に、IDが付された各ノードのGUIDを検出して、メモリのGUIDデータと比較し、バスリセット前に接続されていたノードを特定して、それ以外のノードからIRMに対してリソース要求がなされた場合にはそれを拒否するように設定するものである。
【0058】
また、バスリセット後には、メモリ20に図9に示すようにGUIDと割り振られたノードIDを対で示すテーブルをIRMのレジスタ(CSR)に記憶させておくことができる。このようなデータは、各ノードの自己識別処理が実行された後に取得可能である。
【0059】
それによって、図10に示すようにバスリセット後に、第4のD−VHS65からIRMである第1のD−VHS62に対してリソース要求がされた場合には図9のテーブルから求められるGUIDを基にして第4のD−VHS65のノードIDと、IRMのノードIDを比較して、第4のD−VHS65がバスリセット前に接続されていた実績がないことを判別して、IRMは、第4のD−VHS65に対してconflict errorを送り、リソースの要求を拒否する。
【0060】
図10において、本来のSTB61と第2のD−VHS63間の接続を復元するための要求もSTB61からIMRに対してなされ、その分は、記憶されたGUIDと、STB61のノードIDが一致するため、IMRはcompleteをSTB61に返して、結局、図11に示すように、STB61と第2のD−VHS63間の接続が復元される。なお、STB61と第2のD−VHS63間の接続が復元された後は、第4のD−VHS65と第3のD−VHS64間の論理接続が行なわれても問題はない。この接続は、GUIを用いたユーザによる通常の接続設定によって行なわれるものである。
【0061】
また、IRMに書き込むデータとしては、図9に示すものの他、図12〜図14に示す形態のものが考えられる。図12は、接続されている機器のノードIDがアドレスオフセットに対応して記憶されており、IRMがアドレスオフセットの若い順(番号の小さい順)にリソース要求を受付けるようにしたものである。
【0062】
また、接続を優先的に行なう処理を自らの機器がIRMとなって完結する場合は、機器内部で設定したローカルな番号をノードIDの代わりに接続機器を特定する情報として記憶させてもよく、図13はその例である。なお、この場合には、ローカル番号とノードIDを対応させるテーブルを記憶しておく必要がある。
【0063】
また、図14は、IRMのレジスタ(CSR)内に接続優先順位を記憶させたものである。AV/Cコマンドを用いて、優先順情報と、接続機器のノードIDを伝送して記憶させることができる。あるいは、LOCKトランザクションを利用して、接続機器のノードIDを記憶させることができる。さらには、アドレスオフセットを指定して直接レジスタ(CSR)に書き込むようにしてもよく、その場合には、レジスタの若い順に優先順位が高くなるように設定する。
【0064】
このように、ある機器Aがバスリセット後に優先的に接続させたい機器Bを有している場合に、機器AをIRMに設定し、このIRMのレジスタ(CSR)にノードIDと対で接続優先順位を記憶させておくことにより、バスリセット発生後に、機器AをIRMに設定し、そのレジスタ(CSR)に記憶されている優先順位情報に基づいて、IRMがリソース割り当ての許可及び禁止を決定するように動作するため、バスリセット前の接続状態を確実に復元させることができるものである。
【0065】
図10,11で説明した動作を、図15のフローチャートを参照して改めて説明する。図15において、ステップS111で開始され、ステップS112でリソースの要求か否かが判定され、リソースの要求であった場合に、ステップS113で許可する機器であるか否かの判定がなされ、許可する機器であると判定されたら、ステップS114でIRMがリソースを更新し、次いでステップS115でIRMからcompleteを返し、ステップS116で終了となる。
【0066】
ステップS112でリソースの要求でないと判定されたら、ステップS116に移って処理を終了する。また、ステップS113で許可する機器でないと判定されたら、ステップS117でIRMが、リソース要求を出した機器に対してconflict errorを返して、ステップS116で処理を終了する。
【0067】
また、図16は、バスリセットが発生した際に、GUIDを用いて、接続を復元させる動作を説明するためのフローチャートである。図16においては、ステップS121で開始され、ステップS122で複数のノードをチャンネルを介して論理接続する。次いでステップS123で、接続されたノードの初期レジスタ空間のコンフィグレーションROMからGUIDを読出しでメモリ20に記憶する。
【0068】
次に、ステップS124でバスリセットが発生したか否かの判定処理がバスリセットが発生するまで実行される。ステップS124でバスリセットが発生したことが判定されたら、ステップS125で、バス初期化処理/ツリー識別処理/自己識別処理が実行されて、ルートノード及び、IRMの選択が行われると共に、各ノードに対してノードIDが割り振られる。
【0069】
次に、ステップS126で、メモリからGUID情報を読出して、各ノードのGUIDと比較し、同じGUIDを有するノードのIDを特定する。次いでステップS127で、特定したノードIDに基づき、IRMにリソース要求を送る。
次に、ステップS128でIRMから、completeを受け取って、リソースを使用する権利を得、次のステップS129で、oPCRとiPCRの設定を行なって論理接続を達成する。次いで、ステップS130で、論理接続されたノード間でデータとAV/Cコマンドの伝送を行う。次いで、ステップ131で信号の伝送が終了したか否かの判定がなされ、伝送が終了していない場合には、ステップS130に戻り、伝送が終了したことが判定されたら、ステップS132で処理を終了する、
【0070】
また、図17に示すように、機器A以外の機器Cがバスリセット後に優先的に接続させたい機器Dを有していて、その優先接続を機器Aに依頼する場合には、機器の接続処理を行なう機器が接続前もしくは接続後にAV/Cコマンドを使用して優先順位とGUIDあるいはそのGUIDに対応するノードIDを通知する。次に、機器の接続処理を行なう機器が接続前もしくは接続後にIRMのレジスタ(CSR)に優先順位とGUIDあるいはそのGUIDに対応するノードIDを通知する。
【0071】
レジスタ(CSR)に書き込むアドレスは、若い方が優先順位が高いものと決めておけば、レジスタ(CSR)に書き込むアドレスがそのまま優先順位となる。IRMはリソースの要求があったときは、要求をしたノードIDをGUIDに対応付けてレジスタ(CSR)に書き込まれたアドレスの若い順から検索して該当しない場合は拒否し、一致した場合にはレジスタ(CSR)に記憶してある該当ノードIDを削除するか次回検索時に参照しないようにする。
【0072】
以上のように本発明によれば、IEEE1394シリアルバスで接続されている機器間の接続状態を、機器にユニークに付されたGUIDに基づいて認識してIRMのレジスタ(CSR)に記憶させておき、バスリセット後に、リセット前にIRMであったノードを、再びIRMに設定し、レジスタ(CSR)に記憶されたGUIDに基づいて、優先的に接続すべきノードIDを特定して、ノード間の論理接続を確立するようにしたため、バスリセット前の接続状態を確実に復元することができるものである。
【0073】
【発明の効果】
以上のように、本発明によれば、IEEEシリアルバスに接続されて、信号を伝送している機器をGUIDで特定して、記憶させ、バスリセット発生後に、記憶させておいたGUIDに基づいて接続していた機器のノードIDを特定し、そのIDのノードからIRMにリソース要求を出して、論理接続を実行するようにしたので、バスリセット前の接続を確実に復元することができるものである。
【図面の簡単な説明】
【図1】本発明の電子機器制御装置に適用されるIEEE1364シリアルバスの構成を示すブロック図。
【図2】図1に示すIEEE1364シリアルバスのノード接続状態を説明するためのブロック図。
【図3】図1に示すIEEE1394シリアルバスのノード接続状態を説明するためのブロック図。
【図4】図1に示すIEEE1394シリアルバスのルート選択処理を説明するためのブロック図。
【図5】図1に示すIEEE1394シリアルバスの自己識別処理を説明するためのブロック図。
【図6】本発明の電子機器制御装置の動作を説明するための図。
【図7】本発明の動作を説明するための図。
【図8】本発明の要部の構成を説明するための図。
【図9】本発明の動作を説明するための図
【図10】本発明の動作を説明するための図。
【図11】本発明の動作を説明するための図。
【図12】本発明の動作を説明するための図。
【図13】本発明の動作を説明するための図。
【図14】本発明の動作を説明するための図。
【図15】本発明の電子機器制御装置の動作を説明するためのフローチャート。
【図16】本発明の電子機器制御装置の動作を説明するためのフローチャート。
【図17】本発明の電子機器制御装置の動作を説明するための図。
【符号の説明】
11…トランザクションレイヤ
12…リンクレイヤ
13…物理レイヤ
14…シリアルバス管理部
61…STB(セットトップボックス)
62…DVHS−1
63…DVHS−2
64…DVHS−3
65…DVHS−4
66…モニタ
【発明の属する技術分野】
この発明は、IEEE1394規格に準拠したシリアルバスによって、相互に接続された複数の電子機器の接続状態を制御する接続制御装置及び接続制御方法に関し、特にバスリセット後に、元の接続状況を的確に復元できるようにした接続制御装置及び接続制御方法に関する。
【0002】
【従来の技術】
従来、IEEE1394規格に準拠したシリアルバスで複数の電子機器、例えばAV(Audio/Visual)機器を接続して、AV信号を機器間で伝送すると共に、機器の動作を制御する制御信号を伝送可能としたシステムが実用に供されている。
【0003】
すなわち、例えば、デジタル衛星放送を受信するSTB(Set Top Box)とD−VHS(Digital Video Home System:登録商標)VTR(Video Tape Recorder)をこのシリアルバスで接続して、STBで受信したMPEG(Moving Picture Experts Group)2のTS(Transport Stream)信号をバスを経由してD−VHSに伝送し、さらにD−VHSの動作を制御する制御信号(AV/C:Audio Video Control コマンド)をバスを介して伝送してD−VHSの動作を制御することでTS信号をD−VHSで記録するようなシステムを構築することが可能である。
【0004】
IEEE1394規格(以下単に1394と略称することもある)では、1本のバスあたり最大63台の機器を接続することが可能で、さらに最大1023本のバスを扱うことが可能である。したがって理論上64449台の機器を接続することが可能である。
【0005】
一般の家庭においては、そのような膨大な台数の機器を扱うことは、ないと思われるが、それでも、AV信号を取得するためのSTB1台、AV信号を視聴するためのモニタ1台の他、数台の録画機器を接続してシステムを構築することはそれほど珍しいことではない。
【0006】
IEEE1394規格においては、情報の送受信をハード的にノード単位で行なうように構成されており、規格に準拠した機器はこのノードを1個あるいは複数備えたモジュールを内部に具備している。
各ノードには、ソケット(ポート)が設けられており、ソケットに専用ケーブルを接続して各機器をツリー型、スター型あるいはデイジーチェーン型に接続する。また、1394シリアルバスには、伝送の方式として、Asynchronous(アシンクロナス)方式とIsochronous(アイソクロナス)方式があり、AV機器の映像及び音声を構成するデータは、リアルタイムで伝送する必要があるため、アイソクロノス方式で伝送され、AV/Cはアシンクロナス方式で伝送される。
【0007】
そのように構築されたシステムにおいて、ユーザが1394シリアルバスに対して、新たな機器を増設(追加)したり、接続されていた機器の取り外し(削除)を行った場合には、バスリセットが実行され、一旦初期状態に戻った後で、所定の処理を経て、再び機器間の接続が行われてシステムが構築される。
【0008】
バスリセットから、再びシステムが構築されるまでの処理は、まず各ノードがそれまで保有していた情報がクリアされ、次いで、ツリー識別処理が実行され、各ノードがどのように接続されているかの識別と、通信の管理を行うノード(ルートノード)の選択が行われる。
【0009】
次いで、各ノードの自己識別処理が行われて、各ノードにノードIDが新たに割り振られ、このノードIDに基づいて、通信を行うためのチャンネルの確保と、チャンネルの帯域の確保が実行され、さらに、通信を行うノード間で論理接続処理が行われることで新たなシステムが構築されることになる。バスリセット発生後、復元までの時間は、isoch_resource_delayとして規定で決められており1秒である。
【0010】
新たなシステムが構築された際には、バスリセット前に、信号のやり取りをしていた2個のノードが存在していたとすると、原則的には、それがそのまま復元され、それらノードが再びチャンネルを介して接続される。すなわち接続が復元される。
【0011】
しかしながらIEEEシリアルバス規格においては、リセット前の接続状態に復元させるということは、強制力のある規定ではなく、isoch_resource_delayを守らずに、バスリセット前の状態では、信号伝送状態に接続されていない機器が、信号伝送を行うべく新たな接続を試みるということが起こる場合もあり、そのような場合には、バスリセット前の接続状態の復元が失敗に終わるということが発生する可能性がある。
【0012】
すなわち、STBから第1のD−VHSに信号を伝送して録画している最中に、バスリセットが発生した場合、STBと第1のD−VHS間の接続が復元されて録画が継続されるというのが本来の動作であるが、STBと第1のD−VHSとの接続が実行されない前に、第二のD−VHSがSTBあるいは他の機器との接続を要求して、STBと第1のD−VHSとの接続の復元を阻害するということが起きる場合もある。
【0013】
このため、機器の取り扱い説明書等で、一般ユーザに対して、録画実行中には、IEEEシリアルバスのケーブルをたとえ動作していない機器のものであっても決して抜かないように注意を呼びかけているが、ケーブルを抜いたり、差し込んだりする動作以外にも、バスリセットが発生することがあり問題となっている。
【0014】
すなわち、IEEEシリアルバスは、通信速度が100Mbpsから400Mbpsで高速であるため、外部からのノイズの影響を受けやすく、それによってバスリセットが発生して、それまでの接続状態が復元できないという事故が発生することがあった。
【0015】
従来、バスリセットが発生した際に、リセット前の接続状態を復元させるための提案は数多くなされており、例えば特許文献1あるいは特許文献2に示されているが、これら特許文献には、バスリセット後に確実に復元がされるようにすることが記述されているだけで、バスリセット後に新たに接続を試みようとする機器に対する対策は示されていない。
【0016】
【特許文献1】
特開2002−217908号公報(第8頁、図6)
【特許文献2】
特開2001−51935号公報(第4〜5頁、図6)
【0017】
【発明が解決しようとする課題】
以上のように、従来のIEEE1394シリアルバスにおいて、バスリセットが発生した後に、リセット前には接続されていなかった機器が接続を試みようとして、リセット前と同じ接続状態に復元するのを阻害するということがあり、その対策が強く要望されている。
【0018】
本発明は、以上の点に対処してなされたもので、リセット前には接続されていなかった機器が接続を試みようとした場合に、その接続を阻止して、リセット前と同じ接続状態に確実に復元できるようにした電子機器の接続制御装置及び制御方法を提供することを目的とする。
【0019】
【課題を解決するための手段】
本発明の電子機器の接続制御装置は、IEEE1394シリアルバスに接続された複数の電子機器と、
前記複数の電子機器のうち前記シリアルバスによってデータを伝送するように接続されている機器を特定する情報を当該機器から読み出して記憶する記憶手段と、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記シリアルバスに接続された電子機器からの接続要求を受けるか否か判断し、接続要求を受付けると判断した電子機器の接続を行い、接続要求を受付けないと判断した電子機器の接続を拒否する制御手段と、
【0020】
を具備したことを特徴とする。
本発明によれば、バスリセット発生後に、それまでデータを伝送すべく接続されていた機器を正確に特定してその接続を復元し、それ以外の機器が接続を要求してもこれを拒否するようにしたので、接続の復元を間違いなく行なうことができるものである。
【0021】
本発明の電子機器の接続制御装置は、IEEE1394シリアルバスに接続された複数の電子機器と、
前記複数の電子機器のうち前記シリアルバスによってデータを伝送するように論理接続されている機器を特定する情報を当該機器から読み出して記憶する記憶手段と、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記バスリセットが発生する前に前記シリアルバスによってデータを伝送するように接続されていた機器を特定し、その機器に割り振られたノードIDに基づく前記シリアルバスのアイソクロノス・リソース・マネージャ(IRM)に対するリソース要求を受けて、当該機器の前記シリアルバスによる論理接続を確立し、他の機器からのリソース要求を拒否する制御手段と、
【0022】
を具備したことを特徴とする。
本発明によれば、バスリセット発生後に、それまでデータを伝送すべく接続されていた機器を正確に特定してその接続を復元し、それ以外の機器が接続を要求してもこれを拒否するようにしたので、接続の復元を間違いなく行なうことができるものである。
【0023】
本発明の電子機器の接続制御方法は、IEEE1394シリアルバスに接続された複数の電子機器のうち前記シリアルバスによってデータを伝送するように接続されている機器を特定する情報を当該機器から読み出して記憶するステップと、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記電子機器からの接続要求を受けるか否か判定するステッブと、
接続要求を受けると判定した当該機器を前記シリアルバスによるデータ伝送を可能とすべく接続するステップと、
接続要求を拒否すると判定した機器からの接続要求を拒否するステップと、
を具備したことを特徴とする。
本発明によれば、バスリセット発生後に、それまでデータを伝送すべく接続されていた機器を正確に特定してその接続を復元し、それ以外の機器が接続を要求してもこれを拒否するようにしたので、接続の復元を間違いなく行なうことができるものである。
【0024】
本発明の電子機器の接続制御方法は、IEEE1394シリアルバスに接続された複数の電子機器のうち前記シリアルバスによってデータを伝送するように論理接続されている機器を特定する情報を当該機器から読み出して記憶するステップと、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記バスリセットが発生する前に前記シリアルバスによってデータを伝送するように接続されていた機器を特定し、その機器に割り振られたノードIDに基づく前記シリアルバスのアイソクロノス・リソース・マネージャ(IRM)に対するリソース要求を受けて、当該機器の前記シリアルバスによる論理接続を確立し、他の機器からのリソース要求を拒否するステップと、
【0025】
を具備したことを特徴とする。
本発明によれば、バスリセット発生後に、それまでデータを伝送すべく接続されていた機器を正確に特定してその接続を復元し、それ以外の機器が接続を要求してもこれを拒否するようにしたので、接続の復元を間違いなく行なうことができるものである。
【0026】
【発明の実施の形態】
以下、図面を参照して本発明の一実施の形態を説明する。
図1は、電子機器に適用される本発明のIEEEシリアルバスの構成を模式的に示す構成図である。図に示すように、1394シリアルバスは、トランザクションレイヤ11、リンクレイヤ12、物理レイヤ13の3つのレイヤと、それらを管理するシリアルバス管理部14とで構成されている。
【0027】
トランザクションレイヤ11は、機器のアプリケーション15から非同期(Asynchronous)の命令やデータを受付けてリンクレイヤ12に渡すと共に、リンクレイヤ12からの非同期データや機器の動作を制御するためのAV/C(Audio Video Control)コマンドをアプリケーション15に渡す。また、リンクレイヤ12の処理を利用して、リクエストパケットの送信とレスポンスパケットの送信を行なうことで、指定されたノードとアドレスに対する1つの通信処理を実行している。
【0028】
リンクレイヤ12は、トランザクションレイヤ11から非同期命令やデータを受けて、パケット化して物理レイヤ13に送り、物理レイヤ13から非同期命令の命令やデータを受けてトランザクションレイヤ11に送る。さらに、トランザクションレイヤ11を介さずに、アプリケーション15からアイソクロノス命令やデータを受けて物理レイヤ13に送ると共に、物理レイヤ13からのアイソクロノス命令やデータをアプリケーション15に送る。リンクレイヤ12は、パケット送受信のために、アドレス割り当て、データチェック、データのフレーム分けを行なう他、サイクルのコントロールも行なっている。
【0029】
物理レイヤ13は、他のノードとの窓口となり、データの転送あるいは受信を実行する他、ルートノードの設定、ノード間のアービトレーションも扱う。また、物理レイヤ13は、コネクタ、ケーブル等の機械的インターフェースの規定、リンクレイヤ12が使用する信号の符号化/復号化、信号レベル等の電気的インターフェースの規定、通信クロックの再同期、バスの初期化検出等接続状態の監視を行なっている。
【0030】
シリアルバス管理部14は、各レイヤ全体の制御を行なうもので、バスマネージャ16、アイソクロノス・リソースマネージャ(IRM)17、ノードコントローラ18で構成され、それぞれ各レイヤと通信を行なう。また、バスマネージャ16、IRM17及びノードコントローラ18はそれぞれレジスタ(CSR:Control and Status Register)16r、17r及び18rを備えている。
【0031】
アプリケーション15には、アプリケーションを制御するためのMPU(Micro Processing Unit)19とメモリ20が接続されている。メモリ20は、アプリケーションの処理を実行するワークエリアとして働く他、IEEE1394シリアルバスで接続される各機器をユニークに特定するGUID((Global Unique Identification)を記憶する働きをするが、その詳細については後述する。
【0032】
トランザクションレイヤ11とシリアルバス管理部14は、ファームウエアで構成され、リンクレイヤ12と物理レイヤ13はハードウェアとして構成される。
図2及び図3に、実際にシリアルバスに接続される機器の状態を模式的に示す。各機器は、シリアルバスに対して、論理的な接続を行なう「プラグ」という仮想的な概念で接続される。プラグは入力プラグと出力プラグがあり、それぞれ複数持つことが可能である。これらプラグにそれぞれ対応するようにレジスタ(Plug Control Register)が設けられる。レジスタは、入力プラグに対応するiPCRと、出力プラグに対応するoPCRがある。これらPCRはCSRのアドレス空間にマッピングされる。
【0033】
機器の接続方法は2通りあり、ポイント−ポイント接続(Point to Point Connection)とブロードキャスト接続(Broadcast Connection)がある。ポイント−ポイント接続は、例えば図2に示すようにチャンネルXを介して機器AのoPCRと機器BのiPCR間を接続したり、機器AのoPCRと機器CのiPCR間を接続することである。
【0034】
また、ブロードキャスト接続は、図3に示すようにチャンネルYと機器AのoPCR間の接続、あるいはチャンネルYと機器BのiPCR間の接続、チャンネルYと機器CのiPCR間の接続を指し、チャンネルとoPCRとの接続をbroadcast out connection(Bout)、チャンネルとiPCRとの接続をbroadcast in connection(Bin)と称す。
【0035】
さて、実際に機器を接続してデータの伝送を行なわせるには、AV機器においては、リアルタイムでの伝送が必要であるため伝送時間が保証されるアイシンクロナス伝送で行なう。
通常は、機器の電源が投入されると、まず、パワーリセット処理が実行され、バスの初期化が行なわれる。次に、ツリー識別により接続された各ノードをツリー状に接続したものとして扱えるように識別する。この際、適切な一つのノードを選択し、それをルートとして他のノードが枝に繋がる道筋を識別する。
【0036】
すなわち、各ノードは、図4に示すように接続状態に応じて、2つ以上のノードに接続されたもの[枝](branch)と1つのノードにのみ接続されたもの[葉](leaf)及他のノードと接続されておらず孤立しているものの3通りに分けられる。図4においては、ノードBとノードCが[枝]であり、ノードA,D,Eは[葉]である。各ノードはそれぞれ1〜8個のポートPが設けられており、ポートPを介して他のノードと接続される。
【0037】
ルートとなるノードを選択する処理は次のとおりである。各ノードのポートは、ノード選択処理の過程で、ノード側に接続されるparent(親)ポートと、ノードとは逆側に接続されるchild(子)ポートと、全く接続されないoffにラベル付けされるが、リセット直後はラベル付けはされておらず未確定となっている。
【0038】
各ノードの内、ラベルが未確定なポートが1個のノードは、そのポートが親に接続されるparentポートであることを宣言するparent_notifyを接続先のポートに出力する。図4の例では、まず、ノードA、ノードD、ノードEが、それぞれのポートP1からparent_notifyを接続先のポートに出力し、それらを受け取ったノードB、ノードCは、それらが出力されたポートへchild_notifyを送り返す。それによっノードA,D,Eのポートがparentポートとラベル付けられ、それらと接続されたノードBとノードCのポートがchildポートとラベル付けられる。
【0039】
その結果ノードBとCは、互いに未確定のポートが1個残ったので、そのポートからparent_notifyを出力することができるが、先にparent_notifyを出力したほうがparentポートになり、parent_notify を受けchild_notifyを送り返した方がchildポートとなる。そして全てのポートがchildポートになったノードがルートノードとなる。図4の例では、ノードBが全てのポートがchildポートにラベル付けられてルートノードとなる。
【0040】
ノードがparent_notifyを送信するまでの待ち時間は、調整によって設定することができ、したがって特定のノードがルートに選択されるように設定することは可能である。待ち時間は、各ノードが持つ変数であるSTATE_SET.force_rootのビットを変えることによって調整できる。STATE_SETは、CSRに組み込まれている。
【0041】
ツリーの識別処理が終了したら、自己識別処理に移り、各ノードは、ルートノードの制御の下に、自らを識別するIDとしてのPhysical_IDを決定する。Physical_IDは、最も早くself−IDパケットを送ったノードから順に割り当てられもので、self_ID_countのカウント順に設定される。self_ID_countのためのカウンタは各ノードに設けられており、初期状態では、リセットによって値は全てゼロになっている。
【0042】
具体的処理は、図5に示すように、まずルートノードBが自らのポート番号の最も小さいポートP1に接続されているノードAに、self−identifyを促すgrant(送信許可信号)を送り、他のポート全てには、接続されたノードを受信状態に設定するためのdata_prefixを送る。
【0043】
grantが送られたノードは、未確定の自分の最小番号のポートからgrantを送るが、図5の場合には、ノードAは他のポートP2,P3がいずれもオフでgrantを送るノードが存在しないため、self_ID_count=0を自分のノードIDとし、全ノードに対してdata_prefixを送ってから、self_ID_packetを送信する。
【0044】
他のノードは、self_ID_packetを受信すると、それぞれself_ID_countを1増やす。ノードAは、self_ID_packet の送信が完了すると、自分と自分に接続された他のポート(ノードAの場合は他のポートなし)のself−identify が完了したことを示すident_done をルートノードBに対して送る。
【0045】
次にルートノードBが、ポート番号P2に接続されたノードCのポートにgrantを送り、ノードCはこれを受けて、自分の未確定の最小ポートP2からgrant を出力する。ノードEはそれを受けて、自分の未確定の最小ポートにgrantを送ろうとするが、対象となるポートが存在しないため、self_ID_count=1を自分のノードIDとし、全ノードに対してdata_prefixを送ってから、self_ID_packetを送信する。他のID未確定のノードは、self_ID_packetを受信すると、それぞれself_ID_countを1増やす。
【0046】
ルートノードBは、ポートP2にident_doneが送られて来ないため、再度ポートP2にgrant を送る。それを受けてノードCは次のポートP3からgrant を出力し、それによって、ノードDがself_ID_count=2を自分のノードIDとし、全ノードに対してdata_prefixを送ってから、self_ID_packetを送信する。他のID未確定のノードは、self_ID_packetを受信すると、それぞれself_ID_countを1増やす。
【0047】
self_ID_packet の送信が完了すると、ノードCは、self_ID_count=3を自分ノードIDとしてself_ID_packetを送り、さらに自分と自分に接続された他のポートのself−identify が完了したことを示すident_done をノードBに対して送る。ノードBは自分の全てのポートにident_doneが送られてきたことを検出すると、最後にノードB自身も、self_ID_packetを送って処理を終了する。この結果、ノードBがself_ID_count=4でノードIDが4となる。
【0048】
self_ID_packetの中の「L」ビット「C」ビットを立てているノードの中で、最も大きなノードIDが付されたノードがIRMとなることが決められており、通常は、自己識別処理により、ルートノードに対して最も大きなIDが割り振られるため、ルートノード、すなわち図5のノードBがIRMとなる。
【0049】
このようにして、自己認識処理が終了すると、各ノードは通常のアービトレーションを使ってパケット送信をすることが可能となる。
アイソクロノス通信を行う場合、送信を行いたいノードは、IRMに対して使用するチャンネルと、帯域幅のリソース要求を行い、IRMがリソースに空きがあるかを判定して、その結果を応答する。それによって、そのノードがチャンネルと帯域幅を使用する権利を得る。
【0050】
図6に、具体的な機器の接続状況を示す。図6において、STB61と、第1のD−VHS62及び第2のD−VHS63がIEEE1394シリアルケーブルで接続され、さらに、第1のD−VHS62と第3のD−VHS64、第4のD−VHS65がIEEE1394シリアルケーブルで接続される。また、STB62とモニタ66がアナログ映像ケーブルで接続されている。
【0051】
STB61で受信した放送信号を第2のD−VHS63で録画する場合、例えば、図示しないリモートコントローラ等を操作して、モニタ66にGUI(Graphical User Interface)によるメニューを表示し、第2のD−VHS63を選択して、さらにSTB61で受信した放送信号からEPG番組表を構築してこれをモニタ66に表示し、録画したい番組を選択する。
【0052】
録画機器の選択により、STB61からIRMである第1のD−VHS62に対して、帯域リソースの要求と、チャンネルリソースの要求を行い、IRMがそれに応答して応答信号(complete)を返すことで、STB61がリソースを使用する権利を得て、自らのoPCRと第2のD−VHS63のiPCRとの論理接続を行なう。
【0053】
選択した番組が放送されるとそれがSTB61で受信され、MPEG2のTS信号(パーシャルTS)として出力され、このMPEG2のTS信号がアイソクロノスパケットに分配されて第2のD−VHS63に供給される。さらにSTB61から、第2のD−VHS63に対して録画コマンドのAV/Cコマンド信号を供給し、第2のD−VHS63では、受信したアイソクロノスパケットから、MPEGのTS信号を抽出して録画を開始する。
【0054】
録画が終了される処理では、まず、STB61から第2のD−VHS63に対して、録画を終了して例えば停止モードに設定するためのAV/Cコマンド信号を供給し、第2のD−VHS63の録画動作を終了させる。次いで、STB61からのMPEG2のTS信号(パーシャルTS)のアイソクロノス伝送を停止する。
【0055】
そのように接続されたシステムにおいて、STB61と第2のD−VHS63との間が接続されて録画が実行されている途中に、バスリセットが発生して接続を復元しようとする際に、図7に示すように、STB61と第2のD−VHS63との接続が復元される前に、第4のD−VHS65が第3のD−VHS64との接続を実行すべく、IRMである第1のD−VHS62に対して、帯域リソース要求及びチャンネルリソース要求を出した場合に、IRMがこれを受付けると第4のD−VHS65と第3のD−VHS64間の接続のためにリソースが使用され、STB61と第2のD−VHS63間の接続の復元が阻害されることがある。
【0056】
本発明は、バスリセット後にそのような障害が発生しないようにしたものであり、GUIで、STB61に接続するD−VHS63を選択して、IMRによって論理接続を確立した際に、それら機器にユニークに割り当てられているGUIDを、アプリケーション処理のために用いられる図1に示すメモリ20に記憶させておく。GUIDは、図8に示すIEEE1394シリアルバスのCSRの初期レジスタ空間81に含まれるコンフィグレーションROMに書き込まれている。初期レジスタ空間は他のノードからアクセス可能である。
【0057】
メモリ20は、図1に示すアプリケーション15処理用のメモリであるが、IEEE1394シリアルバスの接続処理を行なうミドルウェアに設けられた図示しないメモリを適用してもよい。
このように、バスリセットが発生する前に接続されている機器(ノード)のGUIDを所定のメモリに記憶させておくことにより、バスリセットが発生して回復処理が実行される過程で各ノードのノードIDが確定した際に、IDが付された各ノードのGUIDを検出して、メモリのGUIDデータと比較し、バスリセット前に接続されていたノードを特定して、それ以外のノードからIRMに対してリソース要求がなされた場合にはそれを拒否するように設定するものである。
【0058】
また、バスリセット後には、メモリ20に図9に示すようにGUIDと割り振られたノードIDを対で示すテーブルをIRMのレジスタ(CSR)に記憶させておくことができる。このようなデータは、各ノードの自己識別処理が実行された後に取得可能である。
【0059】
それによって、図10に示すようにバスリセット後に、第4のD−VHS65からIRMである第1のD−VHS62に対してリソース要求がされた場合には図9のテーブルから求められるGUIDを基にして第4のD−VHS65のノードIDと、IRMのノードIDを比較して、第4のD−VHS65がバスリセット前に接続されていた実績がないことを判別して、IRMは、第4のD−VHS65に対してconflict errorを送り、リソースの要求を拒否する。
【0060】
図10において、本来のSTB61と第2のD−VHS63間の接続を復元するための要求もSTB61からIMRに対してなされ、その分は、記憶されたGUIDと、STB61のノードIDが一致するため、IMRはcompleteをSTB61に返して、結局、図11に示すように、STB61と第2のD−VHS63間の接続が復元される。なお、STB61と第2のD−VHS63間の接続が復元された後は、第4のD−VHS65と第3のD−VHS64間の論理接続が行なわれても問題はない。この接続は、GUIを用いたユーザによる通常の接続設定によって行なわれるものである。
【0061】
また、IRMに書き込むデータとしては、図9に示すものの他、図12〜図14に示す形態のものが考えられる。図12は、接続されている機器のノードIDがアドレスオフセットに対応して記憶されており、IRMがアドレスオフセットの若い順(番号の小さい順)にリソース要求を受付けるようにしたものである。
【0062】
また、接続を優先的に行なう処理を自らの機器がIRMとなって完結する場合は、機器内部で設定したローカルな番号をノードIDの代わりに接続機器を特定する情報として記憶させてもよく、図13はその例である。なお、この場合には、ローカル番号とノードIDを対応させるテーブルを記憶しておく必要がある。
【0063】
また、図14は、IRMのレジスタ(CSR)内に接続優先順位を記憶させたものである。AV/Cコマンドを用いて、優先順情報と、接続機器のノードIDを伝送して記憶させることができる。あるいは、LOCKトランザクションを利用して、接続機器のノードIDを記憶させることができる。さらには、アドレスオフセットを指定して直接レジスタ(CSR)に書き込むようにしてもよく、その場合には、レジスタの若い順に優先順位が高くなるように設定する。
【0064】
このように、ある機器Aがバスリセット後に優先的に接続させたい機器Bを有している場合に、機器AをIRMに設定し、このIRMのレジスタ(CSR)にノードIDと対で接続優先順位を記憶させておくことにより、バスリセット発生後に、機器AをIRMに設定し、そのレジスタ(CSR)に記憶されている優先順位情報に基づいて、IRMがリソース割り当ての許可及び禁止を決定するように動作するため、バスリセット前の接続状態を確実に復元させることができるものである。
【0065】
図10,11で説明した動作を、図15のフローチャートを参照して改めて説明する。図15において、ステップS111で開始され、ステップS112でリソースの要求か否かが判定され、リソースの要求であった場合に、ステップS113で許可する機器であるか否かの判定がなされ、許可する機器であると判定されたら、ステップS114でIRMがリソースを更新し、次いでステップS115でIRMからcompleteを返し、ステップS116で終了となる。
【0066】
ステップS112でリソースの要求でないと判定されたら、ステップS116に移って処理を終了する。また、ステップS113で許可する機器でないと判定されたら、ステップS117でIRMが、リソース要求を出した機器に対してconflict errorを返して、ステップS116で処理を終了する。
【0067】
また、図16は、バスリセットが発生した際に、GUIDを用いて、接続を復元させる動作を説明するためのフローチャートである。図16においては、ステップS121で開始され、ステップS122で複数のノードをチャンネルを介して論理接続する。次いでステップS123で、接続されたノードの初期レジスタ空間のコンフィグレーションROMからGUIDを読出しでメモリ20に記憶する。
【0068】
次に、ステップS124でバスリセットが発生したか否かの判定処理がバスリセットが発生するまで実行される。ステップS124でバスリセットが発生したことが判定されたら、ステップS125で、バス初期化処理/ツリー識別処理/自己識別処理が実行されて、ルートノード及び、IRMの選択が行われると共に、各ノードに対してノードIDが割り振られる。
【0069】
次に、ステップS126で、メモリからGUID情報を読出して、各ノードのGUIDと比較し、同じGUIDを有するノードのIDを特定する。次いでステップS127で、特定したノードIDに基づき、IRMにリソース要求を送る。
次に、ステップS128でIRMから、completeを受け取って、リソースを使用する権利を得、次のステップS129で、oPCRとiPCRの設定を行なって論理接続を達成する。次いで、ステップS130で、論理接続されたノード間でデータとAV/Cコマンドの伝送を行う。次いで、ステップ131で信号の伝送が終了したか否かの判定がなされ、伝送が終了していない場合には、ステップS130に戻り、伝送が終了したことが判定されたら、ステップS132で処理を終了する、
【0070】
また、図17に示すように、機器A以外の機器Cがバスリセット後に優先的に接続させたい機器Dを有していて、その優先接続を機器Aに依頼する場合には、機器の接続処理を行なう機器が接続前もしくは接続後にAV/Cコマンドを使用して優先順位とGUIDあるいはそのGUIDに対応するノードIDを通知する。次に、機器の接続処理を行なう機器が接続前もしくは接続後にIRMのレジスタ(CSR)に優先順位とGUIDあるいはそのGUIDに対応するノードIDを通知する。
【0071】
レジスタ(CSR)に書き込むアドレスは、若い方が優先順位が高いものと決めておけば、レジスタ(CSR)に書き込むアドレスがそのまま優先順位となる。IRMはリソースの要求があったときは、要求をしたノードIDをGUIDに対応付けてレジスタ(CSR)に書き込まれたアドレスの若い順から検索して該当しない場合は拒否し、一致した場合にはレジスタ(CSR)に記憶してある該当ノードIDを削除するか次回検索時に参照しないようにする。
【0072】
以上のように本発明によれば、IEEE1394シリアルバスで接続されている機器間の接続状態を、機器にユニークに付されたGUIDに基づいて認識してIRMのレジスタ(CSR)に記憶させておき、バスリセット後に、リセット前にIRMであったノードを、再びIRMに設定し、レジスタ(CSR)に記憶されたGUIDに基づいて、優先的に接続すべきノードIDを特定して、ノード間の論理接続を確立するようにしたため、バスリセット前の接続状態を確実に復元することができるものである。
【0073】
【発明の効果】
以上のように、本発明によれば、IEEEシリアルバスに接続されて、信号を伝送している機器をGUIDで特定して、記憶させ、バスリセット発生後に、記憶させておいたGUIDに基づいて接続していた機器のノードIDを特定し、そのIDのノードからIRMにリソース要求を出して、論理接続を実行するようにしたので、バスリセット前の接続を確実に復元することができるものである。
【図面の簡単な説明】
【図1】本発明の電子機器制御装置に適用されるIEEE1364シリアルバスの構成を示すブロック図。
【図2】図1に示すIEEE1364シリアルバスのノード接続状態を説明するためのブロック図。
【図3】図1に示すIEEE1394シリアルバスのノード接続状態を説明するためのブロック図。
【図4】図1に示すIEEE1394シリアルバスのルート選択処理を説明するためのブロック図。
【図5】図1に示すIEEE1394シリアルバスの自己識別処理を説明するためのブロック図。
【図6】本発明の電子機器制御装置の動作を説明するための図。
【図7】本発明の動作を説明するための図。
【図8】本発明の要部の構成を説明するための図。
【図9】本発明の動作を説明するための図
【図10】本発明の動作を説明するための図。
【図11】本発明の動作を説明するための図。
【図12】本発明の動作を説明するための図。
【図13】本発明の動作を説明するための図。
【図14】本発明の動作を説明するための図。
【図15】本発明の電子機器制御装置の動作を説明するためのフローチャート。
【図16】本発明の電子機器制御装置の動作を説明するためのフローチャート。
【図17】本発明の電子機器制御装置の動作を説明するための図。
【符号の説明】
11…トランザクションレイヤ
12…リンクレイヤ
13…物理レイヤ
14…シリアルバス管理部
61…STB(セットトップボックス)
62…DVHS−1
63…DVHS−2
64…DVHS−3
65…DVHS−4
66…モニタ
Claims (7)
- IEEE1394シリアルバスに接続された複数の電子機器と、
前記複数の電子機器のうち前記シリアルバスによってデータを伝送するように接続されている機器を特定する情報を当該機器から読み出して記憶する記憶手段と、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記シリアルバスに接続された電子機器からの接続要求を受けるか否か判断し、接続要求を受付けると判断した電子機器の接続を行い、接続要求を受付けないと判断した電子機器の接続を拒否する制御手段と、
を具備したことを特徴とする電子機器の接続制御装置。 - IEEE1394シリアルバスに接続された複数の電子機器と、
前記複数の電子機器のうち前記シリアルバスによってデータを伝送するように論理接続されている機器を特定する情報を当該機器から読み出して記憶する記憶手段と、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記バスリセットが発生する前に前記シリアルバスによってデータを伝送するように接続されていた機器を特定し、その機器に割り振られたノードIDに基づく前記シリアルバスのアイソクロノス・リソース・マネージャ(IRM)に対するリソース要求を受けて、当該機器の前記シリアルバスによる論理接続を確立し、他の機器からのリソース要求を拒否する制御手段と、
を具備したことを特徴とする電子機器の接続制御装置。 - 前記シリアルバスに論理接続されている複数の機器の接続優先順位情報を特定し、その順位情報を前記記憶手段に記憶させることを特徴とする請求項1または2に記載の電子機器の接続制御装置。
- 前記制御手段は、前記他の機器からのリソース要求に対してエラー情報を返信することを特徴とする請求項2に記載の電子機器の接続制御装置。
- 前記制御手段は、前記複数の機器の中からアイソクロノス・リソース・マネージャ(IRM)となる機器を特定する手段を含むことを特徴とする請求項1乃至3に記載の電子機器の接続制御装置。
- IEEE1394シリアルバスに接続された複数の電子機器のうち前記シリアルバスによってデータを伝送するように接続されている機器を特定する情報を当該機器から読み出して記憶するステップと、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記電子機器からの接続要求を受けるか否か判定するステッブと、
接続要求を受けると判定した当該機器を前記シリアルバスによるデータ伝送を可能とすべく接続するステップと、
接続要求を拒否すると判定した機器からの接続要求を拒否するステップと、
を具備したことを特徴とする電子機器の接続制御方法。 - IEEE1394シリアルバスに接続された複数の電子機器のうち前記シリアルバスによってデータを伝送するように論理接続されている機器を特定する情報を当該機器から読み出して記憶するステップと、
前記シリアルバスにバスリセットが発生した際に、前記機器特定情報を読み出し当該特定情報に基づいて、前記バスリセットが発生する前に前記シリアルバスによってデータを伝送するように接続されていた機器を特定し、その機器に割り振られたノードIDに基づく前記シリアルバスのアイソクロノス・リソース・マネージャ(IRM)に対するリソース要求を受けて、当該機器の前記シリアルバスによる論理接続を確立し、他の機器からのリソース要求を拒否するステップと、
を具備したことを特徴とする電子機器の接続制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003121036A JP2004328424A (ja) | 2003-04-25 | 2003-04-25 | 電子機器の接続制御装置及び接続制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003121036A JP2004328424A (ja) | 2003-04-25 | 2003-04-25 | 電子機器の接続制御装置及び接続制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004328424A true JP2004328424A (ja) | 2004-11-18 |
Family
ID=33499713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003121036A Pending JP2004328424A (ja) | 2003-04-25 | 2003-04-25 | 電子機器の接続制御装置及び接続制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004328424A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010148055A (ja) * | 2008-12-22 | 2010-07-01 | Fujitsu Semiconductor Ltd | ネットワークの制御方法及びインターフェース装置 |
JP2012244581A (ja) * | 2011-05-24 | 2012-12-10 | Fujitsu Semiconductor Ltd | 通信装置、半導体装置、装置idの設定方法 |
US8914554B2 (en) | 2010-12-10 | 2014-12-16 | Spansion Llc | Communication network device that compares first and second identification number of packet to determine if they are in conformance or non-conformance with self-ID packet |
-
2003
- 2003-04-25 JP JP2003121036A patent/JP2004328424A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010148055A (ja) * | 2008-12-22 | 2010-07-01 | Fujitsu Semiconductor Ltd | ネットワークの制御方法及びインターフェース装置 |
US8914554B2 (en) | 2010-12-10 | 2014-12-16 | Spansion Llc | Communication network device that compares first and second identification number of packet to determine if they are in conformance or non-conformance with self-ID packet |
JP2012244581A (ja) * | 2011-05-24 | 2012-12-10 | Fujitsu Semiconductor Ltd | 通信装置、半導体装置、装置idの設定方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2325765C2 (ru) | Определение и конфигурирование пути передачи данных в сети | |
US6397277B1 (en) | Method and apparatus for transmitting data over data bus at maximum speed | |
US7007078B2 (en) | Method and apparatus for re-securing resources after a detected bus reset | |
US6757772B2 (en) | Interface device, node, interface system, method for controlling bus reset and computer program product for controlling bus reset | |
US6408355B1 (en) | Method for releasing isochronous transaction in bus network, bus network utilizing the method thereof and information provision medium | |
JP2001016221A (ja) | ネットワークシステム、電子機器及び電源制御方法 | |
KR100553867B1 (ko) | Ieee 1394 버스로 연결된 네트워크에서의 버스 리셋 처리방법 | |
JP2004328424A (ja) | 電子機器の接続制御装置及び接続制御方法 | |
KR20010105196A (ko) | 제어 기기 및 제어 방법 | |
US6885631B1 (en) | Connection management method for digital interface | |
KR20010007376A (ko) | 제어장치, 통신시스템 및 제어방법 | |
JP2002073438A (ja) | Avネットワーク制御機器 | |
JP2002057683A (ja) | 制御機器および制御方法 | |
JP3739087B2 (ja) | Av機器及びその制御方法、av機器ネットワークシステム | |
KR100763716B1 (ko) | 정보 제어 방법, 정보 처리 장치, 및 정보 제어 시스템 | |
JP2003229857A (ja) | シリアルバスシステム、シリアルバスの帯域管理機器および通信機器 | |
CA2314424C (en) | Connection managing method of digital interface | |
KR100312065B1 (ko) | 서로 다른 노드간의 데이터 전송 방법 | |
US7796586B2 (en) | Data stream transmission/reception device | |
US20030115389A1 (en) | Digital data processing device, bus controlling method, bus controlling program and recording medium | |
JP3341758B2 (ja) | データ転送方法 | |
JP2003078537A (ja) | 機器認識方法及び電子機器 | |
US6721895B1 (en) | Data communications system and data communications method | |
JP2004165864A (ja) | 電子機器の制御装置及びデータ伝送方法 | |
JP5618805B2 (ja) | 通信装置、ネットワークシステム及び通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050415 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050606 |