(57)【要約】【課題】本発明は、コンピューターにおいて、一度提供されたコンピュータープログラムを用いてバージョンダウンをおこなう不正の抑制を図ることを目的とする。【解決手段】バージョンごとに固有の情報である固有情報を含むコンピュータープログラムは、コンピュータープログラムに含まれる第１の固有情報との照合に用いられる第１の照合情報を取得する機能と、取得した第１の照合情報と、第１の固有情報とを照合する機能と、照合が成功すると、コンピューターに記憶されているコンピュータープログラムの少なくとも一部をコンピュータープログラムとバージョンの異なる他のコンピュータープログラムに更新するとともに、他のコンピュータープログラムに含まれている第２の固有情報を記憶部に記憶する機能と、をコンピューターに実現させる。【選択図】図３
2011154513.tif 000002
【特許請求の範囲】
【請求項１】
インストールする機能をコンピューターに実現させることを含むもので、バージョンごとに固有の情報である固有情報を含むコンピュータープログラムであって、
前記コンピューターに記憶されているコンピュータープログラムに含まれる第１の固有情報との照合に用いられる第１の照合情報を入力手段から取得する機能と、
取得した前記第１の照合情報と、前記第１の固有情報とを照合する機能と、
前記照合が成功すると、前記コンピューターに記憶されているコンピュータープログラムの少なくとも一部を、前記コンピューターに記憶されているコンピュータープログラムとバージョンの異なるコンピュータープログラムに更新するとともに、前記バージョンの異なるコンピュータープログラムに含まれている第２の固有情報を記憶部に記憶するか、または前記記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する機能と、
を前記コンピューターに実現させるコンピュータープログラム。
【請求項２】
請求項１に記載のコンピュータープログラムにおいて、
前記バージョンの異なるコンピュータープログラムは、
第２の照合情報を前記入力手段から取得する機能と、
取得した前記第２の照合情報と、前記記憶部に記憶されている前記第２の固有情報とを照合する機能と、
前記照合が成功すると、前記コンピューターに記憶されている前記バージョンの異なるコンピュータープログラムの少なくとも一部を前記バージョンの異なるコンピュータープログラムとバージョンの異なる新たなコンピュータープログラムに更新するとともに、前記新たなコンピュータープログラムに含まれている第３の固有情報を前記記憶部に記憶するか、または前記記憶部に記憶されている前記第２の固有情報を前記第３の固有情報に更新する機能と、
を前記コンピューターに実現させるコンピュータープログラム。
【請求項３】
バージョンごとに固有の情報である固有情報を含むコンピュータープログラムの更新方法であって、
コンピューターに記憶されている第１のコンピュータープログラムに含まれる第１の固有情報との照合に用いられる第１の照合情報を入力手段から取得する工程と、
取得した前記第１の照合情報と、前記第１の固有情報とを照合する工程と、
前記照合が成功すると、前記コンピューターに記憶されている第１のコンピュータープログラムの少なくとも一部を、前記第１のコンピュータープログラムとバージョンの異なる第２のコンピュータープログラムに更新するとともに、前記第２のコンピュータープログラムに含まれている第２の固有情報を前記コンピューターの記憶部に記憶するか、または前記記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する工程と、
を含むコンピュータープログラムの更新方法。
【請求項４】
バージョンごとに固有の情報である固有情報を含むコンピュータープログラムの更新をおこなうコンピューターであって、
前記コンピューターの記憶部であって、第１のコンピュータープログラムを記憶すると共に、前記第１のコンピュータープログラムに含まれる第１の固有情報を格納する記憶部と、
前記第１の固有情報との照合に用いられる第１の照合情報を入力手段から取得する取得部と、
前記取得部により取得された前記第１の照合情報と、前記記憶部に格納されている前記第１の固有情報とを照合する照合部と、
前記照合部による照合が成功すると、記憶前記記憶部に記憶されている前記第１のコンピュータープログラムの少なくとも一部を、前記第１のコンピュータープログラムとバージョンの異なる第２のコンピュータープログラムに更新するとともに、前記第２のコンピュータープログラムに含まれている第２の固有情報を前記記憶部に記憶するか、または前記記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する更新部と、
を備えるコンピューター。
【請求項５】
インストールする機能をコンピューターに実現させることを含むもので、バージョンごとに固有の情報である固有情報を含むコンピュータープログラムであって、
記録装置の記憶部に記憶されているコンピュータープログラムに含まれる第１の固有情報との照合に用いられる第１の照合情報を入力手段から取得する機能と、
取得した前記第１の照合情報と、前記第１の固有情報とを照合する機能と、
前記照合が成功すると、前記記録装置に記憶されているコンピュータープログラムの少なくとも一部を、前記記録装置に記憶されているコンピュータープログラムとバージョンの異なるコンピュータープログラムに更新するとともに、前記バージョンの異なるコンピュータープログラムに含まれている第２の固有情報を前記記録装置の記憶部に記憶するか、または前記記録装置の記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する機能と、
を前記記録装置が接続可能な前記コンピューターに実現させるコンピュータープログラム。
【請求項６】
バージョンごとに固有の情報である固有情報を含むコンピュータープログラムの更新方法であって、
記録装置に記憶されている第１のコンピュータープログラムに含まれる第１の固有情報との照合に用いられる第１の照合情報を入力手段から取得する工程と、
取得した前記第１の照合情報と、前記第１の固有情報とを照合する工程と、
前記照合が成功すると、前記記録装置の記憶部に記憶されている第１のコンピュータープログラムの少なくとも一部を、前記第１のコンピュータープログラムとバージョンの異なる第２のコンピュータープログラムに更新するとともに、前記第２のコンピュータープログラムに含まれている第２の固有情報を前記記録装置の記憶部に記憶するか、または前記記録装置の記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する工程と、
を含むコンピュータープログラムの更新方法。
【請求項７】
コンピューターに接続可能であり、前記コンピューターから送信されるコマンドに基づき、バージョンごとに固有の情報である固有情報を含むコンピュータープログラムの更新をおこなう記録装置であって、
第１のコンピュータープログラムを記憶すると共に、前記第１のコンピュータープログラムに含まれる第１の固有情報を格納する記憶部と、
前記第１の固有情報との照合に用いられる第１の照合情報を前記コンピューターから取得する取得部と、
前記取得部により取得された前記第１の照合情報と、前記記憶部に格納されている前記第１の固有情報とを照合する照合部と、
前記照合部による照合が成功すると、記憶前記記憶部に記憶されている前記第１のコンピュータープログラムの少なくとも一部を、前記第１のコンピュータープログラムとバージョンの異なる第２のコンピュータープログラムに更新するとともに、前記第２のコンピュータープログラムに含まれている第２の固有情報を前記記憶部に記憶するか、または前記記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する更新部と、
を備える記録装置。
【請求項８】
請求項７に記載の記録装置において、
前記コンピューターから送信される会計情報を記憶するフィスカルメモリーを備える記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータープログラム、コンピュータープログラムの更新方法、コンピューター、および、記録装置に関する。
【背景技術】
【０００２】
従来から、特定の制御をおこなうコンピューターや記録装置において、インストール（記憶）されているコンピュータープログラムの更新時にパスワードを要求し、パスワードが一致した場合にのみ新しいコンピュータープログラムに更新をおこなう技術が知られている。（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３０９４９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記技術は、バージョンアップなどのために新たに提供されたコンピュータープログラムが不正に取得されることを抑制できるが、例えば、バージョンアップする度に、セキュリティー機能もアップさせることがあるフィルカルプリンターのように、一度提供された古いバージョンのコンピュータープログラムにバージョンダウンをおこない、セキュリティーレベルを下げて不正をおこなうことを企図される装置では、不正を抑制することが困難であった。
【０００５】
本発明は、上記した従来の課題の少なくとも一部を解決するためになされた発明であり、コンピューターや記録装置において、一度提供されたコンピュータープログラムを用いてバージョンダウンをおこなう不正の抑制を図ることを目的とする。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一部を解決するために本願発明は以下の態様を採る。ここで、コンピュータープログラムは、ＣＰＵ上で動作されるものを含むものである。
【０００７】
第１の態様は、インストールする機能をコンピューターに実現させることを含むものでバージョンごとに固有の情報である固有情報を含むコンピュータープログラムを提供する。本発明の第１の態様に係るコンピュータープログラムは、前記コンピューターに記憶されているコンピュータープログラムに含まれる第１の固有情報との照合に用いられる第１の照合情報を入力手段から取得する機能と、取得した前記第１の照合情報と、前記第１の固有情報とを照合する機能と、前記照合が成功すると、前記コンピューターに記憶されているコンピュータープログラムの少なくとも一部を前記コンピュータープログラムとバージョンの異なるコンピュータープログラムに更新するとともに、前記バージョンの異なるコンピュータープログラムに含まれている第２の固有情報を記憶部に記憶するか、または前記記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する機能と、を前記コンピューターに実現させる。
【０００８】
第１の態様に係るコンピュータープログラムによれば、バージョンごとに固有の情報である固有情報を含み、更新される側のコンピュータープログラムに含まれる第１の固有情報と、コンピューターや記録装置のタッチパネルやキーボード、スキャナ、マウスなどの入力手段から取得した第１の照合情報との照合が成功した場合に、コンピューターに記憶されているコンピュータープログラムの少なくとも一部をバージョンの異なる他のコンピュータープログラムに更新するため、コンピューターにおいて、一度提供されたコンピュータープログラムを用いてバージョンダウンをおこなう不正の抑制を図ることができる。そして、次のバージョンアップに備えた第２の固有情報を記憶して用意しておく。過去にバージョンアップしたときの固有情報は、第２の固有情報とは異なるため、バージョンダウンはできない。
【０００９】
第１の態様に係るコンピュータープログラムにおいて、前記バージョンの異なるコンピュータープログラムは、第２の照合情報を前記入力手段から取得する機能と、取得した前記第２の照合情報と、前記記憶部に記憶されている前記第２の固有情報とを照合する機能と、前記照合が成功すると、前記コンピューターに記憶されている前記バージョンの異なるコンピュータープログラムの少なくとも一部を前記バージョンの異なるコンピュータープログラムとバージョンの異なる新たなコンピュータープログラムに更新するとともに、前記新たなコンピュータープログラムに含まれている第３の固有情報を前記記憶部に記憶するか、または前記記憶部に記憶されている前記第３の固有情報に更新する機能と、を前記コンピューターに実現させてもよい。この場合、コンピュータープログラムの更新に用いられたバージョンの異なるコンピュータープログラムによっても、コンピュータープログラムのバージョンダウンをおこなう不正の抑制を図ることができる。
【００１０】
第２の態様は、バージョンごとに固有の情報である固有情報を含むコンピュータープログラムの更新方法を提供する。第２の態様に係るコンピュータープログラムの更新方法は、コンピューターに記憶されている第１のコンピュータープログラムに含まれる第１の固有情報との照合に用いられる第１の照合情報を入力手段から取得する工程と、取得した前記第１の照合情報と、前記第１の固有情報とを照合する工程と、前記照合が成功すると、前記コンピューターに記憶されている第１のコンピュータープログラムの少なくとも一部を前記第１のコンピュータープログラムとバージョンの異なる第２のコンピュータープログラムに更新するとともに、前記第２のコンピュータープログラムに含まれている第２の固有情報を前記コンピューターの記憶部に記憶するか、または前記記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する工程と、を備える。
【００１１】
第２の態様に係るコンピュータープログラムの更新方法によれば、更新される側のコンピュータープログラムに含まれる第１の固有情報と、取得した第１の照合情報との照合が成功した場合に、コンピューターに記憶されているコンピュータープログラムの少なくとも一部をバージョンの異なる他のコンピュータープログラムに更新するため、コンピューターにおいて、一度提供されたコンピュータープログラムを用いてバージョンダウンをおこなう不正の抑制を図ることができる。
【００１２】
第３の態様は、バージョンごとに固有の情報である固有情報を含むコンピュータープログラムの更新をおこなうコンピューターを提供する。本発明の第３の態様に係るコンピューターは、前記コンピューターの記憶部であって、第１のコンピュータープログラムを記憶すると共に、前記第１のコンピュータープログラムに含まれる第１の固有情報を格納する記憶部と、前記第１の固有情報との照合に用いられる第１の照合情報を入力手段から取得する取得部と、前記取得部により取得された前記第１の照合情報と、前記記憶部に格納されている前記第１の固有情報とを照合する照合部と、前記照合部による照合が成功すると、前記記憶部に記憶されている前記第１のコンピュータープログラムの少なくとも一部を前記第１のコンピュータープログラムとバージョンの異なる第２のコンピュータープログラムに更新するとともに、前記第２のコンピュータープログラムに含まれている第２の固有情報を前記記憶部に記憶するか、または前記記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する更新部と、を備える。
【００１３】
第３の態様に係るコンピューターによれば、記憶されているコンピュータープログラムに含まれる第１の固有情報と、取得した第１の照合情報との照合が成功した場合に、記憶されているコンピュータープログラムの少なくとも一部をバージョンの異なる他のコンピュータープログラムに更新するため、一度提供されたコンピュータープログラムを用いてバージョンダウンをおこなう不正の抑制を図ることができる。
【００１４】
本発明は、インストールする機能をコンピューターに実現させることを含むもので、バージョンごとに固有の情報である固有情報を含むコンピュータープログラムであって、記録装置の記憶部に記憶されているコンピュータープログラムに含まれる第１の固有情報との照合に用いられる第１の照合情報を入力手段から取得する機能と、取得した前記第１の照合情報と、前記第１の固有情報とを照合する機能と、前記照合が成功すると、前記記録装置に記憶されているコンピュータープログラムの少なくとも一部を、前記記録装置に記憶されているコンピュータープログラムとバージョンの異なるコンピュータープログラムに更新するとともに、前記バージョンの異なるコンピュータープログラムに含まれている第２の固有情報を前記記録装置の記憶部に記憶するか、または前記記録装置の記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する機能と、を前記記録装置が接続可能な前記コンピューターに実現させる。
【００１５】
上記によれば、バージョンごとに固有の情報である固有情報を含み、更新される側のコンピュータープログラムに含まれる第１の固有情報と、記録装置のタッチパネルやキーボード、スキャナ、マウスなどの入力手段から取得した第１の照合情報との照合が成功した場合に、記録装置に記憶されているコンピュータープログラムの少なくとも一部をバージョンの異なる他のコンピュータープログラムに更新するため、記録装置において、一度提供されたコンピュータープログラムを用いてバージョンダウンをおこなう不正の抑制を図ることができる。そして、次のバージョンアップに備えた第２の固有情報を記憶して用意しておく。過去にバージョンアップしたときの固有情報は、第２の固有情報とは異なるため、バージョンダウンはできない。
【００１６】
本発明は、バージョンごとに固有の情報である固有情報を含むコンピュータープログラムの更新方法であって、記録装置に記憶されている第１のコンピュータープログラムに含まれる第１の固有情報との照合に用いられる第１の照合情報を入力手段から取得する工程と、取得した前記第１の照合情報と、前記第１の固有情報とを照合する工程と、前記照合が成功すると、前記記録装置の記憶部に記憶されている第１のコンピュータープログラムの少なくとも一部を、前記第１のコンピュータープログラムとバージョンの異なる第２のコンピュータープログラムに更新するとともに、前記第２のコンピュータープログラムに含まれている第２の固有情報を前記記録装置の記憶部に記憶するか、または前記記録装置の記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する工程と、
を含む。
【００１７】
上記によれば、更新される側のコンピュータープログラムに含まれる第１の固有情報と、取得した第１の照合情報との照合が成功した場合に、記録装置に記憶されているコンピュータープログラムの少なくとも一部をバージョンの異なる他のコンピュータープログラムに更新するため、記録装置において、一度提供されたコンピュータープログラムを用いてバージョンダウンをおこなう不正の抑制を図ることができる。
【００１８】
本発明は、コンピューターに接続可能であり、前記コンピューターから送信されるコマンドに基づき、バージョンごとに固有の情報である固有情報を含むコンピュータープログラムの更新をおこなう記録装置であって、第１のコンピュータープログラムを記憶すると共に、前記第１のコンピュータープログラムに含まれる第１の固有情報を格納する記憶部と、前記第１の固有情報との照合に用いられる第１の照合情報を前記コンピューターから取得する取得部と、前記取得部により取得された前記第１の照合情報と、前記記憶部に格納されている前記第１の固有情報とを照合する照合部と、前記照合部による照合が成功すると、記憶前記記憶部に記憶されている前記第１のコンピュータープログラムの少なくとも一部を、前記第１のコンピュータープログラムとバージョンの異なる第２のコンピュータープログラムに更新するとともに、前記第２のコンピュータープログラムに含まれている第２の固有情報を前記記憶部に記憶するか、または前記記憶部に記憶されている前記第１の固有情報を前記第２の固有情報に更新する更新部と、を備える。
【００１９】
上記によれば、記憶されているコンピュータープログラムに含まれる第１の固有情報と、取得した第１の照合情報との照合が成功した場合に、記憶されているコンピュータープログラムの少なくとも一部をバージョンの異なる他のコンピュータープログラムに更新するため、一度提供されたコンピュータープログラムを用いてバージョンダウンをおこなう不正の抑制を図ることができる。
【００２０】
本発明は、前記コンピューターから送信される会計情報を記憶するフィスカルメモリーを備える上記の記録装置とすることがきる。フィスカルメモリーを備えたフィスカルプリンターに適用することができる。
【００２１】
本発明は、種々の態様で実現することが可能であり、例えば、プリンター、プリントシステム、印刷制御装置、レジスター等で実現することができる。また、コンピュータープログラムの更新方法、コンピュータープログラムの更新制御方法、および、これらの方法または装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した記録媒体、そのコンピュータープログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【図面の簡単な説明】
【００２２】
【図１】第１実施例における印刷装置の構成を概略的に示す説明図である。
【図２】フィスカルユニットの機能ブロックを例示した説明図である。
【図３】プリンター本体部の機能ブロックを例示した説明図である。
【図４】メモリー５３の構成を模式的に示した説明図である。
【図５】更新処理時のホストコンピューターと印刷装置とのやりとりを説明するためのシーケンス図である。
【図６】パスワードの入力画面を例示した説明図である。
【図７】更新処理時における印刷装置の処理の流れを示したフローチャートである。
【図８】本発明による効果の一部を説明するための説明図である。
【図９】フィスカルユニットの機能ブロックを例示した説明図である。
【図１０】変形例における印刷装置の構成を概略的に示す説明図である。
【発明を実施するための形態】
【００２３】
以下、本発明の一態様である印刷装置について、図面を参照しつつ、実施例に基づいて説明する。
【００２４】
Ａ．第１実施例：
Ａ１．印刷装置の構成：
図１は、第１実施例における印刷装置の構成を概略的に示す説明図である。本実施例の印刷装置１００は、ホストコンピューター７００から取得した後述するフィスカルコマンドデータに基づいて、顧客に渡すための会計レシートを印刷するレシート印刷や、売上データを確認するためのジャーナルを印刷するジャーナル印刷等をおこなう会計用のプリンターである。
【００２５】
印刷装置１００は、印刷装置１００の動作を制御する制御プログラム（ファームウェア）を更新するためのプログラム（以後、「更新用プログラム」とも呼ぶ）などを含む種々のデータをホストコンピューター７００から取得する。印刷装置１００は、更新用プログラムを含むデータを取得すると、取得した更新用プログラムを用いて、インストールされている制御プログラムの更新をおこなう。また、印刷装置１００は、ホストコンピューター７００を介してユーザーにより入力されたパスワード（以後、「入力パスワード」とも呼ぶ）を含むデータをホストコンピューター７００から取得する。この入力パスワードは、印刷装置１００の制御プログラムを更新用プログラムに更新する際に用いられる。制御プログラムの更新方法については後に詳述する。印刷装置１００は、フィスカルユニット１０と、プリンター本体部４０と、を備えている。
【００２６】
フィスカルユニット１０は、ホストコンピューター７００およびプリンター本体部４０とそれぞれ接続されインターフェイスとしても機能し、ホストコンピューター７００およびプリンター本体部４０のそれぞれとデータのやりとりをおこなうＵＩＢ（universal interface board）である。フィスカルユニット１０は、フィスカルメモリー基板２０と、インターフェイス基板３０と、を備えている。フィスカルメモリー基板２０とインターフェイス基板３０は、フレキシブルフラットケーブルＦＦＣを介して互いに接続されている。インターフェイス基板３０は、ＰＣコネクターＣ１と、フィスカルコネクターＣ２と、プリンターコネクターＣ３と、通信ＩＣ３１と、メインＣＰＵ３２と、ＥＰＲＯＭ３３と、ＳＲＡＭ３４と、ＲＴＣ３５と、サブＣＰＵ３６と、ＥＪメモリー３７と、を備えている。
【００２７】
ＰＣコネクターＣ１は、ホストコンピューター７００と接続され、ホストコンピューター７００とフィスカルユニット１０との間で、フィスカルユニット１０を制御するためのデータのほか、上述の更新用プログラムや入力パスワードなどを含むデータ（以後、これらをまとめて「フィスカルコマンドデータ」とも呼ぶ）の送受信に用いられる。ホストコンピューター７００とフィスカルユニット１０との間のデータ転送は、ＵＳＢ、ＲＳ―２３２Ｃなどを用いたシリアル方式や、ＳＣＳＩなどを用いたパラレル方式などを採用することができる。フィスカルコネクターＣ２は、後述するフィスカルメモリー２１に格納されているフィルカルデータやＥＪメモリー３７に格納されている売り上げデータ等の会計情報を読み出す場合にのみ用いられ、フィスカルデータ読み出し装置８００とのデータの送受信に用いられる。プリンターコネクターＣ３は、プリンター本体部４０と接続され、フィスカルユニット１０とプリンター本体部４０との間で、プリンター本体部４０を制御するためのデータのほか、上述の更新用プログラムや入力パスワードなどを含むデータ（以後、これらをまとめて「プリンターコマンドデータ」とも呼ぶ）の送受信に用いられる。フィスカルユニット１０とプリンター本体部４０との間のデータ転送は、例えば、転送速度１Ｍｂｐｓのシリアル方式などを採用することができる。
【００２８】
通信ＩＣ３１は、ＰＣコネクターＣ１およびフィスカルコネクターＣ２とそれぞれ接続され、ホストコンピューター７００やフィスカルデータ読み出し装置８００とのデータのやりとりをおこなう。メインＣＰＵ３２は、フィスカルユニット１０の全体の動作を制御する。例えば、メインＣＰＵ３２は、フィスカルメモリー２１に対してデータの読み書きをおこなう。また、メインＣＰＵ３２は、ＥＰＲＯＭ３３に格納されている制御プログラムを実行することにより、図２を用いて後述する複数の機能ブロックを実現する。
【００２９】
ＥＰＲＯＭ３３は、メインＣＰＵ３２が各種制御をおこなうためのデータや、制御プログラム（ファームウェア）を格納している。ＳＲＡＭ３４は、メインＣＰＵ３２による種々の処理においてワークエリアとして用いられる。ＲＴＣ３５は、リアルタイムクロックであり、年月日や時刻を計時する。ＥＪメモリー３７は、電子ジャーナルメモリーであり、売り上げデータ等が格納されている。サブＣＰＵ３６は、メインＣＰＵ３２からの指示により、ＥＪメモリー３７に対し、売り上げデータ等の書き込みや読み出しを制御する。また、メインＣＰＵ３２からの指示により、フィスカルコネクターＣ２を経由して、ＥＪメモリー３７に格納されている売り上げデータ等を、フィスカルデータ読み出し装置８００に送信する。
【００３０】
フィスカルメモリー基板２０は、フィスカルメモリー２１と、ＣＰＬＤ２２と、を備えている。フィスカルメモリー２１およびＣＰＬＤ２２は、エポキシ樹脂により被覆されている。フィスカルメモリー２１は、売り上げデータや税率データなどを含むデータ（以後、「フィスカルデータ」とも呼ぶ）を格納する。フィスカルメモリー２１は、一つのアドレスに一度しか書き込みのできないＯＴＰＲＯＭ（One Time Programmable ROM）や、書き換え可能な不揮発性のフラッシュＲＯＭが採用され、ホストコンピューター７００から送られる一日分の売り上げに関するデータなど会計情報が書き込まれる。ＣＰＬＤ２２は、フィスカルメモリー２１に対するデータの読み書および読み出しを制御する。
【００３１】
プリンター本体部４０は、メイン基板５０と、印刷機構６０と、を備えている。メイン基板５０は、フィスカルユニット１０および印刷機構６０とそれぞれ接続され、フィスカルユニット１０および印刷機構６０とデータのやりとりをおこなう。また、メイン基板５０は、フィスカルユニット１０からプリンターコマンドデータを受信すると、プリンターコマンドデータに含まれる内容に応じて種々の処理をおこなう。例えば、プリンターコマンドデータに印刷データが含まれている場合、メイン基板５０は、印刷機構６０を制御して印刷データに応じた印刷をおこなう。また、プリンターコマンドデータに更新用プログラムが含まれている場合、メイン基板５０は、更新用プログラムの前に取得した入力パスワードが所定の条件を満たす場合には、更新用プログラムを用いて制御プログラムの更新をおこなう。所定の条件については後述する。
【００３２】
メイン基板５０は、コネクター５１と、ＣＰＵ５２と、メモリー５３と、を備えている。コネクター５１は、インターフェイス基板３０のプリンターコネクターＣ３との間でデータのやりとりをおこなう。ＣＰＵ５２は、プリンター本体部４０の全体の動作を制御する。また、ＣＰＵ５２は、メモリー５３に格納されている制御プログラムを実行することにより、図３を用いて後述する複数の機能ブロックを実現する。メモリー５３は、ＲＡＭやＲＯＭからなり、ＣＰＵ５２が各種制御をおこなうためのデータや、制御プログラム（ファームウェア）を格納するほか、ＣＰＵ５２による種々の処理においてワークエリアとして用いられる。なお、メモリー５３に格納されている、プリンター本体部４０の全体の動作を制御する制御プログラムは、更新用プログラムを用いてインストールされている制御プログラム（自分自身）を更新する処理を制御するための制御プログラム（以後、「更新制御プログラム」とも呼ぶ）を含んでいる。また、メモリー５３には、インストールされている制御プログラムに含まれている情報であって、制御プログラムのバージョンごとに固有の情報が格納されている。本実施例では、この固有の情報とは、インストールされている制御プログラムのバージョン固有のパスワード（以後、「固有パスワード」とも呼ぶ）である。なお、後述する制御プログラムの更新処理において用いられる更新用プログラムには、上述した印刷装置１００にインストールされている制御プログラムより新しいバージョンの制御プログラムが含まれているとともに、新しいバージョン固有の固有パスワードが含まれている。
【００３３】
印刷機構６０は、例えば、用紙に印刷をおこなう印刷ヘッドと、用紙を搬送する用紙搬送部と、用紙を切断する切断部など、レシート印刷やジャーナル印刷をおこなうための種々のハードウェア機構が含まれている。
【００３４】
Ａ２．フィスカルユニットの詳細：
図２は、フィスカルユニットの機能ブロックを例示した説明図である。メインＣＰＵ３２は、ＥＰＲＯＭ３３に格納されている制御プログラムを実行することにより、フィスカルコマンド受信部３０１と、フィスカルコマンド実行部３０２と、暗号化部３０５と、暗号化済みプリンターコマンド格納部３０７と、プリンターコマンド送信部３０８と、を実現する。
【００３５】
フィスカルコマンド受信部３０１は、ホストコンピューター７００からフィスカルコマンドデータなどのデータを受信する。また、フィスカルコマンド受信部３０１は、フィスカルコマンドデータに含まれるコマンド（以後、「フィスカルコマンド」とも呼ぶ）に対応する結果を含むデータ（以後、「フィスカルレスポンスデータ」とも呼ぶ）をホストコンピューター７００に対して送信する。
【００３６】
フィスカルコマンド実行部３０２は、フィスカルコマンド受信部３０１がフィスカルコマンドデータを受信すると、フィスカルコマンドごとに決められた動作をおこなう。例えば、フィスカルコマンドデータに購入物品の品目、個数、金額、税率の種別等が含まれていると、小計や合計金額の計算、税率の計算などをおこない、フィスカルデータを生成してフィスカルメモリー２１に格納する。また、フィスカルコマンド実行部３０２は、フィスカルコマンドにレシートの印刷が必要な内容が含まれている場合には、印刷機構６０による印刷に用いられるプリンターコマンドデータを生成する。また、フィスカルコマンド実行部３０２は、フィスカルコマンドデータにプリンター本体部４０を制御する制御プログラムを更新するための更新用プログラムや、入力パスワードが含まれている場合、これらの更新用プログラムや、入力パスワードを含むプリンターコマンドデータを生成する。
【００３７】
暗号化部３０５は、プリンターコマンドデータの暗号化をおこなう。暗号化部３０５による暗号化の方法については、特に限定はないが、例えば、ランレングス符号化や、ハフマン符号化などを採用することができる。暗号化済みプリンターコマンド格納部３０７は、暗号化されたプリンターコマンドデータを格納する。本実施例では、暗号化済みプリンターコマンド格納部３０７は、ＥＰＲＯＭ３３により構成されている。プリンターコマンド送信部３０８は、暗号化済みプリンターコマンド格納部３０７に格納された暗号化されたプリンターコマンドデータをプリンター本体部４０に送信する。プリンターコマンド送信部３０８は、暗号化されたプリンターコマンドデータをパケット化して送信する。
【００３８】
Ａ３．プリンター本体部の詳細：
図３は、プリンター本体部の機能ブロックを例示した説明図である。ＣＰＵ５２は、メモリー５３に格納されている制御プログラムを実行することにより、プリンターコマンド受信部５０１と、復号部５０２と、復号済みデータ格納部５０３と、固有情報格納部５０４と、照合部５０５と、更新部５０６と、を実現する。照合部５０５および更新部５０６は、制御プログラムのうち、更新制御プログラムが実行されることにより実現される。
【００３９】
プリンターコマンド受信部５０１は、フィスカルユニット１０から暗号化されたプリンターコマンドデータを受信する。復号部５０２は、暗号化されたプリンターコマンドデータの復号化をおこなう。また、復号部５０２は、復号化したプリンターコマンドデータを復号済みデータ格納部５０３に格納する。
【００４０】
固有情報格納部５０４は、メモリー５３を含み、インストールされている制御プログラムのバージョンに対応する固有パスワードを格納している。照合部５０５は、ホストコンピューター７００から取得した入力パスワードと、固有情報格納部５０４に格納されている固有パスワードとが一致するか否かについての照合をおこなう。更新部５０６は、照合部５０５による照合が成功すると、制御プログラムを更新用プログラムに更新するための処理をおこなう。
【００４１】
更新部５０６は、更新用プログラムへの更新を許可するか否かを判定するためのフラグを備えている。更新部５０６は、照合部５０５により、パスワードの照合が成功した場合には、フラグを「許可」に設定し、パスワードの照合が失敗した場合には、フラグを「拒否」に設定する。また、更新部５０６は、フラグの状態に応じて、制御プログラムの更新をおこなうか否かを判定する。具体的には、更新部５０６は、更新用プログラムを含むプリンターコマンドデータがプリンター本体部４０に送信されたときに、フラグを参照し、フラグが「許可」の場合には、インストールされている制御プログラムを、送信されたプリンターコマンドデータに含まれる更新用プログラムに更新する。一方、フラグが「拒否」の場合には、インストールされている制御プログラムの更新をおこなわない。なお、プリンター本体部４０は、上記の他に、プリンターコマンドデータに基づいて印刷機構６０を制御してレシートに印刷をおこなう印刷制御部などを備えているが図示を省略する。
【００４２】
図４〜図７を用いて、プリンター本体部４０の制御プログラムの更新処理について説明する。図４は、メモリー５３の構成を模式的に示した説明図である。図４に示すように、メモリー５３の一部の領域（ブート領域）には、更新制御プログラムが格納されている。制御プログラムの更新処理は、メモリー５３に格納されているプログラムの読み出し位置を司るブートフラグＦｂを更新制御プログラムの読み出し位置に設定することにより実行される。更新制御プログラムを読み出すためのブートフラグＦｂの設定は、印刷装置１００に備えられた図示しない切替えスイッチによりおこなわれる。すなわち、切替えスイッチを切替えた状態で印刷装置１００の電源の入力することにより、印刷装置１００は、ブート領域からプログラムの読み出しをおこなう。ブート領域からのプログラムの読み出しにより、更新制御プログラムはＲＡＭに保持され、ＣＰＵ５２は、照合部５０５および更新部５０６の機能を実現する。
【００４３】
本実施例では、プリンター本体部４０の制御プログラムの更新処理においても、フィスカルユニット１０側のすべての機能部（フィスカルコマンド受信部３０１、フィスカルコマンド実行部３０２、暗号化部３０５、暗号化済みプリンターコマンド格納部３０７、および、プリンターコマンド送信部３０８）と、プリンター本体部４０側のすべての機能部（プリンターコマンド受信部５０１、復号部５０２、復号済みデータ格納部５０３、固有情報格納部５０４、照合部５０５、および、更新部５０６）が実現されるものとして説明するが、プリンター本体部４０の制御プログラムの更新処理においては、これらの一部の機能部が実現されない態様であってもよい。例えば、暗号化部３０５や復号部５０２が実現されず、制御プログラムの更新処理時には暗号化をおこなわない態様であってもよい。また、フィスカルユニット１０側のすべての機能部が実現されず、プリンター本体部４０は、ホストコンピューター７００と直接接続されて、更新用プログラムを受信する態様であってもよい。
【００４４】
図５は、更新処理時のホストコンピューターと印刷装置とのやりとりを説明するためのシーケンス図である。ホストコンピューター７００は、ユーザーから印刷装置１００の制御プログラムを更新する旨の入力を受け付けると、入力パスワードを含むフィスカルコマンドデータを印刷装置１００に送信する（ステップＳ４０１）。ホストコンピューター７００は、入力パスワードをユーザーからの入力により取得する。本実施例では、入力パスワードを取得するため、ホストコンピューター７００は、印刷装置１００の制御プログラムを更新する旨の入力を受け付けると、図示しないモニターにパスワード入力画面を表示する。
【００４５】
図６は、パスワードの入力画面を例示した説明図である。パスワード入力画面ＡＷは、パスワード入力フィールドＰＦとＯＫボタンＡＢと、キャンセルボタンＤＢとを備えている。ホストコンピューター７００は、ユーザーによるパスワードの入力と、ＯＫボタンＡＢの押下を検出すると、入力されたパスワード（入力パスワード）を含むフィスカルコマンドデータを生成し、印刷装置１００に送信する。なお、ホストコンピューター７００は、ＣＤなどの挿入に伴ってパスワード入力画面ＡＷをモニターに表示させてもよい。印刷装置１００は、入力パスワードを含むフィスカルコマンドデータを受信すると、パスワードの照合と、フラグの設定変更をおこなう（ステップＳ４０２）。
【００４６】
図７は、更新処理時における印刷装置の処理の流れを示したフローチャートである。更新部５０６のフラグは、印刷装置１００の電源が入れた初期の状態においては、「拒否」に設定されている（ステップＳ５０１）。ステップＳ４０１において送信された入力パスワードを含むフィスカルコマンドデータをフィスカルコマンド受信部３０１が受信すると、フィスカルコマンド実行部３０２は、入力パスワードを含むプリンターコマンドデータを生成する。
プリンターコマンド受信部５０１は、プリンターコマンド送信部３０８から送信された入力パスワードを含むプリンターコマンドデータを受信する（ステップＳ５０２：ＹＥＳ）。
【００４７】
プリンターコマンド受信部５０１がプリンターコマンドデータを受信すると、照合部５０５は、受信したプリンターコマンドデータに入力パスワードが含まれているか否かを判定する（ステップＳ５０３）。プリンターコマンドデータに入力パスワードが含まれている場合（ステップＳ５０３：ＹＥＳ）、照合部５０５は、受信したプリンターコマンドデータに含まれている入力パスワードと、メモリー５３に格納されている固有パスワードと照合をおこなう（ステップＳ５０４）。
【００４８】
入力パスワードと固有パスワードとの照合が成功した場合（ステップＳ５０４：ＹＥＳ）、更新部５０６は、フラグを「許可」に設定する（ステップＳ５０５）。一方、入力パスワードと固有パスワードとの照合が成功しなかった場合（ステップＳ５０４：ＮＯ）、更新部５０６は、フラグを更新しない。
【００４９】
印刷装置１００は、入力パスワードと固有パスワードとの照合の後、例えば、プリンターコマンドデータに更新処理を終了するための特定の制御文字が含まれている場合や、印刷装置１００に対する所定の入力があった場合には、更新処理を終了する（ステップＳ５０６：ＹＥＳ）。更新処理を終了しない場合には（ステップＳ５０６：ＮＯ）、ステップＳ５０２に戻り、新たなプリンターコマンドデータを受信する。
【００５０】
図５に戻り、印刷装置１００は、ステップＳ５０４における入力パスワードと固有パスワードとの照合結果をホストコンピューター７００に送信する（ステップＳ４０３）。ホストコンピューター７００は、照合結果を図示しないモニターに表示する。ホストコンピューター７００は、ユーザーによる所定の操作に基づいて、更新用プログラムを含むフィスカルコマンドデータを印刷装置１００に送信する（ステップＳ４０４）。ユーザーによる所定の操作とは、例えば、更新用プログラムを含むＣＤの読み込み操作であってもよいし、モニターに表示されたボタンの押下であってもよい。印刷装置１００は、ホストコンピューター７００から更新用プログラムを含むフィスカルコマンドデータを受信すると、フラグを参照して更新処理をおこなう（ステップＳ４０５）。更新用プログラムを含むフィスカルコマンドデータを受信したときの印刷装置１００の動作について図７を用いて具体的に説明する。
【００５１】
ステップＳ４０４において送信された更新用プログラムを含むフィスカルコマンドデータをフィスカルコマンド受信部３０１が受信すると、フィスカルコマンド実行部３０２は、更新用プログラムを含むプリンターコマンドデータを生成する。プリンターコマンド受信部５０１は、プリンターコマンド送信部３０８から送信された更新プログラムを含むプリンターコマンドデータを受信する（ステップＳ５０２：ＹＥＳ）。照合部５０５により、受信したプリンターコマンドデータに入力パスワードが含まれていないと判定されると（ステップＳ５０３：ＮＯ）、更新部５０６は、プリンターコマンドデータに更新用プログラムが含まれているか否かを判定する（ステップＳ５１０）。
【００５２】
プリンターコマンドデータに更新用プログラムが含まれている場合（ステップＳ５１０：ＹＥＳ）、更新部５０６は、フラグが「許可」になっているか否かを確認する（ステップＳ５１１）。フラグが「許可」になっている場合（ステップＳ５１１：ＹＥＳ）、更新部５０６は、プリンターコマンドデータに含まれている更新用プログラムを用いて、インストールされている制御プログラムの更新をおこなう（ステップＳ５１２）。具体的には、更新部５０６は、メモリー５３のＲＯＭに格納されている制御プログラムを更新用プログラムに含まれる新しい制御プログラムに更新する。このとき、更新部５０６は、ＲＡＭに保持されている更新制御プログラムにより実現されているため、ＲＯＭに格納されている制御プログラムの全体を更新することができる。また、このとき、更新部５０６は、固有情報格納部５０４に格納されている固有パスワードを、更新用プログラムに含まれている固有パスワードに更新する。
【００５３】
一方、フラグが「拒否」になっている場合（ステップＳ５１１：ＮＯ）、更新部５０６は、制御プログラムの更新をおこなわない。なお、ステップＳ５１２において、更新部５０６は、ＲＯＭに格納されている制御プログラムの全体を更新するとしているが、更新部５０６は、制御プログラムの一部のみを更新する態様であってもよい。更新用プログラムを用いて更新された新しい制御プログラムは、更新された制御プログラムと同様の機能を備える。
【００５４】
プリンターコマンドデータに更新用プログラムが含まれていない場合（ステップＳ５１０：ＮＯ）、印刷装置１００は、プリンターコマンドデータに含まれるその他のコマンドに対応した処理をおこなう（ステップＳ５１３）。ステップＳ５１２における制御プログラムの更新の後、もしくは、ステップＳ５１１においてフラグが「拒否」の場合、もしくは、ステップＳ５１３において所定の処理をおこなった後、印刷装置１００は、更新処理を終了するか否かの判定をおこなう（ステップＳ５０６）。印刷装置１００が更新処理を終了するため条件は上述の通りである。図５に戻り、更新処理を終了すると、印刷装置１００は、更新の成否などの結果を含む終了通知をホストコンピューター７００に送信する（ステップＳ４０６）。ホストコンピューター７００は、更新の成否を図示しないモニターに表示する。
【００５５】
本実施例における固有パスワードは、特許請求の範囲における「固有情報」に該当する。本実施例における固有情報格納部５０４は、特許請求の範囲における「記憶部」に該当する。本実施例における入力パスワードは、特許請求の範囲における「照合情報」に該当する。本実施例におけるプリンターコマンド受信部５０１は、特許請求の範囲における「取得部」に該当する。
【００５６】
以上説明した、第１の実施例に係る印刷装置１００によれば、インストールされている側の制御プログラムのバージョンに固有の固有パスワードと、取得した入力パスワードとの照合が成功した場合に、インストールされている制御プログラムの少なくとも一部を更新用のコンピュータープログラムに更新するため、印刷装置１００において、印刷装置１００を制御するコンピュータープログラムのバージョンダウンをおこなうという不正の抑制を図ることができる。具体的には、印刷装置１００にインストールされている制御プログラムのバージョンダウンをおこなう場合であっても、印刷装置１００は、インストールされている制御プログラムのバージョンに固有の固有パスワードと、入力パスワードとが一致しないと更新がおこなわれないため、制御プログラムの不正なバージョンダウンを抑制することができる。
【００５７】
図８は、本発明による効果の一部を説明するための説明図である。図８（ａ）は、比較例におけるプログラムの更新を説明するための説明図である。図８（ｂ）は、本発明によるプログラムの更新を説明するための説明図である。図８（ａ）に示すように、従来は、制御プログラムの更新の際には、制御プログラムのバージョンに関係なく共通の固有パスワード（Password Ａ）が用いられていた。この場合、固有パスワードが管理されていれば、一定の不正は抑制できるが、バージョンアップ時の通信ログデータ等から固有パスワードが不正に取得された場合には不正な更新を抑制できない虞があった。また、パスワードの管理者が固有パスワードを他者に漏洩する虞もあった。しかし、本発明によれば、図８（ｂ）に示すように、固有パスワードが、印刷装置１００にインストールされている制御プログラムのバージョンごとに異なるため、バージョンアップ時の通信ログデータ等から固有パスワード（Password Ａ）が不正に取得された場合であっても、更新に必要な固有パスワード（Password Ｃ）と異なることから、不正なバージョンダウンを抑制することができる。また、パスワードの管理者が、制御プログラムＶｅｒ２．０の固有パスワード（Password Ｂ）を他者に漏洩した場合であっても不正なバージョンダウンを抑制することができる。
【００５８】
また、本発明によれば、管理者等がバージョンアップ時などにおいて以前入力した固有パスワードでは制御プログラムの更新ができないため、不正なバージョンダウンを抑制することができる。すなわち、制御プログラムを更新する際の固有パスワードが制御プログラムのバージョンごとに異なっていても、更新の際、更新する側の制御プログラムに含まれる固有パスワードの入力を必要とする場合には、制御プログラムの不正なバージョンダウンを抑制することができなかった。なぜなら、例えば、制御プログラムＶｅｒ１．０から制御プログラムＶｅｒ２．０にバージョンアップをする際に制御プログラムＶｅｒ２．０の固有パスワードが知られると、その後、制御プログラムＶｅｒ２．０よりバージョンの新しい制御プログラムＶｅｒ３．０がインストールされている印刷装置に対しても制御プログラムＶｅｒ２．０をインストールすることが可能となるためである。しかし、本発明によれば、更新される側の固有パスワードを用いて更新をおこなうため、例えば、制御プログラムＶｅｒ２．０の固有パスワードが知られていても、制御プログラムＶｅｒ３．０の固有パスワードが知られていなければ、制御プログラムＶｅｒ３．０がインストールされている印刷装置に対して制御プログラムＶｅｒ２．０をインストールすることができないため、不正なバージョンダウンを抑制することができる。
【００５９】
Ｂ．第２実施例：
Ｂ１．印刷装置の構成：
第１実施例では、プリンター本体部４０の制御プログラムを更新する態様について説明したが、第２実施例では、フィスカルユニット１０の制御プログラムを更新する態様について説明する。第２実施例に係る印刷装置１００の構成は、メインＣＰＵ３２が制御プログラムを実行することにより実現される機能ブロック以外については、第１実施例と同様のため説明を省略する。
【００６０】
Ｂ２．フィスカルユニットの詳細：
図９は、フィスカルユニットの機能ブロックを例示した説明図である。メインＣＰＵ３２は、ＥＰＲＯＭ３３に格納されている制御プログラムを実行することにより、フィスカルコマンド受信部３０１と、固有情報格納部３１４と、照合部３１５と、更新部３１６と、を実現する。
【００６１】
固有情報格納部３１４は、ＥＰＲＯＭ３３を含み、インストールされている制御プログラムのバージョンに対応する固有パスワードを格納している。固有情報格納部３１４は、第１実施例のプリンター本体部４０において実現された固有情報格納部５０４と対応している。照合部３１５は、ホストコンピューター７００から取得した入力パスワードと、固有情報格納部３１４に格納されている固有パスワードとが一致するか否かについての照合をおこなう。照合部３１５は、第１実施例のプリンター本体部４０において実現された照合部５０５と対応している。更新部３１６は、照合部３１５による照合が成功すると、制御プログラムを更新用プログラムに更新するための処理をおこなう。更新部３１６は、第１実施例のプリンター本体部４０において実現された更新部５０６と対応している。
【００６２】
第１実施例で示した図４は、本実施例におけるＥＰＲＯＭ３３の構成と同様である。すなわち、ＥＰＲＯＭ３３の一部の領域（ブート領域）には、更新制御プログラムが格納されている。第２実施例においても、制御プログラムの更新処理は、メモリー５３に格納されているプログラムの読み出し位置を司るブートフラグＦｂを更新制御プログラムの読み出し位置に設定することにより実行される。
【００６３】
第１実施例で示した図５〜図７についても、本実施例における、フィスカルユニット１０の制御プログラムの更新処理と同様である。すなわち、図５のステップＳ４０１において送信された入力パスワードを含むフィスカルコマンドデータをフィスカルコマンド受信部３０１が受信すると、照合部３１５は、受信したフィスカルコマンドデータに入力パスワードが含まれているか否かを判定する（ステップＳ５０３）。フィスカルコマンドデータに入力パスワードが含まれているため（ステップＳ５０３：ＹＥＳ）、照合部３１５は、受信したフィスカルコマンドデータに含まれている入力パスワードと、ＥＰＲＯＭ３３に格納されている固有パスワードと照合をおこなう（ステップＳ５０４）。
【００６４】
また、図５のステップＳ４０４において送信された更新用プログラムを含むフィスカルコマンドデータをフィスカルコマンド受信部３０１が受信すると、照合部３１５により、受信したフィスカルコマンドデータに入力パスワードが含まれていないと判定された後（ステップＳ５０３：ＮＯ）、更新部３１６は、フィスカルコマンドデータに更新用プログラムが含まれているか否かを判定する（ステップＳ５１０）。フィスカルコマンドデータに更新用プログラムが含まれているため（ステップＳ５１０：ＹＥＳ）、更新部３１６は、フラグが「許可」になっている場合（ステップＳ５１１：ＹＥＳ）、フィスカルコマンドデータに含まれている更新用プログラムを用いて、インストールされている制御プログラムの更新をおこなう（ステップＳ５１２）。なお、第２実施例では、フィスカルコマンド受信部３０１が、特許請求の範囲における「取得部」に該当する。
【００６５】
以上説明した、第２の実施例に係る印刷装置１００によれば、プリンター本体部４０の制御プログラムに限られず、フィスカルユニット１０の制御プログラムの更新時についても、インストールされている制御プログラムのバージョンに固有の固有パスワードと、取得した入力パスワードとの照合が成功した場合に、制御プログラムの少なくとも一部を更新用のコンピュータープログラムに更新するため、一度提供されたコンピュータープログラムを用いてバージョンダウンをおこなう不正の抑制を図ることができる。
【００６６】
Ｃ．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００６７】
Ｃ１．変形例１：
図１０は、変形例における印刷装置の構成を概略的に示す説明図である。本実施例では、インターフェイス基板３０およびフィスカルメモリー基板２０は、フィスカルユニット１０として、印刷装置１００の内部に配置されていたが、図１０に示すように、インターフェイス基板３０およびフィスカルメモリー基板２０は、ホストコンピューター７００、および、印刷装置１００にそれぞれ接続される処理装置９００の内部に配置されていてもよい。すなわち、第１実施例は、フィスカルユニット１０を備えていない印刷装置１００についても適用することができる。また、第２実施例は、プリンター本体部４０を備えていない処理装置９００についても適用することができる。
【００６８】
Ｃ２．変形例２：
本実施例は、第１実施例において、プリンター本体部４０の制御プログラムを更新する態様を説明し、第２実施例において、フィスカルユニット１０の制御プログラムを更新する態様を説明したが、本発明は、プリンター本体部４０の制御プログラムとフィスカルユニット１０の制御プログラムの両方を同時に更新する態様であっても適用することができる。
【００６９】
Ｃ３．変形例３：
本実施例では、ブート領域からのプログラムの読み出しのために、スイッチによる切り替えをおこなっているが、スイッチによる切り替えをおこなわず、例えば、入力パスワードを含むフィスカルコマンドデータを受信すると更新制御プログラムの読み出しをおこなう態様であってもよい。
【００７０】
Ｃ４．変形例４：
本実施例では、印刷装置１００は、入力パスワードをホストコンピューター７００から取得しているが、タッチパネルなどの入力部を備え、ユーザーから直接的に入力パスワードを取得する構成であってもよい。また、印刷装置１００は、更新用プログラムをホストコンピューター７００から取得しているが、ＣＤやフラッシュメモリ等の読み取り部を備え、更新用プログラムをＣＤ等から直接的に読み取る構成であってもよい。
【００７１】
Ｃ５．変形例５：
本実施例では、印刷装置１００は、制御プログラムの更新の際、更新される側の制御プログラムに含まれている固有パスワードのみを用いて照合をおこなっているが、制御プログラムの更新の際、更新される側の制御プログラムに含まれている固有パスワードのみでなく、更新する側の制御プログラムに含まれている固有パスワードについても照合をおこなう態様としてもよい。また、本実施例では、固有情報としてパスワードを用いているが、照合可能なものであればパスワード以外を固有情報として用いてもよい。例えば、固有情報として制御プログラムを更新可能な時刻が設定されていてもよいし、指紋や音声、更新手順などが設定されていてもよい。
【００７２】
Ｃ６．変形例６：
本実施例に係る印刷装置１００は、上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【００７３】
Ｃ７．変形例７：
本発明は、種々の態様で実現することが可能であり、例えば、上記コンピューターを備えるプリンター、プリントシステム、印刷制御装置、レジスター等で実現することができる。また、コンピュータープログラムの更新方法、コンピュータープログラムの更新制御方法、および、これらの方法または装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した記録媒体、そのコンピュータープログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【符号の説明】
【００７４】
１０…フィスカルユニット
２０…フィスカルメモリー基板
２１…フィスカルメモリー
３０…インターフェイス基板
３１…通信ＩＣ
３２…メインＣＰＵ
３３…ＥＰＲＯＭ
３４…ＳＲＡＭ
３５…ＲＴＣ
３６…サブＣＰＵ
３７…ＥＪメモリー
４０…プリンター本体部
５０…メイン基板
５１…コネクター
５２…ＣＰＵ
５３…メモリー
６０…印刷機構
Ｃ１…ＰＣコネクター
Ｃ２…フィスカルコネクター
Ｃ３…プリンターコネクター
ＦＦＣ…フレキシブルフラットケーブル
１００…印刷装置
７００…ホストコンピューター
８００…フィスカルデータ読み出し装置
３０１…フィスカルコマンド受信部
３０２…フィスカルコマンド実行部
３０５…暗号化部
３０７…プリンターコマンド格納部
３０８…プリンターコマンド送信部
３１４…固有情報格納部
３１５…照合部
３１６…更新部
５０１…プリンターコマンド受信部
５０２…復号部
５０３…復号済みデータ格納部
５０４…固有情報格納部
５０５…照合部
５０６…更新部
９００…処理装置
【図１】
2011154513.tif 000003
【図２】
2011154513.tif 000004
【図３】
2011154513.tif 000005
【図４】
2011154513.tif 000006
【図５】
2011154513.tif 000007
【図６】
2011154513.tif 000008
【図７】
2011154513.tif 000009
【図８】
2011154513.tif 000010
【図９】
2011154513.tif 000011
【図１０】
2011154513.tif 000012