(57)【要約】      （修正有）【課題】専用のモジュール管理装置を設けることなく、３台以上の電子ユニットの互換性を判別する。【解決手段】版数情報取得処理で取得された各電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報の各々に基づいて、電子ユニット間の各々の互換性があるか否かを判別する（ステップ１６６〜１７６）。【効果】専用のモジュール管理装置を設けることなく、３台以上の電子ユニットの互換性を判別することができ、互換性がない場合には、互換性がないことをユーザに認識させることができる。【選択図】図９
2010009193.tif 000002
【特許請求の範囲】
【請求項１】
協働して動作すると共に、各々の電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報とを記憶した記憶手段を各々備えると共に、
少なくとも１つの電子ユニットが、各電子ユニットの前記記憶手段に記憶された前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報を取得する取得手段と、前記取得手段で取得された前記各電子ユニットの前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報の各々に基づいて、前記電子ユニット間の各々の互換性があるか否かを判別する判別手段と、を備えたＮ（Ｎ≧３）個の電子ユニット
を含む電子装置。
【請求項２】
前記少なくとも１つの電子ユニットが、前記判別手段によって互換性がないと判別された場合には、互換性がないことを報知するように報知手段を制御する報知制御手段を更に備えた請求項１記載の電子装置。
【請求項３】
協働して動作すると共に、各々の電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報とを記憶した記憶手段を各々備えると共に、
少なくとも１つの電子ユニットが、各電子ユニットの前記記憶手段に記憶された前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報を取得する取得手段と、前記取得手段で取得された前記各電子ユニットの前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報の各々に基づいて、前記電子ユニット間の各々の互換性があるか否かを判別する判別手段と、前記判別手段によって互換性がないと判別された場合には、互換性がないと判別された対応する電子ユニット間で互換性を有するように、該対応する電子ユニットの版数を変更する変更手段と、を備えたＮ（Ｎ≧３）個の電子ユニット
を含む電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置に関する。
【背景技術】
【０００２】
従来、専用のモジュール管理装置を設けることなく、協働して動作する２台の電子ユニットの互換性を判別する電子装置が知られている（例えば、特許文献１参照）。また、特許文献１記載の電子装置では、専用のモジュール管理装置を設けることなく、互換性の判別を行った後に、２台の電子ユニット間における互換性をとることを行っている。
【特許文献１】特開２００３−２５６９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、専用のモジュール管理装置を設けることなく、３台以上の電子ユニットの互換性を判別することができる電子装置を提供することを第１の目的とする。また、本発明の第２の目的は、専用のモジュール管理装置を設けることなく、３台以上の電子ユニット間における互換性をとることができる電子装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記第１の目的を達成するために、請求項１に記載の電子装置は、協働して動作すると共に、各々の電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報とを記憶した記憶手段を各々備えると共に、少なくとも１つの電子ユニットが、各電子ユニットの前記記憶手段に記憶された前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報を取得する取得手段と、前記取得手段で取得された前記各電子ユニットの前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報の各々に基づいて、前記電子ユニット間の各々の互換性があるか否かを判別する判別手段と、を備えたＮ（Ｎ≧３）個の電子ユニットを含んで構成されている。
【０００５】
また、請求項２に記載の電子装置は、請求項１記載の電子装置において、前記少なくとも１つの電子ユニットが、前記判別手段によって互換性がないと判別された場合には、互換性がないことを報知するように報知手段を制御する報知制御手段を更に備えるようにしたものである。
【０００６】
上記第２の目的を達成するために、請求項３に記載の発明の電子装置は、協働して動作すると共に、各々の電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報とを記憶した記憶手段を各々備えると共に、少なくとも１つの電子ユニットが、各電子ユニットの前記記憶手段に記憶された前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報を取得する取得手段と、前記取得手段で取得された前記各電子ユニットの前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報の各々に基づいて、前記電子ユニット間の各々の互換性があるか否かを判別する判別手段と、前記判別手段によって互換性がないと判別された場合には、互換性がないと判別された対応する電子ユニット間で互換性を有するように、該対応する電子ユニットの版数を変更する変更手段と、を備えたＮ（Ｎ≧３）個の電子ユニットを含んで構成されている。
【発明の効果】
【０００７】
請求項１の発明によれば、専用のモジュール管理装置を設けることなく、３台以上の電子ユニットの互換性を判別することができる、という効果が得られる。
【０００８】
請求項２の発明によれば、３台以上の電子ユニットの互換性がない場合には、互換性がないことをユーザに認識させることができる、という効果が得られる。
【０００９】
請求項３の発明によれば、専用のモジュール管理装置を設けることなく、３台以上の電子ユニット間における互換性をとることができる、という効果が得られる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、本発明の各実施の形態を詳細に説明する。なお、各実施の形態では、本発明を電子装置としてのプリンタ（画像形成装置）に適用した例について説明する。
【００１１】
［第１の実施の形態］
まず、第１の実施の形態について説明する。図１に示すように、本実施の形態に係る電子装置としてのプリンタ１０は、インタフェースユニット１２と、コントローラユニット１４と、プリンタエンジン制御ユニット１６と、プリンタエンジン１８と、ユーザ（操作者）からの指示を受け付けるためのタッチパネル、及び液晶等を備えた表示装置を含んで構成されたＵ／Ｉ（ユーザインタフェース）２０とを備えている。インタフェースユニット１２は、コントローラユニット１４の制御により、ホスト２２からの印刷情報（印刷データ）を受信して、受信した印刷データをプリンタエンジン制御ユニット１６に送信する。コントローラユニット１４は、Ｕ／Ｉ２０を介してユーザから受け付けた指示に応じて制御コマンドを生成し、生成した制御コマンドをインタフェースユニット１２及びプリンタエンジン制御ユニット１６に送信する。すなわち、コントローラユニット１４によって、インタフェースユニット１２及びプリンタエンジン制御ユニット１６が制御される。プリンタエンジン制御ユニット１６は、コントローラユニット１４の制御により、受信した印刷情報や制御コマンドに応じてプリンタエンジン１８を制御する。プリンタエンジン１８は、従来公知の電子写真機構で構成されており、プリンタエンジン１８の制御によって、入力された印刷情報に基づいた画像を記録媒体（例えば用紙）に形成して、画像が形成された記録媒体を出力する。これらのインタフェースユニット１２、コントローラユニット１４、及びプリンタエンジン制御ユニット１６の各電子ユニットは、各々別々の（プリント）ボードで構成されている。
【００１２】
インタフェースユニット１２は、ＣＰＵ（Central Processing Unit：プロセッサ）１２ａ、メモリ１２ｂ、及びインタフェース１２ｃを備えている。メモリ１２ｂには、インタフェースユニット１２の制御プログラムが記憶されている。
【００１３】
コントローラユニット１４は、ＣＰＵ１４ａ、メモリ１４ｂ、及びインタフェース１４ｃを備えている。メモリ１４ｂには、コントローラユニット１４の制御プログラムが記憶されている。
【００１４】
プリンタエンジン制御ユニット１６は、ＣＰＵ１６ａ、メモリ１６ｂ、及びインタフェース１６ｃを備えている。メモリ１６ｂには、プリンタエンジン制御ユニット１６の制御プログラムが記憶されている。
【００１５】
インタフェース１２ｃ、１４ｃ、１６ｃによって上記の各電子ユニット間で双方向通信可能となる。そして、インタフェースユニット１２、コントローラユニット１４、及びプリンタエンジン制御ユニット１６は、それぞれ他のユニットと協働して動作する。
【００１６】
インタフェースユニット１２の制御プログラムには、図２（Ａ）に示すように、自己のプログラムの版数（バージョン）を示す情報であるインタフェースユニット版数ＸＸＸＸが設けられている。また、本実施の形態のインタフェースユニット１２の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のコントローラユニット１４の制御プログラムの最小の版数を示す情報である相手方サポート版数ｙｙｙｙが設けられている。更に、本実施の形態のインタフェースユニット１２の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のプリンタエンジン制御ユニット１６の制御プログラムの最小の版数を示す情報である相手方サポート版数ｚｚｚｚが設けられている。例えば、本実施の形態では、最新バージョンほど、大きい値を設定した場合、相手方サポート版数の値ｙｙｙｙは、コントローラユニット１４の制御プログラムがｙｙｙｙ以上の版数であれば、インタフェースユニット１２の制御プログラムが、相手方のプログラムであるコントローラユニット１４の制御プログラムとの整合性（サポート性）はあると規定することにより、インタフェースユニット１２がコントローラユニット１４との整合性があると規定する。また、同様に、本実施の形態では、相手方サポート版数ｚｚｚｚは、プリンタエンジン制御ユニット１６の制御プログラムがｚｚｚｚ以上の版数であれば、インタフェースユニット１２の制御プログラムが、相手方のプログラムであるプリンタエンジン制御ユニット１６の制御プログラムとの整合性があると規定することにより、インタフェースユニット１２がプリンタエンジン制御ユニット１６との整合性があると規定する。
【００１７】
コントローラユニット１４の制御プログラムには、図２（Ｂ）に示すように、自己のプログラムの版数を示す情報であるコントローラユニット版数ＹＹＹＹが設けられている。また、本実施の形態のコントローラユニット１４の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のインタフェースユニット１２の制御プログラムの最小の版数を示す情報である相手方サポート版数ｘｘｘｘが設けられている。更に、本実施の形態のコントローラユニット１４の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のプリンタエンジン制御ユニット１６の制御プログラムの最小の版数を示す情報である相手方サポート版数ｚ´ｚ´ｚ´ｚ´が設けられている。例えば、本実施の形態では、最新バージョンほど、大きい値を設定した場合、相手方サポート版数の値ｘｘｘｘは、インタフェースユニット１２の制御プログラムがｘｘｘｘ以上の版数であれば、コントローラユニット１４の制御プログラムが、相手方のプログラムであるインタフェースユニット１２の制御プログラムとの整合性があると規定することにより、コントローラユニット１４が、インタフェースユニット１２との整合性があると規定する。また、同様に、本実施の形態では、相手方サポート版数ｚ´ｚ´ｚ´ｚ´は、プリンタエンジン制御ユニット１６の制御プログラムがｚ´ｚ´ｚ´ｚ´以上の版数であれば、コントローラユニット１４の制御プログラムが、相手方のプログラムであるプリンタエンジン制御ユニット１６の制御プログラムとの整合性があると規定することにより、コントローラユニット１４が、プリンタエンジン制御ユニット１６との整合性があると規定する。
【００１８】
プリンタエンジン制御ユニット１６の制御プログラムには、図２（Ｃ）に示すように、自己のプログラムの版数を示す情報であるコントローラユニット版数ＺＺＺＺが設けられている。また、本実施の形態のプリンタエンジン制御ユニット１６の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のインタフェースユニット１２の制御プログラムの最小の版数を示す情報である相手方サポート版数ｘ´ｘ´ｘ´ｘ´が設けられている。更に、本実施の形態のプリンタエンジン制御ユニット１６の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のコントローラユニット１４の制御プログラムの最小の版数を示す情報である相手方サポート版数ｙ´ｙ´ｙ´ｙ´が設けられている。例えば、本実施の形態では、最新バージョンほど、大きい値を設定した場合、相手方サポート版数の値ｘ´ｘ´ｘ´ｘ´は、インタフェースユニット１２の制御プログラムがｘ´ｘ´ｘ´ｘ´以上の版数であれば、プリンタエンジン制御ユニット１６の制御プログラムが、相手方のプログラムであるインタフェースユニット１２の制御プログラムとの整合性があると規定することにより、プリンタエンジン制御ユニット１６が、インタフェースユニット１２との整合性があると規定する。また、同様に、本実施の形態では、相手方サポート版数ｙ´ｙ´ｙ´ｙ´は、コントローラユニット１４の制御プログラムがｙ´ｙ´ｙ´ｙ´以上の版数であれば、プリンタエンジン制御ユニット１６の制御プログラムが、相手方のプログラムであるコントローラユニット１４の制御プログラムとの整合性があると規定することにより、プリンタエンジン制御ユニット１６が、コントローラユニット１４との整合性があると規定する。
【００１９】
なお、本実施の形態では、各ユニット間で互いに整合性がある場合には、このユニット間は互換性があると規定する。例えば、インタフェースユニット１２がコントローラユニット１４との整合性があり、かつコントローラユニット１４がインタフェースユニット１２との整合性がある場合には、インタフェースユニット１２とコントローラユニット１４とは互換性があると規定する。
【００２０】
次に、例えば、インタフェースユニット１２、コントローラユニット１４、及びプリンタエンジン制御ユニット１６の少なくとも１つの電子ユニットの交換後、インタフェースユニット１２の制御プログラム、コントローラユニット１４の制御プログラム、及びプリンタエンジン制御ユニット１６の制御プログラムの起動時（すなわち起動が開始された際）に実行される版数情報取得処理（図３参照）及び互換性検証処理（図３参照）について説明する。なお、本実施の形態では、この版数情報取得処理及び互換性検証処理をインタフェースユニット１２のＣＰＵ１２ａが実行する例について説明するが、インタフェースユニット１２のＣＰＵ１２ａ、コントローラユニット１４のＣＰＵ１４ａ、及びプリンタエンジン制御ユニット１６のＣＰＵ１６ａの少なくとも１つのＣＰＵ（すなわち少なくとも１つの電子ユニット）が同様の処理を実行してもよい。
【００２１】
図３に示すように、まずステップ１００で、版数情報取得処理を実行する。この版数情報取得処理について図４を参照して説明すると、まずステップ１１０でコントローラユニット版数ＹＹＹＹをインタフェースユニット１２に送信する要求を、コントローラユニット１４に出力（送信）する。
【００２２】
ここで、コントローラユニット１４がこの要求を受信すると、コントローラユニット１４（のＣＰＵ１４ａ）は、図５（Ａ）に示す版数情報応答処理を実行する。この版数情報応答処理について図５（Ａ）を参照して説明すると、まずステップ１１２で自身（自己）のコントローラユニット版数ＹＹＹＹを取得する。
【００２３】
次のステップ１１４では、上記ステップ１１２で取得されたコントローラユニット版数ＹＹＹＹを、インタフェースユニット１２に出力する。これにより、インタフェースユニット１２によって、コントローラユニット１４からコントローラユニット版数ＹＹＹＹが受信される。そして、版数情報応答処理を終了する。
【００２４】
次のステップ１１６（図４参照）では、コントローラユニット１４からコントローラユニット版数ＹＹＹＹを受信するまで待機し、コントローラユニット版数ＹＹＹＹを受信した場合には次のステップ１１８へ進む。
【００２５】
次のステップ１１８では、変数Ｐ２（２）にコントローラユニット版数ＹＹＹＹの値をセット（設定）する。
【００２６】
次のステップ１２０では、プリンタエンジン制御ユニット版数ＺＺＺＺをインタフェースユニット１２に送信する要求を、コントローラユニット１４に出力する。
【００２７】
ここで、コントローラユニット１４がこの要求を受信すると、コントローラユニット１４は、図５（Ｂ）に示す版数情報出力処理を実行する。この版数情報出力処理について図５（Ｂ）を参照して説明すると、まずステップ１２２で、プリンタエンジン制御ユニット版数ＺＺＺＺをコントローラユニット１４に送信する要求を、プリンタエンジン制御ユニット１６に出力する。ここで、プリンタエンジン制御ユニット１６がこの要求を受信すると、プリンタエンジン制御ユニット１６は、図６（Ａ）に示す版数情報応答処理を実行する。この版数情報応答処理について図６（Ａ）を参照して説明すると、まずステップ１２４で自身のプリンタエンジン制御ユニット版数ＺＺＺＺを取得する。そして、次のステップ１２６では、上記ステップ１２４で取得されたプリンタエンジン制御ユニット版数ＺＺＺＺを、コントローラユニット１４に出力する。これにより、コントローラユニット１４によって、プリンタエンジン制御ユニット１６からプリンタエンジン制御ユニット版数ＺＺＺＺが受信される。そして、版数情報応答処理を終了する。
【００２８】
次のステップ１２８（図５（Ｂ）参照）では、プリンタエンジン制御ユニット１６からプリンタエンジン制御ユニット版数ＺＺＺＺを受信するまで待機し、プリンタエンジン制御ユニット版数ＺＺＺＺを受信した場合には次のステップ１３０へ進む。
【００２９】
ステップ１３０では、受信したプリンタエンジン制御ユニット版数ＺＺＺＺを、インタフェースユニット１２に出力する。これにより、インタフェースユニット１２によって、コントローラユニット１４からプリンタエンジン制御ユニット版数ＺＺＺＺが受信される。すなわち、これにより、インタフェースユニット１２は、コントローラユニット１４を介して、プリンタエンジン制御ユニット１６からプリンタエンジン制御ユニット版数ＺＺＺＺを受信する。そして、版数情報出力処理を終了する。なお、インタフェースユニット１２は、直接プリンタエンジン制御ユニット１６からプリンタエンジン制御ユニット版数ＺＺＺＺを取得するようにしてもよい。
【００３０】
次のステップ１３２（図４参照）では、コントローラユニット１４からプリンタエンジン制御ユニット版数ＺＺＺＺを受信するまで待機し、プリンタエンジン制御ユニット版数ＺＺＺＺを受信した場合には次のステップ１３４へ進む。
【００３１】
次のステップ１３４では、変数Ｐ３（３）にプリンタエンジン制御ユニット版数ＺＺＺＺの値をセット（設定）する。
【００３２】
次のステップ１３６では、相手方サポート版数ｘｘｘｘ及び相手方サポート版数ｚ´ｚ´ｚ´ｚ´をインタフェースユニット１２に送信する要求を、コントローラユニット１４に出力（送信）する。
【００３３】
ここで、コントローラユニット１４がこの要求を受信すると、コントローラユニット１４は、図７（Ａ）に示す相手方サポート版数情報応答処理を実行する。この版数情報応答処理について図７（Ａ）を参照して説明すると、まずステップ１３８で自身の相手方サポート版数ｘｘｘｘ及び相手方サポート版数ｚ´ｚ´ｚ´ｚ´を取得する。
【００３４】
次のステップ１４０では、上記ステップ１３８で取得された相手方サポート版数ｘｘｘｘ及び相手方サポート版数ｚ´ｚ´ｚ´ｚ´を、インタフェースユニット１２に出力する。これにより、インタフェースユニット１２によって、コントローラユニット１４から相手方サポート版数ｘｘｘｘ及び相手方サポート版数ｚ´ｚ´ｚ´ｚ´が受信される。そして、相手方サポート版数情報応答処理を終了する。
【００３５】
次のステップ１４２（図４参照）では、コントローラユニット１４から相手方サポート版数ｘｘｘｘ及び相手方サポート版数ｚ´ｚ´ｚ´ｚ´を受信するまで待機し、相手方サポート版数ｘｘｘｘ及び相手方サポート版数ｚ´ｚ´ｚ´ｚ´を受信した場合には次のステップ１４４へ進む。
【００３６】
次のステップ１４４では、変数Ｐ２（１）に相手方サポート版数ｘｘｘｘの値をセットすると共に、変数Ｐ２（３）に相手方サポート版数ｚ´ｚ´ｚ´ｚ´の値をセットする。
【００３７】
次のステップ１４６では、相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´をインタフェースユニット１２に送信する要求を、コントローラユニット１４に出力（送信）する。
【００３８】
ここで、コントローラユニット１４がこの要求を受信すると、コントローラユニット１４は、図７（Ｂ）に示す相手方サポート版数情報出力処理を実行する。この相手方サポート版数情報出力処理について図７（Ｂ）を参照して説明すると、まずステップ１４８で、相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´をコントローラユニット１４に送信する要求を、プリンタエンジン制御ユニット１６に出力する。プリンタエンジン制御ユニット１６がこの要求を受信すると、プリンタエンジン制御ユニット１６は、図６（Ｂ）に示す相手方サポート版数情報応答処理を実行する。この相手方サポート版数情報応答処理について図６（Ｂ）を参照して説明すると、まずステップ１５０で自身の相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´を取得する。そして、次のステップ１５２では、上記ステップ１５０で取得された相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´を、コントローラユニット１４に出力する。これにより、コントローラユニット１４によって、プリンタエンジン制御ユニット１６から相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´が受信される。そして、相手方サポート版数情報応答処理を終了する。
【００３９】
次のステップ１５４（図７（Ｂ）参照）では、プリンタエンジン制御ユニット１６から相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´を受信するまで待機し、相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´を受信した場合には次のステップ１５６へ進む。
【００４０】
ステップ１５６では、受信した相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´を、インタフェースユニット１２に出力する。これにより、インタフェースユニット１２によって、コントローラユニット１４から相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´が受信される。すなわち、これにより、インタフェースユニット１２は、コントローラユニット１４を介して、プリンタエンジン制御ユニット１６から相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´を受信する。そして、相手方サポート版数情報出力処理を終了する。なお、インタフェースユニット１２は、直接プリンタエンジン制御ユニット１６から相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´を取得してもよい。
【００４１】
次のステップ１５８（図４参照）では、コントローラユニット１４から相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´を受信するまで待機し、相手方サポート版数ｘ´ｘ´ｘ´ｘ´及び相手方サポート版数ｙ´ｙ´ｙ´ｙ´を受信した場合には次のステップ１６０へ進む。
【００４２】
次のステップ１６０では、変数Ｐ３（１）に相手方サポート版数ｘ´ｘ´ｘ´ｘ´の値をセット（設定）すると共に、変数Ｐ３（２）に相手方サポート版数ｙ´ｙ´ｙ´ｙ´の値をセットする。
【００４３】
次のステップ１６２では、自身のインタフェースユニット版数ＸＸＸＸ、並びに相手方サポート版数ｘｘｘｘ及び相手方サポート版数ｙｙｙｙを取得する。
【００４４】
次のステップ１６４では、変数Ｐ１（１）に、上記ステップ１６２で取得されたインタフェースユニット版数ＸＸＸＸをセットし、変数Ｐ１（２）に、上記ステップ１６２で取得された相手方サポート版数ｘｘｘｘをセットし、変数Ｐ１（３）に、上記ステップ１６２で取得された相手方サポート版数ｙｙｙｙをセットする。そして、版数情報取得処理を終了する。
【００４５】
上記版数情報取得処理をインタフェースユニット１２が実行したことにより、インタフェースユニット１２は、各電子ユニット（１２、１４、１６）の記憶手段としてのメモリ（１２ｂ、１４ｂ、１６ｂ）に記憶された自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報を取得することができる。これにより、インタフェースユニット１２のメモリ１２ｂには、図８に示すように、各値がセットされた各変数が記憶される。すなわち、変数Ｐ１（１）にインタフェースユニット版数ＸＸＸＸ、変数Ｐ１（２）に相手方サポート版数ｙｙｙｙ、変数Ｐ１（３）に相手方サポート版数ｚｚｚｚ、変数Ｐ２（１）に相手方サポート版数ｘｘｘｘ、変数Ｐ２（２）にコントローラユニット版数ＹＹＹＹ、変数Ｐ２（３）に相手方サポート版数ｚ´ｚ´ｚ´ｚ´、変数Ｐ３（１）に相手方サポート版数ｘ´ｘ´ｘ´ｘ´、変数Ｐ３（２）に相手方サポート版数ｙ´ｙ´ｙ´ｙ´、及び変数Ｐ３（３）にエンジンプリンタ制御ユニット版数ＺＺＺＺがセットされ、これらの変数がメモリ１２ｂに記憶される。
【００４６】
次のステップ１０２（図３参照）では、互換性検証処理を実行する。この互換性検証処理について図９を参照して説明すると、まずステップ１６６で変数Ｐ１（１）の値が変数Ｐ２（１）の値以上であるか否かを判定する。すなわち大小比較をしている。
【００４７】
ステップ１６６で、変数Ｐ１（１）の値が変数Ｐ２（１）の値以上であると判定された場合には、コントローラユニット１４が、インタフェースユニット１２との整合性があると判断して、次のステップ１６８へ進む。一方、ステップ１６６で、変数Ｐ１（１）の値が変数Ｐ２（１）の値以上でないと判定された場合には、コントローラユニット１４が、インタフェースユニット１２との整合性がなく、インタフェースユニット１２とコントローラユニット１４との互換性がないと判断して、次のステップ１８２へ進む。
【００４８】
ステップ１６８では、変数Ｐ１（１）の値が変数Ｐ３（１）の値以上であるか否かを判定する。
【００４９】
ステップ１６８で変数Ｐ１（１）の値が変数Ｐ３（１）の値以上であると判定された場合には、プリンタエンジン制御ユニット１６が、インタフェースユニット１２との整合性があると判断して、次のステップ１７０へ進む。一方、ステップ１６８で、変数Ｐ１（１）の値が変数Ｐ３（１）の値以上でないと判定された場合には、プリンタエンジン制御ユニット１６が、インタフェースユニット１２との整合性がなく、インタフェースユニット１２とプリンタエンジン制御ユニット１６との互換性がないと判断して、次のステップ１８２へ進む。
【００５０】
ステップ１７０では、変数Ｐ２（２）の値が変数Ｐ１（２）の値以上であるか否かを判定する。
【００５１】
ステップ１７０で変数Ｐ２（２）の値が変数Ｐ１（２）の値以上であると判定された場合には、インタフェースユニット１２が、コントローラユニット１４との整合性があると判断して、次のステップ１７２へ進む。一方、ステップ１７０で、変数Ｐ２（２）の値が変数Ｐ１（２）の値以上でないと判定された場合には、インタフェースユニット１２が、コントロールユニット１４との整合性がなく、インタフェースユニット１２とコントロールユニット１４との互換性がないと判断して、次のステップ１８２へ進む。
【００５２】
ステップ１７２では、変数Ｐ２（２）の値が変数Ｐ３（２）の値以上であるか否かを判定する。
【００５３】
ステップ１７２で変数Ｐ２（２）の値が変数Ｐ３（２）の値以上であると判定された場合には、プリンタエンジン制御ユニット１６が、コントローラユニット１４との整合性があると判断して、次のステップ１７４へ進む。一方、ステップ１７２で、変数Ｐ２（２）の値が変数Ｐ３（２）の値以上でないと判定された場合には、プリンタエンジン制御ユニット１６が、コントロールユニット１４との整合性がなく、プリンタエンジン制御ユニット１６とコントロールユニット１４との互換性がないと判断して、次のステップ１８２へ進む。
【００５４】
ステップ１７４では、変数Ｐ３（３）の値が変数Ｐ１（３）の値以上であるか否かを判定する。
【００５５】
ステップ１７４で変数Ｐ３（３）の値が変数Ｐ１（３）の値以上であると判定された場合には、インタフェースユニット１２が、プリンタエンジン制御ユニット１６との整合性があると判断して、次のステップ１７６へ進む。一方、ステップ１７４で、変数Ｐ３（３）の値が変数Ｐ１（３）の値以上でないと判定された場合には、インタフェースユニット１２が、プリンタエンジン制御ユニット１６との整合性がなく、インタフェースユニット１２とプリンタエンジン制御ユニット１６との互換性がないと判断して、次のステップ１８２へ進む。
【００５６】
ステップ１７６では、変数Ｐ３（３）の値が変数Ｐ２（３）の値以上であるか否かを判定する。
【００５７】
ステップ１７６で変数Ｐ３（３）の値が変数Ｐ２（３）の値以上であると判定された場合には、コントローラユニット１４が、プリンタエンジン制御ユニット１６との整合性があり、この場合では、全ての電子ユニット間で互換性があると判断して、次のステップ１７８へ進む。一方、ステップ１７６で、変数Ｐ３（３）の値が変数Ｐ２（３）の値以上でないと判定された場合には、コントローラユニット１４が、プリンタエンジン制御ユニット１６との整合性がなく、コントローラユニット１４とプリンタエンジン制御ユニット１６との互換性がないと判断して、次のステップ１８２へ進む。
【００５８】
ステップ１７８では、互換性があることを示す検証結果（例えば、「互換性あり」のメッセージ）をコントローラユニット１４に通知（送信）する。
【００５９】
次のステップ１８０では、インタフェースユニット１２の制御プログラムを正常起動させる。そして、互換性検証処理を終了する。
【００６０】
一方、ステップ１８２に進んだ場合には、互換性がないことを示す検証結果（例えば、「互換性なし」のメッセージ）をコントローラユニット１４に通知（送信）する。
【００６１】
次のステップ１８４では、互換性がないことを示す情報（例えば「互換性なし」の情報）が表示（エラー表示）されるように、コントローラユニット１４を介してＵ／Ｉ２０の表示を制御する。これにより、Ｕ／Ｉ２０に、互換性がないことを示す情報が表示される。
【００６２】
次のステップ１８６では、インタフェースユニット１２の制御プログラムの起動を停止させる。そして、互換性検証処理を終了する。
【００６３】
一方、コントローラユニット１４（のＣＰＵ１４ａ）は、検証結果を受信すると（検証結果が通知されると）図１０（Ａ）に示す検証結果受信処理を実行する。
【００６４】
この検証結果受信処理について図１０（Ａ）を参照して説明する。まず、ステップ１８８では、受信した検証結果をプリンタエンジン制御ユニット１６に送信する。
【００６５】
次のステップ１９０では、受信した検証結果が互換性があることを示すか否かを判定する。
【００６６】
ステップ１９０で、検証結果が、互換性があることを示すと判定された場合には、次のステップ１９２で、コントローラユニット１４の制御プログラムを正常起動させる。そして、検証結果受信処理を終了する。
【００６７】
一方、ステップ１９０で検証結果が互換性があることを示さない（すなわち、互換性がないことを示している）と判定された場合には、次のステップ１９４で、コントローラユニット１４の制御プログラムの起動を停止させる。そして、互換性検証処理を終了する。
【００６８】
同様に、プリンタエンジン制御ユニット１６（のＣＰＵ１６ａ）は、検証結果を受信すると（検証結果が通知されると）図１０（Ｂ）に示す検証結果受信処理を実行する。
【００６９】
この検証結果受信処理について図１０（Ｂ）を参照して説明する。まず、ステップ１９６で、受信した検証結果が、互換性があることを示すか否かを判定する。
【００７０】
ステップ１９６で、検証結果が、互換性があることを示すと判定された場合には、次のステップ１９８で、プリンタエンジン制御ユニット１６の制御プログラムを正常起動させる。そして、検証結果受信処理を終了する。
【００７１】
一方、ステップ１９６で、検証結果が、互換性があることを示さない（すなわち、互換性がないことを示している）と判定された場合には、次のステップ１９９で、プリンタエンジン制御ユニット１６の制御プログラムの起動を停止させる。そして、互換性検証処理を終了する。
【００７２】
以上、説明したように、ステップ１６６〜１７６で、取得手段に対応する上記ステップ１００（版数情報取得処理）で取得された各電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報の各々に基づいて、電子ユニット間の各々の互換性があるか否かが判別される。そして、互換性がないと判別された場合（ステップ１６６〜１７６の何れかで否定判定がされた場合）には、ステップ１８４で、互換性がないことを報知手段としてのＵ／Ｉ２０が、報知（上記の場合では具体的には表示）するように制御される。なお、ステップ１６６〜１７６は判別手段に対応し、ステップ１８４は報知制御手段に対応する。
【００７３】
本実施の形態の電子装置によれば、例えば、インタフェースユニット１２を交換した場合に、ステップ１００で実行された版数情報取得処理によって、各変数の値がＰ１（１）＝Ｖ０１Ｌ０２（ここで、ＶａｂＬｃｄを比較可能な版数で表すとａｂｃｄとなる。すなわち、この場合にはＸＸＸＸ＝０１０２となる。以下同様）、Ｐ１（２）＝Ｖ０１Ｌ０２、Ｐ１（３）＝Ｖ０１Ｌ０２、Ｐ２（１）＝Ｖ０２Ｌ０１、Ｐ２（２）＝Ｖ０２Ｌ０１、Ｐ２（３）＝Ｖ０２Ｌ０１、Ｐ３（１）＝Ｖ０２Ｌ０１、Ｐ３（２）＝Ｖ０２Ｌ０１、Ｐ３（３）＝Ｖ０２Ｌ０１となった場合には、ステップ１６６で否定判定されて、ステップ１８４で互換性がないことが報知されるように報知手段が制御される。なお、Ｖはバージョンを表し、Ｌはそのバージョン内でのレベルを表す。
【００７４】
また、本実施の形態では、インタフェースユニット１２の制御プログラム、コントローラユニット１４の制御プログラム、及びプリンタエンジン制御ユニット１６の制御プログラムの起動時（すなわち起動が開始された際）に、インタフェースユニット１２のＣＰＵ１２ａが上記の各処理を実行する例について説明したが、この各処理を、インタフェースユニット１２のＣＰＵ１２ａ、コントローラユニット１４のＣＰＵ１４ａ、及びプリンタエンジン制御ユニット１６のＣＰＵ１６ａの少なくとも２つ以上のＣＰＵ（すなわち少なくとも２つ以上の電子ユニット）で同様の処理を分散させるようにして実行するようにしてもよい。
【００７５】
また、本実施の形態では、電子ユニットが３個（３台）の場合について説明したが、電子ユニットの個数が４個以上の場合であっても、本実施の形態における各処理と同様の処理を行うことで、電子ユニット間の各々の互換性があるか否かを判別することができる。
【００７６】
［第２の実施の形態］
次に第２の実施の形態について説明する。なお、第１の実施の形態と同様の構成及び処理については同一の符号を付して、説明を省略する場合がある。本実施の形態では、インタフェースユニット１２の制御プログラムには、図１１（Ａ）に示すように、版数履歴Ｒ１、及び内部起動版数Ｋ１が設けられている。版数履歴Ｒ１は、インタフェースユニット１２の制御プログラムの版数の履歴（更新履歴）であり、例えば、インタフェースユニット１２の制御プログラムの版数を「Ｖ０２Ｌ０１」とした場合に、版数履歴Ｒ１は、Ｖ０２Ｌ０１／Ｖ０１Ｌ０２／Ｖ０１Ｌ０１となり、Ｖ０２Ｌ０１とＶ０１Ｌ０２とＶ０１Ｌ０１が存在するものとする。以下で説明する版数履歴Ｒ２及びＲ３についても同様とする。また、内部起動版数Ｋ１は、インタフェースユニット１２の制御プログラムが現在起動している版数を表す。以下で説明する内部起動版数Ｋ２及びＫ３についても同様とする。
【００７７】
また、コントローラユニット１４の制御プログラムには、図１１（Ｂ）に示すように、版数履歴Ｒ２、及び内部起動版数Ｋ２が設けられている。更に、プリンタエンジン制御ユニット１６の制御プログラムには、図１１（Ｃ）に示すように、版数履歴Ｒ３、及び内部起動版数Ｋ３が設けられている。
【００７８】
ここで、例えば、インタフェースユニット１２、コントローラユニット１４、及びプリンタエンジン制御ユニット１６の少なくとも１つの電子ユニットの交換後、インタフェースユニット１２の制御プログラム、コントローラユニット１４の制御プログラム、及びプリンタエンジン制御ユニット１６の制御プログラムの起動時（すなわち起動が開始された際）に本実施の形態において実行される図１２に示す処理について説明する。なお、本実施の形態では、この図１２に示す処理をインタフェースユニット１２のＣＰＵ１２ａが実行する例について説明するが、インタフェースユニット１２のＣＰＵ１２ａ、コントローラユニット１４のＣＰＵ１４ａ、及びプリンタエンジン制御ユニット１６のＣＰＵ１６ａの少なくとも１つのＣＰＵ（すなわち少なくとも１つの電子ユニット）が同様の処理を実行するようにしてもよい。
【００７９】
図１２に示すように、まずステップ１００で、第１の実施の形態と同様の版数情報取得処理を実行する。
【００８０】
次のステップ２００では、第１の互換性検証処理を実行する。ここで、この第１の互換性検証処理について図１３を参照して説明すると、まずステップ１６６で変数Ｐ１（１）の値が変数Ｐ２（１）の値以上であるか否かを判定する。すなわち大小比較をしている。
【００８１】
ステップ１６６で、変数Ｐ１（１）の値が変数Ｐ２（１）の値以上であると判定された場合には、コントローラユニット１４が、インタフェースユニット１２との整合性があると判断して、次のステップ１６８へ進む。一方、ステップ１６６で、変数Ｐ１（１）の値が変数Ｐ２（１）の値以上でないと判定された場合には、コントローラユニット１４が、インタフェースユニット１２との整合性がなく、インタフェースユニット１２とコントローラユニット１４との互換性がないと判断して、次のステップ２０４へ進む。
【００８２】
ステップ１６８では、変数Ｐ１（１）の値が変数Ｐ３（１）の値以上であるか否かを判定する。
【００８３】
ステップ１６８で変数Ｐ１（１）の値が変数Ｐ３（１）の値以上であると判定された場合には、プリンタエンジン制御ユニット１６が、インタフェースユニット１２との整合性があると判断して、次のステップ１７０へ進む。一方、ステップ１６８で、変数Ｐ１（１）の値が変数Ｐ３（１）の値以上でないと判定された場合には、プリンタエンジン制御ユニット１６が、インタフェースユニット１２との整合性がなく、インタフェースユニット１２とプリンタエンジン制御ユニット１６との互換性がないと判断して、次のステップ２０４へ進む。
【００８４】
ステップ１７０では、変数Ｐ２（２）の値が変数Ｐ１（２）の値以上であるか否かを判定する。
【００８５】
ステップ１７０で変数Ｐ２（２）の値が変数Ｐ１（２）の値以上であると判定された場合には、インタフェースユニット１２が、コントローラユニット１４との整合性があると判断して、次のステップ１７２へ進む。一方、ステップ１７０で、変数Ｐ２（２）の値が変数Ｐ１（２）の値以上でないと判定された場合には、インタフェースユニット１２が、コントロールユニット１４との整合性がなく、インタフェースユニット１２とコントロールユニット１４との互換性がないと判断して、次のステップ２０４へ進む。
【００８６】
ステップ１７２では、変数Ｐ２（２）の値が変数Ｐ３（２）の値以上であるか否かを判定する。
【００８７】
ステップ１７２で変数Ｐ２（２）の値が変数Ｐ３（２）の値以上であると判定された場合には、プリンタエンジン制御ユニット１６が、コントローラユニット１４との整合性があると判断して、次のステップ１７４へ進む。一方、ステップ１７２で、変数Ｐ２（２）の値が変数Ｐ３（２）の値以上でないと判定された場合には、プリンタエンジン制御ユニット１６が、コントロールユニット１４との整合性がなく、プリンタエンジン制御ユニット１６とコントロールユニット１４との互換性がないと判断して、次のステップ２０４へ進む。
【００８８】
ステップ１７４では、変数Ｐ３（３）の値が変数Ｐ１（３）の値以上であるか否かを判定する。
【００８９】
ステップ１７４で変数Ｐ３（３）の値が変数Ｐ１（３）の値以上であると判定された場合には、インタフェースユニット１２が、プリンタエンジン制御ユニット１６との整合性があると判断して、次のステップ１７６へ進む。一方、ステップ１７４で、変数Ｐ３（３）の値が変数Ｐ１（３）の値以上でないと判定された場合には、インタフェースユニット１２が、プリンタエンジン制御ユニット１６との整合性がなく、インタフェースユニット１２とプリンタエンジン制御ユニット１６との互換性がないと判断して、次のステップ２０４へ進む。
【００９０】
ステップ１７６では、変数Ｐ３（３）の値が変数Ｐ２（３）の値以上であるか否かを判定する。
【００９１】
ステップ１７６で変数Ｐ３（３）の値が変数Ｐ２（３）の値以上であると判定された場合には、コントローラユニット１４が、プリンタエンジン制御ユニット１６との整合性があり、この場合では、全ての電子ユニット間で互換性があると判断して、次のステップ２０２へ進む。一方、ステップ１７６で、変数Ｐ３（３）の値が変数Ｐ２（３）の値以上でないと判定された場合には、コントローラユニット１４が、プリンタエンジン制御ユニット１６との整合性がなく、コントローラユニット１４とプリンタエンジン制御ユニット１６との互換性がないと判断して、次のステップ２０４へ進む。
【００９２】
ステップ２０２では、互換性があることを示す値（例えば１）を、メモリ１２ｂに記憶された互換性検証結果フラグ（例えば１ビットのフラグ）に設定する。そして、第１の互換性検証処理を終了する。
【００９３】
一方、ステップ２０４では、互換性がないことを示す値（例えば０）を上記の互換性検証結果フラグに設定する。そして、第１の互換性検証処理を終了する。
【００９４】
次のステップ２０６（図１２参照）では、メモリ１２ｂに記憶された互換性検証結果フラグの値を読み取り、読み取った値が、互換性があることを示す値（例えば１）であるか否かを判定する。
【００９５】
ステップ２０６で、互換性があることを示す値であると判定された場合には、次のステップ１７８に進む。
【００９６】
ステップ１７８では、第１の実施の形態と同様に、互換性があることを示す検証結果（例えば、「互換性あり」のメッセージ）をコントローラユニット１４に通知（送信）する。これにより、第１の実施の形態と同様に、コントローラユニット１４の制御プログラム及びプリンタエンジン制御ユニット１６の制御プログラムが正常起動される。
【００９７】
次のステップ１８０では、第１の実施の形態と同様に、インタフェースユニット１２の制御プログラムを正常起動させる。
【００９８】
一方、ステップ２０６で、互換性があることを示す値ではない（すなわち、互換性がないことを示す値である）と判定された場合には、次のステップ２０８へ進む。
【００９９】
ステップ２０８では、版数履歴及び内部起動版数情報取得処理を実行する。この版数履歴及び内部起動版数情報取得処理について図１４を参照して説明すると、まずステップ２１０で版数履歴Ｒ２をインタフェースユニット１２に送信する要求を、コントローラユニット１４に出力（送信）する。
【０１００】
ここで、コントローラユニット１４がこの要求を受信すると、コントローラユニット１４（のＣＰＵ１４ａ）は、図１５（Ａ）に示す版数履歴情報応答処理を実行する。この版数履歴情報応答処理について図１５（Ａ）を参照して説明すると、まずステップ２１２で自身（自己）の版数履歴Ｒ２を取得する。
【０１０１】
次のステップ２１４では、上記ステップ２１２で取得された版数履歴Ｒ２を、インタフェースユニット１２に出力する。これにより、インタフェースユニット１２によって、コントローラユニット１４から版数履歴Ｒ２が受信される。そして、版数履歴情報応答処理を終了する。
【０１０２】
次のステップ２１６（図１４参照）では、コントローラユニット１４から版数履歴Ｒ２を受信するまで待機し、版数履歴Ｒ２を受信した場合には次のステップ２１８へ進む。
【０１０３】
次のステップ２１８では、変数Ｐ２（Ｒ）に版数履歴Ｒ２の値をセット（設定）する。
【０１０４】
次のステップ２２０では、版数履歴Ｒ３をインタフェースユニット１２に送信する要求を、コントローラユニット１４に出力する。
【０１０５】
ここで、コントローラユニット１４がこの要求を受信すると、コントローラユニット１４は、図１５（Ｂ）に示す版数履歴情報出力処理を実行する。この版数履歴情報出力処理について図１５（Ｂ）を参照して説明すると、まずステップ２２２で、版数履歴Ｒ３をコントローラユニット１４に送信する要求を、プリンタエンジン制御ユニット１６に出力する。プリンタエンジン制御ユニット１６がこの要求を受信すると、プリンタエンジン制御ユニット１６は、図１６（Ａ）に示す版数履歴情報応答処理を実行する。この版数履歴情報応答処理について図１６（Ａ）を参照して説明すると、まずステップ２２４で自身の版数履歴Ｒ３を取得する。そして、次のステップ２２６で、上記ステップ２２４で取得された版数履歴Ｒ３を、コントローラユニット１４に出力する。これにより、コントローラユニット１４によって、プリンタエンジン制御ユニット１６から版数履歴Ｒ３が受信される。そして、版数履歴情報応答処理を終了する。
【０１０６】
次のステップ２２８（図１５（Ｂ）参照）では、プリンタエンジン制御ユニット１６から版数履歴Ｒ３を受信するまで待機し、版数履歴Ｒ３を受信した場合には次のステップ２３０へ進む。
【０１０７】
ステップ２３０では、受信した版数履歴Ｒ３を、インタフェースユニット１２に出力する。これにより、インタフェースユニット１２によって、コントローラユニット１４から版数履歴Ｒ３が受信される。すなわち、インタフェースユニット１２は、コントローラユニット１４を介して、プリンタエンジン制御ユニット１６から版数履歴Ｒ３を受信する。そして、版数履歴情報出力処理を終了する。なお、インタフェースユニット１２は、直接プリンタエンジン制御ユニット１６から版数履歴Ｒ３を取得するようにしてもよい。
【０１０８】
次のステップ２３２（図１４参照）では、コントローラユニット１４から版数履歴Ｒ３を受信するまで待機し、版数履歴Ｒ３を受信した場合には次のステップ２３４へ進む。
【０１０９】
次のステップ２３４では、変数Ｐ３（Ｒ）に版数履歴Ｒ３の値をセット（設定）する。
【０１１０】
次のステップ２３６では、内部起動版数Ｋ２をインタフェースユニット１２に送信する要求を、コントローラユニット１４に出力（送信）する。
【０１１１】
ここで、コントローラユニット１４がこの要求を受信すると、コントローラユニット１４は、図１７（Ａ）に示す内部起動版数情報応答処理を実行する。この内部起動版数情報応答処理について図１７（Ａ）を参照して説明すると、まずステップ２３８で自身の内部起動版数Ｋ２を取得する。
【０１１２】
次のステップ２４０では、上記ステップ２３８で取得された内部起動版数Ｋ２を、インタフェースユニット１２に出力する。これにより、インタフェースユニット１２によって、コントローラユニット１４から内部起動版数Ｋ２が受信される。そして、内部起動版数情報応答処理を終了する。
【０１１３】
次のステップ２４２（図１４参照）では、コントローラユニット１４から内部起動版数Ｋ２を受信するまで待機し、内部起動版数Ｋ２を受信した場合には次のステップ２４４へ進む。
【０１１４】
次のステップ２４４では、変数Ｐ２（Ｋ）に内部起動版数Ｋ２の値をセットする。
【０１１５】
次のステップ２４６では、内部起動版数Ｋ３をインタフェースユニット１２に送信する要求を、コントローラユニット１４に出力（送信）する。
【０１１６】
ここで、コントローラユニット１４がこの要求を受信すると、コントローラユニット１４は、図１７（Ｂ）に示す内部起動版数情報出力処理を実行する。この内部起動版数情報出力処理について図１７（Ｂ）を参照して説明すると、まずステップ２４８で、内部起動版数Ｋ３をコントローラユニット１４に送信する要求を、プリンタエンジン制御ユニット１６に出力する。プリンタエンジン制御ユニット１６がこの要求を受信すると、プリンタエンジン制御ユニット１６は、図１６（Ｂ）に示す内部起動版数情報応答処理を実行する。この内部起動版数情報応答処理について図１６（Ｂ）を参照して説明すると、まずステップ２５０で自身の内部起動版数Ｋ３を取得する。そして、次のステップ２５２では、上記ステップ２５０で取得された内部起動版数Ｋ３を、コントローラユニット１４に出力する。これにより、コントローラユニット１４によって、プリンタエンジン制御ユニット１６から内部起動版数Ｋ３が受信される。そして、内部起動版数情報応答処理を終了する。
【０１１７】
次のステップ２５４（図１７（Ｂ）参照）では、プリンタエンジン制御ユニット１６から内部起動版数Ｒ３を受信するまで待機し、内部起動版数Ｋ３を受信した場合には次のステップ２５６へ進む。
【０１１８】
ステップ２５６では、受信した内部起動版数Ｋ３を、インタフェースユニット１２に出力する。これにより、インタフェースユニット１２によって、コントローラユニット１４から内部起動版数Ｋ３が受信される。すなわち、インタフェースユニット１２は、コントローラユニット１４を介して、プリンタエンジン制御ユニット１６から内部起動版数Ｋ３を受信する。そして、内部起動版数情報出力処理を終了する。なお、インタフェースユニット１２は、直接プリンタエンジン制御ユニット１６から内部起動版数Ｋ３を取得するようにしてもよい。
【０１１９】
次のステップ２５８（図１４参照）では、コントローラユニット１４から内部起動版数Ｋ３を受信するまで待機し、内部起動版数Ｋ３を受信した場合には次のステップ２６０へ進む。
【０１２０】
次のステップ２６０では、変数Ｐ３（Ｋ）に内部起動版数Ｋ３の値をセットする。
【０１２１】
次のステップ２６２では、自身の版数履歴Ｒ１、及び内部起動版数Ｋ１を取得する。
【０１２２】
次のステップ２６４では、変数Ｐ１（Ｒ）に、上記ステップ２６２で取得された版数履歴Ｒ１をセットし、変数Ｐ１（Ｋ）に、上記ステップ２６２で取得された内部起動版数Ｋ１をセットする。そして、版数履歴及び内部起動版数情報取得処理を終了する。
【０１２３】
上記版数情報取得処理をインタフェースユニット１２が実行したことにより、インタフェースユニット１２によって、各電子ユニット（１２、１４、１６）の記憶手段としてのメモリ（１２ｂ、１４ｂ、１６ｂ）に記憶された各版数履歴（Ｒ１、Ｒ２、Ｒ３）及び各内部起動版数（Ｋ１、Ｋ２、Ｋ３）が取得される。これにより、インタフェースユニット１２のメモリ１２ｂには、図１８に示すように、各値がセットされた各変数が記憶される。すなわち、変数Ｐ１（Ｒ）に版数履歴Ｒ１、変数Ｐ１（Ｋ）に内部起動版数Ｋ１、変数Ｐ２（Ｒ）に版数履歴Ｒ２、変数Ｐ２（Ｋ）に内部起動版数Ｋ２、変数Ｐ３（Ｒ）に版数履歴Ｒ３、及び変数Ｐ３（Ｋ）に内部起動版数Ｋ３がセットされ、これらの変数がメモリ１２ｂに記憶される。
【０１２４】
次のステップ２６６（図１２参照）では、レベルアップ判定処理を実行する。レベルアップ判定処理について図１９を参照して説明すると、まずステップ２６８で、変数Ｐ１（Ｒ）が変数Ｐ１（Ｋ）より大きいか否かを判定する。すなわち、大小比較をしている。ここで、変数Ｐ１（Ｒ）が変数Ｐ１（Ｋ）より大きいとは、本実施の形態では、変数Ｐ１（Ｒ）に含まれる最大の版数が、変数Ｐ１（Ｋ）より大きいことをいう。以下、同様である。
【０１２５】
ステップ２６８で、変数Ｐ１（Ｒ）が変数Ｐ１（Ｋ）以下である（すなわち、本実施の形態では変数Ｐ１（Ｒ）に含まれる最大の版数と変数Ｐ１（Ｋ）とが同じである）と判定された場合には、ステップ２７２へ進む。一方、ステップ２６８で、変数Ｐ１（Ｒ）が変数Ｐ１（Ｋ）より大きいと判定された場合には、次のステップ２７０へ進む。
【０１２６】
ステップ２７０では、自身のインタフェースユニット版数の初期化を行う。具体的には、例えば、変数Ｐ１（Ｒ）の版数履歴Ｒ１が示す最大の版数に、変数Ｐ１（１）及び変数Ｐ１（Ｋ）の値を変更することにより、初期化を行う。なお、変数Ｐ１（１）及び変数Ｐ１（Ｋ）の値が変更されたことにより、変数Ｐ１（２）及び変数Ｐ１（３）の値も変更される。
【０１２７】
次のステップ２７２では、変数Ｐ２（Ｒ）が変数Ｐ２（Ｋ）より大きいか否かを判定する。
【０１２８】
ステップ２７２で、変数Ｐ２（Ｒ）が変数Ｐ２（Ｋ）以下である（すなわち、変数Ｐ２（Ｒ）に含まれる最大の版数と変数Ｐ２（Ｋ）とが同じである）と判定された場合には、ステップ２７６へ進む。一方、ステップ２７２で、変数Ｐ２（Ｒ）が変数Ｐ２（Ｋ）より大きいと判定された場合には、次のステップ２７４へ進む。
【０１２９】
ステップ２７４では、コントローラユニット版数の初期化を行うための指示を、コントローラユニット１４に出力（送信）する。コントローラユニット１４は、この指示を受信すると、図２０（Ａ）に示す初期化処理を実行する。この初期化処理について図２０（Ａ）を参照して説明すると、ステップ２７５で、自身のコントローラユニット版数の初期化を行う。具体的には、例えば、変数Ｐ２（Ｒ）の版数履歴Ｒ２が示す最大の版数に、変数Ｐ２（２）及び変数Ｐ２（Ｋ）の値を変更することにより、初期化を行う。なお、変数Ｐ２（２）及び変数Ｐ２（Ｋ）の値が変更されたことにより、変数Ｐ２（１）及び変数Ｐ２（３）の値も変更される。そして、初期化処理を終了する。
【０１３０】
次のステップ２７６（図１９参照）では、変数Ｐ３（Ｒ）が変数Ｐ３（Ｋ）より大きいか否かを判定する。
【０１３１】
ステップ２７６で、変数Ｐ３（Ｒ）が変数Ｐ３（Ｋ）以下である（すなわち、変数Ｐ３（Ｒ）に含まれる最大の版数と変数Ｐ３（Ｋ）とが同じである）と判定された場合には、レベルアップ判定処理を終了する。一方、ステップ２７６で、変数Ｐ３（Ｒ）が変数Ｐ３（Ｋ）より大きいと判定された場合には、次のステップ２７８へ進む。
【０１３２】
ステップ２７８では、プリンタエンジン制御ユニット版数の初期化を行うための指示を、コントローラユニット１４に出力（送信）して、レベルアップ判定処理を終了する。コントローラユニット１４は、この指示を受信すると、受信した指示をプリンタエンジン制御ユニット１６に出力する。プリンタエンジン制御ユニット１６は、この指示を受信すると、図２０（Ｂ）に示す初期化処理を実行する。この初期化処理について図２０（Ｂ）を参照して説明すると、ステップ２７９で、自身のプリンタエンジン制御ユニット版数の初期化を行う。具体的には、例えば、変数Ｐ３（Ｒ）の版数履歴Ｒ３が示す最大の版数に、変数Ｐ３（３）及び変数Ｐ３（Ｋ）の値を変更することにより、初期化を行う。なお、変数Ｐ３（３）及び変数Ｐ３（Ｋ）の値が変更されたことにより、変数Ｐ３（１）及び変数Ｐ３（３）の値も変更される。そして、初期化処理を終了する。
【０１３３】
図１２に戻り、説明を続ける。ステップ２６６でのレベルアップ判定処理が終了すると、次のステップ２９０で、上述したステップ１００と同一の版数情報取得処理を再び実行する。
【０１３４】
次のステップ２９２では、第２の互換性検証処理（レベルダウン処理）を実行する。この第２の互換性検証処理を図２１を参照して説明すると、まずステップ２９４で、変数Ｐ１（１）の値が変数Ｐ２（１）の値以上であるか否かを判定する。すなわち大小比較をしている。
【０１３５】
ステップ２９４で、変数Ｐ１（１）の値が変数Ｐ２（１）の値以上であると判定された場合には、コントローラユニット１４が、インタフェースユニット１２との整合性があると判断して、次のステップ２９６へ進む。一方、ステップ２９４で、変数Ｐ１（１）の値が変数Ｐ２（１）の値以上でないと判定された場合には、コントローラユニット１４が、インタフェースユニット１２との整合性がなく、インタフェースユニット１２とコントローラユニット１４との互換性がないので、コントローラユニット１４のレベルダウンを行う必要があると判断して、次のステップ２９８へ進む。
【０１３６】
ステップ２９８では、コントローラユニット１４のレベルダウンを行うためのレベルダウン指示を、コントローラユニット１４に出力（送信）する。コントローラユニット１４は、このレベルダウン指示を受信すると、図２２（Ａ）に示すレベルダウン処理を実行する。このレベルダウン処理について図２２（Ａ）を参照して説明すると、ステップ３００で、変数Ｐ２（Ｒ）が示す内容に基づいて、レベルを１つ下げる。具体的には、例えば、変数Ｐ２（Ｒ）が「Ｖ０２Ｌ０１／Ｖ０１Ｌ０２／Ｖ０１Ｌ０１」である場合に、レベルダウン前の変数Ｐ２（２）がＶ０２Ｌ０１であるときには、ステップ３００での処理によって、レベルが１つ下がり変数Ｐ２（２）がＶ０１Ｌ０２となる。以下の処理についても同様である。
【０１３７】
次のステップ３０２（図２１参照）では、上記のステップ２０４と同様に、互換性がないことを示す値（例えば０）を上記の互換性検証結果フラグに上書きして、互換性検証結果フラグの値を更新する。そして、第２の互換性検証処理を終了する。
【０１３８】
一方、ステップ２９６では、変数Ｐ１（１）の値が変数Ｐ３（１）の値以上であるか否かを判定する。
【０１３９】
ステップ２９６で、変数Ｐ１（１）の値が変数Ｐ３（１）の値以上であると判定された場合には、プリンタエンジン制御ユニット１６が、インタフェースユニット１２との整合性があると判断して、次のステップ３０４へ進む。一方、ステップ２９６で、変数Ｐ１（１）の値が変数Ｐ３（１）の値以上でないと判定された場合には、プリンタエンジン制御ユニット１６が、インタフェースユニット１２との整合性がなく、インタフェースユニット１２とプリンタエンジン制御ユニット１６との互換性がないので、プリンタエンジン制御ユニット１６のレベルダウンを行う必要があると判断して、次のステップ３０６へ進む。
【０１４０】
ステップ３０６では、プリンタエンジン制御ユニット１６のレベルダウンを行うためのレベルダウン指示を、コントローラユニット１２に出力（送信）して、次のステップ３０２へ進む。コントローラユニット１２は、このレベルダウン指示を受信すると、受信されたレベルダウン指示をプリンタエンジン制御ユニット１６に出力する。プリンタエンジン制御ユニット１６は、このレベルダウン指示を受信すると、図２２（Ｂ）に示すレベルダウン処理を実行する。このレベルダウン処理について図２２（Ｂ）を参照して説明すると、ステップ３０８で、上記のステップ３００と同様に、変数Ｐ３（Ｒ）が示す内容に基づいて、変数Ｐ３（３）のレベルを１つ下げる。そして、レベルダウン処理を終了する。
【０１４１】
次のステップ３０４（図２１参照）では、変数Ｐ２（２）の値が変数Ｐ１（２）の値以上であるか否かを判定する。
【０１４２】
ステップ３０４で、変数Ｐ２（２）の値が変数Ｐ１（２）の値以上であると判定された場合には、インタフェースユニット１２が、コントローラユニット１４との整合性があると判断して、次のステップ３１０へ進む。一方、ステップ３０４で、変数Ｐ２（２）の値が変数Ｐ１（２）の値以上でないと判定された場合には、インタフェースユニット１２が、コントローラユニット１４との整合性がなく、インタフェースユニット１２とコントローラユニット１４との互換性がないので、インタフェースユニット１２のレベルダウンを行う必要があると判断して、次のステップ３１２へ進む。
【０１４３】
ステップ３１２では、上記のステップ３００と同様に、変数Ｐ１（Ｒ）が示す内容に基づいて、変数Ｐ１（１）のレベルを１つ下げる。そして、ステップ３０２へ進む。
【０１４４】
ステップ３１０では、変数Ｐ２（２）の値が変数Ｐ１（２）の値以上であるか否かを判定する。
【０１４５】
ステップ３１０で、変数Ｐ２（２）の値が変数Ｐ３（２）の値以上であると判定された場合には、プリンタエンジン制御ユニット１６が、コントローラユニット１４との整合性があると判断して、次のステップ３１４へ進む。一方、ステップ３１０で、変数Ｐ２（２）の値が変数Ｐ３（２）の値以上でないと判定された場合には、プリンタエンジン制御ユニット１６が、コントローラユニット１４との整合性がなく、プリンタエンジン制御ユニット１６とコントローラユニット１４との互換性がないので、プリンタエンジン制御ユニット１６のレベルダウンを行う必要があると判断して、次のステップ３０６へ進む。
【０１４６】
ステップ３１４では、変数Ｐ３（３）の値が変数Ｐ１（３）の値以上であるか否かを判定する。
【０１４７】
ステップ３１４で、変数Ｐ３（３）の値が変数Ｐ１（３）の値以上であると判定された場合には、インタフェースユニット１２が、プリンタエンジン制御ユニット１６との整合性があると判断して、次のステップ３１６へ進む。一方、ステップ３１４で、変数Ｐ３（３）の値が変数Ｐ１（３）の値以上でないと判定された場合には、インタフェースユニット１２が、プリンタエンジン制御ユニット１６との整合性がなく、インタフェースユニット１２とプリンタエンジン制御ユニット１６との互換性がないので、インタフェースユニット１２のレベルダウンを行う必要があると判断して、次のステップ３１２へ進む。
【０１４８】
ステップ３１６では、変数Ｐ３（３）の値が変数Ｐ２（３）の値以上であるか否かを判定する。
【０１４９】
ステップ３１６で、変数Ｐ３（３）の値が変数Ｐ２（３）の値以上であると判定された場合には、コントローラユニット１４が、プリンタエンジン制御ユニット１６との整合性があり、この場合では、全ての電子ユニット間で互換性があると判断して、次のステップ３１８へ進む。一方、ステップ３１６で、変数Ｐ３（３）の値が変数Ｐ２（３）の値以上でないと判定された場合には、コントローラユニット１４が、プリンタエンジン制御ユニット１６との整合性がなく、コントローラユニット１４とプリンタエンジン制御ユニット１６との互換性がないので、コントローラユニット１４のレベルダウンを行う必要があると判断して、次のステップ２９８へ進む。
【０１５０】
ステップ３１８では、互換性があることを示す値（例えば１）を、メモリ１２ｂに記憶された上記の互換性検証結果フラグに上書きして、互換性検証結果フラグの値を更新する。そして、第２の互換性検証処理を終了する。
【０１５１】
次のステップ３２０（図１２参照）では、メモリ１２ｂに記憶された互換性検証結果フラグの値を読み取り、読み取った値が、互換性があることを示す値（例えば１）であるか否かを判定する。
【０１５２】
ステップ３２０で、互換性があることを示す値であると判定された場合には、次のステップ３２２に進む。
【０１５３】
ステップ３２２では、変数Ｐ１（Ｋ）の値を変数Ｐ１（１）に更新し、変数Ｐ２（Ｋ）の値を変数Ｐ２（２）に更新し、変数Ｐ３（Ｋ）の値を変数Ｐ３（３）に更新する。そして、ステップ１７８へ進む。
【０１５４】
なお、本実施の形態では、新版の制御プログラムは、旧版の制御プログラムと差分情報とで構成されており、このように、ステップ１７８に進んだ場合には、互換性があることを示す検証結果がコントローラユニット１４及びプリンタエンジン制御ユニット１６に通知されると共に、コントローラユニット１４には変数Ｐ２（Ｋ）の値が出力され、プリンタエンジン制御ユニット１６には変数Ｐ３（Ｋ）の値が出力される。そして、本実施の形態では、特開２００３−２５６９８号公報に記載されている技術のように、コントローラユニット１４は、変数Ｐ２（Ｋ）の値に基づいて、差分情報を無効にすることにより、制御プログラムを更新する。同様に、プリンタエンジン制御ユニット１６は、変数Ｐ３（Ｋ）の値に基づいて、差分情報を無効にすることにより、制御プログラムを更新する。そして、ステップ１７８からステップ１８０に進むと、インタフェースユニット１２は、同様に、変数Ｐ１（Ｋ）の値に基づいて、差分情報を無効にすることにより、制御プログラムを更新する。
【０１５５】
一方、ステップ３２０で、互換性があることを示す値ではない（すなわち、互換性がないことを示す値である）と判定された場合には、ステップ２９０へ戻る。
【０１５６】
以上説明したように、本実施の形態では、互換性がないと判別された場合（ステップ２９４、２９６、３０４、３１０、３１４、及び３１６で否定判定がされた場合）には、互換性がないと判別された対応する電子ユニット（１２、１４、１６）間で互換性を有するように、該対応する電子ユニットの版数がステップ２９８、３０６、または３１２で変更された変数Ｐ１（１）、Ｐ２（２）、Ｐ３（３）の中の対応する変数に基づいて変更される。
【０１５７】
また、本実施の形態では、インタフェースユニット１２の制御プログラム、コントローラユニット１４の制御プログラム、及びプリンタエンジン制御ユニット１６の制御プログラムの起動時（すなわち起動が開始された際）に、インタフェースユニット１２のＣＰＵ１２ａが上記の各処理を実行する例について説明したが、この各処理を、インタフェースユニット１２のＣＰＵ１２ａ、コントローラユニット１４のＣＰＵ１４ａ、及びプリンタエンジン制御ユニット１６のＣＰＵ１６ａの少なくとも２つ以上のＣＰＵ（すなわち少なくとも２つ以上の電子ユニット）で同様の処理を実行するようにしてもよい。
【０１５８】
また、本実施の形態では、電子ユニットが３個（３台）の場合について説明したが、電子ユニットの個数が４個以上の場合であっても、本実施の形態における各処理と同様の処理を行うことで、電子ユニット間の各々の互換性があるか否かを判別することができ、互換性がないと判別された対応する電子ユニットの版数を変更することができる。
【図面の簡単な説明】
【０１５９】
【図１】第１の実施の形態の電子装置としてのプリンタの概略図である。
【図２】第１の実施の形態における各電子ユニットに記憶されている情報の模式図である。
【図３】第１の実施の形態におけるインタフェースユニットが実行する処理のフローチャートを示す図である。
【図４】第１の実施の形態におけるインタフェースユニットが実行する版数情報取得処理のフローチャートを示す図である。
【図５】第１の実施の形態におけるコントローラユニットが実行する各処理のフローチャートを示す図である。
【図６】第１の実施の形態におけるプリンタエンジン制御ユニットが実行する各処理のフローチャートを示す図である。
【図７】第１の実施の形態におけるコントローラユニットが実行する各処理のフローチャートを示す図である。
【図８】第１の実施の形態における版数情報取得処理の処理結果を示す図である。
【図９】第１の実施の形態におけるインタフェースユニットが実行する互換性検証処理のフローチャートを示す図である。
【図１０】第１の実施の形態における各検証結果受信処理のフローチャートを示す図である。
【図１１】第２の実施の形態における各電子ユニットに記憶されている情報の模式図である。
【図１２】第２の実施の形態におけるインタフェースユニットが実行する処理のフローチャートを示す図である。
【図１３】第２の実施の形態におけるインタフェースユニットが実行する第１の互換性検証処理のフローチャートを示す図である。
【図１４】第２の実施の形態におけるインタフェースユニットが実行する版数履歴及び内部起動版数情報取得処理のフローチャートを示す図である。
【図１５】第２の実施の形態におけるコントローラユニットが実行する各処理のフローチャートを示す図である。
【図１６】第２の実施の形態におけるプリンタエンジン制御ユニットが実行する各処理のフローチャートを示す図である。
【図１７】第２の実施の形態におけるコントローラユニットが実行する各処理のフローチャートを示す図である。
【図１８】第２の実施の形態における版数履歴及び内部起動版数情報取得処理の処理結果を示す図である。
【図１９】第２の実施の形態におけるインタフェースユニットが実行するレベルアップ判定処理のフローチャートを示す図である。
【図２０】第２の実施の形態における各初期化処理のフローチャートを示す図である。
【図２１】第２の実施の形態におけるインタフェースユニットが実行する第２の互換性検証処理のフローチャートを示す図である。
【図２２】第２の実施の形態における各レベルダウン処理のフローチャートを示す図である。
【符号の説明】
【０１６０】
１０      プリンタ
１２      インタフェースユニット
１４      コントローラユニット
１６      プリンタエンジン制御ユニット
【図１】
2010009193.tif 000003
【図２】
2010009193.tif 000004
【図３】
2010009193.tif 000005
【図４】
2010009193.tif 000006
【図５】
2010009193.tif 000007
【図６】
2010009193.tif 000008
【図７】
2010009193.tif 000009
【図８】
2010009193.tif 000010
【図９】
2010009193.tif 000011
【図１０】
2010009193.tif 000012
【図１１】
2010009193.tif 000013
【図１２】
2010009193.tif 000014
【図１３】
2010009193.tif 000015
【図１４】
2010009193.tif 000016
【図１５】
2010009193.tif 000017
【図１６】
2010009193.tif 000018
【図１７】
2010009193.tif 000019
【図１８】
2010009193.tif 000020
【図１９】
2010009193.tif 000021
【図２０】
2010009193.tif 000022
【図２１】
2010009193.tif 000023
【図２２】
2010009193.tif 000024