(57)【特許請求の範囲】
【請求項１】
クライアントコンピュータがネットワーク回線を介して組み込みシステムのファームウエアをアップグレードする方法において、
前記クライアントコンピュータが、前記クライアントコンピュータの現在のオペレーティングシステムのファイル取り扱い命令を用いた、ファームウェア・アップグレード・ファイルの選択を受け付けるステップと、
前記クライアントコンピュータが、前記組み込みシステムのファイルシステムを、前記組み込みシステムのファイルシステムを示す表示であって、前記クライアントコンピュータのファイルシステム内で利用可能な前記表示にマッピングするステップと、
前記クライアントコンピュータが、前記クライアントコンピュータの前記オペレーティングシステムのファイル取り扱い命令を用いて、前記マッピングされた組み込みシステムのファイルシステム内で利用可能なアップグレード用ディレクトリへ前記選択されたファームウェア・アップグレード・ファイルをコピー又は移動するステップと、
前記クライアントコンピュータが、前記クライアントコンピュータ内のアップグレード用ディレクトリへの前記ファームウェア・アップグレード・ファイルのコピー又は移動に応答して、前記ファームウェア・アップグレード・ファイルを、ファイル転送プロトコルによって、前記ネットワーク回線を介して前記組み込みシステムの前記アップグレード用ディレクトリに関連するチェック手段へ送信するステップと、
前記組み込みシステムが、前記組み込みシステムの前記チェック手段で前記ファームウェア・アップグレード・ファイルを受信するステップと、
前記組み込みシステムが、前記組み込みシステムの前記チェック手段によって、前記受信されたファームウェア・アップグレード・ファイルをファームウェア・アップグレード・ファイルとして承認するステップと、
前記組み込みシステムが、承認されたファームウェア・アップグレード・ファイルを前記組み込みシステムのメモリプログラマへ転送するステップと、
前記組み込みシステムが、前記メモリプログラマによって、前記ファームウェア・アップグレード・ファイルを前記組み込みシステムの持続性メモリへ書き込むステップと、を有する前記方法。
【請求項２】
前記メモリプログラマは、フラッシュプログラマである、請求項１に記載の方法。
【請求項３】
前記ファイルシステムをマッピングするステップは、前記クライアントコンピュータのファイルシステムから前記組み込みシステムのファイルシステムへのポインタを確立することを含む、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の技術分野）
本発明は、ネットワーク接続を介して組み込みシステム(エンベデッドシステム)のファームウエアをアップグレードする方法に関する。更に、本発明は、揮発性メモリ、持続性（パーシステント）メモリ、ネットワークを介する通信用のプロトコルスタックを有する、ネットワークを介して受信されたファームウエアをアップグレードする（水準を向上する）手段を備えた組み込みシステムに関する。
【背景技術】
【０００２】
（発明の背景）
データ通信のテクノロジは迅速に発展し、コンピュータネットワークは膨張しつつあって、増大する数のクライアントとサーバからなる。
ネットワークのユーザとオーナは、サーバとその組み込みシステムが急速に変化するデータ通信テクノロジに従って最新式のものとなることを要求している。更に、組み込みシステム発展の中での増大部分は、ファームウエアの発展として今日行われている。データ通信テクノロジの急速な発展と、ユーザからの新しい機能性の要求とのために、組み込みシステムのファームウエアは、しばしばアップグレードされなければならない。
【０００３】
更に、コンピュータネットワークの使用は増大しつつあって、今日ほとんど全ての会社は、会社自身のコンピュータネットワークを有し、あるいは、少なくともそれに接続されている。増大する数のコンピュータネットワークは、日常のネットワークのメンテナンスに責任ある個人数を増大させている。これら個人の多くは、コンピュータまたはコンピュータ通信の専門家ではない。
従って、コンピュータ通信テクノロジ及び製品の急速な発達、更に、日常のメンテナンスに責任ある個人数の増大により、低エラー確率の点で容易かつ確実な方法でサーバのファームウエアのアップグレードが行えるということが要求されている。
【０００４】
ファームウエアのアップグレードは、今日一般的には、組み込みシステムに対しコンピュータを直接接続することによって管理される。更に、サーバを接続したネットワークを介してファームウエアのアップグレードを行うことが知られている。
【０００５】
公知の組み込みシステムのファームウエアをアップグレードする場合の大きな問題は、アップグレードを行う個人が、コンピュータネットワークと組み込みシステムの詳細な知識を有しなければならず、多くのかなり複雑な処置を行わなければならないということである。大部分の個人は、この処置の実行には自信がなく、ファームウエアのアップグレードを行う時に、入力する必要のある全ての数字及び文字を使用するのに自信がない。更に、アップグレードには、組み込みシステムにファームウエアのアップグレード品をダウンロードするために、クライアント内で特に設計されたプログラムを必要とする。
【０００６】
これらの態様は、組み込みシステムのファームウエアのアップグレード動作を困難にし、特に、個人がコンピュータ及びコンピュータ通信の技術に習熟していない場合、個人にとっては時間のかかるものとなる。公知の技術では、アップグレードファイルは、ファイル転送プロトコルによって組み込みシステムにダウンロードされる。このダウンロードは、専用プログラムで行われ、このダウンロードを行う各個人は、例えば、ネットワークアドレスの形でデータを何処に送るべきかを明示する必要がある。
【０００７】
組み込みシステムでファームウエアをアップグレードする時の他の一般問題は、ファームウエアのダウンロード中に通信が停止する危険性である。この通信の停止では、組み込みシステムが不動作にされて修繕にかなりの労力が必要とされることがある。
【０００８】
米国５，８１２，８５７は、ダウンロードのコード（符号）の組をアップグレードする方法を開示しており、ここでは、組み込みシステムは、通常の動作の場合のように同一のネットワークドライバを使用する。更に、これは、そのコードの組の種々の異なる部分をダウンロード動作の種々の異なるステップ中にダウンロードするダウンロードを記載している。そのコードの組の一部は、揮発性メモリを介してフラッシュメモリにダウンロードされ、またある部分は、フラッシュメモリに直接ダウンロードされる。また、一時的なダウンロードは、最初のステップでダウンロードされ、後のステップで更に別のダウンロードにより置換されるということも記載している。この記載した装置及び方法は、持続性メモリに対し揮発性メモリからコードを実行する時間を最小化するように設計されていて、かなり複雑である。
【発明の概要】
【課題を解決するための手段】
【０００９】
（発明の要約）
本発明の目的は、ファームウエアのアップグレードに関して、組み込みシステム及び新しい改良になる組み込みシステムにおけるファームウエアをアップグレードする新しい改良になる方法を提供することである。
本発明の他の目的は、使用が容易で時間節約となるファームウエアアップグレード方法を提供することである。
【００１０】
本発明の更に他の目的は、誤りのアップグレードの確率を最小にするファームウエアアップグレード方法を提供することである。
これらの目的並びに以下の記載から明らかとなる他の目的は、請求項１による方法並びに請求項１４による組み込みシステムにより達成される。本発明の好適な実施例は、従属請求項に開示されている。
本発明の文脈内において、組み込みシステムという用語は、サーバ装置に内蔵されてこれと一体の専用若しくは特定目的コンピュータを示す。サーバ装置は、例えば、ＣＤサーバ、プリンタサーバ、ファイルサーバ、通信サーバ等とすることができる。
【００１１】
本発明によれば、バーチャルファイルシステムが組み込みシステムで使用される。これにより、アップグレードを開始する個人は、周知の環境で働くことができ、クライアントコンピュータ内でファイルを扱う時と同様の命令（コマンド）を使用することができることになる。クライアント装置（システム）内でのファイルのこの取り扱いは、コンピュータのユーザにより毎日行われ、従って、各個人は、この取り扱いを行うことに恐らく習熟し、従って、本発明によるシステムは時間節約となり得る。
【００１２】
更に、組み込みシステム内のバーチャルファイルシステムを使用することによって、クライアントコンピュータから組み込みシステムへファイルを転送する簡単な方法が、例えば、クライアントコンピュータとバーチャルファイルシステムを共有することによって、使用することができる。ファイルシステムの共有は、このファイルシステムがクライアントコンピュータ内で使用することができ、かつ、このファイルシステムがそのクライアントコンピュータのファイルシステムの一部であった場合に取り扱うことができるような方法で構成されているファイルシステムと解釈されるべきである。
【００１３】
本発明の更に他の利点は、組み込みシステムのプロトコルスタックは、サーバの通常の動作及びアップグレード動作の両方にとって同一とすることができるということである。従って、組み込みシステムの持続性メモリでのスペースを節約することが可能である。なお、バーチャルファイルシステムは、現在使用中のプロトコルスタックとは独立に動作する。
ファームウエア・アップグレード・ファイルのデータを持続性メモリに書き込む前に、揮発性メモリ内に記憶することによって、重要なデータは、持続性メモリに書き込む前にチェックすることができる。従って、データが正しいファームウエアアップグレードを表すかどうかをチェックし、そのデータが組み込みシステムに関する製品（プロダクト）に使用されるものであるかどうかをチェックすることが可能である。
【００１４】
本発明の好適な実施例では、組み込みシステムのバーチャルファイルシステムは、クライアントのコンピュータ内でマッピングされる。それによって、特に設計された如何なるプログラムもクライアントコンピュータで使用する必要はなくなる。従って、時間とクライアントコンピュータのメモリ空間は、節約される。
本発明の方法の特定実施例によれば、ファームウエア・アップグレード・ファイル全体は、持続性メモリに書き込む前に組み込みシステムの揮発性メモリに記憶される。それによって、ファームウエア・アップグレード・ファイルのエラーは、例えば、持続性メモリに現在記憶されているファームウエアをそのファイルが置換する前に、制御手段にそのファイルをチェックさせることによって確認することができる。これらのエラーは、一般的には、ネットワークトラフィックにおける中断の結果、または他のネットワークに関連するエラーである。
本発明の他の特徴及び利点は、添付図面に関する現在好適な実施例の次の詳細な説明から明らかとなる。
【図面の簡単な説明】
【００１５】
【図１】本発明の組み込みシステムの環境の略図。
【図２】該組み込みシステムのファームウエアのアップグレード中における該組み込みシステムとクライアントコンピュータの略図。
【図３】図２に示した組み込みシステムの一部の詳細図。
【図４】本発明の方法によるイベントを示す図。
【実施例】
【００１６】
（現在好適な実施例の詳細な説明）
図１には、本発明の環境が示してあり、クライアントコンピュータ１０とサーバ〈複数〉１００は、ネットワーク３０に接続されている。サーバ１００は、各々、装置５０に対しネットワーク３０を介してクライアントコンピュータ１０との通信手段を提供している。ここに記載のクライアントコンピュータ１０は、ネットワーク３０に接続した複数のクライアントコンピュータの内のどのクライアントコンピュータともなり得る。サーバ１００は、各々、このサーバ１００の処理を行う組み込みシステム１１０を有している。ファームウエアのアップグレードは、クライアントコンピュータ１０で開始されて１つの組み込みシステム１１０に向けられる。
【００１７】
組み込みシステム１１０を有するサーバ１００は、ネットワークを介して装置５０に達し、またはこれを共有することが可能となる。サーバ１００は、装置５０に内蔵することができ、構成ｂ、または装置５０の外部に設けることができる、構成ａ。
装置５０は、ネットワークに接続するために興味の対象となり得るどのような装置であってもよい。例えば、装置５０は、産業用ロボット、制御装置またはプロセス用計器またはプリンタ、モデム、スキャナ、ファックス、複写機、または多機能周辺機器のような周辺装置とすることができる。
【００１８】
次に図２において、この好適な実施例の組み込みシステム１１０は、ファイル装置１２０、揮発性メモリ１５０、持続性メモリ１６０、中央処理装置１７０（ＣＰＵ）、少なくとも１つのプロトコルスタック１８０及びプログラマ１９０を有している。
ファイルシステム１２０内には、バーチャルファイルシステム１２２（ＶＦＳ）が、実装され、このバーチャルファイルシステムには今後「フラッシュ」と呼ぶアップグレード用ディレクトリ１２６が設けられている。本発明の好適な実施例では、フラッシュディレクトリ１２６は、他のリソースをも含む「システム」と呼ぶことにするディレクトリ１２４のサブディレクトリである。
【００１９】
揮発性メモリ１５０は、この揮発性メモリ１５０への電力がオフされた時にその内部に記憶された情報を失うメモリであり、これは、一時的なデータを記憶するために使用される。持続性メモリ１６０は、このメモリへの電力がオフにされた時でも記憶データが保存される再度プログラム可能なメモリである。好適な実施例では、持続性メモリ１６０は、フラッシュメモリであるが、電力がオフとなった後にデータを保存する任意の再度プログラム可能なメモリであってもよい。ＣＰＵ１７０は、組み込みシステムの機能、プロトコルなどを処理する。プロトコルスタック１８０は、ネットワークを介して通信するためのプロトコルを含んでいる。この明細書で、後でフラッシュプログラマ１９０と呼ぶことにするプログラマ１９０は、コードを持続性メモリ１６０に書き込む手段である。
【００２０】
クライアントコンピュータ１０は、ネットワーク３０を介して共有されるリソース２０のマッピングを可能とするファイルシステム１８を備えたオペレーティングシステムを有している。
装置５０に関連したサーバ１００は、クライアントコンピュータのファイルシステム内にマッピングされている。
【００２１】
サーバ１００は、一般的には、ファームウエアのアップグレードよりも他の目的でファイルシステム１８内にマッピングされる。例えば、もしサーバにより奉仕される装置５０がファイル記憶装置の場合、この記憶領域は一般的にはクライアントコンピュータ１０のオペレーティングシステムの通常のファイル取り扱い命令を使用することによって該クライアントコンピュータからアクセス可能である。従って、クライアントコンピュータ１０のファイルシステム１８からサーバ１００の組み込みシステム１１０のファイルシステム１２０のルートディレクトリへのポインタが確立される。それにより、組み込みシステム（１１０）のファイルシステム１２０のサブディレクトリは、クライアントコンピュータ１０のファイルシステム１８内において利用可能でもある。サーバ１１０が装置５０の通常の動作のためクライアントコンピュータ１０のファイルシステム１８内にまだマッピングされていない場合には、サーバ１００は、本発明によるアップグレード動作を行う前にクライアントコンピュータ１０でマッピングされなければならない。
【００２２】
この構成により、組み込みシステム１１０のディレクトリは、クライアントコンピュータ１０のオペレーティングシステムのファイル構造内で取り扱うことが可能となる。更に、この組み込みシステム１１０のディレクトリは、通常のファイル取り扱い命令を使用してクライアントコンピュータ１０であるかのようにアクセスすることができる。
【００２３】
次に図３には、組み込みシステム１１０のバーチャルファイルシステム１２２内のフラッシュディレクトリ１２６が示してある。フラッシュディレクトリ１２６と関連したデータチャネル１２８により実現される制御手段が存在する。今後、このデータチャネル１２８は、フラッシュデータチャネル１２８と呼ぶことにする。フラッシュデータチャネル１２８は、フラッシュディレクトリ１２６がアクセスされる度にリセットされる。このフラッシュチャネルは、データ記憶のための揮発性メモリ１５０の一部を割り当てられている。フラッシュデータチャネル１２８は、フラッシュディレクトリ１２６に送られた全てのデータを取り扱い、特に、ファームウエア・アップグレード・ファイルを取り扱い、受信されたデータに対する種々の制御動作を行うように設計されている。
【００２４】
上記の制御動作を行うため、フラッシュデータチャネル１２８は、そのファイルの特性をチェックする手段、すなわち、第１のチェック手段、第２のチェック手段及び第３のチェック手段と、揮発性メモリ１５０のファイルのデータを記憶する手段とを有している。これらのチェック手段及び記憶する手段は、フラッシュデータチャネル１２８に関連したプログラムコードにより実現される。第１のチェック手段は、下記の「マジック番号」をチェックすることによってファイルがファームウエア・アップグレード・ファイルであるか否かをチェックする。第２のチェック手段は、揮発性メモリ１５０に記憶したファイルが組み込みシステム１１０に関連した製品に使用されるものであるかをチェックする。第３のチェック手段は、ファイルにエラーがあるかを決定するためにファイルのチェックサム、検査合計をチェックする。
【００２５】
更に、フラッシュデータチャネル１２８は、承認されたファームウエア・アップグレード・ファイルを持続性メモリ１６０に書き込ませるために、このファームウエア・アップグレード・ファイルをフラッシュプログラマ１９０に供給する。このフラッシュデータチャネルの機能の更に詳細な記載は、方法の記載の中で以下に示す。
次に図２と図４で、ファームウエアのアップグレードの好適な方法を記載する。クライアントコンピュータ１０のファイルシステム１８には、サーバ１００がマッピングされていると仮定する。
【００２６】
ユーザがサーバ１００の製造者から受信して、クライアントコンピュータ１０のハードディスク２２に記憶したファームウエア・アップグレード・ファイル２４でサーバのファームウエアをアップグレードすることに興味を有していると仮定する。なお、該ファームウエア・アップグレード・ファイルは、もちろん、クライアントコンピュータ１０からアクセス可能な任意の記憶装置に記憶できるものとする。
ユーザは、ファームウエア・アップグレード・ファイル２４を現在のオペレーティングシステムがフラッシュディレクトリにコピーまたは移動するために、通常のファイル取り扱い命令を使用する。好適な実施例では、個人は、該クライアントコンピュータ内のフラッシュディレクトリ２６の表示に対しファームウエア・アップグレード・ファイル２４を「ドラッグして落とす」２８。
【００２７】
クライアントコンピュータ１０は、その後、命令を組み込みシステムに送って、この組み込みシステムのバーチャルファイルシステム１２２内でフラッシュファイルを開くよう告げる、ステップ４０２。
その後、該フラッシュデータチャネルは、リセットされ、ステップ４０４、ファームウエア・アップグレード・ファイル２４のデータは、揮発性メモリ１５０に受信されて記憶される、ステップ４０６。フラッシュデータチャネルは、受信中データを制御し、ファームウエア・アップグレード・ファイルにその受信データが所属するということを確認する識別子に対応する「マジック番号」の形で識別子をチェックする、ステップ４０８。
【００２８】
ファームウエア・アップグレード・ファイルとしてデータを識別するマジック番号についてのステップ４０８のチェックは、「マジック番号」のデータファイル内の予め定義した位置をチェックする。該マジック番号は、該ファームウエア・アップグレード・ファイルの最初に位置決めされることが好ましい。
ファームウエア・アップグレード・ファイルに対応するマジック番号が、ステップ４０８における予め定義した位置で発生しない場合、そのファイルのデータは、ファームウエア・アップグレード・ファイルには所属しない。その結果、エラーメッセージがクライアントに送られ、ステップ４２２、ファイル伝送が終了される。
【００２９】
ファームウエア・アップグレード・ファイル２４に対応するマジック番号が受信されると、ステップ４０８、該ファームウエア・アップグレード・ファイルの全てのデータが揮発性メモリ１５０に記憶されるまでデータの受信が続行する、ステップ４１２、４１４。
ファームウエア・アップグレード・ファイルの全てのデータが受信されると、フラッシュデータチャンネルは、受信したファイルのチェックサムを制御する、ステップ４１８。もしチェックサムが正しくない場合、受信したファイルは崩壊する。その結果、エラーメッセージが該クライアントコンピュータに送られ、ステップ４２２、該組み込みシステムのアップグレード動作は終了する。
【００３０】
チェックサムが正しい場合、該フラッシュデータチャンネルは、該ファームウエア・アップグレード・ファイルがどんな製品に使用されるものであるかを告知するファイル内のプロダクト識別子をチェックする、ステップ４２０。もし該プロダクト識別子が該サーバ製品に対応しない場合、エラーメッセージが該クライアントコンピュータに送られて、ステップ４２２、該組み込みシステムのアップグレード動作が終了する。
該プロダクト識別子が正しい場合、フラッシュプログラマ１９０は、メモリの少なくとも一部を消去し、揮発性メモリ１５０の該ファームウエア・アップグレード・ファイルをフラッシュメモリ１６０に書き込むよう命令される、ステップ４２４。該ファームウエア・アップグレード・ファイルがフラッシュメモリ１６０に書き込まれると、該フラッシュファイルは閉じられる。このことは、通常のファイル転送が完了した時と同様な方法で該クライアントコンピュータに表示される。
【図１】
0005395108.tif 000002
【図２】
0005395108.tif 000003
【図３】
0005395108.tif 000004
【図４】
0005395108.tif 000005