(57)【要約】【課題】実行可能な形式のファームウェアの記録に必要な揮発性メモリの容量を削減でき、かつ、新ファームウェアの実行後であっても、稼働するファームウェアを新ファームウェアから旧ファームウェアに容易に戻すことができる、電子機器を提供する。【解決手段】サーバから新ファームウェアがダウンロードされると、その新ファームウェアがＤＲＡＭ１５の第２領域Ａ２に書き込まれる。ＤＲＡＭ１５の第２領域Ａ２に書き込まれた新ファームウェアがＤＲＡＭ１５の第１領域Ａ１に実行可能な形式に展開されて、その実行可能な形式の新ファームウェアが実行される。第１領域Ａ１に展開されていた実行可能な形式の旧ファームウェアは、新ファームウェアの展開により上書きにて消去されるか、新ファームウェアの展開前に消去される。一方、フラッシュＲＯＭ１４に書き込まれている圧縮状態の旧ファームウェアは、書き込まれたまま消去されない。【選択図】図８
2019071003.tif 000002
【特許請求の範囲】
【請求項１】
第１ファームウェアが書き込まれた不揮発性メモリと、
第１領域および第２領域を有する揮発性メモリと、
外部機器と通信する通信部と、
制御部と、
を備える電子機器であって、
前記制御部は、
前記揮発性メモリの内容を保持したまま前記制御部自身を再起動する再起動処理を実行可能であり、
さらに、前記制御部は、
前記不揮発性メモリに書き込まれている前記第１ファームウェアを前記揮発性メモリの前記第１領域に前記制御部が実行可能な形式に変換して展開し、前記第１領域に展開された前記第１ファームウェアを実行する第１実行処理と、
前記通信部を制御して、前記外部機器から第２ファームウェアを受信させ、その第２ファームウェアを前記揮発性メモリの前記第２領域に書き込む書込処理と、
を実行し、
さらに、前記制御部は、
前記書込処理を実行後に前記再起動処理を実行し、
さらに、前記制御部は、
前記再起動処理を実行した後に、前記第２領域に書き込まれている前記第２ファームウェアを前記揮発性メモリの前記第１領域に前記制御部が実行可能な形式に変換して展開し、前記第１領域に展開された前記第２ファームウェアを実行する第２実行処理を実行する、
ことを特徴とする、電子機器。
【請求項２】
第１ファームウェアが書き込まれた不揮発性メモリと、
第１領域および第２領域を有する揮発性メモリと、
外部機器と通信する通信部と、
制御部と、
を備える電子機器であって、
前記制御部は、
前記制御部自身が起動したときに、前記揮発性メモリの前記第２領域に第２ファームウェアが書き込まれているか否かを判断し、
前記揮発性メモリの前記第２領域に第２ファームウェアが書き込まれていない場合は、
前記不揮発性メモリに書き込まれている前記第１ファームウェアを、前記揮発性メモリの前記第１領域に前記制御部が実行可能な形式に変換して展開し、前記第１領域に展開された前記第１ファームウェアを実行する第１実行処理を実行し、
前記揮発性メモリの前記第２領域に第２ファームウェアが書き込まれている場合は、
前記揮発性メモリの前記第２領域に書き込まれている前記第２ファームウェアを、前記揮発性メモリの前記第１領域に前記制御部が実行可能な形式に変換して展開し、前記第１領域に展開された前記第２ファームウェアを実行する第２実行処理を実行する、
ことを特徴とする、電子機器。
【請求項３】
請求項２に記載の電子機器であって、
前記制御部の再起動の際に記録が消えないフラグ保存用メモリをさらに備え、
前記制御部は、
前記揮発性メモリの前記第２領域に前記第２ファームウェアが書き込まれていることを示す情報であるフラグを前記フラグ保存用メモリに記録するフラグ記憶処理と、
前記揮発性メモリの内容を保持したまま前記制御部自身を再起動させる再起動処理と、
を実行し、
前記制御部自身が起動したときに、前記フラグ保存用メモリに前記フラグが記憶されている否かを判断し、
前記フラグ保存用メモリに前記フラグが記憶されていない場合は、
前記不揮発性メモリに書き込まれている前記第１ファームウェアを前記揮発性メモリの前記第１領域に実行可能な形式に展開し、
前記フラグ保存用メモリに前記フラグが記憶されている場合は、
前記揮発性メモリの前記第２領域に書き込まれている前記第２ファームウェアを前記揮発性メモリの前記第１領域に実行可能な形式に展開する、
ことを特徴とする、電子機器。
【請求項４】
請求項１〜３のいずれか一項に記載の電子機器であって、
指示を受け付ける受付部をさらに備え、
前記制御部は、
前記受付部に所定の指示が受け付けられた場合に、前記第２ファームウェアを前記不揮発性メモリに書き込む書込処理を実行し、
さらに前記制御部は、
前記書込処理の実行後に、前記前記第２ファームウェアを前記揮発性メモリの前記第２領域から削除する削除処理
を実行する、
ことを特徴とする、電子機器。
【請求項５】
請求項１〜４のいずれか一項に記載の電子機器であって、
前記第２ファームウェアが前記揮発性メモリの前記第１領域に展開された後、前記揮発性メモリの前記第２領域に書き込まれている前記第２ファームウェアを削除する削除処理
を実行する、
ことを特徴とする、電子機器。
【請求項６】
第１ファームウェアが書き込まれた不揮発性メモリと、
第１領域および第２領域を有する揮発性メモリと、
外部機器と通信する通信部と、
制御部と、
通常ダウンロード処理およびテンポラリダウンロード処理のいずれを実行するかを選択する指示を受け付ける受付部と、
を備える電子機器であって、
前記制御部は、
前記受付部に受け付けられた指示に応じて、前記通常ダウンロード処理または前記テンポラリダウンロード処理を選択的に実行し、
前記通常ダウンロード処理では、前記通信部を制御して、前記外部機器から第２ファームウェアを受信させて、前記第２ファームウェアを前記不揮発性メモリに書き込んで、前記第２ファームウェアを前記第１ファームウェアとして置き換え、
前記テンポラリダウンロード処理では、前記通信部を制御して、前記外部機器から前記第２ファームウェアを受信させて、前記第２ファームウェアを前記揮発性メモリの前記第２領域に書き込み、
前記テンポラリダウンロード処理の実行後、前記揮発性メモリの前記第２領域に書き込まれている前記第２ファームウェアを前記揮発性メモリの前記第１領域に実行可能な形式に展開する展開処理を実行する、
ことを特徴とする、電子機器。
【請求項７】
第１ファームウェアが書き込まれた不揮発性メモリと、
第１領域および第２領域を有する揮発性メモリと、
外部機器と通信する通信部と、
制御部と、
通常ダウンロード処理およびテンポラリダウンロード処理のいずれを実行するかを選択する指示を受け付ける受付部と、
を備える電子機器であって、
前記制御部は、
前記揮発性メモリの内容を保持したまま前記制御部自身を再起動する再起動処理
を実行可能であり、
さらに、前記制御部は、
前記受付部に受け付けられた指示に応じて、前記通常ダウンロード処理または前記テンポラリダウンロード処理を選択的に実行し、
さらに、前記制御部は、
前記通常ダウンロード処理では、前記通信部を制御して、前記外部機器から第２ファームウェアを受信させて、前記第２ファームウェアを前記不揮発性メモリに書き込んで、前記第２ファームウェアを前記第１ファームウェアとして置き換え、
さらに、前記制御部は、
前記テンポラリダウンロード処理では、前記通信部を制御して、前記外部機器から前記第２ファームウェアを受信させて、前記第２ファームウェアを前記揮発性メモリの前記第２領域に書き込み、前記再起動処理を実行し、
さらに、前記制御部は、前記制御部自身が起動した場合に、
前記揮発性メモリの前記第２領域に前記第２ファームウェアが書き込まれているか否か判断する判断処理を実行し、
さらに、前記制御部は、
前記判断処理により前記揮発性メモリの前記第２領域に前記第２ファームウェアが書き込まれていないと判断した場合、
前記不揮発性メモリに書き込まれている前記第１ファームウェアを前記揮発性メモリの前記第１領域に実行可能な形式に展開し、
前記判断処理により前記揮発性メモリの前記第２領域に前記第２ファームウェアが書き込まれていると判断した場合、
前記第２ファームウェアを前記揮発性メモリの前記第１領域に実行可能な形式に展開する展開処理を実行する、
ことを特徴とする、電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器に関する。
【背景技術】
【０００２】
プリンタなどの電子機器には、その電子機器のシステム（ハードウェア）を制御するためのソフトウェアであるファームウェアが組み込まれている。ファームウェアは、書換可能な不揮発性メモリに記憶されており、ブートにより、不揮発性メモリから揮発性メモリに実行可能な形式に展開される。
【０００３】
電子機器における機能の追加や不具合の修正のため、電子機器のメーカなどから新規のファームウェアが提供されることがある。新ファームウェアは、たとえば、提供元のサーバから電子機器にダウンロードすることができる。新ファームウェアのダウンロードにより、不揮発性メモリに記憶されている旧ファームウェアが新ファームウェアに書き換えられる。
【０００４】
このファームウェアの更新方法として、新ファームウェアを揮発性メモリにダウンロードした後、現在稼働中のシステムを停止して、新ファームウェアを展開して起動し、その後、未展開の新ファームウェアを不揮発性メモリに書き込むことが提案されている。この方法により、ファームウェアの更新時の電子機器の非稼働時間を短縮することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−７７４７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、かかる方法では、旧ファームウェアが揮発性メモリに実行可能な形式に展開されている状態で、その旧ファームウェアが展開されている領域と異なる領域に、新ファームウェアが実行可能な形式に展開される。そのため、揮発性メモリには、実行可能な形式の旧ファームウェアおよび新ファームウェアの両方を記録可能な容量が必要になる。
【０００７】
また、新ファームウェアの起動後、未展開の新ファームウェアが不揮発性メモリに自動的に書き込まれて、旧ファームウェアが新ファームウェアに書き換えられるため、新ファームウェアに不都合や不具合がある場合に、不揮発性メモリに旧ファームウェアが記憶されている状態に容易に戻すことができない。
【０００８】
本発明の目的は、実行可能な形式のファームウェアの記録に必要な揮発性メモリの容量を削減でき、かつ、新ファームウェア（第２ファームウェア）の実行後であっても、稼働するファームウェアを新ファームウェアから旧ファームウェア（第１ファームウェア）に容易に戻すことができる、電子機器を提供することである。
【課題を解決するための手段】
【０００９】
前記の目的を達成するため、本発明の一の局面に係る電子機器は、第１ファームウェアが書き込まれた不揮発性メモリと、第１領域および第２領域を有する揮発性メモリと、外部機器と通信する通信部と、制御部と、を備える電子機器であって、制御部は、揮発性メモリの内容を保持したまま制御部自身を再起動する再起動処理を実行可能であり、さらに、制御部は、不揮発性メモリに書き込まれている第１ファームウェアを揮発性メモリの第１領域に制御部が実行可能な形式に変換して展開し、第１領域に展開された第１ファームウェアを実行する第１実行処理と、通信部を制御して、外部機器から第２ファームウェアを受信させ、その第２ファームウェアを揮発性メモリの第２領域に書き込む書込処理と、を実行し、さらに、制御部は、書込処理を実行後に再起動処理を実行し、さらに、制御部は、再起動処理を実行した後に、第２領域に書き込まれている第２ファームウェアを揮発性メモリの第１領域に制御部が実行可能な形式に変換して展開し、第１領域に展開された第２ファームウェアを実行する第２実行処理を実行する、ことを特徴とする。
【００１０】
この構成によれば、不揮発性メモリに書き込まれている第１ファームウェアは、揮発性メモリの第１領域に制御部が実行可能な形式に展開される。その後、実行可能な形式の第１ファームウェアが実行される。
【００１１】
第１ファームウェアの実行中に、外部機器から第２ファームウェアを通信部が受信すると、その第２ファームウェアが揮発性メモリの第２領域に書き込まれる。その後、制御部は、揮発性メモリの内容を保持したまま、制御部自身を再起動する。この再起動後、制御部により、第２ファームウェアが揮発性メモリの第１領域に実行可能な形式に展開されて、その実行可能な形式の第２ファームウェアが実行される。第１領域に展開されていた実行可能な形式の第１ファームウェアは、第２ファームウェアの展開により上書きにて消去されるか、第２ファームウェアの展開前に消去される。そのため、実行可能な形式の第１ファームウェアおよび第２ファームウェアの両方を記録可能な容量を揮発性メモリの第１領域に確保する必要がない。よって、実行可能な形式のファームウェアの記録に必要な第１領域の容量を削減することができる。
【００１２】
また、不揮発性メモリに第１ファームウェアが書き込まれたまま消去されないので、第２ファームウェアに不都合や不具合がある場合に、第１ファームウェアを揮発性メモリの第１領域に実行可能な形式に展開して使用することができる。よって、第２ファームウェアの実行後であっても、稼働するファームウェアを第２ファームウェアから第１ファームウェアに容易に戻すことができる。
【００１３】
前記の目的を達成するため、本発明の他の局面に係る電子機器は、第１ファームウェアが書き込まれた不揮発性メモリと、第１領域および第２領域を有する揮発性メモリと、外部機器と通信する通信部と、制御部と、を備える電子機器であって、制御部は、制御部自身が起動したときに、揮発性メモリの第２領域に第２ファームウェアが書き込まれているか否かを判断し、揮発性メモリの第２領域に第２ファームウェアが書き込まれていない場合は、不揮発性メモリに書き込まれている第１ファームウェアを、揮発性メモリの第１領域に制御部が実行可能な形式に変換して展開し、第１領域に展開された第１ファームウェアを実行する第１実行処理を実行し、揮発性メモリの第２領域に第２ファームウェアが書き込まれている場合は、揮発性メモリの第２領域に書き込まれている第２ファームウェアを、揮発性メモリの第１領域に制御部が実行可能な形式に変換して展開し、第１領域に展開された第２ファームウェアを実行する第２実行処理を実行する、ことを特徴とする。
【００１４】
この構成によれば、制御部は、制御部自身が起動したときに、揮発性メモリの第２領域に第２ファームウェアが書き込まれているか否かを判断する。揮発性メモリの第２領域に第２ファームウェアが書き込まれている場合には、その第２ファームウェアが揮発性メモリの第１領域に実行可能な形式に展開されて、その実行可能な形式の第２ファームウェアが実行される。揮発性メモリの第２領域に第２ファームウェアが書き込まれていない場合には、不揮発性メモリに書き込まれている第１ファームウェアが揮発性メモリの第１領域に実行可能な形式に展開されて、その実行可能な形式の第１ファームウェアが実行される。
【００１５】
これにより、揮発性メモリの第１領域には、実行可能な形式の第１ファームウェアまたは第２ファームウェアの一方が記録される。そのため、実行可能な形式の第１ファームウェアまたは第２ファームウェアの両方を記録可能な容量を揮発性メモリの第１領域に確保する必要がない。よって、実行可能な形式のファームウェアの記録に必要な第１領域の容量を削減することができる。
【００１６】
また、不揮発性メモリに第１ファームウェアが書き込まれたまま消去されないので、第２ファームウェアに不都合や不具合がある場合に、第１ファームウェアを揮発性メモリの第１領域に実行可能な形式に展開して使用することができる。よって、第２ファームウェアの実行後であっても、稼働するファームウェアを第２ファームウェアから第１ファームウェアに容易に戻すことができる。
【００１７】
前記の目的を達成するため、本発明のさらに他の局面に係る電子機器は、第１ファームウェアが書き込まれた不揮発性メモリと、第１領域および第２領域を有する揮発性メモリと、外部機器と通信する通信部と、制御部と、通常ダウンロード処理およびテンポラリダウンロード処理のいずれを実行するかを選択する指示を受け付ける受付部と、を備える電子機器であって、制御部は、受付部に受け付けられた指示に応じて、通常ダウンロード処理またはテンポラリダウンロード処理を選択的に実行し、通常ダウンロード処理では、通信部を制御して、外部機器から第２ファームウェアを受信させて、第２ファームウェアを不揮発性メモリに書き込んで、第２ファームウェアを第１ファームウェアとして置き換え、テンポラリダウンロード処理では、通信部を制御して、外部機器から第２ファームウェアを受信させて、第２ファームウェアを揮発性メモリの第２領域に書き込み、テンポラリダウンロード処理の実行後、揮発性メモリの第２領域に書き込まれている第２ファームウェアを揮発性メモリの第１領域に実行可能な形式に展開する展開処理を実行する、ことを特徴とする。
【００１８】
この構成によれば、通常ダウンロード処理の実行が選択されている場合、外部機器から通信部が第２ファームウェアを受信すると、その第２ファームウェアが不揮発性メモリに書き込まれる。
【００１９】
テンポラリダウンロード処理の実行が選択されている場合、外部機器から通信部が第２ファームウェアを受信すると、その第２ファームウェアが揮発性メモリの第２領域に書き込まれる。その後、第２領域に記録されている第２ファームウェアが揮発性メモリの第１領域に実行可能な形式に展開されて、その実行可能な形式の第２ファームウェアが実行される。第２ファームウェアの展開前は、第１ファームウェアが揮発性メモリの第１領域に実行可能な形式で展開されており、その第１ファームウェアは、第２ファームウェアの展開により上書きにて消去されるか、第２ファームウェアの展開前に消去される。そのため、実行可能な形式の第１ファームウェアおよび第２ファームウェアの両方を記録可能な容量を揮発性メモリの第１領域に確保する必要がない。よって、実行可能な形式のファームウェアの記録に必要な第１領域の容量を削減することができる。
【００２０】
また、テンポラリダウンロード処理では、不揮発性メモリに第１ファームウェアが書き込まれたまま消去されないので、第２ファームウェアに不都合や不具合がある場合に、第１ファームウェアを揮発性メモリの第１領域に実行可能な形式に展開して使用することができる。よって、第２ファームウェアの実行後であっても、稼働するファームウェアを第２ファームウェアから第１ファームウェアに容易に戻すことができる。
【００２１】
前記の目的を達成するため、本発明のさらに他の局面に係る電子機器は、第１ファームウェアが書き込まれた不揮発性メモリと、第１領域および第２領域を有する揮発性メモリと、外部機器と通信する通信部と、制御部と、通常ダウンロード処理およびテンポラリダウンロード処理のいずれを実行するかを選択する指示を受け付ける受付部と、を備える電子機器であって、制御部は、揮発性メモリの内容を保持したまま制御部自身を再起動する再起動処理を実行可能であり、さらに、制御部は、受付部に受け付けられた指示に応じて、通常ダウンロード処理またはテンポラリダウンロード処理を選択的に実行し、さらに、制御部は、通常ダウンロード処理では、通信部を制御して、外部機器から第２ファームウェアを受信させて、第２ファームウェアを不揮発性メモリに書き込んで、第２ファームウェアを第１ファームウェアとして置き換え、さらに、制御部は、テンポラリダウンロード処理では、通信部を制御して、外部機器から第２ファームウェアを受信させて、第２ファームウェアを揮発性メモリの第２領域に書き込み、再起動処理を実行し、さらに、制御部は、制御部自身が起動した場合に、揮発性メモリの第２領域に第２ファームウェアが書き込まれているか否か判断する判断処理を実行し、さらに、制御部は、判断処理により揮発性メモリの第２領域に第２ファームウェアが書き込まれていないと判断した場合、不揮発性メモリに書き込まれている第１ファームウェアを揮発性メモリの第１領域に実行可能な形式に展開し、判断処理により揮発性メモリの第２領域に第２ファームウェアが書き込まれていると判断した場合、第２ファームウェアを揮発性メモリの第１領域に実行可能な形式に展開する展開処理を実行する、ことを特徴とする。
【００２２】
この構成によれば、通常ダウンロード処理の実行が選択されている場合、外部機器から通信部が第２ファームウェアを受信すると、その第２ファームウェアが不揮発性メモリに書き込まれる。一方、テンポラリダウンロード処理の実行が選択されている場合、外部機器から通信部が第２ファームウェアを受信すると、その第２ファームウェアが揮発性メモリの第２領域に書き込まれる。
【００２３】
制御部の再起動後、揮発性メモリの第２領域に第２ファームウェアが書き込まれている場合には、その第２ファームウェアが揮発性メモリの第１領域に実行可能な形式に展開されて、その実行可能な形式の第２ファームウェアが実行される。揮発性メモリの第２領域に第２ファームウェアが書き込まれていない場合には、不揮発性メモリに書き込まれている第１ファームウェアが揮発性メモリの第１領域に実行可能な形式に展開されて、その実行可能な形式の第１ファームウェアが実行される。
【００２４】
これにより、揮発性メモリの第１領域には、実行可能な形式の第１ファームウェアまたは第２ファームウェアの一方が記録される。そのため、実行可能な形式の第１ファームウェアまたは第２ファームウェアの両方を記録可能な容量を揮発性メモリの第１領域に確保する必要がない。よって、実行可能な形式のファームウェアの記録に必要な第１領域の容量を削減することができる。
【００２５】
また、テンポラリダウンロード処理では、不揮発性メモリに第１ファームウェアが書き込まれたまま消去されないので、第２ファームウェアに不都合や不具合がある場合に、第１ファームウェアを揮発性メモリの第１領域に実行可能な形式に展開して使用することができる。よって、第２ファームウェアの実行後であっても、稼働するファームウェアを第２ファームウェアから第１ファームウェアに容易に戻すことができる。
【発明の効果】
【００２６】
本発明によれば、実行可能な形式のファームウェアの記録に必要な第１領域の容量を削減することができる。また、第２ファームウェアの実行後に、不揮発性メモリに第１ファームウェアが消去されないことにより、稼働するファームウェアを第２ファームウェアから第１ファームウェアに容易に戻すことができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態に係るプリンタの電気的構成の要部を示すブロック図である。
【図２】ファーム起動処理の流れを示すフローチャートである。
【図３Ａ】フラッシュＲＯＭおよびＤＲＡＭの状態を図解的に示す図であり、ＤＲＡＭが未初期化の状態を示す。
【図３Ｂ】フラッシュＲＯＭおよびＤＲＡＭの状態を図解的に示す図であり、ブートプログラムが実行中である状態を示す。
【図３Ｃ】フラッシュＲＯＭおよびＤＲＡＭの状態を図解的に示す図であり、ファームウェアの実行が開始される状態を示す。
【図３Ｄ】フラッシュＲＯＭおよびＤＲＡＭの状態を図解的に示す図であり、フラッシュＲＯＭに圧縮状態の旧ファームウェアが書き込まれた状態で、ＤＲＡＭの第１領域に展開された旧ファームウェアが実行される状態を示す。
【図４Ａ】ファーム通常処理の流れを示すフローチャート（その１）である。
【図４Ｂ】ファーム通常処理の流れを示すフローチャート（その２）である。
【図５】テンポラリＤＬ処理の流れを示すフローチャートである。
【図６Ａ】フラッシュＲＯＭおよびＤＲＡＭの状態を図解的に示す図であり、ＤＲＡＭのワークエリアに圧縮状態の新ファームウェアが書き込まれた状態を示す。
【図６Ｂ】フラッシュＲＯＭおよびＤＲＡＭの状態を図解的に示す図であり、ブートプログラムが実行中である状態を示す。
【図７】フラッシュＲＯＭおよびＤＲＡＭの状態を図解的に示す図であり、ワークエリアの圧縮状態の新ファームウェアが第１領域に展開される状態を示す。
【図８】フラッシュＲＯＭおよびＤＲＡＭの状態を図解的に示す図であり、フラッシュＲＯＭに圧縮状態の旧ファームウェアが書き込まれた状態で、ＤＲＡＭの第１領域に展開された新ファームウェアが実行される状態を示す。
【図９】通常ＤＬ処理の流れを示すフローチャートである。
【図１０】フラッシュＲＯＭおよびＤＲＡＭの状態を図解的に示す図であり、ＤＲＡＭの第２領域に書き込まれた圧縮状態の新ファームウェアがフラッシュＲＯＭに書き込まれる状態を示す。
【図１１】フラッシュＲＯＭおよびＤＲＡＭの状態を図解的に示す図であり、フラッシュＲＯＭに圧縮状態の新ファームウェアが書き込まれた状態で、ＤＲＡＭの第１領域に展開された新ファームウェアが実行される状態を示す。
【発明を実施するための形態】
【００２８】
以下では、本発明の実施の形態について、添付図面を参照しつつ詳細に説明する。
【００２９】
＜プリンタの電気的構成＞
図１に示されるプリンタ１は、電子機器の一例であり、画像形成部１１、操作部１２（受付部の一例）、ＡＳＩＣ（Application Specific Integrated Circuit）１３、不揮発性メモリであるフラッシュＲＯＭ（Read Only Memory）１４、揮発性メモリであるＤＲＡＭ（Dynamic Random Access Memory）１５および通信部１６を備えている。画像形成部１１、操作部１２、ＡＳＩＣ１３、フラッシュＲＯＭ１４およびＤＲＡＭ１５は、バス１７を介して、データ通信可能に接続されている。
【００３０】
画像形成部１１は、プリンタ１の外殻をなす筐体内に設けられている。画像形成部１１は、搬送経路上を１枚ずつ搬送されるプリント用紙などのシートにカラー画像またはモノクロ画像を形成する機構である。画像形成の方式は、電子写真方式であってもよいし、インクジェット方式であってもよい。
【００３１】
操作部１２は、たとえば、タッチパネルの形態で設けられている。ユーザが操作部１２を操作することにより、各種の指示が操作部１２に受け付けられる。操作部１２に指示が受け付けられると、その指示の内容に応じた信号（データ）が操作部１２からＡＳＩＣ１３に向けて送信される。
【００３２】
ＡＳＩＣ１３は、ＣＰＵ（Central Processing Unit）２１、ＡＳＩＣ１３（ＣＰＵ２１）が再起動しても記憶内容を保持可能なＳＲＡＭ（Static Random Access Memory）２２およびメモリコントローラ２３を備えている。
【００３３】
ＣＰＵ２１（制御部の一例）、ＳＲＡＭ２２（フラグ保存用メモリの一例）およびメモリコントローラ２３は、ＡＳＩＣ１３内の内部バス２４を介して、データ通信可能に接続されている。内部バス２４は、バス１７とデータ通信可能に接続されている。
【００３４】
メモリコントローラ２３は、ＤＲＡＭ１５に対するデータの読み書きを制御する集積回路である。メモリコントローラ２３には、仮想アドレスを物理アドレスに変換する機能を有するＭＭＵ（Memory Management Unit：メモリ管理ユニット）が含まれている。また、メモリコントローラ２３は、一定の周期でＤＲＡＭ１５にリフレッシュ信号を送信して、ＤＲＡＭ１５に保持されているデータの再書き込みを行うリフレッシュ機能を有している。
【００３５】
通信部１６は、サーバやＰＣ（パーソナルコンピュータ）などの外部機器との間でのコンピュータネットワークを経由した通信のための回路などを備えている。
【００３６】
＜ファーム起動処理＞
ＡＳＩＣ１３に内蔵されているＣＰＵ２１は、プリンタ１のブートおよびリブート時に、図２に示されるファーム起動処理を実行する。具体的には、ファーム起動処理は、フラッシュＲＯＭ１４に保存されているブートプログラムに含まれている。プリンタ１のブートおよびリブート時には、図３Ａに示されるように、ＣＰＵ２１がブートプログラムを実行することにより、ファーム起動処理が開始される。
【００３７】
ファーム起動処理では、ＣＰＵ２１は、今回のブートまたはリブートがテンポラリＤＬ（ダウンロード）後のリブートであるか否かを判別する（Ｓ１１）。具体的には、ＣＰＵ２１は、後述のテンポラリＤＬ実行フラグがＳＲＡＭ２２に保存されている場合、今回のブートまたはリブートがテンポラリＤＬ後のリブートであると判別し、テンポラリＤＬ実行フラグがＳＲＡＭ２２に保存されていない場合、今回のブートまたはリブートがテンポラリＤＬ後のリブートではないと判別する。テンポラリＤＬについては、後述する。
【００３８】
今回のブートまたはリブートがテンポラリＤＬ後のリブートでない場合（Ｓ１１：ＮＯ）、図３Ａに示されるように、ＤＲＡＭ１５が初期化されていない未初期化の状態である。そこで、ＣＰＵ２１は、メモリコントローラ２３を制御して、ＤＲＡＭ１５を初期化する（Ｓ１２）。
【００３９】
ＤＲＡＭ１５の初期化後、ＣＰＵ２１は、図３Ｂに示されるように、フラッシュＲＯＭ１４に保存されている圧縮状態のファームウェア（以下、このファームウェアを「旧ファームウェア」という。）をＤＲＡＭ１５の第１領域Ａ１上に実行可能な形式に展開する（Ｓ１３）。
【００４０】
そして、ＣＰＵ２１は、図３Ｃに示されるように、ＤＲＡＭ１５に展開されたファームウェアの先頭アドレスにジャンプして、ファームウェアを先頭アドレスから実行する（Ｓ１４）。その後は、図３Ｄに示されるように、ＤＲＡＭ１５の第１領域Ａ１のファームウェア上で各部の制御が行われる。
【００４１】
その後、ＣＰＵ２１は、ファーム起動処理を終了して、図４Ａおよび図４Ｂに示されるファーム通常処理を開始する。
【００４２】
今回のブートまたはリブートがテンポラリＤＬ後のリブートである場合の処理の内容については、後述する。
【００４３】
＜ファーム通常処理＞
ファーム通常処理では、ＣＰＵ２１は、メモリコントローラ２３を制御して、ワークエリアとして使用するＤＲＡＭ１５の第２領域Ａ２に保存されているデータ、たとえば、セキュアプリントに係る画像データがあれば、そのデータを使える状態にする（Ｓ２１）。セキュアプリントは、画像データに係る画像をシートに形成するプリント動作の実行にパスワードの入力が必要とされるジョブである。
【００４４】
その後、ＣＰＵ２１は、後述するテンポラリＤＬ実行フラグがＳＲＡＭ２２に保存されているか否かに基づいて、今回のＣＰＵ２１の起動がテンポラリＤＬ後の再起動であるか否かを判別する（Ｓ２２）。
【００４５】
ＣＰＵ２１は、テンポラリＤＬ実行フラグがＳＲＡＭ２２に保存されている場合、今回のＣＰＵ２１の起動がテンポラリＤＬ後の起動であると判別する（Ｓ２２：ＹＥＳ）。
【００４６】
ＣＰＵ２１は、テンポラリＤＬ実行フラグがＳＲＡＭ２２に保存されていない場合、今回のＣＰＵ２１の起動がテンポラリＤＬ後の起動ではないと判別する（Ｓ２２：ＮＯ）。
【００４７】
プリンタ１における機能の追加や不具合の修正のため、プリンタ１のメーカなどから新規のファームウェア（以下、このファームウェアを「新ファームウェア」という。）が提供される場合がある。その場合、提供元となるサーバに新ファームウェアがアップロードされ、そのサーバからプリンタ１に新ファームウェアをダウンロードすることができる。新ファームウェアは、サーバからプリンタ１に直接にダウンロードされてもよいし、サーバからＰＣなどの外部機器を経由してプリンタ１にダウンロードされてもよい。
【００４８】
今回のプリンタ１の起動がテンポラリＤＬ後の起動ではない場合（Ｓ２２：ＮＯ）、ＣＰＵ２１は、プリンタ１の起動の度にサーバにおける新ファームウェアの有無を確認する自動確認モードが設定されているか否かを確認する（Ｓ２３）。自動確認モードの設定および解除は、操作部１２の操作によって切り替えることができる。
【００４９】
自動確認モードが設定されている場合（Ｓ２３：ＹＥＳ）、ＣＰＵ２１は、サーバに新ファームウェアの有無を問い合わせる（Ｓ２４）。
【００５０】
自動確認モードが設定されていない場合（Ｓ２３：ＮＯ）、または、サーバに新ファームウェアが存在しない場合（Ｓ２４：ＮＯ）、ＣＰＵ２１は、画像形成部１１のウォームアップ動作を制御する（Ｓ２５）。ウォームアップ動作は、画像形成を行うための準備動作であり、たとえば、画像形成部１１が電子写真方式のエンジンを備える場合、そのエンジンに含まれる現像ローラの表面に撹拌により帯電したトナーを担持させるための動作などを含む。
【００５１】
ウォームアップ動作後、ＣＰＵ２１は、プリンタ１に接続されたＰＣなどの外部機器からプリントデータを受信したか否かを判別する（Ｓ２６）。プリントデータは、プリントジョブのデータであり、シートに形成される画像に係る画像データおよび画像形成の条件を含む。
【００５２】
プリンタ１が外部機器からプリントデータを受信した場合（Ｓ２６：ＹＥＳ）、ＣＰＵ２１は、その受信したプリントデータをワークエリアとして使用するＤＲＡＭ１５の第２領域Ａ２に保存する。そして、ＣＰＵ２１は、画像形成部１１を制御して、プリントデータに含まれる画像データの画像をシートに形成するプリント動作を実行させる（Ｓ２７）。
【００５３】
一方、プリンタ１が外部機器からプリントデータを受信していない場合（Ｓ２６：ＮＯ）、ＣＰＵ２１は、セキュアプリントの実行条件が満たされているか否かを判別する（Ｓ２８）。セキュアプリントの実行条件は、セキュアプリントに係る画像データが使える状態でＤＲＡＭ１５の第２領域Ａ２に保持されており、かつ、セキュアプリント用のパスワードが操作部１２に受け付けられたという条件である。
【００５４】
セキュアプリントの実行条件が満たされている場合（Ｓ２８：ＹＥＳ）、ＣＰＵ２１は、画像形成部１１を制御して、セキュアプリントに係るプリント動作、つまりセキュアプリントに係る画像データの画像をシートに形成するプリント動作を実行させる（Ｓ２９）。
【００５５】
プリント動作の終了後、ＣＰＵ２１は、セキュアプリントに係る画像データをＤＲＡＭ１５から消去する（Ｓ３０）。
【００５６】
いずれの場合にしても、ＣＰＵ２１は、プリント動作の終了後、プリントデータを受信したか否かを再び判断する（Ｓ２６）。
【００５７】
プリントデータが受信されておらず、かつ、セキュアプリントの実行条件が満たされていない場合（Ｓ２８：ＮＯ）、ＣＰＵ２１は、サーバに新ファームウェアの有無を問い合わせる（図４ＢのＳ３１）。
【００５８】
サーバに新ファームウェアが存在しない場合（Ｓ３１：ＮＯ）、ＣＰＵ２１は、プリントデータを受信したか否かを再び判断する（図４ＡのＳ２６）。
【００５９】
ＣＰＵ２１は、サーバに新ファームウェアが存在することを確認した場合（図４ＢのＳ３１：ＹＥＳ）、オートテンポラリＤＬモードが設定されているか否かを確認する（Ｓ３２）。オートテンポラリＤＬモードは、サーバに新ファームウェアが存在する場合に、図５に示されるテンポラリＤＬ処理が自動的に実行されるモードである。オートテンポラリＤＬモードの設定および解除は、操作部１２の操作により切り替えることができる。
【００６０】
オートテンポラリＤＬモードが設定されている場合（Ｓ３２：ＹＥＳ）、ＣＰＵ２１は、現時点が、プリントデータを受信していないタイミング、即ち、サーバから新ファームウェアをダウンロードすることが可能なタイミングであるＤＬ可能タイミングであるか否かを判別する（Ｓ３３）。たとえば、プリンタ１では、非動作状態が一定時間継続すると、プリンタ１の所定部への電力の供給が低減されるスリープ状態に突入する。スリープ状態が一定時間経過すると、ＣＰＵ２１は、現時点がＤＬ可能タイミングであると判別する。
【００６１】
現時点がＤＬ可能タイミングでない場合（Ｓ３３：ＮＯ）、ＣＰＵ２１は、プリントデータを受信したか否かを再び判断する（図４ＡのＳ２６）。
【００６２】
サーバに新ファームウェアが存在し、かつ、オートテンポラリＤＬモードが設定され、かつ、現時点がＤＬ可能タイミングである場合には（図４ＢのＳ３３：ＹＥＳ）、ＣＰＵ２１は、ファーム通常処理を終了して、図５に示されるテンポラリＤＬ処理を実行する。
【００６３】
サーバに新ファームウェアが存在するが、オートテンポラリＤＬモードが設定されていない場合には（Ｓ３２：ＮＯ）、ＣＰＵ２１は、たとえば、操作部１２を構成するタッチパネルを制御して、その画面に新ファームウェアをダウンロード可能である旨を表示させる。この画面には、新ファームウェアの試用のためのダウンロード（テンポラリＤＬ）を指示するテンポラリＤＬボタンと、新ファームウェアの本使用のためのダウンロード（通常ＤＬ）を指示する通常ＤＬボタンとが表示される。ユーザがテンポラリＤＬボタンを押操作することにより、テンポラリＤＬの指示が操作部１２に受け付けられ、ユーザが通常ＤＬボタンを押操作することにより、通常ＤＬの指示が操作部１２に受け付けられる。
【００６４】
テンポラリＤＬの指示が操作部１２に受け付けられた場合（Ｓ３４：ＹＥＳ）、ＣＰＵ２１は、ファーム通常処理を終了して、図５に示されるテンポラリＤＬ処理を実行する。
【００６５】
通常ＤＬの指示が操作部１２に受け付けられた場合（Ｓ３５：ＹＥＳ）、ＣＰＵ２１は、ファーム通常処理を終了して、図９に示される通常ＤＬ処理を実行する。
【００６６】
テンポラリＤＬまたは通常ＤＬのいずれかの指示が操作部１２に受け付けられるまでは、ＣＰＵ２１は、プリントデータを受信したか否かを再び判断する（図４ＡのＳ２６）。
【００６７】
＜テンポラリＤＬ処理＞
テンポラリＤＬ処理では、図５に示されるように、ＣＰＵ２１は、通信部１６を制御して、サーバから通信部１６に圧縮状態の新ファームウェアをダウンロードし、図６Ａに示されるように、その圧縮状態の新ファームウェアをＤＲＡＭ１５の第２領域Ａ２からなるワークエリアに書き込む（Ｓ４１）。このときの新ファームウェアのダウンロードは、新ファームウェアの試用のためのテンポラリＤＬである。
【００６８】
その後、ＣＰＵ２１は、テンポラリＤＬ実行フラグをＳＲＡＭ２２に保存する（Ｓ４２）。テンポラリＤＬ実行フラグは、圧縮状態の新ファームウェアをＤＲＡＭ１５の第２領域Ａ２からなるワークエリアに書き込まれたことを示す情報である。
【００６９】
そして、ＣＰＵ２１は、メモリコントローラ２３を制御して、ＤＲＡＭ１５をセルフリフレッシュモードにする（Ｓ４３）。ＤＲＡＭ１５には、リフレッシュ回路が内蔵されており、セルフリフレッシュモードでは、そのリフレッシュ回路により、ＤＲＡＭ１５に保存されているデータの再書き込みが周期的に行われる。これにより、セルフリフレッシュモードでは、ＤＲＡＭ１５にデータが保持し続けられる。
【００７０】
ＣＰＵ２１は、ＤＲＡＭ１５をセルフリフレッシュモードにした後、図６Ｂに示されるように、ＣＰＵ２１自身の再起動により、フラッシュＲＯＭ１４に保存されているブートプログラムを実行して（Ｓ４４：リブート）、テンポラリＤＬ処理を終了し、ファーム起動処理を実行する。
【００７１】
＜テンポラリＤＬ後のファーム起動処理＞
図２を参照して、テンポラリＤＬ処理後のファーム起動処理では、ＳＲＡＭ２２にテンポラリＤＬ実行フラグが保存されている。ＣＰＵ２１は、ＳＲＡＭ２２にテンポラリＤＬ実行フラグが保存されている場合に今回のリブートがテンポラリＤＬ後のリブートであると判別する（Ｓ１１：ＹＥＳ）。
【００７２】
そして、ＣＰＵ２１は、メモリコントローラ２３を制御して、ＤＲＡＭ１５のセルフリフレッシュモードを解除する。さらにＣＰＵ２１は、ＳＲＡＭ２２に保存されているテンポラリＤＬ実行フラグを消去する（Ｓ１５）。
【００７３】
その後、ＣＰＵ２１は、図７に示されるように、ＤＲＡＭ１５に保存されている圧縮状態の新ファームウェアをＤＲＡＭ１５の第１領域Ａ１上にＣＰＵ２１が実行可能な形式に展開する（Ｓ１６）。このとき、新ファームウェアの展開前に第１領域Ａ１に展開されていた旧ファームウェアは、新ファームウェアの展開により上書きにて消去されるか、または、新ファームウェアの展開前に削除される。
【００７４】
その後、ＣＰＵ２１は、ＤＲＡＭ１５に展開された新ファームウェアの先頭アドレスにジャンプして、新ファームウェアを先頭アドレスから実行する（Ｓ１４）。
【００７５】
＜テンポラリＤＬ後のファーム通常処理＞
ファーム起動処理に引き続いて実行されるファーム通常処理では、ＣＰＵ２１は、今回のプリンタ１の起動がテンポラリＤＬ後の起動であると判別する（Ｓ２２：ＹＥＳ）。この場合、ＣＰＵ２１は、図８に示されるように、ワークエリアとして使用するＤＲＡＭ１５の第２領域Ａ２から圧縮状態の新ファームウェアを削除する（Ｓ３６）。ＤＲＡＭ１５の第２領域Ａ２から圧縮状態の新ファームウェアを削除することにより、ワークエリアとして利用可能なＤＲＡＭ１５の空き容量をより大きく確保できる。
【００７６】
＜通常ＤＬ処理＞
通常ＤＬ処理では、図９に示されるように、ＣＰＵ２１は、通信部１６を制御して、サーバから通信部１６に圧縮状態の新ファームウェアをダウンロードし、その圧縮状態の新ファームウェアをＤＲＡＭ１５の第２領域Ａ２からなるワークエリアに書き込む（Ｓ５１）。このときの新ファームウェアのダウンロードは、新ファームウェアの本使用のための通常ＤＬである。
【００７７】
その後、ＣＰＵ２１は、図１０に示されるように、ワークエリアに保存されている圧縮状態の新ファームウェアをフラッシュＲＯＭ１４に書き込む（Ｓ５２）。このとき、フラッシュＲＯＭ１４に保存されていた圧縮状態の旧ファームウェアは、圧縮状態の新ファームウェアにより上書きにて消去されるか、または、新ファームウェアの書き込み前に削除される。
【００７８】
そして、ＣＰＵ２１は、ＣＰＵ２１自身の再起動により、フラッシュＲＯＭ１４に保存されているブートプログラムを実行して（Ｓ５３：リブート）、通常ＤＬ処理を終了し、ファーム起動処理を実行する。
【００７９】
＜通常ＤＬ処理後のファーム起動処理＞
図２を参照して、通常ＤＬ処理後のファーム起動処理では、ＳＲＡＭ２２にテンポラリＤＬ実行フラグが保存されていない。ＣＰＵ２１は、ＳＲＡＭ２２にテンポラリＤＬ実行フラグが保存されていない場合に今回のリブートがテンポラリＤＬ後のリブートではないと判別する（Ｓ１１：ＮＯ）。
【００８０】
そして、ＣＰＵ２１は、メモリコントローラ２３を制御して、ＤＲＡＭ１５を初期化する（Ｓ１２）。  
【００８１】
このとき、フラッシュＲＯＭ１４には、圧縮状態の新ファームウェアが保存されているので、ＤＲＡＭ１５の初期化後、ＣＰＵ２１は、図１１に示されるように、フラッシュＲＯＭ１４に保存されている圧縮状態の新ファームウェアをＤＲＡＭ１５の第１領域Ａ１上にＣＰＵ２１が実行可能な形式に展開する（Ｓ１３）。
【００８２】
＜作用効果＞
以上のように、フラッシュＲＯＭ１４に書き込まれている圧縮状態の旧ファームウェアは、ＤＲＡＭ１５の第１領域Ａ１に実行可能な形式に展開される。その後、実行可能な形式の旧ファームウェアが実行される。
【００８３】
プリンタ１では、オートテンポラリＤＬモードの設定および解除が可能である。オートテンポラリＤＬモードが設定されている場合、サーバに新ファームウェアがアップロードされていると、サーバから通信部１６に圧縮状態の新ファームウェアがダウンロードされて、その圧縮状態の新ファームウェアがＤＲＡＭ１５の第２領域Ａ２に書き込まれる。また、オートテンポラリＤＬモードが解除されていても、テンポラリＤＬの指示が操作部１２に受け付けられた場合、旧ファームウェアの実行中に、サーバから通信部１６に圧縮状態の新ファームウェアがダウンロードされて、その圧縮状態の新ファームウェアがＤＲＡＭ１５の第２領域Ａ２に書き込まれる。
【００８４】
これらの場合、ＤＲＡＭ１５の第２領域Ａ２に書き込まれた圧縮状態の新ファームウェアがＤＲＡＭ１５の第１領域Ａ１に実行可能な形式に展開されて、その実行可能な形式の新ファームウェアが実行される。第１領域Ａ１に展開されていた実行可能な形式の旧ファームウェアは、新ファームウェアの展開により上書きにて消去されるか、新ファームウェアの展開前に消去される。そのため、実行可能な形式の旧ファームウェアおよび新ファームウェアの両方を記録可能な容量をＤＲＡＭ１５の第１領域Ａ１に確保する必要がない。よって、実行可能な形式のファームウェアの記録に必要な第１領域Ａ１の容量を削減することができる。
【００８５】
また、フラッシュＲＯＭ１４に圧縮状態の旧ファームウェアが書き込まれたまま消去されないので、新ファームウェアに不都合や不具合がある場合に、旧ファームウェアをＤＲＡＭ１５の第１領域Ａ１に実行可能な形式に展開して使用することができる。よって、新ファームウェアの実行後であっても、稼働するファームウェアを新ファームウェアから旧ファームウェアに容易に戻すことができる。
【００８６】
さらに、ＤＲＡＭ１５の第２領域Ａ２に保存されている圧縮状態の新ファームウェアがＤＲＡＭ１５の第１領域Ａ１に実行可能な形式に展開された後は、ＤＲＡＭ１５の第２領域Ａ２に書き込まれている圧縮状態の新ファームウェアが削除される。これにより、第２領域Ａ２の空き容量を増やすことができる。
【００８７】
オートテンポラリＤＬモードが解除されている状態で、通常ＤＬの指示が操作部１２に受け付けられた場合、旧ファームウェアの実行中に、サーバから通信部１６に圧縮状態の新ファームウェアがダウンロードされると、その圧縮状態の新ファームウェアがＤＲＡＭ１５の第２領域Ａ２を経由してフラッシュＲＯＭ１４に書き込まれる。そのため、リブート時には、フラッシュＲＯＭ１４に保存されている圧縮状態の新ファームウェアをＤＲＡＭ１５の第１領域Ａ１に実行可能な形式に展開されて、その実行可能な形式の新ファームウェアが実行される。よって、リブートの度にＤＲＡＭ１５の第１領域Ａ１に展開されるファームウェアが新ファームウェアから旧ファームウェアに戻ることを抑制できる。
【００８８】
＜変形例＞
以上、本発明の一実施形態について説明したが、本発明は、他の形態で実施することもできる。
【００８９】
たとえば、子機器の一例として、プリンタ１を取り上げたが、本発明は、プリンタ１に限らず、原稿の画像を読み取る画像読取機能を有するスキャナに適用することもでき、その画像読取機能とプリント用紙などのシートに画像を形成する画像形成機能とを併せ持つ複合機に適用されてもよい。本発明が画像読取機能を有する機器に適用される場合、図４ＡのステップＳ２５では、ＣＩＳ（Contact Image Sensor）などの読取デバイスのホームポジションを補正する動作が行われてもよい。
【００９０】
また、テンポラリＤＬにより取得した新ファームウェアを実行中に、実行中の新ファームウェアよりもさらに新しいファームウェアがサーバに公開された場合は、新ファームウェアの処理としてテンポラリＤＬ処理を実行するようにしてもよい。これにより、プリンタは常に最新のファームウェアをサーバから取得して実行することができる。
【００９１】
その他、前述の構成には、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
【符号の説明】
【００９２】
１：プリンタ
１２：操作部
１３：ＡＳＩＣ
１４：フラッシュＲＯＭ
１５：ＤＲＡＭ
１６：通信部
２１：ＣＰＵ
２２：ＳＲＡＭ
Ａ１：第１領域
Ａ２：第２領域
【図１】
2019071003.tif 000003
【図２】
2019071003.tif 000004
【図３Ａ】
2019071003.tif 000005
【図３Ｂ】
2019071003.tif 000006
【図３Ｃ】
2019071003.tif 000007
【図３Ｄ】
2019071003.tif 000008
【図４Ａ】
2019071003.tif 000009
【図４Ｂ】
2019071003.tif 000010
【図５】
2019071003.tif 000011
【図６Ａ】
2019071003.tif 000012
【図６Ｂ】
2019071003.tif 000013
【図７】
2019071003.tif 000014
【図８】
2019071003.tif 000015
【図９】
2019071003.tif 000016
【図１０】
2019071003.tif 000017
【図１１】
2019071003.tif 000018