JP2010056716A - インターフェース装置及びトポロジ構築方法 - Google Patents

インターフェース装置及びトポロジ構築方法 Download PDF

Info

Publication number
JP2010056716A
JP2010056716A JP2008217724A JP2008217724A JP2010056716A JP 2010056716 A JP2010056716 A JP 2010056716A JP 2008217724 A JP2008217724 A JP 2008217724A JP 2008217724 A JP2008217724 A JP 2008217724A JP 2010056716 A JP2010056716 A JP 2010056716A
Authority
JP
Japan
Prior art keywords
sleep
port
state
topology
circuit
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
Application number
JP2008217724A
Other languages
English (en)
Inventor
Makoto Ito
伊藤  誠
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2008217724A priority Critical patent/JP2010056716A/ja
Publication of JP2010056716A publication Critical patent/JP2010056716A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】物理的にループ接続されたポートをスリープステートに遷移させつつも、ループ接続されたバスケーブルが物理的に切断されるときのフェールセーフを実現することのできるインターフェース装置及びトポロジ構築方法を提供する。
【解決手段】インターフェース装置10Aは、バスリセット発生後にトポロジの変化を検出したときに、ループ検出によってスリープステートに遷移したポートのスリープ状態を解除するためのスリープ解除回路50を備える。このスリープ解除回路50は、ループ検出によってスリープステートに遷移したポートの存在を検出したときに第1検出信号D1を生成するループ検出回路60と、トポロジの変化を検出したときに第2検出信号D2を生成するトポロジ監視回路70とを備える。また、スリープ解除回路50は、第1及び第2検出信号D1,D2に応答して、スリープ解除パケットSLを生成するスリープ解除制御回路80を備える。
【選択図】図1

Description

本発明は、インターフェース装置及びトポロジ構築方法に関するものである。
従来、自動車のエレクトロニクス化が急速に進んでおり、IEEE1394b−2002規格をベースにして車載用のシリアルインターフェースとして開発されたIDB1394規格が注目されている。このIDB1394規格は、デジタル映像ストリームを多重伝送できるだけの十分な高伝送帯域を持っており、映像と音声の多重転送ができる車載マルチメディアネットワークに適した規格である。したがって、IDB1394規格を利用した情報系LANでは、DTV(Digital TV)やDVD−Videoの映像やDVD−Audioの音楽等を高品質なデジタルコンテンツとして鑑賞することができる。さらに、IDB1394規格を利用した情報系LANでは、前席及び後席で別々の映像を楽しむリアシートエンターテイメントシステムを構築することも可能である。
ところで、IDB1394規格のベースであるIEEE1394b−2002規格では、図9(a)に示すようなループ状のトポロジが許容されていない。このIEEE1394b−2002規格において、誤ってループ状のトポロジが構築された場合には、ループテストにおいてそのループが検出され、例えば最後に接続されたバスケーブル(図9の例では、バスケーブル1c)が論理的に切断される(例えば、特許文献1参照)。すなわち、バスケーブル1cに接続されたノードBのポートP2B及びノードCのポートP1Cを、論理的切断状態であるループ・ディスエーブル(Loop_disabled)ステートに遷移させる。これによって、ループ状のトポロジをデイジーチェーン型のトポロジに変更することができる。ただし、上記ループ・ディスエーブルステートでは、ポート間でお互いの接続を確認し合うトーン信号を送信するようになっている。
これに対して、IDB1394規格の場合には、該IDB1394規格のインターフェース回路への電源供給が自動車に搭載されたバッテリによって行われることから、できる限り低消費電力化する必要がある。そこで、IDB1394規格では、物理的にループ接続されたときに論理的に切断されるポートP2B,P1Cを、上記ループ・ディスエーブルステートに遷移させ、さらにトーン信号も送信されないスリープ(Sleep)ステートに遷移させる機能が追加されている。したがって、このスリープステートでは、トーン信号を送信しない分だけ、IEEE1394b−2002規格のループ・ディスエーブルステートよりも消費電力を低減することができる。
特開2003−37613号公報
ところで、IEEE1394b−2002規格のループ・ディスエーブルステートでは、バスリセットが検出されると自動的に他のステートに遷移される。これに対し、IDB1394規格のスリープステートでは、バスリセットが検出されたとしても、他ノードのポートからのトーン信号が検出されない限り、他のステートに遷移されない。しかし、上述のように、物理的に接続された双方のポートP2B,P1Cがスリープステートに遷移されると、両ポートP2B,P1Cから互いにトーン信号が送信されないため、ポート状態を初期化しない限りスリープステートが継続されてしまう。このため、図9(a)の状態から図9(b)に示すように、上記バスケーブル1cとは別のバスケーブル1bが何らかの原因によって物理的に切断されると、このときにバスリセットが検出されたとしても、論理的に切断されたポートP2B,P1Cのスリープステートが継続される。これによって、バスケーブル1cが物理的に接続されているにも関わらず、ノードCがネットワークから切り離されるという問題が生じる。
本発明は上記問題点を解決するためになされたものであって、その目的は、物理的にループ接続されたポートをスリープステートに遷移させつつも、ループ接続されたバスケーブルが物理的に切断されるときのフェールセーフを実現することのできるインターフェース装置及びトポロジ構築方法を提供することにある。
上記目的を達成するため、請求項1に記載のインターフェース装置は、前記バスケーブルによって他ノードのポートと接続されるポートと、前記自ノードのポート毎に対応して設けられ、トポロジ中に当該ポートによるループが検出されると、ループ・ディスエーブルステートへ遷移させて当該ポートを論理的に切断された状態にし、さらにスリープステートに遷移させるステートマシンと、前記トポロジの変化を検出したときに、前記スリープステートであるポートのスリープステートを解除するためのスリープ解除信号を送信するスリープ解除回路と、を備える。
また、請求項7に記載のトポロジ構築方法は、スリープステートに遷移されたポートが存在するトポロジにおいて、該トポロジが変化したときにスリープ解除回路から送信されるスリープ解除信号に応答して、前記スリープステートのポートをディスコネクトステートに遷移させる。
これらによれば、トポロジの変化を検出したときに、スリープ解除回路から送信されるスリープ解除信号によってスリープステートを解除することができる、すなわちスリープステートを他のステートに遷移させることができる。スリープステートから他のステートに遷移させることさえできれば、その後は既存の遷移条件によって、そのスリープステートであったポートの論理的な切断を解除することができる。したがって、ポート状態を初期化しなくとも、スリープステートからポートにおける論理的な切断を自動的に解除することができる。このため、例えばループを形成するバスケーブルが何らかの原因によって切断された場合には、その切断によって生じるトポロジの変化が検出され、スリープ解除回路から送信されるスリープ解除信号によってスリープステートが解除される。これにより、そのスリープステートであったポートの論理的な切断が自動的に解除され、そのポート間が論理的に接続されることになる。この結果、論理的な切断によって所望のノードから切り離されるノードが発生することを抑制できるため、ループ接続されたバスケーブルが物理的に切断されたときのフェールセーフを実現することができる。
また、請求項2に記載のインターフェース装置における前記スリープ解除回路は、前記トポロジ内の全ノードの物理層レジスタ内に格納された、物理的な接続の有無を示すコネクトビット及び前記スリープステートを通知するスリープビットを全ポート分読み出し、これらコネクトビット及びスリープビットに基づいて、前記スリープステートのポートが存在することを検出したときに第1検出信号を生成する検出回路と、前記トポロジ内のノード数がバスリセットの発生前後で減少したことを検出したときに第2検出信号を生成するトポロジ監視回路と、前記第1検出信号及び前記第2検出信号に応答して、前記スリープ解除信号を送信するスリープ解除信号送信回路と、を備える。
上記構成によれば、検出回路では、IDB1394規格で元々利用されているレジスタ値(コネクトビット及びスリープビット)に基づいて、トポロジ内にスリープステートのポートが存在するか否かを判断することができる。また、トポロジ監視回路では、ノード数の変化を検出することによって、トポロジの変化を検出することができる。
また、請求項3に記載のインターフェース装置では、前記ステートマシンは、前記スリープステートのときに、前記スリープ解除信号を受信すると、前記スリープステートからディスコネクトステートに遷移させる。この構成によれば、新たなステートや新たな遷移条件を追加せずに、スリープステートから既存のディスコネクトステートへ遷移させることができるため、既存のインターフェース装置との互換性を持たせることができる。
また、請求項4に記載のインターフェース装置では、前記検出回路は、前記コネクトビットが物理的に接続されていることを示す値で、且つ前記スリープビットがスリープステートであることを示す値を有するポートがトポロジ内に存在するときに、前記第1検出信号を生成する。この構成によれば、トポロジの変化が検出されたときに、物理的に接続されているが、論理的に切断されているポートのスリープステートのみを確実に解除することができる。
また、請求項5に記載のインターフェース装置では、前記検出回路は、前記トポロジ内に中断処理によってスリープステートに遷移されたポートが存在せず、且つ前記コネクトビットが物理的に接続されていることを示す値で、前記スリープビットがスリープステートであることを示す値を有するポートがトポロジ内に存在するときに、前記第1検出信号を生成する。この構成によれば、トポロジの変化が検出されたときに、ループの存在によってスリープステートに遷移されたポートのスリープステートのみを確実に解除することができる。
また、請求項6に記載のインターフェース装置では、前記検出回路は、前記トポロジ内の全ての他ノードの全ポートに対応する前記コネクトビット及び前記スリープビットを読み出すためのリモートアクセスパケットを送信する読み出し回路と、前記アクセスパケットに対する応答パケットを前記他ノードから受信し、該受信した応答パケットから前記コネクトビット及び前記スリープビットを取得する受信回路と、を備える。この構成によれば、読み出し回路から送信されるリモートアクセスパケットに対する応答パケットが受信回路で受信される。この受信した応答パケットからトポロジ内の全ての他ノードの全ポートに対応するコネクトビット及びスリープビットを取得することができる。
また、請求項8に記載のトポロジ構築方法では、前記スリープ解除信号は、前記トポロジ内の全ポートに送信されるリジュームパケット、あるいは前記スリープステートが解除される対象のポートのみに送信されるリモートコマンドパケットである。これらによれば、IDB1394規格において、アクティブステートから一旦サスペンドステートに遷移されたポートをアクティブステートに復帰させるときに使用されるリジュームパケットやリモートコマンドパケットによって、スリープステートを解除することができる。
以上説明したように、インターフェース装置及びトポロジ構築方法によれば、物理的にループ接続されたポートをスリープステートに遷移させつつも、ループ接続されたバスケーブルが物理的に切断されるときのフェールセーフを実現することができるという効果を奏する。
以下、本発明を具体化した一実施形態を図1〜図8にしたがって説明する。
図3は、シリアルインターフェースの車載用規格であるIDB1394規格に準拠したデータ転送を行うネットワークシステムを概略的に示すブロック図である。
図3に示すように、ネットワークシステムは、接続された複数(本実施形態では3つ)のノードA,B,Cにより構成されている。ノードAは、インターフェース回路10Aに設けられた複数(本実施形態では2つ)の第1ポートP1A及び第2ポートP2Aを備える。ノードBは、インターフェース回路10Bに設けられた2つの第1ポートP1B及び第2ポートP2Bを備える。ノードCは、インターフェース回路10Cに設けられた2つの第1ポートP1C及び第2ポートP2Cを備える。
ノードAの第1ポートP1Aは、IDB1394バスケーブル(バスケーブル)1aによってノードBの第1ポートP1Bと接続されている。ノードAの第2ポートP2Aは、バスケーブル1bによってノードCの第2ポートP2Cと接続されている。ノードBの第2ポートP2Bは、バスケーブル1cによってノードCの第1ポートP1Cと接続されている。このように構成されたトポロジ(システム構成)では、ノードA〜C及びバスケーブル1a〜1cによってループが構成されている。
なお、ノードA〜Cは、例えばカーナビゲーション装置、DVD再生装置やリアディスプレイ等の接続ポイントの総称である。本実施形態では、ノードAがカーナビゲーション装置などの制御ノードで、且つ電力管理を行うパワーマネージャであり、ノードB,Cがリアディスプレイである。
次に、制御ノードであるノードAが備えるインターフェース回路10Aについて図1にしたがって説明する。
図1に示すように、インターフェース回路10Aは、第1及び第2ポートP1A,P2A,物理層処理回路20を含んで構成されている。各ポートP1A,P2Aは、それぞれデコーダとエンコーダを含み、データの受信時にはバスケーブル1a,1bを介して受け取る電気信号を装置内部で扱う電気信号に変換して物理層処理回路20に出力する。また、各ポートP1A,P2Aは、データの送信時には内部で扱う電気信号をIDB1394規格の電気信号に変換して他のノードに送信する。
物理層処理回路20は、第1ポートP1Aと接続される第1データ転送制御回路30aと、第2ポートP2Aと接続される第2データ転送制御回路30bと、ループテスト処理回路40と、スリープ解除回路50とを備えている。なお、第1データ転送制御回路30aと第2データ転送制御回路30bとは、同様の構成を有しているため、ここでは第1データ転送制御回路30aについて説明し、第2データ転送制御回路30bの詳細な説明を省略する。
第1データ転送制御回路30aは、第1ポートP1Aのデコーダ及びエンコーダとそれぞれ接続される解析回路31a及び生成回路32aと、ポート監視回路33aと、レジスタ34aと、ステートマシン35aとを備えている。
解析回路31aは、ノードBから第1ポートP1Aのデコーダを介してデータパケットやループテストパケットを受信する。解析回路31aは、受信したパケットの種類、例えばデータパケットであるかループテストパケットであるかを判別する。解析回路31aは、データパケットを受信すると、受信したデータパケットをそのままステートマシン35aに出力する。
また、解析回路31aは、ループ状のトポロジを検出するためのループテスト時に送信されるループテストパケットを受信すると、受信したループテストパケットをそのままステートマシン35aに出力する。さらに、解析回路31aは、自ノードAがループテストパケットを送信していた場合には、受信したループテストパケットと送信したループテストパケットとを比較して、その比較結果をステートマシン35aに出力する。
生成回路32aは、ステートマシン35aから入力されるデータパケットあるいはループテストパケットを、そのまま第1ポートP1Aのエンコーダに出力する。また、生成回路32aは、ループテスト実行時にループテスト処理回路40から入力される命令信号に基づいて、ループテストパケットを生成し、そのループテストパケットを第1ポートP1Aのエンコーダに出力する。なお、上記エンコーダは、受信したデータパケットやループテストパケットをIDB1394規格の電気信号に変換してノードBに送信する。
ポート監視回路33aは、第1ポートP1Aの状態(接続状態等)を監視して、その状態変化に応じてレジスタ34aのコネクトビット(Cビット)やスリープビット(Sビット)を設定する。具体的には、ポート監視回路33aは、第1ポートP1Aが他のポートと物理的に接続され、信号が送受信されている場合にCビットを「1」に設定し、第1ポートP1Aが他のポートと物理的に未接続の場合にCビットを「0」に設定する。また、ポート監視回路33aは、第1ポートP1AがスリープステートST4(図4参照)に遷移した後、接続相手との切断を確実に行える時間だけ待った後にSビットを「1」に設定し、第1ポートP1Aがそれ以外の状態の場合にSビットを「0」に設定する。このように、Cビットはポートが物理的に接続されているか否かを示すレジスタ値であり、Sビットはスリープステートを通知するためのレジスタ値である。
ステートマシン35aには、データ受信時に、第1ポートP1Aから解析回路31aを介してデータパケットやループテストパケットが入力される。ステートマシン35aは、その入力したデータパケットをリンク層に出力し、入力したループテストパケットをスリープ解除回路50に出力する。また、ステートマシン35aは、第1ポートP1Aとは別の第2ポートP2Aに他のポートが接続されている場合には、第1ポートP1Aから入力したデータパケット等をステートマシン35bに送信することで、第2ポートP2Aに接続されたノードCに送信する。一方、ステートマシン35aは、データ送信時に、リンク層から入力するデータパケットを、生成回路32aを介して第1ポートP1Aに接続されたノードBに送信する。
また、ステートマシン35aは、所定の遷移条件を満たしたときに、第1ポートP1Aのステートを遷移させる。例えば、ステートマシン35aは、解析回路31aにて生成されるループテスト時の比較結果やバスリセットの検出に基づいて、第1ポートP1Aのステートを遷移させる。
ループテスト処理回路40は、ループテストを実行するときにループテストパケットを生成するための命令信号を生成回路32aに出力する。
スリープ解除回路50は、バスリセット発生後にトポロジの変化を検出したときに、ループ検出によってスリープステートST4に遷移されたポートのスリープ状態を解除させるための回路である。このスリープ解除回路50は、ループ検出回路60と、トポロジ監視回路70と、スリープ解除制御回路80と、を備えている。
ループ検出回路60は、トポロジ内の全ノードが備える全ポートのCビット及びSビットを読み出し、ループ検出によってスリープステートST4に遷移したポート(解除対象ポート)が存在するか否かを検出する。このループ検出回路60は、解除対象ポートが存在することを検出したときに第1検出信号D1をスリープ解除制御回路80に出力する。
トポロジ監視回路70は、トポロジを監視し、トポロジ内のノード数の変化を検出する。このトポロジ監視回路70は、バスリセットの発生前後においてトポロジ内のノード数が減少したときに、トポロジが変化したことを示す第2検出信号D2をスリープ解除制御回路80に出力する。
スリープ解除制御回路80は、ループ検出回路60からの第1検出信号D1及びトポロジ監視回路70からの第2検出信号D2の双方が入力されたときに、上記解除対象ポートのスリープステートST4を解除(ウェイクアップ)させるためのスリープ解除パケットSLを生成する。そして、スリープ解除制御回路80は、生成したスリープ解除パケットSL(スリープ解除信号)を解除対象ポートに送信する。なお、ステートマシン35aは、スリープステートのときに、スリープ解除パケットSLが入力されると、スリープステートからディスコネクトステートに遷移させる。
ここで、このステートマシン35aの状態遷移について図4にしたがって詳述する。ステートマシン35aは、ステートST1〜ステートST6に遷移する。ステートST1は、ディスコネクト(Disconnected)ステートであって、第1ポートP1Aが他のポートと物理的に未接続状態、あるいは第1ポートP1Aが他のポートと物理的に接続されてスピードネゴシエーションを行っている状態である。このディスコネクトステートST1では、ポート間でお互いの接続を確認し合うトーン信号の送受信が行われる。ステートST2は、アンテスト(Untested)ステートであって、第1ポートP1Aが他のポート(ここでは、ノードBの第1ポートP1B)と接続された結果、トポロジ中にループが形成されたか否かを判定するループテストが行われる状態である。ステートST3は、ループ・ディスエーブル(Loop_disabled)ステートであって、ループ検出によって第1ポートP1Aが論理的に切断された状態である。すなわち、このループ・ディスエーブルステートST3は、第1ポートP1Aが物理的に接続されているものの、論理的には切断されている状態である。ステートST4は、スリープ(Sleep)ステートであって、第1ポートP1Aからのトーン信号を含む全ての信号の送信が停止され、トーン信号の受信のみが行われる、いわゆる低消費電力モードの状態である。ステートST5は、アクティブ(Active)ステートであって、第1ポートP1Aがデータ転送可能な状態である。ステートST6は、サスペンド(Suspended)ステートであって、第1ポートP1Aが中断状態(休止状態)である。
次に、ステートマシン35aにおける各ステートST1〜ST6間の遷移と、Cビット及びSビットの設定とについて図4及び図5にしたがって説明する。
ステートマシン35aは、ディスコネクトステートST1のときに、接続相手からのトーン信号を検出した後、スピードネゴシエーションが正常に完了すると(遷移条件T1)、ステートST1からアンテストステートST2へ遷移させる。
ステートマシン35aは、アンテストステートST2のときに、ループテストにおいてループが検出され、第1ポートP1Aが最後に物理的に接続されたポートの場合には(遷移条件T2)、ステートST2からループ・ディスエーブルステートST3へ遷移させる。ステートマシン35aは、ステートST3に遷移したときに、スリープ機能が有効な場合には(遷移条件T4)、直ちにステートST3からスリープステートST4へ遷移させる。このようにループ・ディスエーブルステートST3からスリープステートST4に遷移したときは、ポートが物理的に接続されているが、ループ検出によってスリープステートST4に遷移した状態である。したがって、このときのCビット及びSビットは共に「1」に設定されている(図5参照)。
一方、ステートマシン35aは、ループ・ディスエーブルステートST3のときに、第1ポートP1Aが物理的に切断されると(遷移条件T4)、ステートST3からディスコネクトステートST1へ遷移させる。また、ステートマシン35aは、ループ・ディスエーブルステートST3のときに、バスリセットを検出すると(遷移条件T5)、ステートST3からアンテストステートST2へ遷移させる。
ステートマシン35aは、アンテストステートST2のときに、ループテストにおいてループが検出されない場合には(遷移条件T6)、ステートST2からアクティブステートST5に遷移させる。なお、このときは、ポートが物理的に接続されてパケット等が送受信されている状態であるため、Cビットが「1」に設定され、Sビットが「0」に設定されている(図5参照)。
ステートマシン35aは、アクティブステートST5のときに、第1ポートP1Aが物理的に切断された場合、又はサスペンドコマンド等による中断処理が行われた場合には(遷移条件T7)、ステートST5からサスペンドステートST6へ遷移させる。ステートマシン35aは、サスペンドステートST6のときに、リジュームパケットやリモートコマンドパケットを受信すると(遷移条件T8)、ステートST6からアクティブステートST5に復帰させる。一方、ステートマシン35aは、物理的切断によってアクティブステートST5からサスペンドステートST6に遷移した場合には(遷移条件T9)、直ちにステートST6からディスコネクトステートST1へ遷移させる。また、ステートマシン35aは、中断処理によってアクティブステートST5からサスペンドステートST6に遷移した場合であって、スリープ機能が有効な場合には(遷移条件T10)、直ちにステートST6からスリープステートST4へ遷移させる。このようにサスペンドステートST6からスリープステートST4に遷移したときは、ポートが物理的に接続されているが、中断処理によってスリープステートST4に遷移した状態である。したがって、このときのCビットは「1」に設定され、Sビットは「1」に設定されている(図5参照)。
一方、ステートマシン35aは、ディスコネクトステートST1のときに、所定時間(例えば200ms)内に接続相手が検知されないと(遷移条件T11)、スリープステートST4に遷移させる。このようにディスコネクトステートST1からスリープステートST4に遷移したときは、ポートが物理的に未接続でスリープステートST4に遷移した状態である。したがって、このときのCビットは「0」に設定され、Sビットは「1」に設定されている(図5参照)。
そして、ステートマシン35aは、スリープステートST4のときに、接続相手を検知した場合、あるいはスリープ解除回路50から出力されたスリープ解除パケットSLを受信した場合に(遷移条件T12)、ステートST4からディスコネクトステートST1へ遷移させる。
ステートマシン35aは、このように遷移条件に基づいて自身のステートを遷移させることによって、そのステートマシン35aに接続される第1ポートP1Aの状態を制御している。換言すれば、ステートマシン35aは、自身のステートを遷移させることによって、第1ポートP1Aの状態(ステート)を同様に遷移させる。具体的には、例えばステートマシン35aは、ループ・ディスエーブルステートST3に遷移させることによって、第1ポートP1Aによるデータパケット及びループテストパケットの送受信を停止させて、その第1ポートP1Aを論理的に切断させる。また、ステートマシン35aは、スリープステートST4に遷移させることによって、第1ポートP1Aによるトーン信号の送信を停止させて、その第1ポートP1Aを低消費電力モードにさせる。
以上説明したように、同じスリープステートST4であっても、そのスリープステートST4に遷移されるときの遷移条件によって(ポートが物理的に接続されているか否かによって)Cビット及びSビットの値が変化する。このため、Cビット及びSビットを取得することによって、物理的に接続されているにも関わらず、スリープステートST4に遷移されたポートであるか否か判定することができる。すなわち、Cビット及びSビットが共に「1」であれば、物理的に接続されているにも関わらず、スリープステートST4に遷移されたポートであると判定することができる。但し、遷移条件T3によってループ・ディスエーブルステートST3からスリープステートST4に遷移された場合も、遷移条件T10によってサスペンドステートST6からスリープステートST4に遷移された場合も、Cビット及びSビットが共に「1」に設定される。すなわち、ループ検出によってスリープステートST4に遷移された場合だけでなく、パワーマネージャが消費電力を低減させるために意図的に行う中断処理によってスリープステートST4に遷移された場合にも、Cビット及びSビットが共に「1」に設定される。このため、これらCビット及びSビットのレジスタ値からだけでは、そのスリープステートST4がループ検出によって遷移されたものであるかを判定することができない。そこで、本実施形態では、中断処理によりスリープステートST4に遷移させたポートを記憶し、さらにCビット及びSビットを取得することで、ループ検出によってスリープステートST4に遷移されたポートのスリープ状態のみを解除するようにした。以下に、その具体的構成を説明する。
図2に、スリープ解除回路50を構成するループ検出回路60、トポロジ監視回路70及びスリープ解除制御回路80の各々の内部構成を示した。図2に示すように、ループ検出回路60は、外部レジスタ読み出し回路61と、受信パケット判定回路62と、コマンド判定回路63と、レジスタ値判定回路64とを備えている。
外部レジスタ読み出し回路61には、ループテストパケットの受信に基づいて受信パケット判定回路62にて生成される受信信号RSが入力される。外部レジスタ読み出し回路61は、受信信号RSを受信することでループテストが実行されていると判断する。この外部レジスタ読み出し回路61は、その受信信号RSを受信後、ループテストが確実に終了する所定時間(例えば500μs)が経過してから、全ての他ノードB,Cの全ポートのCビット及びSビットを読み出すためのリモートアクセスパケットを生成する。そして、外部レジスタ読み出し回路61は、生成したリモートアクセスパケットを全ての他ノードB,Cに送信する。
受信パケット判定回路62には、上記リモートアクセスパケットに対する応答パケットであるリモートリプライパケットが全ての他ノードB,Cから入力されるとともに、上記ループテストパケットがステートマシン35a,35bから入力される。受信パケット判定回路62は、受信したパケットがリモートリプライパケットであるかループテストパケットであるかを判定する。そして、受信パケット判定回路62は、リモートリプライパケットを受信すると、そのリモートリプライパケットから対応するポートのCビット及びSビットを取得し、取得したレジスタ値をレジスタ値判定回路64に出力する。ここで、受信パケット判定回路62は、全ての他ノードB,Cの全ポートに対応するリモートリプライパケットを受信するため、全ての他ノードの全ポートのCビット及びSビットを読み出すことができる。なお、受信パケット判定回路62は、ループテストパケットを受信すると、そのループテストパケットを受信したことを示す上記受信信号RSをループ検出回路60に出力する。
コマンド判定回路63は、パワーマネージャである自ノードAが消費電力を低減させるために意図的に行う中断処理によってスリープステートST4に遷移させたポートを記憶している。コマンド判定回路63は、その記憶している情報から、中断処理によってスリープステートST4に遷移させたポートが存在するか否かを判定し、そのポートが存在しない場合に第3検出信号D3をレジスタ値判定回路64に出力する。
レジスタ値判定回路64は、自ノードAのレジスタ34a,34bにおけるCビット及びSビット、すなわち自ノードAのポートP1A,P2AのCビット及びSビット(レジスタ値)を読み出す。これにより、レジスタ値判定回路64は、全ノードA〜Cの全ポートのレジスタ値、すなわち受信パケット判定回路62から入力される全ての他ノードB,Cの全ポートにおけるレジスタ値、及び自ノードAの全ポートにおけるレジスタ値を読み出すことができる。このレジスタ値判定回路64は、コマンド判定回路63からの第3検出信号D3が入力されているときに、上記読み出したレジスタ値の中にCビット及びSビットが共に「1」であるポートが存在するか否かを判定する。これにより、中断処理によってスリープステートST4に遷移されたポートではなく、且つCビット及びSビットが共に「1」であるポート、つまりループ検出によってスリープステートST4に遷移された解除対象ポートの有無を検出できる。そして、レジスタ値判定回路64は、解除対象ポートの存在を検出したときに第1検出信号D1を生成する。
トポロジ監視回路70は、トポロジ記憶回路71と、トポロジ変化検出回路72とを備えている。トポロジ記憶回路71は、バスリセットプロセスにおいて各ノードから受信したセルフIDパケットの数をカウントし、そのカウント値からトポロジ内のノード数を取得する。このトポロジ記憶回路71は、最新のバスリセットプロセスにおいて取得された最新のトポロジ内のノード数と、その1回前のバスリセットプロセスにおいて取得された前回のトポロジ内のノード数とを記憶している。
トポロジ変化検出回路72は、トポロジ記憶回路71から最新のトポロジ内のノード数と、前回のトポロジ内のノード数を読み出し、両者のノード数(バスリセットの発生前後のトポロジ)が変化しているか否かを検出する。このトポロジ変化検出回路72は、前回のトポロジ内のノード数よりも最新のトポロジ内のノード数が減少している場合に、いずれかのケーブルが切断された可能性があると判断して第2検出信号D2を生成する。
スリープ解除制御回路80は、スリープ解除パケット送信回路81を備えている。スリープ解除パケット送信回路81は、上記レジスタ値判定回路64から第1検出信号D1が入力されるとともに、上記トポロジ変化検出回路72から第2検出信号D2が入力される。このスリープ解除パケット送信回路81は、これら第1及び第2検出信号D1,D2の双方の信号が入力されたときに、スリープステートST4を解除するためのスリープ解除パケットSLを生成する。すなわち、スリープ解除パケット送信回路81は、バスリセット発生後にトポロジが変化したときに、トポロジ内に解除対象ポートが存在する場合に、スリープ解除パケットSLを生成する。そして、スリープ解除パケット送信回路81は、生成したスリープ解除パケットSLを解除対象ポートに送信する。具体的には、スリープ解除パケット送信回路81は、スリープ解除パケットSLとしてレジューム(Resume)パケットを生成し、そのレジュームパケットを全てのポートに送信する。あるいは、スリープ解除パケット送信回路81は、リジューム処理(復帰処理)させるためのリモートコマンドパケットを解除対象ポートに送信する。
なお、ノードB,Cが備えるインターフェース回路10B,10Cは、スリープ解除回路50を備えていないこと以外はインターフェース回路10Aと同様の構成であるため、ここでは説明を省略する。
次に、このように構成された制御ノードAのスリープ解除回路50によるスリープステートST4の解除方法について図6〜図8にしたがって説明する。図6は、ネットワークシステムの接続状態及び各ポートのレジスタ値を示し、図7及び図8は、ネットワークシステムの接続状態が図6のように変化したときのスリープ解除回路50の動作を示すフローチャートである。
まず、解除対象ポート(ループ)の有無を判断するときのスリープ解除回路50(ループ検出回路60)の動作について図6及び図7にしたがって説明する。
図6(a)は、本実施形態のネットワークシステムの初期状態を示す。すなわち、図6(a)のトポロジは、ノードAのポートP1AとノードBのポートP1Bとがバスケーブル1aによって接続され、ノードAのポートP2AとノードCのポートP2Cとがバスケーブル1bによって接続されている。なお、ノードBのポートP2BとノードCのポートP1Cとは、バスケーブルによって接続されていない。この初期状態のときに、ループ検出回路60は、解除対象ポート(ループ)の有無を示すループフラグを「0」に初期設定する(図7のステップS1)。そして、この初期状態から、図6(b)に示すように、ノードBのポートP2BとノードCのポートP1Cとがバスケーブル1cによって接続されると、ループ検出回路60は、ステートマシン35a,35bからループテストパケットが受信されるまで待つ(ステップS2)。ループ検出回路60は、ループテストパケットを受信すると、ループテストが終了するまで(所定時間が経過するまで)待つ(ステップS3)。このときのループテストについて以下に説明する。
上述のように、ノードBのポートP2BとノードCのポートP1Cとがバスケーブル1cによって接続され、スピードネゴシエーションが正常に終了すると、これらポートP2B,P1CがディスコネクトステートST1からアンテストステートST2に遷移する。すると、バスケーブルが最後に接続されたノードB,Cは、ネットワークシステムがループを構築していないか確認するためのループテストを実行する。このループテストは、所定のノード(例えばアービトレーションに勝ったノード)からループテストパケットが出力され、そのループテストパケットが再びそのノードに戻ってきたときに、ループが形成されていると判断するテストである。
すなわち、所定のノードBのループテスト処理回路40は、ループテストパケットを生成するための命令信号を一方のステートマシン(具体的には、最後に物理的に接続されたポートP2B以外のポートP1Bに対応するステートマシン35a)に出力する。このステートマシン35aはその命令信号を生成回路32aに出力し、生成回路32aは、入力された命令信号に基づいてループテストパケットを生成して第1ポートP1BからノードAの第1ポートP1Aに送信する。
ノードAの第1ポートP1Aは、受信したループテストパケットをステートマシン35aに出力する。ステートマシン35aは、他のポートP2Aにバスケーブルが接続されていることから、入力されたループテストパケットを他方のステートマシン35bに出力する。なお、このとき、ステートマシン35aは、受信したループテストパケットをスリープ解除回路50に出力する。これにより、ループ検出回路60は、ループテストパケットを受信する(上記ステップS2でYES)。そして、ステートマシン35bは、入力されたループテストパケットを第2ポートP2AからノードCの第2ポートP2Cに送信する。
ノードCの第2ポートP2Cは、受信したループテストパケットをステートマシン35bに出力する。ステートマシン35bは、他のポートP1Cにバスケーブルが接続されていることから、入力されたループテストパケットを他方のステートマシン35aに出力する。ステートマシン35aは、そのループテストパケットを第1ポートP1CからノードBの第2ポートP2Bに送信する。
ノードBの第2ポートP2Bは、受信したループテストパケットを、解析回路31bに出力する。ループテストパケットの送信を開始したノードBにおける解析回路31bでは、自ノードAが送信したループテストパケットと受信したループテストパケットとが等しいか否かを判定する。そして、ノードBは以上説明した処理を一定回数繰り返し、本例のように、送信したループテストパケットと受信したループテストパケットとが所定回数以上等しくなる場合には、ループ検出を示す信号が解析回路31bからステートマシン35bに出力される。このループ検出を示す信号に応答して、ノードBのステートマシン35bは、ノードBの第2ポートP2Bをループ・ディスエーブルステートST3に遷移させ、さらにスリープステートST4に遷移させる。このとき、ノードBのポート監視回路33bは、レジスタ34bのCビット及びSビットを共に「1」に設定する。これに伴って、ノードCのステートマシン35aは、ノードCの第1ポートP1Cをループ・ディスエーブルステートST3に遷移させ、さらにスリープステートST4に遷移させる。また、ノードCのポート監視回路33aは、レジスタ34aのCビット及びSビットを共に「1」に設定する。これによって、ノードBのポートP2B及びノードCのポートP1CがスリープステートST4に遷移されて論理的に切断されるため、図6(b)に示すネットワークシステムは、デイジーチェーン型のトポロジを形成していることに相当する。
なお、ノードBの解析回路31bは、送信したループテストパケットと受信したループテストパケットとが等しくない場合、あるいはループテストを開始してから所定時間経過してもループテストパケットを受信しない場合には、ループ非検出を示す信号をステートマシン35bに出力する。
このようなループテストが終了すると(ステップS3でYES)、ループ検出回路60は、全ノードA,B,Cの全ポートにおけるCビット及びSビットを読み出す(ステップS4)。具体的には、ループ検出回路60の外部レジスタ読み出し回路61は、ループテストが終了してから生成したリモートアクセスパケットを全ての他ノードB,Cに送信する。すると、各ノードB,Cから応答パケットであるリモートリプライパケットがノードAの受信パケット判定回路62に入力される。受信パケット判定回路62は、受信したリモートリプライパケットから全ての他ノードB,Cの全ポートのCビット及びSビットを取得し、取得したレジスタ値をレジスタ値判定回路64に出力する。また、レジスタ値判定回路64は、自ノードAのポートP1A,P2AにおけるCビット及びSビットをレジスタ34a,34bから読み出す。これにより、全ノードA〜Cの全ポートのレジスタ値(図6(b)参照)が読み出される。
次に、ループ検出回路60は、パワーマネージャ(ここでは、自ノードA)が中断処理によってスリープステートST4に遷移させたポートが存在するか否かを判定する(ステップS5)。すなわち、レジスタ値判定回路64は、コマンド判定回路63から第3検出信号D3が入力されているか否かを判定する。そして、レジスタ値判定回路64は、第3検出信号D3が入力されていない場合には、ネットワークシステム内に上記ポートが存在すると判断し(ステップS5でNO)、ステップS2に戻る。一方、本例のように、中断処理が行われておらず第3検出信号D3が入力されている場合には、レジスタ値判定回路64は、ネットワークシステム内に上記ポートが存在しないと判断し(ステップS5でYES)、ステップS6に移る。
続いて、ステップS6において、ループ検出回路60は、上記ステップS4で読み出した全ポートのレジスタ値に基づいて、Cビット及びSビットが共に「1」のポートが存在するか否かを判定する。すなわち、レジスタ値判定回路64は、このステップS6と上記ステップS5とにおいて、ループ検出によってスリープステートST4に遷移された解除対象ポート(ループ)が存在するか否かを判定する。レジスタ値判定回路64は、図6(b)のように、Cビット及びSビットが共に「1」のポートP2B,P1Cが存在する場合には(ステップS6でYES)、上記解除対象ポートが存在すると判断する。そして、レジスタ値判定回路64は、ループフラグを「1」に設定し、そのループフラグを上記第1検出信号D1としてスリープ解除制御回路80に出力する(ステップS7)。
一方、レジスタ値判定回路64は、図6(a)の初期状態のように、Cビット及びSビットが共に「1」のポートがない場合には(ステップS6でNO)、上記解除対象ポートが存在しないと判断する。そして、レジスタ値判定回路64は、ループフラグを「0」に設定する(ステップS8)。
このようにループフラグが「1」あるいは「0」に設定されると、ステップS2に戻る。そして、ループテストが実施されるたびに上記ステップS3〜S8の各種処理が繰り返し実行される。
次に、このように検出した解除対象ポートのスリープステートST4を解除するときのスリープ解除回路50の動作を図6及び図8にしたがって説明する。
今、図6(b)の状態から図6(c)に示すように、ループを形成するバスケーブル1a〜1cのうち、論理的に切断されたバスケーブル1c以外のバスケーブル1bが何らかの原因によって物理的に切断される。すると、バスリセットが発生する。このようなバスリセットが検出されると(図8のステップS10でYES)、スリープ解除回路50は、前回のバスリセットプロセス(ここでは、図6(b)のトポロジ形成時に発生したバスリセットプロセス)のときに取得したノード番号(ノード数)をラスト・ノード番号に設定する(ステップS11)。
次に、スリープ解除回路50(トポロジ記憶回路71)は、トポロジ内のノードからセルフIDパケットを読み出す(ステップS12)。そして、トポロジ記憶回路71は、読み出したセルフIDパケットの数からトポロジ内のノード数を取得し、そのノード数をノード番号に設定する(ステップS13)。ここで、図6(c)では、自ノードAとノードBのみによってトポロジが形成されているため、トポロジ記憶回路71は、ノードBのみからセルフIDパケットを受信し、トポロジ中のノード数が2つであると判断する。このため、ノード番号が「2」に設定される。なお、図6(b)のトポロジ形成時に発生したバスリセットプロセスでは、スリープ解除回路50は、ノードB,CからセルフIDパケットを受信し、トポロジ中のノード数が3つであると判断する。このため、上記ステップS11において、ラスト・ノード番号が「3」に設定される。
続いて、ステップS14において、スリープ解除制御回路80は、ラスト・ノード番号よりもノード番号が小さいか否かを判定する。具体的には、トポロジ変化検出回路72は、本例のように、ラスト・ノード番号(「3」)よりもノード番号(「2」)が小さいときには、物理的な切断が発生してトポロジに変化が起きた可能性があると判断し、第2検出信号D2をスリープ解除制御回路80に出力する。したがって、スリープ解除制御回路80は、トポロジ変化検出回路72から第2検出信号が入力されると、ラスト・ノード番号よりもノード番号が小さいと判定する(ステップS16でYES)。
そして、さらにスリープ解除制御回路80は、レジスタ値判定回路64から入力されるループフラグが「1」であるか否かを判定する(ステップS15)。スリープ解除制御回路80は、本例のように、上記ステップS7でループフラグが「1」に設定されているときには(ステップS15でYES)、上記解除対象ポート(ここでは、ポートP2B,P1C)が存在すると判断する。このように、バスリセット発生後にトポロジが変化したときに、解除対象ポートが存在すると、スリープ解除パケット送信回路81は、上記解除対象ポートのスリープステートST4を解除するためにスリープ解除パケットSLを送信する(ステップS16)。ここで、このスリープ解除パケットSLは、例えば全ポート(ここでは、ポートP1A,P2A,P1B,P2B)に送信されるリジュームパケットや解除対象ポート(ここでは、ノードBの第2ポートP2B)のみに送信されるリモートコマンドパケットである。いずれの場合においても、ノードBの第2ポートP2Bに対応するステートマシン35bがスリープ解除パケットSLを受信することによって(図4の遷移条件T12)、上記ポートP2BがスリープステートST4からディスコネクトステートST1に遷移される。すると、そのポートP2Bからトーン信号がバスケーブル1cを介してノードCの第1ポートP1Cに送信される。このノードCの第1ポートP1Cは、ノードBの第2ポートP2Bからのトーン信号を受信することで(図4の遷移条件T12)、スリープステートST4からディスコネクトステートST1に遷移される。これにより、図6(d)のように、ループ検出によってスリープステートST4に遷移されたポートP2B,P1CをディスコネクトステートST1に遷移させることができる。この後、これらポートP2B,P1Cは、スピードネゴシエーションなどが正常に終了し、さらにループが検出されないと判断されると、アクティブステートST5に遷移される。この結果、ノードA,B,Cによってデイジーチェーン型のトポロジが形成されることになる。このように、バスリセット発生後にトポロジの変化が検出されると、ループ検出によってスリープステートST4に遷移されたポートP2BとポートP1Cとが自動的に論理的に再接続される。この結果、従来のようにノードCがノードA,Bから切り離されることを抑制することができる。
なお、ステップS14においてノード番号がラスト・ノード番号以上のとき、もしくはステップS15においてループフラグが「0」であるときには、スリープ解除制御回路80は、スリープ解除パケットSLを送信する必要がないと判断し、ステップS10に戻る。
以上説明した本実施形態によれば、以下の効果を奏することができる。
(1)制御ノードAに、バスリセット発生後にトポロジが変化したことを検出したときに、ループ検出によってスリープステートST4に遷移されたポートのスリープ状態を解除するためのスリープ解除パケットSLを生成するスリープ解除回路50を設けた。このスリープ解除回路50から送信されるスリープ解除パケットSLを受信することによって、ステートマシン35a,35bを、スリープステートST4からディスコネクトステートST1に遷移させることができる。ディスコネクトステートST1に遷移されれば、既存の遷移条件T1によってアンテストステートST2に遷移されて、論理的な切断を解除することができる。したがって、電源を切るなどしてポート状態を初期化しなくとも、一旦スリープステートST4に遷移されたステートマシン(ポート)を、論理的な切断を解除したアンテストステートST2に遷移させて、自動的に論理的に再接続することができる。このため、例えばループを形成するバスケーブルが何らかの原因によって切断された場合には、その切断によって生じるトポロジの変化(ノード数の減少)が検出され、スリープ解除回路50から送信されるスリープ解除信号によって解除対象ポートのスリープステートST4が解除される。これにより、その解除対象ポートの論理的な切断が自動的に解除され、そのポート間(本例では、ポートP2B,P1C)が論理的に接続されることになる。この結果、論理的な切断によって所望のノードから切り離されるノードが発生することを抑制できるため、ループ接続されたバスケーブルが物理的に切断されたときのフェールセーフを実現することができる。
(2)スリープステートST4のときに、スリープ解除回路50から送信されるスリープ解除パケットSLを受信した場合に(遷移条件T12)、ディスコネクトステートST1に遷移させる条件を追加した。但し、このスリープステートST4からディスコネクトステートST1に遷移させる遷移条件自体は、IDB1394規格に元々存在する。このため、本実施形態では、IDB1394規格に存在しない全く新たな遷移条件及びステートを追加することなく、スリープステートST4から他のステートに遷移させることができる。これによって、既存のインターフェース回路(IDB1394規格のインターフェース回路)のステートマシンとの互換性を維持することができるため、既存のインターフェース回路と接続してデータの送受信を行うことができる。
(3)パワーマネージャが中断処理によってスリープステートST4に遷移させたポートを記憶し、さらにCビット及びSビットを取得するようにした。そして、中断処理によってスリープステートST4に遷移されたポートが存在せず、且つCビット及びSビットが共に「1」であるポートがトポロジ内に存在することを検出することで、ループ検出によってスリープステートST4に遷移されたポートを確実に検出することができる。これによって、ループ検出によってスリープステートST4に遷移されたポートのスリープステートのみを確実に解除することができる。
(4)スリープステートST4のときに、リジュームパケットやリモートコマンドパケット(スリープ解除パケットSL)の受信によって、スリープステートST4からディスコネクトステートST1に遷移させるようにした。これにより、サスペンドステートST6からアクティブステートST5に復帰させるときにIDB1394規格で元々使用されているリジュームパケットやリモートコマンドパケットを利用して、スリープステートST4を解除することができる。
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記実施形態におけるコマンド判定回路63を省略してもよい。また、図7のステップS5を省略してもよい。
・上記実施形態では、ループ検出によってスリープステートST4に遷移されたポートのスリープステートST4のみを解除するようにしたが、全てのスリープステートST4を一旦解除するようにしてもよい。すなわち、Sビットのみによって解除対象ポートの有無を検出するようにしてもよい。
・上記実施形態では、ノードAが、通信状態等を制御する制御ノードと、電力管理を行うパワーマネージャとの双方を担うようにした。これに限らず、制御ノードとパワーマネージャとを別々のノードが担うようにしてもよい。この場合、パワーマネージャとなるノードに、コマンド判定回路63を備えるようにし、制御ノードAに備えられたレジスタ値判定回路64は、パワーマネージャのコマンド判定回路63から第3検出信号D3を受信するようにすればよい。
・上記実施形態では、制御ノードとなるノードAのみにスリープ解除回路50を備えるようにしたが、ノードB,Cにもスリープ解除回路50を設けるようにしてもよい。
・上記実施形態では、セルフIDパケットの数からトポロジ内のノード数を検出するようにしたが、トポロジ内のノード数を検出できればとくにこれに制限されない。
・上記実施形態では、トポロジ内のノード数の変化を検出することでトポロジの変化を検出するようにしたが、トポロジの変化を検出できればとくにこれに制限されない。
・上記実施形態における外部レジスタ読み出し回路61では、ループテストパケットの受信後、所定時間待つことによってループテストの終了を確認したが、これに制限されない。例えばループテストの終了を知らせる信号を受信することによってループテストの終了を確認するようにしてもよい。
・上記各実施形態のループテストに特に制限されない。例えば、2種類のループテスト信号を用いてループテストを実行してもよい。
・上記実施形態におけるノードの数に特に制限はない。また、ループを形成するノード数についても、特に制限はなく、4つ以上であってもよい。
・上記各実施形態では、1つのインターフェース回路に2つのポートを設けたが、ポートを1つあるいは3つ以上設けるようにしてもよい。
・上記各実施形態では、ステートマシン35a,35bのステートが遷移条件に基づいて遷移するようにしていたが、例えばステートマシン35a,35bから出力されるステート遷移信号によって、ポートのステートを直接遷移させるようにしてもよい。
・上記実施形態では、解析回路31a,31bと、生成回路32a,32bと、ポート監視回路33a,33bと、レジスタ34a,34bとをポート毎に別々に設けるようにしたが、全てのポートに対して共通に設けるようにしてもよい。
以上の様々な実施の形態をまとめると、以下のようになる。
(付記1)
バスケーブルで接続された他ノードとの間でデータの送受信を行う自ノードに備えられたインターフェース装置であって、
前記バスケーブルによって他ノードのポートと接続されるポートと、
前記自ノードのポート毎に対応して設けられ、トポロジ中に当該ポートによるループが検出されると、ループ・ディスエーブルステートへ遷移させて当該ポートを論理的に切断された状態にし、さらにスリープステートに遷移させるステートマシンと、
前記トポロジの変化を検出したときに、前記スリープステートであるポートのスリープステートを解除するためのスリープ解除信号を送信するスリープ解除回路と、
を備えることを特徴とするインターフェース装置。
(付記2)
前記スリープ解除回路は、
前記トポロジ内の全ノードの物理層レジスタ内に格納された、物理的な接続の有無を示すコネクトビット及び前記スリープステートを通知するスリープビットを全ポート分読み出し、これらコネクトビット及びスリープビットに基づいて、前記スリープステートのポートが存在することを検出したときに第1検出信号を生成する検出回路と、
前記トポロジ内のノード数がバスリセットの発生前後で減少したことを検出したときに第2検出信号を生成するトポロジ監視回路と、
前記第1検出信号及び前記第2検出信号に応答して、前記スリープ解除信号を送信するスリープ解除信号送信回路と、
を備えることを特徴とする付記1に記載のインターフェース装置。
(付記3)
前記ステートマシンは、前記スリープステートのときに、前記スリープ解除信号を受信すると、前記スリープステートからディスコネクトステートに遷移させることを特徴とする付記1又は2に記載のインターフェース装置。
(付記4)
前記検出回路は、前記コネクトビットが物理的に接続されていることを示す値で、且つ前記スリープビットがスリープステートであることを示す値を有するポートがトポロジ内に存在するときに、前記第1検出信号を生成することを特徴とする付記2又は3に記載のインターフェース装置。
(付記5)
前記検出回路は、前記トポロジ内に中断処理によってスリープステートに遷移されたポートが存在せず、且つ前記コネクトビットが物理的に接続されていることを示す値で、前記スリープビットがスリープステートであることを示す値を有するポートがトポロジ内に存在するときに、前記第1検出信号を生成することを特徴とする付記2又は3に記載のインターフェース装置。
(付記6)
前記検出回路は、
前記トポロジ内の全ての他ノードの全ポートに対応する前記コネクトビット及び前記スリープビットを読み出すためのリモートアクセスパケットを送信する読み出し回路と、
前記アクセスパケットに対する応答パケットを前記他ノードから受信し、該受信した応答パケットから前記コネクトビット及び前記スリープビットを取得する受信回路と、
を備えることを特徴とする付記2〜5のいずれか1つに記載のインターフェース装置。
(付記7)
前記トポロジ監視回路は、
前記トポロジ内で発生するバスリセットプロセスにおいて前記他ノードから送信されるセルフIDパケットの数に基づいて、前記トポロジ内のノード数を検出し、そのノード数が前記バスリセットプロセスの前後で減少したときに、前記第2検出信号を生成することを特徴とする付記2〜6のいずれか1つに記載のインターフェース装置。
(付記8)
前記スリープ解除信号は、前記トポロジ内の全ポートに送信されるリジュームパケット、あるいは前記スリープステートが解除される対象のポートのみに送信されるリモートコマンドパケットであることを特徴とする付記1〜7のいずれか1つに記載のインターフェース装置。
(付記9)
複数のノードがポートにてループ接続されたときに、ループを切断するように論理的に接続されたポートを、ループ・ディスエーブルステートに遷移させ、さらにスリープステートに遷移させるトポロジ構築方法であって、
前記スリープステートに遷移されたポートが存在するトポロジにおいて、該トポロジが変化したときにスリープ解除回路から送信されるスリープ解除信号に応答して、前記スリープステートのポートをディスコネクトステートに遷移させることを特徴とするトポロジ構築方法。
(付記10)
前記スリープ解除信号は、前記トポロジ内の全ポートに送信されるリジュームパケット、あるいは前記スリープステートが解除される対象のポートのみに送信されるリモートコマンドパケットであることを特徴とする付記9に記載のトポロジ構築方法。
インターフェース回路を示すブロック図。 スリープ解除回路を示すブロック図。 ネットワークシステムを示すブロック図。 状態遷移を説明するための説明図。 Cビット及びSビットを説明するための説明図。 (a)〜(d)は、ネットワークシステムの接続状態の遷移を説明するための説明図。 スリープステートの解除方法を説明するためのフローチャート。 スリープステートの解除方法を説明するためのフローチャート。 (a)、(b)は、従来のネットワークシステムを示すブロック図。
符号の説明
A,B,C ノード
P1A,P2A,P1B,P2C ポート
P2B,P1C ポート(スリープステートに遷移されたポート)
10A,10B,10C インターフェース回路(インターフェース装置)
1a,1b,1c バスケーブル
34a,34b レジスタ(物理層レジスタ)
35a,35b ステートマシン
50 スリープ解除回路
60 ループ検出回路(検出回路)
61 外部レジスタ読み出し回路(読み出し回路)
62 受信パケット判定回路(受信回路)
70 トポロジ監視回路
80 スリープ解除制御回路
81 スリープ解除パケット送信回路(スリープ解除信号送信回路)

Claims (8)

  1. バスケーブルで接続された他ノードとの間でデータの送受信を行う自ノードに備えられたインターフェース装置であって、
    前記バスケーブルによって他ノードのポートと接続されるポートと、
    前記自ノードのポート毎に対応して設けられ、トポロジ中に当該ポートによるループが検出されると、ループ・ディスエーブルステートへ遷移させて当該ポートを論理的に切断された状態にし、さらにスリープステートに遷移させるステートマシンと、
    前記トポロジの変化を検出したときに、前記スリープステートであるポートのスリープステートを解除するためのスリープ解除信号を送信するスリープ解除回路と、
    を備えることを特徴とするインターフェース装置。
  2. 前記スリープ解除回路は、
    前記トポロジ内の全ノードの物理層レジスタ内に格納された、物理的な接続の有無を示すコネクトビット及び前記スリープステートを通知するスリープビットを全ポート分読み出し、これらコネクトビット及びスリープビットに基づいて、前記スリープステートのポートが存在することを検出したときに第1検出信号を生成する検出回路と、
    前記トポロジ内のノード数がバスリセットの発生前後で減少したことを検出したときに第2検出信号を生成するトポロジ監視回路と、
    前記第1検出信号及び前記第2検出信号に応答して、前記スリープ解除信号を送信するスリープ解除信号送信回路と、
    を備えることを特徴とする請求項1に記載のインターフェース装置。
  3. 前記ステートマシンは、前記スリープステートのときに、前記スリープ解除信号を受信すると、前記スリープステートからディスコネクトステートに遷移させることを特徴とする請求項1又は2に記載のインターフェース装置。
  4. 前記検出回路は、前記コネクトビットが物理的に接続されていることを示す値で、且つ前記スリープビットがスリープステートであることを示す値を有するポートがトポロジ内に存在するときに、前記第1検出信号を生成することを特徴とする請求項2又は3に記載のインターフェース装置。
  5. 前記検出回路は、前記トポロジ内に中断処理によってスリープステートに遷移されたポートが存在せず、且つ前記コネクトビットが物理的に接続されていることを示す値で、前記スリープビットがスリープステートであることを示す値を有するポートがトポロジ内に存在するときに、前記第1検出信号を生成することを特徴とする請求項2又は3に記載のインターフェース装置。
  6. 前記検出回路は、
    前記トポロジ内の全ての他ノードの全ポートに対応する前記コネクトビット及び前記スリープビットを読み出すためのリモートアクセスパケットを送信する読み出し回路と、
    前記アクセスパケットに対する応答パケットを前記他ノードから受信し、該受信した応答パケットから前記コネクトビット及び前記スリープビットを取得する受信回路と、
    を備えることを特徴とする請求項2〜5のいずれか1つに記載のインターフェース装置。
  7. 複数のノードがポートにてループ接続されたときに、ループを切断するように論理的に接続されたポートを、ループ・ディスエーブルステートに遷移させ、さらにスリープステートに遷移させるトポロジ構築方法であって、
    前記スリープステートに遷移されたポートが存在するトポロジにおいて、該トポロジが変化したときにスリープ解除回路から送信されるスリープ解除信号に応答して、前記スリープステートのポートをディスコネクトステートに遷移させることを特徴とするトポロジ構築方法。
  8. 前記スリープ解除信号は、前記トポロジ内の全ポートに送信されるリジュームパケット、あるいは前記スリープステートが解除される対象のポートのみに送信されるリモートコマンドパケットであることを特徴とする請求項7に記載のトポロジ構築方法。
JP2008217724A 2008-08-27 2008-08-27 インターフェース装置及びトポロジ構築方法 Pending JP2010056716A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008217724A JP2010056716A (ja) 2008-08-27 2008-08-27 インターフェース装置及びトポロジ構築方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008217724A JP2010056716A (ja) 2008-08-27 2008-08-27 インターフェース装置及びトポロジ構築方法

Publications (1)

Publication Number Publication Date
JP2010056716A true JP2010056716A (ja) 2010-03-11

Family

ID=42072200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008217724A Pending JP2010056716A (ja) 2008-08-27 2008-08-27 インターフェース装置及びトポロジ構築方法

Country Status (1)

Country Link
JP (1) JP2010056716A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110391957A (zh) * 2019-07-26 2019-10-29 新华三技术有限公司合肥分公司 环路检测方法和装置
CN113194526A (zh) * 2021-04-27 2021-07-30 山东仁科测控技术有限公司 一种低功耗的无线电通信方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110391957A (zh) * 2019-07-26 2019-10-29 新华三技术有限公司合肥分公司 环路检测方法和装置
CN113194526A (zh) * 2021-04-27 2021-07-30 山东仁科测控技术有限公司 一种低功耗的无线电通信方法

Similar Documents

Publication Publication Date Title
JP4768565B2 (ja) インターフェース装置及びトポロジ構築方法
US9330045B2 (en) Controller area network (CAN) device and method for controlling CAN traffic
US8665700B2 (en) Fault detection and mitigation for in-vehicle LAN network management
JP5295662B2 (ja) Cec通信装置、それを用いた映像音響装置およびcec通信方法
JP6957549B2 (ja) 動的ヒステリシス回路
JP2013519946A (ja) 電気測定に基づく装置の物理的接続状態の判定
JP2014232997A (ja) 通信システム
US7681051B2 (en) Transitioning of a port in a communications system from an active state to a standby state
US20100257400A1 (en) Network loop healing apparatus and methods
JP2010081152A (ja) 通信装置および通信システム並びに通信方法、canノード
JP2010056716A (ja) インターフェース装置及びトポロジ構築方法
JP2004064257A (ja) データ転送制御システム、電子機器、プログラム及びデータ転送制御方法
JP2015154189A (ja) 通信システム、ゲートウェイ装置及び通信ノード並びに通信制御方法
JP2008283492A (ja) ゲートウェイ装置、車載通信システム
JP5098984B2 (ja) インターフェース装置及び再同期化方法
JP2006020224A (ja) 通信制御装置、電子機器および通信制御方法
JP5711420B2 (ja) イーサネットノードの検出フレームタイムアウト時間の設定方法及びシステム
US8525936B2 (en) Communication apparatus, television receiver, video signal processing apparatus, communication method, program, and integrated circuit
JP4992489B2 (ja) インターフェース装置及び接続検出方法
JP5509357B2 (ja) 受信装置及びパケット通信方法
JP5729129B2 (ja) 通信装置、半導体装置、装置idの設定方法
JP4252611B2 (ja) 通信監視装置、通信監視方法、通信監視プログラムおよび記録媒体
JP6241256B2 (ja) 電子機器、制御装置および通信方法
WO2024090260A1 (ja) 車載中継装置、スリープ制御方法およびスリープ制御プログラム
JP5374025B2 (ja) 差動型伝送装置