(57)【特許請求の範囲】
【請求項１】
所定値までのカウント信号を所定の時間ごとに出力するタイマ回路と、
データ送受信用の同期クロック信号の周期に対応する設定値を格納し、上記タイマ回路からのカウント信号値と上記設定値とが一致するごとに、互いに異なる値の一致信号を逐次出力する比較一致レジスタ回路と、
この比較一致レジスタ回路からの互いに異なる値の一致信号を入力し、これらのそれぞれに対応して設定される論理値からなるデータ送受信用の同期クロック信号を出力するフリップフロップ回路と、
外部からのクロック信号とともに、上記フリップフロップ回路からのデータ送受信用の同期クロック信号を入力し、これらのうちいずれかを選択してデータシフトクロック信号として出力するクロック選択回路と、
このクロック選択回路からのデータシフトクロック信号が入力されるごとに、データ送受信を行うデータシフトレジスタ回路とを備えた入出力装置。
【請求項２】
データ送受信の相手は上記同期クロック信号に同期してデータを送受信し、
タイマ回路は、データシフトレジスタ回路が受信するデータ信号の立ち上がり又は立ち下がりエッジのタイミングに応じてカウント信号の値を０にクリアすることを特徴とする請求項１記載の入出力装置。
【請求項３】
比較一致レジスタ回路は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によって設定値が格納されることを特徴とする請求項１または請求項２記載の入出力装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はマイクロコンピュータなどにおける入出力装置に係り、特にタイマ機能を使用してデータ送受信の各タイミング信号を自由に変更することができる入出力装置に関するものである。
【０００２】
【従来の技術】
従来のシリアル入出力装置は、内部のプリスケーラが出力するクロック信号に同期してデータをシリアル送信し、一方、シリアル受信では送信側から送られてくるクロック信号に同期して受信したデータをサンプリングする。
【０００３】
図１４は上述した従来の入出力装置の構成を示すブロック図である。図において、１００は不図示のクロック発振回路から入力した基準クロック信号を分周してデータ送受信用のクロック信号ＣＬＫｏｕｔを生成するプリスケーラで、２００は送信シフトレジスタであって、外部からのクロック信号ＣＬＫｉｎ又はプリスケーラ１００が生成したクロック信号ＣＬＫｏｕｔに同期してデータを送信する。３００は受信シフトレジスタであって、外部からのクロック信号ＣＬＫｉｎ又はプリスケーラ１００が生成したクロック信号ＣＬＫｏｕｔに同期してデータを受信する。４００は外部からのクロック信号ＣＬＫｉｎ又はプリスケーラ１００が生成したクロック信号ＣＬＫｏｕｔのうちいずれかを選択して送信シフトレジスタ２００に出力するセレクタ、５００は外部からのクロック信号ＣＬＫｉｎ又はプリスケーラ１００が生成したクロック信号ＣＬＫｏｕｔのうちいずれかを選択して受信シフトレジスタ３００に出力するセレクタである。
【０００４】
次に動作について説明する。
ここでは、プリスケーラ１００が生成したデータ送受信用のクロック信号ＣＬＫｏｕｔに同期してデータ送受信する場合について説明する。この場合、各セレクタ４００，５００はプリスケーラ１００が生成したクロック信号ＣＬＫｏｕｔをシフトクロック信号として選択して送信シフトレジスタ２００、受信シフトレジスタ３００に出力する。
【０００５】
図１５は図１４の入出力装置のデータ送受信におけるタイミング図である。図に示すように、プリスケーラ１００によって分周された信号は、データ送受信用として生成したクロック信号ＣＬＫｏｕｔに同期している。
先ず、データ送信の場合を説明すると、セレクタ４００が選択したクロック信号ＣＬＫｏｕｔをシフトタイミングとして送信シフトレジスタ２００がシフトされ、送信データＳｏｕｔを出力する。図１５では、送信シフトレジスタ２００がクロック信号ＣＬＫｏｕｔの立ち下がりエッジに同期して送信データＳｏｕｔを出力している。
【０００６】
次に、データ受信の場合を説明する。ここでは、プリスケーラ１００が生成したデータ送受信用のクロック信号ＣＬＫｏｕｔに同期してデータ送受信するので、このクロック信号ＣＬＫｏｕｔに同期して送信元から受信データＳｉｎが送信されてくる。受信シフトレジスタ３００はセレクタ５００が選択したクロック信号ＣＬＫｏｕｔをシフトタイミングとしてシフトし、受信データＳｉｎを格納する。図１５では、受信シフトレジスタ３００がクロック信号ＣＬＫｏｕｔの立ち上がりエッジに同期して受信データＳｉｎを格納している。
【０００７】
上述したプリスケーラ１００は、入出力装置のデータ送受信などに使用されるクロック信号を生成する以外の機能に使用されることは少ない。一方で、通常のワンチップマイクロコンピュータにおけるプリスケーラには、タイマ機能という基準クロック信号や外部からのクロック信号を計数する周辺機能が存在する。
【０００８】
【発明が解決しようとする課題】
従来の入出力装置は以上のように構成されているので、外部からのクロック信号を使用せず、内部のプリスケーラ１００が生成するクロック信号を使用して、シリアル送受信を行う場合、正常にデータ送受信の同期を取ることができないことがあるという課題があった。
【０００９】
具体的に上記課題を説明すると、例えば、送信先から論理値０となる時間と論理値１となる時間とが異なる周期を有するデータが送信されてきた場合、これらに同期する外部からのクロック信号を使用しないと、プリスケーラ１００が生成するクロック信号では正常に受信の同期を取ることができない。
【００１０】
また、プリスケーラ１００はクロック信号の生成以外の処理に使用されることが少なく、タイマ機能などの周辺機能が有効に利用されていないという課題があった。
【００１１】
この発明は上記のような課題を解決するためになされたもので、既存のタイマ機能を使用してシリアル入出力の機能を実現することで内部資源を有効に活用するとともに、データ送受信の各タイミング信号を自由に変更することができる入出力装置を得ることを目的とする。
【００１４】
【課題を解決するための手段】
この発明に係る入出力装置は、所定値までのカウント信号を所定の時間ごとに出力するタイマ回路と、データ送受信用の同期クロック信号の周期に対応する設定値を格納し、タイマ回路からのカウント信号値と設定値とが一致するごとに、互いに異なる値の一致信号を逐次出力する比較一致レジスタ回路と、この比較一致レジスタ回路からの互いに異なる値の一致信号を入力し、これらのそれぞれに対応して設定される論理値からなるデータ送受信用の同期クロック信号を出力するフリップフロップ回路と、外部からのクロック信号とともに、フリップフロップ回路からのデータ送受信用の同期クロック信号を入力し、これらのうちいずれかを選択してデータシフトクロック信号として出力するクロック選択回路と、このクロック選択回路からのデータシフトクロック信号が入力されるごとに、データ送受信を行うデータシフトレジスタ回路とを備えるものである。
【００１６】
この発明に係る入出力装置は、データ送受信の相手が同期クロック信号に同期してデータを送受信し、タイマ回路が、データシフトレジスタ回路が受信するデータ信号の立ち上がり又は立ち下がりエッジのタイミングに応じてカウント信号の値を０にクリアするものである。
【００１７】
この発明に係る入出力装置は、比較一致レジスタ回路がＤＭＡ（ＤｉｒｅｃｔＭｅｍｏｒｙ  Ａｃｃｅｓｓ）によって設定値を格納するものである。
【００２０】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１による入出力装置の構成を示すブロック図である。図において、１はベースタイマ（タイマ回路）であって、不図示のＣＰＵからの制御信号や外部からのクロック信号などの入力をトリガとしてカウント動作を開始し、所定値までのカウント信号を所定の時間ごとに出力する。２ａはデータ送信におけるシフトタイミングに対応する設定値を格納し、この設定値とベースタイマ１のカウント信号値とを比較する比較一致レジスタ（送信用比較一致レジスタ回路、比較一致レジスタ回路）であって、上記設定値とベースタイマ１のカウント信号値とが一致すると送信用の一致信号０を出力する。２ｂはデータ受信におけるシフトタイミングに対応する設定値を格納し、この設定値とベースタイマ１のカウント信号値とを比較する比較一致レジスタ（受信用比較一致レジスタ回路、比較一致レジスタ回路）であって、上記設定値とベースタイマ１のカウント信号値とが一致すると受信用の一致信号１を出力する。３は比較一致レジスタ２ａ，２ｂから一致信号０，１を入力し、これら一致信号０，１のそれぞれに対応して論理値１がセット、論理値０にリセットされるＲＳフリップフロップ（フリップフロップ回路）である。
【００２１】
４はセレクタ６からのデータシフトクロック信号に同期してシフトし、送信データＳｏｕｔを出力する送信シフトレジスタ回路（データシフトレジスタ回路）で、５はセレクタ７からのデータシフトクロック信号に同期してシフトし、受信データＳｉｎを格納する受信シフトレジスタ回路（データシフトレジスタ回路）である。６は外部からのクロック信号と比較一致レジスタ２ａからの一致信号０とを入力し、これらのうちいずれかをデータシフトクロック信号として選択して送信シフトレジスタ回路４に出力するセレクタ（クロック選択回路）で、７は外部からのクロック信号と比較一致レジスタ２ｂからの一致信号１とを入力し、これらのうちいずれかをデータシフトクロック信号として選択して受信シフトレジスタ回路５に出力するセレクタ（クロック選択回路）である。
【００２２】
次に動作について説明する。
ここでは、実施の形態１による入出力装置自身が生成したクロック信号に同期してデータ送受信する場合について説明する。この場合、セレクタ６では一致信号０を選択し、セレクタ７では一致信号１を選択して送信シフトレジスタ回路４、受信シフトレジスタ回路５に出力する。また、データ送受信する相手には、データ送受信用の同期クロック信号が必要となるが、この実施の形態１ではＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用する。
【００２３】
図２は図１の入出力装置のデータ送受信におけるタイミング図であり、このタイミング図を用いてデータ送受信動作を説明する。
先ず、データ送信する場合を説明する。不図示のＣＰＵによって比較一致レジスタ２ａにシフトタイミング時間に対応する設定値を書き込む。具体的には、ＣＰＵがシフトタイミング時間に相当する時間までにベースタイマ１から出力されるカウント信号値（図２中に示したベースタイマ１のカウント信号パルスに付した丸記号におけるカウント信号値）を設定値として比較一致レジスタ２ａに格納する。次に上記ＣＰＵからの制御信号などをトリガとしてベースタイマ１がカウントを開始し、所定値までのカウント信号を所定の時間ごとに出力する。このベースタイマ１からのカウント信号の値は比較一致レジスタ２ａの上記設定値と比較され、これらが一致すると比較一致レジスタ２ａが一致信号０をＲＳフリップフロップ３及びセレクタ６に出力する。また、この実施の形態１では不図示のＣＰＵにも上記一致信号０を割り込み要求信号として出力する。
【００２４】
セレクタ６には、外部からのクロック信号及び一致信号０が入力しており、ここでは、一致信号０を送信シフトレジスタ回路４に出力する。一致信号０を入力すると送信シフトレジスタ回路４内の後述する送信シフトレジスタがシフトし、送信データＳｏｕｔを出力する。この後、一致信号０による割り込み要求信号を受けたＣＰＵが次のシフトタイミング時間に対応する設定値（図２中に示したベースタイマ１のカウント信号パルスに付した次の丸記号におけるカウント信号値）を比較一致レジスタ２ａに書き込む。
【００２５】
以上の動作を繰り返すことによって、一定のタイミングで送信シフトレジスタ回路４をシフトさせて、送信データＳｏｕｔを出力させることができる。また、ＣＰＵが実行するデータ送受信に係るプログラムにおいて、比較一致レジスタ２ａに書き込むシフトタイミング時間に対応する設定値を自由に設定できるようにしておけば、所望のシフトタイミングで送信シフトレジスタ回路４内の送信シフトレジスタをシフトさせて、送信データＳｏｕｔを出力させることができる。
【００２６】
次に、データ受信する場合を説明する。ここでは、データ送受信用の同期クロック信号としてＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用するので、このクロック信号ＣＬＫｏｕｔに同期してデータ送信先から受信すべきデータが送信されてくる。このとき、不図示のＣＰＵによって比較一致レジスタ２ｂにシフトタイミング時間に対応する設定値が書き込まれている。具体的には、ＣＰＵがシフトタイミング時間に相当する時間までにベースタイマ１から出力されるカウント信号値（図２中に示したベースタイマ１のカウント信号パルスに付した星記号におけるカウント信号値）を設定値として比較一致レジスタ２ｂに格納する。
【００２７】
上記ＣＰＵからの制御信号などをトリガとしてベースタイマ１が所定値までのカウント信号を所定の時間ごとに出力する。このベースタイマ１からのカウント信号の値は比較一致レジスタ２ｂの上記設定値と比較され、これらが一致すると比較一致レジスタ２ｂが一致信号１をＲＳフリップフロップ３及びセレクタ７に出力する。また、この実施の形態１では不図示のＣＰＵにも上記一致信号１を割り込み要求信号として出力する。
【００２８】
セレクタ７には、外部からのクロック信号及び一致信号１が入力しており、ここでは、一致信号１を受信シフトレジスタ回路５に出力する。一致信号１を入力すると受信シフトレジスタ回路５内の後述する受信シフトレジスタがシフトし、受信データＳｉｎをサンプリングする。この後、一致信号１による割り込み要求信号を受けたＣＰＵが次のシフトタイミング時間に対応する設定値（図２中に示したベースタイマ１のカウント信号パルスに付した次の星記号におけるカウント信号値）を比較一致レジスタ２ｂに書き込む。
【００２９】
以上の動作を繰り返すことによって、一定のタイミングで受信シフトレジスタ回路５をシフトさせて、受信データＳｉｎをサンプリングすることができる。また、ＣＰＵが実行するデータ送受信に係るプログラムにおいて、比較一致レジスタ２ｂに書き込むシフトタイミング時間に対応する設定値を自由に設定できるようにしておけば、所望のシフトタイミングで受信シフトレジスタ回路５内の受信シフトレジスタをシフトさせて、受信データＳｉｎをサンプリングすることができる。これによって、クロック信号ＣＬＫｏｕｔに同期せずに送信先から送信されてきたデータに対しても、比較一致レジスタ２ｂに書き込むシフトタイミング時間に対応する設定値を適宜変更することで対応することができる。
【００３０】
また、上記では、データ送受信用の同期クロック信号としてＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用する例を示したが、セレクタ６，７が外部からのクロック信号をデータ送受信用の同期クロック信号として選択してもよい。この場合、送信シフトレジスタ回路４や受信シフトレジスタ回路５が、外部からのクロック信号をシフトタイミングとして、従来のシリアル入出力装置の動作と同様にデータ送受信するようになる。
【００３１】
次に実施の形態１による入出力装置の各構成部について詳細に説明する。
図３は実施の形態１による入出力装置の比較一致レジスタの一構成例を示す回路図である。図において、２は比較一致レジスタ（比較一致レジスタ回路）で、図１で示した比較一致レジスタ２ａ，２ｂに相当し、１６ビットのデータを格納できるものとする。２Ａは入力した２信号が一致するとき、論理値１の信号を出力する論理一致素子である。２Ｂは比較一致レジスタ２の各ビットごとに設けられたデータラッチであって、不図示のＣＰＵによってデータバスＤＢ０〜ＤＢ１５を介して送られてくるシフトタイミング時間に対応する設定値をラッチし、論理一致素子２Ａに出力する。
【００３２】
２Ｃはデータラッチ２Ｂのデータ出力ＱとデータバスＤＢ０〜ＤＢ１５との間に設けられたトライステートバッファで、読み出し信号ＲＤがアクティブになるとデータ出力Ｑの値をデータバスＤＢ０〜ＤＢ１５に出力する。２Ｄは各ビットの論理一致素子２Ａの出力信号を入力し、これら出力信号が全て一致すると論理値１の信号を出力するＡＮＤ回路である。ＤＢ０〜ＤＢ１５は不図示のＣＰＵからのシフトタイミング時間に対応する設定値をデータラッチ２Ｂに伝送するデータバス、ＢＴＢ０〜ＢＴＢ１５はベースタイマ１のカウント信号の各ビットにおける出力値で、ＣＭＰＣＫはＡＮＤ回路２Ｄが出力する一致信号であって、図１で示した比較一致レジスタ２ａ，２ｂの一致信号０，１に相当する。
【００３３】
次に動作について説明する。
データラッチ２Ｂ，・・・，２Ｂの各タイミング入力Ｔに不図示のＣＰＵから書き込み信号ＷＲが入力すると、そのデータ入力Ｄに各データバスＤＢ０〜ＤＢ１５からシフトタイミング時間に対応する設定値の各ビットに対応する値が入力する。データラッチ２Ｂ，・・・，２Ｂの各データ出力Ｑからは、各ビットごとに書き込まれたデータが出力し、比較一致レジスタ２の各ビットに対応する論理一致素子２Ａ，・・・，２Ａに入力する。また、データラッチ２Ｂ，・・・，２Ｂの各データ出力Ｑは、比較一致レジスタ２の各ビットに対応するトライステートバッファ２Ｃ，・・・，２Ｃを介してデータバスＤＢ０〜ＤＢ１５に接続している。このトライステートバッファ２Ｃ，・・・，２Ｃに、不図示のＣＰＵから読み出し信号ＲＤが入力すると、データラッチ２Ｂ，・・・，２Ｂの各データ出力Ｑが出力するシフトタイミング時間に対応する設定値の各ビットに対応する値がデータバスＤＢ０〜ＤＢ１５に出力される。これによって、比較一致レジスタ２の記憶内容を確認することができる。
【００３４】
上述した論理一致素子２Ａ，・・・，２Ａのもう一つの入力には、ベースタイマ１のカウント信号の各ビットにおける値であるＢＴＢ０〜ＢＴＢ１５がそれぞれ入力する。これによって、論理一致素子２Ａ，・・・，２Ａでは、データラッチ２Ｂ，・・・，２Ｂの各データ出力Ｑが出力するシフトタイミング時間に対応する設定値の各ビットに対応する値と、ベースタイマ１のカウント信号の各ビットにおける値であるＢＴＢ０〜ＢＴＢ１５とが比較される。このとき、ベースタイマ１のカウント信号の各ビット値と比較一致レジスタ２の各ビット値とが一致すると、論理一致素子２Ａは論理値１の信号（Ｈレベルの信号）を出力する。
【００３５】
ＡＮＤ回路２Ｄは、比較一致レジスタ２の各ビットに対応する論理一致素子２Ａ，・・・，２Ａの出力信号を入力し、これらの論理積をとる。これによって、ベースタイマ１のカウント信号の全ビット値と比較一致レジスタ２の全ビット値とが一致すると、ＡＮＤ回路２Ｄは論理値１（Ｈレベル）の一致信号ＣＭＰＣＫを出力する。また、ベースタイマ１のカウント信号の全ビット値と比較一致レジスタ２の全ビット値とが一致しない状態では、ＡＮＤ回路２Ｄは論理値０（Ｌレベル）の一致信号ＣＭＰＣＫを出力する。
【００３６】
図４は実施の形態１による入出力装置の送信シフトレジスタ回路の一構成例を示す回路図である。図において、４ａは送信シフトレジスタ回路４を構成する送信シフトレジスタ（データシフトレジスタ回路）で、比較一致レジスタ２からの一致信号ＣＭＰＣＫに同期して送信データＴ×Ｄを出力する。４ｂは送信シフトレジスタ回路４を構成する送信バッファレジスタ（データシフトレジスタ回路）で、データバスＤＢ０〜ＤＢ１５から入力される送信データを一時格納する。４ｃは送信シフトレジスタ回路４を構成する書き込み回路（データシフトレジスタ回路）で、送信バッファレジスタ４ｂに一時格納された送信データを送信シフトレジスタ４ａに書き込む。４Ａは送信シフトレジスタ４ａを構成するデータラッチで、比較一致レジスタ２からの一致信号ＣＭＰＣＫをタイミング入力Ｔに入力し、リセット入力ＲにＡＮＤ回路４Ｄからのリセット信号が入力するとリセットされ、ＡＮＤ回路４Ｅからの信号をセット入力Ｓに入力すると論理値０，１がセットされる。
【００３７】
４Ｂは送信バッファレジスタ４ｂを構成するデータラッチであって、タイミング入力Ｔに入力する書き込み信号ＷＲに同期してデータバスＤＢ０〜ＤＢ１５からのデータをデータ入力Ｄに入力し、データ出力ＱからＮＯＴ回路４Ｃ、ＡＮＤ回路４Ｅに出力する。４Ｃは書き込み回路４ｃを構成するＮＯＴ回路で、データラッチ４Ｂから送信データを入力し、出力はＡＮＤ回路４Ｄに入力している。４Ｄは書き込み回路４ｃを構成するＡＮＤ回路であって、ＮＯＴ回路４Ｃの出力とタイミング信号ＴＧ２とを入力してデータラッチ４Ａのリセット入力Ｒにリセット信号を入力する。４Ｅは書き込み回路４ｃを構成するＡＮＤ回路であって、データラッチ４Ｂのデータ出力Ｑとタイミング信号ＴＧ２とを入力してデータラッチ４Ａのセット入力Ｓにセット信号を入力する。なお、図１と同一構成要素には同一符号を付して重複する説明を省略する。
【００３８】
次に動作について説明する。
不図示のＣＰＵからの書き込み信号ＷＲをタイミング入力Ｔに入力すると、送信バッファレジスタ４ｂの各ビットに対応するデータラッチ４Ｂ，・・・，４Ｂには、そのデータ入力ＤにデータバスＤＢ０〜ＤＢ１５から送出されている送信データが書き込まれる。また、各データラッチ４Ｂ，・・・４Ｂに書き込まれた送信データはデータ出力Ｑを介してＮＯＴ回路４Ｃ及びＡＮＤ回路４Ｅに出力される。
【００３９】
書き込み回路４ｃを構成するＮＯＴ回路４Ｃは、データラッチ４Ｂのデータ出力Ｑからのデータを反転させてＡＮＤ回路４Ｄに出力する。ＡＮＤ回路４Ｅは、ＮＯＴ回路４Ｃの出力とともにタイミング信号ＴＧ２を入力している。このＡＮＤ回路４Ｅは、論理値１（Ｈレベル）のタイミング信号ＴＧ２と、データラッチ４Ｂのデータ出力Ｑから出力された論理値０（Ｌレベル）の信号（即ち、ＮＯＴ回路４Ｃの出力が論理値１（Ｈレベル）となる）とを入力すると、論理値０（Ｌレベル）の信号を出力する。このＬレベルの信号はリセット入力Ｒにて反転してＨレベルのリセット信号としてデータラッチ４Ａに取り込まれる。これによって、データラッチ４Ａの内容が０にリセットされる。また、ＮＯＴ回路４Ｃの出力値とタイミング信号ＴＧ２の値との他の組み合わせでは、リセット入力Ｒにて論理値０（Ｌレベル）のリセット信号となってデータラッチ４Ａに取り込まれるので、データラッチ４Ａの内容はリセットされない。
【００４０】
一方、データラッチ４Ｂのデータ出力Ｑからのデータ及びタイミング信号ＴＧ２はＡＮＤ回路４Ｅにも入力している。このＡＮＤ回路４Ｅは、論理値１（Ｈレベル）のタイミング信号ＴＧ２と、データラッチ４Ｂのデータ出力Ｑから出力された論理値１（Ｈレベル）の信号とを入力すると、論理値０（Ｌレベル）の信号を出力する。このＬレベルの信号はセット入力Ｓにて反転してＨレベルのセット信号としてデータラッチ４Ａに取り込まれる。これによって、データラッチ４Ａの内容が１にセットされる。また、データラッチ４Ｂのデータ出力Ｑの値とタイミング信号ＴＧ２の値との他の組み合わせでは、セット入力Ｓにて論理値０（Ｌレベル）のセット信号となってデータラッチ４Ａに取り込まれる、即ち、データラッチ４Ａの内容がリセット時の０を維持する。
【００４１】
上述のようにして、送信シフトレジスタ４ａの各ビットに論理値０、１がセットされて送信バッファレジスタ４ｂの記憶内容が書き込まれる。送信シフトレジスタ４ａの全ビットの書き込みが完了するとデータ送信が開始される。
具体的には、この送信シフトレジスタ４ａが、ベースタイマ１のカウント信号値と比較一致レジスタ２の設定値とが一致して論理値１（Ｈレベル）の一致信号ＣＭＰＣＫがセレクタ６からデータラッチ４Ａのタイミング入力Ｔに入力されるごとにシフトして、送信データＴ×Ｄを出力する。
【００４２】
図５は実施の形態１による入出力装置の受信シフトレジスタ回路の一構成例を示す回路図である。図において、５ａは受信シフトレジスタ回路５を構成する受信シフトレジスタ（データシフトレジスタ回路）で、比較一致レジスタ２からの一致信号ＣＭＰＣＫに同期して受信データＲ×Ｄｉｎを逐次格納し、一定回数のシフトで格納された受信データＲ×Ｄｉｎを受信バッファレジスタ５ｂに出力する。５ｂは受信データＲ×Ｄｉｎを格納する受信バッファレジスタ（データシフトレジスタ回路）であって、受信完了を示す受信完了タイミング信号ＴＧ１を入力すると受信シフトレジスタ５ａから受信データＲ×Ｄｉｎを入力し格納する。５Ａは受信シフトレジスタ５ａを構成するデータラッチで、比較一致レジスタ２からの一致信号ＣＭＰＣＫがタイミング入力Ｔに入力すると、データ入力Ｄに受信データＲ×Ｄｉｎを入力する。５Ｂは受信バッファレジスタ５ｂを構成するデータラッチであって、受信完了を示す受信完了タイミング信号ＴＧ１をタイミング入力Ｔに入力すると、データ入力Ｄに受信シフトレジスタ５ａからの受信データＲ×Ｄｉｎを入力する。なお、図１と同一構成要素には同一符号を付して重複する説明を省略する。
【００４３】
次に動作について説明する。
比較一致レジスタ２から出力された一致信号ＣＭＰＣＫと、外部からのクロック信号とを入力するセレクタ７が、一致信号ＣＭＰＣＫを選択して受信シフトレジスタ５ａに出力する。一致信号ＣＭＰＣＫは受信シフトレジスタ５ａを構成する各データラッチ５Ａのタイミング入力Ｔに入力する。このとき、論理値１（Ｈレベル）の一致信号ＣＭＰＣＫがタイミング入力Ｔに入力すると、各データラッチ５Ａ，・・・，５Ａは、データ入力Ｄに送られてくる受信データＲ×Ｄｉｎを逐次書き込んでゆく。各データラッチ５Ａ，・・・，５Ａのデータ出力Ｑからは、書き込まれた受信データＲ×Ｄｉｎが出力している。
【００４４】
各データラッチ５Ａ，・・・，５Ａのデータ出力Ｑは、受信バッファレジスタ５ｂの各データラッチ５Ｂ，・・・，５Ｂのデータ入力Ｄと接続しており、受信シフトレジスタ５ａが書き込んだ受信データＲ×Ｄｉｎが送出されている。また、受信シフトレジスタ５ａの所定回数のシフトが完了すると、不図示のＣＰＵは受信完了タイミング信号ＴＧ１を発生し、これを各データラッチ５Ｂ，・・・，５Ｂのタイミング入力Ｔに出力する。受信完了タイミング信号ＴＧ１がタイミング入力Ｔに入力すると、各データラッチ５Ｂ，・・・，５Ｂは、データ入力Ｄに送出されていた受信シフトレジスタ５ａが書き込んだ受信データＲ×Ｄｉｎを入力し格納する。これによって、受信シフトレジスタ５ａが受信した受信データＲ×Ｄｉｎが受信バッファレジスタ５ｂに格納される。
【００４５】
以上のように、この実施の形態１によれば、ベースタイマ１からのカウント信号値と、比較一致レジスタ２ａ，２ｂが格納するデータの送受信タイミングに対応する設定値とが一致するごとに一致信号０，１を出力し、この一致信号０，１をデータシフトクロック信号として送信シフトレジスタ回路４や受信シフトレジスタ回路５がデータ送受信を行うので、比較一致レジスタ２ａ，２ｂに所望の設定値を設定することで、データ送受信の各タイミング信号を自由に変更することができる。また、既存のタイマ機能をそのまま使用することができ、本願発明を実現するために必要なハードウェア資源の追加を低減することができる。
【００４６】
また、この実施の形態１によれば、比較一致レジスタ２ａ，２ｂから出力される一致信号０，１を入力し、この一致信号０，１のそれぞれに対応して設定される論理値０，１からなるデータ送受信用の同期クロック信号ＣＬＫｏｕｔを出力するＲＳフリップフロップ３を備えるので、比較一致レジスタ２ａ，２ｂに所望の設定値を設定することで、データ送受信用の同期クロック信号を自由に変更することができる。また、既存のタイマ機能をそのまま使用することができ、本願発明を実現するために必要なハードウェア資源の追加を低減することができる。
【００４７】
実施の形態２．
図６はこの発明の実施の形態２による入出力装置の構成を示すブロック図である。図において、６ａは外部からのクロック信号とＲＳフリップフロップ３からのクロック信号ＣＬＫｏｕｔとを入力し、これらのうちいずれかをデータシフトクロック信号として選択して送信シフトレジスタ回路４に出力するセレクタ（クロック選択回路）で、７ａは外部からのクロック信号とＲＳフリップフロップ３からのクロック信号ＣＬＫｏｕｔとを入力し、これらのうちいずれかをデータシフトクロック信号として選択して受信シフトレジスタ回路５に出力するセレクタ（クロック選択回路）である。なお、図１と同一構成要素には同一符号を付して重複する説明を省略する。
【００４８】
次に動作について説明する。
ここでは、実施の形態２による入出力装置自身が生成したクロック信号ＣＬＫｏｕｔに同期してデータ送受信する場合について説明する。この場合、セレクタ６ａ，７ａはＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを選択して送信シフトレジスタ回路４、受信シフトレジスタ回路５に出力する。また、データ送受信する相手には、データ送受信用の同期クロック信号が必要となるが、この実施の形態２ではＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用する。
【００４９】
ＲＳフリップフロップ３は、比較一致レジスタ２ａからの一致信号０を入力することで論理値０にリセットされ、比較一致レジスタ２ｂからの一致信号１を入力することで論理値１がセットされる。これによって、ＲＳフリップフロップ３は、一致信号０，１のそれぞれに対応して設定される論理値０，１からなるクロック信号ＣＬＫｏｕｔを生成する。
具体的には、不図示のＣＰＵがクロック信号ＣＬＫｏｕｔの立ち下がり時間に相当する時間までにベースタイマ１から出力されるカウント信号値（図７中に示したベースタイマ１のカウント信号パルスに付した丸記号におけるカウント信号値）を設定値として比較一致レジスタ回路２ａに格納する。さらに、上記ＣＰＵがクロック信号ＣＬＫｏｕｔの立ち上がり時間に相当する時間までにベースタイマ１から出力されるカウント信号値（図７中に示したベースタイマ１のカウント信号パルスに付した星記号におけるカウント信号値）を設定値として比較一致レジスタ回路２ｂに格納する。
【００５０】
図７は図６の入出力装置のデータ送受信におけるタイミング図であり、このタイミング図を用いてデータ送受信動作を説明する。
先ず、データ送信する場合を説明する。図７に示す例では、データ送信がＲＳフリップフロップ３からのクロック信号ＣＬＫｏｕｔの立ち下がりエッジに同期して行われる。
上記ＣＰＵからの制御信号などをトリガとしてベースタイマ１がカウントを開始し、所定値までのカウント信号を所定の時間ごとに出力する。このベースタイマ１からのカウント信号の値は比較一致レジスタ２ａ，２ｂの上記設定値と比較され、これらが一致すると比較一致レジスタ２ａ，２ｂが一致信号０，１をＲＳフリップフロップ３に出力する。また、この実施の形態２では不図示のＣＰＵにも上記一致信号０，１を割り込み要求信号として出力する。
【００５１】
セレクタ６ａには、外部からのクロック信号及びＲＳフリップフロップ３からのクロック信号ＣＬＫｏｕｔが入力しており、ここでは、クロック信号ＣＬＫｏｕｔを送信シフトレジスタ回路４に出力する。クロック信号ＣＬＫｏｕｔを入力すると送信シフトレジスタ回路４がクロック信号ＣＬＫｏｕｔの立ち下がりエッジに同期してシフトし、送信データＳｏｕｔを出力する。この後、一致信号０による割り込み要求信号を受けたＣＰＵが次のクロック信号ＣＬＫｏｕｔの立ち下がり時間に対応する設定値（図７中に示したベースタイマ１のカウント信号パルスに付した次の丸記号におけるカウント信号値）を比較一致レジスタ２ａに書き込む。
【００５２】
以上の動作を繰り返すことによって、一定のタイミングで送信シフトレジスタ回路４をシフトさせて、送信データＳｏｕｔを出力させることができる。また、ＣＰＵが実行するデータ送受信に係るプログラムにおいて、比較一致レジスタ２ａに書き込むクロック信号ＣＬＫｏｕｔの立ち下がり時間に対応する設定値を自由に設定できるようにしておけば、所望のクロック信号ＣＬＫｏｕｔで送信シフトレジスタ回路４をシフトさせて、送信データＳｏｕｔを出力させることができる。
【００５３】
次に、データ受信する場合を説明する。ここでは、データ送受信用の同期クロック信号としてＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用するので、このクロック信号ＣＬＫｏｕｔに同期してデータ送信先から受信すべきデータが送信されてくる。また、図７に示す例では、データ受信がＲＳフリップフロップ３からのクロック信号ＣＬＫｏｕｔの立ち上がりエッジに同期して行われる。
上記ＣＰＵからの制御信号などをトリガとしてベースタイマ１がカウントを開始し、所定値までのカウント信号を所定の時間ごとに出力する。このベースタイマ１からのカウント信号の値は比較一致レジスタ２ａ，２ｂの上記設定値と比較され、これらが一致すると比較一致レジスタ２ａ，２ｂが一致信号０，１をＲＳフリップフロップ３に出力する。また、この実施の形態２では不図示のＣＰＵにも上記一致信号０，１を割り込み要求信号として出力する。
【００５４】
セレクタ７ａには、外部からのクロック信号及びＲＳフリップフロップ３からのクロック信号ＣＬＫｏｕｔが入力しており、ここでは、クロック信号ＣＬＫｏｕｔを受信シフトレジスタ回路５に出力する。クロック信号ＣＬＫｏｕｔを入力すると受信シフトレジスタ回路５がシフトし、受信データＳｉｎをサンプリングする。この後、一致信号１による割り込み要求信号を受けたＣＰＵが次のクロック信号ＣＬＫｏｕｔの立ち上がり時間に対応する設定値（図７中に示したベースタイマ１のカウント信号パルスに付した次の星記号におけるカウント信号値）を比較一致レジスタ２ｂに書き込む。
【００５５】
以上の動作を繰り返すことによって、一定のタイミングで受信シフトレジスタ回路５をシフトさせて、受信データＳｉｎをサンプリングすることができる。また、ＣＰＵが実行するデータ送受信に係るプログラムにおいて、比較一致レジスタ２ｂに書き込むクロック信号ＣＬＫｏｕｔの立ち上がり時間に対応する設定値を自由に設定できるようにしておけば、所望のシフトタイミングで受信シフトレジスタ回路５をシフトさせて、受信データＳｉｎをサンプリングすることができる。
【００５６】
また、上記では、データ送受信用の同期クロック信号としてＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用する例を示したが、セレクタ６ａ，７ａが外部からのクロック信号をデータ送受信用の同期クロック信号として選択してもよい。この場合、送信シフトレジスタ回路４や受信シフトレジスタ回路５が、外部からのクロック信号をシフトタイミングとして、従来のシリアル入出力装置の動作と同様にデータ送受信するようになる。
【００５７】
以上のように、この実施の形態２によれば、ベースタイマ１からのカウント信号値と、比較一致レジスタ２ａ，２ｂが格納するデータ送受信用の同期クロック信号の周期に対応する設定値とが一致するごとに出力される一致信号０，１をＲＳフリップフロップ３が入力し、このＲＳフリップフロップ３が互いに異なる値の一致信号０，１のそれぞれに対応して設定される論理値０，１からなるクロック信号ＣＬＫｏｕｔを生成し、このクロック信号ＣＬＫｏｕｔをデータシフトクロック信号として送信シフトレジスタ回路４や受信シフトレジスタ回路５がデータ送受信を行うので、比較一致レジスタ２ａ，２ｂに所望の設定値を設定することで、データ送受信用の同期クロック信号を自由に変更することができる。また、既存のタイマ機能をそのまま使用することができ、本願発明を実現するために必要なハードウェア資源の追加を低減することができる。
【００５８】
実施の形態３．
図８はこの発明の実施の形態３による入出力装置の構成を示すブロック図である。図において、１ａは比較一致レジスタ２ａから論理値１（Ｈレベル）の一致信号０を受けると、カウント信号を０にクリアするベースタイマ（タイマ回路）である。なお、図１と同一構成要素には同一符号を付して重複する説明を省略する。
【００５９】
次に動作について説明する。
ここでは、実施の形態３による入出力装置自身が生成したクロック信号に同期してデータ送受信する場合について説明する。この場合、セレクタ６では一致信号０を選択し、セレクタ７では一致信号１を選択して送信シフトレジスタ回路４、受信シフトレジスタ回路５に出力する。また、データ送受信する相手には、データ送受信用の同期クロック信号が必要となるが、この実施の形態３ではＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用する。
【００６０】
図９は図８の入出力装置のデータ送受信におけるタイミング図であり、このタイミング図を用いてデータ送受信動作を説明する。
先ず、データ送信する場合を説明する。不図示のＣＰＵによって比較一致レジスタ２ａにシフトタイミング時間に対応する設定値を書き込む。具体的には、ＣＰＵがシフトタイミング時間に相当する時間までにベースタイマ１から出力されるカウント信号値（図９中に示したベースタイマ１ａのカウント信号パルスに付した丸記号におけるカウント信号値）を設定値として比較一致レジスタ２ａに格納する。
【００６１】
次に、上記ＣＰＵからの制御信号などをトリガとしてベースタイマ１ａがカウントを開始し、カウント信号の値と比較一致レジスタ２ａの上記設定値とが一致すると、比較一致レジスタ２ａが一致信号０をベースタイマ１ａ、ＲＳフリップフロップ３及びセレクタ６に出力する。
【００６２】
セレクタ６には、外部からのクロック信号及び一致信号０が入力しており、ここでは、一致信号０を送信シフトレジスタ回路４に出力する。一致信号０を入力すると送信シフトレジスタ回路４がシフトし、送信データＳｏｕｔを出力する。このとき、図９に示すように、論理値１（Ｈレベル）の一致信号０を受けたベースタイマ１ａがカウント信号値を０にクリアする。これによって、上記実施の形態１で示したような一致信号０を受けたＣＰＵによって次のシフトタイミング時間に対応する設定値を比較一致レジスタ２ａに書き込む必要がない。
即ち、最初に比較一致レジスタ２ａに格納したシフトタイミング時間に対応する設定値を変更することなく、データ送信を行うことができる。
【００６３】
以上の動作を繰り返すことによって、一定のタイミングで送信シフトレジスタ回路４をシフトさせて、送信データＳｏｕｔを出力させることができる。また、最初に、比較一致レジスタ２ａに所望のシフトタイミング時間に対応する設定値を設定しておけば、ＣＰＵに対する割り込み処理を行うことなく、所望のシフトタイミングで送信シフトレジスタ回路４をシフトさせて、送信データＳｏｕｔを出力させることができる。
【００６４】
次に、データ受信する場合を説明する。ここでは、データ送受信用の同期クロック信号としてＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用するので、このクロック信号ＣＬＫｏｕｔに同期してデータ送信先から受信すべきデータが送信されてくる。このとき、不図示のＣＰＵによって比較一致レジスタ２ｂにシフトタイミング時間に対応する設定値が書き込まれている。具体的には、ＣＰＵがシフトタイミング時間に相当する時間までにベースタイマ１ａから出力されるカウント信号値（図９中に示したベースタイマ１ａのカウント信号パルスに付した星記号におけるカウント信号値）を設定値として比較一致レジスタ２ｂに格納する。
【００６５】
上記ＣＰＵからの制御信号などをトリガとしてベースタイマ１ａが所定値までのカウント信号を所定の時間ごとに出力する。このベースタイマ１ａからのカウント信号の値は比較一致レジスタ２ｂの上記設定値と比較され、これらが一致すると比較一致レジスタ２ｂが一致信号１をＲＳフリップフロップ３及びセレクタ７に出力する。また、この実施の形態３では不図示のＣＰＵにも上記一致信号１を割り込み要求信号として出力する。
【００６６】
セレクタ７には、外部からのクロック信号及び一致信号１が入力しており、ここでは、一致信号１を受信シフトレジスタ回路５に出力する。一致信号１を入力すると受信シフトレジスタ回路５がシフトし、受信データＳｉｎをサンプリングする。この後、一致信号１による割り込み要求信号を受けたＣＰＵが次のシフトタイミング時間に対応する設定値（図９中に示したベースタイマ１ａのカウント信号パルスに付した次の星記号におけるカウント信号値）を比較一致レジスタ２ｂに書き込む。
【００６７】
以上の動作を繰り返すことによって、一定のタイミングで受信シフトレジスタ回路５をシフトさせて、受信データＳｉｎをサンプリングすることができる。また、ＣＰＵが実行するデータ送受信に係るプログラムにおいて、比較一致レジスタ２ｂに書き込むシフトタイミング時間に対応する設定値を自由に設定できるようにしておけば、所望のシフトタイミングで受信シフトレジスタ回路５をシフトさせて、受信データＳｉｎをサンプリングすることができる。これによって、クロック信号ＣＬＫｏｕｔに同期せずに送信先から送信されてきたデータに対しても、比較一致レジスタ２ｂに書き込むシフトタイミング時間に対応する設定値を適宜変更することで対応することができる。
【００６８】
また、上記では、データ送受信用の同期クロック信号としてＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用する例を示したが、セレクタ６，７が外部からのクロック信号をデータ送受信用の同期クロック信号として選択してもよい。この場合、送信シフトレジスタ回路４や受信シフトレジスタ回路５が、外部からのクロック信号をシフトタイミングとして、従来のシリアル入出力装置の動作と同様にデータ送受信するようになる。
【００６９】
以上のように、この実施の形態３によれば、ベースタイマ１ａが比較一致レジスタ２ａからの一致信号０を入力するごとにカウント信号の値を０にクリアするので、ＣＰＵに対する割り込み処理の回数を削減することができるとともに、比較一致レジスタ２ａ，２ｂに所望の設定値を設定することで、データ送受信の各タイミング信号を自由に変更することができる。また、既存のタイマ機能をそのまま使用することができ、本願発明を実現するために必要なハードウェア資源の追加を低減することができる。
【００７０】
実施の形態４．
図１０はこの発明の実施の形態４による入出力装置の構成を示すブロック図である。図において、８はＯＲ回路であって、比較一致レジスタ２ａからの一致信号０と受信データＳｉｎの立ち下がりエッジ信号値との論理和をベースタイマ１ａに出力する。なお、図１及び図８と同一構成要素には同一符号を付して重複する説明を省略する。
【００７１】
次に動作について説明する。
ここでは、実施の形態４による入出力装置自身が生成したクロック信号に同期してデータ送受信する場合について説明する。この場合、セレクタ６では一致信号０を選択し、セレクタ７では一致信号１を選択して送信シフトレジスタ回路４、受信シフトレジスタ回路５に出力する。また、データ送受信する相手には、データ送受信用の同期クロック信号が必要となるが、この実施の形態４ではＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用する。
【００７２】
図１１は図１０の入出力装置のデータ送受信におけるタイミング図であり、このタイミング図を用いてデータ送受信動作を説明する。
先ず、データ送信する場合を説明する。不図示のＣＰＵによって比較一致レジスタ２ａにシフトタイミング時間に対応する設定値を書き込む。具体的には、ＣＰＵがシフトタイミング時間に相当する時間までにベースタイマ１から出力されるカウント信号値（図１１中に示したベースタイマ１ａのカウント信号パルスに付した丸記号におけるカウント信号値）を設定値として比較一致レジスタ２ａに格納する。
【００７３】
次に、上記ＣＰＵからの制御信号などをトリガとしてベースタイマ１ａがカウントを開始し、カウント信号の値と比較一致レジスタ２ａの上記設定値とが一致すると、比較一致レジスタ２ａが一致信号０をＲＳフリップフロップ３、セレクタ６及びＯＲ回路８に出力する。
【００７４】
セレクタ６には、外部からのクロック信号及び一致信号０が入力しており、ここでは、一致信号０を送信シフトレジスタ回路４に出力する。一致信号０を入力すると送信シフトレジスタ回路４がシフトし、送信データＳｏｕｔを出力する。このとき、図１１に示すように、論理値１（Ｈレベル）の一致信号０を受けたＯＲ回路８は受信データＳｉｎの立ち下がりエッジ信号値が論理値０，１のいずれであっても、Ｈレベルの出力値をベースタイマ１ａに出力する。ＯＲ回路８からのＨレベルの出力値を受けると、ベースタイマ１ａはカウント信号値を０にクリアする。これによって、上記実施の形態１で示したような一致信号０を受けたＣＰＵによって次のシフトタイミング時間に対応する設定値を比較一致レジスタ２ａに書き込む必要がない。
即ち、最初に比較一致レジスタ２ａに格納したシフトタイミング時間に対応する設定値を変更することなく、データ送信を行うことができる。
【００７５】
以上の動作を繰り返すことによって、一定のタイミングで送信シフトレジスタ回路４をシフトさせて、送信データＳｏｕｔを出力させることができる。また、最初に、比較一致レジスタ２ａに所望のシフトタイミング時間に対応する設定値を設定しておけば、ＣＰＵに対する割り込み処理を行うことなく、所望のシフトタイミングで送信シフトレジスタ回路４をシフトさせて、送信データＳｏｕｔを出力させることができる。
【００７６】
次に、データ受信する場合を説明する。ここでは、データ送受信用の同期クロック信号としてＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用するので、このクロック信号ＣＬＫｏｕｔに同期してデータ送信先から受信すべきデータが送信されてくる。このとき、不図示のＣＰＵによって比較一致レジスタ２ｂにシフトタイミング時間に対応する設定値が書き込まれている。具体的には、ＣＰＵがシフトタイミング時間に相当する時間までにベースタイマ１ａから出力されるカウント信号値（図１１中に示したベースタイマ１ａのカウント信号パルスに付した星記号におけるカウント信号値）を設定値として比較一致レジスタ２ｂに格納する。
【００７７】
上記ＣＰＵからの制御信号などをトリガとしてベースタイマ１ａが所定値までのカウント信号を所定の時間ごとに出力する。このベースタイマ１ａからのカウント信号の値は比較一致レジスタ２ｂの上記設定値と比較され、これらが一致すると比較一致レジスタ２ｂが一致信号１をＲＳフリップフロップ３及びセレクタ７に出力する。また、この実施の形態４では不図示のＣＰＵにも上記一致信号１を割り込み要求信号として出力する。
【００７８】
セレクタ７には、外部からのクロック信号及び一致信号１が入力しており、ここでは、一致信号１を受信シフトレジスタ回路５に出力する。一致信号１を入力すると受信シフトレジスタ回路５がシフトし、受信データＳｉｎをサンプリングする。このとき、データ受信に障害が生じた場合、この実施の形態４では受信データの立ち上がりエッジや立ち下がりエッジのタイミングでベースタイマ１ａのカウント信号値を０にクリアすることで、データ送受信の途中でも同期をとることができる。
【００７９】
具体的に説明すると、受信データＳｉｎを受信シフトレジスタ回路５が格納する際、比較一致レジスタ２ａからの一致信号０は論理値０（Ｌレベル）であるので、ＯＲ回路８の１つの入力には論理値０（Ｌレベル）の信号が入力している。このとき、例えば受信データＳｉｎの立ち下がりエッジを検出すると、論理値１の信号を出力する不図示のエッジ検出器を設けることで、受信データＳｉｎの立ち下がりエッジを検出するごとに、ＯＲ回路８が論理値１（Ｈレベル）の出力信号をベースタイマ１ａに出力する。これによって、受信データＳｉｎの立ち下がりエッジを検出するごとに、ベースタイマ１ａがカウント信号値を０にクリアする。この後、一致信号１による割り込み要求信号を受けたＣＰＵが次のシフトタイミング時間に対応する設定値（図１１中に示したベースタイマ１ａのカウント信号パルスに付した次の星記号におけるカウント信号値）を比較一致レジスタ２ｂに書き込む。
このようにすることで、１パルスの受信データＳｉｎを受信シフトレジスタ回路５が格納した時点から次のシフトタイミング時間に対応する設定値を比較一致レジスタ２ｂに設定することができ、データ送受信の途中でも同期をとることができる。
【００８０】
以上の動作を繰り返すことによって、一定のタイミングで受信シフトレジスタ回路５をシフトさせて、受信データＳｉｎをサンプリングすることができる。また、ＣＰＵが実行するデータ送受信に係るプログラムにおいて、比較一致レジスタ２ｂに書き込むシフトタイミング時間に対応する設定値を自由に設定できるようにしておけば、所望のシフトタイミングで受信シフトレジスタ回路５をシフトさせて、受信データＳｉｎをサンプリングすることができる。これによって、クロック信号ＣＬＫｏｕｔに同期せずに送信先から送信されてきたデータに対しても、比較一致レジスタ２ｂに書き込むシフトタイミング時間に対応する設定値を適宜変更することで対応することができる。
【００８１】
また、上記では、データ送受信用の同期クロック信号としてＲＳフリップフロップ３が生成したクロック信号ＣＬＫｏｕｔを使用する例を示したが、セレクタ６，７が外部からのクロック信号をデータ送受信用の同期クロック信号として選択してもよい。この場合、送信シフトレジスタ回路４や受信シフトレジスタ回路５が、外部からのクロック信号をシフトタイミングとして、従来のシリアル入出力装置の動作と同様にデータ送受信するようになる。
【００８２】
以上のように、この実施の形態４によれば、ＯＲ回路８によって受信シフトレジスタ回路５が受信するデータＳｉｎの立ち上がり又は立ち下がりエッジのタイミングに応じてベースタイマ１ａがカウント信号の値を０にクリアするので、データ受信に障害が生じた場合においてもデータ送受信の途中でも同期をとることができる。
【００８３】
なお、上記実施の形態１，２では、ＣＰＵに対する割り込み処理で比較一致レジスタ２ａ，２ｂに対する設定を行う例を示したが、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送機能を用いて、ＣＰＵを介さず設定値を記憶する記憶手段から比較一致レジスタ２ａ，２ｂに対する設定を行うようにしてもよい。このようにすることで、比較一致レジスタ２ａ，２ｂに対する設定処理におけるＣＰＵの負荷を低減することができる。また、上記実施の形態３，４では、比較一致レジスタ２ａ，２ｂの設定内容の書き換えを省略した例を示しているが、送受信する相手との間で使用するシリアル通信プロトコルによって比較一致レジスタ２ａ，２ｂの設定内容を書き換えなければならない場合がある。このような場合、上記実施の形態１，２で示したＣＰＵに対する割り込み処理で行ってもよく、ＤＭＡ転送機能を用いてもよい。
【００８４】
また、上記の他の比較一致レジスタ２ａ，２ｂの設定内容の書き換えを行う構成について説明する。
図１２は比較一致レジスタの設定内容の書き換えを行うリロードレジスタを有する入出力装置の構成を示すブロック図である。図において、９ａ，９ｂは比較一致レジスタ２ａ，２ｂにそれぞれ設けたリロードレジスタ（リロードレジスタ回路）で、所定の設定値を比較一致レジスタ２ａ，２ｂの一致信号０，１に同期して逐次比較一致レジスタ２ａ，２ｂに設定する。なお、図１と同一構成要素には同一符号を付して重複する説明を省略する。
【００８５】
次に概要について説明する。
リロードレジスタ９ａ，９ｂには、それぞれ送信シフトレジスタ回路４及び受信シフトレジスタ回路５によるデータ送受信において比較一致レジスタ２ａ，２ｂに設定すべき全ての設定値が格納されている。これらリロードレジスタ９ａ，９ｂは、比較一致レジスタ２ａ，２ｂからの一致信号０，１をそれぞれ受けるごとに上記設定値を逐次比較一致レジスタ２ａ，２ｂに出力し設定する。
このようにすることで、ＣＰＵに対する割り込み処理やＤＭＡ転送機能を使用することなく、比較一致レジスタの設定内容を書き換えることが可能である。
また、リロードレジスタ９ａ，９ｂを用いる方法は、例えば転送レートが速すぎて、ＣＰＵに対する割り込み処理やＤＭＡ転送機能によってでは比較一致レジスタの設定内容の書き換えが間に合わない場合に有効である。
このリロードレジスタ９ａ，９ｂを用いる構成は、上記実施の形態１から実施の形態４の全てに適用することができる。
【００８６】
図１３は比較一致レジスタの設定内容の書き換えを行うアダーを有する入出力装置の構成を示すブロック図である。図において、１０は比較一致レジスタ２ａ，２ｂ間に設けたアダー（加算器）で、比較一致レジスタ２ａ，２ｂの一致信号０，１に同期して一定値（転送レート）を逐次加算して、次に比較一致レジスタ２ａ，２ｂに設定すべき設定値を算出する。なお、図１と同一構成要素には同一符号を付して重複する説明を省略する。
【００８７】
次に概要について説明する。
送信シフトレジスタ回路４及び受信シフトレジスタ回路５によるデータ送受信において、比較一致レジスタ２ａ，２ｂからの一致信号０，１をそれぞれ受けるごとに、アダー１０が転送レートに相当する所定値をそれぞれ比較一致レジスタ２ａ，２ｂに加算する。
このようにすることで、ＣＰＵに対する割り込み処理やＤＭＡ転送機能を使用することなく、比較一致レジスタ２ａ，２ｂの設定内容を自動的に書き換えることが可能である。
このアダー１０を用いる構成は、上記実施の形態１から実施の形態４の全てに適用することができる。
【００９０】
【発明の効果】
以上のように、この発明によれば、所定値までのカウント信号を所定の時間ごとに出力するタイマ回路と、データ送受信用の同期クロック信号の周期に対応する設定値を格納し、タイマ回路からのカウント信号値と設定値とが一致するごとに、互いに異なる値の一致信号を逐次出力する比較一致レジスタ回路と、この比較一致レジスタ回路からの互いに異なる値の一致信号を入力し、これらのそれぞれに対応して設定される論理値からなるデータ送受信用の同期クロック信号を出力するフリップフロップ回路と、外部からのクロック信号とともに、フリップフロップ回路からのデータ送受信用の同期クロック信号を入力し、これらのうちいずれかを選択してデータシフトクロック信号として出力するクロック選択回路と、このクロック選択回路からのデータシフトクロック信号が入力されるごとに、データ送受信を行うデータシフトレジスタ回路とを備えるので、比較一致レジスタ回路に所望の設定値を設定することで、データ送受信用の同期クロック信号を自由に変更することができるという効果がある。また、既存のタイマ機能をそのまま使用することができ、本願発明を実現するために必要なハードウェア資源の追加を低減することができるという効果がある。
【００９２】
この発明によれば、データ送受信の相手が同期クロック信号に同期してデータを送受信し、タイマ回路が、データシフトレジスタ回路が受信するデータ信号の立ち上がり又は立ち下がりエッジのタイミングに応じてカウント信号の値を０にクリアするので、データ受信に障害が生じた場合においてもデータ送受信の途中でも同期をとることができるという効果がある。
【００９３】
この発明によれば、比較一致レジスタ回路がＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によって設定値を格納するので、比較一致レジスタ回路の設定処理におけるＣＰＵの負荷を低減することができるという効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１による入出力装置の構成を示すブロック図である。
【図２】  図１の入出力装置のデータ送受信におけるタイミング図である。
【図３】  実施の形態１による入出力装置の比較一致レジスタの一構成例を示す回路図である。
【図４】  実施の形態１による入出力装置の送信シフトレジスタ回路の一構成例を示す回路図である。
【図５】  実施の形態１による入出力装置の受信シフトレジスタ回路の一構成例を示す回路図である。
【図６】  この発明の実施の形態２による入出力装置の構成を示すブロック図である。
【図７】  図６の入出力装置のデータ送受信におけるタイミング図である。
【図８】  この発明の実施の形態３による入出力装置の構成を示すブロック図である。
【図９】  図８の入出力装置のデータ送受信におけるタイミング図である。
【図１０】  この発明の実施の形態４による入出力装置の構成を示すブロック図である。
【図１１】  図１０の入出力装置のデータ送受信におけるタイミング図である。
【図１２】  比較一致レジスタの設定内容の書き換えを行うリロードレジスタを有する入出力装置の構成を示すブロック図である。
【図１３】  比較一致レジスタの設定内容の書き換えを行うアダーを有する入出力装置の構成を示すブロック図である。
【図１４】  従来の入出力装置の構成を示すブロック図である。
【図１５】  図１４の入出力装置のデータ送受信におけるタイミング図である。
【符号の説明】
１，１ａ  ベースタイマ（タイマ回路）、２，２ａ  比較一致レジスタ（送信用比較一致レジスタ回路、比較一致レジスタ回路）、２ｂ  比較一致レジスタ（受信用比較一致レジスタ回路、比較一致レジスタ回路）、２Ａ  論理一致素子、２Ｂ  データラッチ、２Ｃ  トライステートバッファ、２Ｄ  ＡＮＤ回路、３  ＲＳフリップフロップ（フリップフロップ回路）、４  送信シフトレジスタ回路（データシフトレジスタ回路）、４ａ  送信シフトレジスタ（データシフトレジスタ回路）、４ｂ  送信バッファレジスタ（データシフトレジスタ回路）、４ｃ書き込み回路（データシフトレジスタ回路）、４Ａ，４Ｂ  データラッチ、４Ｃ  ＮＯＴ回路、４Ｄ，４Ｅ  ＡＮＤ回路、５  受信シフトレジスタ回路（データシフトレジスタ回路）、５ａ  受信シフトレジスタ（データシフトレジスタ回路）、５ｂ  受信バッファレジスタ（データシフトレジスタ回路）、５Ａ，５Ｂデータラッチ、６，６ａ  セレクタ（クロック選択回路）、７，７ａ  セレクタ（クロック選択回路）、８  ＯＲ回路、９ａ，９ｂ  リロードレジスタ（リロードレジスタ回路）、１０  アダー（加算器）。
【図１】
0004524724.tif 000002
【図２】
0004524724.tif 000003
【図３】
0004524724.tif 000004
【図４】
0004524724.tif 000005
【図５】
0004524724.tif 000006
【図６】
0004524724.tif 000007
【図７】
0004524724.tif 000008
【図８】
0004524724.tif 000009
【図９】
0004524724.tif 000010
【図１０】
0004524724.tif 000011
【図１１】
0004524724.tif 000012
【図１２】
0004524724.tif 000013
【図１３】
0004524724.tif 000014
【図１４】
0004524724.tif 000015
【図１５】
0004524724.tif 000016