| 【発明の名称】 |
画像処理装置 |
| 【発明者】 |
【氏名】要 秀紀
|
| 【要約】 |
【課題】オプションボート3の状況を簡便に知ることができる画像処理装置を提供する。
【構成】オプションボード3に電源が投入された際に、ファームウェアの書き換えなどによりオプションボード3に特定の状況が発生している場合には、オプションボード3のファームウェアのバージョンを示すバージョン情報が特定の状況を示す情報に置き換えられ、又は、バージョン情報に特定の状況を示す情報が埋め込まれ、当該バージョン情報がメインボード2に送信される。そして、複合機1の操作部28に対してオプションボード3のバージョンを表示させる所定の操作が行われると、オプションボード3に発生している特定の状況を示す情報を表示部29に表示する。 |
【特許請求の範囲】
【請求項1】 自装置の全体を制御するメイン制御部と自装置の所定の機能を制御するサブ制御部とを備えた画像処理装置であって、 前記サブ制御部は、 当該サブ制御部において特定の状況が発生している旨を示す告知情報を前記メイン制御部に送信する送信手段を備え、 前記メイン制御部は、 前記送信手段によって送信された告知情報が示す内容を表示する表示手段を備えることを特徴とする画像処理装置。 【請求項2】 自装置の全体を制御するメイン制御部と自装置の所定の機能を制御するサブ制御部とを備え、前記サブ制御部のファームウェアのバージョン情報が示す内容を前記メイン制御部が備える表示装置に表示する画像処理装置であって、 前記サブ制御部は、当該サブ制御部に特定の状況が発生している旨を示す告知情報を、前記バージョン情報に置き換え、又は、前記バージョン情報に埋め込んで前記メイン制御部に送信する送信手段を備えることを特徴とする画像処理装置。 【請求項3】 前記サブ制御部の所定の機能は、前記メイン制御部から転送された印刷データを画像データに展開して前記メイン制御部に転送する機能であることを特徴とする請求項1又は2に記載の画像処理装置。 【請求項4】 前記特定の状況は、前記サブ制御部のファームウェアの書き換えに伴う状況であることを特徴とする請求項1乃至3のいずれか1に記載の画像処理装置。 【請求項5】 前記特定の状況は、前記サブ制御部のファームウェアの副記憶装置から主記憶装置への読み込み中にファームウェアの異常が検知された状況であることを特徴とする請求項4に記載の画像処理装置。 【請求項6】 前記サブ制御部のファームウェアは、副記憶装置の個々の記憶領域にデータの種類別に分割して記憶され、書き換えデータによりデータの種類毎に書き換えが行われるものであり、 前記特定の状況は、前記副記憶装置に記憶された前記ファームウェアのフォントデータが当該ファームウェアのカーネルプログラムに適合していない状況であることを特徴とする請求項4又は5に記載の画像処理装置。
|
【発明の詳細な説明】【技術分野】 【0001】 本発明は、画像処理装置に関し、詳しくは、メイン制御部とサブ制御部とを備える画像処理装置に関するものである。 【背景技術】 【0002】 従来、画像処理装置には、特許文献1に記載されているように、自装置の全体を制御するメインボード(メイン制御部)とは別個に、所定の機能を実現するオプションボード(サブ制御部)を備える構成となったものが存在する。このようなオプションボードには、例えば、画像処理装置が端末装置から受信した印刷データの転送をメインボードから受け、当該印刷データを画像データに展開してメインボードに転送するというものなどがある。このようなオプションボードには複数のLED(Light Emitting Diode)が搭載され、この複数のLEDを予め定義されたパターンで発光させることにより、当該オプションボードの状況が示されていた。 【特許文献1】特開2005−277894号公報 【発明の開示】 【発明が解決しようとする課題】 【0003】 しかし、このようなオプションボードでは、当該オプションボードが画像処理装置の筐体内部に配置されるので、LEDを画像処理装置の外観において確認することができない。そのため、当該オプションボードの状況を知るためには、画像処理装置の筐体の背面などに設けられたパネルを開いてLEDを確認しなければならず手間がかかるという問題があった。例えば、複合機などの画像処理装置は、装置の背面を建物の壁面などに近接させて設置されることが多く、このような場合には、パネルを開いて筐体内のLEDを確信するためには、画像処理装置を移動させなければならず、非常に手間であった。 【0004】 本発明は、かかる問題に鑑みてなされたものであり、オプションボート(サブ制御部)の状況を簡便に知ることができる画像処理装置を提供することを目的とする。 【課題を解決するための手段】 【0005】 上記目的を達成するために、請求項1に記載の画像処理装置は、自装置の全体を制御するメイン制御部と自装置の所定の機能を制御するサブ制御部とを備えた画像処理装置であって、前記サブ制御部は、当該サブ制御部において特定の状況が発生している旨を示す告知情報を前記メイン制御部に送信する送信手段を備え、前記メイン制御部は、前記送信手段によって送信された告知情報が示す内容を表示する表示手段を備えることを特徴としている。 【0006】 この構成によれば、自装置の全体を制御するメイン制御部と自装置の所定の機能を制御するサブ制御部とを備えた画像処理装置であって、サブ制御部において、送信手段により、当該サブ制御部において特定の状況が発生している旨を示す告知情報がメイン制御部に送信され、メイン制御部において、表示手段により、送信手段によって送信された告知情報が示す内容が表示される。したがって、ユーザやサービスマンは、画像処理装置を移動させたり、筐体を開いたりすることなく、簡便に、サブ制御部に発生している特定の状況を知ることができる。 【0007】 上記目的を達成するために、請求項2に記載の画像処理装置は、自装置の全体を制御するメイン制御部と自装置の所定の機能を制御するサブ制御部とを備え、前記サブ制御部のファームウェアのバージョン情報が示す内容を前記メイン制御部が備える表示装置に表示する画像処理装置であって、前記サブ制御部は、当該サブ制御部に特定の状況が発生している旨を示す告知情報を、前記バージョン情報に置き換え、又は、前記バージョン情報に埋め込んで前記メイン制御部に送信する送信手段を備えることを特徴としている。 【0008】 この構成によれば、自装置の全体を制御するメイン制御部と自装置の所定の機能を制御するサブ制御部とを備え、前記サブ制御部のファームウェアのバージョン情報が示す内容を前記メイン制御部が備える表示装置に表示する画像処理装置であって、サブ制御部において、送信手段により、当該サブ制御部に特定の状況が発生している旨を示す告知情報が、バージョン情報に置き換えられ、又は、バージョン情報に埋め込まれてメイン制御部に送信される。 【0009】 したがって、ユーザやサービスマンは、画像処理装置を移動させたり、筐体を開いたりすることなく、簡便に、サブ制御部に発生している特定の状況を知ることができる。また、告知情報がバージョン情報に置き換えられ、又は、バージョン情報に埋め込まれるので、画像処理装置のインターフェースを変更することなく、サブ制御部に発生している特定の状況を簡便に知ることができる画像処理装置を実現することができる。さらに、画像処理装置に対して特定の操作を行ったときに、サブ制御部のバージョン情報が示す内容を表示装置に表示する構成となっている場合には、バージョン情報が示す内容を表示する既知の操作のみによって、サブ制御部に発生している特定の状況を示す告知情報の内容を表示装置に表示させることができる。また、告知情報が示すサブ制御部に発生している特定の状況が、サブ制御部のファームウェアの書き換えに伴うものである場合には、ファームウェアを書き換えた際には、ユーザやサービスマンは必ずファームウェアのバージョンを確認するので、サブ制御部に発生している特定の状況が確実にユーザやサービスマンに知得される。 【0010】 請求項3に記載の画像処理装置は、請求項1又は2に記載の画像処理装置であって、前記サブ制御部の所定の機能は、前記メイン制御部から転送された印刷データを画像データに展開して前記メイン制御部に転送する機能であることを特徴としている。 【0011】 この構成によれば、サブ制御部の所定の機能は、メイン制御部から転送された印刷データを画像データに展開してメイン制御部に転送する機能である。したがって、ユーザやサービスマンは、メイン制御部から転送された印刷データを画像データに展開してメイン制御部に転送するサブ制御部に発生する特定の状況を簡便に知ることができる。 【0012】 請求項4に記載の画像処理装置は、請求項1乃至3のいずれか1に記載された画像処理装置であって、前記特定の状況は、前記サブ制御部のファームウェアの書き換えに伴う状況であることを特徴としている。 【0013】 この構成によれば、特定の状況は、サブ制御部のファームウェアの書き換えに伴う状況である。したがって、ユーザやサービスマンは、サブ制御部のファームウェアの書き換えに伴い当該サブ制御部に発生している状況を簡便に知ることができる。 【0014】 請求項5に記載の画像処理装置は、請求項4に記載の画像処理装置であって、前記特定の状況は、前記サブ制御部のファームウェアの副記憶装置から主記憶装置への読み込み中にファームウェアの異常が検知された状況であることを特徴としている。 【0015】 この構成によれば、特定の状況は、サブ制御部のファームウェアのFlash(Read Only Memory)ROMなどの副記憶装置からSDRAM(Synchronous Dynamic Random Access Memory)などの主記憶装置への読み込み中にファームウェアの異常が検知された状況である。したがって、ユーザやサービスマンは、ファームウェアの異常が検出されたことを簡便に知ることができる。 【0016】 請求項6に記載の画像処理装置は、請求項4又は5に記載の画像処理装置であって、前記サブ制御部のファームウェアは、副記憶装置の個々の記憶領域にデータの種類別に分割して記憶され、書き換えデータによりデータの種類毎に書き換えが行われるものであり、前記特定の状況は、前記副記憶装置に記憶された前記ファームウェアのフォントデータが当該ファームウェアのカーネルプログラムに適合していない状況であることを特徴としている。 【0017】 この構成によれば、サブ制御部のファームウェアは、副制御部の個々の記憶領域にデータの種類別に分割して記憶され、書き換えデータによりデータの種類毎に書き換えが行われるものであり、特定の状況は、副記憶装置に記憶されているファームウェアのうちのフォントデータが、当該ファームウェアのうちのカーネルプログラムに適合していない状況である。したがって、ユーザやサービスマンは、フォントデータがカーネルプログラムに適合していないことを簡便に知ることができる。 【発明を実施するための最良の形態】 【0018】 以下、本発明の画像処理装置の一例としての複合機1について、図面を参照しつつ説明する。図1に示すように、複合機1は、メインボード(メイン制御部に相当する。)2及びオプションボード(サブ制御部に相当する。)3を備えており、当該メインボード2及びオプションボード3によって、ファクシミリ通信機能、インターネットファクシミリ通信機能、コピー機能、スキャナ機能、PCプリント機能などが実現される。メインボード2は複合機1の全体を制御するものである。そして、オプションボード3は、クライアントPC6から、複合機1によって印刷を行うために送信された、ページ記述言語によって記述された印刷データをネットワークインターフェースコントローラ4を介して受信し、受信した印刷データを画像データに展開してメインボード2に転送するものである。メインボード2とオプションボード3とは、バス13によって通信可能に接続されている。 【0019】 このような複合機1では、複合機1に電源が投入され、メインボード2及びオプションボード3に電力が供給されると、オプションボード3のファームウェアのバージョンを示すバージョン情報がメインボード2に送信される。また、電源投入時にオプションボード3に特定の状況が発生している場合には、その状況を示す情報(告知情報に相当する。)によって置き換えられたバージョン情報、又は、当該状況を示す情報が埋め込まれたバージョン情報がオプションボード3からメインボード2に送信される。そして、メインボード2に送信されたバージョン情報の示す内容は表示部29に表示される。 【0020】 また、オプションボード3のファームウェアは、クライアントPC6から送信される書き換えデータによってアップデート(書き換え)することができる。 【0021】 クライアントPC6は、一般的な機能を備えたPCであり、ユーザが作成した文書などのデータをPDLデータ(ページ記述言語)に変換し、当該PDLデータを、LAN5を介して複合機1に送信する。なお、ここで使用されるPDL(ページ記述言語)は特に限定されるものではないが、例えばPCL(Printer Control Language)などを用いることができる。 【0022】 オプションボード3は、図1に示すように、制御部(MPU:Microprocessing Unit)7、インターフェース回路8、FlashROM(Read Only Memory)8、SDRAM(Synchronous Dynamic Random Access Memory)9、及び、データ処理回路11を備えたものであって、各部7乃至11は、バス12によって通信可能に接続されている。 【0023】 制御部7は、FlashROM9に記憶されているファームウェアの各種プログラムに従って、このオプションボード3を構成する各部を制御する。インターフェース回路8は、ネットワークインターフェースコントローラ4から転送されたPDLデータや書き換えデータを受信するものである。また、インターフェース回路8が受信したPDLデータは、データ処理回路11において所定のデータ処理が施されて、画像データに展開された後にメインボード2に転送される。 【0024】 FlashROM9(副記憶装置に相当する。)は、制御部7によってオプションボード3の各部を制御するためのファームウェアを記憶するフラッシュメモリであり、図2に示すようにブート領域F−B、第1カーネル領域F−K1、第2カーネル領域F−K2、一般プログラム領域F−P、及び、フォント領域F−Fの5つの記憶領域に論理的に分割されている。SDRAM10(主記憶装置に相当する。)は、制御部7の主メモリ、ワークエリアなどとして機能し、プログラム領域SD−P及び、データ領域SD−Dの2つの記憶領域に論理的に分割されている。 【0025】 FlashROM9のブート領域F−Bは、システム起動時に実行されるブートプログラムを記憶している記憶領域である。第1カーネル領域F−K1及び、第2カーネル領域F−K2は、カーネルプログラムを記憶している記憶領域である。カーネルプログラムには、オプションボード3とメインボード2との間の通信の初期化、自己書き換え(アップデート)、ジョブ管理、データ管理、タスク管理などを行うための制御プログラムや初期パラメータ、受信した書き換えデータによりFlashROM9のファームウェアをアップデート(書き換え)するための書き換えコード、ファームウェアをアップデートした後に書き換えが正常に行われたか否かを検査するためのデータチェックコードなどが含まれる。一般プログラム領域F−Pは、オプションボード3が各種処理動作を行うための一般プログラムを記憶している記憶領域であり、例えば、インターフェース回路8が受信したPDLデータに所定のデータ処理を行うためのデータ処理プログラムなどを記憶している。フォント領域F−Fは、フォントデータを記憶している記憶領域である。 【0026】 また、FlashROM9のこれらの各記憶領域F−B、F−K1、F−K2、F−P、及び、F−Fのサイズは、それぞれ常に一定の値となるように設定されており、ここではブート領域F−Bが8kb(キロバイト)、第1カーネル領域F−K1、及び、第2カーネル領域F−K2がそれぞれ248kb、一般プログラム領域F−Pが2816kb、フォント領域F−Fが5120kbに設定されている。このように、オプションボード3のファームウェアは、データの種類別に分割されて異なるサイズの記憶領域F−B、F−K1、F−K2、F−P、及び、F−Fにそれぞれ記憶されているが、これらの各記憶領域の全体にプログラムやフォントデータが記憶されているわけではなく、プログラムやフォントデータに適当なデータサイズの空きデータ、すなわち16進数で「00」又は「FF」の値を持つ空きデータが付加されたデータがそれぞれ対応する記憶領域に記憶されている。例えば、2816kbの一般プログラム領域F−Pの場合、実際に使用する一般プログラム全体のデータサイズが2600kbであれば、これに216kbの空きデータが付加された一般プログラム領域F−Pのサイズと等しい2816kbのデータが該一般プログラム領域F−Pに記憶されている。なお、これらの各記憶領域に記憶されているデータは、各記憶領域毎に個別に外部から受信した書き換えデータによって書き換えることが可能である。FlashROM9に記憶されているファームウェアは、書き換えデータによって、例えば、第1カーネル領域F−K1及び、第2カーネル領域F−K2のデータのみを書き換えたり、一般プログラム領域F−Pとフォント領域F−Fのデータのみを書き換えたりすることが可能である。 【0027】 一方、SDRAM10のプログラム領域SD−Pは、制御部7によってFlashROM9に記憶されている各種データを制御部7で実行するために一時的に読み込む領域である。SDRAM10のプログラム領域SD−Pのうち、FlashROM9のブート領域F−Bに記憶されているブートプログラムを読み込む領域をブート領域SD−B、第1カーネル領域F−K1に記憶されているカーネルプログラム、又は、第2カーネル領域F−K2に記憶されているカーネルプログラムを読み込む領域を第1カーネル領域SD−K1、第2カーネル領域F−K2に記憶されているカーネルプログラムを読み込む領域を第2カーネル領域SD−K2、一般プログラム領域F−Pに記憶されている一般プログラムを読み込む領域を一般プログラム領域SD−P、フォント領域F−Fに記憶されているフォントデータを読み込む領域をフォント領域SD−Fとそれぞれ呼ぶ。 【0028】 制御部7は、システム起動時にFlashROM9のブート領域F−BのブートプログラムをSDRAM10のプログラム領域SD−Pに読み込み、プログラム領域SD−Pに読み込まれたブートプログラムに基づいて、FlashROM9の第1カーネル領域F−K1に記憶されているカーネルプログラム、第2カーネル領域F−K2に記憶されているカーネルプログラムをSDRAM10のプログラム領域SD−Pに読み込む。プログラム領域SD−Pにカーネルプログラムを読み込むと、制御部7は、プログラム領域SD−Pのカーネルプログラムに基づいて、一般プログラム領域F−Pに記憶されている一般プログラム、フォント領域F−Fに記憶されているフォントデータをそれぞれSDRAM10のプログラム領域SD−Pに読み込む。制御部7は、このようにしてFlashROM9の各記憶領域のデータをSDRAM10のプログラム領域SD−Pにロードし、ロードしたプログラムを必要に応じて実行することにより、例えば、外部から受信したPDLデータを画像データに展開してメインボード2に転送したり、外部から受信した書き換えデータによりオプションボード3のファームウェアをアップデート(書き換え)したりすることができる。SDRAM10のデータ領域SD−Dは、各種データを一時的に格納する領域であり、ネットワークインターフェースコントローラ4によって転送されたPDLデータや書き換えデータなどを一時的に格納する。 【0029】 データ処理回路11は、インターフェース回路8が受信したPDLデータに所定のデータ処理を施すものであり、具体的にはインターフェース回路8が受信したPDLデータを解析してメインボード2で処理可能な画像データに展開した後、その画像データをMMR(Modified Modified Read)方式で符号化(エンコード)する。このようにしてデータ処理回路11において所定のデータ処理が施された画像データは、インターフェース回路8によってメインボード2へと転送される。なお、ここで使用する符号化方式は、メインボード2において復号が可能な方式であればMMR方式に限定されるものではなく、例えば、MH(Modified Huffman)、MR(Modified Read)、JBIG(Joint Bi-level Image Group)方式などの他の符号化方式を使用してもよい。また、ここでは、画像データの転送速度などを考慮して展開した画像データをMMR方式で符号化して転送しているが、展開した画像データを符号化することなくそのままメインボード2に転送するようにしてもよい。 【0030】 一方、オプションボード3から転送された画像データの印刷処理などを行うメインボード2は、制御部(MPU)21、ROM(Read Only Memory)22、RAM(Random Access Memory)23、原稿読取部24、コーデック(CODEC:Coder and Decoder)25、画像メモリ26、記録部27、操作部28、及び、表示部29を備えており、各部21乃至29は、バス30によって通信可能に接続されている。 【0031】 制御部21は、ROM22に記憶されているプログラムに従って、この複合機1を構成する各部を制御する。ROM22は、前記プログラムを記憶している。RAM23は、制御部21の主メモリ、ワークエリアなどとして機能し、予め登録された各種設定情報などを記憶している。原稿読取部24は、例えば、CCD(Charge Coupled Device)などのイメージセンサによって原稿の画像データを読取る。 【0032】 コーデック25は、画像データの符号化及び、復号(デコード)を行うものであり、原稿読取部24で読取られた原稿の画像データをMH、MR、MMR、JBIG方式などにより符号化し、符号化されている画像データを復号する。なお、オプションボード3から転送された画像データは、このコーデック25において復号される。画像メモリ26は、コーデック25によって符号化された原稿の画像データ、オプションボード3から転送された画像データなどを格納する。 【0033】 記録部27は、原稿読取部24において読取られた原稿の画像データ、オプションボード3から転送された画像データなどの画像を記録紙に記録するものであり、この記録部27における記録方式としては、例えば、電子写真方式を用いることができる。オプションボード3から転送された画像データは、画像メモリ26に一旦格納された後、コーデック25によって復号され、この記録部27においてその画像が用紙に記録される。 【0034】 操作部28は、図示しないが原稿読取部24に原稿の読取開始を指示するためのスタートキー、コピー部数などを入力するためのテンキー、各種設定を行うためのカーソルキーなど、表示部29と連動した各種操作キーを備えている。表示部29は、各種の設定状態や複合機1の動作状態などを文字や図形などで表示する液晶表示装置(LCD:Liquid Crystal Display)や、点灯又は消灯で表示するLEDランプなどを備えている。 【0035】 以上に説明したように構成された複合機1に対して、LAN5上のクライアントPC6からPDLデータが送信されると、当該PDLデータはネットワークインターフェースコントローラ4によってオプションボード3に転送される。そして、PDLデータは、オプションボード3において展開されて所定の符号化方式で符号化された後、メインボード2へと転送されて当該メインボード2においてその画像が用紙に記録される。また、クライアントPC6は、複合機1において印刷すべきPDLデータの他に、オプションボード3のFlashROM9に記憶されているファームウェアの全体又は一部をアップデートするための書き換えデータを複合機1に対して送信する。 【0036】 オプションボード3は、FlashROM9の各記憶領域F−B、F−K1、F−K2、F−P、及び、F−Fに記憶されているファームウェアの全体、すなわち、記憶領域F−B、F−K1、F−K2、F−P、及び、F−Fのデータの全てをアップデートすることは当然に可能であるが、一部の記憶領域のデータのみをアップデートすることも可能である。FlashROM9の各記憶領域の一部のみのアップデートを行う場合には、クライアントPC6から、FlashROM9の記憶領域F−B、F−K1、F−K2、F−P、及び、F−Fのうち、書き換えが必要な記憶領域に対応する書き換えデータのみを送信する。 【0037】 以下、FlashROM9の第1カーネル領域F−K1及び第2カーネル領域F−K2のデータのみをアップデートするための書き換えデータ(以下、「K領域用書き換えデータ」という。)を例としてクライアントPC6から送信される書き換えデータについて、図3に基づいて説明する。このK領域用書き換えデータは、図3に示すようにFlashROM9の第1カーネル領域F−K1及び第2カーネル領域F−K2に記憶されているデータと同様に、カーネルプログラムのデータに適当なデータサイズの空きデータとから構成されており、そのデータサイズは第1カーネル領域F−K1又は第2カーネル領域F−K2のサイズと等しい248kbである。このように、書き換え用のカーネルプログラムに適当なサイズの空きデータを付加することにより、カーネルプログラムのデータサイズが変動したとしても、常に第1カーネル領域F−K1又は第2カーネル領域F−K2のサイズと同じデータサイズのK領域用書き換えデータをオプションボード3に送信することができる。 【0038】 このようにして作成されたK領域用書き換えデータがオプションボード3に送信された場合、オプションボード3は、K領域用書き換えデータを受信した後、一旦SDRAM10のデータ領域SD−Dに格納する。そして、FlashROM9の第1カーネル領域F−K1及び第2カーネル領域2のカーネルプログラムを、データ領域SD−Dに格納したK領域用書き換えデータで書き換える。この書き換えに際して、書き換えを行う前に書き換えデータが正常であるか否かを判断し、書き換えを行った後に書き換えられたデータが正常であるか否かを判断する。このデータが正常であるか否かの判断では、所定の誤り検出データ作成手順に基づいて演算処理を行ってデータ検査を実行する。具体的には、オプションボード3の制御部7は、チェックサム(Check Sum)によるデータ検査(サムチェック)を行う。そのため、クライアントPC6から送信される書き換えデータには、書き換えデータを構成する各データを数値として加算し、その総和の値から一定の計算をして求めた誤り検出データ(以下、「チェッカ」という。)が埋め込まれている。 【0039】 この書き換えデータに埋め込まれる1個のチェッカで表すことのできるデータの領域サイズをNとすると、領域サイズNは任意に設定することができるが、領域サイズNを無限大に設定した場合、いかなるデータサイズの書き換えデータであっても埋め込まれるチェッカの個数は1個である。しかし、オプションボード3においてサムチェックを行う場合に、書き換えデータのどの部分において書き換えエラーが発生したかを特定できるようにするため、ここでは一例としてNの値は1024kbに設定されている。そして、書き換えデータのデータサイズをMとすると、書き換えデータのデータサイズMが領域サイズN以下である場合にはその書き換えデータに1個のチェッカを埋め込み、データサイズMが領域サイズNを越える場合には領域サイズNに基づいてその書き換えデータを複数の部分領域に分割し、各部分領域毎にチェッカの値を算出し、書き換えデータの後端に算出した複数のチェッカを埋め込む。このチェッカが埋め込まれた領域をチェッカ領域と呼ぶ。 【0040】 そこで、書き換えデータにチェッカを埋め込む場合、まず予め設定されている領域サイズNと送信すべき書き換えデータのデータサイズMから埋め込むチェッカの個数でもある部分領域数cを算出する。図3に示すように、書き換えデータがK領域用書き換えデータである場合には、書き換えデータのデータサイズMが248kbであり、領域サイズNの値である1024kb以下であるため、部分領域数cは「1」でありこの書き換えデータには1個のチェッカが埋め込まれる。 【0041】 次に、算出した部分領域数cに基づいて各部分領域のデータを加算してサム値を算出する。なお、ここでは、部分領域数cは1であるため、書き換えデータを複数の部分領域に分割することなく248kbのデータサイズの書き換えデータを部分領域としてデータに対してサム値S1を算出する。具体的には、248kbのK領域用書き換えデータを構成する全データを数値として先頭部分から加算してその総和を算出する。このようにして全てのデータの総和からサム値S1を算出することができるが、ここでは1個のチェッカのデータサイズbが2バイトであり、書き換えデータの最後の2バイトにチェッカを埋め込むため、最後の2バイトに元々あった値v1をサム値S1から差引く。そして、このようにして求めたS1−v1を反転させた値−(S1−v1)をチェッカの値として書き換えデータの最後の2バイトに埋め込む。なお、ここでは、K領域用書き換えデータの最後の2バイトに元々あった値v1を−(S1−v1)の値のチェッカに書き換えているが、チェッカに書き換える部分のv1の値は空きデータの値であるため、チェッカを埋め込んだとしても書き換えデータの内容(ここでは、カーネルプログラム)が変化することはない。すなわち、書き換えデータの内容に影響を与えることなくチェッカを埋め込むことができる。 【0042】 以上に説明したように、書き換えデータのデータサイズMが1個のチェッカで表すことのできる領域サイズN以下である場合には、書き換えデータには1個のチェッカが埋め込まれる。一方、データサイズMが領域サイズNを越える場合には、書き換えデータには複数のチェッカが埋め込まれる。例えば、図4に例示するように書き換えデータが、FlashROM9の一般プログラム領域のデータを書き換えるためのP領域用書き換えデータである場合、そのデータサイズMは2816kbであり、領域サイズNの値である1024kbを越えており、部分領域数cは3となる。そして、算出した部分領域数cに対応する部分領域を図4に示すように、部分領域X、部分領域Y、及び、部分領域Zのように設定する。ここでは、複数の部分領域のうち、最初の部分領域である部分領域Xが端数を受け持つように部分領域Xのデータサイズを768kbに設定し、部分領域Y、及び、部分領域Zのデータサイズを領域サイズNと等しい1024kbに設定する。 【0043】 このようにして、部分領域X乃至Zを設定した後、まず部分領域Xについてサム値を算出するが、サム値を算出して各部分領域毎にチェッカを埋め込むと、各部分領域、ここでは部分領域X、及び、部分領域Yのデータの内容が変化してしまう。そこで、部分領域X乃至Zのチェッカは、空きデータが付加されている最後の部分領域Zの後端のチェッカ領域に埋め込む。具体的には、部分領域Xと部分領域Yについて、それぞれ算出した各領域のサム値をそのまま反転させてチェッカとして埋め込む。すなわち、図4に示すように、768kbの部分領域Xの全データの総和であるサム値S2を算出し、これを反転させた−S2の値を部分領域Xのチェッカとして部分領域Zにおけるチェッカ領域の先頭に埋め込む。ここで、チェッカ領域の先頭は、1個のチェッカのデータサイズbと、書き換えデータのデータサイズMと、部分領域数(チェッカの個数)cとに基づいて、M−c×bの関係式から算出することができる。 【0044】 このようにして部分領域Xのチェッカを埋め込んだ後、部分領域Yについても同様にサム値S3を算出し、算出したサム値をそのまま反転させた値−S3を部分領域Yのチェッカとして部分領域Zにおける部分領域Xのチェッカの次の2バイトに埋め込む。そして、最後の部分領域である部分領域Zのサム値S4から求めたチェッカを部分領域Zの最後の2バイトに埋め込むが、この部分領域Zには、前記部分領域X及び、Yのチェッカと部分領域Zのチェッカの3個のチェッカを埋め込むためのチェッカ領域が存在するため、部分領域Zの全データの総和であるサム値S4からチェッカ領域に元々存在したデータ、すなわち、書き換えデータの最後の6バイト分のデータの総和であるv2を部分領域を設定した段階で算出しておき、サム値S4から差引く。そして、これを反転させた値−(S4−v2)を部分領域Zのチェッカとして部分領域Zの最後の2バイトに埋め込む。 【0045】 以上に説明したように、実データに適当なデータサイズの空きデータが付加された書き換えデータに、当該書き換えデータのデータサイズMに基づいて1又は複数のチェッカが埋め込まれるが、ブート領域F−Bのデータを書き換えるためのB領域用書き換えデータ及び、フォント領域F−Fのデータを書き換えるためのF領域用書き換えデータについても同様に書き換えデータを作成してチェッカが埋め込まれる。そして、このようにチェッカ領域にチェッカが埋め込まれた後、書き換えが必要な記憶領域の書き換えデータのみがクライアントPC6から送信される。例えば、一般プログラム領域F−Pのデータのみ書き換えが必要な場合には、P領域用書き換えデータのみからなる2816kbの書き換えデータが送信され、第1カーネル領域F−K1及び第2カーネル領域F−K2、並びに、一般プログラム領域F−Pのデータについて書き換えが必要な場合には、K領域用書き換えデータとP領域用書き換えデータとからなる3064kbの書き換えデータがクライアントPC6から送信される。 【0046】 次に、以上に説明したようにチェッカを用いて書き換えデータが正常であるか否かを判断するデータ検査の方法について説明する。以下においては、書き換えデータによって書き換えられた後のFlashROM9の記憶領域のデータが正常であるか否かを判断するデータ検査の場合について説明するが、書き換え前に一旦SDRAM10のデータ領域SD−Dに記憶されている書き換えデータが正常であるか否かを判断するデータ検査の場合も同様にして実行できる。 【0047】 まず、書き換えデータによる自装置1のファームウェアの書き換え処理が終了した後、書き換えた記憶領域のサイズM及び、1個のチェッカで表すことができる領域サイズNからサムチェックを行う対象領域の部分領域数cを算出し、部分領域を設定する。ここで、対象領域は、FlashROM9の記憶領域F−B、F−K1、F−K2、F−P、及び、F−Fのうちの書き換えデータに書き換えた記憶領域であり、複数の記憶領域に対して書き換えを行った場合には、まず、その複数の記憶領域のうちのいずれか1つの記憶領域を対象領域してサムチェックを行う。上述したように、対象領域のデータ(書き換えデータ)には、サムチェックを行う部分領域の数と等しい数のチェッカが埋め込まれている。書き換えたFlashROM9の記憶領域のサイズMと該記憶領域のデータを書き換えた書き換えデータのデータサイズは等しいため、対象領域のデータを書き換えた書き換えデータのデータサイズについてもMで表すことができる。 【0048】 例えば、図5に示すように対象領域が2816kbの一般プログラム領域F−Pである場合には、対象領域のサイズ、すなわち一般プログラム領域F−Pを書き換えたP領域用書き換えデータのデータサイズMが1個のチェッカで表すことができる領域サイズN(1024kb)を越えており、部分領域数cは3である。そして、図4と同様に一般プログラム領域F−Pを768kbの部分領域X、1024kbの部分領域Y、1024kbの部分領域Zの3つの部分領域を設定する。なお、ここでも複数の部分領域のうち、先頭の部分領域が端数を受け持つように各部分領域のサイズが設定される。 【0049】 そして、対象領域におけるチェッカ領域からチェッカを読み出す。対象領域におけるチェッカ領域の先頭アドレスDは、対象領域の先頭アドレスをA、対象領域(書き換えた記憶領域)のサイズM、チェッカの個数(部分領域数)c、1個のチェッカのデータサイズbに基づいて、D=A+M−c×bの関係式から算出することができる。この関係式からチェッカ領域の先頭アドレスDを算出してチェッカの位置を特定し、その先頭アドレスD以降のデータをチェッカの値として読み出す。ここで、図5に示す一般プログラム領域F−Pの場合には、部分領域Xのチェッカと部分領域Yのチェッカと部分領域Zのチェッカの3つのチェッカの値を読み出すことができる。なお、1個のチェッカで表すことができる領域サイズNと1個のチェッカのデータサイズbは、第1カーネル領域F−K1又は第2カーネル領域F−K2に記憶されているデータチェックコードによって予め設定されている。1個のチェッカで表すことができる領域サイズNと1個のチェッカのデータサイズbは、書き換えデータにチェッカを埋め込む際の領域サイズとデータサイズに等しい値がそれぞれ設定されており、例えば、領域サイズNが1024kb、データサイズbが2バイトである。 【0050】 次に、部分領域の先頭アドレスとサイズに基づいてサム値を計算する。例えば、一般プログラム領域F−Pのように、3つの部分領域が設定されている場合、まず、部分領域Xの先頭アドレス、すなわち、対象領域の先頭アドレスAから768kbの部分領域Xの全データを数値として加算してサム値を計算する。そして、計算したサム値とチェッカの値の和がゼロになるか否かを判断する。サム値とチェッカの値の和がゼロである場合には、部分領域に誤りはないと判断し、ゼロでない場合には部分領域に誤りがあると判断する。すべての部分領域(部分領域X,Y,Z)についてサムチェックを行い、すべての部分領域に誤りがない場合に、当該対象領域のデータが正常であると判断する。 【0051】 以下に、図6及び図7を用いて、クライアントPC6から送信された書き換えデータに基づいてオプションボード3のFlashROM9に記憶されているファームウェアをアップデート(書き換え)する場合に、オプションボード3の制御部7が実行する処理について説明する。オプションボード3の制御部7は、FlashROM9の第1カーネル領域F−K1又は第2カーネル領域F−K2からSDRAM10の第1カーネル領域SD−K1に読み込まれたカーネルプログラムに従って処理を実行する。FlashROM9に記憶されているファームウェアは、ブート領域F−B、第1カーネル領域F−K1、第2カーネル領域F−K2、一般プログラム領域F−P、フォント領域F−F毎にそれぞれ単独でアップデート(書き換え)可能であるが、以下には、第1カーネル領域F−K1、第2カーネル領域F−K2、一般プログラム領域F−P、フォント領域F−Fをアップデート(書き換え)する場合について説明する。なお、図6及び図7に示す各処理の実行順序は図示するものに限定されるものではなく、処理の実行順序を変更しても本発明を実現できる場合には適宜に変更してもよい。 【0052】 まず、制御部7は、クライアントPC6から送信され、一時的にSDRAM10のデータ領域SD−Dに記憶されている書き換えデータの正当性のチェックを行う(S101)。この正当性のチェックでは、SDRAM10のデータ領域SD−Dに記憶されているデータが書き換えデータであるか否かのチェックと書き換えデータが正常であるか否かのチェックを行う。FlashROM9の第1カーネル領域F−K1に記憶されているカーネルプログラム、及び、第2カーネル領域F−K2に記憶されているカーネルプログラムには、図8に示すような、書き換えデータのデータサイズとFlashROM9の各記憶領域F−B(Bと表記)、F−K1(Kと表記)、F−K2(Kと表記)、F−P(Pと表記)、及び、F−F(Fと表記)とを対応付けたテーブルが含まれている。したがって、制御部7は、受信してSDRAM10のデータ領域SD−Dに記憶されているデータのデータサイズが図8に示すデータサイズのいずれかであるか否かによって、受信したデータが書き換えデータであるか否かを判断することができる。例えば、受信した書き換えデータのデータサイズが248kbであれば、書き換えデータは第1カーネル領域F−K1及び第2カーネル領域F−K2のデータを書き換えるためのK領域用書き換えデータであると判断し、また、受信した書き換えデータのデータサイズが7936kbであれば、書き換えデータは一般プログラム領域F−Pのデータを書き換えるためのP領域用書き換えデータとフォント領域F−Fのデータを書き換えるためのF領域用書き換えデータであると判断する。受信した書き換えデータが正常であるか否かは、上述したチェッカを用いたサムチェックによってチェックする。 【0053】 そして、書き換えデータが正当であるか否かを判断する(S102)。受信したデータが書き換えデータであり、かつ、書き換えデータが正常である場合に書き換えデータが正当であると判断する。書き換えデータが正当でないと判断すると(S102:NO)、所定のエラー処理を行う(S129)。一方、書き換えデータが正当であると判断すると(S102:YES)、FlashROM9の第1カーネル領域F−K1に書き換え前の現時点で記憶されているカーネルプログラムが正常であるか(破損しているか)否かのチェックを行い(S103)、チェックの結果に基づいて当該カーネルプログラムが正常であるか否かを判断する(S104)。カーネルプログラムが正常であるか否かのチェックは、上述したチェッカを用いたサムチェックによって行う。 【0054】 第1カーネル領域F−K1に記憶されているカーネルプログラムが正常でないと判断すると(S104:NO)、SDRAM10のデータ領域SD−Dに記憶されている書き換えデータからカーネルプログラムの書き換えデータを読み出し、FlashROM9の第1カーネル領域F−K1を書き換える(S105)。そして、チェッカを用いたサムチェックによりFlashROM9の第1カーネル領域F−K1に書き込まれたカーネルプログラムが正常であるか否かをチェックし(S106)、当該カーネルプログラムが正常であるか否かを判断する(S107)。 【0055】 FlashROM9の第1カーネル領域F−K1に書き込まれたカーネルプログラムが正常でないと判断すると(S107:NO)、所定のエラー処理を行う(S129)。一方、当該カーネルプログラムが正常であると判断すると(S107:YES)、SDRAM10のデータ領域SD−Dに記憶されている書き換えデータから一般プログラムの書き換えデータを読み出し、FlashROM9の一般プログラム領域F−Pを書き換える(S108)。そして、チェッカを用いたチェックサムによりFlashROM9の一般プログラム領域F−Pに書き込まれた一般プログラムが正常であるか否かをチェックし(S109)、当該一般プログラムが正常であるか否かを判断する(S110)。 【0056】 FlashROM9の一般プログラム領域F−Pに書き込まれた一般プログラムが正常でないと判断すると(S110:NO)、所定のエラー処理を行う(S129)。一方、当該一般プログラムが正常であると判断すると(S110:YES)、SDRAM10のデータ領域SD−Dに記憶されている書き換えデータからフォントデータの書き換えデータを読み出し、FlashROM9のフォント領域F−Fを書き換える(S111)。そして、チェッカを用いたサムチェックによりFlashROM9のフォント領域F−Fに書き込まれたフォントデータが正常であるか否かをチェックし(S112)、当該フォントデータが正常であるか否かを判断する(S113)。 【0057】 FlashROM9のフォント領域F−Fに書き込まれたフォントデータが正常でないと判断すると(S113:NO)、所定のエラー処理を行う(S129)。一方、当該フォントデータが正常であると判断すると(S113:YES)、SDRAM10のデータ領域SD−Dに記憶されている書き換えデータからカーネルプログラムの書き換えデータを読み出し、FlashROM9の第2カーネル領域F−K2を書き換える(S114)。そして、チェッカを用いたサムチェックによりFlashROM9の第2カーネル領域F−K2に書き込まれたカーネルプログラムが正常であるか否かをチェックし(S115)、当該カーネルプログラムが正常であるか否かを判断する(S116)。当該カーネルプログラムが正常でないと判断すると(S116:NO)、所定のエラー処理を行う(S129)。一方、当該カーネルプログラムが正常であると判断すると(S116:YES)、ファームウェアの書き換え処理を終了する。 【0058】 ステップS104において、FlashROM9の第1カーネル領域F−K1に現時点で記憶されているカーネルプログラムが正常であると判断すると(S104:YES)、SDRAM10のデータ領域SD−Dに記憶されている書き換えデータから一般プログラムの書き換えデータを読み出し、FlashROM9の一般プログラム領域F−Pを書き換える(S117)。そして、チェッカを用いたサムチェックによりFlashROM9の一般プログラム領域F−Pに書き込まれた一般プログラムが正常であるか否かをチェックし(S118)、当該一般プログラムが正常であるか否かを判断する(S119)。 【0059】 FlashROM9の一般プログラム領域F−Pに書き込まれた一般プログラムが正常でないと判断すると(S119:NO)、所定のエラー処理を行う(S129)。一方、当該一般プログラムが正常であると判断すると(S119:YES)、SDRAM10のデータ領域SD−Dに記憶されている書き換えデータからフォントデータの書き換えデータを読み出し、FlashROM9のフォント領域F−Fを書き換える(S120)。そして、チェッカを用いたサムチェックによりFlashROM9のフォント領域F−Fに書き込まれたフォントデータが正常であるか否かをチェックし(S121)、当該フォントデータが正常であるか否かを判断する(S122)。 【0060】 FlashROM9のフォント領域F−Fに書き込まれたフォントデータが正常でないと判断すると(S122:NO)、所定のエラー処理を行う(S129)。一方、当該フォントデータが正常であると判断すると(S112:YES)、SDRAM10のデータ領域SD−Dに記憶されている書き換えデータからカーネルプログラムの書き換えデータを読み出し、FlashROM9の第2カーネル領域F−K2を書き換える(S123)。そして、チェッカを用いたサムチェックによりFlashROM9の第2カーネル領域F−K2に書き込まれたカーネルプログラムが正常であるか否かをチェックし(S124)、当該カーネルプログラムが正常であるか否かを判断する(S125)。 【0061】 FlashROM9の第2カーネル領域F−K2に書き込まれたカーネルプログラムが正常でないと判断すると(S125:NO)、所定のエラー処理を行う(S129)。一方、当該カーネルデータが正常であると判断すると(S125:YES)、SDRAM10のデータ領域SD−Dに記憶されている書き換えデータからカーネルプログラムの書き換えデータを読み出し、FlashROM9の第1カーネル領域F−K1を書き換える(S126)。そして、チェッカを用いたサムチェックによりFlashROM9の第1カーネル領域F−K1に書き込まれたカーネルプログラムが正常であるか否かをチェックし(S127)、当該カーネルプログラムが正常であるか否かを判断する(S128)。当該カーネルプログラムが正常でないと判断すると(S128:NO)、所定のエラー処理を行う(S129)。一方、当該カーネルプログラムが正常であると判断すると(S128:YES)、ファームウェアの書き換え処理を終了する。 【0062】 このように、オプションボード3では、ファームウェアを、データの種類別に分割してFlashROM9の各記憶領域F−B、F−K1、F−K2、F−P、及び、F−Fに記憶し、書き換えデータによってファームウェアをアップデートする際には、FlashROM9の各記憶領域F−B、F−K1、F−K2、F−P、及び、F−F毎にデータの書き換えを行う。そして、書き換えデータに含まれるカーネルプログラムを、FlashROM9の第1カーネル領域F−K1と第2カーネル領域F−K2との2箇所に書き込む。このような方法によってファームウェアのアップデート(書き換え)を行うと、アップデート中の停電などによりオプションボード3に電源断が発生した場合でも、第1カーネル領域F−K1のカーネルプログラムと第2カーネル領域F−K2のカーネルプログラムとの両方が一度に破損することがないので、正常なカーネルプログラムが存在しないという事態が発生することを防止することができる。 【0063】 また、FlashROM9の第1カーネル領域F−K1のカーネルプログラム及び第2カーネル領域F−K2のカーネルプログラムの書き換えを行う際に、第1カーネル領域F−K1のカーネルプログラムが破損しているか(正常であるか)否かを判断し、破損している場合には、第2カーネル領域F−K2のカーネルプログラムの書き換えに先立って第1カーネル領域F−K1のカーネルプログラムの書き換えを行う。また、第2カーネル領域F−K2のカーネルプログラムが損傷している場合(図6のステップ104の判断におけるYESの場合に含まれる)には、第1カーネル領域F−K1のカーネルプログラムの書き換えに先立って第2カーネル領域F−K2のカーネルプログラムの書き換えを行う。したがって、第1カーネル領域F−K1のカーネルプログラムと第2カーネル領域F−K2のカーネルプログラムとのどちらかが破損している状態で、第1カーネル領域F−K1のカーネルプログラム及び第2カーネル領域F−K2のカーネルプログラムの書き換えを行う場合に電源断が再び発生した場合でも、第1カーネル領域F−K1又は第2カーネル領域F−K2のどちらかに正常なカーネルプログラムが存在することとなる。 【0064】 本実施の形態における複合機1では、以上に説明したような方法によって、オプションボード3のFlashROM9に記憶されているファームウェアの書き換えを行う。そして、複合機1が再起動され、オプションボード3に電力が供給されて、FlashROM9に記憶されているファームウェアをSDRAM10に読み込んだ際に、オプションボード3に特定の状況が発生すると、当該特定の状況が発生した旨を示す情報(告知情報に相当する。)をメインボード2に送信する。オプションボード3のファームウェアがSDRAM10に読み込まれた際にオプションボード3に特定の状況が発生していない場合には、オプションボード3は、FlashROM9の第1カーネル領域F−K1又は第2カーネル領域F−K2からSDRAM10の第1カーネル領域SD−K1に読み込まれたカーネルプログラムのバージョンの文字列を示すバージョン情報をメインボード2に送信する。そして、先に述べたように、特定の状況がオプションボード3に発生した場合には、このカーネルプログラムのバージョンの文字列を当該特定の状況の発生及びその状況の内容を示す文字列に置き換えたバージョン情報、又は、カーネルプログラムのバージョンの文字列に当該特定の状況の発生及びその状況の内容を示す文字列を埋め込んだバージョン情報をメインボード2に送信する。 【0065】 複合機1のユーザやサービスマンは、複合機1の電源の投入後に、複合機1の操作部28に対して、オプションボード3のファームウェアのバージョンを表示させるための所定の操作を行うことによって、上記バージョン情報に基づいて、カーネルプログラムのバージョンを示す文字列、又は、オプションボード3に特定の状況が発生した旨を示す文字列を表示部29に表示することができる。カーネルプログラムのバージョンを示す文字列に置き換えられ、又は、当該文字列に埋め込まれる文字列が示す、オプションボード3に発生した特定の状況とは、例えば、オプションボード3のファームウェアの書き換えに伴って発生する状況である。より具体的には、FlashROM9に記憶されているファームウェアに異常があり(破損している)正常ではない状況や、書き換えられたファームウェアのカーネルプログラムにフォントデータが適合していない状況などである。 【0066】 ファームウェアに異常があるか否かは、FlashROM9の各領域F−K1、F−K2、F−P、F−Fに記憶されているデータ(プログラム)毎に、上述したチェッカを用いたサムチェックにより確認することができる。 【0067】 また、FlashROM9のフォント領域F−Fに記憶されているフォントデータが、第1カーネル領域F−K1又は第2カーネル領域F−K2に記憶されているカーネルプログラムに適合しているか否かは、フォントデータのサムチェックに使用されるチェッカ、及び、図9に示すようなバージョンテーブル40に基づいて確認することができる。このバージョンテーブル40は、FlashROM9のフォント領域F−Fに書き込まれているであろうフォントデータのバージョンと当該バージョンのフォントデータのチェッカとを対応付けて記憶したテーブルである。FlashROM9に記憶されているフォントデータは、空きデータも含めて5120kbであるので、図2に示すように、チェッカ領域には5つのチェッカが存在する。図9のバージョンテーブル40に、フォントデータのバージョンと対応付けて記憶されているのは、チェッカ領域の5つのチェッカのうちの5つ目(末尾)のチェッカである。そのため、FlashROM9のフォント領域F−Fに記憶されるフォントデータは、フォントデータの5つ目の部分領域のチェックサムに使用されるチェッカの値が、フォントデータのバージョン毎に異なるように構成されている。そして、当該チェッカの値を、バージョンテーブル40において検索することによって、FlashROM9に記憶されているフォントデータのバージョンを知ることができる。FlashROM9に記憶されているフォントデータのバージョンが、バージョンテーブル40に記憶されている最新のバージョンでない場合に、FlashROM9に記憶されているフォントデータが、同じくFlashROM9に記憶されているカーネルプログラムに適合していないと判断する。 【0068】 次に、図10及び図11を用いて、オプションボード3に電力が供給されて、FlashROM9の第1カーネル領域F−K1に記憶されているカーネルプログラム、第2カーネル領域F−K1に記憶されているカーネルプログラム、一般プログラム領域F−Pに記憶されている一般プログラム、フォント領域F−Fに記憶されているフォントデータをSDRAM10のデータ領域SD−Dの各領域に読み込み、バージョン情報をメインボード2に送信する場合に、オプションボード3の制御部7が実行する処理について説明する。オプションボード3の制御部7は、FlashROM9のブート領域F−BからSDRAM10のブート領域SD−Bに読み込まれたブートプログラム、及び、第1カーネル領域F−K1又は第2カーネル領域F−K2から第1カーネル領域SD−K1に読み込まれたカーネルプログラムに従って処理を実行する。なお、図10及び図11に示す各処理の実行順序は図示するものに限定されるものではなく、処理の実行順序を変更しても本発明を実現できる場合には適宜に変更してもよい。 【0069】 まず、複合機1の電源が投入されてオプションボード3に電力が供給されると、FlashROM9のブート領域F−Bに記憶されているブートプログラムがSDRAM10のブート領域SD−Bに読み込まれ、実行される(S201)。ブートプログラムがSDRAM10に読み込まれると、制御部7は、ブートプログラムに基づいて、例えば、SDRAM10のデータ領域SD−Dに設けられた、FlashROM9に記憶されているカーネルプログラムのバージョンを示すバージョン情報(文字列情報)を一時的に記憶するためのバージョン文字列領域の初期化を行う(S202)。次に、制御部7は、FlashROM9の第1カーネル領域F−K1に記憶されているカーネルプログラムをSDRAM10の第1カーネル領域SD−K1に読み込みつつ、当該カーネルプログラムが正常であるか否かをチェックする(S203)。このカーネルプログラムが正常であるか否かのチェックは、FlashROM9の第1カーネル領域F−K1のチェッカ領域に記憶されているチェッカに基づくサムチェックによって行う。つまり、制御部7は、FlashROM9の第1カーネル領域F−K1からカーネルプログラムのデータを順次に読み出して第1カーネル領域SD−K1に書き込みつつ、第1カーネル領域F−K1から読み出した各データを数値として加算し、サムチェックのための総和を求める。そして、サムチェックの結果に基づいて、FlashROM9の第1カーネル領域F−K1に記憶されているカーネルプログラム、すなわち、SDRAM10の第1カーネル領域SD−K1に読み込まれたカーネルプログラムが正常であるか否かを判断する(S204)。 【0070】 FlashROM9の第1カーネル領域F−K1に記憶されているカーネルプログラムが正常でないと判断すると(S204:NO)、次に、FlashROM9の第2カーネル領域F−K2に記憶されているカーネルプログラムをSDRAM10の第1カーネル領域SD−K1に読み込みつつ、当該カーネルプログラムが正常であるか否かをチェックする(S205)。このカーネルプログラムが正常であるか否かのチェックは、FlashROM9の第2カーネル領域F−K2のチェッカ領域に記憶されているチェッカに基づくサムチェックによって行う。そして、サムチェックの結果に基づいて、FlashROM9の第2カーネル領域F−K2に記憶されているカーネルプログラム、すなわち、SDRAM10の第1カーネル領域SD−K1に読み込まれたカーネルプログラムが正常であるか否かを判断する(S206)。 【0071】 FlashROM9の第2カーネル領域F−K2に記憶されているカーネルプログラムが正常であると判断すると(S206:YES)、SDRAM10のデータ領域SD−Dのバージョン文字列領域に、第1カーネル領域F−K1に記憶されているカーネルプログラムが正常でない旨を示す文字列である、例えば“ERR−K1”を示す文字列情報を書き込み(S207)、当該バージョン文字列領域に記憶されているバージョン情報(この場合は、“ERR−K1”を示す文字情報)をメインボード2に送信し(S225)、処理を終了する。 【0072】 一方、第2カーネル領域F−K2に記憶されているカーネルプログラムが正常でないと判断すると(S206:NO)、FlashROM9の第1カーネル領域F−K1に記憶されているカーネルプログラム(正常ではない)を、SDRAM10の第1カーネル領域SD−K1に読み込み(S208)、バージョン文字列領域に、第1カーネル領域F−K1に記憶されているカーネルプログラム及び第2カーネル領域F−K2に記憶されているカーネルプログラムが正常でない旨を示す文字列である、例えば“ERRK12”を示す文字列情報を書き込む(S209)。そして、当該バージョン文字列領域に記憶されているバージョン情報(この場合は、“ERRK12”を示す文字情報)をメインボード2に送信して(S225)、処理を終了する。 【0073】 ステップS204において、FlashROM9の第1カーネル領域F−K1に記憶されているカーネルプログラムが正常であると判断すると(S210:YES)、次に、FlashROM9の第2カーネル領域F−K2に記憶されているカーネルプログラムをSDRAM10の第2カーネル領域SD−K2に読み込みつつ、当該カーネルプログラムが正常であるか否かをチェックする(S210)。このカーネルプログラムが正常であるか否かのチェックは、FlashROM9の第2カーネル領域F−K2のチェッカ領域に記憶されているチェッカに基づくサムチェックによって行う。そして、サムチェックの結果に基づいて、FlashROM9の第2カーネル領域F−K2に記憶されているカーネルプログラム、すなわち、SDRAM10の第2カーネル領域SD−K2に読み込まれたカーネルプログラムが正常であるか否かを判断する(S211)。 【0074】 FlashROM9の第2カーネル領域F−K2に記憶されているカーネルプログラムが正常でないと判断すると(S211:NO)、SDRAM10のデータ領域SD−Dのバージョン文字列領域に、第2カーネル領域F−K2に記憶されているカーネルプログラムが正常でない旨を示す文字列である、例えば“ERR−K2”を示す文字列情報を書き込み(S212)、当該バージョン文字列領域に記憶されているバージョン情報(この場合は、“ERR−K2”を示す文字情報)をメインボード2に送信し(S225)、処理を終了する。 【0075】 一方、FlashROM9の第2カーネル領域F−K2に記憶されているカーネルプログラムが正常であると判断すると(S211:YES)、FlashROM9の第1カーネル領域F−K1から、当該領域F−K1に記憶されているカーネルプログラムのバージョンを示す文字列である、例えば、“A0A0B1”を示す文字列情報を読み出して、バージョン文字列領域に書き込む(S213)。 【0076】 このように、FlashROM9からSDRAM10に読み込んだカーネルプログラムが正常である場合には、制御部7は、当該カーネルプログラムに基づいて以下の処理を実行する。まず、FlashROM9の一般プログラム領域F−Pに記憶されている一般プログラムをSDRAM10の一般プログラム領域SD−Pに読み込みつつ、当該一般プログラムが正常であるか否かをチェックする(S214)。この一般プログラムが正常であるか否かのチェックは、FlashROM9の一般プログラム領域F−Pのチェッカ領域に記憶されているチェッカに基づくサムチェックによって行う。そして、サムチェックの結果に基づいて、FlashROM9の一般プログラム領域F−Pに記憶されている一般プログラム、すなわち、SDRAM10の一般プログラム領域SD−Pに読み込まれた一般プログラムが正常であるか否かを判断する(S215)。 【0077】 FlashROM9の一般プログラム領域F−Pに記憶されている一般プログラムが正常でないと判断すると(S215:NO)、SDRAM10のデータ領域SD−Dのバージョン文字列領域の一部に、一般プログラム領域F−Pに記憶されている一般プログラムが正常でない旨を示す文字列である、例えば“ERR−P”を示す文字列情報を埋め込み(S216)、当該バージョン文字列領域に記憶されているバージョン情報(この場合は、“AERR−P”を示す文字情報)をメインボード2に送信し(S225)、処理を終了する。 【0078】 一方、FlashROM9の一般プログラム領域F−Pに記憶されている一般プログラムが正常であると判断すると(S215:YES)、FlashROM9のフォント領域F−Fに記憶されているフォントデータをSDRAM10のフォント領域SD−Fに読み込みつつ、当該フォントデータが正常であるか否かをチェックする(S217)。このフォントデータが正常であるか否かのチェックは、FlashROM9のフォント領域F−Fのチェッカ領域に記憶されているチェッカに基づくサムチェックによって行う。そして、サムチェックの結果に基づいて、FlashROM9のフォント領域F−Fに記憶されているフォントデータ、すなわち、SDRAM10のフォント領域SD−Fに読み込まれたフォントデータが正常であるか否かを判断する(S218)。 【0079】 FlashROM9のフォント領域F−Fに記憶されているフォントデータが正常でないと判断すると(S218:NO)、SDRAM10のデータ領域SD−Dのバージョン文字列領域の一部に、フォント領域F−Fに記憶されているフォントデータが正常でない旨を示す文字列である、例えば“ERR−F”を示す文字列情報を埋め込み(S219)、当該バージョン文字列領域に記憶されているバージョン情報(この場合は、“AERR−F”を示す文字情報)をメインボード2に送信し(S225)、処理を終了する。 【0080】 一方、FlashROM9のフォント領域F−Fに記憶されているフォントデータが正常であると判断すると(S218:YES)、フォント領域F−Fのチェッカ領域の末尾に記憶されているチェッカの値を、FlashROM9の第1カーネル領域F−K1に記憶されているバージョンテーブル40において検索してFlashROM9に記憶されているフォントデータのバージョンをチェックする(S220)。 【0081】 チェッカの値を用いたバージョンテーブル40における検索の結果、バージョンテーブル40内に該当するチェッカの値がないと判断すると(S221)、SDRAM10のデータ領域SD−Dのバージョン文字列領域の一部に、フォント領域F−Fに記憶されているフォントデータのバージョンが不明である旨を示す文字列である、例えば“XX”を示す文字列情報を埋め込み(S222)、当該バージョン文字列領域に記憶されているバージョン情報(この場合は、“A0A0XX”を示す文字情報)をメインボード2に送信し(S225)、処理を終了する。 【0082】 一方、チェッカの値を用いたバージョンテーブル40に対する検索の結果、フォント領域F−Fに記憶されているフォントデータのバージョンが最新のものでないと判断すると(S223:NO)、SDRAM10のデータ領域SD−Dのバージョン文字列領域の一部に、FlashROM9のフォント領域F−Fに記憶されているフォントデータのバージョンを示す文字列、例えば、フォントデータのバージョンが「2」である場合には、“@2”を示す文字列情報を埋め込み(S224)、当該バージョン文字列領域に記憶されているバージョン情報(この場合は、“A0A0@2”)をメインボード2に送信し(S225)、処理を終了する。 【0083】 なお、FlashROM9のフォント領域F−Fに記憶されているフォントデータが最新のバージョンである場合には、ステップS213においてバージョン文字列領域に書き込まれた、FlashROM9の第1カーネル領域F−K1に記憶されているカーネルプログラムのバージョン、例えば、“A0A0B1”が、ステップS225でそのままメインボード2に送信される。 【0084】 以上に説明したように、本発明の実施例の複合機1によれば、オプションボード3に電源が投入された際に、例えば、ファームウェアの書き換えによりオプションボード3に特定の状況が発生している場合には、オプションボード3のファームウェアのバージョンを示すバージョン情報が特定の状況を示す情報に置き換えられ、又は、バージョン情報に特定の状況を示す情報が埋め込まれ、当該バージョン情報がメインボード2に送信される。そして、複合機1の操作部28に対してオプションボード3のバージョンを表示させる所定の操作が行われると、バージョン情報に基づいてオプションボード3に発生している特定の状況を示す情報を表示部29に表示する。したがって、複合機1のユーザやサービスマンは、バージョンを表示させるための既知の操作のみにより、複合機1を移動させたり筐体を開いたりすることなく、簡便に、オプションボード3に発生した特定の状況を知ることができる。 【0085】 なお、本発明の実施形態は上述の形態に限らず、本発明の技術的思想の範囲内において種々に変更してもよい。例えば、上述の実施形態では、バージョン情報を6文字の文字列を示す情報としたが、バージョン情報が示す文字列は6文字に限定されるものではない。 【0086】 また、上述の実施形態では、カーネルプログラムが正常でない状況が発生した場合には、バージョン情報をカーネルプログラムが正常でない状況が発生した旨を示す情報に置き換え、それ以外の状況が発生した場合には、バージョン情報にその状況が発生したことを示す情報を埋め込むこととしたが、バージョン情報を特定の状況が発生したことを示す情報に置き換えるか、バージョン情報に特定の状況が発生したことを示す情報を埋め込むかの区別は、これに限るものでなく、適宜に設定してもよい。 【産業上の利用可能性】 【0087】 本発明は、メイン制御部とサブ制御部とを備える装置に適用可能である。 【図面の簡単な説明】 【0088】 【図1】本発明の画像処理装置の一例としての複合機1の構成例を示したブロック図である。 【図2】FlashROM9とSDRAM10の記憶領域を説明する説明図である。 【図3】第1カーネル領域F−K1及び第2カーネル領域F−K2のデータを書き換えるためのK領域用書き換えデータを説明する説明図である。 【図4】一般プログラム領域F−Pのデータを書き換えるためのP領域用書き換えデータを説明する説明図である。 【図5】一般プログラム領域F−Pのデータに対して行われるサムチェックを説明する説明図である。 【図6】クライアントPC6から送信された書き換えデータに基づいてオプションボード3のFlashROM9に記憶されているファームウェアをアップデート(書き換え)する場合に、オプションボード3の制御部7が実行する処理について説明するフローチャートである。 【図7】図6のフローチャートに続くフローチャートである。 【図8】書き換えデータのデータサイズと書き換えデータによって書き換えるべき記憶領域との関係を記憶したテーブルを示す説明図である。 【図9】フォントデータのバージョンとフォントデータのチェッカの値とを対応付けて記憶したバージョンテーブル40の一例を示す説明図である。 【図10】オプションボード3に電力が供給されて、FlashROM9の第1カーネル領域F−K1に記憶されているカーネルプログラム、第2カーネル領域F−K1に記憶されているカーネルプログラム、一般プログラム領域F−Pに記憶されている一般プログラム、フォント領域F−Fに記憶されているフォントデータをSDRAM10のデータ領域SD−Dの各領域に読み込み、バージョン情報をメインボード2に送信する場合に、オプションボード3の制御部7が実行する処理について説明するフローチャートである。 【図11】図10のフローチャートに続くフローチャートである。 【符号の説明】 【0089】 1 画像処理装置 2 メインボード 3 オプションボード 7 制御部(MPU) 8 インターフェース回路 9 FlashROM 10 SDRAM F−B ブート領域 F−K1 第1カーネル領域 F−K2 第2カーネル領域 F−P 一般プログラム領域 F−F フォント領域 21 制御部(MPU) 29 表示部
|
| 【出願人】 |
【識別番号】000006297 【氏名又は名称】村田機械株式会社
|
| 【出願日】 |
平成18年8月18日(2006.8.18) |
| 【代理人】 |
【識別番号】100080182 【弁理士】 【氏名又は名称】渡辺 三彦
|
| 【公開番号】 |
特開2008−48229(P2008−48229A) |
| 【公開日】 |
平成20年2月28日(2008.2.28) |
| 【出願番号】 |
特願2006−222854(P2006−222854) |
|