(57)【要約】【課題】マスタ通信装置に１つ以上のスレーブ通信装置が接続される通信システムにおいて、あるスレーブ通信装置が異常な状態となった場合に、正常に動作している他のスレーブ通信装置とも通信ができなくなり、最悪の場合に、接続されているすべてのスレーブ通信装置の電源をＯＦＦ／ＯＮするなどして、再起動をしなければならず、異常発生から復帰させるまでに時間がかかるという問題があった。【解決手段】マスタ通信装置は、ある特定のスレーブ通信装置に対して異常な状態から正常な状態に強制的に状態を遷移させる信号を繰り返し出力する特殊パターン出力制御部を備え、スレーブ通信装置は、マスタ通信装置から送られる信号を判定し、自分宛の特殊パターン信号を所定の回数以上、受信した場合、強制的に内部の状態を遷移させる特殊パターン検知部を備えていることを特徴とする通信システム。【選択図】図１
2011114625.tif 000002
【特許請求の範囲】
【請求項１】
マスタ通信装置とスレーブ通信装置との間がクロックラインと、少なくとも２本のシリアル通信路で接続される通信システムのマスタ通信装置であって、
コマンドを発行しデータを送受信するときに同期する高周波クロック信号と、前記スレーブ通信装置の状態を強制的に遷移させるために前記高周波クロック信号と異なる周期で特殊なパターンを繰り返す特殊パターン信号と、を前記クロックラインへ出力させるように制御する特殊パターン出力制御部と、を備えることを特徴とするマスタ通信装置。
【請求項２】
マスタ通信装置とスレーブ通信装置との間がクロックラインと、少なくとも２本のシリアル通信路で接続される通信システムのスレーブ通信装置であって、
前記マスタ通信装置からのコマンドに応答しデータを送受信するときに同期する高周波クロック信号と、状態を強制的に遷移させるための特殊パターン信号と、をクロックラインを介して受信し、受信した前記信号を判定し、所定の回数以上、前記特殊パターン信号を受信した場合に、前記スレーブ通信装置の状態を強制的に遷移させる特殊パターン検知部と、を備えていることを特徴とするスレーブ通信装置。
【請求項３】
請求項１記載のマスタ通信装置と、請求項２に記載のスレーブ通信装置と、を備えることを特徴する通信システム。
【請求項４】
マスタ通信装置と複数のスレーブ通信装置とが、シリアル通信路でリング状に接続され、更に前記マスタ通信装置とシリアル通信路とは別のクロックラインで複数の前記スレーブ通信装置と接続される通信システムのマスタ通信装置であって、
前記シリアル通信路を介してコマンドを発行しデータを送受信するときに同期する高周波クロック信号と、ある特定の前記スレーブ通信装置の状態を強制的に遷移させるために前記高周波クロック信号と異なる周期で前記スレーブ通信装置毎に異なる特殊なパターンを繰り返す特殊パターン信号と、を前記クロックラインへ出力させるよう制御する特殊パターン出力制御部と、を備えることを特徴とするマスタ通信装置。
【請求項５】
マスタ通信装置と複数のスレーブ通信装置とが、シリアル通信路でリング状に接続され、更に前記マスタ通信装置とシリアル通信路とは別のクロックラインで複数の前記スレーブ通信装置と接続される通信システムのスレーブ通信装置であって、
前記マスタ通信装置からのコマンドに応答しデータを送受信するときに同期する高周波クロック信号と、状態を強制的に遷移させるための特殊パターン信号とを、クロックラインを介して受信し、受信した前記信号を判定し、所定の回数以上、自分宛の前記特殊パターン信号を、受信した場合に前記スレーブ通信装置の状態を強制的に遷移させる特殊パターン検知部と、を備えていることを特徴とするスレーブ通信装置。
【請求項６】
請求項４記載のマスタ通信装置と、請求項５に記載のスレーブ通信装置と、を備えることを特徴する通信システム。
【請求項７】
マスタ通信装置と１つ以上のスレーブ通信装置が、シリアル通信路でリング状に接続され、更に前記マスタ通信装置とシリアル通信路とは別のクロックラインで１つ以上の前記スレーブ通信装置と接続される通信システムのマスタ通信装置であって、
前記シリアル通信路を介して、特定の前記スレーブ通信装置の状態を強制的に遷移させるために符号化／復号化方式の特殊な制御コードＲＳＴと、
前記スレーブ通信毎に異なる識別子を繰り返し送出する特殊パターン出力制御部と、
を備えることを特徴とするマスタ通信装置。
【請求項８】
マスタ通信装置と１つ以上のスレーブ通信装置が、シリアル通信路でリング状に接続さ
れ、更に前記マスタ通信装置とシリアル通信路とは別のクロックラインで１つの以上の前記スレーブ通信装置と接続される通信システムのスレーブ通信装置であって、
前記マスタ通信装置から受信した制御コードを判別し、所定回数以上、制御コードＲＳＴと自分宛の識別子を受信した場合に、前記スレーブ通信装置の状態を強制的に遷移させる特殊パターン検知部と、を備えていることを特徴とするスレーブ通信装置。
【請求項９】
請求項７記載のマスタ通信装置と、請求項８に記載のスレーブ通信装置と、を備えることを特徴する通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロックラインとシリアル通信路を介して接続された通信装置を含む通信システム、通信装置および通信装置間の通信方法の技術に関するものである。
【背景技術】
【０００２】
近年の半導体微細化・高速化技術の進展に伴って、機器間あるいは機器内に搭載されるＬＳＩ間で通信するデータ量は益々増加傾向にあるが、その一方で、パッケージコストに影響するＬＳＩの端子（パッド）数には厳しい制約がある。そこで、より少ないＬＳＩ端子数で高速なデータ通信を実現する目的でＵＳＢ２．０、ＩＥＥＥ１３９４やＰＣＩ  Ｅｘｐｒｅｓｓのような高速シリアル通信規格が広く普及している。このような規格における通信方式としては、ＵＳＢ２．０やＩＥＥＥ１３９４のように送受信の方向制御や送信権の調停制御が必要な半二重通信方式と、ＰＣＩ  Ｅｘｐｒｅｓｓのように送受信を同時に処理できる全二重通信方式が挙げられ、一般的に制御が容易な全二重通信方式の方が高速化可能であるが、全二重通信方式においても、送信あるいは受信の一方のみを行っている期間は、他方のための通信路の帯域が無駄になるという課題があった。
【０００３】
また、機器内で接続する配線数を減らすために、複数の通信装置（モジュール）をリング状に接続して通信を行う従来技術（例えば、特許文献１）が、開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−７７９７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、半二重通信方式の通信や、リング状に接続された通信では、外部からの電子ノイズ、熱、放射線等の外乱を受け、あるスレーブ通信装置のデータの送受信を指示するモジュールが異常な状態となり、マスタ通信装置にデータを送出できなくなったり、送出し続けるような状態に陥った場合に、正常に動作している他のスレーブ通信装置とも通信ができなくなったり、最悪の場合に、接続されているすべてのスレーブ通信装置の電源をＯＦＦしてから再度ＯＮし、再起動を順次してかなければならず、異常な状態の発生から復帰させるまでに時間がかかるという欠点があった。
【０００６】
また、個別に通信装置への電源をＯＦＦさせるとした場合でも、それぞれの通信装置に電源をＯＦＦするスイッチ部品が必要であることと、そのスイッチ部品を制御する信号線が必要になり、携帯電話などのモバイル機器においては配線がより厳しくなるという欠点があった。
【０００７】
本発明は、このような課題を解決するものであり、信号線を増やすことなく、スレーブ通信装置を異常な状態から正常な状態に復帰させる通信システム、通信装置およびその通信方法を提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために本発明の請求項１に係るマスタ通信装置は、コマンドを発行しデータを送受信するときに同期する高周波クロック信号と、前記スレーブ通信装置の状態を強制的に遷移させるために前記高周波クロック信号と異なる周期で特殊なパターンを繰り返す特殊パターン信号と、を前記クロックラインへ出力させるように制御する特殊パターン出力制御部を備えることを特徴とする。
【０００９】
本発明の請求項２に係るスレーブ通信装置は、前記マスタ通信装置からのコマンドに応答しデータを送受信するときに同期する高周波クロック信号と、状態を強制的に遷移させるための特殊パターン信号と、をクロックラインを介して受信し、受信した前記信号を判定し、所定の回数以上、前記特殊パターン信号を受信した場合に、前記スレーブ通信装置の状態を強制的に遷移させる特殊パターン検知部、を備えていることを特徴とする。
【００１０】
本発明の請求項３に係る通信システムは、マスタ通信装置とスレーブ通信装置から構成され、マスタ通信装置は、コマンドを発行しデータを送受信するときに同期する高周波クロック信号と、前記スレーブ通信装置の状態を強制的に遷移させるために前記高周波クロック信号と異なる周期で特殊なパターンを繰り返す特殊パターン信号と、を前記クロックラインへ出力させるように制御する特殊パターン出力制御部を備え、前記マスタ通信装置からのコマンドに応答しデータを送受信するときに同期する高周波クロック信号と、状態を強制的に遷移させるための特殊パターン信号と、をクロックラインを介して受信し、受信した前記信号を判定し、所定の回数以上、前記特殊パターン信号を受信した場合に、前記スレーブ通信装置の状態を強制的に遷移させる特殊パターン検知部、を備えていることを特徴とする。
【００１１】
本発明の請求項４に係るマスタ通信装置は、前記シリアル通信路を介してコマンドを発行しデータを送受信するときに同期する高周波クロック信号と、ある特定の前記スレーブ通信装置の状態を強制的に遷移させるために前記高周波クロック信号と異なる周期で前記スレーブ通信装置毎に異なる特殊なパターンを繰り返す特殊パターン信号と、を前記クロックラインへ出力させるよう制御する特殊パターン出力制御部と、を備えることを特徴とする。
【００１２】
本発明の請求項５に係るスレーブ通信装置は、前記マスタ通信装置からのコマンドに応答しデータを送受信するときに同期する高周波クロック信号と、状態を強制的に遷移させるための特殊パターン信号と、をクロックラインを介して受信し、受信した前記信号を判定し、所定の回数以上、自分宛の前記特殊パターン信号を、受信した場合に前記スレーブ通信装置の状態を強制的に遷移させる特殊パターン検知部、を備えていることを特徴とする。
【００１３】
本発明の請求項６に係る通信システムは、マスタ通信装置と複数のスレーブ通信装置が、シリアル通信路でリング状に接続され、更に前記マスタ通信装置とシリアル通信路とは別のクロックラインで複数の前記スレーブ通信装置と接続される構成で、マスタ通信装置は、前記シリアル通信路を介してコマンドを発行しデータを送受信するときに同期する高周波クロック信号と、ある特定の前記スレーブ通信装置の状態を強制的に遷移させるために前記高周波クロック信号と異なる周期で前記スレーブ通信装置毎に異なる特殊なパターンを繰り返す特殊パターン信号と、を前記クロックラインへ出力させるよう制御する特殊パターン出力制御部と、を備え、スレーブ通信装置は、前記マスタ通信装置からのコマンドに応答しデータを送受信するときに同期する高周波クロック信号と、状態を強制的に遷移させるための特殊パターン信号とを、クロックラインを介して受信し、受信した前記信号を判定し、所定の回数以上、自分宛の前記特殊パターン信号を、受信した場合に前記スレーブ通信装置の状態を強制的に遷移させる特殊パターン検知部、を備えていることを特徴とする。
【００１４】
本発明の請求項７に係るマスタ通信装置は、マスタ通信装置と１つ以上のスレーブ通信装置が、シリアル通信路でリング状に接続され、更に前記マスタ通信装置とシリアル通信路とは別のクロックラインで１つ以上の前記スレーブ通信装置と接続される通信システムのマスタ通信装置であって、前記シリアル通信路を介して、特定の前記スレーブ通信装置の状態を強制的に遷移させるために符号化／復号化方式の特殊な制御コードＲＳＴと、前記スレーブ通信毎に異なる識別子と、を繰り返し送出する特殊パターン出力制御部と、を備えることを特徴とする。
【００１５】
本発明の請求項８に係るスレーブ通信装置は、マスタ通信装置と１つ以上のスレーブ通信装置が、シリアル通信路でリング状に接続され、更に前記マスタ通信装置とシリアル通信路とは別のクロックラインで１つの以上の前記スレーブ通信装置と接続される通信システムのスレーブ通信装置であって、前記マスタ通信装置から受信した制御コードを判別し、所定回数以上、制御コードＲＳＴと自分宛の識別子を受信した場合に、前記スレーブ通信装置の状態を強制的に遷移させる特殊パターン検知部を備えていることを特徴とする。
【００１６】
本発明の請求項９に係る通信システムは、マスタ通信装置と１つ以上のスレーブ通信装置が、シリアル通信路でリング状に接続され、更に前記マスタ通信装置とシリアル通信路とは別のクロックラインで１つ以上の前記スレーブ通信装置と接続される通信システムであって、マスタ通信装置は、前記シリアル通信路を介して、特定の前記スレーブ通信装置の状態を強制的に遷移させるために符号化／復号化方式の特殊な制御コードＲＳＴと、前記スレーブ通信毎に異なる識別子と、を繰り返し送出する特殊パターン出力制御部を備え、スレーブ通信装置は、前記マスタ通信装置から受信した制御コードを判別し、所定回数以上、制御コードＲＳＴと自分宛の識別子を受信した場合に、前記スレーブ通信装置の状態を強制的に遷移させる特殊パターン検知部を備えていることを特徴とする。
【発明の効果】
【００１７】
以上の説明ように本発明による通信システムによれば、信号線を増やすことなく、異常な状態になったスレーブ通信装置のみを正常な状態に復帰させることができ、正常な通信装置まで再起動していた従来技術よりも、システム全体としての異常な状態からすばやく正常な状態に復帰させることができる。
【図面の簡単な説明】
【００１８】
【図１】第１、第３の実施の形態における通信システムの全体構成の例を示す図
【図２Ａ】第１、第２の実施の形態におけるマスタ通信装置の通信インタフェースの機能構成図
【図２Ｂ】第３の実施の形態におけるマスタ通信装置の通信インタフェースの機能構成図
【図３】実施の形態におけるデスクリプタ内の制御レジスタの一例を示す図
【図４】実施の形態におけるメモリコマンドパケットのフォーマット例を示す図
【図５】実施の形態におけるＩ／Ｏコマンドパケットのフォーマット例を示す図
【図６】実施の形態におけるデータパケットのフォーマット例を示す図
【図７】実施の形態におけるレスポンスパケットのフォーマット例を示す図
【図８】実施の形態におけるメッセージパケットのフォーマット例を示す図
【図９】実施の形態におけるリンクパケットのフォーマット例を示す図
【図１０】実施の形態における制御コードの機能割り当て例を示す図
【図１１Ａ】第１、第２の実施の形態におけるスレーブ通信装置の通信インタフェースの機能構成図
【図１１Ｂ】第３の実施の形態におけるスレーブ通信装置の通信インタフェースの機能構成図
【図１２】実施の形態における通信システムの全体動作のシーケンス図
【図１３Ａ】第１、第２の実施の形態における特殊パターン検知部の動作フローチャート
【図１３Ｂ】第３の実施の形態における特殊パターン検知部の動作フローチャート
【図１４】第１、第２の実施の形態におけるクロック信号の例を示す図
【図１５】第２、第３の実施の形態におけるリング状に接続した通信システムの例を示す図
【発明を実施するための形態】
【００１９】
（第１の実施の形態）
以下、本発明の第１の実施の形態について、図面を参照しながら説明する。第一の実施の形態では、簡単のために、マスタ通信装置とスレーブ通信装置の２台だけが接続され、その間で通信が行われるものとして説明する。
【００２０】
図１は、本発明の第１の実施形態に係る通信システムの全体構成を示す。本実施形態におけるマスタ通信装置１００（以下、マスタ１００）と、スレーブ通信装置１０１（以下、スレーブ１０１）とは、シリアル通信網１０２とクロックライン１１５を介して接続され、マスタ１００におけるイニシエータ１０３とスレーブにおけるターゲット１０４との通信を行うための通信インタフェース１０５、１０６をそれぞれ備える。それら通信インタフェース１０５、１０６は、イニシエータ１０３とターゲット１０４との通信全体（トランザクション層）の制御を行うトランザクション制御部１０７、１０８と、通信する各種パケットの解析や伝送エラーのチェック、あるいは通信路の方向制御やビット同期などデータリンク層の制御を行うリンク制御部１０９、１１０、トランスミッタ回路やレシーバ回路を含み、シリアル通信網１０２を用いた物理層の処理を行うＰＨＹ１１１、１１２を備えた同様の構成である。ここで、シリアル通信網１０２は、更にＤＡＴ０ライン（１１３）、ＤＡＴ１ライン（１１４）に示すような少なくとも２本のシリアル通信路からなり、ＤＡＴ０ライン（１１３）はマスタ１００からスレーブ１０１に向けたダウンリンク状態であり、ＤＡＴ１ライン（１１４）はスレーブ１０１からマスタ１００に向けたアップリンク状態である全二重モードを基本とするが、リンク制御部１０９、１１０による方向制御によって、それらＤＡＴ０ライン（１１３）、ＤＡＴ１ライン（１１４）をいずれもダウンリンクやアップリンクとした半二重モードとすることもできる。
【００２１】
特殊パターン出力制御部１１６は、イニシエータ１０３もしくはトランザクション制御部１０７から指示を受け、コマンドやデータの送受信を行う際の信号を出力するようにＰＨＹ１１１に指示する機能と、スレーブ１０１に対して異常な状態から正常な状態に強制的に状態を遷移させるための信号を出力するようにＰＨＹ１１１に指示する機能を持ち、その切替えの制御を行うモジュールである。例えば、コマンドを発行しデータの送受信をしている間は、正常であることをＰＨＹ１１１に出力させるようにしておき、外乱などによりデータの送受信ができなくなるような異常な状態になったときに、スレーブ１０１を強制的に正常な状態や初期化状態に遷移させるようＰＨＹ１１１に出力し、切替えて制御を行うことができる。
【００２２】
特殊パターン検知部１１７は、コマンドに応答しデータを送受信するときの正常な状態であるか、状態を強制的に遷移させるための特殊なパターンの信号もしくは制御コードがマスタ１００から送信されてきていないかを判定し、特殊なパターンの信号もしくは制御コードが送られてきている場合は、スレーブ１０１の状態を強制的に遷移させるモジュールである。尚、スレーブ１０１の状態を遷移させるとは、トランザクション制御部１０８、リンク制御部１１０、ターゲット１０４、のいずれかもしくは全部に対して、動作状態を変化させる信号（例えば、リセット信号など）を送出し、強制的に初期状態などの別の状態に遷移させることも含む。
【００２３】
次に、マスタ１００における通信インタフェース１０５の詳細構成を図２Ａの２００に示す。特殊パターン出力制御部２３０は、スレーブ１０１とシリアル通信路１０２を介してコマンドを発行しデータを送受信するときに同期して送出される高周波クロック信号（例えば４５ＭＨｚ〜１５０ＭＨｚなど）をクロックラインに出力させたり、スレーブ１０１の状態を強制的に遷移させるために高周波クロック信号とは異なる周期（例えば４５ＭＨｚ未満）で特殊なパターンを繰り返す特殊パターン信号をクロックライン１１５へ出力させたりする制御を行うモジュールである。例えば、コマンドを発行し、データの送受信をしている間は、高周波クロック信号を出力させるようにしておき、外乱などによりデータの送受信ができなくなるような異常な状態になったときに、特殊パターン信号を出力し、スレーブ１０１を強制的に正常な状態や初期化状態に遷移させるように信号を切替えることができる。
【００２４】
トランザクション制御部２０１は、イニシエータからの通信制御を行うための制御レジスタを含むデスクリプタ２０２と、データを一時蓄積する送受信バッファ２０４、２０５を含み、デスクリプタ２０２の設定や送受信バッファ２０４、２０５の状態に応じて通信開始のトリガーとなるコマンドパケットやデータパケットを生成するパケット生成部２０３を更に備える。デスクリプタ２０２の制御レジスタとしては、例えば、図３に示すように、メモリ空間の先頭アドレスや転送サイズを設定するための設定レジスタや、受信（Ｒｅａｄ）か送信（Ｗｒｉｔｅ）かを示すＲ／Ｗビット３００と、それら送受信を行う通信モードが全二重モードか半二重モードか、あるいはそれらいずれも可能かを示す通信モードフィールド３０１を含み、更にそれら設定に応じて通信を起動するための起動ビット３０２を含む起動レジスタが定義されている。ここで、イニシエータから複数の通信（トランザクション）をエントリ可能とするため、図３の例では、２５６組の制御レジスタを備えており、それらトランザクションはＩＤ０からＩＤ２５５までのトランザクションＩＤで識別される。イニシエータがこれら制御レジスタに設定してトランザクションを起動すると、パケット生成部２０３は、図４に例示するようなコマンドパケットを生成し、リンク制御部２０６に出力する。先頭２バイトは全パケットに共通のヘッダ部であり、デバイスＩＤは１つのマスタ１００にハブを介したり、リング状態に接続したりするなどして、複数のスレーブ１０１が接続された場合のスレーブの識別に用いられるＩＤである。カテゴリはパケットの種別、Ｒ／Ｗは受信（Ｒｅａｄ）あるいは送信（Ｗｒｉｔｅ）のいずれかを示し、トランザクションＩＤは上述のようにイニシエータから起動されたトランザクションを識別するために用いられる。ヘッダ部に続いて、カテゴリに応じて付加されるアーギュメント部は、データ通信時の通信モードを示す通信モードフィールド、後続のアドレスフィールドが４バイト（３２ビット）か８バイト（６４ビット）かを識別するためのアドレス長ビット、そしてそのアドレスフィールドの後には転送サイズフィールドが続く。ここで、カテゴリ４００で示すパケットタイプとしては、Ｉ／Ｏコマンド、メモリコマンド、レスポンス、データを含み、また、通信モードフィールド４０１は、マスタ１００の都合の良い通信モードが全二重モードであるか半二重モードであるかを示し、それらいずれも可能な場合は任意モードとしても良い。
【００２５】
次に、図５にはＩ／Ｏコマンドのフォーマットを示し、マスタ１００とスレーブ１０１との間でデスクリプタ２０２内の制御レジスタあるいはイニシエータやターゲット内の制御レジスタなどがマッピングされたＩ／Ｏ空間の通信を行うために用いられ、そのアーギュメント部はＩ／Ｏ空間に応じたアドレス長のＩ／Ｏアドレスを含み、送信時であれば実際の通信内容であるＩ／Ｏデータが続く。ここで、Ｉ／Ｏデータは、一般に制御レジスタの内容など、短い固定長のデータであることが多いため、常に全二重モードで通信を行うこととする。
【００２６】
次に、図６に示すデータパケットは、メモリコマンドパケット内の転送サイズ全体を含むのではなく、予めマスタとスレーブとの間でＩ／Ｏコマンドなどによって事前に共有したブロックサイズＢＬＫに分割（パケット化）したデータブロックを含むので、アーギュメント部として分割したデータブロックの番号を示すシーケンスＩＤを含み、その後に分割したデータブロックが続く。
【００２７】
イニシエータからデスクリプタ２０２内の制御レジスタ設定により起動されるトランザクションにおいては、図４に示すようなメモリコマンドパケットが生成される。次に、レスポンスパケットはマスタ１００が発行したコマンドパケットへの応答としてスレーブ１０１におけるトランザクション制御部１０８で生成・発行されるパケットであり、図７に示すように、ヘッダ部に続くアーギュメント部として、コマンドパケット同様の通信モードフィールド、コマンドパケットを正しく受け付けて応答可能（ＡＣＫ）かアドレスエラーや転送サイズエラーなどのエラーがあって応答不能（ＮＡＫ）かを示すＡＣＫビット、エラーの場合は、そのエラーの種別を示すエラーコードが続く。そして、受信のＩ／Ｏコマンドに対する応答の場合はＩ／Ｏデータが付加される。
【００２８】
最後に、メッセージパケットは、シリアル通信路１０２を用いて割り込み等のサイドバンド信号を通信するためのパケットであり、図８に示すように、ヘッダ部に続くアーギュメント部として、メッセージの種別を示すメッセージカテゴリ、メッセージのリクエスト（ＲＥＱ）か、それに対するアクノリッジ（ＡＣＫ）かを示すＲＥＱ／ＡＣＫビットと、メッセージの詳細を示すメッセージインデックスを含む。メッセージカテゴリ８００は、割り込み通知のための割り込みアサート、その割り込み要因が取り除かれたことを示す割り込みネゲート、伝送エラーが発生したことを示すＣＲＣエラー、転送中止を示すアボート、アイドル状態の消費電力を削減するための電力制御、および初期化のためのリセットなどを含み、それぞれにおけるメッセージインデックスについては、割り込みの場合、Ｉ／Ｏ空間にマッピングされた割り込み要因レジスタの番号を示し、ＣＲＣエラーの場合、エラーがあったデータパケットのシーケンスＩＤを示し、アボートの場合、アボート前に転送完了したデータパケットのシーケンスＩＤを示し、電力制御の場合、電力制御対象がＰＨＹ１１１、１１２やリンク制御部１０９、１１０であるか、あるいはトランザクション制御部１０７，１０８についても含むかを示す。
【００２９】
リンク制御部２０６は、リンクパケット生成・解析部２０７、方向制御部２０８、同期制御部２０９を含む。リンクパケット生成・解析部２０７は、トランザクション制御部２０１から入力した各種パケットについてのＣＲＣ演算を行い、図９に示すように、パケットサイズＰＫＴの末尾にフッタ部としてＣＲＣコードを付加してリンクパケットとしてＰＨＹ２１１に出力し、ＰＨＹ２１１から入力したリンクパケットについてはそのＣＲＣコードで伝送エラーチェックを行った後、ＣＲＣコードなどを取り除いて必要な部分のみトランザクション制御部２０１に出力する。方向制御部２０８は、全二重モードと半二重モードとの通信モード切替えに伴う通信路の方向制御を行い、同期制御部２０９は、そのような方向制御後に、ビット同期の制御を行う。
【００３０】
ＰＨＹ２１１は、データ入出力制御部２１３、クロック生成部２１４、シリアル通信路のデータに埋め込まれた高速クロックを基準となる高周波クロック信号との位相合わせを行って抽出するＣＤＲ（Ｃｌｏｃｋ  Ｄａｔａ  Ｒｅｃｏｖｅｒｙ）回路２１５、差動信号をクロックライン２２１で送信するための差動トランスミッタ２１６、シリアルデータをＤＡＴ０ライン２２２あるいはＤＡＴ１ライン２２３で送受信するための差動トランスミッタ２１７、２１９、差動レシーバ２１８、２２０を含む。
【００３１】
クロック生成部２１４は、特殊パターン出力制御部２３０の指示を受け、コマンドやデータの送受信を行うときの同期の基準となる高周波クロック信号を生成したり、状態を強制的に遷移させるための特殊パターン信号を生成したりする機能を持つ。
【００３２】
データ入出力制御部２１３は、更にシリアルデータに高速クロックを埋め込んで伝送するための８ｂ／１０ｂのようなエンコード方式で符号化する符号化部２２４、復号化する復号化部２２５、符号化データをシリアルデータに変換するパラレル／シリアル変換部２２６、差動レシーバ２１８、２２０から入力したシリアルデータをパラレルの符号化データとするシリアル／パラレル変換部２２７を含む。本実施形態での符号化部２２４、復号化部２２５は、従来技術同様に８ｂ／１０ｂ方式をサポートするものとするが、その他４ｂ／５ｂ、６４ｂ／６６ｂなど他のエンコード方式としても良い。８ｂ／１０ｂ方式には、符号化の冗長性を活かした制御コード（Ｋコードとも呼ばれる）が定義されており、符号化部２２４にはリンク制御部２０６からの指示により制御コードを生成するコード生成部２２８、復号化部２２５には復号化したパラレルデータから制御コードを検出するコード検出部２２９をそれぞれ含む。ここで、本実施形態における制御コードの機能割当て例を図１０に示す。リンク制御部２０６は、図１０に示す元データをＰＨＹ２１１に送信すると同時に制御コードへの変換を指示することで、符号化部２２４のコード生成部２２８により制御コードを生成する。図１０に示す各種制御コードの使用方法は、後述する正常時の全体動作において説明する。
【００３３】
次に、図１１Ａに示すスレーブ１０１における通信インタフェース１１００は、マスタ１００における通信インタフェース２００と同様の構成である。本実施形態におけるターゲット１０４はメモリデバイスとすると、トランザクション制御部１１０１はマスタ１００から受信したコマンドパケットからアドレスや転送サイズを抽出してデスクリプタ１１０２に登録し、送受信バッファ１１０４、１１０５を用いてターゲットであるメモリデバイスのアクセス準備を行い、準備ができるとパケット生成部１１０３にてレスポンスパケットを生成し、マスタ１００に送信してからデータ通信を開始する。リンク制御部１１０６ついてもマスタ１００側と同様の構成である。ＰＨＹ１１１１では、クロックの生成が不要なためクロック生成部を含まないが、差動レシーバ１１１５で受信した信号を特殊パターン検知部１１２９へ出力する点が異なる。
【００３４】
特殊パターン検知部１１２９は、マスタ１００からのコマンドに応答しデータを送受信するときの高周波クロック信号であるか、状態を強制的に遷移させるための特殊パターン信号であるかを判定し、特殊パターン信号が所定の回数以上であった場合にスレーブ１０１の状態を強制的に遷移させる信号を出力するモジュールである。強制的に状態を変化させる信号（例えば、リセット信号など）は、トランザクション制御部１０８、リンク制御部１１０、ターゲット１０４、のいずれかもしくは全部に対して送られ、それにより強制的に初期状態などの別の状態にスレーブ１０１が遷移する。
【００３５】
＜正常時の全体動作＞
以下に本実施の形態に係る通信システムの全体の動作について、図１、図２Ａおよび図１１Ａに示した実施形態の構成を参照しながら説明していく。図１２には、本実施形態に係る通信システムの半二重モードでスレーブ１０１からマスタ１００へデータを送信するときの全体動作のシーケンスを示す。
【００３６】
まず、通信初期化ステップＳ１２００においては、マスタ１００からスレーブ１０１に対してクロックライン１１５を介して高周波クロック信号の供給を開始する。以下の正常時の全体動作おいては、高周波クロック信号の周波数を所定の範囲内（例えば４５ＭＨｚから１５０ＭＨｚ）でマスタ１００から供給し、その高周波クロック信号に同期してシリアル通信網１０２でコマンドやデータが送受信されるものとする。また、シリアル通信網１０２は、電源が投入された直後の状態では、ＤＡＴ０ライン１１３をマスタ１００からスレーブ１０１に向けたダウンリンク、ＤＡＴ１ライン１１４をスレーブ１０１からマスタ１００に向けたアップリンクとして予め設定されているものとする。
【００３７】
ステップＳ１２０１において、マスタ１００はコマンドパケットを送信し、それを受信したスレーブ１０１は、ステップＳ１２０２においてレスポンスパケットを送信する。このようにして、マスタ１００とスレーブ１０１との間でコマンドパケットとレスポンスパケットをやりとりする。
【００３８】
ステップＳ１２０３で、データの送受信を全二重モードのまま行うか、半二重モードに移行してから行うかを確定させたり、データパケットのブロックサイズなどの制御情報を共有したりして、通信初期化が完了となる状態までステップＳ１２０１とステップＳ１２０２を繰り返す。
【００３９】
次にステップＳ１２０４にて、図４に示すパケットフォーマットで、Ｒ／Ｗビットをリードにし且つ通信モードを半二重モードにしたメモリコマンドパケットを送信する。
【００４０】
それを受けたスレーブ１０１は、ステップＳ１２０５において、図７に示すパケットフォーマットで、コマンドを受信したことを示すレスポンスをマスタ１００へ返信する。
【００４１】
次に、ステップＳ１２０６にてマスタ１００は、ＤＡＴ０ライン１１３の方向を切替えるために方向制御コードＨＤＸを送信する。
【００４２】
ステップＳ１２０７にてスレーブ１０１は、方向制御コードＨＤＸを受信したので制御コードＡＣＫを返す。マスタ１００は、ＡＣＫの制御コードを受け取ると、ＤＡＴ０ライン１１３をアップリンク状態とするため、差動トランスミッタ２１７から差動レシーバ２１８に切替える。
【００４３】
ステップＳ１２０８にてスレーブ１０１は、差動レシーバ１１１７から差動トランスミッタ１１１６に切替え、方向切替え後のＤＡＴ０ライン１１３を用いてスレーブ１０１からマスタ１００に制御コードＰＲＥ（プリアンブルコード）を送信し、ビット同期や高周波クロック信号の抽出を行って通信可能な状態とする。
【００４４】
ステップＳ１２０９、ステップＳ１２１０でスレーブ１０１は、アップリンク状態になっているＤＴＡ０ライン１１３とＤＡＴ１ライン１１４を使ってデータパケットを送信する。
【００４５】
データパケットの送信を送り終えたら、ステップＳ１２１１にて、スレーブ１０１は、ＤＡＴ０ライン１１３をダウンリンク状態に戻すため、差動トランスミッタ１１１６から差動レシーバ１１１７に切替え、ＤＡＴ１ライン１１４を用いて方向制御コードＦＤＸの送信を開始し、マスタ１００からの制御コードＰＲＥがくるまで方向制御コードＦＤＸを送信し続ける。
【００４６】
次にステップＳ１２１２にて、マスタ１００は、方向制御コードＦＤＸを受信するとＤＡＴ０ライン１１３をダウンリンク状態に戻すため差動レシーバ２１８から差動トランスミッタ２１７に切替える。切替えをした後に制御コードＰＲＥの送信を開始し、スレーブ１０１からの方向制御コードＦＤＸが停止するまで制御コードＰＲＥを送信し続ける。
【００４７】
次にステップＳ１２１３にて、スレーブ１０１は、制御コードＰＲＥを受信すると、制御コードＦＤＸから制御コードＡＣＫの送信に切替えることにより、全二重モードに戻す方向切替えと、２つのデータパケットの転送が完了したことをマスタ１００に示す。
【００４８】
次にステップＳ１２１４にて、マスタ１００は、転送が必要なデータが、まだ残っている場合は、ステップＳ１２０６からやり直し、全データを受信した場合は、次のメモリリードコマンドやメモリライトコマンドの処理に移行する。
【００４９】
＜強制的に状態を遷移させる方法１＞
以上のように、正常にデータを送受信しているときの動作について説明してきたが、外部からの電子ノイズ、熱、放射線等の外乱を受け、スレーブ１０１の中のデータの送受信を指示するモジュール（例えば、図１におけるターゲット１０４、トランザクション制御部１０８、リンク制御部１１０）が異常な状態になり、例えば、図１２のステップＳ１２０７の制御コードＡＣＫが返信できなかったり、マスタ１００がステップＳ１２１２の制御コードＰＲＥを送信してもステップＳ１２１１のスレーブ１０１が制御コードＦＤＸを送出し続けたりした場合に、その状態から強制的に別の正常な状態を遷移させる方法について図１、図２Ａ、図１１Ａ、図１３Ａ、図１４を用いて説明する。
【００５０】
マスタ１００は、上述した異常を検知すると、まずスレーブ１０１に対するデータの出力を停止し、特殊パターン出力制御部１１６に対して、スレーブ１０１で異常が発生したことを通知する。尚、マスタ１００の中のどのモジュールが特殊パターン出力制御部に通知を行うかは、通信インタフェース１０５の中のモジュールでも、イニシエータ１０３であっても構わず限定するものではない。
【００５１】
特殊パターン出力制御部１１６は、スレーブ１０１が異常であるという通知を受けて、特殊パターン信号を繰り返し送出するように、クロック生成部２１４を制御する。クロック生成部２１４は、指示を受け、特殊パターン信号を差動トランスミッタ２１６とクロックライン１１５を介して、スレーブ１０１に供給する。ここで特殊パターンの信号とは、例えば図１４の特殊パターン１（１４１）にあるような信号で、Ｔａ、Ｔｂ１、Ｔｃは、正常の状態でデータを送受信しているときの高周波クロック信号（１４０）の周期Ｔｒｆ  より十分に長い時間を予め決めておけばよい。
【００５２】
次にスレーブ１０１の中の特殊パターン検知部１１７の動作について図１３Ａを用いて説明する。特殊パターン検知部１１７は、電源が投入された直後は、ステップＳ１３０１にて特殊パターン受信回数が０回に初期化される。次にステップ１３０２にて、クロックの周波数がデータの送受信が行える高周波クロック信号の範囲内であるか判定する。（例えば４５ＭＨｚから１５０ＭＨｚ）。この周波数が範囲内であるか判定する方法は、さまざま方法があり、例えばスレーブ１０１の中にある発振器を用いて、最高周波数の２倍以上でサンプリングするなどして判定すればよい。
【００５３】
マスタ１００が異常な状態を検知し、特殊パターン信号を送出した場合（例えば特殊パターン信号１（１４１））は、ステップＳ１３０２で高周波クロック信号の範囲からはずれるため、ステップＳ１３０３に移行する。尚、マスタ１００から高周波クロック信号が送られてくる場合であれば、ステップＳ１３０１とステップＳ１３０２の繰り返しとなり、強制状態遷移信号が出力されることはない。
【００５４】
ステップＳ１３０３にて、所定時間以上、Ｌ状態が継続したか判定し、継続していない場合は、ステップＳ１３０１に戻り、継続していた場合は、ステップＳ１３０４に移行する。具体的には、特殊パターン信号１のＴａが所定時間以上、継続するかサンプリングするなどして判定する。ステップ１３０４にて、Ｈ状態がスレーブ１０１自身に割り当てられた所定時間の範囲内であるか判定し、範囲外の場合は、ステップＳ１３０１に戻り、範囲内であれば、ステップＳ１３０５に移行する。Ｈ状態が範囲内であるか調べる方法としては、例えば、クロック信号がＨ状態になったことを検知してからサンプリングし、その時間が所定の範囲内（Ｔｂ１の範囲内）であったかを計測して判定するなどすれば良い。
【００５５】
尚、マスタ１００が低消費電力モードへの移行などクロックを停止したい場合においてもクロックライン１１５の信号がＬ（もしくはＨ）状態が継続するような場合は、ステップＳ１３０３やステップＳ１３０４の判定にて、ステップＳ１３０１のところに戻るため、強制状態遷移信号が出力されることはない。
【００５６】
ステップＳ１３０５では、特殊パターン信号を受信した回数に１を加え、次のステップに移行する。
【００５７】
ステップＳ１３０６では、特殊パターン信号を受信した回数が所定回数に達したか確認し、達していない場合は、ステップＳ１３０３に移行し、受信回数が所定回数に達していた場合は、ステップＳ１３０７に移行する。
【００５８】
ステップＳ１３０７では、強制的に状態を遷移させる信号をスレーブ１０１の中の各モジュールに送出し、正常な状態に遷移させる。例えば、本実施の形態のように、スレーブ１０１が、ＡＣＫを返信しない状態で止まっているとした場合であれば、ステップＳ１２０４のメモリコマンドを受信できる状態に遷移させたり、ステップＳ１２００のクロックの供給を受け始めたところに遷移させたりするように予め設定しておけば良い。
【００５９】
尚、本実施の形態で、Ｌ状態が継続したかＨ状態が継続したか判定しているが、これは特殊パターン信号１（１４１）を使った場合の記載であり、図１３Ａのフローチャートは、特殊パターン信号に合わせて変更されるのは、勿論であり限定されるものではない。
【００６０】
また、本第１の実施の形態であれば、スレーブ１０１がステップＳ１２０９でＤＡＴ０ライン１１３とＤＡＴ１ライン１１４の両方からデータパケットが送信され続けるような異常な場合でも、クロックライン１１５を介して特殊パターン信号を送信でき、強制的に正常な状態に遷移させることができるため好適である。
【００６１】
（第２の実施の形態）
本発明の第２の実施の形態では、マスタ通信装置と複数のスレーブ通信装置が接続される通信システムで、ある特定のスレーブ通信装置が異常な状態に陥った場合に、そのスレーブ通信装置のみを強制的に正常な状態に遷移させる方法について図１、図２Ａ、図１１Ａ、図１２、図１３Ａ、図１４、図１５を参照しながら説明する。
【００６２】
図１５は、本発明の第２の実施の形態に係る通信システムの全体構成を示す。マスタ通信装置１５００（以下、マスタ１５００）とスレーブ通信装置１５０１（以下、スレーブ１５０１）とスレーブ通信装置１５０２（以下、スレーブ１５０２）とスレーブ通信装置１５０３（以下、スレーブ１５０３）とは、シリアル通信路でリング状に相互接続されている。また、マスタ１５００からのクロック信号を受信できるようにスレーブ１５０１、スレーブ１５０２、スレーブ１５０３は、共通のクロックラインで接続されている。尚、マスタ１５００の内部のモジュールの構成は、第１の実施の形態におけるマスタ１００と同様の構成であり、同様にスレーブ１５０１、スレーブ１５０２、スレーブ１５０３も内部のモジュールの構成は、第１の実施の形態におけるスレーブ１０１と同じ構成を持つものとして説明する。
【００６３】
＜正常時の全体動作＞
マスタ１５００がスレーブ１５０１に対してＩＯコマンドを発行し、レスポンスを受信する方法について説明する。マスタ１５００が起動すると、通信初期化ステップにおいて、マスタ１５００からスレーブ１５０１、スレーブ１５０２、スレーブ１５０３に対してクロックライン１５１４を介して高周波クロック信号の供給が開始される。高周波クロック信号は、正常な状態であれば所定の範囲内の周波数（例えば４５ＭＨｚから１５０ＭＨｚ）で供給されるものとする。また、シリアル通信路１５１０は、電源が投入された直後の状態では、マスタ１５００からスレーブ１５０１に向けたダウンリンクに設定され、同様にシリアル通信路１５１１は、スレーブ１５０１からスレーブ１５０２に向けたダウンリンク、シリアル通信路１５１２は、スレーブ１５０２からスレーブ１５０３に向けたダウンリンク、シリアル通信路１５１３は、スレーブ１５０３からマスタ１５００に向けたダウンリンクに予め設定されているものとする。
【００６４】
次にマスタ１５００がコマンドパケットを送信した場合、それを受信したスレーブ１５０１は、自分宛のコマンドパケットであるか確認する。その確認をする方法は、図４にあるデバイスＩＤが自分に割り当てられたものであるか判定すれば良い。自分宛のコマンドでない場合は、コマンドパケットをそのままシリアル通信路１５１１を介してスレーブ１５０２に渡し、自分宛のコマンドパケットであればレスポンスを生成し、シリアル通信路１５１１を介してスレーブ１５０２に渡す。スレーブ１５０２に渡されたパケットは、同様に自分宛であるかパケットにあるデバイスＩＤで判定し、必要に応じて処理を行い、シリアル通信路１５１２を介してスレーブ１５０３に渡す。このようにして、シリアル通信路を介して、最終的にマスタ１５００はレスポンスを受信することになる。このことを言い換えると、パケットにあるデバイスＩＤが判定するスレーブ通信装置と一致しない場合は、パケットは、そのままシリアル通信路を通して隣のスレーブ装置に渡されることになり、デバイスＩＤが一致するスレーブ通信装置以外のスレーブ通信装置は、単なるシリアル通信路と見なすことができる。そのため、図１２のようにマスタ通信装置とスレーブ通信装置が１対１であった場合と、同様のシーケンスで通信ができる。
【００６５】
＜強制的に状態を遷移させる方法２＞
次に、第２の実施の形態のようにリング状に接続された通信システムにおいて、外部からの電子ノイズ、熱、放射線等の外乱を受け、スレーブ１５０２の中のデータの送受信を指示するモジュール（例えば、図１におけるターゲット１０４、トランザクション制御部１０８、リンク制御部１１０）が異常な状態になり、例えば、図１２のステップＳ１２０７の制御コードＡＣＫが返信できなかったり、マスタ１５００が制御コードＰＲＥを送信しても、スレーブ１５０２が制御コードＦＤＸを送出し続け止まらなくなったりした場合に、その状態から強制的に正常な状態に遷移させる方法について説明する。
【００６６】
マスタ１５００とスレーブ１５０２は、クロックライン１５１４で接続されているため、上述した異常を検知すると、まずシリアル通信路１５１０にデータを出力するのを停止し、特殊パターン出力制御部１１６に対してスレーブ１５０２が異常になったことを通知する。特殊パターン出力制御部１１６は、スレーブ１５０２に対する特殊パターン信号（例えば図１４の特殊パターン信号２（１４２））を繰り返し出力するようクロック生成部２１４を制御する。クロック生成部２１４は、特殊パターン信号２を生成し差動トランスミッタ２１６に出力し、クロックライン１５１４を介して、スレーブ１５０１、スレーブ１５０２、スレーブ１５０３に供給される。ここで、特殊パターン信号２のＴａ、Ｔｂ２、Ｔｃは、正常の状態でデータを送受信しているときの高周波クロック信号（１４０）の周期Ｔｒｆより十分に長い時間で、且つリング状に接続されているスレーブ通信装置毎に異なる特殊パターン信号を予め決めておけばよい。具体的には、スレーブ１５０１が特殊パターン信号１（１４１）で、スレーブ１５０３が特殊パターン信号３と予め決めている場合には、スレーブ１５０２は、Ｈ状態の時間がＴｂ１とＴｂ３と異なる時間のＴｂ２として、出力すれば良い。
【００６７】
一方、スレーブ１５０２の中の特殊パターン検知部１１７の動作は、リング状に複数のスレーブ通信装置が接続されていたとしても第１の実施の形態の図１３Ａと同様に処理がされ、ステップＳ１３０４が予めＴｂ２の時間に設定されていれば、強制的に正常な状態に遷移されることは明らかである。そのため、ここでの図１３Ａでの説明は省略する。
【００６８】
またスレーブ１５０１、スレーブ１５０３については、特殊パターン信号２（１４２）を受信したとしても、図１３ＡのクロックのＨ状態が自分宛の所定時間（Ｔｂ１、Ｔｂ３）の範囲外であるため、強制的に状態が遷移されることはない。
【００６９】
以上のように本発明の第２の実施の形態であれば、ある特定のスレーブ通信装置が、外部からの電子ノイズ、熱、放射線等の外乱を受け異常な状態となり、正常に動作している他のスレーブ通信装置とも通信ができなくなった場合でも信号線を増やすことなく、異常になった特定のスレーブ通信装置のみを正常な状態に復帰させることができる。
【００７０】
尚、図１５において、クロックラインは、スレーブ１５０１、スレーブ１５０、スレーブ１５０３で共通のクロックラインとしているが、マスタ１５００が、それぞれのスレーブ通信装置に対して、専用のクロックラインで接続されている構成であっても良い。
【００７１】
（第３の実施の形態）
第１、第２の実施の形態では、スレーブ通信装置が異常な状態になったときに、クロックラインを介して、特殊パターン信号を使って強制的に状態を変化させることを説明したが、次にシリアル通信路を介して特殊な制御コードと識別子を使って強制的に状態を変化させる方法について図１、図２Ｂ、図１１Ｂ、図１３Ｂ、図１５を用いて説明する。簡単のために、マスタ通信装置とスレーブ通信装置は第１の実施の形態の図１と同じよう１対１で接続され、その内部の主要な構成はマスタ１００とスレーブ１０１の構成と同じものとし、第１の実施の形態と異なる構成のみを以下に説明する。
【００７２】
マスタ１００における通信インタフェース１０５の詳細構成については、図２Ｂの２００のようになり、特殊パターン出力制御部２３０が、データ入出力制御部２１３を制御し、強制的に遷移させるために制御コードＲＳＴと、その後に続く識別子を繰り返し生成するように指示する点を除き、図２Ａと同じである。
【００７３】
制御コードＲＳＴは、８ｂ／１０ｂのようなエンコード方式であれば、符号化の冗長性を活かした制御コードであって、例えば図１０に示す制御コードの表のうち正常にデータの送受信が行われている間では使用していないＲｅｓｅｒｖｅｄとなっているＫ３０．７などに割り付ければ良く、予め決めておけば良い。また識別子は、制御コードではなくデータコード（Ｄコードとも呼ばれる）で良く、複数のスレーブ通信装置が接続された場合を想定し、それぞれのスレーブ通信装置が自分宛の制御コードＲＳＴであるか判定するために使用する。そのため識別子は、複数のスレーブ通信装置が接続されている状態で、それぞれを区別できる番号のようなものであれば何でも良い。
【００７４】
スレーブ１０１における通信インタフェース１０６の詳細構成については、図１１Ｂのようになり、復号化部１１２４が８ｂ／１０ｂのようなエンコード方式で符号化されたシリアルデータを復号化する機能に加え、復号化した際に、強制的に状態を遷移させる制御コードＲＳＴであるか判定し、制御コードＲＳＴであった場合に、特殊パターン検知部１１２９に通知し、以降のシリアルデータを特殊パターン検知部で判定ができるようになっていることを除き、図１１Ａと同じである。尚、図１１Ｂでは特殊パターン検知部１１２９を復号化部１１２４の中にあるが、制御コードを判定できるのであればスレーブ通信装置内のどこにあっても良い。
【００７５】
＜正常時の全体動作＞
正常時の全体動作については、第１の実施の形態と同じであるので、ここでは説明を省略する。
【００７６】
＜強制的に状態を遷移させる方法３＞
外部からの外乱を受け、スレーブ１０１が異常な状態になり、例えば、図１２のステップＳ１２０７の制御コードＡＣＫが返信できなかったり、マスタ１００がステップＳ１２１２の制御コードＰＲＥを送信しても、ステップＳ１２１１のスレーブ１０１が制御コードＦＤＸを送出し続け止まらなくなったりした場合に、その状態から強制的に別の正常な状態に遷移させる方法について説明する。
【００７７】
マスタ１００は、異常を検知すると、まずスレーブ１０１に対してシリアル通信網１０２を介してデータの出力を停止し、特殊パターン出力制御部２３０に対して、異常の発生したスレーブ１０１に対して特殊パターンの制御コードを出力するように指示する。
【００７８】
特殊パターン出力制御部２３０は、強制的に状態を遷移させるための制御コードＲＳＴと、その後に続く識別子を繰り返し生成するようデータ入出力制御部２２４を制御する。符号化部２２４で生成された制御コードＲＳＴと識別子は、Ｐ／Ｓ変換部２２６に渡され、差動トランスミッタ２１７とシリアル通信網１０２を通してスレーブ１０１へ送出される。
【００７９】
次にスレーブ１０１の中の特殊パターン検知部１１７の動作について図１３Ｂを用いて説明する。特殊パターン検知部１１７は、まずステップＳ１３０１にて特殊パターン受信回数を０回に初期化される。
【００８０】
次にステップＳ１３０８にて制御コードが制御コードＲＳＴであるか判定する。判定した結果、制御コードＲＳＴではない場合は、ステップＳ１３０１に移行する。正常の動作であれば、このステップＳ１３０８とステップＳ１３０１が繰り返されるため、強制的に状態を遷移させる信号が出力されることはない。制御コードが制御コードＲＳＴであった場合は、ステップＳ１３０９へ移行する。
【００８１】
ステップＳ１３０９では、制御コードと共に送られてきた識別子が自身宛に予め割り当てられたものであるか判定する。判定した結果、自分宛ではない場合はステップＳ１３０１に戻り、自分宛であればステップ１３０５に移行する。
【００８２】
ステップＳ１３０５では、特殊パターン受信回数に１を加え、次のステップに移行する。
【００８３】
ステップＳ１３０６では、特殊パターン受信回数が所定回数に達したか確認し、達していない場合は、ステップＳ１３０８に移行し、受信回数が所定回数に達していた場合は、ステップＳ１３０７に移行する。
【００８４】
ステップＳ１３０７では、強制的に状態を遷移させる信号をスレーブ１０１の各モジュールに送出し、状態を遷移させる。例えば、本実施の形態のように、スレーブ１０１が、ＡＣＫを返信しない状態で止まっているとした場合であれば、ステップＳ１２０４のメモリコマンドを受信できる状態に遷移させたり、ステップＳ１２００のクロックの供給を受け始めたところに遷移させたりするようにすれば良い。尚、遷移させる場所は、これに限らず適切な場所を予め決めておけばよい。
【００８５】
簡単にするためマスタ通信装置とスレーブ通信装置は図１のように接続されているものとして説明したが、図１５のようにリング状に接続されていた場合であっても第２の実施の形態で説明したようにデバイスＩＤと識別子が自分宛ではないとスレーブ通信装置が判断すれば、受信したパケット、制御コード、識別子を隣接するスレーブ通信装置に渡すため、自分宛以外のスレーブ通信装置は、単なるシリアル通信路と見なすことができる。よって、図１５のようにリング状に接続されていた場合でも、特殊な制御コードと識別子を使って強制的に状態を遷移させることができる。
【００８６】
以上のように第１〜３の実施の形態に基づいて説明してきたが、本発明は上記の実施の形態に限定されないのは勿論である。本発明の趣旨を逸脱しない範囲で実施変更することができる。本実施の形態において使用した数値は一例であり、その他の数値を使用しても良い。本実施の形態においては、強制的に状態を遷移させた後については説明していないが、スレーブ通信装置から強制的に状態が遷移されたかどうか確実なものにするために制御コードＡＣＫなどで応答を返すようにしても良い。
【００８７】
特殊パターン検知部と特殊パターン出力制御部は、トランザクション部、ＰＨＹ、リング制御部、イニシエータ、ターゲットのいずれかもしくは全部と組み合わせて機能モジュールとしても良く、更には、その機能モジュールをＬＳＩの中に組み込んだ構成としても良い。マスタ通信装置とスレーブ通信装置の間を、クロックラインとシリアル通信路で接続し、差動信号で送受信するように説明したが、シングルエンド信号を用いても良い。
【００８８】
メモリリードコマンドを使ったフローチャートで説明したが、メモリライトコマンド、その他のＩＯリードコマンド、ＩＯライトコマンドを使ったデータの送受信をする途中の段階で異常状態が発生した場合でも強制的に状態を遷移させることができるのは勿論である。
【００８９】
更には、図１０に示す制御コードＨＤＸ，ＦＤＸ、ＰＲＥ、ＡＣＫや、図８のメッセージパケット、図９のリンクパケットなど、他のフォーマットのパケットを使っても良く、特に限定されるものではない。
【産業上の利用可能性】
【００９０】
本発明に係るマスタ通信装置とスレーブ通信装置とで構成される通信システムは、信号線を増やすことなく、スレーブ通信装置を異常な状態から正常な状態に復帰させることができるので、マスタ通信装置は、持ち歩くことのできる小型の動画記録再生装置等のＡＶ機器あるいは携帯電話等の通信機器などの用途に適用でき、スレーブ通信装置は、ＳＤメモリーカードなどに代表される不揮発性記憶装置やワイヤレスＬＡＮなどの装置の中に組み込まれる半導体モジュールなどの用途にも適用できる。
【符号の説明】
【００９１】
１００，１５００    マスタ通信装置
１０１    スレーブ通信装置
１０２    シリアル通信網
１０３    イニシエータ
１０４    ターゲット
１０５，２００    マスタ通信装置側の通信インタフェース
１０６，１１００    スレーブ通信装置側の通信インタフェース
１０７，２０１    マスタ通信装置側のトランザクション制御部
１０８，１１０１    スレーブ通信装置側のトランザクション制御部
１０９，２０６    マスタ通信装置側のリンク制御部
１１０，１１０６    スレーブ通信装置側のリンク制御部
１１１    マスタ通信装置側のＰＨＹ
１１２    スレーブ通信装置側のＰＨＹ
１１３，２２２，１１２１    ＤＡＴ０ライン
１１４，２２３，１１２２    ＤＡＴ１ライン
１１５，２２１，１１２０，１５１４    クロックライン
１１６，２３０    特殊パターン出力制御部
１１７，１１２９    特殊パターン検知部
１４０    高周波クロック信号
１４１    特殊パターン信号１
１４２    特殊パターン信号２
１４３    特殊パターン信号３
２０２，１１０２    デスクリプタ
２０３，１１０３    パケット生成部
２０４，１１０４    送信バッファ
２０５，１１０５    受信バッファ
２０７，１１０７    リンクパケット生成・解析部
２０８，１１０８    方向制御部
２０９，１１０９    同期制御部
２１０，１１１０    リンク制御部内インタフェース
２１１，１１１１    ＰＨＹ
２１２，１１１２    ＰＨＹ内インタフェース
２１３，１１１３    データ入出力制御部
２１４    クロック生成部
２１５，１１１４    ＣＤＲ回路
２１６    クロックライン差動トランスミッタ
２１７，１１１６    ＤＡＴ０ライン差動トランスミッタ
２１８，１１１７    ＤＡＴ０ライン差動レシーバ
２１９，１１１８    ＤＡＴ１ライン差動トランスミッタ
２２０，１１１９    ＤＡＴ１ライン差動レシーバ
２２４，１１２３    符号化部
２２５，１１２４    復号化部
２２６，１１２５    パラレル／シリアル変換部
２２７，１１２６    シリアル／パラレル変換部
２２８，１１２７    コード生成部
２２９，１１２８    コード検出部
１１１５    クロックライン差動レシーバ
１５０１    スレーブ通信装置１
１５０２    スレーブ通信装置２
１５０３    スレーブ通信装置３
１５１０    第１のシリアル通信路
１５１１    第２のシリアル通信路
１５１２    第３のシリアル通信路
１５１３    第４のシリアル通信路
【図１】
2011114625.tif 000003
【図２Ａ】
2011114625.tif 000004
【図２Ｂ】
2011114625.tif 000005
【図３】
2011114625.tif 000006
【図４】
2011114625.tif 000007
【図５】
2011114625.tif 000008
【図６】
2011114625.tif 000009
【図７】
2011114625.tif 000010
【図８】
2011114625.tif 000011
【図９】
2011114625.tif 000012
【図１０】
2011114625.tif 000013
【図１１Ａ】
2011114625.tif 000014
【図１１Ｂ】
2011114625.tif 000015
【図１２】
2011114625.tif 000016
【図１３Ａ】
2011114625.tif 000017
【図１３Ｂ】
2011114625.tif 000018
【図１４】
2011114625.tif 000019
【図１５】
2011114625.tif 000020