(57)【要約】      （修正有）【課題】送信元のオペレータがメモリに書込むべき書換データのアドレス指定やサイズ指定を行うことなく、メモリに記憶されているファームウェアの一部を書換える。【解決手段】ファームウェアをデータの種類別に分割して各々別個の記憶領域に記憶するＦｌａｓｈ ＲＯＭ８と、ファームウェアの書換データを受信するインターフェース回路７と、受信した前記書換データのデータサイズに基づいて、該書換データに書換えるべき記憶領域を決定する決定手段と、該手段により決定した書換えるべき記憶領域をインターフェース回路７により受信した書換データに書換える書換手段とを備え、書換えるべき記憶領域が複数の場合、書換データの種類毎に予め設定された優先順位に従って書換え、また特定の情報を記憶している領域が含まれている場合は他の記憶場所に複製した後、書換える。【選択図】図１
2005258602.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアをデータの種類別に分割して各々別個の記憶領域に記憶する記憶手段と、ファームウェアの書換データを受信する受信手段と、受信した前記書換データのデータサイズに基づいて、該書換データに書換えるべき記憶領域を決定する決定手段と、該手段により決定した書換えるべき記憶領域を前記受信手段により受信した書換データに書換える書換手段と、を備えることを特徴とするデータ処理装置。
【請求項２】
前記書換手段は、前記決定手段が決定した書換えるべき記憶領域が複数である場合に、書換データの種類毎に予め設定された優先順位に従って書換えるべき複数の記憶領域を各々対応する書換データに順次書換えることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記書換手段は、前記決定手段が決定した書換えるべき記憶領域に特定の情報を記憶している記憶領域が含まれているか否かを検索し、当該記憶領域が含まれている場合に、当該記憶領域のデータを他の記憶場所に複製した後、前記決定手段が決定した書換えるべき記憶領域を前記受信手段が受信した書換データに書換えることを特徴とする請求項１又は２記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関し、詳しくは外部から受信した書換データにより自装置のメモリに記憶されているファームウェアをアップデートするデータ処理装置に関するものである。
【背景技術】
【０００２】
自装置のファームウェアのアップデートを比較的頻繁に行う必要があるデータ処理装置では、フラッシュメモリ等の書換え可能なメモリに自身のファームウェアを記憶しており、前記メモリのファームウェアを外部から受信した書換データに書換えることにより、ファームウェアのアップデート処理を行なっている。このようなアップデート処理を行う従来のデータ処理装置では、メモリに記憶されているファームウェアの全体を無条件に受信した書換データに書換えていたため、例えば、フォントデータなどの書換える必要のないデータまで同じ内容で書換えられるという無駄な処理が行われる場合があり、ファームウェアの書換えに時間がかかるという問題があった。かかる事情を考慮して自身のファームウェアをアップデートする装置として、特許文献１に開示されているデータ処理装置がある。
【０００３】
特許文献１のデータ処理装置では、自身のファームウェアをアップデートするための書換データとともに、ファームウェア書換情報を外部から受信してファームウェアをアップデートする。ここで、データ処理装置が書換データとともに受信するファームウェア書換情報は、ファームウェアのどのアドレスからどれだけのサイズのファームウェアを書換えるかを示したものであり、データ処理装置は、このファームウェア書換情報に従って、メモリに記憶されているファームウェアの一部を書換える。
【特許文献１】特開２００１−２７３１４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のデータ処理装置では、書換データとファームウェア書換情報の送信元において、ファームウェア書換情報を送信するために、オペレータがデータ処理装置のメモリに書込むべき書換データのアドレス指定やサイズ指定といった面倒な操作を行なわなければならなかった。したがって、例えば、オペレータがこれらの操作を行うための知識を持たない一般的なユーザである場合には、容易にアップデート処理を行うことができないという問題点があった。
【０００５】
本発明は、かかる課題に鑑みてなされたものであり、外部から受信した書換データによって自身のファームウェアをアップデートするデータ処理装置において、送信元のオペレータがメモリに書込むべき書換データのアドレス指定やサイズ指定を行うことなく、メモリに記憶されているファームウェアの一部を書換えることができるデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１記載のデータ処理装置は、ファームウェアをデータの種類別に分割して各々別個の記憶領域に記憶する記憶手段と、ファームウェアの書換データを受信する受信手段と、受信した前記書換データのデータサイズに基づいて、該書換データに書換えるべき記憶領域を決定する決定手段と、該手段により決定した書換えるべき記憶領域を前記受信手段により受信した書換データに書換える書換手段と、を備えることを特徴としている。
【０００７】
請求項２記載のデータ処理装置は、請求項１に記載のデータ処理装置において、前記書換手段は、前記決定手段が決定した書換えるべき記憶領域が複数である場合に、書換データの種類毎に予め設定された優先順位に従って書換えるべき複数の記憶領域を各々対応する書換データに順次書換えることを特徴としている。
【０００８】
請求項３記載のデータ処理装置は、請求項１又は２に記載のデータ処理装置において、前記書換手段は、前記決定手段が決定した書換えるべき記憶領域に特定の情報を記憶している記憶領域が含まれているか否かを検索し、当該記憶領域が含まれている場合に、当該記憶領域のデータを他の記憶場所に複製した後、前記決定手段が決定した書換えるべき記憶領域を前記受信手段が受信した書換データに書換えることを特徴としている。
【発明の効果】
【０００９】
請求項１に記載のデータ処理装置によれば、ファームウェアの一部の書換えを行うことができる。したがって、書換えが不要な記憶領域のデータが同じ内容で上書きされることがなく、ファームウェアのアップデート処理にかかる時間を短縮することができる。また、受信した書換データのデータサイズから書換データに書換えるべき記憶領域を決定するので、書換データに特別な情報を付加したり、送信元のオペレータがアドレス指定やサイズ指定等の操作を行う必要がないという利点がある。
【００１０】
請求項２に記載のデータ処理装置では、複数の記憶領域を書換える場合に、書換データの種類毎に予め設定された優先順位に従って書換えるべき複数の記憶領域を各々対応する書換データに順次書換える。書換エラーは、書換えを試みた最初の記憶領域の最初のセクタで発生する可能性が高いが、重要度の低い記憶領域から書換えを行うように上記の優先順位を設定しておくことにより、重要度が高い領域の書換え中に書換エラーが起こって重要なデータが破壊される可能性を低くすることができる。
【００１１】
請求項３に記載のデータ処理装置は、決定した書換えるべき記憶領域に特定の情報を記憶している記憶領域が含まれている場合に、書換えを開始する前にその記憶領域のデータを他の記憶場所に複製する。したがって、例えばシステムを起動させたり、書換処理を行うために必要なプログラムなどを記憶している記憶領域のデータを他の記憶場所に複製しておくことにより、システムの起動や書換データの再アップデート処理を行うことができなくなるといった重大な問題が発生するのを防止することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態に係るデータ処理装置を、外部から受信したＰＤＬ（Page Description Language）データに所定のデータ処理を行って複合機に転送するデータ処理装置に適用した場合について図面に基づいて説明する。図１に示すように、このデータ処理装置１は、ＬＡＮ（Local Area Network）２上のクライアントＰＣ（Personal Computer）３から送信されたＰＤＬデータを受信するネットワーク インターフェース コントローラ４とともに、コピー機能、ＰＣスキャナ機能、ＰＣプリント機能等を備える複合機５に組込まれており、ネットワーク インターフェース コントローラ４及び複合機５と通信可能に接続されている。
【００１３】
クライアントＰＣ３は、一般的な機能を備えたＰＣであり、ユーザが作成した文書等のデータをＰＤＬデータに変換してＬＡＮ２を介して複合機５のネットワーク インターフェース コントローラ４に送信する。なお、ここで使用されるページ記述言語（ＰＤＬ）は特に限定されるものではないが、例えばＰＣＬなどを用いることができる。また、後述するが、データ処理装置１が自装置１のファームウェアをアップデートするための書換データもこのクライアントＰＣ３から送信される。
【００１４】
ネットワーク インターフェース コントローラ４は、複合機５がＬＡＮ２上のクライアントＰＣ３との間で各種データを送受信する際に、そのデータの送受信を制御するものである。具体的には、クライアントＰＣ３から受信したＰＤＬデータをデータ処理装置１に転送し、複合機５で読取られた原稿の画像データ等をＬＡＮ２上のクライアントＰＣ３に送信する処理などを行う。
【００１５】
一方、ネットワーク インターフェース コントローラ４から転送されたＰＤＬデータに所定のデータ処理を行って複合機５に転送するデータ処理装置１は、図示するように、制御部（ＭＰＵ：Microprocessing Unit）６、インターフェース回路７、Ｆｌａｓｈ ＲＯＭ（Read Only Memory）８、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）９、及びデータ処理回路１０を備えたものであって、各部６乃至１０は、バス１１によって通信可能に接続されている。
【００１６】
制御部６は、Ｆｌａｓｈ ＲＯＭ８に記憶されているファームウェアの各種プログラムに従って、このデータ処理装置１を構成する各部を制御する。インターフェース回路７は、ネットワーク インターフェース コントローラ４から転送されたＰＤＬデータや書換データを受信するものであり、ファームウェアの書換データを受信する受信手段として機能する。また、ＰＤＬデータは、データ処理回路１０において所定のデータ処理が施された後、このインターフェース回路７によって複合機５に転送される。Ｆｌａｓｈ ＲＯＭ８は、制御部６によってデータ処理装置１の各部が制御されるためのファームウェアを記憶しているフラッシュメモリである。ＳＤＲＡＭ９は、制御部６の主メモリ、ワークエリア等として機能し、受信したＰＤＬデータや書換データ等を格納する。
【００１７】
データ処理回路１０は、インターフェース回路７が受信したＰＤＬデータに所定のデータ処理を施すものであり、具体的にはインターフェース回路７が受信したＰＤＬデータを解析して複合機５で処理可能な画像データに展開した後、その画像データをＭＭＲ（Modified Modified Read）方式で符号化（エンコード）する。このようにしてデータ処理回路１０において所定のデータ処理が施された画像データは、上記のようにインターフェース回路７によって複合機５へと転送される。なお、画像データを符号化する符号化方式はＭＭＲ方式に限定されるものではなく、例えば、ＭＨ（Modified Huffman）、ＭＲ（Modified Read）、ＪＢＩＧ（Joint Bi-level Image Group）方式等の他の符号化方式を使用してもよい。また、ここでは、画像データの転送速度等を考慮して展開した画像データをＭＭＲ方式で符号化して転送しているが、符号化処理を行うことなく展開した画像データをそのまま複合機５に転送することも当然可能である。
【００１８】
一方、データ処理装置１から転送された画像データの印刷処理を行う複合機５は、制御部（ＭＰＵ）１４、ＲＯＭ（Read Only Memory）１５、ＲＡＭ（Random Access Memory）１６、原稿読取部１７、コーデック（ＣＯＤＥＣ：Coder and Decoder）１８、画像メモリ１９、記録部２０、操作部２１、及び表示部２２を備えたものであって、各部１４乃至２２は、バス２３によって通信可能に接続されている。
【００１９】
制御部１４は、ＲＯＭ１５に記憶されているプログラムに従って、この複合機５を構成する各部を制御する。ＲＯＭ１５は、前記プログラムを記憶している。ＲＡＭ１６は、制御部１４の主メモリ、ワークエリア等として機能し、予め登録された各種設定情報等を記憶している。原稿読取部１７は、例えば、ＣＣＤ（Charge Coupled Device）等のイメージセンサによって原稿の画像データを読取るものである。
【００２０】
コーデック１８は、画像データの符号化及び復号（デコード）を行うものであり、原稿読取部１７で読取られた原稿の画像データをＭＨ、ＭＲ、ＭＭＲ、ＪＢＩＧ方式等により符号化し、符号化されている画像データを復号する。なお、データ処理装置１から転送された画像データは、このコーデック１８において復号される。画像メモリ１９は、コーデック１８によって符号化された原稿の画像データ、データ処理装置１から転送された画像データ等を格納する。
【００２１】
記録部２０は、原稿読取部１７において読み取られた原稿の画像データ、データ処理装置１から転送された画像データ等の画像を用紙に記録するものであり、この記録部２０における記録方式としては、例えば、電子写真方式を用いることができる。データ処理装置１から転送された画像データは、画像メモリ１９に一旦格納された後、コーデック１８によって復号され、この記録部２０においてその画像が用紙に記録される。
【００２２】
操作部２１は、図示しないが原稿読取部１７に原稿の読取開始を指示するためのスタートキー、コピー部数等を入力するためのテンキー、各種設定を行うためのカーソルキーなど、表示部２２と連動した各種操作キーを備えている。表示部２２は、各種の設定状態や複合機５の動作状態などを文字や図形などで表示する液晶表示装置（ＬＣＤ：Liquid Crystal Display）や、点灯又は消灯で表示するＬＥＤランプなどを備えている。
【００２３】
以上説明したように構成されたデータ処理装置１、ネットワーク インターフェース コントローラ４、及び複合機５において、ＬＡＮ２上のクライアントＰＣ３から送信されたＰＤＬデータは、ネットワーク インターフェース コントローラ４によってデータ処理装置１に転送され、該データ処理装置１において展開されて所定の符号化方式で符号化された後、複合機５へと転送されて該複合機５にてその画像が用紙に記録されるようになっている。なお、クライアントＰＣ３からは、複合機５において印刷すべきＰＤＬデータの他に、データ処理装置１が自身のファームウェアをアップデートするための書換データがデータ処理装置１に対して送信される。
【００２４】
以下、データ処理装置１において、ファームウェアを記憶するＦｌａｓｈ ＲＯＭ８及びＰＤＬデータや書換データを一時的に格納するＳＤＲＡＭ９について、図２に基づいて説明する。図示するように、Ｆｌａｓｈ ＲＯＭ８は、ブート領域２５、カーネル領域２６、一般プログラム領域２７、及びフォント領域２８の４つの記憶領域に論理的に分割されている。ＳＤＲＡＭ９は、プログラム領域２９、退避領域３０、データ領域３１の３つの記憶領域に論理的に分割されている。
【００２５】
Ｆｌａｓｈ ＲＯＭ８のブート領域２５は、システム起動時に実行される基本プログラムを記憶している記憶領域である。カーネル領域２６は、ジョブ管理、データ管理、タスク管理等を行うための制御プログラムを記憶している記憶領域である。なお、このカーネル領域２６には、データ処理装置１がクライアントＰＣ３から書換データを受信した場合に、Ｆｌａｓｈ ＲＯＭ８のファームウェアを前記書換データに書換えるための書換コードが特定の情報として記憶されている。一般プログラム領域２７は、データ処理装置１が各種処理動作を行うための一般プログラムを記憶している記憶領域である。この一般プログラム領域２７が記憶している一般プログラムは、例えば、インターフェース回路７が受信したＰＤＬデータに所定のデータ処理を行うためのデータ処理プログラム等である。フォント領域２８は、日本語や英語等のフォントデータを記憶している記憶領域である。すなわち、Ｆｌａｓｈ ＲＯＭ８は、自装置１のファームウェアをデータの種類別に分割して各々別個の記憶領域に記憶する記憶手段として機能する。
【００２６】
一方、ＳＤＲＡＭ９のプログラム領域２９は、制御部６によってＦｌａｓｈ ＲＯＭ８のカーネル領域２６から読み出された制御プログラム、一般プログラム領域２７から読み出された一般プログラム、フォント領域２８から読み出されたフォントデータ等を一時的に格納する領域であり、このプログラム領域２９に格納された各種プログラムが制御部６によって実行される。退避領域３０は、書換コードを記憶する記憶領域のデータ、すなわちＦｌａｓｈ ＲＯＭ８のカーネル領域２６のデータの複製を格納する記憶場所である。データ領域３１は、各種データを一時的に格納する領域であり、例えばネットワーク インターフェース コントローラ４によって転送されたＰＤＬデータや書換データ、複合機５から受信した画像データ等を一時的に格納する。
【００２７】
図３は、上記のように構成されたデータ処理装置１において、システム起動時に行われる処理動作を示したフローチャートである。図示するように、制御部６は、例えば、複合機５の電源が投入されるなどして、データ処理装置１の各部に電力が供給されると、まずＦｌａｓｈ ＲＯＭ８のブート領域２５の基本プログラムを実行し（Ｓ１）、カーネル領域２６の制御プログラムが正常であるか否かを判断する（Ｓ２）。ここで、カーネル領域２６の制御プログラムが正常であると判断した場合には（Ｓ２：ＹＥＳ）、カーネル領域２６から制御プログラムを読み出してプログラム領域２９に格納する（Ｓ３）。
【００２８】
なお、後述するが、カーネル領域２６を含むＦｌａｓｈ ＲＯＭ８の各記憶領域のデータは、外部から受信した書換データそれぞれ書換えられるようになっている。このように、外部から受信した書換データに書換えている最中に書換エラーが発生して特定の情報である書換コードを記憶しているカーネル領域２６のデータが破壊されると、システムの起動やファームウェアのアップデートを行うことができなくなる。本発明では、このような問題が生じるのを防止するために、書換えるべき記憶領域に特定の情報を記憶している記憶領域が含まれている場合に、その記憶領域のデータを他の記憶場所に複製する。具体的には、制御部６が書換コードを記憶しているカーネル領域２６のデータをＳＤＲＡＭ９の退避領域３０に複製する。したがって、制御部６は、カーネル領域２６の制御プログラムが正常ではないと判断した場合（Ｓ２：ＮＯ）、すなわちファームウェアのアップデート中に書換エラー等によりカーネル領域２６のデータが破壊された場合に、ＳＤＲＡＭ９の退避領域３０から制御プログラムを読み出してプログラム領域２９に格納する（Ｓ４）。このようにして、制御部６は、通常のシステム起動時にはカーネル領域２６から、カーネル領域２６の書換エラー発生後のシステム起動時には退避領域３０から、制御プログラムを読み出してプログラム領域２９に格納して実行する。したがって、書換エラーが発生した場合でもシステムを正常に起動させることが可能である。なお、制御部６は、Ｓ３又はＳ４の処理動作によって制御プログラムをプログラム領域２９にロードした後、一般プログラム領域２７の一般プログラムとフォント領域２８のフォントデータをそれぞれ読出し、プログラム領域２９に格納する。
【００２９】
以下、データ処理装置１のＦｌａｓｈ ＲＯＭ８のファームウェアと、クライアントＰＣ３からデータ処理装置１のファームウェアの書換データが送信される場合に、クライアントＰＣ３から送信される書換データ及びデータ処理装置１における書換処理について以下に説明する。
【００３０】
Ｆｌａｓｈ ＲＯＭ８は、図２に例示するように自装置１のファームウェアをデータの種類別に分割して各々別個の記憶領域に記憶している。ここでは、８ｋＢのブート領域２５、２４８ｋＢのカーネル領域２６、２８１６ｋＢの一般プログラム領域２７、及び５１２０ｋＢのフォント領域２８の４つの記憶領域に分割して記憶している。このように、データ処理装置１のファームウェアは、データの種類別に分割されて異なるサイズの記憶領域２５乃至２８にそれぞれ記憶されているが、これらの各記憶領域全てにプログラムやフォントデータが記憶されているわけではなく、プログラムやフォントデータに適当なデータサイズの空きデータ、例えば１６進数で「００」又は「ＦＦ」の値を持つ空きデータが付加されたデータがそれぞれ対応する記憶領域に記憶されている。例えば、２４８ｋＢのカーネル領域２６に記憶すべき制御プログラム全体のデータサイズが２３０ｋＢであれば、これに１８ｋＢの空きデータが付加されたカーネル領域２６のサイズと等しい２４８ｋＢのデータがカーネル領域２６に記憶される。
【００３１】
これに対し、カーネル領域２６に記憶されている制御プログラムをアップデートするための新たな制御プログラムを作成した場合、当然そのデータサイズは２３０ｋＢとはならず、場合によっては２３０ｋＢを上回るデータサイズの制御プログラムとなる。このような場合に、カーネル領域２６のサイズを２３０ｋＢと設定すると、新たな制御プログラムをカーネル領域２６内のみに記憶することができず、一部を他の記憶領域に記憶させなければならないことになる。したがって、上記のように実際の制御プログラムに適当なデータサイズの空きデータを加えたデータを同サイズのカーネル領域２６に記憶しておくことにより、既存の制御プログラムを新たな制御プログラムに書換える場合に、その新たな制御プログラムをカーネル領域２６に適切に記憶させることができる。なお、ブート領域２５と一般プログラム領域２７とフォント領域２８についても同様であり、実データに適当なデータサイズの空きデータが付加されたものがそれぞれ記憶されている。
【００３２】
そして、これら４つの記憶領域のデータの全て、すなわちデータ処理装置１のファームウェア全体を書換える場合には、図４の（ａ）に示すように、８ｋＢのＢ（ブート）領域用書換データと、２４８ｋＢのＫ（カーネル）領域用書換データと、２８１６ｋＢのＰ（一般プログラム）領域用書換データと、５１２０ｋＢのＦ（フォント）領域用書換データとからなる８１９２ｋＢの書換データがクライアントＰＣ３からデータ処理装置１に送信される。そして、データ処理装置１は、ブート領域２５のデータをＢ領域用書換データに書換え、カーネル領域２６のデータをＫ領域用書換データに書換え、一般プログラム領域２７のデータをＰ領域用書換データに書換え、フォント領域２８のデータをＦ領域用書換データに書換える。
【００３３】
ここで、カーネル領域２６のデータを書換えるためのＫ領域用書換データを例として、各記憶領域２５乃至２８のデータを書換えるためにクライアントＰＣ３から送信される書換データについて説明する。カーネル領域２６の制御プログラムをアップデートするための新たな制御プログラムを作成した場合、その新たな制御プログラムは、カーネル領域２６の既存の制御プログラムとはデータサイズが異なるものとなる。したがって、カーネル領域２６に記憶されているデータと同様に、制御プログラム作成時に該制御プログラムに適当なデータサイズの空きデータを付加したＫ領域用書換データがクライアントＰＣ３からデータ処理装置１に送信されるようになっている。したがって、本発明の実施の形態においては、カーネル領域２６のデータを書換えるべきＫ領域用書換データのデータサイズは常に一定であり、ここでは２４８ｋＢである。なお、他の書換データについても同様であり、Ｂ領域用書換データは８ｋＢ、Ｐ領域用書換データは２８１６ｋＢ、Ｆ領域用書換データは５１２０ｋＢのデータサイズとなるように適当なデータサイズの空きデータが付加された書換データとなっている。したがって、クライアントＰＣ３から送信される書換データがデータ処理装置１のＦｌａｓｈ ＲＯＭ８の記憶領域の全てのデータを書換えるべきものである場合には、上記のように常に８１９２ｋＢの書換えデータがデータ処理装置１に送信される。また、これらの書換データの末尾には、データ処理装置１において書換えが正常に行われたか否かを判断するためのチェックサムが付加されている。また、Ｋ領域用書換データには、当然書換コードが含まれている。
【００３４】
このようにして、Ｆｌａｓｈ ＲＯＭ８のファームウェア全体を書換えるための書換データをクライアントＰＣ３から送信することは当然可能であるが、例えばブート領域２５の基本プログラムとフォント領域２８のフォントデータを更新する必要のない場合に上記のように全記憶領域を書換えるための書換データを送信した場合、必要以上に送信処理に時間がかかる。また、データ処理装置１では、ブート領域２５の基本プログラムとフォント領域２８のフォントデータがそれぞれ同じ内容で上書きされることになり、無駄な処理が行われることになる。そのうえ、ブート領域２５にはシステムを起動させるための重要な基本プログラムが記憶されており、無駄な書換処理が行なわれるのは好適でない。したがって、本発明では、Ｆｌａｓｈ ＲＯＭ８の記憶領域のうち、書換えが必要な記憶領域に対応する書換データのみがクライアントＰＣ３から送信される。
【００３５】
例えば、カーネル領域２６のデータと一般プログラム領域２７のデータについてのみ書換えを行う場合には、図４の（ｂ）に示すように、２４８ｋＢのＫ領域用書換データと２８１６ｋＢのＰ領域用書換データとからなる３０６４ｋＢの書換データがクライアントＰＣ３からデータ処理装置１に送信される。そして、データ処理装置１は、カーネル領域２６の制御プログラムをＫ領域用書換データに書換え、一般プログラム領域２７の一般プログラムをＰ領域用書換データに書換える。
【００３６】
なお、クライアントＰＣ３からは、書換データの他は何らデータは送信されず、データ処理装置１は、何らかの方法で受信した書換データに書換えるべき記憶領域をＦｌａｓｈ ＲＯＭ８の４つの記憶領域の中から決定する必要がある。ここで、図２に示すように、Ｆｌａｓｈ ＲＯＭ８の各記憶領域はそれぞれ異なるサイズに分割されているため、図４の（ａ）及び（ｂ）において例示したように、書換えるべき記憶領域の組み合わせが異なる場合には、クライアントＰＣ３から送信される書換データのデータサイズが異なる。よって、データ処理装置１のカーネル領域２６には、図５に示すように受信した書換データのデータサイズに基づいて、書換データに書換えるべき記憶領域を決定するための書換コードが記憶されており、制御部６は、外部から書換データを受信した場合に、受信した書換データのデータサイズに基づいて、書換データに書換えるべき記憶領域を決定する決定手段として機能する。例えば、クライアントＰＣ３から受信した書換データのデータサイズが２５６ｋＢである場合には、書換データはＢ領域用書換データとＫ領域用書換データからなるものでると判断して書換データに書換えるべき記憶領域をブート領域２５とカーネル領域２６に決定する。また、他の例として書換データのデータサイズが８１８４ｋＢである場合には、書換データはＫ領域用書換データとＰ領域用書換データとＦ領域用書換データからなるものであると判断して書換データに書換えるべき記憶領域をカーネル領域２６と一般プログラム領域２７とフォント領域２８に決定する。制御部６は、決定した書換えるべき記憶領域をインターフェース回路７により受信した書換データに書換える書換手段として機能する。
【００３７】
ところで、このようにしてクライアントＰＣ３から書換データを受信してＦｌａｓｈ ＲＯＭ８の複数の記憶領域のデータを書換える場合、書換エラーが発生するとすれば、書換えを試みた最初の記憶領域の最初のセクタで発生する可能性が高い。そこで、本発明においては、Ｆｌａｓｈ ＲＯＭ８の複数の記憶領域に対して書換処理が行われる場合には、重要度の高い記憶領域から書換処理が開始されることがないように、カーネル領域２６に記憶されている書換コードによって書換データの種類毎に予め書換えを行うべき優先順位が設定されている。この優先順位は、各記憶領域２５乃至２８に記憶されている各データの重要度に基づいて設定されており、図２に示すように、Ｆｌａｓｈ ＲＯＭ８の各記憶領域の中で最も重要な記憶領域は、システムを起動させるために必要不可欠な基本プログラムが記憶されているブート領域２５であり、次に書換コードを含む制御プログラムが記憶されているカーネル領域２６である。そして、一般プログラムが記憶されている一般プログラム領域２７とフォントデータが記憶されているフォント領域２８が同等の重要度となっている。
【００３８】
すなわち、記憶領域２５乃至２８のデータを全て書換える場合には、まず、一般プログラム領域２７のデータがＰ領域用書換データに書換えられ、次にフォント領域２８のデータがＦ領域用書換データに書換えられ、続いてカーネル領域２６のデータがＫ領域用書換データに書換えられ、最後にブート領域２５のデータがＢ領域用書換データに書換えられる。よって、たとえ書換えを試みた最初の記憶領域である一般プログラム領域２７の一般プログラムの書換え中に書換エラーが発生して一般プログラムが破壊されたとしても、ブート領域２５の基本プログラムとカーネル領域２６の制御プログラムには書換処理が行なわれておらず正常である。そのため、システムを起動できなくなるという問題が発生することもなく、書換処理を再度行うことも可能である。なお、上記の書換処理において、フォント領域２８と一般プログラム領域２７は同等の重要度であるため、まずフォント領域２８のデータをＦ領域用書換データに書換え、次に一般プログラム領域２７のデータをＰ領域用書換データに書換えるようにしてもよい。また、ファームウェアの一部を書換える場合も同様であり、例えば書換データのデータサイズが３０６４ｋＢである場合には、制御部６は図５に示したように、まず書換データがＫ領域用書換データ、Ｐ領域用書換データからなるものであると判断してカーネル領域２６と一般プログラム領域２７を書換えるべき記憶領域として決定する。そして、上記の優先順位に従って、まず一般プログラム領域２７のデータをＰ領域用書換データに書換え、次にカーネル領域２６のデータをＫ領域用書換データに書換える。
【００３９】
このように、各記憶領域２５乃至２８の重要度によって書換えを行う優先順位が書換コードによって予め設定されており、制御部６は、決定した書換えるべき記憶領域が複数である場合に、書換データの種類毎に予め設定された優先順位に従って書換えるべき複数の記憶領域を各々対応する書換データに順次書換える。なお、書換データの種類は、上記のように受信した書換データのデータサイズから判断することが可能である。例えば、図５に示すように、受信した書換データのデータサイズが３０６４ｋＢであれば書換データがＫ領域用書換データとＰ領域用書換データからなるものであると判断でき、それに対して予め設定された優先順位に従って、一般プログラム領域２７、カーネル領域２６の順で順次書換えを行う。
【００４０】
また、このようにして自装置１のファームウェアをアップデートするための書換コードは、カーネル領域２６に記憶されているため、仮にカーネル領域２６の書換中に書換エラーが発生して書換コードが破壊された場合、ファームウェアのアップデートを行うことが不可能となる。したがって、制御部６は、決定した書換えるべき記憶領域に特定の情報を記憶している記憶領域が含まれているか否かを検索し、当該記憶領域が含まれている場合に、当該記憶領域のデータを他の記憶領域に複製した後、決定した書換えるべき記憶領域を受信した書換データに書換える。具体的には、制御部６は、決定した書換えるべき記憶領域に書換コードを記憶するカーネル領域２６が含まれているか否かを検索し、カーネル領域２６が含まれている場合に、カーネル領域２６のデータを退避領域３０に複製した後、決定した書換えるべき記憶領域を受信した書換データに書換える。なお、この退避領域３０にカーネル領域２６のデータを複製する処理も書換コードに従って制御部６によって行われる。
【００４１】
以上説明したように、制御部６は、書換コードに従って、外部から受信した書換データのデータサイズに基づいて、該書換データに書換えられるべきＦｌａｓｈ ＲＯＭ８の記憶領域を決定し、決定した書換えるべき記憶領域にカーネル領域２６が含まれている場合には該カーネル領域２６のデータを退避領域３０に複製する。そして、書換コードによって予め設定された優先順位に従って書換えるべき記憶領域のデータを書換データに書換える。
【００４２】
以下、クライアントＰＣ３から送信された書換データを受信した場合に、データ処理装置１において行われる処理動作について、図６に示すフローチャートに基づいて説明する。なお、以下のフローチャートに基づいて説明するデータ処理装置１の処理動作は、Ｆｌａｓｈ ＲＯＭ８のカーネル領域２６に記憶されている書換コードに基づいて制御部６の制御命令に従って行われるものである。
【００４３】
まず、データ処理装置１の制御部６は、自装置１のファームウェアの書換データを受信したか否かを判断する（Ｓ７）。具体的には、外部から受信したデータのデータサイズが、図５に基づいて説明した書換コードによって予め設定されているデータサイズのいずれかに一致するか否かを判断する。ここで、受信したデータのデータサイズが書換コードによって設定されているデータサイズのいずれとも一致しない場合には、書換データを受信していないと判断し（Ｓ７：ＮＯ）、以降の処理は行わない。なお、このＳ７において制御部６が書換データを受信していないと判断する場合としては、書換データの作成ミスにより書換データのデータサイズが予め設定されたデータサイズと異なる場合や、通信中に書換データの一部が欠落したり逆に他のデータが混入して書換データのデータサイズが変化する場合等が考えられる。このような場合には、データ処理装置１は、適切な書換データを受信できなかった旨の情報をクライアントＰＣ３又は複合機５に出力し、クライアントＰＣ３が備えるディスプレイにその旨の情報を表示させたり、複合機５の表示部２２が備える液晶表示装置にその旨のメッセージ等を表示させる。
【００４４】
一方、制御部６は、書換データを受信したと判断した場合（Ｓ７：ＹＥＳ）、すなわち、書換コードによって設定されているいずれかのデータサイズに一致するデータを受信したと判断した場合、受信したデータを書換データとしてＳＤＲＡＭ９のデータ領域３１に格納し、受信した書換データのデータサイズに基づいて、書換データに書換えるべき記憶領域を決定する（Ｓ８）。続いて、決定した書換えるべき記憶領域に特定の情報を記憶している記憶領域が含まれているか否かを判断する（Ｓ９）。具体的には、書換コードを記憶しているカーネル領域２６が含まれているか否かを判断する。ここで、決定した書換えるべき記憶領域にカーネル領域２６が含まれていないと判断した場合には（Ｓ９：ＮＯ）、上記図５に基づいて説明したように、書換データの種類毎に書換コードによって予め設定された優先順位に従って書換えるべき記憶領域の書換順序を決定する（Ｓ１０）。なお、書換えるべき記憶領域が１つの領域である場合には、当然優先順位は関係しないため、該領域のみを書換えるように決定する。一方、決定した書換えるべき記憶領域に特定の情報を記憶している記憶領域、すなわちカーネル領域２６が含まれていると判断した場合（Ｓ９：ＹＥＳ）、特定の情報を記憶している記憶領域のデータを他の記憶場所に複製する（Ｓ１１）。具体的には、カーネル領域２６から書換コードを含む制御プログラムを全て読み出してＳＤＲＡＭ９の退避領域３０に格納する。そして、その後、前記Ｓ１０の書換順序を決定する処理を行う。なお、Ｓ１０における書換順序の決定をＳ８の処理の後に行い、その後、Ｓ９の判断処理や場合によってはＳ１１の処理を行うようにしてもよい。
【００４５】
続いて、制御部６は、Ｓ１０において決定した書換順序に従って、Ｓ８で決定した書換えるべき記憶領域を受信した書換データに書換える（Ｓ１２）。具体的には、決定した書換えるべき記憶領域が１つの記憶領域である場合には、その記憶領域のデータをＳＤＲＡＭ９のデータ領域３１に格納されている受信した書換データに書換える。一方、決定した書換えるべき記憶領域が複数の記憶領域である場合には、Ｓ１０で決定した書換順序に従って対応する書換データをデータ領域３１から読み出してＦｌａｓｈ ＲＯＭ８の書換えるべき各々の記憶領域を対応する書換データに順次書換える。
【００４６】
制御部６は、このような書換処理を実行するとともに、書換エラーが発生したか否かを判断する（Ｓ１３）。そして、書換エラーが発生していない場合には（Ｓ１３：ＮＯ）、Ｓ１２の書換処理が終了したか否かを判断する（Ｓ１４）。ここで、書換処理が終了していないと判断した場合には（Ｓ１４：ＮＯ）、Ｓ１２の書換処理とＳ１３の書換エラーの発生の有無の判断処理を継続して行う。そして、書換処理が終了したと判断した場合には（Ｓ１４：ＹＥＳ）、誤りが検出されたか否かを判断する（Ｓ１５）。この誤りの検出は、書換データに予め埋め込まれているチェッカを用いて、サムチェックを行うこと等によって検出することができる。
【００４７】
そして、制御部６は、誤りが検出されなかった場合（Ｓ１５：ＮＯ）、書換えが正常に終了した旨の情報を複合機５に送信する（Ｓ１６）。なお、クライアントＰＣ３に送信するようにしてもよい。このようにして複合機５に書換えが正常に終了した旨の情報が送信されると、データ処理装置１のファームウェアがアップデートされたことを認識するために、複合機５では自動的に再起動の処理が行われる。
【００４８】
一方、制御部６は、Ｓ１２の書換処理の実行中に書換エラーが発生したと判断した場合（Ｓ１３：ＹＥＳ）、及び書換え終了後に誤りを検出した場合（Ｓ１５：ＹＥＳ）、再書換処理をすでに実行しているか否かを判断する（Ｓ１７）。具体的には、書換エラーが発生又は誤りを検出して、再度Ｓ１２の書換処理を実行したか否かを判断する。そして、再書換処理を実行していないと判断した場合には（Ｓ１７：ＮＯ）、Ｓ１２以降の処理を改めて実行する。一方、再書換処理を実行していると判断した場合には（Ｓ１７：ＹＥＳ）、書換えが正常に終了しなかった旨の情報を複合機５に送信する（Ｓ１８）。
【００４９】
これに対し、複合機５では、例えば「書換エラーが発生しました」、「再度アップデート処理を行ってください」等のメッセージを表示部２２の液晶表示装置に表示させるなどしてその旨の情報を報知する。なお、図６に示すフローチャートでは、再書換処理が一度だけ行われるようになっているが、Ｓ１３又はＳ１５においてエラーが発生したと判断した場合に、直ちにＳ１８の処理を行ったり、２回以上の再書換処理を行い、それでも書換エラーが発生したり誤りが検出される場合にＳ１８の処理動作を行うようにしてもよい。
【００５０】
また、データ処理装置１では、Ｆｌａｓｈ ＲＯＭ８の各記憶領域毎に書換え処理が行われるため、いずれの記憶領域の書換中に書換エラー等が発生したかを容易に判断することができる。したがって、データ処理装置１から複合機５に対してエラーが発生した旨の情報に加えて、エラーが発生した記憶領域の情報を送信するようにしてもよい。これに対し、複合機５の制御部１４は、表示部２２の備える液晶表示装置に上記のメッセージとともに、例えば「一般プログラム領域の書換えに失敗しました」等のメッセージを表示していずれの記憶領域のデータが破壊されたかをユーザ又はオペレータに報知するようにしてもよい。
【００５１】
また、本発明の実施の形態においては、ＳＤＲＡＭ９にカーネル領域２６の制御プログラムを複製するための退避領域３０がプログラム領域２９とデータ領域３１とは別に確保されているが、この退避領域３０を確保せず、プログラム領域２９内の所定領域を他の記憶場所とし、そこに制御プログラムを複製して書換処理を行うようにしてもよい。具体的には、制御部６は、Ｓ９において書換えるべき記憶領域に書換コードを記憶しているカーネル領域２６が含まれていると判断した場合に、Ｓ１１において、カーネル領域２６の制御プログラムをプログラム領域２９内のフォントデータが格納されている領域の一部の領域に複製した後、Ｓ１０以降の処理動作を行う。なお、この際、フォントデータは不完全なものとなるが、書換処理が行われた場合には、システムが再起動するまで通常動作が行われることはないため問題が生じることはない。そして、制御部６は、システムの再起動時に行うＳ２の処理動作において、カーネル領域２６の制御プログラムが正常ではないと判断した場合、ＳＤＲＡＭ９のプログラム領域２９内の前記一部の領域から制御プログラムを読み出し、プログラム領域２９において本来制御プログラムが格納されるべき領域に格納する。このようにして、制御プログラムをプログラム領域２９の所定の領域に格納した後、一般プログラム領域２７の一般プログラムとフォント領域２８のフォントデータをそれぞれ読み出し、プログラム領域２９に格納する。
【００５２】
なお、データ処理装置１のインターフェース回路７が書換データを受信する方法は、ＬＡＮ２を介してクライアントＰＣ３から受信する方法に限定されるものではない。例えば、クライアントＰＣ３からＵＳＢ（Universal Serial Bus）を介して独自プロトコルにて書換データを受信したり、複合機５をファクシミリ通信機能を備えた複合機にして、該複合機がファクシミリ通信の手順に従ってサービスセンター等の外部のファクシミリ装置から書換データを受信し、データ処理装置１に転送し、それをインターフェース回路７で受信するようにしてもよい。また、ＬＡＮ２上にインターネットに接続するためのルータ等を設置し、ＨＴＴＰ（Hypertext Transfer Protocol）、ＰＯＰ（Post Office Protocol）、ＳＭＴＰ（Simple Mail Transfer Protocol）に基づいてインターネットを介して書換データを受信するようにしてもよい。
【００５３】
また、本発明の実施の形態においては、本発明をＰＤＬデータに所定の処理を施して複合機５に転送するデータ処理装置１に適用した場合について説明したが、外部から書換データを受信することができ、フラッシュメモリ等の書換え可能なメモリにファームウェアを記憶している装置であれば、本発明を適用可能な装置はデータ処理装置１に限定されるものではない。例えば、複合機５のＲＯＭ１５において、自装置５のファームウェアをデータの種類別に分割して各々別個の記憶領域に記憶し、データ処理装置１にクライアントＰＣ３から送信された書換データを自装置５に転送させてＲＡＭ１６に一旦格納紙した後、ＲＯＭ１５の対応する記憶領域に書換データをアップデートするようにしてもよい。また、その他ファクシミリ装置、コピー機、スキャナ等に適用可能である。
【産業上の利用可能性】
【００５４】
本発明は、外部から受信した書換データによって自身のファームウェアをアップデートする各種データ処理装置に適用可能である。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施の形態に係るデータ処理装置の構成例を示したブロック図である。
【図２】Ｆｌａｓｈ ＲＯＭとＳＤＲＡＭの記憶領域やプログラムのロード等について説明するための概念図である。
【図３】システム起動時に、データ処理装置において行われる処理動作を示したフローチャートである。
【図４】クライアントＰＣから送信される書換データの一例を示した図である。
【図５】データ処理装置のカーネル領域に記憶されている書換コードについて説明するための図である。
【図６】外部から書換データを受信した場合に、データ処理装置において行われる処理動作を示したフローチャートである。
【符号の説明】
【００５６】
１    データ処理装置
６    制御部（ＭＰＵ）
７    インターフェース回路
８    Ｆｌａｓｈ ＲＯＭ
９    ＳＤＲＡＭ
２５    ブート領域
２６    カーネル領域
２７    一般プログラム領域
２８    フォント領域
２９    プログラム領域
３０    退避領域
３１    データ領域
【図１】
2005258602.tif 000003
【図２】
2005258602.tif 000004
【図３】
2005258602.tif 000005
【図４】
2005258602.tif 000006
【図５】
2005258602.tif 000007
【図６】
2005258602.tif 000008