(57)【要約】 【課題】ＣＰＵが複数のポートを制御する際のＣＰＵの動作クロック周波数の最適化（消費電力の低減化）等を図る。【解決手段】ｎ個（ｎは２以上の整数）のポート２２−１〜２２−４での通信を制御するＣＰＵ２１と、これらのｎ個のポート２２−１〜２２−４の通信状態を検出する通信状態検出手段２１及び２３と、この通信状態検出手段２１及び２３の検出結果に基づいて、これらのｎ個のポート２２−１〜２２−４のうち通信状態にあるポート数を求め、通信状態にあるポート数が１のときに通信処理に必要な最低周波数を基本周波数として、通信状態にあるポート数がｎのときはこの基本周波数のｎ倍以上で、かつ、ポート数の増加に伴って周波数が高くなるように設定されたクロックをこのＣＰＵに動作クロックとして供給するクロック発生器２４とを備える。【選択図】  図２
2007036472.tif 000002
【特許請求の範囲】
【請求項１】
ｎ個（ｎは２以上の整数）のポートでの通信を制御するＣＰＵと、
前記ｎ個のポートの通信状態を検出する通信状態検出手段と、
前記通信状態検出手段の検出結果に基づいて、前記ｎ個のポートのうち通信状態にあるポート数を求め、通信状態にあるポート数が１のときに通信処理に必要な最低周波数を基本周波数として、通信状態にあるポート数がｎのときは前記基本周波数のｎ倍以上で、かつ、通信状態にあるポート数の増加に伴って周波数が高くなるように設定されたクロックを前記ＣＰＵに動作クロックとして供給するクロック発生器と
を備えたことを特徴とするデジタル通信装置。
【請求項２】
請求項１記載のデジタル通信装置において、
前記通信状態検出手段の一部の機能は、前記ｎ個のポートでのデータの受信を検出する受信データ検出回路によって実現され、
前記通信状態検出手段の残りの機能は、前記ＣＰＵが、いずれかの前記ポートがデータを受信したときに該ポートについての通信状態フラグをアクティブにする処理と、いずれかの前記ポートについての前記通信状態フラグがアクティブになっている場合に該ポートで通信処理を行った後に該通信状態フラグをネガティブに切り替える処理とを行うことによって実現され、
前記クロック発生器は、いずれかの前記ポートがデータを受信したことが前記受信データ検出回路によって検出された時点で該ポートを通信状態にあるポートの数に含め、いずれかの前記ポートについての前記通信状態フラグがネガティブに切り替えられた時点で該ポートを通信状態にあるポートの数から除く
ことを特徴とするデジタル通信装置。
【請求項３】
請求項１記載のデジタル通信装置において、
前記通信状態検出手段は、前記ＣＰＵが、いずれかの前記ポートがデータを受信したときに該ポートについての通信状態フラグをアクティブにする処理と、いずれかの前記ポートについての前記通信状態フラグがアクティブになっている場合に該ポートで通信処理を行った後に該通信状態フラグをネガティブに切り替える処理とを行うことによって実現され、
前記クロック発生器は、いずれかの前記ポートについての前記通信状態フラグがアクティブに切り替えられた時点で該ポートを通信状態にあるポートの数に含め、いずれかの前記ポートについての前記通信状態フラグがネガティブに切り替えられた時点で該ポートを通信状態にあるポートの数から除く
ことを特徴とするデジタル通信装置。
【請求項４】
請求項１記載のデジタル通信装置において、
前記ＣＰＵ，前記通信状態検出手段及び前記クロック発生器は、ＰＬＤ（プログラマブル・ロジック・デバイス）内部の完全同期型ロジック回路で形成されていることを特徴とするデジタル通信装置。
【請求項５】
請求項４記載のデジタル通信装置において、
前記ＣＰＵが実行するプログラムを保存するＲＯＭと、前記ＣＰＵのワークエリアとして使用されるＲＡＭとが、前記ＰＬＤ内部に設けられていることを特徴とするデジタル通信装置。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵが複数のポートでの通信を制御するデジタル通信装置に関し、特に、消費電力の低減等を可能にしたものに関する。
【背景技術】
【０００２】
ＣＰＵを使って、例えば、４ポートのＵＡＲＴ (Universal Asynchronous Receiver Transmitter)を制御するデジタル通信装置を構成する場合には、４ポートのＵＡＲＴインタフェースを装備したＣＰＵを使用すれば、部品点数を抑えて目的のものを作ることができる。しかし現実には、１個の汎用ＣＰＵが装備するＵＡＲＴインタフェース数は１又は２程度のものが多いため、目的の構成を実現させるためには、複数のＣＰＵを使わざるを得なかった。
【０００３】
例えば、図１は、４個のＣＰＵ２−１〜２−４を使用して、４ポートのデジタル通信装置３を構成した例である。
【０００４】
各ＣＰＵ２−１〜２−４は、それぞれ１ポートのＵＡＲＴ Ｉ／Ｆ（インタフェース）１−１〜１−４を備えている。ＵＡＲＴ Ｉ／Ｆ１−１〜１−４は、それぞれドライバ／レシーバ（例えばＲＳ−２３２Ｃドライバ／レシーバ）４−１〜４−４を介して、対向装置（通信の相手方の装置）５−１〜５−４に接続ケーブル６−１〜６−４で接続されている。各ＣＰＵ２−１〜２−４ＣＰＵ２と対向装置５−１〜５−４との間では、調歩同期方式のシリアル通信（例えばＲＳ−２３２Ｃ通信）が行われる。各ＣＰＵ２−１〜２−４内の図示しないＲＯＭには、プログラムが記録されており、このプログラムに従って各ＣＰＵ２−１〜２−４が動作することにより、シリアル通信処理が行われる。
【０００５】
ＣＰＵの動作クロックの周波数は、プログラムの処理量に応じて設定されている。例えば、ＵＡＲＴのボーレートを３８．４ｋｂｐｓ、データフォーマットをスタートビット（１）＋データビット（８）＋パリティビット（１）＋ストップビット（１）（計１１ｂｉｔ、１キャラクタデータ時間長＝１１÷３８４００ｂｐｓ≒２８６ｕｓｅｃ）とし、プログラムのマシン語ベースでのステップ数が１キャラクタデータ当たり１０００ステップ必要な場合には、ＣＰＵの動作クロック周期は、２８６ｕｓｅｃ÷１０００≒２８６ｎｓｅｃ以下でなければならない。故に、ＣＰＵの動作クロック周波数は、１÷２８６ｎｓｅｃ≒３．５ＭＨｚ以上必要ということになる。
【０００６】
尚、一般的に、ＣＭＯＳで構成されたＣＰＵでは、クロックに起因する充放電電流、貫通電流などが消費電力に多大に影響するため、ほぼ動作クロック周波数に比例して消費電力が上昇すると考えてよい。このため、ＣＰＵのパフォーマンスを確保するために、無闇に動作クロック周波数を高くすることは、消費電力の増加を招くという不利益が発生する。従って、本従来例の場合には、若干のマージンをとって、ＣＰＵの動作クロック周波数は４ＭＨｚ程度が最適値となる。
【０００７】
しかしながら、従来の汎用ＣＰＵでは、多ポートを備えたデジタル通信装置を構成しようとした場合には、ＣＰＵ構成の制約から、複数のＣＰＵを使用しなければならず、部品点数が多くなり、この結果、部品コストが高くなる、実装面積が増加する、などの問題があった。
【０００８】
また、図１の例の場合、４ポート全てが通信状態にあるときはＣＰＵのパフォーマンスが最大となるが、常に４ポート全てが通信状態になっているとは限らず、非通信状態にあるポートが存在するときもある。この場合、非通信状態（アイドル状態）でも電力が消費されてしまうため、非通信状態にあるポート数が多くなるほど、無駄な消費電力が増加してしまうという問題があった。
【０００９】
ここで、ＣＰＵの消費電力を低減させる技術としては、ＣＰＵの動作クロック周波数をその処理量に応じて制御する技術が従来から多数提案されている。そのうち、通信処理に関するものとしては、２つのＣＰＵの間で通信を行う場合に、一方のＣＰＵがデータを出力するともう一方のＣＰＵの動作クロックを最高周波数に設定し、それ以外のときにはＣＰＵの動作クロックの周波数を低く設定するという技術が提案されている（例えば、特許文献１参照）。
【００１０】
【特許文献１】特開昭６４−５７３２４号公報（第３頁〜第４頁、第１図〜第３図）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、上記特許文献１に記載の技術は、１対１の通信（１ポートのみでの通信）に限定されるものであり、複数ポートで通信を行う場合への拡張性は全く無い。
【００１２】
本発明は、複数のポートで通信を行う場合の従来の問題点に鑑み、下記の（ａ）及び（ｂ）の課題を解決するためになされたものである。
（ａ）ＣＰＵが複数のポートを制御する際に、ＣＰＵの動作クロック周波数の最適化（消費電力の低減化）を図る。
（ｂ）予めｎポートまで動作可能なデジタル通信装置を作っておくことで、ｎポート以下の用途で流用した場合にも、自動的に動作クロック周波数の最適化（消費電力の低減化）が図れようにする（未使用のポートが存在する状態でも使えるようにする）。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明に係るデジタル通信装置は、ｎ個（ｎは２以上の整数）のポートでの通信を制御するＣＰＵと、これらのｎ個のポートの通信状態を検出する通信状態検出手段と、この通信状態検出手段の検出結果に基づいて、これらのｎ個のポートのうち通信状態にあるポート数を求め、通信状態にあるポート数が１のときに通信処理に必要な最低周波数を基本周波数として、通信状態にあるポート数がｎのときはこの基本周波数のｎ倍以上で、かつ、ポート数の増加に伴って周波数が高くなるように設定されたクロックをこのＣＰＵに動作クロックとして供給するクロック発生器とを備えたことを特徴とする。
【００１４】
このデジタル通信装置では、複数（ｎ個）のポートの通信状態が、通信状態検出手段によって検出され、この検出結果に基づき、これらのｎ個のポートのうち通信状態にあるポート数がクロック発生器により求められる。
【００１５】
そして、通信状態にあるポート数が１のときに通信処理に必要な最低周波数を基本周波数として、通信状態にあるポート数がｎのときはこの基本周波数のｎ倍以上で、かつ、ポート数の増加に伴って周波数が高くなるように設定された動作クロックが、これらの複数のポートでの通信を制御するＣＰＵにクロック発生器から供給される。
【００１６】
その結果、ＣＰＵには、ｎ個全てのポートが通信状態にあるときには基本周波数のｎ倍以上の高い周波数の動作クロックが供給され、かつ、２個〜ｎ−１個のポートが通信状態にあるとき（未使用のポートが存在する状態）でもその個数に応じて周波数を高くした動作クロックが供給される。
【００１７】
これにより、通信状態にあるポート数に応じてＣＰＵの動作クロックの最適化が図れ、無駄な消費電力を低減することができる。また、ｎポート構成のデジタル通信装置をｎポート以下の用途に流用する場合にも、自動的にＣＰＵの動作クロックの最適化が図れ、無駄な消費電力を低減することができる。
【発明の効果】
【００１８】
本発明によれば、ＣＰＵが複数のポートを制御するデジタル通信装置において、下記の（ａ）及び（ｂ）の効果が得られる。
（ａ）通信状態にあるポート数に応じてＣＰＵの動作クロックの最適化が図れ、無駄な消費電力を低減することができる。
（ｂ）ｎポート構成のデジタル通信装置をｎポート以下の用途に流用する場合にも、自動的にＣＰＵの動作クロックの最適化が図れ、無駄な消費電力を低減することができる。
【発明を実施するための最良の形態】
【００１９】
以下、１個のＣＰＵで４ポートのＵＡＲＴ Ｉ／Ｆを制御するデジタル通信装置に本発明を適用した例について、図面を用いて具体的に説明する。
【実施例１】
【００２０】
図２は、本発明を適用したデジタル通信装置の構成例を示す図である。このデジタル通信装置２０は、１個のＣＰＵ２１と、４ポートのＵＡＲＴ Ｉ／Ｆ（インタフェース）２２−１〜２２−４と、受信データ検出回路２３と、クロック発生器２４とで構成され、ＰＬＤ２５（プログラマブル・ロジック・デバイス）内部に形成されている。ＵＡＲＴ Ｉ／Ｆ２２−１〜２２−４及びクロック発生器２４には、ＰＬＤ２５の外部からシステムクロックが供給される。
【００２１】
また、ＰＬＤ２５内部には、ＣＰＵ２１に接続する形で、後述するプログラムを記憶したＲＯＭ２６と、ワークエリア用のＲＡＭ２７が設けられている。（尚、ＲＯＭ２６及びＲＡＭ２７は、外付専用ＩＣでもよい。）
【００２２】
ＣＰＵ２１は、各ポートのＵＡＲＴ Ｉ／Ｆ（ＵＡＲＴ Ｉ／Ｆ２２−１，２２−２，２２−３，２２−４をそれぞれポート１，２，３，４とする）に対応して、それぞれデータ送受信端子Ｔｘ／Ｒｘと外部割込みトリガ（ＩＮＴ）入力用端子と通信状態フラグ出力用端子とを有している。（通信状態フラグについては後述する。）
【００２３】
ＵＡＲＴ Ｉ／Ｆ２２−１〜２２−４は、それぞれドライバ／レシーバ（例えばＲＳ−２３２Ｃドライバ／レシーバ）２８−１〜２８−４を介して、対向装置（通信の相手方の装置）２９−１〜２９−４に接続ケーブル３０−１〜３０−４で接続されている。ＣＰＵ２１と対向装置２９−１〜２９−４との間では、調歩同期方式のシリアル通信（例えばＲＳ−２３２Ｃ通信）が行われる。
【００２４】
各ＵＡＲＴ Ｉ／Ｆ２２−１〜２２−４のデータフォーマットは、スタートビット＋データビット＋パリティビット＋ストップビットで構成されている。一般的に、スタートビットは１Ｂｉｔであり、データビットは７，８，９Ｂｉｔに設定でき、パリティビットはＯｄｄ，Ｅｖｅｎ，Ｎｏｎｅに設定でき、ストップビットは１，２Ｂｉｔに設定できる仕様になっている。
【００２５】
各ＵＡＲＴ Ｉ／Ｆ２２−１〜２２−４のボーレートは、異なる数値が段階的に設定できる仕様になっている。本実施例では、図３に示すように、データフォーマットは、スタートビット（１）＋データビット（８）＋パリティビット（１）＋ストップビット（１）の計１１Ｂｉｔとし、ボーレートは、３８．４ｋｂｐｓとする。したがって、１キャラクタデータ時間長は、１１÷３８４００ｂｐｓ≒２８６ｕｓｅｃである。
【００２６】
図示しない電源がオンし、クロック発生器２４からＣＰＵ２１に対してクロック（以下、ＣＰＵ動作クロックと呼ぶ）が供給されると、ＣＰＵ２１はプログラムに従って動作を開始する。（クロック発生器２４から出力されるクロックの周波数については後述する。）
【００２７】
ＣＰＵ２１が実行するプログラムは、図４に示すように、メインルーチンと受信割込ルーチンから構成されている。定常時には、メインルーチンが動作している。まず、ポート１についての通信状態フラグがアクティブ（“Ｈ”）かを検出する（ステップ１）。アクティブの場合には、ポート１での送受信処理を実行し（ステップ２）、送受信処理の終了後にポート１についての通信状態フラグをネガティブ（“Ｌ”）にする（ステップ３）。また、ステップ１にて、通信状態フラグがネガティブの場合には、アイドル状態と認識して、ステップ２およびステップ３をスキップする。
【００２８】
同様にして、ポート２〜４の処理を行い（ステップ４〜１２）、これらステップ１〜１２を定常的にループ状に繰り返す。従って、各ポート１〜４についての通信状態フラグに応じて、自動的に、通信状態フラグがアクティブのポートのみで送受信処理が行われ、通信状態フラグがネガティブのポートではアイドル状態として送受信処理が行われない。
【００２９】
受信割込ルーチンは、ＵＡＲＴ Ｉ／Ｆ２２−１〜２２−４のうちデータ受信を検出したＵＡＲＴ Ｉ／Ｆからの割込トリガ信号が外部割込みトリガ（ＩＮＴ）入力用端子に入力されると起動し、そのＵＡＲＴ Ｉ／Ｆから受信データを引き取り（ステップ２０）、そのＵＡＲＴ Ｉ／Ｆのポートについての通信状態フラグをアクティブにする（ステップ２１）。
【００３０】
ＣＰＵ２１からは、このメインルーチン及び受信割込ルーチンによって切り替えられる各ポートについての通信状態フラグ（計４ビット）が、図２に示すように、通信状態フラグ出力用端子から出力されてクロック発生器２４に供給される。
【００３１】
尚、図４には、ＯＳ無しで、メインルーチンにて各ポートを順次処理する構成のプログラムを例示した。しかし、これに限定されるものではなく、例えば、ＯＳを使用し、優先度の高い処理から随時実行する優先度処理構成のプログラムにしてもよく、要は、各ポートについての通信状態フラグを出力する機能が設けられていればよい。
【００３２】
次に、図２の受信データ検出回路２３について説明する。受信データ検出回路２３は、各ポート１〜４（各ＵＡＲＴ Ｉ／Ｆ２２−１〜２２−４）にそれぞれ対応して、図５に示すような構成のブロックを４系統有している。
【００３３】
受信データ検出回路２３の各ブロックは、次のような回路で構成されており、３２ＭＨｚのシステムクロックに同期して動作する。
・対応するＵＡＲＴ Ｉ／Ｆに図２のドライバ／レシーバから入力されるシリアル受信データが分岐して入力されるレジスタ（Ｄ型フリップ・フロップ）３１
・レジスタ３１の出力が入力されるレジスタ（Ｄ型フリップ・フロップ）３２
・レジスタ３１の反転出力及びレジスタ３２の出力が入力されるアンド回路３３
・アンド回路３３の出力がセット端子に入力されるとともに、後述するデコーダ３６の出力がリセット端子に入力されるレジスタ（ＲＳフリップ・フロップ）３４
・アンド回路３３の出力がロード端子に入力されるカウンタ３５
・カウンタ３５のカウント出力が入力されるデコーダ３６
【００３４】
図６は、受信データ検出回路２３の動作を示すタイミングチャートである。レジスタ３１の反転出力（現在のビットの受信データを反転したもの）とレジスタ３２の出力（１ビット前の受信データ）との論理積であるアンド回路３３の出力が“Ｈ”になったとき、スタートビット（図３に示したように“Ｈ”から“Ｌ”への切り替わり）が検出され、レジスタ３４の出力（データ受信フラグ）が“Ｈ”にセットされる。
【００３５】
同時に、アンド回路３３の出力が“Ｈ”になることにより、２８６ｕｓｅｃを１サイクルだけカウントするカウンタ３５がスタートし、デコーダ３６によって２８６ｕｓｅｃの経過が検出されたとき、レジスタ３４の出力（データ受信フラグ）が“Ｌ”にリセットされる。
【００３６】
受信データ検出回路２３の各ブロックでは、このようにして、対応するＵＡＲＴ Ｉ／Ｆのシリアル受信データのスタートビットをエッジ検出し、この検出時から１キャラクタデータの受信完了までの期間を通信状態と判断して、データ受信フラグを“Ｈ”で出力する。これ以外の期間は、非通信状態と判断して、データ受信フラグを“Ｌ”で出力する。
【００３７】
受信データ検出回路２３からは、各ポート１〜４についてのこのデータ受信フラグ（計４ビット）が、図２に示すようにクロック発生器２４に供給される。
【００３８】
この受信データ検出回路２３と、図４に示したＣＰＵ２１の通信状態フラグ出力機能とで、本願発明の請求項における通信状態検出手段が構成されている。
【００３９】
なお、図６に示したようにデータ受信フラグはスタートビットとほぼ同時のタイミングで“Ｈ”になるが、通信状態フラグはその後のＣＰＵ２１への割込トリガ信号に基づいてアクティブ（“Ｈ”）になる。したがって、或るポートについてのデータ受信フラグが“Ｈ”になるタイミングは、そのポートについての通信状態フラグがアクティブになるタイミングよりも早い。
【００４０】
次に、図２のクロック発生器２４について説明する。図７は、クロック発生器２４の構成を示す図である。クロック発生器２４は、次のような回路で構成されており、６４ＭＨｚのシステムクロックに同期して動作する。
・各ポート１〜４についての通信状態フラグ及びデータ受信フラグがそれぞれ入力されるオア回路４０〜４３
・オア回路４０〜４３の出力が入力されるデコーダ４４
・カウンタ４５，４７，４９
・カウンタ４５，４７，４９のカウント出力がそれぞれ入力されるデコーダ４６，４８，５０
・トグルレジスタ（反転出力端子がデータ入力端子に接続されたＤ型フリップ・フロップ）５１
・後述するオア回路５７の出力がイネーブル端子に入力されるクロック生成レジスタ（反転出力端子がデータ入力端子に接続された、イネーブル端子付きＤ型フリップ・フロップ）５２
・デコーダ４４のポートＡからの出力とデコーダ４６の出力とが入力されるアンド回路５３
・デコーダ４４のポートＢからの出力とデコーダ４８の出力とが入力されるアンド回路５４
・デコーダ４４のポートＣからの出力とデコーダ５０の出力とが入力されるアンド回路５５
・デコーダ４４のポートＤからの出力とトグルレジスタ５１の出力とが入力されるアンド回路５６
・アンド回路５３〜５６の出力が入力されるオア回路５７
【００４１】
前述のように、或るポートについてのデータ受信フラグが“Ｈ”になるタイミングは、そのポートについての通信状態フラグがアクティブ（“Ｈ”）になるタイミングよりも早い。したがって、各オア回路４０〜４３の出力は、対応するポートについてのデータ受信フラグが“Ｈ”になったタイミングで“Ｈ”になり、その後そのポートについての通信状態フラグがネガティブ（“Ｌ”）に切り替えられたタイミングで“Ｌ”になる。
【００４２】
デコーダ４４は、オア回路４０〜４３の合計４ビットの出力のうち、“Ｈ”のビット数が０または１である場合にはポートＡのみから“Ｈ”を出力し、“Ｈ”のビット数が２である場合にはポートＢのみから“Ｈ”を出力し、“Ｈ”のビット数が３である場合にはポートＣのみから“Ｈ”を出力し、“Ｈ”のビット数が４である場合にはポートＤのみから“Ｈ”を出力する。
【００４３】
このようにして、ポート１〜４のうち通信状態にあるポート数が求められる。すなわち、いずれかのポートデータ受信フラグが“Ｈ”になったタイミング（オア回路４０〜４３のうちそのポートに対応するオア回路の出力が“Ｈ”になったタイミング）で、そのポートが通信状態にあるポートの数に含められ、その後、いずれかのポートについての通信状態フラグがネガティブ（“Ｌ”）に切り替えられたタイミング（そのポートに対応するオア回路の出力が“Ｌ”になったタイミング）で、そのポートが通信状態にあるポートの数から除かれる。
【００４４】
カウンタ４５は、システムクロック（６４ＭＨｚ）を動作クロックとして０〜７までの８値を繰返しカウントし、デコーダ４６は、カウンタ４５の出力が７になったときに“Ｈ”を出力する。
【００４５】
カウンタ４７は、システムクロックを動作クロックとして０〜３までの４値を繰返しカウントし、デコーダ４８は、カウンタ４７の出力が３になったときに“Ｈ”を出力する。
【００４６】
カウンタ４９は、システムクロックを動作クロックとして０〜２までの３値を繰返しカウントし、デコーダ５０は、カウンタ４９の出力が２になったときに“Ｈ”を出力する。
【００４７】
図８は、クロック発生器２４の動作を示すタイミングチャートである。オア回路４０〜４３の合計４ビットの出力のうち、“Ｈ”のビット数が０または１である場合には、カウンタ４５の出力が７になったタイミングで、アンド回路５３からイネーブルＡが出力される。
【００４８】
他方、オア回路４０〜４３の出力のうち、“Ｈ”のビット数が２である場合には、カウンタ４７の出力が３になったタイミングで、アンド回路５４からイネーブルＢが出力される。
【００４９】
他方、オア回路４０〜４３の出力のうち、“Ｈ”のビット数が３である場合には、カウンタ４９の出力が２になったタイミングで、アンド回路５５からイネーブルＣが出力される。
【００５０】
他方、オア回路４０〜４３の出力のうち、“Ｈ”のビット数が４である場合には、システムクロックを動作クロックとするトグルレジスタ５１の出力が“Ｈ”になったタイミングで、アンド回路５６からイネーブルＤが出力される。
【００５１】
そして、オア回路５７によるイネーブルＡ〜Ｄの論理和がクロック生成レジスタ５２のイネーブル端子に入力することにより、クロック生成レジスタ５２から次のようなＣＰＵ動作クロックが出力される。
・イネーブルＡが有効のときには、ＣＰＵ動作クロックＡ（４ＭＨｚ）が出力される。
・イネーブルＢが有効のときには、ＣＰＵ動作クロックＢ（８ＭＨｚ）が出力される。
・イネーブルＣが有効のときには、ＣＰＵ動作クロックＣ（１２ＭＨｚ）が出力される。
・イネーブルＤが有効のときには、ＣＰＵ動作クロックＤ（１６ＭＨｚ）が出力される。
【００５２】
下記の表１は、このＣＰＵ動作クロックの周波数と、オア回路４０〜４３の合計４ビットの出力のうちの“Ｈ”のビット数との対応関係を示したものである。
【表１】
2007036472.tif 000003
【００５３】
このＣＰＵ動作クロックの周波数は、プログラムの処理量に応じて設定されている。本実施例では、１ポートのみが図２の対向装置と定常的に通信を行う場合（他の３ポートが全てアイドル状態の場合）の処理に要するプログラムのマシン語ベースでのステップ数が１キャラクタデータ当たり１０００ステップ必要なので、１キャラクタデータ時間長（図３に示したように約２８６ｕｓｅｃ）に対して、ＣＰＵ動作クロックの周期は２８６ｕｓｅｃ÷１０００＝２８６ｎｓｅｃ以下でなければならない。故に、ＣＰＵ動作クロック周波数は、１÷２８６ｎｓｅｃ≒３．５ＭＨｚ以上必要ということになる。
【００５４】
本実施例では、表１における“Ｈ”の数＝１のときがこれに該当し、このＣＰＵ動作クロック周波数（基本周波数）を４ＭＨｚとしている。
【００５５】
同様にして、表１における“Ｈ”の数＝２のとき、即ち、２つのポートが対向装置と定常的に通信を行う場合（他の２ポートがアイドル状態の場合）には、基本周波数の２倍（８ＭＨｚ）がＣＰＵ動作クロック周波数となる。以下、同様にして、“Ｈ”の数＝３のときは３倍（１２ＭＨｚ）、“Ｈ”の数＝４のときは４倍（１６ＭＨｚ）となる。
【００５６】
尚、本実施例では、“Ｈ”の数＝０のときにＣＰＵ動作クロック周波数を４ＭＨｚとしたが、これに限定されるものではなく、“Ｈ”の数＝０のときはＣＰＵ２１に供給するクロックを止める構成にしてもよい。
【００５７】
以上のように、本実施例によれば、１個のＣＰＵ２１で４ポート構成のデジタル通信装置を容易に設計できるので、この結果、部品点数を減らすことができ、部品コストの低減や実装面積の縮小化を図ることができる。そして、ＣＰＵ２１が実行するプログラムを保存するＲＯＭ２６やワークエリア用のＲＡＭ２７もＰＬＤ２５内部に設けられているので、更なる部品点数の削減や実装面積の縮小化を図ることができる。
【００５８】
また、下記の表２に、従来例および本実施例における消費電力シミュレーション値の比較を示すが、この表２からも分かるように、通信状態検出手段によって、通信状態にあるポート数をリアルタイムに検出しながら、ＣＰＵ動作クロック周波数を、これらポート数の通信処理が正常に行える最小値に制御することで、通信状態のポート数に応じてＣＰＵ動作クロックの最適化が図れ、ＣＰＵ２１の消費電力を低減させることができる。
【表２】
2007036472.tif 000004
【００５９】
更に、設計資産流用の観点から、３ポート以下の用途において、本構成をそのまま流用しても、無駄な消費電力を発生させずに済ませることができ、各ポート数毎に新たなデジタル通信装置を開発する手間を省き、開発費を低減することができる。
【００６０】
また、クロック発生器２４はＣＰＵ２１からの通信状態フラグと受信データ検出回路２３からのデータ受信フラグとの論理和をオア回路４０〜４３で求めることによって通信状態にあるポート数を求めているが、前述のように、或るポートについてのデータ受信フラグが“Ｈ”になるタイミングは、そのポートについての通信状態フラグがアクティブになるタイミングよりも早い。したがって、クロック発生器２４は、通信状態フラグがアクティブになるまで待つことなく、より早いタイミングで、そのポートを通信状態にあるポートの数に含めることになる。
【００６１】
これにより、ＣＰＵ動作クロック周波数を切り替えるための調整期間を長くとることができ、ＣＰＵ動作クロック周波数の最適化精度を上げることができる。
【実施例２】
【００６２】
図９は、本発明を適用したデジタル通信装置の別の構成例を示す図であり、図２と共通する部分には同一の符号を付している。このデジタル通信装置６０は、図２のデジタル通信装置２０と異なり、受信データ検出回路２３を無くし、ＣＰＵ２１の通信状態フラグ出力機能のみで通信状態検出手段を構成している。また、クロック発生器６２の構成及び動作は、図２のクロック発生器２４と異なっている。それ以外の部分の構成及び動作は、図２のデジタル通信装置２０と同じである。
【００６３】
図１０は、図９のクロック発生器６２の構成を示す図であり、図７と共通する部分には同一の符号を付している。図７のクロック発生器２４と異なり、オア回路４０〜４３を無くしており、ＣＰＵ２１からの通信状態フラグが直接デコーダ４４に入力される。
【００６４】
これにより、いずれかのポートについての通信状態フラグがアクティブ（“Ｈ”）に切り替えられたタイミングで、そのポートが通信状態にあるポートの数に含められ、その後、いずれかのポートについての通信状態フラグがネガティブに切り替えられたタイミングで、そのポートが通信状態にあるポートの数から除かれる。クロック発生器６２のそれ以外の部分の構成及び動作は、図７のクロック発生器２４と同じである。
【００６５】
この実施例２では、各ポート１〜４の通信状態と非通信状態との判別を、プログラムだけで行う。したがって、ハードウェア構成を簡略化でき、更なる部品点数の削減や実装面積の縮小化を図ることができる。
【００６６】
また、クロック発生器６２は、図７のクロック発生器２４よりも遅いタイミング（通信状態フラグがアクティブになったタイミング）で、そのポートを通信状態にあるポートの数に含めることになる。したがって、各ポートが通信状態にあるポートの数に含まれる期間が実施例１よりも短くなるので、ＣＰＵ動作クロックの周波数を高くする期間が実施例１よりも短くなる。これにより、無駄な消費電力を更に低減することができる。
【００６７】
なお、以上の各実施例では、ＵＡＲＴ Ｉ／Ｆからのデータ受信をトリガとして通信状態を検出するスレーブ構成のデジタル通信装置を例示したが、これに限定されるものではなく、マスタとして使用する場合には、ＣＰＵ２１が実行するプログラム内に、送信処理を起動した期間だけ通信状態フラグをアクティブにする処理を追加すればよい。
【００６８】
また、以上の各実施例では、ＵＡＲＴ Ｉ／Ｆにシステムクロックを供給する構成にしたが、これに限定されるものではなく、ＣＰＵ２１に供給するのと同じクロック（ＣＰＵ動作クロック）をＵＡＲＴ Ｉ／Ｆに供給してもよい。但し、その場合には、ＣＰＵ動作クロックの周波数が変わってもＵＡＲＴ Ｉ／Ｆが正常に動作するように、ＵＡＲＴ Ｉ／Ｆ内部の回路構成を調整する必要がある。
【００６９】
また、以上の各実施例における受信データ検出回路２３，クロック発生器２４，クロック発生器６２は、図５，図７，図１０に示したような回路構成に限定されるものではなく、システムクロックに同期して図５，図７，図１０の回路と同等の動作を行うデジタル回路であればよい。
【００７０】
また、以上の各実施例では、クロック発生器２４，６２に６４ＭＨｚのシステムクロックを供給しているが、これに限定されるものではなく、例えば、デジタルＰＬＬ回路等を使用することにより、クロック発生器２４，６２に供給するシステムクロックを３２ＭＨｚに下げ、更なる消費電力の低減を図ることもできる。
【００７１】
また、以上の各実施例では、４ポート構成のデジタル通信装置を例示したが、これに限定されるものではなく、２ポート，３ポートまたは５ポート以上の構成にしてもよい。
【００７２】
また、以上の各実施例ではＰＬＤの使用を前提としたが、これに限定されるものではなく、汎用のＣＰＵやＩＣを使ってもよい。
【００７３】
また、以上の各実施例では通信インタフェースとしてＵＡＲＴ Ｉ／Ｆを例示したが、これに限定されるものではなく、例えば、Ｉ２Ｃ，ＬＶＤＳ、Ｅｔｈｅｒｎｅｔ，ＩＥＥＥ１３９４など、あらゆる通信インタフェースを用いるデジタル通信装置に本発明を適用してよい。
【図面の簡単な説明】
【００７４】
【図１】従来の４ポートデジタル通信装置の構成例を示す図である。
【図２】本発明を適用した４ポートデジタル通信装置の構成例を示す図である。
【図３】図２のＵＡＲＴ Ｉ／Ｆのデータフォーマット等を示す図である。
【図４】図２のＣＰＵが実行するプログラムを示す図である。
【図５】図２の受信データ検出回路の構成を示す図である。
【図６】受信データ検出回路の動作のタイミングチャートである。
【図７】図２のクロック発生器の構成を示す図である。
【図８】クロック発生器の動作のタイミングチャートである。する図である。
【図９】本発明を適用した４ポートデジタル通信装置の別の構成例を示す図である。
【図１０】図９のクロック発生器の構成を示す図である。
【符号の説明】
【００７５】
２０，６０  デジタル通信装置、  ２１  ＣＰＵ、  ２２−１〜２２−４  ＵＡＲＴ Ｉ／Ｆ、  ２３  受信データ検出回路、  ２４，６２  クロック発生器、  ２５  ＰＬＤ、  ２６  ＲＯＭ、  ２７  ＲＡＭ、  ２８−１〜２８−４  ドライバ／レシーバ、  ２９−１〜２９−４  対向装置、  ３１，３２，３４  レジスタ、  ３３  アンド回路、  ３５  カウンタ、  ３６  デコーダ、  ４０〜４３  オア回路、  ４４  デコーダ、  ４５，４７，４９  カウンタ、  ４６，４８，５０  デコーダ、  ５１  トグルレジスタ、  ５２  クロック生成レジスタ、  ５３〜５６  アンド回路、  ５７  オア回路
【図１】
2007036472.tif 000005
【図２】
2007036472.tif 000006
【図３】
2007036472.tif 000007
【図４】
2007036472.tif 000008
【図５】
2007036472.tif 000009
【図６】
2007036472.tif 000010
【図７】
2007036472.tif 000011
【図８】
2007036472.tif 000012
【図９】
2007036472.tif 000013
【図１０】
2007036472.tif 000014