(57)【要約】【課題】ユーザの使い慣れた仕様でプリンタを動作させるのに好適なプリンタ動作制御方法を提供する。【解決手段】プリンタを動作させるファームウェアのバージョンを指定するバージョン指定ステップと、指定されたバージョンのファーウェアによりプリンタが動作するよう、該プリンタが有する複数バージョンのファームウェアの中から該指定されたバージョンのファームウェアを呼び出して該プリンタの主記憶メモリにロードするファームウェアロードステップとを含むプリンタ動作制御方法を提供する。【選択図】図６
2009294894.tif 000002
【特許請求の範囲】
【請求項１】
プリンタの動作を制御するためのプリンタ動作制御方法であって、
前記プリンタを動作させるファームウェアのバージョンを指定するバージョン指定ステップと、
前記指定されたバージョンのファーウェアにより前記プリンタが動作するよう、該プリンタが有する複数バージョンのファームウェアの中から該指定されたバージョンのファームウェアを呼び出して該プリンタの主記憶メモリにロードするファームウェアロードステップと
を含むプリンタ動作制御方法。
【請求項２】
前記ファームウェアロードステップにおいて、前記指定されたバージョンのファームウェアを構成するコンポーネント群のうち、
所定の条件を満たす処理に対応するコンポーネントについては、前記複数バージョンのファームウェアの中から最新バージョンのファームウェアに対応するコンポーネントを前記主記憶メモリにロードし、
前記所定の条件を満たさない処理に対応するコンポーネントについては、前記複数バージョンのファームウェアの中から前記指定されたバージョンのファーウェアに対応するコンポーネントを前記主記憶メモリにロードする、請求項１に記載のプリンタ動作制御方法。
【請求項３】
前記所定の条件を満たす処理とは、前記ファームウェアのバージョンアップに伴って不具合修正された処理である、請求項２に記載のプリンタ動作制御方法。
【請求項４】
前記プリンタに接続された端末装置が印字データを作成する印字データ作成ステップをさらに含み、
前記バージョン指定ステップにおいて、前記端末装置は前記プリンタに前記印字データを送信し、
前記ファームウェアロードステップにおいて、前記プリンタは前記印字データに基づいて前記ファームウェアのロード処理を行う、請求項１から請求項３の何れかに記載のプリンタ動作制御方法。
【請求項５】
前記印字データ作成ステップにおいて、前記印字データは前記端末装置が有する前記プリンタ用のドライバにより前記ドライバのバージョン情報が埋め込まれており、
前記ファームウェアロードステップにおいて、前記プリンタは前記バージョン情報に従って前記ファームウェアのロード処理を行う、請求項４に記載のプリンタ動作制御方法。
【請求項６】
複数バージョンのファームウェアを格納するファームウェア格納手段と、
前記ファームウェアがロードされる主記憶メモリと、
外部機器から所定の情報を受信する受信手段と、
前記複数バージョンのファームウェアの中から前記所定の情報に応じたバージョンのファームウェアを呼び出して前記主記憶メモリにロードするファームウェアロード手段と
を備えたことを特徴とするプリンタ。
【請求項７】
前記ファームウェアは、前記プリンタの各処理を実行するためのコンポーネントが集められたコンポーネント群で構成されており、
前記ファームウェアロード手段は、
所定の条件を満たす処理に対応するコンポーネントについては、前記複数バージョンのファームウェアの中から最新バージョンのファームウェアに対応するコンポーネントを前記主記憶メモリにロードし、
前記所定の条件を満たさない処理に対応するコンポーネントについては、前記複数バージョンのファームウェアの中から前記指定されたバージョンのファーウェアに対応するコンポーネントを前記主記憶メモリにロードすることを特徴とする請求項６に記載のプリンタ。
【請求項８】
前記複数バージョンのファームウェアの各々をコンポーネント単位で管理する管理データベースをさらに備え、
前記ファームウェアロード手段は、前記管理データベースに従って前記主記憶メモリにロードする前記コンポーネントを決定することを特徴とする請求項７に記載のプリンタ。
【請求項９】
前記所定の条件を満たす処理とは、前記ファームウェアのバージョンアップに伴って不具合修正された処理であることを特徴とする請求項７または請求項８の何れかに記載のプリンタ。
【請求項１０】
請求項６から請求項９の何れかに記載のプリンタと、前記プリンタに接続された端末装置とを有するプリンタシステムであって、
前記端末装置は、
前記所定の情報を生成する情報生成手段と、
前記生成された情報を前記プリンタに送信する情報送信手段と
を備えたことを特徴とするプリンタシステム。
【請求項１１】
前記端末装置は、
印字データを作成する印字データ作成と、
前記作成された印字データに前記所定の情報を埋め込む情報埋込手段と
をさらに備え、前記情報送信手段により、前記所定の情報が埋め込まれた印字データを前記プリンタに送信することを特徴とする請求項１０に記載のプリンタシステム。
【請求項１２】
前記情報埋込手段が前記プリンタ用のドライバであり、
前記所定の情報が前記ドライバのバージョン情報であることを特徴とする請求項１１に記載のプリンタシステム。
【請求項１３】
複数バージョンのファームウェアを格納するファームウェア格納手段と、
前記ファームウェアがロードされる主記憶メモリと、
前記ファームウェアのバージョンを指定するバージョン指定手段と、
前記複数バージョンのファームウェアの中から前記バージョン指定手段により指定されたバージョンのファームウェアを呼び出して前記主記憶メモリにロードするファームウェアロード手段と
を備えたことを特徴とするプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、印字処理を行うプリンタ、該プリンタを備えたプリンタシステム、および該プリンタの動作を制御するためのプリンタ動作制御方法に関連し、詳しくは、ユーザの使い慣れた仕様で動作するのに好適なプリンタおよびプリンタシステム、さらには、ユーザの使い慣れた仕様でプリンタを動作させるのに好適なプリンタ動作制御方法に関する。
【背景技術】
【０００２】
ＰＣ（Personal Computer）用の周辺機器、例えばプリンタを製造開発するプリンタメーカは、プリンタの仕様変更や不具合修正等を行うためバージョンアップ版のファームウェアを作成し、インターネット等を通じて配布している。また、新規に製造するプリンタには、製造時点で最新となるバージョンのファームウェアをインストールして出荷している。また、ユーザからプリンタの修理を依頼された場合には、該プリンタを修理すると共に最新バージョンのファームウェアをインストールしてユーザに返納する。
【０００３】
しかし、ファームウェアが最新バージョンにアップグレードされた場合、ＰＣ等のホスト端末のＯＳ（Operating System）やアプリケーションと、アップグレード後のファームウェアとの相性が悪いため、プリンタメーカ側で想定していない不具合が生じることがある。この場合、ファームウェアを元のバージョンにダウングレードすることが望まれる。このような問題を解決する技術の一例が特許文献１に開示されている。特許文献１には、ファームウェアを必要に応じてダウングレードして各種処理を実行する電子機器が記載されている。
【０００４】
具体的には、特許文献１に記載の電子機器は、過去にインストールされた全てのファームウェアを保持している。そして、処理を実行する際にそれらのファームウェアの中からエラー数の最も少ないファームウェアを最適なファームウェアと判定し、当該ファームウェアを用いて処理を実行する。例えばエラー数が最新バージョンよりも旧バージョンのファームウェアの方が少ないと判定した場合には、当該旧バージョン、すなわちダウングレードされたファームウェアで処理を実行する。
【特許文献１】特開２００６−９９３９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上記のような不具合解消を目的とするケース以外にも、ファームウェアの適切なバージョンへのダウングレードが望まれることがある。以下、そのようなケースを例示する。
【０００６】
例えば業務で利用していたプリンタが故障したため、ユーザが同機種のプリンタを再度購入、あるいはプリンタメーカに修理依頼したとする。そして、新規に購入されたプリンタ、または修理されたプリンタには、以前利用していたプリンタよりも新しいバージョンのファームウェアがインストールされており、バージョン間で仕様変更が加えられているものとする。ここでの仕様変更は、例えばプリンタに設けられた電源、データ伝送、エラー等を報知するＬＥＤ（Light Emitting Diode）の色や点滅間隔等に関する仕様変更である。
【０００７】
上記のような仕様変更はユーザの利便性を鑑みたものであり、一般にはユーザに受け入れられる。一方、ユーザは今までと異なる形態で点灯するＬＥＤを見てプリンタの状態を把握する必要がある。このため、ユーザによっては新規購入または修理後のプリンタを却って使い難いと感じることもある。このようなユーザには、ファームウェアのバージョンを使い慣れているバージョン（すなわち以前のプリンタのファームウェアのバージョン）にダウングレードすることが望ましい。
【０００８】
全てのユーザの要求を満たすにはプリンタメーカが顧客管理を行い、販売または修理するプリンタ１つ１つにユーザが所望するバージョンのファームウェアをインストールする措置が考えられる。しかし、このような措置はプリンタメーカにとって負担がかかるうえ、販売および修理コストが上昇する懸念もある。このため、プリンタメーカにもユーザにも不都合である。そこで、例えば特許文献１のようにファームウェアのバージョンを装置サイドで自動的にダウングレードする仕組みが望まれる。
【０００９】
ところが、特許文献１の技術をプリンタに適用したとしても、ファームウェアのバージョンはプリンタにとって最適と判定されるバージョンとなるだけであり、必ずしもユーザが使い慣れたバージョンにならないといった不都合がある。
【００１０】
本発明は上記の事情に鑑みてなされたものであり、その目的とするところは、ユーザの使い慣れた仕様でプリンタを動作させるのに好適なプリンタ動作制御方法を提供することにある。またユーザの使い慣れた仕様で動作するのに好適なプリンタ、および該プリンタを備えたプリンタシステムを提供することにある。
【課題を解決するための手段】
【００１１】
上記の課題を解決する本発明の一形態に係る、プリンタの動作を制御するためのプリンタ動作制御方法は、プリンタを動作させるファームウェアのバージョンを指定するバージョン指定ステップと、指定されたバージョンのファーウェアによりプリンタが動作するよう、該プリンタが有する複数バージョンのファームウェアの中から該指定されたバージョンのファームウェアを呼び出して該プリンタの主記憶メモリにロードするファームウェアロードステップとを含む方法である。
【００１２】
このような方法によれば、ユーザは所望のバージョンを指定することにより、プリンタを使い慣れた仕様で動作させることができる。
【００１３】
またファームウェアロードステップにおいて、指定されたバージョンのファームウェアを構成するコンポーネント群のうち、所定の条件を満たす処理に対応するコンポーネントについては、複数バージョンのファームウェアの中から最新バージョンのファームウェアに対応するコンポーネントを主記憶メモリにロードし、所定の条件を満たさない処理に対応するコンポーネントについては、複数バージョンのファームウェアの中から指定されたバージョンのファーウェアに対応するコンポーネントを主記憶メモリにロードするようにしてもよい。
【００１４】
ここで、所定の条件を満たす処理とは、例えばファームウェアのバージョンアップに伴って不具合修正された処理である。
【００１５】
上記プリンタ動作制御方法は、プリンタに接続された端末装置が印字データを作成する印字データ作成ステップをさらに含む方法であってもよい。このような方法では、バージョン指定ステップにおいて端末装置がプリンタに印字データを送信し、ファームウェアロードステップにおいてプリンタが印字データに基づいてファームウェアのロード処理を行うこととなる。
【００１６】
また印字データ作成ステップにおいて、印字データは、例えば端末装置が有するプリンタ用のドライバによりそのバージョン情報が埋め込まれたものとしてもよい。この場合、ファームウェアロードステップにおいてプリンタはバージョン情報に従ってファームウェアのロード処理を行うこととなる。
【００１７】
また、上記の課題を解決する本発明の一形態に係るプリンタは、複数バージョンのファームウェアを格納するファームウェア格納手段と、ファームウェアがロードされる主記憶メモリと、外部機器から所定の情報を受信する受信手段と、複数バージョンのファームウェアの中から所定の情報に応じたバージョンのファームウェアを呼び出して主記憶メモリにロードするファームウェアロード手段とを備えたことを特徴としたものである。
【００１８】
このように構成されたプリンタによれば、ユーザは外部機器を使用することにより、該プリンタを使い慣れた仕様で動作させることができる。
【００１９】
ここで、ファームウェアは、例えばプリンタの各処理を実行するためのコンポーネントが集められたコンポーネント群で構成されたものとしてもよい。この場合、ファームウェアロード手段は、所定の条件を満たす処理に対応するコンポーネントについては、複数バージョンのファームウェアの中から最新バージョンのファームウェアに対応するコンポーネントを主記憶メモリにロードし、所定の条件を満たさない処理に対応するコンポーネントについては、複数バージョンのファームウェアの中から指定されたバージョンのファーウェアに対応するコンポーネントを主記憶メモリにロードすることとなる。
【００２０】
また上記プリンタは、複数バージョンのファームウェアの各々をコンポーネント単位で管理する管理データベースをさらに備えた構成としてもよい。この場合、ファームウェアロード手段は、管理データベースに従って主記憶メモリにロードするコンポーネントを決定する。
【００２１】
上述した所定の条件を満たす処理とは、例えばファームウェアのバージョンアップに伴って不具合修正された処理である。
【００２２】
また、上記の課題を解決する本発明の一形態に係るプリンタシステムは、上述した何れかに記載のプリンタと、該プリンタに接続された端末装置とを有するシステムである。そして、当該プリンタシステムの端末装置は、所定の情報を生成する情報生成手段と、該生成された情報をプリンタに送信する情報送信手段とを備えたことを特徴としたものである。
【００２３】
上記プリンタシステムに備えられる端末装置は、印字データを作成する印字データ作成と、該作成された印字データに所定の情報を埋め込む情報埋込手段とをさらに備えた構成としてもよい。このように構成された端末装置は、情報送信手段により所定の情報が埋め込まれた印字データをプリンタに送信することができる。
【００２４】
上記端末装置が備える情報埋込手段は、例えばプリンタ用のドライバである。この場合、上記所定の情報はドライバのバージョン情報としてもよい。
【００２５】
また、上記の課題を解決する本発明の別の形態に係るプリンタは、複数バージョンのファームウェアを格納するファームウェア格納手段と、ファームウェアがロードされる主記憶メモリと、ファームウェアのバージョンを指定するバージョン指定手段と、複数バージョンのファームウェアの中からバージョン指定手段により指定されたバージョンのファームウェアを呼び出して主記憶メモリにロードするファームウェアロード手段とを備えたことを特徴としたものである。
【発明の効果】
【００２６】
本発明のプリンタ動作制御方法、プリンタ、およびプリンタシステムによれば、ユーザは使い慣れた仕様でプリンタを動作させることができる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照して、本発明の実施の形態のプリンタシステムについて説明する。
【００２８】
図１に、本発明の実施の形態のプリンタシステム１の概略構成図を示す。図１に示されるように、プリンタシステム１は、ＰＣ１００とプリンタ２００で構成されている。
【００２９】
ＰＣ１００は、ＰＣ１００全体の統括的な制御を司るＣＰＵ（Central Processing Unit）１１０を備える。また、ＯＳ１３０、アプリケーション１４０、プリンタドライバ１５０等を記憶したＨＤＤ（Hard Disk Drive）１２０、ＤＲＡＭ（Dynamic Random Access Memory）１７０、およびポートドライバ１６０を備える。
【００３０】
ＯＳ１３０は、ＰＣ１００の電源が投入されるとＤＲＡＭ１７０等の主記憶メモリに常駐する。そして、ＣＰＵ１１０と連係動作して各種アプリケーションが利用する共通の機能を提供する。
【００３１】
アプリケーション１４０は、ＯＳ１３０によって提供されるアプリケーション実行環境上で動作する。アプリケーション１４０は、例えば印刷機能が実装されたドキュメント作成や表計算等のソフトウェア、またはプリンタ２００用の設定ユーティリティ等のＧＵＩ（Graphical User Interface）環境を提供するアプリケーションである。後者の場合、アプリケーション１４０は、プリンタドライバ１５０と単一のプログラムとして構成されてもよい。
【００３２】
プリンタドライバ１５０は、ＯＳ１３０−プリンタ２００間のインタフェースとして機能するプリンタ２００用のデバイスドライバである。プリンタドライバ１５０は、ＯＳ１３０から印字対象のデータを受け取ると、該データをＯＳ１３０の依頼に従って所定のプロトコルに準拠した形式に加工してポートドライバ１６０に渡す。
【００３３】
プリンタドライバ１５０は、自己のバージョン情報（ドライババージョン１５２）を有する。また上位互換性がある。なお、プリンタメーカは、プリンタ２００のファームウェアをバージョンアップする毎にそれに対応するバージョンのドライバもリリースする。すなわち、プリンタ２００の全てのバージョンのファームウェアには、１：１で対応するプリンタドライバ１５０が必ず存在する。説明の便宜上、対応するプリンタドライバ１５０とファームウェアのバージョンナンバは一致するものとする。また、プリンタドライバ１５０のバージョンには大文字「ＶＥＲ」を、ファームウェアのバージョンには小文字「ｖｅｒ」をそれぞれ付す。このため本実施形態では、プリンタドライバ１５０のバージョンＶＥＲ１．０、１．１、１．２・・・はそれぞれ、プリンタ２００のファームウェアのバージョンｖｅｒ１．０、１．１、１．２・・・に対応する。
【００３４】
ポートドライバ１６０は、ＵＳＢ（Universal Serial Bus）規格やＩｒＤＡ規格に準拠した通信インタフェースであり、ＵＳＢケーブル３００を介して、または赤外線通信によりプリンタ２００との間でデータ伝送を行う。ポートドライバ１６０は、プリンタドライバ１５０から受け取った印字データをプリンタ２００に転送する役割を果たす。
【００３５】
図２に、アプリケーション１４０が印刷操作を受け付けたときにＰＣ１００で実行される印字データ作成処理のフローチャートを示す。また、図３に、図２の印字データ作成処理で作成される印字データの構造図を示す。図３においては、印字データが８ｂｉｔで表現されている。
【００３６】
アプリケーション１４０（例えばドキュメント作成ソフトウェア）上でユーザが編集中のドキュメントを印字するよう操作すると、ＯＳ１３０は、アプリケーション１４０からドキュメントのデータを受け取り、該ドキュメントのデータを印字用制御データと共にプリンタドライバ１５０に渡して印字データの生成を依頼する（ステップ１、以下、明細書および図面においてステップを「Ｓ」と略記する）。なお、ここでいう印字用制御データとは、印字ウィザード等で設定される内容に従って作成されるデータである。印字ウィザードで設定可能な項目は、例えば印字モードや、印字濃度、排紙モード、用紙サイズ、マージン量等の周知の項目である。
【００３７】
プリンタドライバ１５０は、ＯＳ１３０から受け取ったドキュメントデータおよび印字用制御データに従って印字データを作成する（Ｓ２）。ここで作成される印字データの実体は、図３に示されるように、フレームヘッダに印字用制御データを、データフィールドにラスタラインデータを有する、ＳＯＦ（Start Of Frame）５１０とＥＯＦ（End Of Frame）５４０により区切られたフレーム５００である。フレーム５００は、アプリケーション１４０から送られるドキュメントのデータサイズに応じた数だけ作成される。
【００３８】
詳細には、Ｓ２の処理においてプリンタドライバ１５０は、フレーム５００のフレームヘッダに自己のドライババージョン１５２および印字用制御データに含まれる設定情報（印字モード情報５２０、印字濃度情報５２２、排紙モード情報５２４、用紙サイズ情報５２６、左マージン量５２８等）を埋め込む。また、ドキュメントデータを加工してラスタラインデータ５３０を作成し、フレーム５００のデータフィールドに埋め込む。これにより、図３に示される構造を有したフレーム５００が作成される。プリンタドライバ１５０は、作成したフレーム５００をポートドライバ１６０に渡す。
【００３９】
ポートドライバ１６０は、受け取ったフレーム５００を所定の通信プロトコル（ＵＳＢやＩｒＤＡ等）に準拠した形式に加工してプリンタ２００に転送する（Ｓ３）。図３の印字データ作成処理のフローチャートは、プリンタドライバ１５０により作成された全てのフレーム５００（フレーム群）がプリンタ２００に転送された時点で終了する。
【００４０】
図４に、プリンタ２００の構成をブロック図で示す。プリンタ２００は、携帯型の感熱式プリンタである。図４に示されるように、プリンタ２００は、プリンタ２００全体の統括的な制御を司るＣＰＵ２１０を備える。ＣＰＵ２１０は、外部バス等のデータ伝送路を介して各種構成要素が接続される。そして、各構成要素と信号のやり取りを行うことによりプリンタ２００の各種機能を実現する。ＣＰＵ２１０に接続される構成要素には、赤外線インタフェース２２２、ＵＳＢインタフェース２２４、フラッシュＲＯＭ（Read Only Memory）２３２、ＤＲＡＭ２３４、マスクＲＯＭ２３６、用紙センサ２４２、モータドライバ２４４、モータ２４６、Ａ／Ｄコンバータ２４８、サーマルヘッド２５０、ＬＥＤ（Light Emitting Diode）２６２、２６４、２６６、および電源制御回路２７２がある。電源制御回路２７２は、バッテリ２７４、またはＡＣアダプタ入力２７６に接続されるＡＣアダプタからの入力電力を変換して駆動電圧を得る。プリンタ２００を構成する各構成要素は、ここで得られた駆動電圧により動作する。
【００４１】
フラッシュＲＯＭ２３２には、バージョンがそれぞれ異なる複数のファームウェアファイルと、該複数のファームウェアファイルを管理する処理ＤＢ（Data Base）２３２ａが格納されている。各ファームウェアファイルは、例えば、プリンタ２００の各処理を行うためのコンポーネントが複数集められたコンポーネント群で構成されている。
【００４２】
図５に、処理ＤＢ２３２ａのデータ構造を概念的に示す。処理ＤＢ２３２ａは、各バージョンのファームウェアファイルをコンポーネント単位（別の言い方をするとプリンタ２００の処理単位（図５中の処理ナンバ１、２、３、４・・・））で管理している。例えばバージョンｖｅｒ１．０のファームウェアファイル（以下、「ファームウェアファイルｖｅｒ１．０」と記す。他のファームウェアファイルも同様に記す。）は、コンポーネント１Ａ、コンポーネント２Ａ、コンポーネント３Ａ・・・に分けて管理されている。また処理ＤＢ２３２ａは、各処理ナンバの処理について不具合修正がなされているか否かをＣＰＵ２１０が把握できるように各コンポーネントを管理している。なお、図５においては、不具合修正された処理が「Ｙｅｓ」、不具合修正されていない処理が「Ｎｏ」で表現されている。
【００４３】
また図５中の「コンポーネント」に続くナンバは、当該コンポーネントがそのナンバに対応する処理を実行することを意味する。例えばコンポーネント１Ａは、処理ナンバ１の処理を実行する。また、該ナンバに続くアルファベットは、コンポーネントが改変された回数を示すために便宜上付されている。「Ａ」、「Ｂ」、「Ｃ」はそれぞれ、そのアルファベットが付されたコンポーネントが０回、１回、２回改変されたことを示す。上記事項によれば、例えばコンポーネント１Ｃは、仕様変更等が２回行われた処理ナンバ１の処理を実行するコンポーネントであることが分かる。
【００４４】
図５に示される処理ナンバの具体的処理例を示す。例えば処理ナンバ３の処理は、バッテリ２７４の急速充電時における電圧測定処理である。バージョンｖｅｒ１．１のファームウェア、すなわちコンポーネント３Ａは、電圧を５回測定しその平均値を測定電圧とするように構成されている。しかしこれでは測定精度が低いという不具合があるため、バージョンｖｅｒ２．０のファームウェア、すなわちコンポーネント３Ｂでは電圧の測定回数を３２回に増やす修正が加えられている。また、処理ナンバ４の処理は、通信エラー発生時のＬＥＤ発光処理である。バージョンｖｅｒ１．１のファームウェアには処理ナンバ４の処理に対応するコンポーネントが存在しない。このため、バージョンｖｅｒ１．１のファームウェアでは通信エラーが発生してもＬＥＤ２６６は発光しない。一方、バージョンｖｅｒ２．０のファームウェアにはコンポーネント４Ａが追加され、通信が０．５秒以上中断するとＬＥＤ２６６がオレンジ色で点滅するように仕様が追加されている。
【００４５】
ＣＰＵ２１０は、プリンタ２００の電源が投入されると複数のファームウェアファイルの中から最新バージョンのファームウェアファイル（すなわちコンポーネント１Ｃ、２Ｂ、３Ｂ、４Ａ・・・）を呼び出してＤＲＡＭ２３４にロードし、各コンポーネントを適宜読み込んでプリンタ２００を動作させる。
【００４６】
次に、印字処理時のプリンタ２００の動作について説明する。赤外線インタフェース２２２（またはＵＳＢインタフェース２２４）は、ＰＣ１００から転送されたフレーム５００を受信すると、該フレーム５００を所定のプロトコルに準拠した形式に加工してＣＰＵ２１０に渡す。ＣＰＵ２１０は、受け取ったフレーム５００を必要に応じてフラッシュＲＯＭ２３２やＤＲＡＭ２３４に格納し、該フレーム５００に基づいて印字処理を実行する。
【００４７】
ＣＰＵ２１０は、フレーム５００を格納すると先ず、フレームヘッダに埋め込まれたドライババージョン１５２を読み込み、ＤＲＡＭ２３４にロードされるコンポーネントを必要に応じて変更する。なおこれについては、後述のファームウェア設定処理において詳細に説明する。
【００４８】
ＣＰＵ２１０は続いて、用紙センサ２４２の出力を監視してプリンタ２００の搬送路上に用紙（感熱紙）がセットされているか否かを判定する。そして、用紙がセットされていると判定した場合には、モータドライバ２４４に所定の制御信号を送信する。モータドライバ２４４は、受信した所定の制御信号に応じてモータ２４６を駆動する。これにより、プリンタ２００の搬送路に備えられた搬送ローラ（不図示）が回転し、用紙が該搬送路を搬送される。
【００４９】
ＣＰＵ２１０は用紙の搬送制御とともに、マスクＲＯＭ２３６に格納されたフォントデータを用いてフレームヘッダの設定情報およびデータフィールドのラスタラインデータ５３０に応じたデータ信号、クロック信号、ストローブ信号等を生成し、サーマルヘッド２５０に出力する。サーマルヘッド２５０は、入力されるデータ信号、クロック信号、およびストローブ信号に基づいて駆動するとともに、サーミスタ電圧、ヘッド電圧等をＡ／Ｄコンバータ２４８に出力する。これらの電圧信号は、Ａ／Ｄコンバータ２４８によりコンバートされた後、ＣＰＵ２１０の所定のポートに入力される。ＣＰＵ２１０は、当該所定のポートに入力された信号に基づいてサーマルヘッド２５０に対する印加電圧制御を行う。これにより、アプリケーション１４０のドキュメントデータに応じた印字内容がサーマルヘッド２５０により用紙に熱転写される。印字内容が転写された用紙がプリンタ２００から排紙されると、一連の印字処理が完了する。
【００５０】
プリンタ２００が動作する間、ＬＥＤ２６２、２６４、および２６６の少なくとも１つが発光してプリンタ２００のステータスがユーザに報知される。ＬＥＤ２６２、２６４、および２６６は、例えば２色のＬＥＤ（ここでは「黄」と「緑」とする。）を１チップ化した構成であり、ＣＰＵ２１０の制御に応じた色や点滅間隔等で発光する。
【００５１】
ＬＥＤ２６２は電源ランプであり、プリンタ２００の電源がオンしている間常時点灯する。ＬＥＤ２６４はデータ伝送ランプであり、ＰＣ１００からプリンタ２００にフレーム５００が転送されている期間点灯する。ＬＥＤ２６６はエラーランプであり、例えば用紙エラーやサーマルヘッドエラー等（用紙が搬送路にセットされていない、サーマルヘッドが正常に動作しない等）が発生したときにそれらのエラーが解消される、または電源がオフされるまで点滅し続ける。
【００５２】
ここで、プリンタ２００を使用していたユーザが故障等の理由でプリンタ２００を再度購入したケースを考える。新規に購入されたプリンタ２００には、図２に示されるように、ファームウェアファイルｖｅｒ１．０、ｖｅｒ１．１、ｖｅｒ１．２・・・ｖｅｒ２．０がインストールされている。一方、今まで使用していたプリンタ２００には購入時期との関係で、ファームウェアファイルｖｅｒ１．０と１．１のみがインストールされていた。またユーザは、ＶＥＲ１．１のプリンタドライバ１５０を用いてプリンタ２００を使用していた。すなわちユーザは今まで、ｖｅｒ１．１のファームウェアで動作するプリンタ２００を使用していた。
【００５３】
新規に購入されたプリンタ２００には、バージョンＶＥＲ２．０のプリンタドライバ１５０（あるいは全てのバージョンのプリンタドライバ１５０）が格納されたＣＤ−ＲＯＭが同梱されている。ユーザは、バージョンＶＥＲ２．０のプリンタドライバ１５０をＰＣ１００にインストールすることにより、最新の仕様でかつ最新の不具合修正が施された状態でプリンタ２００を動作させることができる。バージョンｖｅｒ２．０のファームウェアでプリンタ２００を動作させることは、ＰＣやプリンタ等の周辺機器の操作に慣れているユーザには特に不都合がない。
【００５４】
しかし、ＰＣ等の操作に疎いユーザが同じようにバージョンＶＥＲ２．０のプリンタドライバ１５０をＰＣ１００にインストールしてバージョンｖｅｒ２．０のファームウェアでプリンタ２００を動作させると、ＬＥＤ等の動作が今までと異なることから戸惑いを感じることが予想される。このようなユーザは、以前のプリンタ２００との違いを意識することなく新規のプリンタ２００を使用できることを望む。そのためには、新規に購入されたプリンタ２００をバージョンｖｅｒ１．１のファームウェアで動作させる必要がある。本実施形態では、以下に説明されるファームウェア設定処理を実行することにより、新規に購入されたプリンタ２００を恰もバージョンｖｅｒ１．１のファームウェアで動作させることができる。
【００５５】
図６に、ＣＰＵ２１０により実行されるファームウェア設定処理のフローチャートを示す。ＣＰＵ２１０は、例えばＰＣ１００から転送されるフレーム群の先頭のフレーム５００を受け取ったときのみファームウェア設定処理を実行する。
【００５６】
図６に示されるように、ＣＰＵ２１０は、フレーム５００を受け取るとドライババージョン１５２がフレームヘッダに埋め込まれているか否かを判定する（Ｓ１１）。ＣＰＵ２１０は、ドライババージョン１５２がフレームヘッダに埋め込まれていない場合（Ｓ１１：ＮＯ）、フラッシュＲＯＭ２３２に格納されているファームウェアファイルの最新バージョンのナンバ（例えばｖｅｒ２．０）をドライババージョン１５２とみなしてフラッシュＲＯＭ２３２の所定領域に格納する（Ｓ１３、１４）。ＣＰＵ２１０は次いで、使用するファームウェアを、該所定領域に格納された最新バージョンのナンバと一致するバージョンのファームウェアに決定する（Ｓ１５）。従ってここでは、バージョンｖｅｒ２．０のファームウェアに決定される。これより、バージョンｖｅｒ２．０のファームウェア（別の言い方をすると、電源投入時にＤＲＡＭ２３４に展開されたコンポーネント群）でプリンタ２００が動作する。
【００５７】
すなわちＣＰＵ２１０は、例えばＰＣ１００に不適切なドライバ（例えば自己のドライババージョンをフレームヘッダに埋め込むことができない他機種のプリンタのドライバ等）がインストールされている場合、上記のように最新バージョンのファームウェアでプリンタ２００を動作させる。
【００５８】
また、Ｓ１１の処理においてＣＰＵ２１０は、ドライババージョン１５２がフレームヘッダに埋め込まれていると判定した場合（Ｓ１１：ＹＥＳ）、該ドライババージョン１５２がフラッシュＲＯＭ２３２に格納されているファームウェアファイルの最新バージョンよりも新しいか否かを判定する（Ｓ１２）。ＣＰＵ２１０は、ドライババージョン１５２の方が新しい場合（Ｓ１２：ＹＥＳ）、ファームウェアファイルの最新バージョンのナンバをドライババージョン１５２とみなしてフラッシュＲＯＭ２３２の所定領域に格納する（Ｓ１３、１４）。ＣＰＵ２１０は次いで、使用するファームウェアを、該所定領域に格納された最新バージョンのナンバと一致するバージョンのファームウェアに決定する（Ｓ１５）。そして、決定されたバージョンのファームウェア（別の言い方をすると、電源投入時にＤＲＡＭ２３４にロードされたコンポーネント群）でプリンタ２００を動作させる。
【００５９】
すなわちＣＰＵ２１０は、プリンタ２００がドライババージョン１５２に対応する新しいバージョンのファームウェアファイルを有さない場合、該プリンタ２００が今現在有する最新バージョンのファームウェアによりプリンタ２００を動作させる。
【００６０】
また、Ｓ１２の処理においてＣＰＵ２１０は、ファームウェアファイルの最新バージョンの方が新しい、若しくは該最新バージョンとドライババージョン１５２とが同じであると判定した場合（Ｓ１２：ＹＥＳ）、該ドライババージョン１５２をフラッシュＲＯＭ２３２の所定領域に格納する（Ｓ１４）。ＣＰＵ２１０は次いで、使用するファームウェアを、該所定領域に格納されたドライババージョン１５２と一致するバージョンのファームウェアに決定する（Ｓ１５）。そして、決定されたバージョンのファームウェアによりプリンタ２００を動作させる。
【００６１】
具体的には、ＣＰＵ２１０は、ファームウェアファイルの最新バージョンとドライババージョン１５２とが同じ、すなわちバージョンＶＥＲ２．０のプリンタドライバ１５０がＰＣ１００にインストールされている場合、バージョンｖｅｒ２．０のファームウェアによりプリンタ２００を動作させる。
【００６２】
またＣＰＵ２１０は、ファームウェアファイルの最新バージョンの方が新しい、例えばバージョンＶＥＲ１．１のプリンタドライバ１５０がＰＣ１００にインストールされている場合、処理ＤＢ２３２ａにアクセスする。次いで、不具合修正がなされていない処理ナンバ（図５の例えば処理ナンバ１、２、４等）について、対応するバージョンｖｅｒ２．０のコンポーネント（コンポーネント１Ｃ、２Ｂ、４Ａ等）をＤＲＡＭ２３４から消去する。ＣＰＵ２１０は続いて、ＤＲＡＭ２３４から消去されたコンポーネントに対応するバージョンｖｅｒ１．１のコンポーネント（コンポーネント１Ｂ、２Ａ等）をＤＲＡＭ２３４にロードする。その一方で、不具合修正がなされている処理ナンバ（図５の例えば処理ナンバ３等）の処理についてはドライババージョン１５２に拘わらず最新バージョンのコンポーネント（コンポーネント３Ｂ）を適用する。つまりＣＰＵ２１０は、コンポーネント３ＢをＤＲＡＭ２３４から消去しない。
【００６３】
従ってユーザは、処理ナンバ１、２、４等の仕様変更等が行われた処理については以前（すなわちバージョンｖｅｒ１．１のファームウェア）と同じようにプリンタ２００を動作させることができる。つまりユーザは、所望のバージョンのプリンタドライバ１５０をＰＣ１００にインストールすることにより、プリンタ２００を以前と同様に動作させることができる。このためユーザは、特に戸惑いを感じることなく今まで通りプリンタ２００を使用することができる。また不具合修正が行われている処理に関しては、ユーザが所望するバージョンに拘わらず最新バージョンのファームウェアのコンポーネントが適用される。このためユーザは、今まで通りと同じように動作し、かつ最新の不具合修正が施された状態のプリンタ２００を使用することができる。
【００６４】
別の観点によれば、ユーザは、プリンタドライバ１５０をＰＣ１００に新たにインストールしなければ、今まで使い慣れた古いバージョンのファームウェアによりプリンタ２００を動作させることができる。つまり本実施形態のプリンタシステム１では、今までと同じ動作をするプリンタ２００を使用したいユーザに何ら特別なＰＣ操作等が要求されることがない。このような観点からも、本実施形態のプリンタシステム１はＰＣ等の操作に疎いユーザの要求を満たしている。
【００６５】
以上が本発明の実施の形態である。本発明は、これらの実施形態に限定されるものではなく、本発明の技術的思想の範囲において様々な変形が可能である。例えば仕様変更や不具合修正等には、本実施形態で説明されたものに限らず様々な形態がある。
【００６６】
また、プリンタ２００単体でファームウェアのバージョンが指定できるようプリンタ２００を構成する実施形態も想定される。具体的には、ファームウェアの各バージョンを指定するディップスイッチをプリンタ２００に追加実装する。そしてユーザがディップスイッチを操作すると、該スイッチ操作に応じたドライババージョン１５２と同様の情報がＣＰＵ２１０に入力される。ＣＰＵ２１０は、入力されたドライババージョン１５２と同様の情報を用いて図６のファームウェア設定処理を実行する。これにより、プリンタ２００は、ユーザの所望するバージョンのファームウェアにより動作する。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態のプリンタシステムの概略構成図である。
【図２】本発明の実施の形態においてＰＣが実行する印字データ作成処理のフローチャートを示す図である。
【図３】図２の印字データ作成処理で作成される印字データの構造図を示す図である。
【図４】本発明の実施の形態のプリンタの構成を示すブロック図である。
【図５】本発明の実施の形態のプリンタに格納された処理ＤＢのデータ構造を概念的に示す図である。
【図６】本発明の実施の形態においてプリンタが実行するファームウェア設定処理のフローチャートを示す図である。
【符号の説明】
【００６８】
１  プリンタシステム
１００  ＰＣ
１５０  プリンタドライバ
１５２  ドライババージョン
２００  プリンタ
２３２ａ  処理ＤＢ
【図１】
2009294894.tif 000003
【図２】
2009294894.tif 000004
【図３】
2009294894.tif 000005
【図４】
2009294894.tif 000006
【図５】
2009294894.tif 000007
【図６】
2009294894.tif 000008