以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図1は、本実施の形態の一つにおけるMFPの外観を示す斜視図である。図1を参照して、MFP100は、画像形成装置の一例であり、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、ユーザーインターフェースとしての操作パネル190とを含む。
自動原稿搬送装置120は、原稿給紙トレイ上にセットされた複数枚の原稿を1枚ずつ自動的に原稿読取部130のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部130により原稿画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部130は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部140に出力する。給紙部150は、複数の給紙トレイを有する。複数の給紙トレイそれぞれは、予め定められたサイズの用紙を収納する。給紙部150は、複数の給紙トレイのうち画像形成に用いるサイズの用紙を収納する給紙トレイから用紙を1枚ずつ取り出し、取り出した用紙を画像形成部140に搬送する。
画像形成部140は、周知の電子写真方式により画像を形成するものであって、原稿読取部130から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部150により搬送される用紙に画像を形成する。
操作パネル190は、MFP100の上面に設けられ、操作画面等を表示するとともに、ユーザーによる操作を受け付けるユーザーインターフェースとして機能する。
図2は、MFPのハードウェア構成の概要の一例を示すブロック図である。図2を参照して、MFP100は、上述した、自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150に加えて、メイン基板111と、通信インターフェース(I/F)部160と、ファクシミリ部170と、操作パネル190と、外部記憶装置115と、大容量記憶装置としてのハードディスクドライブ(HDD)113と、を含む。
メイン基板111は、自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置115、HDD113、および操作パネル190と接続される。
通信I/F部160は、ネットワークにMFP100を接続するためのインターフェースである。通信I/F部160は、TCP(Transmission Control Protocol)またはUDP(User Datagram Protocol)等の通信プロトコルで、ネットワークに接続された他のコンピューターと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。また、通信I/F部160が接続されるネットワークは、例えば、ローカルエリアネットワーク(LAN)であり、接続形態は有線または無線を問わない。またネットワークは、LANに限らず、ワイドエリアネットワーク(WAN)、公衆交換電話網(Public Switched Telephone Networks)を用いたネットワーク等であってもよい。さらに、ネットワークは、インターネットに接続されている。このため、MFP100は、インターネットに接続されたサーバー等のコンピューターと通信が可能である。
通信I/F部160は、ネットワークから受信されるデータをメイン基板111に出力し、メイン基板111から入力されるデータをネットワークに出力する。通信I/F部160は、ネットワークから受信されるデータのうちMFP100宛てのデータのみを、メイン基板111に出力し、ネットワークから受信されるデータのうちMFP100とは異なる装置宛てのデータを廃棄する。さらに、通信I/F部160は、ネットワークから受信されるデータのうちMFP100宛てのデータであって、ドメイン名、MACアドレス、IPアドレス等を問い合わせるディスカバリーコマンドを受信する場合には、メイン基板111に出力することなく、レスポンスを返信する。例えば、MACアドレスを問い合わせるディスカバリーコマンドはARP(Address Resolution Protocol)規格に準じたデータである。
ファクシミリ部170は、公衆交換電話網(PSTN)に接続され、ファクシミリデータを送受信する。外部記憶装置115は、CD−ROM(Compact Disk Read Only Memory)115A、または半導体メモリーが装着される。外部記憶装置115は、CD−ROM115Aまたは半導体メモリーに記憶されたデータを読み出す。外部記憶装置115は、CD−ROM115Aまたは半導体メモリーにデータを記憶する。
操作パネル190は、表示部195と、操作部196と、を含む。表示部195は、例えば、液晶表示装置(LCD)であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部196は、複数のハードキーと、タッチパネルと、を含む。タッチパネルは、表示部195の上面または下面に表示部に重畳して設けられたマルチタッチ対応のタッチパネルであり、表示部195の表示面中でユーザーにより指示された位置を検出する。
図3は、メイン基板の詳細な構成の一例を示すブロック図である。図3を参照して、メイン基板111は、メインCPU11と、起動用CPU13と、電源制御回路17と、RAM21と、フラッシュメモリ23と、コネクタ31〜39と、を含む。
RAM21は、メインCPU11の作業領域として用いられる揮発性の半導体メモリーである。フラッシュメモリ23は、メインCPU11または起動用CPU13により制御される不揮発性の半導体メモリーである。
パネル用コネクタ31は、操作パネル190と接続され、操作パネル190とメインCPU11とを電気的に接続する。操作パネル190は、パネル用コネクタ31を介して電源制御回路17から電力が供給される。操作パネル190が備える操作部196は、ユーザーが操作部196に操作を入力すると、入力された操作を検出し、検出した操作を識別するための操作識別情報をパネル用コネクタ31に出力する。ユーザーが操作部196に出力する操作は、操作部196が備える複数のハードキーを押下する操作と、タッチパネルを指示する操作と、を含む。電源制御回路17から電力が供給されていない状態で、操作部196のハードキーである複数のパネルキーのいずれかが押下されると、パネル用コネクタ31が有する複数の端子のうち起動用CPU13に接続されるキー用端子の電圧がローからハイに変化する。
ADF用コネクタ32は、自動原稿搬送装置120と接続され、自動原稿搬送装置120とメインCPU11とを電気的に接続する。自動原稿搬送装置120は、ADF用コネクタ32を介して電源制御回路17から電力が供給される。自動原稿搬送装置120は、複数の機械式スイッチを有する。自動原稿搬送装置120は、キャパシターを有しており、電源制御回路17から電力が供給されてない状態で、複数の機械式スイッチのいずれかがOFFからONに変化する場合、ADF用コネクタ32が有する複数の端子のうち起動用CPU13に接続されるスイッチ用端子の電圧がローからハイに変化する。複数の機械式スイッチは、原稿を検出するスイッチ、自動原稿搬送装置120が開いた状態を検出するスイッチを含む。
FAX用コネクタ33は、ファクシミリ部170と接続され、ファクシミリ部170とメインCPU11とを電気的に接続する。自動原稿搬送装置120は、FAX用コネクタ33を介して電源制御回路17から電力が供給される。ファクシミリ部170は、ファクシミリデータを受信する場合、FAX用コネクタ33を介してメインCPU11に受信されたファクシミリデータを出力する。ファクシミリ部170は、メインCPU11からFAX用コネクタ33を介して入力されるファクシミリデータを送信する。ファクシミリ部170は、電源制御回路17から電力が供給されていない状態で着信を検出することが可能である。ファクシミリ部170は、電源制御回路17から電力が供給されていない状態で着信を検出するとFAX用コネクタ33が有する複数の端子のうち起動用CPU13に接続された着信通知用端子の電圧をローからハイに変更する。
通信用コネクタ34は、通信I/F部160と接続され、通信I/F部160とメインCPU11とを電気的に接続する。通信I/F部160は、通信用コネクタ34を介して電源制御回路17から電力が供給される。通信I/F部160は、キャパシターを有し、電源制御回路17から電力が供給されていない状態において、ディスカバリーコマンドを受信する場合には、レスポンスを返信することが可能である。通信I/F部160は、電源制御回路17から電力が供給されていない状態において、外部からディスカバリーコマンドを除くMFP100宛てのデータを受信する場合、通信用コネクタ34が有する複数の端子のうち起動用CPU13に接続された受信通知用端子の電圧をローからハイに変更する。
スキャナ用コネクタ35は、原稿読取部130と接続され、原稿読取部130とメインCPU11とを電気的に接続する。原稿読取部130は、スキャナ用コネクタ35を介して電源制御回路17から電力が供給される。エンジン用コネクタ36は、画像形成部140および給紙部150と接続され、画像形成部140および給紙部150それぞれをメインCPU11と電気的に接続する。画像形成部140および給紙部150それぞれは、エンジン用コネクタ36を介して電源制御回路17から電力が供給される。HDD用コネクタ37は、HDD113と接続され、HDD113をメインCPU11と電気的に接続する。HDD113は、HDD用コネクタ37を介して電源制御回路17から電力が供給される。外部用コネクタ38は、外部記憶装置115と接続され、外部記憶装置115をメインCPU11と電気的に接続する。外部記憶装置115は、外部用コネクタ38を介して電源制御回路17から電力が供給される。
メインCPU11は、フラッシュメモリ23にアクセス可能であり、フラッシュメモリ23に記憶されたデータの読み出し、または、フラッシュメモリ23にデータを書き込み可能である。
起動用CPU13は、メインCPU11が駆動していない状態で起動要因を検出することに応じて、メインCPU11を起動する。具体的には、起動用CPU13は、起動用CPU13のリセット端子と接続され、リセット端子にリセット信号を出力することにより、起動用CPU13を起動する。起動用CPU13は、フラッシュメモリ23にアクセス可能であり、フラッシュメモリ23に記憶されたデータの読出し、または、フラッシュメモリ23にデータを書き込み可能である。
起動用CPU13は、パネル用コネクタ31のキー用端子と接続され、キー用端子の電圧がローからハイに変化することに応じて起動要因を検出する。起動用CPU13は、ADF用コネクタ32のスイッチ用端子と接続され、スイッチ用端子の電圧がローからハイに変化することに応じて起動要因を検出する。起動用CPU13は、FAX用コネクタ33の着信通知用端子と接続され、着信通知用端子の電圧がローからハイに変化することに応じて起動要因を検出する。起動用CPU13は、通信用コネクタ34の受信通知用端子と接続され、受信通知用端子の電圧がローからハイに変化することに応じて起動要因を検出する。
電源制御回路17は、電源コネクタ39を介して商用電源と接続される。電源制御回路17は、商用電源から供給される電力を、メイン基板111のメインCPU11、起動用CPU13、RAM21およびフラッシュメモリ23に供給するとともに、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置115、HDD113および操作パネル190に供給する。電源制御回路17は、起動用CPU13により制御され、メインCPU11、起動用CPU13、RAM21、フラッシュメモリ23、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、通信I/F部160、ファクシミリ部170、外部記憶装置115、HDD113および操作パネル190それぞれに対して、電力を供給する状態と、電力を供給しない状態とに切り換える。
図4は、メインCPUが有する機能の一例を示すブロック図である。図4に示す機能は、メインCPU11がメイン起動制御プログラムを実行することにより、メインCPU11に形成される機能である。メイン起動制御プログラムは、起動制御プログラムの一部である。図4を参照して、メインCPU11は、スナップショット取得部51と、メインモード切換部53と、復帰部55と、を含む。
スナップショット取得部51は、スナップショットを取得する。スナップショットは、メインCPU11がフラッシュメモリ23に記憶された複数のプログラムのうち1以上のプログラムをRAM21にロードした状態において、RAM21に記憶されたデータである。スナップショット取得部51は、スナップショット生成部61と、関連付部63と、を含む。
スナップショット生成部61は、複数の起動要因ごとに、当該起動要因に対して定められた状態においてRAM21に記憶されたデータをイメージデータであるスナップショットとしてフラッシュメモリ23に記憶する。このため、スナップショット生成部61は、複数の起動要因にそれぞれ対応する複数のスナップショットをフラッシュメモリ23に記憶する。スナップショット生成部61は、起動要因と、その起動要因に対応してフラッシュメモリ23に記憶したスナッショットのフラッシュメモリ23中のアドレスとを、関連付部63に出力する。
具体的には、フラッシュメモリ23に、状態と、起動要因と、ハードウェア資源とを関連付けた起動要因テーブルが予め記憶されており、スナップショット生成部61は、起動要因テーブルを参照して、複数の起動要因それぞれのスナップショットをフラッシュメモリ23に記憶する。状態は、複数のハードウェア資源のうち電源が供給されるハードウェア資源の組によって定まる。
図5は、起動要因テーブルの一例を示す図である。図5を参照して、起動要因テーブルは、状態と、起動要因と、ハードウェア資源と、を関連付けた複数の起動要因レコードを含む。起動要因レコードは、状態の項目と、起動要因の項目と、ハードウェア資源の項目と、を含む。状態の項目は、状態を識別するための状態識別情報が設定され、起動要因の項目は、起動要因を識別するための起動要因識別情報が設定され、ハードウェア資源の項目は、ハードウェア資源を識別するためのハードウェア識別情報が設定される。ここでは、操作パネル190のハードウェア識別情報を「操作パネル」とし、原稿読取部130のハードウェア識別情報を「原稿読取部」とし、画像形成部140のハードウェア識別情報を「画像形成部」とし、給紙部150のハードウェア識別情報を「給紙部」とし、自動原稿搬送装置120のハードウェア識別情報を「自動原稿搬送装置」とし、ファクシミリ部170のハードウェア識別情報を「ファクシミリ部」とし、通信I/F部160のハードウェア識別情報を「通信I/F部」とし、HDD113のハードウェア識別情報を「HDD」とし、外部記憶装置115のハードウェア識別情報を「外部記憶装置」としている。
状態識別情報「状態A」には、起動要因識別情報「パネルキー」と、ハードウェア識別情報「操作パネル」、「原稿読取部」、「画像形成部」、「給紙部」、「自動原稿搬送装置」、「ファクシミリ部」、「通信I/F部」が関連付けられる。起動要因識別情報「パネルキー」で識別される起動要因は、操作パネル190の操作部196が備える複数のパネルキーが押下される事象を示す。
状態識別情報「状態B」には、起動要因識別情報「原稿セット」と、ハードウェア識別情報「操作パネル」、「原稿読取部」、「給紙部」、「自動原稿搬送装置」が関連付けられる。起動要因識別情報「原稿セット」で識別される起動要因は、自動原稿搬送装置120に原稿が載置される事象、自動原稿搬送装置120が開状態に変化する事象を示す。
状態識別情報「状態C」には、起動要因識別情報「ファクシミリ受信」と、ハードウェア識別情報「画像形成部」、「給紙部」、「ファクシミリ部」が関連付けられる。起動要因識別情報「ファクシミリ受信」で識別される起動要因は、ファクシミリ部170が着信を検出する事象を示す。
状態識別情報「状態D」には、起動要因識別情報「データ受信」と、ハードウェア識別情報「画像形成部」、「給紙部」、「通信I/F部」が関連付けられる。起動要因識別情報「データ受信」で識別される起動要因は、通信I/F部160がMFP100宛てのデータを受信する事象を示す。
図4に戻って、スナップショット生成部61は、フラッシュメモリ23にスナップショットが記憶されていない場合、起動要因テーブルを参照して、MFP100の状態を遷移させ、状態が遷移した後にRAM21に記憶されているデータを、遷移後の状態に対応するスナップショットとしてフラッシュメモリ23に記憶する。スナップショット生成部61は、遷移後の状態に対応する起動要因を識別するための起動要因識別情報と、フラッシュメモリ23に記憶されたスナップショットのフラッシュメモリ23中の位置を示すアドレス情報との組を、関連付部63に出力する。
具体的には、スナップショット生成部61は、状態識別情報「状態A」の状態で、RAM21に記憶されているデータを状態Aに対応するスナップショットとしてフラッシュメモリ23に記憶する。スナップショット生成部61は、状態識別情報「状態A」に対応する起動要因識別情報「パネルキー」と、フラッシュメモリ23に記憶されたスナップショットのフラッシュメモリ23中の位置を示すアドレス情報との組を、関連付部63に出力する。状態識別情報「状態A」の状態は、操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160、HDD113、外部記憶装置115の全てのハードウェア資源が、電源制御回路17から電力が供給され、駆動する状態である。
スナップショット生成部61は、MFP100を状態識別情報「状態B」の状態に遷移させた後、RAM21に記憶されているデータを状態Bに対応するスナップショットとしてフラッシュメモリ23に記憶する。スナップショット生成部61は、状態識別情報「状態B」に対応する起動要因識別情報「原稿セット」と、フラッシュメモリ23に記憶されたスナップショットのフラッシュメモリ23中の位置を示すアドレス情報との組を、関連付部63に出力する。状態識別情報「状態B」の状態は、操作パネル190、原稿読取部130、自動原稿搬送装置120およびHDD113が、電源制御回路17から電力が供給され、駆動する状態である。このため、スナップショット生成部61は、画像形成部140、給紙部150、ファクシミリ部170、通信I/F部160、外部記憶装置115を制御して、駆動を停止させるとともに、電源制御回路17を制御して、画像形成部140、給紙部150、ファクシミリ部170、通信I/F部160、外部記憶装置115に供給する電力を遮断させることにより、MFP100を状態識別情報「状態B」の状態に遷移させる。
スナップショット生成部61は、MFP100を状態識別情報「状態B」の状態から状態識別情報「状態C」の状態に遷移させた後、RAM21に記憶されているデータを状態Cに対応するスナップショットとしてフラッシュメモリ23に記憶する。スナップショット生成部61は、状態識別情報「状態C」に対応する起動要因識別情報「ファクシミリ着信」と、フラッシュメモリ23に記憶されたスナップショットのフラッシュメモリ23中の位置を示すアドレス情報との組を、関連付部63に出力する。状態識別情報「状態C」の状態は、画像形成部140、給紙部150およびファクシミリ部170が、電源制御回路17から電力が供給され、駆動する状態である。このため、スナップショット生成部61は、電源制御回路17を制御して、画像形成部140、給紙部150およびファクシミリ部170に電力を供給させるとともに、画像形成部140、給紙部150およびファクシミリ部170を起動させる。さらに、スナップショット生成部61は、操作パネル190、原稿読取部130および自動原稿搬送装置120を制御して、駆動を停止させるとともに、電源制御回路17を制御して、操作パネル190、原稿読取部130および自動原稿搬送装置120に供給する電力を遮断させることにより、MFP100を状態識別情報「状態B」の状態から状態識別情報「状態C」の状態に遷移させる。
スナップショット生成部61は、MFP100を状態識別情報「状態C」の状態から状態識別情報「状態D」の状態に遷移させた後、RAM21に記憶されているデータを状態Dに対応するスナップショットとしてフラッシュメモリ23に記憶する。スナップショット生成部61は、状態識別情報「状態D」に対応する起動要因識別情報「データ受信」と、フラッシュメモリ23に記憶されたスナップショットのフラッシュメモリ23中の位置を示すアドレス情報との組を、関連付部63に出力する。状態識別情報「状態D」の状態は、画像形成部140、給紙部150および通信I/F部160が、電源制御回路17から電力が供給され、駆動する状態である。このため、スナップショット生成部61は、電源制御回路17を制御して、通信I/F部160に電力を供給させるとともに、通信I/F部160を起動させる。さらに、スナップショット生成部61は、ファクシミリ部170を制御して、駆動を停止させるとともに、電源制御回路17を制御して、ファクシミリ部170に供給する電力を遮断させることにより、MFP100を状態識別情報「状態C」の状態から状態識別情報「状態D」の状態に遷移させる。
また、スナップショット生成部61は、状態識別情報「状態A」の状態でスナップショットを生成する前の段階で、操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160に、スナップショット生成指示を出力する。
図1に示したように、操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160それぞれは、CPUと、ROMと、RAMと、フラッシュメモリを少なくとも含み、メインCPU11からスナップショット生成指示が入力されることに応じて、RAMに記憶されているデータをハード用スナップショットとしてフラッシュメモリに記憶する。
具体的には、操作パネル190は、CPU191と、ROM192と、RAM193と、フラッシュメモリ194とを備え、CPU191は、メインCPU11からスナップショット生成指示が入力されることに応じて、RAM193に記憶されているデータをハード用スナップショットとしてフラッシュメモリ194に記憶する。CPU191は、メインCPU11により起動される場合にはROM192に記憶されたプログラムをRAM193にロードした後に、メインCPU11により制御可能な状態に設定するために、メインCPU11との間でデータを送受信する初期設定処理を実行する。CPU191が、メインCPU11からスナップショット生成指示が入力されることに応じて、フラッシュメモリ194に記憶するハード用スナップショットは、メインCPU11により制御可能な状態においてRAM193に記憶されるデータである。操作パネル190のCPU191は、起動用CPU13から起動指示が入力されることに応じて、フラッシュメモリ194に記憶されたハード用スナップショットをRAM193に記憶する。この場合は、メインCPU11により起動される場合に比較して、ROM192に記憶されたプログラムをRAM193にロードする時間、プログラムをRAM193にロードした後に、メインCPU11との間でデータを送受信する初期設定処理を実行する時間が必要ないので、電力復帰部93から起動指示が入力されてからメインCPUにより制御可能な状態になるまでの時間が短くなる。
自動原稿搬送装置120は、CPU121と、ROM122と、RAM123と、フラッシュメモリ124とを備え、CPU121は、メインCPU11からスナップショット生成指示が入力されることに応じて、RAM123に記憶されているデータをハード用スナップショットとしてフラッシュメモリ124に記憶する。CPU121は、メインCPU11により起動される場合にはROM122に記憶されたプログラムをRAM123にロードした後に、メインCPU11により制御可能な状態に設定するために、メインCPU11との間でデータを送受信する初期設定処理を実行する。CPU121が、メインCPU11からスナップショット生成指示が入力されることに応じて、フラッシュメモリ124に記憶するハード用スナップショットは、メインCPU11により制御可能な状態でRAM123に記憶されるデータである。CPU121は、起動用CPU13により起動される場合は、メインCPU11により起動される場合に比較して、メインCPUにより制御可能な状態になるまでの時間が短くなる。
原稿読取部130は、CPU131と、ROM132と、RAM133と、フラッシュメモリ134とを備え、CPU131は、メインCPU11からスナップショット生成指示が入力されることに応じて、RAM133に記憶されているデータをハード用スナップショットとしてフラッシュメモリ134に記憶する。CPU131は、メインCPU11により起動される場合にはROM132に記憶されたプログラムをRAM133にロードした後に、メインCPU11により制御可能な状態に設定するために、メインCPU11との間でデータを送受信する初期設定処理を実行する。CPU131が、メインCPU11からスナップショット生成指示が入力されることに応じて、フラッシュメモリ134に記憶するハード用スナップショットは、メインCPU11により制御可能な状態でRAM133に記憶されるデータである。CPU131は、起動用CPU13により起動される場合は、メインCPU11により起動される場合に比較して、メインCPU11により制御可能な状態になるまでの時間が短くなる。
画像形成部140は、CPU141と、ROM142と、RAM143と、フラッシュメモリ144とを備え、CPU141は、メインCPU11からスナップショット生成指示が入力されることに応じて、RAM143に記憶されているデータをハード用スナップショットとしてフラッシュメモリ144に記憶する。CPU141は、メインCPU11により起動される場合にはROM142に記憶されたプログラムをRAM143にロードした後に、メインCPU11により制御可能な状態に設定するために、メインCPU11との間でデータを送受信する初期設定処理を実行する。CPU141が、メインCPU11からスナップショット生成指示が入力されることに応じて、フラッシュメモリ144に記憶するハード用スナップショットは、メインCPU11により制御可能な状態でRAM143に記憶されるデータである。CPU141は、起動用CPU13により起動される場合は、メインCPU11により起動される場合に比較して、メインCPU11により制御可能な状態になるまでの時間が短くなる。
給紙部150は、CPU151と、ROM152と、RAM153と、フラッシュメモリ154とを備え、CPU151は、メインCPU11からスナップショット生成指示が入力されることに応じて、RAM153に記憶されているデータをハード用スナップショットとしてフラッシュメモリ154に記憶する。CPU151は、メインCPU11により起動される場合にはROM152に記憶されたプログラムをRAM153にロードした後に、メインCPU11により制御可能な状態に設定するために、メインCPU11との間でデータを送受信する初期設定処理を実行する。CPU151が、メインCPU11からスナップショット生成指示が入力されることに応じて、フラッシュメモリ154に記憶するハード用スナップショットは、メインCPU11により制御可能な状態でRAM153に記憶されるデータである。CPU151は、起動用CPU13により起動される場合は、メインCPU11により起動される場合に比較して、メインCPU11により制御可能な状態になるまでの時間が短くなる。
通信I/F部160は、CPU161と、ROM162と、RAM163と、フラッシュメモリ164とを備え、CPU161は、メインCPU11からスナップショット生成指示が入力されることに応じて、RAM163に記憶されているデータをハード用スナップショットとしてフラッシュメモリ164に記憶する。CPU161は、メインCPU11により起動される場合にはROM162に記憶されたプログラムをRAM163にロードした後に、メインCPU11により制御可能な状態に設定するために、メインCPU11との間でデータを送受信する初期設定処理を実行する。CPU161が、メインCPU11からスナップショット生成指示が入力されることに応じて、フラッシュメモリ164に記憶するハード用スナップショットは、メインCPU11により制御可能な状態でRAM163に記憶されるデータである。CPU161は、起動用CPU13により起動される場合は、メインCPU11により起動される場合に比較して、メインCPU11により制御可能な状態になるまでの時間が短くなる。
ファクシミリ部170は、CPU171と、ROM172と、RAM173と、フラッシュメモリ174とを備え、CPU171は、メインCPU11からスナップショット生成指示が入力されることに応じて、RAM173に記憶されているデータをハード用スナップショットとしてフラッシュメモリ174に記憶する。CPU171は、メインCPU11により起動される場合にはROM172に記憶されたプログラムをRAM173にロードした後に、メインCPU11により制御可能な状態に設定するために、メインCPU11との間でデータを送受信する初期設定処理を実行する。CPU171が、メインCPU11からスナップショット生成指示が入力されることに応じて、フラッシュメモリ174に記憶するハード用スナップショットは、メインCPU11により制御可能な状態でRAM173に記憶されるデータである。CPU171は、起動用CPU13により起動される場合は、メインCPU11により起動される場合に比較して、メインCPU11により制御可能な状態になるまでの時間が短くなる。
また、スナップショット生成部61は、フラッシュメモリ23にスナップショットが記憶されている場合、フラッシュメモリ23に記憶された起動要因テーブルが変更されると、変更後の起動要因テーブルを参照して、MFP100の状態を遷移させ、状態が遷移した後にRAM21に記憶されているデータを、遷移後の状態に対応するスナップショットとしてフラッシュメモリ23に記憶する。スナップショット生成部61は、遷移後の状態に対応する起動要因を識別するための起動要因識別情報と、フラッシュメモリ23に記憶されたスナップショットのフラッシュメモリ23中の位置を示すアドレス情報との組を、関連付部63に出力する。
起動要因テーブルは、MFP100にハードウェア資源が追加、または削除される場合に変更される。スナップショット生成部61は、MFP100に新たなハードウェア資源が追加または削除される場合に、起動要因テーブルにより定められた複数の状態ごとにスナップショットをフラッシュメモリ23に記憶する。例えば、新たなハードウェア資源としてフィニッシャがMFP100に追加される場合を例に説明する。フィニッシャは、画像形成部140で画像が形成された用紙を、複数のグループに分類する処理、ステープル針を打ち込む処理、パンチ穴を開ける処理等を実行する。フィニッシャも操作パネル190、自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150と同様に、CPUと、ROMと、RAMと、フラッシュメモリとを備えている。
図6は、変更後の起動要因テーブルの一例を示す図である。図6を参照して、変更後の起動要因テーブルは、図5に示した起動要因テーブルに、状態識別情報「状態A」および状態識別情報「状態D」それぞれに対応するハードウェア資源としてフィニッシャのハードウェア識別情報「フィニッシャ」が追加されている。
関連付部63は、スナップショット生成部61から起動要因識別情報とアドレス情報との組が入力されることに応じて、スナップショット定義レコードを生成し、スナップショット定義レコードを、フラッシュメモリ23に記憶されているスナップショット定義テーブルに追加して記憶する。スナップショット定義レコードは、起動要因の項目とアドレス情報の項目とを含む。起動要因の項目は、起動要因識別情報が設定され、アドレス情報の項目には、その起動要因識別情報で識別される起動要因に対応するスナップショットが記憶されているフラッシュメモリ23中の位置を示すアドレス情報が設定される。
図7は、スナップショット定義テーブルの一例を示す図である。図7を参照して、スナップショット定義テーブルは、複数の起動要因ごとにスナップショット定義レコードを含む。スナップショット定義レコードは、起動要因の項目と、アドレス情報の項目とを含む。起動要因の項目は、起動要因識別情報が設定され、アドレス情報の項目には、起動要因識別情報で識別される起動要因に対応するスナップショットが記憶されているフラッシュメモリ23中の位置を示すアドレス情報が設定される。
復帰部55は、起動用CPU13により起動さると、フラッシュメモリ23に記憶されたスナップショット定義テーブルを参照して、フラッシュメモリ23に記憶されている1以上のスナップショットのうち、起動要因に関連付けられたスナップショットをフラッシュメモリ23から読出し、読み出したスナップショットをRAM21に記憶する。復帰部55は、スナップショットをRAM21に記憶した後、起動完了信号をメインモード切換部53に出力する。
具体的には、復帰部55は、電源制御回路17から電力が供給された後、起動用CPU13からリセット信号が入力されると、フラッシュメモリ23に記憶されたブートプログラムを実行する。このブートプログラムは、フラッシュメモリ23に記憶された1以上のスナップショットのいずれかのフラッシュメモリ23中の位置を示すアドレス情報を定める。後述するように、ブートプログラムにより定められるスナップショットのアドレス情報は、起動用CPU13によって書き換えられる。復帰部55は、ブートプログラムにより定められるアドレス情報で特定されるスナップショットを、フラッシュメモリ23から読出し、RAM21に記憶する。これにより、RAM21に、スナップショットが実行プログラムとして記憶されるので、CPU11は、実行プログラムを実行可能な状態になる。
メインモード切換部53は、復帰部55から起動完了信号が入力されると、動作モードを駆動モードに設定する。駆動モードは、メインCPU11が電源制御回路17から電力の供給を受ける動作モードであり、停止モードは、メインCPU11が電源制御回路17から電力の供給を受けない動作モードである。メインCPU11は、動作モードが駆動モードの場合に電源制御回路17から電力の供給を受けて駆動し、動作モードが停止モードの場合に電源制御回路17から電力の供給を受けないので、駆動しない。メインモード切換部53Aは、所定のタイミングで、動作モードを駆動モードから停止モードに切り換える。メインモード切換部53が動作モードを駆動モードから停止モードに切り換えるタイミングは、任意に定めることができる。例えば、限定するものではないが、操作パネル190に所定時間継続して操作が入力されない場合、画像形成部140が所定時間継続して駆動しない場合等である。メインモード切換部53は、動作モードを駆動モードから停止モードに切り換える場合、切換信号を起動用CPU13に出力する。
メインモード切換部53は、実行後切換部59を含む。実行後切換部59は、復帰部55によって起動された起動要因が所定の起動要因の場合、CPU11がRAM21に記憶された実行プログラムを実行して、起動要因に基づく一連の処理が終了した後、動作モードを駆動モードから停止モードに切り換える。所定の起動要因は、ユーザーがMFP100を直接操作しない起動要因であり、ここでは、起動要因識別情報「ファクシミリ着信」の起動要因および起動要因識別情報「データ受信」の起動要因である。
図8は、起動用CPUが有する機能の一例を示すブロック図である。図8に示す機能は、起動用CPU13がサブ起動制御プログラムを実行することにより、起動用CPU13に形成される機能である。サブ起動制御プログラムは、起動制御プログラムの一部である。図8を参照して、起動用CPU13は、動作モード検出部81と、サブモード切換部83と、起動要因検出部85と、電源制御部87と、起動部89と、を含む。
動作モード検出部81は、メインCPU11の動作モードの切り換えを検出する。動作モード検出部81は、メインCPU11から切換信号が入力されると、メインCPU11が動作モードを駆動モードから停止モードに切り換えたことを検出する。動作モード検出部81は、メインCPU11が動作モードを駆動モードから停止モードに切り換えたことを検出する場合、切換指示を電源制御部87およびサブモード切換部83に出力する。
サブモード切換部83は、通常モードと消費電力が通常モードより低い省電力モードとのいずれかに動作モードを切り換える。サブモード切換部83は、動作モード検出部81から切換信号が入力されることに応じて、動作モードを通常モードから省電力モードに切り換える。サブモード切換部83は、動作モードを通常モードから省電力モードに切り換える場合、起動要因検出部85に検出指示を出力する。
起動要因検出部85は、サブモード切換部83から検出指示が入力されると、起動要因を検出する。具体的には、起動要因検出部85は、パネル用コネクタ31のキー用端子、ADF用コネクタ32のスイッチ用端子、FAX用コネクタ33の着信通知用端子、通信用コネクタ34の受信通知用端子の電圧を検出し、それらの端子のいずれかの電圧がローからハイに変化すると起動要因を検出する。起動要因検出部85は、起動要因を検出すると、電圧がローからハイに変化した端子を識別するための端子識別情報を起動部89およびサブモード切換部83に出力する。
サブモード切換部83は、省電力モードにおいて、起動要因検出部85から端子識別情報が入力されることに応じて、換言すれば、パネル用コネクタ31のキー用端子、ADF用コネクタ32のスイッチ用端子、FAX用コネクタ33の着信通知用端子、通信用コネクタ34の受信通知用端子のいずれかの電圧がローからハイに変化することに応じて、動作モードを省電力モードから通常モードに切り換える。
起動用CPU13は、サブモード切換部83によって動作モードが省電力モードに切り換えられた後は、動作モードが通常モードに切り換えられるまでの間、プログラムを実行しないいわゆるHALTモードで動作する。起動用CPU13は、省電力モードにおいては、パネル用コネクタ31のキー用端子、ADF用コネクタ32のスイッチ用端子、FAX用コネクタ33の着信通知用端子、通信用コネクタ34の受信通知用端子の電圧を検出する処理のみを実行する。換言すれば、起動用CPU13は、省電力モードにおいては、起動要因検出部85のみを有効にする。このため、起動用CPU13は、省電力モードにおいて、消費電力を通常モードより小さくすることができる。
起動部89は、メインCPU11が動作モードを駆動モードから停止モードに切り換えている間に、起動要因検出部85によって起動要因が検出されることに応じて、メインCPU11を起動する。具体的には、起動部89は、メインCPU11のリセット端子にリセット信号を出力することにより、メインCPU11を起動する。起動部89は、スナップショット決定部95と、通知部97と、ハード用通知部99と、を含む。
スナップショット決定部95は、起動要因検出部85から端子識別情報が入力されることに応じて、起動要因を決定し、決定された起動要因の起動要因識別情報をハード用通知部99に出力する。また、スナップショット決定部95は、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、決定された起動要因に対応するスナップショットのアドレス情報を通知部97に出力する。
具体的には、スナップショット決定部95は、パネル用コネクタ31のキー用端子の端子識別情報が入力される場合、起動要因識別情報「パネルキー」の起動要因を決定する。スナップショット決定部95は、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、決定された起動要因の起動要因識別情報「パネルキー」に対応するアドレス情報「アドレスA」に記憶されたスナップショットを決定し、アドレス情報「アドレスA」を通知部97に出力する。
スナップショット決定部95は、ADF用コネクタ32のスイッチ用端子の端子識別情報が入力される場合、起動要因識別情報「原稿セット」の起動要因を決定する。スナップショット決定部95は、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、決定された起動要因の起動要因識別情報「原稿セット」に対応するアドレス情報「アドレスB」に記憶されたスナップショットを決定し、アドレス情報「アドレスB」を通知部97に出力する。
スナップショット決定部95は、FAX用コネクタ33の着信通知用端子の端子識別情報が入力される場合、起動要因識別情報「ファクシミリ着信」の起動要因を決定する。スナップショット決定部95は、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、決定された起動要因の起動要因識別情報「ファクシミリ着信」に対応するアドレス情報「アドレスC」に記憶されたスナップショットを決定し、アドレス情報「アドレスC」を通知部97に出力する。
スナップショット決定部95は、通信用コネクタ34の受信通知用端子の端子識別情報が入力される場合、起動要因識別情報「データ受信」の起動要因を決定する。スナップショット決定部95は、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、決定された起動要因の起動要因識別情報「データ受信」に対応するアドレス情報「アドレスD」に記憶されたスナップショットを決定し、アドレス情報「アドレスD」を通知部97に出力する。
通知部97は、スナップショット決定部95からアドレス情報が入力されることに応じて、メインCPU11にスナップショットを通知する。具体的には、フラッシュメモリ23に記憶されているメインCPU11のブートプログラムにより定められたプログラムの読出しアドレスを、スナップショット決定部95から入力されるアドレス情報で書き換える。起動部89は、通知部97がブートプログラムを書き換えた後、電源制御部87に給電指示を出力するとともに、メインCPU11のリセット端子にリセット信号を出力する。給電指示は、起動要因の起動要因識別情報を含む。
ハード用通知部99は、フラッシュメモリ23に記憶されている起動要因テーブルを参照して、スナップショット決定部95から入力される起動要因識別情報で特定される起動要因に対応するハードウェア資源を決定し、決定されたハードウェア資源に起動指示を出力する。
具体的には、ハード用通知部99は、スナップショット決定部95から起動要因識別情報「パネルキー」が入力される場合、操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160それぞれに起動指示を出力する。ハード用通知部99は、スナップショット決定部95から起動要因識別情報「原稿セット」が入力される場合、操作パネル190、原稿読取部130、自動原稿搬送装置120およびHDD113それぞれに起動指示を出力する。ハード用通知部99は、スナップショット決定部95から起動要因識別情報「ファクシミリ着信」が入力される場合、画像形成部140、給紙部150およびファクシミリ部170それぞれに起動指示を出力する。ハード用通知部99は、スナップショット決定部95から起動要因識別情報「データ受信」が入力される場合、画像形成部140、給紙部150および通信I/F部160それぞれに起動指示を出力する。
電源制御部87は、電源制御回路17を制御して、メインCPU11、RAM21、フラッシュメモリ23、操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160、HDD113、外部記憶装置115に供給する電力を切り換えさせる。電源制御部87は、遮断制御部91と、電力復帰部93と、を含む。遮断制御部91は、動作モード検出部81から切換指示が入力されることに応じて、電源制御回路17に、メインCPU11、RAM21、フラッシュメモリ23、操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160、HDD113および外部記憶装置115に供給する電力を遮断させる。これにより、電源制御回路17は、メインCPU11、RAM21、フラッシュメモリ23、操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160、HDD113および外部記憶装置115に電力を供給しないので、電力の消費を低くすることができる。なお、起動用CPU13は、電源制御回路17から電力が供給されて駆動するが、動作モードが省電力モードに切り換えられる場合は、起動用CPU13で消費される電力が通常モードで消費される電力よりも小さくなる。
電力復帰部93は、起動部89から給電指示が入力されることに応じて、電源制御回路17に、メインCPU11、RAM21およびフラッシュメモリ23に電力を供給させる。これにより、メインCPU11、RAM21およびフラッシュメモリ23が駆動する。メインCPU11は、電源制御回路17から電力が供給され、起動用CPU13からリセット信号が入力されると、フラッシュメモリ23に記憶されたブートプログラムを実行する。このブートプログラムは、上述した通知部97によりプログラムの読出しアドレスが書き換えられているので、スナップショット決定部95によって決定されたスナップショット、換言すれば、起動要因に対応するスナップショットを、フラッシュメモリ23から読み出してRAM21に記憶する。
また、電力復帰部93は、給電指示に含まれる起動要因識別情報で特定される起動要因に対応するハードウェア資源を決定し、電源制御回路17に、決定されたハードウェア資源に電力を供給させる。電力復帰部93は、ハードウェア資源である操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160、HDD113および外部記憶装置115のうちから、フラッシュメモリ23に記憶されている起動要因テーブルを参照して、起動要因に対応するハードウェア資源を決定する。
具体的には、電力復帰部93は、給電指示に起動要因識別情報「パネルキー」が含まれる場合、操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160、HDD113、外部記憶装置115それぞれに、電源制御回路17を制御して電力を供給させる。
電力復帰部93は、給電指示に起動要因識別情報「原稿セット」が含まれる場合、操作パネル190、原稿読取部130、自動原稿搬送装置120およびHDD113それぞれに、電源制御回路17を制御して電力を供給させる。
電力復帰部93は、給電指示に起動要因識別情報「ファクシミリ着信」が含まれる場合、画像形成部140、給紙部150およびファクシミリ部170それぞれに、電源制御回路17を制御して電力を供給させる。
電力復帰部93は、給電指示に起動要因識別情報「データ受信」が含まれる場合、画像形成部140、給紙部150および通信I/F部160それぞれに、電源制御回路17を制御して電力を供給させる。
図9は、メイン起動制御処理の流れの一例を示すフローチャートである。メイン起動制御処理は、メインCPU11がメイン起動制御プログラムを実行することにより、メインCPU11により実行される処理である。メイン起動制御プログラムは、起動制御プログラムの一部である。図9を参照して、メインCPU11は、リセット信号が入力される(ステップS01)。ここでは、起動用CPU13がメインCPU11のリセット端子にリセット信号を出力する。メインCPU11は、リセット信号が入力されると、スナップショットをRAM21に記憶する。具体的には、メインCPU11は、フラッシュメモリ23に記憶されたブートプログラムを実行する。メインCPU11は、フラッシュメモリ23に記憶された複数のスナップショットのうちからブートプログラムにより定められるアドレス情報で特定されるスナップショットをフラッシュメモリ23から読出し、RAM21に記憶する。
次のステップS03においては、起動要因を受け付け、処理をステップS04に進める。ステップS01において、起動用CPU13からリセット信号が入力される場合、起動用CPU13によって起動要因が検出される場合であり、その起動要因を受け付ける。
ステップS04においては、起動要因が起動要因識別情報「パネルキー」または起動要因識別情報「原稿セット」のいずれかであるか否かを判断する。起動要因が起動要因識別情報「パネルキー」または起動要因識別情報「原稿セット」のいずれかならば処理をステップS05に進めるが、そうでなければ処理をステップS10に進める。
起動要因が起動要因識別情報「パネルキー」の場合に処理がステップS05に進む。この場合、ステップS02においてRAM21に記憶されたスナップショットは、操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160、HDD113および外部記憶装置115に電源制御回路17から電力が供給され、それらが駆動した状態でRAM21に記憶されたデータなので、メインCPU11は、操作パネル190に入力されるユーザーの操作を受け付け、受け付けられた操作に対応する処理を実行することができる。
起動要因が起動要因識別情報「原稿セット」の場合に処理がステップS05に進む。この場合、ステップS02においてRAM21に記憶されたスナップショットは、操作パネル190、原稿読取部130、自動原稿搬送装置120およびHDD113に電源制御回路17から電力が供給され、それらが駆動した状態でRAM21に記憶されたデータなので、メインCPU11は、操作パネル190に入力されるスキャンを指示する操作を受け付け、自動原稿搬送装置120にセットされた原稿を原稿読取部130で読み取った画像を、HDD113に記憶させる処理を実行することができる。
ステップS05においては、操作を受け付けたか否かを判断する。ユーザーが操作部196に入力する操作を受け付ける。操作を受け付けたならば処理をステップS06に進めるが、そうでなければ処理をステップS09に進める。ステップS06においては、受け付けられた操作に対応する処理を実行するためのハードウェア資源が起動しているか否かを判断する。ハードウェア資源が起動しているならば処理をステップS08に進めるが、そうでなければ処理をステップS07に進める。ステップS07においては、ハードウェア資源を起動し、処理をステップS08に進める。ステップS08においては、受け付けられた操作に従って処理を実行し、処理をステップS05に戻す。
ステップS09においては、操作を受け付けることなく所定時間が経過したか否かを判断する。操作を受け付けることなく所定時間が経過したならば処理をステップS12に進めるが、そうでなければ処理をステップS05に戻す。
ステップS10においては、起動要因に対応する処理を実行する。具体的には、ステップS03において起動要因識別情報「ファクシミリ着信」の起動要因が受け付けられる場合、ファクシミリを受信する処理を実行する。ステップS02においてRAM21に記憶されたスナップショットは、画像形成部140、給紙部150およびファクシミリ部170に電源制御回路17から電力が供給され、それらが駆動した状態でRAM21に記憶されたデータなので、メインCPU11は、画像形成部140、給紙部150およびファクシミリ部170を制御可能である。このため、メインCPU11は、ファクシミリ部170にファクシミリデータを受信させ、画像形成部140にファクシミリデータの画像を、給紙部150から供給される用紙に形成させることができる。
また、ステップS03において起動要因「データ受信」が受け付けられる場合、データを受信する処理を実行する。ステップS02においてRAM21に記憶されたスナップショットは、画像形成部140、給紙部150および通信I/F部160に電源制御回路17から電力が供給され、それらが駆動した状態でRAM21に記憶されたデータなので、メインCPU11は、画像形成部140、給紙部150および通信I/F部160を制御可能である。このため、メインCPU11は、通信I/F部160でデータを受信させることができ、受信されたデータがプリントデータならば、画像形成部140にプリントデータの画像を、給紙部150から供給される用紙に形成させることができる。
ステップS11においては、起動要因に対応する処理が終了したか否かを判断する。処理が終了するまで待機状態となり(ステップS11でNO)、処理が終了したならば(ステップS11でYES)、処理をステップS12に進める。ステップS12においては、動作モードを停止モードに切り換える。これにより、CPU11によって制御されるハードウェア資源で消費される電力が低減する。次のステップS13においては、切換信号を起動用CPU13に出力し、処理を終了する。
図10は、サブ起動制御処理の流れの一例を示すフローチャートである。サブ起動制御処理は、起動用CPU13がサブ起動制御プログラムを実行することにより、起動用CPU13により実行される処理である。サブ起動制御プログラムは、起動制御プログラムの一部である。
図10を参照して、起動用CPU13は、メインCPU11から切換信号が入力されたか否かを判断する(ステップS21)。切換信号が入力されるまで待機状態となり(ステップS21でNO)、切換信号が入力されると(ステップS21でYES)、処理をステップS22に進める。
ステップS22においては、電源を遮断する。具体的には、電源制御回路17に、メインCPU11、RAM21、フラッシュメモリ23、操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160、HDD113、外部記憶装置115に供給する電力を遮断させる。これにより、メインCPU11、RAM21、フラッシュメモリ23、操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160、HDD113、外部記憶装置115で消費される電力を低減することができる。
次のステップS23においては、動作モードを通常モードから省電力モードに切り換える。起動用CPU13は、動作モードが省電力モードに切り換えられた後は、動作モードが通常モードに切り換えられるまでの間、プログラムを実行しないいわゆるHALTモードで動作する。起動用CPU13は、省電力モードにおいては、パネル用コネクタ31のキー用端子、ADF用コネクタ32のスイッチ用端子、FAX用コネクタ33のファクシミリ着信通知用端子、通信用コネクタ34の受信通知用端子の電圧を検出する処理のみを実行する。このため、起動用CPU13は、省電力モードにおいて、消費電力を通常モードより小さくすることができる。
次のステップS24においては、起動要因を検出したか否かを判断する。起動要因を検出するまで待機状態となり(ステップS24でNO)、起動要因を検出したならば(ステップS24でYES)、処理をステップS25に進める。具体的には、パネル用コネクタ31のキー用端子の電圧がローからハイに変化する場合、起動要因識別情報「パネルキー」の起動要因を検出する。ADF用コネクタ32のスイッチ用端子の電圧がローからハイに変化する場合、起動要因「原稿セット」の起動要因を検出する。FAX用コネクタ33のファクシミリ着信通知用端子の電圧がローからハイに変化する場合、起動要因「ファクシミリ着信」の起動要因を検出する。通信用コネクタ34の受信通知用端子の電圧がローからハイに変化する場合、起動要因「データ受信」の起動要因を検出する。
ステップS25においては、動作モードを通常モードに切り換える。そして、メインCPU11、RAM21およびフラッシュメモリ23に電力を供給する(ステップS26)。具体的には、電源制御回路17を制御して、電源制御回路17に、メインCPU11、RAM21およびフラッシュメモリ23に電力を供給させる。
次のステップS27においては、起動要因に対応するハードウェア資源を決定する。ステップS24において検出された起動要因に対して、フラッシュメモリ23に記憶された起動要因テーブルを参照して、起動要因に対応するハードウェア資源を決定する。ステップS24において起動要因識別情報「パネルキー」の起動要因が検出される場合、ハードウェア資源として操作パネル190、原稿読取部130、画像形成部140、給紙部150、自動原稿搬送装置120、ファクシミリ部170、通信I/F部160、HDD113および外部記憶装置115を決定する。ステップS24において起動要因識別情報「原稿セット」の起動要因が検出される場合、ハードウェア資源として操作パネル190、原稿読取部130、自動原稿搬送装置120およびHDD113を決定する。また、ステップS24において起動要因識別情報「ファクシミリ着信」の起動要因が検出される場合、ハードウェア資源として画像形成部140、給紙部150およびファクシミリ部170を決定する。ステップS24において起動要因識別情報「データ受信」が受け付けられる場合、ハードウェア資源として画像形成部140、給紙部150および通信I/F部160を決定する。
ステップS28においては、ステップS27において決定されたハードウェア資源に電力を供給する。具体的には、電源制御回路を制御して、ハードウェア資源に電力を供給させる。そして、ステップS27において決定されたハードウェア資源に起動信号を出力し(ステップS29)、処理をステップS30に進める。
ステップS30においては、ステップS24において検出された起動要因に対応するスナップショットのアドレス情報を取得する。具体的には、フラッシュメモリ23に記憶されたスナップショット定義テーブルを参照して、ステップS24において検出された起動要因に対応するスナップショットがフラッシュメモリ23に記憶されている位置を示すアドレス情報を取得する。具体的には、起動要因識別情報「パネルキー」の起動要因が検出される場合はアドレス情報「アドレスA」を取得し、起動要因識別情報「原稿セット」が検出される場合はアドレス情報「アドレスB」を取得し、起動要因「ファクシミリ着信」が検出される場合はアドレス情報「アドレスC」を取得し、起動要因「データ受信」が検出される場合はアドレス情報「アドレスD」を取得する。
次のステップS31においては、メインCPU11のブートプログラムのアドレス情報を書き換える。具体的には、フラッシュメモリ23に記憶されているメインCPU11のブートプログラムに定められたプログラムの読出しアドレスを、ステップS30において取得されたアドレス情報で書き換える。そして、メインCPU11のリセット端子にリセット信号を出力し(ステップS32)、処理をステップS21に戻す。
なお、本実施の形態において、スナップショット取得部51を、メインCPU11に設けるようにしたが、起動用CPU13に設けるようにしてもよい。
<変形例>
上述した実施の形態におけるMFP100においては、メインCPU11は、MFP100にインストールされた全てのプログラムをRAM21にロードした後に、複数の状態ごとに生成する。変形例におけるMFP100においては、所定の状態において、MFP100にインストールされたプログラムの一部をRAM21にロードして、スナップショットを生成する点で異なる。
変形例におけるMFP100において、メインCPU11は、フラッシュメモリ23に記憶された複数のプログラムのうちから1以上のプログラムをRAM21にロードして実行する。メインCPU11は、フラッシュメモリ23に記憶された複数のプログラムのすべてをRAM21にロードして実行することも可能である。フラッシュメモリ23に記憶される複数のプログラムは、複数のハードウェア資源それぞれを制御するハードウェア制御プログラム、MFP100の全体を制御するための全体制御プログラムを、含む。ハードウェア制御プログラムは、操作パネル190を制御するためのパネル制御プログラム、原稿読取部130を制御するためのスキャナ制御プログラム、画像形成部140を制御するためのエンジン制御プログラム、給紙部150を制御するための搬送制御プログラム、自動原稿搬送装置120を制御するためのADF制御プログラム、ファクシミリ部170を制御するためのファクシミリ制御プログラム、通信I/F部160を制御するための通信制御プログラムを含む。ここでは、HDD113および外部記憶装置115を制御するプログラムが、全体制御プログラムに含まれている。
図11は、変形例におけるメインCPUが有する機能の一例を示すブロック図である。図11を参照して、図4に示した機能と異なる点は、追加ロード部57が追加された点、スナップショット生成部61がスナップショット生成部61Aに変更された点である。その他の機能は、図4に示した機能と同じなので、ここでは説明を繰り返さない。
スナップショット生成部61Aは、複数の起動要因ごとに、当該起動要因に対して定められた1以上のプログラムをRAM21にロードする。これにより、RAM21に、起動要因に対して定められた1以上のプログラムに対応する実行プログラムが記憶される。スナップショット生成部61Aは、RAM21に記憶された実行プログラムをイメージデータであるスナップショットとしてフラッシュメモリ23に記憶する。このため、スナップショット生成部61Aは、複数の起動要因にそれぞれ対応する複数のスナップショットをフラッシュメモリ23に記憶する。スナップショット生成部61Aは、起動要因と、その起動要因に対応してフラッシュメモリ23に記憶したスナッショットのフラッシュメモリ23中のアドレスとを、関連付部63に出力する。
具体的には、フラッシュメモリ23に起動要因とプログラムとを関連付けた起動要因テーブルが予め記憶されており、スナップショット生成部61は、起動要因テーブルを参照して、スナップショットをフラッシュメモリ23に記憶する。
図12は、変形例における起動要因テーブルの一例を示す図である。図12を参照して、変形例における起動要因テーブルは、複数の起動要因ごとに起動要因レコードを含む。起動要因レコードは、起動要因の項目と、ハードウェア資源の項目と、プログラムの項目とを含む。起動要因の項目は、起動要因を識別するための起動要因識別情報が設定され、ハードウェア資源の項目は、ハードウェア資源を識別するためのハードウェア識別情報が設定され、プログラムの項目は、プログラムを識別するためのプログラム識別情報が設定される。
起動要因の項目に起動要因識別情報「パネルキー」が設定された起動要因レコードは、ハードウェア資源の項目に、ハードウェア識別情報「操作パネル」、「原稿読取部」、「画像形成部」、「給紙部」、「自動原稿搬送装置」、「ファクシミリ部」、「通信I/F部」、「HDD」および「外部記憶装置」が設定され、プログラムの項目に、プログラム識別情報「パネル制御プログラム」、「スキャナ制御プログラム」、「エンジン制御プログラム」、「搬送制御プログラム」、「ADF制御プログラム」、「ファクシミリ制御プログラム」、「通信制御プログラム」および「全体制御プログラム」が設定される。起動要因識別情報「パネルキー」が設定された起動要因レコードは、プログラムの項目に、MFP100にインストールされている全てのプログラムのプログラム識別情報を含む。換言すれば、起動要因識別情報「パネルキー」の起動要因に対して、MFP100にインストールされている全てのプログラムが関連付けられる。
起動要因の項目に起動要因識別情報「原稿セット」が設定された起動要因レコードは、ハードウェア資源の項目に、ハードウェア識別情報「操作パネル」、「原稿読取部」、「自動原稿搬送装置」、「ファクシミリ部」、「通信I/F部」および「HDD」が設定され、プログラムの項目に、プログラム識別情報「パネル制御プログラム」、「スキャナ制御プログラム」、「ADF制御プログラム」および「全体制御プログラム」が設定される。
起動要因の項目に起動要因識別情報「ファクシミリ着信」が設定された起動要因レコードは、ハードウェア資源の項目に、ハードウェア識別情報「画像形成部」、「給紙部」および「ファクシミリ部」が設定され、プログラムの項目に、プログラム識別情報「エンジン制御プログラム」、「搬送制御プログラム」、「ファクシミリ制御プログラム」および「全体制御プログラム」が設定される。
起動要因の項目に起動要因識別情報「データ受信」が設定された起動要因レコードは、ハードウェア資源の項目に、ハードウェア識別情報「画像形成部」、「給紙部」、「通信I/F部」が設定され、プログラムの項目に、プログラム識別情報「エンジン制御プログラム」、「搬送制御プログラム」、「通信制御プログラム」および「全体制御プログラム」が設定される。
図11に戻って、スナップショット生成部61Aは、RAM21をリセットして、スナップショット生成部61Aに対応するスナップショット生成プログラムのみをRAM21にロードする。例えば、フラッシュメモリ23にスナップショット生成プログラムを記憶しておき、フラッシュメモリ23に記憶されているブートプログラムに定められたプログラムの読出しアドレスを、スナップショット生成プログラムが記憶されているアドレスに変更した後に、RAM21およびCPU11をリセットする。CPU11がリセットされる段階では、メインCPU11にスナップショット生成部61AのみがメインCPU11に形成される。
スナップショット生成部61Aは、フラッシュメモリ23に記憶された起動要因テーブルから起動要因レコードを読出し、読み出した起動要因レコードのプログラムの項目に設定されたプログラムのみをRAM21にロードする。スナップショット生成部61Aが起動要因テーブルに含まれる複数の起動要因レコードのうちから読み出す起動要因レコードを決定する処理は、後述する。そして、RAM21に記憶されているデータをイメージデータであるスナップショットとして、フラッシュメモリ23に記憶する。スナップショット生成部61Aは、読み出した起動要因レコードの起動要因の項目に設定された起動要因識別情報で識別される起動要因と、フラッシュメモリ23に記憶されたスナップショットのフラッシュメモリ23中の位置を示すアドレス情報との組を、関連付部63に出力する。
スナップショット生成部61Aは、フラッシュメモリ23に記憶されたスナップショット定義テーブルと起動要因テーブルとを参照して、スナップショット定義テーブルに含まれる1以上のスナップショット定義レコードのいずれにも設定されていない起動要因の起動要因識別情報が、起動要因の項目に設定された起動要因レコードを、起動要因テーブルから読出す。
起動要因テーブルは、MFP100にハードウェア資源が追加、または削除される場合に変更される。スナップショット生成部61Aは、MFP100に新たなハードウェア資源が追加または削除される場合に、スナップショットを生成し、フラッシュメモリ23に記憶する。具体的には、スナップショット生成部61Aは、MFP100に新たなハードウェア資源が追加または削除される場合に、スナップショット定義テーブルを初期化した後に、フラッシュメモリ23に記憶されたスナップショット定義テーブルと起動要因テーブルとを参照して、スナップショット定義テーブルに含まれる1以上のスナップショット定義レコードのいずれにも設定されていない起動要因の起動要因識別情報が、起動要因の項目に設定された起動要因レコードを、起動要因テーブルから読出し、読み出した起動要因レコードのプログラムの項目に設定されたプログラムのみをRAM21にロードすることによって、スナップショットをフラッシュメモリ23に記憶する。
なお、スナップショット取得部51は、予め定められたサーバーからスナップショットをダウンロードするようにしてもよい。この場合、スナップショット生成部61Aは、不要である。サーバーには、MFP100が備えるメインCPU11と同じ機種に対応する複数のスナップショットを起動要因と関連付けて予め記憶している。スナップショット取得部51は、サーバーから起動要因とその起動要因に対応するスナップショットの組を、起動要因の数だけダウンロードし、ダウンロードされた複数の組にそれぞれ含まれる複数のスナップショットをフラッシュメモリ23に記憶する。スナップショット取得部51は、起動要因と、フラッシュメモリ23に記憶されたスナップショットのフラッシュメモリ23中の位置を示すアドレス情報との組を、関連付部63に出力する。関連付部63は、起動要因とアドレス情報との組が入力されることに応じて、スナップショット定義レコードを生成し、スナップショット定義レコードを、フラッシュメモリ23に記憶されているスナップショット定義テーブルに追加して記憶する。
以下、図6に示したスナップショット定義テーブルがフラッシュメモリ23に記憶される場合を例に説明する。
復帰部55は、起動用CPU13により起動さると、フラッシュメモリ23に記憶されている1以上のスナップショットのうち、起動要因に関連付けられたスナップショットをフラッシュメモリ23から読出し、読み出したスナップショットをRAM21に記憶する。復帰部55は、スナップショットをRAM21に記憶した後、起動完了信号をメインモード切換部53に出力する。
具体的には、復帰部55は、電源制御回路17から電力が供給された後、起動用CPU13からリセット信号が入力されると、フラッシュメモリ23に記憶されたブートプログラムを実行する。このブートプログラムは、フラッシュメモリ23に記憶された1以上のスナップショットのいずれかのフラッシュメモリ23中の位置を示すアドレス情報を定める。ブートプログラムにより定められるスナップショットのアドレス情報は、起動用CPU13によって書き換えられる。このため、復帰部55は、ブートプログラムにより定められるアドレス情報で特定されるスナップショットを、フラッシュメモリ23から読出し、RAM21に記憶する。これにより、RAM21に、スナップショットが実行プログラムとして記憶されるので、CPU11は、実行プログラムを実行可能な状態になる。
復帰部55は、スナップショットをRAM21に記憶した後、起動完了信号をメインモード切換部53および追加ロード部57に出力する。
追加ロード部57は、RAM21にロードしたスナップショットがMFP100にインストールされている全てのプログラムでない場合であって、ユーザーがMFP100を直接操作する起動要因の場合、ここでは、RAM21にロードしたスナップショットが起動要因識別情報「原稿セット」の起動要因に対応するスナップショットの場合、復帰部55から起動完了信号が入力された後に、操作パネル190によって所定の操作が受け付けられることに応じて、RAM21に記憶されたスナップショットに含まれない残りのプログラムをRAM21にロードする。これにより、ユーザーは、スナップショットに含まれないプログラムに基づく処理を、MFP100に実行させることができる。
所定の操作は、起動していないハードウェア資源を用いる処理を実行させるための操作である。例えば、所定の操作は、原稿を読み取って得られる画像データの画像を、画像形成部140に形成させる操作、原稿を読み取って得られる画像データを、通信I/F部160に送信させる操作、原稿を読み取って得られる画像データを、ファクシミリ部170にファクシミリ送信させる操作を含む。
図13は、変形例におけるメイン起動制御処理の流れの一例を示すフローチャートである。図13を参照して、変形例におけるメイン起動制御処理が図9に示したメイン起動制御処理と異なる点は、ステップS07の後に、ステップS07Aが追加された点である。その他の処理は、図9に示したメイン起動制御処置と同じなので、ここでは説明を繰り返さない。メインCPU11は、ステップS07Aにおいて、RAM21に記憶されたスナップショットに含まれないプログラムをフラッシュメモリ23から読み出してRAM21にロードし、処理をステップS08に進める。これにより、メインCPU11が、ステップS07において電力が供給されたハードウェア資源を制御可能になるので、ステップS05において受け付けられた操作に対応する処理を実行することができる。
変形例におけるMFP100は、起動要因が起動要因識別情報「原稿セット」、「ファクシミリ着信」および「データ受信」のいずれかの場合に、MFP100にインストールされたプログラムの全部でなく一部を含むスナップショットをRAM21に展開する。MFP100にインストールされたプログラムの一部のスナップショットは、MFP100にインストールされたプログラムの全部のスナップショットに比較してデータ量が少ない。このため、起動要因が起動要因識別情報「原稿セット」、「ファクシミリ着信」および「データ受信」のいずれかの場合は、フラッシュメモリ23からRAM21にスナップショットを展開する時間をできるだけ短くすることができる。
また、メインCPU11は、起動要因に基づく処理を実行した後、複数のプログラムのうちRAM21に記憶されたスナップショットに含まれていない残りの1以上のプログラムをRAM21にロードする。このため、起動要因に基づく処理を実行した後、起動要因に基づく処理以外の処理を実行することができる。
以上説明したように本実施の形態におけるMFP100は、画像形成装置として機能し、フラッシュメモリ23に、複数の起動要因ごとに、起動要因と関連付けられた1以上のハードウェア資源に電力が供給された状態でRAM21に記憶されたデータであるスナップショットを記憶しており、起動用CPU13は、メインCPU11およびRAM21に電力が供給されていない間に、複数の起動要因のいずれかを検出することに応じて、メインCPU11を起動し、メインCPU11によって動作モードが停止モードに切り換えられることに応じて、メインCPU11およびRAM21に供給される電力を遮断する。このため、メインCPU11およびRAM21によって電力が消費されないようにして消費電力を低減することができる。
また、複数の起動要因それぞれに複数のハードウェア資源の1以上が関連付けられており、複数の起動要因のいずれかが検出されることに応じて、複数のハードウェア資源のうち起動要因に関連付けられた1以上のハードウェア資源に電力が供給され、メインCPU11は、起動要因に関連付けられたスナップショットをフラッシュメモリ23から読出してRAM21に記憶する。このため、起動要因に関連付けられた1以上のハードウェア資源に電力が供給されるので、電力が供給されるハードウェア資源をできるだけ少なくして消費電力を低減することができる。
また、メインCPU11は、起動要因に関連付けられた1以上のハードウェア資源のみが起動する状態で、RAM21に記憶されているデータをスナップショットとするので、起動要因が検出される場合に電力が供給されるハードウェア資源に対応したスナップショットをRAM21に記憶させることができる。
また、メインCPU11は、フラッシュメモリ23にスナップショットが記憶されていない場合、また、フラッシュメモリ23にスナップショットが記憶されている場合には新たなハードウェア資源が追加されて起動要因テーブルが変更される場合に、スナップショットを生成する。このため、新たなハードウェア資源が追加される場合において、起動時に消費される電力を低減することができる。
また、メインCPU11は、スナップショットをRAM21に展開し、複数のハードウェア資源それぞれが備えるCPUは、ハード用スナップショットをRAMに展開するので、メインCPU11は、複数のハードウェア資源それぞれを制御するための初期化処理を実行する必要がないので、停止している状態から処理を実行可能になるまでの時間を短くすることがきる。
また、メインCPU11は、起動要因により定まる処理を実行した後、動作モードを停止モードに切り換えるので、消費電力をさらに低減することができる。
また、起動用CPU13は、パネル用コネクタ31のキー用端子、ADF用コネクタ32のスイッチ用端子、FAX用コネクタ33の着信通知用端子、通信用コネクタ34の受信通知用端子のいずれかの電圧がローからハイに変化することに応じて、起動要因を検出する。このため、起動要因を容易に検出することができる。また、起動用CPU13の消費電力を低減することができる。
また、起動用CPU13は、通常モードと消費電力が通常モードより低い省電力モードとのいずれかに動作モードを切り換え可能であり、メインCPU11の動作モードが停止モードに切り換えられることに応じて、動作モードを省電力モードに切り換え、省電力モードにおいて、起動要因が検出されることに応じて、動作モードを通常モードに切り換える。このため、メインCPU11が停止してから起動要因が検出されるまでの間の消費電力をさらに低減することができる。
また、変形例におけるMFP100においては、複数の起動要因ごとに、メインCPU11が実行可能な複数のプログラムのうち起動要因に対応する1以上のプログラムをRAM21にロードした実行プログラムを含むスナップショットをフラッシュメモリ23に記憶する。このため、スナップショットのサイズを小さくすることができ、RAM21にスナップショットを展開する時間が短くなるので、停止している状態から処理を実行可能になるまでの時間を短くすることができる。
さらに、メインCPU11は、起動要因に基づく処理を実行した後、RAM21にロードしていない残りの1以上のプログラムをRAM21にロードするので、起動要因に基づく処理以外の処理を実行することができる。
図14は、変形例における変更後の起動要因テーブルの一例を示す図である。図14に示す起動要因テーブルは、フィニッシャのハードウェア資源が追加される場合に、図12に示した変形例における起動要因テーブルを変更した後の起動要因テーブルを示している。
なお、上述した実施の形態においては、画像形成装置の一例としてMFP100について説明したが、図9または図13に示したメイン起動制御処理をメインCPU11に実行させ、図10に示したサブ起動制御処理を起動用CPU13に実行させる起動制御方法として、また、図9または図13に示したメイン起動制御処理をメインCPU11に実行させ、図10に示したサブ起動制御処理を起動用CPU13に実行させる起動制御プログラムとして、発明を捉えることができるのは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
<付記>
(1) 前記電力復帰手段は、前記起動手段により前記メイン制御手段が起動される前に、前記メイン制御手段、および前記第1の記憶手段に電力を供給する、請求項1〜4のいずれかに記載の画像形成装置。
(2) 前記電力復帰手段は、前記起動手段により前記1以上のハードウェア資源が起動される前に、前記1以上のハードウェア資源に電力を供給する、請求項5に記載の画像形成装置。