(57)【要約】【課題】上位装置との間で非同期で通信を行う情報処理装置であって、上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、情報処理装置の状態を確認することが可能な情報処理装置、情報処理方法、情報処理システム、およびプログラムを提供する。【解決手段】カードリーダ３０は上位装置２０と非同期で通信を行い、上位装置との間でＵＳＢ通信を行うＵＳＢ通信部３４は、上位装置２０がカードリーダ３０からの応答を待ち続ける待機状態である場合、カードリーダ３０の状態を確認するための双方向通信専用のエンドポイントＥＰ０を備えている。【選択図】図３
2014197254.tif 000002
【特許請求の範囲】
【請求項１】
上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置であって、
前記上位装置との間でＵＳＢ通信を行うＵＳＢ通信部を有し、
前記ＵＳＢ通信部は、
前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用のエンドポイントを備えた
ことを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、手動で走査される情報記録媒体に記録された前記情報を読み取る
請求項１記載の情報処理装置。
【請求項３】
前記情報処理装置は、情報が記録されたカード状媒体を処理するカードリーダである
請求項１または２記載の情報処理装置。
【請求項４】
上位装置と、
前記上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置と、を有し、
前記上位装置は、
所定のエンドポイントを通して前記情報処理装置の状態を確認するための状態監視を行う機能を含み、
前記情報処理装置は、
前記上位装置との間でＵＳＢ通信を行うＵＳＢ通信部を有し、
前記ＵＳＢ通信部は、
前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用のエンドポイントを備えた
情報処理システム。
【請求項５】
前記情報処理装置は、手動で走査される情報記録媒体に記録された前記情報を読み取る
請求項４記載の情報処理システム。
【請求項６】
前記情報処理装置は、情報が記録されたカード状媒体を処理するカードリーダである
請求項４または５記載の情報処理システム。
【請求項７】
上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置の情報処理方法であって、
前記上位装置との間でＵＳＢ通信を行うＵＳＢ通信部に、少なくとも前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用のエンドポイントを形成し、
待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認する状態監視処理を受け、
前記双方向通信専用のエンドポイントを通して当該状態監視の応答として現在の状態を前記上位装置に送信する
ことを特徴とする情報処理方法。
【請求項８】
上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置の情報処理をコンピュータに実行させるプログラムであって、
前記上位装置との間でＵＳＢ通信を行うＵＳＢ通信部に、少なくとも前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用のエンドポイントを形成し、
待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認する状態監視処理を受け、
前記双方向通信専用のエンドポイントを通して当該状態監視の応答として現在の状態を前記上位装置に送信する
情報処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置と非同期で通信を行うカードリーダ等の情報処理装置、情報処理方法、情報処理システム、およびプログラムに関するものである。
【背景技術】
【０００２】
通常、情報処理装置であるカードリーダ等は通信線を介して上位装置と接続され、上位装置からのコマンドに従って処理を実行するように構成されている。
このように、上位装置とカードリーダ（情報処理装置）との通信を確立するためには、ＵＳＢ(Universal Serial Bus)接続方式など種々の通信方式が採用されている。
【０００３】
一方、近年主流となっているＵＳＢ接続方式は、メーカを問わずに外部機器を接続可能なので外部機器接続のデファクトスタンダードとして手軽ではあるが、ＵＳＢ規格が電力供給とデータ交換に主眼を置いている。
【０００４】
ところで、磁気情報等が記録されたカード（状媒体）を手動で走査してデータを読み取るカードリーダでは、一般的に、インタフェースにＵＳＢ通信システムが適用される（たとえば特許文献１参照）。
この種のカードリーダにおいては、検知したカード（状媒体）に記録されているデータを取得する方法として、カードリーダが非同期で上位装置へ通知するタイプと、上位装置がポーリング（カードリーダへ状態確認のコマンドを繰り返し実行）を行い、データのリードコマンドを実行するタイプの２通りがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−５９４０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、カードを走査した際、走査による静電気やノイズ等により、カードリーダのＣＰＵリセットや暴走、通信障害等が発生した場合、上位装置へエラーを通知する必要がある。
【０００７】
ポーリングを行うタイプのカードリーダでは、ポーリングで定期的にカードリーダへコマンドを送信して状態を確認しているため、直ちに異常を検知することができる。
【０００８】
これに対して、非同期で上位装置へ通知するタイプのカードリーダでは、上位装置側はカードリーダからのレスポンスを待ち続けるため、上位装置がエラーを検出できずにカードリーダでデータをリードができない状態にある場合に、無応答となってしまう。
【０００９】
カードリーダは上位装置の指令により磁気リード可能状態に遷移し、磁気情報等が記録されたカード（状媒体）の情報を読み取り可能な状態となる。
ここで、静電気等でカードリーダの処理部であるＣＰＵがリセットされデータをリード可能状態が解除された場合、非同期で上位装置へ通知するタイプではエラーの検出を行うことができなかった。
すなわち、ＣＰＵがリセットされると、カードリーダが磁気リード可能状態は解除されてしまうが、正常に動作している。
そのため、非同期で上位装置へ通知するタイプのカードリーダでは、上位装置側はカードリーダからのデータ待ち、カードリーダは上位装置からのコマンド待ち、カードを走査してもデータをリードせず、の状態となっている。
上位装置から見れば、カードリーダは無応答である。
【００１０】
本発明の目的は、上位装置との間で非同期で通信を行う情報処理装置であって、上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、情報処理装置の状態を確認することが可能な情報処理装置、情報処理方法、情報処理システム、およびプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の観点は、上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置であって、前記上位装置との間でＵＳＢ通信を行うＵＳＢ通信部を有し、前記ＵＳＢ通信部は、前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用のエンドポイントを備えている。
【００１２】
これにより、本発明の情報処理装置は、（前記上位装置が前記情報処理装置からの応答を待ち続ける）待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認することが可能となる。
【００１３】
前記情報処理装置は、手動で走査される情報記録媒体に記録された前記情報を読み取るように構成されてもよい。
【００１４】
これにより、本発明の情報処理装置は、手動で情報記録媒体を走査するので、いつ装置に媒体が挿入されるか分からない、（前記上位装置が前記情報処理装置からの応答を待ち続ける）待機状態である場合であっても、情報処理装置の状態を監視することが可能となる。
【００１５】
前記情報処理装置は、情報が記録されたカード状媒体を処理するカードリーダであることが好ましい。
【００１６】
これにより、本発明の情報処理装置は、（手動で情報記録媒体を走査する）カードリーダであるので、新たな構成を追加することなく、待機状態でのカードリーダの状態を監視することが可能となる。
【００１７】
本発明の第２の観点の情報処理システムは、上位装置と、前記上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置と、を有し、前記上位装置は、所定のエンドポイントを通して前記情報処理装置の状態を確認するための状態監視を行う機能を含み、前記情報処理装置は、前記上位装置との間でＵＳＢ通信を行うＵＳＢ通信部を有し、前記ＵＳＢ通信部は、前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用のエンドポイントを備えている。
【００１８】
これにより、本発明の情報処理システムにおいて、情報処理装置は、（前記上位装置が前記情報処理装置からの応答を待ち続ける）待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認することが可能となる。そして、情報処理システムは、状態監視が可能となったことから、その次の処理、たとえば、自動的に復帰することが可能となる。
【００１９】
本発明の第３の観点は、上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置の情報処理方法であって、前記上位装置との間でＵＳＢ通信を行うＵＳＢ通信部に、少なくとも前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用のエンドポイントを形成し、待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認する状態監視処理を受け、前記双方向通信専用のエンドポイントを通して当該状態監視の応答として現在の状態を前記上位装置に送信する。
【００２０】
これにより、本発明の情報処理方法において、前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認することが可能となる。そして、情報処理方法は、状態監視が可能となったことから、その次の処理、たとえば、自動的に復帰することが可能となる。
【００２１】
本発明の第４の観点は、上位装置との間で非同期で通信を行い、状況に応じた処理を実行して、当該上位装置に対して現在の状態と処理結果を送信する情報処理装置の情報処理をコンピュータに実行させるプログラムであって、前記上位装置との間でＵＳＢ通信を行うＵＳＢ通信部に、少なくとも前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記情報処理装置の状態を確認するための双方向通信専用のエンドポイントを形成し、待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認する状態監視処理を受け、前記双方向通信専用のエンドポイントを通して当該状態監視の応答として現在の状態を前記上位装置に送信する情報処理をコンピュータに実行させるプログラムである。
【００２２】
これにより、本発明のプログラムにおいて、前記上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、前記上位装置から前記双方向通信専用のエンドポイントを通して前記情報処理装置の状態を確認することが可能となる。そして、本プログラムは、状態監視が可能となったことから、その次の処理、たとえば、自動的に復帰することが可能となる。
【発明の効果】
【００２３】
本発明によれば、上位装置との間で非同期で通信を行う情報処理装置であって、上位装置が前記情報処理装置からの応答を待ち続ける待機状態である場合、情報処理装置の状態を確認することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態に係る情報処理システムの構成を示すブロック図である。
【図２】本実施形態に係る上位装置の構成例を示すブロック図である。
【図３】本実施形態に係る上位装置とカードリーダ間の状態監視を実現するエンドポイントに関する構成を概念的に示す図である。
【図４】本実施形態において、上位装置がカードリーダの状態をイネーブルにさせ磁気カード読み取り可能状態での処理について説明するためのフローチャートである。
【図５】図４の状態監視処理を説明するためのフローチャートである。
【図６】本実施形態の情報処理システムにおいて、通信切断と静電気によるＣＰＵリセットが発生した場合の効果を、状態監視処理を行わない構成を比較例と比較して示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態を図面に関連付けて説明する。
本実施形態においては、情報処理装置として、クレジットカード、プリペイドカードまたはキャッシュカード等のカード状媒体である磁気カードに形成された磁気ストライプに記録されている磁気データ（磁気情報）等の読み取りまたは書き込みを行うもカードリーダを例に説明する。
なお、本実施形態は、磁気カードリーダ等のカードリーダ以外に、非接触カードを装置にかざして情報のやりとりを行う非接触カードリーダやスーパー等のレジスターで使用するようなバーコード読取装置にも適用可能である。
【００２６】
図１は、本実施形態に係る情報処理システムの概要を示すブロック図である。また、図１は、情報処理装置としてのカードリーダの信号処理系の基本的な構成例をブロック図として示している。
図２は、本実施形態に係る上位装置の構成例を示すブロック図である。
【００２７】
［情報処理システム１０の概要］
本実施形態に係る情報処理システム１０は、図１に示すように、主として、上位装置（たとえばＰＯＳ端末用ホスト）２０と、カードリーダ３０とを主構成要素として構成されている。
【００２８】
まず、本実施形態の特徴的な構成および機能について説明し、その後、各部の具体的な構成および処理について説明する。
【００２９】
上位装置２０とカードリーダ３０との間の通常の通信は、ＲＳ２３２ＣやＵＳＢ（Universal Serial Bus）などの専用線（有線の通信線）を用いた通信システムが適用され、本実施形態ではＵＳＢ通信システムが適用されている。
したがって、上位装置２０とカードリーダ３０とは、通常の通信経路としてＵＳＢケーブル４０により接続されている。
【００３０】
本実施形態に係るカードリーダ３０は、上位装置２０との間でＵＳＢ通信システムを介して通信を行い、状況に応じた処理を実行して、上位装置２０に対して現在の状態と処理結果を送信する機能を有している。
本実施形態の情報処理装置としてのカードリーダ３０は上位装置２０との間で非同期で通信を行う。
カードリーダ３０は、ＵＳＢ通信部において、後述するように、たとえば３つのエンドポイントＥＰ０〜ＥＰ２を含んで構成される。
カードリーダ３０は、上位装置２０との間で通信を行うＵＳＢ通信部（ＵＳＢインタフェース）には、少なくとも、上位装置２０との間における各種設定および制御のいずれか、あるいは両方を行うための双方向通信のコントロール転送専用のエンドポイントＥＰ０を備えている。
換言すれば、このエンドポイントＥＰ０は、上位装置２０がカードリーダ３０からの応答を待ち続ける待機状態である場合、カードリーダ３０の状態を確認するための双方向通信専用のエンドポイントである。
待機状態である場合、上位装置２０が双方向通信専用（コントロール転送）のエンドポイントＥＰ０を用いてカードリーダ３０の状態を確認する状態監視処理（疑似的なポーリング処理）を行う。
【００３１】
非同期通信を行うカードリーダ３０について、エンドポイントを利用して状態監視を行うのは次の理由による。
非同期で上位装置へ通知するタイプのカードリーダでは、上位装置側はカードリーダからの応答を待ち続けるため、上位装置がエラーを検出できずにカードリーダで磁気リードができない状態にある場合に、無応答となってしまう。
そこで、本実施形態においては、非同期で上位装置２０へ通知するタイプのカードリーダ３０で、上位装置２０へ状態を通知するために以下の特徴的な構成を有している。
１）データを上位装置２０へ通知するエンドポイント以外のエンドポイント（本実施形態ではコントロール転送）を使用し、磁気カードＭＣが走査されるのを待っている待機状態の間に、上位装置２０とカードリーダ３０との双方向通信で状態監視処理（疑似的なポーリング処理）を行い、カードリーダ３０の状態監視を行う。
２）状態監視でカードリーダの現在の状態を上位装置２０に返し、上位装置２０が、カードリーダ３０が、磁気リードを可能な状態であるかを確認できるようしている。
【００３２】
なお、エンドポイントとは、ＵＳＢデバイスとしてのカードリーダ３０とホスト機器である上位装置２０との間を接続する論理的な通信経路の最小単位のことであり、ＵＳＢ規格により定められている。
換言すると、エンドポイントとは、ＵＳＢデバイス（ここではカードリーダ３０）においてホストである上位装置２０と通信を行うためのリソース、具定的にはバッファ、ＦＩＦＯ(First-In First-Out)等をいう。
【００３３】
本実施形態においては、たとえばエンドポイントが以下のように設定されるカードリーダ３０として構成される。
第１のエンドポイントＥＰ０：コントロール転送
第２のエンドポイントＥＰ１：インタラプトＩＮ
第３のエンドポイントＥＰ２：インタラプトＯＵＴ
【００３４】
第１のエンドポイントＥＰ０は、コントロール転送であり、制御用エンドポイントである。
第２のエンドポイントＥＰ１は、インタラプトＩＮで、上位装置２０がカードリーダ３０からのレスポンスを受信するためのものである。
第３のエンドポイントＥＰ２は、インタラプトＯＵＴで、上位装置２０がカードリーダ３０にコマンドを送信するものである。
３つのエンドポイントのうち、エンドポイントＥＰ０のみが双方向通信可能である。
【００３５】
状態監視にコントロール転送を使用する理由は以下の通りである。
コントロール転送は、コンフィギュレーションを行うために必ずサポートされており、双方向通信が可能である。
コントロール転送以外は、上位装置（ホスト）側からのデータ送信で一つ、受信で一つであることから、計２つのエンドポイントが必要である。
【００３６】
なお、エンドポイントの構成やこれに伴う状態監視を含むＵＳＢ通信処理については後でさらに説明する。
【００３７】
［上位装置（ホスト装置）２０の具体的な構成および機能］
図２は、本実施形態に係る上位装置の構成例を示している。
上位装置２０は、上述したように、基本的に、カードリーダ３０との間で、主通信システムのＵＳＢ通信システムを通して通信制御を行い、コマンドの送信に対応したレスポンス（応答）を受信する等の各種情報の授受を行って、カードリーダ３０からの情報を取得する。
【００３８】
図２の上位装置２０は、基本的に、処理部であるＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ストレージユニット２４、および上位（ホスト）側ＵＳＢ通信部２５を有している。
上位（ホスト）側ＵＳＢ通信部２５は、ＵＳＢケーブル４０を介してカードリーダ３０のＵＳＢ通信部と接続されている。
【００３９】
本例においては、図中のストレージユニット２４内に保存されたオペレーティングシステム（ＯＳ）、通信制御用等のミドルウェアＭＷ、アプリケーション等のプログラムがソフトウェアシステムの一部をなし、実行時にいわゆるコンピュータ（電子計算機）のソフトウェアとしてＲＡＭ２３上に展開される。
【００４０】
このように、上位装置２０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３等の各種ハードウェアを有しており、上位装置２０を統合的に制御する機能、カードリーダ３０との通信機能、および磁気情報の読み取りを行う機能などを有している。
【００４１】
上位装置２０において、ＣＰＵ２１が全体の制御を行う。
上位装置２０は、カードリーダ３０とのＵＳＢ通信を行う場合に、ＣＰＵ２１の制御の下、上位（ホスト）側ＵＳＢ通信部２５を通して、ＵＳＢケーブル４０により接続されたカードリーダ３０のＵＳＢ通信部との間でＵＳＢ通信を行う。
【００４２】
ＵＳＢ通信システムは、ホストである上位装置２０とデバイスであるカードリーダ３０間をシリアル通信で接続するものであって、たとえばプラグアンドプレイ機能（自動接続認識機能）、ホットインサーション機能（電源を入れたままでの抜き差しを可能にする機能）およびホストからデバイスへの電源（電力）供給機能など、ユーザの利便性を高める様々な機能を有している。
一般的に、ＵＳＢ通信で用いるＵＳＢケーブル４０は、５Ｖの電源ライン（Ｖ−ＢＵＳライン）、ＧＮＤ（グランド）ライン、およびデータ転送用のＤ＋およびＤ−の信号ラインから構成される合計４本の配線を有している。
そして、カードリーダ３０等のデバイス側では、Ｖ−ＢＵＳラインを通じて送信されるＶ−ＢＵＳ信号の常時監視を行っている。つまり、このＶ−ＢＵＳ信号の遷移状態を常時監視することで、ＵＳＢ通信の異常検出を行うこともできるようになっている。
たとえば、Ｖ−ＢＵＳラインの上位装置が故意にダウンさせることのないシステムにおいては、ＵＳＢ通信中に何らかの理由でＵＳＢケーブルが外れた場合には、Ｖ−ＢＵＳ信号がオンからオフへと遷移し、その結果、デバイスはＵＳＢ通信の物理的な接続が破断したと認識し、ＵＳＢ通信の異常が検出されることもできる。
【００４３】
上位装置２０は、ＣＰＵ２１の制御の下、上位（ホスト）側ＵＳＢ通信部２５を通して、カードリーダ３０を磁気カード読み取り可能状態に遷移させ、上位装置２０およびカードリーダ３０が読み取り待ち状態（磁気情報（磁気データ）の入力待ちを示す待機状態）となると、エンドポイントＥＰ０（コントロール転送）により定期的（たとえば１〜５秒間隔）に状態監視処理を行い、カードリーダ３０の状態監視を行う。
上位装置２０は、状態監視でカードリーダ３０から送信されるべき現在の状態情報に基づいて磁気リードを可能な状態であるかを確認できるようしている。
上位装置２０は、この状態監視で、カードリーダ３０側が、磁気カードの走査等に伴う静電気等でリセットされて初期化されていない初期状態となっていることを確認すると、初期化コマンドを出してカードリーダ３０を磁気カード読み取り可能状態に遷移（復帰）させるべく、カードリーダ３０に対する復帰処理を行う。
【００４４】
上位装置２０は、エンドポイントＥＰ１のインタラプトＩＮでレスポンスを受信し、エンドポイントＥＰ２のインタラプトＯＵＴでコマンドを送信する。
上位装置２０は、カードリーダ３０を磁気リード可能状態へ遷移するようコマンドを送信し、インタラプトＩＮにて非同期で磁気データが通知されるのを待つ。
状態監視は、双方向通信が必要なことから、コントロール転送を使用してカードリーダ３０の状態確認を行う。
上位装置２０は、この状態監視をカードリーダ３０が磁気リード可能状態の期間のみ行う。
【００４５】
この状態監視処理に伴いカードリーダ３０の状態監視および復帰処理等はＣＰＵ２１の制御に従って行われる。
本実施形態によれば、非同期で通信を行うカードリーダ３０において、待機状態である場合、カードリーダ３０の状態を監視することが可能である。
さらに、本実施形態では、カードリーダ３０の状態監視が可能なので、エラーが生じた場合にはその結果を上位装置２０にレスポンスし、自動的にカードリーダ３０を復帰処理等をすることが可能となる。
【００４６】
なお、本実施形態における状態監視は、たとえばゲットインデックスストリング(Get Index String)というＵＳＢコマンドを用いてカードリーダ３０側のメモリの所定のアドレスのデータを要求してカードリーダの状態を取得することにより行われる。
すなわち、本実施形態における状態監視は、疑似的ポーリングということもできる。
【００４７】
次に、カードリーダ３０の構成および機能について説明する。
【００４８】
［カードリーダ３０の構成および機能］
本実施形態では、カードリーダ３０として、磁気ストライプを有するカード状媒体を走行基準面に沿って手動走行させるスワイプ式のものを採用している。すなわち、ここで説明するカードリーダ３０は、手動で走査される磁気カードＭＣに記録された情報を読み取る機能を有する。
ただし、本発明はこれに限られない。
そして、カードリーダ３０は、上位装置２０との間で、非同期で通信を行う。
【００４９】
前述したように、図１は、本実施形態に係る情報処理としてのカードリーダの信号処理系の構成例を示している。
図１のカードリーダ３０は、カードリーダ３０全体を統合的に制御する処理部としてのＣＰＵ３１、カードリーダ３０の動作プログラムや初期値、パラメータなどを格納するＲＯＭ３２、およびＣＰＵ３１のワーキングエリアとして機能するＲＡＭ３３を有している。
カードリーダ３０は、上位装置２０とＵＳＢ通信を行うＩ／Ｆ（インタフェース）デバイスとしての機能を含むＵＳＢ通信部３４、および手動走行される磁気カードＭＣから磁気情報を読み取る磁気ヘッドを含む読み取り部３５を有している。
【００５０】
カードリーダ３０は、ＵＳＢ通信部３４さらにはＵＳＢケーブル４０を介して上位装置２０と接続されている。
カードリーダ３０は、上位装置２０との間の通信規約に沿った情報列のコマンドに基づき動作する。
【００５１】
ＵＳＢ通信部３４は、上位装置２０からカードリーダ３０へ送られた信号をＴＴＬレベルの信号に変換し、それをＣＰＵ３１に転送する機能を有する。
また、ＣＰＵ３１からの信号を逆変換して、上位装置２０に転送する。
本実施形態において、上位装置２０とカードリーダ３０の間の通常の通信としては、上述したように、ＵＳＢ通信システムが採用されている。
【００５２】
カードリーダ３０は、ＣＰＵ３１の制御の下、ＵＳＢ通信部３４を通して受信する上位装置２０からの指令（コマンド）により磁気リード可能状態（待機状態）に遷移し、磁気カードＭＣの情報を読み取り可能な状態となる。
カードリーダ３０は、ＣＰＵ３１の制御の下、カードリーダ３０側で行った処理の結果を、ＵＳＢ通信部３４を通して上位装置２０に送信する。
カードリーダ３０は、ＣＰＵ３１の制御の下、磁気リード可能状態の期間のみ上位装置２０からのエンドポイントＥＰ０を用いた状態監視に対して現在の状態に関するデータ（情報）を、ＵＳＢ通信部３４を通して上位装置２０に送信する。
カードリーダ３０は、静電気等でカードリーダの処理部であるＣＰＵ３１がリセットされ磁気リード可能状態が解除されると、上位装置２０からのエンドポイントＥＰ０を用いた状態監視に対して現在の状態が初期状態にあることを、ＵＳＢ通信部３４を通して上位装置２０に送信する。
カードリーダ３０は、上位装置２０から復帰指令（本実施形態では初期化コマンド）を受けると、初期状態から磁気リード可能状態に遷移する復帰処理を行い、磁気リード可能状態に復帰することが可能に構成されている。
【００５３】
前述したように、本実施形態においては、非同期で上位装置２０へ通知するタイプのカードリーダ３０で、上位装置２０へ状態を通知するために以下の特徴的な構成を有している。
１）データを上位装置２０へ通知するエンドポイント以外のエンドポイント（本実施形態ではコントロール転送）を使用し、磁気カードＭＣが走査されるのを待っている待機状態の間に、上位装置２０とカードリーダ３０との双方向通信で状態監視（疑似的なポーリング）を行い、カードリーダ３０の状態監視を行う。
２）状態監視でカードリーダ３０の現在の状態を上位装置２０に返し、上位装置２０が、カードリーダ３０が、磁気リードを可能な状態かを確認できるようしている。
【００５４】
図３は、本実施形態に係る上位装置とカードリーダ間の状態監視を実現するエンドポイントに関する構成を概念的に示す図である。
図３の例では、上位装置２０側においては、たとえば上位側ＵＳＢ通信部２５に各エンドポイントＥＰ０，ＥＰ１，ＥＰ２に対応するバッファＢＦ０，ＢＦ１，ＢＦ２，・・・が配置されているバッファ群２５０を有する。
また、カードリーダ３０側においては、ＵＳＢ通信部３４に各エンドポイントＥＰ０，ＥＰ１，ＥＰ２に対応するＦＩＦＯにより構成されるバッファＦＩＦＯ０，ＦＩＦＯ１，ＦＩＦＯ，・・・が配置されているバッファ群（ＦＩＦＯ群）３４０を有する。
【００５５】
図３に示すように、エンドポイントＥＰ０のコントロール転送は、上位装置２０とカードリーダ３０間で双方向通信可能である。
エンドポイントＥＰ１のインタラプトＩＮは、カードリーダ３０から上位装置２０に向かってレスポンス（応答）を返す（上位装置２０がレスポンスを受信する）ための片方向通信である。
エンドポイントＥＰ２のインタラプトＯＵＴは、上位装置２０がカードリーダ３０にコマンドを送信する（カードリーダ３０がコマンドを受信する）ための片方向通信である。
【００５６】
本実施形態においては、カードリーダ３０は、ＵＳＢ通信部３４およびＣＰＵ３１で、第３のエンドポイントＥＰ３を通して磁気カード読み取り可能状態に遷移するようコマンドを受け、第２のエンドポイントＥＰを通して非同期で処理実行により得られたデータを上位装置２０に送信する。
【００５７】
次に、上記構成を有する情報処理システム１０の動作について説明する。
ここでは、上位装置２０とカードリーダ３０との状態監視を含む通信処理を含み、上位装置２０が、カードリーダ３０の状態をイネーブル（Ｅｎａｂｌｅ）にさせ磁気カード読み取り可能状態での処理について説明する。
本実施形態において、状態監視とは前述したように、コマンドのやり取りではなく、カードリーダ３０の状態を特定のメモリに書き込み、定期的にそのメモリにアクセスしてイネーブルであることを確認する処理（コントロール転送）をいう。
【００５８】
［動作説明］
図４は、本実施形態において、上位装置がカードリーダの状態をイネーブルにさせ磁気カード読み取り可能状態での処理について説明するためのフローチャートである。
図５は、図４の状態監視処理を説明するためのフローチャートである。
【００５９】
上位装置２０が、カードリーダ３０に対してイネーブル状態とするためのコマンドを発行し、カードリーダ３０の状態をイネーブル状態にさせる（ステップＳＴ０）。これにより、磁気カード読み取り可能状態（磁気カードの走査待ち状態）となる。
次に、上位装置２０は、リードコマンドを発行し（ステップＳＴ１）、エラーがなければ（ステップＳＴ２：Ｎｏ）、処理はステップＳＴ３の磁界カードリーダ３０の状態監視処理に移行される。
すなわち、上位装置２０は、ＣＰＵ２１の制御の下、上位側ＵＳＢ通信部２５を通して、カードリーダ３０を磁気カード読み取り可能状態に遷移させ、上位装置２０およびカードリーダ３０が読み取り待ち状態（磁気情報（磁気データ）の入力待ちを示す待機状態）となると、エンドポイントＥＰ０（コントロール転送）により定期的に状態監視処理を行い、カードリーダ３０の状態監視を行う。
一方、初期化処理に失敗した場合、すなわちエラーがあった場合には（ステップＳＴ２：Ｙｅｓ）、初期化することができない異常が生じているとして、処理を終了する。
【００６０】
ステップＳＴ３において、上位装置２０は、磁気データ待ちとなり、状態監視（コントロール転送）を行う。
状態監視処理においては、データを上位装置２０へ通知するエンドポイント以外のエンドポイント（本実施形態ではコントロール転送）が使用され、磁気カードＭＣが走査されるのを待っている待機状態の間に、上位装置２０はカードリーダ３０との双方向通信で状態監視を行い、カードリーダ３０の状態監視を行う。
状態監視処理において、カードリーダ３０は、現在の状態を上位装置２０に返し、上位装置２０が、カードリーダ３０が、磁気リードを可能な状態かを確認する。
【００６１】
ここで、図５のステップＳＴ３１のように、上位装置２０は、カードリーダ３０の状態監視処理を行うが、この状態監視通信でエラーがあり状態監視を失敗したと判断した場合には（ステップＳＴ３２：Ｙｅｓ）、処理を終了する。
一方、状態監視通信でエラーがなく状態監視を成功したと判断した場合には（ステップＳＴ３２：Ｎｏ）、上位装置２０は待機状態となる（ステップＳＴ３３）。
そして、ステップＳＴ３４において、所定時間を経過してタイムアウトとなった場合には、ステップＳＴ３１の処理に戻る。
一方、ステップＳＴ３４において、タイムアウトでなく異常があると判断すると、状態監視の中断命令を発行して一連の処理の終了となる。
【００６２】
なお、上位装置２０は、状態監視処理で、カードリーダ３０側が、磁気カードの走査等に伴う静電気等でリセットされて初期化されていない初期状態となっていることを確認すると、初期化コマンドを出してカードリーダ３０を磁気カード読み取り可能状態に遷移（復帰）させるべく、カードリーダ３０に対する復帰処理を行う。
【００６３】
図４において、ステップＳＴ３の状態監視処理の後、上位装置２０は、磁気データエラーがあるまで待機する（ステップＳＴ４）。
そして、磁気データエラーがあると一連の処理を中断する（ステップＳＴ５）。
【００６４】
［実施形態の主な効果］
以上説明したように、本実施形態によれば、非同期で通信を行うカードリーダ３０が静電気等によりリセットされて初期状態に陥ったとき、無応答状態となることなく、カードリーダ３０を自動的に初期状態から待機状態へ確実に遷移させることができる。
その結果、本実施形態によれば、利便性を高めることができる。
【００６５】
なお、カードスワイプの静電気による影響は、デバイスのリセットだけでなく、デバイスが暴走する事例もある。デバイスが暴走した場合、電源を入れ直せば復帰させることができる。
【００６６】
図６は、本実施形態の情報処理システムにおいて、通信切断と静電気によるＣＰＵリセットが発生した場合の効果を、状態監視処理を行わない構成を比較例と比較して示す図である。
【００６７】
図６に示すように、通信が切断されれば、本実施形態および比較例の両方ともエラーが検出できた。
一方、静電気でカードリーダ３０のＣＰＵ３１がリセットされ磁気リード可能状態が解除された場合、状態監視無の比較例ではエラーの検出を行うことができなかった。
ＣＰＵ３１がリセットされると、カードリーダ３０が磁気リード可能状態は解除されてしまうが、正常に動作している。
そのため、状態監視を行わない比較例では、上位装置側はカードリーダからの磁気データ待ち、カードリーダは上位装置からのコマンド待ち、カードを走査しても磁気リードせず、の状態となっている。
すなわち、上位装置から見れば、カードリーダは無応答である。
これに対して、状態監視を行う（状態監視有り）の本実施形態（本例）の場合では、磁気リード状態が解除されたことを上位装置２０側は検出することができることから、再度カードリーダを磁気リード可能状態に遷移させれば、エラーの検出と復旧ができる。
【００６８】
［他の実施形態］
上述した実施形態では、エンドポイントを上記のように設定した例を示したが、エンドポイントの数や転送モードにより、種々の組み合わせで実現することが可能である。
【００６９】
また、上述した実施形態では、カードリーダ３０として、磁気ストライプを有するカード状媒体を走行基準面に沿って手動走行させるスワイプ式のものを採用しているが、本発明はこれに限られない。
【００７０】
なお、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【符号の説明】
【００７１】
１０・・・情報処理システムは、２０・・・上位装置、２１・・・ＣＰＵ（処理部）、２２・・・ＲＯＭ、２３・・・ＲＡＭ、２４・・・ストレージユニット、２５・・・上位（ホスト）側ＵＳＢ通信部、３０・・・カードリーダ、３１・・・ＣＰＵ（処理部）、３２・・・ＲＯＭ、３３・・・ＲＡＭ、３４・・・ＵＳＢ通信部、３５・・・読み取り部、４０・・・ＵＳＢケーブル。
【図１】
2014197254.tif 000003
【図２】
2014197254.tif 000004
【図３】
2014197254.tif 000005
【図４】
2014197254.tif 000006
【図５】
2014197254.tif 000007
【図６】
2014197254.tif 000008