(57)【要約】【課題】プリンター本体とスキャナーを備えるプリンターにおいて、通常モードファームウェアの更新不良が発生した場合でも、簡易に且つ確実に復旧できるようにする。【解決手段】プリンター本体とスキャナーを備え、通常モードファームウェアとブートプログラムとを記憶するプリンターによるファームウェアの更新方法であって、プリンター本体とスキャナーとに対応するブートプログラムを起動し、いずれかのプリンター本体とスキャナーとの通常モードファームウェアの更新不良を検出した場合、プリンター本体とスキャナーとの動作モードを更新モードにし、ホストコンピューターから更新用通常モードファームウェアを受信し、ブートプログラムを実行して更新用通常モードファームウェアに更新し、ブートプログラムを終了する、一連の更新処理をプリンター本体とスキャナーとに対して順次実行する。【選択図】図２
2019139678.tif 000002
【特許請求の範囲】
【請求項１】
デバイスを複数備え、複数の前記デバイスのそれぞれに対応するファームウェアと更新プログラムとを記憶する印刷装置のファームウェアの更新方法であって、
複数の前記デバイスに対応する前記更新プログラムを起動し、いずれかの前記デバイスの前記ファームウェアの更新不良を検出した場合、全ての前記デバイスの動作モードを更新モードにし、１の前記デバイスについて、外部装置から更新用ファームウェアを受信し、前記更新プログラムを実行して前記ファームウェアを前記更新用ファームウェアに更新し、前記更新プログラムを終了する、一連の更新処理を全ての前記デバイスに対して順次実行する、
印刷装置のファームウェアの更新方法。
【請求項２】
複数の前記デバイスのうち、１の前記デバイスは、媒体に画像を印刷するための印刷用デバイスであり、他の前記デバイスは、前記印刷用デバイスが印刷した画像を読み取る読取用デバイスである、
請求項１に記載の印刷装置のファームウェアの更新方法。
【請求項３】
前記更新プログラムは、前記デバイスのそれぞれに対応して複数記憶されており、
電源のオンに伴って、前記更新プログラムを起動することを全ての前記デバイスに対してそれぞれ実行し、全ての前記デバイスの更新プログラムの実行終了後、電源をオフにする、
請求項１又は２に記載の印刷装置のファームウェアの更新方法。
【請求項４】
前記更新プログラムの実行により前記ファームウェアを前記更新用ファームウェアに更新した際、フラグが更新完了を示していない場合、誤り検出符号に基づき誤りを検出した場合、或いは、更新後のファームウェアのバージョンが異なる場合のいずれかの場合に、前記ファームウェアの更新不良として検出する、
請求項１から３のいずれか一項に記載の印刷装置のファームウェアの更新方法。
【請求項５】
複数のデバイスと、
複数の前記デバイスのそれぞれに対応するファームウェアと更新プログラムとを記憶する記憶部と、
複数の前記デバイスに対応する前記更新プログラムを前記記憶部から読み出して起動し、いずれかの前記デバイスの前記ファームウェアの更新不良を検出した場合、全ての前記デバイスの動作モードを更新モードにし、１の前記デバイスについて、外部装置から更新用ファームウェアを受信し、前記更新プログラムを実行して前記更新用ファームウェアに更新し、前記更新プログラムを終了する、一連の更新処理を全ての前記デバイスに対して順次実行する制御部と、を備える、
印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置のファームウェアの更新方法、及び印刷装置に関する。
【背景技術】
【０００２】
従来、プログラムの更新不良が発生したデバイスを復旧させる技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１９６７４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、複数のデバイスを備える印刷装置は、デバイスのそれぞれがファームウェアの更新を行うよう構成される場合がある。しかしながら、このような構成では、少なくともデバイスの数に対応した数だけ更新不良の発生態様が存在するため、デバイスの復旧が複雑化する懸念がある。
そこで、本発明は、複数のデバイスを備える印刷装置において、デバイスにファームウェアの更新不良が発生した場合でも、簡易に且つ確実にデバイスを復旧できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は、デバイスを複数備え、複数の前記デバイスのそれぞれに対応するファームウェアと更新プログラムとを記憶する印刷装置のファームウェアの更新方法であって、複数の前記デバイスに対応する前記更新プログラムを起動し、いずれかの前記デバイスの前記ファームウェアの更新不良を検出した場合、全ての前記デバイスの動作モードを更新モードにし、１の前記デバイスについて、外部装置から更新用ファームウェアを受信し、前記更新プログラムを実行して前記ファームウェアを前記更新用ファームウェアに更新し、前記更新プログラムを終了する、一連の更新処理を全ての前記デバイスに対して順次実行する。
本発明によれば、一連の更新処理を全てのデバイスに対して順次実行するため、複数のデバイスを備える印刷装置において、デバイスにファームウェアの更新不良が発生した場合でも、簡易に且つ確実にデバイスを復旧できる。
【０００６】
また、本発明は、複数の前記デバイスのうち、１の前記デバイスは、媒体に画像を印刷するための印刷用デバイスであり、他の前記デバイスは、前記印刷用デバイスが印刷した画像を読み取る読取用デバイスである。
本発明によれば、印刷用デバイス及び読取用デバイスのいずれかにファームウェアの更新不良が発生した場合でも簡易に且つ確実に復旧できるため、印刷装置は、適切に印刷と画像の読み取りとを行うことができる。
【０００７】
また、本発明は、前記更新プログラムは、前記デバイスのそれぞれに対応して複数記憶されており、電源のオンに伴って、前記更新プログラムを起動することを全ての前記デバイスに対してそれぞれ実行し、全ての前記デバイスの更新プログラムの実行終了後、電源をオフにする。
本発明によれば、電源がオンした際にファームウェアの更新不良を検出し、ファームウェアに更新不良がある場合には更新プログラムを実行して電源をオフにするため、ファームウェアの更新不良が発生した状態で各デバイスが起動することを防止できる。
【０００８】
また、本発明は、前記更新プログラムの実行により前記ファームウェアを前記更新用ファームウェアに更新した際、フラグが更新完了を示していない場合、誤り検出符号に基づき誤りを検出した場合、或いは、更新後のファームウェアのバージョンが異なる場合のいずれかの場合に、前記ファームウェアの更新不良として検出する。
本発明によれば、フラグが更新完了を示していない場合、誤り検出符号に基づき誤りを検出した場合、或いは更新後のファームウェアのバージョンが異なる場合のいずれかの場合に、ファームウェアの更新不良として検出するため、的確にファームウェアの更新不良を検出できる。
【０００９】
また、上記課題を解決するために、本発明は、複数のデバイスと、複数の前記デバイスのそれぞれに対応するファームウェアと更新プログラムとを記憶する記憶部と、複数の前記デバイスに対応する前記更新プログラムを前記記憶部から読み出して起動し、いずれかの前記デバイスの前記ファームウェアの更新不良を検出した場合、全ての前記デバイスの動作モードを更新モードにし、１の前記デバイスについて、外部装置から更新用ファームウェアを受信し、前記更新プログラムを実行して前記更新用ファームウェアに更新し、前記更新プログラムを終了する、一連の更新処理を全ての前記デバイスに対して順次実行する制御部と、を備える。
本発明によれば、一連の更新処理を全てのデバイスに対して順次実行するため、複数のデバイスを備える印刷装置において、デバイスにファームウェアの更新不良が発生した場合でも、簡易に且つ確実にデバイスを復旧できる。
【図面の簡単な説明】
【００１０】
【図１】プリンターの構成を示す図。
【図２】プリンターの動作を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明の好適な実施形態について、図面を用いて詳細に説明する。なお、以下に説明する実施形態は、特許請求の範囲に記載された本発明の内容を限定するものではない。また、以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００１２】
図１は、プリンター１（印刷装置）の構成を示す図である。
プリンター１は、ホストコンピューター２（外部装置）と通信可能に接続し、ホストコンピューター２と共に印刷システム３を構成する。プリンター１とホストコンピューター２との通信は、有線通信でも無線通信でもよいが、図１ではＵＳＢ（Universal Serial Bus）規格に従った有線通信を例示する。
【００１３】
プリンター１は、ホストコンピューター２から受信する画像データに基づいて、インクをジェット式で吐出することにより印刷媒体（媒体）に画像を印刷する装置である。特に、本実施形態のプリンター１は、比較的大型の印刷媒体に対して印刷を実行するラージフォーマットプリンター（ＬＦＰ）である。印刷媒体としては、例えば、上質紙や、キャスト紙、アート紙、コート紙、合成紙、ＰＥＴ（Polyethylene terephthalate）やＰＰ（Polypropylene）等から成るフィルム、布帛等の印刷媒体を採用できる。
【００１４】
ホストコンピューター２は、プリンター１を制御する制御装置であり、例えばデスクトップ型、ラップトップ型、或いはタブレット型のパーソナルコンピューターである。ホストコンピューター２は、プリンター１を制御するための専用のコンピューターでもよい。
【００１５】
プリンター１は、複数のデバイスを備える。図１では、プリンター１がプリンター本体１０（印刷用デバイス）とスキャナー２０（読取用デバイス）との２つのデバイスを備える構成を例示する。なお、プリンター１は、種々のデバイスをさらに備えもよい。
【００１６】
プリンター本体１０は、本体制御部１００（制御部）と、印刷部１０１と、本体通信部１０２と、デバイス通信部１０３とを備える。
【００１７】
本体制御部１００は、ＣＰＵ１００Ａ、ＲＯＭ１００Ｂ、及びＲＡＭ１００Ｃを備える。本体制御部１００は、ＣＰＵ１００ＡがＲＯＭ１００Ｂに記憶されたプログラムをＲＡＭ１００Ｃに読み出して処理を実行するように、ハードウェア及びソフトウェアの協働により処理を実行する。ＲＯＭ１００ＢとＲＡＭ１００Ｃとは、本発明の記憶部を構成する。
【００１８】
ＣＰＵ１００Ａは、演算処理を実行するプロセッサーであり、ＲＯＭ１００Ｂに記憶された制御プログラム等を読み出して実行することによりプリンター本体１０の各部を制御部する。
【００１９】
ＲＯＭ１００Ｂは、ＣＰＵ１００Ａが実行する制御プログラムの他、各種のデータを不揮発的に記憶する。ＲＯＭ１００Ｂは、ＣＰＵ１００Ａが実行可能な、ブートプログラム１０Ｂ１（起動プログラム）、更新専用モードファームウェア１０Ｂ２、及び通常モードファームウェア１０Ｂ３（ファームウェア）を不揮発的に記憶する。
ブートプログラム１０Ｂ１は、各種ブート処理を行うプログラムであり、更新専用モードファームウェア１０Ｂ２または通常モードファームウェア１０Ｂ３のいずれかを選択実行する。
更新専用モードファームウェア１０Ｂ２は、プリンター本体１０の動作モードが更新専用モード（更新モード）である場合にＣＰＵ１００Ａにより読み出されて実行される制御プログラムである。更新専用モードは、通常モードファームウェア１０Ｂ３を更新用の通常モードファームウェア１０Ｂ３（以下、「更新用通常モードファームウェア１０Ｂ３」という）（更新用ファームウェア）に書き換えるため専用の動作モード、すなわち通常モードファームウェア１０Ｂ３を更新するため専用の動作モードである。
通常モードファームウェア１０Ｂ３は、プリンター本体１０の動作モードが通常モードである場合にＣＰＵ１００Ａにより読み出される制御プログラムである。本実施形態では、通常モードは、プリンター本体１０の動作モードが更新専用モード以外の動作モードであり、印刷動作や、スキャナー２０との通信動作、ホストコンピューター２の制御に基づく動作等を実行可能な動作モードである。
ファームウェア更新プログラム（更新プログラム）は、通常モードファームウェア１０Ｂ３をＲＯＭ１００Ｂから消去する機能と、更新用通常モードファームウェア１０Ｂ３をＲＯＭ１００Ｂに書き込む機能と、を備える。ファームウェア更新プログラムは、更新専用モードファームウェア１０Ｂ２と、通常モードファームウェア１０Ｂ３と、のそれぞれに備わっている。
【００２０】
ＲＡＭ１００Ｃは、ＣＰＵ１００Ａのワークエリアとして機能し、各種データを一時的に記憶する。装置電源投入後、ブートプログラム１０Ｂ１によって更新専用モードファームウェア１０Ｂ２及び通常モードファームウェア１０Ｂ３はＲＯＭ１００ＢからＲＡＭ１００Ｃにコピーされる。そして、ＲＡＭ１００Ｃ上の更新専用モードファームウェア１０Ｂ２または通常モードファームウェア１０Ｂ３のいずれかが選択的に実行される。
【００２１】
印刷部１０１は、インクをインクジェット式で吐出する印刷ヘッド１０１Ａや、印刷ヘッド１０１Ａを搭載するキャリッジ１０１Ｂ、キャリッジ１０１Ｂを印刷媒体の搬送方向と交差する方向に走査させる走査モーター、印刷媒体を搬送方向に搬送する搬送モーター、印刷媒体を加熱するヒーター等の印刷に係る機構を備える。
【００２２】
本体通信部１０２は、本体制御部１００の制御で、所定の通信規格に従ってホストコンピューター２と通信する。本体通信部１０２は、コネクターやインターフェース回路等の通信に必要なハードウェアを備える。前述した通り、プリンター１とホストコンピューター２との通信は、ＵＳＢ規格に従った有線通信であるため、本体通信部１０２は、ＵＳＢ規格に従ったコネクターやインターフェース回路等により構成された基板を備える。
【００２３】
デバイス通信部１０３は、本体制御部１００の制御で、所定の通信規格に従ってスキャナー２０と通信する。本実施形態においてデバイス通信部１０３は、スキャナー２０とＵＳＢ規格に従って有線通信を行うためのコネクターやインターフェース回路等により構成された基板を備える。
【００２４】
スキャナー２０は、読取装置であり、本実施形態においてプリンター本体１０が印刷媒体に印刷した画像を光学的に読み取る。スキャナー２０は、スキャナー制御部２００と、スキャナー通信部２０１と、撮像部２０２とを備える。
【００２５】
スキャナー制御部２００は、ＣＰＵ２００Ａ、ＲＯＭ２００Ｂ、及び、ＲＡＭ２００Ｃを備える。スキャナー制御部２００は、ＣＰＵ２００ＡがＲＯＭ２００Ｂに記憶されたプログラムをＲＡＭ２００Ｃに読み出して処理を実行するように、ハードウェア及びソフトウェアの協働により処理を実行する。
【００２６】
ＣＰＵ２００Ａは、演算処理を実行するプロセッサーであり、ＲＯＭ２００Ｂに記憶された制御プログラム等を読み出して実行することによりスキャナー２０の各部を制御部する。
【００２７】
ＲＯＭ２００Ｂは、ＣＰＵ２００Ａが実行する制御プログラムの他、各種のデータを不揮発的に記憶する。ＲＯＭ２００Ｂは、ブートプログラム２０Ｂ１（起動プログラム）、更新専用モードファームウェア２０Ｂ２、及び通常モードファームウェア２０Ｂ３（ファームウェア）を不揮発的に記憶する。
ブートプログラム２０Ｂ１は、各種ブート処理を行うプログラムであり、更新専用モードファームウェア２０Ｂ２または通常モードファームウェア２０Ｂ３のいずれかを選択実行する。
更新専用モードファームウェア２０Ｂ２は、スキャナー２０の動作モードが更新専用モードである場合にＣＰＵ２００Ａにより読み出される制御プログラムである。ここでの更新専用モードは、通常モードファームウェア２０Ｂ３を更新用の通常モードファームウェア２０Ｂ３（以下、「更新用通常モードファームウェア２０Ｂ３」という）（更新用ファームウェア）に書き換えるための専用の動作モード、すなわち通常モードファームウェア２０Ｂ３を更新するため専用の動作モードである。
通常モードファームウェア１０Ｂ３は、スキャナー２０の動作モードが通常モードである場合にＣＰＵ２００Ａにより読み出される制御プログラムである。本実施形態では、通常モードは、スキャナー２０の動作モードが更新専用モード以外のモードであり、読み取り可能な動作モードである。
通常モードファームウェア２０Ｂ３をＲＯＭ１００Ｂから消去する機能と、更新用通常モードファームウェア２０Ｂ３をＲＯＭ１００Ｂに書き込む機能と、を備えるファームウェア更新プログラム（更新プログラム）は、更新専用モードファームウェア２０Ｂ２と、通常モードファームウェア２０Ｂ３と、のそれぞれに備わっている。
【００２８】
ＲＡＭ２００Ｃは、ＣＰＵ２００Ａのワークエリアとして機能し、各種データを一時的に記憶する。装置電源投入後、ブートプログラム２０Ｂ１によって更新専用モードファームウェア２０Ｂ２及び通常モードファームウェア２０Ｂ３はＲＯＭ１００ＢからＲＡＭ１００Ｃにコピーされる。そして、ＲＡＭ１００Ｃ上の更新専用モードファームウェア２０Ｂ２または通常モードファームウェア２０Ｂ３のいずれかが選択的に実行される。
【００２９】
スキャナー通信部２０１は、スキャナー制御部２００の制御で、所定の通信規格に従ってプリンター本体１０と通信する。本実施形態においてスキャナー通信部２０１は、プリンター本体１０とＵＳＢ規格に従って有線通信を行うためのコネクターやインターフェース回路等により構成された基板を備える。
【００３０】
撮像部２０２は、光源や、イメージセンサー、Ａ／Ｄ変換回路等の構成を備え、プリンター本体１０により印刷媒体に印刷された画像をイメージセンサーで読み取り、光電変換やＡ／Ｄ変換等を実行することでスキャン画像を示すデジタルデータを生成する。
【００３１】
図１のようにプリンター１は、プリンター本体１０とスキャナー２０との２つのデバイスを備えることで以下の機能を実行する。すなわち、プリンター本体１０は、印刷部１０１によって印刷媒体に画像を印刷する。スキャナー２０は、プリンター本体１０が印刷した画像をプリンター本体１０の制御に従って読み取る。読み取ったスキャン画像を示すデジタルデータは、種々の用途で活用される。
【００３２】
次に、通常モードファームウェア１０Ｂ３、２０Ｂ３の更新について説明する。
前述した通り、通常モードファームウェア１０Ｂ３、２０Ｂ３は、対応するデバイスの動作モードが更新専用モード以外である場合に、対応するＣＰＵによって読み出される制御プログラムである。通常モードファームウェア１０Ｂ３、２０Ｂ３は、更新されることで、機能の追加やプログラム修正等を目的としたバージョンアップが行われる。
【００３３】
プリンター１は、プリンター本体１０とスキャナー２０とが独立して対応する通常モードファームウェア１０Ｂ３、２０Ｂ３の更新可能に構成される。ここで、プリンター本体１０を代表して、通常モードファームウェア１０Ｂ３の更新方法を説明する。
【００３４】
プリンター本体１０の本体制御部１００は、通常モードファームウェア１０Ｂ３の更新の指示があると、ファームウェア更新プログラムを読み出し実行し、ＲＯＭ１００Ｂに書き込まれている通常モードファームウェア１０Ｂ３をＲＯＭ１００Ｂ上から消去する。次いで、本体制御部１００は、更新用通常モードファームウェア１０Ｂ３をホストコンピューター２から受信した、ＲＯＭ１００Ｂに更新用通常モードファームウェア１０Ｂ３を書き込む。
【００３５】
スキャナー２０は、プリンター本体１０と同様に、通常モードファームウェア２０Ｂ３を更新する。なお、スキャナー２０は、ホストコンピューター２からプリンター本体１０を介して、スキャナー専用の更新用通常モードファームウェア２０Ｂ３を受信する。
【００３６】
通常モードファームウェア１０Ｂ３、２０Ｂ３の更新を行う際、ホストコンピューター２は、プリンター本体専用の更新用通常モードファームウェア１０Ｂ３と、スキャナー専用の更新用通常モードファームウェア１０Ｂ３とを、セットでプリンター１に送信する。そして、プリンター本体１０は、プリンター本体専用の更新用通常モードファームウェア１０Ｂ３を受信して更新を行い、スキャナー２０は、スキャナー専用の更新用通常モードファームウェア２０Ｂ３を受信して更新を行う。このようにセットで送信するため、ホストコンピューター２は、プリンター１においてどのデバイスに更新が必要であるかといった監視が不要になる。
【００３７】
ところで、通常モードファームウェア１０Ｂ３、２０Ｂ３を含むファームウェアには、所定の要因で更新が強制的に中断されたり、誤ったデータとして書き込まれたりと、更新不良が発生することがある。ファームウェアに更新不良が発生すると、このファームウェアを読み出して実行するデバイスには、誤動作や動作停止等の動作不良が発生する。そのため、ファームウェアの更新不良が発生したデバイスには、ファームウェアの再更新等による復旧が必要となる。しかしながら、プリンター１のように複数のデバイスを備え、各デバイスが独立してファームウェアの更新を行う構成であると、プリンター１には、少なくともデバイスの数に対応した数だけ更新不良の発生態様が存在し、デバイスの復旧が複雑化してしまう懸念がある。
そこで、プリンター１は、以下の動作を実行することで、簡易に且つ確実にデバイスを復旧できる。
【００３８】
次に、プリンター１の動作について説明する。
図２は、プリンター１の動作を示すフローチャートである。図２において、フローチャートＦＡはプリンター本体１０の動作を示し、フローチャートＦＢはスキャナー２０の動作を示す。
【００３９】
以下の説明において、通常モードファームウェア１０Ｂ３と通常モードファームウェア２０Ｂ３とを区別することなく総称する場合、「通常モードファームウェアＢ３」という。
また、更新用通常モードファームウェア１０Ｂ３と更新用通常モードファームウェア２０Ｂ３とを区別することなく総称する場合、「更新用通常モードファームウェアＢ３」という。
また、ブートプログラム１０Ｂ１とブートプログラム２０Ｂ１とを区別することなく総称する場合、「ブートプログラムＢ１」という。
【００４０】
フローチャートＦＡを参照して、ユーザーの操作や再起動等によりプリンター１の電源がオンになると、プリンター本体１０は、電源がオンになる（ステップＳＡ１）。そして、電源のオンに伴って、プリンター本体１０の本体制御部１００は、ＲＯＭ１００Ｂからブートプログラム１０Ｂ１を読み出す（ステップＳＡ２）。この読み出しは、ブートプログラム１０Ｂ１の起動に相当する。
【００４１】
次いで、本体制御部１００は、ＲＯＭ１００Ｂが記憶する通常モードファームウェア１０Ｂ３に対して更新不良の検出を行う（ステップＳＡ３）。
【００４２】
フローチャートＦＢを参照して、ユーザーの操作や再起動等によりプリンター１の電源がオンになると、スキャナー２０は、プリンター本体１０と連動して電源がオンになる（ステップＳＢ１）。そして、スキャナー制御部２００は、ＲＯＭ２００Ｂが記憶するブートプログラム２０Ｂ１を読み出す（ステップＳＢ２）。
【００４３】
次いで、スキャナー制御部２００は、ＲＯＭ２００Ｂが記憶する通常モードファームウェア２０Ｂ３に対して更新不良の検出を行う（ステップＳＢ３）。
【００４４】
ここで、ステップＳＡ３及びステップＳＢ３における更新不良の検出方法について、複数例示して説明する。以下に示す例では、動作の主体を本体制御部１００として説明する。
【００４５】
［検出方法の例１］
本体制御部１００は、ＲＯＭ１００Ｂの所定の領域に記録されたフラグに基づいて、通常モードファームウェア１０Ｂ３の更新不良を検出する。本体制御部１００は、通常モードファームウェア１０Ｂ３の更新を開始する際に、ＲＯＭ１００Ｂの所定の領域に「１」の状態のフラグを記録する。そして、本体制御部１００は、通常モードファームウェア１０Ｂ３の更新が完了した場合に、「１」の状態のフラグを「０」の状態のフラグにする。本体制御部１００は、記録されているフラグが「１」の状態である場合、通常モードファームウェア１０Ｂ３に更新不良があると検出する。一方で、本体制御部１００は、記録されているフラグが「０」の状態である場合、通常モードファームウェア１０Ｂ３に更新不良がないと検出する。
【００４６】
［検出方法の例２］
本体制御部１００は、ＣＲＣ方式やチェックサム方式等に用いられる誤り検出符号に基づいて、通常モードファームウェア１０Ｂ３の更新不良を検出する。例えば、通常モードファームウェア１０Ｂ３は、所定の生成多項式により算出されたＣＲＣ符号（誤り検出符号）を含んでいる。本体制御部１００は、ＣＲＣ符号を含む通常モードファームウェア１０Ｂ３に対して、ＣＲＣ符号を算出した所定の生成多項式による除算を実行する。そして、本体制御部１００は、除算の結果、余りが０である場合、通常モードファームウェア１０Ｂ３に誤りがないと判定し、通常モードファームウェア１０Ｂ３に更新不良がないと検出する。また、本体制御部１００は、除算の結果、余りがある場合、通常モードファームウェア１０Ｂ３に誤りがあると判定し、通常モードファームウェア１０Ｂ３に更新不良があると検出する。
【００４７】
［検出方法の例３］
検出方法の例３は、上記例と異なり、プリンター本体１０が実行する検出方法である。
本体制御部１００は、通常モードファームウェア１０Ｂ３のバージョンを示す情報を、ＲＯＭ等から取得する。また、本体制御部１００は、コマンドを送信して、スキャナー２０から通常モードファームウェア２０Ｂ３のバージョンを示す情報を取得する。本体制御部１００は、適切なバージョンの組み合わせを示す情報が格納されているテーブルを参照して、取得したバージョンの組み合わせがテーブルと整合するか否かを判定する。本体制御部１００は、整合しない場合、通常モードファームウェア１０Ｂ３、及び通常モードファームウェア２０Ｂ３に更新不良があると検出し、整合する場合、通常モードファームウェア１０Ｂ３、及び通常モードファームウェア２０Ｂ３に更新不良がないと検出する。
【００４８】
このように、プリンター１は、フラグが更新完了を示していない場合、誤り検出符号に基づき誤りを検出した場合、或いは、更新後の通常モードファームウェアＢ３のバージョンが異なる場合に、通常モードファームウェアＢ３の更新不良として検出する。そのため、プリンター１は、的確に通常モードファームウェアＢ３の更新不良を検出できる。なお、プリンター１は、検出方法の例１から例３の全てを１の通常モードファームウェアＢ３に対して実行して更新不良を検出してもよく、いずれか一つの検出方法で更新不良を検出してもよい。
【００４９】
フローチャートＦＡを参照して、プリンター本体１０の本体制御部１００は、通常モードファームウェア１０Ｂ３に更新不良があるか否かを判別する（ステップＳＡ４）。
【００５０】
フローチャートＦＢを参照して、スキャナー２０のスキャナー制御部２００は、通常モードファームウェア２０Ｂ３に更新不良があるか否かを判別する（ステップＳＢ４）。スキャナー制御部２００は、通常モードファームウェア２０Ｂ３に更新不良があると判別した場合（ステップＳＢ４：ＹＥＳ）、更新不良があることを示す情報をＲＯＭ２００Ｂの所定領域に記録する（ステップＳＢ５）。ステップＳＢ５で記録される情報は、例えば「１」の状態のフラグである。一方で、スキャナー制御部２００は、通常モードファームウェア２０Ｂ３に更新不良がないと判別した場合（ステップＳＢ４：ＮＯ）、更新不良がないことを示す情報をＲＯＭ２００Ｂの所定領域に記録する（ステップＳＢ６）。ステップＳＢ６で記録される情報は、例えば「０」の状態のフラグである。
【００５１】
スキャナー制御部２００は、通常モードファームウェア２０Ｂ３の更新不良の検出結果をスキャナー通信部２０１によりプリンター本体１０に送信する（ステップＳＢ７）。
【００５２】
フローチャートＦＡを参照して、プリンター本体１０の本体制御部１００は、通常モードファームウェア１０Ｂ３に更新不良がないと判別した場合（ステップＳＡ４：ＮＯ）、スキャナー２０から通常モードファームウェア２０Ｂ３の更新不良の検出結果を受信したか否かを判別する（ステップＳＡ５）。
【００５３】
次いで、本体制御部１００は、スキャナー２０から更新不良の検出結果を受信したと判別した場合（ステップＳＡ５：ＹＥＳ）、スキャナー２０の通常モードファームウェア２０Ｂ３に更新不良があるか否かを判別する（ステップＳＡ６）。
【００５４】
ステップＳＡ６において、本体制御部１００は、ステップＳＢ７においてスキャナー２０から送信された検出結果が更新不良をあることを示す場合、肯定判別を行い、更新不良がないことを示す場合、否定判別を行う。本体制御部１００は、スキャナー２０の通常モードファームウェア２０Ｂ３に更新不良がないと判別した場合（ステップＳＡ６：ＮＯ）、デバイス通信部１０３により、スキャナー２０に通常モードで起動することを指示するコマンドを送信する（ステップＳＡ７）。そして、本体制御部１００は、ＣＰＵ１００Ａが通常モードファームウェア１０Ｂ３を読み出して実行し、通常モードで起動する（ステップＳＡ８）。そして、本体制御部１００は、対応する処理を実行する（ステップＳＡ９）。対応する処理とは、例えば、印刷の実行等の処理である。本体制御部１００は、プリンター１の電源をオフにする指示があったか否かを監視し（ステップＳＡ１０）、当該指示があった場合に電源をオフにする（ステップＳＡ１１）。
【００５５】
一方で、本体制御部１００は、スキャナー２０の通常モードファームウェア２０Ｂ３に更新不良があると判別した場合（ステップＳＡ６：ＹＥＳ）、デバイス通信部１０３により、スキャナー２０に更新専用モードで起動することを指示するコマンドを送信する（ステップＳＡ１２）。そして、本体制御部１００は、ＣＰＵ１００Ａが更新専用モードファームウェア１０Ｂ２を読み出して実行し、更新専用モードで起動する（ステップＳＡ１３）。なお、本体制御部１００は、ステップＳＡ４において、通常モードファームウェア１０Ｂ３に更新不良があると判別した場合（ステップＳＡ４：ＹＥＳ）、ステップＳＡ１２、及びステップＳＡ１３の処理を実行する。
【００５６】
フローチャートＦＢを参照して、スキャナー２０のスキャナー制御部２００は、プリンター本体１０から動作モードを指示するコマンドを受信したか否かを判別する（ステップＳＢ８）。スキャナー制御部２００は、このコマンドを受信したと判別した場合（ステップＳＢ８：ＹＥＳ）、受信したコマンドが、通常モードでの起動を指示するコマンドか、更新専用モードでの起動を指示するコマンドであるかを判別する（ステップＳＢ９）。例えば、スキャナー制御部２００は、コマンドの命令コードに基づいてステップＳＢ９の判別を行う。
【００５７】
スキャナー制御部２００は、受信したコマンドが通常モードでの起動を指示するコマンドであると判別した場合（ステップＳ９：「通常モード」）、ステップＳＢ５又はステップＳＢ６においてＲＯＭ２００Ｂに記録された情報が、更新不良があることを示す情報か否かを判別する（ステップＳＢ１０）。スキャナー制御部２００は、更新不良であることを示す情報と判別した場合（ステップＳＢ１０：ＹＥＳ）、エラー停止する（ステップＳＢ１１）。ステップＳＢ１０の肯定判別は、通常モードファームウェア２０Ｂ３に更新不良があるにも関わらず、プリンター本体１０が何かしらの要因で通常モードで起動するよう指示したことを示している。そこで、ステップＳＢ１０において肯定判別を行った場合、スキャナー制御部２００は、エラー停止し、誤動作することを防止する。
【００５８】
一方で、スキャナー制御部２００は、更新不良がないことを示す情報と判別した場合（ステップＳＢ１０：ＹＥＳ）、ＣＰＵ２００Ａが通常モードファームウェア２０Ｂ３を読み出して実行し、通常モードで起動にする（ステップＳＢ１２）。そして、スキャナー制御部２００は、対応する処理を実行する（ステップＳＢ１３）。対応する処理とは、例えば、読み取り等の処理である。
【００５９】
ステップＳＢ９の説明に戻り、スキャナー制御部２００は、受信したコマンドが更新専用モードでの起動を指示するコマンドであると判別した場合（ステップＳ９：「更新専用モード」）、ＣＰＵ１００Ａが更新専用モードファームウェア２０Ｂ２を読み出して実行し、更新専用モードで起動する（ステップＳＢ１４）。
【００６０】
フローチャートＦＡを参照して、プリンター本体１０の本体制御部１００は、ホストコンピューター２に更新用通常モードファームウェアＢ３の送信を要求する（ステップＳＡ１４）。
【００６１】
次いで、本体制御部１００は、ホストコンピューター２から、更新用通常モードファームウェアＢ３の受信が完了した否かを判別する（ステップＳＡ１５）。前述した通り、プリンター本体１０がホストコンピューター２から受信する更新用通常モードファームウェアＢ３は、プリンター本体１０用とスキャナー２０用との２つが含まれる。本体制御部１００は、更新用通常モードファームウェアＢ３の受信が完了したと判別した場合（ステップＳＡ１５：ＹＥＳ）、本体制御部１００は、デバイス通信部１０３により更新用通常モードファームウェア２０Ｂ３を、スキャナー２０に送信する（ステップＳＡ１６）。
【００６２】
フローチャートＦＢを参照し、スキャナー制御部２００は、プリンター本体１０を介して、更新用通常モードファームウェア２０Ｂ３の受信が完了した否かを判別する（ステップＳＢ１５）。スキャナー制御部２００は、更新用通常モードファームウェア２０Ｂ３の受信が完了したと判別した場合（ステップＳＢ１５：ＹＥＳ）、上述したように更新用通常モードファームウェア２０Ｂ３に更新する（ステップＳＢ１６）。
【００６３】
次いで、スキャナー制御部２００は、更新用通常モードファームウェア２０Ｂ３の更新が終了した否かを判別し（ステップＳＢ１７）、終了したと判別した場合（ステップＳＢ１７：ＹＥＳ）、更新が終了したことを示す情報をスキャナー通信部２０１によりプリンター本体１０に送信する（ステップＳＢ１８）。次いで、スキャナー制御部２００は、ファームウェア更新プログラムを終了する（ステップＳＢ１９）。そして、スキャナー制御部２００は、プリンター本体１０の電源のオフに伴って、スキャナー２０の電源をオフにする（ステップＳＢ２０）。
【００６４】
フローチャートＦＡを参照し、本体制御部１００は、スキャナー２０の通常モードファームウェア２０Ｂ３の更新が終了したか否かを判別する（ステップＳＡ１７）。本体制御部１００は、更新が終了したことを示す情報をデバイス通信部１０３によりスキャナー２０から受信した場合に、スキャナー２０の通常モードファームウェア２０Ｂ３の更新が終了したと判別する（ステップＳＡ１７：ＹＥＳ）。
【００６５】
スキャナー２０の通常モードファームウェア２０Ｂ３の更新が終了したと判別した場合（ステップＳＡ１７：ＹＥＳ）、本体制御部１００は、通常モードファームウェア１０Ｂ３を上述したように更新用通常モードファームウェア１０Ｂ３に更新する（ステップＳＡ１８）。本体制御部１００は、更新用通常モードファームウェア１０Ｂ３の更新が終了した否かを判別し（ステップＳＡ１９）、終了したと判別した場合（ステップＳＡ１９：ＹＥＳ）、ファームウェア更新プログラムを終了する（ステップＳＡ２０）。
【００６６】
次いで、プリンター１の電源をオフした後に自動で電源がオンになる設定を行い、プリンター１の電源をオフする（ステップＳＡ２１）。
【００６７】
このように、プリンター１は、ブートプログラム１０Ｂ１、２０Ｂ１を起動し、通常モードファームウェア１０Ｂ３、１０Ｂ３の少なくともいずれかに更新不良を検出した場合、プリンター本体１０とスキャナー２０との動作モードを更新専用モードにする。そして、プリンター１は、ホストコンピューター２から更新用通常モードファームウェアＢ３を受信し、ファームウェア更新プログラムを実行して更新用通常モードファームウェアＢ３に更新し、ファームウェア更新プログラムを終了する、一連の更新処理を、プリンター本体１０とスキャナー２０とに対して順次実行する。本実施形態では、プリンター１は、スキャナー２０、プリンター本体１０の順に更新処理を実行する。
この構成によれば、プリンター１は、少なくともいずれかの通常モードファームウェアＢ３に更新不良が発生しても、プリンター本体１０とスキャナー２０との両方について通常モードファームウェアＢ３を更新する。そのため、プリンター１は、プリンター本体１０及びスキャナー２０における更新不良の発生態様に応じて、復旧の処理フローを異ならせる必要がなく、また、復旧パターンも複数記憶しておく必要がない。したがって、簡易に且つ確実にプリンター本体１０及びスキャナー２０のうち更新不良が発生したデバイスを復旧できる。
【００６８】
また、プリンター本体１０及びスキャナー２０の一方或いは両方において更新不良が発生した場合でも、簡易に且つ確実に復旧できるため、プリンター本体１０とスキャナー２０とは、通常モードファームウェアＢ３の更新不良が発生した状態で起動することがない。したがって、プリンター１は、適切に印刷と画像の読み取りとを実行できる。
【００６９】
フローチャートＦＡを参照して、本体制御部１００は、自動で電源をオンにする設定であるか否かを判別し（ステップＳＡ２２）、この設定であると判別した場合（ステップＳＡ２２：ＹＥＳ）、プリンター１の電源を自動でオンにする。これに伴ってプリンター本体１０は、電源がオンになる（ステップＳＡ１）。そして、プリンター本体１０は、再度ステップＳＡ１から処理を実行する。また、プリンター本体１０に連動してスキャナー２０は、電源がオンになるため、再度ステップＳＢ１から処理を実行する。
【００７０】
このように、プリンター１は、電源のオンに伴って、ブートプログラムＢ１を起動することをプリンター本体１０及びスキャナー２０に対してそれぞれ実行し、プリンター本体１０及びスキャナー２０のファームウェア更新プログラムの実行終了後、電源をオフにする。
この構成によれば、プリンター１は、電源がオンした際に通常モードファームウェアＢ３の更新不良を検出する。そして、プリンター１は、通常モードファームウェアＢ３に更新不良がある場合、更新処理を実行し電源をオフにして再度電源をオンにする。したがって、更新不良が検出されなくなるまで、更新不良の検出、及び、更新処理が行われるため、プリンター１は、通常モードファームウェアＢ３の更新不良が発生した状態でプリンター本体１０及びスキャナー２０が起動してしまうことを防止できる。すなわち、プリンター１は、印刷及び画像の読み取りに動作不良が発生することを確実に防止できる。
【００７１】
以上、説明したように、プリンター１（印刷装置）は、プリンター本体１０（デバイス、印刷用デバイス）とスキャナー２０（デバイス、読取用デバイス）とを備える。そして、プリンター１は、プリンター本体１０とスキャナー２０とのそれぞれに対応する通常モードファームウェアＢ３（ファームウェア）とファームウェア更新プログラム（更新プログラム）とを記憶する。プリンター１は、プリンター本体１０とスキャナー２０とに対応するブートプログラムＢ１を起動し、プリンター本体１０及びスキャナー２０の少なくともいずれかに通常モードファームウェアＢ３の更新不良を検出した場合、プリンター本体１０及びスキャナー２０の動作モードを更新専用モード（更新モード）にする。プリンターは、ホストコンピューター２（外部装置）から更新用通常モードファームウェアＢ３（更新用ファームウェア）を受信し、ファームウェア更新プログラムを実行して更新用通常モードファームウェアＢ３に更新し、ファームウェア更新プログラムを終了する、一連の更新処理をスキャナー２０及びプリンター本体１０に対して順次実行する。
【００７２】
この構成によれば、一連の更新処理をプリンター本体１０及びスキャナー２０に対して順次実行するため、プリンター本体１０及びスキャナー２０を備えるプリンター１において、プリンター本体１０及びスキャナー２０の少なくともいずれかに通常モードファームウェアＢ３の更新不良が発生した場合でも、簡易に且つ確実にプリンター本体１０及びスキャナー２０の少なくともいずれかを復旧できる。
特に、簡易に且つ確実に復旧できるため、プリンター１は、適切に印刷と画像の読み取りとを行うことができる。
【００７３】
また、ブートプログラムＢ１は、プリンター本体１０及びスキャナー２０のそれぞれに対応して複数記憶されている。プリンター１は、電源のオンに伴って、ブートプログラムＢ１を起動することをプリンター本体１０及びスキャナー２０のそれぞれに順次実行し、プリンター本体１０及びスキャナー２０のファームウェア更新プログラムの実行終了後、電源をオフにする。
【００７４】
この構成によれば、プリンター１は、電源がオンした際に通常モードファームウェアＢ３の更新不良を検出する。そして、プリンター１は、通常モードファームウェアＢ３に更新不良がある場合、ブートプログラムＢ１を実行し電源をオフにして再度電源をオンにする。そのため、プリンター１は、更新不良が検出されなくなるまで、更新不良の検出、及び、更新処理が行う。これより、プリンター１は、通常モードファームウェアＢ３に更新不良が発生した状態でプリンター本体１０及びスキャナー２０が起動してしまうことを確実に防止できる。
【００７５】
また、プリンター１は、フラグが更新完了を示していない場合、誤り検出符号に基づき誤りを検出した場合、或いは、更新後の通常モードファームウェアＢ３のバージョンが異なる場合に、通常モードファームウェアＢ３の更新不良として検出する。
【００７６】
この構成によれば、フラグが更新完了を示していない場合、誤り検出符号に基づき誤りを検出した場合、或いは更新後のファームウェアのバージョンが異なる場合、通常モードファームウェアＢ３の更新不良として検出するため、的確に通常モードファームウェアＢ３の更新不良を検出できる。
【００７７】
なお、上述した実施形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
【００７８】
例えば、上述した実施形態では、プリンター１が備えるデバイスとしてプリンター本体１０とスキャナー２０とを例示した。上述した通り、プリンター１は、さらに種々のデバイスを備えてよい。この場合、プリンター１は、他のデバイスに更新処理に更新処理をした後、プリンター本体１０を順次実行していく。
【００７９】
また、例えば、上述したプリンター１の制御方法（ファームウェアの更新方法）が、プリンター１が備えるコンピューター、又は、プリンター１に接続される外部装置を用いて実現される場合、本発明を、当該方法を実現するためにコンピューターが実行するプログラム、このプログラムをコンピューターで読み取り可能に記録した記録媒体、或いは、このプログラムを伝送する伝送媒体の態様で構成することも可能である。
【００８０】
また、本体制御部１００、及びスキャナー制御部２００の機能を実現は、１のプロセッサーにより実現する場合を例示したが、複数のプロセッサー、又は、半導体チップにより実現してもよい。
【００８１】
また、例えば、図２の処理単位は、処理を理解容易にするために、主な処理内容に応じて分割したものであり、処理単位の分割の仕方や名称によって、本発明が限定されることはない。処理内容に応じて、さらに多くの処理単位に分割してもよいし、１つの処理単位がさらに多くの処理を含むように分割してもよい。また、その処理の順番は、本発明の趣旨に支障のない範囲で適宜に入れ替えてもよい。
【００８２】
また、図１に示した各機能部は機能的構成を示すものであって、具体的な実装形態は特に限定されない。つまり、必ずしも各機能部に個別に対応するハードウェアが実装される必要はなく、一つのプロセッサーがプログラムを実行することで複数の機能部の機能を実現する構成とすることも勿論可能である。また、上述した実施形態においてソフトウェアで実現される機能の一部をハードウェアとしてもよく、或いは、ハードウェアで実現される機能の一部をソフトウェアで実現してもよい。その他、プリンター１の他の各部の具体的な細部構成についても、本発明の趣旨を逸脱しない範囲で任意に変更可能である。
【００８３】
また、本発明の印刷装置は、インクジェット形式のプリンター１に限定されない。印刷装置は、複数のデバイスを備え各デバイスが独立してファームウェアの更新を行う印刷装置であれば、いずれの印刷形式を採用できる。
【符号の説明】
【００８４】
１…プリンター（印刷装置）、２…ホストコンピューター（外部装置）、１０…プリンター本体（デバイス、印刷用デバイス）、１０Ｂ３、２０Ｂ３、Ｂ１…通常モードファームウェア（ファームウェア）、１０Ｂ３、２０Ｂ３、Ｂ３…更新用通常モードファームウェア（更新用ファームウェア）、２０…スキャナー（デバイス、読取用デバイス）、１００…本体制御部（制御部）。
【図１】
2019139678.tif 000003
【図２】
2019139678.tif 000004