(57)【要約】 【課題】通信を行う際の信頼性を向上させる。【解決手段】転送データを所定サイズごと第１の装置から第２の装置に順次転送するための制御を行う通信インターフェース回路であって、前記第２の装置に前記所定サイズの前記転送データを順次転送している間、前記順次転送することを一時停止可能にするとともに、前記一時停止した場合に前記一時停止が解除されたとき、前記一時停止したときからの続きとなる前記転送データから前記順次転送することを再開するための制御手段、を備えることとする。【選択図】    図１
2005107694.tif 000002
【特許請求の範囲】
【請求項１】
転送データを所定サイズごと第１の装置から第２の装置に順次転送するための制御を行う通信インターフェース回路であって、
前記第２の装置に前記所定サイズの前記転送データを順次転送している間、前記順次転送することを一時停止可能にするとともに、
前記一時停止した場合に前記一時停止が解除されたとき、前記一時停止したときからの続きとなる前記転送データから前記順次転送することを再開するための制御手段、
を備えたことを特徴とする通信インターフェース回路。
【請求項２】
前記第２の装置は、
前記第１の装置から転送された前記転送データを一時的に記憶しておく記憶手段と、
前記記憶しておいた転送データのサイズが所定量に達したとき、前記所定量に達したことを通知する通知信号を送信する手段と、を備えており、
前記制御手段は、
前記第２の装置から前記通知信号を受信したとき、前記一時停止を行い、
前記一時停止を行った後、前記通知信号による前記通知が行われなくなったとき前記再開を行う、
よう制御することを特徴とする請求項１に記載の通信インターフェース回路。
【請求項３】
前記通信インターフェース回路は、
前記転送データを転送するためのクロック信号を生成するとともに、前記クロック信号を前記第２の装置へ送信するクロック生成回路を備え、
前記制御手段は、
前記第２の装置から前記通知信号を受信したとき、前記クロック生成回路における前記クロック信号の生成を禁止し、
前記一時停止を行った後、前記通知信号による前記通知が行われなくなったとき、前記禁止を解除する、
よう制御することを特徴とする請求項２に記載の通信インターフェース回路。
【請求項４】
前記通信インターフェース回路は、
前記所定サイズの転送データを格納するとともに、当該格納した転送データを前記第２の装置に転送を行うシフトレジスタを備え、
前記制御手段は、
前記シフトレジスタへの前記所定サイズの転送データが格納されたとき、前記クロック生成回路における前記クロック信号の生成を開始し、
前記シフトレジスタから前記所定サイズの転送データの転送が完了したとき、前記クロック生成回路における前記クロック信号の生成を禁止する、
よう制御することを特徴とする請求項３に記載の通信インターフェース回路。
【請求項５】
前記通信インターフェース回路は、
前記所定サイズの転送データを格納するとともに、前記格納した転送データを前記第２の装置に転送を行うシフトレジスタを備え、
前記制御手段は、
前記第２の装置から前記通知信号を受信したとき、前記シフトレジスタへの前記所定サイズの転送データの格納を禁止する、
よう制御することを特徴とする請求項２に記載の通信インターフェース回路。
【請求項６】
前記制御手段は、
前記シフトレジスタから転送された前記転送データのサイズを検出する手段と、
前記転送データのサイズを前記第２の装置へ通知する手段と、
を備えることを特徴とする請求項４又は５に記載の通信インターフェース回路。
【請求項７】
前記通信インターフェース回路は、シリアルインターフェース回路とすることを特徴とする請求項１乃至６のいずれかに記載の通信インターフェース回路。
【請求項８】
前記通信インターフェース回路は、パラレルインターフェース回路とすることを特徴とする請求項１乃至６のいずれかに記載の通信インターフェース回路。
【請求項９】
前記通信インターフェース回路は、前記第１の装置に備わっていることを特徴とする請求項１乃至８のいずれかに記載の通信インターフェース回路。
【請求項１０】
前記通信インターフェース回路は、前記第２の装置に備わっていることを特徴とする請求項１乃至８のいずれかに記載の通信インターフェース回路。
【請求項１１】
請求項１乃至１０のいずれかに記載の前記通信インターフェース回路を備えたことを特徴とするマイクロコンピュータ。
【請求項１２】
転送データを所定サイズごと第１の装置から第２の装置に順次転送するための制御を行う通信インターフェース回路の制御方法であって、
前記第２の装置に前記所定サイズの前記転送データを順次転送している間、前記順次転送することを一時停止し、
前記一時停止が解除されたとき、前記一時停止したときからの続きとなる前記転送データから前記順次転送することを再開する、
ことを特徴とする通信インターフェース回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信頼性を向上させた通信インターフェース回路およびその制御方法、マイクロコンピュータに関する。
【背景技術】
【０００２】
マイクロコンピュータ等の装置では、転送データの転送先となる受信側装置との間の通信を制御する通信インターフェース回路が用いられている。この通信インターフェース回路には、例えば、1バイトなどのデータをシリアル・データに変換して順次転送するためのシリアルインターフェース回路や、複数ビットのパラレル・データを順次転送するためのパラレルインターフェース回路がある（例えば、以下に示す特許文献１参照）。
【特許文献１】特開平１０−２８３０８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、通信インターフェース回路は、受信側装置が備える転送データを一時的に格納しておく受信データバッファにおいて、格納した転送データ量が所定量に達する等の理由で、転送データを順次転送している最中に一時停止する仕組みが求められる。
【０００４】
また、通信インターフェース回路は、転送データを順次転送することを一時停止した後、受信データバッファに格納されたデータがＲＡＭ等に移されて再び受信の準備が整った際に、重複した転送データを転送することのないように、一時停止したときからの続きとなるデータから順次転送することを再開する仕組みもまた求められる。
【０００５】
なお、従来の通信インターフェース回路では、転送に要する時間が増大化することの兼ね合いで前述した仕組みを実現するのが困難であって、転送を停止した場合、転送開始時からの転送データが再び受信側装置に順次転送されてしまい、このため、誤動作を引き起こす可能性があった。
【０００６】
本発明は、前述した事情に鑑みてなされたものであり、信頼性を向上させた通信インターフェース回路およびその制御方法、ならびにマイクロコンピュータを提供することを目的とする。
【課題を解決するための手段】
【０００７】
前述した課題を解決するための主たる本発明は、転送データを所定サイズごと第１の装置から第２の装置に順次転送するための制御を行う通信インターフェース回路であって、前記第２の装置に前記所定サイズの前記転送データを順次転送している間、前記順次転送することを一時停止可能にするとともに、前記一時停止した場合に前記一時停止が解除されたとき、前記一時停止したときからの続きとなる前記転送データから前記順次転送することを再開するための制御手段、を備えることとする。
【０００８】
このように、通信インターフェース回路は、第１の装置から第２の装置への順次転送を必要に応じて一時停止可能にするとともに、この一時停止した状態が解除されたとき、一時停止したときからの続きとなる転送データから順次転送することを再開できる。よって、第２の装置は、第１の装置から重複した転送データが転送されずに済み、その結果、誤動作を回避できる。また、重複した転送データが転送されない分、第１の装置と第２の装置との間のトラフィック量は低減されて、効率のよい転送を行うことができる。
【発明の効果】
【０００９】
本発明によれば、信頼性を向上させた通信インターフェース回路およびその制御方法、ならびにマイクロコンピュータを提供することができる。
【発明を実施するための最良の形態】
【００１０】
＝＝＝  通信システムの構成  ＝＝＝
図１は、本発明に係る通信システムの構成を示すブロック図である。  
本発明に係る通信システムでは、送信側装置（『第１の装置』）１００と、受信側装置（『第２の装置』）２００とが、データバスやコマンドバスなどを介して相互に通信可能に接続されている。
【００１１】
送信側装置１００は、マイクロコンピュータなどの集積回路である。また、送信側装置１００には、装置全体の制御を司るＣＰＵ３００と内部データバス４００を介して通信インターフェース回路５００が接続される。送信側装置１００は、通信インターフェース回路５００を介して、所定サイズ（一又は複数バイトなど）の転送データＤＡＴと、受信側装置２００のシステムクロックとして用いられるクロック信号ＣＬＫと、を同期を合わせて受信側装置２００に転送を行う。
【００１２】
通信インターフェース回路５００は、送信側装置１００と受信側装置２００との間のデータ通信を制御するための回路である。通信インターフェース回路５００は、送信側装置１００に備えるものとしているが、勿論、受信側装置２００が備えるようにしてもよい。通信インターフェース回路５００は、例えば、1バイトなどの転送データをシリアル・データに変換して転送するためのシリアルインターフェース回路（ＲＳ２３２Ｃ、ＵＳＢ、ＩＥＥＥ１３９４など）や、転送データを複数ビット同時に転送するためのパラレルインターフェース回路（セントロニクス・インターフェース、ＳＣＳＩ、ＩＤＥなど）を採用することができる。なお、以下では、通信インターフェース回路５００は、シリアルインターフェース回路として説明する。
【００１３】
受信側装置２００は、マイクロコンピュータなどの集積回路であり、送信側装置１００から転送される転送データの内容に応じた様々な処理を行う。ここで、本発明に係る通信システムが例えば音声処理システムである場合、受信側装置２００は例えばＭＰ３デコーダーとなる。本発明に係る通信システムは、勿論、前述した音声処理システムに限定されるものではなく、画像処理システムやデジタル放送送受信システムなどの様々な分野のシステムに採用できる。
【００１４】
また、受信側装置２００は、送信側装置１００の通信インターフェース回路５００から転送された転送データＤＡＴを一時的に格納する受信データバッファ２１０を備える。さらに、受信側装置２００は、受信データバッファ２１０に格納された転送データＤＡＴのサイズが所定量に達したとき、その旨を通知するＷＡＩＴ信号"（『通知信号』）"を送信する制御手段（不図示）を備える。
【００１５】
なお、ＷＡＩＴ信号のレベルは、例えば、受信データバッファ２１０に格納された転送データＤＡＴのサイズが所定量に達したとき"１"に設定される。また、受信データバッファ２１０に格納された転送データＤＡＴがＲＡＭ（不図示）等に移されて、再び、受信データバッファ２１０が空き状態となったとき（所定量に達した状態が解消されたとき）、ＷＡＩＴ信号のレベルは"１"から"０"に設定される。
【００１６】
＝＝＝  通信インターフェース回路の構成  ＝＝＝
送信側装置１００が備える通信インターフェース回路５００の構成について説明する。通信インターフェース回路５００は、ＲＡＭ５１０、シフトレジスタ５２０、ＥＭＰＴＹ検出回路５３０、制御回路（『制御手段』）５４０、クロック生成回路５５０、データ転送量設定レジスタ５６０、カウンタ（『転送データのサイズを検出する手段』）５７０、比較器５８０、を備える。
【００１７】
ＲＡＭ５１０は、ＣＰＵ３００から内部データバス４００を介して受信した転送データＤＡＴを一時的に記憶する、いわゆる送信バッファとして機能する。  
シフトレジスタ５２０は、ＲＡＭ５１０に記憶されている転送データＤＡＴのうち、一回あたりの転送シーケンスにて転送を行う所定サイズ分（一又は複数バイトなど）を、一時的に格納する。以下、所定サイズ分の転送データＤＡＴをシフトレジスタ５２０に格納することを「データロード」と称する。  
また、シフトレジスタ５２０は、クロック生成回路５５０から供給されたクロック信号ＣＬＫに基づいて、その格納された所定サイズの転送データＤＡＴを1ビットずつシフトする。このシフト動作によって、受信側装置２００への転送データＤＡＴの転送が行われる。
【００１８】
ＥＭＰＴＹ検出回路５３０は、シフトレジスタ５２０に転送データＤＡＴが格納されているか否かを検出する回路である。このＥＭＰＴＹ検出回路５３０の仕組みとしては、例えば、制御レジスタとしてＥＭＰＴＹフラグ５３１を備えるとともに、カウンタ５７０内の全ビットが、オール"０"若しくはオール"１"であるか否かを検出する論理回路によって実現できる。  
ＥＭＰＴＹフラグ５３１の値については、ＲＡＭ５１０からシフトレジスタ５２０へのデータロードが完了したとき、シフトレジスタ５２０に転送データＤＡＴが格納されていることを示す"０"に設定される。また、シフトレジスタ５２０に格納されている転送データＤＡＴが全て受信側装置２００に転送されたとき、シフトレジスタ５２０に転送データＤＡＴが格納されていないことを示す"１"に設定される。
【００１９】
制御回路５４０は、制御レジスタとして、ＲＵＮフラグ５４１、ＳＴＯＰフラグ５４２、ＥＮＤフラグ５４３、を備える。制御回路５４０は、クロック生成回路５５０に対して、ＲＵＮフラグ５４１の値が"１"且つＥＭＰＴＹフラグ５３１の値が"０"の時にクロック信号ＣＬＫの生成を許可するクロック生成許可信号を送信する。この結果、クロック生成回路５５０では、このクロック生成許可信号に基づいて、クロック信号ＣＬＫを生成するか否かが制御されることになる。また、制御回路５４０は、ＳＴＯＰフラグ５４２の値が"１"の時に、ＲＡＭ５１０からシフトレジスタ５２０へのデータロードを禁止するように制御を行う。
【００２０】
ＲＵＮフラグ５４１の値については、シフトレジスタ５２０からの転送データＤＡＴの転送が開始されてから、ＲＡＭ５１０に記憶しておいた全ての転送データの転送が完了するまでの間は"１"に設定され、それ以外の場合は"０"に設定される。  
ＳＴＯＰフラグ５４２の値については、受信側装置２００から"１"のレベルのＷＡＩＴ信号を受信したとき"１"に設定され、その後、ＷＡＩＴ信号のレベルが"１"から"０に切り替わったとき "０"に設定される。  
ＥＮＤフラグ５４３の値については、ＲＡＭ５１０に記憶しておいた全ての転送データの転送が完了したとき"１"に設定される。なお、その後、"１"がリセットされて、ＥＮＤフラグ５４３の値は"０"に設定される。
【００２１】
クロック生成回路５５０は、制御回路５４０から供給されたクロック生成許可信号に基づいて、転送データＤＡＴと同期を合わせて転送を行うクロック信号ＣＬＫを生成する。なお、このクロック信号ＣＬＫは、シフトレジスタ５２０に供給されてそのシフト動作の際に用いられるとともに、カウンタ５７０に供給されてそのカウント動作の際に用いられる。
【００２２】
データ転送量設定レジスタ５６０は、受信側装置２００に対して転送を行うデータ転送量を設定するレジスタである。すなわち、データ転送量設定レジスタ５６０には、ＲＡＭ５１０に記憶しておいた転送データＤＡＴのサイズと同じ値が設定される。
【００２３】
カウンタ５７０は、クロック生成回路５５０から供給されたクロック信号ＣＬＫに基づいて、シフトレジスタ５２０から受信側装置２００への転送が完了した転送データＤＡＴのサイズ（以下、転送済みデータサイズと称する。）をカウントする回路である。すなわち、クロック信号ＣＬＫは、シフトレジスタ５２０から転送データＤＡＴの１ビット分が転送されるタイミングと同期を合わせて生成されるため、前述したカウント動作を可能としている。
【００２４】
比較器５８０は、データ転送量設定レジスタ５６０に設定されたデータ転送量と、カウンタ５７０においてカウントされた転送済みデータサイズと、を比較する。そして、この比較が一致したとき、その旨を示す一致信号を制御回路５４０に送信する。制御回路５４０は、この一致信号によって、シフトレジスタ５２０からＲＡＭ５１０に記憶しておいた全ての転送データの転送が完了したことを検出できる。
【００２５】
＝＝＝  通信インターフェース回路の動作  ＝＝＝
＜通常動作＞
通信インターフェース回路５００の通常動作について、図２のフローチャートに基づいて説明する。
【００２６】
まず、ＣＰＵ３００から内部データバス４００を介してＲＡＭ５１０に転送データＤＡＴが一時的に記憶されるとともに（Ｓ２００）、データ転送量設定レジスタ５６０にデータ転送量が設定される（Ｓ２０１）。この時点で、制御回路５４０は、ＲＡＭ５１０に記憶されている転送データＤＡＴを所定サイズ（１バイトなど）ずつシフトレジスタ５２０にデータロードを行う制御を開始するため、ＲＵＮフラグ５４１の値を"１"に設定する（Ｓ２０２）。
【００２７】
そして、ＲＡＭ５１０からシフトレジスタ５２０へ所定サイズ分のデータロードが完了したとき、シフトレジスタ５２０に所定サイズ分の転送データＤＡＴが格納されたことになるので、ＥＭＰＴＹ検出回路５３０は、ＥＭＰＴＹフラグ５３１の値を"０"に設定する（Ｓ２０３）。この時点で、ＲＵＮフラグ５４１の値が"１"且つＥＭＰＴＹフラグ５３１の値が"０"となるため、制御回路５４０は、シフトレジスタ５２０に格納された転送データＤＡＴの所定サイズ分、クロック生成回路５５０においてクロック信号ＣＬＫが生成されるように制御を行う（Ｓ２０４）。
【００２８】
シフトレジスタ５２０は、クロック生成回路５５０から供給されたクロック信号ＣＬＫに基づいて、１ビット分の転送データＤＡＴをシフト動作によって受信側装置２００に転送する（Ｓ２０５）。このシフト動作は、シフトレジスタ５２０内の全ての転送データＤＡＴが、受信側装置２００に転送されるまで繰り返し行われる（Ｓ２０６：ＮＯ）。なお、このとき、カウンタ５７０は、シフトレジスタ５２０から転送された転送済みデータサイズをカウントしているものとする。
【００２９】
そして、シフトレジスタ５２０内の全ての転送データＤＡＴが受信側装置２００に転送されたとき（Ｓ２０６：ＹＥＳ）、ＥＭＰＴＹ検出回路５３０は、ＥＭＰＴＹフラグ５３１の値を"１"に設定する（Ｓ２０７）。このとき、ＲＵＮフラグ５４１の値が"１"且つＥＭＰＴＹフラグ５３１の値が"０"の条件に該当しなくなるので、制御回路５４０は、クロック生成回路５５０に対して、クロック信号ＣＬＫの生成を停止するように制御を行う（Ｓ２０７）。
【００３０】
ここで、ＲＡＭ５１０につぎに転送を行う所定サイズ分の転送データＤＡＴが記憶されていれば、比較器５８０において、データ転送量設定レジスタ５６０に設定されたデータ転送量とカウンタ５７０から受信したカウント値とが一致するまで、Ｓ２０３〜Ｓ２０７の処理を繰り返し行う（Ｓ２０８：ＮＯ）。
【００３１】
そして、データ転送量設定レジスタ５６０に設定されたデータ転送量とカウンタ５７０から受信したカウント値とが一致したとき（Ｓ２０８：ＹＥＳ）、制御回路５４０は、ＲＵＮフラグ５４１の値を"０"、ＥＮＤフラグ５４３の値を"１"に設定する。
【００３２】
＜一時停止及び再開＞
通信インターフェース回路５００は、受信側装置２００からのＷＡＩＴ信号の受信を割り込み要因として設定しており、その割り込み発生に応じて転送データＤＡＴの順次転送についての一時停止ならびに再開する処理を行う。すなわち、通信インターフェース回路５００は、順次転送の一時停止ならびに再開の処理について、図２に示した通常処理とは非同期な処理として取り扱う。
【００３３】
＜＜一時停止＞＞
通信インターフェース回路５００が、転送データＤＡＴの順次転送を一時停止する動作について、図３のフローチャートに基づいて説明する。
【００３４】
まず、受信側装置２００は、受信データバッファ２１０に格納された転送データＤＡＴのサイズが所定量に達したとき、"１"のレベルを示すＷＡＩＴ信号を送信側装置１００に送信する。通信インターフェース回路５００は、受信側装置２００から送信されたＷＡＩＴ信号を内部データバス４００を介して受信する（Ｓ３００）。ここで、送信側装置１００が"１"のレベルを示すＷＡＩＴ信号を受信したことを受けて、制御回路５４０は、ＳＴＯＰフラグ５４２の値を"１"に設定する（Ｓ３０１）。
【００３５】
制御回路５４０は、ＳＴＯＰフラグ５４２が"１"に設定されたことを受けて、ＲＡＭ５１０からシフトレジスタ５２０へのつぎのデータロードが行われないように禁止する（Ｓ３０２）。その後、現在シフトレジスタ５２０内に格納されている転送データＤＡＴの全ビットが転送を完了することになるので、ＥＭＰＴＹフラグ５３１の値は"１"に設定される（Ｓ３０３）。このＥＭＰＴＹフラグ５３１の値"１"は、つぎのデータロードが行われるまで保持される。  
制御回路５４０は、ＥＭＰＴＹフラグ５３１の値が"１"に設定されたことを受けて、クロック生成許可信号に基づいて、クロック生成回路５５０におけるクロック信号ＣＬＫの生成を禁止する（Ｓ３０４）。
【００３６】
＜＜再開＞＞
通信インターフェース回路５００が、転送データＤＡＴの順次転送を再開する動作について、図３のフローチャートに基づいて説明する。
【００３７】
通信インターフェース回路５００は、受信側装置２００から受信したＷＡＩＴ信号が"１"から"０"に切り替わるまでの間、現状の動作状態を維持し続ける（Ｓ３０５：ＮＯ）。すなわち、ＲＡＭ５１０からシフトレジスタ５２０へのデータロードは禁止されており、クロック信号ＣＬＫは停止した状態にある。  
通信インターフェース回路５００は、受信側装置２００から受信したＷＡＩＴ信号が"０"を示したとき（Ｓ３０５：ＹＥＳ）、制御回路５４０を介して、ＳＴＯＰフラグ５４２の値を"０"に設定する（Ｓ３０６）。この結果、ＲＡＭ５１０からシフトレジスタ５２０へのデータロードの禁止が解除される。  
その後、制御回路５４０は、ＲＡＭ５１０からつぎに転送を行う所定サイズ分の転送データＤＡＴをシフトレジスタ５２０にデータロードする（Ｓ３０７）。この結果、ＥＭＰＴＹフラグ５３１の値が"０"に設定され、クロック生成回路５５０におけるクロック信号ＣＬＫの生成の禁止が解除される（Ｓ３０８）。
【００３８】
＝＝＝  データ転送の具体例  ＝＝＝
図４に示すタイミングチャートに基づいて、通信インターフェース回路５００で行われる具体的な動作について説明する。  
なお、以下の説明において、通信インターフェース回路５００が、ＲＡＭ５１０に予め記憶しておいたデータＡ、データＢ、データＣについて順次転送を行うものとする。また、データＣの転送が行われる前に、受信データバッファ２１０に格納された転送データＤＡＴのサイズが所定量に達し、受信側装置２００から送信側装置１００に"１"のレベルを示すＷＡＩＴ信号を送信したものとする。
【００３９】
まず、シフトレジスタ５２０には転送データＤＡＴが格納されていないため、ＥＭＰＴＹフラグ５３１の値は"１"に保持されている（図４（Ｆ）参照）。そして、ＲＵＮフラグ５４１の値が"１"に設定されて（図４（Ｅ）参照）、ＲＡＭ５１０からシフトレジスタ５２０へデータＡについてのデータロードが開始する。
【００４０】
データＡについてのデータロードが完了後、ＥＭＰＴＹフラグ５３１の値は"０"に設定される。また、受信側装置２００にデータＡ及びクロック信号ＣＬＫの転送が行われた後（図４（Ａ）及び（Ｂ）参照）、ＲＡＭ５１０からシフトレジスタ５２０につぎに転送を行うデータＢがデータロードされるまでの間、ＥＭＰＴＹフラグ５３１の値は"１"に設定される（図４（Ｆ）参照）。そして、受信側装置２００に対して、データＢ及びクロック信号ＣＬＫの転送が行われる（図４（Ａ）及び（Ｂ）参照）。データＢの転送が完了した後は、ＥＭＰＴＹフラグ５３１の値は"１"に設定される（図４（Ｆ）参照）。
【００４１】
一方、受信側装置２００は、通信インターフェース回路５００から受信したデータＡ及びデータＢを受信データバッファ２１０に格納することによって、受信データバッファ２１０に格納された転送データＤＡＴのサイズが所定量に達した状態となる。この結果、受信側装置２００は、"１"のレベルを示すＷＡＩＴ信号を送信側装置１００に対して送信する（図４（Ｃ）参照）。
【００４２】
通信インターフェース回路５００は、受信側装置２００から受信したＷＡＩＴ信号のレベルが"１"を示すため、制御回路５４０を介して、ＳＴＯＰフラグ５４２の値を"１"に設定する（図４（Ｄ）参照）。この結果、ＲＡＭ５１０からシフトレジスタ５２０へのデータロードが禁止されるので、データＢの転送が完了した後も、ＥＭＰＴＹフラグ５３１の値は"１"に保持される（図４（Ｆ）参照）。また、クロック信号ＣＬＫの生成が禁止されて、クロック信号ＣＬＫも停止状態を維持する（図４（Ｂ）参照）。
【００４３】
その後、受信側装置２００は、受信データバッファ２１０に格納されたデータがＲＡＭ（不図示）等に移されて再び受信の準備が整った際に、受信データバッファ２１０が空き状態となり、"０"のレベルを示すＷＡＩＴ信号を送信側装置１００に送信する（図４（Ｃ）参照）。この結果、通信インターフェース回路５００は、受信側装置２００から受信したＷＡＩＴ信号のレベルが"１"から"０"に切り替わったため、制御回路５４０を介して、ＳＴＯＰフラグ５４２の値を"０"に設定する（図４（Ｄ）参照）。
【００４４】
通信インターフェース回路５００は、ＳＴＯＰフラグ５４２の値が"１"から"０"に切り替わったことを受けて、ＲＡＭ５１０からシフトレジスタ５２０へのデータロードの禁止ならびにクロック信号ＣＬＫの生成の禁止を解除し、データＢの続きとなるデータＣの転送を再開する。
【００４５】
そこで、ＲＡＭ５１０からシフトレジスタ５２０にデータＣがデータロードされて、ＥＭＰＴＹフラグ５３１の値が"０"に設定される（図４（Ｆ）参照）。データＣについてのデータロードが完了した後には、受信側装置２００にデータＣ及びクロック信号ＣＬＫの転送が行われる（図４（Ａ）及び（Ｂ）参照）。そして、データＡ、データＢ、データＣ全ての転送が完了したことを受けて、ＲＵＮフラグ５４１の値は"０"（図４（Ｅ）参照）、ＥＮＤフラグ５４３の値は"１"（図４（Ｇ）参照）、ＥＭＰＴＹフラグ５３１の値は"１"（図４（Ｆ）参照）に設定される。
【００４６】
＝＝＝  効果  ＝＝＝
通信インターフェース回路５００は、送信側装置１００から受信側装置２００への順次転送を必要に応じて一時停止可能にするとともに、転送を一時停止した状態が解除されたとき、一時停止したときからの続きとなる転送データＤＡＴからその順次転送を再開することができる。よって、受信側装置２００は、送信側装置１００から重複した転送データが転送されずに済むので、その結果、誤動作を回避できる。また、重複した転送データが転送されない分、送信側装置１００と受信側装置２００との間のトラフィック量を低減でき、効率のよい転送を行えるようになる。
【００４７】
通信インターフェース回路５００は、受信側装置２００からＷＡＩＴ信号を受信したとき、転送データＤＡＴの順次転送を一時停止する。このため、受信側装置２００では、受信データバッファ２１０に格納している転送データＤＡＴを上書きによって消去してしまう等の誤動作を回避できる。さらに、本発明に係る通信インターフェース回路５００によれば、ＷＡＩＴ信号に基づいて、受信データバッファ２１０に格納された転送データＤＡＴのサイズが所定量に達する状態が解消されたことを検出したとき、一時停止前からの続きとなる当該順次転送を再開できる。よって、受信データバッファ２１０には、重複した転送データＤＡＴが書き込まれずに済み、その結果、誤動作を回避できる。さらには、送信側装置１００から転送される転送データＤＡＴのサイズに応じて、受信データバッファ２１０を別途取り替える必要がなくなる。
【００４８】
通信インターフェース回路５００は、転送データＤＡＴの順次転送を一時停止した際、クロック生成回路５５０におけるクロック信号ＣＬＫの生成を禁止する。このため、受信側装置２００では、余分なクロック信号ＣＬＫを受信してしまう状況を回避できるので、その結果、誤動作を回避できる。
【００４９】
通信インターフェース回路５００は、シフトレジスタ５２０へのデータロードの完了を契機としてクロック信号ＣＬＫの生成を開始し、シフトレジスタ５２０からの転送データＤＡＴの転送完了を契機としてクロック信号ＣＬＫの生成を禁止するように制御を行う。よって、受信側装置２００では、送信側装置１００から転送データＤＡＴのサイズに応じた必要な分だけのクロック信号ＣＬＫを受信できる。すなわち、受信側装置２００は、余分なクロック信号を受け取らなくて済むので、その結果、誤動作を回避できる。
【００５０】
通信インターフェース回路５００は、ＷＡＩＴ信号に基づいて、受信側装置２００への転送データＤＡＴの順次転送が一時停止している間、ＲＡＭ５１０からシフトレジスタ５２０へのデータロードを確実に禁止する。この結果、シフトレジスタ５２０において誤ったシフト動作が起こった場合、受信側装置２００への順次転送が一時停止している間は、ＲＡＭ５１０からシフトレジスタ５２０に新たな転送データＤＡＴがデータロードされなくなる。この結果、受信側装置２００では、余分な転送データＤＡＴの受信を回避できる。
【００５１】
以上、本発明に係る通信インターフェース回路５００およびその制御方法、ならびに送信側装置（マイクロコンピュータ）１００によれば、転送データＤＡＴの順次転送時に受信側装置２００での誤動作を回避でき、送信側装置１００及び受信側装置２００との間で転送データＤＡＴを順次転送を行う際の信頼性を向上することができる。
【００５２】
＝＝＝  その他の実施形態  ＝＝＝
以上、本実施の形態について説明したが、前述した実施例は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更／改良され得るととともに、本発明にはその等価物も含まれる。
【００５３】
例えば、通信インターフェース回路５００は、カウンタ５７０にてカウントされた転送済みデータサイズを、データバス４００及びＣＰＵ３００などを介して、受信側装置２００に通知するようにしてもよい（請求項６に記載の『通知する手段』）。このことによって、受信側装置２００は、例えば、通知された転送済みデータサイズと、実際に受信した転送データＤＡＴのサイズと、を比較し、余分な転送データを受信したか否かを確認することができる。
【００５４】
また、通信インターフェース回路５００は、前述したとおり、パラレルインターフェース回路としてもよい。この場合、図１に示した通信インターフェース回路５００に対して、例えば、シフトレジスタ５２０の出力（シリアル・データ）をパラレル・データに変換するシリアル／パラレル変換回路を新たに備えた構成となる。若しくは、シフトレジスタ５２０を同時に転送を行うパラレル・データのサイズ分備えるようにしてもよい。
【００５５】
また、通信インターフェース回路５００は、受信のためのインターフェース機能を備えるようにしてもよい。この場合、通信インターフェース回路５００は、転送データＤＡＴを転送するポートに双方向バッファを備えた構成となる。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施形態に係る通信システムの構成を示すブロック図である。
【図２】本発明の実施形態に係る通信インターフェース回路の動作を説明するフローチャートである。
【図３】本発明の実施形態に係る通信インターフェース回路の動作を説明するフローチャートである。
【図４】本発明の実施形態に係る通信インターフェース回路の動作を説明するタイミングチャートである。
【符号の説明】
【００５７】
１００  送信側装置
２００  受信側装置
２１０  受信データバッファ
３００  ＣＰＵ
４００  データバス
５００  通信インターフェース回路
５１０  ＲＡＭ
５２０  シフトレジスタ
５３０  ＥＭＰＴＹ検出回路
５３１  ＥＭＰＴＹフラグ
５４０  制御回路
５４１  ＲＵＮフラグ
５４２  ＳＴＯＰフラグ
５４３  ＥＮＤフラグ
５５０  クロック生成回路
５６０  データ転送量設定レジスタ
５７０  カウンタ
５８０  比較器
【図１】
2005107694.tif 000003
【図２】
2005107694.tif 000004
【図３】
2005107694.tif 000005
【図４】
2005107694.tif 000006