(57)【特許請求の範囲】
【請求項１】
処理装置により駆動される機器を制御する制御手順をアップデートするためのアップデート方法において、
前記機器を通常動作時の識別情報とは異なる識別情報で再起動させることにより、前記処理装置で通常動作時のデバイスドライバとは異なるアップデート用デバイスドライバを呼び出し、アップデートを行ない、アップデート完了後は、通常動作時の識別情報で再起動させることを特徴とするアップデート方法。
【請求項２】
前記処理装置からの指示に応じて前記機器を通常動作時とは異なる識別情報に切り換えて再起動させることを特徴とする請求項１記載のアップデート方法。
【請求項３】
前記機器からの指示に応じて前記機器を通常動作時とは異なる識別情報に切り換えて再起動させることを特徴とする請求項１記載のアップデート方法。
【請求項４】
前記アップデート処理中は前記機器の前記識別情報の切り換えを行なわないことを特徴とする請求項１乃至３のいずれか一項記載のアップデート方法。
【請求項５】
前記機器が、アップデート処理が所定期間停止されたときには、前記識別情報を通常動作時のデバイスドライバに対応した識別情報に切り換えることを特徴とする請求項１乃至４のいずれか一項記載のアップデート方法。
【請求項６】
処理装置からの指示に基づいて駆動される機器において、
前記機器を制御するプログラムをアップデートする指示が行なわれたときには、通常動作時の識別情報とは異なる識別情報で再起動させることにより、前記処理装置で通常動作時のデバイスドライバとは異なるアップデート用デバイスドライバを呼び出し、アップデートを行ない、アップデート完了後は通常動作時の識別情報で再起動させるアップデート手段を有することを特徴とする機器。
【請求項７】
前記アップデート手段は、前記処理装置からの指示に基づいて起動されることを特徴とする請求項６記載の機器。
【請求項８】
前記アップデート手段を起動する操作部を有することを特徴とする請求項６記載の機器。
【請求項９】
前記アップデート手段は、アップデート処理時間を監視し、
前記アップデート処理が所定期間停止されたときには、前記識別情報を通常動作時のデバイスドライバに対応した識別情報に切り換えることを特徴とする請求項６乃至８のいずれか一項記載の機器。
【請求項１０】
コンピュータに、
処理装置からの指示に基づいて駆動される機器を制御する制御手順をアップデートする指示が行なわれたときに、通常動作時の識別情報とは異なる識別情報で再起動させることにより、前記処理装置で通常動作時のデバイスドライバとは異なるアップデート用デバイスドライバを呼び出し、アップデートを行ない、アップデート完了後は、通常動作時の識別情報で再起動させるプログラムが記憶されたコンピュータ読み取り可能な記録媒体。
【請求項１１】
前記プログラムは、前記処理装置からの指示に基づいて起動されることを特徴とする請求項１０記載の記録媒体。
【請求項１２】
前記プログラムは、前記機器の操作に応じて起動されることを特徴とする請求項１０記載の記録媒体。
【請求項１３】
前記プログラムは、アップデート処理時間を監視し、
前記アップデート処理が所定期間停止されたときには、前記識別情報を通常動作時のデバイスドライバに対応した識別情報に切り換えることを特徴とする請求項１０乃至１２のいずれか一項記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はアップデート方法及び機器並びに記録媒体に係り、特に、接続機器のデバイスドライバ、ファームウェアなどを最新のものに置き換える、いわゆる、アップデートを行なうためのアップデート方法及び機器並びに記録媒体に関する。
【０００２】
【従来の技術】
パーソナルコンピュータでプリンタ、スキャナ、入力デバイスなどの機器を使用する場合には、一般に機器の持つ機能をパーソナルコンピュータのＯＳ（Operating System）に提供するためのデバイスドライバが必要である。
【０００３】
機器には識別情報ＩＤが付与されており、デバイスドライバは、機器に付与されたＩＤにより識別され、ドライブされる。また、機器にはファームウェアが内蔵され、機器は内蔵されたファームウェアにより制御されている。
【０００４】
ファームウェアは、アップデート用デバイスドライバによりアップデート可能とされている。
【０００５】
デバイスドライバは、アプリケーションプログラムと協調して動作する。このとき、デバイスドライバは、稼動中のアプリケーションプログラムからの問い合わせを常に監視している。
【０００６】
ファームウェアをアップデートしている最中に、アップデートプログラム以外のプログラムからデバイスドライバに問い合わせがあると、アップデート作業の邪魔になる。また、アップデート用デバイスドライバは、アプリケーションプログラムからの問い合わせには不応答であり、この場合、アプリケーションプログラムの動作は補償されない。
【０００７】
【発明が解決しようとする課題】
しかるに、従来の接続機器のデバイスドライバ、ファームウェアをアップデートするためには、デバイスドライバ、ファームウェアがアプリケーションプログラムからの問い合わせを受けないようにするために、アプリケーションプログラムを終了させる必要があった。
【０００８】
本発明は上記の点に鑑みてなされたもので、機器のデバイスドライバ、ファームウェアを簡単な操作でアップデートできるアップデート方法及び機器並びに記録媒体を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、ホストコンピュータなどの処理装置に記憶されたアップデートプログラムから機器にアップデートの指示が行なわれたときに、処理装置に機器を識別させるための識別情報を通常動作時の識別情報とは異なる識別情報で再起動させることにより、前記処理装置で通常動作時のデバイスドライバとは異なるアップデート用デバイスドライバを呼び出し、アップデートを行ない、アップデート完了後は、通常動作時の識別情報で再起動させる。
【００１０】
本発明によれば、機器の識別情報を切り換えて再起動することにより、処理装置でアップデート用デバイスドライバと通信させることができ、アップデート用デバイスドライバによりアップデートを行うことができる。このため、機器に対応するアプリケーションを閉じることなくアップデートが可能となる。
【００１１】
また、アップデート処理時間を監視し、アップデート処理が所定期間停止されたときには、識別情報を通常動作時のデバイスドライバに対応した識別情報に切り換える。
【００１２】
本発明によれば、アップデート処理時間を監視し、アップデート処理が所定期間停止されたときには、処理装置がアップデート処理には不適な処理状況であると判断して、識別情報を通常動作時のデバイスドライバに対応した識別情報に切り換えることにより、自動的にアップデートが終了され、アプリケーションからの処理を優先して実行できる。このため、効率よく機器を使用することができる。
【００１３】
【発明の実施の形態】
図１に本発明の一実施例のシステム構成図を示す。
【００１４】
本実施例のシステム１は、コンピュータ１０、機器２０、ネットワーク３０、サーバ４０を含む構成とされている。コンピュータ１０は、ネットワーク３０を介してサーバ４０と通信を行い、サーバ４０から機器２０の最新のファームウェアを取得可能とされている。
【００１５】
図２に本発明の一実施例のコンピュータのブロック構成図を示す。
【００１６】
コンピュータ１０は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ハードディスクドライブ１０４、ＣＤ−ＲＯＭドライブ１０５、キーボード１０６、マウス１０７、入力インタフェース１０８、ディスプレイ１０９、表示制御装置１１０、外部インタフェース１１１、モデム１１２を含む構成とされる。ハードディスクドライブ１０４には、ＯＳ、アプリケーションプログラム、アップデートプログラム、デバイスドライバなどが予めインストールされており、ＣＰＵ１０１により実行される。
【００１７】
図３に本発明の一実施例の機器のブロック構成図を示す。
【００１８】
機器２０は、インタフェース２０１、ＣＰＵ２０２、メモリ２０３、機器本体２０４を含む構成とされている。メモリ２０３は、不揮発性メモリを含む構成とされており、ファームウェアなどが記憶されている。メモリ２０３に記憶されたファームウェアは、ＣＰＵ２０２により実行され、機器本体２０４の制御を行なう。また、メモリ２０３は、アップデート管理用のメモリ領域としても用いられる。
【００１９】
図４に本発明の一実施例の要部の機能ブロック図を示す。
【００２０】
機器２０は、インタフェース１１１を経由して、デバイスドライバＤＲ１、ＤＲ２と通信を行う。デバイスドライバＤＲ１は、機器２０を通常動作させるときに用いられ、アプリケーションプログラムＰAからの指示、データを機器２０に送信する。
【００２１】
デバイスドライバＤＲ２は、機器２０のファームウェアをアップデートするときに用いられ、アップデートプログラムＰupからの指示、アップデートデータを機器２０に送信する。
【００２２】
アップデートプログラムＰupは、ネットワーク３０を介してサーバ４０から取得したアップデートデータをデバイスドライバＤＲ２を介して機器２０に供給して、機器２０のファームウェアをアップデートする。
【００２３】
なお、デバイスドライバＤＲ１、ＤＲ２、アップデートプログラムＰupは、例えば、ＣＤ−ＲＯＭなどの記録媒体で提供される。また、機器２０のファームウェアもＣＤ−ＲＯＭなどの記録媒体で提供され、コンピュータ１０から機器２０にインストールされるようにしてもよい。
【００２４】
図４に本発明の一実施例の動作説明図を示す。
【００２５】
図５に本発明の一実施例の動作説明図を示す。
【００２６】
次に、アップデート時の動作について説明する。
【００２７】
アップデート時には、アップデートプログラムが起動される。アップデートプログラムＰupがステップＳ２−１で起動されると、ステップＳ２−２でデバイスドライバＤＲ１にアップデート通知を送信する。
【００２８】
デバイスドライバＤＲ１は、ステップＳ３−１でアップデートプログラムＰupからアップデート通知を受信すると、ステップＳ３−２で機器２０に対してアップデートコマンドを送信する。
【００２９】
機器２０はステップＳ４−１でアップデートコマンドを受信すると、ステップＳ４−２で識別情報を「ＩＤ１」から「ＩＤ２」に変更してステップＳ４−３で再起動する。
【００３０】
機器２０が識別情報「ＩＤ２」に変更されて再起動されると、ステップＳ５−１で識別情報「ＩＤ２」に対応したデバイスドライバＤＲ２が起動され、ＯＳにより認識される。なお、このとき、デバイスドライバＤＲ１は、識別情報「ＩＤ１」の機器が存在しないので、ステップＳ３−３で停止状態となり、ＯＳに認識されなくなる。このことは、例えば、機器２０がＵＳＢ（Universal Serial Bus）機器である場合、システムからディスコネクトされたことに等しい。
【００３１】
機器２０が起動することにより識別情報「ＩＤ２」に対応したデバイスドライバＤＲ２が呼び出され、動作状態となる。デバイスドライバＤＲ２が動作状態となることにより、デバイスドライバＤＲ２がＯＳにより認識される。デバイスドライバＤＲ２がＯＳにより認識されると、ステップＳ２−３でアップデートプログラムＰupがアップデート処理を開始する。アップデート処理によりステップＳ５−２でデバイスドライバＤＲ２を中継して、アップデートデータが機器２０に送信され、ステップＳ４−４でファームウェアがアップデートされる。
【００３２】
ステップＳ２−４でアップデート処理が完了すると、アップデートプログラムＰupはステップＳ２−５でデバイスドライバＤＲ２を経由して、機器２０に再起動時に識別情報を元の識別情報「ＩＤ１」に戻すコマンドを送信する。また、アップデートプログラムＰupはステップＳ２−６アップデート処理を終了し、プログラムが閉じられる。アップデートプログラムＰupが閉じられると、アップデートプログラムＰupはＯＳから認識されなくなる。
【００３３】
機器２０は、ステップＳ４−５でアップデートプログラムＰupからのコマンドにより識別情報を「ＩＤ２」から「ＩＤ１」に変更してステップＳ４−６で再起動される。機器２０が再起動されると、ステップＳ３−４で識別情報「ＩＤ１」に対応するデバイスドライバＤＲ１が呼び出され、動作状態とされる。
【００３４】
デバイスドライバＤＲ１が動作状態にされると、ＯＳはデバイスドライバＤＲ１を認識する。
【００３５】
デバイスドライバＤＲ１が動作状態となると、アプリケーションプログラムＰAによりデバイスドライバＤＲ１が認識され、元の通り、アプリケーションプログラムが実行可能となる。なお、ステップＳ１−２でアプリケーションプログラムＰAはデバイスドライバＤＲ１が停止状態のときにもデバイスドライバＤＲ１の存在の有無、或いは問い合わせを行い、デバイスドライバＤＲ１の状態を監視している。
【００３６】
なお、機器２０の識別情報が「ＩＤ２」から「ＩＤ１」に変更になることにより、ステップ３−３で識別情報「ＩＤ２」に対応するデバイスドライバＤＲ２は停止状態となる。デバイスドライバＤＲ２が停止状態となることにより、デバイスドライバＤＲ２はＯＳに認識されない。
【００３７】
このように、本実施例によれば、アプリケーションプログラムＰAを終了させることなく、機器２０のファームウェアのアップデートを行なうことができる。
【００３８】
なお、本実施例では機器２０にファームウェアをアップデートしたが、デバイスドライバＤＲ１をアップデートできるようにすることもできる。
【００３９】
図６に本発明の一実施例の変形例の動作説明図を示す。同図中、図５と同一処理ステップ部分には同一符号を付し、その説明は省略する。
【００４０】
本変形例では、ステップＳ５−１で機器２０によりデバイスドライバＤＲ２が動作されると、アップデートプログラムＰupは、まず、デバイスドライバＤＲ２を経由してステップＳ２−１１でデバイスドライバＤＲ１のアップデート処理が行なわれる。デバイスドライバＤＲ１は、ステップＳ３−１１でアップデートプログラムＰupによりアップデートされる。ステップＳ３−１２でデバイスドライバＤＲ１のアップデートが完了すると、アップデートプログラムＰupはステップＳ２−３で前述のようにデバイスドライバＤＲ２を経由して機器２０のファームウェアをアップデートする。
【００４１】
本変形例によれば、機器２０のファームウェアに加えて、デバイスドライバＤＲ１をアップデートすることができる。
【００４２】
なお、本変形例では、ファームウェア、デバイスドライバをアップデート可能としているが、アプリケーションプログラムをアップデートするようにすることもできる。
【００４３】
図７に本発明の一実施例の他の変形例の動作説明図を示す。同図中、図６と同一処理ステップ部分には同一符号を付し、その説明は省略する。
【００４４】
本変形例では、アップデートプログラムＰupからデバイスドライバＤＲ１を経由して機器２０にコマンドを送信する前に、デバイスドライバＤＲ１にコマンドを送る。デバイスドライバＤＲ１は、ステップＳ３−２１でコマンドを受信すると、ステップＳ３−２２でアプリケーションプログラムＰAによるデバイスドライバＤＲ１の監視動作時にデバイスドライバＤＲ１からアプリケーションプログラムＰAにエラー応答を行なう。
【００４５】
アプリケーションプログラムＰAは、ステップＳ１−１１でデバイスドライバＤＲ１からのエラー応答により終了される。
【００４６】
アップデートプログラムＰupは、ステップＳ２−２１でアプリケーションプログラムＰAが終了されると、アプリケーションプログラムＰAをアップデートする。ステップＳ１−１２でアプリケーションプログラムＰAのアップデートが行なわれ、ステップＳ１−１３でアップデートが完了する。アップデートプログラムＰupはアプリケーションプログラムＰAの終了すると、図６と同様にデバイスドライバＤＲ１をアップデートし、その後、機器２０のファームウェアをアップデートする。
【００４７】
本変形例によれば、機器２０のファームウェア及びデバイスドライバＤＲ１に加えてアプリケーションプログラムＰAをアップデートすることができる。
【００４８】
なお、機器２０にアップデートの状態を不揮発性のメモリに記憶しておき、アップデート最中に電源がオフしたときには、機器２０に記憶されたアップデート状態に基づいてアップデートを再開するようにしてもよい。
【００４９】
図８に本発明の一実施例の第３変形例の動作説明図を示す。同図中、図５と同一処理ステップには同一符号を付し、その説明は省略する。
【００５０】
機器２０にフラッシュメモリなどの不揮発性メモリを所有させ、ステップＳ４−１１でデバイスドライバＤＲ２を動作させるための識別情報「ＩＤ２」及びアップデートの状態を不揮発性メモリに記憶させる。
【００５１】
ステップＳ４−１２で電源の切断などが発生した場合には、ステップＳ４−３に戻って再起動される。すなわち、不揮発性メモリに記憶されたアップデート時の識別情報「ＩＤ２」により起動されるため、アップデート用のデバイスドライバＤＲ２が動作される。デバイスドライバＤＲ２が動作することによりアップデートプログラムＰupからアップデート用デバイスドライバＤＲ２を経由してアップデートが再開される。
【００５２】
また、アップデートプログラムＰupによるアップデートが完了していない場合には、再起動後もアップデートプログラムＰupが自動的に再開されるようにＯＳを設定しておく。例えば、アップデートプログラムＰupの開始時にＯＳの、例えば、ウィンドウズの概念であるレジストリの所定の位置にアップデートプログラムを設定しておけば、ＯＳ起動時にアップデートプログラムが再起動される。アップデート完了時には、レジストリへのアップデートプログラムＰupの設定を消去することにより、次回からはアップデートプログラムＰupは起動されなくなる。
【００５３】
本変形例によれば、アップデート中に電源が切断されたとしても、電源投入後に継続してアップデートが可能となる。
【００５４】
なお、アップデートの進行状況に応じてアップデートを中断するようにしてもよい。
【００５５】
図９に本発明の一実施例の第４変形例の動作説明図を示す。同図中、図５と同一処理ステップ部分には同一符号を付し、その説明は省略する。
【００５６】
本変形例では、ステップＳ４−２１で機器２０でアップデートにかかっている時間を監視する。例えば、アップデートプログラムからのアップデートデータに定期的に時刻情報が含まれるようにし、機器２０ではアップデートデータを受信するとアップデートデータに含まれる時刻情報を保持しておく。
【００５７】
ステップＳ４−２２で、電源が切断、あるいは、ＯＳが停止し、アップデートデータが供給されない場合、停止前に受信したアップデートデータに含まれる時刻情報と再開後に受信したアップデートデータに含まれる時刻情報との時間差が所定の時間より大きいときや停止回数が所定回数以上になり、アップデートが正常に行なえないと判定したときには、ステップＳ４−５で機器２０は識別情報を「ＩＤ１」に変更して、再起動することによりアップデートを停止する。機器２０が識別情報「ＩＤ１」で再起動されるときには、時刻情報などの情報はクリアされる。時刻情報などの情報がクリアされることにより次回アップデート時の障害を防止している。また、ステップＳ４−２３でアップデートが正常に終了したときにもステップＳ４−５で機器２０は識別情報を「ＩＤ１」に変更して、再起動される。
【００５８】
なお、上記変形例では、アップデートプログラムＰupからの指示により機器２０が識別情報「ＩＤ２」で再起動されるようにされているが、機器２０のキー操作により機器２０が識別情報「ＩＤ２」で再起動するようにしてもよい。キー操作は、例えば、電源投入操作などが考えられる。
【００５９】
機器２０が識別情報「ＩＤ２」で再起動することにより、デバイスドライバＤＲ２が動作して、アップデートプログラムＰupによりアップデートが開始される。
【００６０】
このとき、デバイスドライバＤＲ２をインターネットなどのネットワークを介してサーバと通信を行ない、サーバからアップデートデータを受信するようにしてもよい。
【００６１】
本実施例では、機器２０の電源を投入することにより自動的にサーバに接続されて最新のファームウェアにアップデートされ、機器２０を動作させることができる。
【００６２】
また、機器２０に鍵を設けておき、機器２０への鍵操作に基づいてアップデートを行なうようにすれば、鍵がある場合にのみアップデートが行なわれるようにできる。
【００６３】
なお、本実施例アップデートされる対象は、ソフトウェアのみに限定されるものではなく、例えば、ＦＰＧＡなどにおけるロジックなどを含むものであり、機器の制御手順を対象とするものである。
【００６４】
【発明の効果】
上述の如く、本発明によれば、機器の識別情報を切り換えて再起動することにより、処理装置でアップデート用デバイスドライバと通信させることができ、アップデート用デバイスドライバによりアップデートを行うことができる。このため、機器に対応するアプリケーションを閉じることなくアップデートが可能となる。
【００６５】
また、本発明によれば、アップデート処理時間を監視し、アップデート処理が所定期間停止されたときには、処理装置がアップデート処理には不適な処理状況であると判断して、識別情報を通常動作時のデバイスドライバに対応した識別情報に切り換えることにより、自動的にアップデートが終了され、アプリケーションからの処理を優先して実行できる。このため、効率よく機器を使用することができる。
【図面の簡単な説明】
【図１】本発明の一実施例のシステム構成図である。
【図２】本発明の一実施例のコンピュータのブロック構成図である。
【図３】本発明の一実施例の機器のブロック構成図である。
【図４】本発明の一実施例の機能ブロック図である。
【図５】本発明の一実施例の動作説明図である。
【図６】本発明の一実施例の第１変形例の動作説明図である。
【図７】本発明の一実施例の第２変形例の動作説明図である。
【図８】本発明の一実施例の第３変形例の動作説明図である。
【図９】本発明の一実施例の第４変形例の動作説明図である。
【符号の説明】
１  システム
１０  コンピュータ
２０  機器
３０  ネットワーク
４０  サーバ
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  ハードディスクドライブ
１０５  ＣＤ−ＲＯＭドライブ
１０６  キーボード
１０７  マウス
１０８  入力インタフェース
１０９  ディスプレイ
１１０  表示制御装置
１１１  外部インタフェース
１１２  モデム
２０１  インタフェース
２０２  ＣＰＵ
２０３  メモリ
２０４  機器本体
【図１】
0004805451.tif 000002
【図２】
0004805451.tif 000003
【図３】
0004805451.tif 000004
【図４】
0004805451.tif 000005
【図５】
0004805451.tif 000006
【図６】
0004805451.tif 000007
【図７】
0004805451.tif 000008
【図８】
0004805451.tif 000009
【図９】
0004805451.tif 000010