(57)【特許請求の範囲】
【請求項１】
外部から供給されるリード対象データを外部から供給されるクロックに同期して取り込んで保持するレジスタと、
前記リード対象データが変更された時にスタートパルスを生成するパルス生成部と、
前記パルス生成部で生成されたスタートパルスに応答して前記レジスタへの取り込みを禁止する禁止信号を生成する調停部と、
前記調停部で生成された前記禁止信号によって取り込みが禁止されている前記レジスタに保持されている内容を、前記外部クロックと非同期に外部から供給されるリード信号に同期して読み出して出力するドライバ、
とを備えた非同期インタフェース装置。
【請求項２】
前記調停部は、前記リード信号がアクティブにされている期間に応じて前記阻止信号を引き延ばす、請求項１に記載の非同期インタフェース装置。
【請求項３】
前記パルス生成部は、前記外部クロックに同期して外部から送られてくる、前記リード対象データが変更された旨を表すリード対象データ変更信号の変化に応答して前記スタートパルスを生成する、請求項２に記載の非同期インタフェース装置。
【請求項４】
前記レジスタは、
前記外部から供給されるリード対象データを前記外部クロックに同期して取り込んで保持する第１レジスタと、
前記第１レジスタの内容を前記外部クロックに同期して取り込んで保持する第２レジスタ、とを備え、
前記調停部は、前記パルス生成部で生成されたスタートパルスに応答して前記第１レジスタ及び前記第２レジスタへの取り込みを背反的に禁止する禁止信号を生成し、
前記ドライバは、前記調停部で生成された前記禁止信号によって取り込みが禁止されている前記第１レジスタ又は前記第２レジスタの内容を、前記外部クロックと非同期に外部から供給されるリード信号に同期して読み出して出力する、請求項３に記載の非同期インタフェース装置。
【請求項５】
外部から供給されるリード対象データを外部から供給されるクロックに同期して取り込んで保持するレジスタを提供するステップと、
前記リード対象データが変更された時にスタートパルスを生成するステップと、
前記生成されたスタートパルスに応答して前記取り込みを禁止する禁止信号を生成するステップと、
前記生成された禁止信号によって取り込みが禁止されている前記レジスタに保持されている内容を、前記外部クロックと非同期に外部から供給されるリード信号に同期して読み出して出力するステップ、
とを備えた非同期インタフェース方法。
【請求項６】
前記禁止信号を生成するステップは、前記リード信号がアクティブにされている期間に応じて前記阻止信号を引き延ばす、請求項５に記載の非同期インタフェース方法。
【請求項７】
前記スタートパルスを生成するステップは、前記外部クロックに同期して外部から送られてくる、前記リード対象データが変更された旨を表すリード対象データ変更信号の変化に応答して前記スタートパルスを生成する、請求項６に記載の非同期インタフェース方法。
【請求項８】
前記レジスタは、
前記外部から供給されるリード対象データを前記外部クロックに同期して取り込んで保持する第１レジスタと、
前記第１レジスタの内容を前記外部クロックに同期して取り込んで保持する第２レジスタ、とから成り、
前記禁止信号を生成するステップは、前記生成されたスタートパルスに応答して前記第１レジスタ及び前記第２レジスタへの取り込みを背反的に禁止する禁止信号を生成し、
前記出力するステップは、前記生成された前記禁止信号によって取り込みが禁止されている前記第１レジスタ又は前記第２レジスタの内容を、前記外部クロックと非同期に外部から供給されるリード信号に同期して読み出して出力する、請求項７に記載の非同期インタフェース方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、非同期インタフェース装置及び非同期インタフェース方法に関し、特に非同期で動作するデバイス間でデータを転送する技術に関する。
【０００２】
【従来の技術】
従来、例えばＣＰＵと、このＣＰＵに対して非同期で動作する周辺デバイスとをバスで接続したシステムが知られている。このようなシステムでは、一般に、ＣＰＵのバスサイクルにウェイトサイクルを挿入し、周辺デバイスの動作クロック（以下、「外部クロック」という）に同期するまでＣＰＵをウェイトさせるように制御される。このようなシステムでは、ウェイトサイクルの挿入に起因する性能劣化を改善することが望まれている。
【０００３】
この要請に応え得るものとして、例えば、特開平８−３３５１６２は、「入力インタフェース回路」を開示している。この入力インタフェース回路では、周辺デバイスからのデータが、外部クロックの立ち上がりエッジと立ち下がりエッジの両方で取り込まれて保持される。そして、周辺デバイスからのデータの取り込みを指示するリード信号がＣＰＵから出力された時に、上記外部クロックをＣＰＵのリード信号でサンプリングする。このサンプリングの結果、高レベル（以下、Ｈレベル」とうい）であれば立ち上がりエッジで取り込んで保持されているデータを選択してＣＰＵに送り、低レベル（以下、「Ｌレベル」という）であれば立ち下がりエッジで取り込まれて保持されているデータを選択して、ＣＰＵに送る。
【０００４】
なお、他の関連技術として、特開２０００−７６１８０は、バッファを有効に活用して、転送性能を向上させることのできるバス接続装置及び情報処理システムを開示している。また、特開平６−２７４４６０は、高速プロセッサの動作効率を向上させることのできる異速度プロセッサ間データ通信装置を開示している。更に、特開平１１−３３８８２１は、クロック同期化のために必要なデータバッファを１段のみの構成で、高速バスから低速バスに対しデータ転送を行なう際に生じるオーバヘッドを極力減らし、低速バスでのデータの連続使用を可能とすることによりシステム性能を向上させることのできる非同期データ転送装置を開示している。
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した特開平８−３３５１６２に開示された入力インタフェース回路は、リード信号のパルス幅が外部クロックのパルス幅の５０％以上である場合は、ＣＰＵによるリード動作中であっても周辺デバイスからのデータが変化するので、正常なデータが得られない場合が生成する。
【０００６】
また、外部クロックのレベルは、外部クロックの立ち上がりエッジで取り込まれたデータ及び立ち下がりエッジで取り込まれたデータの何れかを選択するために使用される。従って、外部クロックのデューティ比が常に一定になるように厳密に設計及び調整する必要があり、設計及び調整に手間がかかる。
【０００７】
本発明は、上述した問題を解消するためになされたものであり、その目的は、非同期で動作する複数の装置間のデータ転送を、各装置の動作クロックの周期に拘わらず、常に正常に行うことのできる非同期インタフェース装置及び非同期インタフェース方法を提供することにある。
【０００８】
【課題を解決するための手段】
以下に、［発明の実施の形態］で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明の実施の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００９】
本発明の第１の態様に係る非同期インタフェース装置は、上記目的を達成するために、図１に示すように、外部から供給されるリード対象データを外部から供給されるクロックに同期して取り込んで保持するレジスタ（１３、１４）と、前記リード対象データが変更された時にスタートパルスを生成するパルス生成部（１１）と、前記パルス生成部（１１）で生成されたスタートパルスに応答して前記レジスタ（１３、１４）への取り込みを禁止する禁止信号を生成する調停部（１２）と、前記調停部（１２）で生成された前記禁止信号によって取り込みが禁止されている前記レジスタ（１３、１４）に保持されている内容を、前記クロックと非同期に外部から供給されるリード信号に同期して読み出して出力するドライバ（１５）とを備えている。
【００１０】
この非同期インタフェース装置において、前記調停部（１２）は、前記リード信号がアクティブにされている期間に応じて前記阻止信号を引き延ばすように構成できる。また、前記パルス生成部（１１）は、前記外部クロックに同期して外部から送られてくる、前記リード対象データが変更された旨を表すリード対象データ変更信号の変化に応答して前記スタートパルスを生成するように構成できる。
【００１１】
更に、前記レジスタ（１３、１４）は、前記外部から供給されるリード対象データを前記外部クロックに同期して取り込んで保持する第１レジスタ（１３）と、前記第１レジスタ（１３）の内容を前記外部クロックに同期して取り込んで保持する第２レジスタ（１４）、とを備え、前記調停部（１２）は、前記パルス生成部（１１）で生成されたスタートパルスに応答して前記第１レジスタ（１３）及び前記第２レジスタ（１４）への取り込みを背反的に禁止する禁止信号を生成し、前記ドライバ（１５）は、前記調停部（１２）で生成された前記禁止信号によって取り込みが禁止されている前記第１レジスタ（１３）又は前記第２レジスタ（１３）の内容を、前記外部クロックと非同期に外部から供給されるリード信号に同期して読み出して出力するように構成できる。
【００１２】
本発明の第２の態様に係る非同期インタフェース方法は、上記と同様の目的で、外部から供給されるリード対象データを外部から供給されるクロックに同期して取り込んで保持するレジスタ（１３、１４）を提供するステップと、前記リード対象データが変更された時にスタートパルスを生成するステップと、前記生成されたスタートパルスに応答して前記取り込みを禁止する禁止信号を生成するステップと、前記生成された禁止信号によって取り込みが禁止されている前記レジスタに保持されている内容を、前記外部クロックと非同期に外部から供給されるリード信号に同期して読み出して出力するステップ、とを備えている。
【００１３】
この非同期インタフェース方法において、前記禁止信号を生成するステップは、前記リード信号がアクティブにされている期間に応じて前記阻止信号を引き延ばすように構成できる。また、前記スタートパルスを生成するステップは、前記外部クロックに同期して外部から送られてくる、前記リード対象データが変更された旨を表すリード対象データ変更信号の変化に応答して前記スタートパルスを生成するように構成できる。
【００１４】
更に、前記レジスタ（１３、１４）は、前記外部から供給されるリード対象データを前記外部クロックに同期して取り込んで保持する第１レジスタ（１３）と、前記第１レジスタ（１３）の内容を前記外部クロックに同期して取り込んで保持する第２レジスタ（１４）、とから成り、前記禁止信号を生成するステップは、前記生成されたスタートパルスに応答して前記第１レジスタ（１３）及び前記第２レジスタ（１４）への取り込みを背反的に禁止する禁止信号を生成し、前記出力するステップは、前記生成された前記禁止信号によって取り込みが禁止されている前記第１レジスタ（１３）又は前記第２レジスタ（１４）の内容を、前記外部クロックと非同期に外部から供給されるリード信号に同期して読み出して出力するように構成できる。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態に係る非同期インタフェース装置及び非同期インタフェース方法を、図面を参照しながら詳細に説明する。
【００１６】
（実施の形態１）
この実施の形態１に係る非同期インタフェース装置では、図示しない周辺デバイスから送られてくるリード対象データは、その周辺デバイスから送られてくるリード対象データ更新信号の立ち下がり変化が起こったタイミングで更新される。以下では、周辺デバイスからのリード対象データを、この非同期インタフェース装置を介して、図示しないＣＰＵがリードデータとして取り込む場合について説明する。
【００１７】
図２は、本発明の実施の形態１に係る非同期インタフェース装置の構成を示す回路図である。この非同期インタフェース装置は、パルス生成部１１、調停部１２、第１レジスタ１３、第２レジスタ１４、ドライバ部１５及びインバータ１６から構成されている。
【００１８】
パルス生成部１１は、所謂デジタル微分回路から構成されており、リード対象データ更新信号の立ち下がり変化を検出して１外部クロック期間の間だけＨレベルになるスタートパルスＳ１１を生成する。このパルス生成部１１には、図示しない周辺デバイスから外部クロック及びリード対象データ変更信号が供給される。外部クロックは、周辺デバイスで使用される動作クロックと同じである。リード対象データ変更信号は、外部クロックに同期して変化する。このリード対象データ変更信号の立ち下がりの変化は、リード対象データが変更されたことを表す。
【００１９】
パルス生成部１１は、具体的には、Ｄ型のフリップフロップ１１０、インバータ１１１及びＡＮＤゲート１１２から構成されている。
【００２０】
フリップフロップ１１０のクロック入力端子には外部クロックが、データ入力端子Ｄにはリード対象データ更新信号がそれぞれ供給される。リード対象データ更新信号は、更に、インバータ１１１を介してＡＮＤゲート１１２の一方の入力端子に供給される。このＡＮＤゲート１１２の他方の入力端子には、フリップフロップ１１０の出力端子Ｑからの信号が供給される。
【００２１】
リード対象データ更新信号は、リード対象データが更新されるまではＨレベルを維持している。従って、フリップフロップ１１０の出力端子Ｑは、リード対象データ更新信号が更新されるまではＨレベルの信号を出力する。この状態で、リード対象データ更新信号が、外部クロックの立ち上がり変化に同期して、ＨレベルからＬレベルに変化すると、ＡＮＤゲート１１２から出力される信号はＬレベルからＨレベルに変化する。
【００２２】
一方、フリップフロップ１１０は、リード対象データ更新信号を外部クロックで常にサンプリングしている。従って、フリップフロップ１１０の出力端子Ｑは、リード対象データ更新信号がＨレベルからＬレベルに変化した後の最初の外部クロックの立ち上がり変化によりＬレベルに変化する。以上の動作により、ＡＮＤゲート１１２は、リード対象データ更新信号がＨレベルからＬレベルに変化してから次の外部クロックの立ち上がり変化までＨレベルになるスタートパルスＳ１１を出力する。このパルス生成部１１で生成されたスタートパルスＳ１１は、調停部１２に送られる。
【００２３】
調停部１２は、パルス生成部１１からのスタートパルスＳ１１に応答して、第２レジスタ１４への書き込みを許可する調停信号Ｓ１３を出力すると同時に自身を初期化し、次のスタートパルスＳ１１を取り込むまで待機する。また、図示しないＣＰＵから送られてくるリード信号がアクティブ（Ｈレベル）である間、つまりリード期間中は、調停信号Ｓ１３の状態を保持する。この調停部１２から出力される調停信号Ｓ１３は、本発明の禁止信号に対応する。
【００２４】
この調停部１２には、パルス生成部１１からスタートパルスＳ１１が供給され、図示しない周辺デバイスから外部クロックが供給され、図示しないＣＰＵからリード信号が供給される。リード信号は、外部クロックとは非同期にＣＰＵから供給され、リード対象データの取り込みを要求する信号である。非同期インタフェース装置は、このリード信号がアクティブ（Ｈレベル）の間に、リード対象データを出力する。より厳密には、非同期インタフェース装置は、リード信号に応答して、レジスタ１３又はレジスタ１４に保持されているリード対象データを出力する。これにより、非同期に変化するリード対象データとリード信号との同期がとられる。
【００２５】
この調停部１２は、具体的には、ＯＲゲート１２０、Ｄ型のフリップフロップ１２１、イネーブル入力端子ＥＮ付きのＤ型のフリップフロップ１２２及びインバータ１２３から構成されている。
【００２６】
ＯＲゲート１２０の一方の入力端子にはパルス生成部１１からのスタートパルスＳ１１が入力され、他方の入力端子にはフリップフロップ１２１の出力端子Ｑからの信号Ｓ１２が入力される。このＯＲゲート１２０は、スタートパルスＳ１１と信号Ｓ１２との論理和をとってフリップフロップ１２１のデータ入力端子Ｄに供給する。
【００２７】
フリップフロップ１２１は、ＯＲゲート１２０からデータ入力端子Ｄに供給される信号を、外部クロックの立ち上がり変化に同期して取り込んで記憶する。このフリップフロップ１２１の出力端子Ｑから出力される信号Ｓ１２は、上述したように、ＯＲゲート１２０の他方の入力端子に供給される。従って、このフリップフロップ１２１は、スタートパルスＳ１１によって一旦セットされると、リセット入力端子Ｒにリセット信号としての調停信号Ｓ１３が供給されるまで、セット状態を維持する。フリップフロップ１２２の出力端子Ｑから出力される信号Ｓ１２は、更に、フリップフロップ１２２のデータ入力端子Ｄに供給される。
【００２８】
フリップフロップ１２２は、イネーブル入力端子ＥＮに供給される信号がＨレベルであるときにのみ、フリップフロップ１２１の出力端子Ｑからデータ入力端子Ｄに供給される信号Ｓ１２を、外部クロックの立ち上がり変化に同期して取り込んで記憶する。このフリップフロップ１２２のイネーブル入力端子ＥＮには、リード信号がインバータ１２３で反転されて供給される。従って、フリップフロップ１２２は、リード信号がアクティブ（Ｈレベル）でないとき、つまりリード期間中でないときにのみ、信号Ｓ１２を取り込んで記憶する。
【００２９】
このフリップフロップ１２２の出力端子Ｑから出力される調停信号Ｓ１３は、フリップフロップ１２１のリセット入力端子Ｒに供給されると共に、インバータ１６の入力端子及び第２レジスタ１４のイネーブル入力端子ＥＮに供給される。インバータ１６から出力される信号は、第１レジスタ１３のイネーブル入力端子ＥＮに供給される。
【００３０】
以上のように構成される調停部１２は、スタートパルスＳ１１の次の外部クロック期間の終わりで、リード信号がアクティブ（Ｈレベル）でなければ、フリップフロップ１２２のイネーブル入力端子ＥＮにはＨレベルの信号が供給されるので、スタートパルスＳ１１がフリップフロップ１２１及びフリップフロップ１２２を順次シフトされ、２外部クロック期間の後に１外部クロック期間の間だけＨレベルになる調停信号Ｓ１３を出力する。
【００３１】
一方、スタートパルスＳ１１の次の外部クロック期間の終わりで、リード信号がアクティブ（Ｈレベル）であれば、フリップフロップ１２２のイネーブル入力端子ＥＮにはＬレベルの信号が供給されるので、フリップフロップ１２１はスタートパルスＳ１１によってＨレベルにセットされるがフリップフロップ１２２へはシフトされない。従って、２外部クロック期間の後であっても調停信号Ｓ１３はＬレベルを維持する。
【００３２】
第１レジスタ１３は、複数ビットから成るデータを記憶可能な、イネーブル入力端子ＥＮ付きの、複数のＤ型のフリップフロップから成るレジスタである。この第１レジスタ１３のクロック入力端子には外部クロックが、データ入力端子Ｄには外部からのリード対象データが、イネーブル入力端子ＥＮには調停部１２からの調停信号Ｓ１３がインバータ１６で反転された信号がそれぞれ供給される。従って、第１レジスタ１３は、調停部１２からの調停信号Ｓ１３がＬレベルである場合にのみ、つまりリード期間中でない場合にのみ外部から供給されるリード対象データを取り込んで記憶する。この第１レジスタ１３に記憶されたデータＤ１３は、第２レジスタ１４及びドライバ部１５に供給される。
【００３３】
第２レジスタ１４は、複数ビットから成るデータを記憶可能な、イネーブル入力端子ＥＮ付きの、複数のＤ型のフリップフロップから成るレジスタである。この第２レジスタ１４のクロック入力端子には外部クロックが、データ入力端子Ｄには第１レジスタ１３からのリード対象データが、イネーブル入力端子ＥＮには調停部１２からの調停信号Ｓ１３がそれぞれ供給される。従って、調停部１２からの調停信号Ｓ１３がＨレベルである場合にのみ、つまりリード期間中である場合にのみ第１レジスタ１３から供給されるリード対象データを取り込んで記憶する。この第２レジスタ１４に記憶されたデータＤ１４は、ドライバ部１５に供給される。
【００３４】
ドライバ部１５は、セレクタ１５０とバッファ１５１とから構成されている。セレクタ１５０の入力端子Ａには第２レジスタ１４からのデータＤ１４が、入力端子Ｂには第１レジスタ１３からのデータＤ１３がそれぞれ供給される。また、セレクタ１５０の選択端子ＳＥＬには調停部１２からの調停信号Ｓ１３が供給される。従って、調停信号Ｓ１３がＬレベルであれば第２レジスタ１４に記憶されているデータＤ１４が選択され、Ｈレベルであれば第１レジスタ１３に記憶されているデータＤ１３が選択され、バッファ１５１に供給される。
【００３５】
バッファ１５１は、リード信号がＨレベルであれば、セレクタ１５０からの信号を出力し、Ｌレベルであれば出力を停止する。従って、リード信号がＨレベルの間だけ、データＤ１３又はデータＤ１４がリードデータとして出力される。
【００３６】
次に、上述したように構成される非同期インタフェース装置の動作を、図３に示したタイミングチャートを参照しながら説明する。
【００３７】
この非同期インタフェース装置には、周辺デバイスから、図３（Ａ）に示すような外部クロックが供給される。そして、周辺デバイスは、外部クロック期間Ｔ０の終わりで、図３（Ｂ）に示すようにリード対象データ更新信号をＨレベルからＬレベルに変化させると同時に、図３（Ｃ）に示すように更新されたリード対象データを出力する。
【００３８】
外部クロック期間Ｔ１の先頭でＨレベルからＬレベルに変化するリード対象データ更新信号を受け取ったパルス生成部１１は、図３（Ｄ）に示すように、外部クロック期間Ｔ１の期間だけＨレベルになるスタートパルスＳ１１を生成し、調停部１２に送る。一方、外部クロック期間Ｔ１の先頭で更新されたリード対象データは、外部クロック期間Ｔ１では調停信号Ｓ１３は未だＬレベルであるので、図４（Ｅ）に示すように、外部クロック期間Ｔ２の先頭で第１レジスタ１３に取り込まれて記憶される。
【００３９】
今、図４（Ｇ）に示すように、ＣＰＵから出力されるリード信号が外部クロック期間Ｔ１でＨレベルに変化したとすると、外部クロック期間Ｔ１では調停信号Ｓ１３は未だＬレベルであるので、セレクタ１５０は第２レジスタ１４から出力されるデータＤ１４を選択してバッファ１５１に送る。バッファ１５１は、リード信号がＨレベルの期間だけセレクタ１５０からの信号をリードデータとしてＣＰＵに送る。
【００４０】
以上の動作により、仮に第１レジスタ１３からのデータＤ１３がリードデータとしてＣＰＵに送られるとすれば、リード期間中に変化するデータがＣＰＵに送られることになるので、ＣＰＵは正常なデータを取り込むことができないが、安定している第２レジスタ１４からのデータＤ１４がリードデータとしてＣＰＵに送られるので、ＣＰＵは正常なデータを取り込むことができる。
【００４１】
一方、スタートパルスＳ１１を受け取った調停部１２では、外部クロック期間Ｔ２の先頭でフリップフロップ１２１がセットされる。また、次の外部クロック期間Ｔ２の終わりではリード信号はＬレベルであるので、外部クロック期間Ｔ３の先頭でフリップフロップ１２２がセットされる。その結果、外部クロック期間Ｔ３の先頭で調停信号Ｓ１３がＬレベルからＨレベルに変化する。この調停信号Ｓ１３がフリップフロップ１２１のリセット入力端子Ｒに供給されることによりフリップフロップ１２１はリセットされ、次のスタートパルスＳ１１の受付が可能な状態に移行する。
【００４２】
更に、調停信号Ｓ１３がＬレベルからＨレベルに変化することにより第１レジスタ１３への書き込みが禁止され、第２レジスタ１４への書き込みが許可される。従って、図３（Ｆ）に示すように、外部クロック期間Ｔ４の先頭で第１レジスタ１３から出力されるデータＤ１３が第２レジスタ１４にセットされる。
【００４３】
今、図４（Ｇ）に示すように、ＣＰＵから出力されるリード信号が外部クロック期間Ｔ３でＨレベルに変化したとすると、外部クロック期間Ｔ３では調停信号Ｓ１３はＨレベルであるので、第１レジスタ１３への書き込みが禁止されると共に、セレクタ１５０は第１レジスタ１３から出力されるデータＤ１３を選択してバッファ１５１に送る。バッファ１５１は、リード信号がＨレベルの期間だけセレクタ１５０からの信号をリードデータとしてＣＰＵに送る。
【００４４】
以上の動作により、リード期間中に第１レジスタ１３の内容が変更されることがないので、ＣＰＵは正常なデータを取り込むことができる。
【００４５】
以下、同様の動作が行われるが、図３に示した例では、リード信号が外部クロック期間Ｔ３及びＴ４の終わりでそれぞれＨレベルであるので、フリップフロップ１２２は状態を保持する。これにより、調停信号Ｓ１３がＬレベルに変化するタイミングが２外部クロック分だけ遅れている。調停信号Ｓ１３がＬレベルの時は第１レジスタ１３の書き込みが許可され、調停信号Ｓ１３がＨレベルの時は第２レジスタ１４の書き込みが許可される。ドライバ部１５では調停信号Ｓ１３がＬレベルの時はデータＤ１４をリードデータとし、Ｈレベルの時はデータＤ１３をリードデータとしているので、常に安定状態にあるデータを選択する。
【００４６】
以上のように、この実施の形態１によれば、第１レジスタ１３及び第２レジスタ１４といった２つのレジスタにリード対象データを書き込むタイミングを制御すると共に、ＣＰＵへ送るデータを安定している方のレジスタから得るように制御をしているので、ＣＰＵのバスサイクルと外部クロックが非同期であるにも拘わらずバスサイクルにウェイトサイクルが不要であり、しかも、バスサイクルの周期と外部クロックの周期の大小に拘わらず確実に安定したデータをＣＰＵに送ることができる。
【００４７】
また、外部クロックの周波数がシステムによって変化するような場合でも安定して動作する。更に、非同期で動作する部分が調停部１２の１個所であることから設計が容易になるという効果もある。
【００４８】
なお、上述した実施の形態１では、第１レジスタ１３及び第２レジスタ１４として複数のＤ型のフリップフロップから成るレジスタを使用したが、レベルラッチ、ＲＡＭ等の記憶装置を使用することができる。
【００４９】
（実施の形態２）
周辺デバイスによっては、そのリード対象データを送出する回路やデータを更新するタイミングが、非同期インタフェース装置としての機能の一部を既に果たしているものも存在する。このような周辺デバイスに適用する非同期インタフェース装置では、非同期インタフェース装置の構成を簡略化することができる。
【００５０】
本発明の実施の形態２は、基本的構成は上述した実施の形態１と同じであるが、リード対象データを送出する回路がレジスタから構成されており、データ更新のサイクルがリードサイクルより遅い周辺デバイスに好適な非同期インタフェース装置である。
【００５１】
図４は、本発明の実施の形態２に係る非同期インタフェース装置の構成を示すブロック図である。図４において、第１レジスタ２３は、周辺デバイスに搭載されるレジスタであり、上述した実施の形態１の第１レジスタ１３に相当する。この第１レジスタ２３のイネーブル入力端子ＥＮには、図５（Ｂ）に示すような、１外部クロック期間だけＨレベルを有する１ショットパルスから成るレジスタ更新信号が供給される。従って、リード対象データは、図５（Ｃ）に示すように、レジスタ更新信号の立ち下がり変化に同期して更新される。
【００５２】
この非同期インタフェース装置は、調停部２２、第２レジスタ２４及びドライバ部２５から構成されている。
【００５３】
調停部２２は、周辺デバイスからのレジスタ更新信号に応答して、第２レジスタ２４への書き込みを許可する調停信号Ｓ２３を出力すると同時に自身を初期化し、次のレジスタ更新信号を取り込むまで待機する。また、図示しないＣＰＵから送られてくるリード信号がアクティブ（Ｈレベル）である間、つまりリード期間中は、調停信号Ｓ２３の状態を保持する。この調停部２２から出力される調停信号Ｓ２３は、本発明の禁止信号に対応する。
【００５４】
この調停部２２には、周辺デバイスからレジスタ更新信号及び外部クロックが供給され、図示しないＣＰＵからリード信号が供給される。この調停部２２は、具体的には、Ｊ−Ｋフリップフロップ２２０、イネーブル入力端子ＥＮ付きのＤ型のフリップフロップ２２１及びインバータ２２２から構成されている。
【００５５】
Ｊ−Ｋフリップフロップ２２０のクロック入力端子には外部クロックが入力され、入力端子Ｊにはレジスタ更新信号が入力され、入力端子Ｋには、フリップフロップ２２１の出力端子Ｑから出力される調停信号Ｓ２３が入力される。このＪ−Ｋフリップフロップ２２０は、入力端子Ｊに供給されるレジスタ更新信号がＨレベルに変化した外部クロック期間の終わりでセットされ、調停信号Ｓ２３がＬレベルに変化した外部クロック期間の終わりでリセットされる。
【００５６】
従って、このＪ−Ｋフリップフロップ２２０は、レジスタ更新信号によって一旦セットされると、入力端子ＫにＨレベルの調停信号Ｓ２３が供給されるまで、セット状態を維持する。Ｊ−Ｋフリップフロップ２２０の出力端子Ｑから出力される信号Ｓ２２は、フリップフロップ２２１のデータ入力端子Ｄに供給される。
【００５７】
フリップフロップ２２１は、イネーブル入力端子ＥＮに供給される信号がＨレベルであるときにのみ、フリップフロップ２２０の出力端子Ｑからデータ入力端子Ｄに供給される信号Ｓ２２を、外部クロックの立ち上がり変化に同期して取り込んで記憶する。このフリップフロップ２２１のイネーブル入力端子ＥＮには、リード信号がインバータ２２２で反転されて供給される。従って、フリップフロップ２２１は、リード信号がアクティブ（Ｈレベル）でないとき、つまりリード期間中でないときにのみ、信号Ｓ２２を取り込んで記憶する。
【００５８】
このフリップフロップ２２１の出力端子Ｑから出力される調停信号Ｓ２３は、Ｊ−Ｋフリップフロップ２２０の入力端子Ｋに供給されると共に、第２レジスタ２４のイネーブル入力端子ＥＮに供給される。
【００５９】
以上のように構成される調停部２２は、レジスタ更新信号の次の外部クロック期間の終わりで、リード信号がアクティブ（Ｈレベル）でなければ、フリップフロップ２２１のイネーブル入力端子ＥＮにはＨレベルの信号が供給されるので、レジスタ更新信号がＪ−Ｋフリップフロップ２２０及びフリップフロップ２２１を順次シフトされ、２外部クロック期間の後に１外部クロック期間の間だけＨレベルになる調停信号Ｓ２３を出力する。
【００６０】
一方、レジスタ更新信号の次の外部クロック期間の終わりで、リード信号がアクティブ（Ｈレベル）であれば、フリップフロップ２２１のイネーブル入力端子ＥＮにはＬレベルの信号が供給されるので、Ｊ−Ｋフリップフロップ２２０はレジスタ更新信号によってＨレベルにセットされるがフリップフロップ２２１へはシフトされない。従って、２外部クロック期間の後であっても調停信号Ｓ２３はＬレベルを維持する。
【００６１】
第２レジスタ２４は、複数ビットから成るデータを記憶可能な、イネーブル入力端子ＥＮ付きの、複数のＤ型のフリップフロップから成るレジスタである。この第２レジスタ２４のクロック入力端子には外部クロックが、データ入力端子Ｄには第１レジスタ２３からのリード対象データが、イネーブル入力端子ＥＮには調停部２２からの調停信号Ｓ２３がそれぞれ供給される。従って、調停部２２からの調停信号Ｓ２３がＨレベルである場合にのみ、つまりリード期間中である場合にのみ第１レジスタ２３から供給されるリード対象データを取り込んで記憶する。この第２レジスタ２４に記憶されたデータＤ２４は、ドライバ部２５に供給される。
【００６２】
ドライバ部２５は、実施の形態１のドライバ部１５と同等の機能を有する。このドライバ部２５は、ゲート回路２５０、ＡＮＤゲート２５１、トライステートバッファ２５２及びトライステートバッファ２５３から構成されている。このドライバ部２５のトライステートバッファ２５２には、第１レジスタ２３からのリード対象データＤ２３が供給され、トライステートバッファ２５３には、第２レジスタ２３からのリード対象データＤ２３が供給される。
【００６３】
ゲート回路２５０の反転入力端子には調停部２２からの調停信号Ｓ２３が供給され、非反転入力端子にはリード信号が供給される。そして、調停信号Ｓ２３がＬレベルでリード信号がＨレベルの場合にアクティブ（Ｈレベル）な信号をトライステートバッファ２５２の出力イネーブル端子に供給する。これにより、第１レジスタ２３からのリード対象データＤ２３が、リードデータとしてＣＰＵに送られる。
【００６４】
また、ＡＮＤゲート２５１の一方の入力端子には調停部２２からの調停信号Ｓ２３が、他方の入力端子にはリード信号が供給される。そして、調停信号Ｓ２３及びリード信号が共にＨレベルの場合にアクティブ（Ｈレベル）な信号をトライステートバッファ２５３の出力イネーブル端子に供給する。これにより、第２レジスタ２４からのデータＤ２４が、リードデータとしてＣＰＵに送られる。
【００６５】
従って、ドライバ部２５は、リード信号がアクティブにされた場合に、調停信号Ｓ２３に応じてデータＤ２３又はデータＤ２４の何れかを選択的に出力する。
【００６６】
次に、上記のように構成される非同期インタフェース装置の動作を、図５に示したタイミングチャートを参照しながら説明する。なお、この実施の形態２に係る非同期インタフェース装置の動作は、実施の形態１に係る非同期インタフェース装置のパルス生成部１１が発生するスタートパルスの代わりに、周辺デバイスから送られてくるレジスタ更新信号が使用されることを除けば、実施の形態１に係る非同期インタフェース装置の動作と同じであるので、以下に簡単に説明する。
【００６７】
周辺デバイスのリード対象データを保持する第１レジスタ２３は、図５（Ｂ）に示すように、外部クロックに同期した１ショットパルス信号であるレジスタ更新信号によって更新される。レジスタ更新信号は調停部２２に取り込まれ、図５（Ｆ）に示すように、第２レジスタ２４の書き込みを制御する調停信号Ｓ２３をＨレベルに変化させる。調停部２２は、調停信号Ｓ２３がＨレベルに変化すると自身を初期化するが、リード期間中はフリップフロップ２２１は従前の状態を保持するので、Ｌレベルに変化するタイミングが２外部クロック分だけ遅れる。
【００６８】
ドライバ部２５では、調停信号Ｓ２３がＬレベルの時はデータＤ２４をリードデータとして送出し、Ｈレベルの時はデータＤ２３をリードデータとして送出する。データＤ２３が選択されている時にリード信号がアクティブにされた場合、データ更新のサイクルがリードサイクルより遅いことからリード期間中に第１レジスタ２３が更新されることはないので、確実に安定したデータをＣＰＵに送ることができる。
【００６９】
この実施の形態２に係る非同期インタフェース装置によれば、パルス生成部を必要とせず、リード対象データを保持するレジスタも１つで済むので、上述した実施の形態１に係る非同期インタフェース装置に比べて構成が簡単になる。その結果、設計が簡単になり、しかも非同期インタフェース装置を安価に構成できる。
【００７０】
（実施の形態３）
本発明の実施の形態３は、周辺デバイスとして、データ通信を行うための通信デバイスが使用される場合に好適な非同期インタフェース装置である。この非同期インタフェース装置は、受信データが旧データから新データに更新されると同時に受信完了フラグが発生するという通信デバイスの特徴を利用している。
【００７１】
この実施の形態３に係る非同期インタフェース装置は、基本的構成は上述した実施の形態２と同じであるが、実施の形態２では周辺デバイス側に存在した第１レジスタ２３を取り込んだ構成になっている。
【００７２】
図６は本発明の実施の形態３に係る非同期インタフェース装置の構成を示すブロック図である。この非同期インタフェース装置は、調停部２２、第１レジスタ２３、第２レジスタ２４及びドライバ部２５から構成されている。なお、以下では、実施の形態２と同一部分又は相当部分には実施の形態２と同一の符号を付して説明を省略する。
【００７３】
リード対象は通信デバイス３０から出力される受信データＤ３０である。通信デバイスにおいて、受信完了フラグＳ３０はデータの更新があったことを知らせるフラグであり、実施の形態２におけるレジスタ更新信号と同様の性質を有する。従って、受信完了フラグＳ３０はそのまま調停部２２に供給できる。この実施の形態３に係る非同期インタフェース装置の動作は、実施の形態２に係る非同期インタフェース装置の動作と同じである。
【００７４】
この実施の形態３に係る非同期インタフェース装置によれば、上述した実施の形態２と同様の作用及び効果を奏する。
【００７５】
（実施の形態４）
本発明の実施の形態４は、周辺デバイスとして、Ａ／Ｄ変換を行うためのＡＤＣデバイスが使用される場合に好適な非同期インタフェース装置である。この非同期インタフェース装置は、ＡＤ変換が完了すると同時にＡＤ変換終了フラグが発生するというＡＤＣデバイスの特徴を活かした構成である。
【００７６】
図７は本発明の実施の形態４に係る非同期インタフェース装置の構成を示すブロック図である。この非同期インタフェース装置は、パルス生成部１１、調停部１２、第１レジスタ１３、第２レジスタ１４及びドライバ部１５から構成されている。なお、以下では、実施の形態１と同一部分又は相当部分には実施の形態１と同一の符号を付して説明を省略する。
【００７７】
リード対象はＡＤＣデバイス４０から出力されるデジタルデータＤ４０である。ＡＤＣデバイスにおいて、ＡＤ変換終了フラグＳ４０はＡＤ変換が完了したことを知らせるフラグであり、実施の形態１におけるリード対象データ更新信号と同様の性質を有する。従って、ＡＤ変換終了フラグＳ４０はそのままパルス生成部１１に供給できる。この実施の形態４に係る非同期インタフェース装置の動作は、実施の形態１に係る非同期インタフェース装置の動作と同じである。
【００７８】
この実施の形態４に係る非同期インタフェース装置によれば、上述した実施の形態１と同様の作用及び効果を奏する。
【００７９】
（実施の形態５）
本発明の実施の形態５は、周辺デバイスとして、タイマデバイスが使用される場合に好適な非同期インタフェース装置である。この非同期インタフェース装置は、１ショットパルスから成るカウントアップフラグに同期してタイマ値が更新されるというタイマデバイスの特徴を利用している。
【００８０】
この実施の形態５に係る非同期インタフェース装置の基本的構成は上述した実施の形態２と同じである。この実施の形態５に係る非同期インタフェース装置では、カウントアップフラグがレジスタ更新信号として利用される。
【００８１】
図８は、本発明の実施の形態５に係る非同期インタフェース装置の構成を示すブロック図である。この非同期インタフェース装置は、調停部２２、第２レジスタ２４及びドライバ部２５から構成されている。なお、以下では、実施の形態２と同一部分又は相当部分には実施の形態２と同一の符号を付して説明を省略する。
【００８２】
リード対象はタイマデバイス５０から出力されるタイマ値Ｄ５３である。タイマデバイスにおいて、カウントアップフラグはタイマ値の更新と同時に変化するフラグであり、実施の形態２におけるレジスタ更新信号と同様の性質を有する。従って、カウントアップフラグはそのまま調停部２２に供給できる。この実施の形態５に係る非同期インタフェース装置の動作は、実施の形態２に係る非同期インタフェース装置の動作と同じである。
【００８３】
この実施の形態５に係る非同期インタフェース装置によれば、上述した実施の形態２と同様の作用及び効果を奏する。
【００８４】
【発明の効果】
以上詳述したように、本発明によれば、非同期で動作する複数の装置間のデータ転送を、各装置の動作クロックの周期に拘わらず、常に正常に行うことのできる非同期インタフェース装置及び非同期インタフェース方法を提供できる。
【図面の簡単な説明】
【図１】本発明の非同期インタフェース装置の構成を示す図である。
【図２】本発明の実施の形態１に係る非同期インタフェース装置の構成を示すブロック図である。
【図３】本発明の実施の形態１に係る非同期インタフェース装置の動作を説明するためのタイミングチャートである。
【図４】本発明の実施の形態２に係る非同期インタフェース装置の構成を示すブロック図である。
【図５】本発明の実施の形態２に係る非同期インタフェース装置の動作を説明するためのタイミングチャートである。
【図６】本発明の実施の形態３に係る非同期インタフェース装置の構成を示すブロック図である。
【図７】本発明の実施の形態４に係る非同期インタフェース装置の構成を示すブロック図である。
【図８】本発明の実施の形態５に係る非同期インタフェース装置の構成を示すブロック図である。
【符号の説明】
１１  パルス生成部
１２  調停部
１３  第１レジスタ
１４  第２レジスタ
１５  ドライバ部
１６  インバータ
【図１】
0003657234.tif 000002
【図２】
0003657234.tif 000003
【図３】
0003657234.tif 000004
【図４】
0003657234.tif 000005
【図５】
0003657234.tif 000006
【図６】
0003657234.tif 000007
【図７】
0003657234.tif 000008
【図８】
0003657234.tif 000009