≪実施の形態≫
以下、本発明の実施の形態について、図面を参照しつつ説明する。
<通信システムのシステム構成>
図1は、本発明の実施の形態に係る通信システムのシステム構成図である。
図1の通信システムには、4つの通信装置100a〜100dが含まれている。なお、図1などに記載された“0”〜“4”は通信装置100a〜100dに割り当てられるデバイスIDを示している。
通信装置100a〜100dは、プロトコル処理部101a〜101dと、送受信処理部102a〜102dとを備える。本実施の形態では、通信装置100aをマスタの通信装置(第1の通信装置)とする。また、通信装置100b〜100dをマスタ以外の通信装置(第2の通信装置)であるとする。各通信装置100a〜100dのプロトコル処理部101a〜101dは論理層で動作するブロックである。各通信装置100a〜100dの送受信処理部102a〜102dは、物理層で動作するブロックであり、シリアル送信部(Tx)103a〜103d及びシリアル受信部(Rx)104a〜104dなどを有する。各通信装置100a〜100dにおけるシリアル送信部103a〜103dとシリアル受信部104a〜104dとがシリアルリンク105によってリング状に順次接続されることにより、リングトポロジの通信システムが形成されている。但し、シリアルリンク105では、図1に“順方向”として示す方向にシリアル信号が伝送するものとする。
プロトコル処理部101a〜101d及び送受信処理部102a〜102dの詳細については後述するものとし、ここではそれらの概要を説明する。
プロトコル処理部101a〜101dは、所定のプロトコルに基づいて他の通信装置からの受信パケットの解釈や他の通信装置に対して出力する送信パケットの生成を行う。また、送受信処理部102a〜102dは、リング前段の通信装置から出力されたシリアル信号をシリアルリンク105を介して受信し、シリアル信号を受信パケットに変換し、受信パケットをプロトコル処理部101a〜101dへ出力する。また、送受信処理部102a〜102dは、プロトコル処理部101a〜101dから入力された送信パケットをシリアル信号に変換し、シリアル信号をシリアルリンク105を介してリング後段の通信装置へ送信する。
ここで、通信装置100a〜100d間で交換されるパケットは宛先情報を含む。プロトコル処理部101a〜101dは、受信パケットの宛先情報が他の通信装置宛を示す場合、その受信パケットを送信パケットとしてリング後段の通信装置に出力する中継処理を行う。このように、発信元の通信装置と宛先の通信装置との間の通信装置が中継局となることで、マスタの通信装置と任意のスレーブの通信装置間でのパケット交換が実現される。
<パケットのパケットフォーマット>
以下、図1の通信装置100a〜100d間で交換されるパケットのパケットフォーマットについて図2(a)〜図2(d)を参照しつつ説明する。
図2(a)は、図1の通信装置100a〜100d間で交換されるパケットのパケットフォーマットの一例を示す図である。図2(a)に示すように、パケットフォーマットは、ヘッダ(HEADER)201とペイロード(PAYLOAD)202とを含む。
ヘッダ201は、パケットタイプ(TYPE)211と、上記宛先情報としての宛先ID(DID:Destination ID)212と、発信元ID(SID:Source ID)213と、トランザクションID(TID:Transaction ID)214とを含む。
パケットタイプ211は、パケットの種類を示す。パケットとして、データ転送の開始要求としてマスタが発行するコマンドパケット(CMD)、コマンドパケットに対する応答としてコマンドパケットの宛先のスレーブによって発行されるレスポンスパケット(RES)、マスタとスレーブ間で転送される実データを含むデータパケット(DAT)、シリアルリンクを介して他の通信装置にステータスを通知するために用いられるメッセージパケット等がある。
宛先ID212及び発信元ID213は、各通信装置に割り当てられたデバイスIDなどにより指定し、リング接続できる通信装置の総数は宛先ID212及び発信元ID213のフィールド長により制約される。なお、図2(a)の宛先ID212及び発信元ID213のフィールド長を何れも4ビットとすると、デバイスIDとして“0”〜“15”までの値が利用可能であり、ここでは、マスタの通信装置100aのデバイスIDを“0”とし、“15”は通信システム内の全ての通信装置を宛先とするブロードキャストを行うための特別なデバイスIDとして用いるものとする。また、マスタ以外の通信装置100b〜100dのデバイスIDは初期化時にユニークな値が割り当てられるものとする。
一組のマスタとスレーブ間で複数のコマンドを発行(コマンドキューイング)し、同時に複数のデータ転送(トランザクション)を実行する場合、宛先ID212と発信元ID213とからではトランザクションを識別できない。このため、トランザクションID214が必要となる。
ペイロード202は、パケットタイプ211に依存した異なるフィールドを有する。以下、コマンドパケット、レスポンスパケット、及びデータパケットの夫々のペイロードの概要を説明する。
図2(b)は、コマンドパケットのペイロードの一例を示す図である。図2(b)に示すように、コマンドパケットのペイロードは、データ転送の読み出し(Read)と書き込み(Write)のデータ転送種別を示すR/Wフラグ221と、データ転送開始アドレス(Addr)222と、データ転送サイズ(Size)223等を含む。図2(c)は、レスポンスパケットのペイロードの一例を示す図である。図2(c)に示すように、レスポンスパケットのペイロードは、コマンド受付の成否を示すNACK(Negative Acknowledge)フラグ231と、コマンドエラー時のエラーコード(Error)232等を含む。図2(d)は、データパケットのペイロードの一例を示す図である。図2(d)に示すように、データパケットのペイロードは、データ転送の実データ(Data)241等を含む。
<その他のパケットのペイロードのペイロードフォーマット>
以下、図1の通信装置100a〜100d間で交換されるデバイス列挙パケット、フロー制御パケット、ポーリングパケットのペイロードフォーマットについて図3を参照しつつ説明する。
図3(a)は図1の通信装置100a〜100d間で交換されるデバイス列挙パケットのペイロードの一例を示す図である。デバイス列挙パケットは、パケットタイプ211におけるメッセージパケットとして定義されるパケットである。デバイス列挙パケットは、マスタの通信装置がシリアルリンクに接続されているマスタ以外の通信装置の各々にユニークなデバイスIDを割り当て、シリアルリンクに接続されているマスタ以外の通信装置の数を取得するために用いられる。デバイス列挙パケットのペイロードは、図3(a)に示すように、通信装置が自装置のデバイスIDを書き込むためのデバイスIDフィールド(Device ID)261を含む。
図3(b)は図1の通信装置100a〜100d間で交換されるフロー制御パケットのペイロードの一例を示す図である。フロー制御パケットは、所定のフロー制御条件が満たされた場合にフロー制御を行うために用いられるものであり、本実施の形態では更に通信装置をループバックモードへ遷移させるためのループバックパケット、或いは通信装置をスタンバイモードへ遷移させるためのスタンバイパケットとして用いられる。
フロー制御パケットのペイロードは、図3(b)に示すように、転送可能なデータパケット数を書き込むフロー制御サイズ(FCSize)271と、ループバックフラグ(Lpbk)272とを含む。ここで、コマンドパケットで指定したデータ転送サイズ223のデータは、所定のブロックサイズ単位でデータパケットに分割されて転送されることになる。そして、フロー制御はそれら複数のデータパケットを含むフロー制御サイズ271毎に行われる。ループバックフラグ272は、フロー制御パケットの発信元の通信装置と宛先の通信装置との間の通信装置をループバックモードに遷移させるか遷移させないかを制御し、フロー制御パケットは、ループバックフラグ272が設定されている(フラグオン)とループバックパケット、ループバックフラグ272が設定されていない(フラグオフ)とスタンバイパケットとして扱われる。
図3(c)は図1の通信装置間で交換されるポーリングパケットのペイロードの一例を示す図である。ポーリングパケットは、通信装置の通信の可否等を示すステータス通知のために用いられるものであり、本実施の形態では更に通信装置をスタンバイモードへ遷移させるスタンバイパケットとしても用いられる。また、ポーリングパケットは、フロー制御パケットのフロー制御サイズ271で指定された数のデータパケットに係るデータ転送の後に発行される。
ポーリングパケットのペイロードは、図3(c)に示すように、コンプリーションフラグ(CPL)281とステータスフィールド(Status)282とを含む。コンプリーションフラグ281は、コマンドパケットのデータ転送サイズ223のデータ転送が完了したことを示すためのフラグである。コンプリーションフラグ281は、コマンドパケットのデータ転送サイズ223のデータ転送完了前に発行されるポーリングパケットでは設定されず(フラグオフ)、データ転送完了後に発行されるポーリングパケットでは設定される(フラグオン)。ステータスフィールド282は通信装置が自装置の通信可否等のステータスを通知するために用いられるフィールドである。
なお、上記のパケットフォーマットはシステムの規模やプロトコル等に応じて異なる構成が考えられ、フィールド長を変更したり、フィールドを削除したり、フィールドを追加したりするなど、パケットのフォーマットは必要に応じて適宜変更されてもよい。
<8B/10B方式の特殊シンボル>
以下、図1の通信装置100a〜100dが用いる8B/10B方式の特殊シンボルについて図4を参照しつつ説明する。図4は図1の通信装置100a〜100dが用いる8B/10B方式の特殊シンボルの機能割当の一例を示す図である。
8B/10B方式では、8ビットを10ビットに変換する冗長性を活かして、通常の8ビット(バイト)データを表現するDシンボルの他に制御用の特殊なKシンボルを利用できる。8B/10B方式では、Kシンボルとして12種類利用できる。図4では、“Kコード”と、“シンボル”と、“機能”と、“元データ(16進数)”と、“Current RD −”と、“Current RD +”とを対応づけて示している。元データ(16進数)は8B/10B方式に基づく符号化前の8ビットデータを示し、“Current RD −”及び“Current RD +”は8B/10B方式に基づく符号化後の10ビットデータを示す。なお、符号化前の8ビット(バイト)データを“Current RD −”及び“Current RD +”の何れかの10ビットデータに変換する手法は既知であるので、詳細は省略する。
図4では、その一部に、SOP(Start of Packet)、EOP(End of Packet)、RFLB(Return from Loopback)、COM(Comma)、SYNC(Synchronization)、EOP(End of Packet)が割り当てられている。
SOP及びEOPは、夫々、パケットの先頭及び末尾を示し、パケットの先頭及び末尾に付加され、パケットの区切りの位置を認識するために用いられる。RFLB(ループバック解除コード)は、通信装置をループバックモードから解除するために用いられる。SYNC(同期コード)は通信装置間で同期をとるために用いられる。そして、COMは、8B/10B方式のシンボル列からなるシリアルデータ内で、他の2つのシンボルのいかなる組合せからも生成されないユニークな信号パターンであるため、シリアルデータからシンボル列の区切り位置を正しく認識してパラレルデータに変換するための区切り文字として用いられる。なお、COM以外の特殊シンボルは、単独で用いられるだけでなく、区切り文字であるCOMと組み合わせたシンボルセットとして用いられても良い。
<通信装置の構成>
次に、図1の通信装置100a〜100dの構成について図5を参照しつつ説明する。図5は、図1の通信装置100a〜100d(通信装置300)の構成図である。
通信装置300は、送受信処理部301と、プロトコル処理部302と、クロックソース303とを備える。送受信処理部301は図1の送受信処理部102a〜102dに相当し、プロトコル処理部302は図1のプロトコル処理部101a〜101dに相当する。クロックソース303は、リファレンス(基準)クロックを生成するものであり、例えば、電圧制御型水晶発振器(VCXO:Voltage Controlled Xtal Oscillator)などで構成される。
[送受信処理部]
送受信処理部301は、シリアル受信部(Rx)311と、復号化部312と、符号化部313と、ループバックセレクタ314と、シリアル送信部(Tx)315と、ウェイクアップ検知部316と、スタンバイ制御部317とを備える。シリアル受信部311は図1のシリアル受信部104a〜104dに相当し、シリアル送信部315は図1のシリアル送信部103a〜103dに相当する。
シリアル受信部311は、シリアルレシーバ331と、クロックデータリカバリ(CDR:Clock Data Recovery)回路332と、シリアル/パラレル変換部(S/P変換部)333とを備える。
シリアルレシーバ331は、シリアルリンク105から入力されるシリアル信号からシリアル受信データを生成する。CDR回路332は、外部のクロックソース303から供給されるリファレンスクロックとシリアル受信データとに基づいて、データクロックの生成及びシリアル受信データの同期化を行う。S/P変換部333は、CDR回路332からのシリアル受信データのビット列から、上述したCOMシンボルのような区切り文字を検出することでシンボルの先頭ビット位置を検出し、8B/10B方式のシンボル長(10ビット幅)のパラレル受信データに変換する。S/P変換部333から出力されるパラレル受信データは、復号化部312に入力されるとともに、ループバック経路318によって分岐されてスタンバイ制御部317に入力され、スタンバイ制御部317からループバックセレクタ314に入力される。なお、以下において、ループバック経路318によって分岐されたパラレル受信データを「パラレルループバックデータ」と言うことにする。
更に、CDR回路332について説明する。CDR回路332は、PLL(Phase Looked Loop)回路336を含む。PLL回路336は、初期化時において、クロックソース303から供給されるリファレンスクロックを所望のデータクロック周波数にまで逓倍し、その周波数を維持することで、データクロックの生成を行う。一般に、リング前段の通信装置から入力されるシリアル受信データにはジッタ(時間軸方向のずれ)が含まれるので、CDR回路332は、ジッタ除去のためにデータクロックとシリアル受信データのエッジとの位相合わせを行う。
ここで、シリアル受信データとして“0”が連続し、又は、“1”が連続した場合には、CDR回路332はシリアル受信データのエッジを捉えることができない。そこで、所定期間内に必ず“0”から“1”への遷移、又は、その逆の遷移が発生するように、符号化部313は送信パケットのビット列を8B/10B方式で符号化する。これにより、“0”又は“1”が通常3ビット(最大5ビット)までしか連続せず、CDR回路332は、シリアル受信データのエッジを捉えることができ、シリアル受信データからデータクロックのエッジの情報を正しく抽出することができる。
復号化部312は、パラレル受信データを構成する10ビットのシンボルデータの夫々を、8B/10B方式の復号テーブルに従って、元の8ビット(バイト)データに復号し、受信パケットとしてプロトコル処理部302へ出力する。
符号化部313は、プロトコル処理部302から入力される送信パケットを構成する8ビット(バイト)データの夫々を8B/10B方式で10ビットのシンボルデータに符号化し、10ビットのシンボルデータによって構成されるパラレル送信データをループバックセレクタ314へ出力する。
ループバックセレクタ314は、パラレル送信データとパラレルループバックデータとの一方をスタンバイ制御部317によって制御されて選択的にシリアル送信部315へ出力する。
シリアル送信部315は、パラレル/シリアル変換部(P/S変換部)351と、シリアルドライバ352とを備える。P/S変換部351は、8B/10B方式のシンボル長(10ビット幅)のパラレル送信データ又はパラレルループバックデータをシリアル送信データ又はシリアルループバックデータに変換する。シリアルドライバ352は、P/S変換部351からのシリアル送信データ又はシリアルループバックデータからシリアル信号を生成し、シリアル信号をシリアルリンク105へ出力する。
ウェイクアップ検知部316は、リング前段の通信装置がシリアルリンクをドライブしていない電気的なアイドル状態(例えば、ハイ・インピーダンス)から、ウェイクアップ信号のドライブを開始したことを、シリアルリンク105の信号状態から検知する。ウェイクアップ信号は他の通信装置をパケットの転送可能な状態に復旧するために用いられる信号である。ここで、初期化シーケンスにおけるデータクロックの生成前にウェイクアップ信号を送信する必要があるので、ウェイクアップ信号として、低速のリファレンスクロックで遷移させたデータ、所定期間“Low”に固定したデータ、所定期間“High”に固定したデータなどを用いる。
スタンバイ制御部317は、送受信処理部301の受信処理に係るシリアル受信部311と復号化部312、及び送信処理に係る符号化部313とシリアル送信部315、並びにプロトコル処理部302全体の夫々を、アクティブ状態(稼働状態)とスタンバイ状態(停止状態)との間で遷移させる制御を行う。
また、スタンバイ制御部317は、通信装置を、例えば、受信テスト時のBER(Bit Error Rate)の計測や障害発生時の原因の特定を行うために用いられるループバックモードに遷移させ、ループバックモードを解除する制御を行う。本実施の形態では、ループバックモードは、受信テスト時のBERの計測や障害発生時の原因の特定の他に、データパケットを中継する通信装置の省電力化のためにも用いられる。
[プロトコル処理部]
プロトコル処理部302は、パケット中継部371と、コマンド処理部372と、データ転送部373とを含む。
パケット中継部371は、復号化部312からの受信パケットの宛先ID212に基づいて受信パケットの宛先判定を行う。パケット中継部371は、受信パケットの宛先ID212が他の通信装置宛を示す場合には、受信パケットを送信パケットとして符号化部313へ出力することによって、パケットの中継処理を行う。一方、パケット中継部371は、受信パケットの宛先ID212が自装置宛を示す場合には、受信パケットのパケットタイプ211に応じて、受信パケットをコマンド処理部372とデータ転送部373の何れかに振り分けて出力する。
コマンド処理部372は、コマンドパケット及びレスポンスパケットの交換に係る処理など各種処理を行うが、ここでは、コマンドパケット及びレスポンスパケットの交換に係る処理について記載する。なお、その他の処理については後述する動作フロー及び動作シーケンスにおいて説明する。
マスタのコマンド処理部372は、通信相手の通信装置(スレーブ)に対してコマンドパケットを発行し、スレーブからのレスポンスパケットの受信を待ち、レスポンスパケットを正しく受信してハンドシェークが成立したことを確認する。
マスタと通信を行う通信装置(スレーブ)のコマンド処理部372は、マスタからのコマンドパケットを受信し、通信相手のマスタに対して、コマンドパケットで指定されるデータ転送が可能であれば、NACKフラグ231をACK(Acknowledge)に設定したレスポンスパケットを発行し、ハンドシェークを成立させる。
データ転送部373は、コマンド処理部372におけるハンドシェークの結果に応じて、データパケットの読み出し(Read)と書き込み(Write)との何れかを行う。
但し、本実施の形態では、送受信処理部301のシリアル受信部311、復号化部312、符号化部313及びシリアル送信部315、並びに、プロトコル処理部302全体がスタンバイ状態(停止状態)になった通信装置300のモードを省電力のスタンバイモードとする。また、ループバックセレクタ314の出力がパラレルループバックデータであり、送受信処理部301の復号化部312及び符号化部313、並びに、プロトコル処理部302全体がスタンバイ状態(停止状態)になった通信装置300のモードを省電力のループバックモードとする。なお、スタンバイモード及びループバックモードにおいて、スタンバイ状態にするブロックを通信装置の構成等によって適宜変更してもよいことは言うまでもない。
<マスタとスレーブ間の接続>
図6は図1の通信システムにおけるマスタとスレーブ間の接続の一例を示す図である。
通信装置100cをスレーブとしたデータ転送を行う場合、マスタの通信装置100aから通信装置100bを介して通信装置100cに至るまでの経路を「ダウンリンク」DLと呼ぶことにする。また、通信装置100cから通信装置100dを介して通信装置100aに至るまでの経路を「アップリンク」ULと呼ぶことにする。
通信装置100aのコマンド処理部372はコマンドパケットを発行し、当該コマンドパケットは、ダウンリンクDLを経て通信装置100cのコマンド処理部372まで伝送される。このとき、コマンドパケットは通信装置100bのパケット中継部371で中継処理される。コマンドパケットを受信した通信装置100cのコマンド処理部372はレスポンスパケットを発行し、当該レスポンスパケットは、アップリンクULを経て通信装置100aのコマンド処理部372まで伝送される。このとき、レスポンスパケットは通信装置100dのパケット中継部371で中継処理される。
そして、コマンドパケットのR/Wフラグ221で指定されたデータ転送種別が書き込みの場合、通信装置100aのデータ転送部373はデータパケットを発行し、当該データパケットは、ダウンリンクDLを経て通信装置100cまで伝送される。このとき、データパケットは通信装置100bで中継処理される。これに対して、コマンドパケットのR/Wフラグ221で指定されたデータ転送種別が読み出しの場合、通信装置100cのデータ転送部373はデータパケットを発行し、当該データパケットは、アップリンクULを経て通信装置100aまで伝送される。このとき、データパケットは通信装置100dで中継処理される。
このように、本実施の形態の通信システムは、マスタとスレーブ間に存在する中継局(図6の場合、通信装置100b,100d)がパケットを中継することで、Point to Point接続時と同様のプロトコルでデータ転送を行うことができる。
<通信システムの動作>
以下、図1の通信システムの動作について説明する。
[通信装置の動作]
以下、図1のマスタの通信装置100aとマスタ以外の通信装置100b〜100dとの夫々の動作について図7〜図8を参照しつつ説明する。但し、図7は図1のマスタの通信装置100aの動作の流れを示すフローチャートであり、図8は図1のマスタ以外の通信装置100b〜100dの動作の流れを示すフローチャートである。なお、以下では、説明の便宜上、図7のフローチャートと図8のフローチャートとを適宜まとめて説明する。
マスタの通信装置100aはウェイクアップ処理を行い(ステップS101)、マスタ以外の通信装置100b〜100dはウェイクアップ処理を行う(ステップS201)。なお、通信装置100a〜100dが行うウェイクアップ処理の詳細は図10のステップS301において説明することとし、ここでは詳細な説明は省略する。
ステップS101、ステップS201のウェイクアップ処理が完了した後、マスタの通信装置100aはデバイス列挙処理を行い(ステップS102)、マスタ以外の通信装置100b〜100dはデバイス列挙処理を行う(ステップS202)。なお、通信装置100a〜100dが行うデバイス列挙処理の詳細は図10のステップS302において説明することとし、ここでは詳細な説明は省略する。
上記の初期化シーケンス(ステップS101〜S102)が完了した後、マスタの通信装置100aはコマンドの発行等のコマンド処理を行う(ステップS103)。
上記の初期化シーケンス(ステップS201〜S202)が完了した後、マスタ以外の通信装置100b〜100dはパケットの受信の待ち状態になる。通信装置100b〜100dはパケットを受信すると、パケット中継部371は受信パケットの宛先ID212に基づく受信パケットの宛先判定を行う(ステップS203)。
受信パケットが他の通信装置宛のパケットである場合には(S203:他装置宛)、他の通信装置宛のパケットを受信した通信装置は図9のパケット中継処理を行う(ステップS210)。
一方、受信パケットが自装置宛のパケットである場合には(S203:自装置宛)、自装置宛のパケットを受信した通信装置(スレーブの通信装置)はコマンド処理を行う(ステップS204)。
ここで、マスタの通信装置100aが行うコマンド処理(ステップS103)とスレーブの通信装置が行うコマンド処理(ステップS204)の概要を説明する。
マスタの通信装置100aのコマンド処理部372は、データ転送を起動するためのコマンドパケットを発行し、コマンドパケットの宛先ID212で指定したスレーブの通信装置からのレスポンスパケットを受信するのを待つ。スレーブの通信装置のコマンド処理部372は、マスタの通信装置100aからのコマンドパケットを受信し、通信装置100aに対して、コマンドパケットで指定されるデータ転送が可能であれば、NACKフラグ231をACKに設定したレスポンスパケットを発行して、コマンド・レスポンスのハンドシェークを成立させる。通信装置100aのコマンド処理部372は、スレーブの通信装置からのレスポンスパケットを正しく受信してコマンド・レスポンスのハンドシェークが成立したことを確認する。
上記のコマンド処理(ステップS103,S204)でコマンド・レスポンスのハンドシェークが成立した後、マスタの通信装置100aはフロー制御を行い(ステップS104)、スレーブの通信装置はフロー制御を行う(ステップS205)。なお、フロー制御では、マスタの通信装置100aとスレーブの通信装置とは互いに相手のバッファの状態を確認しながら、データパケットの転送量とタイミングとを調整する。
ここで、マスタの通信装置100aが行うフロー制御(ステップS104)とスレーブの通信装置が行うフロー制御(ステップS205)の概要を説明する。
マスタの通信装置100aのコマンド処理部372とスレーブの通信装置のコマンド処理部372はウェイクアップ信号を送受信し、続いて、同期コードを送受信する。
そして、マスタの通信装置100aのコマンド処理部372は、宛先ID212をスレーブの通信装置のデバイスIDとし、データ転送可能なデータパケット数をフロー制御サイズ271に含めたフロー制御パケットを発行する。スレーブの通信装置のコマンド処理部372は、マスタの通信装置100aからのフロー制御パケットを受信し、フロー制御パケットのフロー制御サイズ271のデータ転送が可能になると、宛先ID212をマスタの通信装置100aのデバイスIDとしたフロー制御パケットを発行する。マスタの通信装置100aのコマンド処理部372は、スレーブの通信装置からのフロー制御パケットを受信し、フロー制御パケットを正しく受信してフロー制御のハンドシェークが成立したことを確認する。
ここで、データ転送はダウンリンク及びアップリンクの一方を用いて行われる。マスタの通信装置100aのコマンド処理部372及びスレーブの通信装置のコマンド処理部372の夫々は、ダウンリンクとアップリンクのうちデータ転送に用いられる部分リンクを介して転送されるフロー制御パケットにはループバックフラグ272を設定し(フラグオン)、データ転送に用いられない部分リンクを介して転送されるフロー制御パケットにはループバックフラグ272を設定しない(フラグオフ)。
つまり、R/Wフラグ221で指定されるデータ転送種別が書き込みの場合には、マスタの通信装置100aのコマンド処理部372はフロー制御パケットにループバックフラグ272を設定し、スレーブの通信装置のコマンド処理部372はフロー制御パケットにループバックフラグ272を設定しない。一方、データ転送種別が読み出しの場合には、スレーブの通信装置のコマンド処理部372はフロー制御パケットにループバックフラグ272を設定し、マスタの通信装置100aのコマンド処理部372はフロー制御パケットにループバックフラグ272を設定しない。
上記のフロー制御(ステップS104,S205)でフロー制御のハンドシェークが成立した後、マスタの通信装置100aのデータ転送部373はデータ転送を行い(ステップS105)、スレーブの通信装置のデータ転送部373はデータ転送を行う(ステップS206)。なお、データ転送の最後に、データパケットを発行する通信装置のデータ転送部373はループバック解除コード(RFLB)を発行する。
マスタの通信装置100aとスレーブの通信装置とのデータ通信において、データ転送種別が書き込みの場合、マスタの通信装置100aのデータ転送部373はデータパケットを発行する。このデータパケットはシリアル信号としてダウンリンクを伝送し、スレーブの通信装置のデータ転送部373はデータパケットを受信する。このとき、アップリンク及びアップリンクに接続された通信装置はデータパケットの転送に用いられず未使用となる。
一方、データ転送種別が読み出しの場合、スレーブの通信装置のデータ転送部373はデータパケットを発行する。このデータパケットはシリアル信号としてアップリンクを伝送する。そして、マスタの通信装置100aのデータ転送部373はデータパケットを受信する。このとき、ダウンリンク及びダウンリンクに接続された通信装置はデータパケットの転送に用いられず未使用となる。
フロー制御パケットのフロー制御サイズ271で指定した数のデータパケットに係るデータ転送(ステップS105,S206)の完了後、マスタの通信装置100aはポーリング処理を行い(ステップS106)、スレーブの通信装置はポーリング処理を行う(ステップS207)。
ここで、マスタの通信装置100aが行うポーリング処理(ステップS106)とスレーブの通信装置が行うポーリング処理(ステップS207)の概要を説明する。なお、中継局となった通信装置が行うポーリングパケットに対する処理もあわせて説明する。
マスタの通信装置100aのコマンド処理部372は、宛先ID212をスレーブの通信装置のデバイスIDとしたポーリングパケットを発行する。但し、マスタの通信装置100aのコマンド処理部372は、コマンドパケットのデータ転送サイズ223のデータ転送の完了前ではコンプリーションフラグ281を設定せず(フラグオフ)、データ転送が完了するとコンプリーションフラグ281を設定する(フラグオン)。
中継局の通信装置のパケット中継部371は、ポーリングパケットを他の通信装置宛のパケットと判定し、ポーリングパケットのステータスフィールド282に自装置の通信の可否等のステータスを追記してリング後段の通信装置に出力する。
スレーブの通信装置のパケット中継部371は、ポーリングパケットを自装置宛のパケットと判定し、コマンド処理部372へ出力する。
スレーブの通信装置のコマンド処理部372は、宛先ID212をマスタの通信装置100aのデバイスIDとし、ステータスフィールド282に入力されたポーリングパケットのステータスフィールド282の内容と自装置の通信可否等のステータスとを書き込んだポーリングパケットを発行する。但し、スレーブの通信装置のコマンド処理部372は、コマンドパケットのデータ転送サイズ223のデータ転送の完了前ではコンプリーションフラグ281を設定せず(フラグオフ)、データ転送が完了するとコンプリーションフラグ281を設定する(フラグオン)。
中継局の通信装置のパケット中継部371は、ポーリングパケットを他の通信装置宛のパケットと判定し、ポーリングパケットのステータスフィールド282に自装置の通信の可否等のステータスを追記してリング後段の通信装置に出力する。
マスタの通信装置100aのパケット中継部371は、ポーリングパケットを自装置宛のパケットと判定し、コマンド処理部372へ出力する。そして、コマンド処理部372は、入力されたポーリングパケットのステータスフィールド282からシリアルリンク105に接続された自装置以外の全ての通信装置のステータスを取得する。
なお、マスタの通信装置100aのコマンド処理部372は、取得した自装置以外の全ての通信装置のステータスを、次回のコマンドの発行を行う通信相手のスレーブの選択に用いる。
マスタの通信装置100aは、コマンドパケットのデータ転送サイズ223のデータ転送が完了するまで(S107:No)、ステップS104からステップS106の処理を繰り返し行い、コマンドパケットのデータ転送サイズ223のデータ転送が完了すると(S107:Yes)、ステップS108の処理に移行する。マスタの通信装置100aは、コマンドパケットを発行して通信を継続する場合には(S108:Yes)ステップS103以降の処理を行って通信を継続し、通信を継続しない場合には(S108:No)通信を完了する。
スレーブの通信装置は、コマンドパケットのデータ転送サイズ223のデータ転送が完了するまで(S208:No)、ステップS205からステップS207の処理を繰り返し行い、コマンドパケットのデータ転送サイズ223のデータ転送が完了すると(S208:Yes)、ステップS209の処理を行う。スレーブの通信装置は、コマンドパケットの受信を待って通信を継続する場合には(S209:Yes)ステップS203以降の処理を行って通信を継続し、通信を継続しない場合には(S209:No)通信を完了する。
(パケット中継処理)
図9は、図8のパケット中継処理(ステップS210)の動作の流れを示すフローチャートである。
他の通信装置宛のパケットを受信した通信装置のパケット中継部371は、受信パケットがスタンバイパケットであるかループバックパケットであるかを判定する(ステップS251)。
スタンバイパケットは、他の通信装置をスタンバイモードに遷移させる属性を有するパケットである。スタンバイ制御部317は、プロトコル処理部302におけるスタンバイパケットの受信後に、送受信処理部301の受信処理に係るシリアル受信部311と復号化部312をスタンバイ状態に遷移させ、スタンバイパケットの送信後には送信処理に係る符号化部313とシリアル送信部315をスタンバイ状態に遷移させる。従って、プロトコル処理部302においてスタンバイパケットを中継処理した場合、上記送受信に係るいずれの回路もスタンバイ状態となり、送受信が停止するためプロトコル処理部302も含めた通信装置全体がスタンバイモードとなる。本実施の形態では、初期化シーケンスを終えてから発行される、他の通信装置宛のループバックフラグ272が設定されたフロー制御パケット及びデータパケット以外の全ての他の通信装置宛のパケットがスタンバイパケットに該当する。
ループバックパケットは、アップリンク及びダウンリンクのうちのデータ転送に使用される部分リンクに接続された通信装置をループバックモードに遷移させる属性を有するパケットである。スタンバイ制御部317は、プロトコル処理部302におけるループバックパケットの中継処理後に、ループバックセレクタ314を切替えて、パラレルループバックデータをシリアル送信部315へ出力するループバックモードに遷移させる。本実施の形態では、他の通信装置宛のループバックフラグ272が設定されたフロー制御パケットがループバックパケットに該当する。
受信パケットがスタンバイパケットである場合(S251:スタンバイ)、通信装置のパケット中継部371は受信パケットを送信パケットとしてリング後段の通信装置に中継する。スタンバイパケットを中継した通信装置において、スタンバイ制御部317は送受信処理部301のシリアル受信部311、復号化部312、符号化部313及びシリアル送信部315、並びにプロトコル処理部302全体をスタンバイ状態にすることによって、自装置を省電力のスタンバイモードに遷移させる(ステップS255)。そして、スタンバイモードに遷移した通信装置はウェイクアップ信号の検知を待ち、ウェイクアップ検知部316がウェイクアップ信号を検知すると、スタンバイ制御部317は送受信処理部301のシリアル受信部311、復号化部312、符号化部313及びシリアル送信部315、並びにプロトコル処理部302全体をアクティブ状態にすることによって自装置のスタンバイモードを解除する(ステップS256)。
受信パケットがループバックパケットである場合(S251:ループバック)、通信装置のパケット中継部371は受信パケットを送信パケットとしてリング後段の通信装置に中継する。ループバックパケットを中継した通信装置において、スタンバイ制御部317はループバックセレクタ314の出力をパラレル送信データからパラレルループバックデータに切り替え、送受信処理部301の復号化部312及び符号化部313並びにプロトコル処理部302全体をスタンバイ状態にすることによって、通信装置を省電力のループバックモードに遷移させる(ステップS252)。但し、ループバックモードに遷移した通信装置は、ループバックモードが解除されるまで、シリアルリンク105からの入力を、シリアル受信部311、スタンバイ制御部317、ループバックセレクタ314、シリアル送信部315の順に伝達して、シリアルリンク105へ出力する。
ループバックモードに遷移した通信装置は、ループバックモードが解除されるのを待ち、スタンバイ制御部317はパラレルループバックデータからループバック解除コード(RFLB)を検知すると、ループバックセレクタ314の出力をパラレルループバックデータからパラレル送信データに切り替え、送受信処理部301の復号化部312及び符号化部313並びにプロトコル処理部302全体をアクティブ状態にすることによって、自装置のループバックモードを解除する(ステップS253)。
ループバックモードを解除した通信装置のパケット中継部371はポーリングパケットの受信を待つ。パケット中継部371はポーリングパケットのステータスフィールド282に自装置の通信可否等のステータスを追記し、自装置のステータスを追記したポーリングパケットをリング後段の通信装置に中継する(ステップS254)。そして、ポーリングパケットを中継した通信装置において、スタンバイ制御部317は送受信処理部301のシリアル受信部311、復号化部312、符号化部313及びシリアル送信部315、並びにプロトコル処理部302全体をスタンバイ状態にすることによって、自装置をスタンバイモードに遷移させる(ステップS255)。そして、スタンバイモードに遷移した通信装置はウェイクアップ信号の検知を待ち、ウェイクアップ検知部316がウェイクアップ信号を検知すると、スタンバイ制御部317は送受信処理部301のシリアル受信部311、復号化部312、符号化部313及びシリアル送信部315、並びにプロトコル処理部302全体をアクティブ状態にすることによって自装置のスタンバイモードを解除する(ステップS256)。
[通信システム全体の動作シーケンス]
(初期化シーケンスとコマンド処理に関する動作シーケンス)
図10は、図1の通信システム全体の初期化シーケンスとコマンド処理に関する動作シーケンスである。
通信装置100aのコマンド処理部372は、電源投入直後の電気的なアイドル状態であるシリアルリンク105を介してシリアルドライバ352からウェイクアップ信号の送信を開始し、PLL回路336によるデータクロックの生成を開始する。通信装置100b〜100dの各々は、そのウェイクアップ信号の待ち受け状態にある。通信装置100b〜100dは、順に、ウェイクアップ検知部316によってシリアルリンク105の信号状態からウェイクアップ信号を検知し、シリアルドライバ352からウェイクアップ信号をシリアルリンク105へ出力することによってウェイクアップ信号を中継し、PLL回路336によるデータクロックの生成を開始する。通信装置100aはウェイクアップ検知部316によってシリアルリンク105の信号状態から一巡したウェイクアップ信号を検知する。
通信装置100aのコマンド処理部372は、所定の期間が経過してPLL回路336によるデータクロックの生成が完了すると、同期コード(SYNC)の発行を開始する。データクロックの生成が完了した後、通信装置100b〜100dのパケット中継部371は、順に、同期コードをリング後段の通信装置に中継する。通信装置100aのコマンド処理部372は、シリアルリンク105を一巡した同期コードを受信する。
以上がステップS301における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100dの処理である。
通信装置100aのコマンド処理部372は、宛先ID212をブロードキャスト用のデバイスID“15”とし、自らのデバイスIDである“0”をデバイスIDフィールド261に含めたデバイス列挙パケットを発行する。
通信装置100b〜100dのパケット中継部371は、順に、デバイス列挙パケットを受信し、デバイス列挙パケットのペイロード202に含まれるデバイスIDフィールド261の値を“1”インクリメントした値を自装置のデバイスIDとする。そして、パケット中継部371は、デバイスIDフィールド261に自装置のデバイスIDを書き込み、自装置のデバイスIDを書き込んだデバイス列挙パケットをリング後段の通信装置に中継する。
このようにして、全ての通信装置にデバイスIDが割り当てられた後、デバイス列挙パケットが通信装置100aに到達し、通信装置100aのコマンド処理部372はデバイス列挙パケットのペイロード202に含まれるデバイスIDフィールド261の値“3”から自らの他に3つの通信装置100b〜100dがシリアルリンク105に接続されていることを認識する。
以上がステップS302における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100dの処理である。
通信装置100aのコマンド処理部372は通信装置100c宛にコマンドパケット(CMD)を発行する。このコマンドパケットはパケット中継部371を介して符号化部313に入力され、コマンドパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100aにおいて、スタンバイパケットとしての役割を果たすコマンドパケットを発行したコマンド処理部372は、送受信処理部301の送信側(符号化部313及びシリアル送信部315)をスタンバイ状態に遷移させるための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、コマンドパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、符号化部313及びシリアル送信部315をスタンバイ状態にする。
通信装置100bにおいて、コマンドパケットに対応するシリアル信号がシリアル受信部311に入力され、コマンドパケットがパケット中継部371に入力される。パケット中継部371は、コマンドパケットの宛先判定を行って他の通信装置宛と判定し、コマンドパケットを符号化部313へ出力する。このコマンドパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、パケット中継部371は、他の通信装置宛のコマンドパケットをスタンバイパケットと判定し、通信装置100bをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、コマンドパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100bをスタンバイモードに遷移させる。
通信装置100cにおいて、コマンドパケットに対応するシリアル信号がシリアル受信部311に入力され、コマンドパケットがパケット中継部371に入力される。パケット中継部371はコマンドパケットの宛先判定を行って自装置宛と判定し、コマンドパケットをコマンド処理部372へ出力する。
通信装置100cにおいて、スタンバイパケットとしての役割を果たすコマンドパケットを受信したパケット中継部371は、送受信処理部301の受信側(シリアル受信部311及び復号化部312)をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、送受信処理部301のシリアル受信部311及び復号化部312をスタンバイ状態にする。
この一連の動作により、ダウンリンクはスタンバイステートとなり、それに接続された通信装置100bはスタンバイモードになる。
以上がステップS303における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100cの処理である。
コマンドパケットの宛先の通信装置(スレーブの通信装置)100cのコマンド処理部372は、コマンドパケットを受けて、通信装置100a宛にレスポンスパケット(RES)を発行する。このレスポンスパケットはパケット中継部371を介して符号化部313に入力され、レスポンスパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100cにおいて、スタンバイパケットとしての役割を果たすレスポンスパケットを発行したコマンド処理部372は、送受信処理部301の送信側をスタンバイ状態に遷移させるための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、レスポンスパケットに対応するシリアル信号がシリアルリンク105に出力された後、符号化部313及びシリアル送信部315をスタンバイ状態にする。
通信装置100dにおいて、レスポンスパケットに対応するシリアル信号がシリアル受信部311に入力され、レスポンスパケットがパケット中継部371に入力される。パケット中継部371は、レスポンスパケットの宛先判定を行って他の通信装置宛と判定し、レスポンスパケットを符号化部313へ出力する。このレスポンスパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、パケット中継部371は、他の通信装置宛のレスポンスパケットをスタンバイパケットと判定し、自通信装置100dをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、レスポンスパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100dをスタンバイモードに遷移させる。
通信装置100aにおいて、レスポンスパケットに対応するシリアル信号がシリアル受信部311に入力され、レスポンスパケットがパケット中継部371に入力される。パケット中継部371は、レスポンスパケットの宛先判定を行って自装置宛と判定し、レスポンスパケットをコマンド処理部372へ出力する。コマンド処理部372はこのレスポンスパケットによりコマンド・レスポンスのハンドシェークが成立したことを確認する。
通信装置100aにおいて、スタンバイパケットとしての役割を果たすレスポンスパケットを受信したパケット中継部371は、送受信処理部301の受信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をスタンバイ状態にする。
この一連の動作により、アップリンクはスタンバイステートとなり、それに接続された通信装置100dはスタンバイモードになる。
以上がステップS304における通信システムのマスタの通信装置100aとマスタ以外の通信装置100c〜100dの処理である。
(書き込み時のフロー制御、データ転送、ポーリングに関する動作シーケンス)
図11及び図12の動作シーケンスはコマンドパケットのR/Wフラグ221が書き込みである場合の図10のコマンド処理に続くフロー制御、データ転送、ポーリングに関する動作シーケンスである。
通信装置100aのコマンド処理部372は送受信処理部301の送信側のスタンバイ状態を解除するための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、符号化部313及びシリアル送信部315をアクティブ状態にする。そして、通信装置100aのコマンド処理部372はウェイクアップ(Wakeup)信号をシリアル送信部315からシリアルリンク105へ出力し、通信装置100cまで送信する。
通信装置100bにおいて、ウェイクアップ検知部316は、ウェイクアップ信号を検知し、自通信装置100bのスタンバイモードを解除するための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、自通信装置100bのスタンバイモードを解除する。そして、通信装置100bは、ウェイクアップ信号をシリアル送信部315からシリアルリンク105へ出力することによってウェイクアップ信号をリング後段の通信装置に中継する。
通信装置100cにおいて、ウェイクアップ検知部316は、ウェイクアップ信号を検知し、シリアル受信部311及び復号化部312のスタンバイ状態を解除するための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をアクティブ状態にする。
この一連の動作により、ダウンリンクのスタンバイステートは解除され、それに接続された通信装置100bのスタンバイモードは解除される。
次に、通信装置100aのコマンド処理部372は、所定数の同期コード(SYNC)を発行した後、通信装置100c宛にループバックフラグ272を設定したフロー制御パケット(FCTL)を発行する。このフロー制御パケットはパケット中継部371を介して符号化部313に入力され、フロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bは、シリアル受信部311内のS/P変換部333において、上記同期コードに対応するシリアル受信データからシンボル区切り位置を正しく認識してパラレルデータ化する。それにより、後続のシリアル受信データはフロー制御パケットとして受信されてパケット中継部371に入力される。パケット中継部371は、フロー制御パケットの宛先判定を行って他の通信装置宛と判定し、受信した同期コードの中継出力後にフロー制御パケットを符号化部313へ出力する。このフロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、パケット中継部371は、他の通信装置宛のループバックフラグ272が設定されたフロー制御パケットをループバックパケットと判定し、自通信装置100bをループバックモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100bをループバックモードに遷移させる。
通信装置100cにおいても同様に、シリアル受信部311内のS/P変換部333における同期コード受信によって正しくパラレルデータ化されたフロー制御パケットがパケット中継部371に入力される。パケット中継部371は、フロー制御パケットの宛先判定を行って自装置宛と判定し、フロー制御パケットをコマンド処理部372へ出力する。
以上がステップS331における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100cの処理である。
通信装置100cのコマンド処理部372は、送受信処理部301の送信側のスタンバイ状態を解除するための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、符号化部313及びシリアル送信部315をアクティブ状態にする。そして、通信装置100cのコマンド処理部372は、ウェイクアップ(Wakeup)信号をシリアル送信部315からシリアルリンク105へ出力し、通信装置100aまで送信する。
通信装置100dにおいて、ウェイクアップ検知部316は、ウェイクアップ信号を検知し、自通信装置100dのスタンバイモードを解除するための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、自通信装置100dのスタンバイモードを解除する。そして、通信装置100dは、ウェイクアップ信号をシリアル送信部315からシリアルリンク105へ出力することによってウェイクアップ信号をリング後段の通信装置に中継する。
通信装置100aにおいて、ウェイクアップ検知部316は、ウェイクアップ信号を検知し、シリアル受信部311及び復号化部312のスタンバイ状態を解除するための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をアクティブ状態にする。
この一連の動作により、アップリンクのスタンバイステートは解除され、それに接続された通信装置100dのスタンバイモードは解除される。
次に、通信装置100cのコマンド処理部372は、所定数の同期コード(SYNC)を発行した後、通信装置100a宛にループバックフラグ272を設定しないフロー制御パケット(FCTL)を発行する。このフロー制御パケットはパケット中継部371を介して符号化部313に入力され、フロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100cにおいて、スタンバイパケットとしての役割を果たすループバックフラグ272を設定しないフロー制御パケットを発行したコマンド処理部372は、送受信処理部301の送信側をスタンバイ状態に遷移させるための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、符号化部313及びシリアル送信部315をスタンバイ状態にする。
通信装置100dは、シリアル受信部311内のS/P変換部333において、上記同期コードに対応するシリアル受信データからシンボル区切り位置を正しく認識してパラレルデータ化する。それにより、後続のシリアル受信データはフロー制御パケットとして受信されてパケット中継部371に入力される。パケット中継部371は、フロー制御パケットの宛先判定を行って他の通信装置宛と判定し、受信した同期コードの中継出力後にフロー制御パケットを符号化部313へ出力する。このフロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、パケット中継部371は、他の通信装置宛のループバックフラグ272が設定されていないフロー制御パケットをスタンバイパケットと判定し、自通信装置100dをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100dをスタンバイモードに遷移させる。
通信装置100aにおいても同様に、シリアル受信部311内のS/P変換部333における同期コード受信によって正しくパラレルデータ化されたフロー制御パケットがパケット中継部371に入力される。パケット中継部371は、フロー制御パケットの宛先判定を行って自装置宛と判定し、フロー制御パケットをコマンド処理部372へ出力する。コマンド処理部372はこのフロー制御パケットによりフロー制御のハンドシェークが成立したことを確認する。
通信装置100aにおいて、スタンバイパケットとしての役割を果たすループバックフラグ272が設定されていないフロー制御パケットを受信したパケット中継部371は、送受信処理部301の受信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をスタンバイ状態にする。
この一連の動作により、アップリンクはスタンバイステートとなり、それに接続された通信装置100dはスタンバイモードになる。
以上がステップS332における通信システムのマスタの通信装置100aとマスタ以外の通信装置100c〜100dの処理である。
通信装置100aのデータ転送部373は、通信装置100c宛にデータパケット(W−DAT)を発行する。このデータパケットはパケット中継部371を介して符号化部313に入力され、データパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、シリアルリンク105からのデータパケットに対応する入力信号は、シリアル受信部311、スタンバイ制御部317、ループバックセレクタ314、シリアル送信部315の順に伝達し、シリアルリンク105に出力される。
通信装置100cにおいて、データパケットに対応するシリアル信号がシリアル受信部311に入力され、データパケットがパケット中継部371に入力される。パケット中継部371は、データパケットの宛先判定を行って自装置宛と判定し、データパケットをデータ転送部373へ出力する。
この一連の処理が、フロー制御パケットで指定した数のデータパケットの書き込みが完了するまで繰り返し行われる。
通信装置100aのデータ転送部373は、フロー制御パケットで指定した数のデータパケットの書き込みが完了すると、ループバック解除コード(RFLB)を発行する。このループバック解除コードはパケット中継部371を介して符号化部313に入力され、ループバック解除コードに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、シリアルリンク105からのループバック解除コードに対応する入力信号は、シリアル受信部311、スタンバイ制御部317、ループバックセレクタ314、シリアル送信部315の順に伝達し、シリアルリンク105に出力される。このとき、スタンバイ制御部317は、ループバック解除コードを検知し、ループバック解除コードに対応する入力信号がシリアルリンク105に出力された後、自通信装置100bのループバックモードを解除する。
通信装置100cにおいて、ループバック解除コードに対応するシリアル信号がシリアル受信部311に入力され、ループバック解除コードがパケット中継部371に入力される。パケット中継部371は、ループバック解除コードをデータ転送部373へ出力する。データ転送部373は、ループバック解除コードの受信により、フロー制御サイズで指定されたデータパケットの受信を完了する。
以上がステップS333における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100cの処理である。
フロー制御パケットのフロー制御サイズ271で指定される数のデータパケットの発行等のデータ転送の完了後、通信装置100aのコマンド処理部372は通信装置100c宛にポーリングパケット(POL)を発行する。このポーリングパケットはパケット中継部371を介して符号化部313に入力され、ポーリングパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100aにおいて、スタンバイパケットとしての役割を果たすポーリングパケットを発行したコマンド処理部372は、送受信処理部301の送信側をスタンバイ状態に遷移させるための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、ポーリングパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、符号化部313及びシリアル送信部315をスタンバイ状態にする。
通信装置100bにおいて、ポーリングパケットに対応するシリアル信号がシリアル受信部311に入力され、ポーリングパケットがパケット中継部371に入力される。パケット中継部371は、ポーリングパケットの宛先判定を行って他の通信装置宛と判定し、ポーリングパケットのステータスフィールド282に自通信装置100bのステータスを追記し、自通信装置100bのステータスを追記したポーリングパケットを符号化部313へ出力する。このポーリングパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、パケット中継部371は、他の通信装置宛のポーリングパケットをスタンバイパケットと判定し、通信装置100bをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、ポーリングパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100bをスタンバイモードに遷移させる。
通信装置100cにおいて、ポーリングパケットに対応するシリアル信号がシリアル受信部311に入力され、ポーリングパケットがパケット中継部371に入力される。パケット中継部371は、ポーリングパケットの宛先判定を行って自装置宛と判定し、ポーリングパケットをコマンド処理部372へ出力する。
通信装置100cにおいて、スタンバイパケットとしての役割を果たすポーリングパケットを受信したパケット中継部371は、送受信処理部301の受信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をスタンバイ状態にする。
この一連の動作により、ダウンリンクはスタンバイステートとなり、それに接続された通信装置100bはスタンバイモードになる。
以上がステップS334における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100cの処理である。
通信装置100cのコマンド処理部372は、送受信処理部301の送信側のスタンバイ状態を解除するための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、符号化部313及びシリアル送信部315をアクティブ状態にする。そして、通信装置100bのコマンド処理部372は、ウェイクアップ(Wakeup)信号をシリアル送信部315からシリアルリンク105へ出力し、通信装置100aまで送信する。
通信装置100dにおいて、ウェイクアップ検知部316は、ウェイクアップ信号を検知し、自通信装置100dのスタンバイモードを解除するための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、自通信装置100dのスタンバイモードを解除する。そして、通信装置100dは、ウェイクアップ信号をシリアル送信部315からシリアルリンク105へ出力することによってウェイクアップ信号をリング後段の通信装置に中継する。
通信装置100aにおいて、ウェイクアップ検知部316は、ウェイクアップ信号を検知し、シリアル受信部311及び復号化部312のスタンバイ状態を解除するための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をアクティブ状態にする。
この一連の動作により、アップリンクのスタンバイステートは解除され、それに接続された通信装置100dのスタンバイモードは解除される。
次に、通信装置100cのコマンド処理部372は、所定数の同期コード(SYNC)を発行した後、通信装置100a宛に、ステータスフィールド282にステップS334で入力されたポーリングパケットのステータスフィールド282の内容と自通信装置100cの通信の可否等のステータスとを書き込んだポーリングパケット(POL)を発行する。このポーリングパケットはパケット中継部371を介して符号化部313に入力され、ポーリングパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100cにおいて、スタンバイパケットとしての役割を果たすポーリングパケットを発行したコマンド処理部372は、送受信処理部301の送信側をスタンバイ状態に遷移させるための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、ポーリングパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、符号化部313及びシリアル送信部315をスタンバイ状態にする。
通信装置100dは、シリアル受信部311内のS/P変換部333において、上記同期コードに対応するシリアル受信データからシンボル区切り位置を正しく認識してパラレルデータ化する。それにより、後続のシリアル受信データはポーリングパケットとして正しく受信されてパケット中継部371に入力される。パケット中継部371は、ポーリングパケットの宛先判定を行って他の通信装置宛と判定し、受信した同期コードの中継出力後にポーリングパケットのステータスフィールド282に自装置の通信可否等のステータスを追記し、自通信装置100dのステータスを追記したポーリングパケットを符号化部313へ出力する。このポーリングパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、パケット中継部371は、他の通信装置宛のポーリングパケットをスタンバイパケットと判定し、通信装置100dをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、ポーリングパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100dをスタンバイモードに遷移させる。
通信装置100aにおいても同様に、シリアル受信部311内のS/P変換部333における同期コード受信によって正しくパラレルデータ化されたポーリングパケットがパケット中継部371に入力される。パケット中継部371は、ポーリングパケットの宛先判定を行って自装置宛と判定し、ポーリングパケットをコマンド処理部372へ出力する。
通信装置100aにおいて、スタンバイパケットとしての役割を果たすポーリングパケットを受信したパケット中継部371は、送受信処理部301の受信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をスタンバイ状態にする。
この一連の動作により、アップリンクはスタンバイステートとなり、それに接続された通信装置100dはスタンバイモードになる。
以上がステップS335における通信システムのマスタの通信装置100aとマスタ以外の通信装置100c〜100dの処理である。
(読み出し時のフロー制御、データ転送、ポーリングに関する動作シーケンス)
図13及び図14の動作シーケンスはコマンドパケットのR/Wフラグ221が読み出しである場合の図10のコマンド処理に続くフロー制御、データ転送、ポーリングに関する動作シーケンスである。
通信装置100a〜100cは、図11のステップS331の通信装置100aによるウェイクアップ(Wakeup)信号の送信から通信装置100cによる同期コード(SYNC)の受信までと実質的に同じ処理を行う。
通信装置100aのコマンド処理部372は、通信装置100c宛にループバックフラグ272を設定しないフロー制御パケット(FCTL)を発行する。このフロー制御パケットはパケット中継部371を介して符号化部313に入力され、フロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100aにおいて、スタンバイパケットとしての役割を果たすループバックフラグ272を設定しないフロー制御パケットを発行したコマンド処理部372は、送受信処理部301の送信側をスタンバイ状態に遷移させるための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、符号化部313及びシリアル送信部315をスタンバイ状態にする。
通信装置100bにおいて、フロー制御パケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御パケットがパケット中継部371に入力される。パケット中継部371は、フロー制御パケットの宛先判定を行って他の通信装置宛と判定し、フロー制御パケットを符号化部313へ出力する。このフロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、パケット中継部371は、他の通信装置宛のループバックフラグ272が設定されていないフロー制御パケットをスタンバイパケットと判定し、自通信装置100bをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御パケットに対応するシリアル信号がシリアルリンク105に出力された後、自通信装置100bをスタンバイモードに遷移させる。
通信装置100cにおいて、フロー制御パケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御パケットがパケット中継部371に入力される。パケット中継部371は、フロー制御パケットの宛先判定を行って自装置宛と判定し、フロー制御パケットをコマンド処理部372へ出力する。
通信装置100cにおいて、スタンバイパケットとしての役割を果たすループバックフラグ272が設定されていないフロー制御パケットを受信したパケット中継部371は、送受信処理部301の受信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をスタンバイ状態にする。
この一連の動作により、ダウンリンクはスタンバイステートとなり、それに接続された通信装置100bはスタンバイモードになる。
以上がステップS351における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100cの処理である。
通信装置100c,100d,100aは、図11のステップS332の通信装置100cによるウェイクアップ(Wakeup)信号の送信から通信装置100aによる同期コード(SYNC)の受信までと実質的に同じ処理を行う。
通信装置100cのコマンド処理部372は、通信装置100a宛にループバックフラグ272を設定したフロー制御パケット(FCTL)を発行する。このフロー制御パケットはパケット中継部371を介して符号化部313に入力され、フロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、フロー制御パケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御パケットがパケット中継部371に入力される。パケット中継部371は、フロー制御パケットの宛先判定を行って他の通信装置宛と判定し、フロー制御パケットを符号化部313へ出力する。このフロー制御パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、パケット中継部371は、他の通信装置宛のループバックフラグ272が設定されたフロー制御パケットをループバックパケットと判定し、自通信装置100dをループバックモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御パケットに対応するシリアル信号がシリアルリンク105に出力された後、自通信装置100dをループバックモードに遷移させる。
通信装置100aにおいて、フロー制御パケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御パケットがパケット中継部371に入力される。パケット中継部371は、フロー制御パケットの宛先判定を行って自装置宛と判定し、フロー制御パケットをコマンド処理部372へ出力する。コマンド処理部372はこのフロー制御パケットによりフロー制御のハンドシェークが成立したことを確認する。
以上がステップS352における通信システムのマスタの通信装置100aとマスタ以外の通信装置100c〜100dの処理である。
通信装置100cのデータ転送部373は、通信装置100a宛にデータパケット(R−DAT)を発行する。このデータパケットはパケット中継部371を介して符号化部313に入力され、データパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、シリアルリンク105からのデータパケットに対応する入力信号は、シリアル受信部311、スタンバイ制御部317、ループバックセレクタ314、シリアル送信部315の順に伝達し、シリアルリンク105に出力される。
通信装置100aにおいて、データパケットに対応するシリアル信号がシリアル受信部311に入力され、データパケットがパケット中継部371に入力される。パケット中継部371は、データパケットの宛先判定を行って自装置宛と判定し、データパケットをデータ転送部373へ出力する。
この一連の処理が、フロー制御パケットで指定した数のデータパケットの読み出しが完了するまで繰り返し行われる。
通信装置100cのデータ転送部373は、フロー制御パケットで指定した数のデータパケットの読み出しが完了すると、ループバック解除コード(RFLB)を発行する。このループバック解除コードはパケット中継部371を介して符号化部313に入力され、ループバック解除コードに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、シリアルリンク105からのループバック解除コードに対応する入力信号が、シリアル受信部311、スタンバイ制御部317、ループバックセレクタ314、シリアル送信部315の順に伝達し、シリアルリンク105に出力される。このとき、スタンバイ制御部317は、ループバック解除コードを検知し、ループバック解除コードに対応するシリアル信号がシリアルリンク105に出力された後、自通信装置100dのループバックモードを解除する。
通信装置100aにおいて、ループバック解除コードに対応するシリアル信号がシリアル受信部311に入力され、ループバック解除コードがパケット中継部371に入力される。パケット中継部371は、ループバック解除コードをデータ転送部373へ出力する。データ転送部373は、ループバック解除コードの受信により、フロー制御サイズで指定されたデータパケットの受信を完了する。
以上がステップS353における通信システムのマスタの通信装置100aとマスタ以外の通信装置100c〜100dの処理である。
フロー制御パケットのフロー制御サイズ271で指定される数のデータパケットの発行等のデータ転送の完了後、通信装置100a〜100cは、図11のステップS331の通信装置100aによるウェイクアップ(Wakeup)信号の送信から通信装置100cによる同期コード(SYNC)の受信までと実質的に同じ処理を行い、図12のステップS334の通信装置100aによるポーリングパケットの発行以降の処理と実質的に同じ処理を行う(ステップS354)。
通信装置100c,100d,100aは、図12のステップS335の通信装置100cによるポーリングパケットの発行以降の処理と実質的に同じ処理を行う(ステップS355)。
≪第1の変形例≫
以下、第1の変形例について図面を参照しつつ説明する。但し、第1の実施の形態と第1の変形例とでは、スタンバイパケットとして取り扱うパケットの種類、ループバックパケットとして取り扱うパケットの種類が異なり、ループバックモードを解除するための特殊シンボルの種類が異なる。
<8B/10B方式の特殊シンボル>
以下、第1の変形例の通信装置100a〜100dが用いる8B/10B方式の特殊シンボルについて図15を参照しつつ説明する。図15は第1の変形例の通信装置100a〜100dが用いる8B/10B方式の特殊シンボルの機能割当の一例を示す図である。
図15では、その一部に、SDB(Start of DATA Burst)、SOP、EDB(End of DATA Burst)、COM、LIDL(Logical Idle)、EOPが割り当てられている。SDB及びEDBはフロー制御サイズに対応するデータ転送の先頭及び末尾を示す。LIDLは通信装置間の同期を維持するために用いられる。
<スタンバイパケットとループバックパケット>
[ループバックパケット]
第1の変形例では、データパケットを発行する通信装置がデータパケットの送信に先だって、データパケットの宛先の通信装置に対してフロー制御を要求するために発行する、他の通信装置宛のフロー制御要求パケットがループバックパケットに該当する。ここで、フロー制御要求パケットの転送経路は、その後のデータパケットの転送経路となるため、図3(b)に示したループバックフラグ272は不要である。また、フロー制御サイズ271についても事前に所定の値が共有されている場合は不要となる。
[スタンバイパケット]
第1の変形例では、初期化シーケンスが終了してから発行される、他の通信装置宛のフロー制御要求パケット及びデータパケット以外の全ての他の通信装置宛のパケットがスタンバイパケットに該当する。
<通信システムの動作>
[通信システム全体の動作シーケンス]
第1の変形例における通信システム全体の初期化シーケンスとコマンド処理に関する動作シーケンスは、第1の実施の形態において説明した図10の動作シーケンスと実質的に同様である。
(書き込み時のフロー制御、データ転送、受信ステータス通知に関する動作シーケンス)
図16及び図17の動作シーケンスはコマンドパケットのR/Wフラグ221が書き込みである場合の図10のコマンド処理に続くフロー制御、データ転送、受信ステータス通知に関する動作シーケンスである。
通信装置100a〜100cは、図11のステップS331の通信装置100aによるウェイクアップ(Wakeup)信号の送信から通信装置100cによる同期コード(SYNC)の受信までと実質的に同じ処理を行う。
通信装置100aのコマンド処理部372は、通信装置100c宛にフロー制御要求パケット(FCREQ)を発行する。このフロー制御要求パケットはパケット中継部371を介して符号化部313に入力され、フロー制御要求パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、フロー制御要求パケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御要求パケットがパケット中継部371に入力される。パケット中継部371は、フロー制御要求パケットの宛先判定を行って他の通信装置宛と判定し、フロー制御要求パケットを符号化部313へ出力する。このフロー制御要求パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、パケット中継部371は、他の通信装置宛のフロー制御要求パケットをループバックパケットと判定し、自通信装置100bをループバックモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御要求パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100bをループバックモードに遷移させる。
通信装置100cにおいて、フロー制御要求パケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御要求パケットがパケット中継部371に入力される。パケット中継部371は、フロー制御要求パケットの宛先判定を行って自装置宛と判定し、フロー制御要求パケットをコマンド処理部372へ出力する。
以上がステップS501における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100cの処理である。
但し、通信装置100aが通信装置100c宛にフロー制御要求パケットを発行し、通信装置100cが当該フロー制御要求パケットを受信した以降も、通信装置100aはLIDLを送信し続け、通信装置100bはLIDLを中継し続け、通信装置100cはLIDLを受信し続ける。
通信装置100c,100d,100aは、図11のステップS332の通信装置100cによるウェイクアップ(Wakeup)信号の送信から通信装置100aによる同期コード(SYNC)の受信までと実質的に同じ処理を行う。
通信装置100cのコマンド処理部372は、ステップS501で受け取ったフロー制御要求パケットに対するデータパケットの書き込みの準備ができると、通信装置100a宛にフロー制御レディパケット(FCRDY)を発行する。このフロー制御レディパケットはパケット中継部371を介して符号化部313に入力され、フロー制御レディパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100cにおいて、スタンバイパケットとしての役割を果たすフロー制御レディパケットを発行したコマンド処理部372は、送受信処理部301の送信側をスタンバイ状態に遷移させるための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御レディパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、符号化部313及びシリアル送信部315をスタンバイ状態にする。
通信装置100dにおいて、フロー制御レディパケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御レディパケットがパケット中継部371に入力される。パケット中継部371は、フロー制御レディパケットの宛先判定を行って他の通信装置宛と判定し、フロー制御レディパケットを符号化部313へ出力する。このフロー制御レディパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、パケット中継部371は、他の通信装置宛のフロー制御レディパケットをスタンバイパケットと判定し、自通信装置100dをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御レディパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100dをスタンバイモードに遷移させる。
通信装置100aにおいて、フロー制御レディパケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御レディパケットがパケット中継部371に入力される。パケット中継部371は、フロー制御レディパケットの宛先判定を行って自装置宛と判定し、フロー制御レディパケットをコマンド処理部372へ出力する。コマンド処理部372はこのフロー制御レディパケットによりフロー制御のハンドシェークが成立したことを確認する。
通信装置100aにおいて、スタンバイパケットとしての役割を果たすフロー制御レディパケットを受信したパケット中継部371は、送受信処理部301の受信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をスタンバイ状態にする。
この一連の動作により、アップリンクはスタンバイステートとなり、それに接続された通信装置100dはスタンバイモードになる。
以上がステップS502における通信システムのマスタの通信装置100aとマスタ以外の通信装置100c〜100dの処理である。
通信装置100aのデータ転送部373は、フロー制御サイズのデータ転送に先だって、SDBシンボルを発行する。このSDBシンボルはパケット中継部371を介して符号化部313に入力され、SDBシンボルに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、シリアルリンク105からのSDBシンボルに対応する入力信号は、シリアル受信部311、スタンバイ制御部317、ループバックセレクタ314、シリアル送信部315の順に伝達し、シリアルリンク105に出力される。
通信装置100cにおいて、SDBシンボルに対応するシリアル信号がシリアル受信部311に入力され、SDBシンボルがパケット中継部371に入力される。パケット中継部371は、SDBシンボルをデータ転送部373へ出力する。
通信装置100a〜100cは、フロー制御要求パケットで指定した数のデータパケットの書き込みが完了するまで、図12のステップS333の通信装置100aによるデータパケット(W−DAT)の送信から通信装置100cによるデータパケットの受信までと実質的に同じ処理を行う。
通信装置100aのデータ転送部373は、フロー制御要求パケットで指定した数のデータパケットの書き込みが完了すると、EDBシンボルを発行する。このEDBシンボルはパケット中継部371を介して符号化部313に入力され、EDBシンボルに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、シリアルリンク105からのEDBシンボルに対応する入力信号は、シリアル受信部311、スタンバイ制御部317、ループバックセレクタ314、シリアル送信部315の順に伝達し、シリアルリンク105に出力される。このとき、スタンバイ制御部317は、EDBを検知し、自通信装置100bのループバックモードを解除する。
通信装置100cにおいて、EDBシンボルに対応するシリアル信号がシリアル受信部311に入力され、EDBシンボルがパケット中継部371に入力される。パケット中継部371は、EDBシンボルをデータ転送部373へ出力する。
以上がステップS503における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100cの処理である。
但し、EDBシンボルの送受信後も、通信装置100aはLIDLを送信し続け、通信装置100bはLIDLを中継し続け、通信装置100cはLIDLを受信し続ける。
通信装置100c,100d,100aは、図12のステップS335の通信装置100cによるウェイクアップ(Wakeup)信号の送信から通信装置100aによる同期コード(SYNC)の受信までと実質的に同じ処理を行う。
通信装置100cのコマンド処理部372は、通信装置100a宛にデータパケットの受信結果を通知するためのステータスパケット(STAT)を発行する。このステータスパケットはパケット中継部371を介して符号化部313に入力され、ステータスパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100cにおいて、スタンバイパケットとしての役割を果たすステータスパケットを発行したコマンド処理部372は、送受信処理部301の送信側をスタンバイ状態に遷移させるための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、ステータスパケットに対応するシリアル信号がシリアルリンク105に出力された後、符号化部313及びシリアル送信部315をスタンバイ状態にする。
通信装置100dにおいて、ステータスパケットに対応するシリアル信号がシリアル受信部311に入力され、ステータスパケットがパケット中継部371に入力される。パケット中継部371は、ステータスパケットの宛先判定を行って他の通信装置宛と判定し、ステータスパケットを符号化部313へ出力する。このステータスパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、パケット中継部371は、他の通信装置宛のステータスパケットをスタンバイパケットと判定し、自通信装置100dをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、ステータスパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100dをスタンバイモードに遷移させる。
通信装置100aにおいて、ステータスパケットに対応するシリアル信号がシリアル受信部311に入力され、ステータスパケットがパケット中継部371に入力される。パケット中継部371は、ステータスパケットの宛先判定を行って自装置宛と判定し、ステータスパケットをコマンド処理部372へ出力する。
通信装置100aにおいて、スタンバイパケットとしての役割を果たすステータスパケットを受信したパケット中継部371は、送受信処理部301の受信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をスタンバイ状態にする。
通信装置100aの中継処理部371は、スタンバイパケットとしての役割を果たすステータスパケットを受信したことを契機として、更に、送受信処理部301の送信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、符号化部313及びシリアル送信部315をスタンバイ状態にする。
EDBシンボルの送受信後においても、通信装置100aはLIDLを送信し続けていたが、通信装置100aの送受信処理部301の送信側がスタンバイ状態になることによって、通信装置100aからのLIDLの送信が停止する。通信装置100bがLIDLを受信しなくなり、例えば、ウェイクアップ検知部316がシリアルリンク105が電気的にアイドル状態になったことを検知すると、ウェイクアップ検知部316は自通信装置100bをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、自通信装置100bをスタンバイモードに遷移させる。
通信装置100bからのLIDLの送信が停止し、通信装置100cがLIDLを受信しなくなり、例えば、ウェイクアップ検知部316がシリアルリンク105が電気的にアイドル状態になったことを検知すると、ウェイクアップ検知部316は送受信処理部301の受信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をスタンバイ状態にする。
このように、通信装置100cのコマンド処理部372によるステータスパケットの発行は、ダウンリンクのスタンバイステートへの遷移及びダウンリンクに接続された通信装置100bのスタンバイモードへの遷移の契機になっている。
この一連の動作により、アップリンクはスタンバイステートとなり、それに接続された通信装置100dはスタンバイモードになる。また、ダウンリンクはスタンバイステートとなり、それに接続された通信装置100bはスタンバイモードになる。
以上がステップS504における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100dの処理である。
(読み出し時のフロー制御、データ転送、受信ステータス通知に関する動作シーケンス)
図18及び図19の動作シーケンスはコマンドパケットのR/Wフラグ221が読み出しである場合の図10のコマンド処理に続くフロー制御、データ転送、受信ステータス通知に関する動作シーケンスである。
通信装置100c,100d,100aは、図11のステップS332の通信装置100cによるウェイクアップ(Wakeup)信号の送信から通信装置100aによる同期コード(SYNC)の受信までと実質的に同じ処理を行う。
通信装置100cのコマンド処理部372は、通信装置100a宛にフロー制御要求パケット(FCREQ)を発行する。このフロー制御要求パケットはパケット中継部371を介して符号化部313に入力され、フロー制御要求パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、フロー制御要求パケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御要求パケットがパケット中継部371に入力される。パケット中継部371は、フロー制御要求パケットの宛先判定を行って他の通信装置宛と判定し、フロー制御要求パケットを符号化部313へ出力する。このフロー制御要求パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、パケット中継部371は、他の通信装置宛のフロー制御要求パケットをループバックパケットと判定し、自通信装置100dをループバックモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御要求パケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100dをループバックモードに遷移させる。
通信装置100aにおいて、フロー制御要求パケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御要求パケットがパケット中継部371に入力される。パケット中継部371は、フロー制御要求パケットの宛先判定を行って自装置宛と判定し、フロー制御要求パケットをコマンド処理部372へ出力する。
以上がステップS551における通信システムのマスタの通信装置100aとマスタ以外の通信装置100c〜100dの処理である。
但し、通信装置100cが通信装置100a宛にフロー制御要求パケットを発行し、通信装置100aが当該フロー制御要求パケットを受信した以降も、通信装置100cはLIDLを送信し続け、通信装置100dはLIDLを中継し続け、通信装置100aはLIDLを受信し続ける。
通信装置100a〜100cは、図11のステップS331の通信装置100aによるウェイクアップ(Wakeup)信号の送信から通信装置100cによる同期コード(SYNC)の受信までと実質的に同じ処理を行う。
通信装置100aのコマンド処理部372は、ステップS551で受け取ったフロー制御要求パケットに対するデータパケットの読み出しの準備ができると、通信装置100c宛にフロー制御レディパケット(FCRDY)を発行する。このフロー制御レディパケットはパケット中継部371を介して符号化部313に入力され、フロー制御レディパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100aにおいて、スタンバイパケットとしての役割を果たすフロー制御レディパケットを発行したコマンド処理部372は、送受信処理部301の送信側をスタンバイ状態に遷移させるための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御レディパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、符号化部313及びシリアル送信部315をスタンバイ状態にする。
通信装置100bにおいて、フロー制御レディパケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御レディパケットがパケット中継部371に入力される。パケット中継部371は、フロー制御レディパケットの宛先判定を行って他の通信装置宛と判定し、フロー制御レディパケットを符号化部313へ出力する。このフロー制御レディパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、パケット中継部371は、他の通信装置宛のフロー制御レディパケットをスタンバイパケットと判定し、自通信装置100bをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、フロー制御レディパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100bをスタンバイモードに遷移させる。
通信装置100cにおいて、フロー制御レディパケットに対応するシリアル信号がシリアル受信部311に入力され、フロー制御レディパケットがパケット中継部371に入力される。パケット中継部371は、フロー制御レディパケットの宛先判定を行って自装置宛と判定し、フロー制御レディパケットをコマンド処理部372へ出力する。コマンド処理部372はこのフロー制御レディパケットによりフロー制御のハンドシェークが成立したことを確認する。
通信装置100cにおいて、スタンバイパケットとしての役割を果たすフロー制御レディパケットを受信したパケット中継部371は、送受信処理部301の受信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をスタンバイ状態にする。
この一連の動作により、ダウンリンクはスタンバイステートとなり、それに接続された通信装置100bはスタンバイモードになる。
以上がステップS552における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100cの処理である。
通信装置100cのデータ転送部373は、フロー制御サイズのデータ転送に先だって、SDBシンボルを発行する。このSDBシンボルはパケット中継部371を介して符号化部313に入力され、SDBシンボルに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、シリアルリンク105からのSDBシンボルに対応する入力信号は、シリアル受信部311、スタンバイ制御部317、ループバックセレクタ314、シリアル送信部315の順に伝達し、シリアルリンク105へ出力される。
通信装置100aにおいて、SDBシンボルに対応するシリアル信号がシリアル受信部311に入力され、SDBシンボルがパケット中継部371に入力される。パケット中継部371は、SDBシンボルをデータ転送部373へ出力する。
通信装置100c,100d,100aは、フロー制御レディパケットで指定した数のデータパケットの読み出しが完了するまで、図14のステップS353の通信装置100cによるデータパケット(R−DAT)の送信から通信装置100aによるデータパケットの受信までと実質的に同じ処理を行う。
通信装置100cのデータ転送部373は、フロー制御要求パケットで指定した数のデータパケットの読み出しが完了すると、EDBシンボルを発行する。このEDBシンボルはパケット中継部371を介して符号化部313に入力され、EDBシンボルに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100dにおいて、シリアルリンク105からのEDBシンボルに対応する入力信号は、シリアル受信部311、スタンバイ制御部317、ループバックセレクタ314、シリアル送信部315の順に伝達し、シリアルリンク105に出力される。このとき、スタンバイ制御部317は、EDBを検知し、自通信装置100dのループバックモードを解除する。
通信装置100aにおいて、EDBシンボルに対応するシリアル信号がシリアル受信部311に入力され、EDBシンボルがパケット中継部371に入力される。パケット中継部371は、EDBシンボルをデータ転送部373へ出力する。
以上がステップS553における通信システムのマスタの通信装置100aとマスタ以外の通信装置100c〜100dの処理である。
但し、EDBシンボルの送受信後も、通信装置100cはLIDLを送信し続け、通信装置100dはLIDLを中継し続け、通信装置100aはLIDLを受信し続ける。
通信装置100a〜100cは、図11のステップS331の通信装置100aによるウェイクアップ(Wakeup)信号の送信から通信装置100cによる同期コード(SYNC)の受信までと実質的に同じ処理を行う。
通信装置100aのコマンド処理部372は、通信装置100c宛にステータスパケット(STAT)を発行する。このステータスパケットはパケット中継部371を介して符号化部313に入力され、ステータスパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100aにおいて、スタンバイパケットとしての役割を果たすステータスパケットを発行したコマンド処理部372は、送受信処理部301の送信側をスタンバイ状態に遷移させるための制御信号をパケット中継部371を介してスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、ステータスパケットに対応するシリアル信号がシリアルリンク105に出力された後、符号化部313及びシリアル送信部315をスタンバイ状態にする。
通信装置100bにおいて、ステータスパケットに対応するシリアル信号がシリアル受信部311に入力され、ステータスパケットがパケット中継部371に入力される。パケット中継部371は、ステータスパケットの宛先判定を行って他の通信装置宛と判定し、ステータスパケットを符号化部313へ出力する。このステータスパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105へ出力される。
通信装置100bにおいて、パケット中継部371は、他の通信装置宛のステータスパケットをスタンバイパケットと判定し、自通信装置100bをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、ステータスパケットに対応するシリアル信号がシリアル送信部315からシリアルリンク105に出力された後、自通信装置100bをスタンバイモードに遷移させる。
通信装置100cにおいて、ステータスパケットに対応するシリアル信号がシリアル受信部311に入力され、ステータスパケットがパケット中継部371に入力される。パケット中継部371は、ステータスパケットの宛先判定を行って自装置宛と判定し、ステータスパケットをコマンド処理部372へ出力する。
通信装置100cにおいて、スタンバイパケットとしての役割を果たすステータスパケットを受信したパケット中継部371は、送受信処理部301の受信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をスタンバイ状態にする。
通信装置100cの中継処理部371は、スタンバイパケットとしての役割を果たすステータスパケットを受信したことを契機として、更に、送受信処理部301の送信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、符号化部313及びシリアル送信部315をスタンバイ状態にする。
EDBシンボルの送受信後においても、通信装置100cはLIDLを送信し続けていたが、通信装置100cの送受信処理部301の送信側がスタンバイ状態になることによって、通信装置100cからのLIDLの送信が停止する。通信装置100dがLIDLを受信しなくなり、例えば、ウェイクアップ検知部316がシリアルリンク105が電気的にアイドル状態になったことを検知すると、ウェイクアップ検知部316は自通信装置100dをスタンバイモードに遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、自通信装置100dをスタンバイモードに遷移させる。
通信装置100dからのLIDLの送信が停止し、通信装置100aがLIDLを受信しなくなり、例えば、ウェイクアップ検知部316がシリアルリンク105が電気的にアイドル状態になったことを検知すると、ウェイクアップ検知部316は送受信処理部301の受信側をスタンバイ状態に遷移させるための制御信号をスタンバイ制御部317へ出力する。スタンバイ制御部317は、この制御信号を受けて、シリアル受信部311及び復号化部312をスタンバイ状態にする。
このように、通信装置100aのコマンド処理部372によるステータスパケットの発行は、アップリンクのスタンバイステートへの遷移及びアップリンクに接続された通信装置100dのスタンバイモードへの遷移の契機になっている。
この一連の動作により、ダウンリンクはスタンバイステートとなり、それに接続された通信装置100bはスタンバイモードになる。また、アップリンクはスタンバイステートとなり、それに接続された通信装置100dはスタンバイモードになる。
以上がステップS554における通信システムのマスタの通信装置100aとマスタ以外の通信装置100b〜100dの処理である。
≪第2の変形例≫
以下、第2の変形例について図面を参照しつつ説明する。上記の実施の形態では、通信システム内の全ての通信装置が、例えば電圧制御型水晶発振器(VCXO)で構成されるクロックソース303を備える。これに対して、第2の変形例では、通信システム内の1つの通信装置がクロックソースを有する。なお、通信システム内の1以上の一部の通信装置が、クロックソースを備えるようにしてもよい。
<通信システムのシステム構成>
図20は、第2の変形例に係る通信システムのシステム構成図である。
図20の通信システムでは、4つの通信装置400a〜400dがシリアルリンク402によって接続されている。但し、通信装置400aがマスタの通信装置であり、通信装置400b〜400dがスレーブの通信装置であるとする。なお、クロックソースに係る構成を除けば、例えば、通信装置400aは通信装置100aと同じ構成であるとし、通信装置400b〜400dは通信装置100b〜100dと同じ構成であるとする。
通信装置400aはクロックソース401を有し、各通信装置400a〜400dはリファレンスクロックを中継可能な構成になっている。通信システムは、クロックソース401から出力されたリファレンスクロックをデータ転送用のシリアルリンク402と併存させたクロック伝送路403を伝播させる共有クロック構成になっている。
≪補足≫
本発明は上記の実施の形態で説明した内容に限定されず、本発明の目的とそれに関連又は付随する目的を達成するためのいかなる形態においても実施可能であり、例えば、以下であってもよい。
(1)上記の実施の形態及び変形例では、シリアルリンク105,402に接続されているマスタ以外の通信装置の数を3つであるとして説明したが、これに限定されるものではなく、マスタ以外の通信装置の数は、2つや4つ以上であってもよい。
(2)上記の実施の形態及び変形例では、送信データ変換部315及び受信データ変換部313はデータ変換の方式に8B/10B方式を用いるとしたが、これに限定されるものではなく、データ変換方式に64B/66B方式やその他の方式を用いても良い。
(3)上記の実施の形態及び変形例では、S/P変換部333からの出力データをループバックさせる構成となっているが、これに限定されるものではなく、例えばCDR回路332からの出力データをループバックさせる構成でもよい。
(4)上記の実施の形態及び変形例では、他の用途のパケットをスタンバイパケットやループバックパケットに共用して使用するようにしているが、これに限定されるものではなく、スタンバイパケットやループバックパケットとして専用のパケットを用意するようにしてもよい。
(5)フロー制御方式は上記の実施の形態及び変形例で説明したフロー制御方式に限定されるものではない。
(6)上記の実施の形態及び変形例で用いるポーリングパケットをブロードキャストするようにしてもよい。
(7)上記の実施の形態及び変形例の通信装置は、例えば集積回路であるLSIとして実現されてもよい。これらは、個別に1チップ化されてもよいし、全てまたは一部を含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(8)上記の各実施の形態で説明した内容、及び上記の補足において説明した内容を適宜組み合わせることができる。