(57)【要約】【課題】多量な伝送データの高速処理に対してＣＰＵ間の伝送効率向上と、構成回路およびプログラムの統一化と複雑化の回避とを図る。【解決手段】ハンドシェイク通信回路１０は、ＣＰＵインタフェース１１，１２で二つのＣＰＵ間で送受信されるデータの伝送路を上り下りの二系統それぞれに分離し、上り下りの二系統それぞれにあって、送信側から受けるデータを書込み、かつ受信側からの要求でデータを読出しするデータバッファメモリ１３，１４に加え、受けるデータの有効データ長を送信側から受けて書込み、受信側からの要求で書き込まれた有効データ長を読み出すデータ長設定レジスタ１５，１６を更に備え、初期化状態で書込み許可フラグを立て、書込み完了の際にはこれを外部に通知すると共に書込み禁止フラグを立て、読出し完了の際にはこれを外部に通知すると共に書込み許可フラグを立てる完了フラグ生成回路１７，１８を備える。【選択図】図１
2005340995.tif 000002
【特許請求の範囲】
【請求項１】
データの送受信に際して二つのプロセッサ間にハンドシェイク通信回路を備えてデータ伝送の制御をソフトウェアで行うデータフロー制御方式において、
前記ハンドシェイク通信回路は、二つのプロセッサ間で送受信されるデータの伝送路を上り下りの二系統それぞれに分離し、データを一時蓄積する所定容量のメモリと、送信側から受けるデータの有効データ長を前記メモリに受付け書込みする手段と、有効データ長に続いて送信側から受ける前記データ長分のデータを前記メモリに受付け書込みする手段と、前記有効データ長と書込みデータ量とを比較して一致した際に書込み完了を通知すると共に書込み禁止フラグを立てる手段と、初期化して前記メモリを空にした際に書込み許可フラグを立てる手段と、受信側から指定され、書き込まれた有効データ長およびそのデータ長分のデータを読出しする手段と、前記有効データ長と読出ししたデータ量とを比較して一致した際に読出し完了を通知すると共に書込み許可フラグを立てる手段とを備え、
前記プロセッサは、送信データが発生した際に、自己の送信手順が終了し、前記ハンドシェイク通信回路の送信系統の書込み許可フラグを確認してから、送信するデータの有効データ長、続いてそのデータそれぞれを前記ハンドシェイク通信回路の前記メモリに書込み要求する手段と、前記ハンドシェイク通信回路の受信系統から書込み完了通知を受けた際に他の処理に優先して前記ハンドシェイク通信回路の前記メモリに読出し要求し、受信するデータの有効データ長、続いてそのデータそれぞれを読出しする手段とを備える
ことを特徴とするデータフロー制御方式。
【請求項２】
主プロセッサに複数のサブプロセッサを接続し、主プロセッサとサブプロセッサ間でデータを送受信する際、二つのプロセッサ間でサブプロセッサと対応するハンドシェイク通信回路を備えてデータ伝送の制御をソフトウェアで行うデータフロー制御方式において、
前記ハンドシェイク通信回路は、プロセッサ間で送受信されるデータの伝送路を上り下りの二系統それぞれに分離し、データを一時蓄積する所定容量のメモリと、送信側から受けるデータの有効データ長を前記メモリに受付け書込みする手段と、有効データ長に続いて送信側から受ける前記データ長分のデータを前記メモリに受付け書込みする手段と、前記有効データ長と書込みデータ量とを比較して一致した際に書込み完了を通知すると共に書込み禁止フラグを立てる手段と、初期化して前記メモリを空にした際に書込み許可フラグを立てる手段と、受信側から指定され、書き込まれた有効データ長およびデータ長分のデータそれぞれを読出しする手段と、前記有効データ長と読出しデータ量とを比較して一致した際に読出し完了を通知すると共に書込み許可フラグを立てる手段とを備え、
前記主プロセッサは、送信データが発生した際に、自己の送信手順が終了し、前記ハンドシェイク通信回路の送信系統の書込み許可フラグを確認してから、送信するデータの有効データ長、続いてそのデータそれぞれを前記ハンドシェイク通信回路の前記メモリに書込み要求する手段と、前記ハンドシェイク通信回路の受信系統から書込み完了通知を受けた際に前記ハンドシェイク通信回路の前記メモリに読出し要求し、受信するデータの有効データ長、続いてそのデータそれぞれを読出しする手段とを備え、
前記サブプロセッサは、送信データが発生した際に、自己の送信手順が終了し、前記ハンドシェイク通信回路の送信系統の書込み許可フラグを確認してから、送信するデータの有効データ長、続いてそのデータそれぞれを前記ハンドシェイク通信回路の前記メモリに書込み要求する手段と、前記ハンドシェイク通信回路の受信系統から書込み完了通知を受けた際に他の処理に割込みして前記ハンドシェイク通信回路の前記メモリに読出し要求し、受信するデータの有効データ長、続いてそのデータそれぞれを読出しする手段とを備える
ことを特徴とするデータフロー制御方式。
【請求項３】
請求項２に記載のデータフロー制御方式において、前記主プロセッサは、各サブプロセッサに対して定期的な通信間隔でアクセスしデータの送受信を繰り返す手段を備え、前記ハンドシェイク通信回路に設定する前記有効データ長は前記通信間隔と前記ハンドシェイク通信回路が備える前記メモリの容量と前記ハンドシェイク通信回路を備えるオプション回路のデータ速度とに基づいて設定することを特徴とするデータフロー制御方式。
【請求項４】
データの送受信に際して二つのプロセッサ間に備えられ、データ伝送の制御をソフトウェアで行うデータフロー制御方式に用いられるハンドシェイク通信回路において、
二つのプロセッサ間で送受信される伝送路を上り下りの二系統それぞれに分離するインタフェースと、
上り下りの二系統それぞれにあって送信側から受けるデータを書込みする一方で、受信側からの要求で書き込まれたデータを読出しする所定容量のデータバッファメモリと、
上り下りの二系統それぞれにあって受けるデータの有効データ長を送信側から受けて書込みする一方、受信側からの要求で書き込まれた有効データ長を読み出す所定容量のデータ長設定レジスタと、
初期化して前記メモリを空にした際に書込み許可フラグを立て、前記有効データ長と書込みされたデータ量とを比較して一致した際に前記インタフェースを介して書込み完了を通知すると共に書込み禁止フラグを立てる一方、前記有効データ長と読出しされたデータ量とを比較して一致した際に前記インタフェースを介して読出し完了を通知すると共に書込み許可フラグを立てる完了フラグ生成回路と
を備えることを特徴とするハンドシェイク通信回路。
【請求項５】
請求項４に記載のハンドシェイク通信回路において、前記完了フラグ生成回路は、
前記データ長設定レジスタからそれに書込みされた有効データ長からフラグを変化させる終了アドレスを選択するアドレス選択回路と、
送信側から前記データバッファメモリに書込みされるデータのアドレスと前記アドレス選択回路で選択した終了アドレスとを引き込み比較して一致を書込み終了と検出する書込みアドレス比較回路と、
受信側で前記データバッファメモリから読出しされるデータのアドレスと前記アドレス選択回路で選択した終了アドレスとを引き込み比較して一致を読出し終了と検出する読出しアドレス比較回路と、
送信側プロセッサの書込み信号チップセレクト信号と前記書込みアドレス比較回路の書込み終了情報とを引き込み、フラグ生成タイミングを送出する書込み側信号合成回路と
受信側プロセッサの読出し信号チップセレクト信号と前記読出しアドレス比較回路の読出し終了情報とを引き込み、フラグ生成タイミングを送出する読出し側信号合成回路と
前記書込み側信号合成回路からフラグ生成タイミングを受けた際、または前記読出し側信号合成回路からフラグ生成タイミングを受けた際に、フラグ生成用のクロック信号を選択するクロック選択回路と、
前記フラグ生成クロック選択回路で選択されたクロック信号を受けてフラグ生成用の駆動信号を送出するＴフリップフロップ回路と、
初期状態で書込み許可フラグを立て、前記Ｔフリップフロップ回路から駆動信号を受けた際に書込み許可フラグを書込み禁止フラグに切替えて受信側プロセッサに書込み完了フラグの「オン」を、また書込み禁止フラグが立っている場合は書込み許可フラグに切替えて送信側プロセッサに読出し完了フラグの「オン」をそれぞれ送出する完了フラグ送出回路とを
備えることを特徴とするハンドシェイク通信回路。
【請求項６】
データの送受信に際して二つのプロセッサ間にハンドシェイク通信回路を備えてデータ伝送の制御をソフトウェアで行うデータフロー制御方法において、
前記ハンドシェイク通信回路は送信データの書込み可能状態を初期状態の書込み許可フラグで示し、
送信側プロセッサは、送信データを発生した際、前記ハンドシェイク通信回路の書込み許可フラグを確認して送信データの有効データ長を前記ハンドシェイク通信回路に書込みし、次いで、送信データを書込みし、
前記ハンドシェイク通信回路は、送信データの書込みを受け、有効データ長分の送信データの書込み終了を検知した際に、受信側プロセッサに書込み完了を通知すると共に書込み許可フラグ」を書込み禁止フラグに変換し、
前記受信側プロセッサは、書込み完了の通知を受けた際に前記ハンドシェイク通信回路にアクセスして書込みされた有効データ長を読出しし、次いで書込みされたデータを読出しし、
前記ハンドシェイク通信回路は、有効データ長分のデータの読出しを受け、有効データ長分のデータの読出し終了を検知した際に、送信側プロセッサに読取り完了を通知すると共に書込み禁止フラグを書込み許可フラグに置換する
手順を有することを特徴とするデータフロー制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの送受信に際してデバイス間でデータ送信の停止／再開などの制御をソフトウェアで行う方式、その回路、およびその方法に関し、特に、ボタン電話装置のように、主装置側およびボタン電話機側それぞれのプロセッサ間の定期的なデータ伝送をするデータフロー制御方式、その回路、およびその方法に関する。
【０００２】
フロー制御方式は、「ハンドシェイク方式」と呼ばれることもある。従って、以後、この種の「フロー制御」を「ハンドシェイク」と呼称する。
【背景技術】
【０００３】
例えば、プロセッサ間でのデータ通信で、データ転送が高速で、システムがこれに追従できない場合、システムはプロセッサに対して一時的にデータの転送の中止を通知する必要がある。このように、二つのノード間でデータを送受信する場合、受信バッファが満杯などの理由で受信データの処理が間に合わないなど、主に受信側の都合によって、データの送信速度を下げ、または停止して、データの流れ（フロー）が制御される。フロー制御の方法には、ハードウェアフロー制御とソフトウェアフロー制御の２種類がある。
【０００４】
また、従来のソフトウェアによるデータフロー制御方式としては、例えば、下記特許文献１に提案された情報受け渡し仲介装置に採用された技術がある。
【０００５】
この技術では、ハンドシェイク通信回路は、二つの情報処理系のそれぞれに割り当てられる二つのポートと、それらのポート間に並列的に介在される二つの共有メモリと、制御部とを備える。制御部は、それらポートにおけるそれぞれの側からの「アクセス開始読出し」に応答して、同一共有メモリに対する両ポートの側からの同時アクセスを回避しつつ、複数の共有メモリの一つを「アクセス開始読出し」のあった側のポートに接続する。このような構成により、ハンドシェイク通信回路は、両ポートから同時にアクセス要求が到来した場合にも、それぞれのポートに割り当てられるべき共有メモリを相違させることにより、アクセス待ち時間の生ずる確率を低減している。
【０００６】
また、この特許文献１では、制御部が各共有メモリ毎に設けられる場合を提案している。この場合における制御部は、この共有メモリのアクセス権がいずれのポートの側にあるかを示すメモリ別の「アクセス権フラグ」を有し、いずれかのポートの側から「アクセス開始読出し」が到来すると、その時点で「アクセス権フラグ」の内容が当該ポートの側にある共有メモリの一つにアクセス権を獲得して、「アクセス開始読出し」が到来したポートを接続すると共にポート先のプロセッサから読み出されたデータが送られ、書込みされる。次いで、共有メモリに書き込まれたデータは、他方のポート先のプロセッサに読み出されるので、読み出されたデータの書込みが終了した通知としてそのプロセッサから「アクセス終了書込み」が到来するのを待つ。「アクセス終了書込み」が到来した際には、このポートは共有メモリから切り離され、かつ「アクセス権フラグ」の内容が反対側ポートの側に変更される。このような構成により、各共有メモリ毎に「アクセス権フラグ」を設けると共に、これを「アクセス終了書込み」が到来するのを待って反対側ポートの側に変更するようにするので、複数の共有メモリのうちでどの共有メモリにアクセス権が有るかの判断が容易となる。
【０００７】
上述したように、従来のハンドシェイク方式は、二つのプロセッサ間のバスデータでのハンドシェイク伝送にデュアルポートＲＡＭ（Random Access Memory）相当のデバイスを用いてＲＡＭのメモリ空間を別々に割り付け、または外部にフラグ回路を用いて伝送する場合が多い。更に、アクセス権フラグが、読出しからアクセス権獲得、共有メモリアクセス、および書込みまでの一連の動作を繰り返している。
【０００８】
また、図７に示されるように、例えばボタン電話装置など、主装置に備えられる主プロセッサ（以後、Ｍ側ＣＰＵと略称する）２とボタン電話機などを接続する複数のオプション回路１におけるサブプロセッサ（以後、Ｓ側ＣＰＵと略称する）３とを備える場合、各オプション回路１では主プロセッサ２とサブプロセッサ３との間にハンドシェイク通信回路１０が設けられる。
【０００９】
図８は従来のボタン電話装置におけるハンドシェイク通信回路１１０の全体構成を示すブロック図である。ハンドシェイク通信回路１１０は、Ｍ側ＣＰＵとＳ側ＣＰＵとの間に備えられる。Ｍ側ＣＰＵからＳ側ＣＰＵへのデータを下りデータ、またＳ側ＣＰＵからＭ側ＣＰＵへのデータを上りデータと呼称することとする。
【００１０】
ハンドシェイク通信回路１１０は、Ｍ側およびＳ側それぞれのＣＰＵインタフェース１１１，１１２、Ｍ側ＣＰＵとＳ側ＣＰＵとの間で送受信する下りおよび上りそれぞれのデータを一時蓄積するデータバッファメモリ１１３，１１４、およびＭ側ＣＰＵとＳ側ＣＰＵとの信号を使用してフラグを生成する下りおよび上りそれぞれの完了フラグ生成回路１１７，１１８から構成される。
【００１１】
まず、Ｍ側ＣＰＵがＭ側ＣＰＵインタフェース１１１を介して下りデータバッファメモリ１１３に送信データを書き込む。下り完了フラグ生成回路１１７は、Ｍ側ＣＰＵから下りデータを受け、下りデータバッファメモリ１１３に４バイトのデータ書き込み終了後、自動的にＳ側ＣＰＵへ割り込み信号（もしくは内部レジスタフラグ変化）を通知する。通知を受けたＳ側ＣＰＵは、Ｍ側ＣＰＵから受けた４バイトデータを下りデータバッファメモリ１１３から読み出す。
【００１２】
Ｓ側ＣＰＵからＭ側ＣＰＵへデータ送信する場合、Ｓ側ＣＰＵがＳ側ＣＰＵインタフェース１１２を介して上りデータバッファメモリ１１４に送信データを書き込む。上り完了フラグ生成回路１１８は、Ｓ側ＣＰＵから上りデータを受け、上りデータバッファメモリ１１４に４バイトのデータ書き込み終了後、自動的にＭ側ＣＰＵへ割込み信号（もしくは内部レジスタフラグ変化）を通知する。通知を受けたＭ側ＣＰＵは、Ｓ側ＣＰＵから受けた４バイトデータを上りデータバッファメモリ１１３から読み出す。
【００１３】
上記ハンドシェイク通信動作を定期的に行うことにより、Ｓ側ＣＰＵとＭ側ＣＰＵとの間でデータが送受信される。
【００１４】
ボタン電話装置における従来のプロセッサ間のハンドシェイク通信回路では、１回の通信で固定長４バイトのデータしか伝送できなかった。従って、二つのプロセッサの伝送効率が非常に悪かった。
【００１５】
上述する従来のボタン電話装置におけるハンドシェイク通信回路は、Ｍ側ＣＰＵとＳ側ＣＰＵとで４バイトより多いデータを送りたい場合、そのデータを数回に分けて送らなければならない。このため、送信時の分割されたデータに対する無駄な処理時間が発生し、更に双方のＣＰＵにおいて保留データに対する待ち時間が発生していた。その待ち時間が双方のＣＰＵの処理遅れを発生し、その分、待ちデータを一時、メモリに格納するという余分な動作を行っていた。
【００１６】
例えば、現状の制御は、十数ミリ秒に１回、定期的にＭ側ＣＰＵからＳ側ＣＰＵへ下りデータを送信し、Ｓ側ＣＰＵがＭ側ＣＰＵから下りデータを受信した後に、Ｍ側ＣＰＵへ上りデータを送っている。例えば８バイト通信を行いたい場合は、４バイトをまず送信し、十数ミリ秒後に残りの４バイトを送信していた。データ量が多くなると、データ送信が徐々に遅延し始め、通信制御上オーバーランエラーを起こす可能性があった。
【００１７】
８バイト送信するため、例えば、Ｍ側ＣＰＵから４バイトの書込み、Ｓ側ＣＰＵへ割込み通知、Ｓ側ＣＰＵで４バイトの読出し、およびＭ側ＣＰＵでＳ側ＣＰＵの受信完了フラグを確認までの一連の動作を２回連続して繰り返すことで可能になる。しかしながら、データ転送時間以外の各ＣＰＵの割込み待ち時間、フラグ確認の時間なども２倍になる。従って、プロセッサ側の仕様を変更せずに例えば６４バイトの通信データを１６回連続して送受することは、システム全体の安定した動作上、困難であった。また、一度にデータ量を多く通信しなければならない場合、別のインタフェースを組み込んで、対処していた。
【００１８】
一方、ボタン電話装置では、内線制御、外線制御等、種々のサービス動作を常に円滑に行うため、十数ミリ秒に１回のＭ側ＣＰＵとＳ側ＣＰＵとの通信が、動作上で最も安定する。従って、その十数ミリ秒の通信間隔を変更することはソフトウェアの各種サービス制御時間の割当て上、困難であった。
【００１９】
【特許文献１】特開２０００−１９４６７３号公報（図１、図２）
【発明の開示】
【発明が解決しようとする課題】
【００２０】
解決しようとする課題は、二つのプロセッサ間で通信できる一回のデータ量を固定長、例えば４バイト、でしか伝送できないので、ハンドシェイク通信回路により扱われるプロセッサ間の伝送効率が悪いことである。また、サービス種別により多量なデータ通信を必要とする場合、インタフェースの付加が必要なため、プロセッサにおけるソフトウェアが複雑化することである。
【課題を解決するための手段】
【００２１】
本発明は、ボタン電話装置のように小型化を要求されるボタン電話機側に備えられるハンドシェイク通信回路で、多量な伝送データの高速処理に対してプロセッサ間の伝送効率向上と、構成回路およびプログラムの統一化と複雑化の回避とを図ることを目的とするものである。
【００２２】
すなわち、上り下り何れのデータ伝送の際も、ハンドシェイク通信回路は、送信側からデータを受ける場合、送信側プロセッサからハンドシェイク通信回路へ一回の実質のデータ量として有効データ長の通知を受けて記録し、バッファメモリに通知量のデータが書込み蓄積された際に受信側プロセッサに書込み完了を通知し、書込み完了通知を受けた受信側プロセッサでハンドシェイク通信回路の蓄積データの読出しを開始させる。また、受信側へデータを送る場合、ハンドシェイク通信回路は、書込み完了通知を送った受信側プロセッサにより一回のデータ量の読出しと蓄積データの読出し開始とがあり、読出しが終了した際に送信側プロセッサに読出し完了を通知して次の送信を許可することを主要な特徴としている。
【００２３】
ハンドシェイク通信回路では、受信側プロセッサに書込み完了を通知した際に送信側プロセッサに書込み禁止のためのフラグ「１」を立て、送信側プロセッサに読出し完了を通知した際には送信側プロセッサに書込み許可のためのフラグ「０」を立てる。また、ハンドシェイク通信回路は、書込み完了「オン」の際には読出し完了「オフ」を、また読出し完了「オン」の際には書込み完了「オフ」を、それぞれ対応するプロセッサに通知して相手プロセッサの処理を把握させている。
【００２４】
具体的な一つのデータフロー制御方式は、データの送受信に際して二つのプロセッサ間にハンドシェイク通信回路を備えてデータ伝送の制御をソフトウェアで行うものであって、前記ハンドシェイク通信回路は、二つのプロセッサ間で送受信されるデータの伝送路を上り下りの二系統それぞれに分離し、データを一時蓄積する所定容量のメモリと、送信側から受けるデータの有効データ長を前記メモリに受付け書込みする手段と、有効データ長に続いて送信側から受ける前記データ長分のデータを前記メモリに受付け書込みする手段と、前記有効データ長と書込みデータ量とを比較して一致した際に書込み完了「オン」を通知すると共に書込み禁止フラグ「１」を立てる手段と、受信側から指定され、書き込まれた有効データ長およびデータ長分のデータを読出しする手段と、前記有効データ長と読出しデータ量とを比較して一致した際に読出し完了「オン」を通知すると共に書込み許可フラグ「０」を立てる手段と、初期化して前記メモリを空にした際にフラグ「０」を立てる手段とを備えている。また、前記プロセッサは、送信データが発生した際に、自己の送信手順が終了し、前記ハンドシェイク通信回路の送信系統の書込み許可フラグ「０」を確認してから、送信するデータの有効データ長、続いてそのデータそれぞれを前記ハンドシェイク通信回路の前記メモリに書込み要求する手段と、前記ハンドシェイク通信回路の受信系統から書込み完了「オン」通知を受けた際に他の処理に優先して前記ハンドシェイク通信回路の前記メモリに読出し要求し、受信するデータの有効データ長、続いてそのデータそれぞれを読出しする手段とを備えている。
【００２５】
また、具体的な一つのハンドシェイク通信回路は、データの送受信に際して二つのプロセッサ間に備えられ、データ伝送の制御をソフトウェアで行うデータフロー制御方式に用いられるハンドシェイク通信回路において、二つのプロセッサ間で送受信されるデータの伝送路を上り下りの二系統それぞれに分離するインタフェースと、上り下りの二系統それぞれにあって送信側から受けるデータを書込みする一方、受信側からの要求で書き込まれたデータを読み出す所定容量のデータバッファメモリと、上り下りの二系統それぞれにあって受けるデータの有効データ長を送信側から受けて書込みする一方、受信側からの要求で書き込まれた有効データ長を読み出す所定容量のデータ長設定レジスタと、初期化して前記メモリを空にした際に書込み許可フラグ「０」を立て、前記有効データ長と書込みされたデータ量とを比較して一致した際に前記インタフェースを介して書込み完了「オン」を通知すると共に書込み禁止フラグ「１」を立てる一方、前記有効データ長と読出しされたデータ量とを比較して一致した際に前記インタフェースを介して読出し完了「オン」を通知すると共に書込み許可フラグ「０」を立てる完了フラグ生成回路とを備えることを特徴とする。
【発明の効果】
【００２６】
本発明のデータフロー制御方式は、送信側プロセッサが任意の有効データ長を実質の伝送データ量としてハンドシェイク通信回路に設定することができるので、送信側プロセッサは通信毎にデータ長を可変させて受信側プロセッサに送信できる。従って、通常の取扱いデータ量を一度で伝送可能であり、データの分割による伝送効率の低下を回避できるという効果がある。
【００２７】
また、上述したようにデータ長を設定することができるので、送信側プロセッサから最終データの書込みがあった際に、ハンドシェイク通信回路から受信側プロセッサへ、送信完了通知を自動的に即刻通知できる。従って、伝送効率を更に向上させることができるという効果がある。
【００２８】
また、ハンドシェイク通信回路の回路構成を統一できるのでプロセッサの送受信制御が単一化され、特に主プロセッサが異種のデータ伝送を有するオプション回路を制御する場合でも、データ量を設定できるので、制御の複雑化を避けることができる。
【発明を実施するための最良の形態】
【００２９】
ハンドシェイク通信回路で、多量な伝送データの高速処理に対してプロセッサ間の伝送効率向上と構成回路の制御の複雑化回避という目的を、ボタン電話主装置およびボタン電話機それぞれの構成および制御に大幅な変更を加えることなく実現した。すなわち、送信側プロセッサが任意の有効データ長を実質的データ量としてハンドシェイク通信回路に設定でき、従って、送信側プロセッサは通信毎にデータ長を可変させて受信側プロセッサに送信できる。
【００３０】
ここで、図７を参照してハンドシェイク通信回路１０を備えるボタン電話装置の構成について説明する。
【００３１】
例えばボタン電話装置の主装置に備えられる主プロセッサ（以後、Ｍ側ＣＰＵと略称する）２と例えばボタン電話機を含む複数のオプション回路１におけるサブプロセッサ（以後、Ｓ側ＣＰＵと略称する）３とを備える場合、各オプション回路１ではＭ側ＣＰＵ２とＳ側ＣＰＵ３との間にハンドシェイク通信回路１０が設けられる。ここで、Ｍ側ＣＰＵ２からＳ側ＣＰＵ３へのデータの流れ方向を「下り」とし、逆のＳ側ＣＰＵ３からＭ側ＣＰＵ２へのデータの流れ方向を「上り」とする。
【００３２】
本発明により、ハンドシェイク通信回路１０に１回の送信データ量をデータ長により設定可能なので、ハンドシェイク通信におけるデータが固定長から可変長となり、４バイト以上のデータ送信でも、１回の割込み動作および１回のフラグ確認という１回の通信動作により可能となる。従って、データ量が多くても効率よく、かつ速い通信が二つのプロセッサ間で可能となる。
【００３３】
例えば、高速動作の６４バイト通信のオプション回路も最繁時はデータ長設定レジスタを６４バイト設定により通信することになる。一方、通信データが少ないため通信待ちが発生する状態では、設定するデータ長を最小４バイトに設定することとする。このように可変して動作することが可能なので、無駄なハンドシェイク通信時間を削減することが可能となる。
【００３４】
また、例えば、動作が比較的遅い４バイト通信のオプション回路と、動作の速い６４バイト通信のオプション回路とがあった場合、Ｍ側ＣＰＵでオプション回路のハンドシェイク通信回路にデータ長を個別に設定して通信することができる。これにより、遅い動作のオプション回路と速い動作のオプション回路とが、Ｍ側ＣＰＵのソフトウェア上、同一の制御で最も有効に共存することが可能となる。すなわち、全てのオプションが同じハンドシェイク通信のインタフェースで統一される。
【実施例１】
【００３５】
本発明の実施例1の構成について図１に図７を併せ参照して説明する。
【００３６】
図１は、本発明によるハンドシェイク通信回路１０の実施の一形態を示すブロック図である。
【００３７】
ハンドシェイク通信回路１０は、Ｍ側ＣＰＵインタフェース１１、Ｓ側ＣＰＵインタフェース１２、下りデータバッファメモリ１３、上りデータバッファメモリ１４、下りデータ長設定レジスタ１５、上りデータ長設定レジスタ１６、下り完了フラグ生成回路１７、および上り完了フラグ生成回路１８により構成されている。
【００３８】
図１と従来の構成を示す図８との相違は、上り下りでデータ長設定レジスタ１５，１６が追加されていることである。
【００３９】
Ｍ側ＣＰＵインタフェース１１はＭ側ＣＰＵ２とのインターフェース部、Ｓ側ＣＰＵインタフェース１２はＳ側ＣＰＵ３とのインターフェース部、それぞれの機能を有する。下りデータバッファメモリ１３はＭ側ＣＰＵ２からＳ側ＣＰＵ３への下りデータのバッファ、上りデータバッファメモリ１４はＳ側ＣＰＵ３からＭ側ＣＰＵ２への上りデータのバッファ、それぞれの機能を有する。下りデータ長設定レジスタ１５にはＭ側ＣＰＵ２から入力される送信データ長、上りデータ長設定レジスタ１６にはＳ側ＣＰＵ３から入力される送信データ長、それぞれが設定される。下り完了フラグ生成回路１７はＭ側ＣＰＵ２からＳ側ＣＰＵ３への下りデータの状態を示すフラグの生成回路であり、具体例を示す図２，３を参照して後に詳細を説明する。上り完了フラグ生成回路１８はＳ側ＣＰＵ３からＭ側ＣＰＵ２への上りデータの状態を示すフラグの生成回路であり、具体例を示す図４，５を参照して後に詳細を説明する。
【００４０】
次に、図１を用いて本発明によるハンドシェイク通信回路１０の動作手順の概略について説明する。
【００４１】
まず、Ｍ側ＣＰＵがＭ側ＣＰＵインタフェース１１を介してＳ側ＣＰＵに送信するデータ長を下りデータ長設定レジスタ１５へ書込みする。次いで、Ｍ側ＣＰＵは下りデータバッファメモリ１３に送信データを書込みする。Ｍ側ＣＰＵは、最終データの書込み後、自動的にＳ側ＣＰＵへ割込み信号を送出し、または内部レジスタフラグ変化として通知される。次いで、Ｓ側ＣＰＵはＳ側ＣＰＵインタフェース１２を介して下りデータ長設定レジスタ１５のＭ側ＣＰＵから受けた送信データ長を読出しし、そのデータ長分のデータを下りデータバッファメモリ１３から読出しする。
【００４２】
次に、Ｓ側ＣＰＵがＳ側ＣＰＵインタフェース１２を介してＭ側ＣＰＵ宛てに送信するデータ長を上りデータ長設定レジスタ１６へ書込みする。次いで、Ｓ側ＣＰＵは上りデータバッファメモリ１４に送信データを書込みし、最終データの書込み後、自動的にＭ側ＣＰＵへ割込み信号を送出し、または内部レジスタフラグ変化として通知される。次いで、Ｍ側ＣＰＵはＭ側ＣＰＵインタフェース１１を介して上りデータ長設定レジスタ１６のＳ側ＣＰＵから受けた送信データ長を読出しし、そのデータ長分のデータを上りデータバッファメモリ１４から読出しする。
【００４３】
上述した動作を交互に繰り返してＭ側ＣＰＵとＳ側ＣＰＵとの間のハンドシェイク通信が行われる。処理手順の詳細は後にチャートを参照して説明する。
【００４４】
このように、本発明によるハンドシェイク通信回路は、データ長設定レジスタを追加して、伝送するデータ長をデータ送信側のＣＰＵから受け取ることができるので、伝送データが、例えば、４バイトに限定されることはない。また、データ長を受取り書込みした後、最後のデータを受け取るので、最後のデータを書込みした際に、直ちに受信側ＣＰＵに通知して読出しさせることができる。従って、多量な伝送データの高速処理に対してプロセッサ間の伝送効率向上を実現できる効果がある。
【実施例２】
【００４５】
本発明の実施例２として図１の下りおよび上りの完了フラグ生成回路１７，１８の具体化構成を図示して、その詳細について説明する。
【００４６】
まず、図２および図３を参照して下り完了フラグ生成回路１７について説明する。
【００４７】
図２の下り完了フラグ生成回路１７は、フラグ変化アドレス選択回路２１、書込みアドレス比較回路２２、読出しアドレス比較回路２３、書込み側信号合成回路２４、読出し側信号合成回路２５、フラグ生成クロック選択回路２６、フラグ生成Ｔフリップフロップ回路２７および下り完了フラグ送出回路２８により構成される。下り完了フラグ生成回路１７は、下りデータ長設定レジスタ１５とＭ側ＣＰＵ、Ｓ側ＣＰＵとから受ける各種信号により、Ｍ側ＣＰＵからの書込み完了フラグ兼Ｓ側ＣＰＵからの読出し完了フラグがＳ側ＣＰＵ、Ｍ側ＣＰＵそれぞれに出力される。
【００４８】
フラグ変化アドレス選択回路２１は、下りデータ長設定レジスタ１５から、それに書込みされた有効データ長に基づきフラグを変化させる終了アドレスを選択する。書込みアドレス比較回路２２は、送信側から下りデータバッファメモリ１３に書込みされるデータのアドレスとフラグ変化アドレス選択回路２１で選択した終了アドレスとを引き込み比較して一致を「書込み終了」と検出する。読出しアドレス比較回路２３は、受信側で下りデータバッファメモリ１３から読出しされるデータのアドレスとフラグ変化アドレス選択回路２１で選択した終了アドレスとを引き込み比較して一致を「読出し終了」と検出する。書込み側信号合成回路２４は、送信側プロセッサの書込み信号チップセレクト信号と書込みアドレス比較回路２２の書込み終了情報とを引き込み、フラグ生成タイミングを送出する。読出し側信号合成回路２５は、受信側プロセッサの読出し信号チップセレクト信号と読出しアドレス比較回路２３の読出し終了情報とを引き込み、フラグ生成タイミングを送出する。
【００４９】
フラグ生成クロック選択回路２６は、書込み側信号合成回路２４からフラグ生成タイミングを受けた際、または読出し側信号合成回路２５からフラグ生成タイミングを受けた際に、フラグ生成用のクロック信号を選択する。フラグ生成Ｔフリップフロップ回路２７は、フラグ生成クロック選択回路２６で選択されたクロック信号を受けてフラグ生成用の駆動信号を送出する。下り完了フラグ送出回路２８は、初期状態で書込み許可を意味するフラグ「０」を立て、フラグ生成Ｔフリップフロップ回路２７から駆動信号を受けた際にフラグ「０」を書込み禁止を意味するフラグ「１」に切替えて受信側プロセッサに書込み完了フラグの「オン」を、またフラグ「１」が立っている場合はフラグ「０」に切替えて送信側プロセッサに読出し完了フラグの「オン」をそれぞれ送出する。
【００５０】
次に、図３に図１および図２を併せ参照して、データがＭ側ＣＰＵからＳ側ＣＰＵへ伝送される、下り完了フラグ生成回路１７の動作について説明する。
【００５１】
まず、完了フラグの「オン・オフ」と下り完了フラグ送出回路２８のフラグとについて定義する。回路の初期化は下り完了フラグ送出回路２８のフラグを「０」とする。Ｍ側ＣＰＵにより下りデータバッファメモリ１３に書込みが完了した際に、Ｍ側ＣＰＵによる書込み完了フラグは「オン」となり、下り完了フラグ送出回路２８はフラグを「１」にする。フラグ「１」への変化はＳ側ＣＰＵによる読出し完了フラグを「オフ」にする。一方、Ｓ側ＣＰＵにより下りデータバッファメモリ１３から読出しが完了した際に、Ｓ側ＣＰＵによる読出し完了フラグは「オン」となり、下り完了フラグ送出回路２８はフラグを「０」にする。フラグ「０」への変化はＭ側ＣＰＵによる書込み完了フラグを「オフ」にする。
【００５２】
まず、Ｍ側ＣＰＵが下りデータ長設定レジスタ１５に送信データ長として下りデータバッファメモリ１３の書込み終了アドレスを設定する。下りデータバッファメモリ１３に対するＭ側ＣＰＵの最終書込みサイクル時に、書込みアドレス比較回路２２は、Ｍ側ＣＰＵから受けるアドレスとフラグ変化アドレス選択回路２１が出力するアドレスとを比較し、一致した場合に「０」を出力する。書込み側信号合成回路２４は、書込みアドレス比較回路２２の出力とＭ側ＣＰＵ書込み信号チップセレクト信号とを論理和して、フラグ生成クロック選択回路２６へ送出する。
【００５３】
下り完了フラグ送出回路２８でフラグが「０」の場合では、下り完了フラグ生成回路１７はフラグ生成クロック選択回路２６の出力をフラグ生成Ｔフリップフロップ回路２７のクロック入力へ接続する。このフラグ生成Ｔフリップフロップ回路２７の出力を受けて、下り完了フラグ送出回路２８は、Ｍ側ＣＰＵによる書込み完了フラグを「オン」に設定する一方、フラグ「０」を「１」に変更する。下り完了フラグ送出回路２８で設定されたＭ側ＣＰＵによる書込み完了フラグの「オン」がＳ側ＣＰＵへ外部信号としてフラグ「１」により通知される。下り完了フラグ送出回路２８は、Ｍ側ＣＰＵへもフラグ「１」により、Ｓ側ＣＰＵによる読出し完了フラグの「オフ」が通知される。この通知により、Ｍ側ＣＰＵは送信先のハンドシェイク通信回路１０でのデータ受信完了を確認できる。
【００５４】
一方、フラグ「１」を検出したＳ側ＣＰＵは、割込みを発生し優先してデータの受信動作を開始する。すなわち、Ｓ側ＣＰＵは、下りデータ長設定レジスタ１５のデータ長を読み出して確認し、そのデータ長分のデータを下りデータバッファメモリ１３から読出しする。Ｓ側ＣＰＵが最終データの読出しサイクルに達した際には、読出しアドレス比較回路２３がＳ側ＣＰＵから送られるアドレスとフラグ変化アドレス選択回路２１が出力するアドレスとを比較し、一致した場合に「０」を出力する。読出し側信号合成回路２５は、読出しアドレス比較回路２３の出力とＳ側ＣＰＵ読出し信号チップセレクト信号とを論理和して、フラグ生成クロック選択回路２６へ送出する。
【００５５】
下り完了フラグ送出回路２８でフラグが「１」の場合では、フラグ生成クロック選択回路２６は自己の出力をフラグ生成Ｔフリップフロップ回路２７のクロック入力へ接続する。このフラグ生成Ｔフリップフロップ回路２７の出力を受けて、下り完了フラグ送出回路２８は、Ｓ側ＣＰＵによる読出し完了フラグを「オン」に設定する一方、フラグ「１」を「０」に変更する。下り完了フラグ送出回路２８で設定されたＳ側ＣＰＵによる読出し完了フラグの「オン」がＭ側ＣＰＵへ外部信号としてフラグ「０」により通知される。下り完了フラグ送出回路２８は、Ｓ側ＣＰＵへもフラグ「０」により、Ｍ側ＣＰＵによる書込み完了フラグの「オフ」が通知される。これらの通知により、Ｍ側ＣＰＵでは次のデータ送信が可能であり、Ｓ側ＣＰＵでは割込み解除が実行される。
【００５６】
次に、図４および図５を参照して図１の上り完了フラグ生成回路１８について説明する。
【００５７】
図４の上り完了フラグ生成回路１８は、フラグ変化アドレス選択回路３１、読出しアドレス比較回路３２、書込みアドレス比較回路３３、読出し側信号合成回路３４、書込み側信号合成回路３５、フラグ生成クロック選択回路３６、フラグ生成Ｔフリップフロップ回路３７および上り完了フラグ送出回路３８により構成される。上り完了フラグ生成回路１８は、上りデータ長設定レジスタ１６とＭ側ＣＰＵ、Ｓ側ＣＰＵとから受ける各種信号により、Ｓ側ＣＰＵからの書込み完了フラグ兼Ｍ側ＣＰＵからの読出し完了フラグがＭ側ＣＰＵ、Ｓ側ＣＰＵそれぞれに出力される。
【００５８】
フラグ変化アドレス選択回路３１は、上りデータ長設定レジスタ１６から、それに書込みされた有効データ長に基づき、フラグを変化させる終了アドレスを選択する。読出しアドレス比較回路３２は、受信側で上りデータバッファメモリ１４から読出しされるデータのアドレスとフラグ変化アドレス選択回路３１で選択した終了アドレスとを引き込み比較して一致を「読出し終了」と検出する。書込みアドレス比較回路３３は、送信側から上りデータバッファメモリ１４に書込みされるデータのアドレスとフラグ変化アドレス選択回路３１で選択した終了アドレスとを引き込み比較して一致を「書込み終了」と検出する。読出し側信号合成回路３４は、受信側プロセッサの読出し信号チップセレクト信号と読出しアドレス比較回路３２の読出し終了情報とを引き込み、フラグ生成タイミングを送出する。書込み側信号合成回路３５は、送信側プロセッサの書込み信号チップセレクト信号と書込みアドレス比較回路３３の書込み終了情報とを引き込み、フラグ生成タイミングを送出する。
【００５９】
フラグ生成クロック選択回路３６は、書込み側信号合成回路３５からフラグ生成タイミングを受けた際、または読出し側信号合成回路３４からフラグ生成タイミングを受けた際に、フラグ生成用のクロック信号を選択する。フラグ生成Ｔフリップフロップ回路３７は、フラグ生成クロック選択回路３６で選択されたクロック信号を受けてフラグ生成用の駆動信号を送出する。下り完了フラグ送出回路３８は、初期状態でフラグ「０」を立て、フラグ生成Ｔフリップフロップ回路３７から駆動信号を受けた際にフラグ「０」を「１」に切替えて受信側プロセッサに書込み完了フラグの「オン」を、またフラグ「１」が立っている場合はフラグ「０」に切替えて送信側プロセッサに読出し完了フラグの「オン」をそれぞれ送出する。
【００６０】
次に、図５に図１および図４をあわせ参照して、データがＳ側ＣＰＵからＭ側ＣＰＵへ伝送される、上り完了フラグ生成回路１８の動作について説明する。
【００６１】
完了フラグの「オン・オフ」および完了フラグ送出回路３８のフラグについて定義する。回路の初期化は上り完了フラグ送出回路３８のフラグを「０」とする。Ｓ側ＣＰＵにより上りデータバッファメモリ１４に書込みが完了した際に、Ｓ側ＣＰＵによる書込み完了フラグは「オン」となり、上り完了フラグ送出回路３８はフラグを「１」にする。フラグ「１」への変化はＭ側ＣＰＵによる読出し完了フラグを「オフ」にする。一方、Ｍ側ＣＰＵにより上りデータバッファメモリ１４から読出しが完了した際に、Ｍ側ＣＰＵによる読出し完了フラグは「オン」となり、上り完了フラグ送出回路３８はフラグを「０」にする。フラグ「０」への変化はＳ側ＣＰＵによる書込み完了フラグを「オフ」にする。
【００６２】
まず、Ｓ側ＣＰＵが上りデータ長設定レジスタ１６に送信データ長として上りデータバッファメモリ１４の書込み終了アドレスを設定する。上りデータバッファメモリ１４に対するＳ側ＣＰＵの最終書込みサイクル時に、書込みアドレス比較回路３３は、Ｓ側ＣＰＵから受けるアドレスとフラグ変化アドレス選択回路２１が出力するアドレスとを比較し、一致した場合に「０」を出力する。書込み側信号合成回路３５は、書込みアドレス比較回路３３の出力とＳ側ＣＰＵ書込み信号チップセレクト信号とを論理和して、フラグ生成クロック選択回路３６へ送出する。
【００６３】
上り完了フラグ送出回路３８でフラグが「０」の場合では、上り完了フラグ生成回路１８はフラグ生成クロック選択回路３６の出力をフラグ生成Ｔフリップフロップ回路３７のクロック入力へ接続する。このフラグ生成Ｔフリップフロップ回路３７の出力を受けて、上り完了フラグ送出回路３８は、Ｓ側ＣＰＵによる書込み完了フラグを「オン」に設定する一方、フラグ「０」を「１」に変更する。上り完了フラグ送出回路３８で設定されたＳ側ＣＰＵによる書込み完了フラグの「オン」がＭ側ＣＰＵへ外部信号としてフラグ「１」により通知される。上り完了フラグ送出回路３８は、Ｓ側ＣＰＵへもフラグ「１」により、Ｍ側ＣＰＵによる読出し完了フラグの「オフ」が通知される。この通知により、Ｓ側ＣＰＵは送信先のハンドシェイク通信回路１０でのデータ受信完了を確認できる。
【００６４】
一方、フラグ「１」を検出したＭ側ＣＰＵは、フラグの「０」から「１」への変化を受付するので、優先してデータの受信動作を開始する。すなわち、Ｍ側ＣＰＵは、上りデータ長設定レジスタ１６のデータ長を読み出して確認し、そのデータ長分のデータを上りデータバッファメモリ１４から読出しする。Ｍ側ＣＰＵが最終データの読出しサイクルに達した際には、読出しアドレス比較回路３２がＭ側ＣＰＵから送られるアドレスとフラグ変化アドレス選択回路３１が出力するアドレスとを比較し、一致した場合に「０」を出力する。読出し側信号合成回路３４は、読出しアドレス比較回路３２の出力とＭ側ＣＰＵ読出し信号チップセレクト信号とを論理和して、フラグ生成クロック選択回路３６へ送出する。
【００６５】
上り完了フラグ送出回路３８でフラグが「１」の場合では、フラグ生成クロック選択回路３６は自己の出力をフラグ生成Ｔフリップフロップ回路３７のクロック入力へ接続する。このフラグ生成Ｔフリップフロップ回路３７の出力を受けて、上り完了フラグ送出回路３８は、Ｍ側ＣＰＵによる読出し完了フラグを「オン」に設定する一方、フラグ「１」を「０」に変更する。上り完了フラグ送出回路３８で設定されたＭ側ＣＰＵによる読出し完了フラグの「オン」がＳ側ＣＰＵへ外部信号としてフラグ「０」により通知される。上り完了フラグ送出回路３８は、Ｍ側ＣＰＵへもフラグ「０」により、Ｓ側ＣＰＵによる書込み完了フラグの「オフ」が通知される。これらの通知により、Ｓ側ＣＰＵでは次のデータ送信が可能であり、Ｍ側ＣＰＵではフラグの変化が確認できる。
【００６６】
上述したデータ長がオプション回路で扱う１回の最大伝送量、最高伝送速度などに基づいて固定して設定できる場合、データバッファメモリはこの設定値に基づいたの容量を有することになる。
【００６７】
上述したように、下りおよび上りそれぞれの完了フラグ生成回路は同一の回路構成でよく、また、上述した回路構成は一例であり、本発明を限定するものではない。
【００６８】
上記説明のとおり、完了フラグ生成回路でのフラグ「０」は初期状態または書込み許可状態を意味し、この表示の間、読出し完了フラグは「オン」また書込み完了フラグは「オフ」の状態を維持することとなり、送信側プロセッサは送信データを書込みする。フラグ「１」は書込み禁止状態を意味し、この表示の間、書込み完了フラグは「オン」また読出し完了フラグは「オフ」の状態を維持することとなり、受信側プロセッサは書き込まれたデータを読出しする。
【実施例３】
【００６９】
本発明の実施例３として図１に示されるハンドシェイク通信回路１０に接続するＣＰＵの主要動作手順について、図６に図１、図３、および図５を併せ参照して説明する。図示される動作手順はＭ側とＳ側と何れのＣＰＵにも適用される。以後、Ｍ側ＣＰＵとして説明する。従って、送信では上り、受信では下り、それぞれの回路が用いられる。Ｓ側の場合は、下記説明の下りと上りとを入れ替えることとなる。
【００７０】
送信側となるＭ側ＣＰＵは、受信側となるＳ側ＣＰＵへの送信データが発生（手順Ｓ１）した場合、ハンドシェイク通信回路１０の下り完了フラグ生成回路１７のフラグを調査（手順Ｓ２）する。
【００７１】
ハンドシェイク通信回路１０では、初期化、または下りデータバッファメモリ１３が空になって下り完了フラグ生成回路１７から読出し完了フラグ「オン」を送出した際に、フラグ「０」が生成されている。
【００７２】
下り完了フラグ生成回路１７がフラグ「０」（手順Ｓ３のＹＥＳ）の場合、Ｍ側ＣＰＵは、ハンドシェイク通信回路１０へ有効データ長を書込み（手順Ｓ４）し、次いで有効データ長分のデータを書込み（手順Ｓ５）する。
【００７３】
上記手順Ｓ３が「ＮＯ」の場合、Ｍ側ＣＰＵは、上記手順Ｓ２に戻り、上記手順Ｓ３が「ＹＥＳ」で、フラグ「０」を確認したのち、データ書込みの上記手順Ｓ４および手順Ｓ５に進む。
【００７４】
ハンドシェイク通信回路１０では、送られる所定のデータ量が有効データ長として下りデータ長設定レジスタ１５に書き込まれ、続いてその有効データ長分のデータが下りデータバッファメモリ１３に書き込まれる。データの書込みが完了した際に下り完了フラグ生成回路１７からデータの読出し完了フラグ「オフ」がＭ側ＣＰＵに送出される。
【００７５】
Ｍ側ＣＰＵは、受信側のハンドシェイク通信回路１０で書込み完了したことを自己のデータ送信結果で判断できるが、ハンドシェイク通信回路１０からデータの読出し完了フラグ「オフ」を受付け（手順Ｓ６）した場合、受信側で書込み完了し、読出し完了フラグが「オフ」になったことを確認できる。
【００７６】
ＣＰＵでは通常、完了フラグの「オン・オフ」は状態として保持していない。従って、Ｍ側ＣＰＵは、データ送信先のハンドシェイク通信回路１０から、受信完了を意味する読出し完了フラグ「オフ」を受ける必要はないので、通常、上記手順Ｓ６は省略される。
【００７７】
ハンドシェイク通信回路１０では、書き込まれたデータが受信されるＳ側ＣＰＵにより読出し（手順Ｓ７）され、下り完了フラグ生成回路１７からデータの読出し完了フラグ「オン」がＭ側ＣＰＵに送出される。
【００７８】
従って、送信側であるＭ側ＣＰＵは、上記手順Ｓ５のデータ書込みの後、ハンドシェイク通信回路１０からデータの読出し完了フラグ「オン」を受付け（手順Ｓ８）する。この結果、Ｍ側ＣＰＵは、受信側で読出しを完了し、下りデータバッファメモリ１３が空になって、次のデータ送信が可能になったことを知り、一巡の送信手順を終了する。
【００７９】
この送信手順の終了でハンドシェイク通信回路１０は、読出し完了フラグ「オフ」と同時に受信側ＣＰＵに書込み完了フラグ「オン」を送出する。
【００８０】
従って、受信側となったＭ側ＣＰＵは、上り完了フラグ生成回路１８から書込み完了フラグ「オン」を受付け（手順Ｓ１０）した際に、例えばＳ側ＣＰＵが受信した場合であれば走行中のプログラムに割り込むなどの、所定の受付処理（手順Ｓ１１）を行い、最優先でハンドシェイク通信回路１０から有効データ長を読出し（手順Ｓ１２）し、次いで、有効データ長分の受信データを読出し（手順Ｓ１３）する。
【００８１】
ハンドシェイク通信回路１０では、受信データの読出しが終了した際に、上り完了フラグ生成回路１８から書込み完了フラグ「オフ」がＭ側ＣＰＵに送出される。
【００８２】
Ｍ側ＣＰＵは、上り完了フラグ生成回路１８から書込み完了フラグ「オフ」を受付け（手順Ｓ１４のＹＥＳ）したことにより上りデータバッファメモリ１４から受信データの読取り完了を確認する。
【００８３】
各プロセッサは、完了フラグ生成回路から読出しおよび書込みの完了フラグを「オン・オフ」発生時点で受けるとしてのみ説明しているが、その「オン・オフ」を交互に受け、「オン・オフ」の状態を次の更新の際までそのまま保持してもよい。また、各プロセッサは、「オン・オフ」を受付けの都度、完了フラグ生成回路のフラグ「０，１」に対応させて変換し保持してもよい。
【００８４】
この構成の結果、各プロセッサは、送受信相手のプロセッサに対してハンドシェイク通信回路内のバッファにおける受信データの読出し状態および送信データの書込み状態を常に監視できる。この動作を二つのプロセッサ間で相互に行いながら、毎回確実にデータを送受信し、かつ通信時間を最小限に抑えることができる。
【００８５】
ボタン電話装置のように定期的にデータを送受信する場合、上りと下りの二方向それぞれに、余裕の容量を有するデータバッファメモリを備えることにより、実質伝送されるデータの量を有効データ量として、一方の多量データは高速で、他方の少量データは低速で、それぞれ伝送することも可能である。一括されるデータを分割されることなく伝送できるので、ソフトウェア処理は統一化されるのでプログラム構成が単純化される。
【産業上の利用可能性】
【００８６】
送信側プロセッサが任意の有効データ長を実質的データ量としてハンドシェイク通信回路に設定できるので、送信側プロセッサは通信毎にデータ長を可変させて受信側プロセッサに送信できる。一方、ハンドシェイク通信回路は有効データ長から、例えば一回の伝送データの最終アドレスを選択するので、データの書込み完了または読出し完了が容易にかつ早期に検出できる。従って、データの送受信において、一つの伝送路で、毎回のデータ量、データ速度などが異なる用途、または複数伝送路それぞれで、データ量、データ速度などが異なる用途に対して有効に適用できる。
【図面の簡単な説明】
【００８７】
【図１】本発明によるデータフロー制御方式のハンドシェイク通信回路における回路構成の実施の一形態を示した説明図である。（実施例１）
【図２】図１の下り完了フラグ生成回路１７における回路構成の実施の一形態を示した説明図である。（実施例２）
【図３】図２の下り完了フラグ生成回路１７におけるＣＰＵとの間の動作手順に対する実施の一形態を示したシーケンスチャートである。（実施例２）
【図４】図１の上り完了フラグ生成回路１８における回路構成の実施の一形態を示した説明図である。（実施例２）
【図５】図４の上り完了フラグ生成回路１８におけるＣＰＵとの間の動作手順に対する実施の一形態を示したシーケンスチャートである。（実施例２）
【図６】本発明によるデータフロー制御方式のハンドシェイク通信回路とインタフェースするＣＰＵにおける動作手順の実施の一形態を示したフローチャートである。（実施例３）
【図７】典型的なデータフロー制御方式におけるブロック構成の一例を示した説明図である。
【図８】従来のデータフロー制御方式のハンドシェイク通信回路における回路構成の一例を示した説明図である。
【符号の説明】
【００８８】
１    オプション回路
２    主プロセッサ（Ｍ側ＣＰＵ）
３    サブプロセッサ（Ｓ側ＣＰＵ）
１０    ハンドシェイク通信回路
１１、１２    ＣＰＵインタフェース
１３、１４    データバッファメモリ
１５、１６    データ長設定レジスタ
１７、１８    完了フラグ生成回路
２１、３１    フラグ変化アドレス選択回路
２２、３３    書込みアドレス比較回路
２３、３２    読出しアドレス比較回路
２４、３５    書込み側信号合成回路
２５、３４    読出し側信号合成回路
２６、３６    クロック選択回路
２７、３７    Ｔフリップフロップ回路
２８、３８    完了フラグ送出回路
【図１】
2005340995.tif 000003
【図２】
2005340995.tif 000004
【図３】
2005340995.tif 000005
【図４】
2005340995.tif 000006
【図５】
2005340995.tif 000007
【図６】
2005340995.tif 000008
【図７】
2005340995.tif 000009
【図８】
2005340995.tif 000010