JPH11345193A - シリアルバスインタフェースデバイスおよびバスの構成方法、記録媒体、シリアルバスインタフェ−スシステム - Google Patents

シリアルバスインタフェースデバイスおよびバスの構成方法、記録媒体、シリアルバスインタフェ−スシステム

Info

Publication number
JPH11345193A
JPH11345193A JP10150222A JP15022298A JPH11345193A JP H11345193 A JPH11345193 A JP H11345193A JP 10150222 A JP10150222 A JP 10150222A JP 15022298 A JP15022298 A JP 15022298A JP H11345193 A JPH11345193 A JP H11345193A
Authority
JP
Japan
Prior art keywords
port
loop
signal
bus
node
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.)
Withdrawn
Application number
JP10150222A
Other languages
English (en)
Inventor
Takuya Tsujimoto
卓哉 辻本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP10150222A priority Critical patent/JPH11345193A/ja
Publication of JPH11345193A publication Critical patent/JPH11345193A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【課題】 デバイス間接続で、許可されない接続構成が
とられると、ツリー構造を識別するための信号の授受が
できず、デバイス間のデータ通信ができなくなる。 【解決手段】デバイスの追加接続や切離しを検知し、バ
スの構成を行い、バス構成時にインタフェースシステム
上におけるループ接続されたデバイスの存在を検知す
る。他のデバイスとの接続口となるポートから強制的に
Parent Notify信号を発生させ、前記ポートからParent
Notify信号を受信する。信号の送信および受信状況から
ループ接続の発生箇所を判断し、その判断結果に基づき
アクティブなポートをディセーブルにする。ポートのデ
ィセーブル後に前記バス構成を再び開始することで上記
課題を解決した。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、シリアルバスイン
タフェースに関し、特にデバイス及びバスの構成方法、
記録媒体、該デバイスを使用したシリアルバスインタフ
ェースシステムに関するものである。
【0002】
【従来の技術】近年シリアルバスが、信号線が少ないこ
と、ケーブルが細いこと、コネクタが小さいこと、ID
やターミネータ等の設定が不要なこと、活線挿抜が可能
なこと、等時性のあるデータ転送(アイソクロナス転
送)が可能なことなどの優れた特徴をもつことから脚光
を浴びてきている。
【0003】特にIEEE1394のシリアルバスは、動画像等
の大容量データの高速伝送が可能であること、バスアー
キテクチャによってメモリアクセスが可能であること、
ホットプラグインやプラグアンドプレイが可能であるこ
と、およびピア・ツー・ピア接続が可能であることなど
の特徴を持つことによって、パーソナルコンピュータだ
けでなく家庭内のAV機器(ディジタルビデオカメラ
等)やそれ以外の機器への適用が盛んに進められてい
る。
【0004】また、更なる高速化や長距離化に対応した
新たな規格の策定も現在精力的に進められている。
【0005】ここでIEEE1394バスの構成例を図17を用
いて説明する。
【0006】1701〜1708は、IEEE1394インター
フェースでディジーチェーンあるいはブランチで接続さ
れているデバイス(ノード)である。デバイスとして
は、コンピュータ、ディジタルビデオカメラ、CCDカ
メラ、プリンタ、スキャナ、ストレージデバイス等様々
なデバイスが考えられる。IEEE1394のポートは、2組の
ツイストペアケーブル(一方をA、他方をBと称する)
と1組の電源ペアケーブルの計6本のケーブルで構成さ
れ、2組のツイストペアケーブルはお互いケーブルでク
ロスして接続され、一方のAは他方のBに、一方のBは
他方のAに接続される。データ信号は半二重通信で、ツ
イストペアAでデータ信号を、ツイストペアBでストロ
ーブ信号を差動信号として送信し、ツイストペアAでス
トローブ信号を、ツイストペアBでデータ信号を差動信
号として受信する。また、調停信号は全二重通信で、ド
ライバ側から調停信号を送信し、同時にレシーバ側では
ある電圧レベルによって定義された3相(0,1,Z)
の論理を用いて受信した調停信号を識別する。上記の3
相の論理を判別するために、ツイストペアAには「Ar
b Rx」として、ツイストペアBには「Arb B
Rx」として非反転入力と反転入力を1組にしたコンパ
レータが用意されている。「0」は非反転入力での低電
圧と反転入力での高電圧電圧と定義され、「1」は非反
転入力での高電圧と反転入力での低電圧と定義され、
「Z」は非反転と反転の両入力での低電圧で定義されて
いる。
【0007】バスの構成を確立するには、バスの初期
化、ツリー識別、自己識別の3つのフェーズが実施され
る。この3つのフェーズのプロセスの間に、図17に示
したようなツリーに似たトポロジーが構築される。
【0008】ここでバスの初期化は、電源不連続で発生
する場合や、ソフトウェアコマンドによって発生する場
合や、またはバスの構成でノードの新規接続や切り離し
等によるバス構成の不調を検知した場合によりバスリセ
ットが発生し、すべてのノードがアイドル状態になるこ
とにより完了する。
【0009】具体的には、まずツイストペアAとツイス
トペアBの両方に論理「1」を送信してバスリセットを
発生し、この信号を受信したノードはバスリセットの発
生を認識する。バスリセット発生後任意の時間が経過す
ると、ツイストペアAとツイストペアBの両方に論理
[Z」を送信してアイドル信号を発生させ、接続されて
いる相手ノードがアイドル信号を送信するのを待ち、相
手ノードからアイドル信号を受信するとバスの初期化が
完了したことを認識する。
【0010】バスの初期化が完了すると、次にツリー識
別のフェーズに移行する。
【0011】ノードには、自ノードに対する接続ノード
が1つだけ、つまりバス上では端点として構成される
「Leaf」ノードと、2つ以上の接続ノードを持つ「Bran
ch」ノードと、接続ノードを全く持たない、つまりスタ
ンドアローンで構成される「非接続」ノードの3種類の
ノードがある。
【0012】ツリー識別では、まず最初にノードが親
(ルート)候補であるノードに対してParent Notify信
号を送信する。図17では、「Leaf」ノードである17
04,1706,1707,1708の各ノードからPa
rent Notify信号が送信されていることを示している。
「Branch」ノードでは、複数のポートに他のデバイスが
接続されている場合にどのポート(そのポートの先に接
続されているノード)がルート候補のノードであるのか
認識できないので、最初にParent Notify信号を送信す
ることはなく、「Leaf」ノードからのParent Notify信
号を受信するのを待つことになる。ただし、「Branch」
ノードで複数ポートを有していても他のノードと接続さ
れているポートが1ポートしかなく他のポートがすべて
非接続の場合、もしくは接続されているノードが複数あ
ってもアクティブになっているポート(もしくはそのポ
ートの接続先のノード)が一つしかない場合には「Lea
f」ノードになる。
【0013】次に、図18で示されるように、Parent N
otify信号を受信した「Branch」ノードが送信してきた
ノードに対して子ノードであることを認めるChild noti
fy信号を送信する。ここで1801〜1808はノード
である。「Leaf」ノードはChild notify信号を受信しそ
のポートの接続が完了したことを認識する。具体的に
は、ノード1804からのParent Notify信号を受信し
たノード1802は、ノード1804に対してChild no
tify信号を送信し、その信号を受信したノード1804
はノード1802との接続が正常に行われていることを
認識する。同様にノード1807、ノード1808とノ
ード1805の間で、それからノード1806とノード
1803の間でも同じことが行われる。
【0014】「Branch」ノードは、上述したようにPare
nt Notify信号に対してChild notify信号を送信し、そ
のポート間でのノードの接続が完了したことを認識した
後に、自ノードのポートでアクティブとなっているポー
トのうちParent Notify信号を受信していないポートが
残り1ポートとなると、そのポートに対してParent Not
ify信号を送信する。
【0015】図18においては、ノード1803および
1804がその動作を行っている。具体的には、ノード
1803は3つのポートを持つノードで、アクティブな
ポートを二つ持ち、そのうち一つのポートでの接続が完
了(ノード1806との接続)したため残り一つのポー
ト(接続ノードは1801)に対してParent Notify信
号を送信する。同様にノード1805もノード1802
に対してParent Notify信号を送信する。その結果ノー
ド1801とノード1802が最終的な親(ルート)候
補となる。
【0016】図19では、ノード1901がノード19
02に対してParent Notify信号を送信し、ノード19
02がノード1901に対してChild notify信号を送信
することで、最終的な親である「Root」ノードにノード
1902が確定しツリー識別が完了したことを示してい
る。ここで1901〜1908はノードである。
【0017】ツリー識別が完了すると、次に各ノードに
ノード番号を割り振りお互いがデータ通信を可能にする
ための自己識別のフェーズに入る。
【0018】
【発明が解決しようとする課題】しかしながら上述した
従来の技術においては、他のデバイスと接続を行うため
のケーブルのコネクタがすべて同一であることから、図
20に示されるようにノード2003とノード2005
が接続されると、ディジーチェーン接続やブランチ接続
以外の許容されていないループ接続がノード2001,
ノード2002,ノード2003およびノード2005
との間で成立してしまうことになる。
【0019】このループ接続では、「Branch」ノードの
複数のポートが、他ノードからのParent Notify信号を
受信するのを待つため、このノードからParent Notify
信号を送信することはなくツリー識別を完了させること
ができない。そのため、その後の自己識別やデータ通信
ができない状態に陥ってしまうという問題がある。
【0020】この問題を解決する手段としてループ接続
が発生した場合、それを検知して何らかの手段でユーザ
ーに通知するという方法もあるが、検知手段がタイマー
による時間管理、つまりある一定時間内にツリー識別の
フェーズが終了しなかった場合にループ接続がバス上で
検知されたと見なすものであれば、一体どの箇所でルー
プ接続が発生したのかわからないし、ループ接続以外の
要件によりタイムアウトする場合も考慮すれば確実にル
ープが存在するかをこれだけの情報で判断することは難
しい(つまりタイマーによる時間管理では確実なループ
検知はできない)。
【0021】また、構成されるバスの中に複数のループ
が存在する場合もその検知はできないし(ループ接続が
存在することはわかってもいくつのループがあるかまで
はわからない)、できたとしてもその箇所を特定するこ
とはできない。さらに、検知した場所を的確に伝えられ
たとしてもその情報から正常なバスの構成を行うにはユ
ーザー自らがノードの切り離しなどによるループ接続の
回避作業を行わなければならず手間がかかるなど様々な
問題がある。
【0022】本発明は上記問題を解決するものであり、
確実なループ検知を行いそのループ接続を自動的に回避
してバスを再構成する。また再構成できない場合も含め
てループ接続の発生箇所をユーザーに対して的確に知ら
せることができる。
【0023】
【課題を解決するための手段】上記目的を達成するため
に本発明にかかるシリアルバスインタフェースデバイス
及びシリアルバスインタフェースのバス構成方法、記録
媒体、該デバイスを使用したシステムは以下のような構
成になる。
【0024】すなわち、シリアルバスインタフェースデ
バイスは、デバイスの追加接続や切離しを検知しバスの
構成を行う構成手段と、インタフェースシステム上でデ
バイスの接続形態を判断し、ループ接続されたデバイス
の存在を検知するループ検知手段と、他のデバイスとの
接続口となるひとつもしくはそれ以上の数のポートと、
前記ポートから強制的にParent Notify信号を発生させ
る信号発生手段と、前記ポートからParent Notify信号
を受信する信号受信手段と、前記信号の送信および受信
状況からループ接続の発生箇所を判断する判断手段と、
前記判断手段の判断結果に基づきアクティブなポートを
ディセーブルにするディセーブル手段と、前記ディセー
ブル手段によるポートのディセーブル後に前記バス構成
手段を再び開始させるシステム再構成開始手段とを備え
る。
【0025】また好ましくは、前記シリアルバスインタ
フェースは、IEEE1394に準拠したものである。
【0026】また好ましくは、前記ループ検知手段は、
タイマーによるカウント値が任意のタイマー値を超えた
場合、バス上にループ接続されたデバイスが存在すると
認識する。
【0027】また好ましくは、前記ループ検知手段によ
るループの検知結果を、ユーザーに通知する手段を更に
備える。
【0028】また好ましくは、前記ループ検知手段によ
るループの検知結果をユーザーに通知する手段は、表示
装置の表示に基づくものである。
【0029】また好ましくは、前記シリアルバスインタ
フェースデバイスがプリンタで、メディアに対する印字
を可能とするデバイスである場合、前記ループ検知手段
によるループの検知結果をメディアに印字出力すること
でユーザーに通知する。
【0030】また好ましくは、前記ループ検知手段によ
るループの検知結果をユーザーに通知する手段は、音声
伝達に基づくものである。
【0031】また好ましくは、前記ポートが複数である
場合、複数のポートそれぞれでループ検知が可能であ
る。
【0032】また好ましくは、前記判断手段によって、
前記シリアルバスインタフェースデバイスがシリアルバ
スインタフェースシステム上のループを構成しているバ
ス上に存在すると判断された場合、前記システム再構成
開始手段はポートをディセーブル後、システム再構成を
実行し、バス上に存在しないと判断された場合、前記表
示手段はループ接続の存在のみをユーザーに通知する。
【0033】また好ましくは、前記判断手段は、複数の
ポートがアクティブの場合にParentNotify信号を受信し
ていないポートに対してParent Notify信号を発生さ
せ、送信したのとは別のポートでParent Notify信号を
受信したときに、そのポート間に接続されるバス上でル
ープが存在すると判断する。
【0034】また好ましくは、前記信号発生手段は、複
数のポートがアクティブの場合にParent Notify信号を
受信していないポートに対してParent Notify信号を発
生させても、他のどのポートからもParent Notify信号
を受信できないときには、さらにParent Notify信号を
受信していない別のポートに対してParent Notify信号
を発生し、ループの存在を確認する動作を行う。
【0035】また好ましくは、前記判断手段は、アクテ
ィブなポートが存在する場合にParent Notify信号を受
信していないポートに対してParent Notify信号を発生
させたときに、任意のタイマー値でタイマーを起動し、
タイマー値を超えた時点で他のどのポートからもParent
Notify信号を受信できないときそのポートの先に接続
されるデバイス間で構成されるバス上でループが存在す
ると判断する。
【0036】また好ましくは、前記ループ検知手段で用
いられる任意のタイマー値と、前記判断手段で用いられ
る任意のタイマー値とは、別個の値が設定され、前記ル
ープ検知手段と前記判断手段の起動タイミングを変えて
いることを特徴とする。
【0037】また好ましくは、前記ディセーブル手段に
よってポートがディセーブルにされた場合、どのポート
がディセーブルにされたかユーザーに通知する通知手段
を更に備える。
【0038】また、インタフェースシステムのバス構成
方法は、デバイスの追加接続や切離しを検知しバスの構
成を行うバス構成工程と、バス構成時インタフェースシ
ステム上におけるループ接続されたデバイスの存在を検
知するループ検知工程と、他のデバイスとの接続口とな
るポートから強制的にParent Notify信号を発生させる
信号発生工程と、前記ポートからParent Notify信号を
受信する信号受信工程と、前記信号の送信および受信状
況からループ接続の発生箇所を判断する判断工程と、前
記判断工程の判断結果に基づきアクティブなポートをデ
ィセーブルにするディセーブル工程と、前記ディセーブ
ル工程によるポートのディセーブル後に前記バス構成工
程を再び開始させるシステム再構成開始工程とを有す
る。
【0039】また好ましくは、前記ループ検知工程は、
タイマーによるカウント値が任意のタイマー値を超えた
場合、バス上にループ接続されたデバイスが存在すると
認識する。
【0040】また好ましくは、前記ループ検知工程によ
るループの検知結果を、ユーザーに通知する工程を更に
備える。
【0041】また好ましくは、前記ユーザーに通知する
工程は、ディスプレイにより、前記ループ検知工程によ
るループの検知結果を通知する。
【0042】また好ましくは、前記シリアルバスインタ
フェースバスを構成するデバイスがプリンタ等のメディ
アに対する印字を可能とするデバイスの場合、前記ルー
プ検知工程によるループの検知結果をメディアに印字出
力する方法でユーザーに通知する。
【0043】また好ましくは、前記ユーザーに通知する
工程は、音声伝達により、前記ループ検知工程によるル
ープの検知結果を通知する。
【0044】また好ましくは、前記ループ検知工程は、
複数のループを検知可能である。
【0045】また好ましくは、前記判断工程によって、
前記シリアルバスインタフェースデバイスがシリアルバ
スインタフェースシステム上のループを構成しているバ
ス上に存在すると判断された場合、前記システム再構成
開始工程はポートをディセーブル後、システム再構成を
実行し、バス上に存在しないと判断された場合、前記ユ
ーザに通知する工程はループ接続の存在のみをユーザー
に通知する。
【0046】また好ましくは、前記判断工程は、複数の
ポートがアクティブの場合にParentNotify信号を受信し
ていないポートに対してParent Notify信号を発生さ
せ、送信したのとは別のポートでParent Notify信号を
受信したときに、そのポート間に接続されるバス上でル
ープが存在すると判断する。
【0047】また好ましくは、前記信号発生工程は、複
数のポートがアクティブの場合にParent Notify信号を
受信していないポートに対してParent Notify信号を発
生させても、他のどのポートからもParent Notify信号
を受信できないときには、さらにParent Notify信号を
受信していない別のポートに対してParent Notify信号
を発生し、ループの存在を確認する動作を行う。
【0048】また好ましくは、前記判断工程は、アクテ
ィブなポートが存在する場合にParent Notify信号を受
信していないポートに対してParent Notify信号を発生
させたときに、任意のタイマー値でタイマーを起動し、
タイマー値を超えた時点で他のどのポートからもParent
Notify信号を受信できないときそのポートの先に接続
されるデバイス間で構成されるバス上でループが存在す
ると判断する。
【0049】また好ましくは、前記ループ検知工程で用
いられる任意のタイマー値と、前記判断工程で用いられ
る任意のタイマー値とは、別個の値が設定され、前記ル
ープ検知工程と前記判断工程の起動タイミングを変えて
いることを特徴とする。
【0050】また好ましくは、前記ディセーブル工程に
よってポートがディセーブルにされた場合、どのポート
がディセーブルにされたかユーザーに通知する通知工程
を更に備える。
【0051】また、コンピュータ可読の記録媒体はデバ
イスの追加接続や切離しを検知しバスの構成を行うバス
構成工程と、バス構成時インタフェースシステム上にお
けるループ接続されたデバイスの存在を検知するループ
検知工程と、他のデバイスとの接続口となるポートから
強制的にParent Notify信号を発生させる信号発生工程
と、前記ポートからParent Notify信号を受信する信号
受信工程と、前記信号の送信および受信状況からループ
接続の発生箇所を判断する判断工程と、前記判断工程の
判断結果に基づきアクティブなポートをディセーブルに
するディセーブル工程と、前記ディセーブル工程による
ポートのディセーブル後に前記バス構成工程を再び開始
させるシステム再構成開始工程とを備える。
【0052】また、複数のデバイスがシリアルバスイン
タフェースデバイスで接続されて構成されるシリアルバ
スインタフェースシステムは、前記シリアルバスインタ
フェースデバイスとして、前記シリアルバスインタフェ
ースデバイスを用いたことを特徴とする。
【0053】また好ましくは、前記シリアルバスインタ
フェースデバイスで接続されたデバイスはプリンタ機能
を備える。
【0054】この構成によって、確実なループ検知を行
いそのループ接続をユーザーの手を煩わせることなく自
動的に回避してバスを再構成する。また再構成できない
場合も含めてループ接続の発生箇所をユーザーに対して
的確に知らせることができる。
【0055】
【発明の実施の形態】[第1の実施形態]本発明の第1
の実施形態を図に従って説明する。
【0056】図1は、第1の実施形態におけるデバイス
内の構成を示すブロック図である。
【0057】101は、IEEE1394の規格に準拠したイン
タフェースを備えるノード(デバイス本体)である。以
下に説明する102,105〜113の各ブロックで構
成される。この例では画像読み取りを行うスキャナデバ
イスを想定している。この他にもIEEE1394インタフェー
スシステムを構成できるデバイスがあれば上位レイヤで
あるアプリケーションの機能としては何でも構わない。
【0058】102は、IEEE1394インタフェースのデバ
イス本体側の受け口(ポート)となるリセプタクルであ
る。ここにシステムを構成する各種デバイスとの接続を
するためのケーブルが差し込まれる。
【0059】103は、IEEE1394インタフェースケーブ
ルのプラグである。この部分を各種デバイスのポートに
はめ込んで接続する。
【0060】104は、IEEE1394インタフェースのケー
ブルである。このケーブル内には2組のツイストペアケ
ーブル(一方がA、他方がBと称される信号線)と1組
の電源ペアケーブルのあわせて6本のケーブルがクロス
している。
【0061】105は、IEEE1394に準拠した100Mbps
〜400Mbpsの転送スピードをサポートする物理レイヤ
を実現するブロックで各種のハードウェアロジック(ツ
イステッドペアのインタフェースの複数ポート、リンク
レイヤICへのインタフェース、パケットデータのシン
クロナイズと再構成、ビットレベルのアービトレーショ
ン、および本発明の要点となる初期化ロジック、タイマ
ー等)によって構成される。機能および構成の詳細につ
いては本発明の骨子となるものであるが、構成に関して
は図2を、その処理フローに関しては図3〜6を用いて
後ほど詳述する。
【0062】106は、IEEE1394に準拠したリンクレイ
ヤのコントローラで各種ハードウェアロジックによって
構成される。
【0063】107は、本デバイスの各種制御およびIE
EE1394インタフェースのトランザクションレイヤ、ノー
ドコントローラおよびアプリケーションレイヤの機能を
実現するCPUである。
【0064】108は、CPU107が各種処理を行う
際に必要な命令およびデータを格納するRAMである。
IEEE1394インタフェースによる転送データの記憶やスキ
ャナによって読み込まれた画像の一時記憶にも使用され
る。
【0065】109は、本デバイスの制御情報を格納し
てあるROMである。フラッシュメモリなどを利用する
ことで制御情報の更新を後から行うことも可能である。
【0066】110は、本デバイスのメカ制御および各
種画像処理を行うASICである。画像読み込み時のス
キャナヘッドの制御や読み込んだ画像データの補正など
の各種画像処理を行う専用のハードウェアロジックであ
る。
【0067】111は、スキャナである。原稿読み取り
時の光源、CCDセンサ、A/D変換器、画信号補正回
路などによって構成される。
【0068】112は、ユーザーへステータスを通知し
たり、ユーザーからのコマンド入力を受け付けるための
ユーザーインタフェースである。通知するための表示部
と入力を受け付ける操作部によって構成される。
【0069】113は、システムバスである。図示され
ている106〜112の各ブロックの他、不図示の構成
要素もこのバス上にぶら下がっており、各ブロック間で
の高速なデータ転送を行うことができる。
【0070】図2は、第1の実施形態におけるPHYブ
ロックの構成図である。
【0071】201は、図1の105の部分にあたる物
理レイヤを構成するハードウェアロジックである。以下
に説明する207〜208,212〜214のブロック
で構成される。
【0072】202a,202bおよび202cは、IE
EE1394インタフェースのデバイス本体側の受け口(ポー
ト)となるリセプタクルである。ここに他の各種デバイ
スとの接続をするためのケーブルが差し込まれる。この
実施形態ではデバイスは3つのポートを持つものとす
る。
【0073】203は、IEEE1394インタフェースケーブ
ルのプラグである。この部分を各種デバイスのポートに
はめ込んで接続する。
【0074】204は、IEEE1394インタフェースのケー
ブルである。このケーブル内には2組のツイストペアケ
ーブル(一方がA、他方がBと称される信号線)と1組
の電源ペアケーブルのあわせて6本のケーブルがクロス
している。
【0075】205は、TpAレシーバからのTpA信
号である。IEEE1394デバイスはポート一つに対してTp
AとTpBという二つのトランシーバを持っている。T
pAは、アービトレーションビットとパケット(ストロ
ーブ信号)を送信し、アービトレーション信号とパケッ
ト(データ信号)を受信する。
【0076】206は、TpBレシーバからのTpB信
号である。TpBは、アービトレーションビットとパケ
ット(データ信号)を送信し、アービトレーション信号
とパケット(ストローブ信号)を受信する。
【0077】207a,207bおよび207cは、差
動信号を駆動するドライバおよび低オフセットの広帯域
レシーバおよびディジタルの信号への変換部で構成され
るトランスミッタおよびレシーバである。ここでIEEE13
94のケーブル上を送信されてきた信号を受信したり、本
デバイスから送信されるデータをケーブルに流す信号に
変換する。
【0078】208は、クリスタルオシレータである。
【0079】209は、クリスタルオシレータ208の
出力からIEEE1394インタフェースの動作周波数のクロッ
クを生成するPLLである。
【0080】210は、IEEE1394インタフェースの動作
クロックである。デバイスによって100Mbpsから40
0Mbpsの動作クロックが必要となる。
【0081】211は、トランスミッタおよびレシーバ
207で変換されたディジタルの信号である。バスの構
成時に使用される各種信号や送受信されるデータ信号が
それに相当する。
【0082】212は、リンクレイヤとのインタフェー
スの制御、バス初期化時、ループ検知時および再構成時
の各種制御等を行う制御部(コントロールユニット)で
ある。ループ検知時に使用するタイマーも含まれる。制
御部での処理の詳細については後述する。
【0083】213は、IEEE1394インタフェースの仕様
で定められているDS-Link方式の符号復号器である。
【0084】214は、リンクレイヤとのインタフェー
スであり、各種レジスタによって構成される。このイン
タフェースを通して受信したデータや他のデバイスに送
信するデータを送る。またループ接続の存在や発生箇所
の情報などを上位レイヤに伝える際にも使用される。
【0085】図3は、第1の実施形態における制御手順
の概略であり、その中でもバスリセット時からIEEE1394
インタフェースシステムでいうアプリケーションレイヤ
が動作できるところまでのフローを示している。
【0086】ステップ301では、バスのリセットが実
行されてからループ検知処理に入るまでの初期化の処理
を行う。詳細については図4を用いて後ほど説明する。
【0087】ステップ302では、初期化終了後イレギ
ュラーな接続形態であるループ接続があるかどうか、ま
たその接続形態がバス上のどの場所に検知されたのかを
判断するループ検知処理を行う。詳細については図5を
用いて後ほど説明する。
【0088】ステップ303では、ループ接続を検知し
たかどうかの判断を行う。ループ接続を検知した場合は
ステップ306へ、ループ接続を検知せず正常なバスを
構成できたと判断したときはステップ304へすすむ。
【0089】ステップ304では、正常なバスの構成だ
けが行われたと判断したのを受けてツリー識別を行う。
ツリー識別の詳細については従来例の説明でしたので参
照のこと。
【0090】ステップ305では、ツリー識別が行われ
たのを受けて自己識別を行う。具体的には各種ノードを
含んだセルフIDパケットの送出および他のノード(デ
バイス)からのセルフIDパケットを受信することでバ
ス上にいくつのデバイスが接続さえているかなどの情報
を得て、バスリセットのプロセスを終了する。
【0091】ステップ306では、ループ接続を検知し
たのを受けて、自ノードのアクティブなポートのいずれ
かをディセーブルにすることでバスの正常な構成が可能
かどうかで処理を分岐する。分岐の判断自体はステップ
302のループ検知処理で行う。バスの再構成が可能な
場合はステップ307へ、バスの再構成ができない場合
はステップ308へそれぞれすすむ。
【0092】ステップ307では、バスの再構成が可能
だという判断を受けてバスの再構成を行う。バスの再構
成の詳細については図6を用いて後ほど説明する。
【0093】ステップ308では、バスの再構成ができ
ないことを受けてループ接続を検知した箇所をユーザー
に通知する。通知する手段はデバイスにより様々である
が、表示装置への表示、紙などのメディアに対する結果
の出力、音声によるものなどが考えられる。
【0094】図4は、第1の実施形態における初期化フ
ローである。
【0095】本動作フローは初期化プロセスを実行する
フローチャートを示しており、デバイスが接続されてい
るポートからのバスリセット信号を検知したときおよび
バスリセットを自らのノードで発生したときからスター
トし、初期化プロセスが完了した時点で終了となる。
【0096】ステップ401では、バスリセットの開始
を受けて自ノードにアクティブなポートが存在するかど
うかを検出する。アクティブなポートがない場合はステ
ップ402へ、ある場合はステップ404へすすむ。
【0097】ステップ402では、アクティブなポート
が存在しない、つまりこのノードに対して接続されてい
るデバイスがないことからスタンドアロンのデバイスで
あると判断し、スタンドアロンのデバイスとしての動作
を開始する。
【0098】ステップ403では、スタンドアロンデバ
イス動作の開始を受け、このループ検知の処理から抜け
る。
【0099】ステップ404では、バスリセットを発生
させるための送信要求が上位レイヤからあるかどうかを
判断する。バスリセットの送信要求の場合はステップ4
05へ、そうでない場合はステップ408へすすむ。
【0100】ステップ405では、バスリセットの送信
要求を受けて、アクティブなポートすべてに対してバス
リセット信号を送信する。
【0101】ステップ406では、バスリセット信号を
送信したアクティブなポートすべてにアイドル信号を送
信する。
【0102】ステップ407では、アクティブなポート
すべてからアイドル信号を受信したかどうかを判断す
る。すべてのポートからアイドル信号を受信するまでこ
のルーチンを繰り返し、すべて受信した時点で初期化ル
ーチンを終了する。
【0103】ステップ408では、バスリセットが送信
要求ではないのを受けてバスリセット信号を受信する。
【0104】ステップ409では、他にアクティブなポ
ートが存在するかどうかを確認する。ある場合はステッ
プ409へ、ない場合はバスリセット後の初期化ルーチ
ンを終了する。
【0105】ステップ410では、バスリセットを受け
たポート以外のすべてのアクティブなポートに対してバ
スリセット信号を送信する。
【0106】ステップ411では、ステップ410に続
いてバスリセット信号を送信したすべてのアクティブな
ポートに対してアイドル信号を送信する。
【0107】ステップ412では、アクティブなポート
すべてからアイドル信号を受信したかどうかを判断す
る。すべてのポートからアイドル信号を受信するまでこ
のルーチンを繰り返し、すべて受信した時点で初期化ル
ーチンを終了する。
【0108】以上のステップを踏んで初期化ルーチンが
行われる。
【0109】図5(a)〜(e)は、第1の実施形態に
おけるループ検知フローである。
【0110】本動作フローはループ検知プロセスを実行
するフローチャートを示しており、初期化プロセスが終
了した時点からスタートし、ループ検知プロセスが完了
した時点で終了となる。
【0111】まずは図5(a)を用いて説明する。
【0112】ステップ501では、ツリー識別がある時
間内に行われたかどうかを判断するためにある任意のタ
イマー値を持つタイマーを起動する。ここでは仮にタイ
マー1とする。
【0113】ステップ502では、自ノードの持つアク
ティブなポートの数を確認する。アクティブなポートが
1つかそれより多いかを判断し、アクティブなポート数
が2つ以上の場合はAへ、アクティブなポートが1つの
場合はステップ503へ移行する。Aへ移行した際の処
理の流れに関しては図5(b)を用いて説明する。
【0114】ステップ503では、Parent Notify信号
を受信したかどうかを判断する。受信した場合はステッ
プ504へ、受信しなかった場合はステップ505へす
すむ。
【0115】ステップ504では、Parent Notify信号
を受信したのを受けてそのノードに対してChild Notify
信号を送信し、ステップ520へ移行する。
【0116】ステップ505では、Parent Notify信号
を受信していないのを受けて自ノードからそのノードに
対してParent Notify信号を送信する。
【0117】ステップ506では、タイマー1がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ509へ、タイムアウ
トした場合はステップ507へすすむ。
【0118】ステップ507では、タイマー1のタイム
アウトを受けて相手ノード(デバイス)が無応答である
と認識する。
【0119】ステップ508では、接続先のノードが無
応答であると認識したことによりエラー処理のシーケン
スに入る。具体的には接続先の相手ノードが無応答であ
ることをユーザーに通知するか、もしくはツリー構成に
そのデバイスを加えない等の処理を行う。
【0120】ステップ509では、Child Notify信号を
受信したかどうかを判断する。受信した場合はステップ
520へ、受信しなかった場合はステップ510へすす
む。
【0121】ステップ510では、Parent Notify信号
を受信したかどうかを判断する。受信した場合はステッ
プ511へ進み、受信しなかった場合はステップ506
へ戻る。
【0122】ステップ511では、タイマー1を停止し
た後にタイマー2を起動する。ここでタイマー2は、ル
ート競合のためのタイマーで、競合した2つのデバイス
だけが次にParent Notify信号を送信するまでの時間を
決めるための時間をランダムに選択するためのものであ
る。
【0123】ステップ512では、Paent Notify信号を
受信したかどうかを判断する。受信した場合はステップ
513へ、受信しなかった場合はステップ515へすす
む。
【0124】ステップ513では、Parent Notify信号
を受信したのを受けて、Child Notify信号を送信する。
【0125】ステップ514では、競合する2つのデバ
イス間で信号のやりとりが行われたことから自ノードが
ルートデバイスに確定する。
【0126】ステップ515では、Parent Notify信号
を受信していないのを受けて自ノードからそのノードに
対してParent Notify信号を送信する。
【0127】ステップ516では、タイマー2がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ517へ、タイムアウ
トした場合はステップ518へすすむ。
【0128】ステップ517では、Child Notify信号を
受信したかどうかを判断する。受信した場合はステップ
520へ進み、受信しなかった場合はステップ516へ
戻る。
【0129】ステップ518では、タイマー2のタイム
アウトを受けて相手ノード(デバイス)が無応答である
と認識する。
【0130】ステップ519では、接続先の相手ノード
が無応答であると判断したことによりエラー処理のシー
ケンスに入る。具体的には接続先の相手ノードが無応答
であることをユーザーに通知したり、ツリー構成にその
デバイスを加えない等の処理を行う。
【0131】ステップ520では、ツリー識別処理の終
了を確認する。
【0132】図5(b)を用いてAへ移行した際の処理
の流れを説明する。
【0133】ステップ521では、アクティブなポート
数をカウントしてその値を保存する。仮にここではNと
いうパラメータにその値を格納する。
【0134】ステップ522では、アクティブなポート
数Nが2つであるかどうかを判断する。アクティブなポ
ートが2つの場合はステップ523へ、3つ以上のアク
ティブなポートを持つ場合はCへ移行する。Cへ移行し
た際の処理の流れに関しては図5(d)を用いて説明す
る。
【0135】ステップ523では、タイマー1がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ524へ、タイムアウ
トした場合はステップ527へすすむ。
【0136】ステップ524では、Parent Notify信号
を受信したかどうかを判断する。受信した場合はステッ
プ525へ進み、受信しなかった場合はステップ523
へ戻る。
【0137】ステップ525では、Parent Notify信号
を受信したのを受けてそのノードに対してChild Notify
信号を送信する。
【0138】ステップ526では、Parent Notify信号
を受信したポートではないもう一方のポートに対してPa
rent Notify信号を送信する。その後処理はBへ移行す
るがその処理の流れに関しては図5(c)を用いて説明
する。
【0139】ステップ527では、タイアマー1がタイ
ムアウトしたのを受けてタイマー3を起動する。タイマ
ー1のタイムアウトの時点で無応答の状態が続いている
ポートが存在するため第一の判断としてループが発生し
たと認識する。通常のループ接続の検知であればここで
処理を終了してしまうが、本発明では次に正確なループ
接続の発生箇所の認識とループ回避のためのプロセスに
入る。タイマー3は無応答なデバイスに対して強制的に
Parent Notify信号を送信した場合別のポートからParen
t Notify信号が帰ってくるまでのタイムアウトの時間を
カウントするタイマーである。
【0140】ステップ528では、無応答なポートの何
れかに対してParent Notify信号を送信する。
【0141】ステップ529では、タイマー3がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ532へ、タイムアウ
トした場合はステップ530へすすむ。
【0142】ステップ530では、タイマー3のタイム
アウトを受けて相手ノード(デバイス)が無応答である
と認識する。
【0143】ステップ531では、接続先の相手ノード
が無応答であると認識したことによりエラー処理のシー
ケンスに入る。具体的には接続先の相手ノードが無応答
であることをユーザーに通知したり、ツリー構成にその
デバイスを加えない等の処理を行う。
【0144】ステップ532では、Child Notify信号を
受信したかどうかを判断する。受信した場合はステップ
533へ進み、受信しなかった場合はステップ529へ
戻りこの間のシーケンスを繰り返す。
【0145】ステップ533では、タイマー3がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ535へ、タイムアウ
トした場合はステップ534へすすむ。
【0146】ステップ534では、タイマー3のタイム
アウトを受けてループ接続の箇所が自ノードから強制的
にParent Notify信号を送信したノードもしくはその接
続先のノードであると判断する。またその際Parent Not
ify信号を送信したポートをディセーブルにしてもバス
の再構成ができないこともあわせて判断し、それらの情
報を記憶、保存する。
【0147】ステップ535では、自ノードから強制的
にParent Notify信号を送信したポートとは別のポート
からParent Notify信号を受信したかどうかを判断す
る。受信した場合はステップ536へ進み、受信しなか
った場合はステップ533へ戻りこの間のシーケンスを
繰り返す。
【0148】ステップ536では、自ノードから強制的
にParent Notify信号を送信したポートとは別のポート
からParent Notify信号を受信したことを受けてループ
接続の発生箇所が自ノードの2つのポートの間に接続さ
れるバスの中に存在すると判断する。またあわせて自ノ
ードのどちらかのポートをディセーブルにすることによ
りバスの再構成が可能であることも判断し、それらの情
報を記憶、保存する。ステップ534および本ステップ
で記憶、保存した情報はバスの再構成時にアクティブな
ポートをディセーブルにする場合およびループ接続の発
生箇所をユーザーに通知する場合に使用される。
【0149】図5(c)を用いて「B」へ移行した際の
処理の流れを説明する。
【0150】ステップ537では、タイマー1がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ540へ、タイムアウ
トした場合はステップ538へすすむ。
【0151】ステップ538では、タイマー1のタイム
アウトを受けて相手ノード(デバイス)が無応答である
と認識する。
【0152】ステップ539では、接続先の相手ノード
が無応答であると認識したことによりエラー処理のシー
ケンスに入る。具体的には接続先の相手ノードが無応答
であることをユーザーに通知するか、もしくはツリー構
成にそのデバイスを加えない等の処理を行う。
【0153】ステップ540では、Child Notify信号を
受信したかどうかを判断する。受信した場合はステップ
551へ、受信しなかった場合はステップ541へすす
む。
【0154】ステップ541では、Parent Notify信号
を受信したかどうかを判断する。受信した場合はステッ
プ542へ進み、受信しなかった場合はステップ537
へ戻る。
【0155】ステップ542では、タイマー1を停止し
た後にタイマー2を起動する。ここでタイマー2は、ル
ート競合のためのタイマーで、競合した2つのデバイス
だけが次にParent Notify信号を送信するまでの時間を
決めるための時間をランダムに選択するためのものであ
ることは以前説明したとおりである。
【0156】ステップ543では、Parent Notify信号
を受信したかどうかを判断する。受信した場合はステッ
プ544へ、受信しなかった場合はステップ546へす
すむ。
【0157】ステップ544では、Parent Notify信号
を受信したのを受けて、Child Notify信号を送信する。
【0158】ステップ545では、競合する2つのデバ
イス間で信号のやりとりが行われたことから自ノードが
ルートデバイスに確定する。
【0159】ステップ546では、Parent Notify信号
を受信していないのを受けて自ノードからそのノードに
対してParent Notify信号を送信する。
【0160】ステップ547では、タイマー2がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ548へ、タイムアウ
トした場合はステップ549へすすむ。
【0161】ステップ548では、Child Notify信号を
受信したかどうかを判断する。受信した場合はステップ
551へ進み、受信しなかった場合はステップ547へ
戻る。
【0162】ステップ549では、タイマー2のタイム
アウトを受けて相手ノード(デバイス)が無応答である
と認識する。
【0163】ステップ550では、接続先の相手ノード
が無応答であると認識したことによりエラー処理のシー
ケンスに入る。具体的には接続先の相手ノードが無応答
であることをユーザーに通知したり、ツリー構成にその
デバイスを加えない等の処理を行う。
【0164】ステップ551では、ツリー識別処理の終
了を認識する。
【0165】図5(d)を用いてCへ移行した際の処理
の流れを説明する。
【0166】ステップ552では、タイマー1がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ553へ、タイムアウ
トした場合はステップ558ですすむ。
【0167】ステップ553では、Parent Notify信号
を受信したかどうかを判断する。受信した場合はステッ
プ554へ進み、受信しなかった場合はステップ552
へ戻る。
【0168】ステップ554では、Parent Notify信号
を受信したのを受けて、Child Notify信号を送信する。
【0169】ステップ555では、アクティブなポート
数Nの値から1をマイナスし、その値をパラメータNに
格納する。
【0170】ステップ556では、アクティブなポート
数Nの値が1かどうかを判断する。1の場合はステップ
557へ進み、それ以外の場合つまりParent Notify信
号を受信していないアクティブなポートが1つになるま
ではステップ552へ戻りこの間のシーケンスを繰り返
す。
【0171】ステップ557では、アクティブなポート
が残り一つになったのを受けてParent Notify信号を残
されたポートに対して送信する。その後処理はBへ移行
するがBへ移行後のフローについては図5(c)で説明
したのでそちらを参照のこと。
【0172】ステップ558では、タイマー1がタイム
アウトしたのを受けてタイマー3を起動する。タイマー
1のタイムアウトの時点で無応答の状態が続いているポ
ートが存在するため第一の判断としてループが発生した
と認識する。タイマー3は無応答なデバイスに対して強
制的にParent Notify信号を送信した場合別のポートか
らParent Notify信号が帰ってくるまでのタイムアウト
の時間をカウントするタイマーである。
【0173】ステップ559では、無応答なポートの何
れかに対してParent Notify信号を送信する。また送信
したポートを記憶しておきこの処理よりを一度経過した
後再びこのステップの処理を行う場合には一度送信した
ポートとは別のポートに対してParent Notify信号を送
信する。
【0174】ステップ560では、タイマー3がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ563へ、タイムアウ
トした場合はステップ561へすすむ。
【0175】ステップ561では、タイマー3のタイム
アウトを受けて相手ノード(デバイス)が無応答である
と認識する。
【0176】ステップ562では、接続先の相手ノード
が無応答であると認識したことによりエラー処理のシー
ケンスに入る。具体的には接続先の相手ノードが無応答
であることをユーザーに通知したり、ツリー構成にその
デバイスを加えない等の処理を行い、ループ検知処理の
プロセスを終了する。
【0177】ステップ563では、Child Notify信号を
受信したかどうかを判断する。受信した場合はステップ
564へ進み、受信しなかった場合はステップ560へ
戻りこの間のシーケンスを繰り返す。
【0178】ステップ564では、タイマー3がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ565へ、タイムアウ
トした場合はステップ568へすすむ。
【0179】ステップ565では、自ノードから強制的
にParent Notify信号を送信したポートとは別のポート
からParent Notify信号を受信したかどうかを判断す
る。受信した場合はステップ566へ進み、受信しなか
った場合はステップ564へ戻りこの間のシーケンスを
繰り返す。
【0180】ステップ566では、自ノードから強制的
にParent Notify信号を送信したポートとは別のポート
からParent Notify信号を受信したことを受けてループ
接続の発生箇所が自ノードの2つのポートの間に接続さ
れるバスの中に存在すると判断する。あわせて自ノード
のどちらからのポートをディセーブルにすることにより
バスの再構成が可能であることも判断し、それらの情報
を記憶、保存する。
【0181】ステップ567では、アクティブなポート
数Nの値から現在ループ接続箇所を判断した2つのポー
トを除くため2をマイナスしさらに残されたポート数が
いくつかを判断する。残されたポート数が2以上の場合
はステップ559へ戻りこの間の処理シーケンスを繰り
返す。そうでない場合つまり残されたポートが1つの場
合は図5(a)のステップ503まで戻り、アクティブ
ポートが1つの場合の処理を行う。
【0182】ステップ568では、タイマー3のタイム
アウトを受けてループ接続の発生箇所が自ノードから強
制的にParent Notify 信号を送信したノードもしくはそ
の接続先のノードによって構成されるバス上にあると判
断する。またその際Parent Notify信号を送信したポー
トをディセーブルにしてもバスの再構成ができないこと
もあわせて判断する。
【0183】ステップ569では、ステップ568で判
断した内容を記憶保持し、アクティブなポート数Nの値
から1マイナスし、その値をパラメータNに保存する。
【0184】ステップ570では、ステップ569まで
の各種情報を保持したままバスリセットを実行する。
【0185】ステップ571では、初期化のプロセスを
行う。処理フローについては図4で既に説明しているの
でそちらを参照のこと。
【0186】ステップ572では、ツリー識別がある時
間内に行われたかどうかを判断するためのタイマーであ
るタイマー1を起動する。
【0187】ステップ573では、アクティブなポート
数Nの値が0かどうかを判断する。Nが0でない場合、
つまりParent Notify信号を送信することによってその
ポートの先のバスの状況を把握していないポートがまだ
存在している場合は、ステップ552へ戻りこの間のシ
ーケンスを繰り返す。Nが0の場合はEへ移行する。E
へ移行した際の処理の流れに関しては図5(e)を用い
て説明する。
【0188】図5(e)を用いてEへ移行した際の処理
の流れを説明する。
【0189】この図では、複数あるアクティブなポート
すべてがそれぞれそのポートを独立にディセーブルにす
ることではバスの再構成が不可能だと判断された場合の
処理フローを示している。
【0190】ステップ574では、タイマー1がカウン
トしているタイマー値を超えていないかどうかを判断す
る。タイムアウトした場合はステップ575へ進み、超
えていない場合は再びステップ574へ戻りこのステッ
プを繰り返す。
【0191】ステップ575では、タイマー1がタイム
アウトしたのを受けてタイマー3を起動する。タイマー
1のタイムアウトの時点で無応答の状態が続いているポ
ートが存在するため第一の判断としてループが発生した
と認識する。タイマー3は無応答なデバイスに対して強
制的にParent Notify信号を送信した場合別のポートか
らParent Notify信号が帰ってくるまでのタイムアウト
の時間をカウントするタイマーである。
【0192】ステップ576では、Parent Notify信号
を送信する複数のポートを選択する。仮に3つのポート
A,B,Cがアクティブの場合にはこの中から二つのポ
ートを選択する。また送信したポートを記憶しておき、
この処理を一度経過した後再びこのステップの処理を行
う場合には一度送信したポートとは別の組み合わせで複
数のポートに対してParent Notify信号を送信する。組
み合わせの際はアクティブなポート数Nよりも1小さい
値まで同時にParent Notify信号を送信することが可能
である。
【0193】ステップ577では、ステップ576で選
択した複数のポートに対してParentNotify信号を送信す
る。
【0194】ステップ578では、タイマー3がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ581へ、タイムアウ
トした場合はステップ579へすすむ。
【0195】ステップ579では、タイマー3のタイム
アウトを受けて相手ノードデバイスが無応答であると認
識する。
【0196】ステップ580では、接続先の相手ノード
が無応答であると判断したことによりエラー処理のシー
ケンスに入る。具体的には接続先の相手ノードが無応答
であることをユーザーに通知したり、ツリー構成にその
デバイスを加えない等の処理を行い、ループ検知処理の
プロセスを終了する。
【0197】ステップ581では、Child Notify信号を
受信したかどうかを判断する。受信した場合はステップ
582へ進み、受信しなかった場合はステップ578へ
戻りこの間のシーケンスを繰り返す。
【0198】ステップ582では、タイマー3がカウン
トしているタイマー値を超えていないかどうかを判断す
る。超えていない場合はステップ583へ進み、タイム
アウトした場合はステップ576へ戻り再びParent Not
ify信号を送信するポートを選択する。
【0199】ステップ583では、自ノードから強制的
にParent Notify信号を送信した複数のポートとは別の
ポートからParent Notify信号を受信したかどうかを判
断する。受信した場合はステップ584へ進み、受信し
なかった場合はステップ582へ戻りこの間のシーケン
スを繰り返す。
【0200】ステップ584では、自ノードから強制的
にParent Notify信号を送信した複数のポートとは別の
ポートからParent Notify信号を受信したことを受け
て、ループ接続の箇所が複数存在するという情報の他
に、自ノードから強制的にParentNotify信号を送信した
複数のポートをディセーブルにすることによりバスの再
構成が可能であることも判断し、それらの情報を記憶、
保存する。
【0201】ステップ585では、ステップ576で選
択したポートの組み合わせが考え得るすべての組み合わ
せを選択したかどうかを判断する。すべて確認した場合
はループ検知の処理プロセスを終了する。そうでない場
合はステップ586へすすむ。また、すべての組み合わ
せを確認していない場合でもバスの再構成が可能な組み
合わせを見つけているときはループ検知の処理プロセス
を終了する。
【0202】ステップ586では、ステップ585まで
の各種情報を保持したままバスリセットを実行する。
【0203】ステップ587では、初期化のプロセスを
行う。処理フローについては図4で既に説明しているの
でそちらを参照のこと。
【0204】ステップ588では、ツリー識別がある時
間内に行われたかどうかを判断するためのタイマーであ
るタイマー1を起動する。その後再びこの処理の最初で
あるステップ574から処理を行う。
【0205】以上のステップを踏んでループ検知プロセ
スが行われる。
【0206】図6は、第1の実施形態におけるバス再構
成フローである。
【0207】ステップ601では、ループ接続の検知箇
所をユーザーに通知するかどうか判断する。この判断は
前もってユーザーが通知するかどうか判断し命令をこの
デバイスに対して入力することによって行われる。通知
する場合はステップ602へ、通知しない場合はステッ
プ603へすすむ。
【0208】ステップ602では、ループ接続箇所の通
知を行う。通知する手段はデバイスにより様々である
が、この実施形態ではユーザーインタフェースを構成す
る機能の一つである表示装置に対して表示を行うことで
通知する。
【0209】ステップ603では、これ以前の処理の中
で保存された情報に基づきアクティブなポートをディセ
ーブルにする。
【0210】ステップ604では、ポートのディセーブ
ル箇所をユーザーに通知するかどうか判断する。この判
断は前もってユーザーが通知するかどうか判断し命令を
このデバイスに対して入力することによって行われる。
通知する場合はステップ605へ、通知しない場合はス
テップ606へすすむ。
【0211】ステップ605では、ポートのディセーブ
ル箇所の通知を行う。通知する手段は様々であるがこの
実施形態ではユーザーインタフェースを構成する機能の
一つである表示装置に対して表示を行うか、ポートがア
クティブかどうかを表示するLEDなどを使用すること
で通知する。
【0212】ステップ606では、バスリセットを行
い、バスの再構成プロセスを終了する。
【0213】以上のステップを踏んでバス再構成プロセ
スが行われる。
【0214】図7(a)〜(g)は、第1の実施形態に
おけるループ接続を含む構成の模式図である。(以後第
1のループ構成図という。)これらの図に従ってループ
接続の検知してからバスを再構成するまでの流れを説明
する。
【0215】図7(a)はループ接続を含むバスの構成
図である。
【0216】ここで701〜708はノードであり、ノ
ード701が本発明の構成を備えるデバイスである。他
は一つもしくは複数の接続ポートを備えたIEEE1394仕様
に準拠した各デバイスである。
【0217】図のような接続がされたのちバスリセット
が発生すると初期化のプロセスを経てツリー識別のフェ
ーズへ移行する。まず、Leafであるノード705,70
6,707および708からParent Notify信号がそれ
ぞれ接続されたノードに対して送信される。Parent Not
ify信号を受信したBranchのノードは受信したポートにC
hild Notify信号を送信する。
【0218】しかしながら、ディジーチェーン接続やブ
ランチ接続以外の許容されていない接続形態であるルー
プ接続がノード701,702,703および704と
の間で成立しているので、この後ツリー識別を完了する
ことができなくなることは従来例のところで説明した。
【0219】この状態からノード701がループ接続の
箇所を判断し、バスを再構成する手順を以後の図によっ
て説明する。
【0220】図7(b)は、図7(a)のループ接続を
発生させているノードをピックアップしたものである。
【0221】図に示されるようにノード701から70
4までの各ノードはそれぞれアクティブなポートを2つ
持つBranchとなるノードである。ノード701が本発明
の構成を備えたデバイスである。
【0222】図7(c)では、ノード701はノード7
02に対してParent Notify信号を送信する。これはノ
ード701が、ツリー識別のプロセスに移行した時点で
タイマーを動作させ、ある任意のタイマー値を超えた時
点でアクティブな2つのポートのどちらからもParent N
otify信号を受信していないことからループ接続がどこ
かで発生していると判断し、その接続箇所とバスの再構
成が可能であるかどうかを判断するためアクティブな2
つのポートの一方に対して強制的にParent Notify信号
を送信したものである。この例ではParent Notify信号
をノード702に対して送信しているが、もう一方のノ
ード703に対して送信しても構わない。
【0223】図7(d)では、ノード701からのPare
nt Notify信号を受信したノード702がノード701
に対してChild Notify信号を送信する。またノード70
2は、アクティブなポートでParent Notify信号を受信
していないポートが残り一つになったのでそのポートに
対して、つまりノード704に対してParent Notify信
号を送信する。
【0224】図7(e)では、それを受けて、ノード7
02からのParent Notify信号を受信したノード704
がノード702に対してChild Notify信号を送信し、ノ
ード703に対してParent Notify信号を送信する。さ
らにノード703はノード704へChild Notify信号を
送信した後ノード701に対してParent Notify信号を
送信する。
【0225】以上の過程を経て、ノード701はParent
Notify信号を強制的に送信したポートとParent Notify
信号を受信したポートの間にループ接続が存在すること
を判断するとともに、2つのアクティブなポート(ノー
ド702および703が接続されているポート)のうち
どちらか一方をディセーブルすることでバスを構成する
ことが可能なことも判断する。
【0226】図7(f)は、以上の判断に基づきノード
701がノード702と接続されているポートをディセ
ーブルにした場合のバスの構成図である。ディセーブル
後にバスリセットを発生させバスの再構成を行った結
果、ノード701、702がそれぞれLeafとなり正常に
バスの構成を行うことができる。図7(a)でみると、
ノード703と704がルート候補となるバスの構成に
なる。
【0227】図7(g)は、(f)と同様な判断に基づ
きノード701がノード703と接続されているポート
をディセーブルにした場合のバスの構成図である。ディ
セーブル後にバスリセットを発生させバスの再構成を行
った結果、ノード701、703がそれぞれLeafとなり
正常にバスの構成を行うことができる。図7(a)でみ
ると、ノード702と703と704がルート候補とな
るバスの構成になる。
【0228】以上のツリー識別プロセスが正常に完了す
ると、次に各ノードにノード番号を割り振りお互いがデ
ータ通信を可能にするための自己識別のフェーズに入
る。
【0229】図8は、上述した図7を用いて説明した第
1の実施形態における第1のループ構成例のループ検知
のフローを示したものである。
【0230】ステップ801では、バスリセットなどの
バスの構成行うトリガーが発生したことを受けて初期化
のプロセスが行われる。この処理内容の詳細は図4を用
いた説明を参照のこと。
【0231】ステップ802では、ツリー識別がある時
間内に行われたかどうかを判断するために、任意のタイ
マー値(タイマー1)を持つタイマーを起動する。
【0232】ステップ803では、そのタイマー1のタ
イムアウト、つまりある時間内でツリー識別が完了しな
かったことを受けてバスの中でループ接続が存在してい
ると判断する。
【0233】ステップ804では、ループ接続の存在箇
所の確認およびバスの再構成が可能かどうかを判断する
ために接続先ノードであるノード702に対して強制的
にParent Notify信号を送信する。
【0234】ステップ805では、Parent Notify信号
を受信したノード702がノード701に対してChild
Notify信号を送信する。
【0235】ステップ806では、ノード702がノー
ド704に対してParent Notify信号を送信する。また
ノード704はノード702に対してChild Notify信号
を送信する。
【0236】ステップ807では、ノード704がノー
ド703に対してParent Notify信号を送信する。また
ノード703はノード704に対してChild Notify信号
を送信する。
【0237】ステップ808では、ノード703がノー
ド701(強制的にParent Notify信号を送信したデバ
イス)に対してParent Notify信号を送信する。
【0238】ステップ809では、2つのアクティブな
ポート間に接続されるデバイスによってバス上にループ
接続が構成されていると判断する。
【0239】ステップ810では、ユーザーに対してル
ープの発生箇所を通知する。本実施形態ではノード70
1が持つ表示装置へ表示することで伝える。
【0240】ステップ811では、アクティブな2つの
ポートのうち、ノード702と接続しているポートをデ
ィセーブルにする。
【0241】ステップ812では、ユーザーに対してポ
ートをディセーブルにしたことを通知する。本実施形態
ではノード701の各ポートにはアクティブになると点
灯するLEDが備えられておりそのLEDを点灯を止め
ることによって知らせる。
【0242】ステップ813では、バスリセットを発生
させる。
【0243】ステップ814では、ステップ801と同
様に初期化のプロセスを行う。
【0244】ステップ815では、ツリー識別のプロセ
スを行う。バスリセット前の処理では、このツリー識別
プロセスの実行中にループ接続を検知したためバスの構
成を続けることができなかったが、ポートをディセーブ
ルにすることで正常にツリー識別プロセスを完了するこ
とができる。
【0245】ステップ816では、ツリー識別が正常に
完了したのを受けて、次に各ノードにノード番号を割り
振りお互いがデータ通信を可能にするための自己識別プ
ロセスに入る。この自己識別プロセスの完了後各ノード
間での通信を行うことが可能になる。
【0246】図9(a),(b)は、第1の実施形態に
おけるループ接続を含むバス構成の模式図である。(以
後第2のループ構成図という)これらの図に従ってルー
プ接続の検知してからバスを再構成するか否かを判断す
るまでの流れを説明する。
【0247】図9(a)はループ接続を含むバスの構成
図である。
【0248】ここで901〜904はノードであり、ノ
ード901が本発明の構成を備えるデバイスである。他
は一つもしくは複数の接続ポートを備えたIEEE1394仕様
に準拠した各デバイスである。
【0249】図のようにノード902,903および9
04の間でループが形成されている。
【0250】図9(b)では、ツリー識別のプロセス
で、まずツリー識別がある時間内に行われたかどうかを
判断するために、任意のタイマー値(タイマー1)でタ
イマーを起動した後、アクティブなポートを一つしか持
たないLeafであるノード901はその接続先であるノー
ド902に対してParent Notify信号を送信する。Paren
t Notify信号を受信したBranchとなるノード902はノ
ード901にChild Notify信号を送信する。
【0251】しかしながら、ノード902はアクティブ
な3つのポートのうち1つからしかParent Notify信号
を受けていないのでそれ以後の処理を続けることができ
ないためノード901の持つタイマー1はタイムアウト
する。つまりツリー識別プロセスを正常に終了すること
はできないことになる。
【0252】このことからノード901は、Parent Not
ify信号を送信したポートの先にループ接続を行ってい
るデバイスが存在することを判断するとともに、このア
クティブなポートをディセーブルにしてもバスを再構成
することができないことも判断する。バスの再構成がで
きないためループ接続が発生していることをユーザーに
対して通知して処理を終了する。
【0253】図10は、上述した図9を用いて説明した
第1の実施形態における第2のループ構成例のループ検
知フローを示したものである。
【0254】ステップ1001では、バスリセットなど
のバスの構成を行うトリガーが発生したことを受けて初
期化のプロセスが行われる。この処理内容の詳細は図4
を用いた説明を参照のこと。
【0255】ステップ1002では、ツリー識別がある
時間内に行われたかどうかを判断するため、任意のタイ
マー値(タイマー1)を持つタイマーを起動する。
【0256】ステップ1003では、ノード901は唯
一の接続先であるノード902に対してParent Notify
信号を送信する。
【0257】ステップ1004では、Parent Notify信
号を受信したノード902はノード901に対してChil
d Notify信号を送信する。
【0258】ステップ1005では、ループの構成によ
りそれ以後の処理を続けることができないためタイマー
1はタイムアウトする。
【0259】ステップ1006では、タイマー1のタイ
ムアウト、つまりある時間内でツリー識別が完了しなか
ったことを受けてParent Notify信号を送信した唯一の
アクティブなポートの先にループ接続を行っているデバ
イスが存在することを判断する。さらにこのアクティブ
なポートをディセーブルにしてもバスを再構成すること
ができないことも判断する。
【0260】ステップ1007では、ユーザーに対して
ループの発生箇所を通知する。本実施形態ではノード7
01が持つ表示装置へ表示することで伝える。またアク
ティブなポートをディセーブルにすることで正常なバス
の構成をすることができないこともあわせて表示する。
【0261】図11(a)〜(d)は、第1の実施形態
におけるループ接続を含むバス構成の模式図である。
(以後第3のループ構成図という)これらの図に従って
接続の検知してからバスを再構成するまでの流れを説明
する。
【0262】図11(a)はループ接続を含むバスの構
成図である。
【0263】ここで1101〜1107はノードであ
り、ノード1101が本発明の構成を備えるデバイスで
ある。他は一つもしくは複数の接続ポートを備えたIEEE
1394仕様に準拠した各デバイスである。1108a〜1
108cはノード1101のポートである。
【0264】図のようにノード1101,1102,1
104および1103の間とノード1105,1106
および1107の間で二つのループが形成されている。
この状態ではすべてのノードがBranchとなりツリー識別
のプロセスを正常に行えない状態にある。
【0265】図11(b)では、ノード1101はポー
ト1108aに接続されているノード1102に対して
Parent Notify信号を送信する。これはノード1101
がツリー識別のプロセスに移行した時点でタイマーを動
作させ、ある任意のタイマー値(タイマー1)を超えた
時点でアクティブな3つのポートの何れからもParentNo
tify信号を受信していないことからループ接続がどこか
で発生していると判断し、その接続箇所とバスの再構成
が可能であるかどうかを判断するためアクティブな3つ
のポートの一つに対して強制的にParent Notify信号を
送信したものである。この例ではParent Notify信号を
ノード1102に対して送信しているが、別のノードで
ある1103,1105に対して送信しても構わない。
なお送信前に送信したParent Notify信号に対する応答
が時間内に行われるかどうかを判断するための上記とは
別のタイマー値(タイマー3)でタイマーを起動する。
【0266】図11(c)では、ノード1101からの
Parent Notify信号を受信したノード1102がノード
1101に対してChild Notify信号を送信する。またノ
ード1102はアクティブなポートでParent Notify信
号を受信していないポートが残り一つになったのでその
ポートに対して、つまりノード1104に対してParent
Notify信号を送信する。同様にそれを受けて、ノード
1102からのParentNotify信号を受信したノード11
04がノード1102に対してChild Notify信号を送信
し、ノード1103に対してParent Notify信号を送信
する。さらにノード1103はノード1104へChild
Notify信号を送信した後ノード1101に対してParent
Notify信号を送信する。
【0267】この時点で、ノード1101はParent Not
ify信号を強制的に送信したポート1108aとParent
Notify信号を受信したポート1108bの間にループ接
続が存在することを判断するとともに、この2つのアク
ティブなポートのうちどちらか一方をディセーブルにす
ることでバスを構成可能なことも判断する。
【0268】アクティブなポートはもう一つあるので、
上記判断を終えた時点でノード1105が接続している
ポート1108cに対してParent Notify信号を送信す
る。Parent Notify信号を受信したBranchとなるノード
1105はノード1101にChild Notify信号を送信す
る。
【0269】しかしながら、ノード1105はアクティ
ブな3つのポートのうち1つからしかParent Notify信
号を受けていないのでそれ以後の処理を続けることがで
きないためタイマーはタイムアウトする。つまりツリー
識別プロセスを正常に終了することはできないことにな
る。この場合の処理の流れは図9を用いて説明したもの
と同様である。
【0270】このことからノード1101は、Parent N
otify信号を送信したポート1108cの先にループ接
続を行っているデバイスが存在することを判断するとと
もに、このアクティブなポートをディセーブルにしても
この先に接続されるデバイスで構成されるバスを有効に
することができないことも判断する。ただしこのポート
1108cをディセーブルにすることでノード1101
〜1104のデバイスのみでバスの再構成が可能である
ことをあわせて判断する。
【0271】図11(d)は上記判断に基づき、ポート
1108aおよび1108cのポートをディセーブルに
した場合のバスの構成図である。ディセーブル後にバス
リセットを発生させバスの再構成を行った結果、ノード
1101,1102がそれぞれLeafノードとなり正常に
バスの構成を行うことができる。ポート1108aの代
わりにポート1108bをディセーブルにしても同様の
バスの再構成をはかることができる。またノード110
5〜1107はバスの構成に加われなくなるためユーザ
ーの定義次第ではノード1101〜1104間でバスを
再構成することなくループ接続の箇所を知らせるにとど
めることも可能である。
【0272】以上のツリー識別プロセスが完了すると、
次に各ノードにノード番号を割り振りお互いがデータ通
信を可能にするための自己識別に入ることになる。
【0273】図12は、上述した図11を用いて説明し
た第1の実施形態における第3のループ構成例のループ
検知フローを示したものである。
【0274】ステップ1201では、バスリセットなど
のバスの構成を行うトリガーが発生したことを受けて初
期化のプロセスが行われる。この処理内容の詳細は図4
を用いた説明を参照のこと。
【0275】ステップ1202では、ツリー識別がある
時間内に行われたかどうかを判断するため、任意のタイ
マー値(タイマー1)でタイマーを起動する。
【0276】ステップ1203では、そのタイマー1の
タイムアウト、つまりある時間内でツリー識別が完了し
なかったことを受けてバスの中でループ接続が存在して
いると判断する。
【0277】ステップ1204では、次のステップで送
信するParent Notify信号に対する応答があるかどうか
を判断するため、上述のタイマー値とは別のタイマー値
(タイマー3)でタイマーを起動する。
【0278】ステップ1205では、ループ接続の存在
箇所の確認およびバスの再構成が可能かどうかを判断す
るために接続先ノードであるノード1102に対して強
制的にParent Notify信号を送信する。
【0279】ステップ1206では、Parent Notify信
号を受信したノード1102がノード1101に対して
Child Notify信号を送信する。
【0280】ステップ1207では、ノード1102が
ノード1104に対してParent Notify信号を送信す
る。それを受けてノード1104はノード1102に対
してChild Notify信号を送信する。
【0281】ステップ1208では、ノード1104が
ノード1103に対してParent Notify信号を送信す
る。それを受けてノード1103はノード1104に対
してChild Notify信号を送信する。
【0282】ステップ1209では、ノード1103が
ノード1101(強制的にParent Notify信号を送信し
たデバイス)に対してParent Notify信号を送信する。
【0283】ステップ1210では、ノード1101が
2つのアクティブなポート1108aと1108bの間
に接続されるデバイスによってループ接続が構成されて
いると判断する。あわせてこの2つのアクティブなポー
トのうちどちらか一方をディセーブルにすることでバス
を構成可能なことも判断する。
【0284】ステップ1211では、ループ接続の存在
箇所の確認およびバスの再構成が可能かどうかを判断す
るために残ったアクティブなポートである1108c
(接続ノードは1105)に対して強制的にParent Not
ify信号を送信する。
【0285】ステップ1212では、Parent Notify信
号を受信したノード1105がノード1101に対して
Child Notify信号を送信する。
【0286】ステップ1213では、ノード1105〜
1107によるループの構成によりそれ以後の処理を続
けることができないためノード1101の持つタイマー
3はタイムアウトする。
【0287】ステップ1214では、タイマー3のタイ
ムアウト、つまりある時間内でツリー識別が完了しなか
ったことを受けてParent Notify信号を送信したアクテ
ィブなポート1108cの先にループ接続を行っている
デバイスが存在することを判断する。さらにこのアクテ
ィブなポートをディセーブルにしてもバスを再構成する
ことができないことも判断する。またこのポート110
8cをディセーブルにすることでノード1101〜11
04のデバイスのみでバスの再構成が可能であることを
あわせて判断する。
【0288】ステップ1215では、ユーザーに対して
ループ接続の発生箇所を通知する。本実施形態ではノー
ド1101が持つ表示装置へ表示することで伝える。ユ
ーザーが、バスに接続されたすべてのノード間でのバス
の再構成を望むのであれば、ループ接続の発生箇所を通
知後処理を終了する。
【0289】ステップ1216では、アクティブな3つ
のポートのうち、ポート1108aと1108cをディ
セーブルにする。
【0290】ステップ1217では、ユーザーに対して
ポートをディセーブルにしたことを通知する。本実施形
態ではノード1101の各ポートにはアクティブになる
と点灯するLEDが備えられておりそのLEDを点灯を
止めることによって知らせる。
【0291】ステップ1218では、バスリセットを発
生させる。
【0292】ステップ1219では、ステップ1201
と同様に初期化のプロセスを行う。
【0293】ステップ1220では、ツリー識別のプロ
セスを行う。バスリセット前はこのツリー識別プロセス
の実行中にループ接続を検知したためバスの構成を続け
ることができなかったが、ポートをディセーブルにする
ことで正常にツリー識別プロセスを完了することができ
る。バスを構成するノードはノード1101〜1104
である。
【0294】ステップ1221では、ツリー識別が正常
に完了したのを受けて、次に各ノードにノード番号を割
り振りお互いがデータ通信を可能にするための自己識別
プロセスに入る。この自己識別プロセスの完了後各ノー
ド間での通信を行うことが可能になる。
【0295】図13(a)〜(h)は、第1の実施形態
におけるループ接続を含むバス構成の模式図である。
(以後第4のループ構成図という)これらの図に従って
ループ接続の検知してからバスを再構成するまでの流れ
を説明する。
【0296】図13(a)はループ接続を含むバスの構
成図である。
【0297】ここで1301〜1304はノードであ
り、ノード1301が本発明の構成を備えるデバイスで
ある。他は一つもしくは複数の接続ポートを備えたIEEE
1394仕様に準拠した各デバイスである。1305a〜1
305cはノード1301のポートである。
【0298】図のようにノード1301,1302およ
び1303の間、ノード1301,1303および13
04の間およびノード1301,1302,1303お
よび1304の間など複雑に複数のループが形成されて
いる。この状態ではすべてのノードがBranchとなりツリ
ー識別のプロセスを正常に行えない状態にある。
【0299】図13(b)では、ノード1301はポー
ト1305aに接続されているノード1304に対して
Parent Notify信号を送信する。これはノード1301
がツリー識別のプロセスに移行した時点でタイマーを動
作させ、ある任意のタイマー値(タイマー1)を超えた
時点でアクティブな3つのポートの何れからもParentNo
tify信号を受信していないことからループ接続がどこか
で発生していると判断し、その接続箇所とバスの再構成
が可能であるかどうかを判断する為アクティブな3つの
ポートの一つに対して強制的にParent Notify信号を送
信したものである。この例ではParent Notify信号をま
ず最初にノード1304に対して送信しているが、別の
接続ノードである1302や1303に対して送信して
も構わない。なお送信前に送信したParent Notify信号
に対する応答があるかどうかを判断するための上記とは
別のタイマー値(タイマー3)でタイマーを起動する。
【0300】図13(c)では、ノード1301からの
Parent Notify信号を受信したノード1304がノード
1301に対してChild Notify信号を送信する。またノ
ード1304はアクティブなポートでParent Notify信
号を受信してないポートが残り一つになったのでそのポ
ートに対して、つまりノード1303に対してParentNo
tify信号を送信する。
【0301】しかしながら、ノード1303はアクティ
ブな3つのポートのうち1つからしかParent Notify信
号を受けていなのでそれ以後の処理を続けることができ
ないためタイマー3はタイムアウトする。つまりツリー
識別プロセスを正常に終了することはできないことにな
る。
【0302】このことからノード1301は、Parent N
otify信号を送信したポート1305aの先にループ接
続を行っているデバイスが存在することを判断するとと
もに、このアクティブなポートをディセーブルにしても
バスを再構成することができないことも判断する。そし
てここまで行った処理の内容と判断した結果を保存す
る。
【0303】図13(d)では、ノード1301は上記
処理のあとバスリセットを行い、再び強制的なParent N
otify信号の送信を行う。今回送信するポートは130
5bである。ノード1301がツリー識別のプロセスに
移行した時点でタイマーを動作させ、ある任意のタイマ
ー値(タイマー1)を超えた時点でアクティブな3つの
ポートの何れからもParent Notify信号信号を受信して
いないことからループ接続がどこかで発生していると判
断し、その接続箇所とバスの再構成が可能であるかどう
かを判断するためアクティブな3つのポートの一つに対
して強制的にParent Notify信号を送信するところはポ
ート1305aに対するときと同じである。なお同様に
送信前に送信したParent Notify信号に対する応答があ
るかどうかを判断するため、別のタイマー値(タイマー
3)でタイマーを起動する。
【0304】その後ノード1301からのParent Notif
y信号を受信したノード1302はノード1301に対
してChild Notify信号を送信する。またノード1302
はアクティブなポートでParent Notify信号を受信して
ないポートが残り一つになったのでそのポートに対し
て、つまりノード1303に対してParent Notify信号
を送信する。
【0305】しかしながら、ノード1303はアクティ
ブな3つのポートのうち1つからしかParent Notify信
号を受けていないのでそれ以後の処理を続けることがで
きないためタイマー3はタイムアウトする。つまりツリ
ー識別プロセスを正常に終了することはできないことに
なる。
【0306】このことからノード1301は、ポート1
305aのときと同様にポート1305bの先にループ
接続を行っているデバイスが存在することを判断すると
ともに、このアクティブなポートをディセーブルにして
もバスを再構成することができないことも判断する。そ
してここまで行った処理の内容と判断した結果を保存す
る。
【0307】図13(e)では、ノード1301は上記
処理のあと再びバスリセットを行い、再び強制的なPare
nt Notify信号の送信を行う。今回送信するポートは1
305cである。送信前に送信したParent Notify信号
に対する応答があるかどうかを判断するためのタイマー
を起動するのも同様である。
【0308】その後ノード1301からのParent Notif
y信号を受信したノード1303はノード1301に対
してChild Notify信号を送信する。この時点で、ノード
1303はアクティブな3つのポートのうち1つからし
かParent Notify信号を受けていないのでそれ以後の処
理を続けることができないためタイマー3はタイムアウ
トする。つまりツリー識別プロセスを正常に終了するこ
とはできないことになる。
【0309】このことからノード1301は、ポート1
305aおよび1305bのときと同様にポート130
5cの先にループ接続を行っているデバイスが存在する
ことを判断するとともに、このアクティブなポートをデ
ィセーブルにしてもバスを再構成することができないこ
とも判断する。そしてここまで行った処理の内容と判断
した結果を保存する。
【0310】図13(f)では、ノード1301は上記
処理のあと再びバスリセットを行い、強制的なParent N
otify信号の送信を複数のポートに対して行う。今回送
信するポートは1305aと1305bである。送信前
に送信したParent Notify信号に対する応答があるかど
うかを判断するためのタイマーを起動するのも同様であ
る。この例ではParent Notify信号を1305aと13
05bという二つのポートに対して送信しているが、こ
の組み合わせは別(例えば1305bと1305c等)
でも構わない。
【0311】図13(g)では、ノード1301からの
Parent Notify信号を受信したノード1302および1
304がノード1301に対してChild Notify信号を送
信する。さらにノード1302と1304はParent Not
ify信号を受信してないアクティブなポートが残り1つ
になったので残りポートに対してそれぞれParent Notif
y信号を送信する。送信先のノードは1303であり1
302および1304に対してChild Notify信号を送信
する。この時点で、ノード1303のアクティブな残り
ポートも1つになったのでノード1303は1301に
対してParent Notify信号送信する。
【0312】ここまでの処理により、ノード1301は
複数のループ接続がバス上に存在することを判断すると
ともにそれぞれアクティブなポートを独立にディセーブ
ルにすることではバスの再構成をすることができないこ
とも判断する。さらにParentNotify信号信号を強制的に
送信した二つのポート1305aおよび1305bをデ
ィセーブルにすることでバスを構成可能なことも判断す
る。
【0313】図13(h)は上記判断に基づき、ポート
1305aおよび1305bのポートをディセーブルに
した場合のバスの構成図である。二つのポートをディセ
ーブル後にバスリセットを発生させバスの再構成を行っ
た結果、ノード1301、1302および1304がそ
れぞれLeafノードとなり正常にバスの構成を行うことが
できる。
【0314】以上のツリー識別プロセスが完了すると、
次に各ノードにノード番号を割り振りお互いがデータ通
信を可能にするための自己識別に入ることになる。
【0315】図14は、上述した図13を用いて説明し
た第1の実施形態における第4のループ構成例のループ
検知フローを示したものである。
【0316】ステップ1401では、バスリセットなど
のバスの構成を行うトリガーが発生したことを受けて初
期化のプロセスが行われる。この処理内容の詳細は図4
を用いた説明を参照のこと。
【0317】ステップ1402では、ツリー識別がある
時間内に行われたかどうかを判断するため、任意のタイ
マー値(タイマー1)でタイマーを起動する。
【0318】ステップ1403では、そのタイマー1の
タイムアウト、つまりある時間内でツリー識別が完了し
なかったことを受けてバスの中でループ接続が存在して
いると判断する。
【0319】ステップ1404では、次のステップで送
信するParent Notify信号に対する応答があるかどうか
を判断するため、上述したタイマーとは異なるタイマー
値(タイマー3)でタイマーを起動する。
【0320】ステップ1405では、ループ接続の存在
箇所の確認およびバスの再構成が可能かどうかを判断す
るために接続先ノードであるノード1304に対して強
制的にParent Notify信号を送信する。
【0321】ステップ1406では、Parent Notify信
号を受信したノード1304がノード1301に対して
Child Notify信号を送信する。
【0322】ステップ1407では、ループの構成によ
りそれ以後の処理を続けることができないためタイマー
3はタイムアウトする。
【0323】ステップ1408では、タイマー3のタイ
ムアウト、つまりある時間内でツリー識別が完了しなか
ったことを受けてParent Notify信号を送信したアクテ
ィブなポート1305aの先にループ接続を行っている
デバイスが存在することを判断する。さらにこのアクテ
ィブなポートをディセーブルにしてもバスを再構成する
ことができないことも判断する。それからそれまでの処
理内容および判断結果を保存する。
【0324】ステップ1409では、バスリセットを行
う。
【0325】ステップ1410では、ステップ1401
と同じく初期化のプロセスが行われる。
【0326】ステップ1411では、ステップ1402
と同じくタイマー1を起動する。
【0327】ステップ1412では、そのタイマー1の
タイムアウト、つまりある時間内でツリー識別が完了し
なかったことを受けてバスの中でループ接続が存在して
いると判断する。
【0328】ステップ1413では、ステップ1404
と同じくタイマー3を起動する。
【0329】ステップ1414では、ループ接続の存在
箇所の確認およびバスの再構成が可能かどうかを判断す
るために接続先ノードであるノード1302に対して強
制的にParent Notify信号を送信する。
【0330】ステップ1415では、Parent Notify信
号を受信したノード1302がノード1301に対して
Child Notify信号を送信する。
【0331】ステップ1416では、ループの構成によ
りそれ以後の処理を続けることができないためタイマー
3はタイムアウトする。
【0332】ステップ1417では、ステップ1408
と同じくタイマー3のタイムアウトを受けてParent Not
ify信号を送信したアクティブなポート1305bの先
にループ接続を行っているデバイスが存在することを判
断する。さらにこのアクティブなポートをディセーブル
にしてもバスを再構成することができないことも判断す
る。それからそれまでの処理内容および判断結果を保存
する。
【0333】ステップ1418では、バスリセットを行
う。
【0334】ステップ1419では、ステップ1401
と同じく初期化のプロセスが行われる。
【0335】ステップ1420では、ステップ1402
と同じくタイマー1を起動する。
【0336】ステップ1421では、そのタイマー1の
タイムアウト、つまりある時間内でツリー識別が完了し
なかったことを受けてバスの中でループ接続が存在して
いると判断する。
【0337】ステップ1422では、ステップ1404
と同じくタイマー3を起動する。
【0338】ステップ1423では、ループ接続の存在
箇所の確認およびバスの再構成が可能かどうかを判断す
るために接続先ノードであるノード1303に対して強
制的にParent Notify信号を送信する。
【0339】ステップ1424では、Parent Notify信
号を受信したノード1303がノード1301に対して
Child Notify信号を送信する。
【0340】ステップ1425では、ループの構成によ
りそれ以後の処理を続けることができないためタイマー
3はタイムアウトする。
【0341】ステップ1426では、ステップ1408
と同じくタイマー3のタイムアウトを受けてParent Not
ify信号を送信したアクティブなポート1305bの先
にループ接続を行っているデバイスが存在することを判
断する。さらにこのアクティブなポートをディセーブル
にしてもバスを再構成することができないことも判断す
る。それからそれまでの処理内容および判断結果を保存
する。
【0342】ステップ1427では、バスリセットを行
う。
【0343】ステップ1428では、ステップ1401
と同じく初期化のプロセスが行われる。
【0344】ステップ1429では、ステップ1402
と同じくタイマー1を起動する。
【0345】ステップ1430では、そのタイマー1の
タイムアウト、つまりある時間内でツリー識別が完了し
なかったことを受けてバスの中でループ接続が存在して
いると判断する。
【0346】ステップ1431では、ステップ1404
と同じくタイマー3を起動する。
【0347】ステップ1432では、ポート1305a
と1305bの2つのポートに対して強制的にParent N
otify信号を送信する。
【0348】ステップ1433では、Parent Notify信
号を受信したノード1302および1304がノード1
301に対してChild Notify信号を送信する。
【0349】ステップ1434では、ノード1302が
ノード1303に対してParent Notify信号を送信す
る。またそれを受けてノード1303はChild Notify信
号を1302に対して送信する。
【0350】ステップ1435では、ノード1304が
ノード1303に対してParent Notify信号を送信す
る。またそれを受けてノード1303はChild Notify信
号を1304に対して送信する。
【0351】ステップ1436では、ノード1303は
ノード1302および1304からのParent Notify信
号を受信したのを受けてノード1301に対してParent
Notify信号を送信する。
【0352】ステップ1437では、ステップ1432
で強制的にParent Notify信号を送信したポート130
5aおよび1305bをディセーブルにすることでバス
の再構成が可能であることを判断する。
【0353】ステップ1438では、ユーザーに対して
ループの発生箇所を通知する。本実施形態ではノード1
301が持つ表示装置へ表示することで伝える。
【0354】ステップ1439では、アクティブな3つ
のポートのうち、ポート1305aと1305bをディ
セーブルにする。
【0355】ステップ1440では、ユーザーに対して
ポートをディセーブルにしたことを通知する。本実施形
態ではノード1101の各ポートにはアクティブになる
と点灯するLEDが備えられておりそのLEDを点灯を
止めることによって知らせる。
【0356】ステップ1441では、バスリセットを発
生させる。
【0357】ステップ1442では、ステップ1401
と同様に初期化のプロセスを行う。
【0358】ステップ1443では、ツリー識別のプロ
セスを行う。最初のバス構成時はこのツリー識別プロセ
スの実行中にループ接続を検知したためバスの構成を続
けることができなかったが、複数のポートをディセーブ
ルにすることで正常にツリー識別プロセスを完了するこ
とができる。
【0359】ステップ1444では、ツリー識別が正常
に完了したのを受けて、次に各ノードにノード番号を割
り振りお互いがデータ通信を可能にするための自己識別
プロセスに入る。この自己識別プロセスの完了後各ノー
ド間での通信を行うことが可能になる。
【0360】このように、複数のループが存在する場合
にもループを回避して正常なバス構成を形成することが
可能になる。
【0361】以上説明してきたように、本発明の構成に
よって、確実なループ接続の検知を行うとともにそのル
ープ接続を自動的に回避してバスを再構成することがで
きる。また再構成できない場合も含めてループ接続の発
生箇所をユーザーに対して的確に知らせることができ
る。
【0362】[第2の実施形態]本発明の第2の実施形
態を図にしたがって説明する。
【0363】本実施形態はユーザーへの通知手段を除い
て実施形態1と同じ構成のため、同じ部分の説明は省略
する。
【0364】図15は、第2の実施形態におけるデバイ
ス内の構成を示すブロック図である。
【0365】1501は、IEEE1394の規格に準拠したイ
ンタフェースを備えるノード(デバイス本体)である。
以下に説明する1502,1505〜1513のブロッ
クで構成される。この例では画像データの出力を行うプ
リンタデバイスを想定している。
【0366】1502は、IEEE1394インタフェースのデ
バイス本体側の受け口(ポート)となるリセプタクルで
ある。ここに他の各種デバイスを接続するためのケーブ
ルが差し込まれる。
【0367】1503は、IEEE1394インタフェースケー
ブルのプラグである。この部分を各種デバイスのポート
にはめ込んで接続する。
【0368】1504は、IEEE1394インタフェースのケ
ーブルである。このケーブル内には2組のツイストペア
ケーブル(一方がA、他方がBと称される信号線)と1
組の電源ペアケーブルのあわせて6本のケーブルがクロ
スしている。
【0369】1505は、IEEE1394に準拠した100Mb
ps〜400Mbpsの転送スピードをサポートする物理レイ
ヤを実現するブロックで各種のハードウェアロジック
(ツイステッドペアのインタフェースの複数ポート、リ
ンクレイヤICへのインタフェース、パケットデータの
シンクロナイズと再構成、ビットレベルのアービトレー
ション、および本発明の要点となる初期化ロジック、タ
イマー等)によって構成される。機能および構成の詳細
については図2を参照のこと。
【0370】1506は、IEEE1394に準拠したリンクレ
イヤのコントローラで各種ハードウェアロジックによっ
て構成される。
【0371】1507は、本デバイスの各種制御および
IEEE1394インタフェースのトランザクションレイヤ、ノ
ードコントローラおよびアプリケーションレイヤの機能
を実現するCPUである。
【0372】1508は、CPU1507が各種処理を
行う際に必要な命令およびデータを格納するRAMであ
る。IEEE1394インタフェースによる転送データの記憶や
プリンタによって出力される画像データの一時記憶にも
使用される。
【0373】1509は、本デバイスの制御情報を格納
してあるROMである。フラッシュメモリなどを利用す
ることで後から制御情報を更新することも可能である。
【0374】1510は、本デバイスのメカ制御および
各種画像処理を行うASICである。画像データ印字時
のプリンタヘッドの制御や送信された画像データの展開
などの各種処理を行う専用のハードウェアロジックであ
る。
【0375】1511は、プリンタである。メカ機構、
インクタンク、インクヘッド等によって構成される。こ
の例ではインクジェットプリンタを想定しているが他に
熱転写方式、電子写真方式など各種の方式を利用したプ
リンタの構成が考えられる。
【0376】1512は、ユーザーへステータスを通知
したり、ユーザーからのコマンド入力を受け付けるため
のユーザーインタフェースである。通知するための表示
部と入力を受け付ける操作部によって構成される。
【0377】1513は、システムバスである。図示さ
れている1506〜1512の各ブロックの他、不図示
のブロックもこのバス上にぶら下がっており、各ブロッ
ク間での高速なデータ転送を行うことができる。
【0378】この構成では実施形態1と同じようにユー
ザーインタフェース1512の表示部にループ接続の発
生箇所を知らせることができるだけではなく、デバイス
の持つプリンタの機能によりメディア(一般には紙)に
対してループ接続の発生箇所を印字して知らせることも
可能である。またその場合発生箇所をテキスト形式の情
報でプリントアウトするだけでなくツリー構造を図示し
てプリントすることも可能である。ループ接続の発生箇
所を示すプリントデータの生成はプリンタ内のCPUで
行われる。
【0379】以上説明してきたように、本発明の構成に
よって、確実なループ接続の検知を行うとともにそのル
ープ接続を自動的に回避してバスを再構成することがで
きる。また再構成できない場合も含めてループ接続の発
生箇所をユーザーに対して的確に知らせることができ
る。さらにこのデバイスがプリンタ機能を有するため表
示装置への出力だけでなく紙などのメディアへの出力に
よってもループ接続の発生箇所をユーザーに知らせるこ
とができるため、表示装置を使用した通知よりもより直
感的でより多くの情報を伝えることができる。
【0380】[第3の実施形態]本発明の第3の実施形
態を図にしたがって説明する。
【0381】本実施形態はユーザーへの通知手段を除い
て実施形態1と同じ構成のため、同じ部分の説明は省略
する。
【0382】図16は、第3の実施形態におけるデバイ
ス内の構成を示すブロック図である。
【0383】1601は、IEEE1394の規格に準拠したイ
ンタフェースを備えるノード(デバイス本体)である。
以下に説明する1602,1605〜1615のブロッ
クで構成される。この例では動画像データの読み込み、
記憶保存および出力を行うディジタルビデオカメラを想
定している。
【0384】1602は、IEEE1394インタフェースのデ
バイス本体側の受け口(ポート)となるリセプタクルで
ある。ここに他の各種デバイスを接続するためのケーブ
ルが差し込まれる。
【0385】1603は、IEEE1394インタフェースケー
ブルのプラグである。この部分を各種デバイスのポート
にはめ込んで接続する。
【0386】1604は、IEEE1394インタフェースのケ
ーブルである。このケーブル内には2組のツイストペア
ケーブル(一方がA、他方がBと称される信号線)と1
組の電源ペアケーブルのあわせて6本のケーブルがクロ
スしている。
【0387】1605は、IEEE1394に準拠した100Mb
ps〜400Mbpsの転送スピードをサポートする物理レイ
ヤを実現するブロックで各種のハードウェアロジック
(ツイステッドペアのインタフェースの複数ポート、リ
ンクレイヤICへのインタフェース、パケットデータの
シンクロナイズと再構成、ビットレベルのアービトレー
ション、および本発明の要点となる初期化ロジック、タ
イマー等)によって構成される。機能および構成の詳細
については図2を参照のこと。
【0388】1606は、IEEE1394に準拠したリンクレ
イヤのコントローラで各種ハードウェアロジックによっ
て構成される。
【0389】1607は、本デバイスの各種制御および
IEEE1394インタフェースのトランザクションレイヤ、ノ
ードコントローラおよびアプリケーションレイヤの機能
を実現するCPUである。
【0390】1608は、CPU1607が各種処理を
行う際に必要な命令およびデータを格納するRAMであ
る。IEEE1394インタフェースによる動画像データの転送
や読み込んだ画像データのDVカセットへの書き込みを
する際の一時記憶にも使用される。
【0391】1609は、本デバイスの制御情報を格納
してあるROMである。フラッシュメモリなどを利用す
ることで後から制御情報を更新することも可能である。
【0392】1610は、本デバイスのメカ制御および
各種画像処理を行うASICである。レンズのオートフ
ォーカスをはじめとするビデオカメラ部の各種制御、動
画像データ保存時の磁気ヘッドの制御および送信する画
像データの圧縮処理などの各種処理を行う専用のハード
ウェアロジックである。
【0393】1611は、ユーザーへステータスを通知
したり、ユーザーからのコマンド入力を受け付けるため
のユーザーインタフェースである。通知するための表示
部と入力を受け付ける操作部によって構成される。
【0394】1612は、動画像データを読み込む撮像
部である。レンズの他各種補正回路等で構成される。
【0395】1613は、読み込んだ動画像データの読
み込み保存を行う記録部である。DV仕様のカセットへ
の記録を行う。
【0396】1614は、不図示のマイクによって録音
された音声信号を再生するスピーカーである。
【0397】1615は、システムバスである。図示さ
れている1606〜1614の各ブロックの他、不図示
のブロックもこのバス上にぶら下がっており、各ブロッ
ク間での高速なデータ転送を行うことができる。
【0398】この構成では実施形態1と同じようにユー
ザーインタフェース1611の表示部にループ接続の発
生箇所を知らせることができるだけではなく、デバイス
の持つスピーカー1614を使用して音声によるユーザ
ーへの通知も可能である。
【0399】以上説明してきたように、本発明の構成に
よって、確実なループ接続の検知を行うとともにそのル
ープ接続を自動的に回避してバスを再構成することがで
きる。また再構成できない場合も含めてループ接続の発
生箇所をユーザーに対して的確に知らせることができ
る。さらにこのデバイスがスピーカーを有するため表示
装置への出力だけでなく音声出力によってもループ接続
の発生箇所をユーザーに知らせることでより注意を促す
ことができる。
【0400】
【他の実施形態】なお、本発明は、複数の機器(例えば
ホストコンピュータ,インタフェ−ス機器,リーダ,プ
リンタなど)から構成されるシステムに適用しても、一
つの機器からなる装置(例えば、複写機,ファクシミリ
装置など)に適用してもよい。
【0401】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPU
やMPU)が記憶媒体に格納されたプログラムコードを
読出し実行することによっても、達成されることは言う
までもない。
【0402】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。
【0403】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。
【0404】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。
【0405】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0406】本発明を上記記憶媒体に適用する場合、そ
の記憶媒体には、先に説明したフローチャートに対応す
るプログラムコードを格納することになるが、簡単に説
明すると、図21のメモリマップ例に示す各モジュール
を記憶媒体に格納することになる。すなわち、少なくと
も「バス構成モジュール2101」「ループ検知モジュ
ール2102」および「信号発生モジュール2103」
「信号受信モジュール2104」「判断モジュール21
05」「ディセーブルモジュール2106」「システム
再構成開始モジュール2107」の各モジュールのプロ
グラムコードを記憶媒体に格納すればよい。
【0407】
【発明の効果】以上説明したように、本発明によれば以
下の効果をあげることができる。
【0408】確実なループ検知を行いそのループ接続を
自動的に回避してバスを再構成する。また再構成できな
い場合も含めてループ接続の発生箇所をユーザーに対し
て的確に知らせることができる。
【0409】すなわち、確実なループ接続形態の検知に
よってバス構成時の信頼性が飛躍的に向上することにな
る。
【0410】また、ディスプレイ表示等によりループ接
続の発生箇所をユーザーに対して的確に伝えることが可
能になる。
【0411】本機能を備えるデバイスがループ接続を構
成していなくてもシリアルバス上にループ接続が存在し
ていればその発生箇所を認識することが可能になる。
【0412】ユーザーはケーブルを外す手間をかけるこ
となく自動的にそのループ接続を回避して正常なバスを
構成することが可能になる。つまりユーザーの利便性も
飛躍的に向上する。
【0413】シリアルバス上に2つ以上のループ接続が
発生してもその存在を検知することが可能になる。
【0414】
【図面の簡単な説明】
【図1】第1の実施形態におけるデバイス内の構成を示
すブロック図である。
【図2】第1の実施形態におけるPHYブロックの構成
図である。
【図3】第1の実施形態における制御手順の概略を示し
たフロー(初期化、ループ検知、バスの再構成)であ
る。
【図4】第1の実施形態における初期化フローである。
【図5(a)】第1の実施形態におけるループ検知フロ
ーである。
【図5(b)】第1の実施形態におけるループ検知フロ
ーである。
【図5(c)】第1の実施形態におけるループ検知フロ
ーである。
【図5(d)】第1の実施形態におけるループ検知フロ
ーである。
【図5(e)】第1の実施形態におけるループ検知フロ
ーである。
【図6】第1の実施形態におけるバス再構成フローであ
る。
【図7(a)】第1の実施形態における第1のループ構
成図である。
【図7(b)】第1の実施形態における第1のループ構
成図である。
【図7(c)】第1の実施形態における第1のループ構
成図である。
【図7(d)】第1の実施形態における第1のループ構
成図である。
【図7(e)】第1の実施形態における第1のループ構
成図である。
【図7(f)】第1の実施形態における第1のループ構
成図である。
【図7(g)】第1の実施形態における第1のループ構
成図である。
【図8】第1の実施形態における第1のループ構成の場
合のループ検知フローである。
【図9(a)】第1の実施形態における第2のループ構
成図である。
【図9(b)】第1の実施形態における第2のループ構
成図である。
【図10】第1の実施形態における第2のループ構成の
場合のループ検知フローである。
【図11(a)】第1の実施形態における第3のループ
構成図である。
【図11(b)】第1の実施形態における第3のループ
構成図である。
【図11(c)】第1の実施形態における第3のループ
構成図である。
【図11(d)】第1の実施形態における第3のループ
構成図である。
【図12】第1の実施形態における第3のループ構成の
場合の処理フローである。
【図13(a)】第1の実施形態における第4のループ
構成図である。
【図13(b)】第1の実施形態における第4のループ
構成図である。
【図13(c)】第1の実施形態における第4のループ
構成図である。
【図13(d)】第1の実施形態における第4のループ
構成図である。
【図13(e)】第1の実施形態における第4のループ
構成図である。
【図13(f)】第1の実施形態における第4のループ
構成図である。
【図13(g)】第1の実施形態における第4のループ
構成図である。
【図13(h)】第1の実施形態における第4のループ
構成図である。
【図14(a)】第1の実施形態における第4のループ
構成の場合の処理フローである。
【図14(b)】第1の実施形態における第4のループ
構成の場合の処理フローである。
【図15】第2の実施形態におけるデバイス内の構成を
示すブロック図である。
【図16】第3の実施形態におけるデバイス内の構成を
示すブロック図である。
【図17】従来例におけるバスの構成図である。
【図18】従来例におけるツリーの識別(1)を示す図
である。
【図19】従来例におけるツリーの識別(2)を示す図
である。
【図20】従来例におけるループ接続を含むバスの構成
図である。
【図21】記録媒体のメモリマップを示す図である。
【符号の説明】
101 ノード(デバイス本体) 102 リセプタクル 103 プラグ 104 ケーブル 105 PHY 106 LINK 107 CPU 108 RAM 109 ROM(フラッシュROM) 110 ASIC 111 スキャナ 112 UI(ユーザーインタフェース) 113 システムバス
フロントページの続き (51)Int.Cl.6 識別記号 FI H04L 12/28 H04L 11/00 310D

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】デバイスの追加接続や切離しを検知しバス
    の構成を行う構成手段と、 インタフェースシステム上でデバイスの接続形態を判断
    し、ループ接続されたデバイスの存在を検知するループ
    検知手段と、 他のデバイスとの接続口となるひとつもしくはそれ以上
    の数のポートと、 前記ポートから強制的にParent Notify信号を発生させ
    る信号発生手段と、 前記ポートからParent Notify信号を受信する信号受信
    手段と、 前記信号の送信および受信状況からループ接続の発生箇
    所を判断する判断手段と、 前記判断手段の判断結果に基づきアクティブなポートを
    ディセーブルにするディセーブル手段と、 前記ディセーブル手段によるポートのディセーブル後に
    前記バス構成手段を再び開始させるシステム再構成開始
    手段と、 を備えることを特徴とするシリアルバスインタフェース
    デバイス。
  2. 【請求項2】 前記シリアルバスインタフェースが、IE
    EE1394に準拠したものであることを特徴とする請求項1
    に記載のシリアルバスインタフェースデバイス。
  3. 【請求項3】 前記ループ検知手段は、タイマーによる
    カウント値が任意のタイマー値を超えた場合、バス上に
    ループ接続されたデバイスが存在すると認識することを
    特徴とする請求項1に記載のシリアルバスインタフェー
    スデバイス。
  4. 【請求項4】 前記ループ検知手段によるループの検知
    結果を、ユーザーに通知する手段を更に備えることを特
    徴とする請求項1に記載のシリアルバスインタフェース
    デバイス。
  5. 【請求項5】 前記ループ検知手段によるループの検知
    結果をユーザーに通知する手段は、表示装置の表示に基
    づくものであることを特徴とする請求項4に記載のシリ
    アルバスインタフェースデバイス。
  6. 【請求項6】 前記シリアルバスインタフェースデバイ
    スがプリンタで、メディアに対する印字を可能とするデ
    バイスである場合、前記ループ検知手段によるループの
    検知結果をメディアに印字出力することでユーザーに通
    知することを特徴とする請求項4に記載のシリアルバス
    インタフェースデバイス。
  7. 【請求項7】 前記ループ検知手段によるループの検知
    結果をユーザーに通知する手段は、音声伝達に基づくも
    のであることを特徴とする請求項4に記載のシリアルバ
    スインタフェースデバイス。
  8. 【請求項8】 前記ポートが複数である場合、複数のポ
    ートそれぞれでループ検知が可能であることを特徴とす
    る請求項1に記載のシリアルバスインタフェースデバイ
    ス。
  9. 【請求項9】 前記判断手段によって、前記シリアルバ
    スインタフェースデバイスがシリアルバスインタフェー
    スシステム上のループを構成しているバス上に存在する
    と判断された場合、前記システム再構成開始手段はポー
    トをディセーブル後、システム再構成を実行し、バス上
    に存在しないと判断された場合、前記表示手段はループ
    接続の存在のみをユーザーに通知することを特徴とする
    請求項1または4に記載のシリアルバスインタフェース
    デバイス。
  10. 【請求項10】 前記判断手段は、複数のポートがアク
    ティブの場合にParent Notify信号を受信していないポ
    ートに対してParent Notify信号を発生させ、送信した
    のとは別のポートでParent Notify信号を受信したとき
    に、そのポート間に接続されるバス上でループが存在す
    ると判断することを特徴とする請求項1に記載のシリア
    ルバスインタフェースデバイス。
  11. 【請求項11】 前記信号発生手段は、複数のポートが
    アクティブの場合にParent Notify信号を受信していな
    いポートに対してParent Notify信号を発生させても、
    他のどのポートからもParent Notify信号を受信できな
    いときには、さらにParent Notify信号を受信していな
    い別のポートに対してParent Notify信号を発生し、ル
    ープの存在を確認する動作を行うことを特徴とする請求
    項1に記載のシリアルバスインタフェースデバイス。
  12. 【請求項12】 前記判断手段は、アクティブなポート
    が存在する場合にParent Notify信号を受信していない
    ポートに対してParent Notify信号を発生させたとき
    に、任意のタイマー値でタイマーを起動し、タイマー値
    を超えた時点で他のどのポートからもParent Notify信
    号を受信できないときそのポートの先に接続されるデバ
    イス間で構成されるバス上でループが存在すると判断す
    ることを特徴とする請求項1に記載のシリアルバスイン
    タフェースデバイス。
  13. 【請求項13】 前記ループ検知手段で用いられる任意
    のタイマー値と、前記判断手段で用いられる任意のタイ
    マー値とは、別個の値が設定され、前記ループ検知手段
    と前記判断手段の起動タイミングを変えていることを特
    徴とする請求項1に記載のシリアルバスインタフェース
    デバイス。
  14. 【請求項14】 前記ディセーブル手段によってポート
    がディセーブルにされた場合、どのポートがディセーブ
    ルにされたかユーザーに通知する通知手段を更に備える
    ことを特徴とする請求項1に記載のシリアルバスインタ
    フェースデバイス。
  15. 【請求項15】 デバイスの追加接続や切離しを検知し
    バスの構成を行うバス構成工程と、 バス構成時インタフェースシステム上におけるループ接
    続されたデバイスの存在を検知するループ検知工程と、 他のデバイスとの接続口となるポートから強制的にPare
    nt Notify信号を発生させる信号発生工程と、 前記ポートからParent Notify信号を受信する信号受信
    工程と、 前記信号の送信および受信状況からループ接続の発生箇
    所を判断する判断工程と、 前記判断工程の判断結果に基づきアクティブなポートを
    ディセーブルにするディセーブル工程と、 前記ディセーブル工程によるポートのディセーブル後に
    前記バス構成工程を再び開始させるシステム再構成開始
    工程と、 を有することを特徴とするシリアルバスインタフェース
    のバス構成方法。
  16. 【請求項16】 前記ループ検知工程は、タイマーによ
    るカウント値が任意のタイマー値を超えた場合、バス上
    にループ接続されたデバイスが存在すると認識すること
    を特徴とする請求項15に記載のシリアルバスインタフ
    ェースのバス構成方法。
  17. 【請求項17】 前記ループ検知工程によるループの検
    知結果を、ユーザーに通知する工程を更に備えることを
    特徴とする請求項15に記載のシリアルバスインタフェ
    ースのバス構成方法。
  18. 【請求項18】 前記ユーザーに通知する工程は、ディ
    スプレイにより、前記ループ検知工程によるループの検
    知結果を通知することを特徴とする請求項17に記載の
    シリアルバスインタフェースのバス構成方法。
  19. 【請求項19】 前記シリアルバスインタフェースバス
    を構成するデバイスがプリンタ等のメディアに対する印
    字を可能とするデバイスの場合、前記ループ検知工程に
    よるループの検知結果をメディアに印字出力する方法で
    ユーザーに通知することを特徴とする請求項17に記載
    のシリアルバスインタフェースのバス構成方法。
  20. 【請求項20】 前記ユーザーに通知する工程は、音声
    伝達により、前記ループ検知工程によるループの検知結
    果を通知することを特徴とする請求項17に記載のシリ
    アルバスインタフェースのバス構成方法。
  21. 【請求項21】 前記ループ検知工程は、複数のループ
    を検知可能なことを特徴とする請求項15に記載のシリ
    アルバスインタフェースのバス構成方法。
  22. 【請求項22】 前記判断工程によって、前記シリアル
    バスインタフェースデバイスがシリアルバスインタフェ
    ースシステム上のループを構成しているバス上に存在す
    ると判断された場合、前記システム再構成開始工程はポ
    ートをディセーブル後、システム再構成を実行し、バス
    上に存在しないと判断された場合、前記ユーザに通知す
    る工程はループ接続の存在のみをユーザーに通知するこ
    とを特徴とする請求項15に記載のシリアルバスインタ
    フェースのバス構成方法。
  23. 【請求項23】 前記判断工程は、複数のポートがアク
    ティブの場合にParent Notify信号を受信していないポ
    ートに対してParent Notify信号を発生させ、送信した
    のとは別のポートでParent Notify信号を受信したとき
    に、そのポート間に接続されるバス上でループが存在す
    ると判断することを特徴とする請求項15に記載のシリ
    アルバスインタフェースのバス構成方法。
  24. 【請求項24】 前記信号発生工程は、複数のポートが
    アクティブの場合にParent Notify信号を受信していな
    いポートに対してParent Notify信号を発生させても、
    他のどのポートからもParent Notify信号を受信できな
    いときには、さらにParent Notify信号を受信していな
    い別のポートに対してParent Notify信号を発生し、ル
    ープの存在を確認する動作を行うことを特徴とする請求
    項15に記載のシリアルバスインタフェースのバス構成
    方法。
  25. 【請求項25】 前記判断工程は、アクティブなポート
    が存在する場合にParent Notify信号を受信していない
    ポートに対してParent Notify信号を発生させたとき
    に、任意のタイマー値でタイマーを起動し、タイマー値
    を超えた時点で他のどのポートからもParent Notify信
    号を受信できないときそのポートの先に接続されるデバ
    イス間で構成されるバス上でループが存在すると判断す
    ることを特徴とする請求項15に記載のシリアルバスイ
    ンタフェースのバス構成方法。
  26. 【請求項26】 前記ループ検知工程で用いられる任意
    のタイマー値と、前記判断工程で用いられる任意のタイ
    マー値とは、別個の値が設定され、前記ループ検知工程
    と前記判断工程の起動タイミングを変えていることを特
    徴とする請求項15に記載のシリアルバスインタフェー
    スのバス構成方法。
  27. 【請求項27】 前記ディセーブル工程によってポート
    がディセーブルにされた場合、どのポートがディセーブ
    ルにされたかユーザーに通知する通知工程を更に備える
    ことを特徴とする請求項15に記載のシリアルバスイン
    タフェースのバス構成方法。
  28. 【請求項28】 デバイスの追加接続や切離しを検知し
    バスの構成を行うバス構成工程と、 バス構成時インタフェースシステム上におけるループ接
    続されたデバイスの存在を検知するループ検知工程と、 他のデバイスとの接続口となるポートから強制的にPare
    nt Notify信号を発生させる信号発生工程と、 前記ポートからParent Notify信号を受信する信号受信
    工程と、 前記信号の送信および受信状況からループ接続の発生箇
    所を判断する判断工程と、 前記判断工程の判断結果に基づきアクティブなポートを
    ディセーブルにするディセーブル工程と、 前記ディセーブル工程によるポートのディセーブル後に
    前記バス構成工程を再び開始させるシステム再構成開始
    工程と、 をコンピュータに実行させるためのプログラムを記録し
    たことを特徴とする記録媒体。
  29. 【請求項29】 複数のデバイスがシリアルバスインタ
    フェースデバイスで接続されて構成されるシリアルバス
    インタフェースシステムにおいて、前記シリアルバスイ
    ンタフェースデバイスとして、請求項1記載のシリアル
    バスインタフェースデバイスを用いたことを特徴とする
    シリアルバスインタフェースシステム。
  30. 【請求項30】 前記シリアルバスインタフェースデバ
    イスで接続されたデバイスはプリンタ機能を備えること
    を特徴とする請求項29記載のシリアルバスインタフェ
    ースシステム。
JP10150222A 1998-05-29 1998-05-29 シリアルバスインタフェースデバイスおよびバスの構成方法、記録媒体、シリアルバスインタフェ−スシステム Withdrawn JPH11345193A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10150222A JPH11345193A (ja) 1998-05-29 1998-05-29 シリアルバスインタフェースデバイスおよびバスの構成方法、記録媒体、シリアルバスインタフェ−スシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10150222A JPH11345193A (ja) 1998-05-29 1998-05-29 シリアルバスインタフェースデバイスおよびバスの構成方法、記録媒体、シリアルバスインタフェ−スシステム

Publications (1)

Publication Number Publication Date
JPH11345193A true JPH11345193A (ja) 1999-12-14

Family

ID=15492215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10150222A Withdrawn JPH11345193A (ja) 1998-05-29 1998-05-29 シリアルバスインタフェースデバイスおよびバスの構成方法、記録媒体、シリアルバスインタフェ−スシステム

Country Status (1)

Country Link
JP (1) JPH11345193A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000341279A (ja) * 1999-04-27 2000-12-08 Hewlett Packard Co <Hp> ネットワークにおけるループを防止する方法
EP0964552A3 (en) * 1998-06-12 2001-05-02 Optowave Laboratory Inc. Network and node device
EP1249974A1 (en) * 2001-04-13 2002-10-16 Matsushita Electric Industrial Co., Ltd. Method and communication node for topology correction
JP2002541553A (ja) * 1999-04-06 2002-12-03 ケーブルソフト, インコーポレイテッド データポートの接続パターンのモニターシステム
US7317690B2 (en) 1999-06-25 2008-01-08 Fujitsu Limited Method of constructing network topology and interface circuit
JP2010051033A (ja) * 2009-12-01 2010-03-04 Fujitsu Microelectronics Ltd ネットワークの構築方法
JP2010055242A (ja) * 2008-08-27 2010-03-11 Fuji Xerox Co Ltd バスシステム、機器システム及びバスドライバプログラム
CN104065845A (zh) * 2013-03-18 2014-09-24 富士施乐株式会社 信息处理装置及信息处理方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0964552A3 (en) * 1998-06-12 2001-05-02 Optowave Laboratory Inc. Network and node device
JP2002541553A (ja) * 1999-04-06 2002-12-03 ケーブルソフト, インコーポレイテッド データポートの接続パターンのモニターシステム
JP2000341279A (ja) * 1999-04-27 2000-12-08 Hewlett Packard Co <Hp> ネットワークにおけるループを防止する方法
US7317690B2 (en) 1999-06-25 2008-01-08 Fujitsu Limited Method of constructing network topology and interface circuit
EP1249974A1 (en) * 2001-04-13 2002-10-16 Matsushita Electric Industrial Co., Ltd. Method and communication node for topology correction
JP2010055242A (ja) * 2008-08-27 2010-03-11 Fuji Xerox Co Ltd バスシステム、機器システム及びバスドライバプログラム
JP2010051033A (ja) * 2009-12-01 2010-03-04 Fujitsu Microelectronics Ltd ネットワークの構築方法
CN104065845A (zh) * 2013-03-18 2014-09-24 富士施乐株式会社 信息处理装置及信息处理方法
JP2014182441A (ja) * 2013-03-18 2014-09-29 Fuji Xerox Co Ltd 情報処理装置及びプログラム
US9389812B2 (en) 2013-03-18 2016-07-12 Fuji Xerox Co., Ltd. Information processing device, information processing method, and non-transitory computer readable medium
CN104065845B (zh) * 2013-03-18 2019-03-01 富士施乐株式会社 信息处理装置及信息处理方法

Similar Documents

Publication Publication Date Title
TW552780B (en) USB communication control apparatus, USB communication system and USB communication control method
JP4768017B2 (ja) ポイントツーポイント・リンクのネゴシエーション方法および装置
JP5822634B2 (ja) 記録装置及びその動作設定方法
US6425019B1 (en) Data communication on a serial bus using an initial protocol which being executed in a transaction layer
JP4026948B2 (ja) ネットワークシステム、デバイス、デバイスの制御方法、及び、記憶媒体
US20050080935A1 (en) Device-side controller, host-side controller, communication controller, USB system, and packet communications method
JP2000069029A (ja) 接続制御装置及び接続制御方法
US6757772B2 (en) Interface device, node, interface system, method for controlling bus reset and computer program product for controlling bus reset
JPH11345193A (ja) シリアルバスインタフェースデバイスおよびバスの構成方法、記録媒体、シリアルバスインタフェ−スシステム
JP3599048B2 (ja) データ転送制御システム、電子機器、プログラム及びデータ転送制御方法
JPH11177598A (ja) ハブ装置およびハブ装置の通信方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US7924750B1 (en) Method and apparatus for establishing a communication mode between network devices in a network
US7203787B2 (en) Information processing apparatus and method that utilizes stored information about a mountable device
EP1094638A2 (en) Method and apparatus for controlling data networks
JP2011215855A (ja) Usbデバイス制御回路、及びusbデバイスの制御方法
CN101325496A (zh) 通信系统、通信设备及其控制方法
JP2002063129A (ja) デバイス管理システム及びデバイス管理方法
JP4277497B2 (ja) 複合装置
TW470887B (en) USB hub having multiple upstream ports and capable of switching between different hosts and computer system using the USB hub
JPH11110160A (ja) 印刷制御装置及び印刷制御方法
JP3860017B2 (ja) データ通信方法、送受信回路、該送受信回路を備えた情報機器および情報通信ネットワーク
JPH10303948A (ja) 通信装置およびその方法
JP2003051824A (ja) 通信方法、通信システム、プログラム及び記憶媒体
JP3593882B2 (ja) 印刷装置及びインターフェース制御方法
JP2001101125A (ja) システム構成の自動変更方法及び装置並びに記憶媒体

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050802