(57)【要約】      （修正有）【課題】各種ソフトウェアのアップデートが，より正確に（アップデートしてはならないソフトウェアがアップデートされない形で），行えるプリンタを提供する。【解決手段】プリンタを、装置内の不揮発性記憶手段に，複数種類のソフトウェアと，各ソフトウェアについての許可キーとが記憶される装置であって、幾つかのソフトウェアと各ソフトウェアについての照合キー及び新許可キーとを含むアップデート用パッケージが与えられたときに、そのアップデート用パッケージ内のソフトウェア毎に、不揮発性記憶手段上の許可キーがアップデート用パッケージ内の照合キーと所定関係を有するものとなっているか否かを判断し、許可キーが照合キーと所定関係を有するものとなっている各ソフトウェアのみについて、不揮発性記憶手段上のソフトウェア，許可キーを，それぞれ、アップデート用情報内のソフトウェア，新許可キーに書き換える書換処理を行う構成としておく。【選択図】図３
2009053901.tif 000002
【特許請求の範囲】
【請求項１】
複数種類のソフトウェアと，それらのソフトウェアのそれぞれについての許可キーを記憶しておくための不揮発性記憶手段と、
幾つかのソフトウェアと，それらのソフトウェアのそれぞれについての照合キー及び新許可キーとを含むアップデート用情報が与えられたときに、そのアップデート用情報内のソフトウェア毎に、対応するソフトウェアについての前記不揮発性記憶手段上の許可キーがアップデート用情報内の照合キーと所定関係を有するものとなっているか否かを判断し、許可キーが照合キーと所定関係を有するものとなっている各ソフトウェアのみについて、前記不揮発性記憶手段上のソフトウェア，許可キーを，それぞれ、アップデート用情報内のソフトウェア，新許可キーに書き換える書換処理を行うソフトウェアアップデート手段と
を備えることを特徴とするプリンタ。
【請求項２】
前記アップデート用情報が、
各ソフトウェアについて，そのソフトウェアのバージョンを示すバージョン情報も含む情報であり、
前記不揮発性記憶手段が、
各ソフトウェアについて、そのソフトウェアのバージョンを示すバージョン情報も記憶可能な手段であり、
前記ソフトウェアアップデート手段が、
アップデート用情報内のソフトウェア毎に、対応するソフトウェアについての前記不揮発性記憶手段上のバージョン情報がアップデート用情報内のバージョン情報よりも古いバージョンを示すものとなっているか否かも判断し、許可キーが照合キーと所定関係を有するものとなっており、かつ、前記不揮発性記憶手段上のバージョン情報がアップデート用情報内のバージョン情報よりも古いバージョンを示すものとなっている各ソフトウェアのみについて、前記不揮発性記憶手段上のソフトウェア，許可キー，バージョン情報を，それぞれ、アップデート用情報内のソフトウェア，新許可キー，バージョン情報に書き換える書換処理を行う手段である
を備えることを特徴とする請求項１記載のプリンタ。
【請求項３】
前記アップデート用情報が、
各ソフトウェアのバージョンチェックの要否を指定する情報も含む情報であり、
前記ソフトウェアアップデート手段が、
前記アップデート用情報にてバージョンチェックが不要とされている各ソフトウェアについては、許可キーが照合キーと所定関係を有するものとなってさえいれば、前記書換処理
を備えることを特徴とする請求項２記載のプリンタ。
【請求項４】
自装置を再起動するための再起動手段を、さらに、備え、
前記ソフトウェアアップデート手段が、
前記書込処理を１回以上行った場合、前記アップデート用情報に対する処理の完了後に前記再起動手段を機能させる手段である
ことを特徴とする請求項１乃至請求項３のいずれかに記載のプリンタ。
【請求項５】
前記ソフトウェアアップデート手段が、
前記アップデート用情報内に所定の再起動指示情報が含まれており、かつ、前記書込処理を１回以上行った場合にのみ、前記再起動手段を機能させる手段である
ことを特徴とする請求項４記載のプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア（ファームウェアや設定データ）のアップデートが可能なプリンタに関する。
【背景技術】
【０００２】
周知のように、近年の一般的なプリンタは、受信したデータや自装置に装着されている可搬型記録媒体上のデータに基づき，自装置内の各種ソフトウェア（ファームウェアや設定データ）のアップデートを行う機能（以下、アップデート機能と表記する）を有する装置となっている。すなわち、一般的なプリンタは、簡単に（メーカーに装置を送る必要がない形で）、 不具合の修正，機能向上等が行える装置となっているのであるが、既存のプリンタが有しているアップデート機能は、バージョンアップでありさえすれば、ソフトウェアをアップデートしてしまうもの（例えば、特許文献１参照）となっている。
【０００３】
このため、既存のプリンタは、アップデートしてはならないソフトウェア（例えば、一般ユーザには提供していない，特定の顧客のために開発したソフトウェア）を，アップデートしてしまうことがある装置となっていた。
【０００４】
【特許文献１】特開２００１−５１８４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
そこで、本発明の課題は、各種ソフトウェアのアップデートが，より正確に（アップデートしてはならないソフトウェアがアップデートされない形で），行えるプリンタを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のプリンタは、複数種類のソフトウェアと，それらのソフトウェアのそれぞれについての許可キーを記憶しておくための不揮発性記憶手段と、幾つかのソフトウェアと，それらのソフトウェアのそれぞれについての照合キー及び新許可キーとを含むアップデート用情報が与えられたときに、そのアップデート用情報内のソフトウェア毎に、対応するソフトウェアについての不揮発性記憶手段上の許可キーがアップデート用情報内の照合キーと所定関係を有するものとなっているか否かを判断し、許可キーが照合キーと所定関係を有するものとなっている各ソフトウェアのみについて、不揮発性記憶手段上のソフトウェア，許可キーを，それぞれ、アップデート用情報内のソフトウェア，新許可キーに書き換える書換処理を行うソフトウェアアップデート手段とを、備える。
【０００７】
すなわち、本発明のプリンタは、『幾つかのソフトウェアと，それらのソフトウェアのそれぞれについての照合キー及び新許可キーとを含むアップデート用情報』が与えられた場合、そのアップデート用情報内の各ソフトウェアに関する照合キーと，自装置内（不揮発性記憶手段上）の各ソフトウェアに関する許可キーとに基づき、実際にアップデートするソフトウェア（書換処理の処理対象とするソフトウェア）を決定する装置となっている。また、本発明のプリンタは、或るソフトウェアをアップデートする際には、そのソフトウェアに関する自装置内（不揮発性記憶手段上）の許可キーを、そのソフトウェアに関する新許可キー（アップデート用情報内の情報）に書き換える装置ともなっている。
【０００８】
このため、本発明のプリンタへの各種ソフトウェアの初回インストール時や、本発明のプリンタ用のアップデート用情報の作成時に、特殊なバージョンアップが必要とされるソフトウェアに関する許可キー（許可キー及びアップデート用情報内の新許可キー）と、特殊なバージョンアップが必要とされないソフトウェアに関する許可キーとが異なるようにしておけば、特殊なバージョンアップが必要とされないソフトウェアのみがバージョンアップされるアップデート用情報や、特殊なバージョンアップが必要とされるソフトウェアのみがバージョンアップされるアップデート用情報等を作成できることになり、その結果として、ソフトウェアのアップデートがより正確に行えることになる。
【０００９】
本発明のプリンタを実現するに際しては、不揮発性記憶手段を、各ソフトウェアについて、そのソフトウェアのバージョンを示すバージョン情報も記憶可能な手段としておき、ソフトウェアアップデート手段を、各ソフトウェアについて，そのソフトウェアのバージョンを示すバージョン情報も含むアップデート用情報内のソフトウェア毎に、対応するソフトウェアについての不揮発性記憶手段上のバージョン情報がアップデート用情報内のバージョン情報よりも古いバージョンを示すものとなっているか否かも判断し、許可キーが照合キーと所定関係を有するものとなっており、かつ、不揮発性記憶手段上のバージョン情報がアップデート用情報内のバージョン情報よりも古いバージョンを示すものとなっている各ソフトウェアのみについて、不揮発性記憶手段上のソフトウェア，許可キー，バージョン情報を，それぞれ、アップデート用情報内のソフトウェア，新許可キー，バージョン情報に書き換える書換処理を行う手段としておくことが出来る。
【００１０】
なお、本発明のプリンタを，そのような構成を有するものとして実現する場合には、ソフトウェアのバージョンダウンも可能なようにするために、アップデート用情報を、各ソフトウェアのバージョンチェックの要否を指定する情報も含む情報としておき、ソフトウェアアップデート手段を、アップデート用情報にてバージョンチェックが不要とされている各ソフトウェアについては、許可キーが照合キーと所定関係を有するものとなってさえいれば、書換処理を行う手段としておくことが望ましい。
【００１１】
また、ソフトウェアの中には、アップデート後、再起動が必要なものもあるため、本発明のプリンタは、自装置を再起動するための再起動手段を備えた、ソフトウェアアップデート手段が、書込処理を１回以上行った場合、アップデート用情報に対する処理の完了後に再起動手段を機能させる手段、或いは、アップデート用情報内に所定の再起動指示情報が含まれており、かつ、書込処理を１回以上行った場合、アップデート用情報に対する処理の完了後に再起動手段を機能させる手段である装置として実現しておくことが、望ましい。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施するための最良の形態を、図面を参照して詳細に説明する。
【００１３】
まず、図１を用いて、本発明の一実施形態に係るプリンタ１０の構成を説明する。
【００１４】
図１に示してあるように、本実施形態に係るプリンタ１０は、スキャナ１１と操作パネル１２とコントローラ１３と印刷エンジン１４とを備えた装置（いわゆる複合機）である。
【００１５】
操作パネル１２は、ユーザから各種の指示を得るため（及び、プリンタ１０の状態をユーザに提示するため）に、プリンタ１０に設けられているユニットである。この操作パネル１２は、ＬＣＤ，複数のＬＥＤ，複数の押しボタンスイッチ等から構成されたユニットとなっている。
【００１６】
印刷エンジン１４は、用紙上に印刷を行うためのユニットである。スキャナ１１は、自身にセットされた原稿をスキャンすることにより，当該原稿の画像データを生成するユニットである。
【００１７】
コントローラ１３は、プリンタ１０内の各部を統合的に制御する（プリンタ１０を複合機として機能させる）ためのユニットである。このコントローラ１３は、既存のコントローラと同じハードウェア構成を有するものとなっている。このため、コントローラ１３の具体的なハードウェア構成の説明は省略するが、本実施形態に係るプリンタ１０は、その筐体にＵＳＢメモリの挿入口が設けられている装置となっており、コントローラ１３は、当該挿入口に挿入されているＵＳＢメモリに対するリード／ライトが行えるものとなっている。また、コントローラ１３は、再起動用回路〔ＯＮ／ＯＦＦ機能付パワーＩＣ，コンデンサ等からなる，プリンタ１０を再起動させるための回路〕を備えたユニットともなっている。
【００１８】
次に、図２及び図３を用いて本実施形態に係るプリンタ１０の動作を説明する。
【００１９】
本実施形態に係るプリンタ１０内のコントローラ１２は、各種のソフトウェア〔各種の用途用（印刷エンジン制御用，スキャナ制御用等）のファームウェアや設定データ〕と共に、各ソフトウェアに関するバージョン情報（ソフトウェアのバージョンを示す情報）及び許可キー（詳細は後述）が、そのＲＯＭ（フラッシュＲＯＭ）上に記憶（保存）されるようにプログラミングしたユニットである。
【００２０】
また、コントローラ１２は、アップデート用パッケージがＰＣから送信されてきた場合や、アップデート用パッケージが記憶されているＵＳＢメモリが装着された（筐体に設けられている挿入口に挿入された）場合に、各種ソフトウェアをアップデートするためのアップデート処理を開始するようにプログラミングしたユニットとなっている。
【００２１】
ここで、アップデート用パッケージとは、図２に示したデータ構成を有する情報のことである。
【００２２】
すなわち、アップデート用パッケージは、書き込み許可照合キー，保存書き込み許可キー等を含むパッケージヘッダの後に、データ名称，データバージョン，バージョン管理対象フラグ等を含むファームヘッダとファームデータ（アップデートするソフトウェアそのもの）とを何組か続けることが出来る構成の情報であるとともに、その末尾に、所定内容の再起動指示データを含めることが出来る構成の情報となっている。
【００２３】
なお、このアップデート用パッケージのパッケージヘッダに含まれる書き込み許可照合キーは、各バイトが、アップデート用パッケージ内にファームヘッダ及びファームデータが含まれている各ソフトウェア（以下、パッケージ内ソフトと表記する）に関する照合キー（詳細は後述）として使用される情報（本実施形態では、８バイトの情報）である。パッケージヘッダに含まれる保存書き込み許可キーは、各バイトが、各パッケージ内ソフトに関する新許可キー（詳細は後述）として使用される情報（本実施形態では、８バイトの情報）である。アップデート用パッケージのファームヘッダに含まれるデータ名称は，ファームヘッダ後のファームデータの名称（アップデートするファームウェアの識別情報）であり、データバージョンは、当該ファームデータのバージョンを示す情報である。バージョン管理対象フラグは、対応するファームウェアのアップデート時に、バージョンアップであることを確認するか否かを指定するための情報である。
【００２４】
そして、コントローラ１３は、上記したアップデート処理として、図３に，その基本的な処理手順が示されている処理を実行するものとなっている。なお、以下の説明においては、ソフトウェアのことを、ソフトと表記することにする。
【００２５】
すなわち、コントローラ１３は、処理すべきアップデート用パッケージが与えられた場合、そのアップデート用パッケージのパッケージヘッダ内の各種情報を把握（ステップＳ１０１）してから、最初のソフト（アップデート用パッケージ内の最初のファームヘッダ内のデータ名称が示しているソフト）を処理対象ソフトとして特定する処理（ステップＳ１０２）を行う。
【００２６】
その後、コントローラ１３は、処理対象ソフトに関する許可キー（ＲＯＭ上の情報）と，処理対象ソフトに関する照合キー（パッケージヘッダ内の書き込み許可照合キー中の処理対象ソフトに関する１バイトの情報）との組み合わせが、更新許可条件を満たすものであるか否かを判断する（ステップＳ１０３）。
【００２７】
ここで、更新許可条件とは、アップデート処理をコントローラ１３に実行させるためのソフトウェア（アップデート処理によるアップデートが可能なソフトウェア）中に定義されている条件〔本実施形態では、『（照合キーＡＮＤ許可キー）ＥＯＲ許可キー＝"000000000"』；（照合キーＡＮＤ許可キー）ＥＯＲ許可キーは、ビットごとの論理演算結果〕のことである。なお、この更新許可条件としては、許可キーと照合キーとの組み合わせによって満たされないことがある条件であればどのようなものも使用することが出来るが、本実施形態で用いられているもののように、許可キーの値に因らず条件が成立することになる照合キー（『（照合キーＡＮＤ許可キー）ＥＯＲ許可キー＝"000000000"』では、ALL1）が存在するものであることが望ましい。
【００２８】
許可キーと照合キーとの組み合わせが更新許可条件を満たしていないものであった場合（ステップＳ１０３；ＮＯ）、コントローラ１３は、未処理のソフト（未処理のファームヘッダ及びファームデータ）が残っているか否かを判断（ステップＳ１０７）し、未処理のソフトが残っていた場合（ステップＳ１０７；ＹＥＳ）には、ステップＳ１０２に戻って、次のソフトに対する処理を開始する。
【００２９】
また、コントローラ１３は、許可キーと照合キーとの組み合わせが更新許可条件を満たしているものであった場合（ステップＳ１０３；ＹＥＳ）には、バージョンチェックが必要である（処理対象ソフトに関するバージョン処理対象フラグが，バージョンアップであることを確認すべきことを指定する情報となっている）か否かを判断する（ステップＳ１０４）。
【００３０】
そして、コントローラ１３は、バージョンチェックが必要ではなかった場合（ステップＳ１０４；ＮＯ）には、処理対象ソフトを実際にアップデートすると共に，処理対象ソフトに関する許可キーを新許可キー（パッケージヘッダ内の保存書き込み許可キー中の処理対象ソフトに関する１バイトの情報）に書き換える処理（ステップＳ１０６）を行ってから、ステップＳ１０７以降の処理を開始する。なお、ステップＳ１０６の処理は、その実行回数がカウントされる処理となっている。
【００３１】
これに対して、バージョンチェックが必要であった場合（ステップＳ１０４；ＹＥＳ）、コントローラ１３は、処理対象ソフトに関する現バージョン情報（ＲＯＭ上の情報）と新バージョン情報（ファームヘッダ内のデータバージョン）とを比較することにより、アップデート用パッケージ内のファームデータによるソフトのアップデートが処理対象ソフトのバージョンアップとなるか否かを判断する（ステップＳ１０５）。そして、コントローラ１３は、バージョンアップとなる場合（ステップＳ１０５；ＹＥＳ）には、ステップＳ１０６の処理を行ってから、ステップＳ１０７以降の処理を開始し、バージョンアップとならない場合（ステップＳ１０５；ＮＯ）には、ステップＳ１０６の処理を行うことなく、ステップＳ１０７以降の処理を開始する。
【００３２】
コントローラ１３は、全てのパッケージ内ソフトについての処理が終了した場合（ステップＳ１０７；ＮＯ）には、処理を行っているアップデート用パッケージに再起動指示データが含まれているか否かを判断する（ステップＳ１０８）。
【００３３】
そして、コントローラ１３は、アップデート用パッケージに再起動指示データが含まれていた場合（ステップＳ１０８；ＹＥＳ）には、アップデートしたソフトの数が１以上である（ステップＳ１０６の処理の実行回数が１以上である）か否かを判断（ステップＳ１０９）し、アップデートしたソフトの数が１以上であった場合（ステップＳ１０９；ＹＥＳ）には、再起動用回路を機能させる処理である自動再起動処理（ステップＳ１１０）を行ってから、このアップデート処理を終了する。
【００３４】
また、コントローラ１３は、アップデート用パッケージに再起動指示データが含まれていなかった場合（ステップＳ１０８；ＮＯ）と、アップデート用パッケージに再起動指示データが含まれていたが，アップデートしたソフトの数が０であった場合（ステップＳ１０９；ＮＯ）には、自動再起動処理を行うことなく、このアップデート処理を終了する。
【００３５】
以上の説明から明らかなように、本実施形態に係るプリンタ１０は、処理すべきアップデート用パッケージが与えられた場合、そのアップデート用パッケージ内の各ソフトウェアに関する照合キーと，自装置内（コントローラ内のＲＯＭ上）の各ソフトウェアに関する許可キーとに基づき、実際にアップデートするソフトウェア（ステップＳ１０６の処理の処理対象とするソフトウェア）を決定する装置となっている。また、プリンタ１０は、或るソフトウェアをアップデートする際には、そのソフトウェアに関する自装置内の許可キーを、そのソフトウェアに関する新許可キー（パッケージヘッダ内の保存書き込み許可キーの，特定の１バイトの値）に書き換える装置ともなっている。
【００３６】
このため、プリンタ１０は、アップデート用パッケージを作成する度に，各ソフトウェアに関する新許可キーが，適切な値のもの（その後に行うべきアップデートの内容に応じた値のもの）となるようにしておけば、その後のアップデート用パッケージの作成時に，図４に例示してある，バージョン2.10のソフトへのアップデート用パッケージ，バージョン2.110のソフトへのアップデート用パッケージのようなもの（特定のバージョンのソフトがアップデートされないもの／特定のバージョンのソフトのみみをアップデートするもの）を作成することが可能な装置（つまり、ソフトウェアのアップデートがより正確に行える装置）となっていると言うことが出来る。
【００３７】
《変形形態》
上記したプリンタ１０は、各種の変形を行うことが出来る。例えば、プリンタ１０／プリンタ１０にアップデート処理を行わせるためのソフトウェア（以下、アップデート処理ソフトと表記する）を、ステップＳ１０５の判断（バージョンアップであるか否かの判断）を常に行うもの（ステップＳ１０４の判断を行わないもの）や，ステップＳ１０５（及びＳ１０４）の判断を常に行わないものに変形しておくことが出来る。ただし、プリンタ１０／アップデート処理ソフトを、ステップＳ１０５の判断を常に行うものとした場合には、ソフトウェアを意図的にバージョンダウンすることが出来ないことになるし、プリンタ１０／アップデート処理ソフトを、ステップＳ１０５の判断を常に行わないものとした場合には、好ましくないソフトウェアのバージョンダウンが行われる場合があることになる。このため、プリンタ１０／アップデート処理ソフトは、ステップＳ１０４及びＳ１０５の判断を行うものとしておくことが望ましい。
【００３８】
また、プリンタ１０／アップデート処理ソフトを、上記したものとは異なるデータ構成を有するアップデート用パッケージ（例えば、新許可キーがファームヘッダ内の情報であるアップデート用パッケージや、再起動指示データがパッケージヘッダ内の情報であるアップデート用パッケージ）を処理対象とするものに変形しても良いことや、プリンタ１０を上記したものとは異なるハードウェア構成を有するものに変形しても良いことなどは当然のことである。
【図面の簡単な説明】
【００３９】
【図１】実施形態に係るプリンタの構成図。
【図２】実施形態に係るプリンタにより処理されるアップデート用パッケージのデータ構成の説明図。
【図３】実施形態に係るプリンタが実行するアップデート処理の流れ図。
【図４】実施形態に係るプリンタのソフトウェアアップデート時の動作の一例を示した図。
【符号の説明】
【００４０】
１０  プリンタ、  １１  スキャナ、  １２  操作パネル、  １３  スキャナ
１４  印刷エンジン
【図１】
2009053901.tif 000003
【図２】
2009053901.tif 000004
【図３】
2009053901.tif 000005
【図４】
2009053901.tif 000006