画像形成装置
【課題】ブートエラーやシステムエラーなどの動作の異常に自己対処することができる画像形成装置を提供する。
【解決手段】複合機10は、当該複合機10を起動し当該複合機10の動作を制御するCPU(A)11(メインCPU)と、CPU(A)11による動作を監視し、この監視結果に応じたプログラムを再起動後のCPU(A)11が実行するように設定してCPU(A)11を再起動させるCPU(B)12(サブCPU)とを備える。CPU(A)11による動作が異常となり、CPU(A)11自身がその異常の診断や修復を行えない状態(プログラムの暴走状態)になっても、CPU(B)12は、CPU(A)11による動作の監視結果に応じたプログラムを設定しCPU(A)11を再起動させて、CPU(A)11にそのプログラムを実行させることができる。
【解決手段】複合機10は、当該複合機10を起動し当該複合機10の動作を制御するCPU(A)11(メインCPU)と、CPU(A)11による動作を監視し、この監視結果に応じたプログラムを再起動後のCPU(A)11が実行するように設定してCPU(A)11を再起動させるCPU(B)12(サブCPU)とを備える。CPU(A)11による動作が異常となり、CPU(A)11自身がその異常の診断や修復を行えない状態(プログラムの暴走状態)になっても、CPU(B)12は、CPU(A)11による動作の監視結果に応じたプログラムを設定しCPU(A)11を再起動させて、CPU(A)11にそのプログラムを実行させることができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動作の異常に対処する機能を備えた画像形成装置に関する。
【背景技術】
【0002】
コンピュータシステムはブートと呼ばれる起動処理を行って起動し、何らかの異常で起動処理に失敗すると起動できない状態になる。この起動不可状態に陥るブートエラーは、システムのトラブル修復において重要であるため、様々な対処技術が考案されている。
【0003】
たとえば、同一内容のブートプログラム(起動プログラム)を格納したフラッシュROM(Read Only Memory)を2つ搭載し、一方のフラッシュROM内のブートプログラムに基づくブート制御が異常で、他方のフラッシュROM内のブートプログラムに基づくブート制御が正常である場合には、正常な方のブートプログラムで異常な方のブートプログラムを更新し修復する技術がある(特許文献1参照)。
【0004】
また、処理用と監視用の2つのCPU(Central Processing Unit)を備えた情報処理装置において、処理用のCPUはブート時の状態(ログ、メッセージなど)をフラッシュメモリに記憶する。ブートエラーが発生し、ブートリカバリボタンが操作されると、監視用のCPUは電話回線を介して情報処理装置をサービスセンターに接続させ、フラッシュメモリ内のデータを読み出してサービスセンターに伝送する。このデータからサービスセンターのスタッフがブートエラーの原因を解析し、ソフトウェア障害の場合には電話回線を介して所定のコマンドを処理用のCPUに伝送し、障害除去処理を実行させる技術がある(特許文献2参照)。
【0005】
また、コンピュータがブートに失敗すると、CPUがBIOS中の所定のコードを実行して遠隔診断修復コンピュータとの通信を確立させる。この遠隔診断修復コンピュータが内部の診断修復プログラムをオペレータの操作によってまたは自動で、ブートに失敗した通信相手のコンピュータに実行させる技術がある(特許文献3参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−122151号公報
【特許文献2】特開平10−161900号公報
【特許文献3】特表平11−504459号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
同じブートプログラムを2つのフラッシュROMに格納し、異常な方を正常な方で更新し修復する特許文献1の技術は、両方のブートプログラムに異常が発生した場合には対処することができない。また、同じブートプログラムを2つ記憶することになるため、記憶容量の無駄が大きい。
【0008】
ブートエラーの発生した情報処理装置がサービスセンターと通信して診断・修復される特許文献2の技術、および、ブートに失敗したコンピュータが遠隔診断修復コンピュータと通信して診断修復プログラムを実行する特許文献3の技術は、ブートエラーを自己診断および自己修復することができない。また、通信機能を持たない装置はブートエラーを診断・修復することができない。
【0009】
また、コンピュータシステムにおける動作の異常は、ブートエラーの他に、ハードウェアやファームウェアなどの異常によるシステムエラーがある。上記の特許文献1〜3の技術では、このシステムエラーに自己対処することもできない。
【0010】
本発明は、上記の問題を解決しようとするものであり、ブートエラーやシステムエラーなどの動作の異常に自己対処することができる画像形成装置を提供することを目的としている。
【課題を解決するための手段】
【0011】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【0012】
[1]画像データに基づく画像を記録紙に形成する画像形成部と、
前記画像形成部を制御する第1のCPUと、
前記第1のCPUによる動作を監視し、この監視結果に応じたプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる第2のCPUと、
を備えた画像形成装置。
【0013】
上記発明では、画像形成部を制御する第1のCPUによる動作を第2のCPUが監視する。第2のCPUは、この監視結果に応じたプログラムを再起動後の第1のCPUが実行するように設定して第1のCPUを再起動させる。
【0014】
たとえば、第1のCPUによる動作が異常となり、第1のCPU自身がその異常の診断や修復を行えない状態(たとえば、プログラムの暴走状態)になっても、第2のCPUによって、第1のCPUによる動作の監視結果に応じたプログラムを設定し第1のCPUを再起動させて、第1のCPUにそのプログラムを実行させることができる。このプログラムは、第1のCPUによる動作を監視した結果に応じて、たとえば、異常を診断するプログラムや異常を修復するプログラムなどが設定される。これにより、画像形成装置はブートエラーやシステムエラーなどの動作の異常に自己対処することができる。
【0015】
[2]前記第2のCPUは、前記監視によって前記第1のCPUによる起動処理の動作の異常を検出した場合には、前記起動処理の動作の異常に対処するプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする[1]に記載の画像形成装置。
【0016】
上記発明では、第1のCPUによる起動処理の動作の異常を検出した場合には、第2のCPUはその異常に対処するプログラムを再起動後の第1のCPUに実行させる。これにより、画像形成装置は第1のCPUによる起動処理の動作の異常に自己対処できる。
【0017】
[3]前記第2のCPUは、前記監視によって前記第1のCPUによる動作の異常を検出した場合には、前記異常を診断して診断結果を通知する診断プログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させ、この再起動後に前記第1のCPUから通知される前記診断結果に応じて前記第1のCPUに実行させるプログラムを決定し、このプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする[1]または[2]に記載の画像形成装置。
【0018】
上記発明では、第1のCPUによる動作の異常を検出した場合には、第2のCPUはその異常を診断するプログラムを再起動後の第1のCPUに実行させる。第1のCPUが診断プログラムを実行し、異常を診断して第2のCPUに通知した診断結果に応じて、第2のCPUは第1のCPUに実行させるプログラムを決定し、そのプログラムを再起動後の第1のCPUに実行させる。これにより、画像形成装置は第1のCPUによる動作の異常を自己診断し、診断結果に応じて自己対処できる。
【0019】
[4]前記第2のCPUは、前記監視によって前記第1のCPUが実行する所定のプログラムに異常があると判断した場合は、前記所定のプログラムの書き換えを行う書き換えプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させ、この再起動後に前記第1のCPUによって前記所定のプログラムの書き換えが行われると、この書き換え後の所定のプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする[1]〜[3]のいずれか1項に記載の画像形成装置。
【0020】
上記発明では、第1のCPUが実行する所定のプログラム(たとえば、ブートプログラムやファームウェアなど)に異常があると判断した場合には、第2のCPUはその所定のプログラムの書き換えを行う書き換えプログラムを再起動後の第1のCPUに実行させる。再起動後に第1のCPUによって所定のプログラムの書き換えが行われると、第2のCPUは、この書き換え後の所定のプログラムを再起動後の第1のCPUに実行させる。これにより、画像形成装置は所定のプログラムの異常をそのプログラムの書き換えによって自己修復できる。
【0021】
[5]前記第1のCPUが起動完了後に実行するファームウェアは、前記第1のCPUによる動作の異常を検出して前記第2のCPUに通知する機能を前記第1のCPUに実行させるエラーチェックプログラムを含む
ことを特徴とする[1]〜[4]のいずれか1項に記載の画像形成装置。
【0022】
上記発明では、第1のCPUは起動完了後にファームウェアを実行すると、ファームウェアに含まれているエラーチェックプログラムを実行し、第1のCPUによる動作の異常を検出して第2のCPUに通知する。これにより、第2のCPUが第1のCPUによる動作の異常を検出する場合に比べて、第2のCPUの処理負荷が軽減され、第1のCPUよりも第2のCPUの処理能力が低い場合に、装置全体のパフォーマンス低下が抑えられる。
【0023】
[6]前記第1のCPUは、前記第1のCPUによる動作の状況を前記第2のCPUに通知し、
前記第2のCPUは、前記通知に基づいて前記監視を行う
ことを特徴とする[1]〜[5]のいずれか1項に記載の画像形成装置。
【0024】
上記発明では、第1のCPUは、第1のCPUによる動作の状況を第2のCPUに通知し、第2のCPUはこの通知に基づいて、第1のCPUによる動作の監視を行う。たとえば、第1のCPUが、第1のCPUによる動作の異常を検出して第2のCPUに通知した場合には、第2のCPUはその第1のCPUによる動作の異常を認識する。また、第1のCPUがたとえばプログラムの暴走状態に陥って動作の状況を第2のCPUに通知できない場合には、第2のCPUは第1のCPUからの通知が無いことで第1のCPUによるプログラムの暴走状態を認識する。
【0025】
[7]前記第1のCPUによる前記第2のCPUへの通知はメモリを介して行う
ことを特徴とする[5]または[6]に記載の画像形成装置。
【0026】
上記発明では、第1のCPUによる第2のCPUへの通知を、メモリを介して行うことで、第1のCPUと第2のCPUが個別に動作し、個々の任意のタイミングにメモリにアクセスして通知を行うことができる。
【発明の効果】
【0027】
本発明の画像形成装置によれば、ブートエラーやシステムエラーなどの動作の異常に自己対処することができる。
【図面の簡単な説明】
【0028】
【図1】本発明の一実施形態に係る画像形成装置としての複合機の構成を示すブロック図である。
【図2】共有メモリにおける複数のメモリ位置と、各メモリ位置を通じてCPU(A)からCPU(B)へ通知される情報の一例を示す図である。
【図3】複合機のCPU(A)による起動処理の動作を示す流れ図である。
【図4】複合機のCPU(A)によるハードウェアチェック動作を示す流れ図である。
【図5】複合機のCPU(A)によるブートプログラム書き換え動作を示す流れ図である。
【図6】複合機のCPU(A)によるファームウェア書き換え動作を示す流れ図である。
【図7】複合機のCPU(B)によるエラー対処処理の動作を示す流れ図である。
【図8】図7のS503によるブートエラー対処処理のサブルーチンの動作を示す流れ図である。
【図9】図7のS505によるシステムエラー対処処理のサブルーチンの動作を示す流れ図である。
【発明を実施するための形態】
【0029】
以下、図面に基づき本発明の実施形態を説明する。
【0030】
図1は、本発明の一実施形態に係る画像形成装置としての複合機10の構成を示すブロック図である。
【0031】
複合機10は、原稿の画像を光学的に読み取ってその複製画像を記録紙に印刷して出力するコピー機能、読み取った原稿の画像データをファイルにして保存したり端末装置やサーバなどへ転送したりするスキャン機能、端末装置から受信した印刷データに係る画像や当該複合機10に保存されている画像データに係る画像を記録紙に印刷して出力するプリンタ機能、画像データを送受信するファクシミリ機能などを備えている。
【0032】
また複合機10は、2つのCPUを備えたマルチプロセッサシステムの装置であり、当該複合機10を起動し当該複合機10の動作を制御するメインCPU(第1のCPU)と、メインCPUによる動作を監視し、この監視結果に応じたプログラムを再起動後のメインCPUが実行するように設定してメインCPUを再起動させるサブCPU(第2のCPU)とを備えている。この2つのCPUの処理能力は同じでもよいし異なっていてもよい。処理能力が異なる場合には、処理能力の高い方をメインCPUとし、処理能力の低い方をサブCPUとする。
【0033】
メインCPUは、ブートプログラムを実行して起動処理(ブート)を行い、当該複合機10を起動させる機能と、起動完了後にファームウェアを実行して当該複合機10の動作を制御する機能とを備えている。サブCPUは、上記の監視によってメインCPUによる起動処理の異常(ブートエラー)または動作の異常(システムエラー)を検出した場合には、その異常に対処するプログラム(異常対処プログラム)を再起動後のメインCPUが実行するように設定して(起動プログラムの切り替えを行って)、メインCPUを再起動させる機能を備えている。メインCPUは、サブCPUによって再起動されると、サブCPUによって設定された異常対処プログラムを実行し、異常に対処する動作を行う。
【0034】
異常対処プログラムは、複合機10内のハードウェアをチェックしてチェック結果をサブCPUに通知(報告)するハードウェアチェックプログラム、ブートプログラムの書き換えを行うブートプログラム書き換えプログラム、ファームウェアの書き換えを行うファームウェア書き換えプログラムなどである。
【0035】
なお、異常対処プログラムの種類はこれらに限定されない。異常(エラー)の内容に応じた各種の対処プログラムを用いてその異常に対処することができる。
【0036】
複合機10は、メインCPUとしてのCPU(A)11と、サブCPUとしてのCPU(B)12と、ROM(Read Only Memory(BIOS ROM;Basic Input/Output System Read Only Memory))13と、RAM(Random Access Memory)14と、不揮発メモリ15と、ハードディスク装置(HDD;Hard Disk Drive)16と、表示部17と、操作部18と、ファクシミリ通信部19と、ネットワーク通信部20と、画像処理部21と、スキャナ部22と、プリンタ部23とがバス24に接続され、CPU(A)11とCPU(B)12とに共有メモリ(通信用メモリ)25が接続されて構成される。
【0037】
CPU(A)11は、ROM13に格納されているブートプログラムを実行して起動処理を行い、複合機10を起動させる。複合機10の起動を完了すると、ROM13に格納されているファームウェアを実行して複合機10の動作を制御する。
【0038】
CPU(B)12は、ROM13に格納されているプログラムを実行してCPU(A)11による動作(起動を含む)を監視し、監視結果に応じて起動プログラムの切り替えおよびCPU(A)11の再起動を行う。
【0039】
なお、CPU(B)12(サブCPU)は、電源からCPU(A)11(メインCPU)に電力が供給されていない状態(電源オフ状態)でも、電源から常時電力が供給され常時動作を継続できる構成としてもよい。
【0040】
共有メモリ25は、CPU(A)11とCPU(B)12にアクセスされるメモリであり、両CPU間で通信(プロセス間通信)を行うために使用される。本実施形態では、CPU(B)12がCPU(A)11による動作を監視するための情報を、CPU(A)11からCPU(B)12へ通知するために使用される。
【0041】
ROM13は、記憶内容を書き換え可能なフラッシュROM(フラッシュメモリ)であり、CPU(A)11によって実行されるプログラム(ブートプログラム、ファームウェアなど)と、CPU(B)12によって実行されるプログラム(CPU(A)11による動作を監視するためのプログラム)などを格納する。RAM14は、CPU(A)11およびCPU(B)12がプログラムを実行する際に各種データを一時的に格納するワークメモリとして使用されるほか、画像データを一時的に保存するための画像メモリなどにも使用される。
【0042】
不揮発メモリ15は、電源がオフにされても記憶が保持されるメモリであり、装置固有の情報や各種の設定情報などが記憶される。ハードディスク装置16は、異常対処プログラムや各種の保存データを格納するほか、入力された画像データなども保存する。
【0043】
なお、異常対処プログラムはハードディスク装置16ではなくROM13に格納するようにしてもよい。また異常対処プログラムは、複合機10とネットワークで接続された外部記憶装置(ストレージ)に格納しておき、複合機10がその外部記憶装置にアクセスして実行するようにしてもよい。異常対処プログラムにおけるブートプログラム書き換えプログラムがROM13内のブートプログラムを書き換えるのに使用する書き換え用のブートプログラムは、内蔵のハードディスク装置16に記憶しておくようにしてもよく外部記憶装置から取得するようにしてもよい。異常対処プログラムにおけるファームウェア書き換えプログラムがROM13内のファームウェアを書き換えるのに使用する書き換え用のファームウェアは、ハードディスク装置16に記憶しておくようにしてもよく外部記憶装置から取得するようにしてもよい。
【0044】
表示部17は、液晶ディスプレイなどで構成され、操作画面、設定画面、案内画面などの各種の画面を表示する。操作部18は、スタートボタン、ストップボタン、テンキーなどの各種のボタン類と、液晶ディスプレイの表面に設けられて押下された座標位置を検出するタッチパネルなどで構成され、ユーザが複合機10に対して行う各種の操作を受け付ける。
【0045】
ファクシミリ通信部19は、ファクシミリ機能を備えた外部装置と公衆回線を通じて画像データを送受信する。ネットワーク通信部20は、LAN(Local Area Network)などのネットワークを通じて端末装置やサーバなどと通信を行う。
【0046】
画像処理部21は、画像データに対して、画像補正、回転、拡大/縮小、圧縮/伸張など各種の画像処理を施す。
【0047】
スキャナ部22は、原稿を光学的に読み取って画像データを取得する。スキャナ部22は、たとえば、原稿に光を照射する光源と、その反射光を受けて原稿を幅方向に1ライン分読み取るラインイメージセンサと、ライン単位の読取位置を原稿の長さ方向に順次移動させる移動手段と、原稿からの反射光をラインイメージセンサに導いて結像させるレンズやミラーなどからなる光学経路と、ラインイメージセンサの出力するアナログ画像信号をデジタルの画像データに変換する変換部などを備えて構成される。
【0048】
プリンタ部23は、画像データに基づく画像を電子写真プロセスによって記録紙上に形成して出力する。プリンタ部23は、たとえば、記録紙の搬送装置と、感光体ドラムと、帯電装置と、入力される画像データに応じて点灯制御されるLD(Laser Diode)と、LDから射出されたレーザ光を感光体ドラム上で走査させる走査ユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有する、いわゆるレーザープリンタとして構成されている。レーザ光に代えてLED(Light Emitting Diode)で感光体ドラムを照射するLEDプリンタのほか他の方式のプリンタであってもかまわない。
【0049】
前述したように、CPU(A)11は複合機10の起動を完了すると、ROM13内のファームウェアを実行して複合機10の動作を制御する。ファームウェアは、所定のタイミングでシステムの異常(エラー)をチェックするプログラム(システムエラーチェックプログラム)を含んでいる。システムチェックは、複合機10内のハードウェアに異常が発生していないことをチェックするハードウェアチェックと、ファームウェアに異常(バグ)が発生していないことをチェックするファームウェアチェックを含む。
【0050】
ハードウェアチェックにおけるチェック対象のハードウェアは、RAM14、ハードディスク装置16、制御基板、DMAコントローラ(Direct Memory Access controller)、FAN(冷却ファン)などである。この場合のハードウェアチェックは、RAM14に対するメモリチェック、ハードディスク装置16に対するHDDチェック、制御基板に対するボードチェック、DMAコントローラなどの制御チップに対するチップチェックなどである。
【0051】
たとえば、メモリチェックとHDDチェックでは、ライト・リードを行って異常が発生していないことをチェックする。ボードチェックでは、CPU(A)11が制御基板の各端子に入力される信号をモニタリングすることで異常が発生していないことをチェックする。端子毎の信号の入出力を確認することで、制御基板のいずれの箇所で異常が発生しているかを特定することができる。またボードチェックでは、CPU(A)11がFAXボードなどの制御基板にエラーチェックのコマンドを送信し応答を受信することで異常が発生していないことをチェックしたり、CPU(A)11が制御基板から割り込みなどでエラー発生の通知を受信し異常が発生したことを認識したりするようにしてもよい。DMAコントローラに対するチップチェックでは、CPU(A)11が内部レジスタを読めない場合に異常が発生したことを認識する。
【0052】
上記のハードウェアチェックを行うタイミングについては、メモリチェックとHDDチェックは定期的やジョブの間に行う。ボードチェックとチップチェックは、ハードウェアを実際に使用するときやジョブの間に行う。
【0053】
CPU(A)11がシステムチェックにおけるハードウェアチェックを行ってハードウェアの異常を検出した場合には、ハードウェアの異常によるシステムエラーが発生したと判断する。
【0054】
また、システムチェックにおけるファームウェアチェックでは、CPU(A)11は、たとえばファームウェアのパラメータの取り得る値として1〜3を想定しているなかで、それ以外の数値(4や5など)となっている場合であってハードウェアに異常がなければ、ファームウェアのバグによるシステムエラーが発生したと判断する。
【0055】
CPU(A)11は上記のシステムチェックを行い、システムエラーが発生したと判断した場合は、CPU(B)12に対してシステムエラーが発生したことを通知する。
【0056】
また、CPU(A)11はハードウェアチェックプログラムを実行したときも、そのプログラムに基づいて複合機10内のハードウェアの異常をチェック(診断)する。チェック対象のハードウェアとチェック方法は、システムチェックにおけるハードウェアチェックと同様である。CPU(A)11は、ハードウェアチェックプログラムを実行してハードウェアの異常をチェックし、異常を検出しない場合はCPU(B)12に対してハードウェア正常を通知し、異常を検出した場合はCPU(B)12に対してハードウェア異常を通知する。
【0057】
図2は、共有メモリ25における複数のメモリ位置(アドレス)と、各メモリ位置を通じてCPU(A)11からCPU(B)12へ通知される情報(通知情報)の一例を示す図である。
【0058】
ここでは、CPU(A)11が通知情報を共有メモリ25に書き込み、CPU(B)12が共有メモリ25から通知情報を読み出す。この通知情報とメモリ位置とを対応付けておくことにより、CPU(A)11からCPU(B)12への通知情報の通信(伝達)を行う。
【0059】
通知情報は、CPU(A)11による動作の状況(ブートエラー/システムエラー/ハードウェアチェックプログラムの実行によるチェック結果/プログラムの書き換え完了など)を示す情報である。たとえば、CPU(A)11による複合機10の起動の状況を示す情報(起動完了)、CPU(A)11による複合機10の動作の制御で使用されるハードウェアの状況を示す情報(メモリ異常、HDD異常)、ハードウェアチェックプログラムを実行した結果、ハードウェアの異常を検出しなかったこと(ハードウェア正常)またはハードウェアの異常を検出したこと(ハードウェア異常および異常箇所)を示す情報、ブートプログラム書き換えプログラムを実行してブートプログラムの書き換えを完了したことを示す情報(ブートプログラム書き換え完了)、ファームウェア書き換えプログラムを実行してファームウェアの書き換えを完了したことを示す情報(ファームウェア書き換え完了)などである。
【0060】
本例では、CPU(A)11は複合機10の起動が完了すると、共有メモリ25におけるメモリ位置1にフラグ(正常フラグ)をセットする。システムチェックにおけるハードウェアチェックと、ハードウェアチェックプログラムの実行によるハードウェアチェックで、RAM14の異常を検出すると共有メモリ25におけるメモリ位置2にフラグ(異常フラグ)をセットする。ハードディスク装置16の異常を検出すると共有メモリ25におけるメモリ位置3にフラグ(異常フラグ)をセットする。
【0061】
またCPU(A)11、ハードウェアチェックプログラムの実行によるハードウェアチェックで、ハードウェアの異常を検出しなければ、所定のメモリ位置(たとえばメモリ位置n1)にフラグ(正常フラグ)をセットする。ブートプログラムの書き換え完了時も所定のメモリ位置(たとえばメモリ位置n2)にフラグ(正常フラグ)をセットし、ファームウェアの書き換え完了時も所定のメモリ位置(たとえばメモリ位置n3)にフラグ(正常フラグ)をセットする。
【0062】
CPU(B)12は、複合機10の起動開始(電源オン)から所定時間が経過するまでの間に、共有メモリ25のメモリ位置1にフラグがセットされていることを確認した場合には起動に成功したと認識し、そのフラグをリセットする。複合機10の起動開始から所定時間が経過しても、共有メモリ25のメモリ位置1にフラグがセットされていないことを確認した場合には起動に失敗したと認識する。
【0063】
またCPU(B)12は、複合機10の通常動作中に、共有メモリ25のメモリ位置2にフラグがセットされていないことを確認した場合にはRAM14が正常であると認識し、フラグがセットされていることを確認した場合にはRAM14に異常が発生したと認識し、そのフラグをリセットする。また、複合機10の通常動作中に、共有メモリ25のメモリ位置3にフラグがセットされていないことを確認した場合にはハードディスク装置16が正常であると認識し、フラグがセットされていることを確認した場合にはハードディスク装置16に異常が発生したと認識し、そのフラグをリセットする。
【0064】
なお、CPU(A)11がウォッチドッグタイマなどによって周期的に共有メモリ25の所定のメモリ位置に正常フラグをセットするようにし、CPU(B)12がその所定のメモリ位置の正常フラグを確認するとリセットする。CPU(B)12が共有メモリ25をリードしたとき上記の所定のメモリ位置に正常フラグがセットされていない場合は、CPU(A)11の処理異常(ファームウェア異常による暴走中)と判断するようにしてもよい。
【0065】
またCPU(B)12は、CPU(A)11がハードウェアチェックプログラムを実行し、共有メモリ25の所定のメモリ位置(たとえばメモリ位置n1)にフラグがセットされていることを確認した場合にはハードウェアが正常であると認識し、そのフラグをリセットする。共有メモリ25のメモリ位置2にフラグがセットされていることを確認した場合にはRAM14に異常が発生したと認識し、そのフラグをリセットする。メモリ位置3にフラグがセットされていることを確認した場合にはハードディスク装置16に異常が発生したと認識し、そのフラグをリセットする。
【0066】
またCPU(B)12は、CPU(A)11がブートプログラム書き換えプログラムを実行し、共有メモリ25の所定のメモリ位置(たとえばメモリ位置n2)にフラグがセットされていることを確認した場合にはブートプログラムの書き換えが完了したと認識し、そのフラグをリセットする。また、CPU(A)11がファームウェア書き換えプログラムを実行し、共有メモリ25の所定のメモリ位置(たとえばメモリ位置n3)にフラグがセットされていることを確認した場合にはファームウェアの書き換えが完了したと認識し、そのフラグをリセットする。
【0067】
次に、複合機10の動作について説明する。
【0068】
本実施形態では、以下の2つの事例における対処動作を説明する。
事例1.ハードウェアもしくはブートプログラムに問題があるためにファームウェアが起動しない場合。
事例2.ハードウェアもしくは組み込まれたファームウェアに問題があるために内部異常が発生した場合。
【0069】
事例1における対処動作の概要は以下の通りである。
【0070】
1.複合機10の電源がオンにされると、CPU(B)12は所定時間内に起動処理が完了したか否かを確認する。
【0071】
2.CPU(A)11から共有メモリ25を介して所定時間内に起動完了の通知を受信しない場合は、CPU(B)12はブートエラーが発生したと認識する。
【0072】
3.CPU(B)12は、ブートエラーの原因がハードウェアの異常であるかブートプログラムの異常であるかを判別するために、まずハードウェアチェックプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させる。
【0073】
4.CPU(A)11の再起動開始(もしくはCPU(A)11によるハードウェアチェックプログラムの実行開始)から所定時間内に、CPU(A)11から共有メモリ25を介してハードウェア正常の通知を受信しない場合とハードウェア異常の通知を受信した場合は(ハードウェアチェックプログラムの起動不可または動作異常)、CPU(B)12は異常の発生をサービスセンターに通知する。ハードウェア正常の通知を受信した場合は、CPU(B)12はハードウェアが正常でブートプログラムに異常が発生した可能性があると認識し、ブートプログラム書き換えプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させる。
【0074】
5.CPU(A)11の再起動開始(もしくはCPU(A)11によるブートプログラム書き換えプログラムの実行開始)から所定時間内に、CPU(A)11から共有メモリ25を介してブートプログラムの書き換え完了の通知を受信しない場合は(ブートプログラム書き換えプログラムの起動不可または動作異常)、CPU(B)12は異常の発生をサービスセンターに通知する。ブートプログラムの書き換え完了の通知を受信した場合は、CPU(B)12はそのブートプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させる。
【0075】
事例2における対処動作の概要は以下の通りである。
【0076】
1.CPU(A)11は起動処理を完了するとファームウェアを実行して複合機10の動作を制御すると共に、定期的やジョブの間などにシステムチェック(ハードウェアチェックなど)を行う。
【0077】
2.CPU(A)11は内部異常(ハードウェア異常/ファームウェア異常)などのシステムエラーを検出した場合には、そのシステムエラーの異常を共有メモリ25に書き込む。
【0078】
3.CPU(B)12は定期的にシステムエラーの異常を確認する。
【0079】
4.CPU(A)11から共有メモリ25を介してシステムエラーの異常の通知を受信した場合は、CPU(B)12はシステムエラーが発生したと認識する。
【0080】
5.CPU(B)12は、システムエラーの原因(異常箇所)を詳細に特定するために、ハードウェアチェックプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させる。
【0081】
6.CPU(A)11の再起動開始(もしくはCPU(A)11によるハードウェアチェックプログラムの実行開始)から所定時間内に、CPU(A)11から共有メモリ25を介してハードウェア正常の通知を受信しない場合とハードウェア異常の通知(異常箇所が特定された通知)を受信した場合は(ハードウェアチェックプログラムの起動不可または動作異常)、CPU(B)12は異常の発生をサービスセンターに通知する。ハードウェア正常の通知を受信した場合は、CPU(B)12はハードウェアが正常でファームウェアに異常が発生した可能性があると認識し、ファームウェア書き換えプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させる。
【0082】
7.CPU(A)11の再起動開始(もしくはCPU(A)11によるファームウェア書き換えプログラムの実行開始)から所定時間内に、CPU(A)11から共有メモリ25を介してファームウェアの書き換え完了の通知を受信しない場合は(ファームウェア書き換えプログラムの起動不可または動作異常)、CPU(B)12は異常の発生をサービスセンターに通知する。ファームウェアの書き換え完了の通知を受信した場合は、CPU(B)12はブートプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させ、この再起動による起動処理の完了後に、書き換えられたファームウェアをCPU(A)11に実行させる。
【0083】
上記の事例1および事例2における対処動作の詳細を図3〜図9を用いて説明する。なお、図中ではハードウェア(hardware)を「HW」、ブートプログラム(boot program)を「BP」、ファームウェア(firmware)を「FW」と表記している。
【0084】
また、CPU(B)12が行う起動プログラムの切り替え(再起動後のCPU(A)11に実行させるプログラムの設定)は、起動後に実行するプログラムの格納先を示す情報(ベクター)をCPU(B)12が書き換えることによって行う。CPU(B)12がサービスセンターに対して行う通知は、電子メールなどを使用して行う。
【0085】
図3は、複合機10のCPU(A)11による起動処理の動作の流れを示す図である。
【0086】
複合機10の電源がオンにされると、CPU(A)11はブートプログラムを実行して起動処理を開始する(ステップS101)。起動が完了すると、起動完了通知を行う(ステップS102)。この通知は、図2に示したように、共有メモリ25のメモリ位置1にフラグをセットすることで行う。
【0087】
続いてCPU(A)11は、ファームウェアを実行して複合機10の動作を制御すると共に、所定のタイミングでシステムチェックを行い(ステップS103)、システムエラーの発生を監視する(ステップS104;No)。システムエラーの発生を検出した場合は(ステップS104;Yes)、システムエラー発生通知を行う(ステップS105/End)。この通知は、図2に示したように、検出した異常に対応する共有メモリ25のメモリ位置にフラグをセットすることで行う。
【0088】
図7は、複合機のCPU(B)12によるエラー対処処理の動作を示す流れ図である。
【0089】
複合機10の電源がオンにされると、CPU(B)12はCPU(A)11から所定時間内に起動完了通知を受信するか否かを監視する(ステップS501;No→ステップS502;No)。CPU(A)11から起動完了通知を受信せずに所定時間を経過した場合は(ステップS502;Yes)、CPU(B)12は起動に失敗したと判断し、ブートエラー対処処理をサブルーチンで行う(ステップS503)。
【0090】
CPU(A)11から所定時間内に起動完了通知を受信した場合は(ステップS501;Yes(共有メモリ25のメモリ位置1のフラグ・セット確認))、CPU(B)12は起動に成功したと判断し、複合機10の通常動作中にCPU(A)11からシステムエラー発生通知を受信するか否かを監視する(ステップS504;No)。CPU(A)11からシステムエラー発生通知を受信した場合は(ステップS504;Yes(共有メモリ25の所定のメモリ位置のフラグ・セット確認))、CPU(B)12はシステムエラー対処処理をサブルーチンで行う(ステップS505)。
【0091】
図8は、図7のS503によるブートエラー対処処理のサブルーチンの動作を示す流れ図である。
【0092】
CPU(B)12は、再起動後のCPU(A)11が実行する起動プログラムをハードウェアチェックプログラムに変更し(ステップS601)、CPU(A)11を再起動させる(ステップS602)。ここでCPU(B)12は、起動後に実行するプログラムの格納先を示す情報を、ブートプログラムを示す情報からハードウェアチェックプログラムを示す情報に書き換え、CPU(A)11を再起動させる。
【0093】
CPU(A)11は、この再起動でハードウェアチェックプログラムを実行し、ハードウェアに異常が発生していないかチェックを行う(図4参照)。
【0094】
CPU(B)12は、CPU(A)11から所定時間内にハードウェアのチェック結果(正常/異常)の通知を受信しない場合は(ステップS603;No)、サービスセンターに当該複合機10の異常発生(起動不可異常)を通知する(ステップS610/End)。CPU(A)11から所定時間内にハードウェアのチェック結果の通知を受信し(ステップS603;Yes)、受信したのがハードウェア異常の通知である場合は(ステップS604;No)、CPU(B)12はサービスセンターに当該複合機10のハードウェア異常を通知する(ステップS610/End)。この場合は、CPU(A)11からハードウェアの異常箇所が通知されるため、CPU(B)12はそのハードウェアの異常箇所もサービスセンターに通知する。
【0095】
またCPU(B)12は、CPU(A)11から所定時間内にハードウェアのチェック結果の通知を受信し(ステップS603;Yes)、受信したのがハードウェア正常の通知である場合は(ステップS604;Yes)、再起動後のCPU(A)11が実行する起動プログラムをブートプログラム書き換えプログラムに変更し(ステップS605)、CPU(A)11を再起動させる(ステップS606)。ここでCPU(B)12は、起動後に実行するプログラムの格納先を示す情報を、ハードウェアチェックプログラムを示す情報からブートプログラム書き換えプログラムを示す情報に書き換え、CPU(A)11を再起動させる。
【0096】
CPU(A)11は、この再起動でブートプログラム書き換えプログラムを実行し、ブートプログラムの書き換えを行う(図5参照)。
【0097】
CPU(B)12は、CPU(A)11から所定時間内にブートプログラム書き換え完了通知を受信しない場合は(ステップS607;No)、サービスセンターに当該複合機10の異常発生(ブートプログラム書き換え不可異常)を通知する(ステップS610)。CPU(A)11から所定時間内にブートプログラム書き換え完了通知を受信した場合は(ステップS607;Yes)、CPU(B)12は再起動後のCPU(A)11が実行する起動プログラムを書き換え後のブートプログラムに変更し(ステップS608)、CPU(A)11を再起動させる(ステップS609/Return)。ここでCPU(B)12は、起動後に実行するプログラムの格納先を示す情報を、ブートプログラム書き換えプログラムを示す情報からブートプログラムを示す情報に書き換え、CPU(A)11を再起動させる。
【0098】
CPU(A)11は、この再起動で書き換え後のブートプログラムを実行し、ブートプログラムに基づいて起動処理を行う(図3参照)。ブートエラーの原因がブートプログラムの異常(バグ)にあり、ブートプログラムの書き換えによって修復された場合には、CPU(A)11はその書き換え後のブートプログラムを実行すると、起動を正常に完了させる。
【0099】
図9は、図7のS505によるシステムエラー対処処理のサブルーチンの動作を示す流れ図である。
【0100】
図7におけるステップS701〜S704およびS710は、図6におけるステップS601〜S604およびS610と同じ内容であり、ここでは説明を省略する。
【0101】
CPU(B)12は、CPU(A)11から所定時間内にハードウェアのチェック結果の通知を受信し(ステップS703;Yes)、受信したのがハードウェア正常の通知である場合は(ステップS704;Yes)、再起動後のCPU(A)11が実行する起動プログラムをファームウェア書き換えプログラムに変更し(ステップS705)、CPU(A)11を再起動させる(ステップS706)。ここでCPU(B)12は、起動後に実行するプログラムの格納先を示す情報を、ハードウェアチェックプログラムを示す情報からファームウェア書き換えプログラムを示す情報に書き換え、CPU(A)11を再起動させる。
【0102】
CPU(A)11は、この再起動でファームウェア書き換えプログラムを実行し、ファームウェアの書き換えを行う(図6参照)。
【0103】
CPU(B)12は、CPU(A)11から所定時間内にファームウェア書き換え完了通知を受信しない場合は(ステップS707;No)、サービスセンターに当該複合機10の異常発生(ファームウェア書き換え不可異常)を通知する(ステップS710)。CPU(A)11から所定時間内にファームウェア書き換え完了通知を受信した場合は(ステップS707;Yes)、CPU(B)12は再起動後のCPU(A)11が実行する起動プログラムをブートプログラムに変更し(ステップS708)、CPU(A)11を再起動させる(ステップS709/Return)。ここでCPU(B)12は、起動後に実行するプログラムの格納先を示す情報を、ファームウェア書き換えプログラムを示す情報からブートプログラムを示す情報に書き換え、CPU(A)11を再起動させる。
【0104】
CPU(A)11は、この再起動でブートプログラムを実行し、ブートプログラムに基づいて起動処理を行う(図3参照)。起動を完了すると、CPU(A)11は書き換え後のファームウェアを実行する。システムエラーの原因がファームウェアの異常(バグ)にあり、ファームウェアの書き換えによって修復された場合には、CPU(A)11はその書き換え後のファームウェアを実行すると、複合機10を正常に動作させる。
【0105】
図4は、CPU(A)11によるハードウェアチェック動作を示す流れ図である。
【0106】
CPU(A)11は、ハードウェアチェックプログラムを実行し、プログラムに基づいて複合機10のハードウェアに異常が発生していないかチェックを行う(ステップS201)。ハードウェアの異常を検出しない場合は(ステップS202;No)、CPU(B)12にハードウェア正常を通知する(ステップS203/End)。ハードウェアの異常を検出した場合は(ステップS202;Yes)、CPU(B)12にハードウェア異常を通知する(ステップS204/End)。ハードウェア異常の通知では、特定した異常箇所も通知する。
【0107】
図5は、CPU(A)11によるブートプログラム書き換え動作を示す流れ図である。
【0108】
CPU(A)11は、ブートプログラム書き換えプログラムを実行し、プログラムに基づいてブートプログラムの書き換え処理を行う(ステップS301)。ここでは、ROM13に格納されているブートプログラムを、複合機10内のハードディスク装置16または外部記憶装置から取得した書き換え用のブートプログラムで上書きする。
【0109】
CPU(A)11は、ブートプログラムの書き換えを完了すると、CPU(B)12にブートプログラム書き換え完了を通知する(ステップS302/End)。
【0110】
図6は、CPU(A)11によるファームウェア書き換え動作を示す流れ図である。
【0111】
CPU(A)11は、ファームウェア書き換えプログラムを実行し、プログラムに基づいてファームウェアの書き換え処理を行う(ステップS401)。ここでは、ROM13に格納されているファームウェアを、複合機10内のハードディスク装置16または外部記憶装置から取得した書き換え用のファームウェアで上書きする。
【0112】
CPU(A)11は、ファームウェアの書き換えを完了すると、CPU(B)12にファームウェア書き換え完了を通知する(ステップS402/End)。
【0113】
このように、本実施形態に係る複合機10は、CPU(A)11(メインCPU)による起動処理でブートエラーとなり、CPU(A)11自身がそのブートエラーの診断や修復を行えない状態(ブートプログラムの暴走状態など)になっても、CPU(B)12(サブCPU)によって、ハードウェアチェックプログラムやブートプログラム書き換えプログラムを再起動後のCPU(A)11が実行するように設定し、CPU(A)11を再起動させて、CPU(A)11にそのプログラムを実行させることができる。また、CPU(A)11によるファームウェアの実行中(通常動作中)にシステムエラーとなった場合も、CPU(B)12によって、ハードウェアチェックプログラムやファームウェア書き換えプログラムを再起動後のCPU(A)11が実行するように設定し、CPU(A)11を再起動させて、CPU(A)11にそのプログラムを実行させることができる。これにより、複合機10はブートエラーやシステムエラーなどの動作の異常に自己対処することができる。
【0114】
またCPU(B)12は、CPU(A)11にハードウェアチェックプログラムを実行させた場合は、CPU(A)11からのハードウェアチェック結果の通知(非通知を含む)に応じた対処動作を行う。ハードウェア正常の通知を受けた場合には、CPU(A)11に実行させるプログラム(ブートプログラム書き換えプログラム/ファームウェア書き換えプログラム)を決定し、そのプログラムを再起動後のCPU(A)11に実行させる。これにより、複合機10はCPU(A)11による動作の異常を自己診断し、診断結果に応じて自己対処できる。
【0115】
また、CPU(A)11にブートプログラム書き換えプログラムを実行させた場合は、ブートプログラムを書き換えて自己修復し、ブートエラーから自己回復することができる。CPU(A)11にファームウェア書き換えプログラムを実行させた場合は、ファームウェアを書き換えて自己修復し、システムエラーから自己回復することができる。
【0116】
また、CPU(A)11は起動完了後にファームウェアを実行すると、ファームウェアに含まれているシステムエラーチェックプログラムを実行してシステムチェックを行い、システムエラー(CPU(A)11による動作の異常)を検出するとCPU(B)12に通知する。これにより、CPU(B)12がシステムチェックを行う場合に比べて、CPU(B)12の処理負荷が軽減され、CPU(A)11よりもCPU(B)12の処理能力が低い場合に、装置全体のパフォーマンス低下が抑えられる。
【0117】
また、CPU(A)11によるCPU(B)12への通知は共有メモリ25を介して行うことで、CPU(A)11とCPU(B)12が個別に動作し、個々の任意のタイミングに共有メモリ25にアクセスして通知(通信)を行うことができる。
【0118】
以上、本発明の実施形態を図面によって説明してきたが、具体的な構成は実施形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【0119】
たとえば、CPU(A)11による動作の異常(ブートエラー/システムエラー(ハードウェア異常/ファームウェア異常))を検出した場合に実行するプログラムの順番は、実施形態で説明した順番に限らない。たとえば、ブートエラーを検出した場合には、先にブートプログラム書き換えプログラムを実行する。ブートプログラムの書き換えを行ってもブートエラーが解消されなければ、ハードウェアチェックプログラムを実行するようにしてもよい。また、システムエラーを検出した場合には、先にファームウェア書き換えプログラムを実行する。ファームウェアの書き換えを行ってもシステムエラーが解消されなければ、ハードウェアチェックプログラムを実行するようにしてもよい。
【0120】
また、CPU(B)12がCPU(A)11による動作の異常を検出した場合にサービスセンターの通知する情報は、実施形態で説明したものに限らない。たとえば、CPU(B)12がCPU(A)11にブートプログラム書き換えプログラムを実行させる場合、CPU(A)11によってブートプログラムの書き換えが実際に行われた場合、CPU(B)12がCPU(A)11にファームウェア書き換えプログラムを実行させる場合、CPU(A)11によってファームウェアの書き換えが実際に行われた場合などに、CPU(B)12がその情報をサービスセンターに通知するようにしてもよい。
【0121】
また、CPU(B)12がサービスセンターに電子メールなどで通知する他に、CPU(B)12が複合機10の表示部17にサービスセンターの連絡先などを表示し、ユーザや管理者がサービスセンターに複合機10の異常を通知できるようにしてもよい。
【0122】
また、本発明は実施形態で説明した複合機に限らず、複写機、プリンタ機、ファクシミリ機などの他の画像形成装置も対象にすることができる。
【符号の説明】
【0123】
10…複合機
11…CPU(A)
12…CPU(B)
13…ROM
14…RAM
15…不揮発メモリ
16…ハードディスク装置
17…表示部
18…操作部
19…ファクシミリ通信部
20…ネットワーク通信部
21…画像処理部
22…スキャナ部
23…プリンタ部
24…バス
25…共有メモリ
【技術分野】
【0001】
本発明は、動作の異常に対処する機能を備えた画像形成装置に関する。
【背景技術】
【0002】
コンピュータシステムはブートと呼ばれる起動処理を行って起動し、何らかの異常で起動処理に失敗すると起動できない状態になる。この起動不可状態に陥るブートエラーは、システムのトラブル修復において重要であるため、様々な対処技術が考案されている。
【0003】
たとえば、同一内容のブートプログラム(起動プログラム)を格納したフラッシュROM(Read Only Memory)を2つ搭載し、一方のフラッシュROM内のブートプログラムに基づくブート制御が異常で、他方のフラッシュROM内のブートプログラムに基づくブート制御が正常である場合には、正常な方のブートプログラムで異常な方のブートプログラムを更新し修復する技術がある(特許文献1参照)。
【0004】
また、処理用と監視用の2つのCPU(Central Processing Unit)を備えた情報処理装置において、処理用のCPUはブート時の状態(ログ、メッセージなど)をフラッシュメモリに記憶する。ブートエラーが発生し、ブートリカバリボタンが操作されると、監視用のCPUは電話回線を介して情報処理装置をサービスセンターに接続させ、フラッシュメモリ内のデータを読み出してサービスセンターに伝送する。このデータからサービスセンターのスタッフがブートエラーの原因を解析し、ソフトウェア障害の場合には電話回線を介して所定のコマンドを処理用のCPUに伝送し、障害除去処理を実行させる技術がある(特許文献2参照)。
【0005】
また、コンピュータがブートに失敗すると、CPUがBIOS中の所定のコードを実行して遠隔診断修復コンピュータとの通信を確立させる。この遠隔診断修復コンピュータが内部の診断修復プログラムをオペレータの操作によってまたは自動で、ブートに失敗した通信相手のコンピュータに実行させる技術がある(特許文献3参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−122151号公報
【特許文献2】特開平10−161900号公報
【特許文献3】特表平11−504459号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
同じブートプログラムを2つのフラッシュROMに格納し、異常な方を正常な方で更新し修復する特許文献1の技術は、両方のブートプログラムに異常が発生した場合には対処することができない。また、同じブートプログラムを2つ記憶することになるため、記憶容量の無駄が大きい。
【0008】
ブートエラーの発生した情報処理装置がサービスセンターと通信して診断・修復される特許文献2の技術、および、ブートに失敗したコンピュータが遠隔診断修復コンピュータと通信して診断修復プログラムを実行する特許文献3の技術は、ブートエラーを自己診断および自己修復することができない。また、通信機能を持たない装置はブートエラーを診断・修復することができない。
【0009】
また、コンピュータシステムにおける動作の異常は、ブートエラーの他に、ハードウェアやファームウェアなどの異常によるシステムエラーがある。上記の特許文献1〜3の技術では、このシステムエラーに自己対処することもできない。
【0010】
本発明は、上記の問題を解決しようとするものであり、ブートエラーやシステムエラーなどの動作の異常に自己対処することができる画像形成装置を提供することを目的としている。
【課題を解決するための手段】
【0011】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【0012】
[1]画像データに基づく画像を記録紙に形成する画像形成部と、
前記画像形成部を制御する第1のCPUと、
前記第1のCPUによる動作を監視し、この監視結果に応じたプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる第2のCPUと、
を備えた画像形成装置。
【0013】
上記発明では、画像形成部を制御する第1のCPUによる動作を第2のCPUが監視する。第2のCPUは、この監視結果に応じたプログラムを再起動後の第1のCPUが実行するように設定して第1のCPUを再起動させる。
【0014】
たとえば、第1のCPUによる動作が異常となり、第1のCPU自身がその異常の診断や修復を行えない状態(たとえば、プログラムの暴走状態)になっても、第2のCPUによって、第1のCPUによる動作の監視結果に応じたプログラムを設定し第1のCPUを再起動させて、第1のCPUにそのプログラムを実行させることができる。このプログラムは、第1のCPUによる動作を監視した結果に応じて、たとえば、異常を診断するプログラムや異常を修復するプログラムなどが設定される。これにより、画像形成装置はブートエラーやシステムエラーなどの動作の異常に自己対処することができる。
【0015】
[2]前記第2のCPUは、前記監視によって前記第1のCPUによる起動処理の動作の異常を検出した場合には、前記起動処理の動作の異常に対処するプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする[1]に記載の画像形成装置。
【0016】
上記発明では、第1のCPUによる起動処理の動作の異常を検出した場合には、第2のCPUはその異常に対処するプログラムを再起動後の第1のCPUに実行させる。これにより、画像形成装置は第1のCPUによる起動処理の動作の異常に自己対処できる。
【0017】
[3]前記第2のCPUは、前記監視によって前記第1のCPUによる動作の異常を検出した場合には、前記異常を診断して診断結果を通知する診断プログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させ、この再起動後に前記第1のCPUから通知される前記診断結果に応じて前記第1のCPUに実行させるプログラムを決定し、このプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする[1]または[2]に記載の画像形成装置。
【0018】
上記発明では、第1のCPUによる動作の異常を検出した場合には、第2のCPUはその異常を診断するプログラムを再起動後の第1のCPUに実行させる。第1のCPUが診断プログラムを実行し、異常を診断して第2のCPUに通知した診断結果に応じて、第2のCPUは第1のCPUに実行させるプログラムを決定し、そのプログラムを再起動後の第1のCPUに実行させる。これにより、画像形成装置は第1のCPUによる動作の異常を自己診断し、診断結果に応じて自己対処できる。
【0019】
[4]前記第2のCPUは、前記監視によって前記第1のCPUが実行する所定のプログラムに異常があると判断した場合は、前記所定のプログラムの書き換えを行う書き換えプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させ、この再起動後に前記第1のCPUによって前記所定のプログラムの書き換えが行われると、この書き換え後の所定のプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする[1]〜[3]のいずれか1項に記載の画像形成装置。
【0020】
上記発明では、第1のCPUが実行する所定のプログラム(たとえば、ブートプログラムやファームウェアなど)に異常があると判断した場合には、第2のCPUはその所定のプログラムの書き換えを行う書き換えプログラムを再起動後の第1のCPUに実行させる。再起動後に第1のCPUによって所定のプログラムの書き換えが行われると、第2のCPUは、この書き換え後の所定のプログラムを再起動後の第1のCPUに実行させる。これにより、画像形成装置は所定のプログラムの異常をそのプログラムの書き換えによって自己修復できる。
【0021】
[5]前記第1のCPUが起動完了後に実行するファームウェアは、前記第1のCPUによる動作の異常を検出して前記第2のCPUに通知する機能を前記第1のCPUに実行させるエラーチェックプログラムを含む
ことを特徴とする[1]〜[4]のいずれか1項に記載の画像形成装置。
【0022】
上記発明では、第1のCPUは起動完了後にファームウェアを実行すると、ファームウェアに含まれているエラーチェックプログラムを実行し、第1のCPUによる動作の異常を検出して第2のCPUに通知する。これにより、第2のCPUが第1のCPUによる動作の異常を検出する場合に比べて、第2のCPUの処理負荷が軽減され、第1のCPUよりも第2のCPUの処理能力が低い場合に、装置全体のパフォーマンス低下が抑えられる。
【0023】
[6]前記第1のCPUは、前記第1のCPUによる動作の状況を前記第2のCPUに通知し、
前記第2のCPUは、前記通知に基づいて前記監視を行う
ことを特徴とする[1]〜[5]のいずれか1項に記載の画像形成装置。
【0024】
上記発明では、第1のCPUは、第1のCPUによる動作の状況を第2のCPUに通知し、第2のCPUはこの通知に基づいて、第1のCPUによる動作の監視を行う。たとえば、第1のCPUが、第1のCPUによる動作の異常を検出して第2のCPUに通知した場合には、第2のCPUはその第1のCPUによる動作の異常を認識する。また、第1のCPUがたとえばプログラムの暴走状態に陥って動作の状況を第2のCPUに通知できない場合には、第2のCPUは第1のCPUからの通知が無いことで第1のCPUによるプログラムの暴走状態を認識する。
【0025】
[7]前記第1のCPUによる前記第2のCPUへの通知はメモリを介して行う
ことを特徴とする[5]または[6]に記載の画像形成装置。
【0026】
上記発明では、第1のCPUによる第2のCPUへの通知を、メモリを介して行うことで、第1のCPUと第2のCPUが個別に動作し、個々の任意のタイミングにメモリにアクセスして通知を行うことができる。
【発明の効果】
【0027】
本発明の画像形成装置によれば、ブートエラーやシステムエラーなどの動作の異常に自己対処することができる。
【図面の簡単な説明】
【0028】
【図1】本発明の一実施形態に係る画像形成装置としての複合機の構成を示すブロック図である。
【図2】共有メモリにおける複数のメモリ位置と、各メモリ位置を通じてCPU(A)からCPU(B)へ通知される情報の一例を示す図である。
【図3】複合機のCPU(A)による起動処理の動作を示す流れ図である。
【図4】複合機のCPU(A)によるハードウェアチェック動作を示す流れ図である。
【図5】複合機のCPU(A)によるブートプログラム書き換え動作を示す流れ図である。
【図6】複合機のCPU(A)によるファームウェア書き換え動作を示す流れ図である。
【図7】複合機のCPU(B)によるエラー対処処理の動作を示す流れ図である。
【図8】図7のS503によるブートエラー対処処理のサブルーチンの動作を示す流れ図である。
【図9】図7のS505によるシステムエラー対処処理のサブルーチンの動作を示す流れ図である。
【発明を実施するための形態】
【0029】
以下、図面に基づき本発明の実施形態を説明する。
【0030】
図1は、本発明の一実施形態に係る画像形成装置としての複合機10の構成を示すブロック図である。
【0031】
複合機10は、原稿の画像を光学的に読み取ってその複製画像を記録紙に印刷して出力するコピー機能、読み取った原稿の画像データをファイルにして保存したり端末装置やサーバなどへ転送したりするスキャン機能、端末装置から受信した印刷データに係る画像や当該複合機10に保存されている画像データに係る画像を記録紙に印刷して出力するプリンタ機能、画像データを送受信するファクシミリ機能などを備えている。
【0032】
また複合機10は、2つのCPUを備えたマルチプロセッサシステムの装置であり、当該複合機10を起動し当該複合機10の動作を制御するメインCPU(第1のCPU)と、メインCPUによる動作を監視し、この監視結果に応じたプログラムを再起動後のメインCPUが実行するように設定してメインCPUを再起動させるサブCPU(第2のCPU)とを備えている。この2つのCPUの処理能力は同じでもよいし異なっていてもよい。処理能力が異なる場合には、処理能力の高い方をメインCPUとし、処理能力の低い方をサブCPUとする。
【0033】
メインCPUは、ブートプログラムを実行して起動処理(ブート)を行い、当該複合機10を起動させる機能と、起動完了後にファームウェアを実行して当該複合機10の動作を制御する機能とを備えている。サブCPUは、上記の監視によってメインCPUによる起動処理の異常(ブートエラー)または動作の異常(システムエラー)を検出した場合には、その異常に対処するプログラム(異常対処プログラム)を再起動後のメインCPUが実行するように設定して(起動プログラムの切り替えを行って)、メインCPUを再起動させる機能を備えている。メインCPUは、サブCPUによって再起動されると、サブCPUによって設定された異常対処プログラムを実行し、異常に対処する動作を行う。
【0034】
異常対処プログラムは、複合機10内のハードウェアをチェックしてチェック結果をサブCPUに通知(報告)するハードウェアチェックプログラム、ブートプログラムの書き換えを行うブートプログラム書き換えプログラム、ファームウェアの書き換えを行うファームウェア書き換えプログラムなどである。
【0035】
なお、異常対処プログラムの種類はこれらに限定されない。異常(エラー)の内容に応じた各種の対処プログラムを用いてその異常に対処することができる。
【0036】
複合機10は、メインCPUとしてのCPU(A)11と、サブCPUとしてのCPU(B)12と、ROM(Read Only Memory(BIOS ROM;Basic Input/Output System Read Only Memory))13と、RAM(Random Access Memory)14と、不揮発メモリ15と、ハードディスク装置(HDD;Hard Disk Drive)16と、表示部17と、操作部18と、ファクシミリ通信部19と、ネットワーク通信部20と、画像処理部21と、スキャナ部22と、プリンタ部23とがバス24に接続され、CPU(A)11とCPU(B)12とに共有メモリ(通信用メモリ)25が接続されて構成される。
【0037】
CPU(A)11は、ROM13に格納されているブートプログラムを実行して起動処理を行い、複合機10を起動させる。複合機10の起動を完了すると、ROM13に格納されているファームウェアを実行して複合機10の動作を制御する。
【0038】
CPU(B)12は、ROM13に格納されているプログラムを実行してCPU(A)11による動作(起動を含む)を監視し、監視結果に応じて起動プログラムの切り替えおよびCPU(A)11の再起動を行う。
【0039】
なお、CPU(B)12(サブCPU)は、電源からCPU(A)11(メインCPU)に電力が供給されていない状態(電源オフ状態)でも、電源から常時電力が供給され常時動作を継続できる構成としてもよい。
【0040】
共有メモリ25は、CPU(A)11とCPU(B)12にアクセスされるメモリであり、両CPU間で通信(プロセス間通信)を行うために使用される。本実施形態では、CPU(B)12がCPU(A)11による動作を監視するための情報を、CPU(A)11からCPU(B)12へ通知するために使用される。
【0041】
ROM13は、記憶内容を書き換え可能なフラッシュROM(フラッシュメモリ)であり、CPU(A)11によって実行されるプログラム(ブートプログラム、ファームウェアなど)と、CPU(B)12によって実行されるプログラム(CPU(A)11による動作を監視するためのプログラム)などを格納する。RAM14は、CPU(A)11およびCPU(B)12がプログラムを実行する際に各種データを一時的に格納するワークメモリとして使用されるほか、画像データを一時的に保存するための画像メモリなどにも使用される。
【0042】
不揮発メモリ15は、電源がオフにされても記憶が保持されるメモリであり、装置固有の情報や各種の設定情報などが記憶される。ハードディスク装置16は、異常対処プログラムや各種の保存データを格納するほか、入力された画像データなども保存する。
【0043】
なお、異常対処プログラムはハードディスク装置16ではなくROM13に格納するようにしてもよい。また異常対処プログラムは、複合機10とネットワークで接続された外部記憶装置(ストレージ)に格納しておき、複合機10がその外部記憶装置にアクセスして実行するようにしてもよい。異常対処プログラムにおけるブートプログラム書き換えプログラムがROM13内のブートプログラムを書き換えるのに使用する書き換え用のブートプログラムは、内蔵のハードディスク装置16に記憶しておくようにしてもよく外部記憶装置から取得するようにしてもよい。異常対処プログラムにおけるファームウェア書き換えプログラムがROM13内のファームウェアを書き換えるのに使用する書き換え用のファームウェアは、ハードディスク装置16に記憶しておくようにしてもよく外部記憶装置から取得するようにしてもよい。
【0044】
表示部17は、液晶ディスプレイなどで構成され、操作画面、設定画面、案内画面などの各種の画面を表示する。操作部18は、スタートボタン、ストップボタン、テンキーなどの各種のボタン類と、液晶ディスプレイの表面に設けられて押下された座標位置を検出するタッチパネルなどで構成され、ユーザが複合機10に対して行う各種の操作を受け付ける。
【0045】
ファクシミリ通信部19は、ファクシミリ機能を備えた外部装置と公衆回線を通じて画像データを送受信する。ネットワーク通信部20は、LAN(Local Area Network)などのネットワークを通じて端末装置やサーバなどと通信を行う。
【0046】
画像処理部21は、画像データに対して、画像補正、回転、拡大/縮小、圧縮/伸張など各種の画像処理を施す。
【0047】
スキャナ部22は、原稿を光学的に読み取って画像データを取得する。スキャナ部22は、たとえば、原稿に光を照射する光源と、その反射光を受けて原稿を幅方向に1ライン分読み取るラインイメージセンサと、ライン単位の読取位置を原稿の長さ方向に順次移動させる移動手段と、原稿からの反射光をラインイメージセンサに導いて結像させるレンズやミラーなどからなる光学経路と、ラインイメージセンサの出力するアナログ画像信号をデジタルの画像データに変換する変換部などを備えて構成される。
【0048】
プリンタ部23は、画像データに基づく画像を電子写真プロセスによって記録紙上に形成して出力する。プリンタ部23は、たとえば、記録紙の搬送装置と、感光体ドラムと、帯電装置と、入力される画像データに応じて点灯制御されるLD(Laser Diode)と、LDから射出されたレーザ光を感光体ドラム上で走査させる走査ユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有する、いわゆるレーザープリンタとして構成されている。レーザ光に代えてLED(Light Emitting Diode)で感光体ドラムを照射するLEDプリンタのほか他の方式のプリンタであってもかまわない。
【0049】
前述したように、CPU(A)11は複合機10の起動を完了すると、ROM13内のファームウェアを実行して複合機10の動作を制御する。ファームウェアは、所定のタイミングでシステムの異常(エラー)をチェックするプログラム(システムエラーチェックプログラム)を含んでいる。システムチェックは、複合機10内のハードウェアに異常が発生していないことをチェックするハードウェアチェックと、ファームウェアに異常(バグ)が発生していないことをチェックするファームウェアチェックを含む。
【0050】
ハードウェアチェックにおけるチェック対象のハードウェアは、RAM14、ハードディスク装置16、制御基板、DMAコントローラ(Direct Memory Access controller)、FAN(冷却ファン)などである。この場合のハードウェアチェックは、RAM14に対するメモリチェック、ハードディスク装置16に対するHDDチェック、制御基板に対するボードチェック、DMAコントローラなどの制御チップに対するチップチェックなどである。
【0051】
たとえば、メモリチェックとHDDチェックでは、ライト・リードを行って異常が発生していないことをチェックする。ボードチェックでは、CPU(A)11が制御基板の各端子に入力される信号をモニタリングすることで異常が発生していないことをチェックする。端子毎の信号の入出力を確認することで、制御基板のいずれの箇所で異常が発生しているかを特定することができる。またボードチェックでは、CPU(A)11がFAXボードなどの制御基板にエラーチェックのコマンドを送信し応答を受信することで異常が発生していないことをチェックしたり、CPU(A)11が制御基板から割り込みなどでエラー発生の通知を受信し異常が発生したことを認識したりするようにしてもよい。DMAコントローラに対するチップチェックでは、CPU(A)11が内部レジスタを読めない場合に異常が発生したことを認識する。
【0052】
上記のハードウェアチェックを行うタイミングについては、メモリチェックとHDDチェックは定期的やジョブの間に行う。ボードチェックとチップチェックは、ハードウェアを実際に使用するときやジョブの間に行う。
【0053】
CPU(A)11がシステムチェックにおけるハードウェアチェックを行ってハードウェアの異常を検出した場合には、ハードウェアの異常によるシステムエラーが発生したと判断する。
【0054】
また、システムチェックにおけるファームウェアチェックでは、CPU(A)11は、たとえばファームウェアのパラメータの取り得る値として1〜3を想定しているなかで、それ以外の数値(4や5など)となっている場合であってハードウェアに異常がなければ、ファームウェアのバグによるシステムエラーが発生したと判断する。
【0055】
CPU(A)11は上記のシステムチェックを行い、システムエラーが発生したと判断した場合は、CPU(B)12に対してシステムエラーが発生したことを通知する。
【0056】
また、CPU(A)11はハードウェアチェックプログラムを実行したときも、そのプログラムに基づいて複合機10内のハードウェアの異常をチェック(診断)する。チェック対象のハードウェアとチェック方法は、システムチェックにおけるハードウェアチェックと同様である。CPU(A)11は、ハードウェアチェックプログラムを実行してハードウェアの異常をチェックし、異常を検出しない場合はCPU(B)12に対してハードウェア正常を通知し、異常を検出した場合はCPU(B)12に対してハードウェア異常を通知する。
【0057】
図2は、共有メモリ25における複数のメモリ位置(アドレス)と、各メモリ位置を通じてCPU(A)11からCPU(B)12へ通知される情報(通知情報)の一例を示す図である。
【0058】
ここでは、CPU(A)11が通知情報を共有メモリ25に書き込み、CPU(B)12が共有メモリ25から通知情報を読み出す。この通知情報とメモリ位置とを対応付けておくことにより、CPU(A)11からCPU(B)12への通知情報の通信(伝達)を行う。
【0059】
通知情報は、CPU(A)11による動作の状況(ブートエラー/システムエラー/ハードウェアチェックプログラムの実行によるチェック結果/プログラムの書き換え完了など)を示す情報である。たとえば、CPU(A)11による複合機10の起動の状況を示す情報(起動完了)、CPU(A)11による複合機10の動作の制御で使用されるハードウェアの状況を示す情報(メモリ異常、HDD異常)、ハードウェアチェックプログラムを実行した結果、ハードウェアの異常を検出しなかったこと(ハードウェア正常)またはハードウェアの異常を検出したこと(ハードウェア異常および異常箇所)を示す情報、ブートプログラム書き換えプログラムを実行してブートプログラムの書き換えを完了したことを示す情報(ブートプログラム書き換え完了)、ファームウェア書き換えプログラムを実行してファームウェアの書き換えを完了したことを示す情報(ファームウェア書き換え完了)などである。
【0060】
本例では、CPU(A)11は複合機10の起動が完了すると、共有メモリ25におけるメモリ位置1にフラグ(正常フラグ)をセットする。システムチェックにおけるハードウェアチェックと、ハードウェアチェックプログラムの実行によるハードウェアチェックで、RAM14の異常を検出すると共有メモリ25におけるメモリ位置2にフラグ(異常フラグ)をセットする。ハードディスク装置16の異常を検出すると共有メモリ25におけるメモリ位置3にフラグ(異常フラグ)をセットする。
【0061】
またCPU(A)11、ハードウェアチェックプログラムの実行によるハードウェアチェックで、ハードウェアの異常を検出しなければ、所定のメモリ位置(たとえばメモリ位置n1)にフラグ(正常フラグ)をセットする。ブートプログラムの書き換え完了時も所定のメモリ位置(たとえばメモリ位置n2)にフラグ(正常フラグ)をセットし、ファームウェアの書き換え完了時も所定のメモリ位置(たとえばメモリ位置n3)にフラグ(正常フラグ)をセットする。
【0062】
CPU(B)12は、複合機10の起動開始(電源オン)から所定時間が経過するまでの間に、共有メモリ25のメモリ位置1にフラグがセットされていることを確認した場合には起動に成功したと認識し、そのフラグをリセットする。複合機10の起動開始から所定時間が経過しても、共有メモリ25のメモリ位置1にフラグがセットされていないことを確認した場合には起動に失敗したと認識する。
【0063】
またCPU(B)12は、複合機10の通常動作中に、共有メモリ25のメモリ位置2にフラグがセットされていないことを確認した場合にはRAM14が正常であると認識し、フラグがセットされていることを確認した場合にはRAM14に異常が発生したと認識し、そのフラグをリセットする。また、複合機10の通常動作中に、共有メモリ25のメモリ位置3にフラグがセットされていないことを確認した場合にはハードディスク装置16が正常であると認識し、フラグがセットされていることを確認した場合にはハードディスク装置16に異常が発生したと認識し、そのフラグをリセットする。
【0064】
なお、CPU(A)11がウォッチドッグタイマなどによって周期的に共有メモリ25の所定のメモリ位置に正常フラグをセットするようにし、CPU(B)12がその所定のメモリ位置の正常フラグを確認するとリセットする。CPU(B)12が共有メモリ25をリードしたとき上記の所定のメモリ位置に正常フラグがセットされていない場合は、CPU(A)11の処理異常(ファームウェア異常による暴走中)と判断するようにしてもよい。
【0065】
またCPU(B)12は、CPU(A)11がハードウェアチェックプログラムを実行し、共有メモリ25の所定のメモリ位置(たとえばメモリ位置n1)にフラグがセットされていることを確認した場合にはハードウェアが正常であると認識し、そのフラグをリセットする。共有メモリ25のメモリ位置2にフラグがセットされていることを確認した場合にはRAM14に異常が発生したと認識し、そのフラグをリセットする。メモリ位置3にフラグがセットされていることを確認した場合にはハードディスク装置16に異常が発生したと認識し、そのフラグをリセットする。
【0066】
またCPU(B)12は、CPU(A)11がブートプログラム書き換えプログラムを実行し、共有メモリ25の所定のメモリ位置(たとえばメモリ位置n2)にフラグがセットされていることを確認した場合にはブートプログラムの書き換えが完了したと認識し、そのフラグをリセットする。また、CPU(A)11がファームウェア書き換えプログラムを実行し、共有メモリ25の所定のメモリ位置(たとえばメモリ位置n3)にフラグがセットされていることを確認した場合にはファームウェアの書き換えが完了したと認識し、そのフラグをリセットする。
【0067】
次に、複合機10の動作について説明する。
【0068】
本実施形態では、以下の2つの事例における対処動作を説明する。
事例1.ハードウェアもしくはブートプログラムに問題があるためにファームウェアが起動しない場合。
事例2.ハードウェアもしくは組み込まれたファームウェアに問題があるために内部異常が発生した場合。
【0069】
事例1における対処動作の概要は以下の通りである。
【0070】
1.複合機10の電源がオンにされると、CPU(B)12は所定時間内に起動処理が完了したか否かを確認する。
【0071】
2.CPU(A)11から共有メモリ25を介して所定時間内に起動完了の通知を受信しない場合は、CPU(B)12はブートエラーが発生したと認識する。
【0072】
3.CPU(B)12は、ブートエラーの原因がハードウェアの異常であるかブートプログラムの異常であるかを判別するために、まずハードウェアチェックプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させる。
【0073】
4.CPU(A)11の再起動開始(もしくはCPU(A)11によるハードウェアチェックプログラムの実行開始)から所定時間内に、CPU(A)11から共有メモリ25を介してハードウェア正常の通知を受信しない場合とハードウェア異常の通知を受信した場合は(ハードウェアチェックプログラムの起動不可または動作異常)、CPU(B)12は異常の発生をサービスセンターに通知する。ハードウェア正常の通知を受信した場合は、CPU(B)12はハードウェアが正常でブートプログラムに異常が発生した可能性があると認識し、ブートプログラム書き換えプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させる。
【0074】
5.CPU(A)11の再起動開始(もしくはCPU(A)11によるブートプログラム書き換えプログラムの実行開始)から所定時間内に、CPU(A)11から共有メモリ25を介してブートプログラムの書き換え完了の通知を受信しない場合は(ブートプログラム書き換えプログラムの起動不可または動作異常)、CPU(B)12は異常の発生をサービスセンターに通知する。ブートプログラムの書き換え完了の通知を受信した場合は、CPU(B)12はそのブートプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させる。
【0075】
事例2における対処動作の概要は以下の通りである。
【0076】
1.CPU(A)11は起動処理を完了するとファームウェアを実行して複合機10の動作を制御すると共に、定期的やジョブの間などにシステムチェック(ハードウェアチェックなど)を行う。
【0077】
2.CPU(A)11は内部異常(ハードウェア異常/ファームウェア異常)などのシステムエラーを検出した場合には、そのシステムエラーの異常を共有メモリ25に書き込む。
【0078】
3.CPU(B)12は定期的にシステムエラーの異常を確認する。
【0079】
4.CPU(A)11から共有メモリ25を介してシステムエラーの異常の通知を受信した場合は、CPU(B)12はシステムエラーが発生したと認識する。
【0080】
5.CPU(B)12は、システムエラーの原因(異常箇所)を詳細に特定するために、ハードウェアチェックプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させる。
【0081】
6.CPU(A)11の再起動開始(もしくはCPU(A)11によるハードウェアチェックプログラムの実行開始)から所定時間内に、CPU(A)11から共有メモリ25を介してハードウェア正常の通知を受信しない場合とハードウェア異常の通知(異常箇所が特定された通知)を受信した場合は(ハードウェアチェックプログラムの起動不可または動作異常)、CPU(B)12は異常の発生をサービスセンターに通知する。ハードウェア正常の通知を受信した場合は、CPU(B)12はハードウェアが正常でファームウェアに異常が発生した可能性があると認識し、ファームウェア書き換えプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させる。
【0082】
7.CPU(A)11の再起動開始(もしくはCPU(A)11によるファームウェア書き換えプログラムの実行開始)から所定時間内に、CPU(A)11から共有メモリ25を介してファームウェアの書き換え完了の通知を受信しない場合は(ファームウェア書き換えプログラムの起動不可または動作異常)、CPU(B)12は異常の発生をサービスセンターに通知する。ファームウェアの書き換え完了の通知を受信した場合は、CPU(B)12はブートプログラムを再起動後のCPU(A)11が実行するように設定して、CPU(A)11を再起動させ、この再起動による起動処理の完了後に、書き換えられたファームウェアをCPU(A)11に実行させる。
【0083】
上記の事例1および事例2における対処動作の詳細を図3〜図9を用いて説明する。なお、図中ではハードウェア(hardware)を「HW」、ブートプログラム(boot program)を「BP」、ファームウェア(firmware)を「FW」と表記している。
【0084】
また、CPU(B)12が行う起動プログラムの切り替え(再起動後のCPU(A)11に実行させるプログラムの設定)は、起動後に実行するプログラムの格納先を示す情報(ベクター)をCPU(B)12が書き換えることによって行う。CPU(B)12がサービスセンターに対して行う通知は、電子メールなどを使用して行う。
【0085】
図3は、複合機10のCPU(A)11による起動処理の動作の流れを示す図である。
【0086】
複合機10の電源がオンにされると、CPU(A)11はブートプログラムを実行して起動処理を開始する(ステップS101)。起動が完了すると、起動完了通知を行う(ステップS102)。この通知は、図2に示したように、共有メモリ25のメモリ位置1にフラグをセットすることで行う。
【0087】
続いてCPU(A)11は、ファームウェアを実行して複合機10の動作を制御すると共に、所定のタイミングでシステムチェックを行い(ステップS103)、システムエラーの発生を監視する(ステップS104;No)。システムエラーの発生を検出した場合は(ステップS104;Yes)、システムエラー発生通知を行う(ステップS105/End)。この通知は、図2に示したように、検出した異常に対応する共有メモリ25のメモリ位置にフラグをセットすることで行う。
【0088】
図7は、複合機のCPU(B)12によるエラー対処処理の動作を示す流れ図である。
【0089】
複合機10の電源がオンにされると、CPU(B)12はCPU(A)11から所定時間内に起動完了通知を受信するか否かを監視する(ステップS501;No→ステップS502;No)。CPU(A)11から起動完了通知を受信せずに所定時間を経過した場合は(ステップS502;Yes)、CPU(B)12は起動に失敗したと判断し、ブートエラー対処処理をサブルーチンで行う(ステップS503)。
【0090】
CPU(A)11から所定時間内に起動完了通知を受信した場合は(ステップS501;Yes(共有メモリ25のメモリ位置1のフラグ・セット確認))、CPU(B)12は起動に成功したと判断し、複合機10の通常動作中にCPU(A)11からシステムエラー発生通知を受信するか否かを監視する(ステップS504;No)。CPU(A)11からシステムエラー発生通知を受信した場合は(ステップS504;Yes(共有メモリ25の所定のメモリ位置のフラグ・セット確認))、CPU(B)12はシステムエラー対処処理をサブルーチンで行う(ステップS505)。
【0091】
図8は、図7のS503によるブートエラー対処処理のサブルーチンの動作を示す流れ図である。
【0092】
CPU(B)12は、再起動後のCPU(A)11が実行する起動プログラムをハードウェアチェックプログラムに変更し(ステップS601)、CPU(A)11を再起動させる(ステップS602)。ここでCPU(B)12は、起動後に実行するプログラムの格納先を示す情報を、ブートプログラムを示す情報からハードウェアチェックプログラムを示す情報に書き換え、CPU(A)11を再起動させる。
【0093】
CPU(A)11は、この再起動でハードウェアチェックプログラムを実行し、ハードウェアに異常が発生していないかチェックを行う(図4参照)。
【0094】
CPU(B)12は、CPU(A)11から所定時間内にハードウェアのチェック結果(正常/異常)の通知を受信しない場合は(ステップS603;No)、サービスセンターに当該複合機10の異常発生(起動不可異常)を通知する(ステップS610/End)。CPU(A)11から所定時間内にハードウェアのチェック結果の通知を受信し(ステップS603;Yes)、受信したのがハードウェア異常の通知である場合は(ステップS604;No)、CPU(B)12はサービスセンターに当該複合機10のハードウェア異常を通知する(ステップS610/End)。この場合は、CPU(A)11からハードウェアの異常箇所が通知されるため、CPU(B)12はそのハードウェアの異常箇所もサービスセンターに通知する。
【0095】
またCPU(B)12は、CPU(A)11から所定時間内にハードウェアのチェック結果の通知を受信し(ステップS603;Yes)、受信したのがハードウェア正常の通知である場合は(ステップS604;Yes)、再起動後のCPU(A)11が実行する起動プログラムをブートプログラム書き換えプログラムに変更し(ステップS605)、CPU(A)11を再起動させる(ステップS606)。ここでCPU(B)12は、起動後に実行するプログラムの格納先を示す情報を、ハードウェアチェックプログラムを示す情報からブートプログラム書き換えプログラムを示す情報に書き換え、CPU(A)11を再起動させる。
【0096】
CPU(A)11は、この再起動でブートプログラム書き換えプログラムを実行し、ブートプログラムの書き換えを行う(図5参照)。
【0097】
CPU(B)12は、CPU(A)11から所定時間内にブートプログラム書き換え完了通知を受信しない場合は(ステップS607;No)、サービスセンターに当該複合機10の異常発生(ブートプログラム書き換え不可異常)を通知する(ステップS610)。CPU(A)11から所定時間内にブートプログラム書き換え完了通知を受信した場合は(ステップS607;Yes)、CPU(B)12は再起動後のCPU(A)11が実行する起動プログラムを書き換え後のブートプログラムに変更し(ステップS608)、CPU(A)11を再起動させる(ステップS609/Return)。ここでCPU(B)12は、起動後に実行するプログラムの格納先を示す情報を、ブートプログラム書き換えプログラムを示す情報からブートプログラムを示す情報に書き換え、CPU(A)11を再起動させる。
【0098】
CPU(A)11は、この再起動で書き換え後のブートプログラムを実行し、ブートプログラムに基づいて起動処理を行う(図3参照)。ブートエラーの原因がブートプログラムの異常(バグ)にあり、ブートプログラムの書き換えによって修復された場合には、CPU(A)11はその書き換え後のブートプログラムを実行すると、起動を正常に完了させる。
【0099】
図9は、図7のS505によるシステムエラー対処処理のサブルーチンの動作を示す流れ図である。
【0100】
図7におけるステップS701〜S704およびS710は、図6におけるステップS601〜S604およびS610と同じ内容であり、ここでは説明を省略する。
【0101】
CPU(B)12は、CPU(A)11から所定時間内にハードウェアのチェック結果の通知を受信し(ステップS703;Yes)、受信したのがハードウェア正常の通知である場合は(ステップS704;Yes)、再起動後のCPU(A)11が実行する起動プログラムをファームウェア書き換えプログラムに変更し(ステップS705)、CPU(A)11を再起動させる(ステップS706)。ここでCPU(B)12は、起動後に実行するプログラムの格納先を示す情報を、ハードウェアチェックプログラムを示す情報からファームウェア書き換えプログラムを示す情報に書き換え、CPU(A)11を再起動させる。
【0102】
CPU(A)11は、この再起動でファームウェア書き換えプログラムを実行し、ファームウェアの書き換えを行う(図6参照)。
【0103】
CPU(B)12は、CPU(A)11から所定時間内にファームウェア書き換え完了通知を受信しない場合は(ステップS707;No)、サービスセンターに当該複合機10の異常発生(ファームウェア書き換え不可異常)を通知する(ステップS710)。CPU(A)11から所定時間内にファームウェア書き換え完了通知を受信した場合は(ステップS707;Yes)、CPU(B)12は再起動後のCPU(A)11が実行する起動プログラムをブートプログラムに変更し(ステップS708)、CPU(A)11を再起動させる(ステップS709/Return)。ここでCPU(B)12は、起動後に実行するプログラムの格納先を示す情報を、ファームウェア書き換えプログラムを示す情報からブートプログラムを示す情報に書き換え、CPU(A)11を再起動させる。
【0104】
CPU(A)11は、この再起動でブートプログラムを実行し、ブートプログラムに基づいて起動処理を行う(図3参照)。起動を完了すると、CPU(A)11は書き換え後のファームウェアを実行する。システムエラーの原因がファームウェアの異常(バグ)にあり、ファームウェアの書き換えによって修復された場合には、CPU(A)11はその書き換え後のファームウェアを実行すると、複合機10を正常に動作させる。
【0105】
図4は、CPU(A)11によるハードウェアチェック動作を示す流れ図である。
【0106】
CPU(A)11は、ハードウェアチェックプログラムを実行し、プログラムに基づいて複合機10のハードウェアに異常が発生していないかチェックを行う(ステップS201)。ハードウェアの異常を検出しない場合は(ステップS202;No)、CPU(B)12にハードウェア正常を通知する(ステップS203/End)。ハードウェアの異常を検出した場合は(ステップS202;Yes)、CPU(B)12にハードウェア異常を通知する(ステップS204/End)。ハードウェア異常の通知では、特定した異常箇所も通知する。
【0107】
図5は、CPU(A)11によるブートプログラム書き換え動作を示す流れ図である。
【0108】
CPU(A)11は、ブートプログラム書き換えプログラムを実行し、プログラムに基づいてブートプログラムの書き換え処理を行う(ステップS301)。ここでは、ROM13に格納されているブートプログラムを、複合機10内のハードディスク装置16または外部記憶装置から取得した書き換え用のブートプログラムで上書きする。
【0109】
CPU(A)11は、ブートプログラムの書き換えを完了すると、CPU(B)12にブートプログラム書き換え完了を通知する(ステップS302/End)。
【0110】
図6は、CPU(A)11によるファームウェア書き換え動作を示す流れ図である。
【0111】
CPU(A)11は、ファームウェア書き換えプログラムを実行し、プログラムに基づいてファームウェアの書き換え処理を行う(ステップS401)。ここでは、ROM13に格納されているファームウェアを、複合機10内のハードディスク装置16または外部記憶装置から取得した書き換え用のファームウェアで上書きする。
【0112】
CPU(A)11は、ファームウェアの書き換えを完了すると、CPU(B)12にファームウェア書き換え完了を通知する(ステップS402/End)。
【0113】
このように、本実施形態に係る複合機10は、CPU(A)11(メインCPU)による起動処理でブートエラーとなり、CPU(A)11自身がそのブートエラーの診断や修復を行えない状態(ブートプログラムの暴走状態など)になっても、CPU(B)12(サブCPU)によって、ハードウェアチェックプログラムやブートプログラム書き換えプログラムを再起動後のCPU(A)11が実行するように設定し、CPU(A)11を再起動させて、CPU(A)11にそのプログラムを実行させることができる。また、CPU(A)11によるファームウェアの実行中(通常動作中)にシステムエラーとなった場合も、CPU(B)12によって、ハードウェアチェックプログラムやファームウェア書き換えプログラムを再起動後のCPU(A)11が実行するように設定し、CPU(A)11を再起動させて、CPU(A)11にそのプログラムを実行させることができる。これにより、複合機10はブートエラーやシステムエラーなどの動作の異常に自己対処することができる。
【0114】
またCPU(B)12は、CPU(A)11にハードウェアチェックプログラムを実行させた場合は、CPU(A)11からのハードウェアチェック結果の通知(非通知を含む)に応じた対処動作を行う。ハードウェア正常の通知を受けた場合には、CPU(A)11に実行させるプログラム(ブートプログラム書き換えプログラム/ファームウェア書き換えプログラム)を決定し、そのプログラムを再起動後のCPU(A)11に実行させる。これにより、複合機10はCPU(A)11による動作の異常を自己診断し、診断結果に応じて自己対処できる。
【0115】
また、CPU(A)11にブートプログラム書き換えプログラムを実行させた場合は、ブートプログラムを書き換えて自己修復し、ブートエラーから自己回復することができる。CPU(A)11にファームウェア書き換えプログラムを実行させた場合は、ファームウェアを書き換えて自己修復し、システムエラーから自己回復することができる。
【0116】
また、CPU(A)11は起動完了後にファームウェアを実行すると、ファームウェアに含まれているシステムエラーチェックプログラムを実行してシステムチェックを行い、システムエラー(CPU(A)11による動作の異常)を検出するとCPU(B)12に通知する。これにより、CPU(B)12がシステムチェックを行う場合に比べて、CPU(B)12の処理負荷が軽減され、CPU(A)11よりもCPU(B)12の処理能力が低い場合に、装置全体のパフォーマンス低下が抑えられる。
【0117】
また、CPU(A)11によるCPU(B)12への通知は共有メモリ25を介して行うことで、CPU(A)11とCPU(B)12が個別に動作し、個々の任意のタイミングに共有メモリ25にアクセスして通知(通信)を行うことができる。
【0118】
以上、本発明の実施形態を図面によって説明してきたが、具体的な構成は実施形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【0119】
たとえば、CPU(A)11による動作の異常(ブートエラー/システムエラー(ハードウェア異常/ファームウェア異常))を検出した場合に実行するプログラムの順番は、実施形態で説明した順番に限らない。たとえば、ブートエラーを検出した場合には、先にブートプログラム書き換えプログラムを実行する。ブートプログラムの書き換えを行ってもブートエラーが解消されなければ、ハードウェアチェックプログラムを実行するようにしてもよい。また、システムエラーを検出した場合には、先にファームウェア書き換えプログラムを実行する。ファームウェアの書き換えを行ってもシステムエラーが解消されなければ、ハードウェアチェックプログラムを実行するようにしてもよい。
【0120】
また、CPU(B)12がCPU(A)11による動作の異常を検出した場合にサービスセンターの通知する情報は、実施形態で説明したものに限らない。たとえば、CPU(B)12がCPU(A)11にブートプログラム書き換えプログラムを実行させる場合、CPU(A)11によってブートプログラムの書き換えが実際に行われた場合、CPU(B)12がCPU(A)11にファームウェア書き換えプログラムを実行させる場合、CPU(A)11によってファームウェアの書き換えが実際に行われた場合などに、CPU(B)12がその情報をサービスセンターに通知するようにしてもよい。
【0121】
また、CPU(B)12がサービスセンターに電子メールなどで通知する他に、CPU(B)12が複合機10の表示部17にサービスセンターの連絡先などを表示し、ユーザや管理者がサービスセンターに複合機10の異常を通知できるようにしてもよい。
【0122】
また、本発明は実施形態で説明した複合機に限らず、複写機、プリンタ機、ファクシミリ機などの他の画像形成装置も対象にすることができる。
【符号の説明】
【0123】
10…複合機
11…CPU(A)
12…CPU(B)
13…ROM
14…RAM
15…不揮発メモリ
16…ハードディスク装置
17…表示部
18…操作部
19…ファクシミリ通信部
20…ネットワーク通信部
21…画像処理部
22…スキャナ部
23…プリンタ部
24…バス
25…共有メモリ
【特許請求の範囲】
【請求項1】
画像データに基づく画像を記録紙に形成する画像形成部と、
前記画像形成部を制御する第1のCPUと、
前記第1のCPUによる動作を監視し、この監視結果に応じたプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる第2のCPUと、
を備えた画像形成装置。
【請求項2】
前記第2のCPUは、前記監視によって前記第1のCPUによる起動処理の動作の異常を検出した場合には、前記起動処理の動作の異常に対処するプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記第2のCPUは、前記監視によって前記第1のCPUによる動作の異常を検出した場合には、前記異常を診断して診断結果を通知する診断プログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させ、この再起動後に前記第1のCPUから通知される前記診断結果に応じて前記第1のCPUに実行させるプログラムを決定し、このプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする請求項1または2に記載の画像形成装置。
【請求項4】
前記第2のCPUは、前記監視によって前記第1のCPUが実行する所定のプログラムに異常があると判断した場合は、前記所定のプログラムの書き換えを行う書き換えプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させ、この再起動後に前記第1のCPUによって前記所定のプログラムの書き換えが行われると、この書き換え後の所定のプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする請求項1〜3のいずれか1項に記載の画像形成装置。
【請求項5】
前記第1のCPUが起動完了後に実行するファームウェアは、前記第1のCPUによる動作の異常を検出して前記第2のCPUに通知する機能を前記第1のCPUに実行させるエラーチェックプログラムを含む
ことを特徴とする請求項1〜4のいずれか1項に記載の画像形成装置。
【請求項6】
前記第1のCPUは、前記第1のCPUによる動作の状況を前記第2のCPUに通知し、
前記第2のCPUは、前記通知に基づいて前記監視を行う
ことを特徴とする請求項1〜5のいずれか1項に記載の画像形成装置。
【請求項7】
前記第1のCPUによる前記第2のCPUへの通知はメモリを介して行う
ことを特徴とする請求項5または6に記載の画像形成装置。
【請求項1】
画像データに基づく画像を記録紙に形成する画像形成部と、
前記画像形成部を制御する第1のCPUと、
前記第1のCPUによる動作を監視し、この監視結果に応じたプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる第2のCPUと、
を備えた画像形成装置。
【請求項2】
前記第2のCPUは、前記監視によって前記第1のCPUによる起動処理の動作の異常を検出した場合には、前記起動処理の動作の異常に対処するプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記第2のCPUは、前記監視によって前記第1のCPUによる動作の異常を検出した場合には、前記異常を診断して診断結果を通知する診断プログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させ、この再起動後に前記第1のCPUから通知される前記診断結果に応じて前記第1のCPUに実行させるプログラムを決定し、このプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする請求項1または2に記載の画像形成装置。
【請求項4】
前記第2のCPUは、前記監視によって前記第1のCPUが実行する所定のプログラムに異常があると判断した場合は、前記所定のプログラムの書き換えを行う書き換えプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させ、この再起動後に前記第1のCPUによって前記所定のプログラムの書き換えが行われると、この書き換え後の所定のプログラムを再起動後の前記第1のCPUが実行するように設定して前記第1のCPUを再起動させる
ことを特徴とする請求項1〜3のいずれか1項に記載の画像形成装置。
【請求項5】
前記第1のCPUが起動完了後に実行するファームウェアは、前記第1のCPUによる動作の異常を検出して前記第2のCPUに通知する機能を前記第1のCPUに実行させるエラーチェックプログラムを含む
ことを特徴とする請求項1〜4のいずれか1項に記載の画像形成装置。
【請求項6】
前記第1のCPUは、前記第1のCPUによる動作の状況を前記第2のCPUに通知し、
前記第2のCPUは、前記通知に基づいて前記監視を行う
ことを特徴とする請求項1〜5のいずれか1項に記載の画像形成装置。
【請求項7】
前記第1のCPUによる前記第2のCPUへの通知はメモリを介して行う
ことを特徴とする請求項5または6に記載の画像形成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【公開番号】特開2011−218630(P2011−218630A)
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【出願番号】特願2010−88799(P2010−88799)
【出願日】平成22年4月7日(2010.4.7)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【出願日】平成22年4月7日(2010.4.7)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】
[ Back to top ]