(57)【要約】【課題】版情報以外のプログラム関連情報に基づいても、複数の記憶部に格納されているプログラムの同期を行うことができる情報処理装置及びプログラムを提供する。【解決手段】プリンタコントローラ１２内の制御部２０は、複数のプリンタインタフェースボード２４内の内部記憶部２４ｂのそれぞれに対してプログラムを書き込み、内部記憶部２４ｂに書き込まれた各プログラムの版情報、及び、前記プログラムに関連し、版情報とは異なる、プログラム関連情報を記憶部２２に記憶し、記憶部２２に記憶された版情報と、プログラム関連情報とに基づいて、プリンタインタフェースボード２４内の内部記憶部２４ｂに書き込まれたプログラムのうちから１つを同期元プログラムとして選択し、選択された同期元プログラムを、選択されなかったプログラムに上書きする。【選択図】図１
2009070225.tif 000002
【特許請求の範囲】
【請求項１】
それぞれにプログラムを格納する記憶部と、当該記憶部に格納されているプログラムに従って動作する制御部とを有してなる、複数のプログラム実行回路と、
いずれかの前記プログラム実行回路の有する記憶部に対して、指示によりプログラムを書き込む書込手段と、
前記プログラム実行回路の各記憶部に格納されているプログラムの版情報、及び当該版情報とは異なる、前記書込手段によるプログラムの書き込みに関するプログラム関連情報を取得する手段と、
前記取得した版情報及びプログラム関連情報に基づき、いずれかの前記プログラム実行回路の記憶部に格納されたプログラムを、同期元プログラムとして選択する選択手段と、
前記選択した同期元プログラムを、選択されなかったプログラムを保持している少なくとも１つの前記プログラム実行回路の記憶部にそれぞれ上書きする手段と、
を含むことを特徴とする情報処理装置。
【請求項２】
前記プログラム関連情報が、前記記憶手段に前記プログラムが最後に書き込まれた時刻に対応する最終書込時刻情報を含み、
前記選択手段が、前記版情報と、前記最終書込時刻情報を含むプログラム関連情報とに基づいて、前記書込手段により書き込まれたプログラムのうちから１つを同期元プログラムとして選択する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プログラム関連情報が、前記記憶手段に前記プログラムが書き込まれた回数を含み、
前記選択手段が、前記版情報と、前記回数を含むプログラム関連情報とに基づいて、前記書込手段により書き込まれたプログラムのうちから１つを同期元プログラムとして選択し、
前記選択手段により選択されなかった前記プログラムに対応する前記回数を、前記選択手段により選択された前記プログラムに対応する前記回数に更新する手段をさらに含む、
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
予め定めた周辺装置と通信する機能を少なくとも有するプログラムを、少なくとも１つ記憶する第１の記憶手段と、
第２の記憶手段に記憶されたプログラムに従って、接続された周辺装置と通信が可能となるまで、前記第１の記憶手段からの前記プログラムのうちの１つを取得し、該プログラムの第２の記憶手段へ書込むことを繰り返す手段と、
を含むことを特徴とする情報処理装置。
【請求項５】
複数の記憶手段のそれぞれに対してプログラムを書き込む書込手段、
前記書込手段により書き込まれた各前記プログラムの版情報、及び、前記版情報とは異なる前記プログラムに関連するプログラム関連情報を記憶する手段、
前記版情報と、前記プログラム関連情報とに基づいて、前記書込手段により書き込まれた前記プログラムのうちから１つを同期元プログラムとして選択する選択手段、
前記同期元プログラムを、前記選択手段により選択されなかった前記プログラムに上書きする手段、
としてコンピュータを機能させるためのプログラム。
【請求項６】
予め定めた周辺装置と通信する機能を少なくとも有するプログラムを、少なくとも１つ記憶する第１の記憶手段、
第２の記憶手段に記憶されたプログラムに従って、接続された周辺装置と通信が可能となるまで、前記第１の記憶手段からの前記プログラムのうちの１つを取得し、該プログラムの第２の記憶手段へ書込むことを繰り返す手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
近年、複数のプリンタインタフェースのそれぞれに接続されたケーブルを介して一台のプリンタと接続されるプリンタコントローラなどの情報処理装置が多くみられる。このようなプリンタコントローラなどの情報処理装置のなかには、正常に動作させるためには、内部の複数の記憶部に格納されるプログラム間の同期をとる必要があるものがある。また、正常に動作させるためには、接続された周辺装置内に格納されるプログラムと内部の記憶部に格納されるプログラムとが対応している必要があるものもある。
【０００３】
特許文献１には、内部の複数の記憶部に格納されるプログラムの版（バージョン）が異なっている場合に、これらのプログラムのうちの最新のバージョンのプログラムを同期元プログラムとして選択し、前記同期元プログラムを古いバージョンのプログラムに上書きする情報処理装置が開示されている。
【０００４】
特許文献２には、内部の記憶部に格納されているプログラムが周辺装置に対応していない場合に、周辺装置内に格納されている、該周辺装置を識別する識別コードを取得して、該識別コードに基づいて、前記周辺装置に対応するプログラムを取得して、記憶部に記憶されているプログラムを前記取得したプログラムに上書きする情報処理装置が開示されている。
【特許文献１】特開２００６−２４３９９７号公報
【特許文献２】特開２００１−２１６１６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、高いバージョンという基準に限らず、他の基準に基づいて、複数のプログラムのうちから同期元となる同期元プログラムを選択したい場合がある。また、周辺装置との通信ができず、該周辺装置を識別する情報を取得できない場合もある。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、情報処理装置であって、それぞれにプログラムを格納する記憶部と、当該記憶部に格納されているプログラムに従って動作する制御部とを有してなる、複数のプログラム実行回路と、いずれかの前記プログラム実行回路の有する記憶部に対して、指示によりプログラムを書き込む書込手段と、前記プログラム実行回路の各記憶部に格納されているプログラムの版情報、及び当該版情報とは異なる、前記書込手段によるプログラムの書き込みに関するプログラム関連情報を取得する手段と、前記取得した版情報及びプログラム関連情報に基づき、いずれかの前記プログラム実行回路の記憶部に格納されたプログラムを、同期元プログラムとして選択する選択手段と、前記選択した同期元プログラムを、選択されなかったプログラムを保持している少なくとも１つの前記プログラム実行回路の記憶部にそれぞれ上書きする手段とを含むこととしたものである。
【０００７】
請求項２に記載の発明は、請求項１に記載の情報処理装置であって、前記プログラム関連情報が、前記記憶手段に前記プログラムが最後に書き込まれた時刻に対応する最終書込時刻情報を含み、前記選択手段が、前記版情報と、前記最終書込時刻情報を含むプログラム関連情報とに基づいて、前記書込手段により書き込まれたプログラムのうちから１つを同期元プログラムとして選択することとしたものである。
【０００８】
請求項３に記載の発明は、請求項１又は２に記載の情報処理装置であって、前記プログラム関連情報が、前記記憶手段に前記プログラムが書き込まれた回数を含み、前記選択手段が、前記版情報と、前記回数を含むプログラム関連情報とに基づいて、前記書込手段により書き込まれたプログラムのうちから１つを同期元プログラムとして選択し、前記選択手段により選択されなかった前記プログラムに対応する前記回数を、前記選択手段により選択された前記プログラムに対応する前記回数に更新する手段をさらに含むこととしたものである。
【０００９】
請求項４に記載の発明は、情報処理装置であって、予め定めた周辺装置と通信する機能を少なくとも有するプログラムを、少なくとも１つ記憶する第１の記憶手段と、第２の記憶手段に記憶されたプログラムに従って、接続された周辺装置と通信が可能となるまで、前記第１の記憶手段からの前記プログラムのうちの１つを取得し、該プログラムの第２の記憶手段へ書込むことを繰り返す手段とを含むものとしたものである。
【００１０】
請求項５に記載の発明は、プログラムであって、複数の記憶手段のそれぞれに対してプログラムを書き込む書込手段、前記書込手段により書き込まれた各前記プログラムの版情報、及び、前記版情報とは異なる前記プログラムに関連するプログラム関連情報を記憶する手段、前記版情報と、前記プログラム関連情報とに基づいて、前記書込手段により書き込まれた前記プログラムのうちから１つを同期元プログラムとして選択する選択手段、前記同期元プログラムを、前記選択手段により選択されなかった前記プログラムに上書きする手段としてコンピュータを機能させることとしたものである。
【００１１】
請求項６に記載の発明は、プログラムであって、予め定めた周辺装置と通信する機能を少なくとも有するプログラムを、少なくとも１つ記憶する第１の記憶手段、第２の記憶手段に記憶されたプログラムに従って、接続された周辺装置と通信が可能となるまで、前記第１の記憶手段からの前記プログラムのうちの１つを取得し、該プログラムの第２の記憶手段へ書込むことを繰り返す手段としてコンピュータを機能させることとしたものである。
【００１２】
また、上記のプログラムはコンピュータ読み取り可能な情報記憶媒体に格納することもできる。
【発明の効果】
【００１３】
請求項１，５に記載の発明によれば、版情報以外のプログラム関連情報に基づいても、複数の記憶部に格納されているプログラムの同期を行うことができる。
【００１４】
請求項２に記載の発明によれば、プログラムが最後に書き込まれた時刻に基づいて、複数の記憶部に格納されているプログラムの同期を行うことができる。
【００１５】
請求項３に記載の発明によれば、プログラムが書き込まれた回数に基づいて、複数の記憶部に格納されているプログラムの同期を行うことができる。
【００１６】
請求項４，６に記載の発明によれば、周辺装置を識別する情報が取得できない場合でも、該周辺装置に対応するプログラムを記憶部に格納することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態について図面に基づき詳細に説明する。
【００１８】
図１は本発明の実施形態に係る情報処理システム１０の全体構成を示す図である。
【００１９】
図１に示すように、本実施形態における情報処理システム１０は、プリンタコントローラ１２と、プリンタ１４と、ＵＩ部１６を含んで構成される。
【００２０】
プリンタコントローラ１２は、制御部２０、記憶部２２、複数枚のプリンタインタフェースボード２４、通信部２６を含んで構成される。制御部２０、記憶部２２、プリンタインタフェースボード２４、通信部２６はバス２８を介して接続される。また、このバス２８にはＵＩ部１６も接続されている。
【００２１】
制御部２０は、Central Processing Unit（ＣＰＵ）等のプログラム制御デバイスであり、記憶部２２に格納されたプログラムに従って動作する。制御部２０は、プリンタコントローラ１２を制御する。
【００２２】
記憶部２２は、Random Access Memory（ＲＡＭ）等の記憶素子やハードディスクなどである。記憶部２２には、制御部２０によって実行されるプログラムなどが格納される。また、制御部２０のワークメモリとしても動作する。
【００２３】
プリンタインタフェースボード２４は、通信ケーブル３０経由でプリンタ１４と情報のやりとりを行う。本実施形態では、プリンタコントローラ１２は、マスタープリンタインタフェースボード（以下、「マスターボード２４−１」と呼ぶ。）及びスレーブプリンタインタフェースボード（以下、「スレーブボード２４−２」と呼ぶ。）の２枚のプリンタインタフェースボード２４を含んでいる。そのため、プリンタ１４とプリンタコントローラ１２とは、第１の通信ケーブル３０−１及び第２の通信ケーブル３０−２によって接続されており、マスターボード２４−１は、第１の通信ケーブル３０−１経由でプリンタ１４と情報のやりとりを行う。スレーブボード２４−２は、第２の通信ケーブル３０−２経由でプリンタ１４と情報のやりとりを行う。
【００２４】
なお、プリンタコントローラ１２に含まれるプリンタインタフェースボード２４がマスターボード２４−１となるか、スレーブボード２４−２となるかはどのような方法で決定してもよく、例えば、プリンタインタフェースボード２４が挿入されているスロットの番号が小さなものをマスターボード２４−１として決定してもよい。
【００２５】
プリンタインタフェースボード２４は、その内部に内部制御部２４ａ及び内部記憶部２４ｂを有している。内部記憶部２４ｂには、ファームウェアが格納されており、内部制御部２４ａは、内部記憶部２４ｂに格納されたファームウェアに従って動作する。
【００２６】
プリンタコントローラ１２は、黄色（Ｙ）、マゼンダ（Ｍ）、シアン（Ｃ）、黒（Ｋ）の４色の成分によって表現される画像情報のうち、２色の成分によって表現される画像情報を、マスターボード２４−１及び第１の通信ケーブル３０−１経由でプリンタ１４に送信する。残りの２色の成分の画像情報を、スレーブボード２４−２及び第２の通信ケーブル３０−２経由でプリンタ１４に送信する。また、プリンタコントローラ１２は、プリンタ１４を制御する制御情報をマスターボード２４−１及び第１の通信ケーブル３０経由でプリンタ１４とやりとりする。
【００２７】
マスターボード２４−１と、スレーブボード２４−２とは、ボード間通信ケーブル３２によって接続されている。これらのプリンタインタフェースボード２４はボード間通信ケーブル３２経由で互いに通信を行う。
【００２８】
通信部２６は、例えば、ネットワークインタフェースボードなどであり、制御部２０から入力される指示に従って、ネットワークケーブルを介し、図外周辺装置などに情報を送信する。また、図外周辺装置などから情報を受信して制御部２０に出力する。
【００２９】
プリンタ１４は、プリンタコントローラ１２から入力される指示に従って、用紙上に画像を形成し、出力する。
【００３０】
ＵＩ部１６は、ディスプレイ３４やキーボード３６やマウス３８などを含む。利用者がキーボード３６やマウス３８を介して行った操作の内容を制御部２０に出力する。また、ディスプレイ３４は、制御部２０から入力される指示に従って情報を表示出力する。プリンタコントローラ１２とディスプレイ３４とは、ディスプレイボード４０（ディスプレイカードでもよい。）などを介して接続されてもよい。
【００３１】
プリンタコントローラ１２は、ネットワーク経由で受信したプリントジョブを画像展開し、通信ケーブル３０経由でプリンタ１４へ送信することにより、プリントサービスを提供する。また、プリンタコントローラ１２は、プリンタ１４やプリンタインタフェースボード２４からの情報を受信し、ディスプレイ３４に表示したり、通信部２６経由で図外周辺装置に情報を送信したりする。
【００３２】
次に、プリンタ１４の利用者がプリンタコントローラ１２の電源を入れてから、利用者がプリンタ１４を利用可能になるまでの、プリンタコントローラ１２の制御部２０、及びプリンタインタフェースボード２４が実行する処理の流れの一例を図２に示すフロー図を参照しながら説明する。
【００３３】
まず、利用者がプリンタコントローラ１２の電源を入れることにより、プリンタコントローラ１２が起動する。プリンタコントローラ１２（制御部２０を含む。）が起動すると、それに伴い、マスターボード２４−１及びスレーブボード２４−２も起動する（Ｓ１０１）。
【００３４】
これらのプリンタインタフェースボード２４は、初期状態に遷移した後、ボード間通信ケーブル３２を介して相互に通信を開始する（Ｓ１０２）。
【００３５】
ここで、マスターボード２４−１は、マスターボード２４−１内の内部記憶部２４ｂ−１に記憶されているファームウェアと、スレーブボード２４−２内の内部記憶部２４ｂ−２に記憶されているファームウェアとの同期処理を必要に応じて行う。（Ｓ１０３）。この同期処理の詳細については後述する。なお、Ｓ１０３の処理を行うプリンタインタフェースボード２４は問わず、もちろん、スレーブボード２４−２がこれらの処理を行うよう構成をとってもよい。
【００３６】
そして、定常状態に遷移する命令をスレーブボード２４−２に送信する（Ｓ１０４）。
【００３７】
そして、マスターボード２４−１とスレーブボード２４−２は定常状態に遷移して（Ｓ１０５）、定常状態に遷移したことを示す情報を制御部２０に送信する（Ｓ１０６）。制御部２０は、プリンタインタフェースボード２４が定常状態に遷移したことを示す情報を受信した後、プリンタ１４との通信開始指示を示す情報をマスターボード２４−１とスレーブボード２４−２に送信する（Ｓ１０７）。
【００３８】
プリンタインタフェースボード２４は、制御部２０から通信開始指示を受信した後、プリンタ１４との通信を開始する（Ｓ１０８）。
【００３９】
そして、通信が確立された場合は、制御部２０にプリンタ１４の情報、及び、正常に処理が完了したことを示す情報を送信し、通信が確立されなかった場合は、制御部２０に正常に処理が完了しなかったことを示す情報を送信する。
【００４０】
次に、プリンタ１４の利用者が、プリンタ１４に、画像を用紙上に形成し出力することを指示する処理の流れの一例を図３に示すフロー図を参照しながら説明する。
【００４１】
まず、プリンタ１４の利用者は、ＵＩ部１６を介して、プリンタコントローラ１２にプリントジョブを入力する。このとき、通信部２６経由で、プリントジョブを入力してもよい。そして、プリンタコントローラ１２内の制御部２０が、プリントジョブを取得する（Ｓ２０１）。このプリントジョブは、黄色（Ｙ）、マゼンダ（Ｍ）、シアン（Ｃ）、黒（Ｋ）の４色の色空間によって表現される画像情報を含んでいる。
【００４２】
そして、制御部２０は、プリンタジョブに基づいて、上記４色の色空間によって表現される画像を示す情報を生成し（Ｓ２０２）、黄色（Ｙ）成分の画像情報と、マゼンダ（Ｍ）成分の画像情報をマスターボード２４−１に送信し（Ｓ２０３）、シアン（Ｃ）成分の画像情報と黒（Ｋ）成分の画像情報をスレーブボード２４−２に送信する（Ｓ２０４）。
【００４３】
そして、制御部２０は、マスターボード２４−１に、プリント処理の実行を指示することを示す情報を送信する（Ｓ２０５）。
【００４４】
そして、マスターボード２４−１は、プリント処理の実行を指示することを示す情報を制御部２０から受信した後、第１通信ケーブル３０−１を経由して、プリンタ１４と、制御情報のやりとりを開始し（Ｓ２０６）、スレーブボード２４−２にボード間通信ケーブル３２を介して画像情報のプリンタ１４への送信指示を示す情報を送信する（Ｓ２０７）。
【００４５】
そして、マスターボード２４−１は、黄色（Ｙ）成分の画像情報、及び、マゼンダ（Ｍ）成分の画像情報を第１の通信ケーブル３０経由でプリンタ１４へ送信し（Ｓ２０８）、スレーブボード２４−２は、シアン（Ｃ）成分の画像情報、及び、黒（Ｋ）成分の画像情報を第２の通信ケーブル３０経由でプリンタ１４へ送信する（Ｓ２０９）。
【００４６】
そして、プリンタ１４は、受信した画像情報に基づいて、用紙上に画像を形成し、出力する（Ｓ２１０）。
【００４７】
次に、プリンタコントローラ１２が、プリンタインタフェースボード２４に格納されているファームウェアの同期を行う処理の流れ（図２に示すＳ１０３）の一例を図４に示すフロー図を参照しながら説明する。なお、ここでは、マスターボード２４−１、スレーブボード２４−２のそれぞれの内部記憶部２４ｂにバージョン２．０のファームウェアが書き込まれていることとする。このとき、マスターボード２４−１内の内部記憶部２４ｂ−１には、このプリンタインタフェースボード２４がマスターボード２４−１であることを示すプログラム関連情報が記憶されている。また、スレーブボード２４−２内の内部記憶部２４ｂ−２には、このプリンタインタフェースボード２４がスレーブボード２４−２であることを示すプログラム関連情報が記憶されている。さらに、マスターボード２４−１、スレーブボード２４−２のそれぞれの内部記憶部２４ｂには、このファームウェアのバージョンが２．０であることを示すプログラム関連情報が記憶されている。
【００４８】
まず、プリンタコントローラ１２の利用者が、プリンタコントローラ１２内の制御部２０にＵＩ部１６を介して指示を与えることにより、制御部２０が、通信部２６経由でバージョン１．０のファームウェアを取得し、マスターボード２４−１内の内部記憶部２４ｂ−１に書き込む（Ｓ３０１）。そして、マスターボード２４−１は、自らを再起動する（Ｓ３０２）。
【００４９】
そして、マスターボード２４−１は、ボード間通信ケーブル３２を介して、スレーブボード２４−２と通信を行い、スレーブボード２４−２内の内部記憶部２４ｂ−２に記憶されているファームウェアのバージョンを示す情報を取得する（Ｓ３０３）。
【００５０】
そして、マスターボード２４−１は、スレーブボード２４−２内の内部記憶部２４ｂ−２に記憶されているファームウェアのバージョンとマスターボード２４−１内の内部記憶部２４ｂ−１に記憶されているファームウェアのバージョンとが対応しているか否かを判断する（Ｓ３０４）。ここでは、対応しないので（Ｓ３０４：Ｎ）、マスターボード２４−１内の内部記憶部２４ｂ−１に記憶されているファームウェアを同期元プログラムとして選択して、スレーブボード２４−２に、バージョン１．０のファームウェアを送信する（Ｓ３０５）。
【００５１】
スレーブボード２４−２は、バージョン１．０のファームウェアをマスターボード２４−１から受信すると、内部記憶部２４ｂ−２に書き込み、自らを再起動する（Ｓ３０６）。このようにして、スレーブボード２４−２内の内部記憶部２４ｂ−２に記憶されているファームウェアは上書きされる。
【００５２】
そして、再度、マスターボード２４−１は、ボード間通信ケーブル３２を介して、スレーブボード２４−２と通信を行い、スレーブボード２４−２内の内部記憶部２４ｂ−２に記憶されているファームウェアのバージョンを示す情報を取得する（Ｓ３０３）。そして、スレーブボード２４−２内の内部記憶部２４ｂ−２に記憶されているファームウェアのバージョンとマスターボード２４−１内の内部記憶部２４ｂ−１に記憶されているファームウェアのバージョンとが対応しているか否かを判断する（Ｓ３０４）。ここでは、バージョンが対応しているので（Ｓ３０４：Ｙ）、ファームウェアの同期を行う処理を終了する。
【００５３】
なお、ファームウェアの同期を行う処理（図２に示すＳ１０３）の流れは上記実施形態に限られない。
【００５４】
次に、プリンタコントローラ１２が、プリンタインタフェースボード２４に格納されているファームウェアの同期を行う処理（図２に示すＳ１０３）の別の流れの一例を図５に示すフロー図を参照しながら説明する。
【００５５】
なお、ここでは、マスターボード２４−１、スレーブボード２４−２のそれぞれの内部記憶部２４ｂに、対応プリンタ１４の機種が「Ａ」である、バージョン１．０のファームウェアが書き込まれていることとする。このとき、マスターボード２４−１、スレーブボード２４−２のそれぞれの内部記憶部２４ｂには、対応プリンタ１４の機種が「Ａ」であり、このファームウェアのバージョンが１．０であることを示すプログラム関連情報が記憶されている。
【００５６】
そして、マスターボード２４−１内の内部記憶部２４ｂ−１及びスレーブボード２４−２内の内部記憶部２４ｂ−２には、内部記憶部２４ｂに記憶されているファームウェアを最後にダウンロードした時刻、すなわち、内部記憶部２４ｂにプログラムが最後に書き込まれた時刻を示す情報（最終書込時刻情報）が記憶されていることとする。ここでは、マスターボード２４−１内の内部記憶部２４ｂ−１に記憶されている最終書込時刻情報の値は２００７年２月１日１２時であり、スレーブボード２４−２内の内部記憶部２４ｂ−２に記憶されている最終書込時刻情報の値は２００７年２月１日１２時１０分に設定されていることとする。
【００５７】
まず、プリンタコントローラ１２の利用者が、プリンタコントローラ１２内の制御部２０にＵＩ部１６を介して指示を与えることにより、制御部２０が、通信部２６経由で、ファームウェアを取得し、スレーブボード２４−２内の内部記憶部２４ｂ−２に書き込む（Ｓ４０１）。ここでは、対応プリンタ１４の機種が「Ｂ」であるプリンタ１４に対応するバージョン１．０のファームウェアをスレーブボード２４−２内の内部記憶部２４ｂ−２に書き込んだこととする。
【００５８】
すると、スレーブボード２４−２は、この内部記憶部２４ｂ−２に記憶されている最終書込時刻情報の値を、ファームウェアをダウンロードした時刻に更新し、自らを再起動する（Ｓ４０２）。ここでは、２００７年２月１日１３時に更新したとする。
【００５９】
そして、スレーブボード２４−２は、ボード間通信ケーブル３２を介して、マスターボード２４−１と通信を行い、それぞれのプリンタインタフェースボード２４内の内部記憶部２４ｂに記憶されているファームウェアの対応機種及びバージョンを示す情報を相互に通知する（Ｓ４０３）。
【００６０】
そして、マスターボード２４−１とスレーブボード２４−２は、Ｓ４０３の処理において相互に情報を通知できたか否かをそれぞれ確認する（Ｓ４０４）。ここで、マスターボード２４−１やスレーブボード２４−２が、Ｓ４０３の処理において相互に情報を通知できたことを確認できなかった場合は（Ｓ４０４：Ｎ）、処理を終了する。
【００６１】
互いに通信が可能で相互に通知できた場合には、（Ｓ４０４：Ｙ）、それぞれのプリンタインタフェースボード２４は、内部記憶部２４ｂに記憶されているファームウェアの対応機種又はバージョンが、相手方のプリンタインタフェースボード２４の内部記憶部２４ｂに記憶されているファームウェアの対応機種又はバージョンと対応しているか否かを判断する（Ｓ４０５）。
【００６２】
ここでは、それぞれのプリンタインタフェースボード２４は、相手方のプリンタインタフェースボード２４の内部記憶部２４ｂに記憶されているファームウェアの対応機種又はバージョンと対応していないと判断するので（Ｓ４０５：Ｎ）、次に、相手方のプリンタインタフェースボード２４の最終書込時刻情報が示す時刻より、自らの最終書込時刻情報が示す時刻が新しいか否かを判断する（Ｓ４０６）。
【００６３】
ここでは、スレーブボード２４−２は、上記条件にあてはまると判断する（Ｓ４０６：Ｙ）ので、スレーブボード２４−２は、スレーブボード２４−２内の内部記憶部２４ｂ−２に記憶されているファームウェアを同期元プログラムとして選択して、このファームウェアをマスターボード２４−１に送信する（Ｓ４０７）。
【００６４】
そして、マスターボード２４−１は、ファームウェアを受信すると、そのファームウェアをマスターボード２４−１内の内部記憶部２４ｂ−１に書き込む（Ｓ４０８）。このようにして、マスターボード２４−１内の内部記憶部２４ｂ−１に記憶されているファームウェアは上書きされる。
【００６５】
そして、マスターボード２４−１は、マスターボード２４−１内の内部記憶部２４ｂ−１に記憶されている、最終書込時刻情報の値を、ファームウェアをダウンロードした時刻に更新して、自らを再起動する（Ｓ４０９）。ここでは、２００７年２月１日１３時１０分に更新したこととする。
【００６６】
マスターボード２４−１は、再起動すると、ボード間通信ケーブル３２を介して、スレーブボード２４−２と通信を行い、マスターボード２４−１は、ボード間通信ケーブル３２を介して、スレーブボード２４−２と通信を行い、それぞれのプリンタインタフェースボード２４内の内部記憶部２４ｂに記憶されているファームウェアの対応機種及びバージョンを示す情報を相互に通知する（Ｓ４０３）。
【００６７】
そして、マスターボード２４−１とスレーブボード２４−２は、Ｓ４０３の処理において相互に情報を通知できたか否かをそれぞれ確認する（Ｓ４０４）。ここで、マスターボード２４−１やスレーブボード２４−２が、Ｓ４０３の処理において相互に情報を通知できたことを確認できなかった場合は（Ｓ４０４：Ｎ）、処理を終了する。
【００６８】
互いに通信が可能で相互に通知できた場合には（Ｓ４０４：Ｙ）、それぞれのプリンタインタフェースボード２４は、内部記憶部２４ｂに記憶されているファームウェアの対応機種又はバージョンが、相手方のプリンタインタフェースボード２４の内部記憶部２４ｂに記憶されているファームウェアの対応機種又はバージョンと対応しているか否かを判断する（Ｓ４０５）。
【００６９】
ここでは、それぞれのプリンタインタフェースボード２４は、相手方のプリンタインタフェースボード２４の内部記憶部２４ｂに記憶されているファームウェアの対応機種又はバージョンと対応していると判断するので（Ｓ４０５：Ｙ）、処理を終了する。
【００７０】
なお、ファームウェアの同期を行う処理（図２に示すＳ１０３）の流れは上記実施形態に限られない。
【００７１】
次に、プリンタコントローラ１２が、プリンタインタフェースボード２４に格納されているファームウェアの同期を行う処理（図２に示すＳ１０３）の別の流れの一例を図６に示すフロー図を参照しながら説明する。
【００７２】
なお、ここでは、マスターボード２４−１、スレーブボード２４−２のそれぞれの内部記憶部２４ｂに、バージョン２．０のファームウェアが書き込まれていることとする。このとき、マスターボード２４−１、スレーブボード２４−２のそれぞれの内部記憶部２４ｂには、このファームウェアのバージョンが２．０であることを示すプログラム関連情報が記憶されている。
【００７３】
そして、マスターボード２４−１内の内部記憶部２４ｂ−１及びスレーブボード２４−２内の内部記憶部２４ｂ−２には、内部記憶部２４ｂにプログラムが書き込まれた回数を示すダウンロードカウンタが記憶されており、それぞれの値は「１」に設定されていることとする。
【００７４】
まず、プリンタコントローラ１２の利用者が、プリンタコントローラ１２内の制御部２０にＵＩ部１６を介して指示を与えることにより、制御部２０が、通信部２６経由でファームウェアを取得し、スレーブボード２４−２内の内部記憶部２４ｂ−２に書き込む（Ｓ５０１）。ここでは、バージョン１．０のファームウェアをスレーブボード２４−２内の内部記憶部２４ｂ−２に書き込んだこととする。
【００７５】
すると、スレーブボード２４−２は、内部記憶部２４ｂ−２に記憶されているダウンロードカウンタの値を１増やし、自らを再起動する（Ｓ５０２）。ここでは、ダウンロードカウンタの値を「２」に更新して、自らを再起動する。
【００７６】
そして、スレーブボード２４−２は、ボード間通信ケーブル３２を介して、マスターボード２４−１と通信を行い、それぞれのプリンタインタフェースボード２４内の内部記憶部２４ｂに記憶されているファームウェアのバージョンを示す情報を相互に通知する（Ｓ５０３）。
【００７７】
そして、マスターボード２４−１とスレーブボード２４−２は、Ｓ５０３の処理において相互に情報を通知できたか否かをそれぞれ確認する（Ｓ５０４）。ここで、マスターボード２４−１やスレーブボード２４−２が、Ｓ５０３の処理において相互に情報を通知できたことを確認できなかった場合は（Ｓ５０４：Ｎ）、処理を終了する。
【００７８】
互いに通信が可能で相互に通知できた場合には（Ｓ５０４：Ｙ）、それぞれのプリンタインタフェースボード２４は、内部記憶部２４ｂに記憶されているファームウェアのバージョンが、相手方のプリンタインタフェースボード２４の内部記憶部２４ｂに記憶されているファームウェアのバージョンと対応している否かを判断する（Ｓ５０５）。
【００７９】
ここでは、それぞれのプリンタインタフェースボード２４は、相手方のプリンタインタフェースボード２４の内部記憶部２４ｂに記憶されているファームウェアのバージョンと対応していないと判断するので（Ｓ５０５：Ｎ）、次に、相手方のプリンタインタフェースボード２４内の内部記憶部２４ｂに記憶されているダウンロードカウンタの値より、自らの内部記憶部２４ｂに記憶されているダウンロードカウンタの値が大きいか否かを判断する（Ｓ５０６）。
【００８０】
ここでは、スレーブボード２４−２は、上記条件にあてはまると判断する（Ｓ５０６：Ｙ）ので、スレーブボード２４−２は、スレーブボード２４−２内の内部記憶部２４ｂ−２に記憶されているファームウェアを同期元プログラムとして選択して、スレーブボード２４−２内の内部記憶部２４ｂ−２に記憶されているファームウェアをマスターボード２４−１に送信する（Ｓ５０７）。
【００８１】
そして、マスターボード２４−１は、ファームウェアを受信すると、そのファームウェアをマスターボード２４−１内の内部記憶部２４ｂ−１に書き込む（Ｓ５０８）。このようにして、マスターボード２４−１内の内部記憶部２４ｂ−１に記憶されているファームウェアは上書きされる。
【００８２】
そして、マスターボード２４−１は、マスターボード２４−１内の内部記憶部２４ｂ−１に記憶されているダウンロードカウンタの値を、スレーブボード２４−２内の内部記憶部２４ｂ−２に記憶されているダウンロードカウンタの値に更新して、自らを再起動する（Ｓ５０９）。ここでは、ダウンロードカウンタの値を「２」に更新して、自らを再起動する。
【００８３】
マスターボード２４−１は、再起動すると、ボード間通信ケーブル３２を介して、スレーブボード２４−２と通信を行い、マスターボード２４−１は、ボード間通信ケーブル３２を介して、スレーブボード２４−２と通信を行い、それぞれのプリンタインタフェースボード２４内の内部記憶部２４ｂに記憶されているファームウェアのバージョンを示す情報を相互に通知する（Ｓ５０３）。
【００８４】
そして、マスターボード２４−１とスレーブボード２４−２は、Ｓ５０３の処理において相互に情報を通知できたか否かをそれぞれ確認する（Ｓ５０４）。ここで、マスターボード２４−１やスレーブボード２４−２が、Ｓ５０３の処理において相互に情報を通知できたことを確認できなかった場合は（Ｓ５０４：Ｎ）、処理を終了する。
【００８５】
互いに通信が可能で相互に通知ができた場合には（Ｓ５０４：Ｙ）、そして、それぞれのプリンタインタフェースボード２４は、内部記憶部２４ｂに記憶されているファームウェアのバージョンが、相手方のプリンタインタフェースボード２４の内部記憶部２４ｂに記憶されているファームウェアのバージョンと対応しているか否かを判断する（Ｓ５０５）。
【００８６】
ここでは、それぞれのプリンタインタフェースボード２４は、相手方のプリンタインタフェースボード２４の内部記憶部２４ｂに記憶されているファームウェアのバージョンと対応していると判断する（Ｓ５０４：Ｙ）ので、処理を終了する。
【００８７】
なお、ファームウェアの同期を行う処理（図２に示すＳ１０３）の流れは上記実施形態に限られない。
【００８８】
次に、プリンタコントローラ１２が、プリンタインタフェースボード２４に格納されているファームウェアの同期を行う処理の別の流れの一例を図７に示すフロー図を参照しながら説明する。
【００８９】
なお、ここでは、マスターボード２４−１、スレーブボード２４−２のそれぞれの内部記憶部２４ｂに、バージョン２．０のファームウェアが書き込まれていることとする。このとき、マスターボード２４−１、スレーブボード２４−２のそれぞれの内部記憶部２４ｂには、このファームウェアのバージョンが２．０であることを示すプログラム関連情報が記憶されている。
【００９０】
そして、マスターボード２４−１内の内部記憶部２４ｂ−１及びスレーブボード２４−２内の内部記憶部２４ｂ−２には、内部記憶部２４ｂにプログラムが書き込まれた回数を示すダウンロードカウンタが記憶されており、それぞれの値は「１」に設定されていることとする。
【００９１】
まず、プリンタコントローラ１２の利用者が、プリンタコントローラ１２内の制御部２０にＵＩ部１６を介して指示を与えることにより、制御部２０が、通信部２６経由でファームウェアを取得し、スレーブボード２４−２内の内部記憶部２４ｂ−２に書き込む（Ｓ６０１）。ここでは、バージョン１．０のファームウェアをスレーブボード２４−２内の内部記憶部２４ｂ−２に書き込んだこととする。
【００９２】
すると、スレーブボード２４−２は、内部記憶部２４ｂ−２に記憶されているダウンロードカウンタの値を１増やし、自らを再起動する（Ｓ６０２）。ここでは、ダウンロードカウンタの値を「２」に更新して、自らを再起動する。
【００９３】
そして、スレーブボード２４−２は、ボード間通信ケーブル３２を介して、マスターボード２４−１と通信を行い、それぞれのプリンタインタフェースボード２４内の内部記憶部２４ｂに記憶されているファームウェアのバージョンを示す情報を相互に通知する（Ｓ６０３）。
【００９４】
そして、マスターボード２４−１とスレーブボード２４−２は、Ｓ６０３の処理において相互に情報を通知できたか否かをそれぞれ確認する（Ｓ６０４）。ここで、マスターボード２４−１やスレーブボード２４−２が、Ｓ６０３の処理において相互に情報を通知できたことを確認できなかった場合は（Ｓ６０４：Ｎ）、処理を終了する。
【００９５】
ここでの処理の流れでは、例えば、ボード間通信ケーブル３２が外れているなどの状況で、互いに通信ができず、相互通知ができないこととする（Ｓ６０４：Ｎ）。この場合は、処理を一旦終了する。
【００９６】
次に、再度、プリンタコントローラ１２の利用者が、プリンタコントローラ１２内の制御部２０にＵＩ部１６を介して指示を与えることにより、制御部２０が、通信部２６経由でファームウェアを取得し、スレーブボード２４−２内の内部記憶部２４ｂ−２に書き込む（Ｓ６０１）。ここでは、ここでは、バージョン２．０のファームウェアをスレーブボード２４−２内の内部記憶部２４ｂ−２に書き込んだこととする。
【００９７】
すると、スレーブボード２４−２は、内部記憶部２４ｂ−２に記憶されているダウンロードカウンタの値を１増やし、自らを再起動する（Ｓ６０２）。ここでは、ダウンロードカウンタの値を「３」に更新して、自らを再起動する。
【００９８】
そして、スレーブボード２４−２は、ボード間通信ケーブル３２を介して、マスターボード２４−１と通信を行い、それぞれのプリンタインタフェースボード２４内の内部記憶部２４ｂに記憶されているファームウェアのバージョンを示す情報を相互に通知する（Ｓ６０３）。
【００９９】
そして、マスターボード２４−１とスレーブボード２４−２は、Ｓ６０３の処理において相互に情報を通知できたか否かをそれぞれ確認する（Ｓ６０４）。ここで、マスターボード２４−１やスレーブボード２４−２が、Ｓ６０３の処理において相互に情報を通知できたことを確認できなかった場合は（Ｓ６０４：Ｎ）、処理を終了する。
【０１００】
この時点で、互いに通信が可能で相互通知が可能な状態となった場合には（Ｓ６０４：Ｙ）、それぞれのプリンタインタフェースボード２４は、内部記憶部２４ｂに記憶されているファームウェアのバージョンが、相手方のプリンタインタフェースボード２４の内部記憶部２４ｂに記憶されているファームウェアのバージョンと対応しているか否かを判断する（Ｓ６０５）。
【０１０１】
ここでは、それぞれのプリンタインタフェースボード２４は、相手方のプリンタインタフェースボード２４の内部記憶部２４ｂに記憶されているファームウェアのバージョンと対応していると判断する（Ｓ６０５：Ｙ）。
【０１０２】
ここで、処理を終了せずに、相手方のプリンタインタフェースボード２４内の内部記憶部２４ｂに記憶されているダウンロードカウンタの値より、自らの内部記憶部２４ｂに記憶されているダウンロードカウンタの値が大きいか否かを判断する（Ｓ６０６）。
【０１０３】
ここでは、スレーブボード２４−２は、上記条件にあてはまると判断する（Ｓ６０６：Ｙ）ので、スレーブボード２４−２は、マスターボード２４−１に対し、ダウンロードカウンタの値をマスターボード２４−１に送信する（Ｓ６０７）。ここでは、「３」を送信する。
【０１０４】
そして、マスターボード２４−１は、ダウンロードカウンタの値を受信すると、マスターボード２４−１内の内部記憶部２４ｂ−１に記憶されているダウンロードカウンタの値を、受信したダウンロードカウンタの値に更新し、再起動する（Ｓ６０８）。
【０１０５】
このようにして、マスターボード２４−１内の内部記憶部２４ｂ−１に記憶されているダウンロードカウンタの値は更新される。
【０１０６】
ここで例えば、上記の二回目のＳ６０１の処理において、ここでは、バージョン３．０のファームウェアをスレーブボード２４−２内の内部記憶部２４ｂ−２に書き込んだこととした場合は、それぞれのプリンタインタフェースボード２４は、相手方のプリンタインタフェースボード２４の内部記憶部２４ｂに記憶されているファームウェアのバージョンと対応していないと判断する（Ｓ６０５：Ｎ）。この場合は、その後、上述の、図６に示したＳ５０５以降の処理の流れに従って、プリンタインタフェースボード２４に格納されているファームウェアの同期を行う。
【０１０７】
なお、ファームウェアの同期を行う処理の流れは上記実施形態にも限られない。
【０１０８】
次に、プリンタコントローラ１２がプリンタ１４と通信できない場合において、プリンタインタフェースボード２４に格納されているファームウェアをプリンタ１４に対応したものにする処理の流れの一例を図８に示すフロー図を参照しながら説明する。
【０１０９】
なお、ここでは、プリンタインタフェースボード２４内の内部記憶部２４ｂには、対応プリンタ１４の機種が「Ａ」である、バージョン１．０のファームウェアが記憶されており、このプリンタインタフェースボード２４と通信ケーブル３０によって接続されたプリンタ１４の機種は「Ｃ」であるとする。また、プリンタコントローラ１２内の記憶部２２には、対応プリンタ１４の機種が「Ａ」である、バージョン１．０のファームウェア、対応プリンタ１４の機種が「Ｂ」である、バージョン１．０のファームウェア、及び、対応プリンタ１４の機種が「Ｃ」である、バージョン１．０のファームウェアが記憶されていることとする。
【０１１０】
まず、プリンタ１４の利用者がプリンタコントローラ１２の電源を入れることにより、プリンタコントローラ１２が起動すると、プリンタインタフェースボード２４は、プリンタの電源が投入されていることを検知する（Ｓ７０１）。そして、プリンタインタフェースボード２４は、プリンタインタフェースボード２４内の内部記憶部２４ｂに記憶されているファームウェアに対応する通信プロトコルで、プリンタ１４に対して通信開始を示す情報を送信する（Ｓ７０２）。ここでは、プリンタインタフェースボード２４内の内部記憶部２４ｂには、対応機種が「Ａ」であるファームウェアが格納されているので、機種「Ａ」のプリンタ１４に対応した通信プロトコルで通信を開始することとなる。
【０１１１】
プリンタ１４は、通信開始を示す情報を受信したら、通信を受け付けるか否かを判断する（Ｓ７０３）。ここで、通信を受け付ける場合は（Ｓ７０３：Ｙ）、通信を受け付けることを示す信号をプリンタインタフェースボード２４に送信し（Ｓ７０４）、通信を開始するが、ここではプリンタ１４は、機種が「Ｃ」であるため、機種「Ａ」のプリンタ１４に対応した通信プロトコルを受け付けることができない（Ｓ７０３：Ｎ）。そのため、プリンタ１４はプリンタインタフェースボード２４に応答しない。
【０１１２】
そして、プリンタインタフェースボード２４は、プリンタ１４からの通信を受け付けることを示す信号を受信したか否かを判断する（Ｓ７０５）。ここで、受信していないと判断した場合は（Ｓ７０５：Ｎ）、予め定めた判断間隔時間の間隔で、プリンタ１４との通信が開始されないまま所定の待ち時間を経過したか否かを判断する（Ｓ７０６）。待ち時間を経過していない場合は（Ｓ７０６：Ｎ）、予め定めた判断間隔時間だけ待ち状態となり（Ｓ７０７）、その時間の経過後に、再度Ｓ７０５の判断を行う。
【０１１３】
ここでは、応答がないまま、待ち時間を経過するので（Ｓ７０６：Ｙ）、プリンタコントローラ１２内の制御部２０に、ファームウェアの送信を要求する（Ｓ７０８）。ここで、対応機種が「Ｂ」であるファームウェアを指定した上で要求してもよい。
【０１１４】
そして、制御部２０は、記憶部２２に格納されているファームウェアのうちから、対応機種が「Ｂ」である、ファームウェアを取得し、プリンタインタフェースボード２４に送信する（Ｓ７０９）。
【０１１５】
プリンタインタフェースボード２４は、ファームウェアを受信すると、そのファームウェアを内部記憶部２４ｂに書き込み、自らを再起動する（Ｓ７１０）。ここでは、対応機種が「Ｂ」であるファームウェアを内部記憶部２４ｂに書き込み、自らを再起動する。
【０１１６】
そして、プリンタインタフェースボード２４は、再度、プリンタ１４と、プリンタインタフェースボード２４内の内部記憶部２４ｂに記憶されているファームウェアに対応する通信プロトコルで通信を開始する（Ｓ７０２）。ここでは、機種「Ｂ」のプリンタ１４に対応する通信プロトコルで、プリンタ１４に対して通信開始を示す情報を送信する（Ｓ７０２）。
【０１１７】
プリンタ１４は、通信開始を示す情報を受信したら、通信を受け付けるか否かを判断する（Ｓ７０３）。しかし、ここでもプリンタ１４は、機種が「Ｃ」であるため、機種「Ｂ」のプリンタ１４に対応した通信プロトコルを受け付けることができない（Ｓ７０３：Ｎ）。そのため、プリンタ１４はプリンタインタフェースボード２４に応答しない。
【０１１８】
そして、プリンタインタフェースボード２４は、再度、プリンタ１４からの通信を受け付けることを示す信号を受信したか否かを判断する（Ｓ７０５）。ここで、受信していないと判断した場合は（Ｓ７０５：Ｎ）、予め定めた判断間隔時間の間隔で、プリンタ１４との通信が開始されないまま所定の待ち時間を経過したか否かを判断する（Ｓ７０６）。待ち時間を経過していない場合は（Ｓ７０６：Ｎ）、予め定めた判断間隔時間だけ待ち状態となり（Ｓ７０７）、その時間の経過後に、再度Ｓ７０５の判断を行う。
【０１１９】
ここでは、待ち時間を経過するので（Ｓ７０６：Ｙ）、プリンタコントローラ１２内の制御部２０に、ファームウェアの送信を要求する（Ｓ７０８）。ここで、対応機種が「Ｃ」であるファームウェアを指定した上で要求してもよい。
【０１２０】
そして、制御部２０は、記憶部２２に格納されているファームウェアのうちから、対応機種が「Ｃ」である、ファームウェアを取得し、プリンタインタフェースボード２４に送信する（Ｓ７０９）。
【０１２１】
プリンタインタフェースボード２４は、ファームウェアを受信すると、そのファームウェアを内部記憶部２４ｂに書き込み、自らを再起動する（Ｓ７１０）。ここでは、対応機種が「Ｃ」であるファームウェアを内部記憶部２４ｂに書き込み、自らを再起動する。
【０１２２】
そして、プリンタインタフェースボード２４は、再度、プリンタ１４と、プリンタインタフェースボード２４内の内部記憶部２４ｂに記憶されているファームウェアに対応する通信プロトコルで通信を開始する（Ｓ７０２）。ここでは、機種「Ｂ」のプリンタ１４に対応する通信プロトコルで、プリンタ１４に対して通信開始を示す情報を送信する（Ｓ７０２）。
【０１２３】
プリンタ１４は、通信開始を示す情報を受信したら、通信を受け付けるか否かを判断する（Ｓ７０３）。ここでは、プリンタ１４は、機種が「Ｃ」であるため、機種「Ｃ」のプリンタ１４に対応した通信プロトコルを受け付け（Ｓ７０３：Ｙ）、信号をプリンタインタフェースボード２４に送信し、通信を開始する（Ｓ７０４）。
【０１２４】
このように、接続されたプリンタ１４などの周辺装置と通信が可能となるまで、プリンタコントローラ１２は、記憶部２２に記憶されているプログラムのうちの１つを取得し、このプログラムをプリンタインタフェースボード２４内の内部記憶部２４ｂに書き込むことを繰り返す。
【０１２５】
なお、プリンタインタフェースボード２４に格納されているファームウェアをプリンタ１４に対応したものにする処理は上記処理に限られない。
【０１２６】
次に、例えば、マスターボード２４−１とスレーブボード２４−２とを取り違えてプリンタ１４に接続されている場合において、それぞれのプリンタインタフェースボード２４内の内部記憶部２４ｂに、プリンタ１４に対応したファームウェアを格納する処理の流れの一例を図９に示すフロー図を参照しながら説明する。
【０１２７】
ここでは、マスターボード２４−１にマスターボード２４−１用のファームウェアが初期時に内部記憶部２４ｂ−１に格納されており、スレーブボード２４−２にスレーブボード２４−２用のファームウェアが初期時に内部記憶部２４ｂ−２に格納されているとする。
【０１２８】
まず、利用者がプリンタコントローラ１２の電源を入れることにより、プリンタコントローラ１２が起動すると、マスターボード２４−１は、プリンタの電源が投入されていることを検知する（Ｓ８０１）。そして、マスターボード２４−１は、プリンタ１４に対して通信開始を示す情報を送信し、通信を開始できるか否かを確認する（Ｓ８０２）。しかし、ここでは、各プリンタインタフェースボード２４は取り違えてプリンタ１４に接続されているため、通信を開始できない（Ｓ８０２：Ｎ）。
【０１２９】
そこで、マスターボード２４−１は、内部記憶部２４ｂ−１に格納されているマスターボード２４−１用のファームウェアをスレーブボード２４−２に送信する（Ｓ８０３）。
【０１３０】
そして、スレーブボード２４−２は、内部記憶部２４ｂ−２に格納されているスレーブボード２４−２用のファームウェアを退避して、受信したマスターボード２４−１用のファームウェアを内部記憶部２４ｂ−２に格納し、自らを再起動する（Ｓ８０４）。
【０１３１】
そして、スレーブボード２４−２は、プリンタ１４との通信を開始できるか否かを確認する（Ｓ８０５）。ここで、プリンタ１４と通信を開始できる場合は（Ｓ８０５：Ｙ）、プリンタ１４との通信を開始する（Ｓ８０６）。
【０１３２】
この場合は、プリントコントローラ１２と、プリンタ１４とが正しく接続されたことになるので、退避したスレーブボード２４−２用のファームウェアをマスターボード２４−１に送信する（Ｓ８０７）。
【０１３３】
マスターボード２４−１は、ファームウェアを受信して、内部記憶部２４ｂ−１に格納し、再起動する（Ｓ８０８）。
【０１３４】
Ｓ８０５の処理において、スレーブボード２４−２がプリンタ１４との通信を開始できなかった場合は（Ｓ８０５：Ｎ）、退避したファームウェアを再び内部記憶部２４ｂ−２に格納し、自らを再起動し（Ｓ８０９）、マスターボード２４−１にプリンタ１４との通信を開始できなかったことを通知する（Ｓ８１０）。
【０１３５】
このように、プリンタコントローラ１２は、プリンタなどの周辺装置と通信が可能でない場合に、内部記憶部２４ｂに記憶されているファームウェアなどの、プリンタ１４などの周辺装置と通信する機能を少なくとも有するプログラムを、相手方の内部記憶部２４ｂに送信する手段を含んでもよい。この場合、プリンタインタフェースボード２４がその内部記憶部２４ｂに記憶されているファームウェアを相手方のプリンタインタフェースボード２４に送信してもよく、相手方のプリンタインタフェースボード２４からその内部記憶部２４ｂに記憶されているファームウェアを取得してもよい。
【０１３６】
なお、マスターボード２４−１とスレーブボード２４−２とを取り違えてプリンタ１４に接続されている場合において、それぞれのプリンタインタフェースボード２４内の内部記憶部２４ｂに、プリンタ１４に対応したファームウェアを格納する処理は上記処理に限られない。
【０１３７】
例えば、Ｓ８０４の処理の際に、さらに、退避するファームウェアをマスターボード２４−１に送信し、マスターボード２４−１は、内部記憶部２４ｂ−１に格納されているファームウェアを退避し、受信したファームウェアを内部記憶部２４ｂ−１に格納し、自らを再起動するようにしてもよい。ここで、再起動してもプリンタ１４と通信できない状況となった場合は、スレーブボード２４−２から受信したファームウェアをスレーブボード２４−２に送信してもよい。
【０１３８】
なお、上記の各処理は、コンピュータであるプリンタコントローラ１２やプリンタインタフェースボード２４にインストールされた情報処理プログラムを、プリンタコントローラ１２内の制御部２０やプリンタインタフェースボード２４内の内部制御部２４ａで実行することにより実現してもよい。なお、この情報処理プログラムは、例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の情報伝達媒体を介して、あるいは、インターネット等の通信ネットワークを介してプリンタコントローラ１２等に供給されてもよい。
【０１３９】
なお、本発明は上記各実施形態に限定されるものではない。
【０１４０】
プログラム関連情報は、マスターボード２４−１かスレーブボード２４−２であるかを示す情報、バージョン情報、ダウンロードカウンタ、最終書込時刻には限られず、内部記憶部２４ｂに対するプログラムの書き込みに関する他の情報でもよい。
【０１４１】
また、本実施形態では、プリンタコントローラ１２に対して本発明を適用しているが、プログラムを格納する記憶部と、当該記憶部に格納されているプログラムに従って動作する制御部とを有してなる、複数のプログラム実行回路を有する情報処理装置に対して本発明を適用してもよい。
【０１４２】
また、プリンタコントローラ１２などの情報処理装置は１台に限らず、複数台であってもよい。
【０１４３】
また、プリンタコントローラ１２などの情報処理装置と接続されているプリンタ１４などの周辺装置は、１台に限定されず、複数台であってもよい。
【０１４４】
また、内部記憶部２４ｂに格納されるプログラムはファームウェアに限られない。
【図面の簡単な説明】
【０１４５】
【図１】本発明の一実施形態に係る情報処理システムを示す図である。
【図２】情報処理システムで行われる処理のフローを示す図である。
【図３】情報処理システムで行われる処理のフローを示す図である。
【図４】情報処理システムで行われる処理のフローを示す図である。
【図５】情報処理システムで行われる処理のフローを示す図である。
【図６】情報処理システムで行われる処理のフローを示す図である。
【図７】情報処理システムで行われる処理のフローを示す図である。
【図８】情報処理システムで行われる処理のフローを示す図である。
【図９】情報処理システムで行われる処理のフローを示す図である。
【符号の説明】
【０１４６】
１０  情報処理システム、１２  プリンタコントローラ、１４  プリンタ、１６  ＵＩ部、２０  制御部、２２  記憶部、２４  プリンタインタフェースボード、２４−１  マスターボード、２４−２  スレーブボード、２４ａ  内部制御部、２４ｂ  内部記憶部、２６  通信部、２８  バス、３０  通信ケーブル、３２  ボード間通信ケーブル、３４  ディスプレイ、３６  キーボード、３８  マウス、４０  ディスプレイボード。
【図１】
2009070225.tif 000003
【図２】
2009070225.tif 000004
【図３】
2009070225.tif 000005
【図４】
2009070225.tif 000006
【図５】
2009070225.tif 000007
【図６】
2009070225.tif 000008
【図７】
2009070225.tif 000009
【図８】
2009070225.tif 000010
【図９】
2009070225.tif 000011