(57)【要約】【課題】書換可能なプログラムメモリ上に記憶されたプログラムに基づいて制御を行う電子装置に用いられるプログラムダウンロード方法及び電子装置並びにプログラムに関し、作業用メモリの記憶容量を大きくすることなく、かつ、効率よくプログラムメモリの書き換えを行えるプログラムダウンロード方法及び電子装置並びにプログラムを提供することを目的とする。【解決手段】書換用データのすべてに対して、書換用データを受信し、受信した書換用データに対応するセクタのデータをプログラムメモリから作業用メモリに読み出し、作業用メモリ上で、書換用データに応じた編集を行うことを特徴とする。【選択図】　図４
2004030019.tif 000002
【特許請求の範囲】
【請求項１】
書換用データを受信する受信手順と、
前記受信手順で受信した前記書換用データに対応するセクタのデータをプログラムメモリから作業用メモリに読み出す読出手順と、
前記作業用メモリ上で、前記書換用データに応じた編集を行う編集手順と、
前記編集手順で編集したデータを前記プログラムメモリに書き込む書込手順とを有し、
前記書換用データのすべてに対して編集が行われるまで前記読出手順及び前記編集手順並びに前記書込手順を順次に繰り返すことを特徴とするプログラムダウンロード方法。
【請求項２】
前記読出手順は、前記受信手順で受信した書換用データに対応するデータが前記作業用メモリに既に読み出されている場合には、前記プログラムメモリからのデータの読み出しは行わないようにすることを特徴とする請求項１記載のプログラムダウンロード方法。
【請求項３】
前記受信手順で前記書換用データにエラーが発生した場合に、前記書換用データのアドレスを記憶しておき、
前記書換用データのすべてに対して編集が完了した後、前記アドレスに基づいて前記書換用データを上位装置に要求し、再送された書換用データに基づいて前記読出手順、及び前記編集手順並びに前記書込手順を行うことを特徴とする請求項１記載のプログラムダウンロード方法。
【請求項４】
前記プログラムメモリに書き込まれたプログラムのうち、ブートプログラムの書き換えを禁止可能としたことを特徴とする請求項１記載のプログラムダウンロード方法。
【請求項５】
プログラムが記憶されたプログラムメモリと、
請求項１乃至４のいずれか一項のプログラムダウンロード方法によりプログラムをダウンロードするダウンロード手段とを有することを特徴とする電子装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラムダウンロード方法及び電子装置に係り、特に、書換可能なプログラムメモリ上に記憶されたプログラムに基づいて制御を行う電子装置に用いられるプログラムダウンロード方法及び電子装置に関する。
【０００２】
近年、電子機器の高性能化に伴い、制御プログラムは大型化する傾向にあるが、低コスト化のため作業用メモリなどの記憶素子は安価なものを使用することが求められている。
【０００３】
【従来の技術】
図１は情報処理システムのシステム構成図を示す。
【０００４】
情報処理システム１は、ホストコンピュータ１１とプリンタ１２とがインタフェースケーブル１３を介して通信可能とされている。
【０００５】
図２はプリンタ１２のブロック構成図を示す。
【０００６】
プリンタ１２は、通信部２１、ＣＰＵ２２、プログラムメモリ２３、作業用メモリ２４、コントローラ２５、プリンタ機構部２６から構成される。
【０００７】
通信部２１は、インタフェースケーブル１３を介してホストコンピュータ１１との通信を行う。ＣＰＵ２２は、プログラムメモリ２３に記憶されたファームウェアに基づいてコントローラ２５にプリンタ機構部２６を制御するための指示を行う。
【０００８】
プログラムメモリ２３は、フラッシュメモリなどの書換可能な不揮発性メモリから構成されており、メインプログラムやブートプログラムなどのプログラムが記憶されている。作業用メモリ２４は、ＲＡＭ（ｒａｎｄｏｍ　ａｃｃｅｓｓ　ｍｅｍｏｒｙ）から構成されておりＣＰＵ２２の処理作業用記憶領域及びダウンロード作業用領域２４ａを有する。コントローラ２５は、ＣＰＵ２２からの指示に基づいてプリンタ機構部２６を駆動する。
【０００９】
プリンタ１２は、プログラムメモリ２３に記憶されたファームウェアに基づいて動作が制御されており、プログラムメモリ２３に記憶されるメインプログラムやブートプログラムはホストコンピュータ１１から最新のプログラムをダウンロードして最新版に書き換え可能とされている。
【００１０】
図３は、従来のダウンロード時の処理フローチャートを示す。
【００１１】
ＣＰＵ２２は、ホストコンピュータ１１からメインプログラムのダウンロードが指示されると、まず、ステップＳ１−１で作業用メモリ２４のうちのダウンロード作業用領域２４ａをクリアする。次にＣＰＵ２２は、ステップＳ１−２でホストコンピュータ２１から書換用データを受信する。ＣＰＵ２２は、ステップＳ１−３で受信した書換用データにエラーが発生したか否かを判定する。ステップＳ１−３でエラーが発生していれば、ダウンロード処理は終了する。また、ステップＳ１−３でエラーが発生していなければ、ステップＳ１−４で作業用メモリ２４のダウンロード作業用領域２４ａ上に書換用データを記憶して編集する。
【００１２】
ＣＰＵ２２は、ステップＳ１−５で書換用データをすべて受信したか否かを判定する。ＣＰＵ２２は、ステップＳ１−５で書換用データをすべて受信していなければ、ステップＳ１−２〜Ｓ１−４を繰り返し、次の書換用データを受信する。また、ＣＰＵ２２は、ステップＳ１−５で書換用データをすべて受信すると、ステップＳ１−６でプログラムメモリ２３を消去し、ステップＳ１−７で作業用メモリ２４のダウンロード作業用領域で編集された書換用データをプログラムメモリ２３に書き込む。ＣＰＵ２２は、ステップＳ１−８で再起動を行い、初期化を行うことによりプログラムメモリ２３に記憶された最新のプログラムを有効にする。
【００１３】
以上によりプリンタ１２のメインプログラムが最新のものに更新される。このとき、従来は書換用データをすべて作業用メモリ２４のダウンロード作業用領域２４ａに記憶した後に、プログラムメモリ２３を書き換えるようにしていたため、作業用メモリ２４の記憶容量は、少なくともプログラムメモリ２３より大きい記憶容量が必要とされていた。
【００１４】
【発明が解決しようとする課題】
しかるに、従来は書換用データをすべて受信し、作業用メモリ２４に記憶した後に、プログラムメモリ２３を書き換えるようにしていたため、作業用メモリ２４の記憶容量をプログラムメモリ２３の記憶容量より大きくする必要があった。近年、プログラムは大型化しており、プログラムメモリ２３が大容量化している。これに伴って作業用メモリ２４の記憶容量を大きくする必要があった。作業用メモリ１２４の大容量化は、装置のコスト低下の妨げとなっていた。
【００１５】
また、受信した書換用データにエラーがあった場合には、ダウンロードを終了し、初めから書換用データを受信し直す必要があったため、ダウンロードの効率が悪かった。
【００１６】
本発明は上記の点に鑑みてなされたもので、作業用メモリの記憶容量を大きくすることなく、かつ、効率よくプログラムメモリの書き換えを行えるプログラムダウンロード方法及び電子装置を提供することを目的とする。
【００１７】
【課題を解決するための手段】
本発明は、書換用データを受信する受信手順と、受信手順で受信した書換用データに対応するセクタのデータをプログラムメモリから作業用メモリに読み出す読出手順と、作業用メモリ上で、書換用データに応じた編集を行う編集手順と、編集手順で編集したデータをプログラムメモリに書き込む書込手順とを有し、書換用データのすべてに対して編集が行われるまで読出手順及び編集手順並びに書込手順を順次に繰り返すことを特徴とする。
【００１８】
また、本発明は、受信手順で受信した書換用データに対応するデータが作業用メモリに既に読み出されている場合には、プログラムメモリからのデータの読み出しは行わないようにすることを特徴とする。
【００１９】
さらに、本発明は、書換用データにエラーが発生した場合に、書換用データのアドレスを記憶しておき、書換用データのすべてに対して編集が完了した後、アドレスに基づいて書換用データを上位装置に要求し、再送された書換用データに基づいて編集を行うことを特徴とする。
【００２０】
また、本発明は、プログラムメモリに書き込まれたプログラムのうち、ブートプログラムの書き換えを禁止可能としたことを特徴とする。
【００２１】
本発明によれば、セクタ単位でデータの書き換えが行われるため、作業用メモリの記憶容量は少なくとも１セクタ分あればよいので、作業用メモリの記憶容量を低減できる。よって、装置を安価に構成できる。
【００２２】
また、本発明によれば、受信した書換用データに対応するデータが作業用メモリに既に読み出されている場合には、プログラムメモリからのデータの読み出しは行わないようにすることにより、不要なデータの読み書きを防止できるため、効率よくデータの書き換えを行うことができる。
【００２３】
また、本発明によれば、エラーが発生した場合でも、エラーが発生した書換用データだけを再受信し、プログラムメモリから作業用メモリに対応するセクタのデータを読み出して、再編集を行えばよい。また、書換用データにエラーが発生した場合でも、書換用データのすべてに対してダウンロードが完了した後に、エラーが発生したアドレスに対して書換用データを再送してもらうことで、ダウンロードを完了することができる。これによって、データ書き換えの効率を向上させることができる。
【００２４】
さらに、本発明によれば、プログラムメモリに書き込まれたプログラムのうち、通常書き換えを行わない重要なブートプログラムのようなプログラムの書き換えを禁止可能とすることにより、重要なプログラムが消去されてしまうことがなく、安全性を向上できる。
【００２５】
【発明の実施の形態】
次に本発明の一実施例を説明する。なお、システム構成は図１、図２と同様であるため、その説明は省略し、ダウンロード時の処理について説明を行う。
【００２６】
図４、図５は本発明の一実施例のダウンロード時の処理フローチャートを示す。
【００２７】
本実施例では、ＣＰＵ２２は、まず、ステップＳ２−１で作業用メモリ２４のうちのダウンロード作業用領域２４ａをクリアする。次にＣＰＵ２２は、ステップＳ２−２でホストコンピュータ１１からの一つの書換用データを受信する。ＣＰＵ２２は、ステップＳ２−３で受信した書換用データのエラーを判定する。
【００２８】
ＣＰＵ２２は、ステップＳ２−３でエラーが発生すると、ステップＳ２−４でエラーが発生した書換用データのアドレスを作業用メモリ２４のエラー管理用領域に記憶させ、ステップＳ２−５でそのアドレスの書換用データにエラーが発生したことを示す履歴をセットし、ステップＳ２−２に戻って、次の書換用データを受信する。
【００２９】
また、ＣＰＵ２２は、ステップＳ２−３で受信した書換用データにエラーがなければ、ステップＳ２−６でブートプログラムの書き換えを行なわないようにするためのフラグが有効か無効かを判定する。
【００３０】
ＣＰＵ２２は、ステップＳ２−６でフラグが有効の場合には、ステップＳ２−７でブートプログラムの書換用データか否かを判定する。ＣＰＵ２２は、ステップＳ２−７でブートプログラムである場合には、ステップＳ２−１４を実行する。なお、ステップＳ２−１４はダウンロードする全データに対して処理が終了したか否かを判定するステップである。
【００３１】
また、ＣＰＵ２２は、ステップＳ２−６でフラグが無効、すなわち、ブートプログラムを含めてデータを書き換えする場合、及び、ステップＳ２−７でブートプログラムでない、すなわち、受信した書換用データがメインプログラムの書換データである場合には、ステップＳ２−８で受信した書換用データが適用されるアドレスをチェックする。
【００３２】
ＣＰＵ２２は、ステップＳ２−９で受信した書換用データのアドレスが現在、作業用メモリ２４のダウンロード作業用領域２４ａに展開されているセクタに含まれているか否かを判定する。ＣＰＵ２２は、ステップＳ２−９で受信した書換用データのアドレスが現在、作業用メモリ２４のダウンロード作業用領域２４ａ上で編集中のセクタのアドレスでない場合には、ステップＳ２−１０で、プログラムメモリ２３上の現在、作業用メモリ２４で編集中のセクタを消去する。次に、ＣＰＵ２２は、ステップＳ２−１１で作業用メモリ２４のダウンロード作業用領域２４ａのデータをプログラムメモリ２３の対応するセクタに書き込む。
【００３３】
次に、ＣＰＵ２２は、ステップＳ２−１２で受信した書換用データを適用するアドレスを含むセクタのデータをプログラムメモリ２３から作業用メモリ２４のダウンロード作業用領域２４ａに読み出す。
【００３４】
ＣＰＵ２２は、ステップＳ２−１３で作業用メモリ２４のダウンロード作業用領域２４ａに読み出されたデータを受信データにより編集する。例えば、データを受信データに書き換えを行う。また、ＣＰＵ２２は、ステップＳ２−９で受信した書換用データのアドレスが現在、作業用メモリ２４のダウンロード作業用領域２４ａに展開されたセクタのアドレスである場合には、そのまま編集が可能であるので、作業用メモリ２４のダウンロード作業用領域２４ａの書き換えは行わず、次にステップＳ２−１３でそのまま作業用メモリ２４のダウンロード作業用領域２４ａのデータを編集する。
【００３５】
ＣＰＵ２２は、ステップＳ２−１３で作業用メモリ２４のダウンロード作業用領域２４ａの編集後、ステップＳ２−１４で書換用データのすべてを受信したか否かを判定する。ＣＰＵ２２は、ステップＳ２−１４で書換用データのすべてを受信していなければ、ステップＳ２−１に戻って次の書換用データを受信する。また、ＣＰＵ２２は、ステップＳ２−１４で書換用データのすべてを受信した場合には、ステップＳ２−１５でプログラムメモリ２３の現在、作業用メモリ２４のダウンロード作業用領域２４ａで編集中の書換用データに対応するセクタのデータを消去した後、現在、作業用メモリ２４のダウンロード作業用領域２４ａで編集中のセクタのデータをプログラムメモリ２３のデータを消去したセクタに書き込む。
【００３６】
次にＣＰＵ２２は、ステップＳ２−５で、セットされたエラーの履歴を参照して、ダウンロード中にエラーが発生したか否かを判定する。
【００３７】
次に、ＣＰＵ２２は、ステップＳ２−１６で受信した書換用データにエラーが発生していた場合には、ステップＳ２−１７でエラーが発生したアドレスをホストコンピュータ１１に送信し、エラーが発生したアドレスの書換用データを要求する。ＣＰＵ２２は、ステップＳ２−１８でホストコンピュータ１１からエラーが発生したアドレスの書換用データを受信すると、ステップＳ２−１９でエラーが発生したアドレスを含むセクタのデータをプログラムメモリ２３から作業用メモリ２４に読み出す。
【００３８】
次にＣＰＵ２２は、ステップＳ２−２０で作業用メモリ２４のダウンロード作業用領域２４ａ上で書換用データによりプログラムメモリ２３から読み出されたセクタのデータを編集する。ＣＰＵ２２は、ステップＳ２−２１でプログラムメモリ２３の現在、作業用メモリ２４のダウンロード作業用領域２４ａに展開されているセクタのデータを消去した後、作業用メモリ２４のダウンロード作業用領域２４ａのセクタのデータをプログラムメモリ２３に書き込む。
【００３９】
次にＣＰＵ２２は、ステップＳ２−２２でプログラムメモリ２３に書き込まれたプログラムをチェックする。ＣＰＵ２２は、ステップＳ２−２３でプログラムのチェック結果にエラーが検出されたか否かを判定する。
【００４０】
ＣＰＵ２２は、ステップＳ２−２３でエラーが検出された場合には、ステップＳ２−１７に戻って再び書換用データによりプログラムを編集する。また、ＣＰＵ２２は、ステップＳ２−２３でエラーが検出されなかった場合には、ステップＳ２−２４で再起動を行い、初期化を行うことによりプログラムメモリ２３に記憶された最新のプログラムを有効にする。
【００４１】
本実施例によれば、セクタ単位でデータの書き換えが行われるため、作業用メモリ２４の記憶容量は少なくとも１セクタ分あればよいので、作業用メモリ２４の記憶容量を低減できる。よって、装置を安価に構成できる。また、セクタ毎に書き換えが行われるため、書換用データが順不同で送信されても書き換えを行うことができる。
【００４２】
また、本実施例によれば、受信した書換用データに対応するデータが作業用メモリ２４のダウンロード作業用領域２４ａに既に読み出されている場合には、プログラムメモリからのデータの読み出しは行わないようにすることにより、不要なデータの読み書きを防止できるため、効率よくデータの書き換えを行うことができる。
【００４３】
また、本実施例によれば、エラーが発生した場合でも、エラーが発生した書換用データだけを再受信し、プログラムメモリ２３から作業用メモリ２４のダウンロード作業用領域２４ａに対応するセクタのデータを読み出して、再編集を行えばよい。また、書換用データにエラーが発生した場合でも、書換用データのすべてに対してダウンロードが完了した後に、エラーが発生したアドレスに対して書換用データを再送してもらうことで、ダウンロードを完了することができる。これによって、エラーが発生しても書換用データのすべてを書き換える必要がないので、データ書き換えの効率を向上させることができる。
【００４４】
なお、書換用データは、ホストコンピュータ１１で圧縮してプリンタ１２に送信し、プリンタ１２で伸長して用いるようにしてもよい。
【００４５】
また、ホストコンピュータ１１とプリンタ１２とのインタフェースは、セントロニクスインタフェース、ＵＳＢ（ｕｎｉｖｅｒｓａｌ　ｓｅｒｉａｌ　ｂｕｓ）インタフェース、ＩｒＤＡ（ｉｎｆｒａｒｅｄ　ｄａｔａ　ａｓｓｏｃｉａｔｉｏｎ）インタフェース、Ｂｌｕｅｔｏｏｔｈなどの無線通信システム、ＡＤＢ（ａｐｐｌｅ　ｄｅｓｋｔｏｐ　ｂｕｓ）、ＬＯＮインタフェースなど各種インタフェースが適用可能である。
【００４６】
さらに、本実施例では、電子装置としてプリンタ１２を例に説明を行ったが、本発明の電子装置は書換可能なプログラムメモリ２３に記憶されたプログラムに基づいて制御を行うような電子装置一般に適用可能である。
【００４７】
【発明の効果】
上述の如く、本発明によれば、セクタ単位でデータの書き換えが行われるため、作業用メモリの記憶容量は少なくとも１セクタ分あればよいので、作業用メモリの記憶容量を低減でき、よって、装置を安価に構成できる等の特長を有する。
【００４８】
また、本発明によれば、エラーが発生した場合でも、エラーが発生した書換用データだけを再受信し、プログラムメモリから作業用メモリに対応するセクタのデータを読み出して、再編集を行えばよく、また、書換用データにエラーが発生した場合でも、書換用データのすべてに対してダウンロードが完了した後に、エラーが発生したアドレスに対して書換用データを再送してもらうことで、必要な書換用データに対して再送を行い、ダウンロードを完了することができ、これによって、データ書き換えの効率を向上させることができる等の特長を有する。
【００４９】
さらに、本発明によれば、プログラムメモリに書き込まれたプログラムのうち、通常書き換えを行わない重要なブートプログラムのようなプログラムの書き換えを禁止可能とすることにより、重要なプログラムが消去されてしまうことがなく、安全性を向上できる等の特長を有する。
【図面の簡単な説明】
【図１】情報処理システムのシステム構成図である。
【図２】プリンタ１２のブロック構成図である。
【図３】従来のダウンロード時の処理フローチャートである。
【図４】本発明の一実施例のダウンロード時の処理フローチャートである。
【図５】本発明の一実施例のダウンロード時の処理フローチャートである。
【符号の説明】
１　情報処理システム
１１　ホストコンピュータ
１２　プリンタ
１３　インタフェースケーブル
２１　通信部
２２　ＣＰＵ
２３　プログラムメモリ
２４　作業用メモリ
２５　コントローラ
２６　プリンタ機構部
【図１】
2004030019.tif 000003
【図２】
2004030019.tif 000004
【図３】
2004030019.tif 000005
【図４】
2004030019.tif 000006
【図５】
2004030019.tif 000007