(57)【特許請求の範囲】
【請求項１】
非接触型のＩＣカードとリーダを介して通信を行い、ユーザによって作成されるアプリケーションプログラムに基づいて動作すると共に、前記ＩＣカードに対して通信リンクの確立要請を発行し、ＩＣカードより送信されたＩＤデータを受信すると、当該ＩＣカードに割当てた通信用アドレスを送信することで前記ＩＣカードとの間に通信リンクを確立して所定の通信を行う通信制御部を備えてなる非接触型ＩＣカードの通信装置において、
前記通信制御部と前記リーダとのインターフェイスとして機能するようにミドルプログラムに基づいて動作し、前記通信制御部が発行した前記確立要請に対して既に通信リンクが確立された状態にあるＩＣカードのＩＤデータを再度受信した場合には、前記通信制御部を介在させること無く、当該ＩＣカードとの通信リンクを既に確立されているものに置き換えるように制御する中間制御部を備えてなることを特徴とする非接触型ＩＣカードの通信装置。
【請求項２】
前記通信制御部は、前記ＩＣカードとの通信リンクが確立すると、当該ＩＣカードに対して通信状態を次のフェーズに遷移させるための状態遷移コマンドを発行し、
前記中間制御部は、前記通信制御部が発行した前記確立要請に対してＩＣカード側より通信リンクの確立応答があった場合には、所定時間が経過した後に、前記確立応答を前記通信制御部に対して送信するように制御することを特徴とする請求項１記載の非接触型ＩＣカードの通信装置。
【請求項３】
前記中間制御部は、前記ＩＣカードが前記状態遷移コマンドの発行に対する応答を返した後に当該ＩＣカードのＩＤデータを再度受信した場合には、前記通信リンクの置き換え処理を行わず、且つ、前記通信制御部側の通信状態がリセットされるように制御することを特徴とする請求項１または２記載の非接触型ＩＣカードの通信装置。
【請求項４】
前記中間制御部は、前記ＩＤデータを再度受信した場合には、前記通信制御部側が前記ＩＣカードに対して発行した次の状態遷移コマンドを無視するように制御することを特徴とする請求項３記載の非接触型ＩＣカードの通信装置。
【請求項５】
前記中間制御部は、前記ＩＤデータを再度受信した場合には、前記通信制御部に対して通信リンクの切断通知を送信するように制御することを特徴とする請求項３または４記載の非接触型ＩＣカードの通信装置。
【請求項６】
前記中間制御部は、前記通信制御部が行う通信用アドレスの割当て処理を代行し、その割当て結果を前記通信制御部に対して送信するように構成されていることを特徴とする請求項１乃至５の何れかに記載の非接触型ＩＣカードの通信装置。
【請求項７】
非接触型のＩＣカードとリーダを介して通信を行い、ユーザによって作成されるアプリケーションプログラムに基づいて動作する通信制御部が非接触型のＩＣカードに対して通信リンクの確立要請を発行し、ＩＣカードより送信されたＩＤデータを前記通信制御部が受信すると、当該ＩＣカードに割当てた通信用アドレスを送信することで前記ＩＣカードとの間に通信リンクを確立して所定の通信を行う非接触型ＩＣカードの通信方法において、
前記通信制御部と前記リーダとのインターフェイスとして機能するようにミドルプログラムに基づいて動作する中間制御部を配置して、前記通信制御部が発行した前記確立要請に対して既に通信リンクが確立された状態にあるＩＣカードのＩＤデータを前記中間制御部が再度受信した場合には、前記通信制御部を介在させること無く、当該ＩＣカードとの通信リンクを既に確立されているものに置き換えることを特徴とする非接触型ＩＣカードの通信方法。
【請求項８】
前記中間制御部は、前記通信制御部が発行した前記確立要請に対してＩＣカード側が送信した通信リンクの確立応答を受信すると、所定時間が経過した後に、前記確立応答を前記通信制御部に対して送信することを特徴とする請求項７記載の非接触型ＩＣカードの通信方法。
【請求項９】
前記通信制御部は、前記ＩＣカードとの通信リンクが確立すると、当該ＩＣカードに対して通信状態を次のフェーズに遷移させるための状態遷移コマンドを発行し、
前記中間制御部は、前記ＩＣカードが前記状態遷移コマンドの発行に対する応答を返した後に当該ＩＣカードのＩＤデータを再度受信した場合には、前記通信リンクの置き換え処理を行わず、且つ、前記通信制御部側の通信状態がリセットされるように制御することを特徴とする請求項７または８記載の非接触型ＩＣカードの通信方法。
【請求項１０】
前記中間制御部は、前記ＩＤデータを再度受信した場合には、前記通信制御部が前記ＩＣカードに対して発行した次の状態遷移コマンドを無視することを特徴とする請求項９記載の非接触型ＩＣカードの通信方法。
【請求項１１】
前記中間制御部は、前記ＩＤデータを再度受信した場合には、前記通信制御部に対して通信リンクの切断通知を送信することを特徴とする請求項９または１０記載の非接触型ＩＣカードの通信方法。
【請求項１２】
前記中間制御部が、前記通信制御部が行う通信用アドレスの割当て処理を代行し、その割当て結果を前記通信制御部に対して送信することを特徴とする請求項６乃至１１の何れかに記載の非接触型ＩＣカードの通信方法。
【請求項１３】
ユーザによって作成されるアプリケーションプログラムに基づいて動作する通信制御部がリーダを介して非接触型のＩＣカードと通信を行い、前記ＩＣカードに対して通信リンクの確立要請を発行し、ＩＣカードより送信されたＩＤデータを前記通信制御部が受信すると、当該ＩＣカードに割当てた通信用アドレスを送信することで前記ＩＣカードとの間に通信リンクを確立して所定の通信を行う非接触型ＩＣカードの通信装置において、前記通信制御部と前記リーダとのインターフェイスである中間制御部の機能をコンピュータに実行させるためのプログラムであって、
前記通信制御部が発行した前記確立要請に対して既に通信リンクが確立された状態にあるＩＣカードのＩＤデータを前記中間制御部が再度受信すると、前記中間制御部に、前記通信制御部を介在させること無く、当該ＩＣカードとの通信リンクを既に確立されているものに置き換えさせるように処理させることを特徴とするコンピュータプログラム。
【請求項１４】
前記中間制御部が、前記通信制御部が発行した前記確立要請に対してＩＣカード側が送信した通信リンクの確立応答を受信すると、前記中間制御部に、所定時間が経過した後に、前記確立応答を前記通信制御部に対して送信させることを特徴とする請求項１３記載のコンピュータプログラム。
【請求項１５】
前記通信制御部が、前記ＩＣカードとの通信リンクが確立することで当該ＩＣカードに対して通信状態を次のフェーズに遷移させるための状態遷移コマンドを発行し、
前記ＩＣカードが前記状態遷移コマンドの発行に対する応答を返した後に当該ＩＣカードのＩＤデータを再度受信した場合には、前記中間制御部に、前記通信リンクの置き換え処理を行わせず、且つ、前記通信制御部側の通信状態がリセットされるように制御させることを特徴とする請求項１３または１４記載のコンピュータプログラム。
【請求項１６】
前記ＩＤデータを再度受信した場合には、前記中間制御部に、前記通信制御部が前記ＩＣカードに対して発行した次の状態遷移コマンドを無視させることを特徴とする請求項１５記載のコンピュータプログラム。
【請求項１７】
前記ＩＤデータを再度受信した場合には、前記中間制御部に、前記通信制御部に対して通信リンクの切断通知を送信させることを特徴とする請求項１５または１６記載のコンピュータプログラム。
【請求項１８】
前記中間制御部に、前記通信制御部が行う通信用アドレスの割当て処理を代行させ、その割当て結果を前記通信制御部に対して送信させることを特徴とする請求項１３乃至１７の何れかに記載のコンピュータプログラム。
【請求項１９】
請求項１３乃至１８の何れかに記載のコンピュータプログラムが記録されていることを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、非接触型のＩＣカードとの間に通信リンクを確立して所定の通信を行う非接触型ＩＣカードの通信装置、非接触型ＩＣカードの通信方法，並びに、これらの装置及び方法を実現するためのコンピュータプログラム及びそのプログラムが記録される記録媒体に関する。
【０００２】
【従来の技術】
図８は、非接触型ＩＣカードの通信システムの概略的な電気的構成を示す機能ブロック図である。ＩＣカード１は、内部にマイクロコンピュータチップ等を搭載しており（図示せず）、当該ＩＣカード１を携帯した者がカードリーダ装置２のリーダ３に接近すると電波信号により電力の供給を受けて動作し、カードリーダ装置２との間で通信を行うように構成されている。
【０００３】
カードリーダ装置２のリーダ３は、パーソナルコンピュータ（パソコン）４とシリアルインターフェイス等を介して接続されている。パソコン４に内蔵されているハードディスク５上には、個々のアプリケーションに応じてリーダ３を機能させるためユーザによって作成されたアプリケーションプログラム（以下、単にアプリと称す）６が記憶されており、パソコン４は、そのアプリ６を実行することでリーダ３に対してＩＣカード１との通信を行わせるようになっている。
【０００４】
図９は、リーダ３（アプリ６）とＩＣカード１との間で行われる通常の通信シーケンスの一例を示すものである。尚、リーダ３は、ＩＣカード１との間で行う物理的な通信を行うハードウエアであり、通信プロトコルの論理的な処理はアプリ６が実行する。
【０００５】
先ず、リーダ３側は、ＩＣカード１が接近するまで、周期的に通信リンクの確立要請（ポーリング）を行っている。そして、ＩＣカード１を携帯した者がリーダ３に接近し、ＩＣカード１がその通信エリア内に位置すると、ＩＣカード１は、ポーリングの電波信号により電力の供給を受けて動作し、自身に対して割り当てられている（メモリに記憶されている）カードＩＤ（１）を送信する。
【０００６】
アプリ６は、ＩＣカード１のＩＤ（１）を受信すると、そのＩＤ（１）に対して通信用のアドレス（１）を割当て、そのアドレス（１）を通知する。そして、ＩＣカード１が、アドレス（１）の割当て通知の受領応答（通信リンクの確立応答）をアプリ６に送信すると、両者間における通信リンクが確立するようになる。
【０００７】
尚、ポーリングは、リーダ３の通信エリア内に複数枚のＩＣカード１が同時に位置する場合があるため、それらとの通信リンクも同時に確立できるように随時行っている。
【０００８】
次に、アプリ６は、ＩＤ（１）のＩＣカード１に割当てたアドレス（１）を照合確認するためにＶｅｒｉｆｙコマンドを送信（発行）し、ＩＣカード１がそのＶｅｒｉｆｙコマンドに対して応答「Ｖｅｒｉｆｙ  ＯＫ」を返すと、続いて、ＩＤ（１）のＩＣカード１に記憶されているデータを選択的に読み出すためのＳｅｌｅｃｔコマンドを送信する。
【０００９】
そして、ＩＣカード１がＳｅｌｅｃｔコマンドに対して応答「Ｓｅｌｅｃｔ  ＯＫ」を返すと、アプリ６は、ＩＣカード１にＲｅａｄコマンドを送信し、ＩＣカード１は、そのＲｅａｄコマンドを受信するとメモリに記憶されているデータを読み出してリーダ３側に送信する。最後に、アプリ６は、ＩＣカード１に通信リンクを切断するためのＣｌｏｓｅコマンドを送信し、ＩＣカード１は、そのＣｌｏｓｅコマンドを受信すると応答「Ｃｌｏｓｅ  ＯＫ」をリーダ３側に返す。以上で、一連の通信シーケンスが終了する。
【００１０】
【発明が解決しようとする課題】
ところで、リーダ３の通信エリア７は、図１０にその平面図を示すように、図示しない通信用アンテナの指向性等によって、そのエリアの主たる領域を占める主領域部（メインローブ）７Ｍが形成されているが、その主領域部７Ｍに付随して、比較的小さな領域の副領域部（サイドローブ）７Ｓ，７Ｓが両側に派生するようになる。
【００１１】
そのため、ＩＣカード１を携帯した者がリーダ３に接近する場合に、ＩＣカード１が最初から主領域部７Ｍ内に位置するように進入する場合や、副領域部７Ｓと主領域部７Ｍとが略連続的に繋がっている部分を通過するように進入する場合は何等問題はない。
しかしながら、図１０に示すように、ＩＣカード１が最初は副領域部７Ｓ内に進入し、その後、主領域部７Ｍとの間にある隙間８を通過した後に主領域部７Ｍ内に進入すると、ＩＣカード１側の電源供給が一旦断たれてしまう場合がある。
【００１２】
この場合の通信シーケンスを図１１に示す。即ち、例えばＩＣカード１が最初に副領域部７Ｓ内に進入した時点で、図９に示す場合と同様に通信用のアドレス（１）の割当てまでのシーケンスが終了しているとする。そして、その時点でＩＣカード１側の電源供給が一旦断たれるとＩＣカード１側の通信シーケンスはリセットされてしまうので、ＩＣカード１が次に主領域部７Ｍ内に進入すると、ＩＣカード１は、リーダ３によるポーリングに対して再びＩＤ（１）を送信するようになる。
【００１３】
すると、アプリ６側では、ＩＤ（１）との通信リンクが既に確立している状態にあるため通信にエラーが発生したと認識し、ＩＤ（１）のＩＤカード１に対する通信シーケンスを新たにやり直すための処理（エラーリカバリ処理）を行う必要がある。そして、従来のカードリーダ装置２では、ユーザがエラーリカバリ処理ルーチンをアプリ６において記述しなければならず、その分だけプログラム作成の工数が多く必要となるという問題があった。
【００１４】
本発明は上記事情に鑑みてなされたものであり、その目的は、ユーザがアプリケーションプログラムをより簡単に作成することができる非接触型ＩＣカードの通信装置，非接触型ＩＣカードの通信方法，並びに、これらの装置及び方法を実現するためのコンピュータプログラム及びそのプログラムが記録される記録媒体を提供することにある。
【００１５】
【課題を解決するための手段】
請求項１記載の非接触型ＩＣカードの通信装置によれば、中間制御部は、通信制御部とリーダとの間に位置して両者間のインターフェイスとして作用する。そして、通信制御部が発行した確立要請に対し、既に通信リンクが確立された状態にあるＩＣカードのＩＤデータを再度受信すると、通信制御部を介在させること無しに、当該ＩＣカードとの通信リンクを既に確立されているものに置き換えるように制御する。
【００１６】
即ち、上述のように、一旦通信リンクが確立された状態にあるＩＣカードに対する電力の供給が瞬断して、ＩＣカード側の通信シーケンスがリセットされることで当該ＩＣカードのＩＤデータが通信装置側に再度送信されたとしても、中間制御部が通信制御部を介在させずに、つまり、通信制御部側に再度のＩＤデータの受信を伝達すること無しに当該ＩＣカードとの通信リンクを既に確立されているものに置き換えるように処理する。
尚、ここで言う「通信リンクを既に確立されているものに置き換える」とは、再度受信したＩＤデータのＩＣカードに対して、既に割当てている通信用アドレスを再度割当てることである。
【００１７】
そのため、通信制御部側では、上述のようなエラーの発生を考慮する必要がなく、ユーザは、通信制御部のアプリケーションプログラムを作成する場合にエラーリカバリ処理ルーチンを記述して組込む必要がない。従って、アプリケーションプログラムの作成に要する工数をその分だけ削減することが可能となり、ユーザはより簡単にアプリケーションプログラムを作成できるようになる。
【００１８】
請求項２記載の非接触型ＩＣカードの通信装置によれば、中間制御部は、通信制御部が発行した確立要請に対し、ＩＣカード側より通信リンクの確立応答があった場合には、所定時間が経過した後に、その確立応答を通信制御部に対して送信するように処理する。
【００１９】
即ち、ＩＣカード側の電源の瞬断が通信装置側における通信エリアの属性に基づいて発生することが予測される場合には、その電源瞬断が発生した後に、通信リンクを既に確立されているものに置き換える処理が行われることを予定しておいても良く、そのやり直しに要する時間は極僅かである。
【００２０】
従って、その他、想定されるＩＣカードの平均移動速度等を考慮して前記所定時間を設定すれば、中間制御部は、通常の通信シーケンスに基づいてＩＣカード側より通信リンクの確立応答があっても、当該応答をその時点で直ちに通信制御部に送信しない。そして、その後に電源瞬断が発生しても、通信リンクの置き換え処理を実行した後に前記確立応答を通信制御部に送信することになるので、通信制御部側は、実質的にエラーの発生を意識することがなく、エラー復帰処理が不要となる。
【００２１】
請求項３記載の非接触型ＩＣカードの通信装置によれば、中間制御部は、通信制御部がＩＣカードとの通信リンクを確立した後に発行した状態遷移コマンドに対する応答をＩＣカードが返した後に、当該ＩＣカードのＩＤデータを再度受信した場合には、通信リンクの置き換え処理を行わず、且つ、通信制御部側の通信状態がリセットされるように制御する。
【００２２】
通信制御部側の通信状態がリセットされるようにするため、具体的には、中間制御部は、通信制御部が前記ＩＣカードに対して発行した次の状態遷移コマンドを無視するように処理し（請求項４）、また、中間制御部は、通信制御部に対して通信リンクの切断通知を送信する（請求項５）。
【００２３】
即ち、通信制御部が発行した状態遷移コマンドに対する応答がＩＣカード側よりあると、通信制御部側における通信状態は次のフェーズに遷移する。よって、その段階でＩＣカードに対する電力の供給が瞬断し、ＩＣカード側の通信シーケンスがリセットされると、請求項１のように中間制御部が当該ＩＣカードとの通信リンクを既に確立されているものに置き換えても、ＩＣカード側と通信制御部側との通信状態フェーズに齟齬が生じるため、エラーに対する復帰（リカバリ）処理を行うことはできない。
【００２４】
従って、斯様な場合には、中間制御部は、通信リンクの置き換え処理を行わず、加えて、請求項４においては、通信制御部が前記ＩＣカードに対して発行した次の状態遷移コマンドを無視することで、通信制御部は、前記状態遷移コマンドに対する応答をＩＣカード及び中間制御部を介して受信することがないので、その時点までに遷移していた通信状態は通信制御部側においてリセットされる。また、請求項５においては、中間制御部は、通信制御部に対して通信リンクの切断通知を送信するので、通信制御部側の通信状態はやはりセットされる。そして、通信制御部は、再度通信リンクを確立するための処理を最初から行うようになるので、エラーに対する復帰処理を適切に行うことができる。
【００２５】
請求項６記載の非接触型ＩＣカードの通信装置によれば、中間制御部は、通信制御部が行う通信用アドレスの割当て処理を代行し、その割当て結果を通信制御部に対して送信するので、ユーザは、通信制御部のアプリケーションプログラムを作成する場合に、ＩＣカードのＩＤに対応して通信用アドレスの割当て行う処理のルーチンを記述して組込む必要がなくなる。従って、アプリケーションプログラムの作成に要する工数を更に削減することができ、ユーザは一層簡単にアプリケーションプログラムを作成できるようになる。
【００２６】
【発明の実施の形態】
（第１実施例）
以下、本発明の第１実施例について図１及び図２を参照して説明する。尚、図８，図１０と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。図２は、カードリーダ装置（通信装置）１１の電気的構成を示す機能ブロック図である。カードリーダ装置１１を構成するパソコン（中間制御部，通信制御部）１２に内蔵されているハードディスク５上には、アプリ６に代わるアプリケーションプログラム（アプリ，通信制御部）１３と共に、ミドルプログラム（中間制御部）１４と称するプログラムが記憶されている。
【００２７】
ミドルプログラム（以下、単にミドルと称する）１４は、カードリーダ装置１１のセットを製造して供給するメーカーにおいて作成されるものであり、パソコン１２のＯＳ(Operating System)上で動作するものである。
【００２８】
このミドル１４は、メーカーによって例えばＣＤ−ＲＯＭ１５等の記録媒体に記憶され、カードリーダ装置１１を実際のアプリケーションとして使用するユーザに対して供給される。ユーザは、そのミドル１４をハードディスク５にインストールすると共に、カードリーダ装置１１を個々の使用形態に適合させて用いるのに相応しいアプリ１３を自ら作成してコンパイル等の処理を行い、実行ファイル形式でハードディスク５上に配置する。
【００２９】
この場合、ミドル１４は、アプリ１３とリーダ３との間のインターフェイスプログラムとして動作するので、ユーザがアプリ１３を作成する場合には、ミドル１４が機能することを前提として作成を行うことになる。その他の構成は図８と同様である。
【００３０】
次に、本実施例の作用について図１をも参照して説明する。図１は、アプリ１３，ミドル１４及びリーダ３と、ＩＣカード１との間で行われる通信シーケンスの一例を示すものである。アプリ１３が、ＩＣカード１との通信リンク確立要請をミドル１４に対して出力すると、ミドル１４は、リーダ３を介してポーリングを行う。
【００３１】
ポーリングに対してＩＣカード１側からの応答（カードＩＤ（１）の通知）があると、ミドル１４は、そのＩＤ（１）に対する通信用のアドレス（１）の割当て及びその通知を、前述したアプリ６に代わって独自に実行する。そして、ＩＣカード１が、アドレス（１）の割当て通知に対する受領応答をリーダ３側に返すと、ミドル１４は、ＩＤ（１）にアドレス（１）を割当てて通信リンクが確立した、という結果をアプリ１３に対して通知する。
【００３２】
ここで、図１１のケースと同様に、ＩＣカード１が副領域部７Ｓ内に進入した点で以上までのシーケンスが終了し、その後、ＩＣカード１が主領域部７Ｍとの間にある隙間８を通過することで、ＩＣカード１側の電源供給が一旦断たれてしまった（パワー断）ものとする。
【００３３】
この場合、アプリ１３の指示に基づくリーダ３側からのポーリングに対して、リセットされたＩＣカード１はＩＤ（１）を再度送信するが、ミドル１４は、そのＩＤがアドレス（１）を既に割当てたものに一致すると判断すると、ＩＣカード１側の電源瞬断前に行ったものと同じシーケンスを再実行してＩＤ（１）に対しアドレス（１）を再度割当てる。即ち、そのＩＤ（１）に対し新たな通信アドレス（２）を割当てて別個の通信リンクを確立することはせず、アドレス（１）の通信リンクに置き換える。そして、この再実行に関しては、ミドル１４はアプリ１３側に対して一切通知を行わないので、アプリ１３は何等関与しないことになる。
【００３４】
以上のように本実施例によれば、ＩＣカード１とアプリ１３との間に、両者間の通信を媒介するインターフェイスプログラムとしてミドル１４を配置し、アプリ１３が発行した通信リンクの確立要請に対し、既に通信リンクが確立された状態にあるＩＣカード１のＩＤ（１）を再度受信すると、ミドル１４は、アプリ１３を介在させること無く、当該ＩＣカード１との通信リンクを既に確立されているアドレス（１）のリンクに置き換えるようにした。
【００３５】
即ち、アプリ１３側では、ＩＤカード１側において電源瞬断が発生したことによるエラーの発生については考慮する必要がなくなり、ユーザは、アプリ１３を作成する場合にエラーに対するリカバリ処理ルーチンを記述して組込む必要がない。従って、アプリ１３の作成に要する工数をその分だけ削減することが可能となり、ユーザはより簡単にアプリ１３を作成できるようになる。
【００３６】
また、ミドル１４は、従来はアプリ６が行っていた通信用アドレスの割当て処理を代行し、その割当て結果をアプリ１３に対して送信するので、ユーザは、アプリ１３を作成する場合に、通信用アドレスの割当て行う処理のルーチンを記述して組込む必要がなくなる。従って、アプリ１３の作成に要する工数を更に削減することができ、ユーザは一層簡単にアプリ１３を作成できるようになる。
【００３７】
（第２実施例）
図３は本発明の第２実施例を示すものであり、第１実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。第２実施例の構成は第１実施例と同様であり、ＩＤ（１）のＩＣカード１（１）に第１実施例と同様に電源の瞬断が発生した後に、リーダ３の通信エリア７に対してＩＤ（２）のＩＣカード１（２）が進入した場合における通信シーケンスを示すものである。
【００３８】
即ち、図３に示すように、電源瞬断の発生後における最初のリーダ３側からのポーリングに対して先にＩＣカード１（２）が応答し、カードＩＤ（２）の通知を行うと、ミドル１４は、そのＩＣカード１（２）に対しては通常通りのシーケンスを実行し、ＩＤ（２）にアドレス（２）を割当てて通信リンクが確立した、という結果をアプリ１３に対して通知する。
【００３９】
その後のポーリングに対してＩＣカード１（１）が応答すると、ミドル１４は、第１実施例と同様に電源瞬断前に行ったものと同じシーケンスを再実行してＩＤ（１）に対しアドレス（１）を再度割当てる。
【００４０】
以上のように第２実施例によれば、ミドル１４は、異なるＩＤを有する複数のＩＣカード１が同時に通信エリア７に進入した場合でも、電源瞬断が発生したＩＣカード１（１）に対しては第１実施例と同様に対応するので、第１実施例と同様の効果が得られる。
【００４１】
（第３実施例）
図４は本発明の第３実施例を示すものであり、第１実施例と異なる部分についてのみ説明する。第３実施例の構成は基本的に第１，第２実施例と同様であるが、ミドル１４の処理内容が若干異なっている。即ち、図４に示すように、図１と同様のケースにおいて、ミドル１４は、電源瞬断発生前において通信リンクの確立処理が通常通り行われた場合でも、アプリ１３に対してＩＤ（１）にアドレス（１）を割当てて通信リンクが確立した、という結果を通知しない。
【００４２】
つまり、リーダ３における通信エリア７の形状から、第１実施例のような電源瞬断の発生は、比較的頻繁に起こり得ることが想定されるので、ミドル１４は、ＩＣカード１がアドレス（１）に対する割当て受領通知を行った時点から計時を開始し、所定時間（Ｘ秒）が経過するまで通信リンクの確立通知を待つ。この場合の所定時間は、ＩＣカード１を携帯する者が通信エリア７内を移動する場合の平均的な速度や隙間８の形状などを考慮して設定する。
【００４３】
そして、第１実施例のように、電源瞬断後にミドル１４が再度のリンク確立のシーケンスを実行した後に、アプリ１３に対してアドレス（１）の通信リンクが確立した結果を通知する。
尚、図４（及び以降の図５〜図７）においては、図示の都合上、アプリ１３がミドル１４に対して発行する確立要請の矢印の図示を一部省略している。
【００４４】
以上のように第３実施例によれば、ミドル１４は、アプリ１３が発行した確立要請に対し、ＩＣカード１側より確立応答があった場合には、所定時間が経過した後にその確立応答をアプリ１３に送信するので、通信エリア７の形状などからＩＣカード１側に電源瞬断が発生することが予測される場合は、アプリ１３は、通信リンクの置き換え処理が終了した段階でＩＣカード１側からの確立応答の通知をミドル１４を介して受取ることになる。従って、アプリ１３側側は、実質的にエラーの発生を意識することがなく、第１実施例等と同様に、アプリ１３側におけるエラー復帰処理は不要となる。
【００４５】
（第４実施例）
図５は本発明の第４実施例を示すものであり、第１実施例と異なる部分についてのみ説明する。第４実施例の構成は基本的に第１実施例等と同様であり、この実施例では、ＩＣカード１との間の通信シーケンスが、通信リンクが確立した後更に先のフェーズに進んだ段階でＩＣカード１側の電源瞬断が発生した場合を示す。
【００４６】
即ち、図５においては、ＩＣカード１との間で通信リンクが確立すると、通常のシーケンスでは、図９に示す場合と同様にアプリ１３がアドレス（１）を照合確認するためにＶｅｒｉｆｙコマンド（状態遷移コマンド）を発行し、ミドル１４は、そのコマンドの発行を受けて、アドレス（１）のＩＣカード１にＶｅｒｉｆｙコマンドを送信する。そして、ＩＣカード１がそのＶｅｒｉｆｙコマンドに対して応答「Ｖｅｒｉｆｙ  ＯＫ」をリーダ３側に返すと、ミドル１４がアプリ１３に、アドレス（１）のＩＣカード１による「Ｖｅｒｉｆｙ  ＯＫ」を通知する、という流れになる。
【００４７】
そして、以上まで通信シーケンスが進んだ段階で、ＩＣカード１側で電源の瞬断が発生したとする。この場合、第１実施例等と同様に、リセットされたＩＣカード１はポーリングに対してＩＤ（１）を返すが、ミドル１４は、通信リンクの置き換え処理を行うことなくそのまま放置する。
【００４８】
また、アプリ１３は、「Ｖｅｒｉｆｙ」の次のフェーズである「Ｓｅｌｅｃｔ」に移行して、ミドル１４に対してＳｅｌｅｃｔコマンドを発行するが、ＩＣカード１側では通信状態がリセットされているので、ミドル１４は、Ｓｅｌｅｃｔコマンドの受信を無視してやはりそのまま放置する。
【００４９】
即ち、この例では、ＩＣカード１側の通信フェーズはリセットによって初期状態に戻っているのに対し、アプリ１３側の通信フェーズは「Ｓｅｌｅｃｔ」まで進んでいるため、この時点でミドル１４が第１実施例のように通信リンクの置き換え処理を行っても、ＩＣカード１とアプリ１３との通信フェーズが異なるため、以降のシーケンスは噛み合わず正常に通信処理を行うことは不能である。
【００５０】
よって、斯様な場合、ミドル１４は、ＩＣカード１側によるリセット後のＩＤ（１）の再送信と、アプリ１３側によるＳｅｌｅｃｔコマンドの発行を何れも無視して放置する。すると、アプリ１３側では、Ｓｅｌｅｃｔコマンドの発行に対する「ＯＫ」の応答が所定時間内に返らないことから、一旦確立したアドレス（１）の通信リンクが切断されたことを認識するので、当該通信リンクをリセットする。そして、アプリ１３は、ＩＣカード１との通信リンクの確立処理を最初からやり直すようになる。
【００５１】
以上のように第４実施例によれば、ミドル１４は、アプリ１３がＩＣカード１との通信リンクを確立した後に発行したＶｅｒｉｆｙコマンドに対する応答をＩＣカード１が返した後に、当該ＩＣカード１のＩＤ（１）を再度受信した場合には、通信リンクの置き換え処理を行わず、且つ、アプリ１３がＩＣカード１に対して発行した次のコマンドＳｅｌｅｃｔを無視するようにした。
【００５２】
即ち、ＩＣカード１とアプリ１３との間における通信状態がコマンドの発行により次のフェーズに進んだ段階でＩＣカード１側のみがリセットされ初期化された場合には、ミドル１４は、アプリ１３側に通信リンクの切断を認識させてリセットさせるように処理する。従って、アプリ１３は、再度通信リンクを確立するための処理を最初から行うので、エラーに対する復帰処理を適切に行うことができる。
【００５３】
（第５実施例）
図６及び図７は本発明の第５実施例を示すものであり、第１実施例と異なる部分についてのみ説明する。第５実施例の構成は基本的に第１実施例等と同様であるが、ミドル１４における処理が若干異なっている。即ち、図６に示すように、ミドル１４は、アプリ１３からの通信リンクの確立要請があると、リーダ３を介してポーリング（０）を送信する。ここで、“ポーリング（０）”とは、通信用アドレスがまだ割当てられていないＩＣカード１のみが応答するように定められている確立要請である。
【００５４】
そして、ポーリング（０）を受信したＩＣカード１がＩＤ（１）をリーダ３側に通知すると、ミドル１４は、第１実施例等と同様にアドレス（１）を割当てて通信リンクの確立通知をアプリ１３に行うと、以降は、ポーリング（０）と共に、ポーリング（１）を送信する。ここで、“ポーリング（１）”とは、通信用アドレス（１）が既に割当てられたＩＣカード１のみが応答するように定められているＩＤの確認要請である。従って、ポーリング（１）が送信されると、ＩＣカード１はＩＤ（１）を再度ミドル１４側に通知する。
【００５５】
この場合、第１実施例と同様に、ＩＣカード１に電源の瞬断が発生しＩＣカード１側がリセットされると、ポーリング（１）に対する応答はなくなり、ポーリング（０）に対してＩＣカード１がＩＤ（１）をリーダ３側に再度通知する。そして、ミドル１４は、第１実施例等と同様に通信リンクの置き換え処理を行う。また、図７は、ＩＣカード１側において、図６の電源瞬断に代わり、電源の供給は維持されているが、ミドル１４との間における通信が一時的に途絶した場合（通信断）の例である。即ち、通信エリア７と、ＩＣカード１に対する電源供給が可能である範囲とが必ずしも一致していない場合である。
【００５６】
アドレス（１）を割当てたＩＣカード１との通信が一時的に途絶している期間は、ミドル１４が送信するポーリング（０），（１）に対する応答は何れも返らないが、通信が可能な状態に復帰すると、ＩＣカード１は、ポーリング（１）の送信に対してＩＤ（１）を再度ミドル１４側に通知するようになる。
【００５７】
従って、ミドル１４は、その時点でＩＣカード１との通信リンクが切断されていないことを確認できる。尚、第５実施例では、ポーリング（１）の送信に対してＩＤ（１）の返信がない「通信断」の状態が一定時間継続した場合は、ミドル１４はアプリ１３側に通信リンクが切断されたこと通知する処理（図７中破線で示す）を行うようになっている。そして、以上のように一定時間内にＩＤ（１）の返信が再開されれば、アプリ１３側にアドレス（１）の通信リンクを維持させることができる。
【００５８】
以上のように第５実施例によれば、ミドル１４は、リーダ３を介して２種類のポーリング（０），（１）を送信し、ＩＣカード１は、通信用アドレスがまだ割当てられていない状態にあればポーリング（０）に応答してカードＩＤ（１）を送信し、一度アドレス（１）が割当てられるとポーリング（１）に応答してカードＩＤ（１）を送信する。
【００５９】
そして、ミドル１４は、ＩＣカード１との通信が一時的に途絶した場合でも、その後一定時間内に送信したポーリング（１）に応答してＩＣカード１がカードＩＤ（１）を送信した場合はアドレス（１）の通信リンクが切断されていないことを確認できるので、アプリ１３側に通信リンクを維持させることが可能となる。従って、アプリ１３側において、斯様な通信の一時的な途絶に対応するための処理は不要となり、ユーザが要するプログラミングの工数を更に削減することができる。
【００６０】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、次のような変形または拡張が可能である。
アプリ１３とＩＣカード１とが行う通信シーケンスはあくまでも一例であり、通信リンクを確立するための手順の詳細や状態遷移コマンドの種類などは適宜変更して良い。
ミドル１４がカードＩＤに対して通信用アドレスを割当てる処理は、アプリ１３側に行わせても良い。
中間制御部と通信制御部とを構成するハードウエアは、別体であっても良い。また、通信装置は、リーダ３とパソコン１２とで構成するものに限らず、これらが一体となった専用装置であっても良い。
ミドル１４は、通信装置（リーダ３等）のファームウエアとして装置に予め組込まれている（ＲＯＭ等に記憶されている）プログラムであっても良い。
第４実施例において、「パワー断」後にカードＩＤ（１）が通知された場合には、第５実施例と同様に、ミドル１４がアプリ１３に対して通信リンクの切断通知を行っても良い。この場合、アプリ１３側の通信フェーズをより速くリセットすることができる。
記録媒体は、フロッピーディスクやＤＶＤ−ＲＯＭなどでも良い。
【図面の簡単な説明】
【図１】本発明の第１実施例であり、通信装置とＩＣカードとの間で行われる通信シーケンスの一例を示す図
【図２】カードリーダ装置の電気的構成を示す機能ブロック図
【図３】本発明の第２実施例を示す図１相当図
【図４】本発明の第３実施例を示す図１相当図
【図５】本発明の第４実施例を示す図１相当図
【図６】本発明の第５実施例を示す図１相当図（その１）
【図７】図１相当図（その２）
【図８】従来技術を示す図２相当図
【図９】通信装置とＩＣカードとの間で行われる通常の通信シーケンスの一例を示す図
【図１０】通信装置の通信エリアとＩＣカードとの位置関係を示す平面図
【図１１】図１相当図
【符号の説明】
１はＩＣカード、１１はカードリーダ装置（通信装置）、１２はパーソナルコンピュータ（中間制御部，通信制御部）、１３はアプリケーションプログラム（通信制御部）、１４はミドルプログラム（中間制御部，コンピュータプログラム）、１５はＣＤ−ＲＯＭ（記録媒体）を示す。
【図１】
0004534363.tif 000002
【図２】
0004534363.tif 000003
【図３】
0004534363.tif 000004
【図４】
0004534363.tif 000005
【図５】
0004534363.tif 000006
【図６】
0004534363.tif 000007
【図７】
0004534363.tif 000008
【図８】
0004534363.tif 000009
【図９】
0004534363.tif 000010
【図１０】
0004534363.tif 000011
【図１１】
0004534363.tif 000012