JP4013040B2 - ダウンロード装置及びダウンロード方法 - Google Patents
ダウンロード装置及びダウンロード方法 Download PDFInfo
- Publication number
- JP4013040B2 JP4013040B2 JP2002061384A JP2002061384A JP4013040B2 JP 4013040 B2 JP4013040 B2 JP 4013040B2 JP 2002061384 A JP2002061384 A JP 2002061384A JP 2002061384 A JP2002061384 A JP 2002061384A JP 4013040 B2 JP4013040 B2 JP 4013040B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- communication
- control program
- download
- received data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、外部機器から制御プログラムをダウンロードして書き換え可能な制御プログラムの書き換え機能に関するものである。
【0002】
【従来の技術】
主にホストコンピュータと通信手段により接続される画像処理装置などの種々の装置においては、将来の機能拡張や不具合修正に対応するために、プログラムのバージョンアップ機能を提供している場合が多い。このような装置では、多くの場合、ダウンロード機能を持つ比較的容量の小さい起動プログラムとメインの制御プログラムとを別々の記憶領域または記憶装置に格納し、万一ダウンロードに失敗してメインの制御プログラムが破壊された場合に備えている。すなわち、ダウンロードによって制御プログラムを書き換えている途中でエラーが発生した場合、制御プログラムは正常に動作しなくなる。このような状態でも改めて制御プログラムのダウンロードが可能なように、ダウンロードのためのプログラムを制御プログラムとは別に格納している。また、このような装置では、本来の画像データ等のデータを転送する目的で設けられた通信手段を、ダウンロードするプログラムの転送手段として使用している。
【0003】
一方、インターフェイスは年々高速化、インテリジェント化しており、通信制御プログラムは肥大し、かつ複雑になる傾向にある。これを解決する手段として、プロトコルスタック等が知られている。これは、下位層通信プロトコルの処理群であり、事実上、インテリジェントなインターフェイスの実装には必要不可欠なものとなっている。
【0004】
しかし、上述のプロトコルスタック等は、多くの場合、オペレーティングシステムに依存する形で実装されている。従って、インテリジェントな通信インターフェイスを実装するためには、例えばオペレーティングシステムとプロトコルスタックといったバックボーンが必要である。このため、例えばネットワーク経由のダウンロード機能を提供するためには、前述の起動プログラムにオペレーティングシステムとプロトコルスタックを実装することになる。しかしこの場合には、単純なインターフェイスのみのプログラムと比較して、容量が飛躍的に増大することになる。また、近年ではホストコンピュータ等との通信手段として複数のインターフェイスを備えている場合が多く、その数は年々増加傾向にある。これら複数のインターフェイスへの対応は、起動プログラムの容量増大に拍車をかけている。
【0005】
図6は、従来のプログラムダウンロード可能な装置における各プログラムの第1の構成例の説明図である。図6(A)は起動プログラムの構成を示し、図6(B)はメインとなる制御プログラムの構成を示している。起動プログラムには、例えば電源投入時やリセット時などに動作するブートプログラムが含まれており、通常の動作時にはブートプログラムが図6(B)に示す制御プログラムを起動する。起動時のモードがダウンロードの場合には、起動プログラム内のダウンロードプログラムを起動し、外部から受け取るデータにより制御プログラム全体を書き換えることによってバージョンアップなどを行う。例えば特開平9−190354号公報などにおいても同様の構成が記載されている。
【0006】
制御プログラムには上述のように各種の通信手段を利用可能にするため、オペレーティングシステム(OS)とプロトコルスタック(PS)、それぞれの通信手段に対応した通信ドライバなどを含んでいる。しかし、これらは新たな制御プログラムのダウンロード時には書き換えられるため、ダウンロード時に制御プログラム内のオペレーティングシステム、プロトコルスタック、通信ドライバなどを利用することができない。従って、ダウンロード時には起動プログラムのみを利用して制御プログラムのダウンロードを行うことになる。
【0007】
従来は、起動プログラムの大きさは小さく抑えられており、図6(A)にも示すように簡単に通信が可能な通信手段を動作させる通信ドライバと、その通信ドライバを利用して起動プログラムのダウンロード及び制御プログラムの書き換えを行うダウンロードプログラム程度しか搭載されていなかった。
【0008】
このような構成では、ダウンロード時に利用可能な通信手段は、簡単に通信が可能な例えばIEEE1284やシリアルインターフェイスなどに制限されてしまうとともに、通常は低速、低機能の通信しか行うことができない。従って、制御プログラムのダウンロードは非常に利用しづらいものとなっていた。
【0009】
このような不便を改善するため、起動プログラムにおいても、より多くの、より高機能の通信手段を利用した通信を可能とすることが考えられている。図7は、従来のプログラムダウンロード可能な装置における各プログラムの第2の構成例の説明図である。図7に示す例では、制御プログラムのダウンロードを行う起動プログラム中にも、各種の通信手段による通信を可能とするため、オペレーティングシステムやプロトコルスタック、各種の通信ドライバなどを設けている。このような構成によれば、制御プログラムのダウンロードによって制御プログラムが利用できなくても、起動プログラムだけで各種の通信手段を利用し、制御プログラムのダウンロードを行うことができる。
【0010】
しかし、このような構成の場合、起動プログラムと制御プログラムがそれぞれオペレーティングシステム、プロトコルスタック、通信ドライバなどを含めた容量の大きい通信制御プログラムを含んでいる。このように、同じ機能を実現するためのプログラムが2箇所に存在することになり、プログラム容量の無駄が生じることになる。
【0011】
また、多くの場合、複雑な通信処理は不具合を含んでおり、バージョンアップの必要が生じる場合が多い。例えば通信ドライバなどのメンテナンスを行うためには、図7に示した例では同じ通信ドライバが起動プログラムと制御プログラムの両方に存在するため、起動プログラムと制御プログラムの両者のメンテナンスを行わなければならないという問題があった。この問題は、手間だけの問題ではなく、起動プログラムを書き換えなければならないというリスクを伴うことになる。すなわち、起動プログラムの書き換え中にエラーが発生した場合、最悪のケースでは装置は起動できなかったり、あるいは起動できてもダウンロード機能が存在しないために以後のメンテナンスが不能となるという可能性を含んでいる。
【0012】
プログラム容量を減少させるための一つの方法として、オペレーティングシステムに依存しないプロトコルスタックの実装を行うことによって、重複するオペレーティングシステムを起動プログラムから削除することも可能である。しかし、これには多くの労力を要し、また必ずしも容量を小さくできるという保障がないという問題がある。また、通信ドライバなどの通信処理を起動プログラムに集約してメンテナンスを1カ所にし、また容量の削減を行うことも考えられる。しかし上述のように、起動プログラムの書き換えを行うことはリスクを伴うことになるため、有効な解決にはならない。
【0013】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、制御プログラムにおいて利用可能な各種の通信手段を制御プログラムのダウンロード時にも利用可能にしながら、プログラム容量の増加を飛躍的に低減させたダウンロード装置及びダウンロード方法を提供することを目的とするものである。
【0014】
【課題を解決するための手段】
本発明は、起動プログラムには、オペレーティングシステムを必要としない処理で制御可能な特定の通信手段のみを用いて通信を行う第1の通信プログラムと、その第1の通信プログラムを用いて制御プログラム及び制御プログラムを書き込む書き込み処理プログラムが含まれた受信データを受信し、受信データ中の書き込み処理プログラムを起動する第1の受信プログラムを含めておく。また制御プログラムには、少なくともオペレーティングシステムを必要とする処理で前記通信手段を用いて通信を行う第2の通信プログラムと、その第2の通信プログラムを用いて受信データを受信し、受信データ中の書き込み処理プログラムを起動する第2の受信プログラムを含めておく。そして、新たな制御プログラムのダウンロード時には、制御プログラム中の第2の受信プログラムを起動し、その第2の受信プログラムを用いて受信データを外部機器からダウンロードする。正常に受信できた場合に、受信データ中の書き込み処理プログラムを起動して制御プログラムを書き換える。また、制御プログラムが正当ではない場合には、第1の受信プログラムを起動し、その第1の通信プログラムを用いて受信データを外部機器からダウンロードする。そして、受信データ中の書き込み処理プログラムを起動して、受信データ中の制御プログラムを書き換える。
【0015】
これによって、制御プログラム中のオペレーティングシステムを必要とする通信手段を利用して制御プログラムのダウンロードを行うことができる。従って、各種の通信手段を利用し、各通信手段の機能を有効に活用してダウンロードを行うことができ、利便性を向上させることができる。もちろん、制御プログラムのダウンロード時にエラーが発生し、制御プログラムが動作不能となっても、起動プログラムからオペレーティングシステムを必要としない処理で制御可能な通信手段を利用してダウンロードが可能であるので、不測の事態にも対応することができる。
【0016】
また、大容量を必要とする複雑な処理を必要とする通信手段は制御プログラムの側のみに存在するため、これらの通信処理のための容量を削減できるとともに、起動プログラムにはオペレーティングシステムやプロトコルスタックなどを設けなくても構成可能であるので、起動プログラムの容量を大幅に低減することが可能である。
【0017】
さらに、起動プログラムと制御プログラムの両方にそれぞれのプログラム容量に応じた受信プログラム(簡易受信プログラム)が設けられているので、いずれかを自動的に選択して利用することが可能であり、簡単に利用可能なインターフェイスを提供することができる。
【0020】
【発明の実施の形態】
図1は、本発明の実施の一形態を含むシステムの一例の説明図である。図中、1は制御装置、2は外部装置、11,12は通信部、13はROM、14は起動プログラム、15は制御プログラム、16はRAM、17はCPU、21は送信データである。制御装置1は、本発明のダウンロード装置を含み、また本発明のダウンロード方法により制御プログラム15を外部装置2からダウンロード可能な装置である。この例では、制御装置1は2つの通信部11,12を有しているものとして図示している。しかしこの例に限らず、3以上の通信部を有する構成であってよい。ここでは、通信部11は簡易な処理で制御可能な通信手段であるものとし、通信部12は複雑な処理を必要とする通信手段であるものとする。通信部11としては、IEEE1284準拠のインターフェイスやシリアルインターフェイスなどがある。また通信部12としては、ネットワークインターフェイス、IEEE1394準拠のインターフェイス、USBインターフェイス、無線通信インターフェイス、赤外線や光学通信インターフェイスなどがある。
【0021】
ROM13は、CPU17によって実行されるプログラムや、実行時に利用するデータなどが格納されている。特にここでは、起動プログラム14と、実際に制御装置において各種の機能を実現するための制御プログラム15が格納されている。ここでは起動プログラム14と制御プログラム15を同じROM13内に格納しているように図示しているが、これに限らず、それぞれ異なるROMやその他の記憶手段に格納してもよい。少なくとも制御プログラム15は、書き換え可能な領域あるいは記憶手段に格納されている。なお、起動プログラム14と制御プログラム15の詳細については後述する。
【0022】
RAM16は、CPU17が動作する際にワークエリアとして利用することができる。なお、制御プログラムをダウンロードする際に、新たな制御プログラムを含む受信データを、このRAM16に一旦格納するように構成してもよい。
【0023】
CPU17は、ROM13内のプログラム(起動プログラム14、制御プログラム15など)に従って動作し、制御装置1全体の制御及び各種の機能を提供する。また、外部装置2から新たな制御プログラムを含む送信データ21をダウンロードし、制御プログラム15を書き換える処理についても実際に行う。
【0024】
制御装置1には、このほかにも各種の構成を含んでいてよい。例えば制御装置1が画像形成装置であれば画像処理手段や画像形成エンジンなどを含んでいるであろうし、画像読取装置であれば画像読取手段や画像処理手段などを含んでいるであろう。そのほかの各種の装置であってももちろんよい。
【0025】
図2は、起動プログラム14と制御プログラム15の第1の構成例の説明図である。図中、31はブートプログラム、32は通信ドライバ、33はダウンロードプログラム、41はオペレーティングシステム、42はプロトコルスタック、43,44は通信ドライバ、45は自己書き換えプログラム、46はメインプログラムである。図2(A)に示す起動プログラム14では、電源投入時やリセット時などの起動時に動作するブートプログラム31と、簡易な処理で制御可能な通信部11を通じて通信を行うための通信ドライバ32と、通信ドライバ32を通じて制御プログラムのダウンロード及び書き換えを行うダウンロードプログラム33を含んで構成されている。ここでは簡易な処理ではオペレーティングシステムやプロトコルスタックを要しないものとし、起動プログラム14はオペレーティングシステムやプロトコルスタックを含んでいない。もちろん、必要に応じて最低限の構成を有していてもよい。
【0026】
図2(B)に示す制御プログラム15は、制御装置1を動作させるためのメインプログラム(MAIN)46とともに、複雑な処理を必要とする通信部12を通じて通信を行うための通信ドライバ43を含んでいる。このような複雑な処理を行い、高機能の通信(及び高機能の制御動作)を実現するため、制御プログラム15はオペレーティングシステム(OS)41及びプロトコルスタック42を有している。また、この例では通信部11を通じて通信を行うための通信ドライバ44も有している。この通信ドライバ44は、起動プログラム14中の通信ドライバ32と同じものでもよいし、異なるプログラムであってもよい。通信ドライバ44は、起動プログラム14中の通信ドライバ32よりもバージョンが新しく、相対的に高機能であることが予想されるので、制御プログラム15が動作可能であれば通信ドライバ44を利用することが望ましいと言える。
【0027】
さらに制御プログラム15には、自己書き換えプログラム45が含まれている。自己書き換えプログラム45は制御プログラム15内に存在するため、制御プログラム15内の通信ドライバ43を利用可能である。従って、自己書き換えプログラム45は、複雑な処理を必要とする通信部12を通じて外部装置2との通信を行うことによって、外部装置2内の新たな制御プログラムを含む送信データ21をダウンロードすることができる。ダウンロードした受信データ(送信データ21)は、例えばRAM16に一旦格納される。RAM16に格納された受信データのイメージを図2(C)に示している。この例では、受信データは制御プログラム15そのものを含んでいる。自己書き換えプログラム45は、正常にダウンロードが完了した後、制御プログラム15を書き換える。この書き換えの処理中は、自己書き換えプログラム45はRAM16にロードされているので、自己書き換えプログラム45自体が書き換えられても何ら問題はない。
【0028】
図2に示すように、起動プログラム14には、制御プログラム15に存在する通信ドライバ43に対応するプログラムを含んでおらず、従って複雑な処理が不要であることからオペレーティングシステム41やプロトコルスタック42に対応するプログラムも含んでいない。従って、起動プログラム14のプログラムサイズは非常に小さくてよく、起動プログラム14を格納するための容量も少なくて済む。また、上述のように新たな制御プログラムをダウンロードするための自己書き換えプログラム45は制御プログラム15中に存在するため、通信部11と通信部12のいずれも利用可能であり、ダウンロード時に利用するインターフェイスの選択肢が広がるとともに、複雑な処理が必要なインターフェイスについても利用することが可能である。
【0029】
なお、制御プログラム15から起動プログラム14中の通信ドライバ32やダウンロードプログラム33を利用可能に構成することもできる。例えば制御プログラム15には通信部11を利用して通信を行うための通信ドライバ44を設けずに、通信部11を利用して通信を行う場合には起動プログラム14中の通信ドライバ32を利用するように構成することも可能である。また、例えば自己書き換えプログラム45において通信部11を利用して新たな制御プログラムのダウンロードを行う場合には、起動プログラム14内のダウンロードプログラム33を呼び出して利用するように構成してもよい。
【0030】
図3は、本発明の実施の一形態におけるダウンロード動作の第1の例を示すフローチャートである。ここでは、起動プログラム14と制御プログラム15の構成が図2に示すような構成であるものとする。電源が投入されたり、あるいはリセットがかかる等、起動がかかると、S61において起動プログラム14中のブートプログラム31が起動される。また、起動時には起動モードが指示されるものとする。ここでは少なくとも、通常の動作モードと、制御プログラムをダウンロードするダウンロードモードで動作するものとする。
【0031】
ブートプログラム31が起動されると、様々な初期設定を行うとともに、S62において、制御プログラム15が正当であるか否かの評価を行う。この評価は、例えばチェックサムのチェックなどによって行うことができる。
【0032】
制御プログラム15が正当であると判断された場合には、S63において、制御プログラム15を起動する。制御プログラム15の起動は、オペレーティングシステム41を起動してからオペレーティングシステム41がメインプログラム46を起動したり、あるいは、メインプログラム46を直接起動してもよい。制御プログラム15が起動されると、S64において起動モードを判定する。起動モードがダウンロードモードではなく、通常の動作モードであれば、S65においてメインプログラム46に従った通常の動作を行う。
【0033】
起動モードがダウンロードモードであった場合には、S66において自己書き換えプログラム45を起動する。そして自己書き換えプログラム45は、制御プログラム15上で動作可能な通信部11または通信部12のいずれかを用い、S67において外部装置2内の送信データをダウンロードする。いずれの通信部を利用するかは、外部装置2との接続状態を判断して、自動的に切り替えることができる。外部装置2と複数の通信部を介して通信可能であれば、より効率のよい通信部を選択することができる。もちろん、ユーザの指示があれば、それに従ってもよい。
【0034】
そしてS68において、ダウンロードにより受信した受信データにより制御プログラム15を書き換え、ダウンロードの処理を終了する。ダウンロード処理の終了後は、この例では再起動し、S61から処理を再開する。また、ダウンロードあるいは書き換えの途中でエラーが発生した場合にも、再起動してS61から処理を行えばよい。
【0035】
S62で制御プログラム15が正当でないと判断された場合には、S69において起動モードを判定し、ダウンロードモードであった場合には、S70において起動プログラム14内のダウンロードプログラム33を起動する。ダウンロードプログラム33は、S71において、起動プログラム14内の通信ドライバ32により通信部11を通じて外部装置2内の送信データをダウンロードし、RAM16に格納後、あるいは直接、制御プログラム15を書き換える。この場合には複雑な処理が必要となる通信部12は利用できない。しかし、起動プログラム14内のダウンロードプログラム33が起動されるのは、制御プログラム15が存在しない、あるいはエラーが発生している、または新たな制御プログラムによる書き換えに失敗したなど、制御プログラム15が通常の状態ではない場合であるので、ある程度の制限はやむを得ないと考えられる。
【0036】
ダウンロード処理の終了後は、この例では再起動し、S61から処理を再開する。また、ダウンロードあるいは書き換えの途中でエラーが発生した場合にも、再起動してS61から処理を行えばよい。なお、ダウンロードプログラム33によるダウンロード及び書き換えでエラーが発生する場合、ハードウェア的な障害が発生していることも考えられる。そのため、ダウンロードプログラム33の動作中にエラーが発生した場合には、その旨をユーザに伝え、ダウンロード処理を終了してもよい。もちろん、数回のリトライの後に、そのような終了処理を行ってもよい。
【0037】
S62で制御プログラム15が正当でないと判断され、S69で起動モードがダウンロードモードでなかった場合の処理については任意であり、例えばS72においてユーザに対して制御プログラム15のダウンロードを促すメッセージを表示し、ユーザにダウンロードモードでの起動を指示してもよい。あるいは、例えばブートプログラム31中のモニタ機能を動作させるなど、様々な処理が考えられる。
【0038】
上述の動作例では、装置の起動時に起動モードとしてダウンロードモードを選択することによって制御プログラムのダウンロードを行うものとして説明したが、本発明はこれに限られるものではなく、種々の変形が可能である。例えば制御プログラム15中のメインプログラム46の動作中にダウンロードが指定されて自己書き換えプログラム45が起動される構成や、外部装置2からダウンロードを指示するコマンドを受け取って自己書き換えプログラム45が起動される構成も可能である。
【0039】
図4は、起動プログラム14と制御プログラム15の第2の構成例の説明図である。図中、図2と同様の部分には同じ符号を付して説明を省略する。34,47は受信プログラム、51は復号化プログラム、52は書き込み処理プログラム、53は符号化データである。図4(A)に示す起動プログラム14では、電源投入時やリセット時などの起動時に動作するブートプログラム31と、簡易な処理で制御可能な通信部11を通じて通信を行うための通信ドライバ32と、通信ドライバ32を通じて制御プログラム及びその制御プログラムを書き込むための書き込み処理プログラム52を含むデータのダウンロードを行う受信プログラム34を含んで構成されている。ここでは簡易な処理ではオペレーティングシステムやプロトコルスタックを要しないものとし、起動プログラム14はオペレーティングシステムやプロトコルスタックを含んでいない。もちろん、必要に応じて最低限の構成を有していてもよい。
【0040】
図4(B)に示す制御プログラム15は、制御装置1を動作させるためのメインプログラム(MAIN)46とともに、複雑な処理を必要とする通信部12を通じて通信を行うための通信ドライバ43を含んでいる。このような複雑な処理を行い、高機能の通信(及び高機能の制御動作)を実現するため、制御プログラム15はオペレーティングシステム(OS)41及びプロトコルスタック42を有している。この例では通信部11を通じて通信を行うための通信ドライバは制御プログラム15中には存在せず、起動プログラム14内の通信ドライバ32を共用する構成とした例を示している。もちろん、図2と同様に制御プログラム15においても通信部11を通じて通信を行うための通信ドライバを有していてもよい。また制御プログラム15から通信ドライバ32に限らず、他の起動プログラム中の機能についても利用可能に構成してもよい。
【0041】
さらに制御プログラム15には、受信プログラム47が含まれている。受信プログラム47は制御プログラム15内に存在するため、制御プログラム15内の通信ドライバ43を利用可能である。従って、受信プログラム47は、複雑な処理を必要とする通信部12を通じて外部装置2との通信を行うことによって、外部装置2内の新たな制御プログラムを含む送信データ21をダウンロードすることができる。ダウンロードした受信データ(送信データ21)は、例えばRAM16に一旦格納される。
【0042】
図4に示すように、起動プログラム14には、制御プログラム15に存在する複雑な処理が必要な通信ドライバ43に対応するプログラムを含んでおらず、従って複雑な処理が不要であることからオペレーティングシステム41やプロトコルスタック42に対応するプログラムも含んでいない。従って、起動プログラム14のプログラムサイズは非常に小さくてよく、起動プログラム14を格納するための容量も少なくて済む。また、上述のように新たな制御プログラムをダウンロードするための受信プログラム47は制御プログラム15中に存在するため、通信部12が利用可能であり、また起動プログラム14内の通信ドライバ32を呼び出すことにより通信部11も利用可能である。従って、ダウンロード時に利用するインターフェイスの選択肢が広がるとともに、複雑な処理が必要なインターフェイスについても利用することが可能である。
【0043】
RAM16に格納された受信データのイメージを図4(C)に示している。この例では、受信データ(外部装置2における送信データ21)は制御プログラム15を符号化した符号化データ53と、その符号化データ53を復号するための復号化プログラム51と、制御プログラムを書き換える書き込み処理プログラム52を含んでいる。もちろん、符号化していない制御プログラムをダウンロードする場合には、復号化プログラム51は不要である。また、制御プログラムが符号化されている場合でも、起動プログラム14や制御プログラム15中の受信プログラム47が復号機能を有していれば、復号化プログラム51は不要である。
【0044】
ここで書き込み処理プログラム52は、図4(C)に示す受信データが正常にダウンロードされると、制御プログラム15の受信プログラム47から起動される。そして、復号化プログラム51を利用して符号化データ53を復号し、ROM13内の制御プログラム15上に上書きする処理を行うものである。
【0045】
図5は、本発明の実施の一形態におけるダウンロード動作の第2の例を示すフローチャートである。ここでは、起動プログラム14と、制御プログラム15、受信データの構成が図4に示すような構成であるものとする。電源が投入されたり、あるいはリセットがかかる等、起動がかかると、S81において起動プログラム14中のブートプログラム31が起動される。また、起動時には起動モードが指示されるものとする。ここでは少なくとも、通常の動作モードと、制御プログラムをダウンロードするダウンロードモードで動作するものとする。
【0046】
ブートプログラム31が起動されると、様々な初期設定を行うとともに、S82において、制御プログラム15が正当であるか否かの評価を行う。この評価は、例えばチェックサムのチェックなどによって行うことができる。
【0047】
制御プログラム15が正当であると判断された場合には、S83において、制御プログラム15を起動する。制御プログラム15の起動は、オペレーティングシステム41を起動してからオペレーティングシステム41がメインプログラム46を起動したり、あるいは、メインプログラム46を直接起動してもよい。制御プログラム15が起動されると、S84において起動モードを判定する。起動モードがダウンロードモードではなく、通常の動作モードであれば、S85においてメインプログラム46に従った通常の動作を行う。
【0048】
起動モードがダウンロードモードであった場合には、S86において制御プログラム15中の受信プログラム47を起動する。そして受信プログラム47は、制御プログラム15上で動作可能な通信ドライバ43を利用した通信部12による通信、あるいは起動プログラム14内の通信ドライバ32を利用した通信部11による通信を行い、S87において外部装置2内の送信データ21をダウンロードし、受信データとしてRAM16に一旦格納する。いずれの通信部を利用するかは、外部装置2との接続状態を判断して、自動的に切り替えることができる。外部装置2と複数の通信部を介して通信可能であれば、より効率のよい通信部を選択することができる。もちろん、ユーザの指示があれば、それに従ってもよい。
【0049】
S88において正常にダウンロードを行うことができたか否かを判定する。例えば通信エラーなどが発生した場合には、S87へ戻って再度ダウンロードを行えばよい。このダウンロードでは制御プログラム15を書き換えていないので、通信エラー時にも制御プログラム15内の受信プログラム47を利用可能である。なお、ダウンロードが無限に続かないように、数回のリトライの後にエラー処理を行ったり、あるいはS81に戻って再起動してもよい。
【0050】
正常にダウンロードが完了したら、S89において、ダウンロードにより受信した受信データ中の書き込み処理プログラム52を起動する。書き込み処理プログラム52は、S90において、同じく受信データ中の復号化プログラム51を利用して符号化データ53を復号しながら制御プログラム15の書き換えを行う。書き換え終了後は、この例では再起動し、S81から処理を再開する。また、書き換えの途中でエラーが発生した場合には、書き込み処理プログラム52が再書き込みを実施したり、あるいは再起動してS81から処理を行う。再書き込み時には、リトライ回数などで処理を打ち切るように構成しておくとよい。
【0051】
S82で制御プログラム15が正当でないと判断された場合には、S91において起動モードを判定し、ダウンロードモードであった場合には、S92において起動プログラム14内の受信プログラム34を起動する。受信プログラム34は、S93において、起動プログラム14内の通信ドライバ32を利用し、通信部11を通じて外部装置2内の送信データ21をダウンロードし、RAM16に受信データとして格納する。
【0052】
S94において正常にダウンロードを行うことができたか否かを判定する。例えば通信エラーなどが発生した場合には、S93へ戻って再度ダウンロードを行えばよい。あるいはエラー処理を行ってダウンロード処理を中止してもよい。なお、ダウンロードのリトライを行う場合でも、数回のリトライで成功しない場合にはエラー処理を行うように構成してもよい。
【0053】
正常にダウンロードが完了したら、S89に進み、上述のようにダウンロードにより受信した受信データ中の書き込み処理プログラム52を起動し、S90において復号化プログラム51を利用して符号化データ53を復号しながら制御プログラム15の書き換えを行う。書き換え終了後は、この例では再起動し、S81から処理を再開する。また、書き換えの途中でエラーが発生した場合には、書き込み処理プログラム52が再書き込みを実施したり、あるいは再起動してS81から処理を行う。再書き込み時には、リトライ回数などで処理を打ち切るように構成しておくとよい。
【0054】
S82で制御プログラム15が正当でないと判断され、S91で起動モードがダウンロードモードでなかった場合の処理については任意であり、例えばS95においてユーザに対して制御プログラム15のダウンロードを促すメッセージを表示し、ユーザにダウンロードモードでの起動を指示してもよい。あるいは、例えばブートプログラム31中のモニタ機能を動作させるなど、様々な処理が考えられる。
【0055】
上述の動作例では、装置の起動時に起動モードとしてダウンロードモードを選択することによって制御プログラムのダウンロードを行うものとして説明したが、本発明はこれに限られるものではなく、種々の変形が可能である。例えば制御プログラム15中のメインプログラム46の動作中にダウンロードが指定されて受信プログラム47が起動される構成や、外部装置2からダウンロードを指示するコマンドを受け取って受信プログラム47が起動される構成も可能である。
【0056】
【発明の効果】
以上の説明から明らかなように、本発明によれば、プログラムの容量を飛躍的に低減することができるとともに、多くのインターフェイスからのダウンロードデータの受信を可能とすることができる。また、制御プログラム側に設けているダウンロード機能のアップグレードを、制御プログラムのバージョンアップによって行うことが可能である。さらに、制御プログラムのダウンロードに万一失敗した場合でも、起動プログラムからスタンドアロンで復旧が可能である。本発明によれば、このように種々の効果を有している。
【図面の簡単な説明】
【図1】 本発明の実施の一形態を含むシステムの一例の説明図である。
【図2】 起動プログラム14と制御プログラム15の第1の構成例の説明図である。
【図3】 本発明の実施の一形態におけるダウンロード動作の第1の例を示すフローチャートである。
【図4】 起動プログラム14と制御プログラム15の第2の構成例の説明図である。
【図5】 本発明の実施の一形態におけるダウンロード動作の第2の例を示すフローチャートである。
【図6】 従来のプログラムダウンロード可能な装置における各プログラムの第1の構成例の説明図である。
【図7】 従来のプログラムダウンロード可能な装置における各プログラムの第2の構成例の説明図である。
【符号の説明】
1…制御装置、2…外部装置、11,12…通信部、13…ROM、14…起動プログラム、15…制御プログラム、16…RAM、17…CPU、21…送信データ、31…ブートプログラム、32…通信ドライバ、33…ダウンロードプログラム、34…受信プログラム、41…オペレーティングシステム、42…プロトコルスタック、43,44…通信ドライバ、45…自己書き換えプログラム、46…メインプログラム、47…受信プログラム、51…復号化プログラム、52…書き込み処理プログラム、53…符号化データ。
Claims (14)
- 外部機器から制御プログラムをダウンロードして書き換え可能なダウンロード装置において、2つ以上の通信手段と、起動プログラムを格納する第一の記憶手段と、書き換え可能な前記制御プログラムを格納する第二の記憶手段と、前記制御プログラム及び前記制御プログラムを前記第二の記憶手段に書き込む書き込み処理プログラムを含む受信データを格納可能な第三の記憶手段を備え、前記第一の記憶手段は、前記起動プログラムとしてオペレーティングシステムを必要としない処理で制御可能な特定の通信手段のみを用いて通信を行う第1の通信プログラムを記憶するとともに該第1の通信プログラムを用いて前記受信データをダウンロードして前記第三の記憶手段に格納し前記受信データ中の前記書き込み処理プログラムを起動する第1の受信プログラムを記憶しており、前記第二の記憶手段は、前記制御プログラムとしてオペレーティングシステムを必要とする処理で前記通信手段を用いて通信を行う第2の通信プログラムを記憶するとともに該第2の通信プログラムを用いて前記受信データをダウンロードして前記第三の記憶手段に格納し前記受信データ中の前記書き込み処理プログラムを起動する第2の受信プログラムを記憶しており、前記第二の記憶手段に記憶されている前記第2の受信プログラムを起動し前記第2の受信プログラムを用いて前記受信データを外部機器からダウンロードして前記第三の記憶手段に格納する第1の処理、または、前記第二の記憶手段に記憶されている前記制御プログラムが正当ではない場合に前記第一の記憶手段に記憶されている前記第1の受信プログラムを起動し前記第1の通信プログラムを用いて前記受信データを外部機器からダウンロードして前記第三の記憶手段に格納する第2の処理を行い、前記第1の処理または前記第2の処理により前記第三の記憶手段に格納された前記受信データ中の書き込み処理プログラムを起動して前記受信データ中の制御プログラムを前記第二の記憶手段に書き込む第3の処理を行う処理手段を有することを特徴とするダウンロード装置。
- 前記処理手段は、起動モードがダウンロードモードであった場合に前記第1の処理で前記第2の受信プログラムを起動することを特徴とする請求項1に記載のダウンロード装置。
- 前記第2の通信プログラムは、プロトコルスタックを必要とする通信処理を行うものであることを特徴とする請求項1または請求項2に記載のダウンロード装置。
- 前記第1の通信プログラムは、プロトコルスタックを必要としない通信処理を行うものであることを特徴とする請求項1ないし請求項3のいずれか1項に記載のダウンロード装置。
- 前記受信データは、符号化されたデータを復号するための復号化プログラムを含み、前記受信データ中の前記制御プログラムは符号化されたデータであり、前記処理手段は、前記第3の処理で前記復号化プログラムを用いて前記受信データ中の制御プログラムを復号して書き込み処理プログラムにより前記第二の記憶手段に書き込むことを特徴とする請求項1ないし請求項4のいずれか1項に記載のダウンロード装置。
- 前記特定の通信手段以外の通信手段は、ネットワークインターフェイスであることを特徴とする請求項1ないし請求項5のいずれか1項に記載のダウンロード装置。
- 前記特定の通信手段以外の通信手段は、IEEE1394準拠のインターフェイスであることを特徴とする請求項1ないし請求項5のいずれか1項に記載のダウンロード装置。
- 前記特定の通信手段以外の通信手段は、USBインターフェイスであることを特徴とする請求項1ないし請求項5のいずれか1項に記載のダウンロード装置。
- 前記特定の通信手段以外の通信手段は、無線通信手段であることを特徴とする請求項1ないし請求項5のいずれか1項に記載のダウンロード装置。
- 前記特定の通信手段以外の通信手段は、光学通信手段であることを特徴とする請求項1ないし請求項5のいずれか1項に記載のダウンロード装置。
- 前記特定の通信手段は、シリアルインターフェイスであることを特徴とする請求項1ないし請求項10のいずれか1項に記載のダウンロード装置。
- 前記特定の通信手段は、IEEE1284準拠のインターフェイスであることを特徴とする請求項1ないし請求項10のいずれか1項に記載のダウンロード装置。
- 外部機器から制御プログラムをダウンロードして書き換え可能なダウンロード方法において、オペレーティングシステムを必要としない処理で制御可能な特定の通信手段のみを用いて通信を行う第1の通信プログラムを含むとともに該第1の通信プログラムを用いて前記制御プログラム及び前記制御プログラムを書き込む書き込み処理プログラムが含まれた受信データを受信する第1の受信プログラムを含む起動プログラムが第一の記憶手段に格納され、オペレーティングシステムを必要とする処理で前記通信手段を用いて通信を行う第2の通信プログラムを含むとともに該第2の通信プログラムを用いて前記受信データを受信する第2の受信プログラムを含む前記制御プログラムが第二の記憶手段に格納されており、処理手段が、前記第二の記憶手段に格納されている前記制御プログラムが正当であれば第1の処理として前記制御プログラム中の前記第2の受信プログラムを起動し前記第2の通信プログラムを用いて新たな制御プログラムおよび書き込み処理プログラムを含む受信データを受信して前記第三の記憶手段に格納し、第3の処理として前記受信データ中の前記書き込み処理プログラムを起動して前記受信データ中の前記制御プログラムを前記第二の記憶手段に書き込み、前記第二の記憶手段に格納されている前記制御プログラムが正当ではない場合には第2の処理として前記起動プログラム中の前記第1の受信プログラムを起動し前記第1の通信プログラムを用いて新たな制御プログラムおよび書き込み処理プログラムを含む前記受信データを受信して前記第三の記憶手段に格納し、前記第3の処理として前記受信データ中の前記書き込み処理プログラムを起動して前記受信データ中の前記制御プログラムを前記第二の記憶手段に書き込むことを特徴とするダウンロード方法。
- 前記制御プログラムが正当であって起動モードがダウンロードモードであった場合に、前記第2の受信プログラムを起動して前記受信データを受信することを特徴とする請求項13に記載のダウンロード方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002061384A JP4013040B2 (ja) | 2002-03-07 | 2002-03-07 | ダウンロード装置及びダウンロード方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002061384A JP4013040B2 (ja) | 2002-03-07 | 2002-03-07 | ダウンロード装置及びダウンロード方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003263323A JP2003263323A (ja) | 2003-09-19 |
JP4013040B2 true JP4013040B2 (ja) | 2007-11-28 |
Family
ID=29195720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002061384A Expired - Fee Related JP4013040B2 (ja) | 2002-03-07 | 2002-03-07 | ダウンロード装置及びダウンロード方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4013040B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4581484B2 (ja) * | 2004-05-28 | 2010-11-17 | 富士ゼロックス株式会社 | 制御装置および制御プログラム |
JP2006190132A (ja) | 2005-01-07 | 2006-07-20 | Ricoh Co Ltd | 制御プログラムダウンロード装置 |
KR20060132352A (ko) | 2005-06-17 | 2006-12-21 | 엘지전자 주식회사 | 이동 통신 단말기를 이용한 자동 광고 시스템 및 그 방법 |
JP2007219883A (ja) * | 2006-02-17 | 2007-08-30 | Sony Ericsson Mobilecommunications Japan Inc | 移動端末装置およびソフトウェア更新方法 |
JP5040264B2 (ja) | 2006-11-01 | 2012-10-03 | セイコーエプソン株式会社 | 情報処理装置、情報更新方法及びそのプログラム |
JP4591486B2 (ja) * | 2007-08-23 | 2010-12-01 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
JP2009053859A (ja) * | 2007-08-24 | 2009-03-12 | Fuji Xerox Co Ltd | 装置およびブートロード用プログラム |
JP5679714B2 (ja) * | 2010-07-07 | 2015-03-04 | キヤノン株式会社 | 画像形成装置 |
JP5984326B2 (ja) * | 2010-07-07 | 2016-09-06 | キヤノン株式会社 | 情報処理装置、プログラムの更新方法及びプログラム |
JP2022142263A (ja) | 2021-03-16 | 2022-09-30 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及び情報処理プログラム |
-
2002
- 2002-03-07 JP JP2002061384A patent/JP4013040B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003263323A (ja) | 2003-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4037317B2 (ja) | インシステムプログラミングのための方法および構成 | |
KR101959359B1 (ko) | 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 | |
EP1433060B1 (en) | Crash recovery system | |
JP6752863B2 (ja) | ファームウェアの更新方法及びこの方法を用いる電子装置 | |
JP4810172B2 (ja) | 制御装置及びバージョンアップ方法並びにプログラム | |
JP2005508547A (ja) | メモリカード上のファームウェアを更新するインシステムプログラムのインプリメンテーション | |
JP2009053920A (ja) | 車載用電子制御ユニットのプログラム管理システム | |
WO2003083647A1 (fr) | Procede de mise a jour d'un logiciel de terminaux de communication, terminal de communication et procede de mise a jour de logiciel | |
JP4013040B2 (ja) | ダウンロード装置及びダウンロード方法 | |
JP2003345730A (ja) | インタフェース装置、インタフェース装置におけるファームウェアの更新方法、及びそのプログラム | |
KR20030002068A (ko) | 네트워크 환경에 있어서 소프트웨어 업그레이드 방법 및그에 따른 네트워크 디바이스 | |
JP2984649B1 (ja) | メモリの読み出し制御方法およびプログラムの読み出し制御方法 | |
US7577766B2 (en) | Method for controlling electronic apparatus, program for controlling electronic apparatus, electronic apparatus, and recording apparatus | |
JPH113223A (ja) | 情報処理装置及び情報格納方法 | |
US20080301358A1 (en) | Electronic device that Downloads Operational Firmware from an External Host | |
US20230132494A1 (en) | Information processing apparatus, method of controlling the same, and storage medium | |
JP2004021867A (ja) | 情報処理システム | |
JP2004192329A (ja) | プログラム書換え方法および端末装置 | |
JP6565389B2 (ja) | プリンターのファームウェア書き換え方法およびプリンター | |
JP6959153B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2005050097A (ja) | 情報処理装置、情報処理方法、プログラム、記録媒体 | |
JP2005078336A (ja) | 画像形成装置と画像形成装置のプログラム書換方法 | |
JPH1083358A (ja) | プログラム書換方法およびプログラム書換機能付制御装置 | |
JP2001273143A (ja) | 電子制御装置 | |
JP2006172098A (ja) | パケット通信装置、パケット通信装置におけるリブート方法、及び、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040924 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070228 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070523 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070720 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070815 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070828 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100921 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4013040 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110921 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120921 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120921 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130921 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |