(57)【特許請求の範囲】
【請求項１】
メインＣＰＵとサブＣＰＵと共有メモリーとを備え、
スリープモードへの移行のための所定の移行条件が成立したときに前記メインＣＰＵは所定の移行処理を実行した後でスリープモードに移行し、
スリープモードのときに当該スリープモードから復帰するための所定の復帰条件が成立すると前記サブＣＰＵが前記メインＣＰＵを復帰させる電子システムであって、
前記メインＣＰＵは、前記移行条件が成立した後、前記所定の移行処理の実行が終了するまでに、復帰条件が成立していれば前記復帰条件の成立に関連する情報を前記共有メモリーに書き込む手段を備え、
前記サブＣＰＵは、前記共有メモリーに書き込まれている前記復帰条件に関連する情報を参照し、前記復帰条件が成立していれば、前記メインＣＰＵを復帰させる手段を備えることを特徴とする電子システム。
【請求項２】
前記サブＣＰＵは、スリープモードへの移行直後に復帰条件の成立に関連する情報を取得し、前記共有メモリーに書き込まれている前記復帰条件に関連する情報を参照して前記メインＣＰＵを復帰させることを特徴とする請求項１に記載の電子システム。
【請求項３】
各種のセンサーを備え、前記復帰条件に関連する情報は、当該電子システムに備えられた前記センサーの出力内容であることを特徴とする請求項１または請求項２に記載の電子システム。
【請求項４】
前記センサーの出力内容は、二つ以上の状態を択一的に表し、状態が変化したときに前記復帰条件が成立するものであることを特徴とする請求項３に記載の電子システム。
【請求項５】
前記復帰条件に関連する情報は、情報内容を判断して復帰が必要か否かが判断されるものであることを特徴とする請求項１に記載の電子システム。
【請求項６】
前記復帰条件に関連する情報は、前記情報内容の判断が終了する前に前記移行条件が成立し、その後、前記情報内容の判断を終了し、復帰が必要と判断される内容であることを特徴とする請求項５に記載の電子システム。
【請求項７】
ネットワーク接続が可能であり、ネットワークからパケットを受信したときに、同パケットの内容が前記情報内容に相当することを特徴とする請求項５または請求項６に記載の電子システム。
【請求項８】
メインＣＰＵとサブＣＰＵと共有メモリーとを備えた電子システムのプログラムであって、
スリープモードへの移行のための所定の移行条件が成立したときに前記メインＣＰＵは所定の移行処理を実行した後でスリープモードに移行し、
スリープモードのときに当該スリープモードから復帰するための所定の復帰条件が成立すると前記サブＣＰＵが前記メインＣＰＵを復帰させる電子システムのプログラムであり、
前記メインＣＰＵは、前記移行条件が成立した後、前記所定の移行処理の実行が終了するまでに、前記復帰条件の成立に関連する情報を前記共有メモリーに書き込む機能を実現させ、
前記サブＣＰＵは、前記共有メモリーに書き込まれている前記復帰条件に関連する情報を参照し、前記復帰条件が成立していれば、前記メインＣＰＵを復帰させる機能を実現させることを特徴とする電子システムのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子システム、スリープモードを備える電子システムのプログラムに関する。
【背景技術】
【０００２】
特許文献１などに開示されているように、メインＣＰＵとサブＣＰＵを備え、不使用期間はメインＣＰＵをスリープモードとして省電力をはかる電子システムが利用されている。
例えば、プリンターとスキャナーとファクスの機能を持つ複合機と呼ばれる電子システムでは、一定時間、不使用の期間が続くことをメインＣＰＵが検知すると、所定の処理を実行してからスリープモードに入り、サブＣＰＵだけの運用として利用者の操作等を監視する。そして、利用者の操作やファクスの受信などといった復帰条件が成立したことをサブＣＰＵが検知すると、メインＣＰＵを復帰させる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１１３７３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
スリープモードに移行するには所定の時間を要する。従って、スリープモードに移行する条件が成立し、移行のための処理を開始しても、それが終了するまでには一定の時間がかかってしまう。そして、この間に復帰すべき状況が生じてしまうことがありえる。しかし、復帰すべき状況が生じたからといって、必ずしもスリープモードへの移行を中断できるとは限らない。すると、復帰すべき状況にありながら、スリープモードに入ってしまい、かつ、スリープモードが開始する前に復帰すべき状況が発生していると、サブＣＰＵの処理が開始する前であるから、復帰できるとは限らなかった。
【０００５】
本発明は、スリープモードへの移行の途中に、復帰すべき状況が発生してしまったときにも問題を残さないようにする。
【課題を解決するための手段】
【０００６】
本発明は、メインＣＰＵとサブＣＰＵと共有メモリーとを備え、スリープモードへの移行のための所定の移行条件が成立したときに前記メインＣＰＵは所定の移行処理を実行した後でスリープモードに移行し、スリープモードのときに当該スリープモードから復帰するための所定の復帰条件が成立すると前記サブＣＰＵが前記メインＣＰＵを復帰させる電子システムであって、
前記メインＣＰＵは、前記移行条件が成立した後、前記所定の移行処理の実行が終了するまでに、前記復帰条件の成立に関連する情報を前記共有メモリーに書き込む手段を備え、
前記サブＣＰＵは、前記共有メモリーに書き込まれている前記復帰条件に関連する情報を参照し、前記復帰条件が成立していれば、前記メインＣＰＵを復帰させる手段を備える構成としてある。
【０００７】
前記構成において、前記移行条件が成立すると、前記メインＣＰＵは、スリープモードへ移行のために前記所定の移行処理を実行する。しかし、この処理の実行が終了するまでに、前記復帰条件に関する情報に変化が生じることがあり、この復帰条件の成立に関連する情報を共有メモリーに書き込む。一方、前記サブＣＰＵは、前記共有メモリーに書き込まれている前記復帰条件に関連する情報を参照する。そして、前記復帰条件が成立していれば、同情報に基づいて前記メインＣＰＵを復帰させる。
【０００８】
メインＣＰＵは、移行条件が成立したことによって、スリープモードへ移行する前に完了すべき処理を開始する。このとき、復帰条件が成立したとしても、同処理を実行し、スリープモードへ移行する。ただし、この復帰条件に関連する情報は、前記共有メモリーに書き込んでおく。
サブＣＰＵは、本来の機能として、スリープモードのときに当該スリープモードから復帰するための所定の復帰条件が成立すると前記メインＣＰＵを復帰させる。このサブＣＰＵの場合、共有メモリーを参照する機能を有しており、前記メインＣＰＵが前記共有メモリーに書き込んだ情報を参照する。もし、スリープモードへの移行の開始後に復帰条件が成立したときには、その復帰条件に関連する情報が共有メモリーに書き込まれているので、サブＣＰＵはその情報に基づいてメインＣＰＵを復帰させる。
【０００９】
復帰条件の成立を判断するため、スリープモードへの移行直後の情報を参照することが必要な場合もある。その一例として、前記サブＣＰＵは、スリープモードへの移行直後に復帰条件の成立に関連する情報を取得し、前記共有メモリーに書き込まれている前記復帰条件に関連する情報を参照して前記メインＣＰＵを復帰させる構成とすることができる。
【００１０】
このような構成とした場合、メインＣＰＵは、スリープモードへの移行前にその時点での情報を共有メモリーに書き込んでいる。その後に、状態が変化したとき、スリープモードへの移行直後に、その時点での情報を取得すると、スリープモードへの移行途中に情報が変化したか否かを判断できることになり、復帰条件の成立を確実に判断できる。
【００１１】
復帰条件に関連する情報の一例として、以下の態様のようにすることが可能である。すなわち、各種のセンサーを備え、前記復帰条件に関連する情報は、当該電子システムに備えられた前記センサーの出力内容とする構成としても良い。
前記構成において、本電子システムに各種のセンサーが備えられている。一例として、扉の開閉状況を検知するセンサーなどが備えられており、扉を開閉することは復帰条件の一つであるとすれば、このセンサーの出力内容は復帰条件に関連する情報となる。
不使用の期間が続いてスリープモードへの移行条件が成立し、スリープモードへ移行する準備を介した後に、扉を開閉したような場合、センサーの出力が変化する。このようなセンサーの出力内容を、メインＣＰＵは共有メモリーに書き込んでおいて、スリープモードへ移行する。サブＣＰＵは共有メモリーを参照してセンサーの出力内容が変化したことを認識でき、メインＣＰＵを復帰させる。
【００１２】
センサーの出力内容の一例として、前記センサーの出力内容は、二つ以上の状態を択一的に表し、状態が変化したときに前記復帰条件が成立する構成としても良い。
前記構成において、センサーは二つ以上の状態を択一的に表すので、例えば、スリープモードに入った後で、サブＣＰＵがセンサーの出力内容を検知できるとしても、スリープモードへの移行条件が成立した後で、出力内容が変化したのかどうか分からない。二つ以上の状態を択一的に表すので、どの状態を示していても、復帰条件が成立したと判断できないからである。
【００１３】
しかし、メインＣＰＵがスリープモードへ移行する前に、センサーの出力内容も復帰条件に関連する情報として共有メモリーに書き込んでおき、サブＣＰＵは共有メモリーに書き込まれている情報とともに、移行直後に復帰条件の成立に関連する情報を取得し、前記共有メモリーに書き込まれている復帰条件に関連する情報を参照して両者を比較する。これにより、センサーの出力内容が変化したことを検知でき、すぐさま復帰させる必要があると判断できる。
【００１４】
本発明の他の態様として、前記復帰条件に関連する情報は、情報の内容を判断して復帰が必要か否かが判断されるもので構成しても良い。
そして、前記復帰条件に関連する情報は、情報の内容の判断が終了する前に前記移行条件が成立し、その後、前記情報の内容の判断を終了し、復帰が必要と判断される内容であっても良い。
例えば、情報が通知されることだけをもってして復帰条件が成立したものと判断できるものもある。これに対して、情報が通知され、その情報の内容を判断しなければ復帰条件が成立しているか否かを判断できない場合がある。
【００１５】
このような場合、この判断の処理が終了した時点で、復帰条件が成立していたのであれば、そもそもスリープモードへの移行条件は成立しないはずである。復帰の必要性があるときに、スリープモードへ移行することはないからである。
しかし、スリープモードへの移行には複数の要因があるので、上のような判断の処理を始めた直後に、他の要因に基づいてスリープモードへの移行が始まってしまうことがある。このように、情報の内容の判断が終了する前に前記移行条件が成立した場合には、スリープモードへの移行は継続し、前記情報の内容の判断を終了して復帰が必要と判断されれば、その内容を復帰条件に関連する情報として共有メモリーに書き込む。
【００１６】
このような情報の一例に関し、本発明の他の態様として、ネットワーク接続が可能であり、ネットワークからパケットを受信したときに、同パケットの内容が前記情報の内容に相当するものであっても良い。
前記構成においては、ネットワーク接続が可能であるので、ネットワークからパケットを受信する。パケットの内容によっては、復帰条件が成立する場合もあるし、成立しない場合もある。そして、復帰条件が成立する内容であると判断される場合には、同パケットの内容が前記情報の内容に相当するものとして、共有メモリーに書き込まれる。
【００１７】
発明の思想の具現化例として電子システムを実現するプログラムとしても当然に存在し、利用されるといわざるをえない。
さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合においても発明の思想において全く異なるものではなく、一部を記録媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。
【００１８】
本発明をソフトウェアで実現する場合、ハードウェアやオペレーティングシステムを利用する構成とすることも可能であるし、これらと切り離して実現することもできる。例えば、各種の演算処理といっても、その実現方法はオペレーティングシステムにおける所定の関数を呼び出して処理することも可能であれば、このような関数を呼び出すことなくハードウェアから入力することも可能である。そして、実際にはオペレーティングシステムの介在のもとで実現するとしても、このプログラムだけで本発明を実施できるものと理解することができる。
【発明の効果】
【００１９】
本発明によれば、スリープモードへの移行の途中に、復帰すべき状況が発生してしまったときには、スリープモードへ移行した後にサブＣＰＵが共有メモリーへ保存しておいた情報を参照することで、すぐさまメインＣＰＵを復帰させることができる。
【図面の簡単な説明】
【００２０】
【図１】複合機の概略ブロック図である。
【図２】メインＣＰＵのフローチャートである。
【図３】サブＣＰＵのフローチャートである。
【図４】信号レベルの保存の具体的な処理のフローチャートである。
【図５】信号レベルの保存の具体的な処理のフローチャートである。
【図６】情報内容に基づいて復帰条件が成立する場合の具体的な処理のフローチャートである。
【発明を実施するための形態】
【００２１】
以下、図面にもとづいて本発明の実施形態を説明する。
図１は、本発明の一実施形態にかかる電子システムである複合機を概略ブロック図により示している。
この複合機１０は、メインユニット２０と、サブユニット３０とを備えており、スキャナー機能、ファクス機能、コピー機能、プリンター機能を実現している。
メインユニット２０はマルチＣＰＵの構成となっており、主な構成として、第１メインＣＰＵ２１ａと、第２メインＣＰＵ２１ｂと、サブＣＰＵ２３と、共有メモリー２４とを備えている。第１メインＣＰＵ２１ａと、第２メインＣＰＵ２１ｂと、サブＣＰＵ２３は、それぞれＣＰＵとＲＯＭとＲＡＭとを備えており、個別のオペレーティングシステムを備えたコンピューターを構成している。すなわち、マルチＣＰＵ、マルチＯＳ環境を実現している。また、共有メモリー２４は、これらの個別のコンピューターからアクセス可能となっている。
コンピューターに所定の機能を実現するプログラムは不揮発性の記憶領域であるＲＯＭに保持されており、適宜、読み出されて実行される。本発明の電子システムの各機能を実現するプログラムは、このＲＯＭに保存されていると言える。
【００２２】
主に、第１メインＣＰＵ２１ａは、スキャナー機能、ファクス機能、コピー機能、プリンター機能のデータ処理などを担当し、第２メインＣＰＵ２１ｂは、ネットワーク処理を担当し、サブＣＰＵ２３は、スキャナー機能、ファクス機能、コピー機能、プリンター機能のメカニカル機構の制御を担当している。
メインユニット２０には、ラインセンサー２５と、各種のモーターを含む駆動ユニット２６と、印刷ヘッド２７と、各種のセンサーを含むセンサーユニット２８と、ネットワーク接続するためのネットワークアダプタ２９が接続されており、第１メインＣＰＵ２１ａと、第２メインＣＰＵ２１ｂと、サブＣＰＵ２３とによって制御されている。駆動ユニット２６は紙送りやヘッドの移動のためのモーターなどを備えている。センサーユニット２８は、自動給紙ユニットの原稿の有無を研修するＡＤＦ紙検出センサー２８ａや、インクカートリッジを装着するカートリッジ扉の開閉状況を検出するカートリッジ扉開閉スイッチ（以下単に扉開閉スイッチと呼ぶ）２８ｂをはじめとして、本複合機１０の状況を検出するためのセンサーが多数備えられている。
【００２３】
例えば、スキャナー機能は、主にラインセンサー２５や駆動ユニット２６が使用されるし、プリンター機能は、印刷ヘッド２７や駆動ユニット２６が使用され、コピー機能は、ラインセンサー２５や駆動ユニット２６や印刷ヘッド２７が使用される。むろん、これらの機能の実現に際して、センサーユニット２８やネットワークアダプタ２９も平行して運用されることが多い。
【００２４】
サブユニット３０はＵＳＢアダプタ３１を備えており、ＵＳＢケーブルを介して外部機器と接続して通信可能となっている。
ここで、通常運用時は、第１メインＣＰＵ２１ａはスキャナー機能や印刷機能の実現を担当し、第２メインＣＰＵ２１ｂはネットワークを介した通信を担当し、サブＣＰＵ２３は第１メインＣＰＵ２１ａを補助して駆動ユニット２６の制御を担当している。
【００２５】
一方、これらの主な機能を使用いないときには、省電力のためにスリープモードに入る。すなわち、第１メインＣＰＵ２１ａと第２メインＣＰＵ２１ｂへの電力供給を止め、サブＣＰＵ２３が最小限の制御を行う。すなわち、第１メインＣＰＵ２１ａと第２メインＣＰＵ２１ｂを復帰すべき条件が発生するか監視を行う。この間の制御をスリープモードと呼んでいる。スリープモードは、省電力モードとも呼ぶ。なお、以下において、第１メインＣＰＵ２１ａと第２メインＣＰＵ２１ｂを総称してメインＣＰＵ２１と呼ぶことがある。このように、スリープモードへの移行のための所定の移行条件が成立したときにメインＣＰＵは所定の移行処理を実行した後でスリープモードに移行し、スリープモードのときに当該スリープモードから復帰するための所定の復帰条件が成立するとサブＣＰＵがメインＣＰＵを復帰させる。
【００２６】
スリープモードへの移行の基本的な流れは、
１）省電力移行条件成立（スリープモードへの移行条件が成立）、
２）デバイス停止処理（デバイスドライバーの停止処理）、
３）デバイス停止処理終了後にメインＣＰＵ２１ａ，２１ｂ間の同期処理、
４）割り込みを禁止、
５）メインＣＰＵ２１ａ，２１ｂ間の通信の停止、
６）メインＣＰＵ２１ａ，２１ｂの停止
となる。
【００２７】
一方、復帰時の基本的な流れは、
７）省電力終了条件成立（スリープモードからの復帰条件が成立）、
８）メインＣＰＵ２１ａ，２１ｂの再開、
９）デバイス再開処理（デバイスドライバーの初期化と起動）、
１０）デバイス再開処理完了後にメインＣＰＵ間の同期処理、
１１）メインＣＰＵ２１ａ，２１ｂ間の通信を再開、
１２）割り込みを許可
となる。
【００２８】
なお、従来は、移行時に、
２１ａ）省電力移行条件成立（スリープモードへの移行状が成立）、
２１ｂ）デバイス停止処理（デバイスドライバーの停止処理）、
２３）メインＣＰＵ２１ａ，２１ｂ間の通信の停止、
２４）割り込みを禁止、
２５）デバイス停止処理終了後にメインＣＰＵ２１ａ，２１ｂ間の同期処理、
２６）メインＣＰＵ２１ａ，２１ｂの停止
を行っていた。
【００２９】
さらに、復帰時には、
２７）メインＣＰＵ２１ａ，２１ｂの再開、
２８）割り込みを許可、
２９）デバイス再開処理（デバイスドライバーの初期化と起動）、
３０）メインＣＰＵ２１ａ，２１ｂ間の通信を再開
を行っていた。
【００３０】
従来は、復帰時の２８）〜２９）の間は、スリープモード以外のファームウェアが動作する必要があり、そのファームウェアがメインＣＰＵ２１ａ，２１ｂ間の通信をしようとすることがあった。それぞれのメインＣＰＵのファームウェアは、マルチＯＳの環境であるので、他のメインＣＰＵ２１ａ，２１ｂの状態を意識しておらず、他のメインＣＰＵ２１ａ，２１ｂの復帰処理が完了していなくても、メインＣＰＵ２１ａ，２１ｂ間で通信をしようとしてしまう。
【００３１】
これに対して、本実施例の移行の処理では、２）のデバイス停止処理が完了した後で、メインＣＰＵ２１ａ，２１ｂ間の同期処理をし、これ以降はメインＣＰＵ２１ａ，２１ｂが他のメインＣＰＵ２１ａ，２１ｂと通信をしないようにしている。すなわち、移行時には他のメインＣＰＵ２１ａ，２１ｂが移行処理に入っていることが分かるようにしている。さらに、４）のメインＣＰＵ２１ａ，２１ｂ間の通信の停止の前に３）の割り込みを停止することにより、４）の処理以降にスリープモード以外のファームウェアが動作しないようにした。割り込みが許可されてしまうと、スリープモード以外のファームウェアが動作して整合が取れなくなる可能性があるからである。
【００３２】
そして、復帰時には、９）のデバイス再開処理が完了した後で、１０）のメインＣＰＵ２１ａ，２１ｂ間の同期処理を実行することとし、これ以前には勝手にメインＣＰＵ２１ａ，２１ｂ間で通信をしないようにした。従って、他のメインＣＰＵ２１ａ，２１ｂが復帰処理を完了していないのに、勝手に他のメインＣＰＵ２１ａ，２１ｂに対して通信を開始してしまう不具合がなくなる。さらに、１２）の割り込みを許可する処理を最後にすることで、１１）のメインＣＰＵ２１ａ，２１ｂ間の通信を再開する前にスリープモード以外のファームウェアを起動してしまうことがないようにした。スリープモード以外のファームウェアが動作して整合が取れなくなる可能性があるからである。
以上のようにすることで、マルチＣＰＵ、マルチＯＳという環境に起因する不整合を防ぐことができるようになった。
【００３３】
一方、スリープモードに移行するには所定の時間を要する。上述したように、１）でスリープモードへの移行条件が成立しても、６）でメインＣＰＵ２１ａ，２１ｂを停止するまでには時間を要する。この間に、復帰条件が成立すると、不具合が生じる可能性がある。
【００３４】
例えば、センサーユニット２８には、扉開閉スイッチ２８ｂが含まれている。扉開閉スイッチ２８ｂのように、開いた状態は、通常の状態ではない。スリープモードを停止して復帰すべき条件が成立した状況と言える。１）でスリープモードへの移行条件が成立した後、ユーザがカートリッジの扉を開けた場合、そのまま６）の処理まで行った後、サブＣＰＵ２３が、スリープモードでの処理を開始しても、復帰処理での７）の処理で復帰条件が成立したことになり、スリープモードへ移行した直後、すぐさま復帰処理を開始できる。
従って、センサーの出力内容だけを判断して、復帰すべきと判断できるのであれば、移行条件成立後に状態が変化した場合でも、不整合を生じないことが多い。
【００３５】
これに対してＡＤＦ紙検出センサー２８ａの場合は、ＡＤＦに原稿となる紙が有るか無いかを検出する。ユーザが原稿をセットしたまま放置した場合でも、不使用期間が長くなればスリープモードに入るべきであるし、ユーザが原稿をセットしない状態のまま不使用期間が長くなったとしてもスリープモードに入るべきである。すなわち、センサーの出力内容が、二つ以上の状態を択一的に表すものであって、いずれの場合であってもスリープモードに入っていることだけでは問題を検知し得ない。このような、センサーの出力内容が、二つ以上の状態を択一的に表し、状態が変化したときに復帰条件が成立するようなものであるときは、状態の変化を監視しなければならない。スリープモードへの移行途中に状態が変化したとしても、サブＣＰＵ２３が監視を開始し始めてからは状態が変化しないので、復帰条件は成立しない。
【００３６】
例えば、ある期間、不使用だったので、複合機１０はスリープモードへ移行する処理を開始したところ、移行処理が終了する前にユーザがＡＤＦに原稿をセットしたとすると、上に説明したような状態になる。従って、スリープモードのままなのでユーザは複合機を使用できない。
【００３７】
以下、このような不整合が生じないようにする処理を説明する。
図２は、メインＣＰＵのフローチャートであり、図３は、サブＣＰＵのフローチャートである。
メインＣＰＵ２１（メインＣＰＵ２１ａ，２１ｂを総称する）では、スリープモードの移行条件が成立し、２）のデバイス停止処理を開始した状態であるものとする。
ステップＳ１０２は、２）のデバイス停止処理に相当する。
ステップＳ１０４では、信号レベルを取得し、共有メモリーに保存する。具体的には、センサーユニット２８の各種のセンサーの出力内容のうち、復帰条件に関連するものの出力内容を保存する。センサーの出力は、ハイレベルあるいはローレベルで出力されているから、出力内容を保存することは信号レベルを保存することになる。
【００３８】
ここで、図４と図５は、信号レベルの保存の具体的な処理のフローチャートである。
ＡＤＦ紙検出センサー２８ａの場合、ステップＳ３０２にて、同ＡＤＦ紙検出センサー２８ａの信号レベルを取得し、ステップＳ３０４では、共有メモリー２４に同ＡＤＦ紙検出センサー２８ａの信号レベルを保存する。
また、ネットワーク接続するためのネットワークアダプタ２９は、ネットワークケーブル（ＬＡＮケーブル）が端子に装着されているか否かを表す信号を出力している。それまでＵＳＢケーブルを使用していたユーザが、ネットワークを介して使用し始めるために、ネットワークアダプタ２９にネットワークケーブルを装着することがある。ネットワークケーブルは使用するか否かがユーザの選択によるものであるから、ＡＤＦの原稿の有無と同様、ネットワークケーブルを装着してある状態も、装着してない状態も、いずれであってもスリープモードに移行して構わない。そして、ネットワークケーブルを装着していない状態から装着した状態へ変化したり、ネットワークケーブルを装着している状態から装着しない状態へ変化した場合には、ユーザが何らかの作業をしているのであるからスリープモードから復帰すべき場合と言える。
このため、ステップＳ３１２にて、ネットワークアダプタ２９からネットワークケーブル接続有無の信号レベルを取得し、ステップＳ３１４にて、共有メモリー２４にネットワークケーブル接続有無の信号レベルを保存する。
【００３９】
このような処理を、図２のステップＳ１０４にて実施している。続いて、ステップＳ１０６では、復帰条件成立か（信号レベルｏｒ情報内容に基づく）判断する。ここで判断できるのは、現在の信号レベルそのもので復帰条件が成立したと判断できるものと、ネットワークを介してパケットを受信し、そのパケットの情報内容を判断して復帰条件が成立したと判断できるものがある。
【００４０】
扉開閉スイッチ２８ｂの出力内容であれば、閉状態を表すものであれば復帰条件が成立しないが、開状態を表すものであれば復帰条件が成立する。従って、扉開閉スイッチ２８ｂの出力内容を取得し、開状態を表すものであれば復帰条件成立と判断してステップＳ１０８にて、復帰用フラグをオンにセットし、共有メモリー２４に保存する。
一方、情報内容を判断して復帰条件が成立したと判断するものとしてパケットの情報内容がある。パケットを受信しただけでは、情報の内容は分からないので、復帰条件が成立したと判断できない。従って、パケットを受信した後、別の要因でスリープモード移行条件が成立してしまうことがある。この場合、スリープモードへと移行する一方で、パケットの内容はすぐさま複合機１０を復帰させるべき内容であると判断できたとする。しかし、スリープモードへ移行する処理は進行してしまうので、複合機１０はスリープモードへ入ってしまうし、既に受信したパケットの内容であるので、サブＣＰＵ２３によるスリープモード中の監視が始まっても同パケットの内容が反映されず、復帰条件が成立したものとして処理もされないことになる。
【００４１】
しかし、ステップＳ１０６の処理により、スリープモードへ移行する前に、情報内容に基づいて復帰条件が成立したものと判断できる場合は、ステップＳ１０８にて、復帰用フラグをオンにセットし、共有メモリー２４に保存する。
図６は、情報内容に基づいて復帰条件が成立する場合の具体的な処理のフローチャートである。
ステップＳ３５２にて、受信していたパケットの内容を判断する。情報内容が復帰条件を成立させる例として、ステップＳ３５４にて、情報内容は印刷開始のパケットか判断する。印刷開始のパケットを受信したということであれば、スリープモードに移行してもすぐさま復帰しなければならない場合と言える。このため、ステップＳ３５６にて、復帰条件成立として復帰用フラグをオンにセットし、共有メモリー２４に保存する。
【００４２】
なお、復帰用フラグをオンにセットして共有メモリー２４に保存するときには、復帰用フラグだけではなく、これに関連する情報とともに共有メモリー２４に保存しても構わない。例えば、印刷開始のパケットの内容なども合わせて書き込んでも良い。
この後、ステップＳ１１０にて、他のスリープモードへの移行処理をした後、ステップＳ１１２にて、メインＣＰＵ２１は停止する。
【００４３】
メインＣＰＵ２１がスリープモードに移行すると、これまでメカニカル機構の制御を担当していたサブＣＰＵ２３はスリープモードから復帰する条件が成立しないか監視する。監視する処理を開始することがサブＣＰＵ２３のスリープモードにおける処理内容となる。
サブＣＰＵ２３では、Ｓ２０２にて、スリープモードを開始する。本実施例では、サブＣＰＵ２３はスリープモードを開始する際に専用のファームウェアを起動する。また、通常時の運用にも専用のファームウェアを起動する。ステップＳ２０２は、このスリープモードの際の専用のファームウェアの起動に相当する。
【００４４】
スリープモードを開始すると、最初に、ステップＳ２０４にて、共有メモリー２４から復帰用フラグを読み込む。そして、ステップＳ２０６にて、この復帰用フラグがオンか否かを判断する。上述したように、復帰用フラグがオンにセットされて書き込まれている場合は、スリープモードへ移行した後で復帰条件が成立してしまったため、スリープモードへの移行は停止できないものの、すぐさま復帰すべき状態であることを意味している。従って、ステップＳ２１４にて、復帰条件成立と判断して復帰処理を開始する。本実施例においては、復帰処理の開始については詳述しないが、スリープモードへ移行した後で復帰条件が成立してしまった場合であっても、通常のようにスリープモード中に復帰条件が成立した場合であっても、復帰処理自体は変わらない。
【００４５】
この結果、スリープモードへ移行した後で復帰条件が成立してしまった場合は、実質的にはスリープモードの本来の処理を行うことなく、通常の処理のためのファームウェアを起動することになる。この処理に該当するのは、信号レベルそのもので復帰条件が成立したと判断できていた場合と、ネットワークを介してパケットを受信し、そのパケットの情報内容を判断して復帰条件が成立したと判断できていた場合などである。
【００４６】
このように、復帰用フラグに基づいて復帰を開始する場合とは、メインＣＰＵ２１において、移行条件が成立した後、メインＣＰＵ２１を停止するまで（所定の移行処理の実行が終了するまで）に、復帰条件に関する情報としてパケットの情報内容が復帰条件を成立させる内容であると判断された場合や、扉開閉スイッチ２８ｂの状態に変化が生じた場合に、この復帰条件に関連する情報として復帰用フラグをオンにして共有メモリー２４に書き込むことに相当する。また、サブＣＰＵ２３の側においても、共有メモリー２４に書き込まれている復帰条件に関連する情報としての復帰用フラグを参照し、同復帰用フラグ（の情報）に基づいてメインＣＰＵ２１を復帰させたことになる。
【００４７】
一方、ある時点でのセンサーの出力内容だけでは復帰条件が成立したと判断できない場合に対応し、ステップＳ２０８では、現時点での信号レベルチェックを行なう。すなわち、その時点でのセンサーの出力内容を取得する。
ステップＳ１０２にて、デバイス停止処理をした直後、ステップＳ１０４にて、その時点での信号レベルは保存している。従って、スリープモードへの移行の途中に信号レベルが変化した場合は、ステップＳ１０４にて保存されている信号レベルとは異なるはずである。このことを判断するため、スリープモード起動後の現時点での信号レベルをステップＳ２０８にて取得する。
【００４８】
そして、ステップＳ２１０では、保存されている信号レベルを共有メモリー２４から読み込み、続いてステップＳ２１２にて、信号レベルに変化があるか判断する。スリープモードへの移行の途中に信号レベルが変化した場合は、ステップＳ１０４にて保存されている信号レベルとは異なるので、ステップＳ２１２では、信号レベルに変化があると判断され、ステップＳ２１４にて、復帰条件成立と判断して復帰処理を開始する。
このように、サブＣＰＵ２３は、スリープモードへの移行直後に復帰条件の成立に関連する情報を取得し、共有メモリー２４に書き込まれている復帰条件に関連する情報を参照して、復帰条件が成立してれば、メインＣＰＵ２１を復帰させる。
【００４９】
図４のステップＳ３０４では、共有メモリー２４にＡＤＦ紙検出センサー２８ａの信号レベルを保存しているし、図５のステップＳ３１４では、共有メモリー２４にネットワークアダプタ２９によって得られたネットワークケーブル接続有無の信号レベルを保存している。これらの信号レベルが、スリープモード起動直後の信号レベルと異なっていれば、スリープモードへの移行の開始後に、ユーザがＡＤＦに原稿をセットしたり、あるいは、ユーザがネットワークアダプタ２９にネットワークケーブルを装着した場合に相当する。
【００５０】
信号レベルに基づくこのような復帰処理を開始する場合とは、メインＣＰＵ２１が、移行条件が成立した後、メインＣＰＵ２１を停止する所定の移行処理の実行が終了するまでに、復帰条件に関する情報として
このように、スリープモードへの移行前に保存した信号レベルの内容と、起動直後に取得した信号レベルの内容とを比較して復帰条件の成立を判断する場合とは、メインＣＰＵ２１において、移行条件が成立した後、メインＣＰＵ２１を停止するまで（所定の移行処理の実行が終了するまで）に、復帰条件の成立に関連する情報として信号レベルを共有メモリー２４に書き込むとともに、サブＣＰＵ２３において、スリープモードへの移行直後に復帰条件の成立に関連する情報として信号レベルを取得し、共有メモリー２４に書き込まれている復帰条件に関連する情報と比較参照してメインＣＰＵ２１を復帰させることに相当する。
なお、スリープモードの起動直後において、以上のように復帰処理を開始しない場合は、ステップＳ２１６にて、通常のスリープモードの運用を継続することになる。
上述した本実施例においては、電子システムとして、複合機１０について説明したが、メインＣＰＵ２１とサブＣＰＵ２３を備え、メインＣＰＵ２１とサブＣＰＵ２３を停止させるスリープモードを備えた電子システムには広く適用可能である。また、メインＣＰＵ２１が複数備えられていたり、そのＯＳが個別に異なるようなシステムででも使用可能である。複合機ではなくても、スキャナー、プリンター、ファクスなどの単体の機種にも適用可能である。
【００５１】
なお、本発明は前記実施例に限られるものでないことは言うまでもない。当業者であれば言うまでもないことであるが、
・前記実施例の中で開示した相互に置換可能な部材および構成等を適宜その組み合わせを変更して適用すること
・前記実施例の中で開示されていないが、公知技術であって前記実施例の中で開示した部材および構成等と相互に置換可能な部材および構成等を適宜置換し、またその組み合わせを変更して適用すること
・前記実施例の中で開示されていないが、公知技術等に基づいて当業者が前記実施例の中で開示した部材および構成等の代用として想定し得る部材および構成等と適宜置換し、またその組み合わせを変更して適用すること
は本発明の一実施例として開示されるものである。
【符号の説明】
【００５２】
１０…複合機、２０…メインユニット、２１ａ…第１メインＣＰＵ、２１ｂ…第２メインＣＰＵ、２３…サブＣＰＵ、２４…共有メモリー、２５…ラインセンサー、２６…駆動ユニット、２７…印刷ヘッド、２８…センサーユニット、２８ａ…ＡＤＦ紙検出センサー、２８ｂ…扉開閉スイッチ、２９…ネットワークアダプタ、３０…サブユニット、３１…ＵＳＢアダプタ。
【図１】
0006500469.tif 000002
【図２】
0006500469.tif 000003
【図３】
0006500469.tif 000004
【図４】
0006500469.tif 000005
【図５】
0006500469.tif 000006
【図６】
0006500469.tif 000007