(57)【要約】【課題】従来よりも柔軟にかつ的確に代理用のＣＰＵに、受信したデータに対する応答処理を代行させる。【解決手段】画像形成装置１に、パケット８１を受信するごとに、パケット８１の属性とメインＣＰＵによるパケット８１に対する応答の内容との組合せを記憶する、通常時実績データ記憶部１２１と、通常時実績データ記憶部１２１に記憶された複数の組合せに基づいて、メインＣＰＵに依らずに応答することができるパターンを判別し、このパターンに基づいて代理応答プログラム１０Ｑを生成する、代理応答プログラム生成部１０２と、生成された代理応答プログラム１０Ｑを代理応答ＣＰＵに適用する代理応答プログラム適用部１０３と、を設ける。【選択図】図４
2015053537.tif 000002
【特許請求の範囲】
【請求項１】
メインのコントローラである第一のコントローラと、受信したデータに対して前記第一のコントローラに依らず代行用プログラムに基づいて応答する第二のコントローラと、を有する通信装置であって、
データを受信するごとに、当該データの属性と前記第一のコントローラによる当該データに対する応答の内容との組合せを記憶する、応答実績記憶手段と、
前記応答実績記憶手段に記憶された複数の前記組合せに基づいて、前記第一のコントローラに依らずに応答することができるパターンを判別し、当該パターンに基づいて前記代行用プログラムを生成する、プログラム生成手段と、
前記プログラム生成手段によって生成された前記代行用プログラムを前記第二のコントローラに適用する適用手段と、
を有することを特徴とする通信装置。
【請求項２】
前記プログラム生成手段は、一定の前記属性のデータに対する前記応答の内容が一定であるものを前記パターンとして判別し、当該一定の属性のデータを受信した場合に当該内容で応答するコードを含むプログラムを前記代行用プログラムとして生成する、
請求項１に記載の通信装置。
【請求項３】
前記属性には、プロトコルの種類が含まれる、
請求項１または請求項２に記載の通信装置。
【請求項４】
前記第二のコントローラは、前記第一のコントローラが休止している場合は、受信したデータに対して、前記代行用プログラムに基づいて応答する、
請求項１ないし請求項３のいずれかに記載の通信装置。
【請求項５】
前記第二のコントローラは、前記代行用プログラムに基づいて応答することができない場合は、前記第一のコントローラをウェイクアップさせる、
請求項４に記載の通信装置。
【請求項６】
前記第二のコントローラは、ＳＲＡＭ（Static Random Access Memory）を備え、
前記適用手段は、前記ＳＲＡＭへ前記代行用プログラムを書き込むことによって、前記代行用プログラムを適用し、
前記プログラム生成手段は、前記パターンが複数ある場合は、前記パターンの量が所定の量以下になるように前記代行用プログラムを生成する、
請求項１ないし請求項５のいずれかに記載の通信装置。
【請求項７】
前記プログラム生成手段は、複数の前記パターンのうち、出現する頻度が大きいものを優先的に選出して前記代行用プログラムを生成する、
請求項６に記載の通信装置。
【請求項８】
前記代行用プログラムを前記第二のコントローラへ適用した後、受信したデータに対して前記第一のコントローラが応答するごとに、当該データの属性と当該応答の内容との第二の組合せを記憶する、第二の応答実績記憶手段と、
前記第二の応答実績記憶手段に記憶された複数の前記第二の組合せに基づいて、前記パターンを判別し、当該パターンに基づいて前記代行用プログラムを更新する、プログラム更新手段と、
更新された前記代行用プログラムを前記第二のコントローラに適用する第二の適用手段と、を有する、
請求項１ないし請求項７のいずれかに記載の通信装置。
【請求項９】
前記プログラム更新手段は、前記代行用プログラムを、一定の前記属性のデータに対する前記応答の内容が一定であるものを前記パターンとして判別し、当該一定の属性のデータを受信した場合に当該内容で応答するコードを当該代行用プログラムへ追記することによって更新する、
請求項８に記載の通信装置。
【請求項１０】
前記プログラム生成手段は、ネットワークの環境の変化が検知された場合に、前記代行用プログラムを生成する、
請求項１ないし請求項９のいずれかに記載の通信装置。
【請求項１１】
メインのコントローラである第一のコントローラと受信したデータに対して前記第一のコントローラに依らず代行用プログラムに基づいて応答する第二のコントローラとを有する通信装置のカスタマイズ方法であって、
前記通信装置がデータを受信するごとに、当該データの属性と前記第一のコントローラによる当該データに対する応答の内容との組合せを応答実績記憶手段に記憶させ、
前記応答実績記憶手段に記憶された複数の前記組合せに基づいて、前記第一のコントローラに依らずに応答することができるパターンを判別し、当該パターンに基づいて前記代行用プログラムを生成し、
生成した前記代行用プログラムを前記第二のコントローラに適用する、
ことを特徴とする通信装置のカスタマイズ方法。
【請求項１２】
メインのコントローラである第一のコントローラと受信したデータに対して前記第一のコントローラに依らず代行用プログラムに基づいて応答する第二のコントローラとを有する通信装置をカスタマイズするために用いられるコンピュータプログラムであって、
コンピュータに、
前記通信装置がデータを受信するごとに、当該データの属性と前記第一のコントローラによる当該データに対する応答の内容との組合せを応答実績記憶手段に記憶させる処理を、実行させ、
前記応答実績記憶手段に記憶された複数の前記組合せに基づいて、前記第一のコントローラに依らずに応答することができるパターンを判別し、当該パターンに基づいて前記代行用プログラムを生成する処理を、実行させ、
生成した前記代行用プログラムを前記第二のコントローラに適用する処理を実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信を行う装置における省電力の技術に関する。
【背景技術】
【０００２】
近年、様々な機器の省電力化が進められている。その技術の１つとして、機器の一部のハードウェアへの電力の供給を一時的に制限する技術が、普及している。
【０００３】
コピー、ＰＣプリント、ファックス、スキャナ、およびボックスなどの機能を集約した画像形成装置（一般に「ＭＦＰ」または「複合機」とも呼ばれる。）においても、このような技術が採用されている。
【０００４】
しかし、電力の供給を制限すると、運用に支障を来すことが、ある。そこで、次のような方法が提案されている。
【０００５】
ＭＦＰは、自動応答部、解析部、メッセージ生成部、および送受信部を備える。自動応答部は、ＰＣが要求するプロトコルに基づき、省電力モードを通常モードに切り替える。解析部は、ＰＣがジョブ実行を伴うことなく省電力モードから通常モードに切り替えるプロトコルを要求する状態であるか否かを解析する。メッセージ生成部は、解析部が前記状態を検出した場合に、ＰＣが有する前記プロトコルを変更させるメッセージを生成する。送受信部は、前記メッセージを送信する。これにより、印刷に直接関係のない要求を受けた場合の、省電力モードから通常モードに移行する可能性を低減することができる（特許文献１）。
【０００６】
また、次のような方法が提案されている。画像処理装置は、第１の電力モード及び該第１の電力モードよりも消費電力の小さい第２の電力モードを有し、装置全体を制御する第１制御部と、第１の電力モード及び第２の電力モードにおいて電力が供給される第２制御部とを備え、外部装置とセキュリティ通信を実行する。また、第１制御部は、第１の電力モードから第２の電力モードへ移行する際に、セキュリティ通信に関連する複数のセキュリティ関連情報を記憶する記憶部に記憶された複数のセキュリティ関連情報から第２制御部に通知するセキュリティ関連情報を選定する（特許文献２）。
【０００７】
そのほか、省電力モードの際に、受信したパケットへの応答の一部を、メインのＣＰＵを使わずサブのＣＰＵによって行う技術が提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−１７９７８８号公報
【特許文献２】特開２０１２−２２７８２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来、受信したパケットに対する応答の処理をメインのＣＰＵが行うのかサブのＣＰＵが代行するのかを、機器の設計の段階で予め決めておく必要がある。
【００１０】
ところが、近年、ネットワークにおいて、様々なプロトコルが用いられる。プロトコルの用いられ方も様々であり、変化し得る。また、ネットワークの構成も様々であり、変化し得る。したがって、受信したパケットに対する応答の処理をメインのＣＰＵおよびサブのＣＰＵのどちらが行うべきかは、機器を使用しているうちに、変化し得る。
【００１１】
本発明は、このような問題点に鑑み、従来よりも柔軟にかつ的確に代理用のＣＰＵ（コントローラ）に応答処理を代行させることができる。
【課題を解決するための手段】
【００１２】
本発明の一形態に係る通信装置は、メインのコントローラである第一のコントローラと、受信したデータに対して前記第一のコントローラに依らず代行用プログラムに基づいて応答する第二のコントローラと、を有する通信装置であって、データを受信するごとに、当該データの属性と前記第一のコントローラによる当該データに対する応答の内容との組合せを記憶する、応答実績記憶手段と、前記応答実績記憶手段に記憶された複数の前記組合せに基づいて、前記第一のコントローラに依らずに応答することができるパターンを判別し、当該パターンに基づいて前記代行用プログラムを生成する、プログラム生成手段と、前記プログラム生成手段によって生成された前記代行用プログラムを前記第二のコントローラに適用する適用手段と、を有する。
【００１３】
好ましくは、前記プログラム生成手段は、一定の前記属性のデータに対する前記応答の内容が一定であるものを前記パターンとして判別し、当該一定の属性のデータを受信した場合に当該内容で応答するコードを含むプログラムを前記代行用プログラムとして生成する。
【００１４】
または、前記第二のコントローラは、前記第一のコントローラが休止している場合は、受信したデータに対して、前記代行用プログラムに基づいて応答する。前記代行用プログラムに基づいて応答することができない場合は、前記第一のコントローラをウェイクアップさせる。
【００１５】
または、前記第二のコントローラは、ＳＲＡＭ（Static Random Access Memory）を備え、前記適用手段は、前記ＳＲＡＭへ前記代行用プログラムを書き込むことによって、前記代行用プログラムを適用し、前記プログラム生成手段は、前記パターンが複数ある場合は、前記パターンの量が所定の量以下になるように前記代行用プログラムを生成する。
【００１６】
または、前記プログラム生成手段は、複数の前記パターンのうち、出現する頻度が大きいものを優先的に選出して前記代行用プログラムを生成する。
【００１７】
または、前記代行用プログラムを前記第二のコントローラへ適用した後、受信したデータに対して前記第一のコントローラが応答するごとに、当該データの属性と当該応答の内容との第二の組合せを記憶する、第二の応答実績記憶手段と、前記第二の応答実績記憶手段に記憶された複数の前記第二の組合せに基づいて、前記パターンを判別し、当該パターンに基づいて前記代行用プログラムを更新する、プログラム更新手段と、更新された前記代行用プログラムを前記第二のコントローラに適用する第二の適用手段と、を有する。
【００１８】
または、前記プログラム更新手段は、前記代行用プログラムを、一定の前記属性のデータに対する前記応答の内容が一定であるものを前記パターンとして判別し、当該一定の属性のデータを受信した場合に当該内容で応答するコードを当該代行用プログラムへ追記することによって更新する。
【発明の効果】
【００１９】
本発明によると、従来よりも柔軟にかつ的確に代理用のコントローラに応答処理を代行させることができる
【図面の簡単な説明】
【００２０】
【図１】ネットワークシステムの全体的な構成の例を示す図である。
【図２】画像形成装置のハードウェア構成の例を示す図である。
【図３】コントロールユニットのハードウェア構成の例を示す図である。
【図４】画像形成装置の機能的構成の例を示す図である。
【図５】通常時実績データの例を示す図である。
【図６】パケットの標準的な構成の例を示す図である。
【図７】通常時実績データの例を示す図である。
【図８】通常時実績データの例を示す図である。
【図９】通常時実績データの例を示す図である。
【図１０】代理応答プログラム生成処理の流れの例を説明するフローチャートである。
【図１１】代理応答プログラム生成処理の流れの例を説明するフローチャートである。
【図１２】特性データの例を示す図である。
【図１３】代理応答処理の流れの例を説明するフローチャートである。
【図１４】代理応答ＣＰＵによる全体的な処理の流れの例を説明するフローチャートである。
【図１５】代理応答プログラム更新処理の流れの例を説明するフローチャートである。
【図１６】代理応答プログラム更新処理の流れの例を説明するフローチャートである。
【図１７】カスタマイズ用プログラムによる全体的な処理の流れの例を示すフローチャートである。
【図１８】コントロールユニットのハードウェア構成の変形例である。
【発明を実施するための形態】
【００２１】
図１は、ネットワークシステム３の全体的な構成の例を示す図である。図２は、画像形成装置１のハードウェア構成の例を示す図である。図３は、コントロールユニット１０ａのハードウェア構成の例を示す図である。図４は、画像形成装置１の機能的構成の例を示す図である。
【００２２】
図１に示すように、ネットワークシステム３は、画像形成装置１、１台または複数台の端末装置２、および通信回線ＮＷなどによって構成される。
【００２３】
画像形成装置１は、コピー、ＰＣプリント、ファックス、スキャナ、およびボックスなどの機能を集約した装置である。一般に、「複合機」または「ＭＦＰ（Multi Function Peripherals）」などと呼ばれることがある。
【００２４】
ＰＣプリント機能は、画像形成装置１と同じセグメントに属する端末装置２から受信した画像データに基づいて画像を用紙に印刷する機能である。「ネットワークプリンティング」または「ネットワークプリント」などと呼ばれることもある。
【００２５】
ボックス機能は、ユーザごとに「ボックス」または「パーソナルボックス」などと呼ばれる記憶領域を与えておき、各ユーザが自分の記憶領域によって画像データなどのデータを保存し管理するための機能である。ボックスは、パーソナルコンピュータにおける「フォルダ」または「ディレクトリ」に相当する。
【００２６】
画像形成装置１は、図２に示すように、コントロールユニット１０ａ、大容量記憶装置１０ｂ、タッチパネルディスプレイ１０ｃ、操作キーパネル１０ｄ、モデム１０ｅ、スキャンユニット１０ｆ、およびプリントユニット１０ｇなどによって構成される。
【００２７】
タッチパネルディスプレイ１０ｃは、ユーザに対するメッセージを示す画面、ユーザがコマンドまたは情報を入力するための画面、および処理の結果を示す画面などを表示する。また、タッチパネルディスプレイ１０ｃは、タッチされた位置を示す信号をコントロールユニット１０ａのメインＣＰＵ１３１（図３参照）へ送る。
【００２８】
操作キーパネル１０ｄは、いわゆるハードウェアキーボードであって、テンキー、スタートキー、ストップキー、およびファンクションキーなどによって構成される。
【００２９】
モデム１０ｅは、ファクシミリ端末との間でＧ３などのプロトコルで画像データをやり取りする。
【００３０】
スキャンユニット１０ｆは、プラテンガラスの上にセットされたシートに記されている画像を読み取って画像データを生成する。
【００３１】
プリントユニット１０ｇは、他の装置から受信した画像データに基づいて画像を用紙に印刷する。また、スキャンユニット１０ｆによって読み取られた画像を用紙に印刷する。
【００３２】
大容量記憶装置１０ｂには、上述の各機能を実現するためのソフトウェア、例えば、オペレーティングシステムおよびアプリケーションがインストールされている。さらに、カスタマイズ用プログラム１０Ｐがインストールされている。
【００３３】
カスタマイズ用プログラム１０Ｐは、後述のスリープモード時またはスタンバイモード時に受信したパケットの取扱いに関する設定を行うためのプログラムである。
【００３４】
コントロールユニット１０ａは、図３に示すように、メインＣＰＵ（Central Processing Unit）１３１、ＤＤＲ−ＳＤＲＡＭ（Double Data Rate Synchronous Dynamic Random Access Memory）１３２、代理応答ＣＰＵ１３３、フラッシュロム１３４、ＲＪ（Registered Jack）トランス１３５、エンジン制御ＡＳＩＣ（Application Specific Integrated Circuit）１３６、電源管理ＣＰＵ１３７、および二次電源回路１３８などによって構成される。このような構成により、コントロールユニット１０ａは、画像形成装置１の制御を行う。
【００３５】
ＤＤＲ−ＳＤＲＡＭ１３２は、メインＣＰＵ１３１の作業用メモリである。ＤＤＲ−ＳＤＲＡＭ１３２には、プログラムまたはモジュールが大容量記憶装置１０ｂからロードされたり、他の装置から取得したデータや演算結果などが記憶されたりする。
【００３６】
メインＣＰＵ１３１は、ＤＤＲ−ＳＤＲＡＭ１３２にロードされたプログラムおよびモジュールを実行する。基本的に、カスタマイズ用プログラム１０Ｐは、ＤＤＲ−ＳＤＲＡＭ１３２に常駐し、メインＣＰＵ１３１によって常時、実行されている。
【００３７】
代理応答ＣＰＵ１３３は、いわゆるＩＰ（Internet Protocol）通信を行うためのＣＰＵである。特に、物理層およびデータリンク層（ＭＡＣ（Media Access Control）副層）の処理を行う。また、後述のスリープモードまたはスタンバイモードであるときに他の装置からデータを受信した場合に、可能であればメインＣＰＵ１３１の代わりに応答する。以下、メインＣＰＵ１３１の代わりに応答することを「代理応答」と記載する。
【００３８】
フラッシュロム１３４には、代理応答ＣＰＵ１３３が処理を行うためのプログラムおよびデータが記憶される。
【００３９】
また、代理応答ＣＰＵ１３３には、ＳＲＡＭ（Static RAM）が内蔵されており、代理応答のためのプログラムである代理応答プログラム１０Ｑが記憶される。代理応答プログラム１０Ｑは、後述する通り、カスタマイズ用プログラム１０Ｐに基づいてメインＣＰＵ１３１が生成する。
【００４０】
ＲＪトランス１３５は、ＬＡＮ（Local Area Network）用のパルストランスである。
【００４１】
エンジン制御ＡＳＩＣ１３６は、プリントユニット１０ｇを制御するためのＡＳＩＣである。
【００４２】
二次電源回路１３８は、各ハードウェアへ電力を供給する。電源管理ＣＰＵ１３７は、二次電源回路１３８を制御し、各ハードウェアへの電力の供給を調整する。
【００４３】
画像形成装置１には、電力の供給のモードとして、通常モード、スリープモード、およびスタンバイモードの３つのモードが用意されている。
【００４４】
通常モードは、基本的にどの処理であっても直ちに行い得るようにすべてのハードウェアへ電力を供給するモードである。
【００４５】
スタンバイモードは、タッチパネルディスプレイ１０ｃによる画像の表示を停止したりプリントユニット１０ｇのアイドリングを停止したりすることによって消費電力を低減するがメインＣＰＵ１３１による演算処理は直ちに実行することができるように電力を供給するモードである。したがって、スタンバイモード時は、コントロールユニット１０ａを構成するプロセッサおよびメモリのうち、特に、メインＣＰＵ１３１へは、電力が供給される。
【００４６】
スリープモードは、メインＣＰＵ１３１への電力の供給を停止し、スタンバイモードよりも消費電力をさらに低減するモードである。ＤＤＲ−ＳＤＲＡＭ１３２への電力の供給は継続してもよいし、停止してもよい。停止する場合は、ＤＤＲ−ＳＤＲＡＭ１３２に記憶されているプログラムおよびデータを大容量記憶装置１０ｂへ予めバックアップしておく。そして、通常モードに戻る際に、ＤＤＲ−ＳＤＲＡＭ１３２にプログラムおよびデータをロードする。フラッシュロム１３４も、同様である。
【００４７】
次に、スリープモード時またはスタンバイモード時に受信したパケットの取扱いに関する設定について、説明する。
【００４８】
カスタマイズ用プログラム１０Ｐは、図４に示す通常時実績データ収集部１０１、代理応答プログラム生成部１０２、代理応答プログラム適用部１０３、代行可能時実績データ収集部１０４、代理応答プログラム更新部１０５、更新プログラム適用部１０６、再起動部１０７、通常時実績データ記憶部１２１、代理応答プログラム記憶部１２２、および代行可能時実績データ記憶部１２３などの機能を実現する。
【００４９】
以下、これらの機能を、代理応答プログラムの生成のための機能および代理応答プログラムの更新のための機能に大別して説明する。
【００５０】
〔代理応答プログラムの生成のための機能〕
図５は、通常時実績データ５の例を示す図である。図６は、パケットの標準的な構成の例を示す図である。図７は、通常時実績データ５１〜５３の例を示す図である。図８は、通常時実績データ５４〜５７の例を示す図である。図９は、通常時実績データ５８、５９の例を示す図である。図１０および図１１は、代理応答プログラム生成処理の流れの例を説明するフローチャートである。図１２は、特性データ６１、６２の例を示す図である。図１３は、代理応答処理の流れの例を説明するフローチャートである。図１４は、代理応答ＣＰＵ１３３による全体的な処理の流れの例を説明するフローチャートである。
【００５１】
通常時実績データ収集部１０１は、所定の期間Ｔｐ、図５のような通常時実績データ５を収集する処理を次のように行う。
【００５２】
通常時実績データ収集部１０１は、電力の供給のモードを通常モードに変更する。そして、通常時実績データ５を収集する期間中、通常モードを継続させる。
【００５３】
ところで、通信回線ＮＷを介して他の装置から画像形成装置１に届くパケットは、所定のフォーマットに基づいて構成されている。以下、本実施形態では、図６に示すようなＭＡＣフレームのフォーマットに基づいてパケットが構成されている場合を例に説明する。
【００５４】
通常時実績データ収集部１０１は、パケット８１（ＭＡＣフレーム）が届くと、パケット８１から次の情報を抽出する。パケット８１のＭＡＣヘッダから、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、およびタイプを抽出する。
【００５５】
さらに、このタイプに応じて、予め決められた項目の情報を抽出する。例えば、タイプが「ＩＰ」である場合は、パケット８１のＩＰヘッダからバージョン／ヘッダ・サービス長、プロトコル、送信元ＩＰアドレス、および宛先ＩＰアドレスを抽出する。
【００５６】
さらに、このプロトコルに応じて、予め決められた項目の情報を抽出する。例えば、このプロトコルがＩＣＭＰ（Internet Control Message Protocol）である場合は、パケット８１のＩＣＭＰヘッダからタイプを抽出する。また、ＩＣＭＰデータに所定のコマンドが含まれる場合は、さらにこのコマンドを抽出する。このコマンドがパラメータを伴う場合は、このパラメータも一緒に抽出する。
【００５７】
または、このプロトコルがＴＣＰ（Transmission Control Protocol）である場合は、パケット８１のＴＣＰヘッダから送信元ポート番号および宛先ポート番号を抽出する。また、ＴＣＰデータに所定のコマンドが含まれる場合は、さらにこのコマンドを抽出する。このコマンドがパラメータを伴う場合は、このパラメータも一緒に抽出する。
【００５８】
または、このプロトコルがＵＤＰ（User Datagram Protocol）である場合は、パケット８１のＵＤＰヘッダから送信元ポート番号および宛先ポート番号を抽出する。また、ＵＤＰデータに所定のコマンドが含まれる場合は、さらにこのコマンドを抽出する。このコマンドがパラメータを伴う場合は、このパラメータも一緒に抽出する。
【００５９】
そして、通常時実績データ収集部１０１は、パケット８１から抽出されたこれらの情報を示す検出データ５ａを生成する。
【００６０】
通常時実績データ収集部１０１は、さらに、応答データ５ｂを生成する。応答データ５ｂは、パケット８１を受信したことに応じて画像形成装置１が行った処理（以下、「応答処理」と記載する。）の内容を示すデータである。
【００６１】
具体的には、応答処理によって使用されたハードウェア（以下、「動作デバイス」と記載する。）が特定のものである場合は、応答データ５ｂに、そのハードウェアが示される。特定のハードウェアは、通常モードでなければ動作できないハードウェアである。本実施形態では、モデム１０ｅ、スキャンユニット１０ｆ、およびプリントユニット１０ｇが特定のハードウェアとして設定されている。
【００６２】
パケット８１の送信元へデータを返信する処理が応答処理に含まれる場合は、さらに、返信の内容が応答データ５ｂに示される。例えば、画像形成装置１における通信に関する属性（ＩＰアドレスおよびＭＡＣアドレスなど）が示される。または、画像形成装置１の消耗品（トナーおよび用紙など）の残量が示される。
【００６３】
そして、通常時実績データ収集部１０１は、検出データ５ａおよび応答データ５ｂを含むデータを通常時実績データ５として、通常時実績データ記憶部１２１に記憶させる。
【００６４】
通常時実績データ収集部１０１は、所定の期間Ｔｐ、パケットが届くごとに、通常時実績データ５を生成し通常時実績データ記憶部１２１に記憶させる。これにより、所定の期間Ｔｐにおける応答処理の実績のデータが通常時実績データ記憶部１２１に蓄積される。なお、所定の期間Ｔｐは、任意に決めることができるが、数日〜１ヶ月程度が望ましい。
【００６５】
代理応答プログラム生成部１０２は、所定の期間Ｔｐの経過後、代理応答プログラム１０Ｑを生成する。以下、生成の処理の手順を、図７〜図９に示す通常時実績データ５が得られた場合を例に、図１０〜図１１のフローチャートを参照しながら説明する。
【００６６】
なお、図７〜図９には通常時実績データ５として９つの通常時実績データ５１〜５９を例示している。ただし、説明の簡単のため、各項目の値を「ａ０１」、「ｂ０１」、「ｃ０１」、…のように抽象化して表わしている。実際には、図５に挙げたように、「００：１１：２２：３３：４４：５５」または「０８００」のような具体的な値が示される。また、「返信内容」の項目のように、複数の値が示される項目もあるが、図７〜図９では、「ｈ０１」、「ｈ０２」、…のように１つの抽象的な文字列で例示する。複数の通常時実績データ５の、複数の値が示され得る項目に同一の文字列が示されることがあるが、これは、複数の値同士がすべて一致することを意味する。１つでも異なる場合は、異なる文字列を用いている。
【００６７】
代理応答プログラム生成部１０２は、通常時実績データ記憶部１２１に記憶されている通常時実績データ５のうちの、応答処理によって使用されたハードウェアとして特定のハードウェアが１つも示されない通常時実績データ５を、読み出す（図１０の＃７０１）。上述の通り、特定のハードウェアは、通常モードでなければ動作できないハードウェア（つまり、スリープモード時またはスタンバイモード時ならばウェイクアップを要するハードウェア）であって、例えば、モデム１０ｅ、スキャンユニット１０ｆ、またはプリントユニット１０ｇなどである。
【００６８】
図７〜図９の例においては、通常時実績データ５２〜５９を読み出す。しかし、通常時実績データ５１は読み出さない。
【００６９】
代理応答プログラム生成部１０２は、読み出した通常時実績データ５をグループ化する（＃７０２）。例えば、検出データ５ａに示されるすべての項目の値が共通する通常時実績データ５同士をグループ化する。
【００７０】
図７〜図９の例においては、通常時実績データ５２、５３を１つのグループ（以下、「グループ＿Ｇ１」と記載する。）にグループ化する。通常時実績データ５４、５５を１つのグループ（以下、「グループ＿Ｇ２」と記載する。）にグループ化する。通常時実績データ５６、５７を１つのグループ（以下、「グループ＿Ｇ３」と記載する。）にグループ化する。通常時実績データ５８、５９を１つのグループ（以下、「グループ＿Ｇ４」と記載する。）にグループ化する。
【００７１】
代理応答プログラム生成部１０２は、１つ目のグループに注目し（＃７０３）、このグループを構成する通常時実績データ５それぞれの応答データ５ｂに示される内容を比較する（＃７０４）。そして、内容が同一である場合は（＃７０５でＹｅｓ）、このグループを、代理応答の対象として選出する（＃７０６）。
【００７２】
ステップ＃７０２において複数のグループが生じた場合は、代理応答プログラム生成部１０２は、残りのグループについても同様に、応答データ５ｂ同士の内容の比較を行い、内容が同一である場合に代理応答の対象としての選出を行う（＃７０４〜＃７０８）。
【００７３】
図７〜図９の例においては、グループ＿Ｇ１は、メンバ（通常時実績データ５２、５３）それぞれの応答データ５ｂに示される内容が相違するので、選出されない。これを選出しないのは、同一の問合せを他の装置から受けても返信する内容が時として異なるので、代理応答ＣＰＵ１３３による代理応答が難しいからである。一方、グループ＿Ｇ２は、メンバそれぞれの応答データ５ｂに示される内容が同一なので、選出される。グループ＿Ｇ３およびグループ＿Ｇ４も同様の理由により選出される。
【００７４】
代理応答プログラム生成部１０２は、選出したグループの最適化を次のように行う。選出したグループのうちの応答データ５ｂに示される内容が同一であるグループ同士を、共通グループにグループ化する（図１１の＃７０９）。
【００７５】
図７〜図９の例においては、グループ＿Ｇ２のメンバの応答データ５ｂとグループ＿Ｇ３のメンバの応答データ５ｂとが、同一の値を示す。よって、グループ＿Ｇ２およびグループ＿Ｇ３を共通グループにグループ化する。以下、この共通グループを「共通グループ＿Ｋ１」と記載する。
【００７６】
代理応答プログラム生成部１０２は、共通グループ、および、共通グループにグループ化されなかったグループ（以下、「非共通化グループ」と記載する。）それぞれについて、特性データ６を取得する処理を次のように行う。
【００７７】
共通グループについては（＃７１１でＹｅｓ）、代理応答プログラム生成部１０２は、この共通グループにグループ化した各グループの検出データ５ａから、値が同一である項目をその値とともに特性データ６として取得する（＃７１２）。
【００７８】
この処理によると、共通グループ＿Ｋ１の特性データ６として、図１２のような、送信元ポート番号以外の項目（タイプ＿１、プロトコル、タイプ＿２、宛先ポート番号、コマンド、パラメータ）およびその値を示す特性データ６１が取得される。
【００７９】
一方、非共通化グループについては（＃７１１でＮｏ）、代理応答プログラム生成部１０２は、その非共通化グループの応答データ５ｂを、その非共通グループの特性データ６として取得する（＃７１３）。
【００８０】
例えば、グループ＿４の特性データ６として、通常時実績データ５８（または通常時実績データ５９）の応答データ５ｂを取得する。これにより、図１２（Ｂ）のような特性データ６２が、グループ＿４の特性データ６として取得される。
【００８１】
特性データ６の取得の処理と前後してまたは並行して、代理応答プログラム生成部１０２は、各グループ（共通グループまたは非共通グループ）のメンバである通常時実績データ５の個数を所定の期間Ｔｐで割ることによって、応答頻度ＲＴを算出する（＃７１６）。
【００８２】
そして、代理応答プログラム生成部１０２は、各グループ（共通グループまたは非共通グループ）の応答データ５ｂ、特性データ６、および応答頻度ＲＴに基づいて次のようにコーディングを行うことによって、代理応答プログラム１０Ｑを生成する。
【００８３】
代理応答プログラム生成部１０２は、空のテキストファイルを用意する（＃７１８）。応答頻度ＲＴが１番目に大きいグループのコードとして、次の事項（Ｃ１）〜（Ｃ４）を表わすコードを順にテキストファイルに書き込む（＃７１９）。
（Ｃ１）  このグループを識別する識別子。
（Ｃ２）  このグループの応答頻度ＲＴ。
（Ｃ３）  このグループの特性データ６に示される各項目の各値が、スリープ時またはスタンバイ時に受信したパケットの対応する各項目の各値と一致するか否かを比較するための、コード。
（Ｃ４）  Ｃ３の比較によってすべての項目の値同士が一致したことが分かった場合に、このグループの応答データ５ｂを、受信したパケットの送信元へ返信する処理のコマンド。
【００８４】
Ｃ１の識別子は、例えばＲＥＭ文で記述すればよい。Ｃ２の応答頻度ＲＴも、同様である。
【００８５】
Ｃ３のコードは、ＩＦ文で記述すればよい。特性データ６に複数の項目がある場合は、項目ごとに比較のコードをＩＦ文によって記述すればよい。
【００８６】
Ｃ４のコマンドを、送信元ポート番号として受信したパケットに示される送信元ポート番号が必要に応じて用いられるように記述してもよい。
【００８７】
そして、代理応答プログラム生成部１０２は、応答頻度ＲＴが２番目、３番目、…に大きいグループのＣ１〜Ｃ４のコードを順次、テキストファイルに追記していく（＃７１９〜＃７２１）。ただし、応答頻度ＲＴが大きいグループのコードが上になるように、追記する。
【００８８】
このようにしてコードが、一定の属性のパケットと一定の返信内容とのパターンを表わしている。そして、これらの記述されたテキストファイルが、代理応答プログラム１０Ｑである。
【００８９】
図７〜図９の通常時実績データ５によると、図１３に示す手順のプログラムが代理応答プログラム１０Ｑとして生成される。
【００９０】
代理応答プログラム適用部１０３は、代理応答プログラム生成部１０２によって代理応答プログラム１０Ｑが生成されると、代理応答プログラム１０Ｑを代理応答ＣＰＵ１３３のＳＲＡＭ（以下、「ＳＲＡＭ１３３ｓ」と記載する。）に書き込む。これにより、代理応答ＣＰＵ１３３に代理応答プログラム１０Ｑが適用される。
【００９１】
代理応答プログラム１０Ｑが代理応答ＣＰＵ１３３に適用されたら、通常時実績データ収集部１０１は、通常時実績データ５の収集を終了する。その後、電源管理ＣＰＵ１３７は、適宜、電力の供給のモードを切り換えてもよい。
【００９２】
代理応答ＣＰＵ１３３は、スリープモード時またはスタンバイモード時に、図１４に示す手順で処理を実行する。
【００９３】
パケット８２が受信されると（図１４の＃７３１でＹｅｓ）、代理応答ＣＰＵ１３３は、代理応答プログラム１０Ｑに基づいてパケット８２を処理する（＃７３２）。図１３に示す手順のプログラムが代理応答プログラム１０Ｑが得られた場合は、次のようにパケット８２を処理する。
【００９４】
代理応答ＣＰＵ１３３は、１番目の特性データ６（つまり、特性データ６１）とパケット８２とを比較し、特性データ６１に示される各項目の値がパケット８２にも示されるか否かをチェックする（図１３の＃７４１）。各項目の値がすべてパケット８２に示される場合は（＃７４２でＹｅｓ）、特性データ６１に対応する応答データ５ｂを、パケット８２の送信元へ宛てて送信する（＃７４３）。この際に、必要に応じて、パケット８２の送信元ポート番号を使用する。
【００９５】
２番目以降の特性データ６についても同様に処理を行う（＃７４４〜＃７４６）。つまり、代理応答ＣＰＵ１３３は、パケット８２との比較を行い、各項目の値がすべてパケット８２に示される場合は、これに対応する応答データ５ｂをパケット８２の送信元へ宛てて送信する。なお、パケット８２の送信元への返信（代理応答）が成功した時点で、代理応答処理を終了してもよい。
【００９６】
図１４に戻って、代理応答プログラム１０Ｑによる代理応答に成功した場合は（＃７３３でＹｅｓ）、スリープモードまたはスタンバイモードが継続している間（＃７３４でＮｏ）、パケット８２を受信するごとに上述の処理を実行する。
【００９７】
一方、代理応答プログラム１０Ｑによる代理応答に成功しなかった場合は（＃７３３でＮｏ）、代理応答ＣＰＵ１３３は、スリープモードまたはスタンバイモードを解除させ、パケット８２の処理をメインＣＰＵ１３１に行わせる。
【００９８】
代理応答プログラム１０ＱがＳＲＡＭ１３３ｓに収まるように、グループの数を制限してもよい。例えば、応答頻度ＲＴが高い順に所定の個数だけグループを選出し、これらのグループのコードのみを代理応答プログラム１０Ｑに書き込んでもよい。つまり、ステップ＃７１９の処理の実行回数が所定の回数に達したら、これ以降、グループのコードの書込みを止めればよい。
【００９９】
代理応答プログラム１０Ｑは、後に適宜、更新するために、代理応答プログラム記憶部１２２に保存される。
【０１００】
通常モード時にパケット８２を受信した場合は、代理応答ＣＰＵ１３３ではなくメインＣＰＵ１３１が応答処理を行う。
【０１０１】
〔代理応答プログラムの更新のための機能〕
図１５および図１６は、代理応答プログラム更新処理の流れの例を説明するフローチャートである。
【０１０２】
画像形成装置１または周囲の環境の変化に応じて、代理応答プログラム１０Ｑを更新したほうがよい場合がある。そこで、図４の代行可能時実績データ収集部１０４ないし再起動部１０７は、代理応答ＣＰＵ１３３への代理応答プログラム１０Ｑの適用後、代理応答プログラム１０Ｑを更新するための処理を実行する。
【０１０３】
代行可能時実績データ収集部１０４は、代理応答プログラム１０Ｑの適用後、代行可能時実績データ７を収集する処理を行う。代行可能時実績データ７の内容は、図５に示した通常時実績データ５の内容と同様である。したがって、代行可能時実績データ７を収集する方法は、通常時実績データ収集部１０１による通常時実績データ５の収集の方法と基本的に同様である。
【０１０４】
ただし、通常時実績データ収集部１０１は通常モードを強制的に継続させたが、代行可能時実績データ収集部１０４は、強制的には継続させない。よって、代行可能時実績データ７は、通常モードの場合にのみ収集される。また、代行可能時実績データ７は、代行可能時実績データ記憶部１２３に記憶される。
【０１０５】
代理応答プログラム更新部１０５は、代行可能時実績データ記憶部１２３に記憶（蓄積）された代行可能時実績データ７に基づいて、図１５〜図１６に示す手順で代理応答プログラム１０Ｑを更新する。
【０１０６】
グループ化を行い、グループ（共通グループまたは非共通グループ）ごとにＣ１〜Ｃ４のコードを生成するまでの手順は、基本的に、図１０〜図１１で説明した、代理応答プログラム生成部１０２による処理の手順と同様である。ただし、次の点が、代理応答プログラム生成部１０２による処理と異なる。
【０１０７】
代理応答プログラム更新部１０５は、通常時実績データ５の代わりに代行可能時実績データ７を使用する。図１６のステップ＃７６６において、グループの応答頻度ＲＴを、そのグループのメンバである代行可能時実績データ７の個数を、代理応答プログラム１０Ｑの適用を開始してから更新の処理を開始するまでの期間Ｔｊで割ることによって、算出する。また、空のテキストファイルの用意（図１１の＃７１８参照）は行わず、代理応答プログラム記憶部１２２に記憶されている代理応答プログラム１０Ｑに対して、次に説明する挿入などの処理を行う。
【０１０８】
そして、代理応答プログラム更新部１０５は、グループのＣ１〜Ｃ４のコードを、代理応答プログラム１０Ｑの中の、そのグループの応答頻度ＲＴに応じた位置に挿入する（＃７６８、＃７６９）。例えば、そのグループの応答頻度ＲＴが、代理応答プログラム１０Ｑに既に追加されているどのグループの応答頻度ＲＴよりも大きい場合は、代理応答プログラム１０Ｑの先頭に追加する。または、どのグループの応答頻度ＲＴよりも小さい場合は、末尾に追加する。または、そのグループの応答頻度ＲＴが、代理応答プログラム１０Ｑに既に追加されているＮ番目のグループの応答頻度ＲＴよりも小さく（Ｎ＋１）番目のグループの応答頻度ＲＴよりも大きい場合は、Ｎ番目のグループのコードの次に追加する。
【０１０９】
なお、図１５〜図１６の処理の結果、代理応答プログラム１０Ｑにコードが示されるグループの個数が所定の個数を超えた場合は、所定の個数に収まるように下位のグループのコードを代理応答プログラム１０Ｑから削除してもよい。
【０１１０】
更新プログラム適用部１０６は、代理応答プログラム更新部１０５によって更新された代理応答プログラム１０Ｑを、ＳＲＡＭ１３３ｓに書き込む。古い代理応答プログラム１０Ｑは、削除する。これにより、代理応答プログラム１０Ｑが上書きされ、代理応答ＣＰＵ１３３に適用される。
【０１１１】
ところで、画像形成装置１または周囲の環境の変化などに伴い、代理応答プログラム１０Ｑにコードが示されるグループのいずれかが、代理応答すべきでないグループになってしまうことが、ある。そこで、定期的に、または、管理者による所定のコマンドの入力に従って、代理応答プログラム１０Ｑを一から生成し直してもよい。
【０１１２】
再起動部１０７は、代理応答プログラム１０Ｑを一から生成し直す必要がある場合に、ＳＲＡＭ１３３ｓおよび代理応答プログラム記憶部１２２のそれぞれに記憶されている代理応答プログラム１０Ｑを削除する。そして、カスタマイズ用プログラム１０Ｐを再起動する。
【０１１３】
すると、通常時実績データ収集部１０１による処理が、最初から、上述の通りに実行される。
【０１１４】
なお、代行可能時実績データ収集部１０４ないし更新プログラム適用部１０６による代理応答プログラム１０Ｑの更新のための処理は、常時、行う必要はない。代理応答プログラム１０Ｑの適用後、スリープモード時またはスタンバイモード時にパケット８１を受信してウェイクアップする（通常モードへ変更する）頻度が、所定の頻度よりも低い場合は、代行可能時実績データ収集部１０４ないし更新プログラム適用部１０６は、休止してもよい。所定の頻度は、管理者が予め設定しておくことができる。
【０１１５】
再起動部１０７による処理は、画像形成装置１が環境の変化（例えば、所属するセグメントの変更またはサブネットマスクの変更など）を検知した場合に、自動的に実行してもよい。変化の検知は、公知の技術によって行うことができる。または、ある場所から撤去し、別の場所に移動させる場合に実行してもよい。
【０１１６】
図１７は、カスタマイズ用プログラム１０Ｐによる全体的な処理の流れの例を示すフローチャートである。
【０１１７】
次に、画像形成装置１のメインＣＰＵ１３１による代理応答プログラム１０Ｑの生成および更新の全体的な処理の流れを、図１７のフローチャートを参照しながら説明する。
【０１１８】
メインＣＰＵ１３１は、カスタマイズ用プログラム１０Ｐの起動後、所定の期間Ｔｐ、電力の供給のモードを通常モードに保ち、パケット８１を受信するごとに通常時実績データ５を生成し蓄積する（図１７の＃１１）。
【０１１９】
所定の期間Ｔｐが経過したら（＃１２でＹｅｓ）、メインＣＰＵ１３１は、蓄積した通常時実績データ５に基づいて代理応答プログラム１０Ｑを生成する（＃１３）。生成の方法は、前に図１０〜図１１で説明した通りである。そして、生成した代理応答プログラム１０ＱをＳＲＡＭ１３３ｓに記憶させる（＃１４）。これにより、代理応答ＣＰＵ１３３に代理応答プログラム１０Ｑが適用される。
【０１２０】
その後、スリープモード時またはスタンバイモード時は、代理応答ＣＰＵ１３３が、代理応答プログラム１０Ｑに基づいて応答処理を実行する。これは、前に図１３および図１４で説明した通りである。
【０１２１】
一方、通常モード時に、メインＣＰＵ１３１は、パケット８１を受信するごとに代行可能時実績データ７を生成し蓄積する（＃１５）。そして、所定の期間が経過しまたは所定のコマンドが入力されたら（＃１６でＹｅｓ）、代理応答プログラム１０Ｑを更新する（＃１７）。更新の処理は、前に図１５〜図１６で説明した通りである。そして、更新した代理応答プログラム１０ＱをＳＲＡＭ１３３ｓに記憶させる（＃１８）。これにより、代理応答ＣＰＵ１３３に、更新された代理応答プログラム１０Ｑが適用される。
【０１２２】
代理応答プログラム１０Ｑを一から生成し直す必要が生じたら（＃１９でＹｅｓ）、メインＣＰＵ１３１は、代理応答プログラム１０Ｑを代理応答プログラム記憶部１２２およびＳＲＡＭ１３３ｓから削除し、カスタマイズ用プログラム１０Ｐを再起動する（＃２０）。
【０１２３】
再起動後、メインＣＰＵ１３１は、カスタマイズ用プログラム１０Ｐに基づいて、ステップ＃１１から処理をやり直す。
【０１２４】
本実施形態によると、画像形成装置１および周囲の環境に応じて代理応答プログラム１０Ｑを生成し代理応答ＣＰＵ１３３に適用する。よって、従来よりも柔軟にかつ的確に代理応答ＣＰＵ１３３に応答処理を代行させることができる。また、環境の変化に対しても、従来よりも柔軟にかつ的確に対応することができる。
【０１２５】
また、代理応答プログラム１０ＱをＳＲＡＭ１３３ｓに記憶させるので、ＤＲＡＭに記憶させるよりも消費電力を低減することができる。
【０１２６】
図１８は、コントロールユニット１０ａのハードウェア構成の変形例である。本実施形態では、コントロールユニット１０ａが図３に示した通り構成される場合を例に説明したが、図１８に示すように、メインＣＰＵの中に代理応答ＣＰＵが組み込まれている場合にも、本発明を適用することができる。
【０１２７】
本実施形態では、代理応答プログラム１０Ｑを、画像形成装置１自身が生成しまたは更新したが、他の装置に実行させてもよい。例えば、ネットワークシステム３にサーバを設けておき、このサーバに実行させてもよい。または、いわゆるクラウドサーバに実行させてもよい。
【０１２８】
ネットワークシステム３に複数台の画像形成装置１が設けられている場合は、１台の画像形成装置１のために生成しまたは更新した代理応答プログラム１０Ｑを、他の画像形成装置１において適用してもよい。この場合は、代理応答プログラム１０Ｑを、一方の画像形成装置１から他方の画像形成装置１へ直接的に提供してもよいし、サーバに代理応答プログラム１０Ｑを記憶させておき、適宜、ダウンロードできるようしてもよい。ただし、この場合は、代理応答プログラム１０Ｑに示される宛先ＭＡＣアドレスおよび宛先ＩＰアドレスなどを、適用先の画像形成装置１に応じて適宜、変更する。
【０１２９】
本実施形態では、通常時実績データ５の個数が２つであっても１つのグループにグループ化したが、パターンが一定であることの確実性を高めるために、２つよりも大きい所定の個数以上の通常時実績データ５から１つのグループにグループ化してもよい。または、１つの通常時実績データ５であっても、１つのグループにグループ化してもよい。
【０１３０】
本実施形態では、代理応答プログラム１０Ｑにコードを含めるグループを、個数によって制限したが、代理応答プログラム１０Ｑのサイズ（バイト数）で制限してもよい。
【０１３１】
本実施形態では、省電力化の対象が画像形成装置１である場合を例に説明したが、他の機器である場合にも、本発明を適用することができる。例えば、サーバまたはパーソナルコンピュータなどにも適用することができる。
【０１３２】
検出データ５ａ（図５参照）に含める項目は、画像形成装置１が使用される環境などに応じて、適宜、変更可能である。図５の例では、宛先ＭＡＣアドレスおよび送信元ＭＡＣアドレスを含んでいないが、これらを含めてもよい。または、プロトコルだけを含めてもよい。
【０１３３】
その他、ネットワークシステム３、画像形成装置１の全体または各部の構成、処理内容、処理順序、データの構成などは、本発明の趣旨に沿って適宜変更することができる。
【符号の説明】
【０１３４】
１  画像形成装置（通信装置）
１０２  代理応答プログラム生成部（プログラム生成手段）
１０３  代理応答プログラム適用部（適用手段）
１０５  代理応答プログラム更新部（プログラム更新手段）
１０６  更新プログラム適用部（第二の適用手段）
１２１  通常時実績データ記憶部（応答実績記憶手段）
１２３  代行可能時実績データ記憶部（第二の応答実績記憶手段）
１３１  メインＣＰＵ（第一のコントローラ）
１３３  代理応答ＣＰＵ（第二のコントローラ）
１３３ｓ  ＳＲＡＭ
１０Ｑ  代理応答プログラム（代行用プログラム）
５  通常時実績データ
７  代行可能時実績データ
【図１】
2015053537.tif 000003
【図２】
2015053537.tif 000004
【図３】
2015053537.tif 000005
【図４】
2015053537.tif 000006
【図５】
2015053537.tif 000007
【図６】
2015053537.tif 000008
【図７】
2015053537.tif 000009
【図８】
2015053537.tif 000010
【図９】
2015053537.tif 000011
【図１０】
2015053537.tif 000012
【図１１】
2015053537.tif 000013
【図１２】
2015053537.tif 000014
【図１３】
2015053537.tif 000015
【図１４】
2015053537.tif 000016
【図１５】
2015053537.tif 000017
【図１６】
2015053537.tif 000018
【図１７】
2015053537.tif 000019
【図１８】
2015053537.tif 000020