説明

電子装置

【課題】専用のモジュール管理装置を設けることなく、3台以上の電子ユニットの互換性を判別する。
【解決手段】版数情報取得処理で取得された各電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報の各々に基づいて、電子ユニット間の各々の互換性があるか否かを判別する(ステップ166〜176)。
【効果】専用のモジュール管理装置を設けることなく、3台以上の電子ユニットの互換性を判別することができ、互換性がない場合には、互換性がないことをユーザに認識させることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子装置に関する。
【背景技術】
【0002】
従来、専用のモジュール管理装置を設けることなく、協働して動作する2台の電子ユニットの互換性を判別する電子装置が知られている(例えば、特許文献1参照)。また、特許文献1記載の電子装置では、専用のモジュール管理装置を設けることなく、互換性の判別を行った後に、2台の電子ユニット間における互換性をとることを行っている。
【特許文献1】特開2003−25698号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
本発明は、専用のモジュール管理装置を設けることなく、3台以上の電子ユニットの互換性を判別することができる電子装置を提供することを第1の目的とする。また、本発明の第2の目的は、専用のモジュール管理装置を設けることなく、3台以上の電子ユニット間における互換性をとることができる電子装置を提供することを目的とする。
【課題を解決するための手段】
【0004】
上記第1の目的を達成するために、請求項1に記載の電子装置は、協働して動作すると共に、各々の電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報とを記憶した記憶手段を各々備えると共に、少なくとも1つの電子ユニットが、各電子ユニットの前記記憶手段に記憶された前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報を取得する取得手段と、前記取得手段で取得された前記各電子ユニットの前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報の各々に基づいて、前記電子ユニット間の各々の互換性があるか否かを判別する判別手段と、を備えたN(N≧3)個の電子ユニットを含んで構成されている。
【0005】
また、請求項2に記載の電子装置は、請求項1記載の電子装置において、前記少なくとも1つの電子ユニットが、前記判別手段によって互換性がないと判別された場合には、互換性がないことを報知するように報知手段を制御する報知制御手段を更に備えるようにしたものである。
【0006】
上記第2の目的を達成するために、請求項3に記載の発明の電子装置は、協働して動作すると共に、各々の電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報とを記憶した記憶手段を各々備えると共に、少なくとも1つの電子ユニットが、各電子ユニットの前記記憶手段に記憶された前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報を取得する取得手段と、前記取得手段で取得された前記各電子ユニットの前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報の各々に基づいて、前記電子ユニット間の各々の互換性があるか否かを判別する判別手段と、前記判別手段によって互換性がないと判別された場合には、互換性がないと判別された対応する電子ユニット間で互換性を有するように、該対応する電子ユニットの版数を変更する変更手段と、を備えたN(N≧3)個の電子ユニットを含んで構成されている。
【発明の効果】
【0007】
請求項1の発明によれば、専用のモジュール管理装置を設けることなく、3台以上の電子ユニットの互換性を判別することができる、という効果が得られる。
【0008】
請求項2の発明によれば、3台以上の電子ユニットの互換性がない場合には、互換性がないことをユーザに認識させることができる、という効果が得られる。
【0009】
請求項3の発明によれば、専用のモジュール管理装置を設けることなく、3台以上の電子ユニット間における互換性をとることができる、という効果が得られる。
【発明を実施するための最良の形態】
【0010】
以下、図面を参照して、本発明の各実施の形態を詳細に説明する。なお、各実施の形態では、本発明を電子装置としてのプリンタ(画像形成装置)に適用した例について説明する。
【0011】
[第1の実施の形態]
まず、第1の実施の形態について説明する。図1に示すように、本実施の形態に係る電子装置としてのプリンタ10は、インタフェースユニット12と、コントローラユニット14と、プリンタエンジン制御ユニット16と、プリンタエンジン18と、ユーザ(操作者)からの指示を受け付けるためのタッチパネル、及び液晶等を備えた表示装置を含んで構成されたU/I(ユーザインタフェース)20とを備えている。インタフェースユニット12は、コントローラユニット14の制御により、ホスト22からの印刷情報(印刷データ)を受信して、受信した印刷データをプリンタエンジン制御ユニット16に送信する。コントローラユニット14は、U/I20を介してユーザから受け付けた指示に応じて制御コマンドを生成し、生成した制御コマンドをインタフェースユニット12及びプリンタエンジン制御ユニット16に送信する。すなわち、コントローラユニット14によって、インタフェースユニット12及びプリンタエンジン制御ユニット16が制御される。プリンタエンジン制御ユニット16は、コントローラユニット14の制御により、受信した印刷情報や制御コマンドに応じてプリンタエンジン18を制御する。プリンタエンジン18は、従来公知の電子写真機構で構成されており、プリンタエンジン18の制御によって、入力された印刷情報に基づいた画像を記録媒体(例えば用紙)に形成して、画像が形成された記録媒体を出力する。これらのインタフェースユニット12、コントローラユニット14、及びプリンタエンジン制御ユニット16の各電子ユニットは、各々別々の(プリント)ボードで構成されている。
【0012】
インタフェースユニット12は、CPU(Central Processing Unit:プロセッサ)12a、メモリ12b、及びインタフェース12cを備えている。メモリ12bには、インタフェースユニット12の制御プログラムが記憶されている。
【0013】
コントローラユニット14は、CPU14a、メモリ14b、及びインタフェース14cを備えている。メモリ14bには、コントローラユニット14の制御プログラムが記憶されている。
【0014】
プリンタエンジン制御ユニット16は、CPU16a、メモリ16b、及びインタフェース16cを備えている。メモリ16bには、プリンタエンジン制御ユニット16の制御プログラムが記憶されている。
【0015】
インタフェース12c、14c、16cによって上記の各電子ユニット間で双方向通信可能となる。そして、インタフェースユニット12、コントローラユニット14、及びプリンタエンジン制御ユニット16は、それぞれ他のユニットと協働して動作する。
【0016】
インタフェースユニット12の制御プログラムには、図2(A)に示すように、自己のプログラムの版数(バージョン)を示す情報であるインタフェースユニット版数XXXXが設けられている。また、本実施の形態のインタフェースユニット12の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のコントローラユニット14の制御プログラムの最小の版数を示す情報である相手方サポート版数yyyyが設けられている。更に、本実施の形態のインタフェースユニット12の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のプリンタエンジン制御ユニット16の制御プログラムの最小の版数を示す情報である相手方サポート版数zzzzが設けられている。例えば、本実施の形態では、最新バージョンほど、大きい値を設定した場合、相手方サポート版数の値yyyyは、コントローラユニット14の制御プログラムがyyyy以上の版数であれば、インタフェースユニット12の制御プログラムが、相手方のプログラムであるコントローラユニット14の制御プログラムとの整合性(サポート性)はあると規定することにより、インタフェースユニット12がコントローラユニット14との整合性があると規定する。また、同様に、本実施の形態では、相手方サポート版数zzzzは、プリンタエンジン制御ユニット16の制御プログラムがzzzz以上の版数であれば、インタフェースユニット12の制御プログラムが、相手方のプログラムであるプリンタエンジン制御ユニット16の制御プログラムとの整合性があると規定することにより、インタフェースユニット12がプリンタエンジン制御ユニット16との整合性があると規定する。
【0017】
コントローラユニット14の制御プログラムには、図2(B)に示すように、自己のプログラムの版数を示す情報であるコントローラユニット版数YYYYが設けられている。また、本実施の形態のコントローラユニット14の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のインタフェースユニット12の制御プログラムの最小の版数を示す情報である相手方サポート版数xxxxが設けられている。更に、本実施の形態のコントローラユニット14の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のプリンタエンジン制御ユニット16の制御プログラムの最小の版数を示す情報である相手方サポート版数z´z´z´z´が設けられている。例えば、本実施の形態では、最新バージョンほど、大きい値を設定した場合、相手方サポート版数の値xxxxは、インタフェースユニット12の制御プログラムがxxxx以上の版数であれば、コントローラユニット14の制御プログラムが、相手方のプログラムであるインタフェースユニット12の制御プログラムとの整合性があると規定することにより、コントローラユニット14が、インタフェースユニット12との整合性があると規定する。また、同様に、本実施の形態では、相手方サポート版数z´z´z´z´は、プリンタエンジン制御ユニット16の制御プログラムがz´z´z´z´以上の版数であれば、コントローラユニット14の制御プログラムが、相手方のプログラムであるプリンタエンジン制御ユニット16の制御プログラムとの整合性があると規定することにより、コントローラユニット14が、プリンタエンジン制御ユニット16との整合性があると規定する。
【0018】
プリンタエンジン制御ユニット16の制御プログラムには、図2(C)に示すように、自己のプログラムの版数を示す情報であるコントローラユニット版数ZZZZが設けられている。また、本実施の形態のプリンタエンジン制御ユニット16の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のインタフェースユニット12の制御プログラムの最小の版数を示す情報である相手方サポート版数x´x´x´x´が設けられている。更に、本実施の形態のプリンタエンジン制御ユニット16の制御プログラムには、同図に図示されるように、自己と整合性を有する場合のコントローラユニット14の制御プログラムの最小の版数を示す情報である相手方サポート版数y´y´y´y´が設けられている。例えば、本実施の形態では、最新バージョンほど、大きい値を設定した場合、相手方サポート版数の値x´x´x´x´は、インタフェースユニット12の制御プログラムがx´x´x´x´以上の版数であれば、プリンタエンジン制御ユニット16の制御プログラムが、相手方のプログラムであるインタフェースユニット12の制御プログラムとの整合性があると規定することにより、プリンタエンジン制御ユニット16が、インタフェースユニット12との整合性があると規定する。また、同様に、本実施の形態では、相手方サポート版数y´y´y´y´は、コントローラユニット14の制御プログラムがy´y´y´y´以上の版数であれば、プリンタエンジン制御ユニット16の制御プログラムが、相手方のプログラムであるコントローラユニット14の制御プログラムとの整合性があると規定することにより、プリンタエンジン制御ユニット16が、コントローラユニット14との整合性があると規定する。
【0019】
なお、本実施の形態では、各ユニット間で互いに整合性がある場合には、このユニット間は互換性があると規定する。例えば、インタフェースユニット12がコントローラユニット14との整合性があり、かつコントローラユニット14がインタフェースユニット12との整合性がある場合には、インタフェースユニット12とコントローラユニット14とは互換性があると規定する。
【0020】
次に、例えば、インタフェースユニット12、コントローラユニット14、及びプリンタエンジン制御ユニット16の少なくとも1つの電子ユニットの交換後、インタフェースユニット12の制御プログラム、コントローラユニット14の制御プログラム、及びプリンタエンジン制御ユニット16の制御プログラムの起動時(すなわち起動が開始された際)に実行される版数情報取得処理(図3参照)及び互換性検証処理(図3参照)について説明する。なお、本実施の形態では、この版数情報取得処理及び互換性検証処理をインタフェースユニット12のCPU12aが実行する例について説明するが、インタフェースユニット12のCPU12a、コントローラユニット14のCPU14a、及びプリンタエンジン制御ユニット16のCPU16aの少なくとも1つのCPU(すなわち少なくとも1つの電子ユニット)が同様の処理を実行してもよい。
【0021】
図3に示すように、まずステップ100で、版数情報取得処理を実行する。この版数情報取得処理について図4を参照して説明すると、まずステップ110でコントローラユニット版数YYYYをインタフェースユニット12に送信する要求を、コントローラユニット14に出力(送信)する。
【0022】
ここで、コントローラユニット14がこの要求を受信すると、コントローラユニット14(のCPU14a)は、図5(A)に示す版数情報応答処理を実行する。この版数情報応答処理について図5(A)を参照して説明すると、まずステップ112で自身(自己)のコントローラユニット版数YYYYを取得する。
【0023】
次のステップ114では、上記ステップ112で取得されたコントローラユニット版数YYYYを、インタフェースユニット12に出力する。これにより、インタフェースユニット12によって、コントローラユニット14からコントローラユニット版数YYYYが受信される。そして、版数情報応答処理を終了する。
【0024】
次のステップ116(図4参照)では、コントローラユニット14からコントローラユニット版数YYYYを受信するまで待機し、コントローラユニット版数YYYYを受信した場合には次のステップ118へ進む。
【0025】
次のステップ118では、変数P2(2)にコントローラユニット版数YYYYの値をセット(設定)する。
【0026】
次のステップ120では、プリンタエンジン制御ユニット版数ZZZZをインタフェースユニット12に送信する要求を、コントローラユニット14に出力する。
【0027】
ここで、コントローラユニット14がこの要求を受信すると、コントローラユニット14は、図5(B)に示す版数情報出力処理を実行する。この版数情報出力処理について図5(B)を参照して説明すると、まずステップ122で、プリンタエンジン制御ユニット版数ZZZZをコントローラユニット14に送信する要求を、プリンタエンジン制御ユニット16に出力する。ここで、プリンタエンジン制御ユニット16がこの要求を受信すると、プリンタエンジン制御ユニット16は、図6(A)に示す版数情報応答処理を実行する。この版数情報応答処理について図6(A)を参照して説明すると、まずステップ124で自身のプリンタエンジン制御ユニット版数ZZZZを取得する。そして、次のステップ126では、上記ステップ124で取得されたプリンタエンジン制御ユニット版数ZZZZを、コントローラユニット14に出力する。これにより、コントローラユニット14によって、プリンタエンジン制御ユニット16からプリンタエンジン制御ユニット版数ZZZZが受信される。そして、版数情報応答処理を終了する。
【0028】
次のステップ128(図5(B)参照)では、プリンタエンジン制御ユニット16からプリンタエンジン制御ユニット版数ZZZZを受信するまで待機し、プリンタエンジン制御ユニット版数ZZZZを受信した場合には次のステップ130へ進む。
【0029】
ステップ130では、受信したプリンタエンジン制御ユニット版数ZZZZを、インタフェースユニット12に出力する。これにより、インタフェースユニット12によって、コントローラユニット14からプリンタエンジン制御ユニット版数ZZZZが受信される。すなわち、これにより、インタフェースユニット12は、コントローラユニット14を介して、プリンタエンジン制御ユニット16からプリンタエンジン制御ユニット版数ZZZZを受信する。そして、版数情報出力処理を終了する。なお、インタフェースユニット12は、直接プリンタエンジン制御ユニット16からプリンタエンジン制御ユニット版数ZZZZを取得するようにしてもよい。
【0030】
次のステップ132(図4参照)では、コントローラユニット14からプリンタエンジン制御ユニット版数ZZZZを受信するまで待機し、プリンタエンジン制御ユニット版数ZZZZを受信した場合には次のステップ134へ進む。
【0031】
次のステップ134では、変数P3(3)にプリンタエンジン制御ユニット版数ZZZZの値をセット(設定)する。
【0032】
次のステップ136では、相手方サポート版数xxxx及び相手方サポート版数z´z´z´z´をインタフェースユニット12に送信する要求を、コントローラユニット14に出力(送信)する。
【0033】
ここで、コントローラユニット14がこの要求を受信すると、コントローラユニット14は、図7(A)に示す相手方サポート版数情報応答処理を実行する。この版数情報応答処理について図7(A)を参照して説明すると、まずステップ138で自身の相手方サポート版数xxxx及び相手方サポート版数z´z´z´z´を取得する。
【0034】
次のステップ140では、上記ステップ138で取得された相手方サポート版数xxxx及び相手方サポート版数z´z´z´z´を、インタフェースユニット12に出力する。これにより、インタフェースユニット12によって、コントローラユニット14から相手方サポート版数xxxx及び相手方サポート版数z´z´z´z´が受信される。そして、相手方サポート版数情報応答処理を終了する。
【0035】
次のステップ142(図4参照)では、コントローラユニット14から相手方サポート版数xxxx及び相手方サポート版数z´z´z´z´を受信するまで待機し、相手方サポート版数xxxx及び相手方サポート版数z´z´z´z´を受信した場合には次のステップ144へ進む。
【0036】
次のステップ144では、変数P2(1)に相手方サポート版数xxxxの値をセットすると共に、変数P2(3)に相手方サポート版数z´z´z´z´の値をセットする。
【0037】
次のステップ146では、相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´をインタフェースユニット12に送信する要求を、コントローラユニット14に出力(送信)する。
【0038】
ここで、コントローラユニット14がこの要求を受信すると、コントローラユニット14は、図7(B)に示す相手方サポート版数情報出力処理を実行する。この相手方サポート版数情報出力処理について図7(B)を参照して説明すると、まずステップ148で、相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´をコントローラユニット14に送信する要求を、プリンタエンジン制御ユニット16に出力する。プリンタエンジン制御ユニット16がこの要求を受信すると、プリンタエンジン制御ユニット16は、図6(B)に示す相手方サポート版数情報応答処理を実行する。この相手方サポート版数情報応答処理について図6(B)を参照して説明すると、まずステップ150で自身の相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´を取得する。そして、次のステップ152では、上記ステップ150で取得された相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´を、コントローラユニット14に出力する。これにより、コントローラユニット14によって、プリンタエンジン制御ユニット16から相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´が受信される。そして、相手方サポート版数情報応答処理を終了する。
【0039】
次のステップ154(図7(B)参照)では、プリンタエンジン制御ユニット16から相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´を受信するまで待機し、相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´を受信した場合には次のステップ156へ進む。
【0040】
ステップ156では、受信した相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´を、インタフェースユニット12に出力する。これにより、インタフェースユニット12によって、コントローラユニット14から相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´が受信される。すなわち、これにより、インタフェースユニット12は、コントローラユニット14を介して、プリンタエンジン制御ユニット16から相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´を受信する。そして、相手方サポート版数情報出力処理を終了する。なお、インタフェースユニット12は、直接プリンタエンジン制御ユニット16から相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´を取得してもよい。
【0041】
次のステップ158(図4参照)では、コントローラユニット14から相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´を受信するまで待機し、相手方サポート版数x´x´x´x´及び相手方サポート版数y´y´y´y´を受信した場合には次のステップ160へ進む。
【0042】
次のステップ160では、変数P3(1)に相手方サポート版数x´x´x´x´の値をセット(設定)すると共に、変数P3(2)に相手方サポート版数y´y´y´y´の値をセットする。
【0043】
次のステップ162では、自身のインタフェースユニット版数XXXX、並びに相手方サポート版数xxxx及び相手方サポート版数yyyyを取得する。
【0044】
次のステップ164では、変数P1(1)に、上記ステップ162で取得されたインタフェースユニット版数XXXXをセットし、変数P1(2)に、上記ステップ162で取得された相手方サポート版数xxxxをセットし、変数P1(3)に、上記ステップ162で取得された相手方サポート版数yyyyをセットする。そして、版数情報取得処理を終了する。
【0045】
上記版数情報取得処理をインタフェースユニット12が実行したことにより、インタフェースユニット12は、各電子ユニット(12、14、16)の記憶手段としてのメモリ(12b、14b、16b)に記憶された自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報を取得することができる。これにより、インタフェースユニット12のメモリ12bには、図8に示すように、各値がセットされた各変数が記憶される。すなわち、変数P1(1)にインタフェースユニット版数XXXX、変数P1(2)に相手方サポート版数yyyy、変数P1(3)に相手方サポート版数zzzz、変数P2(1)に相手方サポート版数xxxx、変数P2(2)にコントローラユニット版数YYYY、変数P2(3)に相手方サポート版数z´z´z´z´、変数P3(1)に相手方サポート版数x´x´x´x´、変数P3(2)に相手方サポート版数y´y´y´y´、及び変数P3(3)にエンジンプリンタ制御ユニット版数ZZZZがセットされ、これらの変数がメモリ12bに記憶される。
【0046】
次のステップ102(図3参照)では、互換性検証処理を実行する。この互換性検証処理について図9を参照して説明すると、まずステップ166で変数P1(1)の値が変数P2(1)の値以上であるか否かを判定する。すなわち大小比較をしている。
【0047】
ステップ166で、変数P1(1)の値が変数P2(1)の値以上であると判定された場合には、コントローラユニット14が、インタフェースユニット12との整合性があると判断して、次のステップ168へ進む。一方、ステップ166で、変数P1(1)の値が変数P2(1)の値以上でないと判定された場合には、コントローラユニット14が、インタフェースユニット12との整合性がなく、インタフェースユニット12とコントローラユニット14との互換性がないと判断して、次のステップ182へ進む。
【0048】
ステップ168では、変数P1(1)の値が変数P3(1)の値以上であるか否かを判定する。
【0049】
ステップ168で変数P1(1)の値が変数P3(1)の値以上であると判定された場合には、プリンタエンジン制御ユニット16が、インタフェースユニット12との整合性があると判断して、次のステップ170へ進む。一方、ステップ168で、変数P1(1)の値が変数P3(1)の値以上でないと判定された場合には、プリンタエンジン制御ユニット16が、インタフェースユニット12との整合性がなく、インタフェースユニット12とプリンタエンジン制御ユニット16との互換性がないと判断して、次のステップ182へ進む。
【0050】
ステップ170では、変数P2(2)の値が変数P1(2)の値以上であるか否かを判定する。
【0051】
ステップ170で変数P2(2)の値が変数P1(2)の値以上であると判定された場合には、インタフェースユニット12が、コントローラユニット14との整合性があると判断して、次のステップ172へ進む。一方、ステップ170で、変数P2(2)の値が変数P1(2)の値以上でないと判定された場合には、インタフェースユニット12が、コントロールユニット14との整合性がなく、インタフェースユニット12とコントロールユニット14との互換性がないと判断して、次のステップ182へ進む。
【0052】
ステップ172では、変数P2(2)の値が変数P3(2)の値以上であるか否かを判定する。
【0053】
ステップ172で変数P2(2)の値が変数P3(2)の値以上であると判定された場合には、プリンタエンジン制御ユニット16が、コントローラユニット14との整合性があると判断して、次のステップ174へ進む。一方、ステップ172で、変数P2(2)の値が変数P3(2)の値以上でないと判定された場合には、プリンタエンジン制御ユニット16が、コントロールユニット14との整合性がなく、プリンタエンジン制御ユニット16とコントロールユニット14との互換性がないと判断して、次のステップ182へ進む。
【0054】
ステップ174では、変数P3(3)の値が変数P1(3)の値以上であるか否かを判定する。
【0055】
ステップ174で変数P3(3)の値が変数P1(3)の値以上であると判定された場合には、インタフェースユニット12が、プリンタエンジン制御ユニット16との整合性があると判断して、次のステップ176へ進む。一方、ステップ174で、変数P3(3)の値が変数P1(3)の値以上でないと判定された場合には、インタフェースユニット12が、プリンタエンジン制御ユニット16との整合性がなく、インタフェースユニット12とプリンタエンジン制御ユニット16との互換性がないと判断して、次のステップ182へ進む。
【0056】
ステップ176では、変数P3(3)の値が変数P2(3)の値以上であるか否かを判定する。
【0057】
ステップ176で変数P3(3)の値が変数P2(3)の値以上であると判定された場合には、コントローラユニット14が、プリンタエンジン制御ユニット16との整合性があり、この場合では、全ての電子ユニット間で互換性があると判断して、次のステップ178へ進む。一方、ステップ176で、変数P3(3)の値が変数P2(3)の値以上でないと判定された場合には、コントローラユニット14が、プリンタエンジン制御ユニット16との整合性がなく、コントローラユニット14とプリンタエンジン制御ユニット16との互換性がないと判断して、次のステップ182へ進む。
【0058】
ステップ178では、互換性があることを示す検証結果(例えば、「互換性あり」のメッセージ)をコントローラユニット14に通知(送信)する。
【0059】
次のステップ180では、インタフェースユニット12の制御プログラムを正常起動させる。そして、互換性検証処理を終了する。
【0060】
一方、ステップ182に進んだ場合には、互換性がないことを示す検証結果(例えば、「互換性なし」のメッセージ)をコントローラユニット14に通知(送信)する。
【0061】
次のステップ184では、互換性がないことを示す情報(例えば「互換性なし」の情報)が表示(エラー表示)されるように、コントローラユニット14を介してU/I20の表示を制御する。これにより、U/I20に、互換性がないことを示す情報が表示される。
【0062】
次のステップ186では、インタフェースユニット12の制御プログラムの起動を停止させる。そして、互換性検証処理を終了する。
【0063】
一方、コントローラユニット14(のCPU14a)は、検証結果を受信すると(検証結果が通知されると)図10(A)に示す検証結果受信処理を実行する。
【0064】
この検証結果受信処理について図10(A)を参照して説明する。まず、ステップ188では、受信した検証結果をプリンタエンジン制御ユニット16に送信する。
【0065】
次のステップ190では、受信した検証結果が互換性があることを示すか否かを判定する。
【0066】
ステップ190で、検証結果が、互換性があることを示すと判定された場合には、次のステップ192で、コントローラユニット14の制御プログラムを正常起動させる。そして、検証結果受信処理を終了する。
【0067】
一方、ステップ190で検証結果が互換性があることを示さない(すなわち、互換性がないことを示している)と判定された場合には、次のステップ194で、コントローラユニット14の制御プログラムの起動を停止させる。そして、互換性検証処理を終了する。
【0068】
同様に、プリンタエンジン制御ユニット16(のCPU16a)は、検証結果を受信すると(検証結果が通知されると)図10(B)に示す検証結果受信処理を実行する。
【0069】
この検証結果受信処理について図10(B)を参照して説明する。まず、ステップ196で、受信した検証結果が、互換性があることを示すか否かを判定する。
【0070】
ステップ196で、検証結果が、互換性があることを示すと判定された場合には、次のステップ198で、プリンタエンジン制御ユニット16の制御プログラムを正常起動させる。そして、検証結果受信処理を終了する。
【0071】
一方、ステップ196で、検証結果が、互換性があることを示さない(すなわち、互換性がないことを示している)と判定された場合には、次のステップ199で、プリンタエンジン制御ユニット16の制御プログラムの起動を停止させる。そして、互換性検証処理を終了する。
【0072】
以上、説明したように、ステップ166〜176で、取得手段に対応する上記ステップ100(版数情報取得処理)で取得された各電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報の各々に基づいて、電子ユニット間の各々の互換性があるか否かが判別される。そして、互換性がないと判別された場合(ステップ166〜176の何れかで否定判定がされた場合)には、ステップ184で、互換性がないことを報知手段としてのU/I20が、報知(上記の場合では具体的には表示)するように制御される。なお、ステップ166〜176は判別手段に対応し、ステップ184は報知制御手段に対応する。
【0073】
本実施の形態の電子装置によれば、例えば、インタフェースユニット12を交換した場合に、ステップ100で実行された版数情報取得処理によって、各変数の値がP1(1)=V01L02(ここで、VabLcdを比較可能な版数で表すとabcdとなる。すなわち、この場合にはXXXX=0102となる。以下同様)、P1(2)=V01L02、P1(3)=V01L02、P2(1)=V02L01、P2(2)=V02L01、P2(3)=V02L01、P3(1)=V02L01、P3(2)=V02L01、P3(3)=V02L01となった場合には、ステップ166で否定判定されて、ステップ184で互換性がないことが報知されるように報知手段が制御される。なお、Vはバージョンを表し、Lはそのバージョン内でのレベルを表す。
【0074】
また、本実施の形態では、インタフェースユニット12の制御プログラム、コントローラユニット14の制御プログラム、及びプリンタエンジン制御ユニット16の制御プログラムの起動時(すなわち起動が開始された際)に、インタフェースユニット12のCPU12aが上記の各処理を実行する例について説明したが、この各処理を、インタフェースユニット12のCPU12a、コントローラユニット14のCPU14a、及びプリンタエンジン制御ユニット16のCPU16aの少なくとも2つ以上のCPU(すなわち少なくとも2つ以上の電子ユニット)で同様の処理を分散させるようにして実行するようにしてもよい。
【0075】
また、本実施の形態では、電子ユニットが3個(3台)の場合について説明したが、電子ユニットの個数が4個以上の場合であっても、本実施の形態における各処理と同様の処理を行うことで、電子ユニット間の各々の互換性があるか否かを判別することができる。
【0076】
[第2の実施の形態]
次に第2の実施の形態について説明する。なお、第1の実施の形態と同様の構成及び処理については同一の符号を付して、説明を省略する場合がある。本実施の形態では、インタフェースユニット12の制御プログラムには、図11(A)に示すように、版数履歴R1、及び内部起動版数K1が設けられている。版数履歴R1は、インタフェースユニット12の制御プログラムの版数の履歴(更新履歴)であり、例えば、インタフェースユニット12の制御プログラムの版数を「V02L01」とした場合に、版数履歴R1は、V02L01/V01L02/V01L01となり、V02L01とV01L02とV01L01が存在するものとする。以下で説明する版数履歴R2及びR3についても同様とする。また、内部起動版数K1は、インタフェースユニット12の制御プログラムが現在起動している版数を表す。以下で説明する内部起動版数K2及びK3についても同様とする。
【0077】
また、コントローラユニット14の制御プログラムには、図11(B)に示すように、版数履歴R2、及び内部起動版数K2が設けられている。更に、プリンタエンジン制御ユニット16の制御プログラムには、図11(C)に示すように、版数履歴R3、及び内部起動版数K3が設けられている。
【0078】
ここで、例えば、インタフェースユニット12、コントローラユニット14、及びプリンタエンジン制御ユニット16の少なくとも1つの電子ユニットの交換後、インタフェースユニット12の制御プログラム、コントローラユニット14の制御プログラム、及びプリンタエンジン制御ユニット16の制御プログラムの起動時(すなわち起動が開始された際)に本実施の形態において実行される図12に示す処理について説明する。なお、本実施の形態では、この図12に示す処理をインタフェースユニット12のCPU12aが実行する例について説明するが、インタフェースユニット12のCPU12a、コントローラユニット14のCPU14a、及びプリンタエンジン制御ユニット16のCPU16aの少なくとも1つのCPU(すなわち少なくとも1つの電子ユニット)が同様の処理を実行するようにしてもよい。
【0079】
図12に示すように、まずステップ100で、第1の実施の形態と同様の版数情報取得処理を実行する。
【0080】
次のステップ200では、第1の互換性検証処理を実行する。ここで、この第1の互換性検証処理について図13を参照して説明すると、まずステップ166で変数P1(1)の値が変数P2(1)の値以上であるか否かを判定する。すなわち大小比較をしている。
【0081】
ステップ166で、変数P1(1)の値が変数P2(1)の値以上であると判定された場合には、コントローラユニット14が、インタフェースユニット12との整合性があると判断して、次のステップ168へ進む。一方、ステップ166で、変数P1(1)の値が変数P2(1)の値以上でないと判定された場合には、コントローラユニット14が、インタフェースユニット12との整合性がなく、インタフェースユニット12とコントローラユニット14との互換性がないと判断して、次のステップ204へ進む。
【0082】
ステップ168では、変数P1(1)の値が変数P3(1)の値以上であるか否かを判定する。
【0083】
ステップ168で変数P1(1)の値が変数P3(1)の値以上であると判定された場合には、プリンタエンジン制御ユニット16が、インタフェースユニット12との整合性があると判断して、次のステップ170へ進む。一方、ステップ168で、変数P1(1)の値が変数P3(1)の値以上でないと判定された場合には、プリンタエンジン制御ユニット16が、インタフェースユニット12との整合性がなく、インタフェースユニット12とプリンタエンジン制御ユニット16との互換性がないと判断して、次のステップ204へ進む。
【0084】
ステップ170では、変数P2(2)の値が変数P1(2)の値以上であるか否かを判定する。
【0085】
ステップ170で変数P2(2)の値が変数P1(2)の値以上であると判定された場合には、インタフェースユニット12が、コントローラユニット14との整合性があると判断して、次のステップ172へ進む。一方、ステップ170で、変数P2(2)の値が変数P1(2)の値以上でないと判定された場合には、インタフェースユニット12が、コントロールユニット14との整合性がなく、インタフェースユニット12とコントロールユニット14との互換性がないと判断して、次のステップ204へ進む。
【0086】
ステップ172では、変数P2(2)の値が変数P3(2)の値以上であるか否かを判定する。
【0087】
ステップ172で変数P2(2)の値が変数P3(2)の値以上であると判定された場合には、プリンタエンジン制御ユニット16が、コントローラユニット14との整合性があると判断して、次のステップ174へ進む。一方、ステップ172で、変数P2(2)の値が変数P3(2)の値以上でないと判定された場合には、プリンタエンジン制御ユニット16が、コントロールユニット14との整合性がなく、プリンタエンジン制御ユニット16とコントロールユニット14との互換性がないと判断して、次のステップ204へ進む。
【0088】
ステップ174では、変数P3(3)の値が変数P1(3)の値以上であるか否かを判定する。
【0089】
ステップ174で変数P3(3)の値が変数P1(3)の値以上であると判定された場合には、インタフェースユニット12が、プリンタエンジン制御ユニット16との整合性があると判断して、次のステップ176へ進む。一方、ステップ174で、変数P3(3)の値が変数P1(3)の値以上でないと判定された場合には、インタフェースユニット12が、プリンタエンジン制御ユニット16との整合性がなく、インタフェースユニット12とプリンタエンジン制御ユニット16との互換性がないと判断して、次のステップ204へ進む。
【0090】
ステップ176では、変数P3(3)の値が変数P2(3)の値以上であるか否かを判定する。
【0091】
ステップ176で変数P3(3)の値が変数P2(3)の値以上であると判定された場合には、コントローラユニット14が、プリンタエンジン制御ユニット16との整合性があり、この場合では、全ての電子ユニット間で互換性があると判断して、次のステップ202へ進む。一方、ステップ176で、変数P3(3)の値が変数P2(3)の値以上でないと判定された場合には、コントローラユニット14が、プリンタエンジン制御ユニット16との整合性がなく、コントローラユニット14とプリンタエンジン制御ユニット16との互換性がないと判断して、次のステップ204へ進む。
【0092】
ステップ202では、互換性があることを示す値(例えば1)を、メモリ12bに記憶された互換性検証結果フラグ(例えば1ビットのフラグ)に設定する。そして、第1の互換性検証処理を終了する。
【0093】
一方、ステップ204では、互換性がないことを示す値(例えば0)を上記の互換性検証結果フラグに設定する。そして、第1の互換性検証処理を終了する。
【0094】
次のステップ206(図12参照)では、メモリ12bに記憶された互換性検証結果フラグの値を読み取り、読み取った値が、互換性があることを示す値(例えば1)であるか否かを判定する。
【0095】
ステップ206で、互換性があることを示す値であると判定された場合には、次のステップ178に進む。
【0096】
ステップ178では、第1の実施の形態と同様に、互換性があることを示す検証結果(例えば、「互換性あり」のメッセージ)をコントローラユニット14に通知(送信)する。これにより、第1の実施の形態と同様に、コントローラユニット14の制御プログラム及びプリンタエンジン制御ユニット16の制御プログラムが正常起動される。
【0097】
次のステップ180では、第1の実施の形態と同様に、インタフェースユニット12の制御プログラムを正常起動させる。
【0098】
一方、ステップ206で、互換性があることを示す値ではない(すなわち、互換性がないことを示す値である)と判定された場合には、次のステップ208へ進む。
【0099】
ステップ208では、版数履歴及び内部起動版数情報取得処理を実行する。この版数履歴及び内部起動版数情報取得処理について図14を参照して説明すると、まずステップ210で版数履歴R2をインタフェースユニット12に送信する要求を、コントローラユニット14に出力(送信)する。
【0100】
ここで、コントローラユニット14がこの要求を受信すると、コントローラユニット14(のCPU14a)は、図15(A)に示す版数履歴情報応答処理を実行する。この版数履歴情報応答処理について図15(A)を参照して説明すると、まずステップ212で自身(自己)の版数履歴R2を取得する。
【0101】
次のステップ214では、上記ステップ212で取得された版数履歴R2を、インタフェースユニット12に出力する。これにより、インタフェースユニット12によって、コントローラユニット14から版数履歴R2が受信される。そして、版数履歴情報応答処理を終了する。
【0102】
次のステップ216(図14参照)では、コントローラユニット14から版数履歴R2を受信するまで待機し、版数履歴R2を受信した場合には次のステップ218へ進む。
【0103】
次のステップ218では、変数P2(R)に版数履歴R2の値をセット(設定)する。
【0104】
次のステップ220では、版数履歴R3をインタフェースユニット12に送信する要求を、コントローラユニット14に出力する。
【0105】
ここで、コントローラユニット14がこの要求を受信すると、コントローラユニット14は、図15(B)に示す版数履歴情報出力処理を実行する。この版数履歴情報出力処理について図15(B)を参照して説明すると、まずステップ222で、版数履歴R3をコントローラユニット14に送信する要求を、プリンタエンジン制御ユニット16に出力する。プリンタエンジン制御ユニット16がこの要求を受信すると、プリンタエンジン制御ユニット16は、図16(A)に示す版数履歴情報応答処理を実行する。この版数履歴情報応答処理について図16(A)を参照して説明すると、まずステップ224で自身の版数履歴R3を取得する。そして、次のステップ226で、上記ステップ224で取得された版数履歴R3を、コントローラユニット14に出力する。これにより、コントローラユニット14によって、プリンタエンジン制御ユニット16から版数履歴R3が受信される。そして、版数履歴情報応答処理を終了する。
【0106】
次のステップ228(図15(B)参照)では、プリンタエンジン制御ユニット16から版数履歴R3を受信するまで待機し、版数履歴R3を受信した場合には次のステップ230へ進む。
【0107】
ステップ230では、受信した版数履歴R3を、インタフェースユニット12に出力する。これにより、インタフェースユニット12によって、コントローラユニット14から版数履歴R3が受信される。すなわち、インタフェースユニット12は、コントローラユニット14を介して、プリンタエンジン制御ユニット16から版数履歴R3を受信する。そして、版数履歴情報出力処理を終了する。なお、インタフェースユニット12は、直接プリンタエンジン制御ユニット16から版数履歴R3を取得するようにしてもよい。
【0108】
次のステップ232(図14参照)では、コントローラユニット14から版数履歴R3を受信するまで待機し、版数履歴R3を受信した場合には次のステップ234へ進む。
【0109】
次のステップ234では、変数P3(R)に版数履歴R3の値をセット(設定)する。
【0110】
次のステップ236では、内部起動版数K2をインタフェースユニット12に送信する要求を、コントローラユニット14に出力(送信)する。
【0111】
ここで、コントローラユニット14がこの要求を受信すると、コントローラユニット14は、図17(A)に示す内部起動版数情報応答処理を実行する。この内部起動版数情報応答処理について図17(A)を参照して説明すると、まずステップ238で自身の内部起動版数K2を取得する。
【0112】
次のステップ240では、上記ステップ238で取得された内部起動版数K2を、インタフェースユニット12に出力する。これにより、インタフェースユニット12によって、コントローラユニット14から内部起動版数K2が受信される。そして、内部起動版数情報応答処理を終了する。
【0113】
次のステップ242(図14参照)では、コントローラユニット14から内部起動版数K2を受信するまで待機し、内部起動版数K2を受信した場合には次のステップ244へ進む。
【0114】
次のステップ244では、変数P2(K)に内部起動版数K2の値をセットする。
【0115】
次のステップ246では、内部起動版数K3をインタフェースユニット12に送信する要求を、コントローラユニット14に出力(送信)する。
【0116】
ここで、コントローラユニット14がこの要求を受信すると、コントローラユニット14は、図17(B)に示す内部起動版数情報出力処理を実行する。この内部起動版数情報出力処理について図17(B)を参照して説明すると、まずステップ248で、内部起動版数K3をコントローラユニット14に送信する要求を、プリンタエンジン制御ユニット16に出力する。プリンタエンジン制御ユニット16がこの要求を受信すると、プリンタエンジン制御ユニット16は、図16(B)に示す内部起動版数情報応答処理を実行する。この内部起動版数情報応答処理について図16(B)を参照して説明すると、まずステップ250で自身の内部起動版数K3を取得する。そして、次のステップ252では、上記ステップ250で取得された内部起動版数K3を、コントローラユニット14に出力する。これにより、コントローラユニット14によって、プリンタエンジン制御ユニット16から内部起動版数K3が受信される。そして、内部起動版数情報応答処理を終了する。
【0117】
次のステップ254(図17(B)参照)では、プリンタエンジン制御ユニット16から内部起動版数R3を受信するまで待機し、内部起動版数K3を受信した場合には次のステップ256へ進む。
【0118】
ステップ256では、受信した内部起動版数K3を、インタフェースユニット12に出力する。これにより、インタフェースユニット12によって、コントローラユニット14から内部起動版数K3が受信される。すなわち、インタフェースユニット12は、コントローラユニット14を介して、プリンタエンジン制御ユニット16から内部起動版数K3を受信する。そして、内部起動版数情報出力処理を終了する。なお、インタフェースユニット12は、直接プリンタエンジン制御ユニット16から内部起動版数K3を取得するようにしてもよい。
【0119】
次のステップ258(図14参照)では、コントローラユニット14から内部起動版数K3を受信するまで待機し、内部起動版数K3を受信した場合には次のステップ260へ進む。
【0120】
次のステップ260では、変数P3(K)に内部起動版数K3の値をセットする。
【0121】
次のステップ262では、自身の版数履歴R1、及び内部起動版数K1を取得する。
【0122】
次のステップ264では、変数P1(R)に、上記ステップ262で取得された版数履歴R1をセットし、変数P1(K)に、上記ステップ262で取得された内部起動版数K1をセットする。そして、版数履歴及び内部起動版数情報取得処理を終了する。
【0123】
上記版数情報取得処理をインタフェースユニット12が実行したことにより、インタフェースユニット12によって、各電子ユニット(12、14、16)の記憶手段としてのメモリ(12b、14b、16b)に記憶された各版数履歴(R1、R2、R3)及び各内部起動版数(K1、K2、K3)が取得される。これにより、インタフェースユニット12のメモリ12bには、図18に示すように、各値がセットされた各変数が記憶される。すなわち、変数P1(R)に版数履歴R1、変数P1(K)に内部起動版数K1、変数P2(R)に版数履歴R2、変数P2(K)に内部起動版数K2、変数P3(R)に版数履歴R3、及び変数P3(K)に内部起動版数K3がセットされ、これらの変数がメモリ12bに記憶される。
【0124】
次のステップ266(図12参照)では、レベルアップ判定処理を実行する。レベルアップ判定処理について図19を参照して説明すると、まずステップ268で、変数P1(R)が変数P1(K)より大きいか否かを判定する。すなわち、大小比較をしている。ここで、変数P1(R)が変数P1(K)より大きいとは、本実施の形態では、変数P1(R)に含まれる最大の版数が、変数P1(K)より大きいことをいう。以下、同様である。
【0125】
ステップ268で、変数P1(R)が変数P1(K)以下である(すなわち、本実施の形態では変数P1(R)に含まれる最大の版数と変数P1(K)とが同じである)と判定された場合には、ステップ272へ進む。一方、ステップ268で、変数P1(R)が変数P1(K)より大きいと判定された場合には、次のステップ270へ進む。
【0126】
ステップ270では、自身のインタフェースユニット版数の初期化を行う。具体的には、例えば、変数P1(R)の版数履歴R1が示す最大の版数に、変数P1(1)及び変数P1(K)の値を変更することにより、初期化を行う。なお、変数P1(1)及び変数P1(K)の値が変更されたことにより、変数P1(2)及び変数P1(3)の値も変更される。
【0127】
次のステップ272では、変数P2(R)が変数P2(K)より大きいか否かを判定する。
【0128】
ステップ272で、変数P2(R)が変数P2(K)以下である(すなわち、変数P2(R)に含まれる最大の版数と変数P2(K)とが同じである)と判定された場合には、ステップ276へ進む。一方、ステップ272で、変数P2(R)が変数P2(K)より大きいと判定された場合には、次のステップ274へ進む。
【0129】
ステップ274では、コントローラユニット版数の初期化を行うための指示を、コントローラユニット14に出力(送信)する。コントローラユニット14は、この指示を受信すると、図20(A)に示す初期化処理を実行する。この初期化処理について図20(A)を参照して説明すると、ステップ275で、自身のコントローラユニット版数の初期化を行う。具体的には、例えば、変数P2(R)の版数履歴R2が示す最大の版数に、変数P2(2)及び変数P2(K)の値を変更することにより、初期化を行う。なお、変数P2(2)及び変数P2(K)の値が変更されたことにより、変数P2(1)及び変数P2(3)の値も変更される。そして、初期化処理を終了する。
【0130】
次のステップ276(図19参照)では、変数P3(R)が変数P3(K)より大きいか否かを判定する。
【0131】
ステップ276で、変数P3(R)が変数P3(K)以下である(すなわち、変数P3(R)に含まれる最大の版数と変数P3(K)とが同じである)と判定された場合には、レベルアップ判定処理を終了する。一方、ステップ276で、変数P3(R)が変数P3(K)より大きいと判定された場合には、次のステップ278へ進む。
【0132】
ステップ278では、プリンタエンジン制御ユニット版数の初期化を行うための指示を、コントローラユニット14に出力(送信)して、レベルアップ判定処理を終了する。コントローラユニット14は、この指示を受信すると、受信した指示をプリンタエンジン制御ユニット16に出力する。プリンタエンジン制御ユニット16は、この指示を受信すると、図20(B)に示す初期化処理を実行する。この初期化処理について図20(B)を参照して説明すると、ステップ279で、自身のプリンタエンジン制御ユニット版数の初期化を行う。具体的には、例えば、変数P3(R)の版数履歴R3が示す最大の版数に、変数P3(3)及び変数P3(K)の値を変更することにより、初期化を行う。なお、変数P3(3)及び変数P3(K)の値が変更されたことにより、変数P3(1)及び変数P3(3)の値も変更される。そして、初期化処理を終了する。
【0133】
図12に戻り、説明を続ける。ステップ266でのレベルアップ判定処理が終了すると、次のステップ290で、上述したステップ100と同一の版数情報取得処理を再び実行する。
【0134】
次のステップ292では、第2の互換性検証処理(レベルダウン処理)を実行する。この第2の互換性検証処理を図21を参照して説明すると、まずステップ294で、変数P1(1)の値が変数P2(1)の値以上であるか否かを判定する。すなわち大小比較をしている。
【0135】
ステップ294で、変数P1(1)の値が変数P2(1)の値以上であると判定された場合には、コントローラユニット14が、インタフェースユニット12との整合性があると判断して、次のステップ296へ進む。一方、ステップ294で、変数P1(1)の値が変数P2(1)の値以上でないと判定された場合には、コントローラユニット14が、インタフェースユニット12との整合性がなく、インタフェースユニット12とコントローラユニット14との互換性がないので、コントローラユニット14のレベルダウンを行う必要があると判断して、次のステップ298へ進む。
【0136】
ステップ298では、コントローラユニット14のレベルダウンを行うためのレベルダウン指示を、コントローラユニット14に出力(送信)する。コントローラユニット14は、このレベルダウン指示を受信すると、図22(A)に示すレベルダウン処理を実行する。このレベルダウン処理について図22(A)を参照して説明すると、ステップ300で、変数P2(R)が示す内容に基づいて、レベルを1つ下げる。具体的には、例えば、変数P2(R)が「V02L01/V01L02/V01L01」である場合に、レベルダウン前の変数P2(2)がV02L01であるときには、ステップ300での処理によって、レベルが1つ下がり変数P2(2)がV01L02となる。以下の処理についても同様である。
【0137】
次のステップ302(図21参照)では、上記のステップ204と同様に、互換性がないことを示す値(例えば0)を上記の互換性検証結果フラグに上書きして、互換性検証結果フラグの値を更新する。そして、第2の互換性検証処理を終了する。
【0138】
一方、ステップ296では、変数P1(1)の値が変数P3(1)の値以上であるか否かを判定する。
【0139】
ステップ296で、変数P1(1)の値が変数P3(1)の値以上であると判定された場合には、プリンタエンジン制御ユニット16が、インタフェースユニット12との整合性があると判断して、次のステップ304へ進む。一方、ステップ296で、変数P1(1)の値が変数P3(1)の値以上でないと判定された場合には、プリンタエンジン制御ユニット16が、インタフェースユニット12との整合性がなく、インタフェースユニット12とプリンタエンジン制御ユニット16との互換性がないので、プリンタエンジン制御ユニット16のレベルダウンを行う必要があると判断して、次のステップ306へ進む。
【0140】
ステップ306では、プリンタエンジン制御ユニット16のレベルダウンを行うためのレベルダウン指示を、コントローラユニット12に出力(送信)して、次のステップ302へ進む。コントローラユニット12は、このレベルダウン指示を受信すると、受信されたレベルダウン指示をプリンタエンジン制御ユニット16に出力する。プリンタエンジン制御ユニット16は、このレベルダウン指示を受信すると、図22(B)に示すレベルダウン処理を実行する。このレベルダウン処理について図22(B)を参照して説明すると、ステップ308で、上記のステップ300と同様に、変数P3(R)が示す内容に基づいて、変数P3(3)のレベルを1つ下げる。そして、レベルダウン処理を終了する。
【0141】
次のステップ304(図21参照)では、変数P2(2)の値が変数P1(2)の値以上であるか否かを判定する。
【0142】
ステップ304で、変数P2(2)の値が変数P1(2)の値以上であると判定された場合には、インタフェースユニット12が、コントローラユニット14との整合性があると判断して、次のステップ310へ進む。一方、ステップ304で、変数P2(2)の値が変数P1(2)の値以上でないと判定された場合には、インタフェースユニット12が、コントローラユニット14との整合性がなく、インタフェースユニット12とコントローラユニット14との互換性がないので、インタフェースユニット12のレベルダウンを行う必要があると判断して、次のステップ312へ進む。
【0143】
ステップ312では、上記のステップ300と同様に、変数P1(R)が示す内容に基づいて、変数P1(1)のレベルを1つ下げる。そして、ステップ302へ進む。
【0144】
ステップ310では、変数P2(2)の値が変数P1(2)の値以上であるか否かを判定する。
【0145】
ステップ310で、変数P2(2)の値が変数P3(2)の値以上であると判定された場合には、プリンタエンジン制御ユニット16が、コントローラユニット14との整合性があると判断して、次のステップ314へ進む。一方、ステップ310で、変数P2(2)の値が変数P3(2)の値以上でないと判定された場合には、プリンタエンジン制御ユニット16が、コントローラユニット14との整合性がなく、プリンタエンジン制御ユニット16とコントローラユニット14との互換性がないので、プリンタエンジン制御ユニット16のレベルダウンを行う必要があると判断して、次のステップ306へ進む。
【0146】
ステップ314では、変数P3(3)の値が変数P1(3)の値以上であるか否かを判定する。
【0147】
ステップ314で、変数P3(3)の値が変数P1(3)の値以上であると判定された場合には、インタフェースユニット12が、プリンタエンジン制御ユニット16との整合性があると判断して、次のステップ316へ進む。一方、ステップ314で、変数P3(3)の値が変数P1(3)の値以上でないと判定された場合には、インタフェースユニット12が、プリンタエンジン制御ユニット16との整合性がなく、インタフェースユニット12とプリンタエンジン制御ユニット16との互換性がないので、インタフェースユニット12のレベルダウンを行う必要があると判断して、次のステップ312へ進む。
【0148】
ステップ316では、変数P3(3)の値が変数P2(3)の値以上であるか否かを判定する。
【0149】
ステップ316で、変数P3(3)の値が変数P2(3)の値以上であると判定された場合には、コントローラユニット14が、プリンタエンジン制御ユニット16との整合性があり、この場合では、全ての電子ユニット間で互換性があると判断して、次のステップ318へ進む。一方、ステップ316で、変数P3(3)の値が変数P2(3)の値以上でないと判定された場合には、コントローラユニット14が、プリンタエンジン制御ユニット16との整合性がなく、コントローラユニット14とプリンタエンジン制御ユニット16との互換性がないので、コントローラユニット14のレベルダウンを行う必要があると判断して、次のステップ298へ進む。
【0150】
ステップ318では、互換性があることを示す値(例えば1)を、メモリ12bに記憶された上記の互換性検証結果フラグに上書きして、互換性検証結果フラグの値を更新する。そして、第2の互換性検証処理を終了する。
【0151】
次のステップ320(図12参照)では、メモリ12bに記憶された互換性検証結果フラグの値を読み取り、読み取った値が、互換性があることを示す値(例えば1)であるか否かを判定する。
【0152】
ステップ320で、互換性があることを示す値であると判定された場合には、次のステップ322に進む。
【0153】
ステップ322では、変数P1(K)の値を変数P1(1)に更新し、変数P2(K)の値を変数P2(2)に更新し、変数P3(K)の値を変数P3(3)に更新する。そして、ステップ178へ進む。
【0154】
なお、本実施の形態では、新版の制御プログラムは、旧版の制御プログラムと差分情報とで構成されており、このように、ステップ178に進んだ場合には、互換性があることを示す検証結果がコントローラユニット14及びプリンタエンジン制御ユニット16に通知されると共に、コントローラユニット14には変数P2(K)の値が出力され、プリンタエンジン制御ユニット16には変数P3(K)の値が出力される。そして、本実施の形態では、特開2003−25698号公報に記載されている技術のように、コントローラユニット14は、変数P2(K)の値に基づいて、差分情報を無効にすることにより、制御プログラムを更新する。同様に、プリンタエンジン制御ユニット16は、変数P3(K)の値に基づいて、差分情報を無効にすることにより、制御プログラムを更新する。そして、ステップ178からステップ180に進むと、インタフェースユニット12は、同様に、変数P1(K)の値に基づいて、差分情報を無効にすることにより、制御プログラムを更新する。
【0155】
一方、ステップ320で、互換性があることを示す値ではない(すなわち、互換性がないことを示す値である)と判定された場合には、ステップ290へ戻る。
【0156】
以上説明したように、本実施の形態では、互換性がないと判別された場合(ステップ294、296、304、310、314、及び316で否定判定がされた場合)には、互換性がないと判別された対応する電子ユニット(12、14、16)間で互換性を有するように、該対応する電子ユニットの版数がステップ298、306、または312で変更された変数P1(1)、P2(2)、P3(3)の中の対応する変数に基づいて変更される。
【0157】
また、本実施の形態では、インタフェースユニット12の制御プログラム、コントローラユニット14の制御プログラム、及びプリンタエンジン制御ユニット16の制御プログラムの起動時(すなわち起動が開始された際)に、インタフェースユニット12のCPU12aが上記の各処理を実行する例について説明したが、この各処理を、インタフェースユニット12のCPU12a、コントローラユニット14のCPU14a、及びプリンタエンジン制御ユニット16のCPU16aの少なくとも2つ以上のCPU(すなわち少なくとも2つ以上の電子ユニット)で同様の処理を実行するようにしてもよい。
【0158】
また、本実施の形態では、電子ユニットが3個(3台)の場合について説明したが、電子ユニットの個数が4個以上の場合であっても、本実施の形態における各処理と同様の処理を行うことで、電子ユニット間の各々の互換性があるか否かを判別することができ、互換性がないと判別された対応する電子ユニットの版数を変更することができる。
【図面の簡単な説明】
【0159】
【図1】第1の実施の形態の電子装置としてのプリンタの概略図である。
【図2】第1の実施の形態における各電子ユニットに記憶されている情報の模式図である。
【図3】第1の実施の形態におけるインタフェースユニットが実行する処理のフローチャートを示す図である。
【図4】第1の実施の形態におけるインタフェースユニットが実行する版数情報取得処理のフローチャートを示す図である。
【図5】第1の実施の形態におけるコントローラユニットが実行する各処理のフローチャートを示す図である。
【図6】第1の実施の形態におけるプリンタエンジン制御ユニットが実行する各処理のフローチャートを示す図である。
【図7】第1の実施の形態におけるコントローラユニットが実行する各処理のフローチャートを示す図である。
【図8】第1の実施の形態における版数情報取得処理の処理結果を示す図である。
【図9】第1の実施の形態におけるインタフェースユニットが実行する互換性検証処理のフローチャートを示す図である。
【図10】第1の実施の形態における各検証結果受信処理のフローチャートを示す図である。
【図11】第2の実施の形態における各電子ユニットに記憶されている情報の模式図である。
【図12】第2の実施の形態におけるインタフェースユニットが実行する処理のフローチャートを示す図である。
【図13】第2の実施の形態におけるインタフェースユニットが実行する第1の互換性検証処理のフローチャートを示す図である。
【図14】第2の実施の形態におけるインタフェースユニットが実行する版数履歴及び内部起動版数情報取得処理のフローチャートを示す図である。
【図15】第2の実施の形態におけるコントローラユニットが実行する各処理のフローチャートを示す図である。
【図16】第2の実施の形態におけるプリンタエンジン制御ユニットが実行する各処理のフローチャートを示す図である。
【図17】第2の実施の形態におけるコントローラユニットが実行する各処理のフローチャートを示す図である。
【図18】第2の実施の形態における版数履歴及び内部起動版数情報取得処理の処理結果を示す図である。
【図19】第2の実施の形態におけるインタフェースユニットが実行するレベルアップ判定処理のフローチャートを示す図である。
【図20】第2の実施の形態における各初期化処理のフローチャートを示す図である。
【図21】第2の実施の形態におけるインタフェースユニットが実行する第2の互換性検証処理のフローチャートを示す図である。
【図22】第2の実施の形態における各レベルダウン処理のフローチャートを示す図である。
【符号の説明】
【0160】
10 プリンタ
12 インタフェースユニット
14 コントローラユニット
16 プリンタエンジン制御ユニット

【特許請求の範囲】
【請求項1】
協働して動作すると共に、各々の電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報とを記憶した記憶手段を各々備えると共に、
少なくとも1つの電子ユニットが、各電子ユニットの前記記憶手段に記憶された前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報を取得する取得手段と、前記取得手段で取得された前記各電子ユニットの前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報の各々に基づいて、前記電子ユニット間の各々の互換性があるか否かを判別する判別手段と、を備えたN(N≧3)個の電子ユニット
を含む電子装置。
【請求項2】
前記少なくとも1つの電子ユニットが、前記判別手段によって互換性がないと判別された場合には、互換性がないことを報知するように報知手段を制御する報知制御手段を更に備えた請求項1記載の電子装置。
【請求項3】
協働して動作すると共に、各々の電子ユニットの自己の版数を示す情報、及び自己と整合性を有する他の電子ユニットの版数を示す情報とを記憶した記憶手段を各々備えると共に、
少なくとも1つの電子ユニットが、各電子ユニットの前記記憶手段に記憶された前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報を取得する取得手段と、前記取得手段で取得された前記各電子ユニットの前記自己の版数を示す情報、及び前記自己と整合性を有する他の電子ユニットの版数を示す前記情報の各々に基づいて、前記電子ユニット間の各々の互換性があるか否かを判別する判別手段と、前記判別手段によって互換性がないと判別された場合には、互換性がないと判別された対応する電子ユニット間で互換性を有するように、該対応する電子ユニットの版数を変更する変更手段と、を備えたN(N≧3)個の電子ユニット
を含む電子装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2010−9193(P2010−9193A)
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願番号】特願2008−165813(P2008−165813)
【出願日】平成20年6月25日(2008.6.25)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】