(57)【要約】【課題】スレーブＣＰＵが必要とするマスタＣＰＵとの通信の頻度は、動作状況によって異なる。マスタＣＰＵとスレーブＣＰＵの通信にポーリング方式が採用されている場合、スレーブＣＰＵの動作状況に関わらず、マスタＣＰＵとスレーブＣＰＵの通信は、一定頻度で行われる。そのため、スレーブＣＰＵが必要とする頻度以上で、スレーブＣＰＵがマスタＣＰＵと通信できない場合がある。【解決手段】各スレーブＣＰＵの動作状況を監視し、監視された動作状況に基づいて、上記マスタＣＰＵと通信するスレーブＣＰＵの順序を決定し、決定された順序に基づいて上記マスタＣＰＵと上記各スレーブＣＰＵを通信させる。順序の決定をスレーブＣＰＵの動作状況に基づいて行うことで、どのような動作状況の下であっても、スレーブＣＰＵが必要とする頻度以上で、スレーブＣＰＵがマスタＣＰＵと通信できる。【選択図】図２
2005341372.tif 000002
【特許請求の範囲】
【請求項１】
マスタＣＰＵと複数の何れかのスレーブＣＰＵとの通信を制御する通信制御装置において、
上記各スレーブＣＰＵの動作状況を監視する監視手段と、
監視された動作状況に基づいて、上記マスタＣＰＵと通信するスレーブＣＰＵの順序を決定する通信制御手段と、
決定された順序に基づいて上記マスタＣＰＵと上記各スレーブＣＰＵを通信させる通信手段を備えたことを特徴とする通信制御装置。
【請求項２】
上記通信制御手段は、監視された動作状況下での上記各スレーブＣＰＵが必要とするマスタＣＰＵとの通信の頻度以上の通信を各スレーブＣＰＵが確保できるように上記順序を決定する請求項１に記載の通信制御装置。
【請求項３】
上記各スレーブＣＰＵの動作状況に対応する上記マスタＣＰＵと通信するスレーブＣＰＵの順序を記憶する記憶手段を備え、
上記通信制御手段は、監視された動作状況に対応する上記記憶手段に記憶された順序を上記マスタＣＰＵと通信するスレーブＣＰＵの順序として決定する請求項１または２に記載の通信制御装置。
【請求項４】
マスタＣＰＵと複数の何れかのスレーブＣＰＵとの通信が一定間隔で行われ、
上記通信制御手段は、一定間隔で行われる通信の間隔を、監視された動作状況に基づいて変更する請求項１〜３のいずれかに記載の通信制御装置。
【請求項５】
コンピュータに、マスタＣＰＵと複数の何れかのスレーブＣＰＵとの通信の制御を実行させるための通信制御プログラムにおいて、
コンピュータに、
上記各スレーブＣＰＵの動作状況を監視する監視ステップと、
監視された動作状況に基づいて、上記マスタＣＰＵと通信するスレーブＣＰＵの順序を決定する通信制御ステップと、
決定された順序に基づいて上記各スレーブＣＰＵと上記マスタＣＰＵを通信させる通信ステップを実行させることを特徴とする通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵが備えられたプリンタ、ＦＡＸ、複合機等において、複数のＣＰＵ間の通信を制御する通信制御装置及び通信制御プログラムに関する。
【背景技術】
【０００２】
プリンタ、ＦＡＸ、複合機等の画像処理装置は、近年、機能向上が目覚しく、それに比例して各機能の制御が複雑かつ高度となっており、ＣＰＵの負荷の増大を余儀なくされている。そこで、画像処理装置に複数のＣＰＵを備え、複数のＣＰＵに負荷を分散させる技術が特開平９−１０７３５７号にて提案されている。
【０００３】
複数のＣＰＵに負荷を分散させる場合、特開平９−１０７３５７号に記載のように、ＣＰＵは、実際に各機能を実行する複数のスレーブＣＰＵと、スレーブＣＰＵを制御するマスタＣＰＵとに分けられる。
【０００４】
マスタＣＰＵとスレーブＣＰＵの通信方式の１つとしてポーリング方式がある。このポーリング方式の通信では、マスタＣＰＵが、スレーブＣＰＵに対して１つずつ順番に通信する。
【特許文献１】特開平９−１０７３５７号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
スレーブＣＰＵが必要とするマスタＣＰＵとの通信の頻度は、動作状況によって異なる。例えば、スレーブＣＰＵは、待機中に比べ動作中は高い頻度での通信を必要とする。しかし、上記のようなポーリング方式の通信を採用している場合、スレーブＣＰＵが待機中であっても動作中であっても、スレーブＣＰＵとマスタＣＰＵ間の通信は同じ間隔で行われるので、動作中のスレーブＣＰＵが必要とする頻度での通信を実現できないおそれがある。
【０００６】
また、マスタＣＰＵは、複数のスレーブＣＰＵに対して１つずつ順番に通信するため、各スレーブＣＰＵのマスタＣＰＵとの通信の頻度は、スレーブＣＰＵの数が増えると低下する。上述のように、近年ではＣＰＵにかかる負荷が増大しているため、多数のスレーブＣＰＵが画像処理装置に備えられる傾向にあるので、スレーブＣＰＵが必要とする頻度での通信を実現できなくなる可能性が従来にも増して高くなっている。
【０００７】
特開平９−１０７３５７号には、１つの装置に設けられた複数の制御手段に対して通信の優先順位を予め定めておき、優先順位の高い制御手段を優先的に通信させる通信方法が提案されている。しかし、この方法では、制御手段に定められる優先順位は固定であるので、この方法を上記のようなポーリング方式の通信を採用している画像処理装置に適用しても、時間と共に変化する各スレーブＣＰＵの動作状況に応じて各スレーブＣＰＵの通信を制御することができない。
【０００８】
そこで本発明は、動作状況に関わらず各スレーブＣＰＵが必要とする頻度以上で、各スレーブＣＰＵをマスタＣＰＵと通信させる通信制御装置及び通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の通信制御装置及び通信制御プログラムは、各スレーブＣＰＵの動作状況を監視し、各スレーブＣＰＵの動作状況に基づいて、マスタＣＰＵと通信するスレーブＣＰＵの順序を決定する。各スレーブＣＰＵの動作状況に基づいて順序を決定することで、刻々と変化する動作状況に応じた通信の頻度で各スレーブＣＰＵとマスタＣＰＵ間の通信を実現することができる。
【００１０】
また、各スレーブの動作状況を監視して、監視された動作状況下における各スレーブＣＰＵが必要とする頻度以上で、各スレーブＣＰＵがマスタＣＰＵと通信できるように上記順序を決定することで、高い頻度の通信を必要とする動作中のスレーブＣＰＵだけでなく、高い頻度の通信を必要としない待機中のスレーブＣＰＵに対しても必要最低限の頻度の通信を実現させることができる。
【００１１】
上記順序を容易に決定できるようにするために、予測できる各スレーブＣＰＵの動作状況に対応する順序を予め通信制御装置に記憶させておき、通信制御装置は、スレーブＣＰＵの動作状況が変化したとき等に、監視された動作状況に対応する順序を記憶された順序の中から検索して、監視された動作状況に対応した順序を決定するようにしてもよい。
【００１２】
また、監視された動作状況下における各スレーブＣＰＵが必要とする頻度以上の通信を各スレーブＣＰＵが実現できるように、順序の変更と共に、マスタＣＰＵが何れかのスレーブＣＰＵと行う通信の間隔を変更するようにしてもよい。
【発明の効果】
【００１３】
以上で説明したように、各スレーブＣＰＵの動作状況に基づいてマスタＣＰＵと通信するスレーブＣＰＵの順序を決定することで、刻々と変化する動作状況に応じた通信の頻度で各スレーブＣＰＵとマスタＣＰＵ間の通信を実現することができる。
【００１４】
また、監視された動作状況下での各スレーブＣＰＵが必要とする頻度以上で、各スレーブＣＰＵがマスタＣＰＵと通信できるように上記順序を決定することで、各スレーブＣＰＵの動作状況に関係なく、各スレーブＣＰＵは必要最低限の頻度以上の通信を確保することができる。
【００１５】
また、各スレーブＣＰＵの動作状況に対応する順序を予め通信制御装置に記憶させておけば、記憶された順序から監視された動作状況に対応した順序を検索するだけで上記順序を決定することができる。
【００１６】
監視された動作状況に応じて、マスタＣＰＵが何れかのスレーブＣＰＵと行う通信の間隔を短く変更することで、多数のスレーブＣＰＵが高い頻度の通信を必要とする場面であっても、各スレーブＣＰＵが必要とする頻度以上の通信を実現することができる。
【発明を実施するための最良の形態】
【００１７】
本実施の形態では、本発明の通信制御プログラムは、図１に示す複合機１００にインストールされている。図１に示すように、複合機１００は、１つのマスタＣＰＵ１０１と、複数のスレーブＣＰＵ１１１、１１２、１１３と、メモリ１２１を備えている。
【００１８】
上記スレーブＣＰＵ１１１、１１２、１１３は、マスタＣＰＵ１０１の指示を受けて、担当するユニットの制御を行っている。本実施の形態では、上記スレーブＣＰＵ１１１は、ＤＦ（Document Feeder）１１４の制御、上記スレーブＣＰＵ１１２は、用紙を転写部に給紙する給紙ローラ等の給紙ユニット１１５の制御、上記スレーブＣＰＵ１１３は転写部にて画像が印刷された複数枚の用紙をステープル止め等で束ねるフィニッシャ１１６の制御を行っている。
【００１９】
マスタＣＰＵ１０１は、上記スレーブＣＰＵ１１１、１１２、１１３を制御するために、３つのスレーブＣＰＵ１１１、１１２、１１３それぞれと通信を行う。この通信は、メモリ１２１にインストールされている通信制御プログラム２０１によって行われる。
【００２０】
図２に示すように、上記通信制御プログラム２０１は、スレーブＣＰＵ１１１、１１２、１１３の動作状況を監視する監視モジュール２０２、マスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１、１１２、１１３の順序を決定する通信制御モジュール２０３、スレーブＣＰＵ１１１、１１２、１１３とマスタＣＰＵ１０１を通信させる通信モジュール２０４から構成される。
【００２１】
上記監視モジュール２０２は、メモリ１２１からマスタＣＰＵ１０１に定期的にロードされ、各スレーブＣＰＵ１１１、１１２、１１３の動作状況を監視している。動作状況とは、本実施の形態では、動作中であるか待機中であるかということである。動作中であるか待機中であるかを監視するのは、動作中と待機中では、スレーブＣＰＵ１１１、１１２、１１３が必要とするマスタＣＰＵ１０１との通信の頻度が異なるからである。
【００２２】
上記監視モジュール２０２は、監視中にスレーブＣＰＵ１１１、１１２、１１３の何れかの動作状況に変化があると、通信制御モジュール２０３をメモリ１２１からマスタＣＰＵ１０１に呼び出し、通信制御モジュール２０３に変化後の各スレーブＣＰＵ１１１、１１２、１１３の動作状況を渡す（図３、Ｓ３０１）。
【００２３】
通信制御モジュール２０３は、マスタＣＰＵ１０１にロードされると、上記監視モジュール２０２から渡された動作状況に対応するマスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１、１１２、１１３の順序を決定する。上記通信制御モジュール２０３は、この順序を決定するために、まず、メモリ１２１に記憶された通信テーブル４０１を参照する。
【００２４】
通信テーブル４０１は、図４に示すように、動作中及び待機中にスレーブＣＰＵ１１１、１１２、１１３が必要するマスタＣＰＵ１０１との通信の頻度が記述されている。本実施の形態では、図４に示すように、スレーブＣＰＵ１１１は、待機中は５０ｍｓに１回、動作中は２０ｍｓに１回の通信を必要としている。同様に、スレーブＣＰＵ１１２は、待機中は５０ｍｓに１回、動作中は３０ｍｓに１回、スレーブＣＰＵ１１３は、待機中は７０ｍｓに１回、動作中は４０ｍｓに１回の通信を必要としている。
【００２５】
上記通信制御モジュール２０３は、通信テーブル４０１を参照して、上記監視モジュール２０２から受け取った動作状況での各スレーブＣＰＵ１１１、１１２、１１３が必要とする通信の頻度を確認する（図３、Ｓ３０２）。
【００２６】
各スレーブＣＰＵ１１１、１１２、１１３の通信の頻度を確認すると、上記通信制御モジュール２０３は、何れかのスレーブＣＰＵ１１１、１１２、１１３とマスタＣＰＵ１０１が通信する間隔と、確認した各スレーブＣＰＵ１１１、１１２、１１３の通信の頻度に基づいて、マスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１、１１２、１１３の通信の順序を決定する（図３、Ｓ３０３）。なお、以下では、マスタＣＰＵ１０１は、何れかのＣＰＵ１１１、１１２、１１３と通常１０ｍｓで通信することとする。
【００２７】
例えば、上記監視モジュール２０２から受け取った動作状況が全スレーブＣＰＵ１１１、１１２、１１３が待機中であったとする。この場合、通信テーブル４０１に示すように、スレーブＣＰＵ１１１、１１２は、少なくとも５０ｍｓに１回、スレーブＣＰＵ１１３は少なくとも７０ｍｓに１回の頻度で通信することができればよい。従って、例えば図５（ａ）に示すように、上記通信制御モジュール２０３は、スレーブＣＰＵ１１１→スレーブＣＰＵ１１２→スレーブＣＰＵ１１３を１周期とした順序をマスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１、１１２、１１３の順序として決定する。この順序の場合、各スレーブＣＰＵ１１１、１１２、１１３は、３０ｍｓに１回の頻度でマスタＣＰＵ１０１と通信することができる。
【００２８】
また、例えば、上記監視モジュール２０２から受け取った動作状況がスレーブＣＰＵ１１１が動作中であり、スレーブＣＰＵ１１２、１１３が待機中であるとする。この場合、通信テーブル４０１に示すように、スレーブＣＰＵ１１１は少なくとも２０ｍｓに１回、スレーブＣＰＵ１１２は少なくとも５０ｍｓに１回、スレーブＣＰＵ１１３は少なくとも７０ｍｓに１回の頻度で通信することができればよい。従って、例えば図５（ｂ）に示すように、上記通信制御モジュール２０３は、スレーブＣＰＵ１１１→スレーブＣＰＵ１１２→スレーブＣＰＵ１１１→スレーブＣＰＵ１１３を１周期とした順序をマスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１、１１２、１１３の順序として決定する。
【００２９】
この順序の場合、スレーブＣＰＵ１１１は、４０ｍｓ間に２回の頻度で、即ち２０ｍｓに１回の頻度でマスタＣＰＵ１０１と通信することができる。また、スレーブＣＰＵ１１２、１１３は、４０ｍｓに１回の頻度でマスタＣＰＵ１０１と通信することができる。
【００３０】
また、例えば、上記監視モジュール２０２から受け取った動作状況がスレーブＣＰＵ１１１、１１２が動作中であり、スレーブＣＰＵ１１３が待機中であったとする。この場合、通信テーブル４０１に示すように、スレーブＣＰＵ１１１は少なくとも２０ｍｓに１回、スレーブＣＰＵ１１２は少なくとも３０ｍｓに１回、スレーブＣＰＵ１１３は少なくとも７０ｍｓに１回の頻度で通信することができればよい。従って、例えば図５（ｃ）に示すように、上記通信制御モジュール２０３は、スレーブＣＰＵ１１１→スレーブＣＰＵ１１２→スレーブＣＰＵ１１１→スレーブＣＰＵ１１２→スレーブＣＰＵ１１３→スレーブＣＰＵ１１１を１周期とした順序をマスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１、１１２、１１３の順序として決定する。
【００３１】
この順序の場合、スレーブＣＰＵ１１１は、６０ｍｓ間に３回の頻度で、即ち２０ｍｓに１回の頻度でマスタＣＰＵ１０１と通信することができ、スレーブＣＰＵ１１２は、６０ｍｓ間に２回の頻度、即ち３０ｍｓに１回の頻度でマスタＣＰＵ１０１と通信することができ、スレーブＣＰＵ１１３は、６０ｍｓで１回の頻度でマスタＣＰＵ１０１と通信することができる。
【００３２】
上記通信制御モジュール２０３は、マスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１、１１２、１１３の順序を決定すると、上記通信モジュール２０４をメモリ１２１からマスタＣＰＵ１０１に呼び出し決定した順序を渡す。
【００３３】
上記通信モジュール２０４は、渡された順序に従って、マスタＣＰＵ１０１をスレーブＣＰＵ１１１、１１２、１１３に対してポーリング方式で通信させる（図３、Ｓ３０４）。
【００３４】
以上のように、スレーブＣＰＵ１１１、１１２、１１３の動作状況を監視して、通信順序を変更することで、刻々と変化する動作状況に応じた順序で通信を行うことができる。また、各動作状況下のスレーブＣＰＵ１１１、１１２、１１３が必要とする頻度での通信が確保できるように通信の順序を決定するので、動作状況がどのように変化しても、各スレーブＣＰＵ１１１、１１２、１１３は必要とする頻度以上でマスタＣＰＵ１０１と通信をすることができる。
【００３５】
（実施の形態２）
スレーブＣＰＵ１１１、１１２、１１３が必要とするマスタＣＰＵ１０１の通信の頻度が高かったり、スレーブＣＰＵが実施の形態のように３つだけでなく多数ある場合、マスタＣＰＵ１０１と通信するスレーブＣＰＵの順序の変更だけでは、各スレーブＣＰＵが必要とする頻度以上の通信を各スレーブＣＰＵが実現することができない場合がある。
【００３６】
例えば、スレーブＣＰＵ１１１、１１２、１１３が動作中に２０ｍｓに１回の頻度での通信が必要である場合、スレーブＣＰＵ１１１、１１２、１１３の全てが動作中となると、順序の変更だけではスレーブ１１１、１１２、１１３の全てを２０ｍｓに１回の頻度でマスタＣＰＵ１０１と通信させることができない。
【００３７】
上記通信制御モジュール２０３は、順序の変更だけでは各スレーブＣＰＵ１１１、１１２、１１３が必要とする頻度以上の通信を各スレーブＣＰＵ１１１、１１２、１１３が実現することができないと判断した場合、マスタＣＰＵ１０１が何れかのスレーブＣＰＵ１１１、１１２、１１３と通信する間隔を短くする。例えば、スレーブＣＰＵ１１１、１１２、１１３の全てを２０ｍｓに１回の頻度でマスタＣＰＵ１０１と通信させる場合、上記通信制御モジュール２０３は、マスタＣＰＵ１０１が何れかのスレーブＣＰＵ１１１、１１２、１１３と通信する間隔を２０／３ｍｓより短くする。
【００３８】
順序の変更だけでは全スレーブＣＰＵ１１１、１１２、１１３が必要とする頻度での通信を実現できない場合、実施の形態１のように順序を変更することと共に、本実施の形態で説明したマスタＣＰＵ１０１の通信間隔を変更することで、全てのスレーブＣＰＵ１１１、１１２、１１３が必要とする頻度での通信を実現することができる。
【００３９】
（実施の形態３）
実施の形態１では、上記通信制御モジュール２０３は、各スレーブＣＰＵ１１１、１１２、１１３が必要とする通信の頻度が記載された通信テーブル４０１を参照して、マスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１，１１２、１１３の順序を決定している。順序の決定を容易にするために、図６に示すように、上記通信テーブル４０１は、各スレーブＣＰＵ１１１、１１２、１１３の動作状況に対応するマスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１、１１２、１１３の順序が記述されたものであってもよい。
【００４０】
図６のように、各スレーブＣＰＵ１１１、１１２、１１３の動作状況に対応するマスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１、１１２、１１３の順序が具体的に記述されていれば、上記通信制御モジュール２０３は、上記監視モジュール２０２から受け取った動作状況に対応する順序を通信テーブル４０１から検索するだけで順序を決定することができる。
【００４１】
上記では、画像処理装置１００のメモリ１２１に格納された通信制御プログラム２０１がマスタＣＰＵ１０１にロードされて、マスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１、１１２、１１３の順序を決定する場合について説明したが、監視モジュール２０２、通信制御モジュール２０３、通信モジュール２０４が行う機能を、チップで実現し、通信制御プログラム２０１に代えてチップで順序を決定するようにしてもよい。チップで実現する場合、このチップが監視手段、通信制御手段、通信手段として動いて通信制御装置として機能する。
【００４２】
また、上記では、通信するマスタＣＰＵ１０１とスレーブＣＰＵ１１１、１１２、１１３を備えた画像処理装置１００のメモリ１２１に格納された通信制御プログラム２０１を用いて、マスタＣＰＵ１０１と通信するスレーブＣＰＵ１１１、１１２、１１３の順序を決定する場合について説明したが、図７に示すように、画像処理装置１００と通信可能に接続された画像処理装置３００等のメモリ３０１に格納された通信制御プログラム２０１を用いて、上記順序を決定することも可能である。
【００４３】
画像処理装置３００のメモリ３０１に格納された通信制御プログラムは、画像処理装置１００のマスタＣＰＵ１０１にロードされて、上記順序を決定しても良いし、画像処理装置３００のＣＰＵ（図示しない）にロードされて上記順序を決定しても良い。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施形態である複合機の構成を示すブロック図である。
【図２】本発明の通信制御プログラムとスレーブCPUとの関係を示す図である。
【図３】本発明の通信制御装置の動作を示すフローチャートである。
【図４】通信テーブルを示す図である。
【図５】各スレーブCPUがマスタCPUと通信を行う周期を例示した図である。
【図６】通信テーブルを示す図である。
【図７】本発明の一実施形態である画像形成装置の構成を示すブロック図である。
【符号の説明】
【００４５】
１００  複合機
１０１  マスタCPU
１２１  メモリ
１１１  スレーブCPU
１１２  スレーブCPU
１１３  スレーブCPU
２０１  通信制御プログラム
２０２  監視モジュール
２０３  通信制御モジュール
２０４  通信モジュール
４０１  通信テーブル
【図１】
2005341372.tif 000003
【図２】
2005341372.tif 000004
【図３】
2005341372.tif 000005
【図４】
2005341372.tif 000006
【図５】
2005341372.tif 000007
【図６】
2005341372.tif 000008
【図７】
2005341372.tif 000009