(57)【要約】【課題】シリアル通信専用デバイスによるシリアル通信と、ＣＰＵによるシリアル通信とを動的に選択して、常に速度の速いシリアル通信を可能とする通信装置を提供する。【解決手段】接続された対象デバイス２０に対して、シリアル通信専用のデバイス４を介してシリアル通信する手段と、ＣＰＵ２のデータ転送制御にしたがいシリアル通信する手段とを備えた通信装置１０であって、ＣＰＵ負荷を判断する判定基準１ａを設けており、シリアルデータ転送の要求があったときには、該判定基準１ａにもとづいて、ＣＰＵ負荷が高いと判断したときはシリアル通信専用のデバイス４でデータ転送させる一方、ＣＰＵ負荷が低いと判断したときはＣＰＵ２のデータ転送制御によりデータ転送させるデータ転送選択手段１を有している。【選択図】図１
2006350891.tif 000002
【特許請求の範囲】
【請求項１】
接続された対象デバイスに対して、シリアル通信専用のデバイスを介してシリアル通信する手段と、ＣＰＵのデータ転送制御にしたがいシリアル通信する手段とを備えた通信装置であって、
ＣＰＵ負荷を判断する判定基準を設けており、シリアルデータ転送の要求があったときには、該判定基準にもとづいて、ＣＰＵ負荷が高いと判断したときはシリアル通信専用のデバイスでデータ転送させる一方、ＣＰＵ負荷が低いと判断したときはＣＰＵのデータ転送制御によりデータ転送させるデータ転送選択手段を有していることを特徴とする通信装置。
【請求項２】
請求項１において、
上記データ転送選択手段は、実行中タスクの優先順位によりＣＰＵ負荷を判定していることを特徴とする通信装置。
【請求項３】
請求項１において、
上記データ転送選択手段は、装置内で計測され保存されているＣＰＵ負荷率にもとづいてＣＰＵ負荷を判定していることを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象デバイスに対して、シリアル通信専用デバイスによるシリアル転送と、ＣＰＵによるシリアル転送とが可能なハード構成を有した通信装置に関するものである。
【背景技術】
【０００２】
対象デバイスに対してデータをシリアル通信する場合、データ転送をシリアル通信専用デバイスで制御するか、ＣＰＵの入出力ポートで接続制御するか、いずれかの方法がとられている。
【０００３】
シリアル通信専用デバイスでデータ転送する場合、データ転送のスピードは、クロック（動作周波数）によって左右する。クロックは装置に搭載したクロック発振器によって決まるが、シリアル通信専用デバイス専用に速度の速いクロック発振器が搭載されればよいが、通常、既存のものが併用されるため、必ずしも高速のデータ転送が望めるとは限らず、そのときのＣＰＵの実行状態によっては、ＣＰＵの入出力ポートを介して出力したほうが専用デバイスを使うより速い場合がある。
【０００４】
なお、次の特許文献には、高速クロックに切り替えてオンボード書き換えを短縮する技術が開示されている。
【特許文献１】特開２００２−１８３１０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、専用デバイスによる転送速度はクロックにより一定であるが、入出力ポートによる転送速度は、そのときのＣＰＵの実行状態によって可変であるため、常に高速なシリアル通信を実行可能とするためには、速度の速いほうを判別して動的に切り替えなければならない。
【０００６】
本発明は、上記の事情を考慮して提案されたもので、シリアル通信専用デバイスによるシリアル通信と、ＣＰＵによるシリアル通信とを動的に選択して、常に速度の速いシリアル通信を可能とする通信装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、請求項１に記載の通信装置は、接続された対象デバイスに対して、シリアル通信専用のデバイスを介してシリアル通信する手段と、ＣＰＵのデータ転送制御にしたがいシリアル通信する手段とを備えた通信装置であって、ＣＰＵ負荷を判断する判定基準を設けており、シリアルデータ転送の要求があったときには、該判定基準にもとづいて、ＣＰＵ負荷が高いと判断したときはシリアル通信専用のデバイスでデータ転送させる一方、ＣＰＵ負荷が低いと判断したときはＣＰＵのデータ転送制御によりデータ転送させるデータ転送選択手段を有していることを特徴としている。
【０００８】
請求項２では、データ転送選択手段は、実行中タスクの優先順位によりＣＰＵ負荷を判定していることを特徴とする。
【０００９】
請求項３では、データ転送選択手段は、装置内で計測され保存されているＣＰＵ負荷率にもとづいてＣＰＵ負荷を判定していることを特徴とする。
【発明の効果】
【００１０】
請求項１〜３に記載の通信装置によれば、ＣＰＵ負荷にもとづいて、シリアル通信を、シリアル通信専用デバイスにより出力するか、ＣＰＵによりポート出力するかを動的に選択して実行しているため、ＣＰＵの負荷の低いときにはＣＰＵによる高速なソフト通信が選択でき、ＣＰＵ負荷の高いときには専用デバイスによる一定の速度を有したハード通信を選択することができ、効率のよいシリアル通信を実施することができる。
【００１１】
請求項２によれば、実行中タスクの優先順位によってＣＰＵ負荷の判断を行っているので、ＣＰＵ負荷率などの計測を行っていないＯＳであっても、確実に判定することができる。また、シリアル通信の要求があったときのタスクの状態で判別するため、リアルタイムな負荷状態を判断することができる。
【００１２】
請求項３によれば、ＣＰＵ負荷を、測定、保存されているＣＰＵ負荷率により判定しているので、簡易にハード／ソフトの判定をすることができる。また、負荷率を基準値と比較するだけであるため、判定基準値の調整も容易である。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明の実施の形態について、図面とともに説明する。
【実施例１】
【００１４】
図１は、本発明の通信装置の要部構成の一例を示すブロック図である。
【００１５】
この通信装置１０は、後述するデータ転送選択手段１と、通信制御の中核をなすＣＰＵ２と、外部接続デバイス２０との間で、ＣＰＵ２とソフトウェアとが協働しながらシリアル通信を行うための入出力ポート３と、外部接続デバイス２０との間で、ＣＰＵ２から受け渡されたデータをシリアルに変換してデータ転送するシリアル通信専用デバイス４と、ＣＰＵ２やシリアル通信専用デバイス４に対してクロックを発振するクロック発振器５と、接続端子６と、メモリ（不図示）などを少なくとも備えている。
【００１６】
つまり、この通信装置１０は、ＣＰＵ２だけでなく、入出力ポート、ＲＯＭ、ＲＡＭなどのメモリ、タイマ、ＬＣＤドライバ、Ａ−Ｄコンバータ、その他各種デバイスなどの周辺機器までをも１チップ上に集積したワンチップマイコンを含むものとして位置付けられる。
【００１７】
また、本通信装置１０は、複数タスクを時分割に並行処理するようスケジューリングするＯＳ（オペレーティングシステム）（不図示）を備えており、タスクの実行要求があったときには、各タスクに定められた優先順位を参照しながらタスクの実行を決定する構成となっている。
【００１８】
外部接続デバイス２０は、例えばメモリ書き込み装置などで構成され、通信装置１０からシリアル転送されてきたデータをメモリに書き込む基本動作を実行する。
【００１９】
データ転送選択手段１は、上記入出力ポート３を介した通信と、シリアル通信専用デバイス４を介した通信とを、所定の判定基準１ａにもとづいて選択切り替えしてデータ転送する機能を有している。
【００２０】
判定基準１ａは、通信装置１０が動作しているときに、リアルタイムにＣＰＵ２の負荷の高低を判別するためのもので、例えば図２に示すような判定基準データが用いられる。
【００２１】
図２（ａ）はＯＳの記憶領域等に設けられているタスク状態テーブルＡ、（ｂ）は同様にＯＳの記憶領域等に設けられているタスク優先順位設定テーブルＢである。
【００２２】
ＯＳを介して起動された複数のタスクは時分割に並行処理されるが、ＣＰＵ２が１つであるため同時処理はできず、起動された複数タスクはＯＳのスケジューリングにしたがって、実行状態、実行可能状態、待ち状態などの複数のタスク状態の間を遷移する。
【００２３】
タスク状態テーブルＡは、起動された複数タスクがどの状態にあるかを保存したデータテーブルで、このテーブルを参照すれば、その時点で、どのタスクがどのような状態にあるかを判別することができる。図例のテーブルＡには、実行（Ｒｕｎ）、実行可能（Ｒｅａｄｙ）、待ち（Ｗａｉｔ）の各状態にあるタスクのタスクＩＤ、ステータス、実行アドレスなどの情報が保存されている。
【００２４】
実行可能状態とは起動されたタスクが実行を待っている状態で、その後、ＣＰＵ２の使用権が割り当てられると実行状態へ遷移する。次に、実行状態のときにディスク等への入出力要求があると実行を一時中断し待ち状態に遷移し、入出力動作が終了すると実行可能状態に遷移する。また、実行状態のときに、優先順位の高い他のタスクからＯＳに対して実行要求があったり、あらかじめ設定されたＣＰＵ使用時間が切れたりすると、ＣＰＵ２の使用権が他のタスクに移り実行可能状態へ遷移する。このように、タスクが起動されると、タスクの処理が終了するまでの間、他のタスクの状態、タスク間の優先順位の関係、入出力の有無などが要因となって、各種状態間の遷移を繰り返す。
【００２５】
また、タスク優先順位設定テーブルＢは、登録されているタスクの実行時の優先順位をあらかじめ設定した情報テーブルで、ＯＳが上記のようなタスクスケジューリングを行うために参照する。
【００２６】
以上のようなタスクスケジューリング動作によれば、優先順位の低いタスクが実行状態にあれば、そのときは、起動されたタスクが少なく、つまりＣＰＵ２の負荷は低いものと判断することができる。もちろん、タスクの実行がないアイドル状態であれば、ＣＰＵ２の負荷はより低いものと判断できる。
【００２７】
図３は、シリアル通信の要求があったときのデータ転送選択手段１の動作例を示すフローチャートである。ここでは、図２に示したタスク状態テーブルＡに保存されているタスクの実行状態を参照してＣＰＵ２の負荷を判別する方法例を示している。なお、このデータ転送選択手段１自身は、タスクの状態を判別しなければならないため、タスクとしては動作せず、ＯＳの内部処理または割込み処理として動作する。
【００２８】
シリアル通信の要求があると、タスク状態テーブルＡを参照し、実行中のタスクの有無を判別し、実行中タスクがあるときは、実行状態にあるタスクのＩＤを取得し、そのタスクＩＤをキーとしてタスク優先順位設定テーブルＢから該実行中タスクの優先順位を参照し、その優先順位が最下位レベルか否かを判別する（図３のステップ１０１〜１０４）。実行中のタスクがないとき、または実行状態のタスクの優先順位が最下位レベルであれば、接続端子６を入出力ポート３に切り替えてソフトによるシリアル通信を実行する一方（ステップ１０３〜１０６）、最下位レベルでないタスクが実行中であれば、接続端子６をシリアル専用デバイス４に切り替えてハードによるシリアル通信を実行する（ステップ１０４、１０７、１０８）。
【００２９】
すなわち、データ転送選択手段１は、シリアル通信要求時に、実行中のタスクがないか、実行中のタスクの優先順位が最下位レベルであることを検出すれば、そのときのＣＰＵ２の負荷は高くないものと判断してソフト通信を選択しており、その結果、高速のデータ転送を可能としている。また、実行タスクが最下位レベルでなければ、シリアル通信要求時のＣＰＵ２の負荷は高いものと判断しており、そのときには、速度の一定したハード通信を選択している。
【００３０】
なお、接続端子６の切り替えは、設定レジスタ（不図示）などに、ソフト／ハード区分データを書き込むことによって行うようにしている。
【００３１】
このように、タスクの実行状態を参照しているため、タイムラグがなくリアルタイムなＣＰＵ負荷の高低が判断でき、そのため、常に高速なシリアル通信を実施することができる。また、ここでは優先順位が最下位レベルより高いときにハード通信を選択するようにしているが、判定基準レベルを変えながら速度を測定比較して、最適の判定基準レベルを決定すればよい。
【００３２】
また、判定基準として、ＯＳによって測定されたＣＰＵ負荷率を利用してもよい。例えば、ＣＰＵ負荷率による判定基準値を１０％とし、１０％未満であればソフト通信に切り替え、１０％以上であればハード通信に切り替えるようにすればよい。これについても、ＣＰＵ負荷率の判定基準値を変えながら速度を測定比較して、最適のレベルを決定すればよい。
【００３３】
ＣＰＵ負荷率は定期的に測定しているため、少しのタイムラグがあるが、ＣＰＵ負荷率と基準値とを比較するだけの簡易な手法であるため、簡便な切り替えを実施することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の通信装置の要部構成の一例を示すブロック図である。
【図２】判定基準を説明するための図で、（ａ）は判定基準として参照するタスク状態テーブル、（ｂ）はタスク優先順位設定テーブルである。
【図３】本発明の基本動作の一例を示すフローチャートである。
【符号の説明】
【００３５】
１０      通信装置
１      データ転送選択手段
１ａ      判定基準
２      ＣＰＵ
３      入出力ポート
４      シリアル通信専用デバイス
５      クロック発振器
６      接続端子
２０      外部接続デバイス
Ａ      タスク状態テーブル
Ｂ      タスク優先順位設定テーブル
【図１】
2006350891.tif 000003
【図２】
2006350891.tif 000004
【図３】
2006350891.tif 000005