以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図1は、本発明の実施の形態の1つにおける画像処理システムの全体概要の一例を示す図である。図1を参照して、画像処理システム1は、複合機であるMFP(Multi Function Peripheral)100,100A,100B,100Cと、パーソナルコンピューター(PC)200A,200B,200C、200Dと、を含む。MFP100,100A,100B,100CおよびPC200A,200B,200C,200Dは、ネットワーク3に接続されている。ネットワーク3は、例えば、ローカルエリアネットワークである。
本実施の形態における画像処理システム1においては、PC200A〜200Dは、一般的なコンピューターである。それらのハードウェア構成および機能は周知なので、ここでは説明を繰り返さない。
MFP100,100A〜100Cは、基本的なハードウェア構成および機能は同じである。以下、MFP100,100A〜100Cのハードウェア構成および機能について、MFP100を例に説明する。
図2は、本実施の形態の一つにおけるMFPの外観を示す斜視図である。図2を参照して、MFP100は、画像形成装置の一例であり、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、ユーザーインターフェースとしての操作パネル115とを含む。
自動原稿搬送装置120は、原稿給紙トレイ上にセットされた複数枚の原稿を1枚ずつ自動的に原稿読取部130のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部130により原稿画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部130は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部140に出力する。給紙部150は、複数の給紙トレイを有する。複数の給紙トレイそれぞれは、予め定められたサイズの用紙を収納する。給紙部150は、複数の給紙トレイのうち画像形成に用いるサイズの用紙を収納する給紙トレイから用紙を1枚ずつ取り出し、取り出した用紙を画像形成部140に搬送する。
画像形成部140は、周知の電子写真方式により画像を形成するものであって、原稿読取部130から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部150により搬送される用紙に画像を形成する。
操作パネル115は、MFP100の上面に設けられ、操作画面等を表示するとともに、ユーザーによる操作を受け付けるユーザーインターフェースとして機能する。
図3は、MFPのハードウェア構成の概要の一例を示すブロック図である。図3を参照して、MFP100は、上述した、自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150に加えて、メイン基板111と、通信インターフェース(I/F)部160と、ファクシミリ部170と、外部記憶装置180と、大容量記憶装置としてのハードディスクドライブ(HDD)113、操作パネル115および電源制御部117と、を含む。
メイン基板111は、自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置180、HDD113、操作パネル115および電源制御部117と接続される。
通信I/F部160は、ネットワーク3にMFP100を接続するためのインターフェースである。通信I/F部160は、装置探索プロトコル、TCP(Transmission Control Protocol)またはUDP(User Datagram Protocol)等の通信プロトコルで、ネットワーク3に接続された他のコンピューターと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。また、通信I/F部160が接続されるネットワーク3は、例えば、ローカルエリアネットワーク(LAN)であり、接続形態は有線または無線を問わない。またネットワーク3は、LANに限らず、ワイドエリアネットワーク(WAN)、公衆交換電話網(Public Switched Telephone Networks)を用いたネットワーク3等であってもよい。さらに、ネットワーク3は、インターネットに接続されている。このため、MFP100は、インターネットに接続されたサーバー等のコンピューターと通信が可能である。
通信I/F部160は、ネットワーク3から受信されるデータをメイン基板111に出力し、メイン基板111から入力されるデータをネットワーク3に出力する。通信I/F部160は、ネットワーク3から受信されるデータのうちMFP100宛てのデータのみを、メイン基板111に出力し、ネットワーク3から受信されるデータのうちMFP100とは異なる装置宛てのデータを廃棄する。
ファクシミリ部170は、公衆交換電話網(PSTN)に接続され、ファクシミリデータを送受信する。外部記憶装置180は、CD−ROM(Compact Disk Read Only Memory)180A、または半導体メモリーが装着される。外部記憶装置180は、CD−ROM118または半導体メモリーに記憶されたデータを読み出す。外部記憶装置180は、CD−ROM118または半導体メモリーにデータを記憶する。
操作パネル115は、表示部118と、操作部119と、を含む。表示部118は、例えば、液晶表示装置(LCD)であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部119は、複数のハードキーと、タッチパネルと、を含む。タッチパネルは、表示部118の上面または下面に表示部に重畳して設けられたマルチタッチ対応のタッチパネルであり、表示部118の表示面中でユーザーにより指示された位置を検出する。
電源制御部117は、商用電源と接続され、交流を直流に変換し、電力をMFP100が備えるメイン基板111、HDD113、操作パネル115、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、通信I/F部160、ファクシミリ部170とおよび外部記憶装置180に供給する。
図4は、メイン基板の詳細な構成の一例を通信I/F部および電源制御部とともに示すブロック図である。図4を参照して、メイン基板111は、メインCPU51と、DRAM(Dynamic RAM)53と、通信モジュール55と、を含む。DRAM53は、不揮発性の半導体メモリーであり、セルフリフレッシュモードを有し、単独で記憶保持のためのリフレッシュ動作が可能である。
通信モジュール55は、メモリコントローラー61と、SRAM(Static RAM)63と、サブCPU65と、部分制御部67と、電力切換部69と、を含む。電力切換部69は、電源制御部117から供給される電力を、メインコントローラー61、SRAM63、サブCPU65および部分制御部67に供給する。電力切換部69は、サブCPU65に供給する電力を単独で切断することが可能である。
メモリコントローラー61は、メインCPU51、サブCPU65およびDRAM53と接続され、メインCPU51によるDRAM53へのアクセスと、サブCPU65によるDRAM53へのアクセスを調停する。従って、メインCPU51はDRAM53にアクセス可能であり、サブCPU65はDRAM53にアクセス可能である。DRAM53は、メインCPU51に割り当てられたメイン領域と、メインCPU51およびサブCPU65とで共有される共有領域と、を含む。
メインCPU51は、DRAM53を作業領域として使用する。メインCPU51は、HDD113に記憶されたプログラムをDRAM53にロードして実行する。メインCPU51は、MFP100の全体を制御し、動作モードを通常モードと通常モードよりも消費電力の小さいスリープモードとに切り換える。例えば、メインCPU51は、通常モードにおいてスリープ条件が成立すると、動作モードをスリープモードに切り換える。スリープ条件は、例えば、操作パネル115がユーザーによる操作を所定時間以上受け付けない場合、通信I/F部160が外部からデータを所定時間以上受信しない場合、ファクシミリ部170がファクシミリデータを所定時間以上受信しない場合である。なお、メインCPU51が動作モードを通常モードからスリープモードに切り換えるタイミングは、これらに限定されることなく、任意に定めることができる。メインCPU51は、動作モードをスリープモードに切り換える場合、DRAM53の共有領域に、スリープモードに切り換えたことを示す情報を記憶する。例えば、サブCPU65との間で予め定められたアドレスにフラッグを記憶する。
SRAM63は、不揮発性の半導体メモリーであり、記憶保持のための動作を必要としない。SRAM63は、DRAM53よりも消費電力が小さい。サブCPU65は、SRAM63を作業領域として使用する。サブCPU65は、メインCPU51よりも消費電力が小さい。また、サブCPU65は、HDD113に記憶された代理通信プログラムをSRAM63にロードして実行する。
サブCPU65は、省電力モード移行部71と、応答制御部73と、を含む。省電力モード移行部71は、メインCPU51が動作モードを通常モードからスリープモードに切り換えたことを検出する。具体的には、省電力モード移行部71は、DRAM53の共有領域にメインCPU51によってスリープモードに切り換えたことを示す情報が記憶されたことを検出する。例えば、省電力モード移行部71は、DRAM53の共有領域で、メインCPU51との間で予め定められたアドレスをポーリングし、そのアドレスにフラグが記憶されていれば、CPU51が動作モードを通常モードからスリープモードに切り換えたことを検出する。以下、メインCPU51が動作モードを通常モードからスリープモードに切り換え、次に通常モードで動作するまでの期間のメインCPU51の状態をスリープ状態といい、動作モードが通常モードの期間のメインCPU51の状態を通常状態という。
省電力モード移行部71は、メインCPU51が動作モードを通常モードからスリープモードに切り換えたことを検出することに応じて、DRAM53をセルフリフレッシュモードに移行させ、電源制御部117を制御して、メインCPU51に供給する電力を遮断させる。これにより、DRAM53に記憶されているデータを保持したまま、メインCPU51を停止させることができる。メインCPU51によって電力が消費されず、DRAM53がセルフリフレッシュモードで消費される電力はセルフリフレッシュモードでない通常モードよりも小さいのでの、消費電力を少なくすることができる。
省電力モード移行部71は、さらに、メインCPU51が動作モードを通常モードからスリープモードに切り換えたことを検出すると、部分制御部67に起動指示を出力する。部分制御部67は、ASIC(Application Specific Integrated Circuit)であり、通信I/F部160を制御し、装置探索応答処理を実行する。部分制御部67は、サブCPU65よりも消費電力が小さい。
ここで、装置探索応答処理について説明する。装置探索プロトコルにおいては、基本的に、ネットワーク3に接続されているデバイス、例えば、PC200A〜200D,MFP100A〜100Cが、他のデバイスを発見するためのリクエストをネットワーク3にマルチキャストで送出する。装置探索応答処理は、通信I/F部160が他のデバイスから送信されたリクエストを受信することに応じて、自装置の存在を示す応答をユニキャストで返信する処理である。このような装置探索プロトコルは、例えば、物理アドレスであるMAC(Media Access Control)アドレスを問い合わせないプロトコルに分類されるSSDP(Simple Service Discovery Protocol)、WSD(Web Services on Devices)、SLP(Service Location Protocol)およびmDNS(multicast Domain Name System)と、MACアドレスを問い合わせるプロトコルに分類されるARP(Address Resolution Protocol),ICMP(Internet Control Message Protocol)、NetBIOS(Network Basic Input Output System)、LLMNR(Link−Local Multicast Name Resolution)およびSNMP(Simple Network Management Protocol)と、がある。
部分制御部67は、通信I/F部160が、部分制御部67が対応していない通信プロトコルのデータを受信する場合、そのデータをサブCPU65に出力し、サブCPU65から入力されるデータを通信I/F部160に出力する。
応答制御部73は、通信I/F部160を制御し、通信I/F部160を制御する処理の一部である応答処理を実行可能である。応答処理は、例えば、ネットワーク3に接続されたPC200A〜200D、MFP100A〜100Cのいずれかからデータを受信するデータ受信処理、装置探索応答処理を含む。ここでは、部分制御部67が、装置探索応答処理を実行するので、応答制御部73は、応答処理のうち装置探索応答処理を除く処理を実行する。応答制御部73が実行する応答処理は、SRAMにインストールしたプログラムによって定まる。
応答制御部73は、通信I/F部160を制御し、応答処理のうち装置探索応答処理以外の処理を実行する。ここで、応答処理のうち装置探索応答処理以外の処理を部分応答処理という。部分制御部67は、装置探索応答処理のみ実行し、通信I/F部160が装置探索プロトコル以外のプロトコルのデータを受信する場合には、そのデータを応答制御部73に出力する。応答制御部73は、通信I/F部160により受信されたデータに対して応答可能であれば、その応答を通信I/F部160を介して送信する。
応答制御部73は、通信I/F部160により受信されたデータに対して自装置で応答不可能な場合、メインCPU51が通常状態の間は、通信I/F部160が受信するデータを、メモリコントローラー61を介してメインCPU51に出力し、メインCPU51がメモリコントローラー61を介して通信I/F部160に出力するデータが入力される場合、そのデータを通信I/F部160に出力する。
また、応答制御部73は、通信I/F部160により受信されたデータに対して自装置で応答不可能な場合、メインCPU51がスリープ状態であればDRAM53のセルフリフレッシュモードを解除し、受信されたデータをDRAM53の共有領域に記憶し、メインCPU51を起動する。応答制御部73は、電源制御部117を制御することにより、メインCPU51を起動する。具体的には、応答制御部73は、電源制御部117にメインCPU51に電力を供給させる。
メインCPU51は、起動すると、DRAM53の共有領域にデータが記憶されていることを検出し、そのデータを読み出して処理を実行する。一方、メインCPU51がスリープ状態の間にDRAM53がセルフリフレッシュモードであったため、DRAM53にはメインCPU51がスリープ状態になる前に記憶されていたデータが保持されている。そのため、メインCPU51は、DRAM53にプログラムをロードする必要がなく、早期に起動することができる。
部分制御部67が装置探索応答処理を実行するので、通信I/F部160が装置探索プロトコルのリクエストを受信する場合には、部分制御部67単独でリクエストを返信する。このため、サブCPU65およびメインCPU51が駆動している必要はない。部分制御部67は、応答制御部73から起動指示が入力されると、電力切換部69を制御して、サブCPU65に供給する電力を遮断させる。この場合においても電力切換部69からSRAM63への電力供給は継続される。部分制御部67は、応答制御部73から起動指示が入力された後に、通信I/F部160が部分制御部67の対応していない通信プロトコルのデータを受信することに応じて、電力切換部69を制御して、サブCPU65に電力を供給させる。サブCPU65は、電力が供給されると起動する。サブCPU65が起動する時点で、SRAM64は、サブCPU65に電力が供給されない間も電力が供給されるので、データを保持している。このため、サブCPU65は、SRAM64にプログラムをロードする必要がないので、サブCPU65が起動して処理を実行可能になるまでの時間をできるだけ短くすることができる。
なお、本実施の形態においては、メインCPU51およびサブCPU65が、HDD113に記憶されたプログラムを、DRAM69およびSRAM63にそれぞれロードして実行する例を説明したが、HDD113に記憶されるプログラムは、通信I/F部160に接続されるネットワーク3を介して、ネットワーク3に接続された他のコンピューターが、HDD113に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込んだプログラムであってもよい。また、メインCPU51およびサブCPU65が実行するプログラムは、HDD115に記憶されたプログラムプログラムに限られず、外部記憶装置180に装表されたCD−ROM180Aまたは半導体メモリーに記録されたプログラムであってもよい。
なお、メインCPU51およびサブCPU65が実行するプログラムを記憶する媒体としては、CD−ROM180Aに限られず、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、ICカード、光カード、マスクROM、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)などの半導体メモリーであってもよい。
また、DRAM53にサブCPU65に専用に割り当てられたサブ領域を確保するようにして、サブCPU65がDRAM53のサブ領域を作業領域として用いるようにしてもよい。この場合には、SRAM63の容量を大きくする必要はないので、SRAM63の消費電力が増大するのを防止することができる。例えば、サブCPU65がDRAM53のサブ領域にロードするプログラムは、サブCPU65が、通信I/F部160を制御するプログラムのうち、DRAM53の共有領域にデータを記憶するプログラムとするのが好ましい
図5は、メインCPU、DRAM、サブCPUおよび部分制御部それぞれの状態の経時的変化を説明する図である。図5を参照して、メインCPU51が通常状態の場合、DRAM53はセルフリフレッシュモードではない通常モードである。サブCPU65は応答部分処理を実行し、部分制御部67は、装置探索応答処理を実行する。
時刻T1において、メインCPU51においてスリープ条件が成立すると、メインCPU51は、DRAM53の供給領域に、スリープモードに切り換えたことを示す情報としてフラグを書き込む。サブCPU65は、所定時間間隔でDRAM53の供給領域を監視しており、共有領域にメインCPU51によって書き込まれたフラグを検出することにより、メインCPU51が動作モードをスリープモードに切り換え、スリープ状態に移行したことを検出する。
サブCPU65は、メインCPU51がスリープ状態に移行したことを検出すると、時刻T2において、DRAM69をセルフリフレッシュモードに切り換え、メインCPU51の電源OFF制御をし、部分制御部67に起動指示を出力する。メインCPU51の電源OFF制御は、電源制御部117を制御して、メインCPU51に供給する電力を遮断させる制御である。これにより、メインCPU51は電力が供給されなくなるので、駆動しなくなり、電力を消費しない。一方、DRAM53は、セルフリフレッシュモードなので、メインCPU51がスリープ状態になる前の時点のデータを保持している。
部分制御部67は、サブCPU65から起動指示が入力されることに応じて、時刻T3においてサブCPU65の電源OFF制御をする。サブCPU65の電源OFF制御は、電力切換部69を制御して、サブCPU65に供給する電力を遮断させる制御である。これにより、サブCPU65は電力が供給されなくなるので、駆動しなくなり、電力を消費しない。一方、SRAM64には電力切換部69から電力が供給されるので、サブCPU65が駆動しなくなる前の時点のデータを保持している。
なお、時刻T1、時刻T2および時刻T3の間隔は非常に短い時間であり、サブCPU65および部分制御部67それぞれのクロック周波数の数倍であれば足りる。
時刻T4において、部分制御部67は、装置探索応答処理で定められたプロトコル以外のプロトコルのデータを、通信I/F部160が受信する場合、部分制御部67は、サブCPU65の電源ON制御をする。サブCPU65の電源ON制御は、電力切換部69を制御して、サブCPU65に電力を供給させる制御である。これにより、サブCPU65は電力が供給されて起動する。一方、SRAM64には電力切換部69から電力が供給されるので、サブCPU65が駆動しなくなる前の時点のデータを保持している。このため、サブCPU65は、SRAM64にプログラムをロードする必要がなく、早期に起動することができる。部分制御部67が装置探索応答処理を実行しているT3〜T4の期間、サブCPU65、メインCPU51が駆動していないので、消費電力が小さくなる。
サブCPU65は、起動すると、通信I/F部160を制御して、通信I/F部160により受信されたデータに対して応答部分処理を実行する。サブCPU65は、応答部分処理が完了する時刻T5において、部分制御部67に起動指示を出力する。
部分制御部67は、サブCPU65から起動指示が入力された後の時刻T6において、サブCPU65の電源OFF制御をする。なお、時刻T5および時刻T6の間隔は非常に短い時間であり、部分制御部67のクロック周波数の数倍であれば足りる。
時刻T7において、部分制御部67は、装置探索応答処理で定められたプロトコル以外のプロトコルのデータを、通信I/F部160が受信する場合、部分制御部67は、サブCPU65の電源ON制御をする。これにより、サブCPU65は電力が供給されて起動する。部分制御部67が装置探索応答処理を実行しているT5〜T7の期間、サブCPU65、メインCPU51が駆動していないので、消費電力が小さくなる。
サブCPU65は、起動すると、通信I/F部160を制御して、通信I/F部160により受信されたデータに対して応答部分処理を実行するが、通信I/F部160により受信されたデータが応答部分処理で対応できないプロトコルのデータの場合、時刻T8において、DRAM53のセルフリフレッシュモードを解除する。サブCPU65によって処理できないデータは、サブCPU65が実行するプログラムにより定められたプロトコルのデータとは異なるプロトコルのデータである。DRAM53は通常モードでは、データの入出力が可能である。
そして、時刻T9において、サブCPU65は、通信I/F部160が受信するデータを、DRAM53の共有領域に書き込みを開始する。そして、時刻T10において、サブCPU65は、メインCPU51の電源ON制御をする。メインCPU51の電源ON制御は、電源制御部117を制御して、メインCPU51に電力を供給させる制御である。これにより、メインCPU51は電力が供給されて起動し、通常状態となる。一方、DRAM53は、メインCPU51がスリープ状態の間セルフリフレッシュモードで駆動するので、メインCPU51が巣ループ状態になる前の時点のデータを保持している。このため、メインCPU51は、DRAM53にプログラムをロードする必要がなく、早期に起動することができる。
メインCPU51は、起動した時刻T11において、DRAM53の共有領域をサーチし、サブCPU65により記憶されたデータが記憶されているか否かを判断する。メインCPU51は、そのようなデータがDRAM53の共有領域に記憶されていれば、DRAM53の共有領域に記憶されているデータを読み出して、そのデータを処理する。
なお、時刻T8〜時刻T10の間隔は非常に短い時間であり、サブCPU65のクロック周波数の数倍であれば足りる。また、時刻T10〜時刻T11の間隔は、メインCPU51に電力が供給されてメインCPU51がプログラムを実行可能な状態となるまでの時間である。
なお、T4〜T6の期間の第1の処理と、T7〜T11の期間の第2の処理は、時刻T1においてメインCPU51がスリープ状態に移行してから発生する事象を示しており、第1の処理と第2の処理それぞれは、メインCPU51がスリープ状態の間に実行される場合と、実行されない場合とがある。また、第1の処理と第2の処理それぞれは、メインCPU51がスリープ状態の間に実行される場合は、複数回実行される場合がある。
図6は、スリープ移行処理の流れの一例を示すフローチャートである。スリープ移行処理は、メインCPU51が、HDD113、CD−ROM180Aに記憶されたプログラムを、DRAM53にロードして実行することにより、メインCPU51によって実行される処理である。図6を参照して、メインCPU51は、起動すると、DRAM53にプログラムがロードされているか否かを判断する。DRAM53にプログラムがロードされているならば処理をステップS02に進めるが、そうでなければ処理をステップS05に進める。ステップS05においては、HDD113に記憶されたプログラムをDRAM53にロードし、処理をステップS06に進める。
ステップS06においては、スリープ条件が成立したか否かを判断する。スリープ条件が成立したならば処理をステップS08に進めるが、そうでなければ処理をステップS07に進める。ステップS07においては、ステップS05においてロードしたプログラムで定められる処理を実行し、処理をステップS06に戻す。ステップS05において実行する処理は、例えば、自動原稿搬送装置120および原稿読取部130を制御して原稿の画像を読み取るスキャン処理、給紙部150および画像形成部140を制御して、用紙に画像を形成する処理、通信I/F部160を制御してデータを送受信する処理、HDD113を制御してHDD113にデータを記憶し、またはHDDからデータを読み出すデータ管理処理、操作パネル115を操作してユーザーによる操作を受け付ける操作受付処理、ファクシミリ部170を制御してファクシミリデータを送受信する処理を含む。また、これらの2以上の処理を組み合わせた処理を含む。
ステップS08においては、DRAM53の共有領域にスリープ状態に移行したことを示す情報として、サブCPU65との間で予め定められたアドレスにフラグを記憶する。そして、スリープ状態に移行し、処理をステップS10に進める。
ステップS10においては、電源がOFFになったか否かを判断する。電源がOFFになったならば処理を終了し、そうでなければ処理をステップS06に戻す。電源制御部117がサブCPU65によって制御され、メインCPU51に供給される電力が遮断される場合がある。
一方、処理がステップS02に進む場合、ステップS09においてスリープ状態に移行した後に、電源制御部117がサブCPU65によって制御され、メインCPU51に電力の供給を再開する場合がある。この場合には、サブCPU65によりDRAM53がセルフリフレッシュモードに切り換えられる場合である。DRAM53にメインCPU51がスリープ状態になる直前のデータが保持されており、プログラムがロードされている場合である。ステップS02においては、DRAM53の共有領域にデータが記憶されているか否かを判断する。DRAM53の共有領域にデータは、メインCPU51がスリープ状態の間に、通信I/F部160が受信したデータであり、そのデータは、サブCPU65がDRAM53の共有領域に記憶する。DRAM53の共有領域にデータが記憶されていれば処理をステップS03に進めるが、そうでなければ処理をステップS06に進める。
ステップS03においては、DRAM53の共有領域に記憶されているデータを読出し、処理をステップS04に進める。ステップS04においては、データに対応する処理を実行し、処理をステップS06に進める。
図7は、応答制御処理の流れの一例を示すフローチャートである。応答制御処理は、サブCPU65が、HDD113に記憶された省電力時通信プログラムをSRAM63にロードして実行することにより、サブCPU65によって実行される処理である。
図7を参照して、サブCPU65は、通信I/F部160がデータを受信しているか否かを判断する(ステップS21)。通信I/F部160がデータを受信しているならば処理をステップS22に進めるが、そうでなければ処理をステップS30に進める。ステップS22においては、ステップS22においては、通信I/F部160によって受信されたデータに応答可能か否かを判断する。SRAM63にロードされているプログラムで定められたプロトコルのデータか否かで判断する。応答可能と判断するならば処理をステップS23に進めるが、そうでなければ処理をステップS24に進める。ステップS23においては、通信I/F部160によって受信されたデータに応答し、処理をステップS33に進める。ステップS33においては、部分制御部67に起動指示を出力し、処理をステップS34に進める。ステップS34においては、電源がOFFになったか否かを判断する。電源がOFFになったならば処理を終了し、そうでなければ処理をステップS21に戻す。電力切換部69が部分制御部67によって制御され、サブCPU65に供給される電力が遮断される場合がある。
ステップS24においては、メインCPU51がスリープ状態か否かを判断する。メインCPU51がスリープ状態ならば処理をステップS26に進めるが、そうでなければ処理をステップS25に進める。ステップS25においては、通信I/F部160が受信したデータをメインCPU51に出力し、処理をステップS30に進める。
ステップS30においては、メインCPU51がスリープ状態に移行したことを検出したか否かを判断する。DRAM53の共有領域のメインCPU51との間で予め定められたアドレスにフラグが記憶されているならば、メインCPU51がスリープ状態に移行したことを検出する。メインCPU51がスリープ状態に移行したことを検出したならば処理をステップS31に進めるが、そうでなければ処理をステップS34に進める。
ステップS31においては、DRAM53をセルフリフレッシュモードに設定し、処理をステップS32に進める。ステップS32においては、メインCPU51の電源OFF制御を実行し、処理をステップS33に進める。具体的には、電源制御部117を制御して、メインCPU51に供給する電力を遮断させる。これにより、メインCPU51が駆動しなくなる。また、DRAM53はセルフリフレッシュモードなので、メインCPU51がスリープ状態になる直前のデータを保持する。
ステップS33においては、部分制御部67に起動指示を出力し、処理をステップS34に進める。ステップS34においては、電源がOFFになったか否かを判断する。電源がOFFになったならば処理を終了し、そうでなければ処理をステップS21に戻す。電力切換部69が部分制御部67によって制御され、サブCPU65に供給される電力が遮断される場合がある。
処理がステップS22に進む場合は、ステップS32においてメインCPU51に供給する電力を遮断し、ステップS33において部分制御部67に起動指示を出力した後に、電力切換部69が部分制御部67によって制御され、サブCPU65に電力の供給を再開する場合がある。この場合には、通信I/F部160によって部分制御部67が応答できないデータが受信された場合である。ステップS22においては、通信I/F部160によって受信されたデータに応答可能か否かを判断する。SRAM63にロードされているプログラムで定められたプロトコルのデータか否かで判断する。応答可能と判断するならば処理をステップS23に進めるが、そうでなければ処理をステップS24に進める。ステップS23においては、通信I/F部160によって受信されたデータに応答し、処理をステップS32に進める。
ステップS24においてメインCPU51がスリープ状態か否かを判断するが、この場合には、メインCPU51がスリープ状態なので、処理をステップS26に進める。ステップS26においては、DRAM53のセルフリフレッシュモードを解除し、処理をステップS27に進める。ステップS27においては、通信I/F部160によって受信されたデータを、DRAM53の共有領域に記憶し、処理をステップS28に進める。ステップS28においては、メインCPU51の電源ON制御を実行し、処理をステップS29進める。具体的には、電源制御部117を制御し、メインCPU51に電力を供給させる。これにより、メインCPU51が起動する。ステップS29においては、ステップS27において開始したデータの書き込み処理が終了したか否かを判断する。通信I/F部160により受信されたデータをDRAM53への書き込みが終了するまで待機状態となり(ステップS29でNO)、書き込みが終了したならば(ステップS29でYES)、処理をステップS30に進める。
図8は、装置探索応答制御処理の流れの一例を示すフローチャートである。装置探索応答制御処理は、部分制御部67が実行する処理である。図8を参照して、部分制御部67は、サブCPU65から起動指示が入力されたか否かを判断する(ステップS51)。起動指示が入力されたならば、処理をステップS52に進めるが、そうでなければ処理をステップS53に進める。
ステップS52においては、サブCPU65の電源OFF制御を実行し、処理をステップS53に進める。具体的には、電力切換部69を制御し、サブCPU65に供給する電力を遮断させる。これにより、サブCPU65が停止する。
次のステップS53においては、通信I/F部160がデータを受信したか否かを判断する。通信I/F部160がデータを受信したならば処理をステップS54に進めるが、そうでなければ処理をステップS51に戻す。ステップS54においては、受信されたデータに対して応答可能か否かを判断する。応答可能ならば処理をステップS55に進めるが、応答可能でなければ処理をステップS56に進める。
ステップS55においては、サブCPU65の電源ON制御を実行し、処理をステップS51に戻す。具体的には、電力切換部69を制御し、サブCPU65に電力を供給させる。これにより、サブCPU65が起動し、通信I/F部160により受信されたデータを処理する。
ステップS56においては、装置探索応答処理を実行し、処理をステップS53に戻す。装置探索応答処理は、ステップS53において通信I/F部160で受信されたデータが装置探索プロトコルに従ったリクエストの場合に、そのリクエストに応答するレスポンスを通信I/F部160を介して返信する処理である。
以上説明したように、本実施の形態におけるMFP100は、サブCPU65は、DRAM53の共有領域を用いてメインCPU51がスリープ状態に移行したことを検出し、DRAM53をセルフリフレッシュモードに移行させ、通信I/F部160が応答処理で対応できないデータを受信すると、DRAM53のセルフリフレッシュモードを解除し、メインCPU51のスリープ状態を解除する。このため、サブCPU65は、メインCPU51と直接通信することなく同期することができるとともに、DRAM53のセルフリフレッシュモードの切り換え制御をするので、メインCPU51に高性能な部品を採用することない。また、サブCPU65が、DRAM53をセルフリフレッシュモードに移行させるので、簡単な構成で、メインCPU51およびDRAM53を省電力モードに移行させることができるとともに、メインCPU51が起動する時間を短くすることができる。また、サブCPU65は、メインCPU51がスリープ状態の間に、通信I/F部160を制御する応答処理を実行するので、メインCPU51がスリープ状態の期間を長くすることができる。
また、サブCPU65は、メインCPU51がスリープ状態の間に、通信I/F部160が応答処理で対応できないデータを受信する場合に、DRAM53のセルフリフレッシュモードを解除した後に受信されたデータを共有領域に書き込むとともに、メインCPU51のスリープ状態を解除し、メインCPU51は、起動した後に共有領域にデータが記憶されている場合、記憶されたデータを処理する。このため、メインCPU51がスリープ状態の間に、通信I/F部160により受信されたデータを失うことなく、メインCPU51に処理させることができる。
また、サブCPU65は、共有領域にスリープ状態であることを示す情報が記憶されていることを検出した後に駆動しなくなるが、部分制御部65は、通信I/F部160が装置短s九応答処理で対応できないデータを受信することに応じて、サブCPU65を起動する。このため、サブCPU65が駆動しない間は、部分制御部67が装置探索応答処理を実行するので、消費電力を小さくすることができる。また、部分制御部67は、通信I/F部160が装置探索応答処理で対応できないデータを受信することに応じて、サブCPU65を起動するので、サブCPU65が駆動していない間に受信されたデータが失われるのを防止することができる。
また、部分制御部67は、電力切換部69を制御して、SRAM63に電力を供給しつつ、サブCPU65に供給する電力を遮断するので、サブCPU69が起動する時間を短くすることができる。
また、サブCPU65は、電源制御部117を制御して、メインCPU51がスリープ状態の間はメインCPU51に電力の供給を停止させ、メインCPU51がスリープ状態でない間はメインCPU51に電力を供給させる。このため、メインCPU51で消費される電力を小さくして、消費電力を低減することができる。
なお、上述した実施の形態においては、画像形成装置の一例としてMFP100について説明したが、図6に示したスリープ移行処理をメインCPU51に実行させ、図7に示した応答制御処理をサブCPU65に実行させる省電力時通信方法として、また、図7に示した応答制御処理をサブCPU65にCPU13に実行させる省電力時通信プログラムとして、発明を捉えることができるのは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
<付記>
(1) 前記解除ステップは、前記メイン制御手段がスリープ状態の間に、前記通信手段が前記応答処理で対応できないデータを受信する場合に、前記メイン記憶手段のセルフリフレッシュモードを解除した後に前記受信されたデータを前記共有領域に書き込むとともに、前記メイン制御手段のスリープ状態を解除するステップを含み、
前記メイン制御手段に、起動した後に前記共有領域にデータが記憶されている場合、前記記憶されたデータを処理するステップを、さらに実行させる、請求項6に記載の省電力時通信方法。
(2) 前記画像形成装置は、前記応答処理の一部である部分応答処理を実行可能な部分制御手段を、さらに備え、
前記サブ制御手段に、前記部分制御手段を起動した後に駆動を停止するステップを、さらに実行させ、
前記部分制御手段は、前記通信手段が前記部分応答処理で対応できないデータを受信することに応じて、前記サブ制御手段を起動する、請求項6または(1)に記載の省電力時通信方法。
(3) 前記画像形成装置は、前記サブ制御手段の作業領域として用いられ、前記メイン記憶手段よりの消費電力の少ないサブ記憶手段と、
前記サブ制御手段が駆動していない間は、前記サブ記憶手段に電力を供給しつつ、前記サブ制御手段に供給する電力を遮断する電力切換手段と、をさらに備えた(2)に記載の省電力時通信方法。
(4) 前記画像形成装置は、前記メイン制御手段に電力を供給する電源制御手段を、さらに備え。
前記サブ制御手段に、前記メイン制御手段がスリープ状態の間は電源制御手段に前記メイン制御手段に電力の供給を停止させるステップと、
前記メイン制御手段のスリープ状態でない間は電源制御手段に前記メイン制御手段に電力を供給させるステップと、を実行させる、請求項6、(1)〜(3)のいずれかに記載の省電力時通信方法。