説明

通信装置

【課題】 通信装置の消費電力を、より低減させる技術を提供する。
【解決手段】 プリンタは、メインCPUとサブCPUを備える。メインCPUは、スリープ状態と非スリープ状態との間で状態が移行する。サブCPUは、メインCPUがスリープ状態である場合に、ネットワークを介して受信する1個以上の未処理パケットを順次処理するためのパケット処理を実行可能である。サブCPU24は、メインCPU24がスリープ状態であり、かつ、未処理パケットの受信が検出される場合(S72でYES)に、パケット処理を開始し、パケット処理が終了時刻を経過して継続される場合(S90でYES)に、未処理パケットが残存していても、パケット処理を終了する。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書では、ネットワークに接続される通信装置を開示する。
【背景技術】
【0002】
特許文献1には、メインCPUとサブCPUとを備える画像形成システムが開示されている。画像形成システムは、消費電力が比較的に小さい省エネルギーモードと、消費電力が比較的に大きい通常の状態と、の間で状態が移行する。通常の状態ではメインCPUへ電源が供給され、省エネルギーモードではメインCPUへの電源の供給は停止される。この画像形成システムは、メインCPUが最後のジョブを完了してから所定期間が経過すると、省エネルギー状態に移行する。これにより、画像形成システムの省電力化が実現される。この画像形成システムでは、省エネルギー状態である場合に、外部機器からデータが受信される毎に、サブCPUは、画像形成システムを省エネルギーモードから通常の状態に移行させる。この結果、メインCPUに電源が供給される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−5029号公報
【特許文献2】特開2001−282398号公報
【特許文献3】特開2005−313489号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
通信装置(上記の特許文献1の画像形成システムがその一例)のさらなる省電力化を実現することが求められている。本明細書では、さらなる省電力化を実現し得る通信装置を提供する。
【課題を解決するための手段】
【0005】
本明細書によって開示される技術は、ネットワークに接続される通信装置に関する。この通信装置は、第1処理部と第2処理部とを備える。第1処理部は、スリープ状態と非スリープ状態との間で状態が移行する。第1処理部は、第1処理部が非スリープ状態である場合に、ネットワークを介して受信するパケットを処理する。第2処理部は、第1処理部がスリープ状態である場合に、ネットワークを介して受信するパケットを処理する。第2処理部は、1個以上の未処理パケットを順次処理するためのパケット処理を実行可能である。第2処理部は、未処理パケットの受信を検出する検出部を備える。第2処理部は、第1処理部がスリープ状態であり、かつ、未処理パケットの受信が検出される場合に、パケット処理を開始する。第2処理部は、パケット処理の継続期間が許容期間を越える場合に、未処理パケットが残存していても、パケット処理を終了する。
【0006】
上記の通信装置では、第1処理部がスリープ状態である場合に、第2処理部は、未処理パケットを処理するパケット処理を実行可能である。即ち、第1処理部がスリープ状態である場合に、第1処理部を頻繁に非スリープ状態に移行させずに済む。この結果、第1処理部がスリープ状態で維持される期間が長くなり得るために、より省電力な通信装置を実現し得る。但し、未処理パケットの個数が多くなると、パケット処理の継続時間が長くなる。このため、第2処理部が長期間に亘ってパケット処理以外の処理(他の処理)を実行することができないという問題が起こり得る。このような問題に対処するために、上記の通信装置では、第2処理部は、パケット処理の継続期間が許容期間を越える場合に、未処理パケットが残存していても、パケット処理を終了する。これにより、第2処理部が長期間に亘って他の処理を実行することができないという問題が発生するのを抑制することができる。
【0007】
第2処理部は、パケット処理の継続期間が上記の許容期間を越える場合に、第1処理部をスリープ状態から非スリープ状態に移行させてもよい。この構成によれば、仮に、未処理パケットが残存する状態でパケット処理が終了しても、第1処理部が当該未処理パケットを処理し得る。
【0008】
第2処理部は、パケット処理の継続期間が上記の許容期間を越える場合に、さらに、未処理パケットが残存するのか否かを判断してもよい。第2処理部は、未処理パケットが残存すると判断される第1の場合に、第1処理部をスリープ状態から非スリープ状態に移行させ、未処理パケットが残存しないと判断される第2の場合に、第1処理部をスリープ状態から非スリープ状態に移行させなくてもよい。この構成によれば、第2の場合に、第1処理部が第1処理部のスリープ状態が維持されるために、より省電力な通信装置を実現することができる。
【0009】
上記の第1の場合に、第1処理部は、非スリープ状態に移行した後に、残存する未処理パケットを処理してもよい。この構成によれば、残存する未処理パケットを迅速に処理することができる。
【0010】
第2処理部は、上記の許容期間に基づいて、パケット処理の終了時刻を決定し、現在時刻が上記の終了時刻を経過する場合に、パケット処理の継続期間が許容期間を越えると判断してもよい。
【0011】
未処理パケットの処理は、未処理パケットに対する応答を送信する処理を含んでいてもよい。
【0012】
第2処理部は、パケット処理の継続期間が上記の許容期間を越える前において、1個の未処理パケットの処理が終了する毎に、未処理パケットが残存するのか否かを判断してもよい。第2処理部は、未処理パケットが残存しないと判断される場合に、パケット処理の継続期間が上記の許容期間を越える前に、パケット処理を終了してもよい。この構成によれば、第2処理部は、上記の許容期間を越える前にパケット処理を終了して、他の処理を実行することができる。
【0013】
第2処理部は、パケット処理の継続期間が許容期間を越える前において、第1処理部が処理すべき特定の種類の未処理パケットが残存するのか否かを判断してもよい。上記の特定の種類の未処理パケットが残存すると判断される場合に、パケット処理の継続期間が許容期間を越える前に、パケット処理を終了するとともに、第1処理部をスリープ状態から非スリープ状態に移行させてもよい。この構成によれば、上記の特定の種類の未処理パケットが残存する場合に、第1処理部が当該未処理パケットを処理することができる。
【0014】
通信装置は、さらに、未処理パケットを格納するための格納部を備えていてもよい。第2処理部は、パケット処理の継続期間が上記の許容期間を越える前において、格納部の残容量が不足するか否かを判断してもよい。第2処理部は、残容量が不足すると判断される場合に、パケット処理の継続期間が許容期間を越える前に、パケット処理を終了するとともに、第1処理部をスリープ状態から非スリープ状態に移行させてもよい。この構成によれば、格納部の残容量が不足する場合に、第1処理部が未処理パケットを処理し得る。
【0015】
なお、上記の通信装置を実現するための制御方法、及び、コンピュータプログラムも新規で有用である。
【図面の簡単な説明】
【0016】
【図1】通信システムの構成を示す。
【図2】プリンタの状態移行の一例を示す。
【図3】プリンタの状態に対応する各部の状態の一例を示す。
【図4】メインCPUが実行する省電力処理のフローチャートを示す。
【図5】サブCPUが実行する省電力処理のフローチャートを示す。
【図6】パケット処理を説明するための図を示す。
【発明を実施するための形態】
【0017】
図面を参照して実施例を説明する。図1は、本実施例の通信システム2の構成を示す。通信システム2は、外部装置6とプリンタ10とを備える。外部装置6とプリンタ10は、LAN4に接続されており、LAN4を介して、相互に通信可能である。
【0018】
(プリンタの構成)
図1に示すように、プリンタ10は、制御部12と、ネットワークインターフェイス30と、プリントエンジン34と、表示パネル38を備える。制御部12は、メインCPU14と、メイン用クロック回路16と、ROM18と、2個のRAM20,22と、サブCPU24と、サブ用クロック回路26と、MACコントローラ28と、エンジン制御回路32と、パネル制御回路36を備える。
【0019】
メインCPU14は、DRAM22に格納されているプログラムに従って様々な処理を実行する。メインCPU14は、タイマ機構を内蔵している。メイン用クロック回路16は、メインCPU14にクロック信号を供給する。メインCPU14にクロック信号が供給されている間は、メインCPU14は非スリープ状態である。メインCPU14にクロック信号が供給されていない間は、メインCPU14はスリープ状態である。メイン用クロック回路16は、サブCPU24によって制御される。この説明から明らかなように、メインCPU14のスリープ状態は、メインCPU14の非スリープ状態と比べて、メインCPU14の消費電力が少ない状態であると言える。
【0020】
サブCPU24は、SRAM20に格納されているプログラムに従って様々な処理を実行する。サブCPU24は、時計機構を内蔵している。サブ用クロック回路26は、サブCPU24にクロック信号を供給する。サブ用クロック回路26のクロック信号の周波数は、メイン用クロック回路16のクロック信号の周波数よりも低い。従って、メインCPU14を駆動するための消費電力と比べて、サブCPU24を駆動するための消費電力は低い。さらに、メインCPU14の処理速度は、サブCPU24の処理速度よりも高い。即ち、メモリCPU14がパケットを処理するための時間は、サブCPU24が当該パケットを処理するための時間よりも短い。サブ用クロック回路26は、プリンタ10の電源がONにされると、サブCPU24にクロック信号を供給する。また、プリンタ10の電源がOFFにされると、サブCPU24へのクロック信号を停止する。即ち、サブCPU24は、プリンタ10の電源がONされている間、非スリープ状態で維持される。
【0021】
ROM18には、メインCPU14及びサブCPU24によって実行される複数のプログラムがそれぞれ圧縮された状態で格納されている。プリンタ10の電源がONされると、各プログラムは、SRAM20又はDRAM22に展開される。メインCPU14又はサブCPU24は、SRAM20又はDRAM22に展開されたプログラムを使用して処理を実行する。ROM18に格納されている全てのプログラムは、プリンタ10の電源がONにされると、一旦、DRAM22に展開される。次いで、DRAM22に展開された複数のプログラムのうち、予め決められているプログラムが、SRAM20にロードされる。なお、図示省略されているが、制御部12は、SRAM20とDRAM22のそれぞれに対してクロック信号を供給するための回路も有する。
【0022】
SRAM20は、メインCPU14とサブCPU24からアクセス可能である。SRAM20は、パケット格納領域21を備える。パケット格納領域21は、後述するように、DRAM22が通常動作モードでない場合(図2,3のDスリープ状態48)に、LAN4を介して受信するパケットを格納する。以下では、プリンタ10がLAN4を介して受信するパケットであって、未だに処理されていないパケットのことを、「未処理パケット」と呼ぶ。なお、未処理パケットは、メインCPU14でもサブCPU24でも処理可能な種類のパケット(以下、「第1種の未処理パケット」と呼ぶ)と、メインCPU14のみが処理可能な種類のパケット(以下、「第2種の未処理パケット」と呼ぶ)と、に分類される。本実施例では、ARP、NetBIOS−NS、ICMP等のパケットが第1種の未処理パケットであり、プリンタ10に印刷を実行させるための印刷指示パケットが第2種の未処理パケットである。SRAM20には、サブCPU24が図5の処理を実行するためのプログラムが格納される。なお、当該プログラムは、サブCPU24がメインCPU14に代理して第1種の未処理パケットの処理(図5のS86)を実行するためのプログラムを含む。SRAM20には、さらに、サブCPU24が第1種の未処理パケットの処理以外の特定の処理を実行するためのプログラムが格納される。上記の特定の処理の一例として、例えば、プリンタ10が通信可能であることを示すパケット(例えばKEEP ALIVEパケット)を、LAN4に定期的に送信するタイマ処理を挙げることができる。メインCPU14は、プリンタ10の電源がONされると、DRAM22に展開された複数のプログラムのうち、予めベンダ等によって決められているサブCPU24用のプログラムをSRAM20にロードして格納する。
【0023】
SRAM20には、さらに、サブCPU24が、第1種の未処理パケットの処理、上記の特定の処理等を実行するために必要な情報が格納される。この情報の一例として、プリンタ10のIPアドレス、MACアドレス、ノード名等が挙げられる。メインCPU14は、スリープ状態に移行可能と判断すると(図4のS34)、サブCPU24がメインCPU14に代理して処理を実行するために必要な情報を、SRAM20に格納する。さらに、SRAM20には、プリンタ10の状態を示す状態変数が格納される。プリンタ10は、「処理状態」、「待機状態」、「ライトスリープ状態(Lスリープ状態)」、「ディープスリープ状態(Dスリープ状態)」のいずれかの状態で動作する。従って、SRAM20には、4種類の状態に対応する4個の値のうちの1個の値が格納される。また、SRAM20には、メインCPU14をスリープ状態から非スリープ状態に移行させるために用いられる状態移行フラグが格納される。サブCPU24は、メインCPU14がスリープ状態である場合であって、状態移行フラグがONの場合に、メインCPU14をスリープ状態から非スリープ状態に移行させる。
【0024】
DRAM22は、メインCPU14からアクセス可能である。DRAM22は、SRAM20よりもメモリの総容量が大きい。このため、DRAM22の消費電力は、SRAM20の消費電力と比べて高い。DRAM22には、メインCPU14が未処理パケットを処理するためのネットワーク処理プログラムが格納される。ネットワーク処理プログラムは、第1種の未処理パケットの処理を実行するためのプログラム、第2種の未処理パケット(例えば印刷指示パケット)の処理(例えば印刷処理)を実行するためのプログラム等を含む。ネットワーク処理プログラムは、さらに、MACコントローラ28を制御するためのプログラム、TCP/IPを利用して処理を実行するためのTCP/IPプロトコルスタック、各種のアプリケーションプロトコルを利用して処理を実行するためのプログラム等を含む。また、DRAM22には、メインCPU14が図4の処理を実行するためのプログラムが格納される。メインCPU14は、プリンタ10の電源がONされると、ROM18に格納されているネットワーク処理プログラムをDRAM22に展開して格納する。さらに、DRAM22には、メインCPU14が処理を実行する際に必要な情報が格納される。例えば、プリンタ10のIPアドレス、MACアドレス、ノード名、ステータス情報等が格納される。メインCPU14は、情報に変更があった場合、格納されている情報を修正する。
【0025】
図1に示すネットワークインターフェイス30は、LAN4に接続されている。MACコントローラ28は、LAN4を介して受信された未処理パケットを、内蔵するバッファに一時的に格納する。MACコントローラ28は、未処理パケットをプリンタ10が処理可能な形式に変換する。エンジン制御回路32は、メインCPU14からの指示に従って、プリントエンジン34を制御する。パネル制御回路36は、メインCPU14からの指示に従って、表示パネル38を制御する。表示パネル38は、LCDである。パネル制御回路36は、表示パネル38をON状態とOFF状態との間で移行させる。即ち、パネル制御回路36は、表示パネル38に電圧を印加することによって表示パネル38をON状態とし、電圧の印加を停止することによって表示パネル38をOFF状態とする。
【0026】
(プリンタの状態移行)
図2に示すように、プリンタ10は、処理状態42と待機状態44とLスリープ状態46とDスリープ状態48との間で状態が移行する。図3は、プリンタ10が各状態42,44,46,48の場合に、メインCPU14、サブCPU24、2個のRAM20,22、及び、表示パネル38の状態を表わす表60を示す。プリンタ10の電源がONされると、プリンタ10は、待機状態44となる。図3に示すように、待機状態44では、2個のCPU14,24にクロックが供給されている(即ち、2個のCPU14,24は非スリープ状態である)。2個のRAM20,22は通常動作モードであり、表示パネル38はON状態である。
【0027】
プリンタ10が待機状態44であり、かつ、通常の処理を実行すべき場合に、プリンタ10は、処理状態42に移行する。なお、上記の通常の処理は、印刷指示パケットに応じて実行される印刷処理、ユーザによって表示パネル38の操作が為された場合に実行される表示処理等を含む。処理状態42は、待機状態44と同様、2個のCPU14,24は非スリープ状態であり、2個のRAM20,22は通常動作モードであり、表示パネル38はON状態である。処理状態42と待機状態44との相違点は、メインCPU14が上記の通常の処理を実行しているか否かである。メインCPU14が上記の通常の処理を終了すると、プリンタ10は、待機状態44に移行する。
【0028】
メインCPU14は、待機状態44に移行すると、メインCPU14に内蔵されている上記のタイマ機構をスタートする。待機状態44が所定期間継続されると、メインCPU14は、パネル制御回路36に、表示パネル38をOFF状態にするように指示する。この結果、プリンタ10は、Lスリープ状態46に移行する。Lスリープ状態46では、2個のCPU14,24は非スリープ状態であり、2個のRAM20,22は通常動作モードであり、表示パネル38はOFF状態である。これにより、表示パネル38で消費される電力を低減させることができる。Lスリープ状態46において、メインCPU14が上記の通常の処理(印刷処理、表示処理等)を実行すべき場合には、プリンタ10は、処理状態42に移行する。
【0029】
プリンタ10は、メインCPU14の図4の処理によって、Lスリープ状態46からDスリープ状態48に移行する。Dスリープ状態48では、メインCPU14はスリープ状態(クロック信号が供給されない状態)であり、サブCPU24は非スリープ状態であり、SRAM20は通常動作モードであり、DRAM22はセルフリフレッシュモード(即ち、通常動作モードよりも消費電力が低いモード)であり、表示パネル38はOFF状態である。Dスリープ状態48において、メインCPU14が上記の通常の処理(印刷処理、表示処理等)を実行すべき場合には、プリンタ10は、Lスリープ状態46を経て処理状態42に移行する。プリンタ10がDスリープ状態48からLスリープ状態46に移行する際に、DRAM22がセルフリフレッシュモードから通常動作モードに移行するとともに、メインCPU14がスリープ状態から非スリープ状態に移行する。
【0030】
(メインCPUが実行する処理)
次いで、メインCPU14が実行する処理の内容について説明する。図4は、メインCPU14によって実行される処理のフローチャートを示す。図4の処理は、プリンタ10の電源がONされ、メインCPU14がタイマ機構をリセットすると開始される。プリンタ10の電源がONされた時点では、プリンタ10は待機状態44である。メインCPU14は、SRAM20に待機状態44を示す状態変数を格納する。
【0031】
プリンタ10が状態42,44のいずれかである場合、DRAM22は通常動作モードであり、LAN4を介して受信する未処理パケットはDRAM22に格納される。メインCPU14は、DRAM22に格納された未処理パケットを処理する。例えば、プリンタ10が待機状態44であり、かつ、メインCPU14が第1種の未処理パケットを処理すべき場合には、プリンタ10は、処理状態42に移行することなく、待機状態44に維持される(即ち状態変数が変更されない)。この状態で、メインCPU14は、第1種の未処理パケットを処理する。より具体的に言うと、メインCPU14は、第1種の未処理パケットに対する応答処理を実行する。また、プリンタ10が待機状態44であり、かつ、メインCPU14が上記の通常の処理(第2種の未処理パケット(即ち印刷指示パケット)に応じた印刷処理、又は、表示処理)を実行すべき場合には、プリンタ10は、処理状態42に移行する。プリンタ10が待機状態44から処理状態42に移行する場合に、メインCPU14は、SRAM20に格納されている状態変数(待機状態44を示す値)を、処理状態42を示す値に変更する。一方において、メインCPU14が上記の通常の処理(印刷処理又は表示処理)を終了し、プリンタ10が処理状態42から待機状態44に移行する場合に、メインCPU14は、SRAM20に格納されている状態変数(処理状態42を示す値)を、待機状態44を示す値に変更する。
【0032】
メインCPU14は、SRAM20に格納されている状態変数が待機状態44を示すのか否かを判断する(S12)。S12でYESの場合にS14に進み、NOの場合にメインCPU14は、S12の判断を繰り返す。S14では、メインCPU14は、タイマ機構の計測時間が所定時間を経過したのか否かを判断する。なお、タイマ機構は、プリンタ10が待機状態44に移行する毎にリセットされる。S14でNOの場合にS12に戻り、YESの場合にS16に進む。S16では、メインCPU14は、SRAM20に格納されている状態変数(待機状態44を示す値)を、Lスリープ状態46を示す値に変更する。続いて、メインCPU14は、表示パネル38への電圧の印加を停止するように、パネル制御回路36に指示する(S18)。これにより、表示パネル38はOFF状態になる。即ち、プリンタ10は、Lスリープ状態46になる。
【0033】
プリンタ10がLスリープ状態46である場合、DRAM22は通常動作モードであり、LAN4を介して受信する未処理パケットはDRAM22に格納される。プリンタ10がLスリープ状態46であり、かつ、メインCPU14が第1種の未処理パケットを処理すべき場合には、プリンタ10がLスリープ状態46に維持された状態で、メインCPU14は、第1種の未処理パケットを処理する。また、プリンタ10がLスリープ状態46であり、かつ、メインCPU14が上記の通常の処理を実行すべき場合には、プリンタ10は処理状態42に移行する。この場合、メインCPU14は、SRAM20に格納されている状態変数(Lスリープ状態46を示す値)を、処理状態42を示す値に変更する。
【0034】
メインCPU14は、SRAM20に格納されている状態変数がLスリープ状態46を示すのか否かを判断する(S20)。SRAM20に格納されている状態変数が処理状態42を示す値に変更されると、S20でNOと判断され、メインCPU14は、パネル制御回路36に表示パネル38に電圧を印加するように指示する(S22)。これにより、表示パネル38はON状態になる。メインCPU14は、S22を終えると、S12に戻る。なお、この場合、メインCPU14が上記の通常の処理が終了するまで、S12でNOと判断される。
【0035】
一方において、S20でYESの場合、メインCPU14は、LAN4を介してパケットを送信しているか否かを判断する(S24)。例えば、メインCPU14が外部装置6等からの第1種の未処理パケットに対するレスポンス(例えばプリンタ10のステータスの要求に対するレスポンス)を返信している途中の場合、S24でYESと判断される。S24でYESの場合、S32に進む。一方において、S24でNOの場合、メインCPU14は、未処理パケットがDRAM22に格納されているか否かを判断する(S26)。S26でYESの場合にS28に進み、S26でNOの場合にS30に進む。S28では、メインCPU14は、未処理パケットを処理する。S28で処理される未処理パケットは、メインCPU14が非スリープ状態である間に受信されて、DRAM22に格納された未処理パケットと、メインCPU14がスリープ状態である間に受信されて、SRAM20に格納された特定の未処理パケットと、を含む。なお、この特定の未処理パケットは、後述のS50の処理によって、DRAM22に移動される。例えば、S28で処理される未処理パケットが第2種の未処理パケット(即ち印刷指示パケット)である場合には、メインCPU14は、プリンタ10を処理状態42に移行させ、SRAM20に格納されている状態変数を、処理状態42を示す値に変更する。この場合、S20でNOと判断され、S22で表示パネルがONされ、S12に進む。また、例えば、S28で処理される未処理パケットが第1種の未処理パケットである場合には、プリンタ10がLスリープ状態46に維持された状態で(即ち状態変数が変えられることなく)、メインCPU14は、未処理パケットを処理する。この場合、S20でYESと判断される。
【0036】
S30では、メインCPU14は、プリンタ10に接続中のデバイス(例えば外部装置6)があるのか否かを判断する。例えば、プリンタ10がWebサーバ機能を有しており、外部装置6がプリンタ10のWebサーバにTCP接続中である場合、S30でYESと判断される。S30でYESの場合にS32に進み、NOの場合にS34に進む。S32では、メインCPU14は、Dスリープ状態48に移行不可であると判断して、S38に進む。一方において、S34では、メインCPU14は、Dスリープ状態48に移行可能であると判断して、S40に進む。パケットの送信(S24)やTCP接続(S30)が終了すると、S38では、メインCPU14は、WAIT命令を実行する。WAIT命令が実行されると、メインCPU14は、割り込み要求を受けるまで待機する実行停止状態となる。これにより、メインCPU14の消費電力を低減させることができる。メインCPU14は、S38において割り込み要求を受けると、S20に戻る。
【0037】
S40では、メインCPU14は、LAN4を介して受信する未処理パケットを格納するRAMを、DRAM22からSRAM20に切り替える。より詳細には、メインCPU14は、DRAM22へのDMA(Direct Memory Access)転送を停止する。これにより、未処理パケットがDRAM22に格納されることが禁止される。続いて、メインCPU14は、SRAM20へのDMA転送を可能な状態にする。さらに、メインCPU14は、サブCPU24がメインCPU14に代理して処理を実行するために必要な情報(例えばプリンタ10のIPアドレス等)を、SRAM20に格納する。続いて、メインCPU14は、サブCPU24以外からの割り込み要求をマスク(禁止)する(S42)。メインCPU14は、SRAM20に格納されている状態変数(Lスリープ状態46を示す値)を、Dスリープ状態48を示す値に変更する(S44)。メインCPU14は、サブCPU24に、処理を実行するように、割り込み要求を発行する(S46)。メインCPU14は、WAIT命令を実行する(S48)。WAIT命令が実行されると、メインCPU14は、割り込み要求を受けるまで待機する実行停止状態となる。メインCPU14は、S48において割り込み要求を受ける(後述の図5のS102参照)と、S50に進む。S50では、メインCPU14は、SRAM20のパケット格納領域21に格納されている上記の特定の未処理パケット(即ちDスリープ状態48中に受信された未処理パケット)を、DRAM22に移動させる。次いで、メインCPU14は、S34で実行したサブCPU24に対する割り込み要求のマスクを解除して(S52)、S20に戻る。即ち、メインCPU14は、割り込み要求を受けると、S20の処理を実行する。この場合、メインCPU14は、S20でYESと判断する。
【0038】
(サブCPUが実行する処理)
続いて、サブCPU24が実行する処理の内容を説明する。サブCPU24は、非スリープ状態である場合に、所定の時間間隔(以下では「タイマ処理実行間隔」と呼ぶ)毎に、KEEP ALIVEパケットをLAN4に送信するタイマ処理を実行する。図5の処理は、プリンタ10の電源がONされたことをトリガとして開始される。サブCPU24は、SRAM20に格納されているプログラムを使用して、以下の処理を実行する。最初に、サブCPU24は、WAIT命令を実行する(S62)。サブCPU24は、割り込み要求を受けるまで待機する(即ち実行停止状態に移行する)。上述したように、メインCPU14は、図4のS46において、サブCPU24に割り込み要求を発行する。これにより、サブCPU24の実行停止状態が解除され、S64に進む。
【0039】
S64では、サブCPU24は、SRAM20に格納されている状態変数がDスリープ状態48を示すのか否かを判断する。S64でNOの場合、S62に戻る。即ち、サブCPU24は、SRAM20に格納されている状態変数がDスリープ状態48以外の値を示す場合、実行停止状態で待機する。
【0040】
S64でYESの場合、サブCPU24は、メイン用クロック回路16(図1参照)にクロック供給の停止を指示する(S66)。この結果、メインCPU14は、非スリープ状態からスリープ状態に移行する。なお、サブCPU24は、SRAM20に格納されている状態移行フラグをOFFにする。続いて、サブCPU24は、DRAM22を通常動作モードからセルフリフレッシュモードに移行させる(S68)。DRAM22がセルフリフレッシュモードである間は、DRAM22に未処理パケットを格納することができない。なお、DRAM22がセルフリフレッシュモードである場合、通常動作モードと比べて、DRAM22の消費電力は低い。次いで、サブCPU24は、メインCPU14のスリープ状態の解除要求があるのか否かを判断する(S70)。具体的には、サブCPU24は、SRAM20に格納されている状態移行フラグがONである場合に、S70でYESと判断し、状態移行フラグがOFFである場合に、S70でNOと判断する。なお、状態移行フラグは、後述のS94の処理でONされる。また、サブCPU24は、表示パネル38の操作が検出される場合に、S70でYESと判断する。S70でYESの場合にS96に進み、S70でNOの場合にS72に進む。
【0041】
S72では、サブCPU24の検出部25は、LAN4を介して未処理パケットの受信の検出処理を実行する。具体的には、検出部25は、MACコントローラ28のバッファに未処理パケットが格納されているのか否かを判断する。検出部25は、MACコントローラ28のバッファに未処理パケットが格納されている場合、S72でYESと判断し、S74に進む。なお、この場合には、サブCPU24は、MACコントローラ28のバッファ内の未処理パケットを、SRAM20のパケット格納領域21に移動させる。一方において、検出部25は、MACコントローラ28のバッファに未処理パケットが格納されていない場合、S72でNOと判断し、S70に戻る。S74では、サブCPU24は、未処理パケットを処理するためのパケット処理の終了時刻を決定する。具体的には、サブCPU20は、SRAM20に予め格納されているパケット処理の許容期間を、時計機構が示す現在の時刻に加算することによって、パケット処理の終了時刻を決定する。なお、パケット処理の許容期間は、タイマ処理のインターバルである上記のタイマ処理実行間隔よりも短い期間に設定されている。
【0042】
次いで、サブCPU24は、パケット処理を実行する。なお、サブCPU24は、パケット処理の実行中に、他の1個以上の未処理パケットが、LAN4を介して受信される場合に、当該1個以上の未処理パケットをパケット格納領域21に順次格納する。また、図示省略しているが、サブCPU24は、パケット処理の実行中に、表示パネル38の操作が検出されることを監視している。表示パネル38の操作が検出される場合、サブCPU24は、S94の処理を実行する。なお、サブCPU24は、表示パネル38の操作が検出された際に処理している未処理パケットの処理を終了した後に、S94の処理を実行する。パケット処理では、サブCPU24は、パケット格納領域21に格納された1個以上の未処理パケットを順次処理する。即ち、サブCPU24は、第1の未処理パケットの処理を終了し、かつ、現在時刻が上記の終了時刻を経過していない場合に、第1の未処理パケットの処理に引き続いて、第2の未処理パケットを処理することが可能である。
【0043】
パケット処理は、S76〜S94の処理を含む。パケット処理では、まず、サブCPU24は、パケット格納領域21に未処理パケットが残存するのか否かを判断する(S76)。ここでYESの場合にS78に進み、NOの場合にS70に戻る。S78では、サブCPU24は、パケット格納領域21の残容量が、予め決められた所定量より大きいのか否かを判断する。ここでYESの場合にS80に進み、NOの場合にS94に進む。S80では、サブCPU24は、パケット格納領域21に格納されている1個以上の未処理パケットのうちの1個の未処理パケットを選択する。この選択処理では、サブCPU24は、パケット格納領域21に格納された1個以上の未処理パケットのうち、受信された時刻が最も古い未処理パケットから順に選択する。次いで、サブCPU24は、S80で選択された未処理パケットが正常なパケットであるのか否かを判断する(S82)。例えば、未処理パケットのヘッダに記述されているパケット長と、未処理パケットの実際のパケット長と、が一致しない場合、サブCPU24は、当該未処理パケットが正常でないと判断する。S82でNOの場合、サブCPU24は、当該未処理パケットを削除して(S88)、S90に進む。
【0044】
一方において、S82でYESの場合、サブCPU24は、S80で選択された未処理パケットが、メインCPU14が処理すべき種類のパケットであるのか否かを判断する(S84)。具体的には、サブCPU24は、S80で選択された未処理パケットが、第2種の未処理パケット(印刷指示パケット)であるのか否かを判断する。S84でYESの場合にS94に進み、NOの場合にS86に進む。
【0045】
S86では、サブCPU24は、S80で選択された未処理パケットに対して、応答処理を実行して、S90に進む。応答処理は、S80で選択された未処理パケットに対する応答パケットを作成する処理と、当該未処理パケットの送信元に当該応答パケットを返信する処理と、を含む。S90では、サブCPU24は、時計機構が示す現在時刻が、S74で決定された終了時刻を経過したのか否かを判断する。ここでYESの場合にS92に進み、NOの場合にS76に戻る。S92では、サブCPU24は、パケット格納領域21に未処理パケットが残存するのか否かを判断する。ここでYESの場合にS94に進み、NOの場合にS70に戻る。S94では、サブCPU24は、メインCPU14をスリープ状態から非スリープ状態に移行するための解除要求を発行する。具体的には、サブCPU24は、SRAM20に格納されているメインCPU14の状態移行フラグを、OFFからONに変更する。S94の処理が終了すると、S70に戻る。S94の処理を終了した場合、サブCPU24は、S70でYESと判断する。
【0046】
S70でYESの場合、サブCPU24は、DRAM22のモード移行処理を実行する(S96)。モード移行処理は、DRAM22をセルフリフレッシュモードから通常動作モードに移行させるモード移行処理と、LAN4を介して受信される未処理パケットを格納するRAMをSRAM20からDRAM22に切り替えるメモリ切替処理と、を含む。メモリ切替処理では、サブCPU24は、SRAM20へのDMA(Direct Memory Access)転送を停止する。これにより、未処理パケットをSRAM20に格納することが禁止される。続いて、サブCPU24は、DRAM22へのDMA転送を可能な状態にする。
【0047】
次いで、サブCPU24は、SRAM20のDスリープ状態48を示す状態変数を、Lスリープ状態46を示す値に変更する(S98)。続いて、サブCPU24は、メイン用クロック回路16(図1参照)に、メインCPU14にクロック供給を開始するよう指示する(S100)。この結果、メインCPU14にクロックが供給され、スリープ状態から非スリープ状態に移行する。サブCPU24は、メインCPU14に割り込み要求を発行する(S102)。この結果、メインCPU14は、図4のS50の処理を開始する。
【0048】
(パケット処理の具体例)
パケット処理の具体例について、図6を参照して説明する。図6のケース1に示すように、サブCPU24は、未処理パケットP1の受信を検出すると(図5のS72でYES)、第1終了時刻を決定し(図5のS74)、第1のパケット処理を開始する。プリンタ10は、未処理パケットP1の処理中に、未処理パケットP2を受信する。サブCPU24は、未処理パケットP2を、パケット格納領域21に格納する。サブCPU24は、未処理パケットP1の処理を終了すると、現在時刻が第1終了時刻を経過したのか否かを判断し(図5のS90)、ここでNOの場合には、引き続き、未処理パケットP2の処理を実行する。サブCPU24は、未処理パケットP2の処理を終了すると、パケット格納領域21に未処理パケットが残存しないと判断し(図5のS76でNO)、第1のパケット処理を終了する。即ち、図5のS74で決定された第1終了時刻が経過する前に、サブCPU24は、第1のパケット処理を終了する。その後、未処理パケットP3が受信されると、サブCPU24は、第2終了時刻(図示省略)を決定し(図5のS74)、第2のパケット処理を開始する。第2のパケット処理のS90では、現在時刻が第2終了時刻を経過したのか否かが判断される。サブCPU24は、第2のパケット処理中に受信された未処理パケットP4〜P6を順次処理した後に、パケット格納領域21に未処理パケットが残存しないと判断し(図5のS76でNO)、第2のパケット処理を終了する。即ち、図5のS74で決定された第2終了時刻が経過する前に、サブCPU24は、第2のパケット処理を終了する。なお、ケース1では、図5のS76でNOと判断された結果として第1及び第2のパケット処理が終了するために、図5のS94の処理が実行されない。即ち、ケース1では、パケット処理が終了しても、サブCPU24は、メインCPU14を、スリープ状態から非スリープ状態に移行させない。
【0049】
ケース2では、サブCPU24は、未処理パケットP1を受信すると、パケット処理を開始する。サブCPU24は、パケット処理中に受信される未処理パケットP2〜P10を順次処理する。サブCPU24は、未処理パケットP9の処理を終了した後、S74で決定された終了時刻が経過していないため(図5のS90でNO)、未処理パケットP10を処理する。サブCPU24は、未処理パケットP10の処理を終了した後、図5のS74で決定された終了時刻を経過しているため(図5のS90でYES)、パケット処理を終了する。なお、ケース2では、サブCPU24は、パケット処理を終了する際に、パケット格納領域21に未処理パケットが残存しないと判断する(図5のS92でNO)。従って、図5のS94の処理が実行されないために、サブCPU24は、メインCPU14を、スリープ状態から非スリープ状態に移行させない。
【0050】
ケース3では、ケース2と同様に、サブCPU24は、未処理パケットP1を受信するとパケット処理を開始し、パケット処理中に受信される未処理パケットP2〜P10を順次処理する。サブCPU24は、未処理パケットP10の処理を終了した後、図5のS74で決定された終了時刻が経過したと判断する(図5のS90でYES)。このため、サブCPU24は、未処理パケットP11〜P14が残存しているにも関わらず、パケット処理を終了する。サブCPU24は、パケット処理を終了する際に、パケット格納領域21に未処理パケットP11〜P14が残存していると判断する(図5のS92でYES)。従って、図5のS94の処理が実行されるために、サブCPU24は、メインCPU14を、スリープ状態から非スリープ状態に移行させる(S70でYESの場合のS100)。メインCPU14は、非スリープ状態に移行した後、パケット格納領域21に残存している未処理パケットP11〜P14を、DRAM22に移動する(図4のS50)。次いで、メインCPU14は、未処理パケットP11〜P14を順次処理する(図4のS28)。
【0051】
ケース4では、ケース2と同様に、サブCPU24は、未処理パケットP1を受信するとパケット処理を開始する。サブCPU24は、パケット処理中に受信される未処理パケットP2〜P4を順次処理する。サブCPU24は、未処理パケットP5が、メインCPU14が処理すべき第2種の未処理パケットであると判断し(図5のS84でYES)、未処理パケットP5及びP6が残存しているにも関わらず、現在時刻が終了時刻を経過する前に、パケット処理を終了する。図5のS84でYESの場合にはS94の処理が実行されるために、サブCPU24は、メインCPU14を、スリープ状態から非スリープ状態に移行させる。メインCPU14は、非スリープ状態に移行した後、パケット格納領域21に残存している未処理パケットP5及びP6を、DRAM22に移動する(図4のS50)。次いで、メインCPU14は、未処理パケットP5及びP6を順次処理する(図4のS28)。
【0052】
ケース5では、ケース2と同様に、サブCPU24は、未処理パケットP1を受信するとパケット処理を開始する。サブCPU24は、パケット処理中に受信される未処理パケットP2〜P4を順次処理する。サブCPU24は、未処理パケットP4の処理を終了した後、パケット格納領域21の残容量が、予め決められた所定量よりも少ないと判断する(図5のS78でNO)。この場合、サブCPU24は、未処理パケットP5〜P15が残存しているにも関わらず、現在時刻が終了時刻を経過する前に、パケット処理を終了する。図5のS78でNOの場合にはS94の処理が実行されるために、サブCPU24は、メインCPU14を、スリープ状態から非スリープ状態に移行させる。メインCPU14は、非スリープ状態に移行した後、パケット格納領域21に残存している未処理パケットP5〜P15を、DRAM22に移動し(図4のS50)、未処理パケットP5〜P15を順次処理する(図4のS28)。
【0053】
実施例について詳しく説明した。プリンタ10では、サブCPU24は、メインCPU14がスリープ状態である場合に、LAN4を介して受信される未処理パケットを処理する。この結果、メインCPU14を頻繁に非スリープ状態に移行させずに済む。個音結果、メインCPU14のスリープ状態が維持される期間が長くなり得るために、省電力なプリンタ10を実現し得る。
【0054】
図6のケース2に示すように、サブCPU24は、未処理パケットP10を処理した後、図5のS74で決定された終了時刻が経過している場合(図5のS90でYES)であっても、パケット格納領域21に、未処理パケットが格納されていない場合(図5のS92でNO)には、メインCPU14を非スリープ状態に移行させない。この結果、メインCPU14のスリープ状態が維持される期間を長くすることができる。また、サブCPU24は、パケット処理の終了後、他の処理(例えば上記のタイマ処理)を実行することができる。
【0055】
一方において、図6のケース3に示すように、サブCPU24は、図5のS74で決定された終了時刻が経過している場合(図5のS90でYES)であって、パケット格納領域21に、未処理パケットP11〜P14が格納されている場合(図5のS92でYES)には、メインCPU14を非スリープ状態に移行させる。これにより、メインCPU14は、非スリープ状態に移行した後、未処理パケットP11〜P14を処理する(図4のS28)。この結果、サブCPU24によるパケット処理の継続時間が長くなることに起因して、サブCPU24が、他の処理を実行することができなくなる事態を防止することができる。また、メインCPU14が未処理パケットP11〜P14を処理するために、残存する未処理パケットP11〜P14を迅速に処理することができる。
【0056】
図6のケース4に示すように、サブCPU24は、メインCPU14によって処理されるべき種類の未処理パケットP5がパケット格納領域21に格納されている場合(図5のS84でYES)に、未処理パケットP5に対する応答処理を実行することなく、メインCPU14を、非スリープ状態に移行させる。これにより、メインCPU14は、未処理パケットP5を処理する(図4のS28)ことができる。
【0057】
図6のケース5に示すように、サブCPU24は、パケット格納領域21の残容量が、予め決められた所定量よりも少ない場合(図5のS78でNO)に、パケット処理を終了し、メインCPU14を、非スリープ状態に移行させる。また、DRAM22をセルフリフレッシュモードから通常動作モードに移行させる。メインCPU14は、DRAM22が通常動作モードに移行されると、パケット格納領域21に格納されている未処理パケットP5〜P15を、DRAM22に移動させる。DRAM22は、SRAM20よりも容量が大きい。この結果、パケット格納領域21の残容量が不足することによって、受信された未処理パケットが、パケット格納領域21に格納されずに、取りこぼされることを防止することができる。また、メインCPU14は、非スリープ状態に移行されると、DRAM22に移動された未処理パケットP5〜P15を処理する。メインCPU14は、サブCPU24よりも処理速度が速い。このため、プリンタ10は、サブCPU24が未処理パケットP5〜P15を処理する場合と比較して、迅速に処理することができる。
【0058】
なお、上記のPC10が「通信装置」の一例である。また、メインCPU14が「第1処理部」の一例であり、サブCPU24が「第2処理部」の一例である。パケット格納領域21が「格納部」の一例である。
【0059】
(変形例)
(1)メインCPU14のみが処理可能な第2種の未処理パケットは、予め決められた種類のプロトコルのパケットを含んでいてもよい。予め決められた種類のプロトコルのパケットは、例えば、DRAM22のみに格納されている情報(例えばプリンタ10の設定情報)が必要となるパケットや、メインCPU14のみが使用可能なプログラムでしか処理できないパケット(例えば上記の印刷処理に対応するパケット)であってもよい。
【0060】
(2)本実施例では、サブCPU24は、パケット処理中に、図5のS74で決定された終了時刻を経過した場合であって(図5のS90でYES)、パケット格納領域21に未処理パケットが残存している場合(図5のS92でYES)には、メインCPU14を非スリープ状態に移行させる。一方において、サブCPU24は、図5のS74で決定された終了時刻を経過した場合であって(図5のS90でYES)、パケット格納領域21に未処理パケットが残存していない場合(図5のS92でNO)には、メインCPU14を非スリープ状態に移行させない。これに代えて、サブCPU24は、パケット処理中に、図5のS74で決定された終了時刻を経過した場合(図5のS90でYES)、パケット格納領域21に未処理パケットが残存しているのか否かに関わらず、メインCPU14を、非スリープ状態に移行させてもよい。即ち、サブCPU24は、図5のS92の処理を実行しなくてもよい。一般的に言うと、第2処理部は、パケット処理の継続期間が許容期間を越える場合に、未処理パケットが残存するのか否かを判断せずに、第1処理部をスリープ状態から非スリープ状態に移行させてもよい。
【0061】
(3)本実施例では、サブCPU24は、パケット処理を開始する場合に、パケット処理の終了時刻を決定する(図5のS72)。これに代えて、サブCPU24は、パケット処理を開始する場合に、プリンタ10に内蔵されたタイマをスタートさせてもよい。この場合、サブCPU24は、図5のS90において、上記のタイマが、予め決められた計測時間を超えているのか否かを判断し、超えている場合にS92に進み、超えていない場合にS76に戻ってもよい。
【0062】
(4)サブCPU24は、図5のS78において、パケット格納領域21に格納されている未処理パケットの個数が所定数以上であるのか否かを判断してもよい。この場合、未処理パケットの個数が所定数以上の場合に、パケット処理を終了(即ち図5のS78でNOと判断)してもよい。サブCPU24は、パケット処理中に受信される未処理パケットの個数をカウントし、パケット処理で処理した処理済みのパケットの個数を、カウントした未処理パケットの個数から減算することによって、パケット格納領域21に格納されている未処理パケットの個数を算出してもよい。本変形例の構成(未処理パケットの個数が所定数以上であるのか否かを判断すること)も、「格納部の残容量が不足するか否かを判断すること」の一例である。
【0063】
(5)プリンタ10は、SRAM20を備えていなくてもよい。この場合、DRAM22は、プリンタ10の電源がONにされている間、常に、通常動作モードに維持されていてもよい。また、プリンタ10は、自身の状態が4種類の状態42,44,46,48のいずれの状態であっても、LAN4を介して受信される未処理パケットを、DRAM22に格納してもよい。
【0064】
(6)本実施例では、メインCPU14がスリープ状態から非スリープ状態に移行すると、メインCPU14は、SRAM20のパケット格納領域21に格納されている未処理パケットを、DRAM22に移動させた後(図4のS50)で、DRAM22に移動された未処理パケットを処理する。しかしながら、メインCPU14は、非スリープ状態に移行した後に、パケット格納領域21に格納されている未処理パケットを、DRAM22に移動させず、未処理パケットがパケット格納領域21に格納された状態で未処理パケットを処理してもよい。メインCPU14はサブCPU24よりも処理速度が速いため、パケット格納領域21の容量不足の状態を早期に解消することができる。
【0065】
(7)本実施例では、プリンタ10について説明したが、本明細書の技術は、例えば、サーバ、スキャナ、多機能機等の通信装置に利用することができる。
【0066】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0067】
2:通信システム、4:LAN、6:外部装置、10:プリンタ、12:制御部、14:メインCPU、16:メイン用クロック回路、18:ROM、20:SRAM、21:パケット格納領域、22:DRAM、24:サブCPU、25:検出部、26:サブ用クロック回路、28:MACコントローラ、30:ネットワークインターフェイス、32:エンジン制御回路、34:プリントエンジン、36:パネル制御回路、38:表示パネル、42:処理状態、44:待機状態、46:Lスリープ状態、48:Dスリープ状態

【特許請求の範囲】
【請求項1】
ネットワークに接続される通信装置であって、
スリープ状態と非スリープ状態との間で状態が移行する第1処理部であって、前記第1処理部が前記非スリープ状態である場合に、前記ネットワークを介して受信するパケットを処理する前記第1処理部と、
前記第1処理部が前記スリープ状態である場合に、前記ネットワークを介して受信するパケットを処理する第2処理部と、を備え、
前記第2処理部は、1個以上の未処理パケットを順次処理するためのパケット処理を実行可能であり、
前記第2処理部は、未処理パケットの受信を検出する検出部を備え、
前記第2処理部は、
前記第1処理部が前記スリープ状態であり、かつ、前記未処理パケットの受信が検出される場合に、前記パケット処理を開始し、
前記パケット処理の継続期間が許容期間を越える場合に、前記未処理パケットが残存していても、前記パケット処理を終了する、通信装置。
【請求項2】
前記第2処理部は、前記パケット処理の継続期間が前記許容期間を越える場合に、前記第1処理部を前記スリープ状態から前記非スリープ状態に移行させる、請求項1に記載の通信装置。
【請求項3】
前記第2処理部は、
前記パケット処理の継続期間が前記許容期間を越える場合に、さらに、前記未処理パケットが残存するのか否かを判断し、
前記未処理パケットが残存すると判断される第1の場合に、前記第1処理部を前記スリープ状態から前記非スリープ状態に移行させ、
前記未処理パケットが残存しないと判断される第2の場合に、前記第1処理部を前記スリープ状態から前記非スリープ状態に移行させない、請求項1又は2に記載の通信装置。
【請求項4】
前記第1の場合に、前記第1処理部は、前記非スリープ状態に移行した後に、残存する前記未処理パケットを処理する、請求項3に記載の通信装置。
【請求項5】
前記第2処理部は、前記許容期間に基づいて、前記パケット処理の終了時刻を決定し、現在時刻が前記終了時刻を経過する場合に、前記パケット処理の継続期間が前記許容期間を越えると判断する、請求項1から4のいずれか一項に記載の通信装置。
【請求項6】
前記未処理パケットの前記処理は、前記未処理パケットに対する応答を送信する処理を含む、請求項1から5のいずれか一項に記載の通信装置。
【請求項7】
前記第2処理部は、
前記パケット処理の継続期間が前記許容期間を越える前において、1個の前記未処理パケットの前記処理が終了する毎に、前記未処理パケットが残存するのか否かを判断し、
前記未処理パケットが残存しないと判断される場合に、前記パケット処理の継続期間が前記許容期間を越える前に、前記パケット処理を終了する、請求項1から6のいずれか一項に記載の通信装置。
【請求項8】
前記第2処理部は、
前記パケット処理の継続期間が前記許容期間を越える前において、前記第1処理部が処理すべき特定の種類の前記未処理パケットが残存するのか否かを判断し、
前記特定の種類の前記未処理パケットが残存すると判断される場合に、前記パケット処理の継続期間が前記許容期間を越える前に、前記パケット処理を終了するとともに、前記第1処理部を前記スリープ状態から前記非スリープ状態に移行させる、請求項1から7のいずれか一項に記載の通信装置。
【請求項9】
さらに、前記未処理パケットを格納するための格納部を備え、
前記第2処理部は、
前記パケット処理の継続期間が前記許容期間を越える前において、前記格納部の残容量が不足するか否かを判断し、
前記残容量が不足すると判断される場合に、前記パケット処理の継続期間が前記許容期間を越える前に、前記パケット処理を終了するとともに、前記第1処理部を前記スリープ状態から前記非スリープ状態に移行させる、請求項1から8のいずれか一項に記載の通信装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−160366(P2011−160366A)
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願番号】特願2010−22700(P2010−22700)
【出願日】平成22年2月4日(2010.2.4)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】