(57)【要約】【課題】デバイス稼働中にファームウェア書換えのできる情報処理装置のプログラムを提供すること。【解決手段】デバイス２００のファームウェア２３０書換えを実行させるプログラムにおいて、デバイスに所定のジョブを実行させるためのアプリケーション１００と、デバイスにファームウェア書換えを指示するファームウェア書換えプログラム１２０と、アプリケーションから指示された所定のジョブを受け付けるＡＰＩモジュールＡ１３０と、ファームウェア書換えプログラムからの書換え指示を受け付けるＡＰＩモジュールＢ１４０と、ＡＰＩモジュールＡ１３０からの所定のジョブ及びＡＰＩモジュールＢ１４０からの書換え指示を、それぞれデバイスに送信するデバイス制御モジュール１５０と、をコンピュータに実現させる。【選択図】図６
2018072898.tif 000002
【特許請求の範囲】
【請求項１】
接続されるデバイスを制御する情報処理装置のコンピュータに前記デバイスのファームウェア書換えを実行させるプログラムにおいて、
前記デバイスに所定のジョブを実行させるためのアプリケーションと、
前記デバイスにファームウェア書換えを指示するファームウェア書換えプログラムと、
前記アプリケーションから指示された所定のジョブを受け付ける第１のＡＰＩモジュールと、
前記ファームウェア書換えプログラムからの書換え指示を受け付ける第２のＡＰＩモジュールと、
前記第１のＡＰＩモジュールからの所定のジョブに対応するコマンド及び前記第２のＡＰＩモジュールからの書換え指示に対応するコマンドを、それぞれ前記デバイスに送信するデバイス制御モジュールと、
を前記コンピュータに実現させる
ことを特徴とする情報処理装置のプログラム。
【請求項２】
前記デバイス制御モジュールは、前記ファームウェア書換えプログラムから前記第２のＡＰＩモジュールを介して、ファームウェア書換え処理開始指示を受けた場合には、前記デバイスのジョブ実行状態からファームウェア書換え可能状態に遷移し、前記ファームウェア書換えプログラムから第２のＡＰＩモジュールを介して、ファームウェア書換え処理終了指示を受けた場合には、ファームウェア書換え可能状態からデバイスのジョブ実行状態に遷移する
ことを特徴とする請求項１に記載の情報処理装置のプログラム。
【請求項３】
前記デバイス制御モジュールは、前記第２のＡＰＩモジュールからの書換え指示を受けて、デバイスのファームウェアの書換えを実行するファームウェア書換え部を有する
ことを特徴とする請求項１に記載の情報処理装置のプログラム。
【請求項４】
前記デバイス制御モジュールは、前記ファームウェア書換えプログラムからの書換え指示により前記ファームウェアの書換え処理中に、前記アプリケーションにより前記第１のＡＰＩモジュールから所定のジョブ処理の要求があった場合には、デバイスビジー情報を、前記第１のＡＰＩモジュールを介して、前記アプリケーションに通知する
ことを特徴とする請求項１に記載の情報処理装置のプログラム。
【請求項５】
接続されるデバイスを制御する情報処理装置において、
前記情報処理装置は、コンピュータと、前記コンピュータに前記デバイスのファームウェアの書換え処理を実現させるプログラムを有し、
前記プログラムは、前記コンピュータに、
前記デバイスに所定のジョブを実行させるためのアプリケーションと、
前記デバイスにファームウェア書換えを指示するファームウェア書換えプログラムと、
前記アプリケーションから指示された所定のジョブを受け付ける第１のＡＰＩモジュールと、
前記ファームウェア書換えプログラムからの書換え指示を受け付ける第２のＡＰＩモジュールと、
前記第１のＡＰＩモジュールからの所定のジョブに対応するコマンド及び前記第２のＡＰＩモジュールからの書換え指示に対応するコマンドを、前記デバイスに送信するデバイス制御モジュールと、を実現させる
ことを特徴とする情報処理装置。
【請求項６】
前記情報処理装置は、ＰＯＳ装置であって、
前記デバイスは、プリンタ、磁気カードリーダ、自動釣銭釣札機またはバーコードスキャナの少なくともいずれか１つである
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
接続されるデバイスを制御する情報処理装置のコンピュータにより実行されるデバイスのファームウェア書換え方法において、
プログラムは、前記コンピュータに、
前記デバイスに所定のジョブを実行させるためのアプリケーションと、
前記デバイスに該デバイスのファームウェア書換えを指示するファームウェア書換えプログラムと、
前記アプリケーションから指示された所定のジョブを受け付ける第１のＡＰＩモジュールと、
前記ファームウェア書換えプログラムからの書換え指示を受け付ける第２のＡＰＩモジュールと、
前記第１のＡＰＩモジュールからの所定のジョブに対応するコマンド及び前記第２のＡＰＩモジュールからの書換え指示に対応するコマンドを、前記デバイスに送信するデバイス制御モジュールと、を実現させ、
前記デバイス制御モジュールが、前記ファームウェア書換えプログラムから前記第２のＡＰＩモジュールを介して、ファームウェア書換え処理開始指示を受けた場合には、前記デバイス制御モジュールを、前記デバイスのジョブ実行状態からファームウェア書換え可能状態に遷移させ、
前記デバイス制御モジュールが、前記ファームウェア書換えプログラムから第２のＡＰＩモジュールを介して、ファームウェア書換え処理終了指示を受けた場合には、前記デバイス制御モジュールを、ファームウェア書換え可能状態からデバイスのジョブ実行状態に遷移させる
ことを特徴とするファームウェア書換え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、接続される周辺機器のファームウェアを書換える情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置には、スキャナやプリンタ等の周辺機器（以下、デバイスと称す）が接続され、情報処理装置の制御により各処理が実行される。これらデバイスには、ファームウェアと呼ばれるハードウェアを制御するプログラムが組み込まれている。このデバイスのファームウェアは、機能追加等のために後から更新できるようになっている。
【０００３】
デバイスの中でも、高価で高機能なデバイス、例えば高機能プリンタには、デバイスの使用中でも内部のファームウェアを書き換える機能を有するアプリケーションが備えられることが多い。例えば、特許文献１には、印刷ジョブの実行状態に拘わらず、印刷制御部に入力される更新命令に基づいて当該印刷制御部のファームウェアの更新を速やかに開始することができるプリンタのファームウェア更新方法が、提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−４８０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、情報処理装置がＰＯＳ（Point of sale）装置のような場合には、接続されるデバイスは、コスト重視のために最小構成のハードウェアから構成されるのが一般的である。そして、このような構成のデバイスでは、前述のようなデバイスのアプリケーションにファームウェアの書き換え機能を備えることは難しい。従って、このようなデバイスでファームウェアの書換えを行う場合は、アプリケーションによって占有されたデバイスを一旦解放し、ファームウェア書換えプログラムを使って書換えを行う必要があった。つまり、アプリケーションとファームウェア書換え処理は、両立させることができず、両者は排他的動作となる。
【０００６】
このため、ＰＯＳ稼働中にデバイスのファームウェア書換えを行うことができず、閉店後の夜間などに保守員によるファームウェア書換え作業を行う必要があり保守コストアップの要因になっていた。保守コスト低減のため、ＰＯＳ稼働中にファームウェアを書き換える要望があるが、顧客ごとのアプリケーションの改修は現実的ではなく、他の方式による解決が望まれていた。
【０００７】
本発明は、上記課題に鑑み、デバイスへの新たな機能の組込みや既存のアプリケーションを改修することなく、デバイス稼働中にファームウェア書換えのできる情報処理装置のプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、接続されるデバイスを制御する情報処理装置のコンピュータに前記デバイスのファームウェア書換えを実行させるプログラムにおいて、前記デバイスに所定のジョブを実行させるためのアプリケーションと、前記デバイスにファームウェア書換えを指示するファームウェア書換えプログラムと、前記アプリケーションから指示された所定のジョブを受け付ける第１のＡＰＩモジュールと、前記ファームウェア書換えプログラムからの書換え指示を受け付ける第２のＡＰＩモジュールと、前記第１のＡＰＩモジュールからの所定のジョブ及び前記第２のＡＰＩモジュールからの書換え指示を、それぞれ前記デバイスに送信するデバイス制御モジュールと、を前記コンピュータに実現させることを特徴とする情報処理装置のプログラム。
【発明の効果】
【０００９】
本発明によれば、デバイスへの新たな機能の組込みや既存のアプリケーションを改修することなく、デバイス稼働中にファームウェア書換えのできる情報処理装置のプログラムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】ＰＯＳシステムの構成例である。
【図２】ＰＯＳのハードウェアブロック図である。
【図３】デバイスのハードウェアブロック図である。
【図４】従来の書換え処理における、ＰＯＳのモジュール構成の例である
【図５Ａ】従来の書換え処理を示すシーケンス図である。
【図５Ｂ】従来の書換え処理を示すシーケンス図である。
【図６】本発明の書換え処理における、ＰＯＳのモジュール構成の例である。
【図７Ａ】本発明の書換え処理を示すシーケンス図である。
【図７Ｂ】本発明の書換え処理を示すシーケンス図である。
【図７Ｃ】本発明の書換え処理を示すシーケンス図である。
【図８】ファームウェア書換えプログラムによる処理を説明するフローチャートである。
【図９】ＡＰＩモジュールによる処理を説明するフローチャートである。
【図１０】デバイス制御モジュールによる処理を説明するフローチャートである。
【図１１】復帰情報と通知データのフォーマット例である。
【発明を実施するための形態】
【００１１】
以下、図面に従って本発明の実施形態を説明する。以下では、接続されるデバイスのファームウェアを書換える情報処理装置として、ＰＯＳ（Point of sale）装置（以下、ＰＯＳと略す）を例にする。
【００１２】
図１は、ＰＯＳシステム１の構成例である。ＰＯＳシステム１は、ＰＯＳ１０とＰＯＳ１０に接続される各種のデバイス２００から構成される。ＰＯＳ１０と各デバイス２００は、有線（例えば、ＵＳＢケーブル）または無線（例えば、無線ＬＡＮ）で接続される。デバイス２００は、例えば、プリンタ２００ａ、磁気カードリーダ２００ｂ、自動釣銭釣札機２００ｃ、タッチスキャナ２００ｄ等である。
【００１３】
図２は、ＰＯＳ１０のハードウェアブロック図である。ＰＯＳ１０は、ＣＰＵ１２、ＲＡＭ１４、不揮発性記憶部１６、通信Ｉ／Ｏ１８、入出力Ｉ／Ｏ２０、表示部２２、入力部２４及びバス２６を有する。
【００１４】
ＣＰＵ１２は、不揮発性記憶部１６からプログラムを読込み、読込んだプログラムに従って、ＰＯＳ１０を統括的に制御する。プログラムには、後述するアプリケーション、ファームウェア書換えプログラム、ＯＰＯＳＡＰＩモジュール、デバイス制御プログラム等が含まれる。
【００１５】
ＲＡＭ１４は、不揮発性記憶部１６から読込まれたプログラムや各種データを展開するワーキングエリアである。不揮発性記憶部１６は、ＨＤＤ（Hard Disk Drive）やフラッシュメモリである。不揮発性記憶部１６には、アプリケーション等の前述した各種プログラムが記憶される。
【００１６】
通信Ｉ／Ｏ１８は、接続されるデバイス２００とデータやコマンドの送受信を行う。また、通信Ｉ／Ｏ１８は、ネットワーク（ＮＷ）経由で接続されるＰＯＳサーバ２等とデータの送受信を行う。入出力Ｉ／Ｏ２０は、ＰＯＳ１０に一体的に設けられた表示部２２や入力部２４とのデータの送受信を行う。
【００１７】
表示部２２は、例えばＬＣＤ（liquid crystal display）で、購入物品のリストや各種データあるいは操作メニュー等を表示する。入力部２４は、例えば、表示部２２と一体的に設けられるタッチパネルで、操作者（店員）から入金額や操作指示が入力される。ＣＰＵ１２と、ＲＡＭ１４等の各部位がバス２６で接続される。
【００１８】
図３は、デバイス２００のハードウェアブロック図である。デバイス２００は、前述のようにプリンタ２００ａ等であって、具体的な機能はそれぞれ異なるが、各デバイス２００の制御系の基本構成は、図３に示すような構成で、共通するものである。
【００１９】
デバイス２００は、ＣＰＵ２１０、フラッシュメモリ２１２、ＲＡＭ２１４、ＲＯＭ２１６、  通信Ｉ／Ｏ２１８、デバイスＩ／Ｏ２２０及びバス２２２を有する。ＣＰＵ２１０は、フラッシュメモリ２１２やＲＯＭ２１６からプログラムを読込み、読込んだプログラムに従って、デバイス２００を制御する。
【００２０】
フラッシュメモリ２１２は、不揮発性でかつ書換え可能な記憶部で、ファームウェア２３０（図４参照）を格納する。ファームウェア２３０とは、デバイスの基本的な制御を司る機能を持ったプログラムである。ＲＡＭ２１４は、フラッシュメモリ２１２やＲＯＭ２１６から読込まれたプログラムを展開するワーキングエリア、およびＰＯＳ１０から送信されたデータを一時的に記憶する記憶部である。ＲＯＭ２１６は、不揮発性の記憶部で、フラッシュメモリ２１２に記憶されたファームウェア２３０を書換える機能を備えるプログラムを格納する。
【００２１】
通信Ｉ／Ｏ２１８は、ＰＯＳ１０とコマンドやデータの送受信を行う。デバイスＩ／Ｏ２２０は、デバイス２００に備えられる固有の機能部との入出力を制御する。デバイス２００がプリンタ２００ａの場合には、デバイスＩ／Ｏ２２０は、ＣＰＵ２１０による制御に基づき、印字部や紙送り部等（不図示）を制御する。ＣＰＵ２１０とＲＡＭ２１４等の各部位がバス２２２で接続される。
【００２２】
次に、ＰＯＳ１０によるファームウェア２３０の書換え処理について説明する。なお、以下では、特にことわりのない限り、デバイス２００としてプリンタ２００ａを例にする。最初に、比較例として、従来のファームウェアの書換え処理を、図４、図５Ａ及び図５Ｂを参照して説明する。
【００２３】
〈従来のファームウェアの書換え処理〉
図４は、従来のファームウェアの書換え処理（更新処理とも呼ばれる）における、ＰＯＳ１０のモジュール構成の例である。ＰＯＳ１０のモジュールは、アプリケーション１００、ＯＰＯＳモジュール１１０及びファームウェア書換えプログラム１２０から構成される。
【００２４】
アプリケーション１００は、ＰＯＳ業務を実行するためのプログラムである。ＯＰＯＳモジュール１１０は、ＯＰＯＳ(Open Point of Serviceの略)規約に準拠したＯＰＯＳＡＰＩ（Application Programming Interface）を有し、デバイス２００とのやりとりを行うプログラムである。ＯＰＯＳ規約とは、ＰＯＳシステムに関わるデバイス２００とアプリケーション１００のインターフェースを標準化・規格化した流通業界標準仕様である。
【００２５】
ファームウェア書換えプログラム１２０は、デバイス２００のファームウェア２３０を書換える機能（ファームウェア書換え部１２２）を有するプログラムである。ファームウェア書換え部１２２は、デバイス２００のファームウェア２３０を新たなファームウェア２３０に書換えるものである。
【００２６】
通常のＰＯＳ業務処理では、アプリケーション１００からＯＰＯＳモジュール１１０に、ジョブに応じて所定の指示がなされ、アプリケーション１００からの指示に対応するコマンドがＯＰＯＳモジュール１１０からデバイス２００に送信される。デバイス２００は、受信したコマンドに対応する処理を実行する。
【００２７】
ファームウェア２３０の書換えは、アプリケーション１００をいったん終了させた後に行われる。ファームウェア書換え部１２２が、デバイス２００をオープンし、ファームウェア書換えを実行する。ファームウェア２３０の書換え後に、ファームウェア書換え部１２２は、デバイス２００をクローズする。
【００２８】
図５Ａ及び図５Ｂは、従来のファームウェア２３０の書換え処理を示すシーケンス図である。なお、図５Ａ及び図５Ｂでは、「アプリケーション」の欄はアプリケーション１００による処理を示し、「ＯＰＯＳモジュール」の欄はＯＰＯＳモジュールによる処理を示し、「ファームウェア」の欄はファームウェア２３０による処理を示し、「ファームウェア書換えプログラム」の欄はファームウェア書換えプログラム１２０による処理を示す。
【００２９】
まず、運用開始処理を説明する。アプリケーション１００により、プリンタ使用開始がＯＰＯＳモジュール１１０に指示される（Ｔ１０）。ＯＰＯＳモジュール１１０により、プリンタオープンコマンドがファームウェア２３０に送信される（Ｔ１１）。ファームウェア２３０により、プリンタ初期化処理が行われ、印刷可能状態となる。ファームウェア２３０により、ＯＰＯＳモジュール１１０に対応する応答が送信される（Ｔ１２）。ＯＰＯＳモジュール１１０により、アプリケーション１００に応答が通知される（Ｔ１３）。
【００３０】
アプリケーション１００により、プリンタ設定がＯＰＯＳモジュール１１０に指示される（Ｔ１４）。ＯＰＯＳモジュール１１０により、プリンタ設定コマンドがファームウェア２３０に送信される（Ｔ１５）。ファームウェア２３０により、設定データが受信され、プリンタ設定が変更される。ファームウェア２３０により、ＯＰＯＳモジュール１１０に対応する応答が送信される（Ｔ１６）。ＯＰＯＳモジュール１１０により、アプリケーション１００に応答が通知される（Ｔ１７）。
【００３１】
次に、ＰＯＳ業務処理を説明する。アプリケーション１００により、印刷依頼がＯＰＯＳモジュール１１０に指示される（Ｔ２０）。ＯＰＯＳモジュール１１０により、印刷データが作成され、作成された印刷データがファームウェア２３０に送信される（Ｔ２１）。ファームウェア２３０により、印刷データが受信され、印刷処理が実行される。ファームウェア２３０により、ＯＰＯＳモジュール１１０に対応する応答が送信される（Ｔ２２）。ＯＰＯＳモジュール１１０により、アプリケーション１００に応答が通知される（Ｔ２３）。
【００３２】
再度、印刷依頼があった場合も同様で、Ｔ２４〜Ｔ２７の処理を行う。Ｔ２４〜Ｔ２７の説明は省略する。
【００３３】
次に、運用終了処理を説明する。アプリケーション１００により、プリンタ使用終了がＯＰＯＳモジュール１１０に指示される（Ｔ３０）。ＯＰＯＳモジュール１１０により、プリンタクローズコマンドがファームウェア２３０に送信される（Ｔ３１）。ファームウェア２３０により、プリンタ終了処理が実行される。デバイス２００は、印刷不可状態になる。ファームウェア２３０により、ＯＰＯＳモジュール１１０に応答が送信される（Ｔ３２）。ＯＰＯＳモジュール１１０により、アプリケーション１００に応答が通知される（Ｔ３３）。アプリケーション１００により、アプリケーション終了処理がされる（Ｔ３４）。
【００３４】
次に、図５Ｂに進み、ファームウェア２３０の書換え処理を説明する。アプリケーション１００が終了した状態である。ファームウェア書換えプログラム１２０により、プリンタオープンコマンドがファームウェア２３０に送信される（Ｔ５０）。ファームウェア２３０により、プリンタ初期化処理が行われ、印刷可能状態となる。ファームウェア２３０により、ファームウェア書換えプログラム１２０に応答が通知される（Ｔ５１）。
【００３５】
ファームウェア書換えプログラム１２０のファームウェア書換え部１２２により、書換え用ファームウェアの更新データが準備される（Ｔ５２）。ファームウェア書換え部１２２により、ファームウェア書換え指示コマンドがファームウェア２３０に送信される（Ｔ５３）。ファームウェア２３０により、ファームウェア書換え指示コマンドが受信され、印刷不可状態にされ、ファームウェア書換え処理が起動される。ファームウェア２３０により、ファームウェア書換え部１２２に応答が送信される（Ｔ５４）。
【００３６】
ファームウェア書換え部１２２により、書換えデータである更新データがファームウェア２３０に送信される（Ｔ５５）。ファームウェア２３０により、更新データの受信が終了したら、ファームウェア書換え部１２２に応答が送信される（Ｔ５６）。
【００３７】
ファームウェア書換えプログラム１２０により、プリンタクローズコマンドがファームウェア２３０に送信される（Ｔ５７）。ファームウェア２３０により、プリンタ終了処理が行われる。ファームウェア２３０により、ファームウェア書換えプログラム１２０に応答が通知される（Ｔ５８）。ファームウェア書換えプログラム１２０により、プログラムが終了される（Ｔ５９）。
【００３８】
ファームウェア２３０により、プリンタ終了処理後に、ファームウェア書換え処理が行われる（Ｔ６０）。ファームウェア２３０により、ファームウェア書換え処理終了後、ファームウェアの再起動が行われる（Ｔ６１）。
【００３９】
ファームウェア２３０書換え後の処理を、簡単に説明する。運用開始処理であるプリンタ使用開始（Ｔ６０〜Ｔ６３）及びプリンタ設定（Ｔ６４〜Ｔ６７）が行われる。プリンタ使用開始（Ｔ６０〜Ｔ６３）及びプリンタ設定（Ｔ６４〜Ｔ６７）は、前述したＴ１０〜Ｔ１７と同一である。運用開始処理終了後、ＰＯＳ業務処理である印刷依頼（Ｔ７０〜Ｔ７３）が行われる。印刷依頼（Ｔ７０〜Ｔ７３）は、前述したＴ２０〜Ｔ２３と同一である。
【００４０】
以上のように、従来は、書換え処理時に、アプリケーション１００を一旦終了させる必要があった。
【００４１】
〈本発明によるファームウェアの書換え処理〉
次に、本発明によるファームウェア２３０の書換え処理を説明する。図６は、本発明のファームウェア２３０の書換え処理における、ＰＯＳ１０のモジュール構成の例である。
【００４２】
ＰＯＳ１０のモジュールは、アプリケーション１００、ＯＰＯＳＡＰＩモジュールＡ（ＡＰＩモジュールＡと略す）１３０、ＯＰＯＳＡＰＩモジュールＢ（ＡＰＩモジュールＢと略す）１４０、デバイス制御モジュール１５０を有する。また、ＡＰＩモジュールＡ１３０は第１のＡＰＩモジュール、ＡＰＩモジュールＢ１４０は第２のＡＰＩモジュールとも呼ぶ。
【００４３】
前述のようにアプリケーション１００は、ＰＯＳ業務を実行するためのプログラムである。ファームウェア書換えプログラム１２０は、デバイス２００のファームウェア２３０を書換える機能を有するプログラムである。
【００４４】
ＡＰＩモジュールＡ１３０は、本発明を実現するためのプログラムであって、ＯＰＯＳモジュール１１０のＡＰＩ処理のみをモジュール化したプログラムである。ＡＰＩモジュールＢ１４０も同様に、本発明を実現するためのプログラムであって、ＯＰＯＳモジュール１１０のＡＰＩ処理のみをモジュール化したプログラムである。ＡＰＩモジュールＡ１３０とＡＰＩモジュールＢ１４０は、同一機能であってもよい。
【００４５】
デバイス制御モジュール１５０は、本発明を実現するためのプログラムであって、ＯＰＯＳモジュール１１０のＡＰＩ処理以外の処理を実行する機能に、ファームウェア書換え機能（ファームウェア書換え部１５２）が追加されたプログラムである。
【００４６】
図７Ａ〜図７Ｃは、本発明のファームウェア２３０の書換え処理を示すシーケンス図である。「アプリケーション」の欄はアプリケーション１００による処理を示し、「ファームウェア書換えプログラム」の欄はファームウェア書換えプログラム１２０による処理を示す。同様に、「ＡＰＩモジュールＢ」の欄はＡＰＩモジュールＢ１４０による処理を示し、「ＡＰＩモジュールＡ」の欄はＡＰＩモジュールＡ１３０による処理を示し、「デバイス制御モジュール」の欄はデバイス制御モジュール１５０による処理を示し、「ファームウェア」の欄はファームウェア２３０による処理を示す。
【００４７】
まず、運用開始処理を説明する。アプリケーション１００により、プリンタ使用開始がＡＰＩモジュールＡ１３０に指示される（Ｔ１００）。ＡＰＩモジュールＡ１３０により、プリンタオープンがデバイス制御モジュール１５０に通知される（Ｔ１０１）。デバイス制御モジュール１５０により、オープンコマンドがファームウェア２３０に送信される（Ｔ１０２）。
【００４８】
ファームウェア２３０により、プリンタ初期化処理が行われ、印刷可能状態となる。ファームウェア２３０により、デバイス制御モジュール１５０に応答が送信される（Ｔ１０３）。デバイス制御モジュール１５０により、受信した応答から対応する復帰情報が設定され、ＡＰＩモジュールＡ１３０を経由して（Ｔ１０４）、アプリケーション１００に通知される（Ｔ１０５）。
【００４９】
復帰情報とは、デバイス制御モジュール１５０からＡＰＩモジュールＡ１３０等へ返信される情報である。復帰情報のフォーマットの例を、図１１に示す。復帰情報は、固有情報、コマンド番号、戻り値、取得データを含む。固有情報は、通知先（ＡＰＩモジュールＡ１３０またはＡＰＩモジュールＢ１４０）を示す情報である。コマンド番号は、送信されたコマンドの番号であって、プリンタオープン通知、プリンタクローズ通知、ファームウェア書換え処理開始通知等々のような処理の内容を示す番号である。戻り値には、復帰情報の種別（正常復帰やエラー復帰）を示す情報が書込まれる。取得データは、後述するように、例えばプリンタ設定値である。
【００５０】
アプリケーション１００により、プリンタ設定がＡＰＩモジュールＡ１３０に指示される（Ｔ１０６）。プリンタ設定が、ＡＰＩモジュールＡ１３０からデバイス制御モジュール１５０に通知され（Ｔ１０７）。デバイス制御モジュール１５０により、プリンタ設定コマンドがファームウェア２３０に送信される（Ｔ１０８）。
【００５１】
ファームウェア２３０により、設定データが受信され、プリンタ設定が変更される。ファームウェア２３０により、応答がデバイス制御モジュール１５０に送信される（Ｔ１０９）。デバイス制御モジュール１５０により、対応する復帰情報が設定され、ＡＰＩモジュールＡ１３０を経由して（Ｔ１１０）、アプリケーション１００に通知される（Ｔ１１１）。
【００５２】
次に、ＰＯＳ業務処理を説明する。アプリケーション１００により、印刷依頼がＡＰＩモジュールＡ１３０に指示される（Ｔ１２０）。ＡＰＩモジュールＡ１３０により、印刷データが作成され、作成された印刷データがデバイス制御モジュール１５０に通知される（Ｔ１２１）。
【００５３】
デバイス制御モジュール１５０により、印刷データがファームウェア２３０に送信される（Ｔ１２２）。
【００５４】
ファームウェア２３０により、印刷データが受信され、印刷処理が実行される。ファームウェア２３０により、デバイス制御モジュール１５０に応答が送信される（Ｔ１２３）。デバイス制御モジュール１５０により、復帰情報が設定され、ＡＰＩモジュールＡ１３０を経由して（Ｔ１２４）、アプリケーション１００に通知される（Ｔ１２５）。
【００５５】
ここで、ＰＯＳ１０が、例えば外部のＰＯＳサーバ２からのファームウェア書換え指示を受信したとする。ファームウェア書換えプログラム１２０により、ファームウェア書換え処理開始がＡＰＩモジュールＢ１４０に指示される（Ｔ１３０）。ＡＰＩモジュールＢ１４０により、ファームウェア書換え処理開始がデバイス制御モジュール１５０に通知される（Ｔ１３１）。
【００５６】
デバイス制御モジュール１５０は、ファームウェア書換え状態に遷移される（Ｔ１３１）。デバイス制御モジュール１５０により、復帰情報が設定され、ＡＰＩモジュールＢ１４０を経由して（Ｔ１３２）、ファームウェア書換えプログラム１２０に通知される（Ｔ１３３）。
【００５７】
ファームウェア書換えプログラム１２０により、プリンタ設定値取得がＡＰＩモジュールＢ１４０に指示される（Ｔ１３４）。ＡＰＩモジュールＢ１４０により、プリンタ設定値取得がデバイス制御モジュール１５０に通知される（Ｔ１３５）。デバイス制御モジュール１５０により、プリンタ設定値取得コマンドがファームウェア２３０に送信される（Ｔ１３６）。
【００５８】
ファームウェア２３０により、取得されたプリンタ設定値がデバイス制御モジュール１５０に送信される（Ｔ１３７）。デバイス制御モジュール１５０により、送信されたプリンタ設定値が、復帰情報の取得データに組み込まれる。デバイス制御モジュール１５０により、プリンタ設定値を含む復帰情報がＡＰＩモジュールＢ１４０を経由して（Ｔ１３８）、ファームウェア書換えプログラム１２０に通知される（Ｔ１３９）。プリンタ設定値は、ファームウェア書換えプログラム１２０で保存される（Ｔ１４０）。
【００５９】
図７Ｂに進む。ファームウェア書換えプログラム１２０により、ファームウェア書換えがＡＰＩモジュールＢ１４０に指示される（Ｔ１５０）。ＡＰＩモジュールＢ１４０により、ファームウェア書換え指示がデバイス制御モジュール１５０に通知される（Ｔ１５１）。デバイス制御モジュール１５０のファームウェア書換え部１５２で、書換え用ファームウェアの更新データが準備される。更新データの準備後、ファームウェア書換え部１５２により、ファームウェア書換え指示コマンドがファームウェア２３０に送信される（Ｔ１５２）。なお、破線内は、ファームウェア書換え部１５２による処理を示す。
【００６０】
ファームウェア書換え指示コマンドを受信したファームウェア２３０により、デバイス２００を印刷不可状態にした後、ファームウェア書換え処理動作が開始される。ファームウェア２３０により、応答がデバイス制御モジュール１５０に送信される（Ｔ１５３）。
【００６１】
ここで、動作中のアプリケーション１００に印刷依頼が入ったとする。アプリケーション１００により、印刷依頼がＡＰＩモジュールＡ１３０に指示される（Ｔ１６０）。ＡＰＩモジュールＡ１３０により、印刷データが作成され、作成された印刷データがデバイス制御モジュール１５０に通知される（Ｔ１６１）。
【００６２】
デバイス制御モジュール１５０により、エラー復帰として、戻り値にデバイスビジーが記載された復帰情報が設定される。デバイス制御モジュール１５０により、デバイスビジーが記載された復帰情報がＡＰＩモジュールＡ１３０を経由して（Ｔ１６２）、アプリケーション１００に通知される（Ｔ１６３）。アプリケーション１００は、復帰情報よりデバイスビジーを認識し、再印刷待ち状態となる（Ｔ１６４）。
【００６３】
ファームウェア書換え部１５２により、更新データ（書換えデータ）がファームウェア２３０に送信される（Ｔ１７０）。ファームウェア２３０により、更新データが受信される。更新データ受信完了後、ファームウェア２３０から、デバイス制御モジュール１５０に応答が送信される（Ｔ１７１）。デバイス制御モジュール１５０により、復帰情報が設定され、ＡＰＩモジュールＢ１４０を経由して（Ｔ１７２）、ファームウェア書換えプログラム１２０に通知される（Ｔ１７３）。
【００６４】
図７Ｃに進む。ファームウェア書換えプログラム１２０により、プリンタクローズがＡＰＩモジュールＢ１４０に指示される（Ｔ１８０）。ＡＰＩモジュールＢ１４０により、プリンタクローズがデバイス制御モジュール１５０に通知される（Ｔ１８１）。デバイス制御モジュール１５０により、プリンタクローズコマンドがファームウェア２３０に送信される（Ｔ１８２）。ファームウェア２３０により、プリンタ終了処理がされる。
【００６５】
ファームウェア２３０により、デバイス制御モジュール１５０に応答が送信される（Ｔ１８３）。デバイス制御モジュール１５０により、復帰情報が設定され、ＡＰＩモジュールＢ１４０を経由して（Ｔ１８４）、ファームウェア書換えプログラム１２０に通知される（Ｔ１８５）。また、ファームウェア２３０により、ファームウェア書換え処理及びファームウェア再起動が実行される（Ｔ１８６）。
【００６６】
ファームウェア書換えプログラム１２０により、プリンタオープンがＡＰＩモジュールＢ１４０に指示される（Ｔ１９０）。ＡＰＩモジュールＢ１４０により、プリンタオープンがデバイス制御モジュール１５０に通知される（Ｔ１９１）。デバイス制御モジュール１５０により、プリンタオープンコマンドがファームウェア２３０に送信される（Ｔ１９２）。ファームウェア２３０により、プリンタ初期化処理が実行され、印刷可能状態になる。
【００６７】
ファームウェア２３０により、デバイス制御モジュール１５０に応答が送信される（Ｔ１９３）。デバイス制御モジュール１５０により、復帰情報が設定され、ＡＰＩモジュールＢ１４０を経由して（Ｔ１９４）、ファームウェア書換えプログラム１２０に通知される（Ｔ１９５）。
【００６８】
ファームウェア書換えプログラム１２０により、保存したプリンタ設定値の設定がＡＰＩモジュールＢ１４０に指示される（Ｔ２００）。ＡＰＩモジュールＢ１４０により、プリンタ設定値の設定がデバイス制御モジュール１５０に通知される（Ｔ２０１）。デバイス制御モジュール１５０により、プリンタ設定コマンドがファームウェア２３０に送信される（Ｔ２０２）。ファームウェア２３０により、プリンタ設定処理が実行される。
【００６９】
ファームウェア２３０により、デバイス制御モジュール１５０に応答が送信される（Ｔ２０３）。デバイス制御モジュール１５０により、復帰情報が設定され、ＡＰＩモジュールＢ１４０を経由して（Ｔ２０４）、ファームウェア書換えプログラム１２０に通知される（Ｔ２０５）。
【００７０】
ファームウェア書換えプログラム１２０により、ファームウェア書換え処理終了がＡＰＩモジュールＢ１４０に指示される（Ｔ２１０）。ＡＰＩモジュールＢ１４０により、ファームウェア書換え処理終了がデバイス制御モジュール１５０に通知される（Ｔ２１１）。デバイス制御モジュール１５０は、ファームウェア書換え状態から印刷状態にモードが遷移される。デバイス制御モジュール１５０により、復帰情報が設定され、ＡＰＩモジュールＢ１４０を経由して（Ｔ２１２）、ファームウェア書換えプログラム１２０に通知される（Ｔ２１３）。
【００７１】
印刷依頼が入ったとする。例えば、アプリケーション１００がＴ１６４の再印刷待ちになっている場合には、一定間隔（例えば、２sec）で再印刷を依頼するとしてもよい。アプリケーション１００により、印刷依頼がＡＰＩモジュールＡ１３０に指示される（Ｔ２２０）。ＡＰＩモジュールＡ１３０により、印刷データが作成され、作成された印刷データがデバイス制御モジュール１５０に通知される（Ｔ２２１）。デバイス制御モジュール１５０により、印刷データがファームウェア２３０に送信される（Ｔ２２２）。
【００７２】
ファームウェア２３０により、印刷データが受信され、印刷処理が実行される。ファームウェア２３０により、デバイス制御モジュール１５０に応答が送信される（Ｔ２２３）。デバイス制御モジュール１５０により復帰情報が設定され、ＡＰＩモジュールＡ１３０を経由して（Ｔ２２４）、アプリケーション１００に通知される（Ｔ２２５）。
【００７３】
次に、本発明のファームウェア書換え処理における、各モジュールの処理を、図８〜図１０を用いて説明する。図８は、ファームウェア書換えプログラム１２０により実行される処理の手順を説明するフローチャートである。
【００７４】
まず、ファームウェア書換えプログラム１２０は、ファームウェア書換え処理の開始にあたり、ＡＰＩモジュールＢ１４０を生成する（ステップＳ１００）。具体的には、ファームウェア書換えプログラム１２０は、不揮発性記憶部１６からＡＰＩモジュールＢのプログラムを読み出してＲＡＭ１４に展開する。
【００７５】
ファームウェア書換えプログラム１２０は、ＡＰＩモジュールＢ１４０のインターフェースにファームウェア書換え処理開始を指示する（ステップＳ１０２）。図７ＡのＴ１３０に相当する処理である。
【００７６】
ファームウェア書換えプログラム１２０は、ＡＰＩモジュールＢ１４０から通知された復帰情報により正常復帰であるかを判断する（ステップＳ１０４）。図７ＡのＴ１３３に相当する。ファームウェア書換えプログラム１２０は、復帰情報の戻り値で正常復帰であるかを判断する。
【００７７】
ファームウェア書換えプログラム１２０は、復帰情報が正常復帰でないと判断すると（ステップＳ１０４のＮＯ）、処理を終了する。ファームウェア書換えプログラム１２０は、復帰情報が正常復帰であると判断すると（ステップＳ１０４のＹＥＳ）、ＡＰＩモジュールＢ１４０のインターフェースにプリンタ設定値取得を指示する（ステップＳ１０６）。図７ＡのＴ１３４に相当する。
【００７８】
ファームウェア書換えプログラム１２０は、プリンタ設定値取得指示に対応して通知された復帰情報が正常復帰であるかを判断する（ステップＳ１０８）。ファームウェア書換えプログラム１２０は、復帰情報が正常復帰でないと判断すると（ステップＳ１０８のＮＯ）、処理を終了する。
【００７９】
ファームウェア書換えプログラム１２０は、復帰情報（Ｔ１３９に対応）が正常復帰であると判断すると（ステップＳ１０８のＹＥＳ）、取得したプリンタ設定値を保存する（ステップＳ１１０）。ステップＳ１１０は、Ｔ１４０に相当する。
【００８０】
ファームウェア書換えプログラム１２０は、ＡＰＩモジュールＢ１４０のインターフェースにファームウェア書換えを指示する（ステップＳ１１２）。ステップＳ１１２は、Ｔ１５０に相当する。
【００８１】
ファームウェア書換えプログラム１２０は、ファームウェア書換え指示に対応して通知された復帰情報が正常復帰であるかを判断する（ステップＳ１１４）。ファームウェア書換えプログラム１２０は、復帰情報が正常復帰でないと判断すると（ステップＳ１１４のＮＯ）、処理を終了する。
【００８２】
ファームウェア書換えプログラム１２０は、復帰情報が正常復帰であると判断すると（ステップＳ１１４のＹＥＳ）、ＡＰＩモジュールＢ１４０のインターフェースにプリンタクローズを指示する（ステップＳ１１６）。ステップＳ１１６は、Ｔ１８０に相当する。
【００８３】
プリンタクローズ後に、ファームウェア２３０は、Ｔ１８６で説明したような書換え処理を実行する。ファームウェア書換えプログラム１２０は、ファームウェア２３０の再起動待ちをする（ステップＳ１１８）。
【００８４】
再起動が確認されたら、ファームウェア書換えプログラム１２０は、ＡＰＩモジュールＢ１４０のインターフェースにプリンタオープンを指示する（ステップＳ１２０）。ステップＳ１２０は、Ｔ１９０に相当する。
【００８５】
ファームウェア書換えプログラム１２０は、プリンタオープン指示に対応して通知された復帰情報（Ｔ１９５に対応）が正常復帰であるかを判断する（ステップＳ１２２）。ファームウェア書換えプログラム１２０は、復帰情報が正常復帰でないと判断すると（ステップＳ１２２のＮＯ）、処理を終了する。
【００８６】
ファームウェア書換えプログラム１２０は、復帰情報が正常復帰であると判断すると（ステップＳ１２２のＹＥＳ）、ＡＰＩモジュールＢ１４０のインターフェースに保存したプリンタ設定値の設定を指示する（ステップＳ１２４）。ステップＳ１２４は、Ｔ２００に相当する。
【００８７】
ファームウェア書換えプログラム１２０は、ＡＰＩモジュールＢ１４０のインターフェースにファームウェア書換え処理終了を指示する（ステップＳ１２６）。ステップＳ１２６は、Ｔ２１０に相当する。ファームウェア書換えプログラム１２０は、ＡＰＩモジュールＢ１４０を削除（ＲＡＭ１４から消去）して（ステップＳ１２８）、処理を終了する。
【００８８】
図９は、ＡＰＩモジュールＡ１３０及びＡＰＩモジュールＢ１４０により実行される処理の手順を説明するフローチャートである。ＡＰＩモジュールＡ１３０及びＡＰＩモジュールＢ１４０を、以下でまとめてＯＰＯＳＡＰＩモジュールと呼ぶ。
【００８９】
ＯＰＯＳＡＰＩモジュールは、デバイス制御モジュール１５０を検索する（ステップＳ２００）。ＯＰＯＳＡＰＩモジュールは、デバイス制御モジュール１５０が検索されたかを判断する（ステップＳ２０２）。ＯＰＯＳＡＰＩモジュールは、デバイス制御モジュール１５０が検索されないと判断すると（ステップＳ２０２のＮＯ）、動作を停止する。
【００９０】
ＯＰＯＳＡＰＩモジュールは、デバイス制御モジュール１５０が検索されたと判断すると（ステップＳ２０２のＹＥＳ）、それぞれのインターフェースでコマンド受付を待つ（ステップＳ２０４）。ＯＰＯＳＡＰＩモジュールは、受け付けたコマンドをデバイス制御モジュール１５０に通知する（ステップＳ２０６）。
【００９１】
ＯＰＯＳＡＰＩモジュールは、デバイス制御モジュール１５０からの応答通知（復帰情報）を待つ（ステップＳ２０８）。ＯＰＯＳＡＰＩモジュールからデバイス制御モジュール１５０に通知されたコマンドが、データ取得のコマンドの場合には、応答通知に取得されたデータが含まれる。この場合には、ＯＰＯＳＡＰＩモジュールは、応答通知に含まれる取得データを対応するＡＰＩモジュールのインターフェースのパラメータに格納する（ステップＳ２１０）。
【００９２】
また、ＯＰＯＳＡＰＩモジュールは、ＯＰＯＳＡＰＩモジュールのインターフェースの戻り値に応答通知に対応する値を設定し、ステップＳ２０６で受け付けたコマンドの発信元（アプリケーション１００またはファームウェア書換えプログラム１２０）に復帰させる（応答を通知）（ステップＳ２１２）。
【００９３】
図１０は、デバイス制御モジュール１５０により実行される処理の手順を説明するフローチャートである。デバイス制御モジュール１５０は、初期処理として、更新フラグをＯＦＦに設定する（ステップＳ３００）。更新フラグは、デバイス制御モジュール１５０がファームウェア書換え状態であることを示すフラグである。更新フラグは、ファームウェア書換え処理開始通知の受付け時にＯＮに設定され、ファームウェア書換え処理終了通知を受付け時にＯＦＦに設定される。更新フラグがＯＦＦに設定されると、デバイス制御モジュール１５０は、印刷可能状態になる。
【００９４】
デバイス制御モジュール１５０は、ＡＰＩモジュールＡ１３０またはＡＰＩモジュールＢ１４０からの通知データを待つ（ステップＳ３０２）。図１１に、通知データのフォーマットの例を示す。通知データは、固有情報、コマンド番号、パラメータ１の値、パラメータ２の値を含む。固有情報は、通知元（ＡＰＩモジュールＡ１３０またはＡＰＩモジュールＢ１４０）を判別する情報である。コマンド番号は、プリンタオープン通知、プリンタクローズ通知、ファームウェア書換え処理開始通知等々のようなコマンドの内容を示す番号である。
【００９５】
デバイス制御モジュール１５０は、通知データが終了通知（プリンタクローズ通知）であるかを判断する（ステップＳ３０４）。デバイス制御モジュール１５０は、通知データが終了通知であると判断すると（ステップＳ３０４のＹＥＳ）、処理を終了する。
【００９６】
デバイス制御モジュール１５０は、通知データが終了通知でないと判断すると（ステップＳ３０４のＮＯ）、更新フラグがＯＮであるかを判断する（ステップＳ３０６）。デバイス制御モジュール１５０は、更新フラグがＯＮでないと判断すると（ステップＳ３０６のＮＯ）、通知データがファームウェア書換え処理開始通知であるかを判断する（ステップＳ３０８）。
【００９７】
デバイス制御モジュール１５０は、通知データがファームウェア書換え開始処理通知でないと判断すると（ステップＳ３０８のＮＯ）、通知されたコマンド番号に応じた処理をファームウェア２３０に送信する（ステップＳ３１６）。そして、ファームウェア２３０からの応答に対応して、デバイス制御モジュール１５０は、復帰情報を設定する。デバイス制御モジュール１５０は、設定した復帰情報を通知元（ＡＰＩモジュールＡ１３０またはＡＰＩモジュールＢ１４０）に通知する（ステップＳ３３２）。
【００９８】
ステップＳ３０８に戻る。デバイス制御モジュール１５０は、通知データがファームウェア書換え開始処理通知であると判断すると（ステップＳ３０８のＹＥＳ）、更新フラグをＯＮに設定する（ステップＳ３１０）。デバイス制御モジュール１５０は、通知データの固有情報を保存する（ステップＳ３１２）。ファームウェア更新処理開始はＡＰＩモジュールＢ１４０から通知されるので、通知データの固有情報として、ＡＰＩモジュールＢ１４０を示す情報が所定の保存領域に保存される。
【００９９】
デバイス制御モジュール１５０は、復帰情報の戻り値に正常復帰を設定し（ステップＳ３１４）、設定した復帰情報を通知元（ＡＰＩモジュールＢ１４０）に通知する（ステップＳ３３２）。
【０１００】
ステップＳ３０６に戻る。デバイス制御モジュール１５０は、更新フラグがＯＮであると判断すると（ステップＳ３０６のＹＥＳ）、受け取った通知データの固有情報から通知元を確認する（ステップＳ３２０）。デバイス制御モジュール１５０は、通知元が、ステップＳ３１２で保存した保存情報の通知元と同じであるかを判断する。これは、受け取った通知データがＡＰＩモジュールＡ１３０から発せされた場合には、通知データを受付けないようにするためである。
【０１０１】
デバイス制御モジュール１５０は、受け取った通知データの通知元が、ステップＳ３１２で保存した保存情報の通知元と同じでないと判断すると（ステップＳ３２０のＮＯ）、復帰情報の戻り値にデバイスビジーを設定する（ステップＳ３３０）。デバイス制御モジュール１５０は、デバイスビジーが設定された復帰情報を通知元（ＡＰＩモジュールＡ１３０）に通知する（ステップＳ３３２）。ステップＳ３３２は、Ｔ１６２に対応する。
【０１０２】
デバイス制御モジュール１５０は、通知元がステップＳ３１２で保存した保存情報の通知元と同じ、つまり通知元がＡＰＩモジュールＢ１４０であると判断すると（ステップＳ３２０のＹＥＳ）、通知データがファームウェア書換え処理終了通知であるかを判断する（ステップＳ３２２）。
【０１０３】
デバイス制御モジュール１５０は、通知データがファームウェア書換え処理終了通知でないと判断すると（ステップＳ３２２のＮＯ）、ステップＳ３１６及びステップＳ３３２に進む。ステップＳ３１６及びステップＳ３３２は、説明済であるので、説明は省略する。
【０１０４】
デバイス制御モジュール１５０は、通知データがファームウェア書換え処理終了通知であると判断すると（ステップＳ３２２のＹＥＳ）、更新フラグをＯＦＦにする（ステップＳ３２４）。
【０１０５】
デバイス制御モジュール１５０は、保存情報をクリアし（ステップＳ３２６）、復帰情報に正常復帰を設定し（ステップＳ３２８）、設定した復帰情報を通知元に通知する（ステップＳ３３２）。ステップＳ３３２は、Ｔ２１２に相当する。
【０１０６】
以上説明したように、本発明によるファームウェアの書換え処理は、プログラムを読込んだＣＰＵ１２により実現される、ファームウェア書換えプログラム１２０、ＡＰＩモジュールＡ１３０、ＡＰＩモジュールＢ１４０およびデバイス制御モジュール１５０の各機能により、実行される。
【０１０７】
これにより、ＰＯＳ１０のアプリケーション１００を終了させることなく、デバイス２００のファームウェア２３０の書換え処理を実行することができる。つまり、アプリケーションとファームウェア書換え処理を両立させることができるので、ファームウェア２３０の書換え処理終了後に、直ちに、アプリケーション１００を再開することができる。
【０１０８】
なお、情報処理装置として、ＰＯＳ１０を例にしたが、これに限定されるものではない。例えば、スキャナやプリンタ等のデバイスが組み込まれる顔認証システムや図書貸出システム等も、対象である。
【０１０９】
なお、本発明は上述した実施形態そのままに限定されるものではなく、実施段階でのその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素を適宜組み合わせても良い。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。このような、発明の趣旨を逸脱しない範囲内において種々の変形や応用が可能であることはもちろんである。
【符号の説明】
【０１１０】
１    ＰＯＳシステム
２      ＰＯＳサーバ
１０    ＰＯＳ
１２，２１０  ＣＰＵ
１４，２１４  ＲＡＭ
１６      不揮発性記憶部
１８，２１８  通信Ｉ／Ｏ
２０      入出力Ｉ／Ｏ
２２      表示部
２４      入力部
２６，２２２  バス
１００    アプリケーション
１１０    ＯＰＯＳモジュール
１２２，１５２  ファームウェア書換え部
１２０    ファームウェア書換えプログラム
１３０    ＡＰＩモジュールＡ
１４０    ＡＰＩモジュールＢ
１５０    デバイス制御モジュール
２００    デバイス
２１２    フラッシュメモリ
２１６    ＲＯＭ
２２０    デバイスＩ／Ｏ
２３０    ファームウェア
【図１】
2018072898.tif 000003
【図２】
2018072898.tif 000004
【図３】
2018072898.tif 000005
【図４】
2018072898.tif 000006
【図５Ａ】
2018072898.tif 000007
【図５Ｂ】
2018072898.tif 000008
【図６】
2018072898.tif 000009
【図７Ａ】
2018072898.tif 000010
【図７Ｂ】
2018072898.tif 000011
【図７Ｃ】
2018072898.tif 000012
【図８】
2018072898.tif 000013
【図９】
2018072898.tif 000014
【図１０】
2018072898.tif 000015
【図１１】
2018072898.tif 000016