(57)【特許請求の範囲】
【請求項１】
他の通信機器からデータを受信し、該他の通信機器にデータを送信するシリアル通信器と、
該シリアル通信器から受信されたデータを読み込んで処理し、他の通信機器に送信するデータを前記シリアル通信器に提供する中央処理処置と、
前記シリアル通信器のデータ受信が終了すると、前記中央処理処置にインタラプト信号を発生させて出力するインタラプト発生器と、
前記通信装置を同期させるためのクロック信号を発生させて提供するシステムクロック発生器と、
前記シリアル通信器に接続されて、該シリアル通信器から受信されたデータを一時格納したり、前記中央処理処置から前記他の通信装置に送信するデータを一時格納して前記シリアル通信器に提供する第１通信バッファと、
前記システムクロック発生器からの前記クロック信号の立ち上がりエッジまたは立ち下がりエッジいずれか一方のエッジでイネーブルされて、データを受信して一時格納し、格納していたデータを出力する第３通信バッファと、
前記第１通信バッファと前記第３通信バッファ間に接続されて、前記システムクロック発生器からの前記第３通信バッファをイネーブルする前記クロック信号の他方のエッジで前記クロック信号によりイネーブルされて、前記第１通信バッファからデータを受信して一時格納し、格納していたデータを前記第１通信バッファに出力する第２通信バッファと、を含んで構成されることを特徴とする３段通信バッファを利用した通信装置。
【請求項２】
前記第２通信バッファと前記第３通信バッファ間に接続されて、前記第２通信バッファから前記第３通信バッファに、または、前記第３通信バッファから前記第２通信バッファにデータの伝送を許容したり遮断するゲート手段と、
前記中央処理処置からの命令信号に応答して、前記ゲート手段にデータ伝送を許容することを命令する命令信号を出力するゲート制御器と、を更に含んで構成されることを特徴とする請求項１記載の３段通信バッファを利用した通信装置。
【請求項３】
前記ゲート手段は、
データを入力する一つの入力端子と、
前記ゲート制御器からの命令信号を入力する他の一つの入力端子と、
データを出力する出力端子と、を具備するＡＮＤゲートであることを特徴とする請求項２記載の３段通信バッファを利用した通信装置。
【請求項４】
前記ゲート制御器は、
前記中央処理処置からの命令信号を前記ゲート手段に出力するバッファであることを特徴とする請求項２記載の３段通信バッファを利用した通信装置。
【請求項５】
前記第１通信バッファと前記第２通信バッファ間に接続されて、前記第１通信バッファから前記第２通信バッファに、または、前記第２通信バッファから前記第１通信バッファにデータの伝送を許容したり遮断する第１ゲート手段と、
前記第２通信バッファと前記第３通信バッファ間に接続されて、前記第２通信バッファから前記第３通信バッファに、または、前記第３通信バッファから前記第２通信バッファにデータ伝送を許容したり遮断する第２ゲート手段と、
前記中央処理処置からの命令信号に応答して、前記第２ゲート手段にデータの伝送を許容することを命令する第１命令信号を出力し、前記シリアル通信器から、または、前記中央処理処置から送信終了を示すデータを受信した時、前記第１ゲート手段にデータの伝送許容を命令する第２命令信号を出力するゲート制御器と、を更に含んで構成されることを特徴とする請求項１記載の３段通信バッファを利用した通信装置。
【請求項６】
前記各第２通信バッファ及び前記第３通信バッファは、
前記システムクロック発生器からの前記クロック信号のエッジに依存してイネーブルされて、データを受信して一時格納し、格納されたデータを出力する複数のフリップフロップを含んで構成されることを特徴とする請求項１記載の３段通信バッファを利用した通信装置。
【請求項７】
前記第２通信バッファは、
両方向からのアクセスは可能で、同時アクセスは不可能なデュアル・ポートＲＡＭであることを特徴とする請求項１記載の３段通信バッファを利用した通信装置。
【請求項８】
前記システムクロック発生器と前記第２通信バッファ間、または前記システムクロック発生器と前記第３通信バッファ間に接続されて、前記第１通信バッファと前記第３通信バッファが前記第２通信バッファにそれぞれアクセスする場合、時間差を発生させる時間遅延回路を更に含んで構成されることを特徴とする請求項１記載の３段通信バッファを利用した通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３段通信バッファを利用した通信装置及びデータの送／受信装置に係るもので、詳しくは、３段通信バッファを利用し、シリアル通信装置と中央処理処置とが前記３段通信バッファに常時アクセスし得るようにした通信装置に関するものである。
【０００２】
【従来の技術】
一般に、シリアル通信端末装置に使用される通信ＬＳＩ回路チップや通信回路ボードは、シリアル通信器（ｓｅｒｉａｌ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｄｅｖｉｃｅ）（例えば、ユニバーサル非同期送受信機（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ／Ｔｒａｎｓｍｉｔｔｅｒ；ＵＡＲＴ））と、データを一時格納する通信バッファとを内蔵しているが、該通信バッファは、２個の周辺装置がアクセスし得るように構成されている。このような通信バッファの周辺装置としては、線路を通して外部機器と送／受信するシリアル通信器（ｓｅｒｉａｌ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｄｅｖｉｃｅ）と、該シリアル通信器から受信されたり、または、該シリアル通信器を通して伝送するデータを処理する中央処理処置と、が挙げられる。
【０００３】
前記送／受信装置及び中央処理処置は、非同期的に通信バッファを使用するため、ある一時点で、送／受信装置と中央処理処置とが同時に通信バッファにアクセスし得るという長所があるが、不完全なデータのアクセスが発生して、意図しないデータの読み込み及び書き込みのようなエラーが発生するという短所がある。
【０００４】
以下、このようなエラーに対し、図面に基づいて説明する。
【０００５】
図３（Ａ）及び（Ｂ）は、従来の一つの通信バッファを利用した通信装置の問題点を示した例示図であって、図３（Ａ）はデータの同時性が破られた場合を示し、図３（Ｂ）は不完全なデータの読み込みが発生する場合を示している。
【０００６】
図３（Ａ）は、シリアル通信器１００及び中央処理処置（ＣＰＵ）２００が、一つの通信バッファ３００にデータを書き込んだり読み込む場合を示したものである。この時、前記書き込み及び読み込む動作は特定の方向性を有する。即ち、中央処理処置２００はデータを通信バッファ３００の上位から下位にデータを格納させ、シリアル通信器１００はその通信バッファ３００の上位から下位に順次読み込んでデータを外部機器（図示せず）に伝送する。
【０００７】
しかし、このような過程で、中央処理処置２００とシリアル通信器１００の非同期性に起因して発生された処理速度の差により、前記中央処理処置２００がデータの書き込みを終了してない状態で、シリアル通信器１００が送信するデータを読み込んだり、シリアル通信器１００が新しく受信されたデータを通信バッファ３００に格納する以前に、中央処理処置２００が通信バッファ３００に既に格納されたデータを読み込むと、データがアップデートされなくなり、データの同時性がなくなるという問題点が発生する。
【０００８】
また、図３（Ｂ）は、通信バッファ３００の同様な格納領域をシリアル通信器１００と中央処理処置２００が同時にアクセスする場合を示しているが、前記シリアル通信器１００と中央処理処置２００が前記同様な通信バッファ３００の格納領域を同時にアクセスすると、データが不完全に読み込まれるという問題点がある。
【０００９】
このような一つの通信バッファを利用する場合に発生する問題点を解決するために、３段の通信バッファを利用した通信装置が提案された。
【００１０】
以下、このような従来の３段通信バッファを利用した通信装置及びデータの送／受信方法に対し、図面に基づいて説明する。
【００１１】
図４は、従来の３段通信バッファを利用した通信装置の構成図で、図示されたように、前記通信装置は、外部機器（図示せず）とシリアルデータを送／受信するシリアル通信器１００と、外部機器のデータにアクセスして処理したり、内部機器のデータを処理する中央処理処置２００と、前記データを一時格納して、各ポインタ（ＤＯＵＴ１＿ＢＵＦ＿ＰＴＲ、ＤＯＵＴ２＿ＢＵＦ＿ＰＴＲ、ＤＯＵＴ３＿ＢＵＦ＿ＰＴＲ）によりそれぞれ指定される３段の通信バッファ（ＢＵＦ１、ＢＵＦ２、ＢＵＦ３）と、前記中央処理処置２００にインタラプト信号を発生させるインタラプト発生部５００と、前記各通信バッファ（ＢＵＦ１、ＢＵＦ２、ＢＵＦ３）の状態を中央処理処置２００に伝送する状態バッファ４００と、を含んで構成されている。
【００１２】
以下、このように構成された従来の３段通信バッファを利用した通信装置及びデータの送／受信方法に対して説明する。
【００１３】
前記各通信バッファ（ＢＵＦ１〜ＢＵＦ３）の機能は、読み込み、書き込み、待機及び使用してない状態にそれぞれ設定される。このような設定は、状態バッファ４００に格納される。すると、前記通信装置は、前記状態バッファ４００に格納された状態情報を利用して、各ポインタ（ＤＯＵＴ１＿ＢＵＦ＿ＰＴＲ、ＤＯＵＴ２＿ＢＵＦ＿ＰＴＲ、ＤＯＵＴ３＿ＢＵＦ＿ＰＴＲ）に通信バッファ（ＢＵＦ１〜ＢＵＦ３）をそれぞれ指定して読み込んだり書き込む動作が可能であるため、シリアル通信器１００と中央処理処置２００の処理速度及び処理位置の重複による問題が発生しなくなり、前記各通信バッファに常時アクセスが可能になる。
【００１４】
以下、従来３段通信バッファを利用した通信装置及びデータ送／受信方法に対して説明する。
【００１５】
１）データを受信する方法
シリアル通信器１００は、一つの通信バッファ（ＢＵＦ１）を選択してデータ記録状態にする。前記通信バッファ（ＢＵＦ１）を選択したことは一例であって、他の通信バッファ（ＢＵＦ２、ＢＵＦ３）を選択することもできる。このように通信バッファ（ＢＵＦ１）を指定した後、その通信バッファ（ＢＵＦ１）に受信されたデータを記録する。
【００１６】
次いで、前記シリアル通信器１００は、前記データの受信が終了されると、前記通信バッファ（ＢＵＦ１）を最新データが格納されている通信バッファにその状態を変更する。このような状態情報は状態バッファ４００に格納される。
【００１７】
また、データ受信が終了されると、シリアル通信器１００は、データの受信が終了されたことを知らせるインタラプト信号を発生させ、前記インタラプト発生部５００により中央処理処置２００に印加される。次いで、中央処理処置２００は、前記状態バッファ４００を確認して、どの通信バッファに最新データが格納されているかを確認する。
【００１８】
中央処理処置２００が状態バッファ４００を確認すると、最新データが格納された通信バッファ（ＢＵＦ１）は読み込み状態に転換され、前記中央処理処置２００は読み込み状態に転換された通信バッファ（ＢＵＦ１）に接近して格納されたデータを読み入れる。
【００１９】
このように、データ受信過程中、３個の通信バッファ（ＢＵＦ１〜ＢＵＦ３）中少なくとも何れか一つの通信バッファは使用してない状態または最新データを格納した状態であるため、中央処理処置２００は常時データにアクセスすることができるので、中央処理処置２００とシリアル通信器１００間の衝突及び干渉が発生されない。
【００２０】
２）データを送信する方法
前記受信方法とは反対に、中央処理処置２００は、読み込み可能な通信バッファを状態バッファ４００を通して確認した後、読み込み可能な通信バッファ（ＢＵＦ３）に送信データを格納させて、前記通信バッファ（ＢＵＦ３）の状態情報を出力するデータが格納された状態に変換する。次いで、シリアル通信器１００は、外部機器からデータの送信を要求すると、前記データが格納された通信バッファ（ＢＵＦ３）の状態を読み込み可能な状態に指定し、前記データを読み込んで前記外部機器に送信する。
【００２１】
このような従来３段通信バッファを利用した通信装置は、中央処理処置２００とシリアル通信器１００間に動作が重複されたり干渉することがなくて、安定したデータの処理が可能になるという長所がある。
【００２２】
【発明が解決しようとする課題】
しかるに、従来の３段通信バッファを利用した通信装置においては、実際の動作において、中央処理処置２００がインターラプト発生時または送信データの記録時、常に状態バッファ４００を読み込んで各通信バッファの状態情報を確認し、該当の状態を有する通信バッファを探して、データの読み込みまたは書き込み動作を行うため、その動作が複雑になり、それによる時間遅延が発生されるという不都合な点があった。
【００２３】
本発明は、このような従来の課題に鑑みてなされたもので、中央処理処置とシリアル通信器の３段通信バッファを同時に接近することで、データの読み込み／書き込みから発生するエラーを防止し得る３段通信バッファを利用した通信装置を提供することを目的とする。
【００２４】
そして、中央処理処置とシリアル通信器間の相互干渉がなくて、常時アクセスすることができ、各通信バッファの状態を確認する手続を行わないことで、遅延要素を除去し得る３段通信バッファを利用した通信装置を提供することを目的とする。
【００２５】
【課題を解決するための手段】
このような目的を達成するため、本発明に係る３段通信バッファを利用した通信装置においては、他の通信機器からデータを受信し、該他の通信機器にデータを送信するシリアル通信器（Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｄｅｖｉｃｅ）と、該シリアル通信器からの受信データを読み込んで処理し、他の通信機器に送信するデータをシリアル通信器に提供する中央処理処置と、前記シリアル通信器のデータ受信が終了すると、前記中央処理処置にインタラプト信号を発生させて出力するインタラプト発生器と、前記通信装置を同期させるためのクロック信号を発生させて提供するシステムクロック発生器と、前記シリアル通信器に接続されて、シリアル通信器から受信されたデータを一時格納し、中央処理処置から前記他の通信装置に送信するデータを一時格納してシリアル通信器に提供する第１通信バッファと、前記システムクロック発生器からの前記クロック信号の立ち上がりエッジ（ｒｉｓｉｎｇ  ｅｄｇｅ）または立ち下がりエッジ（ｆａｌｌｉｎｇ  ｅｄｇｅ）でイネーブルされて、データを受信して一時格納したり、格納していたデータを出力する第３通信バッファ（ＢＵＦ３）と、前記第１通信バッファと第３通信バッファ間に接続されて、第３通信バッファをイネーブルするシステムクロック発生器からの前記クロック信号のエッジと他のエッジで前記クロック信号によりイネーブルされて、第１通信バッファからのデータを受信して一時格納したり、格納していたデータを第１通信バッファに出力する第２通信バッファと、を含んで構成されることを特徴とする。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態に対し、図面を用いて説明する。
【００２７】
図１は、本発明に係る３段通信バッファを利用した通信装置の構成図で、図示されたように、本発明に係る通信装置の第１実施形態においては、他の通信機器からのデータを受信したり、後述する中央処理処置からのデータを前記他の通信機器に送信するシリアル通信器（Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｄｅｖｉｃｅ）６００（例えば、ユニバーサル非同期送受信機（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ／Ｔｒａｎｓｍｉｔｔｅｒ；ＵＡＲＴ））と、該シリアル通信器から受信されたデータを読み込んで処理したり、他の通信機器に送信するデータをシリアル通信器６００に提供する中央処理処置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；ＣＰＵ）７００と、シリアル通信器のデータ受信が終了されると、中央処理処置７００にインタラプト信号を発生させて出力するインタラプト発生器９００と、前記シリアル装置を同期させるためのクロック信号を発生させて提供するシステムクロック発生器１０００と、前記シリアル通信器６００に接続されて、該シリアル通信器６００から受信されたデータを一時格納したり、中央処理処置７００から他の通信装置に送信するデータを一時格納してシリアル通信器６００に提供する第１通信バッファ（ＢＵＦ１）と、システムクロック発生器１０００の前記クロック信号の立ち上がりエッジ（ｒｉｓｉｎｇ  ｅｄｇｅ）または立ち下がりエッジ（ｆａｌｌｉｎｇ  ｅｄｇｅ）でイネーブルされて、データを受信して一時格納したり、格納していたデータを出力する第３通信バッファ（ＢＵＦ３）と、前記第１通信バッファ（ＢＵＦ１）と第３通信バッファ（ＢＵＦ３）間に接続されて、第３通信バッファ（ＢＵＦ３）をイネーブルするシステムクロック発生器１０００からの前記クロック信号のエッジ及び他のエッジで前記クロック信号によりイネーブルされて、第１通信バッファ（ＢＵＦ１）からデータを受信して一時格納したり、格納していたデータを第１通信バッファ（ＢＵＦ１）に出力する第２通信バッファ（ＢＵＦ２）と、を含んで構成されている。
【００２８】
例えば、前記データは、５バイト（Ｂｙｔｅｓ）のデータ量を有するバイナリデータ（ｂｉｎａｒｙ  ｄａｔａ）であって、１バイトずつ前記第１〜第３通信バッファ（ＢＵＦ１−３）の指定されたアドレスの各格納領域に格納される。第１〜第３通信バッファ（ＢＵＦ１−３）の前記各格納領域は、それぞれフリップフロップ（Ｆｌｉｐ  Ｆｌｏｐ）で構成される。第１〜第３通信バッファ（ＢＵＦ１−３）の前記各格納領域がフリップフロップで構成される場合、第１通信バッファ（ＢＵＦ１）の各フリップフロップは、シリアル通信器６００または中央処理器７００から受信されたデータ中、データ送信開始を示すデータを検出する度毎に通信クロック信号を発生させる通信クロック発生器（図示せず）によりイネーブルされ、一方、第２通信バッファ（ＢＵＦ２）の各フリップフロップは、前記システムクロック発生器１０００からのクロック信号の立ち上がりエッジで同時にイネーブルされて、並列的にデータを第１通信バッファ（ＢＵＦ１）から受信したり、または、格納していたデータを並列に第１通信バッファ（ＢＵＦ１）に出力する。第３通信バッファ（ＢＵＦ３）の各フリップフロップは、前記クロック信号の立ち下がりエッジで同時にイネーブルされて、並列にデータを第２通信バッファ（ＢＵＦ２）から受信したり、または格納していたデータを並列に第２通信バッファ（ＢＵＦ１）に出力する。第２通信バッファ（ＢＵＦ２）の各フリップフロップが前記クロック信号の立ち下がりエッジで同時にイネーブルされるように構成する場合、第３通信バッファ（ＢＵＦ３）の各フリップフロップは、前記クロック信号の立ち上がりエッジで同時にイネーブルされるように構成される。
【００２９】
以下、このように構成された本発明に係る３段通信バッファを利用した通信装置の第１実施形態の動作に対して説明する。
【００３０】
まず、他の通信機器からデータを受信する場合、本発明に係る３段通信バッファを利用した通信装置の第１実施形態の動作を説明する。この時、他の通信機器は、本発明の第１実施形態のように構成されて、本発明の通信装置と通信する他の通信装置か、または、その他の本発明の通信装置とデータを通信する通信装置である。
【００３１】
他の通信装置からデータが送信され、シリアル通信器６００がこのようなデータを受信すると、該受信するデータはシリアル通信器６００から第１通信バッファ（ＢＵＦ１）に１バイトずつ順次格納される。例えば、５バイトのデータが受信された場合、このようなデータは、第１通信バッファ（ＢＵＦ１）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップにそれぞれ１バイトずつ格納される。次いで、システムクロック発生器１０００から第２通信バッファ（ＢＵＦ２）に入力される前記クロック信号が立ち下がりエッジであると、第２通信バッファ（ＢＵＦ２）はイネーブルされて、第１通信バッファ（ＢＵＦ１）から前記５バイトのデータを同時に並列に受信する。即ち、第１通信バッファ（ＢＵＦ１）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップにそれぞれ１バイトずつ格納されていた受信データが同時に並列に、前記のようにイネーブルされた第２通信バッファ（ＢＵＦ２）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに出力されて一時格納される。
【００３２】
次いで、システムクロック発生器１０００から第３通信バッファ（ＢＵＦ３）に入力される前記クロック信号が立ち上がりエッジであると、第３通信バッファ（ＢＵＦ３）はイネーブルされて、第２通信バッファ（ＢＵＦ２）から前記５バイトのデータを同時に並列に受信する。即ち、第２通信バッファ（ＢＵＦ２）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップにそれぞれ格納されていた１バイトずつのデータは、同時に、第３通信バッファ（ＢＵＦ３）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに出力されて格納される。
【００３３】
一方、インターラプト発生器９００は、シリアル通信器６００の出力と接続されていて、シリアル通信器６００から出力される受信データを通信プロトコル（ｐｒｏｔｏｃｏｌ）により予め設定及び格納された”送信終了”を示すデータと比較することで、データの受信終了可否をチェックし、予め格納された”送信終了”を示すデータと同様なデータがシリアル通信器６００から出力される受信データに存在すると、受信終了状態であることを認識して、これを示すインターラプト信号を中央処理処置７００に出力する。
【００３４】
中央処理処置７００は、インターラプト信号の受信によって新しいデータの受信を認識し、予め決定された優先順位、即ち、プログラム的に予め決定されて格納された処理の優先順位に従って、遂行中の処理を中断したり、遂行中の処理を終了した後、第３通信バッファ（ＢＵＦ３）から受信されたデータを読み込んで処理することで、受信動作が終了される。
【００３５】
一方、本発明に係る３段通信バッファを利用した通信装置の第１実施形態が他の通信機器にデータを送信する場合、本発明に係る３段通信バッファの第１実施形態を利用した通信装置の動作を説明する。
【００３６】
即ち、中央処理処置７００が他の通信装置に送信する５バイトのデータを第３通信バッファ（ＢＵＦ３）に書き込むと（ｗｒｉｔｅ）（即ち、出力すると）、第３通信バッファ（ＢＵＦ３）は、送信する５バイトのデータをそれぞれ１バイトずつ各第３通信バッファ（ＢＵＦ３）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップにそれぞれ格納する。以後、システムクロック発生器１０００から第３通信バッファ（ＢＵＦ３）に入力される前記クロック信号が立ち上がりエッジであると、第３通信バッファ（ＢＵＦ３）はイネーブルされて、第２通信バッファ（ＢＵＦ２）に前記５バイトのデータを同時に並列に送信する。即ち、第３通信バッファ（ＢＵＦ３）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップにそれぞれ格納されていた１バイトずつのデータは、同時に、第２通信バッファ（ＢＵＦ２）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに出力されて格納される。
【００３７】
次いで、システムクロック発生器１０００から第２通信バッファ（ＢＵＦ２）に入力される前記クロック信号が立ち下がりエッジであると、第２通信バッファ（ＢＵＦ２）はイネーブルされて、第１通信バッファ（ＢＵＦ１）に前記５バイトのデータを同時に並列に送信する。即ち、第２通信バッファ（ＢＵＦ２）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップにそれぞれ１バイトずつ格納されていた送信するデータが同時に並列に、第１通信バッファ（ＢＵＦ１）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに出力されて一時格納される。最後に、シリアル通信器６００は、第１通信バッファ（ＢＵＦ１）内に格納されている送信するデータを１バイトずつ読み込んで、送信先の通信器に順次送信することで送信動作が終了される。
【００３８】
以上説明したように、本発明に係る３段通信バッファを利用した通信装置の第１実施形態は、共通のバッファに対するアクセスがクロック信号の相互異なるエッジで、即ち、他の時点で行われるため、相互干渉がなくて、不完全なデータの読み込み／書き込みが基本的に防止される。また、各通信バッファの状態を示すポインタを状態に応じて常に更新しなければならなく、接近するバッファを選択するポインタを管理する必要がないため、希望する時点で、いつでも該当のバッファを通してデータを受信及び送信することができる。
【００３９】
図２は、本発明に係る３段通信バッファを利用した通信装置の第２実施形態を示したブロック図で、図示されたように、本発明に係る通信装置の第２実施形態においては、他の通信機器からデータを受信したり、後述する中央処理処置からデータを前記他の通信機器に送信するシリアル通信器（Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｄｅｖｉｃｅ）６００（例えば、ユニバーサル非同期送受信機（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ／Ｔｒａｎｓｍｉｔｔｅｒ；ＵＡＲＴ）と、該シリアル通信器から受信されたデータを読み込んで処理したり、他の通信機器に送信するデータをシリアル通信器６００に提供する中央処理処置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；ＣＰＵ）７００と、シリアル通信器６００のデータ受信が終了されると、シリアル処理処置７００にインタラプト信号を発生させて出力するインタラプト発生器９００と、前記通信装置を同期させるためのクロック信号を発生させて提供するシステムクロック発生器１０００と、前記シリアル通信器６００に接続されて、該シリアル通信器６００から受信されたデータを一時格納したり、中央処理処置７００から他の通信装置に送信するデータを一時格納してシリアル通信器６００に提供する第１通信バッファ（ＢＵＦ１）と、システムクロック発生器１０００の前記クロック信号の立ち上がりエッジ（ｒｉｓｉｎｇ  ｅｄｇｅ）または立ち下がりエッジ（ｆａｌｌｉｎｇ  ｅｄｇｅ）でイネーブルされて、データを受信して一時格納したり、格納していたデータを出力する第３通信バッファ（ＢＵＦ３）と、前記第１通信バッファ（ＢＵＦ１）と第３通信バッファ（ＢＵＦ３）間に接続されて、第３通信バッファ（ＢＵＦ３）をイネーブルするシステムクロック発生器１０００からの前記クロック信号のエッジ及び他のエッジで前記クロック信号によりイネーブルされて、第１通信バッファ（ＢＵＦ１）からデータを受信して一時格納したり、格納していたデータを第１通信バッファ（ＢＵＦ１）に出力する第２通信バッファ（ＢＵＦ２）と、第１通信バッファ（ＢＵＦ１）と第２通信バッファ（ＢＵＦ２）間に接続されて、第１通信バッファ（ＢＵＦ１）から第２通信バッファ（ＢＵＦ２）に、または、第２通信バッファ（ＢＵＦ２）から第１通信バッファ（ＢＵＦ１）にデータの伝送を許容したり遮断する第１ゲート（Ｇ１）と、
第２通信バッファ（ＢＵＦ２）と第３通信バッファ（ＢＵＦ３）間に接続されて、第２通信バッファ（ＢＵＦ２）から第３通信バッファ（ＢＵＦ３）に、または、第３通信バッファ（ＢＵＦ３）から第２通信バッファ（ＢＵＦ２）にデータの伝送を許容したり遮断する第２ゲート（Ｇ２）と、
中央処理処置７００からの命令信号に応答して、第２ゲート（Ｇ２）にデータの伝送を許容することを命令する第１命令信号（１ｓｔ  ｉｎｓｔｒｕｃｔｉｎｇ  ｓｉｇｎａｌ）を出力したり、シリアル通信器６００から、または、中央処理処置７００から送信終了を示すデータを受信した時、第１ゲートにデータの伝送許容を命令する第２命令信号（２ｎｄ  ｉｎｓｔｒｕｃｔｉｎｇ  ｓｉｇｎａｌ）を発出するゲート制御器８００と、を含んで構成され、
この時、第１ゲート（Ｇ１）は、ゲート制御器８００から第２命令信号（２ｎｄ  ｉｎｓｔｒｕｃｔｉｎｇ  ｓｉｇｎａｌ）が受信される時データの伝送を許容し、第２ゲート（Ｇ２）は、ゲート制御器８００から第１命令信号（１ｓｔ  ｉｎｓｔｒｕｃｔｉｎｇ  ｓｉｇｎａｌ）が受信される時データの伝送を許容する。
【００４０】
前記データは、第１実施形態のように、５バイト（Ｂｙｔｅｓ）のデータ量を有するバイナリデータ（ｂｉｎａｒｙ  ｄａｔａ）であって、１バイトずつ前記第１〜第３通信バッファ（ＢＵＦ１−３）の指定されたアドレスの各格納領域に格納される。第１〜第３通信バッファ（ＢＵＦ１−３）の前記各格納領域は、第１実施形態のように、通信クロック信号またはシステムクロック発生器１０００からのクロック信号、即ち、システムクロック信号によってイネーブルされる各フリップフロップ（Ｆｌｉｐ  Ｆｌｏｐ）で構成される。
【００４１】
前記第１ゲート（Ｇ１）は並列に接続されて、入出力方向が相互異なる１対の受信用及び送信用ＡＮＤゲートで構成され、この時、受信用ＡＮＤゲートの一つの入力端子は、ゲート制御器８００の第２命令信号出力に接続され、他の一つの入力端子は第１通信バッファ（ＢＵＦ１）に接続され、出力端子は第２通信バッファ（ＢＵＦ２）に接続され、送信用ＡＮＤゲートの一つの入力端子もゲート制御器８００の第２命令信号出力に接続され、他の一つの入力端子は第２通信バッファ（ＢＵＦ２）に接続され、出力端子は第１通信バッファ（ＢＵＦ１）に接続される。
【００４２】
又、第２ゲート（Ｇ２）も第１ゲート（Ｇ１）と同様に並列に接続され、入出力方向が相互異なる１対の受信用及び送信用ＡＮＤゲートで構成され、この時、受信用ＡＮＤゲートの一つの入力端子は、ゲート制御器８００の第１命令信号出力に接続され、他の一つの入力端子は第２通信バッファ（ＢＵＦ２）に接続され、出力端子は第３通信バッファ（ＢＵＦ３）に接続され、送信用ＡＮＤゲートの一つの入力端子はゲート制御器８００の第１命令信号出力に接続され、他の一つの入力端子は第３通信バッファ（ＢＵＦ３）に接続され、出力端子は第２通信バッファ（ＢＵＦ２）に接続される。
【００４３】
前記ゲート制御器８００は、第２実施形態として、前記第１及び第２ゲート（Ｇ１、Ｇ２）のデータ伝送の許容を命令する中央処理処置７００からの信号であって、バイナリ”１”を受信する度毎に、この信号を第１及び第２ゲート（Ｇ１、Ｇ２）に出力する簡単な命令バッファで構成される。
【００４４】
以下、このように構成された本発明に係る３段通信バッファを利用した通信装置の第２実施形態について説明する。
【００４５】
まず、他の通信機器からデータを受信する場合、本発明に係る３段通信バッファを利用した通信装置の第２実施形態の動作を説明する。
【００４６】
他の通信装置からデータが送信され、シリアル通信器６００がこのようなデータを受信すると、該受信するデータは、シリアル通信器６００から第１通信バッファ（ＢＵＦ１）に１バイトずつ順次格納される。例えば、５バイトのデータが受信された場合、このようなデータは、第１通信バッファ（ＢＵＦ１）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに１バイトずつそれぞれ格納される。この時、ゲート制御器８００はシリアル通信器６００に接続されて、シリアル通信器６００が受信したデータ中、送信終了を示すデータがあると予め設定された通信プロトコルに係る送信終了を示す基準データと比較し、一致すると、データの受信が終了されたことを認知して、第１ゲート（Ｇ１）にデータの伝送許容を命令する第２命令信号、例えば、バイナリ”１”信号を発出する。次いで、システムクロック発生器１０００から第２通信バッファ（ＢＵＦ２）に入力される前記クロック信号が立ち下がりエッジであると、第２通信バッファ（ＢＵＦ２）はイネーブルされて、第１通信バッファ（ＢＵＦ１）から前記５バイトのデータを同時に並列に受信する。即ち、第１通信バッファ（ＢＵＦ１）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに１バイトずつそれぞれ格納されていた受信データが同時に並列に、前記イネーブルされた第２通信バッファ（ＢＵＦ２）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに出力されて一時格納される。
【００４７】
次いで、中央処理処置７００が受信されたデータを読み込むために、命令信号をゲート制御器８００に出力すると、ゲート制御器８００は、この命令信号に応答して第１命令信号、例えば、バイナリ”１”信号を第２ゲート（Ｇ２）に出力し、該第２ゲート（Ｇ２）、即ち、受信用ＡＮＤゲートはデータの伝送を許容する状態となる。
【００４８】
次いで、システムクロック発生器１０００から第３通信バッファ（ＢＵＦ３）に入力される前記クロック信号が立ち上がりエッジであると、第３通信バッファ（ＢＵＦ３）はイネーブルされて、第２通信バッファ（ＢＵＦ２）から前記５バイトのデータを第２ゲート（Ｇ２）の受信用ＡＮＤゲートを通して同時に並列に受信する。即ち、第２通信バッファ（ＢＵＦ２）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップにそれぞれ格納されていた１バイトずつのデータは、同時に、前記第３通信バッファ（ＢＵＦ３）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに出力されて格納される。
【００４９】
一方、インタラプト発生器９００は、シリアル通信器６００の出力と接続されていて、シリアル通信器６００から出力される受信データを通信プロトコル（ｐｒｏｔｏｃｏｌ）により予め設定及び格納された”送信終了”を示すデータと比較することで、データの受信終了可否をチェックし、予め格納された”送信終了”を示すデータと同様なデータがシリアル通信器６００から出力される受信データに存在すると、受信終了状態であることを認識して、これを示すインタラプト信号を中央処理処置７００に出力する。
【００５０】
該中央処理処置７００は、インタラプト信号の受信によって新しいデータの受信を認識し、予め決定された優先順位、即ち、プログラムにより予め決定されて格納された処理の優先順位に従って、遂行中の処理を中断したり、遂行中の処理を終了した後、命令信号をゲート制御器８００に出力して、第３通信バッファ（ＢＵＦ３）から受信されたデータを読み込んで処理することで、受信動作が終了される。
【００５１】
一方、本発明に係る３段通信バッファを利用した通信装置の第１実施形態が他の通信機器にデータを送信する場合、本発明に係る３段通信バッファを利用した通信装置の第２実施形態の動作を説明する。
【００５２】
例えば、中央処理処置７００が他の通信装置に送信する５バイトのデータを第３通信バッファ（ＢＵＦ３）に書き込むと（ｗｒｉｔｅ）（即ち、出力すると）、第３通信バッファ（ＢＵＦ３）は送信する５バイトのデータをそれぞれ１バイトずつ第３通信バッファ（ＢＵＦ３）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに格納する。
【００５３】
また、中央処理処置７００は、送信する５バイトのデータの第３通信バッファ（ＢＵＦ３）に伝送が終了されると、ゲート制御器８００に命令信号を発出し、ゲート制御器８００は、この命令信号に応答して第１及び第２命令信号を第２ゲート（Ｇ２）及び第１ゲート（Ｇ１）にそれぞれ出力することで、第２ゲート（Ｇ２）及び第１ゲート（Ｇ１）はデータ伝送の許容状態で制御される。
【００５４】
次いで、システムクロック発生器１０００から第３通信バッファ（ＢＵＦ３）に入力される前記クロック信号が立ち上がりエッジであると、第３通信バッファ（ＢＵＦ３）はイネーブルされて、第２通信バッファ（ＢＵＦ２）に前記５バイトのデータを第２ゲート（Ｇ２）を通して並列に同時に送信する。即ち、第３通信バッファ（ＢＵＦ３）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップにそれぞれ格納されていた１バイトずつのデータは、同時に、第２通信バッファ（ＢＵＦ２）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに出力されて格納される。
【００５５】
次いで、システムクロック発生器１０００から第２通信バッファ（ＢＵＦ２）に入力される前記クロック信号が立ち下がりエッジであると、第２通信バッファ（ＢＵＦ２）はイネーブルされて、第１通信バッファ（ＢＵＦ１）に前記５バイトのデータを第１ゲート（Ｇ１）を通して並列に同時に送信する。即ち、第２通信バッファ（ＢＵＦ２）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに１バイトずつそれぞれ格納されていた送信するデータが、並列に同時に第１通信バッファ（ＢＵＦ１）内のアドレス００、アドレス０１、アドレス０２、アドレス０３、アドレス０４及びアドレス０５のフリップフロップに出力されて一時格納される。
【００５６】
最後に、シリアル通信器６００は、第１通信バッファ（ＢＵＦ１）内に格納されている送信するデータを１バイトずつ読み込み、送信先の通信器に順次送信することで、送信動作が終了される。
【００５７】
【発明の効果】
以上説明したように、本発明に係る３段通信バッファを利用した通信装置の第２実施形態においては、第１実施形態が有する長所の他に、送信及び受信時、通信バッファに完全な受信データまたは送信データが格納された時点でアクセスを許容するように構成することで、本発明の第１実施形態より通信信頼度を一層向上し得るという効果がある。
【００５８】
又、本発明の他の実施形態として、前記ゲート制御器８００を使用せずに、特定のアドレスまたは最後のアドレスにデータが記録されると、自動的に次の通信バッファにデータが伝送されるように構成することもできる。即ち、データの受信時、前記第１通信バッファの特定の番地または最後のアドレスにデータが記録されると、自動的に第２通信バッファに前記データを伝送させることで、中央処理処置７００とシリアル通信器６００とが相互干渉してエラーを発生させる現象を防止することができる。
【００５９】
又、本発明の又他の実施形態として、システムクロック発生器１０００と第２通信バッファ（ＢＵＦ２）間、または、システムクロック発生器１０００と第３通信バッファ（ＢＵＦ３）間に時間遅延回路を接続し、第１通信バッファ（ＢＵＦ１）と第３通信バッファ（ＢＵＦ３）が第２通信バッファ（ＢＵＦ２）にそれぞれアクセスする場合に時間差を発生させて、不完全なデータ伝送を構成することもできる。
【００６０】
又、本発明の又他の実施形態として、第２通信バッファ（ＢＵＦ２）の代りに、デュアル・ポートＲＡＭ（Ｄｕａｌ  Ｐｏｒｔ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を使用して、両方向からのアクセスは可能で、同時アクセスは不可能になるように構成することもできる。
【図面の簡単な説明】
【図１】本発明に係る３段通信バッファを利用した通信装置の第１実施形態を示したブロック図である。
【図２】本発明に係る３段通信バッファを利用した通信装置の第２実施形態を示したブロック図である。
【図３】従来一つの通信バッファを利用した通信装置の問題点を示した例示図で、（Ａ）はデータの同時性が破られた場合を示す図であり、（Ｂ）は不完全なデータの読み込みが発生する場合を示す図である。
【図４】従来の３段通信バッファを利用した通信装置を示したブロック図である。
【符号の説明】
６００…直列通信器
７００…中央処理処置
９００…インターラプト発生器
ＢＵＦ１〜ＢＵＦ３…第１〜第３通信バッファ
【図１】
0003559272.tif 000002
【図２】
0003559272.tif 000003
【図３】
0003559272.tif 000004
【図４】
0003559272.tif 000005