(57)【要約】【課題】  メインＣＰＵのスリープ状態が不必要に解除されるのを抑制すること。【解決手段】  プリンタ１０は、メインＣＰＵ１４と、サブＣＰＵ２４と、メインＣＰＵ１４のスリープ状態を維持するための条件を記憶するための第１ＲＡＭ２０を有する。メインＣＰＵ１４は、無効なパケットが受信された場合に、そのパケットに含まれる宛先ポート番号を第１ＲＡＭ２０に登録する。サブＣＰＵ２４は、メインＣＰＵ１４がスリープ状態である間にパケットが受信された場合に、そのパケットに含まれる宛先ポート番号が第１ＲＡＭ２０に登録されているのか否かを判断する。サブＣＰＵ２４は、肯定的な判断結果が得られた場合に、メインＣＰＵ１４のスリープ状態を維持し、否定的な判断結果が得られた場合に、メインＣＰＵ１４のスリープ状態を解除する。【選択図】  図１
2010176220.tif 000002
【特許請求の範囲】
【請求項１】
外部装置に通信可能に接続される通信装置であって、
前記外部装置から送信されるデータを受信する受信部と、
スリープ状態と非スリープ状態との間で状態が移行するメイン制御部と、
前記メイン制御部の前記スリープ状態を維持するための条件と、前記メイン制御部の前記スリープ状態を解除するための条件と、の少なくとも一方の条件を記憶するための条件記憶部と、
サブ制御部と、
を備え、
前記サブ制御部は、
前記メイン制御部が前記スリープ状態である間に前記データが前記受信部によって受信される場合に、前記条件記憶部に記憶されている前記条件を参照して、前記データに含まれる特定情報を用いて、前記メイン制御部の前記スリープ状態を維持するのか否かを判断する第１判断部と、
前記第１判断部によって否定的に判断された場合に、前記メイン制御部の前記スリープ状態を解除する解除部と、
を備え、
前記メイン制御部と前記サブ制御部との少なくとも一方は、さらに、
対象データが前記受信部によって受信される際に、前記対象データに含まれる前記特定情報に基づいて、前記条件記憶部に新たな条件を登録する登録部であって、前記メイン制御部が前記スリープ状態である間に前記対象データが受信されると仮定すると、前記メイン制御部の前記スリープ状態が、解除されるべきでないにも関わらず前記解除部によって解除されてしまう場合に、前記新たな条件の前記登録を実行する前記登録部
を備える
ことを特徴とする通信装置。
【請求項２】
前記第１判断部は、前記条件記憶部に複数の条件が記憶されている場合には、前記複数の条件を順次参照して、前記メイン制御部の前記スリープ状態を維持するのか否かを判断する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第１判断部は、前記条件記憶部に登録されたのが新しい順に、前記複数の条件を順次参照する
ことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記登録部は、
前記メイン制御部が前記スリープ状態である間に前記対象データが前記受信部によって受信され、かつ、前記メイン制御部の前記スリープ状態が前記解除部によって解除された場合に、前記メイン制御部の前記スリープ状態を解除する必要があったのか否かを判断する第２判断部
を備え、
前記登録部は、前記第２判断部によって否定的に判断された場合に、前記条件記憶部に前記新たな条件を登録する
ことを特徴とする請求項１から３のいずれかに記載の通信装置。
【請求項５】
前記メイン制御部は、
前記第２判断部によって前記メイン制御部の前記スリープ状態を解除する必要があったと判断された場合には、前記非スリープ状態に移行してから所定時間が経過した後に前記スリープ状態に移行し、
前記第２判断部によって前記メイン制御部の前記スリープ状態を解除する必要がなかったと判断された場合には、前記非スリープ状態に移行してから前記所定時間が経過する前に前記スリープ状態に移行する
ことを特徴とする請求項４に記載の通信装置。
【請求項６】
前記特定情報は、トランスポート層に関連するトランスポート層関連情報を含み、
前記条件は、前記トランスポート層に関連するトランスポート層関連情報を含み、
前記第１判断部は、前記条件記憶部に記憶されている前記条件と、前記データに含まれる前記特定情報と、を比較することによって、前記メイン制御部の前記スリープ状態を維持するのか否かを判断する
ことを特徴とする請求項１から５のいずれかに記載の通信装置。
【請求項７】
前記トランスポート層関連情報は、宛先ポート情報を含む
ことを特徴とする請求項６に記載の通信装置。
【請求項８】
前記トランスポート層は、ＵＤＰ層である
ことを特徴とする請求項６又は７に記載の通信装置。
【請求項９】
前記メイン制御部に対してクロック供給を実行するクロック供給部をさらに備え、
前記メイン制御部は、前記クロック供給が実行されている間は前記非スリープ状態であり、前記クロック供給が停止されている間は前記スリープ状態であり、
前記メイン制御部と前記サブ制御部との少なくとも一方は、さらに、前記クロック供給部に前記クロック供給を停止させ、
前記解除部は、前記第１判断部によって否定的に判断された場合に、前記クロック供給部に前記クロック供給を実行させることによって、前記メイン制御部の前記スリープ状態を解除する
ことを特徴とする請求項１から８のいずれかに記載の通信装置。
【請求項１０】
前記メイン制御部によって実行されるべき複数のアプリケーションを記憶するためのアプリケーション記憶部と、
前記複数のアプリケーションのそれぞれについて、当該アプリケーションに関連するアプリケーション関連情報と、当該アプリケーションに対して予め設定されているポート情報と、を対応づけて記憶するためのポート情報記憶部と、をさらに備え、
前記特定情報は、宛先ポート情報を含み、
前記登録部は、前記対象データに含まれる宛先ポート情報が、前記ポート情報記憶部のいずれのポート情報にも一致しない場合に、前記宛先ポート情報に基づいて、前記条件記憶部に前記新たな条件を登録する
ことを特徴とする請求項１から９のいずれかに記載の通信装置。
【請求項１１】
前記登録部は、
前記メイン制御部が前記スリープ状態である間に前記対象データが前記受信部によって受信され、前記メイン制御部の前記スリープ状態が前記解除部によって解除され、かつ、前記対象データに含まれる宛先ポート情報が前記ポート情報記憶部のいずれのポート情報にも一致しない場合に、前記条件記憶部に前記新たな条件を登録し、
前記メイン制御部が前記非スリープ状態である間に前記対象データが前記受信部によって受信され、かつ、前記対象データに含まれる宛先ポート情報が前記ポート情報記憶部のいずれのポート情報にも一致しない場合に、前記条件記憶部に前記新たな条件を登録しない
ことを特徴とする請求項１０に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部装置に通信可能に接続される通信装置に関する。
【背景技術】
【０００２】
例えば、特許文献１に開示されているように、外部装置に通信可能に接続される通信装置が広く知られている。この通信装置は、中央処理装置とＬＡＮボード等を有する。中央処理装置が機能を実行しない状態が所定時間継続すると、中央処理装置に通電される主電源がＯＦＦされる。これにより、中央処理装置がスリープ状態になり、省電力を達成することができる。ＬＡＮボードは、主電源がＯＦＦされている間に、他のデバイスから送信されてくるパケットを解析する。ＬＡＮボードは、通信装置のＭＡＣアドレスを含むパケットが受信された場合に、主電源をＯＮする。また、ＬＡＮボードは、ブロードキャストパケットが受信された場合に、そのパケットにおいて実行することが指定されている機能を通信装置が実行可能であることを条件として、主電源をＯＮする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−８８７０７号公報
【特許文献２】特開２０００−２６１５１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の従来技術では、中央処理装置のスリープ状態（主電源がＯＦＦの状態）を解除するための条件が固定されている。例えば、通信装置のＭＡＣアドレスを含むパケット（以下では特定パケットと呼ぶ）が受信された場合には中央処理装置のスリープ状態が解除されるが、その特定パケットを中央処理装置が解析した結果、中央処理装置が処理を実行する必要がないということが判明する可能性がある。このような事実が判明しても、中央処理装置のスリープ状態を解除するための条件が固定されているために、上記の特定パケットが再び受信された場合には、必要がないにもかかわらず中央処理装置のスリープ状態が解除されてしまう。
【０００５】
本明細書では、メイン制御部（上記の例では中央処理装置）のスリープ状態が不必要に解除されるのを抑制することができる技術を提供する。
【課題を解決するための手段】
【０００６】
本明細書によって開示される技術は、外部装置に通信可能に接続される通信装置である。この通信装置は、受信部とメイン制御部と条件記憶部とサブ制御部とを備える。受信部は、上記の外部装置から送信されるデータを受信する。メイン制御部は、スリープ状態と非スリープ状態との間で状態が移行する。なお、スリープ状態は、非スリープ状態と比べて消費電力の少ない状態であると言うことができる。条件記憶部は、メイン制御部のスリープ状態を維持するための条件と、メイン制御部のスリープ状態を解除するための条件と、の少なくとも一方の条件を記憶することが可能である。サブ制御部は、第１判断部と解除部とを有する。第１判断部は、メイン制御部がスリープ状態である間にデータが受信部によって受信された場合に、条件記憶部に記憶されている条件を参照して、当該データに含まれる特定情報を用いて、メイン制御部のスリープ状態を維持するのか否かを判断する。解除部は、第１判断部によって否定的に判断された場合に、メイン制御部のスリープ状態を解除する。
【０００７】
また、メイン制御部とサブ制御部との少なくとも一方は、登録部を有する。登録部は、対象データが受信部によって受信される際に、当該対象データに含まれる特定情報に基づいて、条件記憶部に新たな条件を登録する。登録部は、メイン制御部がスリープ状態である間に当該対象データが受信されると仮定すると、メイン制御部のスリープ状態が、解除されるべきでないにも関わらず解除部によって解除されてしまう場合に、新たな条件の登録を実行する。上記の「メイン制御部がスリープ状態である間に・・解除部によって解除されてしまう場合」は、以下の２つのケースの少なくとも一方を含む。（１）メイン制御部がスリープ状態の間に対象データが受信され、メイン制御部のスリープ状態が解除され、スリープ状態が解除されたメイン制御部が当該対象データに基づいて処理を実行する必要がなかった場合。（２）メイン制御部が非スリープ状態の間に対象データが受信され、メイン制御部が当該対象データに基づいて処理を実行する必要がなかった場合。なお、以下では、メイン制御部が処理を実行する必要がなかったデータのことを「無効なデータ」と呼ぶことがある。登録部は、メイン制御部がスリープ状態の間に無効なデータが受信された第１の場合のみに当該無効なデータに基づいて新たな条件を登録してもよいし、メイン制御部が非スリープ状態の間に無効なデータが受信された第２の場合のみに当該無効なデータに基づいて新たな条件を登録してもよい。また、登録部は、上記の第１の場合及び第２の場合の双方で新たな条件を登録してもよい。
【０００８】
上記の通信装置では、メイン制御部が処理を実行する必要がなかった無効なデータ（所定の特定情報を含むデータ）が受信されたことを条件として、その無効なデータ（上記の所定の特定情報を含むデータ）が再び受信された際にメイン制御部のスリープ状態が解除されないように、条件記憶部に新たな条件が登録される。即ち、メイン制御部のスリープ状態を解除及び／又は維持するための条件が固定されているわけではなく、受信されたデータに基づいて新たな条件が登録される。メイン制御部のスリープ状態を解除するための条件が固定されている上記の従来技術では、その条件を満たす無効なデータが受信される毎に、メイン制御部のスリープ状態が解除されてしまう。これに対し、上記の通信装置では、受信された無効なデータに基づいて新たな条件が登録されるために、その無効なデータが再び受信された際にメイン制御部のスリープ状態が解除されない。上記の従来技術と比べると、無効なデータが受信された際にメイン制御部のスリープ状態が解除されるのを抑制することができる。
【０００９】
第１判断部は、条件記憶部に複数の条件が記憶されている場合には、複数の条件を順次参照して、メイン制御部のスリープ状態を維持するのか否かを判断してもよい。
【００１０】
上述したように、上記の通信装置では、無効なデータが受信されたことを条件として、その無効なデータが再び受信されてもメイン制御部のスリープ状態が解除されないように、条件記憶部に新たな条件が登録される。その後に短いインターバルで同じ無効なデータが再び受信される可能性がある。第１判断部は、条件記憶部に登録されたのが新しい順に、複数の条件を順次参照してもよい。この形態によると、同じ無効なデータが短いインターバルで再び受信された際に、第１判断部は、最近に登録された条件を参照するのみで肯定的に判断することができる。
【００１１】
上記の登録部は、メイン制御部がスリープ状態である間にデータが受信部によって受信され、かつ、メイン制御部のスリープ状態が解除部によって解除された場合に、メイン制御部のスリープ状態を解除する必要があったのか否かを判断する第２判断部を備えていてもよい。登録部は、第２判断部によって否定的に判断された場合に、条件記憶部に新たな条件を登録してもよい。
【００１２】
メイン制御部は、第２判断部によってメイン制御部のスリープ状態を解除する必要があったと判断された場合には、非スリープ状態に移行してから所定時間が経過した後にスリープ状態に移行してもよい。即ち、メイン制御部は、自身が処理を実行する必要があるデータ（以下では「有効なデータ」と呼ぶことがある）が受信された場合に、非スリープ状態に移行してから所定時間が経過した後にスリープ状態に移行してもよい。一方において、メイン制御部は、第２判断部によってメイン制御部のスリープ状態を解除する必要がなかったと判断された場合には、非スリープ状態に移行してから上記の所定時間が経過する前にスリープ状態に移行してもよい。即ち、メイン制御部は、無効なデータが受信された場合に、非スリープ状態に移行してから上記の所定時間より短時間でスリープ状態に移行してもよい。この形態によると、無効なデータが受信された結果としてメイン制御部のスリープ状態が解除された場合に、メイン制御部がスリープ状態にすばやく戻ることになる。省電力の通信装置を実現することができる。
【００１３】
上記の特定情報は、トランスポート層に関連するトランスポート層関連情報を含んでいてもよい。この場合、上記の条件は、トランスポート層に関連するトランスポート層関連情報を含んでいてもよい。第１判断部は、条件記憶部に記憶されている条件と、上記のデータに含まれる特定情報と、を比較することによって、メイン制御部のスリープ状態を維持するのか否かを判断してもよい。なお、トランスポート層関連情報は、宛先ポート情報を含んでいてもよい。また、トランスポート層は、ＵＤＰ層であってもよいし、ＴＣＰ層であってもよい。
【００１４】
通信装置は、メイン制御部に対してクロック供給を実行するクロック供給部をさらに備えていてもよい。メイン制御部は、クロック供給が実行されている間は非スリープ状態であり、クロック供給が停止されている間はスリープ状態であってもよい。メイン制御部とサブ制御部との少なくとも一方は、さらに、クロック供給部にクロック供給を停止させてもよい。解除部は、第１判断部によって否定的に判断された場合に、クロック供給部にクロック供給を実行させることをよって、メイン制御部のスリープ状態を解除してもよい。
【００１５】
通信装置は、アプリケーション記憶部とポート情報記憶部とをさらに備えていてもよい。アプリケーション記憶部は、メイン制御部によって実行されるべき複数のアプリケーションを記憶してもよい。ポート情報記憶部は、複数のアプリケーションのそれぞれについて、当該アプリケーションに関連するアプリケーション関連情報と、当該アプリケーションに対して予め設定されているポート情報と、を対応づけて記憶してもよい。上記の特定情報は、宛先ポート情報を含んでいてもよい。登録部は、上記の対象データに含まれる宛先ポート情報が、ポート情報記憶部のいずれのポート情報にも一致しない場合に、当該宛先ポート情報に基づいて、条件記憶部に新たな条件を登録してもよい。
【００１６】
登録部は、メイン制御部がスリープ状態である間に上記の対象データが受信部によって受信され、メイン制御部のスリープ状態が解除部によって解除され、かつ、当該対象データに含まれる宛先ポート情報がポート情報記憶部のいずれのポート情報にも一致しない場合に、条件記憶部に新たな条件を登録してもよい。一方において、メイン制御部が非スリープ状態である間に上記の対象データが受信部によって受信され、かつ、当該対象データに含まれる宛先ポート情報がポート情報記憶部のいずれのポート情報にも一致しない場合に、条件記憶部に新たな条件を登録しなくてもよい。この形態によると、メイン制御部がスリープ状態である間に無効なデータが受信された場合のみに新たな条件が登録される。
【００１７】
なお、本明細書によって開示される技術は、通信装置、通信装置の制御方法、コンピュータに通信装置を制御させるためのコンピュータプログラム、当該コンピュータプログラムを記録する記録媒体等の種々の態様で実現可能である。
【図面の簡単な説明】
【００１８】
【図１】プリンタシステムの構成を示す。
【図２】ＲＡＭの記憶内容の一例を示す。
【図３】メインＣＰＵの状態が移行する様子を示す。
【図４】パケットの一例を示す。
【図５】メインＣＰＵのスリープ状態制御処理のフローチャートを示す。
【図６】メインＣＰＵのパケット処理のフローチャートを示す。
【図７】メインＣＰＵの無効条件登録処理のフローチャートを示す。
【図８】パケット無効条件データが登録される様子を示す。
【図９】サブＣＰＵのスリープ状態制御処理のフローチャートを示す。
【図１０】サブＣＰＵのパケット判定処理のフローチャートを示す。
【発明を実施するための形態】
【００１９】
ここでは、以下の実施例に記載の技術の一部を列挙しておく。
（形態１）メイン制御部の動作周波数は、サブ制御部の動作周波数より大きくてもよい。
【００２０】
（形態２）通信装置は、データを書き込み可能である記憶部を備えていてもよい。記憶部は、メイン制御部がスリープ状態の間にクロック供給が停止されない第１記憶領域と、メイン制御部がスリープ状態の間にクロック供給が停止される第２記憶領域とを有していてもよい。第１記憶領域は、上記の条件記憶部を含んでいてもよい。また、第２記憶領域は、上記のポート情報記憶部を含んでいてもよい。
【実施例１】
【００２１】
（システムの構成）
図面を参照して実施例を説明する。図１は、本実施例のプリンタシステム２の概略図を示す。プリンタシステム２は、プリンタ１０とＰＣ５０等を有する。プリンタ１０は、制御部１２とネットワークインターフェイス３０とプリントエンジン３４と表示パネル３８等を有する。制御部１２は、メインＣＰＵ１４とメイン用クロック回路１６とＲＯＭ１８と複数のＲＡＭ２０，２２とサブＣＰＵ２４とサブ用クロック回路２６とＭＡＣコントローラ２８とエンジン制御回路３２とパネル制御回路３６等を有する。
【００２２】
メインＣＰＵ１４は、ＲＯＭ１８に記憶されているプログラムに従って様々な処理を実行する。メインＣＰＵ１４は、タイマ機構を内蔵している。以下では、このタイマのことを待機状態タイマと呼ぶ。メイン用クロック回路１６は、メインＣＰＵ１４にクロック信号を供給する。メインＣＰＵ１４にクロック信号が供給されている間は、メインＣＰＵ１４は、非スリープ状態（後述する待機状態と処理状態）である。また、メインＣＰＵ１４にクロック信号が供給されていない間は、メインＣＰＵ１４は、スリープ状態である。メイン用クロック回路１６は、サブＣＰＵ２４によって制御される。どのようにして制御するのかについては、後で詳しく説明する。
【００２３】
ＲＯＭ１８は、メインＣＰＵ１４及びサブＣＰＵ２４によって実行される様々なプログラムを記憶している。より具体的に言うと、ＲＯＭ１８は、複数のアプリケーションを記憶している。ＲＡＭ２０，２２は、様々なデータを記憶することができる。図２は、第１ＲＡＭ２０と第２ＲＡＭ２２とのそれぞれが記憶するデータの一例を示す。図示省略しているが、第１ＲＡＭ２０と第２ＲＡＭ２２とのそれぞれに対してクロック信号を供給するための回路も存在する。第１ＲＡＭ２０は、プリンタ１０の電源がＯＮされている間にクロック信号が常に供給される記憶領域１１０である。以下では、記憶領域１１０のことを非スリープ記憶領域１１０と呼ぶ。第２ＲＡＭ２２は、メインＣＰＵ１４が非スリープ状態の間にクロック信号が供給されるが、メインＣＰＵ１４がスリープ状態の間にクロック信号が供給されない記憶領域１１２である。従って、メインＣＰＵ１４がスリープ状態の間は、サブＣＰＵ２４は、記憶領域１１２の記憶内容を読み出すことができない。以下では、記憶領域１１２のことをスリープ記憶領域１１２と呼ぶ。
【００２４】
第１ＲＡＭ２０は、複数種類のデータを記憶するための複数の記憶領域６０，６２，６４，６６を有する。状態変数記憶領域６０は、状態変数を記憶するための記憶領域である。本実施例では、スリープ状態と待機状態と処理状態の３つの状態変数が存在する。スリープ移行フラグ記憶領域６２は、スリープ移行フラグ（ＯＮ又はＯＦＦ）を記憶するための記憶領域である。スリープ移行フラグは、メインＣＰＵ１４が非スリープ状態に移行してから所定期間経過しなくてもスリープ状態に移行させるためのフラグである。復帰フラグ記憶領域６４は、復帰フラグ（ＯＮ又はＯＦＦ）を記憶するための記憶領域である。復帰フラグは、メインＣＰＵ１４がスリープ状態から非スリープ状態に復帰した直後であるのか否かを示すフラグである。パケット無効条件記憶領域６６は、パケット無効条件データ６８を記憶するための記憶領域である。
【００２５】
第２ＲＡＭ２２は、有効ポート番号記憶領域９０を有する。上述したように、ＲＯＭ１８は、複数のアプリケーションを記憶している。それぞれのアプリケーションに対して、ポート番号が設定されている。有効ポート番号記憶領域９０は、アプリケーションとポート番号との組合せを記憶するための記憶領域である。有効ポート番号記憶領域９０は、複数の組合せデータ９２，９４を記憶することができる。各組合せデータ９２，９４は、アプリケーションを特定するためのアプリケーション特定情報１００と、そのアプリケーションに対して設定されているポート番号１０２とが対応づけられたものである。例えば、組合せデータ９２は、アプリケーションＡ１とポート番号Ｐ１との組合せであり、組合せデータ９４は、アプリケーションＡ２とポート番号Ｐ２との組合せである。メインＣＰＵ１４は、プリンタ１０の電源がＯＮされると、有効ポート番号記憶領域９０に組合せデータ９２，９４を書き込む処理を実行する。これにより、ＲＯＭ１８に記憶されているアプリケーション群のそれぞれに対応する組合せデータ９２，９４が有効ポート番号記憶領域９０に書き込まれる。
【００２６】
図１に示されるサブＣＰＵ２４は、ＲＯＭ１８に記憶されているプログラムに従って様々な処理を実行する。サブ用クロック回路２６は、サブＣＰＵ２４にクロック信号を供給する。サブ用クロック回路２６は、メイン用クロック回路１６と比べて、クロック信号の周波数が低い。従って、メインＣＰＵ１４を駆動するための消費電力と比べて、サブＣＰＵ２４を駆動するための消費電力は低い。本実施例では、プリンタ１０の電源がＯＮされている間は、サブ用クロック回路２６からサブＣＰＵ２４にクロック信号が常に供給される。即ち、本実施例では、サブＣＰＵ２４はスリープしない。なお、別の実施例では、サブＣＰＵ２４がスリープするように構成してもよい。
【００２７】
ＭＡＣコントローラ２８は、ネットワークインターフェイス３０によって受信されたデータ（パケットと呼ぶこともできる）をプリンタ１０が処理可能な形式に変換する。ネットワークインターフェイス３０は、ＬＡＮ４０に接続されている。ＬＡＮ４０は、ＰＣ５０に接続されている。ネットワークインターフェイス３０は、ＰＣ５０から送信されるデータを受信する。即ち、プリンタ１０は、ネットワークインターフェイス３０を介して、ＰＣ５０に通信可能に接続されている。エンジン制御回路３２は、メインＣＰＵ１４からの指示に従って、プリントエンジン３４を制御する。パネル制御回路３６は、メインＣＰＵ１４からの指示に従って、表示パネル３８を制御する。
【００２８】
（メインＣＰＵの状態）
続いて、メインＣＰＵ１４の状態について説明する。図３は、メインＣＰＵ１４の状態が移行する様子を示す。メインＣＰＵ１４は、スリープ状態１２０と待機状態１２２と処理状態１２４との間で状態が移行する。メイン用クロック回路１６からクロック信号が供給されていない間は、メインＣＰＵ１４は、スリープ状態１２０である。メインＣＰＵ１４がスリープ状態１２０である間にネットワークインターフェイス３０によって有効なパケット（メインＣＰＵ１４が動作する必要があると推定されるパケット）が受信された場合、メインＣＰＵ１４にクロック信号が供給される。この結果、メインＣＰＵ１４は、待機状態１２２に移行する。待機状態１２２において、メインＣＰＵ１４は、パケットの内容を解析し、その解析結果に従ってアプリケーションを利用して処理を実行する必要があるのか否かを判断する。肯定的な判断結果が得られた場合に、メインＣＰＵ１４は、パケットに対応するアプリケーションを起動する。これにより、メインＣＰＵ１４は、起動されたアプリケーションに従って処理を実行する処理状態１２４に移行する。
【００２９】
処理が終了すると、メインＣＰＵ１４は、待機状態１２２に移行する。待機状態１２２では、メインＣＰＵ１４にクロック信号が供給されている。メインＣＰＵ１４は、待機状態１２２に移行すると、待機状態タイマをスタートする。有効なパケットが受信されない状態が所定時間継続すると、メインＣＰＵ１４に対するクロック信号の供給が停止される。この結果、メインＣＰＵ１４は、スリープ状態１２０に移行する。なお、待機状態１２２の間に有効なパケットが受信され、そのパケットに対応するアプリケーションが起動された場合には、メインＣＰＵ１４は、処理状態１２４に移行する。
【００３０】
（パケットの内容）
続いて、ネットワークインターフェイス３０によって受信されるパケットの内容について説明する。図４は、イーサネット（登録商標）パケットの一例を示す。パケット１３０は、イーサネット（登録商標）ヘッダ１３２とＩＰヘッダ１３４とＵＤＰヘッダ１３６とアプリケーションデータ１４６とＣＲＣ１４８とを含んでいる。イーサネット（登録商標）ヘッダ１３２は、リンク層１５０において処理されるヘッダであり、送信元アドレス、宛先アドレス、上位層（ＩＰｖ４、ＩＰｖ６、ＡＲＰ等）を示す識別コード等を含む。送信元アドレスは、パケット１３０の送信元（例えばＰＣ５０）のＩＰアドレスである。宛先アドレスは、プリンタ１０のＩＰアドレスである。ＩＰヘッダ１３４は、ＩＰ層１５２において処理されるヘッダであり、送信元アドレス、宛先アドレス、上位層（ＴＣＰ、ＵＤＰ、ＩＣＭＰ、ＩＧＭＰ等）を示す識別コード等を含む。
【００３１】
ＵＤＰヘッダ１３６は、トランスポート層１５４において処理されるヘッダであり、送信元ポート番号１３８、宛先ポート番号１４０、データ長１４２、チェックサム１４４等を含む。送信元ポート番号１３８は、パケット１３０の送信元（例えばＰＣ５０）において、当該パケット１３０を送信する処理を実行するアプリケーションに対して設定されているポート番号である。宛先ポート番号１４０は、パケット１３０の送信先であるプリンタ１０において、当該パケット１３０を処理するアプリケーションを指定するための識別情報である。データ長１４２は、ＵＤＰヘッダ１３６とアプリケーションデータ１４６との合計データサイズである。チェックサム１４４は、パケット１３０の整合性を検査するための検査用データである。なお、トランスポート層１５４は、ＵＤＰ層１５６とＴＣＰ層１５８に大別することができる。ＵＤＰヘッダ１３６は、ＵＤＰ層１５６によって処理される。図示省略しているが、ＵＤＰヘッダ１３６の代わりにＴＣＰヘッダを有するパケットが存在する。このパケットの場合、ＴＣＰヘッダは、ＴＣＰ層１５８によって処理される。ＵＤＰヘッダの場合と同様に、ＴＣＰヘッダは、送信元ポート番号、宛先ポート番号、チェックサム等を含む。
【００３２】
アプリケーションデータ１４６は、アプリケーション群１６０，１６２によって処理されるデータでる。ＵＤＰのパケット１３０の場合（ＵＤＰヘッダ１３６を有するパケットの場合）、アプリケーションデータ１４６は、ＵＤＰアプリケーション１６０によって処理される。また、ＴＣＰのパケットの場合（ＴＣＰヘッダを有するパケットの場合）、アプリケーションデータは、ＴＣＰアプリケーション１６２によって処理される。ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）１４８は、リンク層（ＭＡＣ副層）１５０においてパケット１３０の妥当性を検査するための検査用データである。
【００３３】
（メインＣＰＵのスリープ状態制御処理）
続いて、メインＣＰＵ１４が実行する処理の内容について説明する。図５は、メインＣＰＵ１４によって実行されるスリープ状態制御処理のフローチャートを示す。図５の処理は、プリンタ１０の電源がＯＮされたことをトリガとして開始される。プリンタ１０の電源がＯＮされた時点では、メインＣＰＵ１４は待機状態１２２であり、状態変数記憶領域６０には待機状態１２２を示す状態変数が記憶されている。また、プリンタ１０の電源がＯＮされたことをトリガとして、メインＣＰＵ１４の待機状態タイマがリセットされた後にスタートされる。
【００３４】
メインＣＰＵ１４は、状態変数記憶領域６０に記憶されている状態変数が待機状態１２２を示すのか否かを判断する（Ｓ１０）。ここでＹＥＳの場合、Ｓ１２に進み、ＮＯの場合、メインＣＰＵ１４は、Ｓ１０の判断を繰り返す。Ｓ１２では、メインＣＰＵ１４は、スリープ移行フラグ記憶領域６２に記憶されているフラグがＯＮであるのか否かを判断する。ここでＮＯの場合、メインＣＰＵ１４は、待機状態タイマが予め決められている所定値を越えたのか否かを判断する（Ｓ１４）。ここでＹＥＳの場合、Ｓ１６に進み、ＮＯの場合、Ｓ１０に戻る。なお、Ｓ１２でＹＥＳの場合、メインＣＰＵ１４は、Ｓ１４をスキップしてＳ１６に進む。
【００３５】
Ｓ１６では、メインＣＰＵ１４は、状態変数記憶領域６０に記憶されている状態変数（待機状態を示す状態変数）を、スリープ状態を示す状態変数に変更する。次いで、メインＣＰＵ１４は、状態変数記憶領域６０に記憶されている状態変数がスリープ状態以外の状態を示すものに変わるまで待機する（Ｓ１８）。状態変数記憶領域６０に記憶されている状態変数がスリープ状態を示すものである場合、後述するように、サブＣＰＵ２４がメイン用クロック回路１６からのクロック信号の供給を停止する（図９のＳ９２参照）。これにより、メインＣＰＵ１４は、スリープ状態１２０に移行する。
【００３６】
後で詳しく説明するが、メインＣＰＵ１４のスリープ状態１２０の解除は、サブＣＰＵ２４によって実行される（図１０のＳ１２４参照）。サブＣＰＵ２４は、メインＣＰＵ１４のスリープ状態１２０を解除すると、状態変数記憶領域６０に記憶されている状態変数（スリープ状態を示す状態変数）を、待機状態を示す状態変数に変更する。図５の丸印Ａは、メインＣＰＵ１４がスリープ状態１２０から待機状態１２２に復帰した場合に、メインＣＰＵ１４が処理を再開する起点を示す。メインＣＰＵ１４は、スリープ状態１２０から待機状態１２２に復帰した場合に、Ｓ１８の処理を実行する。メインＣＰＵ１４がスリープ状態１２０から待機状態１２２に復帰した場合、状態変数記憶領域６０に待機状態を示す状態変数がサブＣＰＵ２４によって書き込まれるために（図１０のＳ１２２参照）、メインＣＰＵ１４は、Ｓ１８でＮＯと判断する。この場合、Ｓ２０に進む。
【００３７】
Ｓ２０では、メインＣＰＵ１４は、待機状態タイマをリセットし、リスタートする。次いで、メインＣＰＵ１４は、スリープ移行フラグ記憶領域６２に記憶されているフラグをＯＦＦに変更する（Ｓ２２）。Ｓ２２を終えると、Ｓ１０に戻る。なお、フローチャートには示されていないが、メインＣＰＵ１４は、処理状態１２４から待機状態１２２に移行した際にも、待機状態タイマをリセットし、リスタートする。
【００３８】
（メインＣＰＵのパケット処理）
続いて、メインＣＰＵ１４が実行するパケット処理の内容について説明する。図６は、パケット処理のフローチャートを示す。図６の処理は、メインＣＰＵ１４が非スリープ状態である間にネットワークインターフェイス３０によってパケットが受信されたことをトリガとして実行される。また、図６の処理は、メインＣＰＵ１４がスリープ状態である間にネットワークインターフェイス３０によってパケットが受信され、かつ、当該パケットの受信に応じてサブＣＰＵ２４がメインＣＰＵ１４のスリープ状態１２０を解除したことをトリガとして実行される。本実施例では、ＵＤＰのパケット１３０が受信された場合を例にして、図６の処理の内容について説明する。
【００３９】
メインＣＰＵ１４は、パケット１３０のＵＤＰヘッダ１３６に含まれる宛先ポート番号１４０が有効であるのか否かを判断する（Ｓ４０）。具体的に言うと、メインＣＰＵ１４は、有効ポート番号記憶領域９０に記憶されているいずれかの組合せデータ９２，９４の中に、ＵＤＰヘッダ１３６に含まれる宛先ポート番号１４０が存在するのか否かを判断する。ここでＹＥＳの場合、メインＣＰＵ１４は、ＵＤＰヘッダ１３６に含まれる宛先ポート番号１４０に対応づけられているアプリケーション特定情報１００（例えばＡ１）を有効ポート番号記憶領域９０から特定する。次いで、メインＣＰＵ１４は、特定されたアプリケーション特定情報１００によって特定されるアプリケーションを起動する（Ｓ４２）。このアプリケーションに従って、メインＣＰＵ１４は、パケット１３０のアプリケーションデータ１４６に対応する処理を実行する。例えば、メインＣＰＵ１４は、エンジン制御回路３２に印刷を指示する処理を実行する。
【００４０】
Ｓ４２を終えると、メインＣＰＵ１４は、復帰フラグ記憶領域６４に記憶されているフラグがＯＮであるのか否かを判断する（Ｓ４８）。ここでＹＥＳの場合、メインＣＰＵ１４は、復帰フラグ記憶領域６４に記憶されているフラグをＯＦＦに変更する（Ｓ５０）。Ｓ４８でＮＯの場合、Ｓ５０がスキップされる。
【００４１】
有効ポート番号記憶領域９０に記憶されているいずれの組合せデータ９２，９４の中にも、ＵＤＰヘッダ１３６に含まれる宛先ポート番号１４０が存在しない場合、Ｓ４０でＮＯと判断される。この場合、メインＣＰＵ１４は、復帰フラグ記憶領域６４に記憶されているフラグがＯＮであるのか否かを判断する（Ｓ４４）。ここでＹＥＳの場合、メインＣＰＵ１４は、無効条件登録処理を実行する（Ｓ４６）。Ｓ４４でＮＯの場合、Ｓ４６がスキップされる。
【００４２】
（メインＣＰＵの無効条件登録処理）
続いて、図６のＳ４６で実行される無効条件登録処理の内容について説明する。図７は、無効条件登録処理のフローチャートを示す。メインＣＰＵ１４は、復帰フラグ記憶領域６４に記憶されているフラグをＯＦＦに変更する（Ｓ６０）。次いで、メインＣＰＵ１４は、スリープ移行フラグ記憶領域６２に記憶されているフラグをＯＮに変更する（Ｓ６２）。続いて、メインＣＰＵ１４は、パケット無効条件記憶領域６６に少なくとも１つのパケット無効条件データ６８が記憶されているのか否かを判断する（Ｓ６４）。ここでＮＯの場合、Ｓ６６に進み、ここでＹＥＳの場合、Ｓ６６をスキップしてＳ６８に進む。
【００４３】
Ｓ６６では、メインＣＰＵ１４は、パケット無効条件記憶領域６６にパケット無効条件データ６８を書き込む。この処理の内容を説明する前に、図２を参照して、パケット無効条件データ６８の構成について説明する。パケット無効条件データ６８は、ベースデータ７０と比較対象データ８０とを含む。ベースデータ７０は、データ位置７２とデータ長７４とマスクデータ７６とデータ数７８とを含む。図７のＳ６６の処理では、メインＣＰＵ１４は、ベースデータ７０を書き込む。具体的に言うと、メインＣＰＵ１４は、パケット１３０のＵＤＰヘッダ１３６のビット列の中から宛先ポート番号１４０の位置を特定するための位置情報（Ｓ６６の例では「２」）をデータ位置７２として書き込む。メインＣＰＵ１４は、ＵＤＰヘッダ１３６に含まれる宛先ポート番号１４０のデータサイズ（図７の例では「２バイト」）をデータ長７４として書き込む。ＵＤＰのパケット１３０の場合、メインＣＰＵ１４は、「０×ＦＦＦＦ」をマスクデータ７６として書き込む。「０×ＦＦＦＦ」は、１６ビットのデータをマスクしないことを意味する。即ち、データ位置７２とデータ長７４とによって指定される１６ビット（２バイト）のデータの全てが宛先ポート番号１４０を表わすものであることを意味する。また、メインＣＰＵ１４は、「０」をデータ数７８として書き込む。データ数７８は、比較対象データ８０として書き込まれるデータの数を示す。Ｓ６６の処理の時点では、比較対象データ８０には何も書き込まれない。図８の最も上の図は、Ｓ６６の処理によって書き込まれたベースデータ７０の一例を示す。
【００４４】
次いで、メインＣＰＵ１４は、パケット無効条件データ６８の比較対象データ８０を書き込む（Ｓ６８）。さらに、メインＣＰＵ１４は、ベースデータ７０のデータ数７８に１を加算する（Ｓ７０）。図２に示されるように、比較対象データ８０として複数個のデータ８２を書き込むことができる。メインＣＰＵ１４は、パケット１３０のＵＤＰヘッダ１３６に含まれる宛先ポート番号１４０を比較対象データ８０の先頭に書き込む。比較対象データ８０として１つのデータ８２も書き込まれていない場合には、Ｓ６８で書き込まれる宛先ポート番号１４０が必然的に先頭になる。例えば、図８の上から２つ目の図は、１つのデータ１６０（ポート番号「６９」）のみが書き込まれた様子を示す。この図では、データ数が「１」である。一方において、比較対象データ８０として少なくとも１つのデータが書き込まれている場合には、メインＣＰＵ１４は、そのデータを後ろ（図２の右側）にシフトし、そのデータがシフト前に書き込まれていた領域に新たなデータを書き込む。これにより、最新のデータが先頭に書き込まれることになる。例えば、図８の上から２番目の図の状態からデータ１６２（ポート番号「１３７」）が新たに書き込まれる場合には、図８の上から３番目の図に示されるように、データ１６０が右側にシフトし、データ１６２が先頭に書き込まれる。この図では、データ数が「２」である。また、例えば、図８の上から３番目の図の状態からデータ１６４（ポート番号「１６１」）が新たに書き込まれる場合には、図８の最も下の図に示されるように、データ１６０とデータ１６２がそれぞれ右側にシフトし、データ１６４が先頭に書き込まれる。比較対象データ８０に含まれる複数個のデータ１６０，１６２，１６４においては、左側に存在するデータほど最近に書き込まれたデータになる。
【００４５】
（サブＣＰＵのスリープ状態制御処理）
続いて、サブＣＰＵ２４が実行する処理の内容について説明する。図９は、サブＣＰＵ２４によって実行されるスリープ状態制御処理のフローチャートを示す。図９の処理は、プリンタ１０の電源がＯＮされたことをトリガとして開始される。サブＣＰＵ２４は、状態変数記憶領域６０に記憶されている状態変数がスリープ状態１２０を示すのか否かを判断する（Ｓ９０）。ここでＹＥＳの場合、Ｓ９２に進み、ＮＯの場合、サブＣＰＵ２４は、Ｓ９０の判断を繰り返す。Ｓ９２では、サブＣＰＵ２４は、メイン用クロック回路１６に対する電源の供給を停止する。これにより、メイン用クロック回路１６からメインＣＰＵ１４に対するクロック信号の供給が停止する。メインＣＰＵ１４は、スリープ状態１２０に移行する。また、Ｓ９２では、サブＣＰＵ２４は、スリープ記憶領域１１２（即ち第２ＲＡＭ２２）に対するクロック信号の供給を停止する。これにより、スリープ記憶領域１１２に記憶されているデータ（例えば有効ポート番号記憶領域９０に記憶されているデータ）を読み出すことが不可能な状態になる。
【００４６】
続いて、サブＣＰＵ２４は、ネットワークインターフェイス３０によってパケットが受信されることを監視する（Ｓ９４）。ここでＹＥＳの場合、サブＣＰＵ２４は、パケット判定処理を実行する（Ｓ９６）。パケット判定処理については、後で詳しく説明する。パケット判定処理が実行されると、メインＣＰＵ１４に対するクロック信号の供給が再開される可能性がある。サブＣＰＵ２４は、メインＣＰＵ１４に対するクロック信号の供給が再開されたのか否かを判断する（Ｓ９８）。ここでＹＥＳの場合、Ｓ９０に戻り、ここでＮＯの場合、Ｓ９４に戻る。
【００４７】
（サブＣＰＵのパケット判定処理）
続いて、図９のＳ９６で実行されるパケット判定処理の内容について説明する。図１０は、パケット判定処理のフローチャートを示す。本実施例では、図４に示されるＵＤＰのパケット１３０が受信された場合を例にして、図１０の処理の内容について説明する。また、パケット無効条件記憶領域６６に図８の最も下の図のデータが記憶されている場合を例にして、図１０の処理の内容について説明する。
【００４８】
サブＣＰＵ２４は、パケット無効条件記憶領域６６に記憶されているベースデータ７０のデータ位置「２」とデータ長「２」とに従って、受信したパケット１３０のＵＤＰヘッダ１３６に含まれる宛先ポート番号１４０を特定する（Ｓ１１０）。次いで、サブＣＰＵ２４は、パケット無効条件記憶領域６６に記憶されている比較対象データ８０の先頭のデータ１６４（ポート番号「１６１」）を特定する（Ｓ１１２）。サブＣＰＵ２４は、Ｓ１１０で特定された宛先ポート番号１４０がＳ１１２で特定されたポート番号に一致するのか否かを判断する（Ｓ１１４）。ここでＹＥＳの場合、サブＣＰＵ２４は、後述のＳ１１６〜Ｓ１２４をスキップし、パケット判定処理を終了する。この場合、メインＣＰＵ１４のスリープ状態が解除されない。
【００４９】
Ｓ１１４でＮＯの場合、サブＣＰＵ２４は、パケット無効条件記憶領域６６に記憶されている比較対象データ８０の最後のデータ（最も古く記憶されたデータ；図８の最も下の図の例ではデータ１６０（ポート番号「６９」）について、Ｓ１１４の処理を行ったのか否かを判断する（Ｓ１１６）。ここでＮＯの場合、サブＣＰＵ２４は、比較対象データ８０の次のデータ（１つ右側のデータ（例えばデータ１６２））を特定する（Ｓ１１８）。続いて、サブＣＰＵ２４は、Ｓ１１０で特定された宛先ポート番号１４０がＳ１１８で特定されたポート番号に一致するのか否かを判断する（Ｓ１１４）。Ｓ１１４又はＳ１１６でＹＥＳと判断されるまで、Ｓ１１４〜Ｓ１１８の処理が繰り返される。
【００５０】
Ｓ１１６でＹＥＳの場合、Ｓ１１０で特定された宛先ポート番号１４０が、比較対象データ８０のいずれのデータ１６０〜１６４にも一致しなかったことを意味する。この場合、サブＣＰＵ２４は、復帰フラグ記憶領域６４に記憶されているフラグをＯＮに変更する（Ｓ１２０）。さらに、サブＣＰＵ２４は、状態変数記憶領域６０に記憶されている状態変数を、待機状態を示す状態変数に変更する（Ｓ１２２）。次いで、サブＣＰＵ２４は、メイン用クロック回路１６を駆動し、メインＣＰＵ１４に対するクロック信号の供給を再開する（Ｓ１２４）。また、Ｓ１２４では、サブＣＰＵ２４は、スリープ記憶領域１１２（即ち第２ＲＡＭ２２）に対するクロック信号の供給を再開する。これにより、スリープ記憶領域１１２に記憶されているデータ（例えば記憶領域９０に記憶されているデータ）を読み出すことが可能になる。サブＣＰＵ２４によってスリープ状態１２０が解除されたメインＣＰＵ１４は、上記の図６のパケット処理を実行する。
【００５１】
本実施例のプリンタシステム２について詳しく説明した。プリンタ１０のメインＣＰＵ１４は、受信されたパケット１３０に含まれる宛先ポート番号（例えばポート番号「６９」）に基づいて、自身が処理を実行する必要がないと判断した場合（図６のＳ４０でＮＯの場合）には、その宛先ポート番号（例えばポート番号「６９」）をパケット無効条件記憶領域６６に登録する。即ち、メインＣＰＵ１４は、パケット１３０の解析結果に従って新たな条件をパケット無効条件記憶領域６６に登録する。メインＣＰＵ１４は、パケット１３０の解析結果に従って動的に条件を登録することができる。この結果、メインＣＰＵ１４がスリープ状態１２０である間に同じ宛先ポート番号（例えばポート番号「６９」）を含むパケットが再び受信された場合でも、サブＣＰＵ２４は、メインＣＰＵ１４のスリープ状態１２０を維持することができる。本実施例によると、メインＣＰＵ１４のスリープ状態１２０が不必要に解除されるのを抑制することができる。
【００５２】
なお、本実施例では、パケット無効条件記憶領域６６に条件が順次追加されるために、メインＣＰＵ１４のスリープ状態１２０が不必要に解除される可能性を次第に低減することができる。パケット無効条件記憶領域６６に予め条件を登録しておく必要もない。
【００５３】
また、本実施例では、サブＣＰＵ２４は、パケット無効条件記憶領域６６に登録されたデータ１６０，１６２，１６４のうち、登録されたのが新しい順に図１０のＳ１１４の判断を実行する。メインＣＰＵ１４が処理を実行する必要がない無効なパケット１３０が短いインターバルで再び受信された際に、サブＣＰＵ２４は、比較的に少数のデータのみ（例えばデータ１６４のみ）を参照するだけでＳ１１４でＹＥＳと判断することができる。サブＣＰＵ２４の処理負荷を少なくすることができる。
【００５４】
また、本実施例では、メインＣＰＵ１４は、スリープ状態１２０の間に有効なパケット（自身が処理を実行する必要があるパケット；図６のＳ４０でＹＥＳと判断されるパケット）が受信された場合には、処理状態１２４を経て待機状態１２２に移行し、その時点でリスタートされる待機状態タイマが所定時間を経過するとスリープ状態１２０に移行する（図３参照）。有効なパケットが受信されてから短いインターバルで別の有効なパケットが再び受信される可能性がある。例えば、ＰＣ５０のユーザは、印刷命令を含むパケットをプリンタ１０に送信し、その後に短いインターバルで別の印刷命令を含むパケットをプリンタ１０に送信する可能性がある。本実施例では、処理状態１２４を終えた後にメインＣＰＵ１４の待機状態１２２が所定時間維持されるために、メインＣＰＵ１４が待機状態１２２である間に、上記の別の印刷命令を含むパケットを受信することができる。即ち、この場合、メインＣＰＵ１４はスリープ状態１２０に移行せずに済むため、メインＣＰＵ１４のスリープ状態１２０を解除する処理を行なわずに済み、メインＣＰＵ１４は、処理状態１２４にただちに移行することができる。
【００５５】
一方、メインＣＰＵ１４は、スリープ状態１２０の間に無効なパケット（自身が処理を実行する必要がないパケット；図６のＳ４０でＮＯと判断されるパケット）が受信された場合には、図７の無効条件登録処理を実行する過程において、スリープ移行フラグをＯＮに変更する（Ｓ６２）。この場合、メインＣＰＵ１４は、図５のＳ１２においてＹＥＳと判断し、状態変数をスリープ状態に変更する（Ｓ１６）。この結果、サブＣＰＵ２４は、図９のＳ９０においてＹＥＳと判断し、メインＣＰＵ１４をスリープ状態に移行させる（Ｓ９２）。即ち、本実施例では、メインＣＰＵ１４がスリープ状態１２０の間に無効なパケットが受信されたにもかかわらず、メインＣＰＵ１４のスリープ状態１２０が解除された場合には、上記の所定時間が経過する前にメインＣＰＵ１４をスリープ状態１２０に移行させる。省電力のプリンタ１０を実現することができる。
【００５６】
ここでは、実施例と請求項の対応関係を記載しておく。本発明における通信装置は、プリンタ１０に対応する。本発明における外部装置は、ＰＣ５０に対応する。本発明における受信部は、ネットワークインターフェイス３０に対応する。本発明におけるスリープ状態は、スリープ状態１２０に対応する。本発明における非スリープ状態は、待機状態１２２と処理状態１２４とに対応する。本発明におけるメイン制御部は、メインＣＰＵ１４に対応する。本発明におけるサブ制御部は、サブＣＰＵ２４に対応する。本発明における条件記憶部は、第１ＲＡＭ２０のパケット無効条件記憶領域６６に対応する。本発明における条件は、比較対象データ８０に対応する。本発明における特定情報は、パケット１３０に含まれる宛先ポート番号１４０に対応する。本発明における第１判断部は、図１０のＳ１１４の処理を実行するサブＣＰＵ２４に対応する。本発明における解除部は、図１０のＳ１２４の処理を実行するサブＣＰＵ２４に対応する。本発明における登録部は、図６のＳ４０及びＳ４６の処理を実行するメインＣＰＵ１４に対応する。
【００５７】
本発明における第２判断部は、図６のＳ４０の処理を実行するメインＣＰＵ１４に対応する。本発明における所定時間は、図３の待機状態１２２からスリープ状態１２０に移行するための所定時間に対応する。本発明におけるトランスポート層関連情報は、パケット１３０に含まれる宛先ポート番号１４０に対応する。本発明におけるクロック供給部は、メイン用クロック回路１６に対応する。本発明におけるアプリケーション記憶部は、ＲＯＭ１８に対応する。本発明におけるポート情報記憶部は、第２ＲＡＭ２２の有効ポート番号記憶領域９０に対応する。
【００５８】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００５９】
（１）上記の実施例では、メインＣＰＵ１４のスリープ状態を維持するための条件（即ち無効なパケットに含まれる宛先ポート番号）がパケット無効条件記憶領域６６に記憶される。しかしながら、メインＣＰＵ１４のスリープ状態を解除するための条件（即ち有効なパケットに含まれる宛先ポート番号）がパケット無効条件記憶領域６６に記憶されてもよい。また、パケット無効条件記憶領域６６は、メインＣＰＵ１４のスリープ状態を維持するための条件と、メインＣＰＵ１４のスリープ状態を解除するための条件と、の両方を記憶してもよい。
【００６０】
（２）上記の実施例では、メインＣＰＵ１４がパケット無効条件記憶領域６６に条件を登録している。しかしながら、サブＣＰＵ２４がパケット無効条件記憶領域６６に条件を登録してもよい。また、メインＣＰＵ１４とサブＣＰＵ２４の両方がパケット無効条件記憶領域６６に条件を登録してもよい。例えば、メインＣＰＵ１４がスリープ状態１２０の間に受信された無効なパケット１３０についてはメインＣＰＵ１４（又はサブＣＰＵ２４）が登録し、メインＣＰＵ１４が非スリープ状態１２２，１２４の間に受信された無効なパケット１３０についてはサブＣＰＵ２４（又はメインＣＰＵ１４）が登録してもよい。
【００６１】
（３）上記の実施例では、メインＣＰＵ１４が図６のＳ４０の判断処理を実行している。しかしながら、サブＣＰＵ２４が図６のＳ４０の判断処理を実行してもよい。また、メインＣＰＵ１４とサブＣＰＵ２４の両方が図６のＳ４０の判断処理を実行してもよい。例えば、メインＣＰＵ１４がスリープ状態１２０の間に受信されたパケット１３０についてはメインＣＰＵ１４（又はサブＣＰＵ２４）が図６のＳ４０の判断処理を実行し、メインＣＰＵ１４が非スリープ状態１２２，１２４の間に受信されたパケット１３０についてはサブＣＰＵ２４（又はメインＣＰＵ１４）が図６のＳ４０の判断処理を実行してもよい。
【００６２】
（４）上記の実施例では、サブＣＰＵ２４がメインＣＰＵ１４に対するクロック供給を停止している（図９のＳ９２参照）。しかしながら、メインＣＰＵ１４が自身に対するクロック供給を停止してもよい。また、メインＣＰＵ１４とサブＣＰＵ２４の両方がメインＣＰＵ１４に対するクロック供給を停止してもよい。例えば、メインＣＰＵ１４とサブＣＰＵ２４が交互に図９のＳ９２の処理を実行してもよい。
【００６３】
（５）上記の実施例では、メインＣＰＵ１４がスリープ状態１２０の間に受信された無効なパケット１３０についてはパケット無効条件記憶領域６６に条件が登録され（Ｓ４４でＹＥＳの場合に実行されるＳ４６）、メインＣＰＵ１４が非スリープ状態１２２，１２４の間に受信された無効なパケット１３０については条件が登録されない（Ｓ４４でＮＯの場合にＳ４６がスキップされる）。しかしながら、後者の状況でも条件が登録されるようにしてもよい。また、前者の状況では条件が登録されず、後者の状況のみにおいて条件が登録されるようにしてもよい。
【００６４】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００６５】
２：プリンタシステム、１０：プリンタ、１２：制御部、１４：メインＣＰＵ、１６：メイン用クロック回路、１８：ＲＯＭ、２０：第１ＲＡＭ、２２：第２ＲＡＭ、２４：サブＣＰＵ、２６：サブ用クロック回路、２８：ＭＡＣコントローラ、３０：ネットワークインターフェイス、３２：エンジン制御回路、３４：プリントエンジン、３６：パネル制御回路、３８：表示パネル、５０：ＰＣ、６０：状態変数記憶領域、６２：スリープ移行フラグ記憶領域、６４：復帰フラグ記憶領域、６６：パケット無効条件記憶領域、６８：パケット無効条件データ、９０：有効ポート番号記憶領域
【図１】
2010176220.tif 000003
【図２】
2010176220.tif 000004
【図３】
2010176220.tif 000005
【図４】
2010176220.tif 000006
【図５】
2010176220.tif 000007
【図６】
2010176220.tif 000008
【図７】
2010176220.tif 000009
【図８】
2010176220.tif 000010
【図９】
2010176220.tif 000011
【図１０】
2010176220.tif 000012