JP4237511B2 - 画像形成装置、プログラム更新方法 - Google Patents
画像形成装置、プログラム更新方法 Download PDFInfo
- Publication number
- JP4237511B2 JP4237511B2 JP2003019722A JP2003019722A JP4237511B2 JP 4237511 B2 JP4237511 B2 JP 4237511B2 JP 2003019722 A JP2003019722 A JP 2003019722A JP 2003019722 A JP2003019722 A JP 2003019722A JP 4237511 B2 JP4237511 B2 JP 4237511B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- update
- image forming
- version
- forming apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
Description
【発明の属する技術分野】
本発明は、1つ以上のプログラムの更新に関し、特に画像形成装置、プログラム更新方法に関する。
【0002】
【従来の技術】
近年、ファクシミリ、プリンタ、コピーおよびスキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置が知られるようになった。この画像形成装置は、1つの筐体内に表示部、印刷部および撮像部などを設けると共に、ファクシミリ、プリンタ、コピーおよびスキャナにそれぞれ対応する4種類のアプリケーションを設け、そのアプリケーションを切り替えることより、ファクシミリ、プリンタ、コピーおよびスキャナとして動作させるものである。
【0003】
このように、画像形成装置は、プログラムに基づき処理を実行する種々のアプリケーションやモジュールにより動作しているため、FLASH−ROMなどに書き込まれたプログラムを更新することにより、新たな機能の追加などを行うことができる。
【0004】
このプログラムの更新処理は、更新プログラムが格納されたサーバにインターネットなどのネットワークを介して接続し更新プログラムを取得(以下、ダウンロードと記す)することにより行われることがある。
【0005】
また、複数の画像形成装置が1つのフロアにあり、そのフロアにある融合機のそれぞれに接続されたサーバが、それら全ての画像形成装置の更新プログラムをまとめてダウンロードすることがある。この場合、ダウンロードしたサーバは、ダウンロードした更新プログラムをそのままそれぞれの融合機に転送する。
【0006】
したがって、ダウンロードした更新プログラムは、1台の画像形成装置のみ更新可能なプリンタのプログラムを更新するものや、全ての画像形成装置のスキャナのプログラムを更新可能なものなど、複数のプログラムが含まれている。さらに、更新が失敗した場合にメンテナンスを行うサービスマンが対応しなければ復旧できないブート領域の更新をするプログラムのようなものも含まれている。
【0007】
【発明が解決しようとする課題】
このような種々のプログラムが混在した更新プログラムでプログラムの更新を行うと、異なる機種に対応しているプログラムを誤って更新したり、ファックスが搭載されていない融合機にファックスのプログラムが搭載されてしまうなどの不具合が発生する。また、復旧不可能となる可能性のあるブート領域のプログラムを更新することもあり得る。
【0008】
本発明は、このような問題点に鑑み、種々のプログラムが混在した更新プログラムであっても、プログラムを適正に更新することを可能とする画像形成装置、プログラム更新方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
上記課題を解決するために、参考発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置において、更新プログラムを取得する更新プログラム取得手段と、取得した更新プログラムで前記プログラムの更新を実行するかどうかを判断して前記プログラムを更新するプログラム更新手段とを有することを特徴とする。
【0010】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置において、更新プログラムを取得する更新プログラム取得手段と、前記プログラムを更新するために用いられるブート領域のバージョンを取得するブート情報取得手段と、前記更新プログラムのブート領域のバージョンと、前記ブート情報取得手段が取得したブート領域のバージョンとが一致したプログラムを更新するプログラム更新手段とを有することを特徴とする。
【0011】
また、上記課題を解決するために、参考発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置において、更新プログラムを取得する更新プログラム取得手段と、前記画像形成装置の機種情報を取得する機種情報取得手段と、前記更新プログラムが対応する機種情報と、前記機種情報取得手段が取得した機種情報とが一致したプログラムを更新するプログラム更新手段とを有することを特徴とする。
【0012】
また、上記課題を解決するために、参考発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置において、1つ以上のプログラムを更新する更新プログラムを取得する更新プログラム取得手段と、前記画像形成装置の仕向け情報を取得する仕向け情報取得手段と、前記更新プログラムが対応する仕向け情報と、前記仕向け情報取得手段が取得した仕向け情報とが一致したプログラムを更新するプログラム更新手段とを有することを特徴とする。
【0013】
また、上記課題を解決するために、参考発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置において、更新プログラムを取得する更新プログラム取得手段と、前記プログラムの識別情報を取得する識別情報取得手段と、前記更新プログラムの識別情報と、前記識別情報取得手段が取得した識別情報とが一致したプログラムを更新するプログラム更新手段とを有することを特徴とする。
【0014】
また、上記課題を解決するために、参考発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置のプログラム更新方法であって、更新プログラムを取得する更新プログラム取得段階と、取得した更新プログラムで前記プログラムの更新を実行するかどうかを判断し、判断結果に基づき前記プログラムを更新するプログラム更新段階とを有することを特徴とする。
【0015】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置のプログラム更新方法であって、更新プログラムを取得する更新プログラム取得段階と、前記プログラムを更新するために用いられるブート領域のバージョンを取得するブート情報取得段階と、前記更新プログラムのブート領域のバージョンと、前記処理手段から取得したブート領域のバージョンとが一致したプログラムを更新するプログラム更新段階とを有することを特徴とする。
【0016】
また、上記課題を解決するために、参考発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置のプログラム更新方法であって、更新する更新プログラムを取得する更新プログラム取得段階と、前記画像形成装置の機種情報を取得する機種情報取得段階と、前記更新プログラムが対応する機種情報と、前記機種情報取得手段が取得した機種情報とが一致した処理手段のプログラムを更新するプログラム更新段階とを有することを特徴とする。
【0017】
また、上記課題を解決するために、参考発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置のプログラム更新方法であって、更新する更新プログラムを取得する更新プログラム取得段階と、前記画像形成装置の仕向け情報を取得する仕向け情報取得段階と、前記更新プログラムが対応する仕向け情報と、前記仕向け情報取得手段が取得した仕向け情報とが一致したプログラムを更新するプログラム更新段階とを有することを特徴とする。
【0018】
また、上記課題を解決するために、参考発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置のプログラム更新方法であって、更新プログラムを取得する更新プログラム取得段階と、前記プログラムの識別情報を取得する識別情報取得段階と、前記更新プログラムの識別情報と、取得した識別情報とが一致したプログラムを更新するプログラム更新段階とを有することを特徴とする。
【0019】
以上のように、本発明によれば、種々のプログラムが混在した更新プログラムであっても、プログラムを適正に更新することを可能とする画像形成装置、プログラム更新方法が得られる。
【0020】
【発明の実施の形態】
以下、本発明の実施の形態について図面に基づいて説明する。
【0021】
図1は、本発明による画像形成装置(以下、融合機という)の一実施例の構成図を示す。融合機1は、ソフトウェア群2と、融合機起動部3と、ハードウェア資源4とを含むように構成される。
【0022】
融合機起動部3は融合機1の電源投入時に最初に実行され、アプリケーション層5およびコントローラ6を起動する。例えば融合機起動部3は、アプリケーション層5およびコントローラ6のプログラムを、ハードディスク装置(以下、HDという)などから読み出し、読み出した各プログラムをメモリ領域に転送して起動する。ハードウェア資源4は、白黒レーザプリンタ(B&W LP)25と、カラーレーザプリンタ(Color LP)26とスキャナやファクシミリなどのハードウェアリソース24とを含む。
【0023】
また、ソフトウェア群2は、UNIX(登録商標)などのオペレーティングシステム(以下、OSという)上に起動されているアプリケーション層5とコントローラ6とを含む。アプリケーション層5は、プリンタ、コピー、ファックスおよびスキャナなどの画像形成に係るユーザサービスにそれぞれ固有の処理を行うプログラムを含む。
【0024】
アプリケーション層5は、プリンタ用のアプリケーションであるプリンタアプリ9と、コピー用アプリケーションであるコピーアプリ10と、ファックス用アプリケーションであるファックスアプリ11と、スキャナ用アプリケーションであるスキャナアプリ12とを含む。
【0025】
また、コントローラ6は、アプリケーション層5からの処理要求を解釈してハードウェア資源4の獲得要求を発生するコントロールサービス層7と、1つ以上のハードウェア資源4の管理を行ってコントロールサービス層7からの獲得要求を調停するシステムリソースマネージャ(以下、SRMという)21と、SRM21からの獲得要求に応じてハードウェア資源4の管理を行うハンドラ層8とを含む。
【0026】
コントロールサービス層7は、通信手段に対応するネットワークコントロールサービス(以下、NCSという)13、リモートサービス(以下、RSという)14、オペレーションパネルコントロールサービス(以下、OCSという)15、ファックスコントロールサービス(以下、FCSという)16、エンジンコントロールサービス(以下、ECSという)17、メモリコントロールサービス(以下、MCSという)18、オンデマンドアップデートサービス(以下、OUSという)19、システムコントロールサービス(以下、SCSという)20など、一つ以上のサービスモジュールを含むように構成されている。
【0027】
なお、コントローラ6は予め定義されている関数により、アプリケーション層5からの処理要求を受信可能とするAPI28を有するように構成されている。OSは、アプリケーション層5およびコントローラ6の各ソフトウェアをプロセスとして並列実行する。
【0028】
NCS13のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
【0029】
例えばNCS13は、ネットワークを介して接続されるネットワーク機器とのデータ通信をhttpd(HyperText Transfer Protocol Daemon)により、HTTP(HyperText Transfer Protocol)で制御する。
【0030】
RS14のプロセスは、インターネットなどのネットワークを用いたサービスを行う。OCS33のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。FCS16のプロセスは、アプリケーション層5からPSTNまたはISDN網を利用したファックス送受信、バックアップ用のメモリで管理されている各種ファックスデータの登録/引用、ファックス読み取り、ファックス受信印刷などを行うためのAPIを提供する。
【0031】
ECS17のプロセスは、白黒レーザプリンタ25、カラーレーザプリンタ26、ハードウェアリソース24などのエンジン部の制御を行う。MCS18のプロセスは、メモリの取得および開放、HDの利用などのメモリ制御を行う。更新プログラム取得手段に対応するOUS19は、ネットワークからの通知により、プログラムをダウンロードし、メモリに展開する。
【0032】
プログラム更新手段に対応するSCS20のプロセスは、アプリケーション管理、操作部制御、システム画面表示、LED表示、ハードウェア資源管理、割り込みアプリケーション制御などの処理を行う。
【0033】
SRM21のプロセスは、SCS20と共にシステムの制御およびハードウェア資源4の管理を行うものである。例えばSRM21のプロセスは、白黒レーザプリンタ25やカラーレーザプリンタ26などのハードウェア資源4を利用する上位層からの獲得要求に従って調停を行い、実行制御する。
【0034】
具体的に、SRM21のプロセスは獲得要求されたハードウェア資源4が利用可能であるか(他の獲得要求により利用されていないかどうか)を判定し、利用可能であれば獲得要求されたハードウェア資源4が利用可能である旨を上位層に通知する。また、SRM21のプロセスは上位層からの獲得要求に対してハードウェア資源4を利用するためのスケジューリングを行い、要求内容(例えば、プリンタエンジンによる紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
【0035】
また、ハンドラ層8は後述するファックスコントロールユニット(以下、FCUという)の管理を行うファックスコントロールユニットハンドラ(以下、FCUHという)24と、プロセスに対するメモリの割り振り及びプロセスに割り振ったメモリの管理を行うイメージメモリハンドラ(以下、IMHという)23とを含む。SRM39およびFCUH40は、予め定義されている関数によりハードウェア資源4に対する処理要求を送信可能とするエンジンI/F27を利用して、ハードウェア資源4に対する処理要求を行う。
【0036】
このように、融合機1は、各アプリケーションで共通的に必要な処理をコントローラ6で一元的に処理することができる。次に、融合機1のハードウェア構成について説明する。
【0037】
図2は、本発明による融合機の一実施例のハードウェア構成図を示す。融合機1は、コントローラボード50と、オペレーションパネル39と、FCU40と、USBデバイス41と、IEEE1394デバイス42と、エンジン部43とを含む。
【0038】
また、コントローラボード50は、CPU31と、システムメモリ(MEM−P)32と、ノースブリッジ(以下、NBという)33と、サウスブリッジ(以下、SBという)34と、ASIC36と、ローカルメモリ(MEM−C)37と、HD38と、不揮発性記憶装置であるFLASH−ROM46を含む。
【0039】
オペレーションパネル39は、コントローラボード50のASIC36に接続されている。また、FCU40、USBデバイス41、IEEE1394デバイス42およびエンジン部43は、コントローラボード50のASIC36にPCIバスで接続されている。
【0040】
コントローラボード50は、ASIC36にローカルメモリ37、HD38などが接続されると共に、CPU31とASIC36とがCPUチップセットのNB33を介して接続されている。このように、NB33を介してCPU31とASIC36とを接続すれば、CPU31のインタフェースが公開されていない場合に対応できる。
【0041】
なお、ASIC36とNB33とはPCIバスを介して接続されているのでなく、AGP(Accelerated Graphics Port)35を介して接続されている。このように、図1のアプリケーション層5やコントローラ6を形成する一つ以上のプロセスを実行制御するため、ASIC36とNB33とを低速のPCIバスでなくAGP35を介して接続し、パフォーマンスの低下を防いでいる。
【0042】
CPU31は、融合機1の全体制御を行うものである。CPU31は、NCS13、RS14、OCS15、FCS16、ECS17、MCS18、OUS19、SCS20、SRM21、FCUH22およびIMH23をOS上にそれぞれプロセスとして起動して実行させると共に、アプリケーション層5を形成するプリンタアプリ9、コピーアプリ10、ファックスアプリ11、スキャナアプリ12を起動して実行させる。
【0043】
NB33は、CPU31、システムメモリ32、SB34およびASIC36を接続するためのブリッジである。システムメモリ32は、融合機1の描画用メモリなどとして用いるメモリである。SB34は、NB33とROM、PCIバス、周辺デバイスとを接続するためのブリッジである。また、ローカルメモリ37はコピー用画像バッファ、符号バッファとして用いるメモリである。
【0044】
ASIC36は、画像処理用のハードウェア要素を有する画像処理用途向けのICである。HD38は、画像データの蓄積、文書データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積などを行うためのストレージである。また、オペレーションパネル39は、オペレータからの入力操作を受け付けると共に、オペレータに向けた表示を行う操作部である。
【0045】
次に、図3を用いて、プログラムの融合機1における位置づけを説明する。
【0046】
最初に融合機1の全体の制御を行うコントローラボード50について説明する。コントローラボード50は、図1に示したプログラムが実行されるボードである。このコントローラボード50から、以下に説明するボードが接続される。
【0047】
融合機1に関する情報を、融合機1を操作するオペレータに対して表示する処理を行う操作パネルボード55は、オペレーションパネル39の制御を行うボードである。このボードには、図に示されるように操作パネルファーム61が搭載されている。そして、操作パネルボード55とコントローラボード50とは、通信をするために同期シリアル回線64で接続されている。なお、ファームは、ファームウェアを示す。
【0048】
次に、FCUボード51について説明する。このボードは、上述したファックスコントロールユニットである。そして、ボードには、図に示されるようにFCUファーム56が搭載されている。また、FCUボード51とコントローラボード50とは、通信をするためにPCIバス62で接続される。
【0049】
次に、エンジンボード52について説明する。このボードは、プロッタファー57やスキャナファーム58などのエンジン部のファームが搭載される。このエンジンボード52もコントローラボード50と通信をするためにPCIバス62で接続される。
【0050】
これらの各ボードは、コントローラ6により、リブートすることが可能である。
【0051】
このように接続された各ボードの立ち上げ時の処理を、図4を用いて説明する。図4には、コントローラボード50と、エンジンボード52と、FCUH22と、OCS19との間のシーケンス図を示している。なお、FCUH22は、FCUボード62の立ち上げを管理し、OCS19は、操作パネルボード55の立ち上げを管理している。
【0052】
まず、ステップS1とステップS2で、コントローラボード50及びエンジンボード52は、ブレーク信号の変化により互いに通信可能なことを確認する。そして、コントローラボード50は、ステップS3で、エンジンボード52に対し、コントローラと接続されたことを通知する。エンジンボード52も同様に、ステップS3で、コントローラボード50に対し、エンジンが接続したことを通知する。このとき、エンジンボード52は、搭載されているプログラムに関する情報も同時に送信する。
【0053】
FCUH22は、ステップS55で、FCUボード51が起動したことを確認すると、FCUボード51が起動したことと、FCUボード51に搭載されているプログラムに関する情報をコントローラボード50に送信する。また、OCS19も同様に、操作パネルボード55が起動すると、OCSが起動したことと、操作パネルボード55に搭載されているプログラムに関する情報を送信する。
【0054】
このように、各ボードの起動時に、コントローラボード50に対し、各ボードに搭載されているプログラムのバージョンなどの情報が送信される。
【0055】
なお、各プログラムの情報は、起動時ではなく、必要に応じてコントローラボード50が各ボードに対して要求しても良い。
【0056】
このように、図3における各ボードには、プログラムが搭載され、そのプログラムに基づき処理が実行される。
【0057】
そして、これらプログラムは、FLASH−ROMに記憶され、更新することが可能となっている。またFLASH−ROMには、図5に示されるように、プログラムブート領域と本来の処理を行うプログラム領域がセットで格納される。
【0058】
このブート領域について説明する。ブート領域は、図5に示されるROMマップのように、本来の処理を行うプログラム領域よりも前のアドレスに位置している。また、ブート領域には、ハードウェアの初期化や、プログラムの異常判定、OS、半角フォントなど、アプリケーションなどのプログラムが動作可能な状態にするためのプログラムやデータが格納されている。さらに、ブート領域には、プログラムを更新するためのプログラムも含まれる。
【0059】
次に、ダウンロードする更新プログラムについて、図6を用いて説明する。図6は、ダウンロードする更新プログラムが1つ以上含まれるプログラムデータのデータ構造を示している。
【0060】
プログラムデータは、図6に示されるように更新プログラムヘッダと、1つ以上の更新プログラム(更新プログラムA、…、更新プログラムN)からなる構造となっている。そして、それぞれの更新プログラムは、さらに個別更新プログラムヘッダと更新プログラム本体からなる構造となっている。
【0061】
このうち、更新プログラムヘッダは、全レングスと、全プログラム数と、任意データの3つのデータを有する。全レングスは、更新プログラムヘッダを除く全体のデータ長を表し、全プログラム数は、この更新プログラムデータに含まれる全ての更新プログラムの数を示す。任意データは、設計者が仕様などに応じて任意に使用できるデータ領域である。
【0062】
また、個別更新プログラムヘッダのプログラム種類は、例えばプリンタ用プログラムなど、プログラムの種類を表す。バージョンは、更新プログラムのバージョンを表す。レングスは更新プログラム本体のデータ長を表す。ブート領域バージョンは、上述したブート領域のバージョンを表す。機種IDは、更新プログラムが対応する機種のIDを表す。仕向けIDは、後述する仕向けのIDを表す。モジュールIDは、このプログラムのIDを表す。任意データは、先ほどと同様に設計者が仕様などに応じて任意に使用できるデータ領域である。
【0063】
このようなデータ構造により、融合機1は、ダウンロードする更新プログラムのバージョンなどが分かるようになっている。
【0064】
以下、更新プログラムを取得し、取得した更新プログラムでプログラムの更新を実行するかどうかを判断してプログラムを更新する処理を、フローチャートを用いて説明する。
【0065】
最初に、更新プログラムのブート領域のバージョンと、各ボードに搭載されたプログラムのうち、ブート領域のバージョンとが一致したプログラムを更新する処理について説明する。
【0066】
上述したように、ブート領域には、プログラムを更新するためのプログラムも含まれている。そのため、ブート領域の更新中に電源を落とされるなどして、ブート領域の更新に失敗すると、プログラムを更新するためのプログラムが失われるため、図5に示される領域全体のプログラムの復旧が不可能となる可能性がある。
【0067】
また、図5に示されるブート領域を更新せずに、プログラム領域のみを更新することも可能であるが、ブート領域には、プログラム領域の所定のアドレスを参照するプログラムも存在するため、ブート領域のバージョンが異なるプログラムは、更新することができない。
【0068】
したがって、ブート領域を更新する場合は、失敗しても復旧することが可能なサービスマンが融合機1をSP(Serviceman Program)モードで動作させ、設定手段に対応するオペレーションパネル39を操作し、強制的にブート領域を更新可能な強制更新設定にする。
【0069】
または、更新プログラムが有する任意データ(図6参照)に、ブート領域を更新する旨の情報を書き込むことで、コントローラ6が自動的に強制更新設定と判断して更新を行っても良い。
【0070】
次に、図7のフローチャートを用いて、ブート領域を含むプログラムの更新を行う処理について説明する。なお、このフローチャートの説明において、コントローラ6は、更新プログラム取得手段とプログラム更新手段とブート情報取得手段に対応する。
【0071】
更新プログラム取得段階に対応するステップS101でコントローラ6は、例えばネットワークに接続されているサーバからプログラムデータ(図6参照)を受信する。次に、コントローラ6は、ブート情報取得段階に対応するステップS102で、図8に示されるように、現状のFLASH−ROMに格納されているプログラムのブート領域のバージョンを取得する。この処理は、コントローラ6が、各ボードへブート領域のバージョンを要求するコマンドを発行することにより得られる。また、ブート領域のバージョンは、図4で説明したように、起動時に取得するようにしても良い。
【0072】
次に、コントローラ6は、ステップS103でプログラムデータから、ブート情報テーブルに対応するプログラム更新実行用データテーブルを生成する。
【0073】
この更新実行用データテーブルは、図9に示されるように、プログラム種類と、そのプログラムのバージョンと、受信プログラムデータのブート領域のバージョンと、現状のROMに記憶されているプログラムのブート領域のバージョンと、更新の実行状態とを示すものである。
【0074】
この実行状態には、「未実行」、「実行中」、「実行済み」が示される。「未実行」は、プログラムの更新を行なっていない状態を示す。「実行中」は、プログラムの更新を実行中である状態を示す、また、「実行済み」は、プログラムの更新の実行が済んだ状態を示す。以上のように、実行状態は、更新プログラムにより更新されるプログラムの更新状況を示す情報である。
【0075】
以上説明した更新実行用データテーブルを、コントローラプログラムを例として説明すると、バージョンが1.03であり、受信プログラムデータのブート領域のバージョンは、0x0Aであり、現状ROMブート領域バージョンも0x0Aとなっている。そして実行状態により、コントローラプログラムは、更新を実行していないことが分かる。
【0076】
フローチャートの説明に戻る。コントローラ6は、ステップS104でブート領域が異なるバージョンのプログラムの更新を実行する強制更新設定になっているかどうか判断する。強制更新設定になっている場合、コントローラ6はステップS106へ処理を進める。実行しない設定の場合、コントローラ6は、ステップS105で、更新実行用データテーブルから、受信プログラムデータのブート領域のバージョンと現状ROMブート領域のバージョンが異なるものを更新実行用データテーブルから外し、図10の更新対象プログラムテーブルに対応する更新実行用データテーブルを生成する。
【0077】
図10の更新実行用データテーブルは、図9の更新実行用データテーブルから、バージョンが異なるエンジンプログラムが外された更新実行用データテーブルとなる。
【0078】
コントローラ6は、プログラム更新段階に対応するステップS106で、未実行状態のプログラムのうち、更新実行用データテーブルの最上位のプログラムの更新を実行する。したがって、図10では、コントローラプログラムから更新が実行される。
【0079】
そして、コントローラ6は、ステップS107で、更新を実行したプログラムの実行状態を、「実行状態」に変更する。そして、更新が完了するとコントローラ6は、実行状態を「実行済み」に変更する。
【0080】
次に、コントローラ6は、ステップS108で、更新実行用データテーブルに登録されている全プログラムの更新が終了したかどうか判断する。終了していない場合、コントローラ6は、再びステップS106の処理を行う。終了した場合、コントローラ6は、ステップS109でリブートを行い、処理を終了する。
【0081】
次に、融合機1が有する識別情報である機種情報を用いて行われるプログラムの更新について説明する。更新プログラムが対応する機種と異なる機種の融合機に、その更新プログラムでプログラムを更新すると、誤動作する可能性が高い。
【0082】
次に、更新プログラムが対応する機種が異なる場合は、プログラムの更新を行わないようにする処理を、図11のフローチャートを用いて説明する。なお、このフローチャートの説明において、コントローラ6は、更新プログラム取得手段とプログラム更新手段と機種情報取得手段に対応する。
【0083】
更新プログラム取得段階に対応するステップS201で、コントローラ6は、サーバからプログラムデータを受信する。次に、コントローラ6は、機種情報参照段階に対応するステップS202で、当該機種の機種IDを参照する。この機種IDは、コントローラ6が予めデータとして有する。なお、この識別情報は、機種IDに限らず、製造番号などの情報であっても良い。
【0084】
ステップS203で、コントローラ6は、図12に示すプログラム更新実行用テーブルを生成する。
【0085】
この更新実行用データテーブルは、プログラム種類と、そのプログラムのバージョンと、受信プログラムデータの機種IDと、当該機種の機種IDと、更新の実行状態とを示すものである。
【0086】
この更新実行用データテーブルを、プリンタアプリプログラムを例として説明する。プリンタアプリの更新プログラムは、機種IDが0x1A、0x1B、0x1Cの3機種に対応している。また、当該機種IDは、0x1Bであることが分かる。したがって、プリンタアプリプログラムは更新可能である。
【0087】
フローチャートの説明に戻る。コントローラ6は、ステップS204で、更新実行用データテーブルから、当該機種IDが含まれないプログラムを外し、図13の更新対象プログラムテーブルに対応する更新実行用データテーブルを生成する。
【0088】
図13の更新実行用データテーブルは、図12の更新実行用データテーブルから、機種IDが異なるコントローラプログラムが外された更新実行用データテーブルとなる。
【0089】
コントローラ6は、更新プログラム取得段階に対応するステップS205で、未実行状態のプログラムのうち、更新実行用データテーブルの最上位のプログラムの更新を実行する。したがって、図13では、エンジンプログラムから更新が実行される。
【0090】
そして、コントローラ6は、ステップS206で、更新を実行したプログラムの実行状態を、「実行状態」に変更する。そして、更新が完了するとコントローラ6は、実行状態を「実行済み」に変更する。
【0091】
次に、コントローラ6は、ステップS207で、更新実行用データテーブルに登録されている全プログラムの更新が終了したかどうか判断する。終了していない場合、コントローラ6は、再びステップS205の処理を行う。終了した場合、コントローラ6は、ステップS208でリブートを行い、処理を終了する。
【0092】
次に、仕向け情報を用いて行われるプログラムの更新について説明する。仕向け情報とは、融合機1がどの地域で使用されるかを示す情報である。具体的に例を挙げると、仕向け情報とは、使用される地域が国内か、海外かどうかを示す情報である。海外であれば、言語や電圧なども異なるため、プログラムにも違いが生じる。そのため、仕向け情報が異なる場合は、プログラムを更新することができない。
【0093】
このように、更新プログラムが対応する仕向け情報が異なる場合は、プログラムの更新を行わないようにする処理を、図14のフローチャートを用いて説明する。なお、このフローチャートの説明において、コントローラ6は、更新プログラム取得手段とプログラム更新手段と仕向け情報取得手段に対応する。
【0094】
更新プログラム取得段階に対応するステップS301で、コントローラ6は、サーバからプログラムデータを受信する。次に、コントローラ6は、仕向け情報取得段階に対応するステップS302で、当該機種の仕向けIDを取得する。この仕向けIDは、図15に示されるように、プロッタファーム57が有するため、コントローラ6がプロッタファーム57へ仕向け情報を要求するコマンドを発行することにより得られる。なお、プロッタファーム57が仕向け情報を有するのは、プロッタが電圧に影響されやすいことが挙げられるが、特にプロッタファーム57でなくとも良い。
【0095】
次に、ステップS303で、コントローラ6は、図16に示すプログラム更新実行用テーブルを生成する。
【0096】
この更新実行用データテーブルは、プログラム種類と、そのプログラムのバージョンと、受信プログラムデータの仕向けIDと、当該機種の仕向けIDと、更新の実行状態とを示すものである。
【0097】
この更新実行用データテーブルを、プリンタアプリプログラムを例として説明する。プリンタアプリの更新プログラムは、仕向けIDが「0」、「1」であるので、国内と海外の両方に対応している。また、当該機種の仕向けIDは、「1」であるので海外であることが分かる。したがって、プリンタアプリプログラムは更新可能である。
【0098】
フローチャートの説明に戻る。コントローラ6は、ステップS304で、更新実行用データテーブルから、仕向けIDが含まれないプログラムを外し、図17の更新対象プログラムテーブルに対応する更新実行用データテーブルを生成する。
【0099】
図17の更新実行用データテーブルは、図16の更新実行用データテーブルから、仕向けIDが異なるエンジンプログラムと2つある操作部プログラムのうちの1つが外された更新実行用データテーブルとなる。
【0100】
コントローラ6は、プログラム更新段階に対応するステップS305で、未実行状態のプログラムのうち、更新実行用データテーブルの最上位のプログラムの更新を実行する。したがって、図17では、エンジンプログラムから更新が実行される。
【0101】
そして、コントローラ6は、ステップS306で、更新を実行したプログラムの実行状態を、「実行状態」に変更する。そして、更新が完了するとコントローラ6は、実行状態を「実行済み」に変更する。
【0102】
次に、コントローラ6は、ステップS307で、更新実行用データテーブルに登録されている全プログラムの更新が終了したかどうか判断する。終了していない場合、コントローラ6は、再びステップS305の処理を行う。終了した場合、コントローラ6は、ステップS308でリブートを行い、処理を終了する。
【0103】
次に、プログラム識別情報を用いて行われるプログラムの更新について説明する。なお、以下の説明では、プログラム識別情報をモジュールIDという。モジュールIDとは、各プログラムに割り当てられた固有の識別情報である。
【0104】
このモジュールIDにより、当該機種に最初から存在しないプログラムを新規に追加した際に、そのプログラムを書き込む領域がない場合、更新処理が異常となったり、書き込む領域がある場合、不正に機能拡張されることを防ぐことができる。
【0105】
また、融合機1は、図1に示したように、各アプリケーションやモジュールのやり取りで用いられるインタフェースが共通化されているため、機種が異なる場合でも、同一のモジュールIDを有するプログラムであれば、更新が可能となる。
【0106】
次に、更新プログラムが対応するモジュールIDが異なる場合は、プログラムの更新を行わないようにする処理を、図18のフローチャートを用いて説明する。なお、このフローチャートの説明において、コントローラ6は、更新プログラム取得手段とプログラム更新手段と識別情報取得手段に対応する。
【0107】
更新プログラム取得段階に対応するステップS401で、コントローラ6は、サーバからプログラムデータを受信する。
【0108】
次に、ステップS402で、コントローラ6は、図19に示すプログラム更新実行用テーブルを生成する。
【0109】
更新実行用データテーブルは、プログラム種類と、そのプログラムのバージョンと、受信プログラムデータのモジュールIDと、更新の実行状態とを示すものである。この更新実行用データテーブルにおいて、例えばスキャナエンジンプログラムのモジュールIDは、JP2CFa_escanである。
【0110】
次に、コントローラ6は、識別情報取得段階に対応するステップS403で、識別情報テーブルに対応する当該機種のプログラム構成情報を取得する。このプログラム構成情報は、各プログラムのモジュールIDを有するため、図20に示されるように、コントローラ6が各プログラムへモジュールIDを要求するコマンドを発行することにより得られる。
【0111】
このようにして得られたモジュールIDを用いて、コントローラ6は、図21に示されるプログラム構成情報を生成する。プログラム構成情報には、プログラム種類と、そのプログラムのバージョンと、モジュールIDとを示す情報である。
【0112】
次に、コントローラ6は、ステップS404で、更新実行用データテーブルから、当該機種のプログラム構成情報に含まれないプログラムを外し、図22の更新対象プログラムテーブルに対応する更新実行用データテーブルを生成する。
【0113】
図22の更新実行用データテーブルは、図19の更新実行用データテーブルから、ファックスアプリプログラムと2つある操作部プログラムのうちの1つが外された更新実行用データテーブルとなる。
【0114】
コントローラ6は、プログラム更新段階に対応するステップS405で、未実行状態のプログラムのうち、更新実行用データテーブルの最上位のプログラムの更新を実行する。したがって、図22では、プロッタエンジンプログラムから更新が実行される。
【0115】
そして、コントローラ6は、ステップS406で、更新を実行したプログラムの実行状態を、「実行状態」に変更する。そして、更新が完了するとコントローラ6は、実行状態を「実行済み」に変更する。
【0116】
次に、コントローラ6は、ステップS407で、更新実行用データテーブルに登録されている全プログラムの更新が終了したかどうか判断する。終了していない場合、コントローラ6は、再びステップS405の処理を行う。終了した場合、コントローラ6は、ステップS408でリブートを行い、処理を終了する。
【0117】
【発明の効果】
以上説明したように、本発明によれば、種々のプログラムが混在した更新プログラムであっても、プログラムを適正に更新することを可能とする画像形成装置、プログラム更新方法が得られる。
【図面の簡単な説明】
【図1】本発明による融合機の一実施例の構成図である。
【図2】本発明による融合機の一実施例のハードウェア構成図である。
【図3】各処理部とプログラムの位置づけを示す図である。
【図4】各ボードの起動を示すシーケンス図である。
【図5】ROMマップを示す図である。
【図6】プログラムデータのデータ構造を示す図である。
【図7】ブート領域のバージョンでプログラムを更新する処理を示す図である。
【図8】ブート領域のバージョンを取得する様子を示す図である。
【図9】プログラム更新実行用データテーブルを示す図である。
【図10】プログラム更新実行用データテーブルを示す図である。
【図11】機種IDでプログラムを更新する処理を示す図である。
【図12】プログラム更新実行用データテーブルを示す図である。
【図13】プログラム更新実行用データテーブルを示す図である。
【図14】仕向け情報でプログラムを更新する処理を示す図である。
【図15】仕向け情報を取得する様子を示す図である。
【図16】プログラム更新実行用データテーブルを示す図である。
【図17】プログラム更新実行用データテーブルを示す図である。
【図18】モジュールIDでプログラムを更新する処理を示す図である。
【図19】プログラム更新実行用データテーブルを示す図である。
【図20】モジュールIDを取得する様子を示す図である。
【図21】プログラム構成情報を示す図である。
【図22】プログラム更新実行用データテーブルを示す図である。
【符号の説明】
1…融合機
2…ソフトウェア群
3…融合機起動部
4…ハードウェア資源
5…アプリケーション層
6…コントローラ
7…コントロールサービス層
8…ハンドラ層
9…プリンタアプリ
10…コピーアプリ
11…ファックスアプリ
12…スキャナアプリ
13…ネットワークコントロールサービス(NCS)
14…リモートサービス(RS)
15…オペレーションパネルコントロールサービス(OCS)
16…ファックスコントロールサービス(FCS)
17…エンジンコントロールサービス(ECS)
18…メモリコントロールサービス(MCS)
19…オンデマンドアップデートサービス(OUS)
20…システムコントロールサービス(SCS)
21…システムリソースマネージャ(SRM)
22…ファックスコントロールユニットハンドラ(FCUH)
23…イメージメモリハンドラ(IMH)
24…ハードウェアリソース
25…白黒レーザプリンタ(B&W LP)
26…カラーレーザプリンタ(Color LP)
27…アプリケーションプログラムインターフェース(API)
28…エンジンI/F
30…コントローラ
31…CPU
32…システムメモリ(MEM−P)
33…ノースブリッジ(NB)
34…サウスブリッジ(SB)
35…AGP(Accelerated Graphics Port)
36…ASIC
37…ローカルメモリ(MEM−C)
38…ハードディスク装置(HD)
39…オペレーションパネル
40…ファックスコントロールユニット(FCU)
41…USBデバイス
42…IEEE1394デバイス
43…エンジン部
46…FLASH−ROM
50…コントローラボード
51…FCUボード
52…エンジンボード
55…操作パネルボード
56…FCUファーム
57…プロッタファーム
58…スキャナファーム
61…操作パネルファーム
62…PCIバス
63…シリアル回線
64…同期シリアル回線
Claims (10)
- 画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置において、
更新プログラムを取得する更新プログラム取得手段と、
前記プログラムを更新するために用いられるブート領域のバージョンを取得するブート情報取得手段と、
前記更新プログラムのブート領域のバージョンと、前記ブート情報取得手段が取得したブート領域のバージョンとに基づきプログラムを更新するプログラム更新手段と
を有することを特徴とする画像形成装置。 - 前記プログラム更新手段は、前記プログラムの更新が失敗した際に該プログラムの復旧が不可能となる可能性のあるプログラムは更新しないことを特徴とする請求項1に記載の画像形成装置。
- 前記プログラム更新手段は、前記プログラムの更新が失敗した際に該プログラムの復旧が不可能となる可能性のあるプログラムでも、更新を行うかどうかを定める強制更新設定に基づき、前記プログラムの更新を行うことを特徴とする請求項1に記載の画像形成装置。
- 前記強制更新設定を設定する設定手段を有することを特徴とする請求項3に記載の画像形成装置。
- 前記強制更新設定は、前記更新プログラムに基づき設定されることを特徴とする請求項3に記載の画像形成装置。
- 前記復旧が不可能となる可能性のあるプログラムは、前記プログラムの更新をするために用いられるプログラムであることを特徴とする請求項2から5のいずれか1項に記載の画像形成装置。
- ネットワークと接続するための通信手段をさらに有し、
前記更新プログラム取得手段は、前記通信手段により前記更新プログラムを取得することを特徴とする請求項1から6のいずれか1項に記載の画像形成装置。 - 前記ブート情報取得手段は、取得したブート領域のバージョンに基づいて、各プログラムのブート領域のバージョンを含むブート情報テーブルを生成することを特徴とする請求項1に記載の画像形成装置。
- 前記プログラム更新手段は、前記ブート情報テーブルのブート領域のバージョンと、更新プログラムのブート領域のバージョンとが一致したプログラムを含む更新対象プログラムテーブルを生成することを特徴とする請求項8に記載の画像形成装置。
- 画像形成処理で使用されるハードウェア資源と、画像形成に係る処理を行う1つ以上のプログラムとを有する画像形成装置のプログラム更新方法であって、
更新プログラムを取得する更新プログラム取得段階と、
前記プログラムを更新するために用いられるブート領域のバージョンを取得するブート情報取得段階と、
前記更新プログラムのブート領域のバージョンと、取得したブート領域のバージョンとが一致したプログラムを更新するプログラム更新段階と
を有することを特徴とするプログラム更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003019722A JP4237511B2 (ja) | 2003-01-29 | 2003-01-29 | 画像形成装置、プログラム更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003019722A JP4237511B2 (ja) | 2003-01-29 | 2003-01-29 | 画像形成装置、プログラム更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004234151A JP2004234151A (ja) | 2004-08-19 |
JP4237511B2 true JP4237511B2 (ja) | 2009-03-11 |
Family
ID=32949521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003019722A Expired - Fee Related JP4237511B2 (ja) | 2003-01-29 | 2003-01-29 | 画像形成装置、プログラム更新方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4237511B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006235789A (ja) * | 2005-02-23 | 2006-09-07 | Seiko Epson Corp | ネットワークに接続されたサーバからの情報のダウンロード制御 |
KR100586063B1 (ko) * | 2005-05-06 | 2006-06-08 | 주식회사 아이오셀 | 가변 크기이고 데이터의 갱신이 가능한 시스템 영역을 갖는플래시 메모리 데이터 구조, 그 플래시 메모리를 구비한usb 저장 장치 및 상기 시스템 영역의 제어 방법 |
JP6040767B2 (ja) * | 2012-12-28 | 2016-12-07 | 富士通株式会社 | 配信システム、配信方法、及びプログラム |
JP6255820B2 (ja) * | 2013-09-10 | 2018-01-10 | 株式会社リコー | 複合機、情報処理方法およびプログラム |
-
2003
- 2003-01-29 JP JP2003019722A patent/JP4237511B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004234151A (ja) | 2004-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4128516B2 (ja) | 画像形成装置、プログラム更新方法 | |
JP2008084304A (ja) | 画像形成装置、プログラム更新方法及びプログラム | |
JP2005269619A (ja) | 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体 | |
JP2004110779A (ja) | 画像形成装置 | |
JP4344203B2 (ja) | 画像形成装置および情報表示方法 | |
JP5095325B2 (ja) | 画像処理装置及び画像処理方法 | |
JP4394740B2 (ja) | 画像形成装置、方法、及びプログラム | |
JP5262495B2 (ja) | 電子機器,遠隔管理システム,制御方法,プログラム,および記録媒体 | |
JP2007080245A (ja) | 画像形成装置及び認証課金方法 | |
JP4237511B2 (ja) | 画像形成装置、プログラム更新方法 | |
JP4128506B2 (ja) | 画像形成装置およびアプリケーション情報取得方法 | |
JP4001531B2 (ja) | 画像形成装置 | |
JP4409992B2 (ja) | 画像形成装置、プログラム更新方法、及び更新用記憶媒体 | |
JP2007295371A (ja) | 画像形成装置及びコンピュータプログラム | |
JP4246540B2 (ja) | 画像形成装置およびプログラム実行方法 | |
JP4856622B2 (ja) | 画像形成装置、プログラム更新方法 | |
JP2004303209A (ja) | 画像形成装置、プログラム更新方法、及び更新用記憶媒体 | |
JP4676977B2 (ja) | 画像形成装置、アプリケーション情報取得方法、及びプログラム | |
US20090222928A1 (en) | Image processing apparatus, information processing method, and computer program product | |
JP4343547B2 (ja) | 画像形成装置、デバッグ情報記録方法 | |
JP2009194862A (ja) | 情報取得方法、画像形成装置、および画像形成システム | |
JP4276885B2 (ja) | 画像形成装置およびパス指定方法 | |
JP4021289B2 (ja) | 画像形成装置、記憶領域確保方法 | |
JP4485749B2 (ja) | 画像形成装置 | |
JP4677054B2 (ja) | 画像形成装置、プログラム、記録媒体、及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060105 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080704 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080812 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081009 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081202 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081218 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4237511 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111226 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111226 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121226 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131226 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |