(57)【特許請求の範囲】
【請求項１】
マスタと該マスタと複数の信号線によってシリアル通信可能に接続されているスレーブとを有する情報処理装置であって、
前記マスタが、前記複数の信号線のうちのクロック信号線によって前記スレーブに伝送するクロックの周期より長い期間、前記複数の信号線に含まれる第１データ信号線の信号レベルを第１の信号レベルから第２の信号レベルに変化させ、前記スレーブが、前記マスタによって前記第１データ信号線の信号レベルが前記第２の信号レベルに変化されたことに基づいて、前記複数の信号線のうちのクロック信号線によって前記マスタに伝送するクロックの周期より長い期間、前記複数の信号線に含まれる第２データ信号線の信号レベルを前記第１の信号レベルから前記第２の信号レベルに変化させる、ことにより前記マスタと前記スレーブとがハンドシェークするように構成されており、
前記マスタが、前記スレーブによって前記第２データ信号線の信号レベルが前記第２の信号レベルに変化されたことに基づいて、前記スレーブに伝送するクロックの周期より長い期間、前記第１データ信号線の信号レベルを前記第１の信号レベルに変化させ、前記スレーブが、前記マスタによって前記第１データ信号線の信号レベルが前記第１の信号レベルに変化されたことに基づいて、前記マスタに伝送するクロックの周期より長い期間、前記第２データ信号線の信号レベルを前記第１の信号レベルに変化させる、ことにより前記マスタと前記スレーブとがハンドシェークするように構成されている
ことを特徴とする情報処理装置。
【請求項２】
マスタ装置とスレーブ装置とを含むシリアル通信システムであって、
前記マスタ装置と前記スレーブ装置とは、
前記マスタ装置から前記スレーブ装置に第１のクロック信号を伝送する第１クロック信号線と、
前記マスタ装置から前記スレーブ装置に第１のデータ信号を伝送する第１データ信号線と、
前記スレーブ装置から前記マスタ装置に第２のクロック信号を伝送する第２クロック信号線と、
前記スレーブ装置から前記マスタ装置に第２のデータ信号を伝送する第２データ信号線と、
により接続されており、
前記マスタ装置は、
少なくとも前記第１のクロック信号の周期より長い期間、前記第１データ信号線をアサートするよう制御する第１駆動手段と、
前記第２データ信号線がアサートされているか否かを判定する第１判定手段と、
前記第１駆動手段により前記第１データ信号線をアサートした後、少なくとも前記第２のクロック信号の周期より長い期間、前記第２データ信号線がアサートされていることが前記第１判定手段により検出されると、前記第１データ信号線のアサートを解除するよう制御する第１解除手段と、
前記第１解除手段により前記第１データ信号線のアサートを解除した後、少なくとも前記第２のクロック信号の周期より長い期間、前記第２データ信号線がアサートされていないことが前記第１判定手段により検出された場合、前記スレーブ装置が通信可能状態にあると判定する第１状態判定手段と、
を備え、
前記スレーブ装置は、
前記第１データ信号線がアサートされているか否かを判定する第２判定手段と、
少なくとも前記第１のクロック信号の周期より長い期間、前記第１データ信号線がアサートされていることが前記第２判定手段により検出されると、少なくとも前記第２のクロック信号の周期より長い期間、前記第２データ信号線をアサートするよう制御する第２駆動手段と、
前記第２駆動手段により前記第２データ信号線をアサートした後、少なくとも前記第１のクロック信号の周期より長い期間、前記第１データ信号線がアサートされていないことが前記第２判定手段により検出された場合、前記マスタ装置が通信可能状態にあると判定すると共に前記第２データ信号線のアサートを解除するよう制御する第２状態判定手段と、
を備えることを特徴とするシリアル通信システム。
【請求項３】
前記第１判定手段は、前記第２のクロック信号に従って前記第２データ信号線の信号をサンプリングし、所定回数連続してアサートされているか否かを判定するよう構成されており、
前記第２判定手段は、前記第１のクロック信号に従って前記第１データ信号線の信号をサンプリングし、所定回数連続してアサートされているか否かを判定するよう構成されている、
ことを特徴とする請求項２に記載のシリアル通信システム。
【請求項４】
前記第１判定手段は、前記第２のクロック信号に従って前記第２データ信号線の信号をサンプリングし、該サンプリングにより得られたシリアル信号をＭビット（Ｍは２以上の整数）のパラレル信号に変換し、該変換されたＭビットのパラレル信号のＭビットの全てがアサートされているか否かを判定するよう構成されており、
前記第２判定手段は、前記第１のクロック信号に従って前記第１データ信号線の信号をサンプリングし、該サンプリングにより得られたシリアル信号をＮビット（Ｎは２以上の整数）のパラレル信号に変換し、該変換されたＮビットのパラレル信号のＮビットの全てがアサートされているか否かを判定するよう構成されている、
ことを特徴とする請求項２に記載のシリアル通信システム。
【請求項５】
マスタと該マスタと複数の信号線によってシリアル通信可能に接続されているスレーブとを有する情報処理装置における通信初期化の方法であって、
前記マスタが、前記複数の信号線のうちのクロック信号線によって前記スレーブに伝送するクロックの周期より長い期間、前記複数の信号線に含まれる第１データ信号線の信号レベルを第１の信号レベルから第２の信号レベルに変化させる工程と、
前記スレーブが、前記マスタによって前記第１データ信号線の信号レベルが前記第２の信号レベルに変化されたことに基づいて、前記複数の信号線のうちのクロック信号線によって前記マスタに伝送するクロックの周期より長い期間、前記複数の信号線に含まれる第２データ信号線の信号レベルを前記第１の信号レベルから前記第２の信号レベルに変化させる工程と、
前記マスタが、前記スレーブによって前記第２データ信号線の信号レベルが前記第２の信号レベルに変化されたことに基づいて、前記スレーブに伝送するクロックの周期より長い期間、前記第１データ信号線の信号レベルを前記第１の信号レベルに変化させる工程と、
前記スレーブが、前記マスタによって前記第１データ信号線の信号レベルが前記第１の信号レベルに変化されたことに基づいて、前記マスタに伝送するクロックの周期より長い期間、前記第２データ信号線の信号レベルを前記第１の信号レベルに変化させる工程と、
を含むことを特徴とする方法。
【請求項６】
マスタ装置とスレーブ装置とを含むシリアル通信システムにおける通信初期化の方法であって、
前記マスタ装置と前記スレーブ装置とは、
前記マスタ装置から前記スレーブ装置に第１のクロック信号を伝送する第１クロック信号線と、
前記マスタ装置から前記スレーブ装置に第１のデータ信号を伝送する第１データ信号線と、
前記スレーブ装置から前記マスタ装置に第２のクロック信号を伝送する第２クロック信号線と、
前記スレーブ装置から前記マスタ装置に第２のデータ信号を伝送する第２データ信号線と、
により接続されており、前記方法は、
前記マスタ装置が、少なくとも前記第１のクロック信号の周期より長い期間、前記第１データ信号線をアサートするよう制御する第１駆動工程と、
前記スレーブ装置が、少なくとも前記第１のクロック信号の周期より長い期間、前記第１データ信号線がアサートされていることが検出されると、少なくとも前記第２のクロック信号の周期より長い期間、前記第２データ信号線をアサートするよう制御する第２駆動工程と、
前記マスタ装置が、前記第１駆動工程により前記第１データ信号線をアサートした後、少なくとも前記第２のクロック信号の周期より長い期間、前記第２データ信号線がアサートされていることが検出されると、前記第１データ信号線のアサートを解除するよう制御する第１解除工程と、
前記スレーブ装置が、前記第２駆動工程により前記第２データ信号線をアサートした後、少なくとも前記第１のクロック信号の周期より長い期間、前記第１データ信号線がアサートされていないことが検出された場合、前記マスタ装置が通信可能状態にあると判定すると共に前記第２データ信号線のアサートを解除するよう制御する第２状態判定工程と、
前記マスタ装置が、前記第１解除工程により前記第１データ信号線のアサートを解除した後、少なくとも前記第２のクロック信号の周期より長い期間、前記第２データ信号線がアサートされていないことが検出された場合、前記スレーブ装置が通信可能状態にあると判定する第１状態判定手段と、
を含むことを特徴とする方法。
【請求項７】
シリアル通信装置であって、
第１クロック信号線に第１のクロック信号を送信する第１クロック端子と、
第１データ信号線に第１のデータ信号を送信する第１データ端子と、
第２クロック信号線から第２のクロック信号を受信する第２クロック端子と、
第２データ信号線から第２のデータ信号を受信する第２データ端子と、
前記シリアル通信装置と通信可能な対向装置が、前記第１クロック端子、前記第１データ端子、前記第２クロック端子、前記第２データ端子の４つの端子を介して接続されているかを判定する判定手段と、
を備え、
前記判定手段は、
少なくとも前記第１のクロック信号の周期より長い期間、前記第１データ信号線をアサートするよう制御する駆動手段と、
前記第２データ信号線がアサートされているか否かを判定する判定手段と、
前記駆動手段により前記第１データ信号線をアサートした後、少なくとも前記第２のクロック信号の周期より長い期間、前記第２データ信号線がアサートされていることが前記判定手段により検出されると、前記第１データ信号線のアサートを解除するよう制御する解除手段と、
前記解除手段により前記第１データ信号線のアサートを解除した後、少なくとも前記第２のクロック信号の周期より長い期間、前記第２データ信号線がアサートされていないことが前記判定手段により検出された場合、通信可能な対向装置が接続されていると判定する接続判定手段と、
を含む、
ことを特徴とするシリアル通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信技術に関するものである。
【背景技術】
【０００２】
集積回路の集積度の向上や処理能力の向上と共に、複数の集積回路間のデータのやりとりも増加しており、さらなるデータ転送速度の向上が望まれている。データ転送速度の向上は、データを並列に転送することによっても実現されうるが、集積回路の端子数の増加に伴うコストアップを招き、また、データ間のスキュー調整が困難となる。そのため、近年は、高速なシリアル転送方式を採用することが増えている。
【０００３】
シリアル転送には大きく分けてエンベデッドクロック（embedded clock）方式とソースシンクロナス（source synchronous）方式に分類できる。エンベデッドクロック方式は、クロック成分をデータ信号に埋め込み、受信側でデータ列からクロックとデータを抽出して通信を行う。そのため、受信側でデータに埋め込んだクロック情報を抽出する機構が必要となり、結果として集積回路の規模が増大しコストが高くなる。ただし、エンベデッドクロック方式ではクロックとデータの間の時間差（位相ずれ／スキュー）が理論上発生しないため、高速伝送や長距離転送が容易となる。一方、ソースシンクロナス方式は、送信側からデータとは別にクロックを伝送し、受信側では、受信したクロックを用いて、データをサンプリングして通信を行う。そのため、構成がシンプルというメリットがあるが、クロックとデータを別々に伝送することに起因する受信時間差が生じ、正しくデータが受け取れないという問題が発生しうる。特に、近年の数百ＭＨｚ〜ＧＨｚクラスの高速動作においては、クロックとデータ間の位相ずれを調整する機構（キャリブレーション）が必要となってきている。
【０００４】
通常、シリアル通信においては、実際のデータ転送に先立って、初期化と呼ばれる通信可能な状態にするための手続きが行われる。この手続きには、物理的に接続されているかの有無、接続先が初期化開始可能かどうかの有無（電源投入済、リセット済のケア）、タイミング調整（位相ずれ調整、通信速度調整）等が含まれる。例えば、特許文献１は、ソースシンクロナス方式のシリアル通信において、装置本体ではコマンド信号のレベルを変化させて通信の開始を通知し、外部装置ではコマンド信号のレベルの変化を検出して、通信の開始を判断する技術を開示している。また、特許文献２は、マスタ機がランダムデータを発生し当該データ列にＣＲＣのチェックコードを付与しスレーブ機に転送を行う。そして、スレーブ機側で、ＣＲＣによる誤りチェックを行い、誤りが無ければマスタ機側に通知を行い、通信可能かどうかを判断する技術を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１３５５４５公報
【特許文献２】特開平１１−１７７７４４公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、近年の集積回路システムでは、電力削減のため、頻繁に電源・リセットをＯＮ／ＯＦＦが発生し得る。そして、信号レベルの変化の通知タイミングが、対向の集積回路の電源投入中や、リセット処理中である場合、信号レベルの変化の検出機会を失い通信可能か否かの判断が正常に行われない場合が発生する。
【０００７】
また、ソースシンクロナス方式のシリアル通信では、エンベデッドクロック方式と異なり、未接続状態と接続時における転送が無い状態とは、データ信号線での信号状態から区別が出来無い。そのため、対向の装置との間でデータのやり取りを行うことでしか状態を検出する術が無い。
【０００８】
上述の特許文献１に記載の技術では、対向の集積回路が電源投入後且つリセット処理後の安定状態にあることが前提となっている。また、特許文献２に記載の技術では、近年の高速シリアル通信においては、電源投入後の初期化時において、位相ずれが存在する可能性があるため、必ずしも正しいデータが受け取れる保証が無い。そのため、未接続状態なのか位相ずれ状態なのか区別できず、通信可能かどうかを知ることができない可能性がある。
【０００９】
本発明は、上記課題に鑑みてなされたものであり、高速シリアル通信において、適切に対向装置の状態を確認可能とする技術を提供する。
【課題を解決するための手段】
【００１０】
上述の問題点を解決するため、本発明の情報処理装置は以下の構成を備える。すなわち、マスタと該マスタと複数の信号線によってシリアル通信可能に接続されているスレーブとを有する情報処理装置において、前記マスタが、前記複数の信号線のうちのクロック信号線によって前記スレーブに伝送するクロックの周期より長い期間、前記複数の信号線に含まれる第１データ信号線の信号レベルを第１の信号レベルから第２の信号レベルに変化させ、前記スレーブが、前記マスタによって前記第１データ信号線の信号レベルが前記第２の信号レベルに変化されたことに基づいて、前記複数の信号線のうちのクロック信号線によって前記マスタに伝送するクロックの周期より長い期間、前記複数の信号線に含まれる第２データ信号線の信号レベルを前記第１の信号レベルから前記第２の信号レベルに変化させる、ことにより前記マスタと前記スレーブとがハンドシェークするように構成されており、前記マスタが、前記スレーブによって前記第２データ信号線の信号レベルが前記第２の信号レベルに変化されたことに基づいて、前記スレーブに伝送するクロックの周期より長い期間、前記第１データ信号線の信号レベルを前記第１の信号レベルに変化させ、前記スレーブが、前記マスタによって前記第１データ信号線の信号レベルが前記第１の信号レベルに変化されたことに基づいて、前記マスタに伝送するクロックの周期より長い期間、前記第２データ信号線の信号レベルを前記第１の信号レベルに変化させる、ことにより前記マスタと前記スレーブとがハンドシェークするように構成されている。
【発明の効果】
【００１１】
本発明によれば、高速シリアル通信において、適切に対向装置の状態を確認可能とする技術を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】シリアル通信システムを含む情報処理装置の構成例を示す図である。
【図２】シリアル通信装置間の接続を示す図である。
【図３】クロック信号線及びデータ信号線で伝送される信号を例示的に示す図である。
【図４】シリアル通信におけるパケット転送を例示的に示す図である。
【図５】第１実施形態に係るシリアル通信システムにおける接続確認のための初期化シーケンスにおける各信号線上の波形を例示的に示す図である。
【図６】第１実施形態に係るシリアル通信マスタ装置の内部構成を例示的に示す図である。
【図７】第１実施形態に係るシリアル通信スレーブ装置の内部構成を例示的に示す図である。
【図８】第１実施形態に係るシリアル通信システムにおける接続確認のための初期化シーケンス図である。
【図９】接続確認のための初期化シーケンス図である（スレーブ装置リセット再発生のケース１）。
【図１０】接続確認のための初期化シーケンス図である（スレーブ装置リセット再発生のケース２）。
【図１１】接続確認のための初期化シーケンス図である（マスタ装置リセット再発生のケース１）。
【図１２】接続確認のための初期化シーケンス図である（マスタ装置リセット再発生のケース２）。
【図１３】第２実施形態に係るシリアル通信マスタ装置の内部構成を例示的に示す図である。
【図１４】第２実施形態に係るシリアル通信スレーブ装置の内部構成を例示的に示す図である。
【発明を実施するための形態】
【００１３】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１４】
（第１実施形態）
本発明に係るシリアル通信システムの第１実施形態として、双方向でシリアル通信を行う２つの集積回路を含む情報処理装置を例に挙げて以下に説明する。
【００１５】
＜装置構成＞
図１は、シリアル通信システムを含む情報処理装置の構成例を示す図である。情報処理装置において、ＣＰＵ１０、ＲＯＭ１１、ＲＡＭ１２は第１バス１３に接続され、ＰＣＩ２０、ＵＳＢ２１、ＩＤＥ２２は第２バス２３に接続されている。そして第１バス１３と第２バス２３はシリアル通信マスタ装置１００とシリアル通信スレーブ装置２００を介して接続されている。この構成は汎用のコンピュータにおける２チップセット構成で代表的な構成であり、集積回路１は、シリアル通信マスタ装置１００を含み、集積回路２は、シリアル通信マスタ装置１００とシリアル通信可能に接続されているシリアル通信スレーブ装置２００を含む。
【００１６】
ＣＰＵ１０は、ＲＯＭ１１に格納されたプログラムをＲＡＭ１２に展開し当該プログラムを実行する。第２バス２３に接続されているＰＣＩ２０、ＵＳＢ２１、ＩＤＥ２２は、それぞれ、各種周辺機器（不図示）を制御する制御部（即ち、ＰＣＩ、ＵＳＢ、ＩＤＥインタフェースのコントローラ）である。
【００１７】
シリアル通信マスタ装置１００は、例えば、第１バス１３上の所定のプロトコルに従ってＲＡＭ１２から入力されるデータをソースシンクロナス方式のシリアル通信によってシリアル通信スレーブ装置２００へ転送する。そして、シリアル通信スレーブ装置２００は、シリアル通信マスタ装置１００から入力されたデータを、第２バス２３上の所定のプロトコルに従って、各種周辺回路に転送する。
【００１８】
なお、第１バス１３上のプロトコルと第２バス２３上のプロトコルとは同一である必要はない。また、情報処理装置におけるシリアル通信システムの構成は図１の構成に限定されず、既知のソースシンクロナス方式のシリアル通信システムと同様の任意の構成が適用できる。
【００１９】
図２は、シリアル通信装置間の接続を示す図である。シリアル通信マスタ装置１００とシリアル通信スレーブ装置２００は双方向でソースシンクロナス方式のシリアル通信を行うように接続されている。
【００２０】
シリアル通信マスタ装置１００は、クロック端子（第１クロック端子）及びデータ端子（第１データ端子）を介し、クロック信号線１０１（第１クロック信号線）及びデータ信号線１０２（第１データ信号線）に接続されている。クロック信号線１０１及びデータ信号線１０２は、それぞれ、シリアル通信スレーブ装置２００へのシリアル通信の、クロック信号（第１のクロック信号）及びデータ信号（第１のデータ信号）を伝送する。
【００２１】
また、シリアル通信マスタ装置１００は、クロック端子（第２クロック端子）及びデータ端子（第２データ端子）を介し、クロック信号線２０１（第２クロック信号線）及びデータ信号線２０２（第２データ信号線）に接続されている。クロック信号線２０１及びデータ信号線２０２は、それぞれ、シリアル通信スレーブ装置２００からのシリアル通信の、クロック信号（第２のクロック信号）及びデータ信号（第２のデータ信号）を伝送する。
【００２２】
データ信号線１０２のデータはクロック信号線１０１のクロックに同期しており、データ信号線２０２のデータはクロック信号線２０１のクロックに同期している。なお、ここでは、１方向あたり１線を用いる場合について説明するが、データ信号線１０２および、データ信号線２０２は複数使用した場合にも適用できる。
【００２３】
図３は、クロック信号線及びデータ信号線で伝送される信号を例示的に示す図である。ここでは、センターアライン方式におけるクロック信号線とデータ信号線と構成を示している。なお、センターアライン方式とは、クロックの立ち上がりが、データ信号における隣接する遷移点間の中央地点にくるように構成される方式を意味する。もちろん、本発明は、クロックの立ち上がりをデータ信号の遷移点にそろえるエッジアライン方式などの他の方式であっても適用可能である。
【００２４】
なお、近年の高速動作においては、クロック信号の間隔が短くなり、またプリント基板上の配線の影響や、集積回路内のプロセスのバラつきの影響によって、設計マージンの確保が困難になってきている。そこで、図３に示すように、シリアル通信マスタ装置１００は、クロック信号線を遅延させるための遅延素子１０３と、クロックとデータの位相を調整するために、遅延素子に指示を与える位相調整機構１０４を持つ。クロックの立ち上がりが、データ信号の遷移と遷移の間の中央地点に来るように、伝送装置ごとに接続確認後に調整する。なお、図３はクロックの立ち上がりのみの使用によるＳＤＲ（Single Data Rate）方式を示しているが、クロックの立ち上がりおよび立下りを使用するＤＤＲ（Double Data Rate）方式にも適用できる。
【００２５】
図４は、シリアル通信におけるパケット転送を例示的に示す図である。ここでは、シリアル通信において、３２ビットを１つのパケットとして転送している例を示している。
【００２６】
時刻ｔ０からｔ３では、データ信号線の論理値が”０”（信号線がアサートされていない状態、信号レベルがネガティブな状態、第１の信号レベル）であり、転送が無いことをシリアル通信マスタ装置１００とシリアル通信スレーブ装置２００が互いに認識している。時刻ｔ４では、転送開始を示すスタートビットとしてデータ信号線の論理値を”１”にセットする（信号線をアサート状態にする、信号レベルがアクティブな状態、第２の信号レベル）ことで、パケット転送の開始を互いの装置で認識する。これに続く３２サイクルが、パケット（３２ビットのデータ）の転送を示している。引き続き、時刻ｔ３７では、スタートビットとしてデータ信号線の論理値を”１”にセットして（つまり、アサートして）、２番目のパケットを転送している。そして、転送終了後（ｔ７０以降）は、データ信号線を”０”にセットする（つまり、アサートを解除する）ことで、再び、転送が無いことをシリアル通信マスタ装置１００とシリアル通信スレーブ装置２００が互いに認識する。
【００２７】
図５は、第１実施形態における接続確認のための初期化シーケンスにおける各信号線上の波形を例示的に示す図である。電源投入・リセット解除後に行われる初期化シーケンス開始時には、位相ずれの可能性があり、データの受け渡しが正しくできない可能性がある。また当該時点では、対向の装置（集積回路）の状態を知ることができず、接続手続きの開始の適切なタイミングを知る術が無い。
【００２８】
そこで、第１実施形態では、データ信号線を、対応するクロック信号の周期より長い期間、連続した同一論理値で駆動することにより、仮想的なフルハンドシェーク接続を実現する。具体的には、データライン上で擬似的な制御信号として、全ビットが”０”のパケット及び全ビットが”１”のパケットを双方向で送受信する。クロック信号の周期より長い期間とすることにより、位相ずれや接続開始のタイミングに影響を受けることなく接続確認を行うことが可能となる。
【００２９】
仮想的なフルハンドシェーク接続が実現することにより、シリアル通信マスタ装置１００は、シリアル通信スレーブ装置２００と物理的に接続がされていることを認識する（接続判定）ことができる。また、シリアル通信マスタ装置１００は、シリアル通信スレーブ装置２００が電源処理とリセット処理の後の通信可能状態であることを認識することができる。一旦接続確認を行うことができれば、その後位相調整を行うことで、適切な通信状態に移行することができる。
【００３０】
シリアル通信スレーブ装置２００が、電源投入前・電源投入中・リセット処理中の何れかの状態であれば、図５におけるデータ信号線２０２の値が”０”のままである。シリアル通信スレーブ装置２００は、電源処理およびリセット処理が終了後に、データ信号線２０２の値を”１”にセットすることにより、シリアル通信マスタ装置１００は、シリアル通信スレーブ装置２００が通信可能な状態に移行したことを知ることができる。
【００３１】
また、上述したように、データ信号線上では、比較的長い時間、同一の論理値（”０”または”１”）の状態が保持されるため、位相ずれなどに起因するデータの取りこぼしの発生を防ぐことが可能となる。そして、シリアル通信マスタ装置１００及びシリアル通信スレーブ装置２００は、それぞれ、接続手続き開始後に対向装置からのデータ信号線において一定時間応答が無ければ、未接続や断線等の障害があると判断できる。
【００３２】
図６は、シリアル通信マスタ装置１００の内部構成を例示的に示す図である。シリアル通信マスタ装置１００は、論理層１００１、シリアライザ１００２、デシリアライザ１００３、検出部１００４を含む。なお、上述したように、シリアル通信マスタ装置１００は、送信及び受信の両方を行う。
【００３３】
論理層１００１は、第１バス１３、シリアライザ１００２、デシリアライザ１００３、検出部１００４に接続される。そして、論理層１００１は、検出部１００４のからの検出通知に基づき、パケットのシリアライザ１００２への送信及びシリアライザ１００２へのシリアライズ開始指示を行う。さらに、論理層１００１は、デシリアライザ１００３から取得したパケットの解析を行い、第１バス１３に受信データを送出するよう構成されている。
【００３４】
シリアライザ１００２は、論理層１００１、データ信号線１０２に接続され、論理層１００１から取得したパラレル信号をシリアル信号に変換してデータ信号線１０２へ出力する。なお、ここでは、シリアライザ１００２は、論理層１００１からのクロックに同期してシリアライズ処理を行うよう構成されている。
【００３５】
検出部１００４は、データ信号線２０２で受信される論理値（”０”または”１”）をサンプリングし、同一の論理値が所定回数連続しているか否かを判定する。検出部１００４は、受信データの検出指示を論理層１００１から受信すると、クロック信号線２０１から受信したクロックに基づいてデータ信号線２０２のサンプリングを開始する。なお、シリアル通信マスタ装置１００の内部に含まれるクロック源を使用してサンプリングするように構成しても良い。そして、同一の論理値が所定回数連続していると判定した場合、検出通知を論理層１００１に送信する。なお、上述の判定を論理層１００１ではなく検出部１００４で行うのは、論理値”０”の連続においてはスタートビット（論理値”１”）が設定できず、デシリアライザ１００３でパケット抽出することができないためである。
【００３６】
デシリアライザ１００３は、データ信号線２０２からシリアル信号のデータの入力を受け付ける。そして、デシリアライザ１００３は、入力されたシリアル信号をＭビット（Ｍは２以上の整数）のパラレル信号に変換し論理層１００１へ出力する。
【００３７】
図７は、シリアル通信スレーブ装置２００の内部構成を例示的に示す図である。シリアル通信スレーブ装置２００は、論理層２００１、シリアライザ２００２、デシリアライザ２００３、検出部２００４を含む。なお、上述したように、シリアル通信スレーブ装置２００も、送信及び受信の両方を行う。なお、シリアル通信スレーブ装置２００内の各部の動作は、シリアル通信マスタ装置１００の対応する各部の動作と同様であるため説明は省略する。例えば、デシリアライザ２００３は、入力されたシリアル信号をＮビット（Ｎは２以上の整数）のパラレル信号に変換し論理層２００１へ出力する。
【００３８】
＜装置の動作＞
図８は、第１実施形態に係るシリアル通信システムにおける接続確認のための通信初期化のシーケンス図である。なお、図８は、図５をシーケンス図として描き直したものに相当する。初期化処理では、シリアル通信マスタ装置１００とシリアル通信スレーブ装置２００との間で、シリアル通信を確立するために、お互いが通信可能な状態か否かを判定する処理を行う。
【００３９】
ステップＳ３００では、シリアル通信マスタ装置１００は、シリアル通信スレーブ装置２００との間でシリアル通信を確立するために、接続状態のチェックを開始する。具体的には、データ信号線１０２の論理値を初期値”０”から”１”に変化させる。つまり、ここでは、シリアル通信スレーブ装置２００の状態を事前にチェックすることなく、強制的にデータ信号線１０２の論理値を”１”とすることにより、シリアル通信マスタ装置１００の状態変化（接続手続き開始）を対向の装置に通知する。例えば、直接データ信号線１０２を”１”に駆動するよう構成する（第１駆動手段）。ただし、ここでは、論理層１００１において、同一論理値（全て”１”）の複数ビットから構成されるパケットを連続的に生成し、シリアライザ１００２に送出するものとする。これにより、追加の回路無しに、データ信号線１０２を”１”に駆動することができる。
【００４０】
ステップＳ３０１では、シリアル通信スレーブ装置２００は、電源投入処理完了とリセット処理完了後に動作可能な状態となった後に、データ信号線１０２の論理値の検出を開始する。ここでは、論理層２００１は、受信データの検出指示を検出部２００４に送信し、検出部２００４は、データ信号線１０２のサンプリングにより得られた１パケット長（ここでは３２ビット）の論理値を解析する。論理値が全て”１”であることを検出すると（第２判定手段）、接続手続き開始状態に移行した対向の装置があると判定し、論理層２００１にその旨を通知する。
【００４１】
シリアル通信スレーブ装置２００は、接続手続き開始状態に移行した対向の装置があると判定すると、データ信号線２０２の論理値を初期値”０”から”１”に変化させる。つまり、ここでは、接続手続き開始状態に移行した対向の装置の存在確認をトリガに、強制的にデータ信号線２０２の論理値を”１”とすることにより、シリアル通信スレーブ装置２００の状態変化（接続手続き開始）を対向の装置に通知する。例えば、直接データ信号線２０２を”１”に駆動するよう構成する（第２駆動手段）。ただし、ここでは、論理層２００１において、同一論理値（全て”１”）の複数ビットから構成されるパケットパケットを連続的に生成し、シリアライザ２００２に送出するものとする。
【００４２】
ステップＳ３０２では、シリアル通信マスタ装置１００は、接続手続き開始の処理（Ｓ３００）の後、データ信号線２０２の論理値の検出を開始する。ここでは、論理層１００１は、受信データの検出指示を検出部１００４に送信し、検出部１００４は、データ信号線２０２のサンプリングにより得られた１パケット長（ここでは３２ビット）の論理値を解析する。論理値が全て”１”であることを検出すると（第１判定手段）、接続手続き開始状態に移行した対向の装置があると判定し、論理層１００１にその旨を通知する。
【００４３】
シリアル通信マスタ装置１００は、接続手続き開始状態に移行した対向の装置があると判定すると、データ信号線１０２の論理値を初期値”１”から”０”に変化させる。なお、直接データ信号線１０２を”０”に駆動するよう構成しても良いが、ここでは、論理層１００１において、論理値が全て”０”のパケットを連続的に生成し、シリアライザ１００２に出力するものとする。なお、論理層１００１におけるパケットの生成を抑制することによりデータ信号線１０２が初期値の”０”のままとなるよう構成しても良い。
【００４４】
ステップＳ３０３では、シリアル通信スレーブ装置２００は、接続手続き開始の処理（Ｓ３０１）の後、データ信号線１０２の論理値の検出を開始する。ここでは、論理層２００１は、受信データの検出指示を検出部２００４に送信し、検出部２００４は、データ信号線１０２のサンプリングにより得られた１パケット長（ここでは３２ビット）の論理値を解析する。
【００４５】
検出部２００４にて論理値が全て”０”であることを検出すると、接続手続き完了と判定し、論理層２００１にその旨を通知する（第２状態判定手段）。また、データ信号線２０２の論理値を”１”から”０”に変化させる（第２解除手段）。
【００４６】
ステップＳ３０４では、シリアル通信マスタ装置１００は、データ信号線１０２の論理値を初期値”１”から”０”に変化させた（Ｓ３０２）後、データ信号線２０２の論理値の検出を開始する。ここでは、論理層１００１は、受信データの検出指示を検出部１００４に送信し、検出部１００４は、データ信号線２０２のサンプリングにより得られた１パケット長（ここでは３２ビット）の論理値を解析する。
【００４７】
検出部１００４にて論理値が全て”０”であることを検出すると、接続手続き完了と判定し、論理層２００１にその旨を通知する（第１状態判定手段）。また、データ信号線１０２の論理値を”１”から”０”に変化させる（第１解除手段）。
【００４８】
なお、シリアル通信マスタ装置１００は、ステップＳ３００の処理を完了後、データ信号線２０２の論理値が”１”に変化したことを所定時間内に確認できない場合は、対向の装置が接続されていないとして判定する。
【００４９】
＜リセット再発生時での動作シーケンス＞
図９および図１０は、シリアル通信スレーブ装置２００にリセットが再発生した場合の初期化シーケンス図である。図１１および図１２は、シリアル通信マスタ装置１００にリセットが再発生した場合の初期化シーケンス図である。なお、電源遮断・投入処理はリセット処理と同様に考慮できる。なお、各ステップでの動作は図８を参照して説明した各ステップと同様である。
【００５０】
各図から理解されるように、シリアル通信マスタ装置１００及びシリアル通信スレーブ装置２００において、初期化中にリセットが発生しても、単に、初期化シーケンスを再実施するだけで良いことが分かる。すなわち、リセット再発生は、データ信号線１０２またはデータ信号線２０２の論理値を”０”とする動作であるため、初期化シーケンスの各ステップにおける処理内容を変更する必要が無く再実施できる。よって、上述した初期化シーケンスは、接続確認において、互いの装置状態の影響を受けにくいという特徴を持つ。
【００５１】
以上説明したように、第１実施形態によれば、シリアル通信マスタ装置１００とシリアル通信スレーブ装置２００との間で仮想的なフルハンドシェーク接続を実現出来る。また、高速シリアル通信（つまり高いクロック）であるものの、データ信号線上の論理値の変化はクロック信号の周期より長い時間スケールである。そのため、位相ずれや接続開始のタイミングに影響を受けることなく接続確認を行うことが可能となる。
【００５２】
なお、上述の第１実施形態では、集積回路間におけるシリアル通信について説明したが、本発明は同一集積回路内におけるシリアル通信においても適用できる。また、本発明はシリコン基板を貫通する多数の貫通電極ＴＳＶ（Through Silicon Via）によって上下に隣接する集積回路間におけるシリアル通信においても適用できる。
【００５３】
（第２実施形態）
第２実施形態では、データ信号線２０２において同一の論理値が所定回数連続していることを、論理層１００１で判定する形態について説明する。第１実施形態で述べたように、論理値”０”の連続においてはスタートビット（論理値”１”）が設定できず、デシリアライザ１００３でパケット抽出することができない。そこで、第２実施形態では、データ信号線２０２とデシリアライザ１００３との間に極性切替部１００５を設け、擬似的なスタートビットを生成している。
【００５４】
＜装置構成＞
図１３は、シリアル通信マスタ装置１００の内部構成を例示的に示す図である。シリアル通信マスタ装置１００は、論理層１００１、シリアライザ１００２、デシリアライザ１００３、極性切替部１００５を含む。なお、第１実施形態と同様、シリアル通信マスタ装置１００は、送信及び受信の両方を行う。
【００５５】
論理層１００１は、第１バス１３、シリアライザ１００２、デシリアライザ１００３に接続される。そして、論理層１００１は、パケットのシリアライザ１００２への送信及びシリアライザ１００２へのシリアライズ開始指示を行う。さらに、論理層１００１は、デシリアライザ１００３から取得したパケットの解析を行い、第１バス１３に受信データを送出するよう構成されている。ここで、論理層１００１は、デシリアライザ１００３から取得したパケットが同一の論理値により構成されているか否かを判定する。
【００５６】
シリアライザ１００２は、論理層１００１、データ信号線１０２に接続され、論理層１００１から取得したパラレル信号をシリアル信号に変換してデータ信号線１０２へ出力する。なお、ここでは、シリアライザ１００２は、論理層１００１からのクロックに同期してシリアライズ処理を行うよう構成されている。
【００５７】
デシリアライザ１００３は、データ信号線２０２からシリアル信号のデータの入力を受け付ける。そして、デシリアライザ１００３は、スタートビットを検出すると、入力されたシリアル信号をＭビット（Ｍは２以上の整数）のパラレル信号に変換し論理層１００１へ出力する。
【００５８】
極性切替部１００５は、データ信号線２０２から受信した信号を極性の切替えを制御する。具体的には、論理層１００１からの極性制御信号１００６に基づき、受信した信号をそのままデシリアライザ１００３に出力するか、受信した信号の極性を反転してデシリアライザ１００３に出力するかを切り替える。
【００５９】
図１４は、シリアル通信スレーブ装置２００の内部構成を例示的に示す図である。シリアル通信スレーブ装置２００は、論理層２００１、シリアライザ２００２、デシリアライザ２００３、極性切替部２００５を含む。なお、上述したように、シリアル通信スレーブ装置２００も、送信及び受信の両方を行う。なお、シリアル通信スレーブ装置２００内の各部の動作は、シリアル通信マスタ装置１００の対応する各部の動作と同様であるため説明は省略する。例えば、デシリアライザ２００３は、スタートビットを検出すると、入力されたシリアル信号をＮビット（Ｎは２以上の整数）のパラレル信号に変換し論理層２００１へ出力する。
【００６０】
＜装置の動作＞
第２実施形態における、シリアル通信マスタ装置１００とシリアル通信スレーブ装置２００との間での初期化動作は第１実施形態とほぼ同様であるが、以下の点で異なる。
【００６１】
・ステップＳ３０１において、論理層２００１は、データ信号線２０２の論理値を初期値”０”から”１”に変化させると共に、極性制御信号２００６を極性切替部２００５に送信し、データ信号線１０２からの信号の極性を反転するよう制御する。この反転制御により、論理層２００１は、データ信号線１０２での論理値”０”及び”１”を、それぞれ、論理値”１”及び”０”として認識することになる。
【００６２】
・ステップＳ３０２において、論理層１００１は、データ信号線１０２の論理値を初期値”１”から”０”に変化させると共に、極性制御信号１００６を極性切替部１００５に送信し、データ信号線２０２からの信号の極性を反転するよう制御する。この反転制御により、論理層１００１は、データ信号線２０２での論理値”０”及び”１”を、それぞれ、論理値”１”及び”０”として認識することになる。
【００６３】
・ステップＳ３０３においては、論理層２００１は、論理値が全て”１”である（つまり、データ信号線１０２では全て”０”）ことを検出すると、接続手続き完了と判定する。また、論理層２００１は、データ信号線２０２の論理値を”１”から”０”に変化させると共に、極性制御信号２００６を極性切替部２００５に送信し、データ信号線１０２からの信号の極性反転を解除するよう制御する。その後、シリアル通信スレーブ装置２００は通信可能状態に移行する。
【００６４】
・ステップＳ３０４においては、論理層１００１は、論理値が全て”１”である（つまり、データ信号線２０２では全て”０”）ことを検出すると、接続手続き完了と判定する。また、論理層１００１は、データ信号線１０２の論理値を”１”から”０”に変化させると共に、極性制御信号１００６を極性切替部１００５に送信し、データ信号線２０２からの信号の極性反転を解除するよう制御する。その後、シリアル通信マスタ装置１００は通信可能状態に移行する。
【００６５】
すなわち、データ信号線からの信号の極性を反転することにより、データ信号線における”１”から”０”の変化は、デシリアライザにおいては”０”から”１”の変化として検出されることになる。つまり、デシリアライザは、先頭の論理値”１”を擬似的なスタートビットとしてシリアルデータを抽出することが可能となる。
【００６６】
以上説明したように、第２実施形態によれば、シリアル通信マスタ装置１００とシリアル通信スレーブ装置２００との間で仮想的なフルハンドシェーク接続を実現出来る。また、デシリアライザによりパラレルデータに変換された後、論理値の判定を行うことが出来るため、第１実施形態に比較して更に低クロックでの判定が可能になる。なお、上述の説明においては信号レベルがハイをアクティブ（正論理）としているが、信号レベルを変化させる点が本発明の肝であり、マスタとスレーブで対応が取れていればローをアクティブ（負論理）とする形態にも適用することができる。
【００６７】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005926583.tif 000002
【図２】
0005926583.tif 000003
【図３】
0005926583.tif 000004
【図４】
0005926583.tif 000005
【図５】
0005926583.tif 000006
【図６】
0005926583.tif 000007
【図７】
0005926583.tif 000008
【図８】
0005926583.tif 000009
【図９】
0005926583.tif 000010
【図１０】
0005926583.tif 000011
【図１１】
0005926583.tif 000012
【図１２】
0005926583.tif 000013
【図１３】
0005926583.tif 000014
【図１４】
0005926583.tif 000015