説明

情報処理装置、情報処理システム、および情報処理方法、並びにコンピュータ・プログラム

【課題】リーダライタからのコマンドを受信して処理を実行するシステムにおける処理効率化を実現する。
【解決手段】リーダライタなどの通信デバイスとの通信処理を実行する通信モジュールと、通信モジュールとデータ転送路を介して通信を実行しデータ処理を実行するデータ処理モジュールを有する装置において、データ処理モジュールの処理時間を含めない時間の決定パラメータを最大応答時間決定用パラメータとし、通信デバイスからのコマンド入力後、データ処理モジュールにおけるデータ処理の開始前に応答メッセージを出力する。本構成により、最大待機時間を短く設定することが可能となり、パケットロス等のエラー発生時などにおいて、エラー対応を迅速に行うことが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、および情報処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、通信処理および通信処理に伴うデータ処理を実行する情報処理装置、情報処理システム、および情報処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【0002】
IC回路とアンテナを備え非接触通信を可能としたICカードや、ICカード機能を備えた携帯端末が様々な分野で利用されている。ICカードは、リーダライタに対して接触あるいは非接触で無線通信を行う。例えばICカードとリーダライタ間の無線通信によりデータ転送を行い、各デバイスにおいてデータ書き込みや読み取りが行われる。なお、ICカードとリーダライタ間の処理については、例えば特許文献1(特開2006−108886号公報)に記載されている。
【0003】
ICカードとリーダライタの通信においては例えば以下のような処理が行われる。
リーダライタがコマンド(処理要求)パケットをICカードに出力する。
コマンドパケットを受信したICカードがコマンドに応じた処理を行う。
ICカードは、処理の実行後にレスポンスパケットの返信を行う。
このような処理が行われる。しかし、この処理シーケンスにおいて、電力断やノイズの混入によりコマンドパケットや、レスポンスパケットを喪失する可能性がある。
【0004】
このため、リーダライタは、自ら送出したコマンドパケットに対するレスポンスパケットが一定時間受信できなかった場合は、コマンドの再送(リトライ)処理を行う。ここで、一定時間とは、カードがコマンドパケットを受信してから返信までに要する時間にマージンを加味した時間であり、最大応答時間[Tmax]と呼ばれる。最大応答時間[Tmax]は、リーダライタがコマンドパケットにおいて指定する処理の内容と、ICカードから受信するICカードの性能に基づいて決定されるパラメータに基づいてリーダライタが算出する。
【0005】
最大応答時間[Tmax]が経過しても、ICカードからのレスポンスパケットを受信できなかった場合、リーダライタは、処理エラーが発生したと判断し、エラー対応処理を開始する。例えば、正しいレスポンスパケットが得られるまでコマンドパケットの再送処理を試みる。このような処理を行うことで、正しく処理を完了させることができる。
【0006】
このようなシステムにおいて、ICカード側の処理時間が一定の時間として算出できる場合は、所定の最大応答時間[Tmax]を待機時間として設定することに問題がない。しかし、ICカードの内部状態によって処理時間が動的に変化する場合には、リーダライタが、所定の最大応答時間[Tmax]を待機時間として設定した場合に問題が発生することがある。
【0007】
例えば、リーダライタとのデータ通信処理を行うモジュールと、データ処理を実行するモジュールが別モジュールとして設定された装置を利用した処理を実行する場合には、各モジュール間でのデータ転送処理が必要となる。このような構成では処理時間が長くなり、上記の最大応答時間[Tmax]を待機時間として設定しても、その最大応答時間内に処理が終了しない場合がある。このような場合、リーダライタは、処理エラーが発生したと判断し、エラー対応処理を開始してしまう。
【0008】
また、リーダライタがコマンドパケットを送信後、通信経路中でコマンドパケットを喪失した場合は、ICカードがコマンドパケットを受信できず、ICカード側では一切の処理が開始できない状態になる。この場合にも、リーダライタは、上記の最大応答時間[Tmax]が経過するまでは、何の処理も実行することなく待機するのみとなる。このような場合、ICカード側で一切の処理が実行されないため、結果として必ずエラーが発生するにも関わらず、エラー対応処理の開始が遅れることになり、処理完了までの時間を長引かせることになる。
【特許文献1】特開2006−108886号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
本発明は、例えば上記問題点に鑑みてなされたものであり、リーダライタとICカードなどの情報処理装置間のデータ通信を伴うデータ処理構成において、コマンド受信側の処理時間が長期化する場合や、パケット喪失などが発生した場合でも、正常な処理シーケンスに従って効率的に処理を完了させることを可能とする情報処理装置、情報処理システム、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の第1の側面は、
外部の通信デバイスとの通信処理を実行する通信モジュールと、
前記通信モジュールとデータ転送路を介して通信を実行しデータ処理を実行するデータ処理モジュールを有し、
前記通信モジュールは、
前記通信デバイスにおけるコマンド出力から前記通信モジュールの応答受信までの許容待機時間である最大応答時間を決定するパラメータとして、前記データ処理モジュールにおけるデータ処理時間を含めない時間決定用パラメータを格納したメッセージデータを前記通信デバイスに対して出力するとともに、
前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の処理終了前に応答メッセージを前記通信デバイスに出力する構成である情報処理装置にある。
【0011】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、前記通信モジュールと、前記データ処理モジュールに対する電力供給を行う電源を有し、前記通信モジュールと前記データ処理モジュールは、前記電源からの電力供給により動作する構成である。
【0012】
さらに、本発明の情報処理装置の一実施態様において、前記通信モジュールは、前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の開始前に応答メッセージを前記通信デバイスに出力する構成である。
【0013】
さらに、本発明の情報処理装置の一実施態様において、前記通信モジュールの出力するメッセージデータは、前記通信デバイスに対するポーリング応答である。
【0014】
さらに、本発明の情報処理装置の一実施態様において、前記データ処理モジュールの実行するデータ処理は、記憶部に対するデータ記録処理、または記録部からのデータ読み取り処理であり、前記通信モジュールは、前記データ処理モジュールにおいて実行する記憶部に対するデータ記録処理、または記録部からのデータ読み取り処理の処理時間を含めない最大応答時間を決定するパラメータを前記メッセージデータに格納して前記通信デバイスに対して出力する構成である。
【0015】
さらに、本発明の情報処理装置の一実施態様において、前記通信モジュールは、前記パラメータを格納したデータを前記通信デバイスに出力した後、前記通信デバイスからのコマンドを受信し、前記データ処理モジュールは、前記コマンドに応じたデータ処理を実行する構成である。
【0016】
さらに、本発明の情報処理装置の一実施態様において、前記通信モジュールは、前記データ処理モジュールからのデータ処理完了通知の受領後、前記通信デバイスからの処理結果要求を受信し、該処理結果要求に対する応答として、前記データ処理モジュールから前記通信モジュールのバッファに入力された処理結果を前記通信デバイスに対して出力する構成である。
【0017】
さらに、本発明の情報処理装置の一実施態様において、前記通信モジュールが、前記通信デバイスからの処理結果要求に対する応答として、前記通信デバイスに対して出力するデータは、前記データ処理モジュールから前記通信モジュールのバッファに入力された処理結果フラグである。
【0018】
さらに、本発明の情報処理装置の一実施態様において、前記通信モジュールが、前記通信デバイスからの処理結果要求に対する応答として、前記通信デバイスに対して出力するデータは、前記データ処理モジュールから前記通信モジュールのバッファに入力された前記データ処理モジュール側の記録部からの読み取りデータである。
【0019】
さらに、本発明の情報処理装置の一実施態様において、前記通信デバイスは、リーダライタであり、前記通信モジュールは、リーダライタからのポーリング要求に応答するポーリング応答として前記パラメータを格納したデータを前記リーダライタに出力し、さらに、前記リーダライタからのコマンドを受信し、前記データ処理モジュールは、前記コマンドに応じたデータ処理を実行する構成である。
【0020】
さらに、本発明の第2の側面は、
無線通信を実行する通信デバイスと情報処理装置を有し、
前記情報処理装置は、
外部の通信デバイスとの通信処理を実行する通信モジュールと、
前記通信モジュールとデータ転送路を介して通信を実行しデータ処理を実行するデータ処理モジュールを有し、
前記通信モジュールは、
前記通信デバイスにおけるコマンド出力から前記通信モジュールの応答受信までの許容待機時間である最大応答時間を決定するパラメータとして、前記データ処理モジュールにおけるデータ処理時間を含めない時間決定用パラメータを格納したメッセージデータを前記通信デバイスに対して出力するとともに、
前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の処理終了前に応答メッセージを前記通信デバイスに出力する構成であり、
前記通信デバイスは、
前記パラメータに基づいて前記最大応答時間を決定して、該最大応答時間を設定してコマンドを前記情報処理装置に出力する構成である情報処理システムにある。
【0021】
さらに、本発明の情報処理システムの一実施態様において、前記通信モジュールは、前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の開始前に応答メッセージを前記通信デバイスに出力する構成である。
【0022】
さらに、本発明の情報処理システムの一実施態様において、前記通信モジュールの出力するメッセージデータは、前記通信デバイスに対するポーリング応答である。
【0023】
さらに、本発明の情報処理システムの一実施態様において、前記データ処理モジュールの実行するデータ処理は、記憶部に対するデータ記録処理、または記録部からのデータ読み取り処理であり、前記通信モジュールは、前記データ処理モジュールにおいて実行する記憶部に対するデータ記録処理、または記録部からのデータ読み取り処理の処理時間を含めない最大応答時間を決定するパラメータを前記メッセージデータに格納して前記通信デバイスに対して出力する構成である。
【0024】
さらに、本発明の第3の側面は、
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
外部の通信デバイスとの通信処理を実行する通信モジュールと、
前記通信モジュールとデータ転送路を介して通信を実行しデータ処理を実行するデータ処理モジュールを有し、
前記通信モジュールが、前記通信デバイスにおけるコマンド出力から前記通信モジュールの応答受信までの許容待機時間である最大応答時間を決定するパラメータとして、前記データ処理モジュールにおけるデータ処理時間を含めない時間決定用パラメータを格納したメッセージデータを前記通信デバイスに対して出力するステップと、
前記通信モジュールが、前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の処理終了前に応答メッセージを前記通信デバイスに出力するステップと、
を有する情報処理方法にある。
【0025】
さらに、本発明の第4の側面は、
情報処理装置において情報処理を実行させるコンピュータ・プログラムであり、
前記情報処理装置は、
外部の通信デバイスとの通信処理を実行する通信モジュールと、
前記通信モジュールとデータ転送路を介して通信を実行しデータ処理を実行するデータ処理モジュールを有し、
前記通信モジュールに、前記通信デバイスにおけるコマンド出力から前記通信モジュールの応答受信までの許容待機時間である最大応答時間を決定するパラメータとして、前記データ処理モジュールにおけるデータ処理時間を含めない時間決定用パラメータを格納したメッセージデータを前記通信デバイスに対して出力させるステップと、
前記通信モジュールに、前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の処理終了前に応答メッセージを前記通信デバイスに出力させるステップと、
を有するコンピュータ・プログラムにある。
【0026】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0027】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【0028】
本発明の一実施例の構成によれば、リーダライタなどの通信デバイスとの通信処理を実行する通信モジュールと、通信モジュールとデータ転送路を介して通信を実行しデータ処理を実行するデータ処理モジュールを有する情報処理装置において、通信モジュールが、通信デバイスのコマンドに対する応答の最大待機時間である最大応答時間決定用のパラメータをデータ処理モジュールにおけるデータ処理時間を含めない時間決定用パラメータとして設定して通信デバイスに通知する。さらに、通信デバイスからのコマンド入力後、データ処理モジュールにおけるデータ処理の開始前、あるいは処理終了前に応答メッセージを通信デバイスに出力する構成とした。本構成により、最大待機時間を短く設定することが可能となり、パケットロス等のエラー発生時などにおいて、エラー対応を迅速に行うことが可能となり処理の効率化が実現される。
【発明を実施するための最良の形態】
【0029】
以下、本発明の情報処理装置、情報処理システム、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。
【0030】
本発明は、ICカードなどの情報処理装置がリーダライタかと通信を実行してリーダライタからのデータ書き込み要求やデータ読み取り要求などのコマンドに対する処理を行う構成において、処理時間が長期化する場合や、パケット喪失などが発生した場合でも、正常な処理シーケンスに従って効率的に処理を完了させることを可能とする構成を提供するものである。
【0031】
まず、本発明の構成の説明の前に、一般的なICカードとリーダライタ間のデータ通信およびデータ処理シーケンスと前述した最大応答時間[Tmax]の設定処理の具体例について図1以下を参照して説明する。
【0032】
例えばリーダライタは、継続的あるいは断続的な電波送出によるポーリング要求処理を実行して、ICカードからのポーリング応答の受信によってICカードを検出する。さらに検出したICカードに対してデータの書き込み要求、あるいはデータの読み取り要求などのコマンド(処理要求)を出力する。ICカードは、リーダライタからのコマンドに応じた処理を実行する。例えばリーダライタから受信するデータをICカード内のメモリに書き込む処理、あるいはICカードのメモリに記録されているデータを読み出してリーダライタに出力する処理などを実行する。
【0033】
リーダライタとICカード間の一般的な通信シーケンスについて図1を参照して説明する。リーダライタは、継続的あるいは断続的な電波送出によるポーリング要求処理を実行する。ステップS11のポーリング要求(Polling_Req)である。リーダライタの通信可能領域にICカードが近づくと、ICカードは、ステップS12において、ポーリング応答(Polling_Res)を返送してリーダライタに存在を通知する。
【0034】
ポーリング応答には、例えば、自らの識別子であるカードID(IDm)と最大応答時間[Tmax]を算出するための最大応答時間算出用パラメータを含む。最大応答時間[Tmax]と最大応答時間算出用パラメータについては後段で詳細に説明する。
【0035】
続いて、ステップS13において、リーダライタはデータ書き込み要求等のコマンドを含む処理要求を発行し、これを受信したICカードは、ステップS14において、コマンドに応じた処理を実行する。次に、ステップS15において、処理結果の成否情報などをリーダライタに処理応答として出力する。
【0036】
ステップS13においてリーダライタの出力するコマンド(処理要求)と、
ステップS15においてICカードの出力する処理応答のパケット構成例を図2に示す。
【0037】
図2には、
(a1)リーダライタが出力するコマンド=書き込み要求(Write_Req)
(a2)ICカードが出力する書き込み要求に対する応答(Write_Res)
(b1)リーダライタが出力するコマンド=読み出し要求(Read_Req)
(b2)ICカードが出力する読み出し要求に対する応答(Read_Res)
【0038】
(a1)書き込み要求(Write_Req)は、リーダライタからの出力データをICカード内のメモリに書き込ませるコマンドである。このコマンドには、要求識別子、ICカードのIDに対応する通信ID(IDm)、実行するサービス数(NOS)、実行サービスに対応するサービスコードのリストであるサービスコードリスト(SLST)、各サービスコードに対応する処理に利用するデータブロック数(NOB)、各ブロックのメモリアドレスを示すブロックリスト(BLST)、さらに書き込み対象とするデータである書き込み対象データ(DATA)が含まれる。
【0039】
この書き込み要求バケット(Write_Req)を受信したICカードは、パケットの解析を実行して、パケットの解析情報に従って、書き込み対象データ(DATA)をICカードのメモリの指示領域に書き込む。この処理の終了後に、図2の(a2)に示す書き込み応答(Write_Res)をリーダライタに出力する。書き込み応答(Write_Res)には、応答識別子、通信ID(IDm)、処理結果の成否を示す結果コード(SF)が含まれる。
【0040】
また(b1)読み出し要求(Read_Req)は、ICカードのメモリに記録されたデータをリーダライタが読み出す場合に利用されるコマンドである。このコマンドには、要求識別子、ICカードのIDに対応する通信ID(IDm)、実行するサービス数(NOS)、実行サービスに対応するサービスコードのリストであるサービスコードリスト(SLST)、各サービスコードに対応する処理に利用するデータブロック数(NOB)、各ブロックのメモリアドレスを示すブロックリスト(BLST)が含まれる。
【0041】
この読み出し要求バケット(Read_Req)を受信したICカードは、パケットの解析を実行して、パケットの解析情報に従って、ICカードのメモリの指示領域からデータを読み出す。読み出し処理後に、図2の(b2)に示す読み出し応答(Read_Res)をリーダライタに出力する。読み出し応答(Read_Res)には、応答識別子、通信ID(IDm)、処理結果の成否を示す結果コード(SF)、さらに読み出しデータに対応するブロック数(NOB)と、読み出し対象データ(DATA)が含まれる。
【0042】
図3にICカード内のメモリに記録されたデータのディレクトリ構成例を示す。図3に示すように予めICカードに対して設定されたエリアコードディレクトリに対してサブディレクトリとしてサービスコード単位のディレクトリが設定される。
【0043】
各サービスコードディレクトリには、サービスコードと呼ばれるデータのアクセス属性に応じて割り当てられる識別子に対応して設定される1以上のブロックデータ(固定長データ単位)が格納される。
【0044】
図3に示す例は、サービスコードS1のサービスに対して、ブロック番号0〜2の3つのブロックデータが格納され、サービスコードS2のサービスに対して、ブロック番号0〜1の2つのブロックデータが格納された例である。
【0045】
あるデータを特定する場合は、あるサービスコードに対するあるブロック番号という形式で指定する。読み書きする対象データブロックの特定は、サービスコードリストとブロックリストによって行われる。サービスコードリストとは、サービスコードを列挙したものであり、これらのデータは、先に図2を参照して説明したコマンドである書き込み要求(Write_Req)や、読み出し要求(Read_Req)に含まれている。
【0046】
図4は、ブロックリストの構成例を示す図である。ブロックリストは、複数のブロックリストエレメントが列挙されたものとして定義されている。各ブロックリストエレメントでは、ブロックリスト自体のバージョン識別を行うVer識別子(Ver)と、アクセス方法を特定するアクセスモード(ACM)、サービスコードリストの列挙順番を指定するサービスコードリスト順番(SLSTOR)及びブロック番号(BNO)で構成される。
【0047】
なお、先に図2を参照して説明したように、書き込み要求(Write_Req)においてICカードに書き込みを要求する書き込み対象データ(DATA)は、ブロックリストエレメントの個数分、書き込み要求(Write_Req)パケットの末尾に列挙して格納される。
【0048】
図5は、リーダライタからICカードに対する書き込み要求処理を行った場合のICカード側の処理の流れを示すフローチャートである。
【0049】
ステップS21において、リーダライタが発行した書き込み要求(Write_Req)を受信する。
次に、ステップS22において、ICカードは、受信コマンドのパラメータを抽出し正当性を確認する。正当性が確認された場合(S23でYes)は、ステップS24に進み、正当性が確認されなかった場合(S23でNo)は、ステップS26に進み、エラーレスポンスをリーダライタに送信する。
【0050】
正当性が確認された場合(S23でYes)は、ステップS24に進み、コマンドパラメータのサービスコードリスト及びブロックリストで特定されるメモリアドレスに対してブロックデータ(DATA)を書き出し、ステップS25において、書き込み応答(Write_Res)(図2の(a2)参照)をリーダライタに返信する。
このようなシーケンスで、リーダライタからのコマンドに対応する処理が行われる。
【0051】
次に、ICカードの出力するポーリング応答に含まれる最大応答時間[Tmax]算出用パラメータについて説明する。先に図1を参照して説明したステップS12においてICカードは、ポーリング応答をリーダライタに対して出力する。
【0052】
ICカードはこのポーリング応答に、ICカードのメモリに格納済みの最大応答時間[Tmax]算出用パラメータを格納して出力する。最大応答時間[Tmax]とは、リーダライタからのコマンド(処理要求)出力時から、ICカードが応答を返送するまでの最大の許容待機時間である。
【0053】
ICカードはステップS13においてリーダライタからの処理要求を受けると、ステップS14において要求に従った処理を行い、ステップS15で、処理結果の可否を応答信号に含めて返送する。
【0054】
リーダライタが、ステップS13においてICカードに対して処理要求を送信してから、ICカードからの処理応答を待つ最大時間が、最大応答時間[Tmax]である。この最大応答時間[Tmax]内に応答が得られない場合は、処理に失敗したものと判断してエラー対応処理、例えば再度、処理要求を出力する処理などを行うことになる。
【0055】
例えば、最大応答時間[Tmax]は、
リーダライタからの処理要求の送信時間(S13)と、
ICカードにおける処理時間(S14)と、
ICカードからの応答送信時間(S15)との総計時間に、所定の余裕時間を加算した値が設定される。
【0056】
最大応答時間[Tmax]を算出するためのパラメータはICカード内のメモリに予め記録される。ICカードは、ICカードのメモリに記録された最大応答時間[Tmax]算出用パラメータを、ポーリング応答(Polling_Res)に含めてリーダライタに出力する。リーダライタはICカードからのポーリング応答に含まれるパラメータに基づいて、予め規定された算出式に従って最大応答時間[Tmax]を算出して算出した時間を最大の待機時間として処理を行う。
【0057】
しかし、このICカード内のメモリに記録されたパラメータは、上述したように、基本的にICカード内のメモリに対するアクセス処理時間を考慮して定められている。すなわち、図6(a)に示すようにリーダライタ11と通信を実行するICカード12内の内部メモリ13に対するデータ書き込み処理やデータ読み取り処理の処理時間を考慮して設定されたパラメータである。
【0058】
従って、例えば図6(b)に示すように、ICカードやICカードと同等の通信モジュールがカメラやPCなどの情報処理装置30に備えられた構成の場合、このパラメータは利用できない。あるいはパラメータを変更して情報処理装置30内の処理時間を考慮した長い最大応答時間を算出するためのパラメータを新たに設定しなければならない。しかし、最大応答時間を長く設定してしまうと、パケットロス等によるエラーの発生時などにおいて、エラー対応処理の開始が遅くなってしまい処理効率が低下するなどの問題が発生する。この問題については後述する。
【0059】
図6(b)に示す情報処理装置30は、リーダライタ21と通信を実行するICカードと同等の機能を持つ通信モジュール31と、装置LSI33を有する。通信モジュール31と、装置LSI33は、インタフェースやバスなどのデータ転送路32を介して接続されている。
【0060】
通信モジュール31は、リーダライタ21からのポーリング要求に対してポーリング応答を実行する。リーダライタ21は、このポーリング応答に含まれるパラメータに基づいて最大応答時間を設定して、データ書き込み要求やデータ読み取り要求を実行する。
【0061】
例えばリーダライタ21がデータ書き込み要求を情報処理装置30の通信モジュール31に対して実行する。通信モジュール31は、リーダライタ21からの受信データを、データ転送路32を介して装置LSI33に出力し、装置LDI33が装置メモリ34にデータを記録する。
【0062】
このような処理を実行すると、図6(a)のようなICカード12内の内部メモリ13にデータを格納する処理に比較して処理時間が長くなることは避けられない。
【0063】
この結果、先に図1を参照して説明した処理シーケンスは、図7に示すようにステップS14の処理が長期化することになる。この結果、ステップS15の処理応答がリーダライタの設定した最大応答時間[Tmax]に間に合わず、リーダライタは、処理に失敗したものと判断してエラー対応処理、例えば再度、処理要求を出力する処理などを行うことになる。
【0064】
このように、リーダライタが、ICカードのポーリング応答に含まれるパラメータを適用して最大応答時間を設定した場合、ICカード側の処理構成によっては最大応答時間内の処理が不可能となる場合がある。この場合、リーダライタは、必然的にエラー判定を行うことになり、必要のない再送処理などを実行してしまうことになる。
【0065】
パラメータを変更して情報処理装置30内の処理時間を考慮した長い最大応答時間を算出するためのパラメータを設定する構成とすれば、誤ったエラー対応を開始してしまうことは避けられる。しかし、先に説明したように、最大応答時間を長く設定すると、パケットロス等によるエラーの発生時などにおいて、エラー対応処理の開始が遅くなってしまい処理効率が低下するなどの問題が発生する。この問題については後述する。
【0066】
次に、一般的な最大応答時間[Tmax]の設定例について説明する。
図8に、
(a)リーダライタの出力するポーリング要求(Polling_Req)
(b)ICカードの出力するポーリング応答(Polling_Res)
これらのデータ構成例を示す。図8に示すように、ポーリング要求には、要求の識別情報としての要求識別子、システム情報であるシステムコード、リクエスト情報であるリクエストコード、タイムスロット方式のスロット数を指定するタイムスロット値が含まれる。ポーリング応答には、応答の識別情報としての応答識別子、カード識別情報としての通信ID、ICカードのバージョン情報などからなるICコード、さらに、最大応答時間[Tmax]算出情報としての最大応答時間パラメータが含まれる。
【0067】
図8に示す例では、最大応答時間パラメータは6種類のパラメータ[Da〜Df]を含む例である。これは、リーダライタが出力するコマンドの種類ごとに規定された最大応答時間を算出するための6種類のパラメータ情報である。具体的には、例えば図9に示すように、リーダライタが出力するコマンドが6種類に区分され、それぞれに応じて最大応答時間[Tmax]を算出するためのパラメータ[Da〜Df]が規定されることになる。
【0068】
Da〜Dfは、それぞれ1バイト(8ビット)データであり、図10に示すようなデータ構成を持つ。図10には1つのコマンドカテゴリの[Da]に対応する8ビットデータ構成を説明しているが、他のDb〜Dfも同様の対応である。
【0069】
最大応答時間[Tmax]は、例えば、以下の算出式によって算出される。
最大応答時間Tmax(ms)=0.302×[(B+1)×n+(A+1)]×4
【0070】
上記の最大応答時間[Tmax]算出式中に含まれるパラメータA,B,Eを規定するデータが、図10に示すように8ビットデータ(b7〜b0)としてポーリング応答に含まれるデータである。
下位3ビット(b2〜b0)が上記式のAの値、
次の3ビット(b5〜b3)が上記式のBの値、
上位2ビット(b7〜b6)が上記式のEの値、
これらに対応する。
【0071】
なお、上記式に含まれる[n]は、リーダライタのコマンドによって処理の必要となるブロック数(例えば1ブロック=16バイト)に対応するデータである。例えばリーダライタがデータ書き込み要求を行う場合などには書き込みデータ長に応じて決定される。定型的な処理、例えば図9に示す表の最下段に示す発行用コマンドの場合などはn=0として固定される。
【0072】
リーダライタは、このようにポーリング応答に含まれる最大応答時間パラメータA,B,Eと、自己の出力コマンドに応じて決定するパラメータ[n]を用いて最大応答時間[Tmax]を上記式に従って算出する。算出した最大応答時間[Tmax]が、ICカードに対するコマンド(処理要求(図1に示すステップS13))出力後の待機時間として設定されることになる。
【0073】
もし、最大応答時間[Tmax]を経過してもICカードからの処理応答が受信できない場合は、エラー対応処理、例えばコマンドのリトライ(再送)処理などを行う。なお、このようなエラーの発生原因としてはたとえば以下の要因がある。
(a)ICカードがすでに通信可能範囲に存在しない、
(b)無線通信においては、ノイズの混入によるパケットロス、
(c)外部磁界から起電するICカードの場合は、利得の損失による電源断による処理中断、
例えばこれらの原因が考えられる。
【0074】
図11〜図13にリーダライタが処理エラーであると判定してしまう場合の複数の処理シーケンス例を示す。図11〜図13とも、リーダライタがICカードからのポーリング応答を受信して、ポーリング応答に含まれるパラメータを利用して最大応答時間[Tmax]を算出した後の処理、すなわち、処理要求コマンドを出力した後のシーケンスを示している。
【0075】
図11は、ステップS51においてリーダライタが、処理要求をICカードに対して出力したものの、送信パケットがICカードに到達することなくステップS52においてパケットロスとなってしまった場合である。
【0076】
この場合、リーダライタは、パケットロスの発生を知ることはできず、最大応答時間[Tmax]の経過を待つ。ステップS53において、最大応答時間[Tmax]が経過した時点で処理エラーが発生したと判断して、ステップS54において処理要求の再送信を実行する。その後、ステップS55において、処理応答がICカードから出力される。
【0077】
このように、リーダライタはパケットロスによるエラーが発生した場合、最大応答時間[Tmax]の経過を待った後、エラー対応処理に移行することになる。従って、最大応答時間[Tmax]が長く設定されていればいるほど、無駄な待ち時間が発生し処理の遅延を発生させることになる。従って、長い最大応答時間[Tmax]の設定は処理効率を低下させることになり好ましくない。
【0078】
図12は、リーダライタからICカードに対する要求信号の送信は正しく行われたが、ICカードの処理中に電源断が発生した場合のシーケンスである。ステップS61においてリーダライタが、処理要求をICカードに対して出力し、ICカードが受信する。
【0079】
ICカードは、処理要求に従った処理、例えば受信データの書き込み処理などを開始したものの、その途中のステップS62において、ICカードに対する電源供給が遮断され、処理が完了できなくなってしまった。ICカードは多くの場合、リーダライタからの電磁波により電源供給を受けて動作する。このような構成の場合、ICカードとリーダライタ間の距離が大きくなると、ICカードはリーダライタからの電源供給が受けられなくなり、ステップS62のように電源手段により処理が続行できなくなることがある。
【0080】
この場合も、リーダライタは、ICカード側の処理の状況を知ることはできず、最大応答時間[Tmax]の経過を待つ。その後、ステップS63において、最大応答時間[Tmax]が経過した時点で処理エラーが発生したと判断して、ステップS64において処理要求の再送信を実行する。その後、ステップS65において、処理応答がICカードから出力される。
【0081】
このように、リーダライタはICカード側の電源断によるエラーが発生した場合、最大応答時間[Tmax]の経過を待った後、エラー対応処理に移行することになる。従って、最大応答時間[Tmax]が長く設定されていればいるほど、無駄な待ち時間が発生し処理の遅延を発生させることになる。従って、長い最大応答時間[Tmax]の設定は処理効率を低下させることになり好ましくない。
【0082】
図13は、ICカードからの処理応答がパケットロスとなり、リーダライタが受信できなかった場合のシーケンスである。ステップS71においてリーダライタが、処理要求をICカードに対して出力し、ICカードが受信する。
【0083】
ICカードは、処理要求に従った処理、例えば受信データの書き込み処理などを実行し完了した後、ステップS72において、処理応答をICカードから出力する。しかし、この応答パケットがステップS73においてパケットロスとなり、リーダライタが受信できなかった。
【0084】
この場合も、リーダライタは、ICカード側の処理の状況を知ることはできず、最大応答時間[Tmax]の経過を待つ。その後、ステップS74において、最大応答時間[Tmax]が経過した時点で処理エラーが発生したと判断して、ステップS75において処理要求の再送信を実行する。その後、ステップS76において、処理応答がICカードから出力される。
【0085】
このように、リーダライタは、様々な状況におけるエラーが発生した場合、最大応答時間[Tmax]の経過を待った後、エラー対応処理に移行することになる。従って、最大応答時間[Tmax]が長く設定されていればいるほど、無駄な待ち時間が発生し処理の遅延を発生させることになる。
【0086】
本発明の構成では、このような無駄な待機時間を短くして処理の効率化を実現する。本発明の一実施例について図14以下を参照して説明する。図14は、本発明の一実施例に係る情報処理システムの構成を示す図である。
【0087】
図14には、無線通信を行う通信デバイスであるリーダライタ100と、リーダラライタ100との通信を実行する情報処理装置200を示している。
リーダライタ100は、制御用LSI110と、ハードディスクなどのメディアに対応するドライブ120、アンテナ130を有する。
情報処理装置200は、通信モジュール210、アンテナ220、データ処理モジュール250、通信モジュール210とデータ処理モジュール250間のデータ転送を行うデータ転送路230、電源260を有する。データ処理モジュール250は、メモリとしての記録部251を有する。
【0088】
この情報処理装置200は、例えばPC、テレビ、カメラなどの電子機器や、携帯端末、あるいは電子玩具など様々な情報処理装置である。通信モジュール(通信処理用LSI)210は、前述したICカードと同様の機能を有する通信処理用LSIであり、アンテナ220を介してリーダライタ100との通信を実行する。データ処理モジュール(データ処理用LSI)250は、装置の主要機能を実行するデータ処理用LSIであり、装置の機能に応じたデータ処理を行う。
【0089】
通信モジュール210とデータ処理モジュール250はデータ転送路230によって接続され、両モジュール間のデータ転送が可能な構成である。例えば通信モジュール210がリーダライタ100から受信したデータが、データ転送路230を介してデータ処理モジュール250に出力され、データ処理モジュール250内の記録部251に格納される。
【0090】
あるいは、データ処理モジュール250内の記録部251から取得されたデータが、データ転送路230を介して通信モジュール210に渡された後、通信モジュール210からアンテナ220を介してリーダライタ100に出力される。
【0091】
データ転送路230は有線接続路として設定されており、例えばSPI(Serial Peripheral Interface)を適用したデータ転送経路として設定される。SPIにおいては、データ処理モジュール(データ処理用LSI)250がマスターIC、通信モジュール(通信処理用LSI)210がスレーブICの役割を担う。スレーブICとしての通信モジュール(通信処理用LSI)210は、マスターICとしてのデータ処理モジュール(データ処理用LSI)250の生成するクロックによって動作する。
【0092】
通信モジュール(通信処理用LSI)210は、通信バッファとして利用されるRAM領域を内蔵し、無線コマンドの送受信、パケットデータの切り出しを行う。一方、データ管理機能はもっておらず、データの読み書き要求を受信した場合は、データ処理モジュール(データ処理用LSI)250に対してデータ処理を依頼する。
【0093】
さらに、情報処理装置200は、電源260を有しており、通信モジュール210、データ処理モジュール250に対して電源260から電力の供給が行われる。従って、通信モジュール210は、リーダライタ100からの電磁波による電力の供給は不要な構成となっている。
【0094】
リーダライタ100と、情報処理装置200の詳細構成例について、図15、図16を参照して説明する。
【0095】
まず、図15を参照してリーダライタ100の構成例について説明する。リーダライタ100は、制御用LSI110、ドライブ120、アンテナ130を有する。制御用LSI110は、制御部111、記録部112、SPU(Signal Processing Unit)113、変調部114、発振回路115、復調部116を有する。
【0096】
制御部111は、情報処理装置200に対するデータ書き込み要求や読み取り要求などのコマンドの生成処理、情報処理装置200から受信したデータを記録部112や、ドライブ120を介してメディア121〜124に書き込む処理などの制御を実行する。
【0097】
制御部111の生成コマンドなどの出力用データはSPU113に供給され、SPU113において、符号化され、符号化したデータが変調部114に供給される。変調部114は、発振回路115から供給される所定の周波数のクロック信号を基に、搬送波を生成する。変調部114は、搬送波に基づいて、SPU113から供給されたデータを所定の方式により変調し、変調した信号をアンテナ130に供給して、アンテナ130を介して外部に出力する。
【0098】
より具体的には、例えば、変調部114は、発振回路115から供給される13.56MHzの周波数のクロック信号を搬送波として、SPU113より供給されるデータをASK(Amplitude Shift Keying)変調し、生成された変調波を、電磁波としてアンテナ130から出力する。
【0099】
また、アンテナ130から受信した信号は、復調部116において復調し、復調信号がSPU113に供給される。例えば、復調部116は、アンテナ130を介して取得した変調波(ASK変調波)を復調し、復調信号をSPU113に出力する。
【0100】
ドライブ120は、磁気ディスク121、光ディスク122、光磁気ディスク123、或いは半導体メモリ124などのメディアを装着し駆動する。メディアからは制御部111の利用するプログラムやデータなどが取得される。また制御部111からドライブ120を介して各メディアに対するデータ書き込みが行われる。
【0101】
次に、図16を参照して情報処理装置200の構成例について説明する。情報処理装置200は、先に図14を参照して説明したように、通信モジュール(通信処理用LSI)210、アンテナ220、データ処理用モジュール(データ処理用LSI)250、電源260、さらに通信モジュール(通信処理用LSI)210と、データ処理用モジュール(データ処理用LSI)250間を接続するデータ転送路230を有する。
【0102】
通信モジュール(通信処理用LSI)210は、制御部211、SPU212、復調部213、変調部214、発振回路215、バッファメモリ(RAM)216を有する。
【0103】
データ処理用モジュール(データ処理用LSI)250は、メモリとしての記録部251と制御部252を有する。
【0104】
アンテナ220は、リーダライタ100から送信されてきた信号を受信し、受信した信号を復調部213に供給する。また、アンテナ220は、変調部214から供給される信号を、無線通信により、リーダライタ100あてに送信する。
【0105】
復調部213は、アンテナ220から供給された信号を復調し、復調した信号をSPU212に供給する。例えば、復調部213は、アンテナ220を介して受信したASK変調波である要求信号を包絡線検波して復調し、復調信号をSPU212に出力する。
【0106】
SPU212は、復調部213から供給された信号を所定の方式により復号し、復号したデータを制御部211に供給する。このデータは、例えばリーダライタの出力したコマンドや、コマンドに対応する書き込みデータである。制御部211は、復調したデータを必要に応じてバッファメモリ217に一時的に格納し、データ転送路230を介してデータ処理用モジュール(データ処理用LSI)250に出力する。
【0107】
データ処理用モジュール(データ処理用LSI)250の制御部252は、通信モジュール(通信処理用LSI)210からデータ(コマンドや書き込みデータ)を受信し、コマンドに従った処理を実行する。例えば記録部251に対するデータ書き込み処理などを実行する。
【0108】
なお、データ処理用モジュール(データ処理用LSI)250の制御部252は、コマンドに従った処理の進行状況をデータ転送路230を介して通信モジュール(通信処理用LSI)210の制御部211に通知する。
【0109】
通信モジュール(通信処理用LSI)210からリーダライタ100に対してデータ送信を行う場合は、SPU212が、制御部211から供給された信号を所定の符号化方式により符号化し、符号化した信号を変調部214に供給する。発振回路215は、アンテナ220が受信する要求信号の周波数と同じ周波数のクロック信号を生成し、生成したクロック信号を変調部214に供給する。
【0110】
変調部214は、発振回路215から供給された所定の周波数のクロック信号を基に、搬送波を生成する。変調部214は、搬送波に基づいて、SPU212から供給された信号を、所定の方式によって変調することにより、信号を生成し、変調信号をアンテナ220に供給し、アンテナ220を介して、リーダライタ100に送信する。
【0111】
なお、通信モジュール210は、アンテナ220を介したリーダライタ100との無線通信処理と、データ転送路230を介したデータ処理モジュール250との有線通信処理を実行する。これらの処理は、並列に行うことなく、各通信処理を切り替えて実行する。
【0112】
図14に示す情報処理装置200は、通信モジュール210とデータ処理モジュール250がデータ転送路230を介して接続されており、通信モジュール210がリーダライタ100から受信したデータは、通信モジュール210からデータ転送路230を介してデータ処理モジュール250に渡された後、データ処理モジュール250において、データ処理モジュール250内の記録部251に対する書き込み処理が実行されることになる。
【0113】
このようなデータ転送を伴う場合、先に図6を参照して説明したように処理時間がかかることになり、先に説明したICカードの生成するパラメータに基づく最大応答時間内での処理が不可能となる場合がある。なお、図14に示す構成において、通信モジュール210がICカードに相当する処理、すなわち最大応答時間の算出用パラメータ(図8〜図10を参照して説明したパラメータ)をポーリング応答に含めてリーダライタ100に出力する。
【0114】
通信モジュール210がリーダライタ100に出力する最大応答時間の算出用パラメータは、先に図10を参照して説明したパラメータであり、例えば、以下の算出式に含まれるパラメータである。
最大応答時間Tmax(ms)=0.302×[(B+1)×n+(A+1)]×4
【0115】
上記の最大応答時間[Tmax]算出式中に含まれるパラメータA,B,Eを規定するデータ、すなわち、
下位3ビット(b2〜b0)=上記式のAの値、
次の3ビット(b5〜b3)=上記式のBの値、
上位2ビット(b7〜b6)=上記式のEの値、
これらの各パラメータが、図10に示すように8ビットデータ(b7〜b0)としてポーリング応答に含めて出力される。
【0116】
先に説明したように、従来の一般的な最大応答時間は、
リーダライタからの処理要求の送信時間と、
ICカード(通信モジュール)における処理時間と、
ICカード(通信モジュール)からの応答送信時間との総計時間に、所定の余裕時間を加算した値が設定され、算出される設定となっていた。
【0117】
例えば、図14に示すように、情報処理装置200内部で、異なるLSI間でデータ転送が実行されることを考慮して最大応答時間を決定すると、この最大応答時間は、非常に長い時間となる。
【0118】
このような長い最大応答時間を設定した処理シーケンスの例について、図17を参照して説明する。図17は、図14に示す構成に対応する各デバイス、すなわち、左から、リーダライタ100、通信モジュール210、データ処理モジュール250を示し、これらの各デバイス間の通信シーケンスを示している。
【0119】
なお、リーダライタ100と、通信モジュール210間のデータ通信は、無線通信として実行される。通信モジュール210と、データ処理モジュール250間のデータ通信は、有線通信として実行される。これらの無線通信、有線通信は、同時期に並列して実行することはなく、一方の通信の終了後、他方の通信が実行される。
【0120】
図17は、リーダライタ100が通信モジュール210からのポーリング応答を受信して、ポーリング応答に含まれるパラメータを利用して最大応答時間[Tmax]を算出した後の処理、すなわち、処理要求コマンドを出力した後のシーケンスを示している。
【0121】
この例では、最大応答時間[Tmax]は、通信モジュール210と、データ処理モジュール250間のデータ通信処理や、データ処理モジュール250のデータ記録処理等を考慮した期間として設定することになってしまう。すなわち、以下に説明する処理ステップのすべてのステップの処理を考慮した時間となる。
【0122】
まず、ステップS101において、リーダライタ100からデータ処理要求、例えばデータの書き込み要求(Write_Req)が通信モジュール210に出力される。通信モジュール210は、通信モジュール210内のバッファメモリ(RAM)216の規定のアドレスに受信パケットを書き込む。
【0123】
次にステップS102において、通信モジュール210はデータ処理モジュール250に対してデータ受信通知を送信する。
【0124】
続いて、ステップS103において、データ受信通知を受信したデータ処理モジュール250は、SPIのマスターICとして機能し、SPIを用いて通信モジュール210のバッファメモリ(RAM)216に格納されたデータを順次、読み出す。
【0125】
データ処理モジュール250は、ステップS104において、通信モジュール210のバッファメモリ(RAM)216からの読み出しデータに従って、書き込み先とするデータ処理モジュール250内の記録部251のアドレスの特定を行い、データ書き込み処理を行う。
【0126】
さらに、データ処理モジュール250は、ステップS105において、データ書き込み処理の結果の成否を表すステータスフラグをSPI経由で、通信モジュール210のバッファメモリ(RAM)216に対して書き込む。
【0127】
データ処理モジュール250は、記録部251に対する全てのデータ書き込み処理が終了し、通信モジュール210のバッファメモリ(RAM)216に対するステータスフラグの書き込みの終了後に、ステップS106で、データ処理完了通知を通信モジュール210に出力する。
【0128】
通信モジュール210は、データ処理モジュール250からデータ処理完了通知を受信したことを確認する。この確認の後、通信モジュール210は、ステップS107において、バッファメモリ(RAM)216に書き込まれたステータスフラグを処理応答(Write_Res)のパラメータに含めて、リーダライタ100に返信する。
【0129】
リーダライタ100は、この処理応答(Write_Res)の受信によって、通信処理が正常に行われたことを認知することができる。
【0130】
このような処理構成においては、情報処理装置200における処理時間が、SPIの通信速度やマスターICであるデータ処理モジュール(データ処理LSI)250の実装に依存することになる。従って、通信モジュール210は、各コマンドの最大応答時間を一定の値に定めることができない。
【0131】
また、データ処理モジュール(データ処理LSI)250の処理能力や処理内容によっては、従来のICカードに比べて非常に長い時間の待ち時間を要する場合を想定することが必要となる。
【0132】
具体的には、以下の各処理の処理時間、すなわち、
(a)リーダライタから通信モジュールへの処理要求転送時間(S101)、
(b)通信モジュールからデータ処理モジュールへのデータ受信通知処理時間(S102)、
(c)通信モジュールからデータ処理モジュールへのデータ転送処理時間(S103)、
(d)データ処理モジュールにおけるデータ処理時間(S104)、
(e)データ処理モジュールによる通信モジュール内バッファに対するステータスフラグの書き込み処理時間(S105)、
(f)データ処理モジュールから通信モジュールに対する処理完了通知時間(S106)、
(g)通信モジュールからリーダライタに対する処理応答転送処理時間(S107)、
これらの(a)〜(g)全ての処理時間の総計に所定のマージンを付加して最大応答時間を設定することになる。
【0133】
このような長い最大応答時間を設定した処理を行なうと、結果として、先に図11〜図13を参照して説明したようなパケットロスなどの処理エラーが発生した場合、全く処理が進行していないにも関わらず、リーダライタは、設定済みの最大応答時間の経過を待機することになる。
【0134】
このような処理は、処理効率を著しく低下させることになる。そこで、本発明では、最大応答時間を上記のような(a)〜(g)の処理時間を考慮することなく、
(1)リーダライタから通信モジュールへの処理要求転送時間、
(2)通信モジュールからデータ処理モジュールへのデータ受信通知処理時間
(3)通信モジュールからリーダライタに対する処理応答送信時間、
これら(1)〜(3)の処理時間に所定のマージンを付加して最大応答時間を設定する。
【0135】
すなわち、本発明の構成では、データ処理モジュールにおける受信データの記録などのデータ処理時間を含めずに最大応答時間を設定する。このような設定に基づく最大応答時間算出用パラメータを通信モジュールがポーリング応答としてリーダライタに送信する。
【0136】
通信モジュール210は、上記(1)〜(3)の処理時間に所定のマージンを付加した時間を最大応答時間として算出するためのパラメータをポーリング応答(図8参照)に含めてリーダライタ100に送信し、リーダライタ100はこのパラメータに基づいて、先に説明した算出式によって最大応答時間を算出する。
【0137】
すなわち、リーダライタ100は、
最大応答時間Tmax(ms)=0.302×[(B+1)×n+(A+1)]×4
上記式に従って、最大応答時間を設定する。
通信モジュール210は、上記(1)〜(3)の処理時間に所定のマージンを付加した時間を最大応答時間として算出するためのパラメータA,B,Eをポーリング応答(図8参照)に含めてリーダライタ100に送信する。
【0138】
本処理例で設定される最大応答時間[Tmax]は、図17で説明したシーケンスにおいて設定される最大応答時間[Tmax]に比較してきわめて短い時間に設定される。
【0139】
本発明に従って最大応答時間[Tmax]を設定した場合の処理シーケンスについて図18を参照して説明する。図18も図17と同様、図14に示す構成に対応する各デバイス、すなわち、左から、リーダライタ100、通信モジュール210、データ処理モジュール250を示し、これらの各デバイス間の通信シーケンスを示している。
【0140】
なお、リーダライタ100と、通信モジュール210間のデータ通信は、無線通信として実行される。通信モジュール210と、データ処理モジュール250間のデータ通信は、有線通信として実行される。これらの無線通信、有線通信は、同時期に並列して実行することはなく、一方の通信の終了後、他方の通信が実行される。
【0141】
図18は、リーダライタ100が通信モジュール210からのポーリング応答を受信して、ポーリング応答に含まれるパラメータを利用して最大応答時間[Tmax]を算出した後の処理、すなわち、処理要求コマンドを出力した後のシーケンスを示している。
【0142】
この図18に示す例では、最大応答時間[Tmax]は、
(A)リーダライタから通信モジュールへの処理要求転送時間、
(B)通信モジュールからデータ処理モジュールへのデータ受信通知処理時間
(C)通信モジュールからリーダライタに対する処理応答送信時間、
これら(A)〜(C)の処理時間に所定のマージンを付加した時間として設定され、図17のシーケンス図で設定した最大応答時間[Tmax]に比較してきわめて短い時間に設定される。
【0143】
まず、ステップS201において、リーダライタ100からデータ処理要求、例えばデータの書き込み要求(Write_Req)が通信モジュール210に出力される。通信モジュール210は、通信モジュール210内のバッファメモリ(RAM)216の規定のアドレスに受信パケットを書き込む。
【0144】
次にステップS202において、通信モジュール210はデータ処理モジュール250に対してデータ受信通知を送信する。
次に、ステップS203において、処理応答をリーダライタ100に対して送信する。
リーダライタ100は、この処理応答の受信が、最大応答時間[Tmax]内に受信されたことを確認して、少なくともデータ送信が確実に実行されたことを確認する。
【0145】
この最大応答時間[Tmax]内に処理応答の受信がなされなかった場合はエラー対応処理に移行する。すなわち、例えば処理要求の再送処理などを開始する。
【0146】
本処理例では、最大応答時間[Tmax]が、図17のシーケンス図で設定している最大応答時間[Tmax]よりきわめて短い設定であるため、エラー対応処理への移行を迅速に開始することが可能となる。
【0147】
従って、先に図11〜図13を参照して説明したようなパケットロスなどの処理エラーが発生した場合、リーダライタは、迅速にエラー対応処理を開始することが可能となり、処理効率が高まることになる。
【0148】
ステップS204以下の処理について説明する。ステップS204において、データ受信通知を受信したデータ処理モジュール250は、SPIのマスターICとして機能し、SPIを用いて通信モジュール210のバッファメモリ(RAM)216に格納されたデータを順次、読み出す。
【0149】
データ処理モジュール250は、ステップS205において、通信モジュール210のバッファメモリ(RAM)216からの読み出しデータに従って、書き込み先とするデータ処理モジュール250内の記録部251のアドレスの特定を行い、データ書き込み処理を行う。
【0150】
さらに、データ処理モジュール250は、ステップS206において、データ書き込み処理の結果の成否を表すステータスフラグをSPI経由で、通信モジュール210のバッファメモリ(RAM)216に対して書き込む。
【0151】
データ処理モジュール250は、記録部251に対する全てのデータ書き込み処理が終了し、通信モジュール210のバッファメモリ(RAM)216に対するステータスフラグの書き込みの終了後に、ステップS207で、データ処理完了通知を通信モジュール210に出力する。
【0152】
データ処理モジュール250からデータ処理完了通知を受信したことを確認する。この確認の後、通信モジュール210は、データ処理モジュール250との通信設定を解除し、無線通信を許容する設定に切り替える。その後、通信モジュール210は、ステップS208において、リーダライタ100からの処理結果要求を受信したことを確認した後、ステップS209において、バッファメモリ(RAM)216に書き込まれたステータスフラグを処理結果応答としてリーダライタ100に返信する。
【0153】
リーダライタ100は、この処理結果応答の受信によって、処理が正常に完了したことを確認できる。
【0154】
なお、データ処理モジュール250の記録部251に記録されたデータの読み出し処理を実行する場合は、ステップS206において、データ処理モジュール250の記録部251からの読み出しデータを通信モジュール210のバッファメモリ(RAM)216に書き込む。
【0155】
その後、通信モジュール210は、ステップS208において、リーダライタ100からの処理結果要求を受信したことを確認した後、ステップS209において、バッファメモリ(RAM)216に書き込まれたデータをリーダライタ100に返信する。
【0156】
このように、本発明に従った処理シーケンスでは、リーダライタからのコマンドによってデータ書き込みやデータ読み取りを行う情報処理装置における処理の実行時間を含めずに最大応答時間を設定している。
【0157】
このような最大応答時間の設定によって、パケットロスなどの実質的なエラーの発生時には、迅速にエラー対応処理に移行することが可能となる。
【0158】
なお、本発明の情報処理装置は、図14に示すように通信モジュール210、データ処理モジュール250の双方が電源260からの電力供給を受けて動作する構成である。従来のICカードのようにリーダライタからの電力供給を受けて動作する構成ではない。従って、リーダライタからのコマンドやデータを受信した後は、リーダライタから離間しても動作可能であり、その後のデータ処理を実行することが可能となる。
【0159】
なお、上述した図18を参照して説明した処理例では、ICカードはポーリング応答において最大応答時間を決定するためのパラメータをリーダライタ側に提供する構成である。このような構成の他、ICカードがポーリング応答において、最大応答時間を決定するためのパラメータをリーダライタ側に提供しない構成としてもよい。このような構成とした場合は、リーダライタは、例えば予め設定されているデフォルトの最大応答時間を利用するといった処理が可能である。
【0160】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【0161】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0162】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【0163】
以上、説明したように、本発明の一実施例の構成によれば、リーダライタなどの通信デバイスとの通信処理を実行する通信モジュールと、通信モジュールとデータ転送路を介して通信を実行しデータ処理を実行するデータ処理モジュールを有する情報処理装置において、通信モジュールが、通信デバイスのコマンドに対する応答の最大待機時間である最大応答時間決定用のパラメータをデータ処理モジュールにおけるデータ処理時間を含めない時間決定用パラメータとして設定して通信デバイスに通知する。さらに、通信デバイスからのコマンド入力後、データ処理モジュールにおけるデータ処理の開始前、あるいは処理終了前に応答メッセージを通信デバイスに出力する構成とした。本構成により、最大待機時間を短く設定することが可能となり、パケットロス等のエラー発生時などにおいて、エラー対応を迅速に行うことが可能となり処理の効率化が実現される。
【図面の簡単な説明】
【0164】
【図1】リーダライタとICカード間の一般的な通信シーケンスについて説明する図である。
【図2】リーダライタの出力するコマンド(処理要求)と、ICカードの出力する処理応答のパケット構成例をについて説明する図である。
【図3】ICカード内のメモリに記録されたデータのディレクトリ構成例を示す図である。
【図4】ブロックリストの構成例を示す図である。
【図5】リーダライタからICカードに対する書き込み要求処理を行った場合のICカード側の処理の流れを説明するフローチャートを示す図である。
【図6】リーダライタと通信を行うICカードや通信モジュールを備えた情報処理装置の構成例について説明する図である。
【図7】リーダライタと通信を行う通信モジュールを備えた情報処理装置における処理時間が長期化した場合のシーケンス例について説明する図である。
【図8】ICカードの出力するポーリング応答(Polling_Res)のデータ構成例を示す図である。
【図9】リーダライタが出力するコマンドに応じて設定される最大応答時間算出用のパラメータの構成例について説明する図である。
【図10】ICカードの出力するポーリング応答(Polling_Res)に含まれる最大応答時間算出パラメータのデータ構成例について説明する図である。
【図11】リーダライタが、処理要求をICカードに対して出力したものの、送信パケットがICカードに到達することなくパケットロスとなってしまった場合の処理シーケンスについて説明する図である。
【図12】リーダライタからICカードに対する要求信号の送信は正しく行われたが、ICカードの処理中に電源断が発生した場合の処理シーケンスについて説明する図である。
【図13】ICカードからの処理応答がパケットロスとなり、リーダライタが受信できなかった場合のシーケンスについて説明する図である。
【図14】本発明の一実施例に係る情報処理システムの構成を示す図である。
【図15】本発明の一実施例に係る情報処理システムを構成するリーダライタの詳細構成例について説明する図である。
【図16】本発明の一実施例に係る情報処理システムを構成する情報処理装置の詳細構成例について説明する図である。
【図17】本発明の一実施例に係る情報処理システムにおいて、情報処理装置内でのデータ処理時間を考慮した最大応答時間を設定した場合の処理シーケンスについて説明する図である。
【図18】本発明の一実施例に係る情報処理システムにおいて、情報処理装置内でのデータ処理時間を含めずに最大応答時間を設定した場合の処理シーケンスについて説明する図である。
【符号の説明】
【0165】
11 リーダライタ
12 ICカード
13 内部メモリ
21 リーダライタ
30 情報処理装置
31 通信処理LSI
32 データ転送路
33 装置LSI
34 装置メモリ
100 リーダライタ
110 制御用LSI
111 制御部
112 記録部
113 SPU
114 変調部
115 発振回路
116 復調部
121 磁気ディスク
122 光ディスク
123 光磁気ディスク
124 半導体メモリ
130 アンテナ
200 情報処理装置
210 通信モジュール
211 制御部
212 SPU
213 復調部
214 変調部
215 発振回路
216 バッファメモリ
220 アンテナ
230 データ転送路
250 データ処理モジュール
251 記録部
252 制御部
260 電源

【特許請求の範囲】
【請求項1】
外部の通信デバイスとの通信処理を実行する通信モジュールと、
前記通信モジュールとデータ転送路を介して通信を実行しデータ処理を実行するデータ処理モジュールを有し、
前記通信モジュールは、
前記通信デバイスにおけるコマンド出力から前記通信モジュールの応答受信までの許容待機時間である最大応答時間を決定するパラメータとして、前記データ処理モジュールにおけるデータ処理時間を含めない時間決定用パラメータを格納したメッセージデータを前記通信デバイスに対して出力するとともに、
前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の処理終了前に応答メッセージを前記通信デバイスに出力する構成である情報処理装置。
【請求項2】
前記情報処理装置は、さらに、
前記通信モジュールと、前記データ処理モジュールに対する電力供給を行う電源を有し、
前記通信モジュールと前記データ処理モジュールは、前記電源からの電力供給により動作する構成である請求項1に記載の情報処理装置。
【請求項3】
前記通信モジュールは、
前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の開始前に応答メッセージを前記通信デバイスに出力する構成である請求項1に記載の情報処理装置。
【請求項4】
前記通信モジュールの出力するメッセージデータは、前記通信デバイスに対するポーリング応答である請求項1に記載の情報処理装置。
【請求項5】
前記データ処理モジュールの実行するデータ処理は、記憶部に対するデータ記録処理、または記録部からのデータ読み取り処理であり、
前記通信モジュールは、前記データ処理モジュールにおいて実行する記憶部に対するデータ記録処理、または記録部からのデータ読み取り処理の処理時間を含めない最大応答時間を決定するパラメータを前記メッセージデータに格納して前記通信デバイスに対して出力する構成である請求項1に記載の情報処理装置。
【請求項6】
前記通信モジュールは、前記パラメータを格納したデータを前記通信デバイスに出力した後、前記通信デバイスからのコマンドを受信し、
前記データ処理モジュールは、前記コマンドに応じたデータ処理を実行する構成である請求項1に記載の情報処理装置。
【請求項7】
前記通信モジュールは、
前記データ処理モジュールからのデータ処理完了通知の受領後、前記通信デバイスからの処理結果要求を受信し、該処理結果要求に対する応答として、前記データ処理モジュールから前記通信モジュールのバッファに入力された処理結果を前記通信デバイスに対して出力する構成である請求項6に記載の情報処理装置。
【請求項8】
前記通信モジュールが、
前記通信デバイスからの処理結果要求に対する応答として、前記通信デバイスに対して出力するデータは、前記データ処理モジュールから前記通信モジュールのバッファに入力された処理結果フラグである請求項7に記載の情報処理装置。
【請求項9】
前記通信モジュールが、
前記通信デバイスからの処理結果要求に対する応答として、前記通信デバイスに対して出力するデータは、前記データ処理モジュールから前記通信モジュールのバッファに入力された前記データ処理モジュール側の記録部からの読み取りデータである請求項7に記載の情報処理装置。
【請求項10】
前記通信デバイスは、リーダライタであり、前記通信モジュールは、リーダライタからのポーリング要求に応答するポーリング応答として前記パラメータを格納したデータを前記リーダライタに出力し、さらに、前記リーダライタからのコマンドを受信し、
前記データ処理モジュールは、前記コマンドに応じたデータ処理を実行する構成である請求項1に記載の情報処理装置。
【請求項11】
無線通信を実行する通信デバイスと情報処理装置を有し、
前記情報処理装置は、
外部の通信デバイスとの通信処理を実行する通信モジュールと、
前記通信モジュールとデータ転送路を介して通信を実行しデータ処理を実行するデータ処理モジュールを有し、
前記通信モジュールは、
前記通信デバイスにおけるコマンド出力から前記通信モジュールの応答受信までの許容待機時間である最大応答時間を決定するパラメータとして、前記データ処理モジュールにおけるデータ処理時間を含めない時間決定用パラメータを格納したメッセージデータを前記通信デバイスに対して出力するとともに、
前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の処理終了前に応答メッセージを前記通信デバイスに出力する構成であり、
前記通信デバイスは、
前記パラメータに基づいて前記最大応答時間を決定して、該最大応答時間を設定してコマンドを前記情報処理装置に出力する構成である情報処理システム。
【請求項12】
前記通信モジュールは、
前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の開始前に応答メッセージを前記通信デバイスに出力する構成である請求項11に記載の情報処理システム。
【請求項13】
前記通信モジュールの出力するメッセージデータは、前記通信デバイスに対するポーリング応答である請求項11に記載の情報処理システム。
【請求項14】
前記データ処理モジュールの実行するデータ処理は、記憶部に対するデータ記録処理、または記録部からのデータ読み取り処理であり、
前記通信モジュールは、前記データ処理モジュールにおいて実行する記憶部に対するデータ記録処理、または記録部からのデータ読み取り処理の処理時間を含めない最大応答時間を決定するパラメータを前記メッセージデータに格納して前記通信デバイスに対して出力する構成である請求項11に記載の情報処理システム。
【請求項15】
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
外部の通信デバイスとの通信処理を実行する通信モジュールと、
前記通信モジュールとデータ転送路を介して通信を実行しデータ処理を実行するデータ処理モジュールを有し、
前記通信モジュールが、前記通信デバイスにおけるコマンド出力から前記通信モジュールの応答受信までの許容待機時間である最大応答時間を決定するパラメータとして、前記データ処理モジュールにおけるデータ処理時間を含めない時間決定用パラメータを格納したメッセージデータを前記通信デバイスに対して出力するステップと、
前記通信モジュールが、前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の処理終了前に応答メッセージを前記通信デバイスに出力するステップと、
を有する情報処理方法。
【請求項16】
情報処理装置において情報処理を実行させるコンピュータ・プログラムであり、
前記情報処理装置は、
外部の通信デバイスとの通信処理を実行する通信モジュールと、
前記通信モジュールとデータ転送路を介して通信を実行しデータ処理を実行するデータ処理モジュールを有し、
前記通信モジュールに、前記通信デバイスにおけるコマンド出力から前記通信モジュールの応答受信までの許容待機時間である最大応答時間を決定するパラメータとして、前記データ処理モジュールにおけるデータ処理時間を含めない時間決定用パラメータを格納したメッセージデータを前記通信デバイスに対して出力させるステップと、
前記通信モジュールに、前記通信デバイスからのコマンド入力後、前記データ処理モジュールにおけるデータ処理の処理終了前に応答メッセージを前記通信デバイスに出力させるステップと、
を有するコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2009−267452(P2009−267452A)
【公開日】平成21年11月12日(2009.11.12)
【国際特許分類】
【出願番号】特願2008−110759(P2008−110759)
【出願日】平成20年4月21日(2008.4.21)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】