(57)【特許請求の範囲】
【請求項１】
プリンタ部またはスキャナ部の少なくとも一方を含む画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションのプログラムと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションのプログラムからアクセスされて共通に利用される１つ以上のプラットフォームのプログラムとを有する画像形成装置であって、
前記プログラムの起動情報を取得する起動情報取得手段と、
前記プログラムの更新データが記録された記録媒体から、前記プログラムのモジュール識別情報を取得するモジュール識別情報取得手段と、
前記起動情報およびモジュール識別情報に基づいて、前記記録媒体から前記プログラムの少なくとも一部に対応した更新データを選定する更新データ選定手段と、
記憶部に格納されている前記プログラムを前記選定された更新データで更新する更新手段とを有し、
前記プラットフォームのプログラムは、通常処理を行う通常モードスレッドと、前記記録媒体に記録されている更新データ群から更新データを選定する処理を行うプログラム更新モードスレッドとを含むプロセスとして動作するシステムコントロールサービスのプログラムが含まれ、
前記システムコントロールサービスのプログラムは、前記更新データ選定手段として動作し、
前記起動情報取得手段は、プログラム更新処理時に、前記システムコントロールサービスのプログラムの前記プログラム更新モードスレッドを起動することを特徴とし、
前記プラットフォームのプログラムのそれぞれは、通常処理を行う通常モードスレッドと、前記画像形成に係る処理を停止するプログラム更新モードスレッドとを含むプロセスとして動作し、
前記起動情報取得手段は、プログラム更新処理時に、前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とする画像形成装置。
【請求項２】
前記起動情報取得手段は、前記記録媒体を認識したときに前記記憶部に格納されている前記プログラムの起動情報を取得することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記モジュール識別情報取得手段は、記録媒体に固有の媒体識別情報に基づいて、前記記録媒体に更新データが記録されているか否かを判断し、前記記録媒体に更新データが記録されているときは前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とする請求項１記載の画像形成装置。
【請求項４】
前記システムコントロールサービスのプログラムのプログラム更新モードスレッドは、さらに記憶部に記憶されたファイルを検索して前記プログラムの起動情報を取得し、前記プログラムの起動情報に基づいて前記プログラムの更新データを選定することを特徴とする請求項１乃至３のいずれか一項記載の画像形成装置。
【請求項５】
前記システムコントロールサービスのプログラムのプログラム更新モードスレッドは、前記記録媒体に記録されている全てのモジュール識別情報と前記プログラムの起動情報とを比較し、前記起動情報に一致する前記モジュール識別情報に対応した更新データを選定することを特徴とする請求項１乃至４いずれか一項記載の画像形成装置。
【請求項６】
機種固有の機種識別情報を取得する機種識別情報取得手段をさらに有し、
前記記録媒体は、前記プログラムのモジュール識別情報と前記プログラムの更新データとが対応づけられているとともに、前記モジュール識別情報ごとに前記プログラムを動作可能な画像形成装置の機種識別情報が記録されているものであり、
前記システムコントロールサービスのプログラムのプログラム更新モードスレッドは、前記記録媒体に記録されている全ての前記モジュール識別情報と、前記プログラムの起動情報とを比較し、
前記起動情報と一致するモジュール識別情報であって、前記機種識別情報取得手段により取得した機種識別情報に基づいて更新データを選定することを特徴とする請求項１乃至５のいずれか一項記載の画像形成装置。
【請求項７】
前記記録媒体には、各モジュール識別情報ごとに前記更新データを書き込む記憶部の更新先領域が記録されており、
前記更新手段は、前記プログラムを記憶部の更新先領域から前記選定された更新データで更新することを特徴とする請求項１乃至６のいずれか一項記載の画像形成装置。
【請求項８】
前記記録媒体は、前記更新先領域を前記機種識別情報ごとに記録したものであることを特徴とする請求項７記載の画像形成装置。
【請求項９】
前記更新手段は、さらに更新されたプログラムと前記更新データとを比較して同一性をチェックすることを特徴とする請求項１乃至８のいずれか一項記載の画像形成装置。
【請求項１０】
プログラム更新に関する更新情報を記憶する不揮発性記憶手段をさらに有し、
前記更新手段は、前記プログラムの更新時に、前記更新情報を前記不揮発性記憶手段に格納するとともに、前記プログラムの更新前に前記不揮発性記憶手段に前記更新情報が格納されているか否かを判断し、更新情報が格納されている場合には、前記不揮発性記憶手段に格納されている更新情報に基づいて前記プログラムを更新することを特徴とする請求項１乃至９のいずれか一項記載の画像形成装置。
【請求項１１】
プリンタ部またはスキャナ部の少なくとも一方を含む画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションのプログラムと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションのプログラムからアクセスされて共通に利用される１つ以上のプラットフォームのプログラムとを有する画像形成装置の記憶部に格納されたプログラムを更新データによって更新するプログラム更新方法において、
前記プログラムの起動情報を取得する起動情報取得ステップと、
前記プログラムの更新データが記憶された記録媒体から、前記プログラムのモジュール識別情報を取得するモジュール識別情報取得ステップと、
前記起動情報およびモジュール識別情報に基づいて、前記記録媒体から前記プログラムのうちの少なくとも一部に対応した更新データを選定する更新データ選定ステップと、
前記記憶部に格納されている前記プログラムを前記選定された更新データで更新する更新ステップとを有し、
前記プラットフォームのプログラムは、通常処理を行う通常モードスレッドと、前記記録媒体に記録されている更新データ群から更新データを選定する処理を行うプログラム更新モードスレッドとを含むプロセスとして動作するシステムコントロールサービスのプログラムが含まれ、
前記システムコントロールサービスのプログラムは、前記更新ステップを行う更新データ選定手段として動作し、
前記起動情報取得ステップを行う起動情報取得手段は、プログラム更新処理時に、前記システムコントロールサービスのプログラムの前記プログラム更新モードスレッドを起動することを特徴とし、
前記プラットフォームのプログラムのそれぞれは、通常処理を行う通常モードスレッドと、前記画像形成に係る処理を停止するプログラム更新モードスレッドとを含むプロセスとして動作し、
前記起動情報取得ステップを行う起動情報取得手段は、プログラム更新処理時に、前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とするプログラム更新方法。
【請求項１２】
前記起動情報取得ステップは、さらに、前記記憶部に格納されているファイルを検索して前記プログラムの起動情報を取得することを特徴とする請求項１１記載のプログラム更新方法。
【請求項１３】
前記更新データ選定ステップは、前記記録媒体に記録された全てのモジュール識別情報と前記プログラムの起動情報とを比較して、前記起動情報と一致する前記モジュール情報に対応した更新データを選定することを特徴とする請求項１１または１２記載のプログラム更新方法。
【請求項１４】
前記プログラムを動作させる装置機種に固有の機種識別情報を取得する機種識別情報取得ステップをさらに含み、
前記記録媒体は、前記プログラムのモジュール識別情報と前記プログラムの更新データとが対応づけられているとともに、前記モジュール識別情報ごとに前記プログラムを動作可能な機種の機種識別情報が記録されたものであり、
前記更新データ選定ステップは、前記記録媒体に記録されている全ての前記モジュール識別情報と前記プログラムの起動情報と比較し、前記起動情報と一致するモジュール識別情報であって、前記機種識別情報取得ステップにより取得した機種識別情報に基づいて更新データを選定することを特徴とする請求項１１乃至１３のいずれか一項記載のプログラム更新方法。
【請求項１５】
前記プログラムは、プログラム更新に関する処理を実行するプログラム更新モードを有しており、
前記起動情報取得ステップは、記録媒体に固有の媒体識別情報に基づいて前記記録媒体に更新データが記録されているか否かを判断し、前記記録媒体に更新データが記録されているときは前記プログラムを前記プログラム更新モードで起動することを特徴とする請求項１１乃至１４いずれか一項記載のプログラム更新方法。
【請求項１６】
前記更新データ選定ステップは、前記起動情報取得ステップにより前記プログラム更新モードで起動されたプログラムによって実行されることを特徴とする請求項１５記載のプログラム更新方法。
【請求項１７】
前記記録媒体には、各モジュール識別情報ごとに前記更新データを書き込む記憶部の更新先領域が記録されており、
前記更新ステップは、前記プログラムを記憶部の更新先領域から前記選定された更新データで更新することを特徴とする請求項１１乃至１６いずれか一項記載のプログラム更新方法。
【請求項１８】
前記記録媒体には、前記機種識別情報ごとに前記更新データを書き込む記憶部の更新先領域が記録されており、
前記更新ステップは、前記プログラムを記憶部の更新先領域から前記選定された更新データで更新することを特徴とする請求項１４乃至１７のいずれか一項記載のプログラム更新方法。
【請求項１９】
前記更新ステップは、さらに更新されたプログラムと前記更新データとを比較して同一性をチェックすることを特徴とする請求項１１乃至１８いずれか一項記載のプログラム更新方法。
【請求項２０】
前記更新ステップは、前記プログラムの更新時に、プログラム更新に関する更新情報を不揮発性記憶手段に格納し、プログラムの更新前に前記不揮発性記憶手段に前記更新情報が格納されているか否かを判断し、前記更新情報が格納されている場合には、前記不揮発性記憶手段に格納されている更新情報に基づいて前記プログラムを更新することを特徴とする請求項１１乃至１９いずれか一項記載のプログラム更新方法。
【請求項２１】
プリンタ部またはスキャナ部の少なくとも一方を含む画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションのプログラムと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションのプログラムからアクセスされて共通に利用される１つ以上のプラットフォームのプログラムとを有する画像形成装置に、
プログラムの起動情報を取得する起動情報取得手順と、
前記プログラムの更新データが記憶された記録媒体から、前記プログラムのモジュール識別情報を取得するモジュール識別情報取得手順と、
前記起動情報およびモジュール識別情報に基づいて、前記記録媒体から前記プログラムのうちの少なくとも一部に対応した更新データを選定する更新データ選定手順と、
前記記憶部に格納されている前記プログラムを前記選定された更新データで更新する更新手順とを実行させ、
前記プラットフォームのプログラムは、通常処理を行う通常モードスレッドと、前記記録媒体に記録されている更新データ群から更新データを選定する処理を行うプログラム更新モードスレッドとを含むプロセスとして動作するシステムコントロールサービスのプログラムが含まれ、
前記システムコントロールサービスのプログラムは、前記更新手順を行う更新データ選定手段として動作し、
前記起動情報取得手順を行う起動情報取得手段は、プログラム更新処理時に、前記システムコントロールサービスのプログラムの前記プログラム更新モードスレッドを起動することを特徴とし、
前記プラットフォームのプログラムのそれぞれは、通常処理を行う通常モードスレッドと、前記画像形成に係る処理を停止するプログラム更新モードスレッドとを含むプロセスとして動作し、
前記起動情報取得手順を行う起動情報取得手段は、プログラム更新処理時に、前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とするように実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２２】
プリンタ部またはスキャナ部の少なくとも一方を含み画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションのプログラムと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションのプログラムからアクセスされて共通に利用される１つ以上のプラットフォームのプログラムとを有する画像形成装置であって、
前記プログラムの起動情報を取得する起動情報取得手段と、
前記プログラムの更新データが記録された記録媒体から自機の構成に応じた前記プログラムの更新データを選定する更新データ選定手段と、
前記更新データ選定手段が選定した前記プログラムの更新データを取得し、記憶部に格納されている前記プログラムを前記取得した更新データで更新する更新手段を有し、
前記プラットフォームのプログラムは、通常処理を行う通常モードスレッドと、前記記録媒体に記録されている更新データ群から更新データを選定する処理を行うプログラム更新モードスレッドとを含むプロセスとして動作するシステムコントロールサービスのプログラムが含まれ、
前記システムコントロールサービスのプログラムは、前記更新データ選定手段として動作し、
前記起動情報取得手段は、プログラム更新処理時に、前記システムコントロールサービスのプログラムの前記プログラム更新モードスレッドを起動することを特徴とし、
前記プラットフォームのプログラムのそれぞれは、通常処理を行う通常モードスレッドと、前記画像形成に係る処理を停止するプログラム更新モードスレッドとを含むプロセスとして動作し、
前記起動情報取得手段は、プログラム更新処理時に、前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とする画像形成装置。
【請求項２３】
プリンタ部またはスキャナ部の少なくとも一方を含み画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションのプログラムと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションのプログラムからアクセスされて共通に利用される１つ以上のプラットフォームのプログラムとを有する画像形成装置の記憶部に格納されたプログラムを更新データによって更新するプログラム更新方法において、
前記プログラムの起動情報を取得する起動情報取得ステップと、
前記プログラムの更新データが記録された記録媒体から自機の構成に応じた前記プログラムの更新データを選定する更新データ選定ステップと、
前記更新データ選定ステップで選定された前記プログラムの更新データを取得し、前記記憶部に格納されている前記プログラムを前記取得した更新データで更新する更新ステップとを有し、
前記プラットフォームのプログラムは、通常処理を行う通常モードスレッドと、前記記録媒体に記録されている更新データ群から更新データを選定する処理を行うプログラム更新モードスレッドとを含むプロセスとして動作するシステムコントロールサービスのプログラムが含まれ、
前記システムコントロールサービスのプログラムは、前記更新データ選定ステップを行う更新データ選定手段として動作し、
前記起動情報取得ステップを行う起動情報取得手段は、プログラム更新処理時に、前記システムコントロールサービスのプログラムの前記プログラム更新モードスレッドを起動することを特徴とし、
前記プラットフォームのプログラムのそれぞれは、通常処理を行う通常モードスレッドと、前記画像形成に係る処理を停止するプログラム更新モードスレッドとを含むプロセスとして動作し、
前記起動情報取得手段は、プログラム更新処理時に、前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とするプログラム更新方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、画像形成装置，プログラム更新方法および記録媒体に係り、特に記憶部に格納されたプログラムを更新データで更新する画像形成装置，プログラム更新方法および記録媒体に関するものである。
【０００２】
【従来の技術】
近年、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、「複合機」という。）が一般的に知られている。この複合機は、１つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応する３種類のソフトウェアを設け、ソフトウェアの切り替えによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【０００３】
従来の複合機では、内部にプリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェア（汎用ＯＳを含む）をそれぞれ別個に設ける構成となっており、各ソフトウェアの開発に多大の時間を要する。
【０００４】
このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置（特開２００２−８２８０６）を発明した。なお、ユーザサービスとはユーザに提供する画像形成に係るサービスをいう。また、コントロールサービスとはアプリケーションに画像形成に係るハードウェア資源を提供するサービスをいう。
【０００５】
この画像形成装置によれば、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行うプラットホームを備えた構成とすることによって、ソフトウェア開発の効率化を図るとともに、装置全体としての生産性を向上させることが可能となる。
【０００６】
このような複合機は、複数のアプリケーションやプラットホームを構成する複数のコントロールサービスなどのプログラムがコントローラボード上のフラッシュメモリなどのＲＯＭ（Read Only Memory）に予め組み込まれた状態で出荷されている。このため、複合機に設計変更や新たな機能の追加が生じた場合には、アプリケーションやコントロールサービスなどのプログラムを更新するために、これらのプログラムを記録したＲＯＭを更新する必要性が生じてくる。
【０００７】
このようなプログラム更新方法の一例として、例えば特開平９−１３４３０７号公報，特開２００２−９９４４１号公報などがある。また、プログラム更新方法の他の一例として、各プログラムの更新データと、更新データでアプリケーションやコントロールサービスの既存のプログラムを更新するために実行する更新プログラムとを複合機の機種ごとに個別のフラッシュカードなどの更新用記録媒体に格納していた。
【０００８】
そして、この更新対象プログラムが搭載されている複合機の機種に応じて更新用記録媒体を選択し、選択した更新用記録媒体を複合機の記録媒体制御装置に挿入した状態で複合機を電源投入する。
【０００９】
このとき、複合機のブートローダによって更新用記録媒体に格納された更新プログラムが起動し、この更新プログラムによって更新用記録媒体上の更新データを読み出して、ＲＯＭ上のアプリケーションやコントロールサービスの各プログラムを更新データで更新するという処理を行っていた。
【００１０】
また、複合機の電源投入時にブートローダによって更新用記録媒体の更新プログラムが起動される処理は次のように行われていた。図１９は、従来の複合機における電源投入時のフラッシュメモリおよびフラッシュカードのメモリマップを示す模式図である。
【００１１】
図１９に示すように、コントローラボード上に設けられたＤＩＰスイッチのＯＮ，ＯＦＦを切り替えることによってコントローラボード上のフラッシュメモリの領域と更新用記録媒体の領域とが切り替わるようにしておく。
【００１２】
また、ＤＩＰスイッチのＯＦＦ時にはブートベクタにフラッシュメモリ上の通常の起動プログラムを指すようにしておき、ＤＩＰスイッチのＯＮ時にはブートベクタに更新用記録媒体上の更新プログラムが配置されるようにしておく。これにより、プログラム更新時にＤＩＰスイッチをＯＮにして複合機の電源投入を行うことによって、ブートベクタに配置された更新プログラムが起動されることになる。
【００１３】
【発明が解決しようとする課題】
複合機は、コピー、プリンタ、スキャナ、ファクシミリなどの複合サービスを提供するものではあるが、複合機のすべての機種において提供可能なサービスが統一されているわけではない。例えば、すべての機能が提供可能な機種やファクシミリ機能やコピー機能など一部の機能が制限された機種など種々のパターンがある。このため、汎用ＯＳ上で動作する複数アプリケーションや複数のコントロールサービスなども、提供可能な機能によって必然的に変わってくる。
【００１４】
しかしながら、特開平９−１３４３０７号公報，特開２００２−９９４４１号公報に記載されているプログラム更新方法では、複合機の構成の相違に応じたプログラムの更新を行うことができないという問題がある。
【００１５】
また、従来の複合機のプログラム更新方法では、上述のように更新用記録媒体を挿入して電源投入を行った場合、各アプリケーションや各コントロールサービスばかりか汎用ＯＳの起動を行わずにただちに更新プログラムが実行されてしまうため、複合機の構成を認識することができず、構成の相違に応じたプログラムの更新を行うことができないという問題がある。
【００１６】
例えば、ファックスアプリやファックスコントロールサービスなどファクシミリ通信関連のプログラムが存在しない構成の複合機に対して、すべてのプログラムの更新データを含む更新用記録媒体でプログラム更新処理を行った場合、ＲＯＭ上で更新の必要のないプログラムまで更新してしまう可能性もあり、プログラム更新を行うことにより複合機に障害を生じさせてしまう場合がある。
【００１７】
また、従来の複合機のプログラム更新方法では、更新データの他に更新プログラムも更新用記録媒体に含まれているため、更新用記録媒体の容量制限からプログラム更新を行う複合機の機種に応じたフラッシュカードを用意して使用しなければならない。
【００１８】
このため、更新用記録媒体を複合機の機種ごとに管理しなければならず、またプログラム更新の際には異なる機種の更新用記録媒体を選択しないよう注意しなければならず、プログラム更新作業が煩雑になるという問題がある。
【００１９】
さらに、従来の複合機におけるプログラム更新では、ＤＩＰスイッチをＯＮ状態にしてから電源投入を行う必要があるため、ＤＩＰスイッチが複合機本体内部に設けられている場合には、本体カバーを外してコントローラボードを引き出すことが必要となる。そして、このような作業の際、コントロールボードに接触することにより、ボードに損傷が生じてしまうおそれがある。
【００２０】
この発明は上記に鑑みてなされたもので、画像形成装置の構成に応じて最適な更新データを選択してプログラム更新を行うことができる画像形成装置，プログラム更新方法および記録媒体を得ることを主な目的とする。この発明の別の目的は一種類の記録媒体で複数機種のプログラム更新に対応することができる画像形成装置，プログラム更新方法および記録媒体を得ることである。この発明の別の目的はプログラム更新作業に伴うハードウェア障害を防止することができる画像形成装置，プログラム更新方法および記録媒体を得ることである。
【００２１】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかる発明は、プリンタ部またはスキャナ部の少なくとも一方を含む画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションのプログラムと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションのプログラムからアクセスされて共通に利用される１つ以上のプラットフォームのプログラムとを有する画像形成装置であって、前記プログラムの起動情報を取得する起動情報取得手段と、前記プログラムの更新データが記録された記録媒体から、前記プログラムのモジュール識別情報を取得するモジュール識別情報取得手段と、前記起動情報およびモジュール識別情報に基づいて、前記記録媒体から前記プログラムの少なくとも一部に対応した更新データを選定する更新データ選定手段と、記憶部に格納されている前記プログラムを前記選定された更新データで更新する更新手段とを有し、前記プラットフォームのプログラムは、通常処理を行う通常モードスレッドと、前記記録媒体に記録されている更新データ群から更新データを選定する処理を行うプログラム更新モードスレッドとを含むプロセスとして動作するシステムコントロールサービスのプログラムが含まれ、前記システムコントロールサービスのプログラムは、前記更新データ選定手段として動作し、前記起動情報取得手段は、プログラム更新処理時に、前記システムコントロールサービスのプログラムの前記プログラム更新モードスレッドを起動することを特徴とし、前記プラットフォームのプログラムのそれぞれは、通常処理を行う通常モードスレッドと、前記画像形成に係る処理を停止するプログラム更新モードスレッドとを含むプロセスとして動作し、前記起動情報取得手段は、プログラム更新処理時に、前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とする。
【００２２】
この請求項１にかかる発明によれば、取得した起動情報およびモジュール識別情報に基づいて、記録媒体から更新データを選定し、更新手段によって記憶部に格納されているプログラムを前記選定された更新データによって更新することで、画像形成装置上の構成に応じて適切な更新データを選択してプログラム更新を行うことができる。
この請求項１にかかる発明によれば、更新データ選定手段が、更新データの選定処理を行うプログラム更新モードスレッドを含むプロセスとして動作することで、他の通常処理を行うスレッドと別スレッドで更新データの選定処理を実行することができる。このため、一つの更新データ選定手段のプロセスで、通常処理時とプログラム更新時との処理をスレッドで切り分けることができ、更新データの選定処理を行うプロセスを別途設ける必要がなく、プログラム更新処理時のプロセス切り替えに伴う処理の遅延を回避することができる。
この請求項１にかかる発明によれば、コントロールサービスのそれぞれが通常モードスレッドと、プログラム更新モードスレッドとを含むプロセスとして動作し、起動情報取得手段がプログラム更新処理時にコントロールサービスの各プログラム更新モードスレッドを起動することで、画像形成装置の構成の把握のためにコントロールサービスを起動させた場合でも、画像形成に係る処理を停止した状態でプログラム更新処理を行うことができる。このため、プログラム更新処理中に不要な機能が作動することによるプログラム更新処理の中断などを防止することができる。
【００２３】
なお、本発明におけるプログラムの起動情報とは、プログラムを識別するものであり、プログラム名やプログラムＩＤなどを用いることができる。また、モジュール識別情報は、更新データで更新の対象となるプログラムを識別するものであり、プログラム名、プログラムＩＤなどを用いることができる。
【００２４】
また、請求項２にかかる発明は、前記起動情報取得手段は、前記記録媒体を認識したときに前記記憶部に格納されている前記プログラムの起動情報を取得することを特徴とする。
【００２５】
この請求項２にかかる発明によれば、記録媒体を認識したときに起動情報取得手段の処理を開始できる。
【００３０】
また、請求項３にかかる発明は、前記モジュール識別情報取得手段は、記録媒体に固有の媒体識別情報に基づいて、前記記録媒体に更新データが記録されているか否かを判断し、前記記録媒体に更新データが記録されているときは前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とする。
【００３１】
この請求項３にかかる発明によれば、記録媒体に固有の媒体識別情報に基づいて、記録媒体に更新データが記録されているか否かを判断し、前記記録媒体に更新データが記録されているときはコントロールサービスのプログラム更新モードスレッドを起動することで、画像形成装置に記録媒体を入力すれば、プログラム更新モードで起動したシステムコントロールサービスによるプログラム更新処理が行われる。このため、従来のプログラム更新方法で行っていたＤＩＰスイッチの切り替えを必要とせずにプログラム更新処理を実現することができる。
【００３２】
また、請求項４にかかる発明は、前記システムコントロールサービスのプログラムのプログラム更新モードスレッドは、さらに記憶部に記憶されたファイルを検索して前記プログラムの起動情報を取得し、前記プログラムの起動情報に基づいて前記プログラムの更新データを選定することを特徴とする。
【００３３】
この請求項４にかかる発明によれば、記憶部に記憶されたファイルを検索してプログラムの起動情報を取得し、システムコントロールサービスのプログラム更新モードスレッドがプログラムの起動情報に基づいてプログラムの更新データを選定することで、画像形成装置上で動作可能なプログラムを実際に実行することなく把握して、画像形成装置の構成に応じた適切な更新データを選択してプログラム更新を行うことができる。
【００３４】
また、請求項５にかかる発明は、前記システムコントロールサービスのプログラムのプログラム更新モードスレッドは、前記記録媒体に記録されている全てのモジュール識別情報と前記プログラムの起動情報とを比較し、前記起動情報に一致する前記モジュール識別情報に対応した更新データを選定することを特徴とする。
【００３５】
この請求項５にかかる発明によれば、システムコントロールサービスのプログラム更新モードスレッドが、記録媒体に記録されている全てのモジュール識別情報とプログラムの起動情報とを比較し、起動情報に一致するモジュール識別情報に対応した更新データを選定することで、記録媒体に記録された全てのモジュール識別情報の中から、画像形成装置の構成に応じた更新データを正確に選択することができ、画像形成装置の構成に応じた適切なプログラム更新を行うことができる。
【００３６】
また、請求項６にかかる発明は、機種固有の機種識別情報を取得する機種識別情報取得手段をさらに有し、前記記録媒体は、前記プログラムのモジュール識別情報と前記プログラムの更新データとが対応づけられているとともに、前記モジュール識別情報ごとに前記プログラムを動作可能な画像形成装置の機種識別情報が記録されているものであり、前記システムコントロールサービスのプログラムのプログラム更新モードスレッドは、前記記録媒体に記録されている全ての前記モジュール識別情報と、前記プログラムの起動情報とを比較し、前記起動情報と一致するモジュール識別情報であって、前記機種識別情報取得手段により取得した機種識別情報に基づいて更新データを選定することを特徴とする。
【００３７】
この請求項６にかかる発明によれば、システムコントロールサービスのプログラム更新モードスレッドが記録媒体に記録されている全てのモジュール識別情報と、プログラムの起動情報とを比較し、起動情報と一致するモジュール識別情報であって、機種識別情報取得手段により取得した機種識別情報に基づいて更新データを選定することで、画像形成装置の機種により動作可能なプログラムの配置が異なっている場合でも、一種類の記録媒体を複数機種の画像形成装置のプログラム更新に共有して用いることができる。
【００３８】
また、請求項７にかかる発明は、前記記録媒体には、各モジュール識別情報ごとに前記更新データを書き込む記憶部の更新先領域が記録されており、前記更新手段は、前記プログラムを記憶部の更新先領域から前記選定された更新データで更新することを特徴とする。
【００３９】
この請求項７にかかる発明によれば、記憶部の更新先領域を更新データで更新することで、記憶部に格納されているプログラムの配置や更新先を決定する処理が不要となり、正確かつ迅速なプログラム更新を行うことができる。
【００４０】
また、請求項８にかかる発明は、前記記録媒体は、前記更新先領域を前記機種識別情報ごとに記録したものであることを特徴とする。
【００４１】
この請求項８にかかる発明によれば、更新先領域が機種識別情報ごとに記録されているので、画像形成装置の機種により動作可能なプログラムの配置が異なっている場合でも、一種類の記録媒体を用いて複数機種の画像形成装置のプログラム更新を正確かつ迅速に行うことができる。
【００４２】
また、請求項９にかかる発明は、前記更新手段は、さらに更新されたプログラムと前記更新データとを比較して同一性をチェックすることを特徴とする。
【００４３】
この請求項９にかかる発明によれば、更新手段がさらに更新されたプログラムと更新データを比較して同一性をチェックすることで、プログラム更新時に生じたエラーを速やかに検出することができる。
【００４４】
また、請求項１０にかかる発明は、プログラム更新に関する更新情報を記憶する不揮発性記憶手段をさらに有し、前記更新手段は、前記プログラムの更新時に、前記更新情報を前記不揮発性記憶手段に格納するとともに、前記プログラムの更新前に前記不揮発性記憶手段に前記更新情報が格納されているか否かを判断し、更新情報が格納されている場合には、前記不揮発性記憶手段に格納されている更新情報に基づいて前記プログラムを更新することを特徴とする。
【００４５】
この請求項１０にかかる発明によれば、プログラムの更新時に、プログラム更新に関する更新情報を不揮発性記憶手段に格納し、プログラムの更新前に不揮発性記憶手段に更新情報が格納されていると判断した場合には、不揮発性記憶手段に格納されている更新情報に基づいてプログラムを更新することで、更新処理が途中で中断された場合でも、次回の起動時に更新情報を復帰させることができる。また、次回の起動時に前回の更新処理の中断時点から更新処理を再開することもでき、中断後のプログラム更新処理を速やかに復帰させることができる。
【００４６】
また、請求項１１にかかる発明は、プリンタ部またはスキャナ部の少なくとも一方を含む画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションのプログラムと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションのプログラムからアクセスされて共通に利用される１つ以上のプラットフォームのプログラムとを有する画像形成装置の記憶部に格納されたプログラムを更新データによって更新するプログラム更新方法において、前記プログラムの起動情報を取得する起動情報取得ステップと、前記プログラムの更新データが記憶された記録媒体から、前記プログラムのモジュール識別情報を取得するモジュール識別情報取得ステップと、前記起動情報およびモジュール識別情報に基づいて、前記記録媒体から前記プログラムのうちの少なくとも一部に対応した更新データを選定する更新データ選定ステップと、前記記憶部に格納されている前記プログラムを前記選定された更新データで更新する更新ステップとを有し、前記プラットフォームのプログラムは、通常処理を行う通常モードスレッドと、前記記録媒体に記録されている更新データ群から更新データを選定する処理を行うプログラム更新モードスレッドとを含むプロセスとして動作するシステムコントロールサービスのプログラムが含まれ、前記システムコントロールサービスのプログラムは、前記更新ステップを行う更新データ選定手段として動作し、前記起動情報取得ステップを行う起動情報取得手段は、プログラム更新処理時に、前記システムコントロールサービスのプログラムの前記プログラム更新モードスレッドを起動することを特徴とし、前記プラットフォームのプログラムのそれぞれは、通常処理を行う通常モードスレッドと、前記画像形成に係る処理を停止するプログラム更新モードスレッドとを含むプロセスとして動作し、前記起動情報取得ステップを行う起動情報取得手段は、プログラム更新処理時に、前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とする。
【００４７】
この請求項１１の発明によれば、取得した起動情報およびモジュール識別情報に基づいて記録媒体から更新データを選定した上で、記憶部に格納されているプログラムを選定された更新データによって更新することで、装置で動作するプログラムの構成に応じて適切な更新データを選択してプログラム更新を行うことができる。
【００４８】
また、請求項１２にかかる発明は、前記起動情報取得ステップは、さらに、前記記憶部に格納されているファイルを検索して前記プログラムの起動情報を取得することを特徴とする。
【００４９】
この請求項１２の発明によれば、記憶部に格納されているファイルを検索してプログラムの起動情報を取得し、モジュール識別情報およびプログラムの起動情報に基づいて記録媒体から更新データを選定することで、装置で動作可能なプログラムを実行せずに予め把握して、装置の構成に応じて適切な更新データのみを選択してプログラム更新を行うことができる。
【００５０】
また、請求項１３にかかる発明は、前記更新データ選定ステップは、前記記録媒体に記録された全てのモジュール識別情報と前記プログラムの起動情報とを比較して、前記起動情報と一致する前記モジュール情報に対応した更新データを選定することを特徴とする。
【００５１】
この請求項１３にかかる発明によれば、更新データ選定ステップにより記録媒体に記録された全てのモジュール識別情報とプログラムの起動情報とを比較して、起動情報と一致するモジュール情報に対応した更新データを選定することで、記録媒体に記録された全てのモジュール識別情報の中から、装置の構成に応じた更新データを正確に選択することができ、装置の構成に応じた適切なプログラム更新を行うことができる。
【００５２】
また、請求項１４にかかる発明は、前記プログラムを動作させる装置機種に固有の機種識別情報を取得する機種識別情報取得ステップをさらに含み、前記記録媒体は、前記プログラムのモジュール識別情報と前記プログラムの更新データとが対応づけられているとともに、前記モジュール識別情報ごとに前記プログラムを動作可能な機種の機種識別情報が記録されたものであり、前記更新データ選定ステップは、前記記録媒体に記録されている全ての前記モジュール識別情報と前記プログラムの起動情報と比較し、前記起動情報と一致するモジュール識別情報であって、前記機種識別情報取得ステップにより取得した機種識別情報に基づいて更新データを選定することを特徴とする。
【００５３】
この請求項１４にかかる発明によれば、更新データ選定ステップにより記録媒体に記録されている全てのモジュール識別情報とプログラムの起動情報とを比較して起動情報と一致するモジュール識別情報を抽出し、抽出したモジュール識別情報および機種識別情報取得ステップで取得した機種識別情報に基づいて更新データを選定することで、プログラム実行装置の機種により動作可能なプログラムが異なっている場合でも、一種類の記録媒体を複数機種の装置のプログラム更新に共有して用いることができる。
【００５４】
なお、本発明における機種識別情報は、装置の機種を特定できるものであればよく、例えば機種名、機種ＩＤなどを用いることができる。
【００５５】
また、請求項１５にかかる発明は前記プログラムは、プログラム更新に関する処理を実行するプログラム更新モードを有しており、前記起動情報取得ステップは、記録媒体に固有の媒体識別情報に基づいて前記記録媒体に更新データが記録されているか否かを判断し、前記記録媒体に更新データが記録されているときは前記プログラムを前記プログラム更新モードで起動することを特徴とする。
【００５６】
この請求項１５にかかる発明によれば、プログラム起動ステップにより記録媒体に固有の媒体識別情報を読み出して記録媒体に更新データが記録されているか否かを判断し、記録媒体に更新データが記録されているときはプログラムを、プログラム更新に関する処理を実行するプログラム更新モードで起動することで、装置の起動時に記録媒体を入力すれば、プログラム更新モードで起動したプログラムによるプログラム更新に関する処理が行われる。このため、従来のプログラム更新方法で行っていたＤＩＰスイッチの切り替えを必要とせずにプログラム更新を行うことができる。
【００５７】
また、請求項１６にかかる発明は、前記更新データ選定ステップは、前記起動情報取得ステップにより前記プログラム更新モードで起動されたプログラムによって実行されることを特徴とする。
【００５８】
この請求項１６にかかる発明によれば、更新データ選定ステップが起動情報取得ステップによりＲＯＭ更新モードで起動されたプログラムによって実行されるので、プログラムを更新データ選定処理用のプログラムと兼用してプログラムによるメモリ使用サイズが減少するとともに、更新処理速度の向上が図られる。
【００５９】
また、請求項１７にかかる発明は、前記記録媒体には、各モジュール識別情報ごとに前記更新データを書き込む記憶部の更新先領域が記録されており、前記更新ステップは、前記プログラムを記憶部の更新先領域から前記選定された更新データで更新することを特徴とする。
【００６０】
この請求項１７にかかる発明によれば、モジュール識別情報ごとに記録されている更新先領域を更新データで更新することで、記憶部のプログラムの配置や更新先を決定する処理が不要となり、正確かつ迅速なプログラム更新を行うことができる。
【００６１】
また、請求項１８にかかる発明は、前記記録媒体には、前記機種識別情報ごとに前記更新データを書き込む記憶部の更新先領域が記録されており、前記更新ステップは、前記プログラムを記憶部の更新先領域から前記選定された更新データで更新することを特徴とする。
【００６２】
この請求項１８にかかる発明によれば、機種識別情報ごとに記録されている更新先領域を更新データで更新することで、装置の機種により動作可能なプログラムの配置が異なっている場合でも、一種類の記録媒体を用いて複数機種の装置のプログラム更新を正確かつ迅速に行うことができる。
【００６３】
また、請求項１９にかかる発明は、前記更新ステップは、さらに更新されたプログラムと前記更新データとを比較して同一性をチェックすることを特徴とする。
【００６４】
この請求項１９にかかる発明によれば、さらに更新されたプログラムと更新データを比較して同一性をチェックすることで、プログラム更新時に生じたエラーを速やかに検出することができる。
【００６５】
また、請求項２０にかかる発明は、前記更新ステップは、前記プログラムの更新時に、プログラム更新に関する更新情報を不揮発性記憶手段に格納し、プログラムの更新前に前記不揮発性記憶手段に前記更新情報が格納されているか否かを判断し、前記更新情報が格納されている場合には、前記不揮発性記憶手段に格納されている更新情報に基づいて前記プログラムを更新することを特徴とする。
【００６６】
この請求項２０にかかる発明によれば、プログラムの更新時に、プログラム更新に関する更新情報を不揮発性記憶手段に格納し、プログラムの更新前に不揮発性記憶手段に更新情報が格納されていると判断した場合には、不揮発性記憶手段に格納されている更新情報に基づいてプログラムを更新することで、更新処理が途中で中断された場合でも、次回の起動時に更新情報を復帰させることができる。また、次回の起動時に前回の更新処理の中断時点から更新処理を再開することもでき、中断後のプログラム更新処理を速やかに復帰させることができる。
【００６７】
また、請求項２１にかかる発明は、プリンタ部またはスキャナ部の少なくとも一方を含む画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションのプログラムと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションのプログラムからアクセスされて共通に利用される１つ以上のプラットフォームのプログラムとを有する画像形成装置に、プログラムの起動情報を取得する起動情報取得手順と、前記プログラムの更新データが記憶された記録媒体から、前記プログラムのモジュール識別情報を取得するモジュール識別情報取得手順と、前記起動情報およびモジュール識別情報に基づいて、前記記録媒体から前記プログラムのうちの少なくとも一部に対応した更新データを選定する更新データ選定手順と、前記記憶部に格納されている前記プログラムを前記選定された更新データで更新する更新手順とを実行させ、前記プラットフォームのプログラムは、通常処理を行う通常モードスレッドと、前記記録媒体に記録されている更新データ群から更新データを選定する処理を行うプログラム更新モードスレッドとを含むプロセスとして動作するシステムコントロールサービスのプログラムが含まれ、前記システムコントロールサービスのプログラムは、前記更新手順を行う更新データ選定手段として動作し、前記起動情報取得手順を行う起動情報取得手段は、プログラム更新処理時に、前記システムコントロールサービスのプログラムの前記プログラム更新モードスレッドを起動することを特徴とし、前記プラットフォームのプログラムのそれぞれは、通常処理を行う通常モードスレッドと、前記画像形成に係る処理を停止するプログラム更新モードスレッドとを含むプロセスとして動作し、前記起動情報取得手順を行う起動情報取得手段は、プログラム更新処理時に、前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とするように実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体であることを特徴とする。
また、請求項２２にかかる発明は、プリンタ部またはスキャナ部の少なくとも一方を含み画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションのプログラムと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションのプログラムからアクセスされて共通に利用される１つ以上のプラットフォームのプログラムとを有する画像形成装置であって、前記プログラムの起動情報を取得する起動情報取得手段と、前記プログラムの更新データが記録された記録媒体から自機の構成に応じた前記プログラムの更新データを選定する更新データ選定手段と、前記更新データ選定手段が選定した前記プログラムの更新データを取得し、記憶部に格納されている前記プログラムを前記取得した更新データで更新する更新手段を有し、前記プラットフォームのプログラムは、通常処理を行う通常モードスレッドと、前記記録媒体に記録されている更新データ群から更新データを選定する処理を行うプログラム更新モードスレッドとを含むプロセスとして動作するシステムコントロールサービスのプログラムが含まれ、前記システムコントロールサービスのプログラムは、前記更新データ選定手段として動作し、前記起動情報取得手段は、プログラム更新処理時に、前記システムコントロールサービスのプログラムの前記プログラム更新モードスレッドを起動することを特徴とし、前記プラットフォームのプログラムのそれぞれは、通常処理を行う通常モードスレッドと、前記画像形成に係る処理を停止するプログラム更新モードスレッドとを含むプロセスとして動作し、前記起動情報取得手段は、プログラム更新処理時に、前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とする。
また、請求項２３にかかる発明は、プリンタ部またはスキャナ部の少なくとも一方を含み画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションのプログラムと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションのプログラムからアクセスされて共通に利用される１つ以上のプラットフォームのプログラムとを有する画像形成装置の記憶部に格納されたプログラムを更新データによって更新するプログラム更新方法において、前記プログラムの起動情報を取得する起動情報取得ステップと、前記プログラムの更新データが記録された記録媒体から自機の構成に応じた前記プログラムの更新データを選定する更新データ選定ステップと、前記更新データ選定ステップで選定された前記プログラムの更新データを取得し、前記記憶部に格納されている前記プログラムを前記取得した更新データで更新する更新ステップとを有し、前記プラットフォームのプログラムは、通常処理を行う通常モードスレッドと、前記記録媒体に記録されている更新データ群から更新データを選定する処理を行うプログラム更新モードスレッドとを含むプロセスとして動作するシステムコントロールサービスのプログラムが含まれ、前記システムコントロールサービスのプログラムは、前記更新データ選定ステップを行う更新データ選定手段として動作し、前記起動情報取得ステップを行う起動情報取得手段は、プログラム更新処理時に、前記システムコントロールサービスのプログラムの前記プログラム更新モードスレッドを起動することを特徴とし、前記プラットフォームのプログラムのそれぞれは、通常処理を行う通常モードスレッドと、前記画像形成に係る処理を停止するプログラム更新モードスレッドとを含むプロセスとして動作し、前記起動情報取得手段は、プログラム更新処理時に、前記プラットフォームのプログラムの各プログラム更新モードスレッドを起動することを特徴とする。
【００６８】
本発明によれば、画像形成装置の構成に応じて最適な更新データを選択してプログラム更新を行うことができ、一種類の記録媒体で複数機種のプログラム更新に対応することができ、プログラム更新作業に伴うハードウェア障害を防止することが可能である。
【００６９】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる画像形成装置およびプログラム更新方法の好適な実施の形態を詳細に説明する。
（実施の形態１）
図１は、この発明の実施の形態１である画像形成装置（以下、「複合機」という）の構成を示すブロック図である。図１に示すように、複合機１００は、白黒ラインプリンタ（B&W LP）１０１と、カラーラインプリンタ（Color LP）１０２と、スキャナ、ファクシミリなどのハードウェアリソース１０３などを有するとともに、プラットホーム１２０とアプリケーション１３０とから構成されるソフトウェア群１１０と、電源投入時に実行される複合機起動部１４０とを備えている。
【００７０】
複合機起動部１４０は、複合機１００の電源投入時にまずはじめに実行され、上記各モジュールを起動モードに応じて実行するものである。ここで、起動モードには通常モードとＲＯＭ更新モードがある。通常モードとは、複合機でコピー、プリント、スキャナ、ファクシミリなど通常の複合サービスを行うために起動するモードである。ＲＯＭ更新モードとは、記憶部の一例としてのフラッシュメモリの更新を行うために複合機を起動するモードであり、ＲＯＭ更新フラッシュカード２０７を挿入した状態で電源投入が行われた場合に複合機はＲＯＭ更新モードで起動する。
【００７１】
プラットホーム１２０は、アプリケーション１３０からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）１２３と、汎用ＯＳ１２１とを有する。
【００７２】
コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）１２２と、ＥＣＳ（エンジンコントロールサービス）１２４と、ＭＣＳ（メモリコントロールサービス）１２５と、ＯＣＳ（オペレーションパネルコントロールサービス）１２６と、ＦＣＳ（ファックスコントロールサービス）１２７と、ＮＣＳ（ネットワークコントロールサービス）１２８とから構成される。なお、このプラットホーム１２０は、あらかじめ定義された関数により前記アプリケーション１３０から処理要求を受信可能とするアプリケーションプログラムインタフェース（ＡＰＩ）を有する。
【００７３】
汎用ＯＳ１２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム１２０並びにアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００７４】
ＳＲＭ１２３のプロセスは、ＳＣＳ１２２とともにシステムの制御およびリソースの管理を行うものである。ＳＲＭ１２３のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４  Ｉ／Ｆ、ＲＳ２３２Ｃ  Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御するという複合サービスを行う際に実行される通常モードスレッドと、かかるリソース管理を実行せずに単に起動されるだけのＲＯＭ更新モードスレッドを有している。
【００７５】
具体的には、このＳＲＭ１２３の通常モードスレッドは、要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ１２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００７６】
ＳＣＳ１２２のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御という複合サービスを行う際に実行される通常モードスレッドを有している。
【００７７】
ＳＣＳ１２２のプロセスは、さらに複合機１００がＲＯＭ更新モードで起動された場合にのみ起動されるＲＯＭ更新モードスレッドを通常モードスレッドとは別個に有している。このＲＯＭ更新モードスレッドは、複合機１００がＲＯＭ更新モードで起動されたときに、ＲＯＭ更新フラッシュカード２０７に記録されている更新データの中から、複合機１００で動作するアプリケーション、コントロールサービスの構成に応じた更新データを選定する処理を行う。
【００７８】
ＥＣＳ１２４のプロセスは、白黒ラインプリンタ（B&W LP）１０１、カラーラインプリンタ（Color LP）１０２、スキャナ、ファクシミリなどからなるハードウェアリソース１０３のエンジンの制御という複合サービスを行う際に実行される通常モードスレッドと、このようなエンジン制御を行わずに単に起動されるだけのＲＯＭ更新モードスレッドを有している。
【００７９】
ＭＣＳ１２５のプロセスは、画像メモリの取得および解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などのコピー、プリンタ、ファクシミリおよびスキャナなどの複合サービスを行う際に実行される通常モードスレッドと、かかる機能を実行せずに単に起動されるだけのＲＯＭ更新モードスレッドを有している。
【００８０】
ＯＣＳ１２６のプロセスは、オペレータと本体制御間の情報伝達手段となる操作パネル（オペレーションパネル）の制御という複合サービスを行う際に起動される通常モードスレッドと、かかる操作パネルの制御を行わず単に起動されるだけのＲＯＭ更新モードスレッドを有している。
【００８１】
ＦＣＳ１２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供するという複合サービスを行う際に起動される通常モードスレッドと、かかる機能を実行せずに単に起動されるだけのＲＯＭ更新モードスレッドを有している。
【００８２】
ＮＣＳ１２８は、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行うという複合サービスを行う際に実行される通常モードスレッドと、かかる機能を実行せずに単に起動されるだけのＲＯＭ更新モードスレッドを有している。
【００８３】
このように、ＥＣＳ１２４、ＭＣＳ１２５、ＯＣＳ１２６、ＦＣＳ１２７、ＮＣＳ１２８、ＳＲＭ１２３の各ＲＯＭ更新モードスレッドはいずれも単に起動されるだけであるが、これは、ＲＯＭ更新処理時に、複合機内部で動作するコントロールサービスの存在を示すために起動されるようになっている。ＳＣＳ１２２のＲＯＭ更新モードスレッドは、ＲＯＭ更新処理時に更新データの選定処理を行うとともに、複合機内部で動作するコントロールサービスの存在を示すために起動されるようになっている。
【００８４】
アプリケーション１３０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクシミリ用アプリケーションであるファックスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５と、工程検査用アプリケーションである工程検査アプリ１１６とを有している。
【００８５】
図２は、図１に示した実施の形態１の複合機のハードウェア構成図である。図２に示すように、この複合機１００は、コントローラボード２００と、オペレーションパネル２１０と、ファックスコントロールユニット（ＦＣＵ）２２０と、ＵＳＢデバイス２３０と、ＩＥＥＥ１３９４デバイス２４０と、ブルートゥースデバイス２５０と、エンジン部２６０から構成されている。
【００８６】
図２のコントローラボード２００は、ＡＳＩＣ２０１、ＣＰＵ２０２、ＳＤＲＡＭ２０３、フラッシュメモリ２０４、ＨＤＤ２０５，フラッシュカードインタフェース部２０６，ＳＲＡＭ２０８およびネットワークインターフェースコントローラ２０９から構成されている。
【００８７】
オペレーションパネル２１０は、ＡＳＩＣ２０１に直接接続されている。ＦＣＵ２２０、ＵＳＢデバイス２３０、ＩＥＥＥ１３９４デバイス２４０，ブルートゥースデバイス２５０およびエンジン部２６０は、ＰＣＩバスを介してＡＳＩＣ２０１に接続されている。
【００８８】
ネットワークインターフェースコントローラ２０９は、ネットワーク２７１に接続されている他の機器とＭＡＣアドレスなどを用いて通信する。ＦＣＵ２２０は電話網２７２に接続されている。また、ＵＳＢデバイス２３０、ＩＥＥＥ１３９４デバイス２４０およびブルートゥースデバイス２５０は、他の端末２７３〜２７５に接続される。
【００８９】
フラッシュカードインタフェース部２０６は、挿入されたフラッシュカード２０７とデータのやりとりを行うインタフェースである。フラッシュカード２０７は、本発明における記録媒体を構成するものであり、上述の各アプリ、各コントロールサービスおよびシステムリソースマネージャの各プログラムの更新データや更新先領域の一例としての更新先アドレスが格納されている。
【００９０】
フラッシュメモリ２０４は、本発明における記憶部を構成するものである。なお、本発明における記憶部はフラッシュメモリ２０４に限るものでなく、ＳＤＲＡＭ２０３、ＨＤＤ２０５であってもよい。
【００９１】
ＳＲＡＭ２０８は、ＲＯＭ更新中に電源が切れた場合に、処理復帰のために更新中の各種情報を蓄積するバッテリを用いた不揮発性メモリであり、本発明における不揮発性記憶手段を構成する。
【００９２】
フラッシュメモリ（以下、「フラッシュＲＯＭ」という。）２０４には、上述の各アプリ、プラットホーム１２０を構成する各コントロールサービスやＳＲＭ１２３の各プログラムが格納されている。
【００９３】
図３は、フラッシュカード２０７に格納されているデータの構造図である。フラッシュカード２０７には、図３に示すように、先頭のＲＯＭモニタ起動命令３００と、カード識別番号３０１と、ヘッダ部３０２と、データ部３０３とから構成される。
【００９４】
ＲＯＭモニタ起動命令３００は、複合機１００の起動時に参照されて後述するＲＯＭモニタの起動を行うコマンドである。カード識別番号３０１は、フラッシュカード２０７の種類を識別するものであり、ＲＯＭ更新カード用、言語カード用、編集カード用にそれぞれの識別番号が予め割り当てられている。この実施の形態１において使用するフラッシュカード２０７には、ＲＯＭ更新カード用の固有の番号がカード識別番号３０１に記録されている。
【００９５】
ヘッダ部３０２は、更新するモジュールに対応するように、モジュールごとのヘッダブロックに分かれている。各ヘッダブロックには、次のヘッダブロックまでのオフセットである次ヘッダオフセットと、モジュールの更新データまでのオフセットである更新データオフセットと、更新データのサイズと、モジュールの識別情報であるモジュールＩＤと、そのモジュールのバージョンを表すバージョン情報と、そのモジュールのフラッシュＲＯＭ２０４上での相対番地を示す更新先アドレスと、そのモジュールのサイズである更新先領域長とから構成される。
【００９６】
ここで、モジュールは、ＭＣＳ１２５、ＥＣＳ１２４、ＮＣＳ１２８などのコントロールサービス単位のプログラム、プリンタアプリ１１１、コピーアプリ１１２などのアプリ単位のプログラム、プリンタエンジン１０１，１０２、スキャナエンジンなどのエンジン単位のプログラムで更新可能となっている。また、更新データとは、これらのモジュールに対する変更プログラムのバイナリデータを圧縮形式にしたものである。
【００９７】
ヘッダ部３０２に続いてデータ部３０３が記録されており、データ部３０３には更新データがモジュールごとに格納されている。各モジュールの更新データの先頭は、モジュールに対応するヘッダブロックの更新データオフセットにより参照できるようになっている。
【００９８】
図４は、実施の形態１の複合機における複合機起動部の構成を示すブロック図である。実施の形態１の複合機１００における複合機起動部１４０は、図４に示すとおり、ＲＯＭモニタ４１０と、プログラム起動部４２０と、ＲＯＭ更新モードスレッドを起動したＳＣＳ１２２と、ＲＯＭ更新部４３０とから構成される。ＲＯＭモニタ４１０、プログラム起動部４２０、ＲＯＭ更新部４３０は、フラッシュＲＯＭ２０４に記憶されている。
【００９９】
ここで、プログラム起動部４２０は本発明における起動情報取得手段を、ＳＣＳ１２２は本発明の更新データ選定手段を、ＲＯＭ更新部４３０は本発明における更新手段をそれぞれ構成する。なお、本発明の更新データ選択手段はＳＣＳ１２２に限るものでなく、他のコントロールサービスやアプリの一部または全部の機能であってもよい。
【０１００】
ＲＯＭモニタ４１０は、フラッシュＲＯＭ２０４のブートベクタに記録されたＲＯＭモニタ起動命令を実行することにより起動され、ハードウェアの初期化、コントローラボードの診断、ソフトウェアの初期化、汎用ＯＳ１２１の起動などを行う。
【０１０１】
プログラム起動部４２０は、汎用ＯＳ１２１から呼び出されるものであり、起動モード設定部４２１と、サービス層起動部４２２と、アプリ起動部４２３と、アプリ起動情報設定部４２４とから構成される。
【０１０２】
起動モード設定部４２１は、フラッシュカード２０７のカード識別番号のチェックを行って、通常モードまたはＲＯＭ更新モードの起動モードの設定を行う。サービス層起動部４２２は、汎用ＯＳ１２１の起動情報を取得して、コントロールサービスを起動する。アプリ起動情報設定部４２４は、ＲＯＭ更新モードの場合に実行され、各アプリの起動情報を取得して、取得したアプリ起動情報を環境変数に設定する。アプリ起動部４２３は、起動モードが通常モードである場合に実行され、各アプリの起動情報を取得して各アプリを起動する。
【０１０３】
ＳＣＳ１２２のＲＯＭ更新モードスレッドは、プログラム起動部４２０のサービス層起動部４２２によって他のコントロールサービスとともに起動される。ＳＣＳ１２２のＲＯＭ更新モードスレッドでは、複合機１００で動作するコントロールサービスやアプリを判断して、フラッシュカード２０７から複合機１００の構成に応じた更新データを選定する。また、ＳＣＳ１２２のＲＯＭ更新モードスレッドは、ＲＯＭ更新部４３０を起動して、ＲＯＭ更新部４３０に対して選定した更新データの情報とともにＲＯＭ更新命令を発する。
【０１０４】
ＲＯＭ更新部４３０は、ＳＣＳ１２２のＲＯＭ更新モードスレッドにより起動され、ＳＣＳ１２２からＲＯＭ更新命令を受け取って、更新データでフラッシュＲＯＭ２０４を更新するものである。ＲＯＭ更新部４３０は、ＳＣＳ１２２からのＲＯＭ更新命令を解析するＲＯＭ更新命令解読部４３１と、更新先アドレスと解析したＲＯＭ更新命令に基づいてフラッシュＲＯＭ２０４のプログラムを更新するＲＯＭ更新処理部４３３と、ＲＯＭ更新中の各種情報をＳＲＡＭ２０８へ格納するＳＲＡＭ処理部４３２と、ＲＯＭ更新処理中のユーザへの進捗表示を制御する表示制御部４３４とから構成される。
【０１０５】
次にこのように構成された複合機１００におけるＲＯＭ更新処理について説明する。図５は、実施の形態１の複合機１００におけるＲＯＭ更新の全体の処理手順を示すフローチャートである。
【０１０６】
ステップＳ５０１では、ＲＯＭ更新によりフラッシュＲＯＭ２０４上のアプリやコントロールサービスなどのプログラムを更新するため、複合機１００にフラッシュカード２０７をフラッシュカードインタフェース部２０６に挿入した状態で複合機１００の電源投入を行う。
【０１０７】
ステップＳ５０１に続いてステップＳ５０２に進み、複合機１００のブートプログラムは、フラッシュカード２０７の先頭レコードからＲＯＭモニタ起動命令を読み込んで実行し、これによりＲＯＭモニタ４１０が起動する。ステップＳ５０２に続いてステップＳ５０３に進み、ＲＯＭモニタ４１０はハードウェアおよびソフトウェアの初期化を行って、汎用ＯＳ１２１を起動する。
【０１０８】
ステップＳ５０４では、コントロールサービスなどのプログラムを起動させるためのプログラム起動部４２０が実行される。ステップＳ５０４に続いてステップＳ５０５に進み、プログラム起動部４２０はフラッシュカード２０７のチェックを行って起動モードを設定し、コントロールサービスを起動する。
【０１０９】
ステップＳ５０６では、起動したコントロールサービスの中でＳＣＳ１２２のＲＯＭ更新モードスレッドが、フラッシュカード２０７内のデータ解析を行うとともに、複合機１００で動作するプログラムをチェックして更新対象のプログラムを決定し、ＲＯＭ更新部４３０を起動する。ＲＯＭ更新部４３０では、ＳＣＳ１２２で決定されたフラッシュＲＯＭ２０４上のプログラムに対してフラッシュカード２０７の更新データによってＲＯＭ更新を行う。
【０１１０】
以下に、ＲＯＭモニタ４１０、プログラム起動部４２０、ＳＣＳ１２２およびＲＯＭ更新部４３０で行われる処理について詳細に説明する。図６は、実施の形態１の複合機１００において、ＲＯＭモニタ４１０で実行される処理の手順を示すフローチャートである。
【０１１１】
ステップＳ６０１では、ＲＯＭモニタ４１０が、まずハードウェアの初期化を行う。ステップＳ６０１に続いてステップＳ６０２に進み、ＲＯＭモニタ４１０はコントローラボードの診断処理を実行する。そして、ステップＳ６０２に続いてステップＳ６０３に進み、ＲＯＭモニタ４１０はソフトウェアの初期化処理を行う。ステップＳ６０３に続いてステップＳ６０４に進み、ＲＯＭモニタ４１０は最後に汎用ＯＳ１２１を起動する。
【０１１２】
図７は、実施の形態１の複合機１００において、プログラム起動部４２０で実行される処理の手順を示すフローチャートである。ステップＳ７０１では、プログラム起動部４２０が、起動モード設定部４２１によって、フラッシュカード２０７のカード識別番号３０１を読み出して、マジックナンバーがあらかじめ定められたＲＯＭ更新用のフラッシュカードの番号であるか否かをチェックする。
【０１１３】
カード識別番号３０１がＲＯＭ更新用のフラッシュカードの番号である場合には、起動モード設定部４２１はステップＳ７０２に進み、起動モードをＲＯＭ更新モードに設定して以下の処理を行う。
【０１１４】
ステップＳ７０２に続いてステップＳ７０３に進み、プログラム起動部４２０はサービス層起動部４２２によってフラッシュＲＯＭ２０４のファイルシステムをマウントする。ステップＳ７０３に続いてステップＳ７０４に進み、サービス層起動部４２２はフラッシュＲＯＭ２０４からＳＣＳ１２２，ＥＣＳ１２４，ＭＣＳ１２５などのコントロールサービスの起動情報を取得する。ステップＳ７０５では、ステップＳ７０４で取得した起動情報をサービス層起動部４２２が環境変数に設定する。ステップＳ７０５に続いてステップＳ７０６に進み、サービス層起動部４２２はＳＣＳ１２２、ＥＣＳ１２４、ＭＣＳ１２５などのコントロールサービスを汎用ＯＳ１２１上で起動する。このとき、各コントロールサービスはＲＯＭ更新モードスレッドを起動する。
【０１１５】
ステップＳ７０７では、サービス層起動部４２２が、ＳＣＳ１２２のＲＯＭ更新モードスレッドが起動したら、起動したコントロールサービスのコントロールサービス起動情報を環境変数に設定する。
【０１１６】
ここで、コントロールサービス起動情報とは、起動したコントロールサービスのプロセスＩＤやモジュール名など、コントロールサービスのプログラムを識別するものであり、各コントロールサービスに固有の情報となっている。
【０１１７】
ステップＳ７０７に続いてステップＳ７０８に進み、プログラム起動部４２０はアプリ起動情報設定部４２４によって、フラッシュＲＯＭ２０４のファイルシステムをマウントする。ステップＳ７０８に続いてステップＳ７０９に進み、アプリ起動情報設定部４２４はマウントしたファイルシステムを検索してアプリのプログラムを抽出し、複合機で起動されるアプリのアプリ起動情報を取得する。そして、ステップＳ７１０では、アプリ起動情報設定部４２４が、ステップＳ７０９で取得したアプリ起動情報を環境変数に設定する。
【０１１８】
ここで、アプリ起動情報とは、複合機１００で動作可能なアプリを識別するアプリ固有の情報であり、アプリのモジュールＩＤ、モジュール名，バージョン情報などである。なお、ＲＯＭ更新モードでは、コントロールサービスのみを起動し、アプリは起動しない。また、環境変数に設定されたコントロールサービス起動情報とアプリ起動情報は、ＳＣＳ１２２へ受け渡される。このようにしてＲＯＭ更新モードでのプログラム起動が行われる。
【０１１９】
ステップＳ７０１で、カード識別番号がＲＯＭ更新用のフラッシュカードの番号以外の番号である場合には、起動モード設定部４２１はステップＳ７１１に進み、起動モードを通常モードに設定して以下の通常起動の処理を行う。
【０１２０】
ステップＳ７１１に続いてステップＳ７１２に進み、プログラム起動部４２０はサービス層起動部４２２によってフラッシュＲＯＭ２０４のファイルシステムをマウントする。ステップＳ７１２に続いてステップＳ７１３に進み、サービス層起動部４２２はフラッシュＲＯＭ２０４からＳＣＳ１２２，ＥＣＳ１２４，ＭＣＳ１２５などのコントロールサービスの起動情報を取得する。
【０１２１】
ステップＳ７１３に続いてステップＳ７１４に進み、サービス層起動部４２２はＳＣＳ１２２、ＥＣＳ１２４、ＭＣＳ１２５などのコントロールサービスを汎用ＯＳ１２１上で起動する。このとき、各コントロールサービスは通常モードスレッドを起動する。
【０１２２】
ステップＳ７１４に続いてステップＳ７１５に進み、ＳＣＳ１２２が起動したら、プログラム起動部４２０はアプリ起動部４２３によって、フラッシュＲＯＭ２０４のファイルシステムをマウントする。ステップＳ７１５に続いてステップＳ７１６に進み、アプリ起動部４２３はマウントしたファイルシステムから複合機１００で起動されるアプリのアプリ起動情報を取得する。そして、ステップＳ７１７では、アプリ起動部４２３が、各アプリを起動する。
【０１２３】
図８および図９は、実施の形態１の複合機１００において、ＳＣＳ１２２のＲＯＭ更新モードスレッドで実行される更新データの選定処理の手順を示すフローチャートである。
【０１２４】
ステップＳ８０１では、ＳＣＳ１２２のＲＯＭ更新モードスレッドが、ＳＲＡＭ２０８にモジュールＩＤやフラッシュＲＯＭ２０４の更新先アドレスなどの更新情報がすでに記憶されているか否かを確認する。
【０１２５】
ＳＲＡＭ２０８に更新情報が記憶されていると判断した場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドはＲＯＭ更新処理が中断された後の起動であると判断し、ステップＳ８０２に進む。ステップＳ８０２では、ＳＣＳ１２２のＲＯＭ更新モードスレッドが、ＳＲＡＭ２０８から更新情報を取得する。
【０１２６】
ステップＳ８０２に続いてステップＳ８０３に進み、ＳＣＳ１２２のＲＯＭ更新モードスレッドは、まずＲＯＭ更新用のフラッシュカード２０７の最初のヘッダブロックを参照する。ステップＳ８０３に続いてステップＳ８０４に進み、ＳＣＳ１２２のＲＯＭ更新モードスレッドはヘッダブロックからモジュールＩＤを取得する。
【０１２７】
ステップＳ８０４に続いてステップＳ８０５に進み、ＳＣＳ１２２のＲＯＭ更新モードスレッドはヘッダブロックから取得したモジュールＩＤがステップＳ８０２でＳＲＡＭ２０８から取得した更新情報に相当するか否かを判断する。
【０１２８】
ヘッダブロックから取得したモジュールＩＤが、ＳＲＡＭ２０８から取得した更新情報に該当する場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ８０６に進む。ステップＳ８０６では、ＳＣＳ１２２のＲＯＭ更新モードスレッドが、そのモジュールＩＤの更新データを選定し、さらにヘッダブロックから更新先アドレス、更新データオフセット、更新データサイズを取得する。
【０１２９】
ステップＳ８０６に続いてステップＳ８０７に進み、ＳＣＳ１２２のＲＯＭ更新モードスレッドはモジュールＩＤ、更新先アドレス、更新データオフセット、更新データサイズを一組とした更新情報を「更新対象」の変数等に設定し、ステップＳ８０９に進む。
【０１３０】
一方、ステップＳ８０５において、ヘッダブロックから取得したモジュールＩＤが、ＳＲＡＭ２０８から取得した更新情報に相当しない場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドは取得したモジュールＩＤの更新データを選定せず、ステップＳ８０９に進む。つまり、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ８０６およびＳ８０７の処理は行わない。
【０１３１】
ステップＳ８０９では、ＳＣＳ１２２のＲＯＭ更新モードスレッドが、次ヘッダブロックオフセットを参照することにより、次のヘッダブロックが存在するか否かを判断する。次のヘッダブロックが存在する場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ８１０に進み、次のヘッダブロックを参照する。そして、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ８０４からステップＳ８０７，ステップＳ８０９およびステップＳ８１０の処理を繰り返し行う。
【０１３２】
一方、次のヘッダブロックが存在しない場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ８０８に進む。つまり、すべてのヘッダブロックのモジュールＩＤについての更新データの選定が終了したら、ＳＣＳ１２２のＲＯＭ更新モードスレッドはＲＯＭ更新部４３０を起動してＲＯＭ更新命令を発行し、更新対象の変数を引き渡す。
【０１３３】
一方、ＳＲＡＭ２０８に更新情報が存在しない場合には、ＲＯＭ更新部４３０はステップＳ８１１に進み、ＳＣＳ１２２のＲＯＭ更新モードスレッドは、まずＲＯＭ更新用のフラッシュカード２０７の最初のヘッダブロックを参照する。ステップＳ８１１に続いてステップＳ８１２に進み、ＳＣＳ１２２のＲＯＭ更新モードスレッドはヘッダブロックからモジュールＩＤを取得する。
【０１３４】
ステップＳ８１２に続いてステップＳ８１３に進み、ＳＣＳ１２２のＲＯＭ更新モードスレッドはヘッダブロックから取得したモジュールＩＤが環境変数の中のコントロールサービスまたはアプリに相当するか否かを判断する。
【０１３５】
ヘッダブロックから取得したモジュールＩＤが、環境変数の中のコントロールサービスまたはアプリに相当する場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ８１４に進む。
【０１３６】
ステップＳ８１４では、ＳＣＳ１２２のＲＯＭ更新モードスレッドが、そのモジュールＩＤの更新データを選定し、さらにヘッダブロックから更新先アドレス、更新データオフセット、更新データサイズを取得する。
【０１３７】
ステップＳ８１４に続いてステップＳ８１５に進み、ＳＣＳ１２２のＲＯＭ更新モードスレッドはモジュールＩＤ、更新先アドレス、更新データオフセット、更新データサイズを一組とした更新情報を「更新対象」の変数等に設定し、ステップＳ８１６に進む。
【０１３８】
一方、ステップＳ８１３において、ヘッダブロックから取得したモジュールＩＤが、環境変数の中のコントロールサービスまたはアプリに相当しない場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドは取得したモジュールＩＤの更新データを選定せず、ステップＳ８１６に進む。つまり、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ８１４およびＳ８１５の処理は行わない。
【０１３９】
ステップＳ８１６では、ＳＣＳ１２２のＲＯＭ更新モードスレッドが、次ヘッダブロックオフセットを参照することにより、次のヘッダブロックが存在するか否かを判断する。次のヘッダブロックが存在する場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ８１７に進み、次のヘッダブロックを参照する。そして、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ８１２からステップＳ８１７までの処理を繰り返し行う。
【０１４０】
一方、次のヘッダブロックが存在しない場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ８１８に進む。つまり、すべてのヘッダブロックのモジュールＩＤについての更新データの選定が終了したら、ＳＣＳ１２２のＲＯＭ更新モードスレッドはＲＯＭ更新部４３０を起動してＲＯＭ更新命令を発行し、更新対象の変数を引き渡す。
【０１４１】
これにより、ＲＯＭ更新用のフラッシュカード２０７で提供される更新データの中から、複合機１００内に存在するモジュールの更新データが選定されることになる。
【０１４２】
図１０は、実施の形態１の複合機１００において、ＲＯＭ更新部４３０で実行されるＲＯＭ更新処理の手順を示すフローチャートである。
【０１４３】
ステップＳ９０２では、ＲＯＭ更新部４３０が、ＳＣＳ１２２から受け渡された更新対象の変数から最初の組の更新情報（モジュールＩＤ、バージョン情報、更新先アドレス、更新データオフセットおよび更新データサイズ）をＳＲＡＭ２０８に格納してステップＳ９０３に進む。ステップＳ９０２の処理により、更新処理がエラー発生によって中断した場合でも次回の起動により更新処理を直ちに続行することができる。
【０１４４】
ステップＳ９０３では、ＲＯＭ更新部４３０が、フラッシュカード２０７の先頭アドレスから更新データオフセットで示されるアドレスから更新データサイズ分のデータを更新データとして読み出し、この更新データでフラッシュＲＯＭ２０４上の更新先アドレスから始まるモジュールを更新する。
【０１４５】
ステップＳ９０３に続いてステップＳ９０４に進み、ＲＯＭ更新部４３０はフラッシュカード２０７の更新データと、ステップＳ９０３で更新したフラッシュＲＯＭ２０４上のモジュールのデータとを比較して同一か否かのチェックを行う。同一でない場合には、ＲＯＭ更新部４３０はステップＳ９０５に進み、更新処理が失敗した旨のエラーを表示してステップＳ９０３に進む。ＲＯＭ更新部４３０は、再度更新処理を行う。更新データと更新したモジュールのデータとが同一である場合には、ＲＯＭ更新部４３０は更新処理が成功したと判断し、ステップＳ９０６に進む。
【０１４６】
ステップＳ９０６では、ＲＯＭ更新部４３０が、更新対象の変数に、次の更新情報の組が存在するか否かを判断する。存在する場合には、ＲＯＭ更新部４３０はステップＳ９０２に進み、次の更新情報に対して、ステップＳ９０２からＳ９０５までの処理を行う。つまり、ＲＯＭ更新部４３０はＳＣＳ１２２から引き渡されたすべての更新情報に対してステップＳ９０２からステップＳ９０６の処理を繰り返す。
【０１４７】
次の更新情報の組が存在しない場合には、ＲＯＭ更新部４３０はステップＳ９０７に進み、ＳＲＡＭ２０８をクリアしてＲＯＭ更新処理を終了する。つまり、ＲＯＭ更新部４３０はＳＣＳ１２２から引き渡されたすべての更新対象のモジュールの更新が終了したら、ＳＲＡＭ２０８をクリアしてＲＯＭ更新処理を終了する。
【０１４８】
このように実施の形態１の複合機１００では、プログラム起動部４２０によって複合機１００上でコントロールサービスを起動し、ＳＣＳ１２２によって起動したすべてのコントロールサービスの起動情報と、起動可能な複数のアプリの起動情報とを取得する。そして、複合機１００はＲＯＭ更新用のフラッシュカード２０７に記録されているモジュール識別情報と取得した起動情報とを対比することにより、フラッシュカード２０７からコントロールサービスまたはアプリの更新データを選定している。
【０１４９】
したがって、複合機１００は動作するコントロールサービスやアプリの構成に応じて常に最適な更新データを選択してＲＯＭ更新処理を実行することができるので、更新の不要なコントロールサービスやアプリのプログラムを誤って更新してしまうことが防止される。
【０１５０】
また、実施の形態１の複合機１００では、プログラム起動部４２０がフラッシュカード２０７のカード識別番号に基づいてＲＯＭ更新用のフラッシュカードか否かを判断する。ＲＯＭ更新用のフラッシュカード２０７であるとき、複合機１００はＳＣＳ１２２のＲＯＭ更新モードスレッドを起動してＲＯＭ更新処理を行うので、複合機１００の起動前にＲＯＭ更新のための起動を行うべくＤＩＰスイッチの切り替えを行うことが不要となる。このため、ＲＯＭ更新作業時に、作業者がコントローラボード２００に接触して損傷を引き起こす等の障害発生を防止することができる。
（実施の形態２）
実施の形態１の複合機１００におけるＲＯＭ更新処理では複合機１００の機種ごとに更新データを用意したものではないため、機種ごとに個別のＲＯＭ更新フラッシュカード２０７を用意する必要がある。
【０１５１】
そこで、この実施の形態２の複合機１００では、一枚のＲＯＭ更新用のフラッシュカード２０７で複数の機種のＲＯＭ更新処理を行う。実施の形態２にかかる複合機１００の機能的構成およびハードウェア構成は、図１および図２に示した実施の形態１の複合機１００と同様であるので説明を省略する。
【０１５２】
図１１は、実施の形態２の複合機１００で使用するＲＯＭ更新用のフラッシュカード２０７に格納されたデータの構造図である。フラッシュカード２０７は、実施の形態１と同様に、先頭のＲＯＭモニタ起動命令１０００と、カード識別番号１００１と、ヘッダ部１００２と、データ部１００３とから構成される。
【０１５３】
実施の形態２におけるフラッシュカード２０７のデータ構造が実施の形態１におけるデータ構造と異なる点は、ヘッダ部１００２において一つの更新データに対して複数の機種識別情報、複数の更新先アドレスおよび複数の更新先領域長がある点である。
【０１５４】
すなわち、複数の機種の複合機１００に共通するモジュールに対して、共通する更新データで更新を行う場合には、フラッシュカード２０７に、更新対象となるすべての複合機１００の機種識別情報、その機種におけるフラッシュＲＯＭ２０４上の更新先アドレスおよび更新先領域長をヘッダブロックに登録した構造となっている。
【０１５５】
実施の形態２の複合機１００における複合機起動部１４０は、実施の形態１と同様に、ＲＯＭモニタ４１０と、プログラム起動部４２０と、ＳＣＳ１２２のＲＯＭ更新モードスレッドと、ＲＯＭ更新部４３０とから構成される。ＲＯＭモニタ４１０は本発明における機種識別情報取得手段を、プログラム起動部４２０は本発明における起動情報取得手段を、ＳＣＳ１２２は本発明の更新データ選定手段を、ＲＯＭ更新部４３０は本発明における更新手段をそれぞれ構成する。
【０１５６】
実施の形態２の複合機１００におけるプログラム起動部４２０とＲＯＭ更新部４３０は、実施の形態１の複合機１００の場合と同様の構成であるので説明を省略する。
【０１５７】
ＲＯＭモニタ４１０は、実施の形態１におけるＲＯＭモニタ４１０と同様に、ハードウェアの初期化、コントローラボードの診断、ソフトウェアの初期化、汎用ＯＳ１２１の起動などを行う他、さらに複合機１００の機種識別情報を例えばフラッシュメモリ２０４から取得する。
【０１５８】
次にこのように構成された複合機１００におけるＲＯＭ更新処理について説明する。ＲＯＭ更新の全体の処理手順は図５に示した実施の形態１の複合機１００の場合と同様である。
【０１５９】
図１２は、実施の形態２の複合機１００において、ＲＯＭモニタ４１０で実行される処理の手順を示すフローチャートである。ステップＳ１１０１では、ＲＯＭモニタ４１０が、実施の形態１と同様に、ハードウェアの初期化を行う。ステップＳ１１０１に続いてステップＳ１１０２に進み、ＲＯＭモニタ４１０はコントローラボードの診断処理を行う。ステップＳ１１０２に続いてステップＳ１１０３に進み、ＲＯＭモニタ４１０はソフトウェアの初期化処理を行う。
【０１６０】
ステップＳ１１０３に続いてステップＳ１１０４に進み、ＲＯＭモニタ４１０は複合機１００のフラッシュＲＯＭ２０４に記録されている機種識別情報を取得する。機種識別情報とは、複合機の機種を特定するものであり、機種ごとに固有のデータとなっている。そして、ステップＳ１１０４に続いてステップＳ１１０５に進み、ＲＯＭモニタ４１０は汎用ＯＳ１２１を起動する。
【０１６１】
この後、実施の形態２の複合機１００では実施の形態１と同様に、プログラム起動部４２０によってコントロールサービスの起動を行い、起動されたＳＣＳ１２２のＲＯＭ更新モードスレッドによって次の処理を行う。
【０１６２】
図１３は、実施の形態２の複合機において、ＳＣＳ１２２のＲＯＭ更新モードスレッドで実行される更新データ選定処理の手順を示すフローチャートである。ステップＳ１２０１では、ＳＣＳ１２２のＲＯＭ更新モードスレッドが、実施の形態１と同様に、ＲＯＭ更新用のフラッシュカード２０７の先頭のヘッダブロックを参照する。ステップＳ１２０１に続いてステップＳ１２０２に進み、ＳＣＳ１２２のＲＯＭ更新モードスレッドはヘッダブロックからモジュールＩＤを取得する。
【０１６３】
ステップＳ１２０２に続いてステップＳ１２０３に進み、ＳＣＳ１２２のＲＯＭ更新モードスレッドは取得したモジュールＩＤが、プログラム起動部４２０から受け渡された環境変数のコントロールサービス起動情報およびアプリ起動情報にあるコントロールサービスまたはアプリのモジュールに該当するか否かをチェックする。
【０１６４】
取得したモジュールＩＤが、複合機１００内部で動作するコントロールサービスまたはアプリに該当する場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ１２０４に進み、さらにＲＯＭモニタ４１０で取得した複合機１００の機種識別情報が現在のモジュールＩＤのあるヘッダブロック内に登録されている機種識別情報に存在するか否かをチェックする。
【０１６５】
取得した機種識別情報がヘッダブロック内に存在する場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ１２０５に進み、そのヘッダブロックのモジュールＩＤの更新データを選定し、さらにヘッダブロックから更新先アドレス、更新データオフセット、更新データサイズを取得する。
【０１６６】
そして、ステップＳ１２０５に続いてステップＳ１２０６に進み、ＳＣＳ１２２のＲＯＭ更新モードスレッドは、このモジュールＩＤ、更新先アドレス、更新データオフセット、更新データサイズを一組の更新情報として「更新対象」の変数等に設定する。
【０１６７】
一方、ＳＣＳ１２２のＲＯＭ更新モードスレッドは、取得したモジュールＩＤが複合機１００内部で動作するコントロールサービスまたはアプリに該当しない場合または取得した機種識別情報がヘッダブロック内に存在しない場合には、ステップＳ１２０７に進む。つまり、取得したモジュールＩＤが複合機１００内部で動作するコントロールサービスまたはアプリに該当しない場合または取得した機種識別情報がヘッダブロック内に存在しない場合には、現在のモジュールＩＤに対応する更新データは選定せず、ステップＳ１２０４からステップＳ１２０６の処理は行わない。
【０１６８】
ついで、ステップＳ１２０７では、実施の形態１と同様に、ＳＣＳ１２２のＲＯＭ更新モードスレッドが、次のヘッダブロックが有るか否かを判断する。次のヘッダブロックが存在する場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ１２０８に進み、次のヘッダブロックを参照する。そして、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ１２０２からステップＳ１２０７までの処理を繰り返し行う。
【０１６９】
一方、次のヘッダブロックが存在しない場合には、ＳＣＳ１２２のＲＯＭ更新モードスレッドはステップＳ１２０９に進む。つまり、すべてのヘッダブロックのモジュールＩＤについて、更新データの選定が終了したら、ＳＣＳ１２２のＲＯＭ更新モードスレッドはＲＯＭ更新部４３０を起動してＲＯＭ更新命令を発行し、更新対象の変数を引き渡す。
【０１７０】
これにより、ＲＯＭ更新用のフラッシュカード２０７で提供される更新データの中から、複合機１００の機種に応じて複合機１００内部に存在するモジュールの更新データのみが選定される。
【０１７１】
このＳＣＳ１２２による更新データ選定処理の後、ＲＯＭ更新部４３０によってＲＯＭ更新処理が行われるが、このＲＯＭ更新処理は、実施の形態１の複合機１００の場合と同様であるので説明を省略する。
【０１７２】
このように実施の形態２の複合機１００では、ＳＣＳ１２２が、ＲＯＭモニタ４１０によってＲＯＭ更新用のフラッシュカード２０７から取得した機種識別情報に基づき更新データを選定する。したがって、複合機１００の機種により動作可能なコントロールサービスやアプリの配置が異なっている場合でも、一種類のＲＯＭ更新用のフラッシュカード２０７を複数機種の複合機のＲＯＭ更新に共有して用いることができる。
【０１７３】
このため、機種ごとに異なるＲＯＭ更新用のフラッシュカード２０７を管理したり、機種ごとにＲＯＭ更新の際に複数のフラッシュカード２０７から複合機１００の構成にあったフラッシュカード２０７を選択するという作業が必要がなくなり、ＲＯＭ更新作業の煩雑さを回避することができる。
（実施の形態３）
実施の形態１および２の複合機１００におけるＲＯＭ更新処理ではＲＯＭ更新モードでコントロールサービスを起動しなければ複合機１００の構成を判断することができなかった。
【０１７４】
そこで、この実施の形態３の複合機１００では、コントロールサービスを起動することなく、複合機１００の構成を判断する。実施の形態３にかかる複合機１００の機能的構成およびハードウェア構成は、図１および図２に示した実施の形態１の複合機１００と同様であるので説明を省略する。
【０１７５】
また、実施の形態３の複合機１００で使用するＲＯＭ更新用のフラッシュカード２０７に格納されたデータの構造は、図３および図１１に示した実施の形態１または実施の形態２の複合機１００と同様であるので説明を省略する。
【０１７６】
次にこのように構成された複合機１００におけるＲＯＭ更新処理について説明する。図１４は、実施の形態３の複合機１００におけるＲＯＭ更新の全体の処理手順を示すフローチャートである。
【０１７７】
ステップＳ１３０１では、フラッシュカード２０７をフラッシュカードインタフェース部２０６に挿入された状態で複合機１００の電源が投入される。ステップＳ１３０１に続いてステップＳ１３０２に進み、複合機１００のブートプログラムは、フラッシュカード２０７の先頭レコードからＲＯＭモニタ起動命令を読み込んで実行し、ＲＯＭモニタ４１０を起動する。ステップＳ１３０２に続いてステップＳ１３０３に進み、ＲＯＭモニタ４１０はハードウェアおよびソフトウェアの初期化を行って、汎用ＯＳ１２１を起動する。
【０１７８】
ステップＳ１３０３に続いてステップＳ１３０４に進み、プログラム起動部４２０は起動モード設定部４２１によって、フラッシュカード２０７のカード識別番号３０１を読み出して、マジックナンバーがあらかじめ定められたＲＯＭ更新用のフラッシュカード２０７の番号であるか否かをチェックする。
【０１７９】
カード識別番号３０１がＲＯＭ更新用のフラッシュカード２０７の番号である場合には、起動モード設定部４２１はステップＳ１３０５に進む。ステップＳ１３０５では、プログラム起動部４２０が、サービス層起動部４２２およびアプリ起動部４２３によってフラッシュＲＯＭ２０４のファイルシステムをマウントする。例えばフラッシュＲＯＭ２０４のメモリ領域は、図１５のように構成されている。
【０１８０】
図１５は、フラッシュＲＯＭの一例のメモリ領域である。フラッシュＲＯＭ２０４のメモリ領域は、ＲＯＭモニタ，ＯＳ，１つ以上のファイルシステム用の領域に分割されて管理される。また、ファイルシステムはファイルシステム情報，ディレクトリ情報，ファイル情報，ファイルデータ用の領域に分割されて管理される。１つ以上のファイルシステムは、複合機１００を構成するサービス層，１つ以上のアプリに対応するものである。
【０１８１】
ステップＳ１３０５に続いてステップＳ１３０６に進み、サービス層起動部４２２およびアプリ起動部４２３はフラッシュＲＯＭ２０４から後述するように起動情報を取得する。ステップＳ１３０６に続いてステップＳ１３０７に進み、サービス層起動部４２２およびアプリ起動部４２３は、ステップＳ１３０６で取得した起動情報を環境変数に設定する。
【０１８２】
ステップＳ１３０７に続いてステップＳ１３０８に進み、サービス層起動部４２２およびアプリ起動部４２３は次のファイルシステムが有るかを判断する。次のシステムファイルが存在する場合には、サービス層起動部４２２およびアプリ起動部４２３はステップＳ１３０５に進み、次のファイルシステムを参照する。そして、サービス層起動部４２２およびアプリ起動部４２３はステップＳ１３０５からステップＳ１３０７までの処理を繰り返し行う。一方、次のファイルシステムが存在しない場合には、サービス層起動部４２２およびアプリ起動部４２３はステップＳ１３０９に進む。
【０１８３】
ステップＳ１３０９では、ＲＯＭ更新部４３０が起動される。ＲＯＭ更新部４３０は、フラッシュＲＯＭ２０４上のプログラムに対してフラッシュカード２０７の更新データによってＲＯＭ更新を行う。
【０１８４】
ステップＳ１３０４で、カード識別番号がＲＯＭ更新用のフラッシュカード２０７の番号以外の番号である場合には、起動モード設定部４２１はステップＳ１３１０に進む。ステップＳ１３１０では、プログラム起動部４２０が、サービス層起動部４２２およびアプリ起動部４２３によってＨＤＤ２０５のファイルシステムをマウントする。
【０１８５】
ステップＳ１３１０に続いてステップＳ１３１１に進み、サービス層起動部４２２はコントロールサービスを汎用ＯＳ１２１上で起動する。また、ステップＳ１３１１に続いてステップＳ１３１２に進み、アプリ起動部４２３はアプリを汎用ＯＳ１２１上で起動して処理を終了する。
【０１８６】
図１６は、実施の形態３の複合機１００において、ステップＳ１３０６で実行される起動情報取得処理の詳細な手順を示すフローチャートである。
【０１８７】
ステップＳ１４０１では、サービス層起動部４２２およびアプリ起動部４２３が、ステップＳ１３０５でマウントしたファイルシステムのルートディレクトリにて図１７に表すような起動情報ファイル「version.txt」を検索する。
【０１８８】
図１７は、起動情報ファイルの一例の構成図である。図１７の起動情報ファイルは、モジュールＩＤ「SYSTEM」，バージョン情報「1.00」，次ファイルシステム情報「mount /mnt 0x650000」などを有している。なお、次ファイルシステム情報は、次のファイルシステムが格納されている領域の先頭アドレスなどを表している。したがって、次ファイルシステム情報を参照すれば、次のファイルシステムが存在するか否かを判断することができる。
【０１８９】
ステップＳ１４０１に続いてステップＳ１４０２に進み、サービス層起動部４２２およびアプリ起動部４２３はマウントしたファイルシステムのルートディレクトリに起動情報ファイル「version.txt」が存在するかを判断する。
【０１９０】
起動情報ファイルが存在すれば、サービス層起動部４２２およびアプリ起動部４２３はステップＳ１４０３に進み、起動情報ファイルを読み込んでステップＳ１４０４に進む。
【０１９１】
ステップＳ１４０４では、サービス層起動部４２２およびアプリ起動部４２３が、ステップＳ１４０３で読み込んだ起動情報ファイルからモジュールＩＤを取得する。例えば図１７の起動情報ファイルの場合、サービス層起動部４２２およびアプリ起動部４２３はモジュールＩＤとして「SYSTEM」を取得する。
【０１９２】
ステップＳ１４０５では、サービス層起動部４２２およびアプリ起動部４２３が、ステップＳ１４０３で読み込んだ起動情報ファイルからバージョン情報を取得する。例えば図１７の起動情報ファイルの場合、サービス層起動部４２２およびアプリ起動部４２３はバージョン情報として「1.00」を取得する。
【０１９３】
図１６の起動情報取得処理を全てのファイルシステムについて繰り返し行うことにより、複合機１００の構成に基づく起動情報を取得することができる。
【０１９４】
この起動情報を取得して環境変数を設定した後の更新データ選定処理およびＲＯＭ更新処理は、実施の形態１の複合機１００の場合と同様であるので説明を省略する。
【０１９５】
このように実施の形態３の複合機１００では、フラッシュＲＯＭ２０４に予め格納されている起動情報を取得して環境変数を設定することで、コントロールサービスを起動することなく、複合機１００の構成を判断できる。
【０１９６】
したがって、複合機１００は動作するコントロールサービスやアプリの構成に応じて常に最適な更新データを選択してＲＯＭ更新処理を実行することができるので、更新の不要なコントロールサービスやアプリのプログラムを誤って更新することを防止できる。
【０１９７】
なお、図３および図１１のＲＯＭ更新用のフラッシュカード２０７はＲＯＭ更新用のデータが格納される例を示しているが、ＲＯＭ更新処理を実行するプログラムを格納しておくこともできる。
【０１９８】
図１８は、複合機１００で使用するＲＯＭ更新用のフラッシュカード２０７に格納されたデータおよびプログラムの構造図である。図１８のフラッシュカード２０７は、先頭のＲＯＭモニタ起動命令２０００と、ヘッダブロックオフセット２００１と、プログラム２００２と、ヘッダ部２００３と、データ部２００４とから構成される。
【０１９９】
図１８におけるフラッシュカード２０７のデータ構造が実施の形態１におけるデータ構造と異なる点は、ヘッダブロックまでのオフセットであるヘッダブロックオフセット２００１およびＲＯＭ更新処理を実行するプログラム２００２がある点である。
【０２００】
すなわち、複合機１００はフラッシュカード２０７からＲＯＭ更新処理に必要なプログラムおよびデータを取得してＲＯＭ更新処理を自動的に行うことも可能である。
【０２０１】
本発明は、上記の実施例に限定されるものではなく、本発明の範囲内で種々の変形や変更が可能である。
【０２０２】
【発明の効果】
以上説明したように、発明によれば、画像形成装置の構成に応じて最適な更新データを選択してプログラム更新を行うことができ、一種類の記録媒体で複数機種のプログラム更新に対応することができ、プログラム更新作業に伴うハードウェア障害を防止することが可能である。
【図面の簡単な説明】
【図１】この発明の実施の形態１である複合機の構成を示すブロック図である。
【図２】実施の形態１の複合機のハードウェア構成図である。
【図３】ＲＯＭ更新フラッシュカードのデータ構造図である。
【図４】実施の形態１の複合機における複合機起動部の構成を示すブロック図である。
【図５】実施の形態１の複合機におけるＲＯＭ更新の全体の処理手順を示すフローチャートである。
【図６】実施の形態１の複合機において、ＲＯＭモニタで実行される処理の手順を示すフローチャートである。
【図７】実施の形態１の複合機において、プログラム起動部で実行される処理の手順を示すフローチャートである。
【図８】実施の形態１の複合機において、ＳＣＳのＲＯＭ更新モードスレッドで実行される更新データ選定処理の手順を示すフローチャート（１／２）である。
【図９】実施の形態１の複合機において、ＳＣＳのＲＯＭ更新モードスレッドで実行される更新データ選定処理の手順を示すフローチャート（２／２）である。
【図１０】実施の形態１の複合機において、ＲＯＭ更新部によるＲＯＭ更新処理の手順を示すフローチャートである。
【図１１】実施の形態２の複合機で使用するＲＯＭ更新フラッシュカードのデータ構造図である。
【図１２】実施の形態２の複合機において、ＲＯＭモニタで実行される処理の手順を示すフローチャートである。
【図１３】実施の形態２の複合機において、ＳＣＳのＲＯＭ更新モードスレッドで実行される更新データ選定処理の手順を示すフローチャートである。
【図１４】実施の形態３の複合機におけるＲＯＭ更新の全体の処理手順を示すフローチャートである。
【図１５】フラッシュＲＯＭの一例のメモリ領域である。
【図１６】実施の形態３の複合機で実行される起動情報取得処理の詳細な手順を示すフローチャートである。
【図１７】起動情報ファイルの一例の構成図である。
【図１８】複合機で使用するＲＯＭ更新用のフラッシュカードに格納されたデータおよびプログラムの構造図である。
【図１９】従来の複合機における電源投入時のフラッシュメモリおよびフラッシュカードのメモリマップを示す模式図である。
【符号の説明】
１００  複合機
１０１  白黒ラインプリンタ
１０２  カラーラインプリンタ
１０３  ハードウェアリソース
１１０  ソフトウェア群
１１１  プリンタアプリ
１１２  コピーアプリ
１１３  ファックスアプリ
１１４  スキャナアプリ
１１５  ネットファイルアプリ
１１６  工程検査アプリ
１２０  プラットホーム
１２１  汎用ＯＳ
１２２  ＳＣＳ
１２３  ＳＲＭ
１２４  ＥＣＳ
１２５  ＭＣＳ
１２６  ＯＣＳ
１２７  ＦＣＳ
１２８  ＮＣＳ
１３０  アプリケーション
１４０  複合機起動部
２００  コントローラボード
２０１  ＡＳＩＣ
２０２  ＣＰＵ
２０３  ＳＤＲＡＭ
２０４  フラッシュメモリ（フラッシュＲＯＭ）
２０５  ハードディスク装置（ＨＤＤ）
２０６  フラッシュカードインタフェース部
２０７  フラッシュカード
２０８  ＳＲＡＭ
２０９  ネットワークインターフェースコントローラ
２１０  オペレーションパネル
２２０  ＦＣＵ
２３０  ＵＳＢデバイス
２４０  ＩＥＥＥ１３９４デバイス
２５０  ブルートゥースデバイス
２６０  エンジン部
２７１  ネットワーク
２７２  電話網
４１０  ＲＯＭモニタ
４２０  プログラム起動部
４２１  起動モード設定部
４２２  サービス層起動部
４２３  アプリ起動部
４２４  アプリ起動情報設定部
４３０  ＲＯＭ更新部
４３１  ＲＯＭ更新命令解読部
４３２  ＳＲＡＭ処理部
４３３  ＲＯＭ更新処理部
４３４  表示制御部
【図１】
0004121333.tif 000002
【図２】
0004121333.tif 000003
【図３】
0004121333.tif 000004
【図４】
0004121333.tif 000005
【図５】
0004121333.tif 000006
【図６】
0004121333.tif 000007
【図７】
0004121333.tif 000008
【図８】
0004121333.tif 000009
【図９】
0004121333.tif 000010
【図１０】
0004121333.tif 000011
【図１１】
0004121333.tif 000012
【図１２】
0004121333.tif 000013
【図１３】
0004121333.tif 000014
【図１４】
0004121333.tif 000015
【図１５】
0004121333.tif 000016
【図１６】
0004121333.tif 000017
【図１７】
0004121333.tif 000018
【図１８】
0004121333.tif 000019
【図１９】
0004121333.tif 000020