(57)【要約】【課題】本発明は、オプションユニットのプログラムの更新を保証するとともに、ユーザやサービスマンによるオプションユニットの付け間違いによる誤動作を防止する情報処理装置を提供する。【解決手段】オプションユニットから取得したハードウェア識別子と機種識別子に基づいて、オプションユニットのプログラムと情報処理装置のプログラムとの機種の組み合わせが正しいかを判断し、機種の組み合わせが正しくないと判断したときには、オプションユニットのプログラムを本体に適合したものに更新が必要であることを通知する。そして、プログラム書き換えによりオプションユニットが正常に動作すると判断したときに、オプションユニットのプログラムを本体に適合したものに更新する。【選択図】図３
2015219565.tif 000002
【特許請求の範囲】
【請求項１】
特定の機能を有するオプションユニットがメインシステムに接続された情報処理装置において、
前記オプションユニットからハードウェアの識別情報を取得する第１の取得手段と、
前記第１の取得手段により取得されたハードウェアの識別情報に基づいて、前記オプションユニットが前記メインシステムに適合しているかを判断する第１の判断手段と、
前記第１の判断手段により前記メインシステムに適合していると判断された場合に、前記オプションユニットからプログラムの識別情報を取得する第２の取得手段と、
前記第２の取得手段により取得されたプログラムの識別情報に基づいて、前記オプションユニットのプログラムの機種と前記メインシステムのプログラムの機種が同一かを判断する第２の判断手段と、
前記第２の判断手段により前記プログラムの機種が同一であると判断された場合に、前記オプションユニットのプログラムと前記メインシステムのプログラムのバージョンを比較する比較手段と、
前記比較手段による比較の結果から前記オプションユニットのプログラムと前記メインシステムのプログラムのバージョンが異なる場合には、ユーザからの指示に応じて前記オプションユニットのプログラムを前記メインシステムに適合したものに更新する更新手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記比較手段による比較の結果から前記オプションユニットのプログラムと前記メインシステムのプログラムのバージョンが異なる場合には、前記オプションユニットのプログラムを前記メインシステムに適合したものに更新する必要があることをユーザに通知する第１の通知手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の判断手段により前記メインシステムに適合していないと判断された場合には、エラーをユーザに通知する第２の通知手段をさらに備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記オプションユニットの最新のプログラムと前記メインシステムの最新のプログラムを取得する第３の取得手段をさらに備え、
前記更新手段は、前記メインシステムのプログラムと前記オプションユニットのプログラムを前記第３の取得手段により取得された最新のプログラムに更新することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記情報処理装置が外部のサーバに接続されているか否かを判断する第３の判断手段と、
前記第３の判断手段により前記サーバと接続されていると判断されたときは、前記サーバから前記オプションユニットの最新のプログラムと前記メインシステムの最新のプログラムを取得する第３の取得手段とをさらに備え、
前記更新手段は、前記メインシステムのプログラムと前記オプションユニットのプログラムを前記第３の取得手段により取得された最新のプログラムに更新することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項６】
前記更新手段は、前記情報処理装置に接続可能なオプションユニットのプログラムをも更新することを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
特定の機能を有するオプションユニットがメインシステムに接続された情報処理装置のプログラムの更新方法において、
前記オプションユニットからハードウェアの識別情報を取得する第１の取得工程と、
前記第１の取得工程にて取得されたハードウェアの識別情報に基づいて、前記オプションユニットが前記メインシステムに適合しているかを判断する第１の判断工程と、
前記第１の判断工程にて前記メインシステムに適合していると判断された場合に、前記オプションユニットからプログラムの識別情報を取得する第２の取得工程と、
前記第２の取得工程にて取得されたプログラムの識別情報に基づいて、前記オプションユニットのプログラムの機種と前記メインシステムのプログラムの機種が同一かを判断する第２の判断工程と、
前記第２の判断工程にて前記プログラムの機種が同一であると判断された場合に、前記オプションユニットのプログラムと前記メインシステムのプログラムのバージョンを比較する比較工程と、
前記比較工程による比較の結果から前記オプションユニットのプログラムと前記メインシステムのプログラムのバージョンが異なる場合には、ユーザからの指示に応じて前記オプションユニットのプログラムを前記メインシステムに適合したものに更新する更新工程とを備えることを特徴とする更新方法。
【請求項８】
請求項７に記載の更新方法を情報処理装置に実行させるためのコンピュータに読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびそのプログラムの更新方法、並びにプログラムに関し、複合機等の機能を拡張するためのオプションユニットにおけるプログラムの更新技術に関する。
【背景技術】
【０００２】
一般的な複合機では、装置全体を制御するコントローラユニットにＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えるが、装置本体に接続して利用されるオプションユニットにも、それぞれＣＰＵを備えるものがある。オプションユニットのＣＰＵは、ＲＯＭ等に記憶されている各種機能に対応するプログラムを読み出して実行することにより、ＦＡＸ機能やフィニッシング機能等の各種オプション機能を実現する。そのため、装置本体にオプションユニットを接続する場合、コントローラユニット内のＣＰＵが実行するプログラムに適合するように、オプションユニット内のＣＰＵが実行するプログラムを更新する必要がある。
【０００３】
また、オプションユニットには、同じハードウェアの構成を有していても、当該オプションユニットのプログラムを書き換えることで、機能の異なる装置本体に接続して動作させるケースがある。
【０００４】
装置本体とオプションユニットのそれぞれのプログラムのバージョンの不一致による問題の発生を防ぐために、例えば特許文献１が提案されている。特許文献１では、カメラのクレードル側に装置本体の最新のファームを予めダウンロードしておき、カメラが接続された際にカメラのプログラムのバージョンが古かったときに、自動的にプログラムを更新するものである。
【０００５】
また、特許文献２では、車載機器と通信機器を連携動作させる場合、正しく動作する連携プログラムの組み合わせを通信機器からサーバに問い合わせ、各機器の版数の対応付けに基づいて適切なバージョンの連携プログラムを取得する。そして、バージョンアップを行うという方法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−００８８６４号公報
【特許文献２】特開２０１２−２０３８０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
オプションユニットでは、装置本体のハードウェア構成や機能の違いによって実現する動作が異なる場合があることから、動作の違いをオプションユニット側のプログラムを変更することにより対応する必要がある。例えば、フィニッシャユニットの場合、装置本体側のトナーの載り量や排紙速度の違いによって用紙のカールが発生して排紙トレイの積載性が悪化するのを防ぐために、用紙の搬送速度や紙間を制御するプログラムを変更することで対応している。スキャナユニットの場合は、装置本体側のプリント性能やスキャン速度の違いに対応するプログラムをそれぞれ用意する必要がある。
【０００８】
しかしながら、オプションユニットは、一般的にプログラムを記憶するＲＯＭの記憶容量が少ないことから、複数のプログラムを記憶させることが困難である。そのため、オプションユニットを機能の異なる装置本体に適応させるために、装置本体に対応するプログラムを必要に応じてＲＯＭに記憶させる必要がある。その結果、形状が同じでありながら、ＲＯＭに記憶されたプログラムの仕様が異なるオプションユニットを装置本体に誤接続した場合、所望の機能や性能を発揮することができないおそれがある。また、装置本体側のプログラムとオプションユニット側のプログラムとが適合しておらず、予期せぬ動作により故障する可能性もある。
【０００９】
上記特許文献１のように、クレードルに接続されたカメラのプログラムのバージョンが古かった場合に新しくするという方法は、カメラのプログラムを常に新しいバージョンに更新することができる。
【００１０】
しかしながら、特許文献１では、オプションユニットのプログラムが想定されたものと異なる場合にユーザに通知したり、必要に応じてプログラムを更新する制御は行わない。そのため、形状が同じオプションユニットに異なるプログラムを記憶させて異なる動作させるというケースに対応できない場合がある。
【００１１】
上記特許文献２のように、サーバと通信可能な機器が適切なプログラムの組み合わせをダウンロードして更新する方法は、ネットワークに接続されていない環境等において、適切な組み合わせにプログラムを更新できない場合がある。
【００１２】
本発明は、上記問題に鑑みて成されたものであり、オプションユニットのプログラムの更新を保証すると共に、ユーザやサービスマンによるオプションユニットの付け間違いによる誤動作を防止する技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明の情報処理装置は、特定の機能を有するオプションユニットがメインシステムに接続された情報処理装置において、前記オプションユニットからハードウェアの識別情報を取得する第１の取得手段と、前記第１の取得手段により取得されたハードウェアの識別情報に基づいて、前記オプションユニットが前記メインシステムに適合しているかを判断する第１の判断手段と、前記第１の判断手段により前記メインシステムに適合していると判断された場合に、前記オプションユニットからプログラムの識別情報を取得する第２の取得手段と、前記第２の取得手段により取得されたプログラムの識別情報に基づいて、前記オプションユニットのプログラムの機種と前記メインシステムのプログラムの機種が同一かを判断する第２の判断手段と、前記第２の判断手段により前記プログラムの機種が同一であると判断された場合に、前記オプションユニットのプログラムと前記メインシステムのプログラムのバージョンを比較する比較手段と、前記比較手段による比較の結果から前記オプションユニットのプログラムと前記メインシステムのプログラムのバージョンが異なる場合には、ユーザからの指示に応じて前記オプションユニットのプログラムを前記メインシステムに適合したものに更新する更新手段とを備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、オプションユニットのプログラムの更新を保証するとともに、ユーザやサービスマンによるオプションユニットの付け間違いによる誤動作を防止する。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係る情報処理装置の一例である複合機の概略構成を示すブロック図である。
【図２】コントローラユニットのＲＯＭに記憶されるプログラムの一例を示す図である。
【図３】複合機におけるオプションユニットのプログラムの更新処理の流れを示すフローチャートである。
【図４】操作部に表示される画面の一例を示す図であり、（ａ）図３のステップＳ３０９で表示されるファームウェアアップデート確認画面、（ｂ）図３のステップＳ３１４で表示されるエラー画面、（ｃ）オプションユニットのプログラムの更新設定画面を示す。
【図５】本発明の第２の実施形態におけるオプションユニットのプログラムの更新処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１７】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る情報処理装置の一例である複合機の概略構成を示すブロック図である。
【００１８】
図１において、複合機１００は、コントローラユニット１１０、操作部１３０、プリンタユニット１４０、スキャナユニット１５０、ＦＡＸユニット１６０、およびフィニッシャユニット１７０を備える。
【００１９】
コントローラユニット１１０は、装置全体を制御するための構成として、以下に示すものを備える。
【００２０】
ＣＰＵ１１１は、ＲＯＭ１１２に記憶されたプログラムをＲＡＭ１１３に読み出して実行する。ＲＯＭ１１２には、プログラムのほかに、ライセンスや機器構成情報、プログラムバージョンといった、機器情報も記憶されている。ハードディスクドライブ（ＨＤＤ）１１４には、例えば、外部から受信した画像データが記憶される。
【００２１】
ＣＰＵ１１１により実行されるプログラムには、プリント用アプリケーションプログラムが含まれる。このプリント用アプリケーションプログラムにより、ＨＤＤ１１４に記憶された画像データがプリンタユニット１４０によるプリントが可能な画像データに変換され、再度ＨＤＤ１１４に記憶される。また、ＣＰＵ１１１により実行されるプログラムには、スキャン用アプリケーションプログラムが含まれる。このスキャン用アプリケーションプログラムにより、スキャナユニット１５０にて画像データが読み取られると共に、読み取られた画像データがＨＤＤ１１４に記憶される。
【００２２】
イメージ解析ボード１１５は、スキャナユニット１５０で読み取られた画像データを解析し、当該画像データから複写禁止情報等を読み取り、そして、プリンタユニット１４０による画像データの印刷出力の可否等の指示をＣＰＵ１１１に伝達する。
【００２３】
操作部Ｉ／Ｆ１１６は、操作部１３０を介して複合機１００のユーザにより入力される指示をＣＰＵ１１１に伝達するためのＩ／Ｆである。また、操作部Ｉ／Ｆ１１６は、操作部１３０に表示される内容を切替えるための処理内容をＣＰＵ１１１から受信して操作部１３０に伝達する。
【００２４】
操作部１３０は、タッチパネル機能を有する液晶表示部やキーボードなどを備え、ユーザの操作指示を受け付ける。
【００２５】
プリンタＩ／Ｆ１１７は、コントローラユニット１１０とプリンタユニット１４０を接続するためのインターフェースである。
【００２６】
プリンタユニット１４０は、プリンタＩ／Ｆ１１７を介してＨＤＤ１１４から転送される画像データに基づいて用紙上に印刷を行う。
【００２７】
フィニッシャユニット１７０は、プリンタユニット１４０により印刷された用紙に対して各種のフィニッシング処理を行うものである。フィニッシング処理には、例えば、シートに対するステイプル処理、シートへのパンチ処理（穿孔処理）、中綴じ製本処理等が含まれる。
【００２８】
スキャナＩ／Ｆ１１８は、コントローラユニット１１０とスキャナユニット１５０を接続するためのインターフェースである。
【００２９】
スキャナユニット１５０は、原稿上の画像をＣＣＤ（ＣｈａｒｇｅＣｏｕｐｌｅｄＤｅｖｉｃｅ）等により構成されるラインセンサを用いて画像データとして読み取るものである。スキャナユニット１５０は、読み取った画像データをスキャナＩ／Ｆ１１８を介してＨＤＤ１１４に転送して記憶させる。ＨＤＤ１１４に記憶された画像データは、プリンタユニット１４０により印刷することが可能であり、スキャナユニット１５０により読み取った画像データをプリンタユニット１４０により印刷することにより、複写（コピー）処理が可能となる。
【００３０】
ＵＳＢ−ＨｏｓｔＩ／Ｆ１１９は、コントローラユニット１１０とＦＡＸユニット１６０を接続するためのインターフェースである。
【００３１】
ＦＡＸユニット１６０は、ＵＳＢ−ＨｏｓｔＩ／Ｆ１１８を介してＨＤＤ１１４から転送される画像データに基づいてＦＡＸ回線１８５を介したＦＡＸ送信を行う。また、ＦＡＸユニット１６０は、ＦＡＸ回線１８５を介して受信するデータに基づいて画像データを生成し、ＵＳＢ−ＨｏｓｔＩ／Ｆ１１９を介してＨＤＤ１１４に画像データを転送する。ＨＤＤ１１４に記憶された画像データは、プリンタユニット１４０により用紙上に印刷される。なお、ＵＳＢ−ＨｏｓｔＩ／Ｆ１１９は、外部ＵＳＢデバイス１８４とも接続可能である。外部ＵＳＢデバイス１８４は、例えばＵＳＢメモリやＵＳＢキーボードなどである。
【００３２】
ネットワークＩ／Ｆ１２０は、コントローラユニット１１０をＬＡＮ１８１に接続し、ＬＡＮ上のＰＣ１８２やサーバ１８３との通信を行う。
【００３３】
ＰＣ１８２は、複合機１００に対して、画像データの送信、Ｗｅｂブラウザ経由での機器の操作等が可能である。
【００３４】
サーバ１８３には、複合機等に必要な最新のプログラムが常にアップロードされており、複合機１００からの要求に応じて、最新のプログラムをダウンロードして更新することができる。本実施形態では、サーバ１８３から最新のプログラムを取得して、ＲＯＭに記憶されたプログラムの更新を行う形態について説明するが、サーバ１８３に接続することなく、プログラムを更新することも可能である。
【００３５】
複合機１００は、ＬＡＮ１８１を介してサーバ１８３に接続し、プログラムの更新に必要な更新ファイルをダウンロードすることができる。更新ファイルのダウンロード方法は、ＨＴＴＰ、ＦＴＰによる方法が好ましいが、プロトコルは限定されない。
【００３６】
プリンタユニット１４０、スキャナユニット１５０、ＦＡＸユニット１６０、およびフィニッシャユニット１７０は、ＣＰＵ１４１，１５１，１６１，１７１とＲＯＭ１４２，１５２，１６２，１７２を備える。これらは、コントローラユニット１１０内のＣＰＵ１１１やＲＯＭ１１２ほど規模は大きくはないが、それぞれのＣＰＵがＲＯＭに記憶されたプログラムを読み込んでデバイスの制御や他のデバイスとの通信を行う。プログラムのバージョンアップ時には、ＲＯＭ１４２，１５２，１６２，１７２に記憶されたプログラムも更新対象となり得る。
【００３７】
プリンタユニット１４０、スキャナユニット１５０、ＦＡＸユニット１６０、およびフィニッシャユニット１７０は、複合機１００本体に着脱可能に構成されている。なお、フィニッシャユニット１７０については、プリンタユニット１４０に対してのみ着脱可能に構成される。
【００３８】
複合機１００本体にオプションユニットが接続された場合、該オプションユニットのＲＯＭに記憶されたプログラムが、コントローラユニット１１０のＲＯＭ１１２に記憶されたプログラムに対して、保証された組み合わせにならない可能性がある。
【００３９】
そこで、複合機１００本体にオプションユニットが接続されたときには、オプションユニットのＲＯＭに記憶されたプログラムも更新する必要がある。なお、以下の説明では、プリンタユニット１４０、スキャナユニット１５０、ＦＡＸユニット１６０、およびフィニッシャユニット１７０をオプションユニットと総称する。
【００４０】
次に、コントローラユニット１１０のＣＰＵ１１１により実行されるプログラムについて図２を用いて説明する。
【００４１】
図２は、コントローラユニット１１０のＲＯＭ１１２に記憶されるプログラムの一例を示す図である。
【００４２】
図２において、メインシステム２１０には、複合機１００の各種機能を実現するためのプログラムが配置される。
【００４３】
操作部制御部２１１は、操作部Ｉ／Ｆ１１６、操作部１３０の制御を行うためのプログラムである。同様に、プリンタ制御部２１２は、プリンタＩ／Ｆ１１７、プリンタユニット１４０の制御を行うためのプログラムである。スキャナ制御部２１３は、スキャナＩ／Ｆ１１８、スキャナユニット１５０の制御を行うためのプログラムである。ＵＳＢ制御部２１４は、ＵＳＢ−ＨｏｓｔＩ／Ｆ１１９、ＵＳＢ−ＨｏｓｔＩ／Ｆ１１９に接続されたＦＡＸユニット１６０や外部ＵＳＢデバイス１８４の制御を行うためのプログラムである。
【００４４】
アプリケーション制御部２１５は、直接外部機器の制御を行わないが、複合機１００の各種機能を実現するためのプログラム群である。アプリケーション制御部２１５により実現される機能には、ｈｔｔｐｄ（ＨｙｐｅｒＴｅｘｔＴｒａｎｓｆｅｒＰｒｏｔｏｃｏｌＤｅａｍｏｎ）、ｌｐｄ（ＬｉｎｅＰｒｉｎｔｅｒＤｅａｍｏｎ）、Ｗｅｄブラウザ機能、機器情報配信機能等が含まれる。
【００４５】
ハードウェア識別部２１６は、複合機１００に接続されたオプションユニットがメインシステム２１０のプログラムに適合してきるかを判断する。具体的には、起動時にオプションユニット内のＲＯＭに記憶されたハードウェア識別子に基づいて、オプションユニットがメインシステム２１０のプログラムに適合しているか、すなわち正しく動作可能なハードウェア構成であるかどうかを判断する。ハードウェア識別子（ハードウェアの識別情報）は、オプションユニット内のＲＯＭの記憶容量や、対応可能な給排紙速度、排紙トレイの数等の構成により決定され、装置本体側の機能との組み合わせで正常に動作できるかを特定するために用いられる。
【００４６】
オプションユニットプログラム識別部２１７は、オプションユニット内のＲＯＭに記憶された機種識別子に基づいて、オプションユニット内のＲＯＭに記憶されたプログラムがメインシステム２１０のプログラムに適合しているかを判断する。上述したハードウェア識別子が、オプションユニットのハードウェア構成がメインシステム２１０のプログラムに適合するかを識別するための識別情報である。これに対して、機種識別子はオプションユニット内のプログラムがメインシステム２１０のどのプログラムに対応したものかを識別するためのプログラムの識別情報である。
【００４７】
プログラムバージョン比較部２１８は、オプションユニット内のＲＯＭに記憶されたプログラムと、オプションユニット用プログラム記憶部２２０に記憶されたプログラムとのバージョンの比較処理を行う。
【００４８】
プログラム更新処理部２１９は、プログラムの更新が必要と判断された場合に、コントローラユニット１１０内のＲＯＭ１１２およびオプションユニット内のＲＯＭに記憶されたプログラムの更新処理を行う。
【００４９】
オプションユニット用プログラム記憶部２２０には、オプションユニット用プログラムとして、プリンタユニット用プログラム２２１、フィニッシャユニット用プログラム２２２、スキャナユニット用プログラム２２３が配置されている。さらに、ＦＡＸユニット用プログラム２２４が配置されている。
【００５０】
オプションユニット用プログラムは、メインシステム２１０の各種制御部（２１１〜２１５）により実現される処理に適合されたものであり、複合機１００の出荷時に、その時点で最適なバージョンがオプションユニット用プログラム記憶部２２０に配置される。
【００５１】
ユーザからの指示に応じてプログラムの更新処理が実行された場合、複合機１００は、例えばサーバ１８３からメインシステム２１０の最新のプログラムと共に、オプションユニット用の最新のプログラムを取得する。そして、取得したメインシステム２１０のプログラムを最新のプログラムに更新されると共に、オプションユニット用プログラム記憶部２２０のオプションユニット用プログラムが最新のプログラムに更新される。
【００５２】
なお、コントローラユニット１１０に現在接続されていないが、接続可能なオプションユニットのオプションユニット用プログラムについても更新される。そうすることで、後にオプションユニットが追加で接続された場合に、接続されたオプションユニットのＲＯＭに記憶されたプログラムを最新のプログラムに更新することができる。
【００５３】
図３は、複合機１００におけるオプションユニットのプログラムの更新処理の流れを示すフローチャートである。本処理は、ＲＯＭ１１２から読み出されたプログラムをＣＰＵ１１１が実行することにより実現される。
【００５４】
まず、複合機１００本体の電源がＯＮにされると（ステップＳ３０１）、ＣＰＵ１１１は、オプションユニットの接続判定を行う（ステップＳ３０２）。オプションユニットの接続が確認できた場合は、ステップＳ３０３に進み、ＣＰＵ１１１は、オプションユニット内のＲＯＭに記憶された制御プログラムに含まれるハードウェア識別子を取得する。なお、ＣＰＵ１１１は、複数のオプションユニットの接続が確認できた場合には、各オプションユニットからハードウェア識別子を取得する。
【００５５】
次に、ステップＳ３０４では、ＣＰＵ１１１は、ハードウェア識別部２１６により、ステップＳ３０３で取得したオプションユニットのハードウェア識別子がメインシステム２１０の制御プログラムのハードウェア識別子と同一かどうかを判定する。ハードウェア識別子が同一でないと判定した場合、ＣＰＵ１１１は、間違ったオプションユニットが接続されていると判断し、ステップＳ３１４に進み、操作部１３０に図４（ｂ）に示すエラー画面を表示して本処理を終了する。
【００５６】
このように、オプションユニットがメインシステムと連携して動作させることができるハードウェア構成ではないと判断した場合にユーザにエラー通知がなされる。ユーザによる処理の選択ができず、装置本体を正しく動作させるためには、正しいオプションユニットを接続するか、オプションユニットの接続を停止する必要がある。このように、ユーザやサービスマンによるオプションユニットの付け間違いによる誤動作を防止することができる。
【００５７】
一方、ステップＳ３０４でハードウェア識別子が同一であると判定した場合はステップＳ３０５に進み、ＣＰＵ１１１は、オプションユニット内のＲＯＭに記憶された制御プログラムに含まれる機種識別子を取得する。
【００５８】
次に、ステップＳ３０６では、ＣＰＵ１１１は、オプションユニットプログラム識別部２１７により、ステップＳ３０５で取得したオプションユニットの機種識別子がメインシステム２１０の制御プログラムの機種識別子と同一かどうかを判定する。例えば、メインシステム２１０の制御プログラムの機種識別子が「機種Ａ」で、取得した機種識別子が「機種Ｂ」だった場合、ステップＳ３０６の判定はＮＯなのでステップＳ３０８に進む。一方、機種識別子が同一であると判定した場合はステップＳ３０７に進む。
【００５９】
メインシステムとオプションユニットの制御プログラムのハードウェア識別子が同一で機種識別子が同一ではなかった場合でも、制御プログラムの書き換えにより動作させることが可能である。この場合、複合機１００を正常に動作させるためには、オプションユニット内のＲＯＭに記憶された制御プログラムを「機種Ｂ用」から「機種Ａ用」に書き換える必要がある。
【００６０】
ステップＳ３０８では、ＣＰＵ１１１は、オプションユニット用プログラム記憶部２２０にオプションユニット用プログラムが記憶されているかどうかを判定する。何らかの問題により、オプションユニット用プログラムが記憶されていないと判定した場合は、ステップＳ３１４に進み、ＣＰＵ１１１は、操作部１３０に図４（ｂ）に示すエラー画面を表示して本処理を終了する。
【００６１】
ステップＳ３０８でオプションユニット用プログラム記憶部２２０にオプションユニット用プログラムが記憶されていると判定した場合はステップＳ３０９に進み、ＣＰＵ１１１は、操作部１３０に図４（ａ）に示す通知画面を表示する。
【００６２】
図４（ａ）に示す画面は、オプションユニットのプログラムを書き換えることで、メインシステムのプログラムと組み合わせて動作が可能になると判断した場合に表示する画面である。本実施形態では、更新ボタン４０１が配置する例を記載しており、機種不整合で使用を継続することを防止するため、キャンセルボタンやスキップボタン等は配置していない。図４（ａ）に示す画面を表示させることは、プログラム更新の必要性を通知し、バージョンアップ中に複合機１００の機能が一定時間使えなくなることを通知する目的がある。このように、プログラムが適合していないと判断されても、ハードウェア識別部２１６により適合していると判断されたときは、オプションユニット内のＲＯＭに記憶されたプログラムを適切に更新することで動作可能となる。
【００６３】
図３に戻り、ステップＳ３１３では、ＣＰＵ１１１は、プログラム更新処理部２１９により、オプションユニット内のＲＯＭに記憶されたプログラムの更新処理を行い、本処理を終了する。
【００６４】
ステップＳ３０７では、ステップＳ３０８と同様に、ＣＰＵ１１１は、オプションユニット用プログラム記憶部２２０にオプションユニット用プログラムが記憶されているかどうかを判定する。オプションユニット用プログラムが記憶されていなかった場合は、ステップＳ３０２に戻ってオプションユニットの接続判定が繰り返される。
【００６５】
一方、ステップＳ３０７でオプションユニット用プログラム記憶部２２０にオプションユニット用プログラムが記憶されていた場合はステップＳ３１０に進む。
【００６６】
ステップＳ３１０では、ＣＰＵ１１１は、プログラムバージョン比較部２１８により、メインシステム２１０のオプションユニット用プログラムとオプションユニット内のＲＯＭに記憶されたプログラムのバージョンの比較を行う。そして、プログラムのバージョンの組み合わせが正しいかどうかを判定する。プログラムのバージョンの組み合わせが正しいと判定した場合には本処理を終了する一方、正しくないと判定した場合には、ステップＳ３１１へ進む。そして、プログラムのバージョンの組み合わせが正しくない旨の通知画面（不図示）を操作部１３０に表示してユーザに通知する。
【００６７】
次に、ステップＳ３１２では、ＣＰＵ１１１は、操作部１３０を介してユーザから更新指示があったか否かを判定し、更新指示があった場合にはステップＳ３１３へ進む。
【００６８】
ステップＳ３１３では、ＣＰＵ１１１は、プログラム更新処理部２１９により、オプションユニット用プログラム記憶部２２０に記憶されたオプションユニット用プログラムと、オプションユニットのＲＯＭに記憶されたプログラムの更新処理を行う。
【００６９】
ステップＳ３１２で更新指示がなかった場合に、メインシステムのプログラムと、オプションユニットのＲＯＭに記憶されたプログラムの更新処理を実施せずにそのまま複合機１００の動作を継続する。なお、プログラムのバージョンの組み合わせが正しくない旨の通知画面が表示されているので、オプションユニットを接続したユーザがプログラムを更新する手段を有していれば、更新操作を行い、プログラムのバージョンの不整合を是正することができる。プログラムのバージョンの不整合が是正されない場合は、次回本体電源ＯＮ時に図３の処理が行われるため、再度ステップＳ３１１のプログラムのバージョンの組み合わせが正しくない旨の通知がなされる。
【００７０】
上記実施形態によれば、オプションユニットから取得したハードウェア識別子に基づいて、オプションユニットがメインシステムに適合しているかを判断する。メインシステムに適合していると判断した場合に、オプションユニットからプログラムの機種識別子を取得し、この機種識別子に基づいて、オプションユニットのプログラムの機種とメインシステムのプログラムの機種が同一かを判断する。プログラムの機種が同一であると判断された場合に、オプションユニットのプログラムとメインシステムのプログラムのバージョンを比較する。この比較の結果から、オプションユニットのプログラムとメインシステムのプログラムのバージョンが異なる場合には、ユーザからの指示に応じてオプションユニットのプログラムをメインシステムに適合したものに更新する。これにより、異なるプログラムを記憶させることで機能の異なる機種の動作を実現するオプションユニット用のプログラムの更新を保証すると共に、ユーザやサービスマンによるオプションユニットの付け間違いによる誤動作を防止する。また、本体とオプションユニット接続時に、プログラムの書き換えにより機器としての動作を保証できるので、オプションユニットの管理の効率化が期待できる。
【００７１】
上記実施形態では、図３のステップＳ３１２においてユーザから更新指示に応じてプログラムの更新処理がなされていたが、これに限定されるものではない。例えば、図４（ｃ）に示すような設定画面上でユーザにより予め設定された条件に応じてプログラムの更新判定を行う構成であってもよい。
【００７２】
図４（ｃ）は、オプションユニット内のＲＯＭに記憶されたプログラムのバージョンアップ／バージョンダウンの設定画面の一例を示す。
【００７３】
図４（ｃ）に示す設定画面において、ユーザは、メインシステム２１０のオプションユニット用プログラムの組み合わせを保証するようにする場合は、設定選択部６０１を操作して「バージョンアップ／バージョンダウンの両方で行う」を選択する。一方、意図して新しいバージョンのプログラムが記憶されたオプションユニットを接続した場合は、更新処理をしないようにするために設定選択部６０１を操作して「バージョンアップのみを行う」を選択する。さらに、メインシステムのオプションユニット用プログラムと、オプションユニット内のＲＯＭに記憶されたプログラムのバージョンの組み合わせを固定にしたい場合には、設定選択部６０１を操作して「更新しない」を選択する。また、既にオプションユニットの動作が確認でき、そのまま使用したい場合には、設定選択部６０１を操作して「更新しない」を選択する。
【００７４】
［第２の実施形態］
本発明の第２の実施形態は、上記第１の実施形態に対して、複合機１００がサーバ１８３から最新のプログラムを取得する工程が追加されている点が異なる。以下、第１の実施の形態と同様の部分については同一の符号を用いてその説明を省略し、上記第１の実施の形態と異なる点のみを説明する。
【００７５】
図５は、本発明の第２の実施形態におけるオプションユニットのプログラムの更新処理の流れを示すフローチャートである。本処理は、ＲＯＭ１１２から読み出されたプログラムをＣＰＵ１１１が実行することにより実現される。なお、図５のステップＳ７０１〜ステップＳ７０６は、図３のステップＳ３０１〜ステップＳ３０６と同様であることから、それらの説明を省略する。
【００７６】
ステップＳ７０７では、ＣＰＵ１１１は、複合機１００がサーバ１８３との間で通信可能に接続されているかどうかを判定する。サーバ１８３に接続されていると確認できた場合は、ステップＳ７１１に進む。
【００７７】
ステップＳ７１１では、ＣＰＵ１１１は、メインシステム２１０のプログラム及びオプションユニットのＲＯＭに記憶されたプログラムの最新プログラムを取得し、オプションユニット用プログラム記憶部２２０に保存して、ステップＳ７１２に進む。ステップＳ７１２以降は、図３のステップＳ３１０以降と同様であり、ステップＳ３０７でメインシステム側にオプションユニット用のプログラムが保持されていた場合と同様の処理を行う。サーバ１８３には、バージョンアップが必要な最新のプログラムが常にアップロードされていることから、メインシステム２１０及びオプションユニットのプログラムを最新のものに更新することができる。
【００７８】
ステップＳ７０８では、ステップＳ７０７と同様に、ＣＰＵ１１１は、複合機１００がサーバ１８３との間で通信可能に接続されているかどうかを判定する。サーバ１８３と接続されていると確認できた場合は、ステップＳ７０９に進み、ＣＰＵ１１１は、サーバ１８３から最新のプログラムを取得する。その後、ステップＳ７１５では、ＣＰＵ１１１は、プログラム更新処理部２１９により、オプションユニットのＲＯＭに記憶されたプログラムの更新処理を行う。
【００７９】
なお、ステップＳ７０７及びステップＳ７０８においてサーバ１８３との接続が確認されなかった場合は、図３のステップＳ３０７及びステップＳ３０８と同様に、そのまま終了して動作を継続させるか、エラー画面を表示するかの処理を行う。
【００８０】
ステップＳ７１０及びステップＳ７１６で操作部１３０に表示する画面は、図４（ａ）、図４（ｂ）の示す画面と同様となり、ユーザに対して、ステップＳ７１０ではプログラム更新処理の通知、ステップＳ７１６ではエラーの通知を行う。
【００８１】
上記実施形態によれば、上記第１の実施形態と同様の効果を得られる。
【００８２】
上記第１および第２の実施形態では、最初に装置本体の電源がＯＮされたときに、図３の処理が実行される場合について説明したが、処理の実施タイミングは新たなオプションユニットが接続されたことを検知した時点でもよい。
【００８３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００８４】
１００  複合機
１１０  コントローラユニット
１１１  ＣＰＵ
１１２  ＲＯＭ
１４０  プリンタユニット
１５０  スキャナユニット
１６０  ＦＡＸユニット
１７０  フィニッシャユニット
２１６  ハードウェア識別部
２１７  オプションユニットプログラム識別部
２２０  オプションユニット用プログラム記憶部
【図１】
2015219565.tif 000003
【図２】
2015219565.tif 000004
【図３】
2015219565.tif 000005
【図４】
2015219565.tif 000006
【図５】
2015219565.tif 000007