説明

データ転送システム、データ転送方法、受信回路、及び受信方法

【課題】連続したデータの転送を可能とすること。
【解決手段】送信回路12は、データTDOを出力する毎に、ポール信号PLのレベルを反転する。受信回路13は、リードリクエスト信号REQに応答してポール信号を複数のタイミングで受け取るとともに、送信データTDOを複数のタイミングで受け取る。そして、受信回路13は、タイミングが異なる複数のポール信号に基づいて、受け取った複数のデータのうちの1つと等しい受信データRDOを出力する。

【発明の詳細な説明】
【技術分野】
【0001】
データ転送システム、データ転送方法、受信回路、及び受信方法に関する。
【背景技術】
【0002】
従来、互いに異なる周波数のクロック信号に基づいて動作している2つの回路は、制御信号等によるハンドシェークによりデータを転送する(例えば、特許文献1,2参照)。このハンドシェークによるデータ転送は、データ要求により転送開始を制御し、受信完了を通知することで、次の送信を準備する。
【0003】
また、別の2つの回路は、ストローブ信号を用いてデータを転送する(例えば、特許文献3参照)。送信回路は、データとともにストローブ信号を出力する。受信回路は、ストローブ信号に同期してデータを受け取り、その受け取ったデータを更に自身のクロック信号で読み出す。
【0004】
また、別の2つの回路は、フラグと制御データとを用いてデータ転送を行う(例えば、特許文献4参照)。フラグ及び制御データを複数回受信し、複数回連続して同一のフラグを受信したとき、その間に受信し一致した制御データを処理することで、伝送誤りを少なくする。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2001−306491号公報
【特許文献2】特開2002−269036号公報
【特許文献3】特開平9−6725号公報
【特許文献4】特開平1−23637号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、互いに異なるクロック信号に基づいて非同期にて動作する2つの回路において、連続したデータを転送することが求められている。
【課題を解決するための手段】
【0007】
本発明の一観点によれば、第1のクロック信号により動作する送信回路から、前記第1のクロック信号と異なる第2のクロック信号により動作する受信回路へ送信データを転送するデータ転送システムであって、前記送信回路は、前記送信データの送信タイミングに応じて信号レベルを論理反転したポール信号を出力する出力回路を有し、前記受信回路は、前記送信データを互いに異なる3つのタイミングでそれぞれ受信して第1〜第3の受信データを生成する第1の信号生成回路と、前記ポール信号を前記3つのタイミングでそれぞれ受信して第1〜第3の同期ポール信号を生成する第2の信号生成回路と、前記第1〜第3の同期ポール信号のレベルを互いに比較した結果に応じて前記第1〜第3の受信データのうちから選択した1つの受信データを出力する選択回路を有する。
【発明の効果】
【0008】
本発明の一観点によれば、連続したデータの転送を可能とすることができる。
【図面の簡単な説明】
【0009】
【図1】半導体装置のブロック回路図である。
【図2】送信回路及び受信回路の回路図である。
【図3】イネーブル信号生成回路の回路図である。
【図4】デコーダの回路図である。
【図5】デコーダの動作説明図である。
【図6】デコーダの動作説明図である。
【図7】データ転送のタイミング図である。
【図8】データ転送のタイミング図である。
【図9】データ転送のタイミング図である。
【図10】データ転送のタイミング図である。
【図11】データ転送のタイミング図である。
【図12】外部データ転送のタイミング図である。
【発明を実施するための形態】
【0010】
以下、一実施形態を添付図面に従って説明する。
図1に示すように、半導体装置10は、入力信号SIに応じたデータSDを、外部クロック信号ECKに基づいて出力する。入力信号SIは例えばセンサから出力される電圧などのアナログ信号である。データSDは、例えば複数ビットのシリアルデータである。半導体装置10は例えば、アナログの入力信号SIを複数ビットのデジタル信号に変換し、変換後のデータSDを外部クロック信号ECKに基づいてシリアル出力する。
【0011】
半導体装置10の内部回路11は、入力信号SIに応じたデータと制御信号を含む信号D1を出力する。例えばアナログ−デジタル変換回路である内部回路11は、外部クロック信号ECKと異なる内部クロック信号SCKに基づいて動作し、アナログ入力信号SIをデジタル信号に変換する。そして、内部回路11は、変換後のデータTDIを出力する。データTDIは、例えば8ビットのデータである。
【0012】
また、内部回路11は、データTDIに対応する送信イネーブル信号TENを出力する。送信イネーブル信号TENは、内部回路11が有効なデータTDIを出力することを示す信号である。内部回路11は、所定期間(例えば内部クロック信号SCKの1周期と等しい期間)、所定レベル(例えばHレベル)の送信イネーブル信号TENを出力する。そして、内部回路11は、所定レベルの送信イネーブル信号TENを出力している期間内に、データTDIを出力する。
【0013】
送信回路12は、内部クロック信号SCKを受け取る。送信回路12は、内部回路11から出力される送信イネーブル信号TENに応答して、有効なデータTDIを内部クロック信号SCKに同期して保持する。そして、送信回路12は、保持したデータと等しいデータTDOを出力する。また、送信回路12は、データTDOを出力する毎に、レベルを反転したポール信号PLを出力する。
【0014】
受信回路13は、外部インタフェース14から出力されるリードリクエスト信号REQに応答して、送信回路12から出力されるデータTDOを、互いに異なる複数のタイミングで受け取る。また、受信回路13は、送信回路12から出力されるポール信号PLを、リードリクエスト信号REQに応じた複数のタイミングで受け取る。そして、受信回路13は、タイミングが互いに異なる複数のポール信号に基づいて、受け取った複数のデータのうちの1つと等しい受信データRDOを出力する。リードリクエスト信号REQはタイミング信号の一例である。
【0015】
外部インタフェース14は、所定の方式にて図示しない半導体装置とシリアル通信する。通信方式は、外部クロック信号ECKに同期したシリアル通信(例えば、SPI(Serial Peripheral Interface)方式)である。外部インタフェース14は、受信回路13から出力される受信データRDOを並列−直列変換(パラレル−シリアル変換)して出力する。
【0016】
なお、内部回路11は、所定間隔毎に、送信イネーブル信号TEN及びデータTDIを出力するように設定されている。データTDIを出力する周期は、例えば、外部インタフェース14は、半導体装置10が接続された他の半導体装置に対して、所定の周期でデータSDを出力する。このため、外部インタフェース14が出力するデータSDの周期に応じて設定されている。
【0017】
しかし、内部回路11と外部インタフェース14は、連携して動作していない。上記したように、内部回路11は、内部クロック信号SCKに基づいて動作し、データTDI及び送信イネーブル信号TENを出力する。一方、外部インタフェース14は、シリアル通信のための外部クロック信号ECKに同期して動作し、リードリクエスト信号REQを出力する。つまり、内部回路11がデータTDIを出力するタイミングと、外部インタフェース14がリードリクエスト信号REQを出力するタイミングは、非同期である。
【0018】
上記したように、送信回路12は、データTDOを出力する毎に、ポール信号PLのレベルを反転する。受信回路13は、リードリクエスト信号REQに応答してポール信号を複数のタイミングで受け取るとともに、送信データTDOを複数のタイミングで受け取る。そして、受信回路13は、タイミングが異なる複数のポール信号に基づいて、受け取った複数のデータのうちの1つと等しい受信データRDOを出力する。これにより、送信回路12と受信回路13は、互いにハンドシェークを行うことなく、非同期にてデータの送受信を行う。
【0019】
次に、送信回路12の構成を説明する。
図2に示すように、データTDIは、送信回路12のフリップフロップ回路21の入力端子INに供給される。上記したように、データTDIは複数ビット(例えば8ビット)の信号である。フリップフロップ回路21は、データTDIのビット数に応じた複数のフリップフロップ回路を含み、各フリップフロップ回路にはデータTDIの対応するビットが供給される。
【0020】
フリップフロップ回路21は例えばD型フリップフロップ回路である。フリップフロップ回路21のイネーブル端子ENには送信イネーブル信号TENが供給され、クロック端子には内部クロック信号SCKが供給される。送信イネーブル信号TENは、レベルによりデータTDIが有効か無効かを示す信号であり、例えば、Hレベルの送信イネーブル信号TENはデータTDIが有効であることを示し、Lレベルの送信イネーブル信号TENはデータTDIが無効であることを示す。
【0021】
図1に示す内部回路11は、データTDIを出力するタイミングに応じて送信イネーブル信号TENを出力する。例えば、内部回路11は、内部クロック信号SCKに基づいて、この内部クロック信号SCKの1周期毎に、Hレベルの送信イネーブル信号TENとLレベルの送信イネーブル信号TENを交互に出力する。そして、内部回路11は、Hレベルの送信イネーブル信号TENを出力する期間内、例えばHレベルの送信イネーブル信号TENを出力して内部クロック信号SCKの半周期後に、データTDIを出力する。
【0022】
フリップフロップ回路21は、送信イネーブル信号TENに基づいて、有効なデータTDIを内部クロック信号SCKに同期して保持し、出力端子OUTからデータTDOを出力する。詳述すると、フリップフロップ回路21は、Hレベルの送信イネーブル信号TENに基づいて、内部クロック信号SCKの立ち上がりエッジのタイミングでデータTDIを保持する。そして、フリップフロップ回路21は、保持した信号レベルと等しいレベルのデータTDOを出力する。この出力データTDOのビット数は、入力データTDIのビット数と等しい。
【0023】
内部クロック信号SCKはインバータ回路22の入力端子に供給される。インバータ回路22は、内部クロック信号SCKを論理反転したレベルの信号を出力する。このインバータ回路22の出力信号は、フリップフロップ回路23のクロック端子に供給される。フリップフロップ回路23は例えばD型フリップフロップ回路である。フリップフロップ回路23のイネーブル端子ENには、送信イネーブル信号TENが供給される。フリップフロップ回路23の出力端子OUTはインバータ回路24の入力端子に接続され、このインバータ回路24の出力端子はフリップフロップ回路23の入力端子INに接続されている。フリップフロップ回路23は出力回路の一例である。
【0024】
フリップフロップ回路23は、送信イネーブル信号TENに基づいて、インバータ回路24の出力信号を内部クロック信号SCKに同期して保持し、出力端子OUTからポール信号PLを出力する。詳述すると、フリップフロップ回路23は、Hレベルの送信イネーブル信号TENに基づいて、インバータ回路22から出力される信号の立ち上がりエッジ、即ち内部クロック信号SCKの立ち下がりエッジのタイミングで、インバータ回路24の出力信号を保持する。そして、フリップフロップ回路23は、保持した信号レベルと等しいレベルのポール信号PLを出力する。このポール信号PLはインバータ回路24に供給され、このインバータ回路24はポール信号PLのレベルを論理反転して出力する。また、フリップフロップ回路23は、Hレベルの送信イネーブル信号TENに応答して動作する。従って、フリップフロップ回路23は、Hレベルの送信イネーブル信号TEN毎、つまりデータTDOを出力する毎に、論理反転したポール信号PLを出力する。
【0025】
次に、受信回路13の構成を説明する。
ポール信号PLは、受信回路13のフリップフロップ回路31の入力端子INに供給される。フリップフロップ回路31の出力端子OUTはフリップフロップ回路32の入力端子INに接続されている。フリップフロップ回路31,32のクロック端子には外部クロック信号ECKが供給される。
【0026】
フリップフロップ回路31,32は、例えばD型フリップフロップ回路である。フリップフロップ回路31は、外部クロック信号ECKの立ち上がりエッジに同期してポール信号PLを保持し、保持した信号レベルと等しい信号を出力する。フリップフロップ回路32は、外部クロック信号ECKの立ち上がりエッジに同期してフリップフロップ回路31の出力信号を保持し、保持した信号レベルと等しい信号PLEを出力する。即ち、フリップフロップ回路31,32は、外部クロック信号ECKに同期した信号(受信ポール信号)PLEを生成する。
【0027】
受信ポール信号PLEは、3つのフリップフロップ回路33a,33b,33cの入力端子INに供給される。各フリップフロップ回路33a〜33cは、例えばD型フリップフロップ回路である。各フリップフロップ回路33a〜33cのクロック端子には外部クロック信号ECKが供給される。
【0028】
フリップフロップ回路33aのイネーブル端子ENには、イネーブル信号生成回路34から出力される第1の受信イネーブル信号EN1が供給される。フリップフロップ回路33aは、Hレベルの受信イネーブル信号EN1に応答して、外部クロック信号ECKの立ち上がりエッジのタイミングで受信ポール信号PLEを保持する。そして、フリップフロップ回路33aは、保持した信号レベルと等しい同期ポール信号PL1を出力する。
【0029】
フリップフロップ回路33bのイネーブル端子ENには、イネーブル信号生成回路34から出力される第2の受信イネーブル信号EN2が供給される。フリップフロップ回路33bは、Hレベルの受信イネーブル信号EN2に応答して、外部クロック信号ECKの立ち上がりエッジのタイミングで受信ポール信号PLEを保持する。そして、フリップフロップ回路33bは、保持した信号レベルと等しい同期ポール信号PL2を出力する。
【0030】
フリップフロップ回路33cのイネーブル端子ENには、イネーブル信号生成回路34から出力される第3の受信イネーブル信号EN3が供給される。フリップフロップ回路33cは、Hレベルの受信イネーブル信号EN3に応答して、外部クロック信号ECKの立ち上がりエッジのタイミングで受信ポール信号PLEを保持する。そして、フリップフロップ回路33cは、保持した信号レベルと等しい同期ポール信号PL3を出力する。
【0031】
イネーブル信号生成回路34には、図1に示す外部インタフェース14から出力されるリードリクエスト信号REQが供給される。また、イネーブル信号生成回路34には、外部クロック信号ECKが供給される。イネーブル信号生成回路34は、外部クロック信号ECKとリードリクエスト信号REQに基づいて、互いにタイミングが異なる3つの受信イネーブル信号EN1〜EN3を生成する。
【0032】
図3に示すように、イネーブル信号生成回路34は、2つのフリップフロップ回路41,42を有している。フリップフロップ回路41,42は例えばD型フリップフロップ回路である。フリップフロップ回路41のデータ入力端子INにはリードリクエスト信号REQが供給される。このリードリクエスト信号REQは第1の受信イネーブル信号EN1として出力される。
【0033】
フリップフロップ回路41のクロック端子には外部クロック信号ECKが供給される。フリップフロップ回路41は、外部クロック信号ECKの立ち上がりエッジのタイミングでリードリクエスト信号REQを保持し、その保持したレベルと等しい受信イネーブル信号EN2を出力する。リードリクエスト信号REQは、外部クロック信号ECKの1周期分のパルス幅を持ち、外部クロック信号ECKの立ち上がりエッジに同期した信号である。そして、第1の受信イネーブル信号EN1の波形及びタイミングは、リードリクエスト信号REQの波形及びタイミングと等しい。従って、第2の受信イネーブル信号EN2は、第1の受信イネーブル信号EN1に対して、外部クロック信号ECKの1周期分遅れた信号となる。
【0034】
フリップフロップ回路41の出力端子OUTはフリップフロップ回路42の入力端子INに接続されている。フリップフロップ回路42のクロック端子には外部クロック信号ECKが供給される。フリップフロップ回路42は、外部クロック信号ECKの立ち上がりエッジのタイミングで第2の受信イネーブル信号EN2を保持し、その保持したレベルと等しい受信イネーブル信号EN3を出力する。従って、第3の受信イネーブル信号EN3は、第2の受信イネーブル信号EN2に対して、外部クロック信号ECKの1周期分遅れた信号となる。
【0035】
以上説明したように、イネーブル信号生成回路34は、リードリクエスト信号REQと等しいタイミングで第1の受信イネーブル信号EN1を出力する。また、イネーブル信号生成回路34は、リードリクエスト信号REQに対して、外部クロック信号ECKの1周期分遅い第2の受信イネーブル信号EN2を生成する。そして、イネーブル信号生成回路34は、リードリクエスト信号REQに対して、外部クロック信号ECKの2周期分遅い第3の受信イネーブル信号EN3を生成する。
【0036】
図1に示す外部インタフェース14は、外部クロック信号ECKに同期して、リードリクエスト信号REQを出力する。このリードリクエスト信号REQは、外部クロック信号ECKの周期に応じた、例えば外部クロック信号ECKの1周期分のパルス幅を持つパルス信号である。
【0037】
従って、図2に示す各フリップフロップ回路33a〜33cは、受信イネーブル信号EN1〜EN3に基づいて互いに異なる期間動作し、1つの受信ポール信号PLEを互いに異なるタイミングで保持する。そして、各フリップフロップ回路33a〜33cは、保持した信号レベルと等しい同期ポール信号PL1〜PL3をそれぞれ出力する。フリップフロップ回路33a〜33cは、第2の信号生成回路の一例である。
【0038】
イネーブル信号生成回路34から出力される受信イネーブル信号EN1〜EN3は、3つのフリップフロップ回路35a,35b,35cのイネーブル端子ENにそれぞれ供給される。各フリップフロップ回路35a〜35cのクロック端子には外部クロック信号ECKが供給される。
【0039】
各フリップフロップ回路35a〜35cの入力端子INには、送信データTDOが供給される。上記したように、送信データTDOは、複数ビット(例えば8ビット)の信号である。従って、各フリップフロップ回路35a〜35cは、送信回路12のフリップフロップ回路21と同様に、送信データTDOのビット数に対応する数のフリップフロップ回路を含み、各フリップフロップ回路には送信データTDOの対応するビットが供給される。
【0040】
各フリップフロップ回路35a〜35cは、例えばD型フリップフロップ回路である。各フリップフロップ回路35a〜35cは、Hレベルの受信イネーブル信号EN1〜EN3に応答して、外部クロック信号ECKに同期して送信データTDOを保持する。そして、各フリップフロップ回路35a〜35cは、保持した信号レベルと等しいレベルの受信データRD1〜RD3を出力する。フリップフロップ回路35a〜35cは、第1の信号生成回路の一例である。
【0041】
上記したように、受信イネーブル信号EN1〜EN3は、外部クロック信号ECKの1周期づつずれたパルス信号である。従って、各フリップフロップ回路35a〜35cは、受信イネーブル信号EN1〜EN3に基づいて互いに異なる期間動作し、送信データTDOを互いに異なるタイミングで保持する。そして、各フリップフロップ回路35a〜35cは、保持した信号レベルと等しい受信データRD1〜RD3を出力する。
【0042】
受信データRD1〜RD3は、デコーダ36に供給される。このデコーダ36には、フリップフロップ回路33a〜33cが出力する同期ポール信号PL1〜PL3が供給される。デコーダ36は、同期ポール信号PL1〜PL3のレベルを互いに比較し、比較結果に応じて3つの受信データRD1〜RD3のうちの1つを選択する。そして、デコーダ36は、選択した受信データと等しい出力データRDOを出力する。デコーダ36は、データ選択回路の一例である。
【0043】
図4に示すように、デコーダ36のインバータ回路51は、第1の同期ポール信号PL1を論理反転したレベルの信号を出力する。インバータ回路52は、第2の同期ポール信号PL2を論理反転したレベルの信号を出力する。アンド回路61は、インバータ回路51,52の出力信号と第3の同期ポール信号PL3を論理積演算した結果に応じたレベルの信号S11を出力する。即ち、アンド回路61は、第1〜第3の同期ポール信号PL1〜PL3が「L,L,H」の時にHレベルの信号S11を出力し、上記組み合わせ以外の時にLレベルの信号S11を出力する。
【0044】
インバータ回路53は、第3の同期ポール信号PL3を論理反転したレベルの信号を出力する。アンド回路62は、第1及び第2の同期ポール信号PL1.PL2とインバータ回路53の出力信号を論理積演算した結果に応じたレベルの信号S12を出力する。即ち、アンド回路62は、第1〜第3の同期ポール信号PL1〜PL3が「H,H,L」の時にHレベルの信号S12を出力し、上記組み合わせ以外の時にLレベルの信号S12を出力する。
【0045】
インバータ回路54〜56は、第1〜第3の同期ポール信号PL1〜PL3をそれぞれ論理反転したレベルの信号を出力する。アンド回路63は、インバータ回路54〜56の出力信号を論理積演算した結果に応じたレベルの信号S13を出力する。即ち、アンド回路63は、第1〜第3の同期ポール信号PL1〜PL3が「L,L,L」の時にHレベルの信号S13を出力し、上記組み合わせ以外の時にLレベルの信号S13を出力する。
【0046】
アンド回路64は、第1〜第2の同期ポール信号PL1〜PL3を論理積演算した結果に応じたレベルの信号S14を出力する。即ち、アンド回路62は、第1〜第3の同期ポール信号PL1〜PL3が「H,H,H」の時にHレベルの信号S14を出力し、上記組み合わせ以外の時にLレベルの信号S14を出力する。
【0047】
オア回路65は、第1のアンド回路61の出力信号S11と第2のアンド回路62の出力信号S12を論理和演算した結果に応じた信号S15を出力する。この信号S15は、選択回路67の入力端子Aに供給される。オア回路66は、第3のアンド回路63の出力信号S13と第4のアンド回路64の出力信号S14を論理和演算した結果に応じた信号S16を出力する。この信号S16は、選択回路67の入力端子Bに供給される。
【0048】
選択回路67は4つの入力端子IN1〜IN4を有している。第1の入力端子IN1及び第4の入力端子IN4には第3の受信データRD3が供給される。第2の入力端子IN2には第2の受信データRD2が供給され、第3の入力端子IN3には第1の受信データRD1が供給される。選択回路67は、図5に示すように、2つの制御入力端子A,Bに供給される信号レベルに応じて、選択入力端子IN1〜IN4に供給される信号のうちの1つを選択し、その選択した信号と等しいレベルの出力データRDOを出力する。
【0049】
選択回路67は制御信号DEに応答して、信号S15、S16に応じた受信データを選択し、その選択した受信データと等しい出力データRDOを出力する。この制御信号DEは、
ポール信号PL(同期ポール信号PL)と送信データTDOをそれぞれ3回受け取ってから、次のリードリクエスト信号REQを受け取るまでの期間内に信号の選択が可能であればよい。なお、リードリクエスト信号REQから受信データが確定するまでに要する期間が短い方がよいため、3回目の受け取りの直後であることが好ましい。例えば、制御信号DEには、第3の受信イネーブル信号EN3が用いられる。選択回路67は、第3の受信イネーブル信号EN3の立ち下がりエッジのタイミングに基づいて、上記の選択と信号出力を行う。
【0050】
同期ポール信号PL1〜PL3は、この順序で受信ポール信号PLEを保持したレベルと等しい信号である。従って、同期ポール信号PL1〜PL3のうち、タイミング的に連続する少なくとも2つの信号のレベルは互いに等しい。例えば、第1の同期ポール信号PL1のレベルと第2の同期ポール信号PL2のレベルは互いに等しく、第3の同期ポール信号PL3のレベルは第1及び第2の同期ポール信号PL1,PL2のレベルと異なる。また、第1の同期ポール信号PL1のレベルは、第2及び第3の同期ポール信号PL2,PL3のレベルと異なる。また、第1〜第3の同期ポール信号PL1〜PL3のレベルは互いに等しい。
【0051】
図2に示すフリップフロップ回路33a〜33cは、リードリクエスト信号REQに応答するイネーブル信号生成回路34が生成した複数の受信イネーブル信号EN1〜EN3に基づいて、受信ポール信号PLEを保持して同期ポール信号PL1〜PL3を生成する。従って、レベルが互いに等しい第1〜第3の同期ポール信号PL1〜PL3は、この第1〜第3の同期ポール信号PL1〜PL3を保持する期間、受信ポール信号PLEのレベルが変化しない、即ちエッジが存在しないことを示す。一方、1つの信号レベルが他と異なる第1〜第3の同期ポール信号PL1〜PL3は、この第1〜第3の同期ポール信号PL1〜PL3を保持する期間、受信ポール信号PLEのレベルが変化する、即ちエッジが存在することを示す。
【0052】
図2に示すように、受信ポール信号PLEは、送信回路12から出力されるポール信号PLを、外部クロック信号ECKに同期して取り込んだ信号である。
その送信回路12は、送信イネーブル信号TENに基づいて、内部クロック信号SCKの立ち下がりエッジに同期してポール信号PLのレベルを反転し、次の内部クロック信号SCKの立ち上がりエッジに同期して送信データTDOを出力する。つまり、送信回路12は、ポール信号PLを反転してから内部クロック信号SCKの半周期後に送信データTDOを出力する。
【0053】
そして、送信回路12のフリップフロップ回路21は、内部クロック信号SCKにより次の入力データTDIをラッチするまで、送信データTDOを保持する。受信回路13は、直列接続された2つのフリップフロップ回路31,32により、外部クロック信号ECKに同期して、ポール信号PLに対応する受信ポール信号PLEを生成する。本実施形態において、この外部クロック信号ECKの周波数は、内部クロック信号SCKの周波数の整数倍(例えば4倍)である。従って、受信ポール信号PLEのレベルが変化するタイミングは、送信回路12が送信データTDOの値を変更するタイミングとほぼ等しい。
【0054】
クロック信号によって入力信号を保持するフリップフロップ回路において、信号を保持するタイミングと、入力信号の遷移タイミングとにより、保持するレベルが異なる場合がある。例えば、LレベルからHレベルへと遷移する入力信号において、Lレベルの信号を保持する場合と、Hレベルの信号を保持する場合がある。つまり、入力信号の遷移タイミングとフリップフロップ回路の動作タイミングが等しい又は近い場合、保持する信号レベルは確定されない、つまり不定となる。
【0055】
上記の同期ポール信号PL1〜PL3のレベルが互いに等しい場合、この同期ポール信号PL1〜PL3に対応する期間において、同期ポール信号PL1のレベルは変化しない。従って、送信データTDOも変化しない。しかし、同期ポール信号PL1〜PL3に対応する期間の直前又は直後に、受信ポール信号PLEのレベルが変化するかもしれない。このため、3つの連続的なタイミングのうち、中央のタイミングにてデータTDOを保持した受信データRD2は最もレベルが安定している。従って、デコーダ36は、図6に示すように、3つの同期ポール信号PL1〜PL3のレベルが互いに等しいとき、中央の受信データRD2を選択する。そして、デコーダ36は、選択した受信データRD2と等しい受信データRDOを出力する。
【0056】
また、上記の同期ポール信号PL1〜PL3のうちの2つの信号レベルが他の1つの信号レベルと異なる場合、デコーダ36は、信号レベルが互いに等しい2つのS15,S16信号のうち、受信ポール信号PLEの変化タイミングから時間的に離れたタイミングの信号に対応する受信データを選択する。例えば、図6に示すように、同期ポール信号PL1〜PL3の信号レベルが「L,L,H」のとき、受信ポール信号PLEのエッジ(立ち上がりエッジ)は、第2の同期ポール信号PL2を保持するタイミングと、第3の同期ポール信号PL3を保持するタイミングの間にある。従って、デコーダ36は、受信ポール信号PLEのエッジから時間的に最も離れた第1の同期ポール信号PL1に対応する受信データRD1を選択する。そして、デコーダ36は、選択した受信データRD1と等しい受信データRDOを出力する。
【0057】
また、同期ポール信号PL1〜PL3の信号レベルが「H,L,L」のとき、受信ポール信号PLEのエッジ(立ち下がりエッジ)は、第1の同期ポール信号PL1を保持するタイミングと、第2の同期ポール信号PL2を保持するタイミングの間にある。従って、デコーダ36は、受信ポール信号PLEのエッジから時間的に最も離れた第3の同期ポール信号PL3に対応する受信データRD3を選択する。そして、デコーダ36は、選択した受信データRD3と等しい受信データRDOを出力する。
【0058】
なお、LレベルとHレベルの組み合わせの場合、第2の同期ポール信号PL2の信号レベルが、第1及び第3の同期ポール信号PL1,PL3の信号レベルと異なる組み合わせが存在する。しかし、受信ポール信号PLE、つまり図2に示す送信回路12から出力されるポール信号PLは、送信データTDO毎にレベルが変化する。従って、このような組み合わせは、発生しない。
【0059】
次に、上記の送信回路12と受信回路13の動作を、図7〜図11に従って説明する。
なお、送信回路12の動作と受信回路13の動作は非同期であるため、各信号のタイミングが時間的に前後する。従って、信号の発生タイミングを判りやすくするため、図7〜図11において、各信号の発生タイミングについて同じ符号を用いて説明する。このため、タイミングを示す符号は、必ずしも時間経過とともに増加するものではない。
【0060】
先ず、送信データTDOとリードリクエスト信号REQが衝突しない、即ち、送信データTDOが変更されるタイミングがリードリクエスト信号REQに基づいて各種信号を生成する期間と重ならない場合について説明する。
【0061】
図7に示すように、送信回路12のフリップフロップ回路23は、Hレベルの送信イネーブル信号TENに基づいて、クロック端子に供給される信号の立ち上がりエッジ(内部クロック信号SCKの立ち下がりエッジ)に同期してLレベルのポール信号PLを出力する(時刻T11)。次いで、送信回路12のフリップフロップ回路21は、内部クロック信号SCKの立ち上がりエッジに同期してデータTDIを保持し、保持したデータと等しい送信データTDOを出力する(時刻T12)。
【0062】
図1に示す内部回路11は、データTDIを順次出力する。このように、順次出力されるデータTDIの時間的な変化を区別するために、必要に応じて「D(0),D(1),・・・」を用いる。
【0063】
従って、図7に示すように、データTDIは、時刻T11からデータD(0)となる。そして、送信回路12は、時刻T12においてデータD(0)を出力する。
受信回路13のフリップフロップ回路32は、上記のポール信号PLに基づいて、Lレベルの受信ポール信号PLEを出力する(時刻T21)。次いで、受信回路13のイネーブル信号生成回路34は、リードリクエスト信号REQを受け取り(時刻T22)、第1の受信イネーブル信号EN1を生成する(時刻T22)。次いで、イネーブル信号生成回路34は、外部クロック信号ECKに同期して第2の受信イネーブル信号EN2を生成し(時刻T23)、続いて第3の受信イネーブル信号EN3を生成する(時刻T24)。
【0064】
フリップフロップ回路33aは、第1の受信イネーブル信号EN1に応答して、外部クロック信号ECKに同期してLレベルの同期ポール信号PL1を出力する(時刻T23)。同様に、フリップフロップ回路33bは、第2の受信イネーブル信号EN2に応答して、外部クロック信号ECKに同期してLレベルの同期ポール信号PL2を出力し(時刻T24)、フリップフロップ回路33cは、第3の受信イネーブル信号EN3に応答して、外部クロック信号ECKに同期してLレベルの同期ポール信号PL3を出力する(時刻T25)。
【0065】
フリップフロップ回路35aは、第1の受信イネーブル信号EN1に応答して、外部クロック信号ECKに同期して受信データRD1(D(0))を出力する(時刻T23)。同様に、フリップフロップ回路35bは、第2の受信イネーブル信号EN2に応答して、外部クロック信号ECKに同期して受信データRD2(D(0))を出力し(時刻T24)、フリップフロップ回路35cは、第3の受信イネーブル信号EN3に応答して、外部クロック信号ECKに同期して受信データRD3(D(0))を出力する(時刻T25)。
【0066】
デコーダ36は、Lレベルの第1〜第3の同期ポール信号PL1〜PL3に基づいて第2の受信データRD2を選択し、その受信データRD2と等しい出力データRDO(D(0))を出力する。このように、図1に示す外部インタフェース14がリードリクエスト信号REQを送信した後、外部クロック信号ECKの3サイクル後のタイミング(時刻T26)において、受信回路13の出力データRDOのレベルが確定している。従って、外部インタフェース14は、確定した出力データRDOをこのタイミングで受け取ることができる。
【0067】
次いで、送信回路12は、Hレベルの送信イネーブル信号TENに基づいて、内部クロック信号SCKの下がりエッジに同期してHレベルのポール信号PLを出力する(時刻T31)。次いで、送信回路12は、内部クロック信号SCKの立ち上がりエッジに同期して送信データD(1)出力する(時刻T32)。
【0068】
受信回路13のフリップフロップ回路32は、上記のポール信号PLに基づいて、Hレベルの受信ポール信号PLEを出力する(時刻T41)。次いで、受信回路13のイネーブル信号生成回路34は、リードリクエスト信号REQを受け取り(時刻T42)、第1の受信イネーブル信号EN1を生成する(時刻T42)。次いで、イネーブル信号生成回路34は、外部クロック信号ECKに同期して第2の受信イネーブル信号EN2を生成し(時刻T43)、続いて第3の受信イネーブル信号EN3を生成する(時刻T44)。
【0069】
フリップフロップ回路33aは、第1の受信イネーブル信号EN1に応答して、外部クロック信号ECKに同期してHレベルの同期ポール信号PL1を出力する(時刻T43)。同様に、フリップフロップ回路33bは、第2の受信イネーブル信号EN2に応答して、外部クロック信号ECKに同期してHレベルの同期ポール信号PL2を出力し(時刻T44)、フリップフロップ回路33cは、第3の受信イネーブル信号EN3に応答して、外部クロック信号ECKに同期してHレベルの同期ポール信号PL3を出力する(時刻T45)。
【0070】
フリップフロップ回路35aは、第1の受信イネーブル信号EN1に応答して、外部クロック信号ECKに同期して受信データRD1(D(1))を出力する(時刻T43)。同様に、フリップフロップ回路35bは、第2の受信イネーブル信号EN2に応答して、外部クロック信号ECKに同期して受信データRD2(D(1))を出力し(時刻T44)、フリップフロップ回路35cは、第3の受信イネーブル信号EN3に応答して、外部クロック信号ECKに同期して受信データRD3(D(1))を出力する(時刻T45)。
【0071】
デコーダ36は、Hレベルの第1〜第3の同期ポール信号PL1〜PL3に基づいて第2の受信データRD2を選択し、その受信データRD2と等しい出力データRDO(D(1))を出力する。このように、図1に示す外部インタフェース14がリードリクエスト信号REQを送信した後、外部クロック信号ECKの3サイクル後のタイミング(時刻T46)において、受信回路13の出力データRDOのレベルが確定している。従って、外部インタフェース14は、確定した出力データRDOをこのタイミングで受け取ることができる。
【0072】
従って、受信回路13は、リードリクエスト信号REQに応答して、時刻T25に受信データD(0)を出力し、時刻T45に受信データD(1)を出力する。つまり、受信回路13は、リードリクエスト信号REQに対応する周期で、データD(0),D(1)を連続的に出力する。
【0073】
次に、送信データTDOとリードリクエスト信号REQが衝突しない、即ち、送信データTDOが変更されるタイミングがリードリクエスト信号REQに基づいて各種信号を生成する期間と重なる4つの場合について説明する。
【0074】
[ケース1]
図8に示すように、送信回路12は、送信データD(0)を出力している。
送信回路12は、Hレベルの送信イネーブル信号TENに基づいて、内部クロック信号SCKの立ち下がりエッジに同期してLレベルのポール信号PLを出力する(時刻T11)。次いで、送信回路12は、内部クロック信号SCKの立ち上がりエッジに同期して送信データD(1)出力する(時刻T12)。
【0075】
受信回路13のイネーブル信号生成回路34は、リードリクエスト信号REQを受け取り(時刻T22)、第1の受信イネーブル信号EN1を生成する(時刻T22)。次いで、イネーブル信号生成回路34は、外部クロック信号ECKに同期して第2の受信イネーブル信号EN2を生成し(時刻T23)、続いて第3の受信イネーブル信号EN3を生成する(時刻T24)。
【0076】
受信回路13のフリップフロップ回路32は、リードリクエスト信号REQの受信(時刻T22)より後の時刻T21において、上記のポール信号PLに基づいて、Lレベルの受信ポール信号PLEを出力する。なお、図8において、この時刻T21は、上記第2の受信イネーブル信号EN2が生成される時刻T23と等しい。
【0077】
フリップフロップ回路33aは、第1の受信イネーブル信号EN1に応答してHレベルの同期ポール信号PL1を出力する(時刻T23)。次に、フリップフロップ回路33bは、第2の受信イネーブル信号EN2に応答してLレベルの同期ポール信号PL2を出力し(時刻T24)、フリップフロップ回路33cは、第3の受信イネーブル信号EN3に応答してLレベルの同期ポール信号PL3を出力する(時刻T25)。
【0078】
フリップフロップ回路35aは、第1の受信イネーブル信号EN1に応答して、外部クロック信号ECKに同期して送信データD(0)を保持し、受信データRD1(D(0))を出力する(時刻T23)。次に、フリップフロップ回路35bは、第2の受信イネーブル信号EN2に応答して、外部クロック信号ECKに同期して受信データRD2(D(1))を出力する(時刻T24)。同様に、フリップフロップ回路35cは、第3の受信イネーブル信号EN3に応答して、外部クロック信号ECKに同期して受信データRD3(D(1))を出力する(時刻T25)。
【0079】
デコーダ36は、Hレベルの第1の同期ポール信号PL1と、Lレベルの第2及び第3の同期ポール信号PL2,PL3に基づいて第3の受信データRD3を選択し、その受信データRD3と等しい出力データRDO(D(1))を出力する。
【0080】
次いで、送信回路12は、内部クロック信号SCKの立ち下がりエッジに同期してHレベルのポール信号PLを出力し(時刻T31)、内部クロック信号SCKの立ち上がりエッジに同期して送信データD(2)出力する(時刻T32)。
【0081】
受信回路13のフリップフロップ回路32は、第2の受信イネーブル信号EN2を生成するタイミング(時刻T43)と等しいタイミングで、Hレベルの受信ポール信号PLEを出力する(時刻T41)。従って、フリップフロップ回路33aはLレベルの同期ポール信号PL1を出力する(時刻T43)。フリップフロップ回路33bはHレベルの同期ポール信号PL2を出力し(時刻T44)、フリップフロップ回路33cは、Hレベルの同期ポール信号PL3を出力する(時刻T45)。
【0082】
フリップフロップ回路35aは、受信データRD1(D(1))を出力する(時刻T43)。フリップフロップ回路35bは、受信データRD2(D(2))を出力する(時刻T44)。フリップフロップ回路35cは、受信データRD3(D(2))を出力する(時刻T45)。
【0083】
デコーダ36は、Lレベルの第1の同期ポール信号PL1と、Hレベルの第2及び第3の同期ポール信号PL2,PL3に基づいて第3の受信データRD3を選択し、その受信データRD3と等しい出力データRDO(D(2))を出力する。
【0084】
従って、このケース1において、受信回路13は、リードリクエスト信号REQに応答して、時刻T25に受信データD(1)を出力し、時刻T45に受信データD(2)を出力する。つまり、受信回路13は、リードリクエスト信号REQに対応する周期で、データD(1),D(2)を連続的に出力する。
【0085】
[ケース2]
図9に示すように、送信回路12は、送信データD(0)を出力している。
送信回路12は、Lレベルのポール信号PLを出力し(時刻T11)、送信データD(1)出力する(時刻T12)。
【0086】
受信回路13のイネーブル信号生成回路34は、リードリクエスト信号REQを受け取り(時刻T22)、第1の受信イネーブル信号EN1を生成する(時刻T22)。次いで、イネーブル信号生成回路34は、外部クロック信号ECKに同期して第2の受信イネーブル信号EN2を生成し(時刻T23)、続いて第3の受信イネーブル信号EN3を生成する(時刻T24)。
【0087】
受信回路13のフリップフロップ回路32は、リードリクエスト信号REQの受信(時刻T22)より後の時刻T21において、上記のポール信号PLに基づいて、Lレベルの受信ポール信号PLEを出力する。なお、図9において、この時刻T21は、上記第3の受信イネーブル信号EN3が生成される時刻T24と等しい。
【0088】
フリップフロップ回路33aは、第1の受信イネーブル信号EN1に応答してHレベルの同期ポール信号PL1を出力する(時刻T23)。次に、フリップフロップ回路33bは、第2の受信イネーブル信号EN2に応答してHレベルの同期ポール信号PL2を出力する(時刻T24)。次に、フリップフロップ回路33cは、第3の受信イネーブル信号EN3に応答してLレベルの同期ポール信号PL3を出力する(時刻T25)。
【0089】
フリップフロップ回路35aは、第1の受信イネーブル信号EN1に応答して、外部クロック信号ECKに同期して送信データD(0)を保持し、受信データRD1(D(0))を出力する(時刻T23)。同様に、フリップフロップ回路35bは、第2の受信イネーブル信号EN2に応答して、外部クロック信号ECKに同期して受信データRD2(D(0))を出力する(時刻T24)。次に、フリップフロップ回路35cは、第3の受信イネーブル信号EN3に応答して、外部クロック信号ECKに同期して受信データRD3(D(1))を出力する(時刻T25)。
【0090】
デコーダ36は、Hレベルの第1及び第2の同期ポール信号PL1,PL2と、Lレベルの第3の同期ポール信号PL3に基づいて第1の受信データRD1を選択し、その受信データRD1と等しい出力データRDO(D(0))を出力する。
【0091】
次いで、送信回路12は、Hレベルのポール信号PLを出力し(時刻T31)、送信データD(2)出力する(時刻T32)。
受信回路13のフリップフロップ回路32は、第3の受信イネーブル信号EN3を生成するタイミング(時刻T44)と等しいタイミングで、Hレベルの受信ポール信号PLEを出力する(時刻T41)。従って、フリップフロップ回路33aはLレベルの同期ポール信号PL1を出力する(時刻T43)。フリップフロップ回路33bはLレベルの同期ポール信号PL2を出力し(時刻T44)、フリップフロップ回路33cは、Hレベルの同期ポール信号PL3を出力する(時刻T45)。
【0092】
フリップフロップ回路35aは、受信データRD1(D(1))を出力する(時刻T43)。フリップフロップ回路35bは、受信データRD2(D(1))を出力する(時刻T44)。フリップフロップ回路35cは、受信データRD3(D(2))を出力する(時刻T45)。
【0093】
デコーダ36は、Lレベルの第1及び第2の同期ポール信号PL1,PL2と、Hレベルの第3の同期ポール信号PL3に基づいて第1の受信データRD1を選択し、その受信データRD1と等しい出力データRDO(D(1))を出力する。
【0094】
従って、このケース2において、受信回路13は、リードリクエスト信号REQに応答して、時刻T25に受信データD(0)を出力し、時刻T45に受信データD(1)を出力する。つまり、受信回路13は、リードリクエスト信号REQに対応する周期で、データD(0),D(1)を連続的に出力する。
【0095】
[ケース3]
図10に示すように、送信回路12は、送信データD(0)を出力している。
送信回路12は、Lレベルのポール信号PLを出力し(時刻T11)、送信データD(1)出力する(時刻T12)。
【0096】
受信回路13のイネーブル信号生成回路34は、リードリクエスト信号REQを受け取り(時刻T22)、第1の受信イネーブル信号EN1を生成する(時刻T22)。次いで、イネーブル信号生成回路34は、外部クロック信号ECKに同期して第2の受信イネーブル信号EN2を生成し(時刻T23)、続いて第3の受信イネーブル信号EN3を生成する(時刻T24)。
【0097】
受信回路13のフリップフロップ回路32は、リードリクエスト信号REQの受信(時刻T22)より後の時刻T21において、上記のポール信号PLに基づいて、Lレベルの受信ポール信号PLEを出力する。なお、図10において、この時刻T21は、上記第3の受信イネーブル信号EN3の生成後の時刻T25と等しい。
【0098】
フリップフロップ回路33aは、第1の受信イネーブル信号EN1に応答してHレベルの同期ポール信号PL1を出力する(時刻T23)。次に、フリップフロップ回路33bは、第2の受信イネーブル信号EN2に応答してHレベルの同期ポール信号PL2を出力する(時刻T24)。次に、フリップフロップ回路33cは、第3の受信イネーブル信号EN3に応答してHレベルの同期ポール信号PL3を出力する(時刻T25)。
【0099】
フリップフロップ回路35aは、第1の受信イネーブル信号EN1に応答して、外部クロック信号ECKに同期して送信データD(0)を保持し、受信データRD1(D(0))を出力する(時刻T23)。同様に、フリップフロップ回路35bは、第2の受信イネーブル信号EN2に応答して、外部クロック信号ECKに同期して受信データRD2(D(0))を出力する(時刻T24)。次に、フリップフロップ回路35cは、第3の受信イネーブル信号EN3に応答して、外部クロック信号ECKに同期して受信データRD3(D(0))を出力する(時刻T25)。
【0100】
デコーダ36は、Hレベルの第1〜第3の同期ポール信号PL1〜PL3に基づいて第2の受信データRD2を選択し、その受信データRD2と等しい出力データRDO(D(0))を出力する。
【0101】
次いで、送信回路12は、Hレベルのポール信号PLを出力し(時刻T31)、送信データD(2)出力する(時刻T32)。
受信回路13のフリップフロップ回路32は、第3の受信イネーブル信号EN3生成後のタイミング(時刻T45)と等しいタイミングで、Lレベルの受信ポール信号PLEを出力する(時刻T41)。従って、フリップフロップ回路33aはLレベルの同期ポール信号PL1を出力する(時刻T43)。フリップフロップ回路33bはLレベルの同期ポール信号PL2を出力し(時刻T44)、フリップフロップ回路33cは、Lレベルの同期ポール信号PL3を出力する(時刻T45)。
【0102】
フリップフロップ回路35aは、受信データRD1(D(1))を出力する(時刻T43)。フリップフロップ回路35bは、受信データRD2(D(1))を出力する(時刻T44)。フリップフロップ回路35cは、受信データRD3(D(1))を出力する(時刻T45)。
【0103】
デコーダ36は、Lレベルの第1〜第3の同期ポール信号PL1〜PL3に基づいて第2の受信データRD2を選択し、その受信データRD2と等しい出力データRDO(D(1))を出力する。
【0104】
従って、このケース3において、受信回路13は、リードリクエスト信号REQに応答して、時刻T25に受信データD(0)を出力し、時刻T45に受信データD(1)を出力する。つまり、受信回路13は、リードリクエスト信号REQに対応する周期で、データD(0),D(1)を連続的に出力する。
【0105】
[ケース4]
図2に示すフリップフロップ回路35a〜35cは、例えば8ビットの送信データTDOをそれぞれ保持可能に構成されている。つまり、各フリップフロップ回路35a〜35cは、それぞれ送信データTDOのビット数に対応する8個のフリップフロップ回路を含む。そして、送信データTDOの各ビットは、互いに異なる配線を介してそれぞれ対応するフリップフロップ回路に供給される。このため、送信データTDOを構成する8ビットの信号の遅延時間、つまり対応するフリップフロップ回路の入力端子レベルが変化するタイミングが異なる場合がある。このような場合、フリップフロップ回路において保持されるデータが異なる。
【0106】
例えば、図11に示すように、データTDIの上位4ビットに対応する送信データTDOaと、データTDIの下位4ビットに対応する送信データTDObのタイミングが異なる。なお、この送信データTDOa,TDObのタイミングは、図2に示す受信回路13の各フリップフロップ回路35a〜35cの入力端子INにおいて信号レベルが変化するタイミングを示す。
【0107】
フリップフロップ回路35bは、第2の受信データRD2を出力する。この受信データRD2は、上位4ビットに対応する受信データRD2aと、下位4ビットに対応する受信データRD2bを含む。フリップフロップ回路35bにおいて、上位4ビットに対応するフリップフロップ回路は、第2の受信イネーブル信号EN2に応答して、外部クロック信号ECKに同期して送信データTDOa(D(1))を保持し、受信データRD2a(D(1))を出力する(時刻T23)。一方、フリップフロップ回路35bにおいて、下位4ビットに対応するフリップフロップ回路は、第2の受信イネーブル信号EN2に応答して、外部クロック信号ECKに同期して送信データTDOb(D(0))を保持し、受信データRD2b(D(0))を出力する(時刻T23)。
【0108】
なお、フリップフロップ回路35aは、第1の受信イネーブル信号EN1に応答して、外部クロック信号ECKに同期して送信データD(0)を保持し、受信データRD1(D(0))を出力する(時刻T23)。フリップフロップ回路35cは、第3の受信イネーブル信号EN3に応答して、外部クロック信号ECKに同期して送信データD(1)を保持し、受信データRD3(D(1))を出力する(時刻T25)。
【0109】
このケース4において、受信回路13のフリップフロップ回路32は、第3の受信イネーブル信号EN3を生成するタイミング(時刻T24)と等しいタイミングで、Hレベルの受信ポール信号PLEを出力する(時刻T21)。従って、フリップフロップ回路33aはHレベルの同期ポール信号PL1を出力する(時刻T23)。フリップフロップ回路33bはHレベルの同期ポール信号PL2を出力し(時刻T24)、フリップフロップ回路33cは、Lレベルの同期ポール信号PL3を出力する(時刻T25)。
【0110】
従って、デコーダ36は、Hレベルの第1及び第2の同期ポール信号PL1,PL2と、Lレベルの第3の同期ポール信号PL3に基づいて第1の受信データRD1を選択し、その受信データRD1と等しい出力データRDO(D(0))を出力する。
【0111】
次いで、送信回路12は、Hレベルのポール信号PLを出力し(時刻T31)、送信データD(2)出力する(時刻T32)。
上記と同様に、フリップフロップ回路35bにおいて、上位4ビットに対応するフリップフロップ回路は、外部クロック信号ECKに同期して送信データTDOa(D(2))を保持し、受信データRD2a(D(2))を出力する(時刻T23)。一方、フリップフロップ回路35bにおいて、下位4ビットに対応するフリップフロップ回路は、外部クロック信号ECKに同期して送信データTDOb(D(1))を保持し、受信データRD2b(D(1))を出力する(時刻T23)。
【0112】
フリップフロップ回路35aは、外部クロック信号ECKに同期して受信データRD1(D(1))を出力する(時刻T23)。フリップフロップ回路35cは、外部クロック信号ECKに同期して受信データRD3(D(2))を出力する(時刻T25)。
【0113】
受信回路13のフリップフロップ回路32は、第3の受信イネーブル信号EN3を生成するタイミング(時刻T44)と等しいタイミングで、Hレベルの受信ポール信号PLEを出力する(時刻T41)。従って、フリップフロップ回路33aはLレベルの同期ポール信号PL1を出力する(時刻T43)。フリップフロップ回路33bはLレベルの同期ポール信号PL2を出力し(時刻T44)、フリップフロップ回路33cは、Hレベルの同期ポール信号PL3を出力する(時刻T45)。
【0114】
デコーダ36は、Lレベルの第1及び第2の同期ポール信号PL1,PL2と、Hレベルの第3の同期ポール信号PL3に基づいて第1の受信データRD1を選択し、その受信データRD1と等しい出力データRDO(D(1))を出力する。
【0115】
従って、このケース4において、受信回路13は、リードリクエスト信号REQに応答して、時刻T25に受信データD(0)を出力し、時刻T45に受信データD(1)を出力する。つまり、受信回路13は、リードリクエスト信号REQに対応する周期で、データD(0),D(1)を連続的に出力する。
【0116】
なお、上記の説明に用いた図7〜図11では、内部クロック信号SCKのエッジと外部クロック信号ECKのエッジが時間的に揃っている、つまり、同期しているかのように描いている。しかし、
なお、上記の説明に用いた図7〜図11では、内部クロック信号SCKのエッジと外部クロック信号ECKのエッジがあたかも時間的に揃っているように、各波形を描いている。しかし、内部クロック信号SCKのエッジと外部クロック信号ECKのエッジが時間的に揃っていない場合であっても、上記の各説明と同様に受信回路が動作し、データを連続的に転送することができる。
【0117】
上記したように、受信回路13は、図1に示す外部インタフェース14から出力されるリードリクエスト信号REQに応答して受信データRDOを出力する。
外部インタフェース14は、図12に示すように、外部クロック信号ECKに同期したシリアル通信により、受信データRDOを外部の装置に送信する。
【0118】
外部インタフェース14は、選択信号CSBがLレベルになると、シリアル通信により互いに送受信する全てのデバイスによって使用される同期クロック信号(本実施形態では外部クロック信号ECK)に同期してマスタにより駆動されるデータ線MOSIにより選択されると、受信データRDOに応じてデータ線MISOを駆動する。
【0119】
上記したように、リードリクエスト信号REQから外部クロック信号ECKの3サイクル後には、受信回路13からデータRDOが出力される。従って、外部インタフェース14は、通信開始から4サイクル後にリードリクエスト信号REQを発行しても、データRDOに基づくシリアルデータSDの転送が可能となる。
【0120】
そして、リードリクエスト信号REQの発行後に内部回路11によるデータTDIが更新されても、そのデータTDIに基づく送信データTDOを受信回路13が受け取るため、最新のデータを外部に対して送信することができる。
【0121】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)送信回路12は、データTDOを出力する毎に、ポール信号PLのレベルを反転する。受信回路13は、リードリクエスト信号REQに応答してポール信号を複数のタイミングで受け取るとともに、送信データTDOを複数のタイミングで受け取る。そして、受信回路13は、タイミングが異なる複数のポール信号に基づいて、受け取った複数のデータのうちの1つと等しい受信データRDOを出力する。これにより、送信回路12と受信回路13は、互いにハンドシェークを行うことなく、非同期にてデータ転送を行うことができる。
【0122】
(2)受信回路13は、送信回路12から出力される送信データTDOを確実に受け取るため、内部クロック信号SCKに同期して次のデータTDIをフリップフロップ回路21に保持する。従って、図1に示す内部回路11に対して送信データTDIの出力を中断することなく、連続的なデータの転送を行うことができる。
【0123】
(3)受信回路13は、送信回路12から出力される送信データTDOを確実に受け取るため、送信回路12にデータを保持するためのレジスタ等を設ける必要がなく、回路規模の増加を抑制することができる。
【0124】
(4)デコーダ36は、同期ポール信号PL1〜PL3のレベルが互いに等しい場合、第2の受信データRD2を選択する。3つの連続的なタイミングのうち、中央のタイミングにてデータTDOを保持した受信データRD2は最もレベルが安定している。また、デコーダ36は、同期ポール信号PL1〜PL3のうちの2つの信号レベルが他の1つの信号レベルと異なる場合、受信ポール信号PLEの変化タイミングから時間的に離れたタイミングの信号に対応する受信データを選択する。このことは、送信回路12による送信データTDOがレベル変化するタイミングから最も離れたタイミングで保持した受信データを選択することであり、この受信データのレベルは安定している。このように受信データRD2を選択することにより、データを確実に転送することができる。
【0125】
(5)受信回路13のフリップフロップ回路31は、送信回路12から出力されるポール信号PLを、外部クロック信号ECKに同期して受け取る。フリップフロップ回路31に直列接続されたフリップフロップ回路32は、フリップフロップ回路31の出力信号を、外部クロック信号ECKに同期して受け取り、受信ポール信号PLEを出力する。
【0126】
クロック信号により信号を保持するフリップフロップ回路は、セットアップタイムとホールドタイムのタイミングが満足されないときにメタステーブルが発生する場合がある。このため、同じクロック信号により動作する2つのフリップフロップ回路を直列に接続することにより、メタステーブルの影響を低減し、ポール信号PLを受け取ることができる。
【0127】
(6)受信回路13は、送信回路12の送信データTDIを、タイミングが互いに異なる第1〜第3の受信イネーブル信号EN1〜EN3を受けるフリップフロップ回路35a〜35cにより保持して第1〜第3の受信データRD1〜RD3を生成する。メタステーブルは、例えば非同期回路のように、ホールドタイム等のタイミングが満足されないフリップフロップ回路の出力信号に発生する。従って、送信回路12による送信データTDOがレベル変化するタイミングから最も離れたタイミングで保持した受信データを選択することで、メタステーブルの発生を考慮することなく、レベルが安定した受信データを得ることができる。そして、メタステーブルに対応する装置と比して、チップ面積の増加を抑制することができる。
【0128】
尚、上記各実施形態は、以下の態様で実施してもよい。
・図1に示す半導体装置10は、送信回路12と受信回路13を含む装置の一例であり、この半導体装置10に限定されるものではない。例えば、上記実施形態は、周期的にデータSDを出力する半導体装置10であるが、データを不定期に出力する半導体装置に、上記の送信回路12及び受信回路13を適用してもよい。
【0129】
・上記実施形態の受信回路13は、リードリクエスト信号REQに応答して受信イネーブル信号EN1〜EN3を生成するようにしたが、他の信号に基づいて各受信イネーブル信号EN1〜EN3を生成するようにしてもよい。例えば、受信回路のイネーブル信号生成回路は、例えばタイマ回路やカウンタ回路のように周期的に信号を出力する回路の出力信号に基づいて各受信イネーブル信号EN1〜EN3を順次生成する。このようにしても、送信回路12と非同期で動作する受信回路13において、送信回路12の出力データTDOを確実に受信することが可能となる。
【0130】
・上記実施形態に対し、ポール信号PLを受信して受信ポール信号PLEを生成するフリップフロップ回路31,32の数を適宜変更してもよい。
・上記実施形態において、図3に示すイネーブル信号生成回路34の構成を適宜変更してもよい。例えば、リードリクエスト信号REQが外部クロック信号ECKに同期していない場合、3つのフリップフロップ回路を直列的に接続する。初段のフリップフロップ回路にてリードリクエスト信号REQを保持して第1の受信イネーブル信号EN1を生成し、2段目のフリップフロップ回路にて第1の受信イネーブル信号EN1を保持して第2の受信イネーブル信号EN2を生成し、最終段のフリップフロップ回路にて第2の受信イネーブル信号EN2を保持して第3の受信イネーブル信号EN3を生成する。
【0131】
・上記実施形態において、受信回路が送信データを受信するタイミングは、3つのタイミングに限られず、適宜、タイミングの数を変更してもよい。
・上記実施形態において、外部クロック信号ECKの周波数を、内部クロック信号SCKの周波数の整数倍としたが、周波数を適宜設定してもよい。
【0132】
上記各実施形態に関し、以下の付記を開示する。
(付記1)
第1のクロック信号により動作する送信回路から、前記第1のクロック信号と異なる第2のクロック信号により動作する受信回路へ送信データを転送するデータ転送システムであって、
前記送信回路は、
前記送信データの送信タイミングに応じて信号レベルを論理反転したポール信号を出力する出力回路を有し、
前記受信回路は、
前記送信データを複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の受信データを生成する第1の信号生成回路と、
前記ポール信号を前記複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の同期ポール信号を生成する第2の信号生成回路と、
前記複数の同期ポール信号のレベルを互いに比較した結果に応じて前記複数の受信データのうちから選択した1つの受信データを出力するデータ選択回路と、
を有することを特徴とするデータ転送システム。
(付記2)
前記第1の信号生成回路は、互いに異なる3つのタイミングに対応した第1〜第3の受信データを生成し、
前記第2の信号生成回路は、前記3つのタイミングに対応した第1〜第3の同期ポール信号を生成すること
を特徴とする付記1記載のデータ転送システム。
(付記3)
前記データ選択回路は、
前記第1〜第3の同期ポール信号の信号レベルが互いに等しい場合に前記第2の受信データを選択し、
前記第1の同期ポール信号の信号レベルが前記第2の同期ポール信号及び前記第3の同期ポール信号の信号レベルと異なる場合に前記第3の受信データを選択し、
前記第1の同期ポール信号及び前記第2の同期ポール信号の信号レベルが前記第3の同期ポール信号の信号レベルと異なる場合に前記第1の受信データを選択すること
を特徴とする付記2記載のデータ転送システム。
(付記4)
前記受信回路は、
直列接続され前記第2のクロック信号が供給される複数のフリップフロップ回路を含み、
初段の前記フリップフロップ回路には前記ポール信号が供給され、
前記第2の信号生成回路は、前記複数のフリップフロップ回路のうちの最終段の前記フリップフロップ回路から出力される同期ポール信号を前記3つのタイミングで保持して前記第1〜第3の同期ポール信号を生成すること、
を特徴とする付記2又は3記載のデータ転送システム。
(付記5)
所定周期で繰り返すタイミング信号に基づいて前記3つのタイミングに対応する第1〜第3の受信イネーブル信号を生成するイネーブル信号生成回路を備え、
前記第2の信号生成回路と前記第1の信号生成回路は、それぞれ前記第1〜第3の受信イネーブル信号に基づいて信号を生成すること、
を特徴とする付記2〜4のうちの何れか一項に記載のデータ転送システム。
(付記6)
前記第1の信号生成回路は、
イネーブル端子に前記第1の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、入力端子に前記送信データが供給され、前記第1の受信データを出力する第1のフリップフロップ回路と、
イネーブル端子に前記第2の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、入力端子に前記送信データが供給され、前記第2の受信データを出力する第2のフリップフロップ回路と、
イネーブル端子に前記第3の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、入力端子に前記送信データが供給され、前記第3の受信データを出力する第3のフリップフロップ回路と、
を含むことを特徴とする付記5記載のデータ転送システム。
(付記7)
前記第2の信号生成回路は、
イネーブル端子に前記第1の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、前記第1の同期ポール信号を出力する第1のフリップフロップ回路と、
イネーブル端子に前記第2の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、前記第2の同期ポール信号を出力する第2のフリップフロップ回路と、
イネーブル端子に前記第3の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、前記第3の同期ポール信号を出力する第3のフリップフロップ回路と、
を含むことを特徴とする付記5又は6に記載のデータ転送システム。
(付記8)
前記送信回路は、イネーブル端子に送信イネーブル信号が供給され、前記第1のクロック信号に基づいてデータを保持し、その保持したレベルと等しい前記送信データを出力するフリップフロップ回路を含む、ことを特徴とする付記1〜7のうちの何れか一項に記載のデータ転送システム。
(付記9)
第1のクロック信号により動作する送信回路から、前記第1のクロック信号と異なる第2のクロック信号により動作する受信回路へ送信データを転送するデータ転送方法であって、
前記送信回路は、
前記送信データの送信タイミングに応じて信号レベルを論理反転したポール信号を出力し、
前記受信回路は、
前記送信データを複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の受信データを生成し、
前記ポール信号を前記複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の同期ポール信号を生成し、
前記複数の同期ポール信号のレベルを互いに比較した結果に応じて前記複数の受信データのうちから選択した1つの受信データを出力すること、
を特徴とするデータ転送方法。
(付記10)
送信回路から出力される送信データを複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の受信データを生成する第1の信号生成回路と、
前記送信回路が前記送信データの送信タイミングに応じて信号レベルを論理反転するポール信号を前記複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の同期ポール信号を生成する第2の信号生成回路と、
前記複数の同期ポール信号のレベルを互いに比較した結果に応じて前記複数の受信データのうちから選択した1つの受信データを出力するデータ選択回路と、
を有することを特徴とする受信回路。
(付記11)
送信回路から出力される送信データを複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の受信データを生成し、
前記送信回路が前記送信データの送信タイミングに応じて信号レベルを論理反転するポール信号を前記複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の同期ポール信号を生成し、
前記複数の同期ポール信号のレベルを互いに比較した結果に応じて前記複数の受信データのうちから選択した1つの受信データを出力すること、
を特徴とする受信方法。
【符号の説明】
【0133】
12 送信回路
13 受信回路
31,32 フリップフロップ回路
33a〜33c フリップフロップ回路
34 イネーブル信号生成回路
35a〜35c フリップフロップ回路
36 デコーダ
PL ポール信号
PLE 受信ポール信号
PL1〜PL3 同期ポール信号
TDO 出力データ
EN1〜EN3 受信イネーブル信号
RD1〜RD3 受信データ
RDO 受信データ

【特許請求の範囲】
【請求項1】
第1のクロック信号により動作する送信回路から、前記第1のクロック信号と異なる第2のクロック信号により動作する受信回路へ送信データを転送するデータ転送システムであって、
前記送信回路は、
前記送信データの送信タイミングに応じて信号レベルを論理反転したポール信号を出力する出力回路を有し、
前記受信回路は、
前記送信データを複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の受信データを生成する第1の信号生成回路と、
前記ポール信号を前記複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の同期ポール信号を生成する第2の信号生成回路と、
前記複数の同期ポール信号のレベルを互いに比較した結果に応じて前記複数の受信データのうちから選択した1つの受信データを出力するデータ選択回路と、
を有することを特徴とするデータ転送システム。
【請求項2】
前記第1の信号生成回路は、互いに異なる3つのタイミングに対応した第1〜第3の受信データを生成し、
前記第2の信号生成回路は、前記3つのタイミングに対応した第1〜第3の同期ポール信号を生成すること
を特徴とする請求項1記載のデータ転送システム。
【請求項3】
前記データ選択回路は、
前記第1〜第3の同期ポール信号の信号レベルが互いに等しい場合に前記第2の受信データを選択し、
前記第1の同期ポール信号の信号レベルが前記第2の同期ポール信号及び前記第3の同期ポール信号の信号レベルと異なる場合に前記第3の受信データを選択し、
前記第1の同期ポール信号及び前記第2の同期ポール信号の信号レベルが前記第3の同期ポール信号の信号レベルと異なる場合に前記第1の受信データを選択すること
を特徴とする請求項2記載のデータ転送システム。
【請求項4】
前記受信回路は、
直列接続され前記第2のクロック信号が供給される複数のフリップフロップ回路を含み、
初段の前記フリップフロップ回路には前記ポール信号が供給され、
前記第2の信号生成回路は、前記複数のフリップフロップ回路のうちの最終段の前記フリップフロップ回路から出力される同期ポール信号を前記3つのタイミングで保持して前記第1〜第3の同期ポール信号を生成すること、
を特徴とする請求項2又は3記載のデータ転送システム。
【請求項5】
所定周期で繰り返すタイミング信号に基づいて前記3つのタイミングに対応する第1〜第3の受信イネーブル信号を生成するイネーブル信号生成回路を備え、
前記第2の信号生成回路と前記第1の信号生成回路は、それぞれ前記第1〜第3の受信イネーブル信号に基づいて信号を生成すること、
を特徴とする請求項2〜4のうちの何れか一項に記載のデータ転送システム。
【請求項6】
前記第1の信号生成回路は、
イネーブル端子に前記第1の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、入力端子に前記送信データが供給され、前記第1の受信データを出力する第1のフリップフロップ回路と、
イネーブル端子に前記第2の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、入力端子に前記送信データが供給され、前記第2の受信データを出力する第2のフリップフロップ回路と、
イネーブル端子に前記第3の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、入力端子に前記送信データが供給され、前記第3の受信データを出力する第3のフリップフロップ回路と、
を含むことを特徴とする請求項5記載のデータ転送システム。
【請求項7】
前記第2の信号生成回路は、
イネーブル端子に前記第1の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、前記第1の同期ポール信号を出力する第1のフリップフロップ回路と、
イネーブル端子に前記第2の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、前記第2の同期ポール信号を出力する第2のフリップフロップ回路と、
イネーブル端子に前記第3の受信イネーブル信号が供給され、クロック端子に前記第2のクロック信号が供給され、前記第3の同期ポール信号を出力する第3のフリップフロップ回路と、
を含むことを特徴とする請求項5又は6に記載のデータ転送システム。
【請求項8】
前記送信回路は、イネーブル端子に送信イネーブル信号が供給され、前記第1のクロック信号に基づいてデータを保持し、その保持したレベルと等しい前記送信データを出力するフリップフロップ回路を含む、ことを特徴とする請求項1〜7のうちの何れか一項に記載のデータ転送システム。
【請求項9】
送信回路から出力される送信データを複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の受信データを生成する第1の信号生成回路と、
前記送信回路が前記送信データの送信タイミングに応じて信号レベルを論理反転するポール信号を前記複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の同期ポール信号を生成する第2の信号生成回路と、
前記複数の同期ポール信号のレベルを互いに比較した結果に応じて前記複数の受信データのうちから選択した1つの受信データを出力するデータ選択回路と、
を有することを特徴とする受信回路。
【請求項10】
送信回路から出力される送信データを複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の受信データを生成し、
前記送信回路が前記送信データの送信タイミングに応じて信号レベルを論理反転するポール信号を前記複数のタイミングでそれぞれ受信して、各々のタイミングに対応した複数の同期ポール信号を生成し、
前記複数の同期ポール信号のレベルを互いに比較した結果に応じて前記複数の受信データのうちから選択した1つの受信データを出力すること、
を特徴とする受信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate