(57)【要約】【課題】ファイルをダウンロードする際のホストコンピュータとプリンタとの間の通信回数を減らすことによってダウンロード時間を短縮することができる情報処理装置及びその情報処理装置の制御方法を提供する。【解決手段】制御部２０は、レコード解析部１１と、レコード解析部１１によって得られた解析結果に基づいて読み込んだレコードと未送信のレコードとがフラッシュＲＯＭ４１の所定の境界に含まれるかを検出するレコード境界検出部１２と、通信データ量検出部１３と、読み込んだレコードと未送信のレコードとを結合するレコード結合部１４と、読み込んだＳレコードあるいは結合されたレコードをターゲットシステムに送信するレコード送信部１５とを有する。【選択図】図１
2007115060.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュＲＯＭを備えたターゲットシステムへフラッシュＲＯＭの書き換えデータを送信する情報処理装置であって、
前記書き換えデータが格納された記憶部と、
揮発性メモリとしてのＲＡＭと、
前記記憶部から書き換えデータをレコード単位で前記ＲＡＭに読み込む制御部と、を有し、
前記制御部は、
前記ＲＡＭに読み込んだレコードを解析するレコード解析部と、
前記レコード解析部によって得られた解析結果に基づいて前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとが前記フラッシュＲＯＭの所定の境界に含まれるかを検出するレコード境界検出部と、
前記ターゲットシステムに一度に送信可能な書き換えデータ量を検出する通信データ量検出部と、
前記レコード境界検出部及び前記通信データ量検出部の検出結果に基づいて前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとを結合するレコード結合部と、
前記読み込んだＳレコード及び前記レコード結合部によって結合されたレコードを前記ターゲットシステムに送信するレコード送信部と、を備えていることを特徴とする情報処理装置。
【請求項２】
前記フラッシュＲＯＭは複数のセクタサイズを有し、前記レコード境界検出部は前記複数のセクタサイズの最大公約数を前記所定の境界としていることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記レコード送信部は、前記レコード境界検出部が前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとが前記フラッシュＲＯＭの所定の境界に含まれないと検出した場合、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記レコード送信部は、前記通信データ量検出部が前記ターゲットシステムに一度に送信可能な書き換えデータ量を超えていると検出した場合に、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記レコード解析部は、前記読み込んだレコードのデータフォーマットの解析、前記フラッシュＲＯＭへ書き換えデータを書き込む際の書き込み開始アドレスの解析を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記レコード送信部は、前記レコード解析部によって、前記読み込んだレコードのデータフォーマットが所定のフォーマット以外であると解析された場合に、前記ターゲットシステムへ前記読み込んだレコード及び前記未送信のレコードを送信することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記レコード送信部は、前記レコード解析部によって、前記フラッシュＲＯＭへ書き換えデータを書き込む際の書き込み開始アドレスが前回読み込んだレコードの書き込み開始アドレスと継続していないと解析された場合に、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする請求項５に記載の情報処理装置。
【請求項８】
フラッシュＲＯＭを備えたターゲットシステムへフラッシュＲＯＭの書き換えデータを送信する情報処理装置の制御方法であって、
前記読み込んだレコードを解析するレコード解析ステップと、
前記レコード解析ステップによって得られた解析結果に基づいて前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとが前記フラッシュＲＯＭの所定の境界に含まれるかを検出するレコード境界検出ステップと、
前記ターゲットシステムに一度に送信可能な書き換えデータ量を検出する通信データ量検出ステップと、
前記レコード境界検出ステップ及び前記通信データ量検出ステップの検出結果に基づいて前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとを結合するレコード結合ステップと、
前記読み込んだレコードあるいは結合されたレコードを前記ターゲットシステムに送信するレコード送信ステップと、を備えていることを特徴とする情報処理装置の制御方法。
【請求項９】
前記レコード送信ステップは、前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとが前記フラッシュＲＯＭの所定の境界に含まれないと検出された場合、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする請求項８に記載の情報処理装置の制御方法。
【請求項１０】
前記レコード送信ステップは、前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとが前記フラッシュＲＯＭの所定の境界に含まれないと検出された場合、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする請求項８に記載の情報処理装置の制御方法。
【請求項１１】
前記レコード解析ステップは、前記読み込んだレコードのデータフォーマットを解析し、前記フラッシュＲＯＭへ書き換えデータを書き込む際の書き込み開始アドレスの解析を行うことを特徴とする請求項８に記載の情報処理装置の制御方法。
【請求項１２】
前記レコード送信ステップは、前記読み込んだレコードのデータフォーマットが所定のフォーマット以外であると解析された場合に、前記ターゲットシステムへ前記読み込んだレコード及び前記未送信のレコードを送信することを特徴とする請求項１０に記載の情報処理装置。
【請求項１３】
前記レコード送信ステップは、前記フラッシュＲＯＭへ書き換えデータを書き込む際の書き込み開始アドレスが前回読み込んだレコードの書き込み開始アドレスと継続していないと解析された場合に、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする請求項１０に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理装置の制御方法であって、特に、ファームウェアの書き換えデータを周辺機器へ送信する情報処理装置及びファームウェアの書き換えデータを送信する情報処理装置の制御方法に関する。
【背景技術】
【０００２】
プリンタやスキャナ等の周辺機器は、印刷機構や用紙送り機構、画像読み取り機構等の各種ハードウェアの制御を行うためのファームウェアが組み込まれている。例えば、ファームウェアは周辺機器の内部に設けられた不揮発性のメモリであるフラッシュＲＯＭ内に格納されている。
【０００３】
フラッシュＲＯＭ内に格納されたファームウェアに対しては、周辺機器のバージョンアップや設定値の変更に伴い書き換え処理が行われる。このファームウェアの書き換え処理は、通信可能に接続されたホストコンピュータ（情報処理装置）から送信される書き換えデータに基づいて適時実行される。
【０００４】
例えば特許文献１には、プリンタを書き換えモードに移行させて書き換えプログラムを起動させ、ホストコンピュータから書き換えデータをダウンロードし、ダウンロードされたデータを実際にフラッシュＲＯＭ内の所定のアドレスに書き込む際のＲＯＭイメージをＲＡＭ中のバッファに書き込み、バッファに書き込まれたＲＯＭイメージをフラッシュＲＯＭへ書き込むことによってファームウェアを書き換える方法が開示されている（特許文献１参照）。
【０００５】
このような書き換え方法においては、まずホストコンピュータにインストールされたアプリケーションが、書き換えデータを格納する元ファイルから書き換えデータを１レコードずつ読み込み、読み込んだレコードをプリンタに送信する。そして、プリンタは、内部の書き換えプログラムに応じて、受信したレコードを基にファームウェアを書き換える。
【０００６】
ここで、このホストコンピュータからプリンタへのレコードの送信は、予め決められたメモリ書き換え用のデータフォーマットに基づいている。例えば、メモリ書き換え用のデータフォーマットには「Ｓレコード」と呼ばれる複数のレコード形式をもつデータフォーマットが知られている。「Ｓレコード」とは、先頭が文字Ｓから始まり、レコードのタイプ、レコード長、書き換えデータが書き込まれるアドレス、実際に書き込むデータとを備えたレコード形式であって、このＳレコードが複数集まって１つのファイル（ＨＥＸファイル）を構成している。
【０００７】
【特許文献１】特開２００５−６３０５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記書き換え方法において１つのファイルを送信する際の通信回数は、１つのファイルを構成するＳレコードの数に依存する。実際の送信では、プリンタは１つのＳレコードを受信する毎にホストコンピュータへ受信確認を送信するように構成されている。したがって、同じデータ数でも、一つ一つのＳレコードのデータ量が小さく、Ｓレコードの数が多ければ、１つのＳレコード毎に送信及び受信確認が行われることとなり、結果として通信回数が増加してしまい、ホストコンピュータからプリンタへのファイルのダウンロードに時間がかかるという問題点がある。
【０００９】
そこで、本発明は、ファイルをダウンロードする際のホストコンピュータとプリンタとの間の通信回数を減らすことによってダウンロード時間を短縮することができる情報処理装置及びその情報処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の上記目的は、以下の手段によって達成される。
（１）  フラッシュＲＯＭを備えたターゲットシステムへフラッシュＲＯＭの書き換えデータを送信する情報処理装置であって、
前記書き換えデータが格納された記憶部と、
揮発性メモリとしてのＲＡＭと、
前記記憶部から書き換えデータをレコード単位で前記ＲＡＭに読み込む制御部と、を有し、
前記制御部は、
前記ＲＡＭに読み込んだレコードを解析するレコード解析部と、
前記レコード解析部によって得られた解析結果に基づいて前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとが前記フラッシュＲＯＭの所定の境界に含まれるかを検出するレコード境界検出部と、
前記ターゲットシステムに一度に送信可能な書き換えデータ量を検出する通信データ量検出部と、
前記レコード境界検出部及び前記通信データ量検出部の検出結果に基づいて前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとを結合するレコード結合部と、
前記読み込んだＳレコード及び前記レコード結合部によって結合されたレコードを前記ターゲットシステムに送信するレコード送信部と、を備えていることを特徴とする情報処理装置。
（２）  前記フラッシュＲＯＭは複数のセクタサイズを有し、前記レコード境界検出部は前記複数のセクタサイズの最大公約数を前記所定の境界としていることを特徴とする（１）に記載の情報処理装置。
（３）  前記レコード送信部は、前記レコード境界検出部が前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとが前記フラッシュＲＯＭの所定の境界に含まれないと検出した場合、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする（１）に記載の情報処理装置。
（４）  前記レコード送信部は、前記通信データ量検出部が前記ターゲットシステムに一度に送信可能な書き換えデータ量を超えていると検出した場合に、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする（１）に記載の情報処理装置。
（５）  前記レコード解析部は、前記読み込んだレコードのデータフォーマットの解析、前記フラッシュＲＯＭへ書き換えデータを書き込む際の書き込み開始アドレスの解析を行うことを特徴とする（１）に記載の情報処理装置。
（６）  前記レコード送信部は、前記レコード解析部によって、前記読み込んだレコードのデータフォーマットが所定のフォーマット以外であると解析された場合に、前記ターゲットシステムへ前記読み込んだレコード及び前記未送信のレコードを送信することを特徴とする（４）に記載の情報処理装置。
（８）  前記レコード送信部は、前記レコード解析部によって、前記フラッシュＲＯＭへ書き換えデータを書き込む際の書き込み開始アドレスが前回読み込んだレコードの書き込み開始アドレスと継続していないと解析された場合に、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする（５）に記載の情報処理装置。
（８）  フラッシュＲＯＭを備えたターゲットシステムへフラッシュＲＯＭの書き換えデータを送信する情報処理装置の制御方法であって、
前記読み込んだレコードを解析するレコード解析ステップと、
前記レコード解析ステップによって得られた解析結果に基づいて前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとが前記フラッシュＲＯＭの所定の境界に含まれるかを検出するレコード境界検出ステップと、
前記ターゲットシステムに一度に送信可能な書き換えデータ量を検出する通信データ量検出ステップと、
前記レコード境界検出ステップ及び前記通信データ量検出ステップの検出結果に基づいて前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとを結合するレコード結合ステップと、
前記読み込んだレコードあるいは結合されたレコードを前記ターゲットシステムに送信するレコード送信ステップと、を備えていることを特徴とする情報処理装置の制御方法。
（９）  前記レコード送信ステップは、前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとが前記フラッシュＲＯＭの所定の境界に含まれないと検出された場合、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする（８）に記載の情報処理装置の制御方法。
（１０）  前記レコード送信ステップは、前記読み込んだレコードと前記ターゲットシステムに未送信のレコードとが前記フラッシュＲＯＭの所定の境界に含まれないと検出された場合、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする（８）に記載の情報処理装置の制御方法。
（１１）  前記レコード解析ステップは、前記読み込んだレコードのデータフォーマットを解析し、前記フラッシュＲＯＭへ書き換えデータを書き込む際の書き込み開始アドレスの解析を行うことを特徴とする（８）に記載の情報処理装置の制御方法。
（１２）  前記レコード送信ステップは、前記読み込んだレコードのデータフォーマットが所定のフォーマット以外であると解析された場合に、前記ターゲットシステムへ前記読み込んだレコード及び前記未送信のレコードを送信することを特徴とする（１０）に記載の情報処理装置。
（１３）  前記レコード送信ステップは、前記フラッシュＲＯＭへ書き換えデータを書き込む際の書き込み開始アドレスが前回読み込んだレコードの書き込み開始アドレスと継続していないと解析された場合に、前記未送信のレコードを前記ターゲットシステムに送信し、前記読み込んだレコードを結合元のレコードとして前記ＲＡＭへ保持することを特徴とする（１０）に記載の情報処理装置の制御方法。
【発明の効果】
【００１１】
本発明によれば、レコード境界検出部と、通信データ量検出部と、レコード境界検出部及び通信データ量検出部の検出結果に基づいて複数のレコードを結合するレコード結合部とを備えている。したがって、読み込んだレコード同士が同じ境界内に含まれるかを検出し、さらに一度に通信可能なデータ量であるかを検出した後に、読み込んだレコードを結合するように構成されているので、ターゲットシステム側は同じ境界内に含まれるレコードだけを結合した状態で受信できる。また、複数のレコードを結合させて送信するので、ホストコンピュータとターゲットシステムとの間の通信回数が減少し、ファームウェアのダウンロード時間を短縮することが可能である。
【００１２】
また、本発明によれば、レコード境界検出部はフラッシュＲＯＭが有する複数のセクタサイズの最大公約数を所定の境界とするように構成されている。したがって、所定のアドレスすなわちフラッシュＲＯＭの隣接するセクタ間を跨いで書き換えデータが送信されることがない。したがって、ターゲットシステム側は書き込み先の同じアドレスに重ねて書き込まれるか否かを意識せずにフラッシュＲＯＭの書き換えを行うことが可能である。
【００１３】
また、本発明によれば、レコード送信部は、レコード境界検出部によって、レコード同士がフラッシュＲＯＭの所定の境界に含まれないと検出された場合に、読み込んだレコードを結合元のレコードとしてＲＡＭへ保持するように構成されている。したがって、異なる境界に書き込まれる書き換えデータが同時にターゲットシステムへ送信することを防止することができる。
【００１４】
また、本発明によれば、レコード送信部は、読み込んだレコードのデータフォーマットが所定のフォーマット以外であると解析された場合に、ターゲットシステムへ読み込んだレコード及び未送信のレコードを送信するように構成されている。したがって、異なるフォーマットのレコード同士を結合させて送信することがなく、受信したターゲットシステム側で改めてフォーマットの解析をする必要がないので書き込み処理を高速化することができる。
【００１５】
また、本発明によれば、レコード送信部は、フラッシュＲＯＭへ書き換えデータを書き込む際の書き込み開始アドレスが前回読み込んだレコードの書き込み開始アドレスと継続していないと解析された場合に、読み込んだレコードを結合元のレコードとしてＲＡＭへ保持するように構成されている。したがって、非継続の書き込み開始アドレスをもつレコード同士を結合させて送信することがないので、受信したターゲットシステム側の書き込み処理を高速化することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明に係る情報処理装置及び情報処理装置の制御方法の一実施形態について説明する。
本実施形態においては、ファイルをダウンロードする際のデータ通信の例として、ホストコンピュータと通信インタフェースを介して接続されたプリンタとの間のデータ通信を挙げて説明する。
【００１７】
（ホストコンピュータの内部構成）
図１は本実施形態に係るホストコンピュータ３０の内部構成を模式的に示した機能ブロック図である。
図１に示すように、ホストコンピュータ３０は、制御部２０と、外部記憶装置１０と、通信インタフェース２１とを備えており、それぞれは内部バス２２により電気的に接続されている。ホストコンピュータ３０は通信インタフェース２１を介してプリンタ４０と接続されており、ホストコンピュータ３０の外部記憶装置１０に格納されたファイルをプリンタ４０へ送信可能に構成されている。
【００１８】
通信インタフェース２１は、外部のプリンタ４０との通信を行う外部入出力インタフェースである。ホストコンピュータ３０から送信するデータ及びホストコンピュータ３０へ送信されるデータは、すべてこの通信インタフェース２１を介して送受信される。
【００１９】
外部記憶装置１０は、例えば、ホストコンピュータ３０内に設けられた磁気的にデータを記録可能なハードディスクである。この外部記憶装置１０には、各種設定値やアプリケーションが記憶されるとともに、プリンタ４０に送信されるファームウェアの書き換えデータも記憶されている。この書き換えデータは、複数のＳレコードからなるファイルであり、基本的には、このＳレコードが１レコードずつ読み出されて、プリンタ４０に送信される。また、外部記憶装置１０には、データ送信用のプログラムが記憶されており、実際にプリンタ４０へ書き換えデータを送信する際には、このデータ送信用プログラムに応じて送信制御が行われ、適宜Ｓレコード同士の結合処理がなされて、プリンタ４０にＳレコードが送信される。これについては、後ほど詳述する。
【００２０】
制御部２０は、ホストコンピュータ３０の制御中枢であって、例えばＣＰＵによって構成され、ホストコンピュータに接続された図示せぬキーボードやマウス等の周辺機器を制御するとともに、各種アプリケーションを起動・実行することにより所定の処理を実行する。特に本実施形態では、制御部２０は、外部記憶装置１０に記憶されたデータ送信用のプログラム（アプリケーション）を実行することによりプリンタ４０へのデータ送信を制御する。
【００２１】
ＲＯＭ１６は、ホストコンピュータ３０の起動処理を実行するファームウェアや各種設定値が記憶された不揮発性のメモリである。
【００２２】
ＲＡＭ１７は、ホストコンピュータ３０における揮発性の記憶領域である。このＲＡＭ１７には、制御部２０がデータの送信制御プログラムを実行することによって外部記憶装置１０内に格納された書き換えデータを読み込み、読み込まれたデータを一時的に保存するバッファ領域が設けられている。本実施形態では、ＲＡＭ１７中に読み込んだＳレコードと未送信の結合中のＳレコードとを保存するバッファ領域が設けられている。
【００２３】
プリンタ４０は、ホストコンピュータ３０から送信される印刷データに基づき、印刷を行う画像記録装置である。プリンタ４０の画像記録方式としては、ドットインパクト、サーマル、インクジェット、電子写真方式等々様々な記録方式のものとすることができる。プリンタ４０には、様々な記憶サイズを有する複数のセクタに分割されたフラッシュＲＯＭ４１が設けられており、このフラッシュＲＯＭ４１内にプリンタ４０の動作制御を司るファームウェアが設けられている。ファームウェアの書き換え時には、ホストコンピュータ４０から送信される書き換えデータに基づきフラッシュＲＯＭ４１内のファームウェアが更新される。
【００２４】
次に、制御部２０について詳しく説明する。
図１に示すように、本実施形態において制御部２０は、データ送信用のプログラム（アプリケーション）を実行することにより、Ｓレコード解析部１１、Ｓレコード境界検出部１２、通信データ量検出部１３、Ｓレコード結合部１４及びレコード送信部１５の機能処理部を実現する。これらの機能処理部は、Ｓレコードを適宜結合してプリンタ４０に送信することにより、ホストコンピュータ３０とプリンタ４０との間の通信回数を減少させ、通信時間の短縮を図るものである。
【００２５】
本実施形態におけるＳレコードの結合アルゴリズムは、以下の３点を満たすように結合がなされるように構成されている。
【００２６】
（ａ）  結合するＳレコード内のデータ同士は、プリンタ４０内のフラッシュＲＯＭ４１内にアドレスが連続して記憶されるデータである。
（ｂ）  結合後のＳレコードが１度に送信可能なデータ量（例：２５６バイト）以下である。
（ｃ）  結合後のＳレコードがプリンタ４０内のフラッシュＲＯＭ４１の同一セクタに記憶される。
【００２７】
以下、具体的に、上記結合を実行する各種機能処理部について説明する。
【００２８】
Ｓレコード解析部１１は、制御部２０が外部記憶装置１０から読み込んだＳレコードを一つずつ解析する。具体的には、ＲＡＭ１７へ読み込まれたＳレコードのデータフォーマットの解析、プリンタ４０内のフラッシュＲＯＭ４１へ書き換えデータを書き込む際の書き込み開始アドレスの解析、読み込まれたＳレコードの構成バイト数や結合後のＳレコードの構成バイト数の解析等を行う。
【００２９】
Ｓレコード境界検出部１２は、Ｓレコード解析部１１の解析結果に基づき、ＲＡＭ１７のバッファ領域に読み込んだ連続する２つのＳレコード（一方は、結合中のＳレコードの場合もある）同士がプリンタ４０のフラッシュＲＯＭ４１内の同一セクタ（境界）内に含まれるか否かを検出する検出部である。Ｓレコード境界検出部１２が、プリンタ４０のフラッシュＲＯＭ内のセクタ間の境界アドレスを把握していれば、そのアドレスをＳレコードが跨いだかどうかで同一セクタ内に含まれるか否かを判断する。また、Ｓレコード境界検出部１２が、プリンタ４０のフラッシュＲＯＭ内のセクタ間の境界アドレスを把握していなければ、例えば、プリンタ４０に備えられたフラッシュＲＯＭ４１のセクタサイズの最大公約数を境界値として予め設定しておき、この境界値と開始アドレスに基づいて、境界アドレスになる可能性のあるアドレスを算出し、Ｓレコードがこのセクタ間の境界アドレスとなる可能性があるアドレスを跨がないようにする。
【００３０】
この境界値は、フラッシュＲＯＭの最小セクタサイズによって異なる値に設定することが可能である。このように、セクタサイズの最大公約数を境界値として設定することによって、境界アドレスを跨ぐように書き換えデータが送信されることがない。すなわち、フラッシュＲＯＭ４０の隣接するセクタ同士をまたいでデータが書き込まれることを防ぐことができるので、プリンタ４０側ではセクタ間を意識せずにフラッシュＲＯＭ４０の書き換えを行うことが可能である。
【００３１】
通信データ量検出部１３は、ＲＡＭ１７のバッファ領域に読み込んだ連続する二つのＳレコード（一方は、結合中のＳレコードの場合もある）の構成バイト数がホストコンピュータ３０とプリンタ４０との間で１度に通信可能なバイト数を超えているか否かを判断する。
【００３２】
Ｓレコード結合部１４は、Ｓレコード解析部１１、Ｓレコード境界検出部１２及び通信データ量検出部１３の検出判定の結果に基づき条件にあう場合に、読み込んだＳレコードとまだ送信されていない結合中のＳレコードとを結合させる。プリンタ４０へ送信する前に複数のＳレコードを結合させることによって、制御部２０が外部記憶装置１０から１レコードを読み込むたびに読み込んだ１レコードをプリンタ４０へ送信することが無くなる。すなわち、プリンタ４０側はホストコンピュータ３０から１レコードを受信するごとに受信確認を行う必要がないので、ホストコンピュータ３０とプリンタ４０とのデータの送受信回数を減らすことができ、ファームウェアのダウンロード時間を短縮することが可能である。
【００３３】
レコード送信部１５は、Ｓレコード解析部１１、Ｓレコード境界検出部１２及び通信データ量検出部１３の検出判定の結果に基づき、外部記憶装置から読み込んだＳレコードやＳレコード結合部１４によって結合されたＳレコードをプリンタ４０へ送信する。
【００３４】
（Ｓレコードの構成）
次に、本実施形態におけるホストコンピュータ３０とプリンタ４０との間データ通信で利用するデータフォーマットであるＳレコードの構成について図２を用いて説明する。図２は、Ｓレコードの構成を模式的に示した図である。
【００３５】
１つのＳレコードは複数のフィールドから構成されている。本実施形態におけるＳレコード１は、データフォーマットがＳフォーマットであることを示す「先頭文字フィールド２」、Ｓレコードの機能を識別するための「レコードタイプフィールド３」、Ｓレコードのうち「書き込み開始アドレスフィールド５」から「書き込みデータフィールド６」及び「チェックサムフィールド７」までのデータ数を示す「レコード長フィールド４」、フラッシュＲＯＭの書き込み開始アドレスを示す「書き込み開始アドレスフィールド５」、実際にフラッシュＲＯＭに書き込まれるデータを示す「書き込みデータフィールド６」及びＳレコード１の正当性を確認するための「チェックサムフィールド７」から構成されている。以下、これら２〜７のフィールド名につき「フィールド」部分を省略して呼ぶこととする。
【００３６】
Ｓレコードには複数のレコードタイプが定義されており、レコードタイプに応じてＳレコードが指定する書き込み開始アドレスの形式が決められている。例えば、レコードタイプがＳ２レコードの場合には３バイトで書き込み開始アドレス５が指定され、Ｓ３レコードの場合には４バイトで書き込み開始アドレス５が指定される。
【００３７】
本実施形態においては複数のＳレコードタイプのうち、書き込み開始アドレス５を３バイトで示したＳ２レコードについて説明する。Ｓ２レコードは、先頭文字２は必ず「Ｓ」の文字から始まり、先頭文字２で１バイト、レコードタイプ３すなわちＳ２レコードでは「２」で１バイトを構成している。
【００３８】
レコード長４及びチェックサム７は１バイト、書き込み開始アドレス５は３バイトで構成され、書き込みデータ６は、
（書き込みデータ６）＝（レコード長４）−（書き込み開始アドレス５＋チェックサム７）
によって計算されるバイト数で構成されている。
【００３９】
次に、本発明の目的である、ファイルをダウンロードする際のホストコンピュータとプリンタとの間の通信回数を減らすことによってダウンロード時間を短縮し、また同じアドレスに書き換えデータを重ねて書き込むことを防ぐことができるホストコンピュータ３０のＳレコード結合処理について図３及び図４を用いて説明する。
【００４０】
図３はＳレコード結合処理の流れを示したフローチャート、図４はＳレコードの結合状態を模式的に示した図である。なお、本実施形態においてはフラッシュＲＯＭの最大公約数は８１９２バイト、ホストコンピュータ３０からプリンタ４０へ１度に送信可能なデータ量を２５６バイトとして説明する。
【００４１】
まず、プリンタ４０へのファームウェアの書き換えデータ送信を指示されると、制御部２０は、ホストコンピュータ３０の外部記憶装置１０に格納されたフラッシュＲＯＭ４０の書き換えデータが格納された元ファイルをオープンする（ステップＳ１）。そして、元ファイルの読み込みが終了しているかを判断し終了していなければ（ステップＳ２：Ｎｏ）、外部記憶装置１０の元ファイルからＳレコードを一つ読み込む（ステップＳ３）。
【００４２】
Ｓレコード解析部１１が、読み込んだＳレコードがＳ２フォーマットであるかを判断し、Ｓ２フォーマットである場合には（ステップＳ４：Ｙｅｓ）、図４に示す「読み込んだＳ２レコード（Ａ）」のアドレスが「前回読み込んだＳ２レコード」のアドレスと継続しているかを判断する（ステップＳ５）。ステップＳ５で、「読み込んだＳ２レコード（Ａ）」のアドレスが継続している場合には（ステップＳ５：Ｙｅｓ）、「読み込んだＳ２レコード（Ａ）」と図４に示す「未送信の結合中のＳ２レコード（Ｂ）」とが同じ８１９２バイト境界内であるかを判断する（ステップＳ６）。
【００４３】
そして、Ｓ２レコード境界検出部１２が同じ８１９２バイト境界内であると判断した場合には（ステップＳ６：Ｙｅｓ）、「読み込んだＳ２レコード（Ａ）」と「未送信の結合中のＳ２レコード（Ｂ）」とを結合した図４に示す（Ｃ）が、同じ８１９２バイト境界内にあるかを判断する（ステップＳ７）。同じ境界内にある場合には（ステップＳ７：Ｙｅｓ）通信データ量検出部１３が、結合したＳ２レコード（Ｃ）が１度に通信可能な２５６バイト以下であるかを判断し（ステップＳ８）、結合したＳ２レコード（Ｃ）が１度に通信可能な２５６バイト以下であれば（ステップＳ８：Ｙｅｓ）、Ｓレコード結合部１４は「読み込んだＳ２レコード（Ａ）」を結合元のＳレコードすなわち「未送信の結合中のＳ２レコード（Ｂ）」に結合する（ステップＳ９）。
【００４４】
上記Ｓ２レコードの結合処理を繰返し行い、ファイルの読み込みが終了したかを判断した結果（ステップＳ２）、読み込みが終了した場合には（ステップＳ２：Ｙｅｓ）、制御部２０はファイルをクローズして終了する（ステップＳ１０）。
【００４５】
なお、ステップＳ４で、Ｓレコード解析部１１が読み込んだＳレコードがＳ２フォーマットでないと判断した場合には（ステップＳ４：Ｎｏ）、レコード送信部１５が「未送信の結合中のＳ２レコード（Ｂ）」及び「読み込んだＳ２レコード（Ａ）」をプリンタ４０へ送信する（ステップＳ１１）。
【００４６】
また、
・ステップＳ５で、Ｓレコード解析部１１が「読み込んだＳ２レコード（Ａ）」のアドレスが  前回読み込んだＳ２レコードのアドレスと継続していないと判断した場合（ステップＳ５：  Ｎｏ）、
・ステップＳ６で、Ｓレコード境界検出部１２が「読み込んだＳ２レコード（Ａ）」と「未送  信の結合中のＳ２レコード（Ｂ）」とが同じ境界内にないと判断した場合（ステップＳ６：  Ｎｏ）、
・ステップＳ７で、Ｓレコード境界検出部１２が「読み込んだＳ２レコード（Ａ）」と「未送  信の結合中のＳ２レコード（Ｂ）」とを結合した結果（Ｃ）が同じ８１９２バイト境界内に  ないと判断した場合（ステップＳ７：Ｎｏ）
・ステップＳ８で、通信データ量検出部１３が「読み込んだＳ２レコード」と「未送信の結合  中のＳ２レコード（Ｂ）」とを結合した結果（Ｃ）が１度に通信可能な２５６バイト数を超  えると判断した場合（ステップＳ８：Ｎｏ）、
には、「未送信の結合中のＳ２レコード（Ｂ）」をプリンタ４０へ送信し、「読み込んだＳ２レコード（Ａ）」を新たな結合元のＳ２レコードとしてＲＡＭ１７に保持する（ステップＳ１２）
【図面の簡単な説明】
【００４７】
【図１】本実施形態に係るホストコンピュータの内部構成を模式的に示した機能ブロック図である。
【図２】Ｓレコードの構成を模式的に示した図である。
【図３】Ｓレコード結合処理の流れを示したフローチャートである。
【図４】Ｓレコードの結合状態を模式的に示した図である。
【符号の説明】
【００４８】
１・・・Ｓレコード、２・・・先頭文字フィールド、３・・・レコードタイプフィールド、４・・・レコード長フィールド、５・・・書き込み開始アドレスフィールド、６・・・書き込みデータフィールド、７・・・チェックサムフィールド、１０・・・外部記憶装置、１１・・・Ｓレコード解析部、１２・・・Ｓレコード境界検出部、１３・・・通信データ量検出部、１４・・・Ｓレコード結合部、１５・・・レコード送信部、１６・・・ＲＯＭ、１７・・・ＲＡＭ、２０・・・制御部、２１・・・通信インタフェース、３０・・・ホストコンピュータ、４０・・・プリンタ
【図１】
2007115060.tif 000003
【図２】
2007115060.tif 000004
【図３】
2007115060.tif 000005
【図４】
2007115060.tif 000006