以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図1は、本実施の形態の一つにおけるMFPの外観を示す斜視図である。図1を参照して、MFP100は、画像形成装置の一例であり、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、ユーザーインターフェースとしての操作パネル115とを含む。
自動原稿搬送装置120は、原稿給紙トレイ上にセットされた複数枚の原稿を1枚ずつ自動的に原稿読取部130のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部130により原稿画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部130は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部140に出力する。給紙部150は、複数の給紙トレイを有する。複数の給紙トレイそれぞれは、予め定められたサイズの用紙を収納する。給紙部150は、複数の給紙トレイのうち画像形成に用いるサイズの用紙を収納する給紙トレイから用紙を1枚ずつ取り出し、取り出した用紙を画像形成部140に搬送する。
画像形成部140は、周知の電子写真方式により画像を形成するものであって、原稿読取部130から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部150により搬送される用紙に画像を形成する。MFP100は、画像形成部140の前面に開閉可能な前面扉140Aを有する。前面扉140Aを開閉することにより、画像形成部140が外部に露出する。
操作パネル115は、MFP100の上面に設けられ、操作画面等を表示するとともに、ユーザーによる操作を受け付けるユーザーインターフェースとして機能する。
図2は、MFPのハードウェア構成の概要の一例を示すブロック図である。図2を参照して、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は、ネットワークに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)に接続され、ファクシミリデータを送受信する。外部記憶装置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に出力する。センサー部117は、前面扉140Aの開閉を検出するセンサー、給紙部150が有する複数の給紙トレイの開閉を検出するセンサー、用紙の残量を検出する残量検出センサー、用紙の搬送経路を外部に露出するための前面扉の開閉を検出するセンサー、用紙の搬送経路中に設けられた用紙の詰まりを検出するジャムセンサーを、含む。
図3は、メイン基板の詳細な構成の一例を示すブロック図である。図3を参照して、メイン基板111は、メインCPU11と、起動用CPU13と、エンジン制御ASIC(Application Specific Integrated Circuit)15と、電源制御回路17と、RAM21と、フラッシュメモリ23と、コネクタ31〜38と、を含む。
RAM21は、メインCPU11の作業領域として用いられる揮発性の半導体メモリーである。フラッシュメモリ23は、メインCPU11または起動用CPU13により制御される不揮発性の半導体メモリーである。
パネル用コネクタ31は、操作パネル115と接続される。操作パネル115が備える操作部119は、ユーザーが操作部119に操作を入力すると、入力された操作を検出し、検出した操作を識別するための操作識別情報をパネル用コネクタ31に出力する。ユーザーが操作部119に出力する操作は、操作部119が備える複数のハードキーを押下する操作と、タッチパネルを指示する操作と、を含む。操作部119は、複数のハードキーのいずれかが押下されると、押下されたハードキーのキー識別情報を含む操作識別情報を、パネル用コネクタ31に出力する。また、操作部119は、タッチパネルが指示されると、指示された位置を示す位置情報を含む操作識別情報をパネル用コネクタ31に出力する。また、操作部119は、パネル用コネクタ31に操作識別情報を出力する場合、パネル用コネクタ31が有する複数の端子のうち予め定められた起動用端子の電圧をローからハイに変更する。さらに、操作部119は、複数のハードキーのうち予め定められた特定キーが押下される場合、パネル用コネクタ31が有する複数の端子のうち、特定キーに対応して予め定められた特定端子の電圧をローからハイに変更する。特定キーは、1以上あればよい。特定キーは、本実施の形態においては、メンテナンスキーと、状態確認キーである。以下、メンテナンスキーに対応する特定端子をメンテナンス端子といい、状態確認キーに対応する特定端子を状態確認端子という。
センサー用コネクタ32は、センサー部117と接続される。センサー部117は、複数のセンサーの出力を検出し、複数のセンサー各々の出力の状態を示す信号をセンサー用コネクタ32に出力する。また、センサー部117は、複数のセンサーのうち予め定められた特定センサーの状態がOFFからONに変化する場合、センサー用コネクタ32が有する複数の端子のうち、特定センサーに対応して予め定められた特定端子の電圧をローからハイに変更する。特定センサーは、本実施の形態においては、前面扉140Aの開閉を検出するセンサー、および給紙部150が有する複数の給紙トレイ各々の開閉を検出するセンサーである。以下、前面扉140Aの開閉を検出するセンサーおよび給紙部150が有する複数の給紙トレイ各々の開閉を検出するセンサーに対応する特定端子を開閉端子という。前面扉140Aの開閉を検出するセンサーおよび複数の給紙トレイ各々の開閉を検出する複数のセンサーに対して開閉端子は1つである。センサー部117は、前面扉140Aの開閉を検出するセンサーが前面扉140Aの開を示すONを検出する場合、または、複数の給紙トレイ各々の開閉を検出する複数のセンサーのいずれかが給紙トレイの開を示すONを検出する場合、開閉端子の電圧をローからハイに変更する。
FAX用コネクタ33は、ファクシミリ部170と接続される。ファクシミリ部170は、ファクシミリデータを受信する場合、FAX用コネクタ33に受信されたファクシミリデータを出力する。ファクシミリ部170は、FAX用コネクタ33から入力されるファクシミリデータを送信する。ファクシミリ部170は、ファクシミリデータを受信する場合、FAX用コネクタ33が有する複数の端子のうち予め定められたファクシミリ通知用端子の電圧をローからハイに変更する。
通信用コネクタ34は、通信I/F部160と接続される。通信I/F部160は、外部からMFP100宛てのデータを受信する場合、通信用コネクタ34に受信されたデータを出力する。通信I/F部160は、通信用コネクタ34から入力されるデータを送信する。通信I/F部160は、外部からプリントジョブを受信する場合、通信用コネクタ34が有する複数の端子のうち予め定められたジョブ通知用端子の電圧をローからハイに変更する。
HDD用コネクタ35は、HDD113と接続され、外部用コネクタ36は外部記憶装置180と接続される。
メインCPU11は、フラッシュメモリ23にアクセス可能であり、フラッシュメモリ23に記憶されたデータの読出し、または、フラッシュメモリ23にデータを書き込み可能である。特に、メインCPU11は、フラッシュメモリ23に記憶された複数のプログラムのうちから1以上のプログラムをRAM21にロードして実行する。メインCPU11は、フラッシュメモリ23に記憶された複数のプログラムのすべてをRAM21にロードして実行することも可能である。フラッシュメモリ23に記憶される複数のプログラムは、ファクシミリデータを送信するファクシミリ送信プログラム、ファクシミリデータを受信するファクシミリ受信プログラム、プリントジョブを受信するプリントジョブ受信プログラム、画像データをプリントする画像形成プログラム、原稿読取部130を制御して原稿を読み取る原稿読取プログラム、MFP100が備える消耗品を管理するメンテナンスプログラム、エラー状態を通知するエラー状態通知プログラム、複数のハードウェア資源をそれぞれ制御する複数のハードウェア制御プログラムを、含む。複数のハードウェア資源は、操作パネル115、センサー部117、ファクシミリ部170、通信I/F部160、HDD113、外部記憶装置180およびエンジン制御ASIC15を含む。
メインCPU11は、パネル用コネクタ31を介して操作パネル115と接続される。メインCPU11は、ハードウェア制御プログラムのうち操作パネル115を制御するパネル制御プログラムを実行することにより、操作パネル115を制御する。メインCPU11は、センサー用コネクタ32を介してセンサー部117と接続される。メインCPU11は、ハードウェア制御プログラムのうちセンサー部117を制御するセンサー制御プログラムを実行することにより、センサー部117を制御する。メインCPU11は、FAX用コネクタ33を介してファクシミリ部170と接続される。メインCPU11は、ハードウェア制御プログラムのうちファクシミリ部170を制御するファクシミリ制御プログラムを実行することにより、ファクシミリ部170を制御する。メインCPU11は、通信用コネクタ34を介して通信I/F部160と接続される。メインCPU11は、ハードウェア制御プログラムのうち通信I/F部160を制御する通信制御プログラムを実行することにより、通信I/F部160を制御する。メインCPU11は、HDD用コネクタ35を介してHDD113と接続される。メインCPU11は、ハードウェア制御プログラムのうちHDD113を制御するHDD制御プログラムを実行することにより、HDD113を制御する。メインCPU11は、外部用コネクタ36を介して外部記憶装置180と接続される。メインCPU11は、ハードウェア制御プログラムのうち外部記憶装置180を制御する外部装置制御プログラムを実行することにより、外部記憶装置180を制御する。メインCPU11は、エンジン制御ASIC15と接続され、ハードウェア制御プログラムのうちASIC15を制御するASIC制御プログラムを実行することにより、エンジン制御ASIC15を制御する。
起動用CPU13は、パネル用コネクタ31の起動用端子と接続され、起動用端子の電圧がローからハイに変化することに応じて起動要因を検出する。また、起動用CPU13は、パネル用コネクタ31のメンテナンス端子および状態確認端子と接続され、メンテナンス端子および状態確認端子のいずれかの電圧がローからハイに変化することに応じて起動要因を検出する。
起動用CPU13は、メインCPU11が駆動していない状態で起動要因を検出することに応じて、メインCPU11を起動する。具体的には、起動用CPU13は、起動用CPU13のリセット端子と接続され、リセット端子にリセット信号を出力することにより、起動用CPU13を起動する。起動用CPU13は、フラッシュメモリ23にアクセス可能であり、フラッシュメモリ23に記憶されたデータの読出し、または、フラッシュメモリ23にデータを書き込み可能である。
起動用CPU13は、センサー用コネクタ32の開閉端子と接続され、開閉端子の電圧がローからハイに変化することに応じて起動要因を検出する。起動用CPU13は、FAX用コネクタ33のファクシミリ通知用端子と接続され、ファクシミリ通知用端子の電圧がローからハイに変化することに応じて起動要因を検出する。起動用CPU13は、通信用コネクタ34のジョブ通知用端子と接続され、ジョブ通知用端子の電圧がローからハイに変化することに応じて起動要因を検出する。
エンジン制御ASIC15は、エンジン用コネクタ37を介して自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150と接続される。エンジン制御ASIC15は、メインCPU11により制御され、自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150を制御する。また、エンジン制御ASIC15は、原稿読取部130が原稿を読み取って出力する画像データに所定の画像処理を実行する機能、画像データを画像形成部140がプリントするためのラスターデータに変換する機能を有する。
電源制御回路17は、電源コネクタ38を介して商用電源と接続される。電源制御回路17は、商用電源から供給される電力を、メインCPU11、エンジン制御ASIC15、起動用CPU13、RAM21およびフラッシュメモリ23に供給する。電源制御回路17は、起動用CPU13により制御され、メインCPU11、エンジン制御ASIC15、RAM21およびフラッシュメモリ23に電力を供給する状態と、それらに電力を供給しない状態とに切り換える。
図4は、メインCPUが有する機能の一例を示すブロック図である。図4に示す機能は、メインCPU11がメイン起動制御プログラムを実行することにより、メインCPU11に形成される機能である。メイン起動制御プログラムは、起動制御プログラムの一部である。図4を参照して、メインCPU11は、スナップショット取得部51と、メインモード切換部53と、復帰部55と、を含む。
スナップショット取得部51は、スナップショットを取得する。スナップショットは、CPU11がフラッシュメモリ23に記憶された複数のプログラムのうち1以上のプログラムをRAM21にロードした状態において、RAM21に記憶されたデータである。スナップショット取得部51は、スナップショット生成部61と、関連付部63と、を含む。
スナップショット生成部61は、複数の起動要因ごとに、当該起動要因に対して定められた1以上のプログラムをRAM21にロードする。これにより、RAM21に、起動要因に対して定められた1以上のプログラムに対応する実行プログラムが記憶される。RAM21に記憶された実行プログラムをイメージデータであるスナップショットとしてフラッシュメモリ23に記憶する。このため、スナップショット生成部61は、複数の起動要因にそれぞれ対応する複数のスナップショットをフラッシュメモリ23に記憶する。スナップショット生成部61は、起動要因と、その起動要因に対応してフラッシュメモリ23に記憶したスナッショットのフラッシュメモリ23中のアドレスとを、関連付部63に出力する。
具体的には、フラッシュメモリ23に起動要因とプログラムとを関連付けたプログラム定義テーブルが予め記憶されており、スナップショット生成部61は、プログラム定義テーブルを参照して、スナップショットをフラッシュメモリ23に記憶する。
図5は、プログラム定義テーブルの一例を示す図である。図5を参照して、プログラム定義テーブルは、複数の起動要因ごとにプログラム定義レコードを含む。プログラム定義レコードは、起動要因の項目と、プログラムの項目とを含む。起動要因の項目に「メンテナンスキー」が設定されたプログラム定義レコードは、プログラムの項目に、「メンテナンスプログラム」、「HDD制御プログラム」、「パネル制御プログラム」が設定される。起動要因の項目に「状態確認キー」が設定されたプログラム定義レコード、および、起動要因の項目に「前面扉状OR給紙トレイ開」が設定されたプログラム定義レコードは、プログラムの項目に、「エラー状態通知プログラム」、「センサー制御プログラム」、「パネル制御プログラム」が設定される。起動要因の項目に「ファクシミリ受信」が設定されたプログラム定義レコードは、プログラムの項目に、「ファクシミリ受信プログラム」、「ファクシミリ制御プログラム」、「画像形成プログラム」、「ASIC制御プログラム」が設定される。起動要因の項目に「プリントジョブ受信」が設定されたプログラム定義レコードは、プログラムの項目に、「プリントジョブ受信プログラム」、「通信制御プログラム」、「画像形成プログラム」、「ASIC制御プログラム」が設定される。起動要因の項目に「その他」が設定されたプログラム定義レコードは、プログラムの項目に、「全プログラム」が設定される。
図4に戻って、スナップショット生成部61は、RAM21をリセットして、スナップショット生成部61に対応するスナップショット生成プログラムのみをRAM21にロードする。例えば、フラッシュメモリ23にスナップショット生成プログラムを記憶しておき、フラッシュメモリ23に記憶されているブートプログラムに定められたプログラムの読出しアドレスを、スナップショット生成プログラムが記憶されているアドレスに変更した後に、RAM21およびCPU11をリセットする。CPU11がリセットされる段階では、メインCPU11にスナップショット生成部61のみがメインCPU11に形成される。
スナップショット生成部61は、フラッシュメモリ23に記憶されたプログラム定義テーブルからプログラム定義レコードを読出し、読み出したプログラム定義レコードのプログラムの項目に設定されたプログラムのみをRAM21にロードする。スナップショット生成部61がプログラム定義テーブル含まれる複数のプログラム定義レコードのうちから読み出すプログラム定義レコードを決定する処理は、後述する。そして、RAM21に記憶されているデータをイメージデータであるスナップショットとして、フラッシュメモリ23に記憶する。スナップショット生成部61は、読み出したプログラム定義レコードの起動要因の項目に設定された起動要因と、フラッシュメモリ23に記憶されたスナップショットのフラッシュメモリ23中の位置を示すアドレス情報との組を、関連付部63に出力する。
関連付部63は、スナップショット生成部61から起動要因とアドレス情報との組が入力されることに応じて、スナップショット定義レコードを生成し、スナップショット定義レコードを、フラッシュメモリ23に記憶されているスナップショット定義テーブルに追加して記憶する。スナップショット定義レコードは、起動要因の項目とアドレス情報の項目とを含む。起動要因の項目は、起動要因が設定され、アドレス情報の項目には、その起動要因に対応するスナップショットが記憶されているフラッシュメモリ23中の位置を示すアドレス情報が設定される。
スナップショット生成部61は、フラッシュメモリ23に記憶されたスナップショット定義テーブルとプログラム定義テーブルとを参照して、スナップショット定義テーブルに含まれる1以上のスナップショット定義レコードのいずれにも設定されていない起動要因が、起動要因の項目に設定されたプログラム定義レコードを、プログラム定義テーブルから読出す。
なお、スナップショット取得部51は、予め定められたサーバーからスナップショットをダウンロードするようにしてもよい。この場合、スナップショット生成部61は、不要である。サーバーには、MFP100が備えるCPU11と同じ機種に対応する複数のスナップショットを起動要因と関連付けて予め記憶している。スナップショット取得部51は、サーバーから起動要因とその起動要因に対応するスナップショットの組を、起動要因の数だけダウンロードし、ダウンロードされた複数の組にそれぞれ含まれる複数のスナップショットをフラッシュメモリ23に記憶する。スナップショット取得部51は、起動要因と、フラッシュメモリ23に記憶されたスナップショットのフラッシュメモリ23中の位置を示すアドレス情報との組を、関連付部63に出力する。関連付部63は、起動要因とアドレス情報との組が入力されることに応じて、スナップショット定義レコードを生成し、スナップショット定義レコードを、フラッシュメモリ23に記憶されているスナップショット定義テーブルに追加して記憶する。
図6は、スナップショット定義テーブルの一例を示す図である。図6を参照して、スナップショット定義テーブルは、複数の起動要因ごとにスナップショット定義レコードを含む。スナップショット定義レコードは、起動要因の項目と、アドレス情報の項目とを含む。起動要因の項目は、起動要因が設定され、アドレス情報の項目には、その起動要因に対応するスナップショットが記憶されているフラッシュメモリ23中の位置を示すアドレス情報が設定される。起動要因の項目に「メンテナンスキー」が設定されたスナップショット定義レコードは、アドレス情報の項目に「アドレスA」が設定される。フラッシュメモリ23のアドレスAで特定される位置に記憶されるスナップショットは、「メンテナンスプログラム」、「HDD制御プログラム」、「パネル制御プログラム」を含み、それら以外のプログラムを含まない。
起動要因の項目に「状態確認キー」が設定されたスナップショット定義レコード、および、起動要因の項目に「前面扉状OR給紙トレイ開」が設定されたスナップショット定義レコードは、アドレス情報の項目に「アドレスB」が設定される。フラッシュメモリ23のアドレスBで特定される位置に記憶されるスナップショットは、「「エラー状態通知プログラム」、「センサー制御プログラム」、「パネル制御プログラム」、「エラー状態通知プログラム」を含み、それら以外のプログラムを含まない。
起動要因の項目に「ファクシミリ受信」が設定されたスナップショット定義レコードは、アドレス情報の項目に「アドレスC」が設定される。フラッシュメモリ23のアドレスCで特定される位置に記憶されるスナップショットは、「ファクシミリ受信プログラム」、「ファクシミリ制御プログラム」、「画像形成プログラム」、「ASIC制御プログラム」を含み、それら以外のプログラムを含まない。
起動要因の項目に「プリントジョブ受信」が設定されたスナップショット定義レコードは、アドレス情報の項目に「アドレスD」が設定される。フラッシュメモリ23のアドレスDで特定される位置に記憶されるスナップショットは、「プリントジョブ受信プログラム」、「通信制御プログラム」、「画像形成プログラム」、「ASIC制御プログラム」を含み、それら以外のプログラムを含まない。
起動要因の項目に「その他」が設定されたスナップショット定義レコードは、アドレス情報の項目に、「アドレスE」が設定される。フラッシュメモリ23のアドレスEで特定される位置に記憶されるスナップショットは、フラッシュメモリ23に記憶されている全てのプログラムを含み、他のスナップショットよりもサイズが大きい。以下、起動要因が「その他」に対応するスナップショットを、デフォルトのスナップショットという。
図4に戻って、スナップショット生成部61は、フラッシュメモリ23に記憶されたスナップショット定義テーブルとプログラム定義テーブルとを参照して、スナップショット定義テーブルに含まれる1以上のスナップショット定義レコードのいずれにも設定されていない起動要因が、起動要因の項目に設定されたプログラム定義レコードが存在しない場合、フラッシュメモリ23に記憶されているブートプログラムに定められたプログラムの読出しアドレスを、起動要因の項目に「その他」が設定されているスナップショット定義レコードのアドレス情報の項目に設定されている「アドレスE」に変更した後に、RAM21およびCPU11をリセットする。
メインモード切換部53は、動作モードを駆動モードから停止モードに切り換える。駆動モードは、メインCPU11が電源制御回路17から電力の供給を受ける動作モードであり、停止モードは、メインCPU11が電源制御回路17から電力の供給を受けない動作モードである。CPU11は、動作モードが駆動モードの場合に電源制御回路17から電力の供給を受けて駆動し、動作モードが停止モードの場合に電源制御回路17から電力の供給を受けないので、駆動しない。メインモード切換部53は、動作モードを駆動モードから停止モードに切り換える場合、切換信号を起動用CPU13に出力する。メインモード切換部53が動作モードを駆動モードから停止モードに切り換えるタイミングは、任意に定めることができる。例えば、限定するものではないが、操作パネル115に所定時間継続して操作が入力されない場合、画像形成部140が所定時間継続して駆動しない場合等である。
復帰部55は、起動用CPU13により起動さると、フラッシュメモリ23に記憶されている1以上のスナップショットのうち、起動要因に関連付けられたスナップショットをフラッシュメモリ23から読出し、読み出したスナップショットをRAM21に記憶する。復帰部55は、スナップショットをRAM21に記憶した後、起動完了信号をメインモード切換部53に出力する。
具体的には、復帰部55は、電源制御回路17から電力が供給された後、起動用CPU13からリセット信号が入力されると、フラッシュメモリ23に記憶されたブートプログラムを実行する。このブートプログラムは、フラッシュメモリ23に記憶された1以上のスナップショットのいずれかのフラッシュメモリ23中の位置を示すアドレス情報を定める。後述するように、ブートプログラムにより定められるスナップショットのアドレス情報は、起動用CPU13によって書き換えられる。復帰部55は、ブートプログラムにより定められるアドレス情報で特定されるスナップショットを、フラッシュメモリ23から読出し、RAM21に記憶する。これにより、RAM21に、スナップショットが実行プログラムとして記憶されるので、CPU11は、実行プログラムを実行可能な状態になる。
メインモード切換部53は、実行後切換部59を含む。実行後切換部59は、復帰部55によってCPU11が実行可能な複数のプログラムの全てを含むデフォルトのスナップショットと異なるスナップショットがRAM21に記憶された場合、CPU11がRAM21に記憶された実行プログラムを実行して、起動要因に基づく一連の処理が終了した後、動作モードを駆動モードから停止モードに切り換える。RAM21にデフォルトのスナップショットと異なるスナップショットが記憶される場合は、起動要因が「メンテナンスキー」、「状態確認キー」、「前面扉OR給紙トレイ開」、「ファクシミリ受信」および「プリントジョブ受信」のいずれかの場合である。
具体的には、実行後切換部59は、起動要因が「メンテナンスキー」の場合には、HDD113および操作パネル115を制御して、HDD113に記憶されたメンテナンスデータを読出し、メンテナンスデータに基づいて、MFP100が備える消耗品を管理するための画面を生成し、生成された画面を表示部118に表示した後、動作モードを駆動モードから停止モードに切り換える。消耗品を管理するための画面は、給紙部150が備える複数の給紙トレイそれぞれに収納される用紙の残量、画像形成部140が備える現像機で用いるトナーの残量、画像形成部140が備える感光体ドラムおよび熱転写ローラーそれぞれの寿命等を含む。これらの値は、HDD113に記憶され、MFP100が駆動するごとに書き換えられる。また、実行後切換部59は、起動要因が「状態確認キー」または「前面扉OR給紙トレイ開」の場合には、センサー部117および操作パネル115を制御して、エラー状態を表示する画面を生成し、生成された画面を表示部118に表示した後、実行後切換部59は、エラー状態を表示する画面は、センサー部117によって検出されたセンサー値を含む。例えば、用紙の残量を検出する残量検出センサーによって検出された用紙の残量、用紙の搬送経路中に設けられた前面扉の開閉を検出するセンサーによって検出された前面扉の開閉状態、ジャムセンサーによって検出された用紙の搬送経路中で用紙が詰まった箇所、を含む。
さらに、実行後切換部59は、起動要因が「ファクシミリ受信」の場合には、ファクシミリ部170を制御して、ファクシミリデータを受信し、エンジン制御ASIC15を介して画像形成部140および給紙部150を制御してファクシミリデータの画像を用紙に形成させた後、動作モードを駆動モードから停止モードに切り換える。実行後切換部59は、起動要因が「プリントジョブ受信」の場合には、通信I/F部160を制御して、プリントジョブを受信し、エンジン制御ASIC15を介して画像形成部140および給紙部150を制御してプリントジョブに含まれるプリントデータの画像を用紙に形成させた後、動作モードを駆動モードから停止モードに切り換える。
図7は、起動用CPUが有する機能の一例を示すブロック図である。図7に示す機能は、起動用CPU13がサブ起動制御プログラムを実行することにより、起動用CPU13に形成される機能である。サブ起動制御プログラムは、起動制御プログラムの一部である。図7を参照して、起動用CPU13は、動作モード検出部81と、サブモード切換部83と、起動要因検出部85と、電源制御部87と、起動部89と、を含む。
動作モード検出部81は、メインCPU11の動作モードの切り換えを検出する。動作モード検出部81は、メインCPU11から切換信号が入力されると、メインCPU11が動作モードを駆動モードから停止モードに切り換えたことを検出する。動作モード検出部81は、メインCPU11が動作モードを駆動モードから停止モードに切り換えたことを検出する場合、切換指示を電源制御部87およびサブモード切換部83に出力する。
サブモード切換部83は、通常モードと消費電力が通常モードより低い省電力モードとのいずれかに動作モードを切り換える。サブモード切換部83は、動作モード検出部81から切換信号が入力されることに応じて、動作モードを通常モードから省電力モードに切り換える。サブモード切換部83は、動作モードを通常モードから省電力モードに切り換える場合、起動要因検出部85に検出指示を出力する。
起動要因検出部85は、サブモード切換部83から検出指示が入力されると、起動要因を検出する。具体的には、起動要因検出部85は、パネル用コネクタ31の起動用端子、メンテナンス端子および状態確認端子、センサー用コネクタ32の開閉端子、FAX用コネクタ33のファクシミリ通知用端子、通信用コネクタ34のジョブ通知用端子の電圧を検出し、パネル用コネクタ31の起動用端子、メンテナンス端子および状態確認端子、FAX用コネクタ33のファクシミリ通知用端子、通信用コネクタ34のジョブ通知用端子の電圧を検出し、それらの端子のいずれかの電圧がローからハイに変化すると起動要因を検出する。起動要因検出部85は、起動要因を検出すると、電圧がローからハイに変化した端子を識別するための端子識別情報を起動部89およびサブモード切換部83に出力する。
サブモード切換部83は、省電力モードにおいて、起動要因検出部85から端子識別情報が入力されることに応じて、換言すれば、パネル用コネクタ31の起動用端子、メンテナンス端子および状態確認端子、センサー用コネクタ32の開閉端子、FAX用コネクタ33のファクシミリ通知用端子、通信用コネクタ34のジョブ通知用端子のいずれかの電圧がローからハイに変化することに応じて、動作モードを省電力モードから通常モードに切り換える。
起動用CPU13は、サブモード切換部83によって動作モードが省電力モードに切り換えられた後は、動作モードが通常モードに切り換えられるまでの間、プログラムを実行しないいわゆるHALTモードで動作する。起動用CPU13は、省電力モードにおいては、パネル用コネクタ31の起動用端子、メンテナンス端子および状態確認端子、センサー用コネクタ32の開閉端子、FAX用コネクタ33のファクシミリ通知用端子、通信用コネクタ34のジョブ通知用端子の電圧を検出する処理のみを実行する。換言すれば、起動用CPU13は、省電力モードにおいては、起動要因検出部85のみを有効にする。このため、起動用CPU13は、省電力モードにおいて、消費電力を通常モードより小さくすることができる。
起動部89は、メインCPU11が動作モードを駆動モードから停止モードに切り換えている間に、起動要因検出部85によって起動要因が検出されることに応じて、メインCPU11を起動する。具体的には、起動部89は、メインCPU11のリセット端子にリセット信号を出力することにより、メインCPU11を起動する。起動部89は、スナップショット決定部95と、通知部97と、を含む。
スナップショット決定部95は、起動要因検出部85から端子識別情報が入力されることに応じて、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、スナップショットを決定し、決定されたスナップショットのアドレス情報を通知部97に出力する。
具体的には、スナップショット決定部95は、パネル用コネクタ31のメンテナンス端子の端子識別情報が入力される場合、起動要因を「メンテナンスキー」に決定する。スナップショット決定部95は、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、決定された起動要因「メンテナンスキー」に対応するアドレス情報「アドレスA」に記憶されたスナップショットを決定し、アドレス情報「アドレスA」を通知部97に出力する。
スナップショット決定部95は、パネル用コネクタ31の状態確認端子の端子識別情報が入力される場合、起動要因を「状態確認キー」に決定する。スナップショット決定部95は、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、決定された起動要因「状態確認キー」に対応するアドレス情報「アドレスB」に記憶されたスナップショットを決定し、アドレス情報「アドレスB」を通知部97に出力する。
スナップショット決定部95は、センサー用コネクタ32の開閉端子の端子識別情報が入力される場合、起動要因を「前面扉OR給紙トレイ開」に決定する。スナップショット決定部95は、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、決定された起動要因「前面扉OR給紙トレイ開」に対応するアドレス情報「アドレスB」に記憶されたスナップショットを決定し、アドレス情報「アドレスB」を通知部97に出力する。
スナップショット決定部95は、FAX用コネクタ33のファクシミリ通知用端子の端子識別情報が入力される場合、起動要因を「ファクシミリ受信」に決定する。スナップショット決定部95は、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、決定された起動要因「ファクシミリ受信」に対応するアドレス情報「アドレスC」に記憶されたスナップショットを決定し、アドレス情報「アドレスC」を通知部97に出力する。
スナップショット決定部95は、通信用コネクタ34のジョブ通知用端子の端子識別情報が入力される場合、起動要因を「プリントジョブ受信」に決定する。スナップショット決定部95は、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、決定された起動要因「プリントジョブ受信」に対応するアドレス情報「アドレスD」に記憶されたスナップショットを決定し、アドレス情報「アドレスD」を通知部97に出力する。
スナップショット決定部95は、パネル用コネクタ31の起動用端子の端子識別情報が入力される場合であって、パネル用コネクタ31のメンテナンス端子および状態確認端子いずれかの端子識別情報が入力されない場合、起動要因を「その他」に決定する。スナップショット決定部95は、フラッシュメモリ23に記憶されているスナップショット定義テーブルを参照して、決定された起動要因「その他」に対応するアドレス情報「アドレスE」に記憶されたスナップショットを決定し、アドレス情報「アドレスE」を通知部97に出力する。
通知部97は、スナップショット決定部95からアドレス情報が入力されることに応じて、メインCPU11にスナップショットを通知する。具体的には、フラッシュメモリ23に記憶されているメインCPU11のブートプログラムにより定められたプログラムの読出しアドレスを、スナップショット決定部95から入力されるアドレス情報で書き換える。起動部89は、通知部97がブートプログラムを書き換えた後、電源制御部87に給電指示を出力するとともに、メインCPU11のリセット端子にリセット信号を出力する。
電源制御部87は、電源制御回路17を制御して、メインCPU11、エンジン制御ASIC15、RAM21およびフラッシュメモリ23に供給する電力を切り換えさせる。電源制御部87は、遮断制御部91と、電力復帰部93と、を含む。遮断制御部91は、動作モード検出部81から切換指示が入力されることに応じて、電源制御回路17に、メインCPU11、エンジン制御ASIC15、RAM21およびフラッシュメモリ23に供給する電力を遮断させる。これにより、電源制御回路17は、メインCPU11、エンジン制御ASIC15、RAM21およびフラッシュメモリ23に電力を供給しないので、メインCPU11、エンジン制御ASIC15、RAM21およびフラッシュメモリ23で電力が消費されることがない。なお、起動用CPU13は、電源制御回路17から電力が供給されるので、駆動するが、動作モードが省電力モードに切り換えられているので、起動用CPU13で消費される電力も、通常モードで消費される電力よりも小さくなる。
電力復帰部93は、起動部89から給電指示が入力されることに応じて、電源制御回路17に、メインCPU11、エンジン制御ASIC15、RAM21およびフラッシュメモリ23に電力を供給させる。これにより、メインCPU11、エンジン制御ASIC15、RAM21およびフラッシュメモリ23が駆動する。メインCPU11は、電源制御回路17から電力が供給され、起動用CPU13からリセット信号が入力されると、フラッシュメモリ23に記憶されたブートプログラムを実行する。このブートプログラムは、上述した通知部97によりプログラムの読出しアドレスが書き換えられているので、スナップショット決定部95によって決定されたスナップショット、換言すれば、起動要因に対応するスナップショットを、フラッシュメモリ23から読み出してRAM21に記憶する。このため、起動要因が、「その他」でない場合は、デフォルトのスナップショット以外のスナップショットがRAM21に記憶される。デフォルトのスナップショット以外のスナップショットは、デフォルトのスナップショットよりもサイズが小さいので、メインCPU11がスナップショットをRAM21に記憶し終わるまでの時間を、短くすることができる。その結果、メインCPU11が処理を実行可能となるまでの時間を短くすることができる。
図8は、メイン起動制御処理の流れの一例を示すフローチャートである。メイン起動制御処理は、メインCPU11がメイン起動制御プログラムを実行することにより、メインCPU11により実行される処理である。メイン起動制御プログラムは、起動制御プログラムの一部である。図8を参照して、メインCPU11は、リセット信号が入力される(ステップS01)。ここでは、起動用CPU13がメインCPU11のリセット端子にリセット信号を出力する。メインCPU11は、リセット信号が入力されると、スナップショットをRAM21に記憶する。具体的には、メインCPU11は、フラッシュメモリ23に記憶されたブートプログラムを実行する。メインCPU11は、フラッシュメモリ23に記憶された複数のスナップショットのうちからブートプログラムにより定められるアドレス情報で特定されるスナップショットをフラッシュメモリ23から読出し、RAM21に記憶する。
次のステップS03においては、起動要因を受け付け、処理をステップS04に進める。ステップS01において、起動用CPU13からリセット信号が入力される場合、起動用CPU13によって起動要因が検出される場合であり、その起動要因を受け付ける。起動要因は、パネル用コネクタ31のメンテナンス端子の電圧がローからハイに変化する事象である起動要因「メンテナンスキー」、パネル用コネクタ31の状態確認端子の電圧がローからハイに変化する事象である起動要因「状態確認キー」、センサー用コネクタ32の開閉端子の電圧がローからハイに変化する事象である起動要因「前面扉OR給紙トレイ開」、FAX用コネクタ33のファクシミリ通知用端子の電圧がローからハイに変化する事象である起動要因「ファクシミリ受信」、通信用コネクタ34のジョブ通知用端子の電圧がローからハイに変化する事象である起動要因「プリントジョブ受信」、パネル用コネクタ31の起動用端子の電圧がローからハイに変化するが、メンテナンス端子および状態確認端子のいずれも電圧が変化しない事象である起動要因「その他」を含む。
ステップS04においては、起動要因が「その他」か否かを判断する。起動要因が「その他」ならば処理をステップS05に進めるが、そうでなければ処理をステップS08に進める。起動要因「その他」が受け付けられる場合、ステップS02においてRAM21に記憶されたスナップショットは、フラッシュメモリ23に記憶された全てのプログラムを含む。
次のステップS05においては、操作を受け付けたか否かを判断する。ユーザーが操作部119に入力する操作を受け付ける。操作を受け付けたならば処理をステップS06に進めるが、そうでなければ処理をステップS07に進める。ステップS06においては、受け付けられた操作に従って処理を実行し、処理をステップS05に戻す。ステップS07においては、操作を受け付けることなく所定時間が経過したか否かを判断する。操作を受け付けることなく所定時間が経過したならば処理をステップS10に進めるが、そうでなければ処理をステップS05に戻す。
ステップS08においては、起動要因に対応する処理を実行する。具体的には、起動要因「メンテナンスキー」が受け付けられる場合、MFP100が備える消耗品を管理するための画面を生成し、表示部118に表示する。ステップS02においてRAM21に記憶されたスナップショットは、メンテナンスプログラム、HDD制御プログラムおよびパネル制御プログラムを含むので、メインCPU11は、これらの処理を実行することができる。
起動要因「状態確認キー」または起動要因「前面扉OR給紙トレイ開」のいずれかが受け付けられる場合、エラー状態を表示する画面を表示部118に表示する。ステップS02においてRAM21に記憶されたスナップショットは、エラー状態通知プログラム、センサー制御プログラムおよびパネル制御プログラムを含むので、メインCPU11は、これらの処理を実行することができる。
起動要因「ファクシミリ受信」が検出される場合、ファクシミリ部170を制御して、ファクシミリデータを受信し、エンジン制御ASIC15を介して画像形成部140および給紙部150を制御してファクシミリデータの画像を用紙に形成させる。ステップS02においてRAM21に記憶されたスナップショットは、ファクシミリ受信プログラム、ファクシミリ制御プログラム、画像形成プログラムおよびASIC制御プログラムを含むので、メインCPU11は、これらの処理を実行することができる。
起動要因「プリントジョブ受信」が検出される場合、通信I/F部160を制御して、プリントジョブを受信し、エンジン制御ASIC15を介して画像形成部140および給紙部150を制御してプリントジョブに含まれるプリントデータの画像を用紙に形成させる。ステップS02においてRAM21に記憶されたスナップショットは、プリントジョブ受信プログラム、通信制御プログラム、画像形成プログラムおよびASIC制御プログラムを含むので、メインCPU11は、これらの処理を実行することができる。
ステップS09においては、起動要因に対応する処理が終了したか否かを判断する。処理が終了するまで待機状態となり(ステップS09でNO)、処理が終了したならば(ステップS09でYES)、処理をステップS10に進める。
ステップS10においては、動作モードを停止モードに切り換える。これにより、CPU11によって制御されるハードウェア資源で消費される電力が低減する。次のステップS11においては、切換信号を起動用CPU13に出力し、処理を終了する。
図9は、サブ起動制御処理の流れの一例を示すフローチャートである。サブ起動制御処理は、起動用CPU13がサブ起動制御プログラムを実行することにより、起動用CPU13により実行される処理である。サブ起動制御プログラムは、起動制御プログラムの一部である。
図9を参照して、起動用CPU13は、メインCPU11から切換信号が入力されたか否かを判断する(ステップS21)。切換信号が入力されるまで待機状態となり(ステップS21でNO)、切換信号が入力されると(ステップS21でYES)、処理をステップS22に進める。
ステップS22においては、電源を遮断する。具体的には、電源制御回路17に、メインCPU11、エンジン制御ASIC15、RAM21およびフラッシュメモリ23に供給する電力を遮断させる。これにより、メインCPU11、エンジン制御ASIC15、RAM21およびフラッシュメモリ23で電力が消費されることがない。
次のステップS23においては、動作モードを通常モードから省電力モードに切り換える。起動用CPU13は、動作モードが省電力モードに切り換えられた後は、動作モードが通常モードに切り換えられるまでの間、プログラムを実行しないいわゆるHALTモードで動作する。起動用CPU13は、省電力モードにおいては、パネル用コネクタ31の起動用端子、メンテナンス端子および状態確認端子、センサー用コネクタ32の開閉端子、FAX用コネクタ33のファクシミリ通知用端子、通信用コネクタ34のジョブ通知用端子の電圧を検出する処理のみを実行する。このため、起動用CPU13は、省電力モードにおいて、消費電力を通常モードより小さくすることができる。
次のステップS24においては、起動要因を検出したか否かを判断する。起動要因を検出するまで待機状態となり(ステップS24でNO)、起動要因を検出したならば(ステップS24でYES)、処理をステップS25に進める。具体的には、パネル用コネクタ31のメンテナンス端子の電圧がローからハイに変化する場合、起動要因「メンテナンスキー」を検出する。パネル用コネクタ31の状態確認端子の電圧がローからハイに変化する場合、起動要因「状態確認キー」を検出する。センサー用コネクタ32の開閉端子の電圧がローからハイに変化する場合、起動要因「前面扉OR給紙トレイ開」を検出する。FAX用コネクタ33のファクシミリ通知用端子の電圧がローからハイに変化する場合、起動要因「ファクシミリ受信」を検出する。通信用コネクタ34のジョブ通知用端子の電圧がローからハイに変化する場合、起動要因「プリントジョブ受信」を検出する。パネル用コネクタ31の起動用端子の電圧がローからハイに変化する場合であって、パネル用コネクタ31のメンテナンス端子および状態確認端子いずれの電圧もローからハイに変化しない場合、起動要因「その他」を検出する。
ステップS25においては、動作モードを通常モードに切り換える。そして、メインCPU11、エンジン制御ASIC15、RAM21およびフラッシュメモリ23に電力を供給する。具体的には、電源制御回路17を制御して、電源制御回路17に、メインCPU11、エンジン制御ASIC15、RAM21およびフラッシュメモリ23に電力を供給させる。
次のステップS27においては、ステップS24において検出された起動要因に対応するスナップショットのアドレス情報を取得する。具体的には、フラッシュメモリ23に記憶されたスナップショット定義テーブルを参照して、ステップS24において検出された起動要因に対応するスナップショットがフラッシュメモリ23に記憶されている位置を示すアドレス情報を取得する。具体的には、起動要因「メンテナンスキー」が検出される場合はアドレス情報「アドレスA」を取得し、起動要因「状態確認キー」が検出される場合はアドレス情報「アドレスB」を取得し、起動要因「前面扉OR給紙トレイ開」が検出される場合はアドレス情報「アドレスB」を取得し、起動要因「ファクシミリ受信」が検出される場合はアドレス情報「アドレスC」を取得し、起動要因「プリントジョブ受信」が検出される場合はアドレス情報「アドレスD」を取得し、起動要因「その他」が検出される場合はアドレス情報「アドレスE」を取得する。
次のステップS28においては、メインCPU11のブートプログラムのアドレス情報を書き換える。具体的には、フラッシュメモリ23に記憶されているメインCPU11のブートプログラムに定められたプログラムの読出しアドレスを、ステップS28において取得されたアドレス情報で書き換える。そして、メインCPU11のリセット端子にリセット信号を出力し(ステップS29)、処理をステップS21に戻す。
以上説明したように本実施の形態におけるMFP100は、画像形成装置として機能し、フラッシュメモリ23に、それぞれがメインCPU11が実行可能な複数のプログラムの1以上を含む複数の組ごとに、メインCPU11が当該組に含まれる1以上のプログラムをRAM21にロードした実行プログラムを含むスナップショットを記憶しており、メインCPU11は、複数のスナップショット各々に、複数の起動要因のいずれか1つを関連付ける。起動用CPU13は、メインCPU11およびRAM21に電力が供給されていない間に、複数の起動要因のいずれかを検出することに応じて、メインCPU11を起動し、メインCPU11によって動作モードが停止モードに切り換えられることに応じて、メインCPU11およびRAM21に供給される電力を遮断する。このため、メインCPU11およびRAM21によって電力が消費されないようにして消費電力を低減することができる。
また、メインCPU11は、起動用CPU13により起動されること応じて、起動用CPU13によって検出された起動要因に関連付けられたスナップショットをフラッシュメモリ23から読出してRAM21に記憶する。スナップショットは、複数のプログラムの1以上を含み、起動要因に関連付けられたスナップショットをRAM21に記憶するので、起動要因に対応する処理を実行するプログラムのみを含むスナップショットを記憶するようにすることができる。スナップショットのサイズは、デフォルトのスナップショットのサイズよりも小さいので、メインCPU11が処理を実行可能になるまでの時間を短くすることができる。
また、起動用CPU13は、検出された起動要因にプログラム定義テーブルによって関連付けられたスナップショットと特定し、特定されたスナップショットがフラッシュメモリ23に記憶されている位置を示すアドレス情報をスナップショット定義テーブルを参照して特定し、アドレス情報をメインCPU11に通知する。このため、メインCPU11は、起動要因に関連付けられたスナップショットをRAM21に記憶することができる。
また、メインCPU11が複数のプログラムのすべてをRAM21にロードした実行プログラムを含むスナップショットをデフォルトとしてフラッシュメモリ23に記憶しており、複数の起動要因のうち予め定められた特定要因以外の起動要因をデフォルトのスナップショットに関連付ける。特定要因は、例えば、「メンテナンスキー」、「状態確認キー」、「前面扉OR給紙トレイ開」、「ファクシミリ受信」および「プリントジョブ受信」であり、特定要因以外の起動要因は「その他」である。このため、特定要因以外の起動要因が検出される場合には、画像形成装置は、実行可能なすべての処理を実行可能となる。
また、メインCPU11は、プログラム定義テーブルを参照して、複数のプログラムの少なくとも1つをRAM21にロードした実行プログラムをスナップショットとしてフラッシュメモリ23に記憶する。このため、メインCPU11が複数のスナップショットを生成することができる。
また、メインCPU11は、起動要因が特定要因の場合、起動要因により定まる処理を実行した後、動作モードを停止モードに切り換える。このため、消費電力をさらに低減することができる。
また、起動用CPU13は、パネル用コネクタ31の起動用端子、メンテナンス端子および状態確認端子、センサー用コネクタ32の開閉端子、FAX用コネクタ33のファクシミリ通知用端子、通信用コネクタ34のジョブ通知用端子のいずれかの電圧がローからハイに変化することに応じて、パネル用コネクタ31の起動用端子、メンテナンス端子および状態確認端子、センサー用コネクタ32の開閉端子、FAX用コネクタ33のファクシミリ通知用端子、通信用コネクタ34のジョブ通知用端子のうち電圧が変化した端子に対応する起動要因を検出する。このため、起動要因を容易に検出することができる。また、パネル用コネクタ31の起動用端子、メンテナンス端子および状態確認端子、センサー用コネクタ32の開閉端子、FAX用コネクタ33のファクシミリ通知用端子、通信用コネクタ34のジョブ通知用端子のいずれかの電圧が変化したことを検出すれればよいので、起動用CPU13の消費電力を低減することができる。
また、起動用CPU13は、メインCPU11の動作モードが停止モードに切り換えられることに応じて、動作モードを省電力モードに切り換え、省電力モードにおいてパネル用コネクタ31の起動用端子、メンテナンス端子および状態確認端子、センサー用コネクタ32の開閉端子、FAX用コネクタ33のファクシミリ通知用端子、通信用コネクタ34のジョブ通知用端子のいずれかの電圧が変化することに応じて、動作モードを通常モードに切り換える。このため、メインCPU11が停止してから起動要因が検出されるまでの間、メインCPU11で電力が消費されないようにすることができる。
なお、本実施の形態において、スナップショット取得部51を、メインCPU11に設けるようにしたが、起動用CPU13に設けるようにしてもよい。
<変形例>
図10は、変形例におけるメインCPUが有する機能の一例を示すブロック図である。図10を参照して、図4に示した機能と異なる点は、追加ロード部57が追加され、メインモード切換部53がメインモード切換部53Aに変更された点である。その他の機能は、図4に示した機能と同じなので、ここでは説明を繰り返さない。
復帰部55は、スナップショットをRAM21に記憶した後、起動完了信号をメインモード切換部53および追加ロード部57に出力する。
メインモード切換部53Aは、復帰部55から起動完了信号が入力されると、動作モードを駆動モードに設定する。メインモード切換部53Aは、所定のタイミングで、動作モードを駆動モードから停止モードに切り換える。メインモード切換部53が動作モードを駆動モードから停止モードに切り換える所定のタイミングは、任意に定めることができる。メインモード切換部53Aは、動作モードを駆動モードから停止モードに切り換える場合、切換信号を起動用CPU13に出力する。
追加ロード部57は、復帰部55から起動完了信号が入力されることに応じて、CPU11がデフォルトのスナップショットと異なるスナップショットがRAM21に記憶されている場合、起動要因に基づく一連の処理が終了した後、起動用端子の電圧がローからハイに変化することに応じて起動要因を検出すると、複数のプログラムのうちRAM21に記憶されたスナップショットに含まれない残りのプログラムをRAM21にロードする。これにより、ユーザーは、スナップショットに含まれないプログラムに基づく処理を、MFP100に実行させることができる。起動用端子の電圧がローからハイに変化する場合は、ユーザーが操作部119の備える複数のハードキーのうちメンテナンスキーおよび状態確認キー以外のキーを押下する場合、または、操作部119が備えるタッチパネルを指示する操作をする場合である。
変形例における画像形成装置は、メインCPU11は、起動要因に基づく処理を実行した後、複数のプログラムのうちRAM21に記憶されたスナップショットに含まれていない残りの1以上のプログラムをRAM21にロードする。このため、起動要因に基づく処理を実行した後、起動要因に基づく処理以外の処理を実行することができる。
なお、上述した実施の形態においては、画像形成装置の一例としてMFP100について説明したが、図8に示したメイン起動制御処理をメインCPU11に実行させ、図9に示したサブ起動制御処理を起動用CPU13に実行させる起動制御方法として、また、図8に示したメイン起動制御処理をメインCPU11に実行させるメイン起動制御プログラム、図9に示したサブ起動制御処理を起動用CPU13に実行させるサブ起動制御プログラムとして、発明を捉えることができるのは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
<付記>
(1) 前記通知手段は、前記アドレス情報を、前記第2の記憶手段の記憶領域のうち前記メイン制御手段が起動されることに応じて実行するブートプログラムにより定められた位置に記憶する、請求項2〜4のいずれかに記載の画像形成装置。