(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、カードを走査した際、走査による静電気やノイズ等により、カードリーダのCPUリセットや暴走、通信障害等が発生した場合、上位装置へエラーを通知する必要がある。
【0007】
ポーリングを行うタイプのカードリーダでは、ポーリングで定期的にカードリーダへコマンドを送信して状態を確認しているため、直ちに異常を検知することができる。
【0008】
これに対して、非同期で上位装置へ通知するタイプのカードリーダでは、上位装置側はカードリーダからのレスポンスを待ち続けるため、上位装置がエラーを検出できずにカードリーダでデータをリードができない状態にある場合に、無応答となってしまう。
【0009】
カードリーダは上位装置の指令により磁気リード可能状態に遷移し、磁気情報等が記録されたカード(状媒体)の情報を読み取り可能な状態となる。
ここで、静電気等でカードリーダの処理部であるCPUがリセットされデータをリード可能状態が解除された場合、非同期で上位装置へ通知するタイプではエラーの検出を行うことができなかった。
すなわち、CPUがリセットされると、カードリーダが磁気リード可能状態は解除されてしまうが、正常に動作している。
そのため、非同期で上位装置へ通知するタイプのカードリーダでは、上位装置側はカードリーダからのデータ待ち、カードリーダは上位装置からのコマンド待ち、カードを走査してもデータをリードせず、の状態となっている。
上位装置から見れば、カードリーダは無応答である。
【0010】
本発明の目的は、上位装置との間で非同期で通信を行う情報処理装置であって、上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、情報処理装置の状態を確認することが可能な情報処理装置、情報処理方法、情報処理システム、およびプログラムを提供することにある。
【課題を解決するための手段】
【0011】
本発明の第1の観点は、上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置であって、前記上位装置との間でUSB通信を行うUSB通信部を有し、前記USB通信部は、前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用の
、コントロール転送であり、制御用エンドポイントである第1のエンドポイントと、
当該情報処理装置から前記上位装置に向かって応答を返すための片方向通信専用の第2のエンドポイントと、当該情報処理装置が前記上位装置からコマンドを受信するための片方向通信専用の第3のエンドポイントと、を含み、前記待機状態である場合、前記情報処理装置は前記情報処理装置の状態を自身のメモリの特定のアドレスに書き込み、前記上位装置から前記双方向通信専用の前記第1のエンドポイントを通して定期的に前記情報処理装置のメモリの特定のアドレスのデータを要求され、前記情報処理装置がイネーブルであることが確認される。
【0012】
これにより、本発明の情報処理装置は、(前記上位装置が前記情報処理装置からの応答を待ち続ける)待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認することが可能となる。
【0013】
前記情報処理装置は、手動で走査される情報記録媒体に記録され
た情報を読み取るように構成されてもよい。
【0014】
これにより、本発明の情報処理装置は、手動で情報記録媒体を走査するので、いつ装置に媒体が挿入されるか分からない、(前記上位装置が前記情報処理装置からの応答を待ち続ける)待機状態である場合であっても、情報処理装置の状態を監視することが可能となる。
【0015】
前記情報処理装置は、情報が記録されたカード状媒体を処理するカードリーダであることが好ましい。
【0016】
これにより、本発明の情報処理装置は、(手動で情報記録媒体を走査する)カードリーダであるので、新たな構成を追加することなく、待機状態でのカードリーダの状態を監視することが可能となる。
【0017】
本発明の第2の観点の情報処理システムは、上位装置と、前記上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置と、を有し、前記上位装置は、所定のエンドポイントを通して前記情報処理装置の状態を確認するための状態監視を行う機能を含み、前記情報処理装置は、前記上位装置との間でUSB通信を行うUSB通信部を有し、前記USB通信部は、前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用の
、コントロール転送であり、制御用エンドポイントである第1のエンドポイントと、
当該情報処理装置から前記上位装置に向かって応答を返すための片方向通信専用の第2のエンドポイントと、当該情報処理装置が前記上位装置からコマンドを受信するための片方向通信専用の第3のエンドポイントと、を含み、前記待機状態である場合、前記情報処理装置は前記情報処理装置の状態を自身のメモリの特定のアドレスに書き込み、前記上位装置は、前記双方向通信専用の前記第1のエンドポイントを通して定期的に前記情報処理装置のメモリの特定のアドレスのデータを要求し、前記情報処理装置がイネーブルであることを確認する。
【0018】
これにより、本発明の情報処理システムにおいて、情報処理装置は、(前記上位装置が前記情報処理装置からの応答を待ち続ける)待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認することが可能となる。そして、情報処理システムは、状態監視が可能となったことから、その次の処理、たとえば、自動的に復帰することが可能となる。
【0019】
本発明の第3の観点は、上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置の情報処理方法であって、前記上位装置との間でUSB通信を行うUSB通信部に、少なくとも前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用の
、コントロール転送であり、制御用エンドポイントである第1のエンドポイントを形成し、
当該情報処理装置から前記上位装置に向かって応答を返すための片方向通信専用の第2のエンドポイントを形成し、当該情報処理装置が前記上位装置からコマンドを受信するための片方向通信専用の第3のエンドポイントを形成し、前記待機状態である場合、前記情報処理装置は前記情報処理装置の状態を自身のメモリの特定のアドレスに書き込み、前記上位装置から前記双方向通信専用の前記第1のエンドポイントを通して定期的に前記情報処理装置のメモリの特定のアドレスのデータを要求し、前記情報処理装置がイネーブルであることを確認する。
【0020】
これにより、本発明の情報処理方法において、前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認することが可能となる。そして、情報処理方法は、状態監視が可能となったことから、その次の処理、たとえば、自動的に復帰することが可能となる。
【0021】
本発明の第4の観点は、上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置の情報処理をコンピュータに実行させるプログラムであって、前記上位装置との間でUSB通信を行うUSB通信部に、少なくとも前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用のエンドポイントを形成し、待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認する状態監視処理を受け、前記双方向通信専用のエンドポイントを通して当該状態監視の応答として現在の状態を前記上位装置に送信する情報処理をコンピュータに実行させるプログラムである。
【0022】
これにより、本発明のプログラムにおいて、前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認することが可能となる。そして、本プログラムは、状態監視が可能となったことから、その次の処理、たとえば、自動的に復帰することが可能となる。
【発明の効果】
【0023】
本発明によれば、上位装置との間で非同期で通信を行う情報処理装置であって、上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、情報処理装置の状態を確認することが可能となる。
【発明を実施するための形態】
【0025】
以下、本発明の実施形態を図面に関連付けて説明する。
本実施形態においては、情報処理装置として、クレジットカード、プリペイドカードまたはキャッシュカード等のカード状媒体である磁気カードに形成された磁気ストライプに記録されている磁気データ(磁気情報)等の読み取りまたは書き込みを行うもカードリーダを例に説明する。
なお、本実施形態は、磁気カードリーダ等のカードリーダ以外に、非接触カードを装置にかざして情報のやりとりを行う非接触カードリーダやスーパー等のレジスターで使用するようなバーコード読取装置にも適用可能である。
【0026】
図1は、本実施形態に係る情報処理システムの概要を示すブロック図である。また、
図1は、情報処理装置としてのカードリーダの信号処理系の基本的な構成例をブロック図として示している。
図2は、本実施形態に係る上位装置の構成例を示すブロック図である。
【0027】
[情報処理システム10の概要]
本実施形態に係る情報処理システム10は、
図1に示すように、主として、上位装置(たとえばPOS端末用ホスト)20と、カードリーダ30とを主構成要素として構成されている。
【0028】
まず、本実施形態の特徴的な構成および機能について説明し、その後、各部の具体的な構成および処理について説明する。
【0029】
上位装置20とカードリーダ30との間の通常の通信は、RS232CやUSB(Universal Serial Bus)などの専用線(有線の通信線)を用いた通信システムが適用され、本実施形態ではUSB通信システムが適用されている。
したがって、上位装置20とカードリーダ30とは、通常の通信経路としてUSBケーブル40により接続されている。
【0030】
本実施形態に係るカードリーダ30は、上位装置20との間でUSB通信システムを介して通信を行い、状況に応じた処理を実行して、上位装置20に対して現在の状態と処理結果を送信する機能を有している。
本実施形態の情報処理装置としてのカードリーダ30は上位装置20との間で非同期で通信を行う。
カードリーダ30は、USB通信部において、後述するように、たとえば3つのエンドポイントEP0〜EP2を含んで構成される。
カードリーダ30は、上位装置20との間で通信を行うUSB通信部(USBインタフェース)には、少なくとも、上位装置20との間における各種設定および制御のいずれか、あるいは両方を行うための双方向通信のコントロール転送専用のエンドポイントEP0を備えている。
換言すれば、このエンドポイントEP0は、上位装置20がカードリーダ30からの応答を待ち続ける待機状態である場合、カードリーダ30の状態を確認するための双方向通信専用のエンドポイントである。
待機状態である場合、上位装置20が双方向通信専用(コントロール転送)のエンドポイントEP0を用いてカードリーダ30の状態を確認する状態監視処理(疑似的なポーリング処理)を行う。
【0031】
非同期通信を行うカードリーダ30について、エンドポイントを利用して状態監視を行うのは次の理由による。
非同期で上位装置へ通知するタイプのカードリーダでは、上位装置側はカードリーダからの応答を待ち続けるため、上位装置がエラーを検出できずにカードリーダで磁気リードができない状態にある場合に、無応答となってしまう。
そこで、本実施形態においては、非同期で上位装置20へ通知するタイプのカードリーダ30で、上位装置20へ状態を通知するために以下の特徴的な構成を有している。
1)データを上位装置20へ通知するエンドポイント以外のエンドポイント(本実施形態ではコントロール転送)を使用し、磁気カードMCが走査されるのを待っている待機状態の間に、上位装置20とカードリーダ30との双方向通信で状態監視処理(疑似的なポーリング処理)を行い、カードリーダ30の状態監視を行う。
2)状態監視でカードリーダの現在の状態を上位装置20に返し、上位装置20が、カードリーダ30が、磁気リードを可能な状態であるかを確認できるようしている。
【0032】
なお、エンドポイントとは、USBデバイスとしてのカードリーダ30とホスト機器である上位装置20との間を接続する論理的な通信経路の最小単位のことであり、USB規格により定められている。
換言すると、エンドポイントとは、USBデバイス(ここではカードリーダ30)においてホストである上位装置20と通信を行うためのリソース、具定的にはバッファ、FIFO(First-In First-Out)等をいう。
【0033】
本実施形態においては、たとえばエンドポイントが以下のように設定されるカードリーダ30として構成される。
第1のエンドポイントEP0:コントロール転送
第2のエンドポイントEP1:インタラプトIN
第3のエンドポイントEP2:インタラプトOUT
【0034】
第1のエンドポイントEP0は、コントロール転送であり、制御用エンドポイントである。
第2のエンドポイントEP1は、インタラプトINで、上位装置20がカードリーダ30からのレスポンスを受信するためのものである。
第3のエンドポイントEP2は、インタラプトOUTで、上位装置20がカードリーダ30にコマンドを送信するものである。
3つのエンドポイントのうち、エンドポイントEP0のみが双方向通信可能である。
【0035】
状態監視にコントロール転送を使用する理由は以下の通りである。
コントロール転送は、コンフィギュレーションを行うために必ずサポートされており、双方向通信が可能である。
コントロール転送以外は、上位装置(ホスト)側からのデータ送信で一つ、受信で一つであることから、計2つのエンドポイントが必要である。
【0036】
なお、エンドポイントの構成やこれに伴う状態監視を含むUSB通信処理については後でさらに説明する。
【0037】
[上位装置(ホスト装置)20の具体的な構成および機能]
図2は、本実施形態に係る上位装置の構成例を示している。
上位装置20は、上述したように、基本的に、カードリーダ30との間で、主通信システムのUSB通信システムを通して通信制御を行い、コマンドの送信に対応したレスポンス(応答)を受信する等の各種情報の授受を行って、カードリーダ30からの情報を取得する。
【0038】
図2の上位装置20は、基本的に、処理部であるCPU21、ROM22、RAM23、ストレージユニット24、および上位(ホスト)側USB通信部25を有している。
上位(ホスト)側USB通信部25は、USBケーブル40を介してカードリーダ30のUSB通信部と接続されている。
【0039】
本例においては、図中のストレージユニット24内に保存されたオペレーティングシステム(OS)、通信制御用等のミドルウェアMW、アプリケーション等のプログラムがソフトウェアシステムの一部をなし、実行時にいわゆるコンピュータ(電子計算機)のソフトウェアとしてRAM23上に展開される。
【0040】
このように、上位装置20は、CPU21、ROM22、RAM23等の各種ハードウェアを有しており、上位装置20を統合的に制御する機能、カードリーダ30との通信機能、および磁気情報の読み取りを行う機能などを有している。
【0041】
上位装置20において、CPU21が全体の制御を行う。
上位装置20は、カードリーダ30とのUSB通信を行う場合に、CPU21の制御の下、上位(ホスト)側USB通信部25を通して、USBケーブル40により接続されたカードリーダ30のUSB通信部との間でUSB通信を行う。
【0042】
USB通信システムは、ホストである上位装置20とデバイスであるカードリーダ30間をシリアル通信で接続するものであって、たとえばプラグアンドプレイ機能(自動接続認識機能)、ホットインサーション機能(電源を入れたままでの抜き差しを可能にする機能)およびホストからデバイスへの電源(電力)供給機能など、ユーザの利便性を高める様々な機能を有している。
一般的に、USB通信で用いるUSBケーブル40は、5Vの電源ライン(V−BUSライン)、GND(グランド)ライン、およびデータ転送用のD+およびD−の信号ラインから構成される合計4本の配線を有している。
そして、カードリーダ30等のデバイス側では、V−BUSラインを通じて送信されるV−BUS信号の常時監視を行っている。つまり、このV−BUS信号の遷移状態を常時監視することで、USB通信の異常検出を行うこともできるようになっている。
たとえば、V−BUSラインの上位装置が故意にダウンさせることのないシステムにおいては、USB通信中に何らかの理由でUSBケーブルが外れた場合には、V−BUS信号がオンからオフへと遷移し、その結果、デバイスはUSB通信の物理的な接続が破断したと認識し、USB通信の異常が検出されることもできる。
【0043】
上位装置20は、CPU21の制御の下、上位(ホスト)側USB通信部25を通して、カードリーダ30を磁気カード読み取り可能状態に遷移させ、上位装置20およびカードリーダ30が読み取り待ち状態(磁気情報(磁気データ)の入力待ちを示す待機状態)となると、エンドポイントEP0(コントロール転送)により定期的(たとえば1〜5秒間隔)に状態監視処理を行い、カードリーダ30の状態監視を行う。
上位装置20は、状態監視でカードリーダ30から送信されるべき現在の状態情報に基づいて磁気リードを可能な状態であるかを確認できるようしている。
上位装置20は、この状態監視で、カードリーダ30側が、磁気カードの走査等に伴う静電気等でリセットされて初期化されていない初期状態となっていることを確認すると、初期化コマンドを出してカードリーダ30を磁気カード読み取り可能状態に遷移(復帰)させるべく、カードリーダ30に対する復帰処理を行う。
【0044】
上位装置20は、エンドポイントEP1のインタラプトINでレスポンスを受信し、エンドポイントEP2のインタラプトOUTでコマンドを送信する。
上位装置20は、カードリーダ30を磁気リード可能状態へ遷移するようコマンドを送信し、インタラプトINにて非同期で磁気データが通知されるのを待つ。
状態監視は、双方向通信が必要なことから、コントロール転送を使用してカードリーダ30の状態確認を行う。
上位装置20は、この状態監視をカードリーダ30が磁気リード可能状態の期間のみ行う。
【0045】
この状態監視処理に伴いカードリーダ30の状態監視および復帰処理等はCPU21の制御に従って行われる。
本実施形態によれば、非同期で通信を行うカードリーダ30において、待機状態である場合、カードリーダ30の状態を監視することが可能である。
さらに、本実施形態では、カードリーダ30の状態監視が可能なので、エラーが生じた場合にはその結果を上位装置20にレスポンスし、自動的にカードリーダ30を復帰処理等をすることが可能となる。
【0046】
なお、本実施形態における状態監視は、たとえばゲットインデックスストリング(Get Index String)というUSBコマンドを用いてカードリーダ30側のメモリの所定のアドレスのデータを要求してカードリーダの状態を取得することにより行われる。
すなわち、本実施形態における状態監視は、疑似的ポーリングということもできる。
【0047】
次に、カードリーダ30の構成および機能について説明する。
【0048】
[カードリーダ30の構成および機能]
本実施形態では、カードリーダ30として、磁気ストライプを有するカード状媒体を走行基準面に沿って手動走行させるスワイプ式のものを採用している。すなわち、ここで説明するカードリーダ30は、手動で走査される磁気カードMCに記録された情報を読み取る機能を有する。
ただし、本発明はこれに限られない。
そして、カードリーダ30は、上位装置20との間で、非同期で通信を行う。
【0049】
前述したように、
図1は、本実施形態に係る情報処理としてのカードリーダの信号処理系の構成例を示している。
図1のカードリーダ30は、カードリーダ30全体を統合的に制御する処理部としてのCPU31、カードリーダ30の動作プログラムや初期値、パラメータなどを格納するROM32、およびCPU31のワーキングエリアとして機能するRAM33を有している。
カードリーダ30は、上位装置20とUSB通信を行うI/F(インタフェース)デバイスとしての機能を含むUSB通信部34、および手動走行される磁気カードMCから磁気情報を読み取る磁気ヘッドを含む読み取り部35を有している。
【0050】
カードリーダ30は、USB通信部34さらにはUSBケーブル40を介して上位装置20と接続されている。
カードリーダ30は、上位装置20との間の通信規約に沿った情報列のコマンドに基づき動作する。
【0051】
USB通信部34は、上位装置20からカードリーダ30へ送られた信号をTTLレベルの信号に変換し、それをCPU31に転送する機能を有する。
また、CPU31からの信号を逆変換して、上位装置20に転送する。
本実施形態において、上位装置20とカードリーダ30の間の通常の通信としては、上述したように、USB通信システムが採用されている。
【0052】
カードリーダ30は、CPU31の制御の下、USB通信部34を通して受信する上位装置20からの指令(コマンド)により磁気リード可能状態(待機状態)に遷移し、磁気カードMCの情報を読み取り可能な状態となる。
カードリーダ30は、CPU31の制御の下、カードリーダ30側で行った処理の結果を、USB通信部34を通して上位装置20に送信する。
カードリーダ30は、CPU31の制御の下、磁気リード可能状態の期間のみ上位装置20からのエンドポイントEP0を用いた状態監視に対して現在の状態に関するデータ(情報)を、USB通信部34を通して上位装置20に送信する。
カードリーダ30は、静電気等でカードリーダの処理部であるCPU31がリセットされ磁気リード可能状態が解除されると、上位装置20からのエンドポイントEP0を用いた状態監視に対して現在の状態が初期状態にあることを、USB通信部34を通して上位装置20に送信する。
カードリーダ30は、上位装置20から復帰指令(本実施形態では初期化コマンド)を受けると、初期状態から磁気リード可能状態に遷移する復帰処理を行い、磁気リード可能状態に復帰することが可能に構成されている。
【0053】
前述したように、本実施形態においては、非同期で上位装置20へ通知するタイプのカードリーダ30で、上位装置20へ状態を通知するために以下の特徴的な構成を有している。
1)データを上位装置20へ通知するエンドポイント以外のエンドポイント(本実施形態ではコントロール転送)を使用し、磁気カードMCが走査されるのを待っている待機状態の間に、上位装置20とカードリーダ30との双方向通信で状態監視(疑似的なポーリング)を行い、カードリーダ30の状態監視を行う。
2)状態監視でカードリーダ30の現在の状態を上位装置20に返し、上位装置20が、カードリーダ30が、磁気リードを可能な状態かを確認できるようしている。
【0054】
図3は、本実施形態に係る上位装置とカードリーダ間の状態監視を実現するエンドポイントに関する構成を概念的に示す図である。
図3の例では、上位装置20側においては、たとえば上位側USB通信部25に各エンドポイントEP0,EP1,EP2に対応するバッファBF0,BF1,BF2,・・・が配置されているバッファ群250を有する。
また、カードリーダ30側においては、USB通信部34に各エンドポイントEP0,EP1,EP2に対応するFIFOにより構成されるバッファFIFO0,FIFO1,FIFO,・・・が配置されているバッファ群(FIFO群)340を有する。
【0055】
図3に示すように、エンドポイントEP0のコントロール転送は、上位装置20とカードリーダ30間で双方向通信可能である。
エンドポイントEP1のインタラプトINは、カードリーダ30から上位装置20に向かってレスポンス(応答)を返す(上位装置20がレスポンスを受信する)ための片方向通信である。
エンドポイントEP2のインタラプトOUTは、上位装置20がカードリーダ30にコマンドを送信する(カードリーダ30がコマンドを受信する)ための片方向通信である。
【0056】
本実施形態においては、カードリーダ30は、USB通信部34およびCPU31で、第3のエンドポイントEP3を通して磁気カード読み取り可能状態に遷移するようコマンドを受け、第2のエンドポイントEPを通して非同期で処理実行により得られたデータを上位装置20に送信する。
【0057】
次に、上記構成を有する情報処理システム10の動作について説明する。
ここでは、上位装置20とカードリーダ30との状態監視を含む通信処理を含み、上位装置20が、カードリーダ30の状態をイネーブル(Enable)にさせ磁気カード読み取り可能状態での処理について説明する。
本実施形態において、状態監視とは前述したように、コマンドのやり取りではなく、カードリーダ30の状態を特定のメモリに書き込み、定期的にそのメモリにアクセスしてイネーブルであることを確認する処理(コントロール転送)をいう。
【0058】
[動作説明]
図4は、本実施形態において、上位装置がカードリーダの状態をイネーブルにさせ磁気カード読み取り可能状態での処理について説明するためのフローチャートである。
図5は、
図4の状態監視処理を説明するためのフローチャートである。
【0059】
上位装置20が、カードリーダ30に対してイネーブル状態とするためのコマンドを発行し、カードリーダ30の状態をイネーブル状態にさせる(ステップST0)。これにより、磁気カード読み取り可能状態(磁気カードの走査待ち状態)となる。
次に、上位装置20は、リードコマンドを発行し(ステップST1)、エラーがなければ(ステップST2:No)、処理はステップST3の磁界カードリーダ30の状態監視処理に移行される。
すなわち、上位装置20は、CPU21の制御の下、上位側USB通信部25を通して、カードリーダ30を磁気カード読み取り可能状態に遷移させ、上位装置20およびカードリーダ30が読み取り待ち状態(磁気情報(磁気データ)の入力待ちを示す待機状態)となると、エンドポイントEP0(コントロール転送)により定期的に状態監視処理を行い、カードリーダ30の状態監視を行う。
一方、初期化処理に失敗した場合、すなわちエラーがあった場合には(ステップST2:Yes)、初期化することができない異常が生じているとして、処理を終了する。
【0060】
ステップST3において、上位装置20は、磁気データ待ちとなり、状態監視(コントロール転送)を行う。
状態監視処理においては、データを上位装置20へ通知するエンドポイント以外のエンドポイント(本実施形態ではコントロール転送)が使用され、磁気カードMCが走査されるのを待っている待機状態の間に、上位装置20はカードリーダ30との双方向通信で状態監視を行い、カードリーダ30の状態監視を行う。
状態監視処理において、カードリーダ30は、現在の状態を上位装置20に返し、上位装置20が、カードリーダ30が、磁気リードを可能な状態かを確認する。
【0061】
ここで、
図5のステップST31のように、上位装置20は、カードリーダ30の状態監視処理を行うが、この状態監視通信でエラーがあり状態監視を失敗したと判断した場合には(ステップST32:Yes)、処理を終了する。
一方、状態監視通信でエラーがなく状態監視を成功したと判断した場合には(ステップST32:No)、上位装置20は待機状態となる(ステップST33)。
そして、ステップST34において、所定時間を経過してタイムアウトとなった場合には、ステップST31の処理に戻る。
一方、ステップST34において、タイムアウトでなく異常があると判断すると、状態監視の中断命令を発行して一連の処理の終了となる。
【0062】
なお、上位装置20は、状態監視処理で、カードリーダ30側が、磁気カードの走査等に伴う静電気等でリセットされて初期化されていない初期状態となっていることを確認すると、初期化コマンドを出してカードリーダ30を磁気カード読み取り可能状態に遷移(復帰)させるべく、カードリーダ30に対する復帰処理を行う。
【0063】
図4において、ステップST3の状態監視処理の後、上位装置20は、磁気データエラーがあるまで待機する(ステップST4)。
そして、磁気データエラーがあると一連の処理を中断する(ステップST5)。
【0064】
[実施形態の主な効果]
以上説明したように、本実施形態によれば、非同期で通信を行うカードリーダ30が静電気等によりリセットされて初期状態に陥ったとき、無応答状態となることなく、カードリーダ30を自動的に初期状態から待機状態へ確実に遷移させることができる。
その結果、本実施形態によれば、利便性を高めることができる。
【0065】
なお、カードスワイプの静電気による影響は、デバイスのリセットだけでなく、デバイスが暴走する事例もある。デバイスが暴走した場合、電源を入れ直せば復帰させることができる。
【0066】
図6は、本実施形態の情報処理システムにおいて、通信切断と静電気によるCPUリセットが発生した場合の効果を、状態監視処理を行わない構成を比較例と比較して示す図である。
【0067】
図6に示すように、通信が切断されれば、本実施形態および比較例の両方ともエラーが検出できた。
一方、静電気でカードリーダ30のCPU31がリセットされ磁気リード可能状態が解除された場合、状態監視無の比較例ではエラーの検出を行うことができなかった。
CPU31がリセットされると、カードリーダ30が磁気リード可能状態は解除されてしまうが、正常に動作している。
そのため、状態監視を行わない比較例では、上位装置側はカードリーダからの磁気データ待ち、カードリーダは上位装置からのコマンド待ち、カードを走査しても磁気リードせず、の状態となっている。
すなわち、上位装置から見れば、カードリーダは無応答である。
これに対して、状態監視を行う(状態監視有り)の本実施形態(本例)の場合では、磁気リード状態が解除されたことを上位装置20側は検出することができることから、再度カードリーダを磁気リード可能状態に遷移させれば、エラーの検出と復旧ができる。
【0068】
[他の実施形態]
上述した実施形態では、エンドポイントを上記のように設定した例を示したが、エンドポイントの数や転送モードにより、種々の組み合わせで実現することが可能である。
【0069】
また、上述した実施形態では、カードリーダ30として、磁気ストライプを有するカード状媒体を走行基準面に沿って手動走行させるスワイプ式のものを採用しているが、本発明はこれに限られない。
【0070】
なお、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、CPU等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。