(57)【要約】【課題】より効率的に通信することができるＩＣカード処理装置、及びＩＣカードを提供する。【解決手段】一実施形態に係るＩＣカード処理装置は、ＩＣカードにコマンドを送信し、前記ＩＣカードに種々の処理を実行させるＩＣカード処理装置であって、第１のコマンドを生成し、生成した前記第１のコマンドを構成する単位毎にパリティビットを付加する第１のコマンド生成部と、前記第１のコマンドを前記ＩＣカードに送信する第１の送信部と、前記第１のコマンドに対して前記ＩＣカードにより実行されたパリティチェックにおいてエラーが検出された前記第１のコマンド上の位置を示すエラー情報を受信する第１の受信部と、前記第１のコマンド上の前記エラー情報が示す位置のデータを含む第２のコマンドを生成する第２のコマンド生成部と、前記第２のコマンドを前記ＩＣカードに送信する第２の送信部と、前記第１のコマンド及び前記第２のコマンドに基づいて前記ＩＣカードにより実行された処理の結果であるレスポンスを受信する第２の受信部と、を具備する。【選択図】図３
2014002471.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣカードにコマンドを送信し、前記ＩＣカードに種々の処理を実行させるＩＣカード処理装置であって、
第１のコマンドを生成し、生成した前記第１のコマンドを構成する単位毎にパリティビットを付加する第１のコマンド生成部と、
前記第１のコマンドを前記ＩＣカードに送信する第１の送信部と、
前記第１のコマンドに対して前記ＩＣカードにより実行されたパリティチェックにおいてエラーが検出された前記第１のコマンド上の位置を示すエラー情報を受信する第１の受信部と、
前記第１のコマンド上の前記エラー情報が示す位置のデータを含む第２のコマンドを生成する第２のコマンド生成部と、
前記第２のコマンドを前記ＩＣカードに送信する第２の送信部と、
前記第１のコマンド及び前記第２のコマンドに基づいて前記ＩＣカードにより実行された処理の結果であるレスポンスを受信する第２の受信部と、
を具備するＩＣカード処理装置。
【請求項２】
前記第１のコマンド生成部は、生成した前記第１のコマンドの長さが予め設定された値以上である場合、前記第１のコマンドにパリティビットを付加する、請求項１に記載のＩＣカード処理装置。
【請求項３】
前記第１のコマンド生成部は、コマンドの通信エラーが連続して発生した場合、前記第１のコマンドにパリティビットを付加する、請求項１に記載のＩＣカード処理装置。
【請求項４】
外部機器から入力されるコマンドに応じて処理を行うＩＣカードであって、
前記外部機器から送信された第１のコマンドを受信する第１の受信部と、
前記第１のコマンドにパリティビットが付加されている場合、パリティチェックを行ない、前記第１のコマンド上のパリティエラーが検出された位置を示すエラー情報を生成する検査部と、
前記エラー情報を前記外部機器に送信する第１の送信部と、
前記第１のコマンド上の前記エラー情報が示す位置のデータを含む第２のコマンドを受信する第２の受信部と、
前記受信したデータを用いて前記第１のコマンドを修正するコマンド修正部と、
前記コマンド修正部により修正された前記第１のコマンドに基づいて処理を実行するコマンド処理部と、
前記コマンド処理部による処理の結果に基づいてレスポンスを生成し、生成した前記レスポンスを前記外部機器に送信する第２の送信部と、
を具備するＩＣカード。
【請求項５】
前記各部を備えるＩＣモジュールと、
前記ＩＣモジュールが配設される本体と、
を具備する請求項４に記載のＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード処理装置、及びＩＣカードに関する。
【背景技術】
【０００２】
一般的に、携帯可能電子装置として用いられるＩＣカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたＩＣモジュールとを備えている。ＩＣモジュールは、ＩＣチップを有している。ＩＣチップは、電源が無い状態でもデータを保持することができるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはフラッシュＲＯＭなどの不揮発性メモリと、種々の演算を実行するＣＰＵと、ＣＰＵの処理に利用されるＲＡＭメモリなどを有している。
【０００３】
ＩＣカードは、例えば、国際標準規格ＩＳＯ／ＩＥＣ７８１６に準拠したＩＣカードである。ＩＣカードは、ＩＣチップのメモリに種々のアプリケーションを格納することができる。ＩＣカードは、例えばカードリーダライタなどのＩＣカード処理装置から送信されたコマンドに応じてアプリケーションを実行することにより、種々の処理を実行することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−０８５０８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記したようなＩＣカード及びＩＣカード処理装置は、例えば巡回冗長検査（ＣＲＣ：Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）符号などの通信エラーを検知するためのデータ（通信エラー検査データ）をコマンドまたはレスポンスなどのデータセットに付加する。ＩＣカード及びＩＣカード処理装置は、通信エラー検査データを用いて受信したデータのエラーを検知する。
【０００６】
しかし、ＣＲＣでは、受信したデータ上のエラーが発生した位置を特定することができない。この為、エラーが発生したデータセットの全データを再送する必要がある。これにより、処理速度が低下する可能性があるという課題がある。
【０００７】
そこで、より効率的に通信することができるＩＣカード処理装置、及びＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００８】
一実施形態に係るＩＣカード処理装置は、ＩＣカードにコマンドを送信し、前記ＩＣカードに種々の処理を実行させるＩＣカード処理装置であって、第１のコマンドを生成し、生成した前記第１のコマンドを構成する単位毎にパリティビットを付加する第１のコマンド生成部と、前記第１のコマンドを前記ＩＣカードに送信する第１の送信部と、前記第１のコマンドに対して前記ＩＣカードにより実行されたパリティチェックにおいてエラーが検出された前記第１のコマンド上の位置を示すエラー情報を受信する第１の受信部と、前記第１のコマンド上の前記エラー情報が示す位置のデータを含む第２のコマンドを生成する第２のコマンド生成部と、前記第２のコマンドを前記ＩＣカードに送信する第２の送信部と、前記第１のコマンド及び前記第２のコマンドに基づいて前記ＩＣカードにより実行された処理の結果であるレスポンスを受信する第２の受信部と、を具備する。
【図面の簡単な説明】
【０００９】
【図１】図１は、一実施形態に係るＩＣカード処理システムの例について説明するための図である。
【図２】図２は、一実施形態に係るＩＣカードの例について説明するための図である。
【図３】図３は、一実施形態に係るＩＣカード処理システムの例について説明するための図である。
【図４】図４は、一実施形態に係るＩＣカード処理システムの例について説明するための図である。
【図５】図５は、一実施形態に係るＩＣカード処理システムの例について説明するための図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、一実施形態に係るＩＣカード、携帯可能電子装置、及びＩＣカードの制御プログラムについて詳細に説明する。
【００１１】
本実施形態に係る端末装置１０のカードリーダライタ１７及びＩＣカード２０は、例えば、ＥＴＳＩ  ＴＳ  １０２  ６１３により規定されているＳｉｎｇｌｅ  Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ（ＳＷＰ）、二重伝送通信などの接触通信の機能、及びＩＳＯ／ＩＥＣ１４４４３などにより規定されている非接触通信の機能の両方またはいずれかの機能を備える。これにより、カードリーダライタ１７及びＩＣカード２０は、互いにデータの送受信を行うことができる。
【００１２】
図１は、一実施形態に係るＩＣカード処理システム１の構成例について示す。  
ＩＣカード処理システム１は、携帯可能電子装置（ＩＣカード）２０を処理する端末装置１０と、ＩＣカード２０と、を備える。端末装置１０とＩＣカード２０とは、上記したように接触通信、または非接触通信により互いに種々のデータを送受信する。
【００１３】
端末装置１０は、ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、不揮発性メモリ１４、操作部１５、表示部１６、及びカードリーダライタ１７を備える。ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、操作部１５、表示部１６、及びカードリーダライタ１７は、それぞれバス１９を介して互いに接続されている。
【００１４】
ＣＰＵ１１は、端末装置１０全体の制御を司る制御部として機能する。ＣＰＵ１１は、ＲＯＭ１３に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、ＣＰＵ１１は、カードリーダライタ１７を介してＩＣカード２０とコマンド及びレスポンスの送受信を行う。
【００１５】
ＲＡＭ１２は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ１２は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ１２は、カードリーダライタ１７を介して外部の機器と送受信するデータを一時的に格納する。また、ＲＡＭ１２は、ＣＰＵ１１が実行するプログラムを一時的に格納する。ＲＯＭ１３は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。
【００１６】
不揮発性メモリ１４は、例えばＥＥＰＲＯＭなどのフラッシュメモリを備える。不揮発性メモリ１４は、例えば、制御用のプログラム、制御データ、アプリケーション、個人情報、暗号鍵などのセキュリティ情報、及びアプリケーションに用いられるデータなどを記憶する。
【００１７】
操作部１５は、例えば操作キーなどを備える。操作部１５は、端末装置１０の操作者により入力される操作に基づいて、操作信号を生成する。操作部１５は、生成した操作信号をＣＰＵ１１に入力する。
【００１８】
表示部１６は、ＣＰＵ１１、またはＣＰＵ１１により制御されるグラフィック処理部から入力される表示信号に基づいて、種々の情報を表示する。なお、端末装置１０は、操作部１５と表示部１６とが一体に形成されるタッチパネルを備える構成であってもよい。
【００１９】
カードリーダライタ１７は、ＩＣカード２０と通信を行うためのインターフェース装置である。カードリーダライタ１７は、ＩＣカード２０が装着されるスロット１８を備える。カードリーダライタ１７は、接触通信、または非接触通信によりスロット１８に装着されたＩＣカード２０とデータの送受信を行う。
【００２０】
接触通信のインターフェースとして用いられる場合、カードリーダライタ１７は、ＩＣカード２０が備えるコンタクトパターンと接続される複数の接触端子を備える。スロット１８にＩＣカード２０が装着される場合、カードリーダライタ１７の複数の接触端子は、ＩＣカード２０のコンタクトパターンに接続される。これにより、端末装置１０とＩＣカード２０とは電気的に接続される。カードリーダライタ１７は、スロットに装着されたＩＣカード２０に対して、電力の供給、クロックの供給、リセット信号の入力、及びデータの送受信などを行う。
【００２１】
また、非接触通信のインターフェースとして用いられる場合、カードリーダライタ１７は、送受信するデータに対して信号処理を施す信号処理部と、所定の共振周波数を有するアンテナとを備える。
【００２２】
カードリーダライタ１７は、例えば、信号処理部により、送受信するデータに対して符号化、復号、変調、及び復調などの信号処理を行なう。また、カードリーダライタ１７は、符号化及び変調を施したデータをアンテナに供給する。アンテナは、供給されたデータに応じて磁界を発生させる。これにより、端末装置１０は、スロットに装着されたＩＣカード２０に対してデータを非接触で送信することができる。
【００２３】
さらに、カードリーダライタ１７のアンテナは、磁界を検知し、検知した磁界に応じて信号を生成する。これにより、カードリーダライタ１７は、信号を非接触で受信することができる。信号処理部は、アンテナにより受信された信号に対して復調及び復号を行う。これにより、端末装置１０は、スロットに装着されたＩＣカード２０から送信された元のデータを取得することができる。
【００２４】
ＣＰＵ１１は、カードリーダライタ１７によりＩＣカード２０に対して種々のコマンドを入力する。ＩＣカード２０は、例えば、カードリーダライタ１７からデータの書き込みコマンドを受信した場合、受信したデータを内部の不揮発性メモリに書き込む処理を行う。
【００２５】
また、ＣＰＵ１１は、ＩＣカード２０に読み取りコマンドを送信することにより、ＩＣカード２０からデータを読み出す。ＣＰＵ１１は、ＩＣカード２０から受信したデータに基づいて種々の処理を行う。
【００２６】
図２は、図１に示すＩＣカード２０の構成例を示す。  
図２に示すように、ＩＣカード２０は、矩形状の本体と、本体内に内蔵されるＩＣモジュール２１を備えている。ＩＣモジュール２１は、ＩＣチップ２２を備える。
【００２７】
ＩＣチップ２２は、通信インターフェース２３、ＣＰＵ２４、ＲＯＭ２５、ＲＡＭ２６、不揮発性メモリ２７、電源部２８、及びコプロセッサ２９を備える。
【００２８】
通信インターフェース２３は、ＩＣカード２０に接続される外部機器（例えば端末装置１０）との間で送受信するデータに対して符号化、復号、変調、及び復調などを行う。
【００２９】
ＩＣカード２０が端末装置１０との間で接触通信によりデータの送受信を行う構成である場合、通信インターフェース２３は、コンタクトパターンを備える。コンタクトパターンは、導電性を有する金属などによりＩＣモジュール２１の表面に形成される接触端子である。即ち、コンタクトパターンは、端末装置１０と接触可能な状態で形成されている。コンタクトパターンは、金属により形成される面が複数のエリアに区切られて形成される。区切られた各エリアは、それぞれコンタクトパターンの端子として機能する。通信インターフェース２３は、コンタクトパターンを介してカードリーダライタ１７とデータの送受信を行うことができる。
【００３０】
また、非接触通信のインターフェースとして用いられる場合、通信インターフェース２３は、信号処理部とアンテナとを備える。
【００３１】
信号処理部は、端末装置１０に送信するデータに対して符号化、負荷変調などの信号処理を行う。例えば、信号処理部は、端末装置１０に送信するデータの変調（増幅）を行う。信号処理部は、信号処理を施したデータをアンテナに供給する。
【００３２】
アンテナは、例えば、ＩＣモジュール２１が内蔵される本体に所定の形状で配設される金属線により構成される。ＩＣカード２０は、端末装置１０に送信するデータに応じてアンテナにより磁界を発生させる。これにより、ＩＣカード２０は、端末装置１０に対してデータを送信することができる。また、ＩＣカード２０は、電磁誘導によりアンテナに発生する誘導電流に基づいて端末装置１０から送信されるデータを認識する。
【００３３】
例えば、信号処理部は、アンテナに発生する誘導電流に対して復調、及び復号を行う。例えば、信号処理部は、アンテナにより受信する信号の解析を行う。これにより、通信インターフェース２３は、２値の論理データを取得する。通信インターフェース２３は、解析したデータをバスを介してＣＰＵ２４に送信する。
【００３４】
また、通信インターフェース２３は、受信レジスタ及び送信レジスタを備える。受信レジスタ及び送信レジスタは、一般的なレジスタであり、ＩＣカード２０が送受信するデータを一時的に格納する。即ち、受信レジスタは、通信インターフェース２３を介して端末装置１０から受信するデータを一時的に格納する。また、送信レジスタは、通信インターフェース２３を介して端末装置１０に送信するデータを一時的に格納する。
【００３５】
ＣＰＵ２４は、種々の演算を行う演算素子である。ＣＰＵ２４は、ＲＯＭ２５あるいは不揮発性メモリ２７に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。これにより、ＣＰＵ２４は、ＩＣカード２０の全体の制御を司ることができる。例えば、ＣＰＵ２４は、端末装置１０のカードリーダライタ１７から受信したコマンドに応じて種々の処理を行い、処理結果に基づいて、レスポンスの生成を行なう。
【００３６】
ＲＯＭ２５は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２５は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２０内に組み込まれる。即ち、ＲＯＭ２５に記憶される制御プログラム及び制御データは、予めＩＣカード２０の仕様に応じて組み込まれる。
【００３７】
ＲＡＭ２６は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ２６は、ＣＰＵ２４の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ２６は、ＣＰＵ２４が実行するプログラムを一時的に格納する。
【００３８】
不揮発性メモリ２７は、例えば、ＥＥＰＲＯＭなどのデータの書き込み及び書き換えが可能なフラッシュメモリを備える。不揮発性メモリ２７は、例えば、制御用のプログラム、制御データ、アプリケーション、個人情報、暗号鍵などのセキュリティ情報、及びアプリケーションに用いられるデータなどを記憶する。
【００３９】
たとえば、不揮発性メモリ２７では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。ＣＰＵ２４は、不揮発性メモリ２７、または、ＲＯＭ２５に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【００４０】
電源部２８は、通信インターフェース２３を介してカードリーダライタ１７から電力を受給し、受給した電力をＩＣカード２０の各部に供給する。ＩＣカード２０が接触通信を行う構成を備える場合、電源部２８は、通信インターフェース２３のコンタクトパターンを介してカードリーダライタ１７から供給される電力をＩＣカード２０の各部に供給する。
【００４１】
また、ＩＣカード２０が非接触通信を行う構成を備える場合、カードリーダライタ１７のアンテナから送信される電波、特にキャリア波に基づいて電力を生成する。さらに、電源部２８は、動作クロックを生成する。電源部２８は、発生させた電力及び動作クロックをＩＣカード２０の各部に電力を供給する。ＩＣカード２０の各部は、電力の供給を受けた場合、動作可能な状態になる。
【００４２】
コプロセッサ２９は、演算素子及びレジスタなどを有する演算処理部である。コプロセッサ２９は、演算処理をハードウエアにより行う。例えば、コプロセッサ２９は、端末装置１０からのコマンドに基づいて、暗号化、復号、ハッシュ計算、及び乱数の生成などの処理を行う。例えば、端末装置１０から相互認証コマンドを受信する場合、コプロセッサ２９は、相互認証処理に係る演算処理を実行する。ＣＰＵ２４は、コプロセッサ２９にデータを入力し、コプロセッサ２９に演算処理を実行させ、処理結果をコプロセッサ２９から受け取る。
【００４３】
コプロセッサ２９は、例えば、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、またはＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等の規格に基づいて暗号処理を行う。コプロセッサ２９は、例えば不揮発性メモリ２７、またはＲＯＭ２５に格納された暗号鍵を用いて暗号化、及び復号などの暗号処理を行う。
【００４４】
ＩＣカード２０は、一次発行と二次発行とにより発行される。ＩＣカード２０を発行する発行装置は、一次発行において、ＩＣカード２０にコマンド（初期化コマンド）を送信することにより、ＩＣカード２０の不揮発性メモリ２７の初期化を行う。これにより、端末装置１０は、ＩＣカード２０の不揮発性メモリ２７内にＩＣカード２０の使用目的、及び使用用途などに応じた鍵ファイルやデータファイル等を定義する。
【００４５】
発行装置は、例えば、ＩＳＯ／ＩＥＣ７８１６により規定されているファイル構造を不揮発性メモリ２７内に創成する。上記の初期化が行われた不揮発性メモリ２７は、Ｍａｓｔｅｒ  Ｆｉｌｅ（ＭＦ）、Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ（ＤＦ）、及びＥｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＥＦ）などを有する。
【００４６】
ＭＦは、ファイル構造の根幹となるファイルである。ＤＦは、ＭＦの下位に創成される。ＤＦは、アプリケーション及びアプリケーションに用いられるデータなどをグループ化して格納するファイルである。ＥＦは、ＤＦの下位に創成される。ＥＦは、様々なデータを格納するためのファイルである。また、ＭＦの直下にＥＦが置かれる場合もある。
【００４７】
ＥＦには、Ｗｏｒｋｉｎｇ  Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＷＥＦ）とＩｎｔｅｒｎａｌ  Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＩＥＦ）などの種類がある。ＷＥＦは、作業用ＥＦであり、個人情報などを格納する。ＩＥＦは、内部ＥＦであり、例えば、セキュリティのための暗号鍵などのデータを記憶する。
【００４８】
二次発行では、ＥＦに例えば顧客データなどの個別データが格納される。これにより、ＩＣカード２０が運用可能な状態になる。即ち、ＣＰＵ２４は、不揮発性メモリ２７、または、ＲＯＭ２５に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【００４９】
図３は、端末装置１０とＩＣカード２０との間で行われる処理の例を示す。なお、本実施形態は、端末装置１０とＩＣカード２０とがＩＳＯ／ＩＥＣ１４４４３により規定されたブロックフォーマットにより非接触通信を行う例を示す。  
端末装置１０及びＩＣカード２０は、コマンドとレスポンスとを送受信し、初期設定を行う。これにより、端末装置１０とＩＣカード２０との間で通信プロトコルが活性化される。この結果、ＩＣカード２０は、端末装置１０から送信されたコマンドに応じて種々の処理を実行することができる。
【００５０】
端末装置１０は、ＩＣカード２０に実行させる処理に応じたコマンドを生成する。このコマンドは、例えばＩ−Ｂｌｏｃｋなどのブロック構成である。コマンドは、例えば、プロローグフィールド、情報フィールド、およびエピローグフィールドなどのフィールドを有する。
【００５１】
プロローグフィールドは、Ｐｒｏｔｏｃｏｌ  Ｃｏｎｔｒｏｌｌ  Ｂｙｔｅ（ＰＣＢ）、Ｃａｒｄ  ＩＤｅｎｔｉｆｉｅｒ（ＣＩＤ）、及びＮｏｄｅ  Ａｄｄｒｅｓｓ（ＮＡＤ）などのデータを有する。
【００５２】
プロトコル制御バイトであるＰＣＢは、データ伝送の制御に必要な情報をＩＣカード２０に伝達することができる。例えば、ブロックフォーマットでは、アプリケーション層で使用する情報を伝達するためのＩブロック、肯定応答または否定応答を伝達するためのＲブロック、及び端末装置１０とＩＣカード２０との間で制御情報を交換する為のＳブロックが規定されている。プロトコル制御バイトであるＰＣＢは、これらのブロックの種類を示す。
【００５３】
カード識別子であるＣＩＤは、処理対称のＩＣカードを指定するためのデータである。ＩＣカード２０は、固有のＣＩＤをＲＯＭ２５または不揮発性メモリ２７内に記憶している。端末装置１０は、初期設定でＩＣカード２０からＣＩＤを取得する。端末装置１０は、処理対象のＩＣカード２０のＣＩＤをプロローグフィールドのＣＩＤにセットする。
【００５４】
ＩＣカード２０は、コマンドを受信した場合、プロローグフィールドのＣＩＤの値と、自身のＣＩＤの値とが一致した場合、受信したコマンドに応じた処理を実行する。  
ノードアドレスであるＮＡＤは、異なる論理接続を構築するためのデータである。
【００５５】
情報フィールドは、例えば、コマンドのデータ本体、アプリケーションデータ、または状態情報などを有するＩｎｆｏｒｍａｔｉｏｎ（ＩＮＦ）を備える。ＩＣカード２０は、情報フィールドに格納されているデータに応じて種々の処理を実行する。
【００５６】
エピローグフィールドは、例えば、ＣＲＣなどの通信エラーをＩＣカード２０に検知させる為の通信エラー検査データを備える。ＩＣカード２０は、エピローグフィールド内のデータに基づいて、通信エラーを検知することができる。
【００５７】
端末装置１０は、生成したコマンド（第１のコマンド）をＩＣカード２０に送信する（ステップＳ１１）。ＩＣカード２０は、受信したコマンドのＣＲＣを用いて、通信エラーを検知する。ＩＣカード２０は、エラーを検知しなかった場合、受信した第１のコマンドに応じて処理を実行する。ＩＣカード２０は、処理結果に応じてレスポンス（第１のレスポンス）を生成し、端末装置１０に送信する。また、ＩＣカード２０は、ＣＲＣ異常、即ち通信エラーを検知した場合、無応答となる（ステップＳ１２）。
【００５８】
端末装置１０は、コマンドを送信してからの時間をカウントする。端末装置１０は、カウントした時間が予め設定された規定時間に達した場合、ＩＣカード２０に否定応答（ＮＡＫ：ｎｅｇａｔｉｖｅ  ａｃｋｎｏｗｒｅｄｇｅｍｅｎｔ）を送信する（ステップＳ１４）。なお、ＮＡＫは、ＰＣＢ、ＣＩＤ、及びＣＲＣを有する。
【００５９】
ＩＣカード２０は、ＮＡＫを受信した場合、ＡＣＫをレスポンスとして端末装置１０に送信する（ステップＳ１５）。
【００６０】
端末装置１０は、ＡＣＫを受信した場合、第１のコマンドの送信時にエラーが発生したと判断する。送信エラーが発生したと判断した場合、端末装置１０は、コマンドをＩＣカード２０に再送する。なお、端末装置１０は、第１のコマンドの各バイトごとにパリティを付加して第２のコマンドを生成する（ステップＳ１６）。端末装置１０は、生成した第２のコマンドを第１のコマンドの再送データとしてＩＣカード２０に送信する（ステップＳ１７）。
【００６１】
ＩＣカード２０は、第２のコマンドを受信した場合、受信したコマンドの各バイト毎にパリティチェックを行う（ステップＳ１８）。即ち、ＩＣカード２０は、コマンドの各バイトのデータと、このバイトに付加されているパリティビットとに基づいて、パリティエラーが発生したか否か判断する。
【００６２】
パリティエラーが発生したと判断した場合、ＩＣカード２０は、パリティエラーが発生したバイトを特定する。ＩＣカード２０は、第２のコマンド中におけるパリティエラーが発生したバイトの位置を示す情報（エラー情報）Ｘを含むレスポンス（第２のレスポンス）を生成する（ステップＳ１９）。ＩＣカード２０は、生成した第２のレスポンスを端末装置１０に送信する（ステップＳ２０）。
【００６３】
端末装置１０は、エラー情報Ｘを含むレスポンスを受信した場合、エラー情報Ｘに基づいて第２のコマンド中におけるパリティエラーが発生したバイトの位置を認識する。さらに、端末装置１０は、認識した位置のバイトＹを含むコマンド（第３のコマンド）を生成する（ステップＳ２１）。端末装置１０は、第３のコマンドをＩＣカード２０に送信する（ステップＳ２２）。
【００６４】
ＩＣカード２０は、第３のコマンドを受信した場合、受信したコマンドからエラー箇所のバイトのデータＹを取得する。ＩＣカード２０は、ステップＳ１７で受信した第２のコマンドの位置のエラー箇所のデータをデータＹに置き換える。ＩＣカード２０は、データを置き換えた第２のコマンドに基づいて処理を実行する（ステップＳ２３）。ＩＣカード２０は、この処理結果に応じてレスポンス（第３のレスポンス）を生成し、生成した第３のレスポンスを端末装置１０に送信する。
【００６５】
図４は、端末装置１０の処理の例を示す。  
端末装置１０は、ＩＣカード２０に実行させる処理に応じた第１のコマンドを生成し、生成した第１のコマンドをＩＣカード２０に送信する（ステップＳ３１）。
【００６６】
端末装置１０は、コマンドを送信してからの時間をカウントする（ステップＳ３２）。端末装置１０は、ＩＣカード２０からのレスポンス（第１のコマンドに対する第１のレスポンス）の受信を待つ（ステップＳ３３）。端末装置１０は、第１のレスポンスを受信した場合、ＩＣカード２０において正常に処理が行われたと判断し、以降の通常の処理を行う（ステップＳ３４）。
【００６７】
また、ステップＳ３３で第１のレスポンスを受信していない場合、端末装置１０は、時間をカウントし始めてから予め設定された規定時間が経過したか否か判断する（ステップＳ３５）。規定時間が経過したていない場合、端末装置１０は、ステップＳ３３の処理に移行し、時間のカウントを継続する。
【００６８】
ステップＳ３５で、規定時間が経過したと判断した場合、端末装置１０は、ＮＡＫをＩＣカード２０に送信する（ステップＳ３６）。さらに、端末装置１０は、ＮＡＫに対するＡＣＫの受信を待つ（ステップＳ３７）。ＡＣＫを受信した場合、端末装置１０は、第１のコマンドをＩＣカード２０に既に再送しているか否か判断する（ステップＳ３８）。即ち、ＩＣカード２０からの応答が無い状態（無応答）が２回連続で発生したか否か判断する。ステップＳ３８で１回目の無応答であると判断した場合、端末装置１０は、ステップＳ３１の処理に移行する。
【００６９】
ステップＳ３８で２回目の無応答であると判断した場合、端末装置１０は、第１のコマンドの各バイトごとにパリティを付加して第２のコマンドを生成する（ステップＳ３９）。端末装置１０は、生成した第２のコマンドをＩＣカード２０に送信する（ステップＳ４０）。
【００７０】
端末装置１０は、パリティエラーが発生した位置を示すエラー情報Ｘを含むレスポンス（第２のレスポンス）を受信する（ステップＳ４１）。端末装置１０は、受信した第２のレスポンスのエラー情報に基づいて第２のコマンド中におけるパリティエラーが発生したバイトの位置を特定する（ステップＳ４２）。
【００７１】
さらに、端末装置１０は、第２のコマンドの特定した位置のバイトＹを含むコマンド（第３のコマンド）を生成する。なお、端末装置１０は、第３のコマンドの各バイト毎にパリティビットを付加する。端末装置１０は、生成した第３のコマンドをＩＣカード２０に送信する（ステップ（ステップＳＳ４３）。さらに、端末装置１０は、送信した第３のコマンドに対する第３のレスポンスをＩＣカード２０から受信し（ステップＳ４４）、１つのコマンドにおける処理を終了する。
【００７２】
図５は、ＩＣカード２０の処理の例を示す。なお、ＩＣカード２０は、フラグを記憶する為の記憶領域を不揮発性メモリ２７内に備える。  
ＩＣカード２０は、端末装置１０からのコマンド（第１のコマンド）の受信を待つ（ステップＳ５１）。第１のコマンドを受信した場合、ＩＣカード２０は、上記のフラグがＯＮであるか否かを判断する（ステップＳ５２）。フラグがＯＮではない（ＯＦＦである）場合、ＩＣカード２０は、受信したコマンドにパリティビットが付加されているか否か判断する（ステップＳ５３）。
【００７３】
パリティビットが付加されていないと判断した場合、ＩＣカード２０は、受信した第１のコマンドのＣＲＣを用いて、ＣＲＣを実行する（ステップＳ５４）。ＩＣカード２０は、ＣＲＣの結果に応じて通信エラーが発声したか否か判断する（ステップＳ５５）。ＩＣカード２０は、エラーを検知しなかった場合、受信した第１のコマンドに応じて処理を実行する（ステップＳ５６）。ＩＣカード２０は、第１のコマンドの処理結果に応じてレスポンス（第１のレスポンス）を生成し、端末装置１０に送信する（ステップＳ５７）。
【００７４】
また、ＩＣカード２０は、ステップＳ５５でＣＲＣ異常、即ち通信エラーを検知した場合、無応答となる（ステップＳ５８）。さらに、ＩＣカード２０は、ステップＳ５１に移行する。これにより、ＩＣカード２０は、端末装置１０から送信される第２のコマンドの受信を待つ状態になる。
【００７５】
また、ステップＳ５１で第２のコマンドを受信し、ステップＳ５３でパリティビットがコマンドに付加されていると判断した場合、ＩＣカード２０は、受信した第２のコマンドの各バイト毎にパリティチェックを行う（ステップＳ５９）。即ち、ＩＣカード２０は、コマンドの各バイトのデータと、このバイトに付加されているパリティビットとに基づいて、パリティエラーが発生したか否か判断する（ステップＳ６０）。
【００７６】
パリティエラーが発生しなかった場合、ＩＣカード２０は、コマンドに応じて処理を実行する（ステップＳ５６）。ＩＣカード２０は、コマンドの処理結果に応じてレスポンスを生成し、端末装置１０に送信する（ステップＳ５７）。
【００７７】
また、ステップＳ６０でパリティエラーが発生したと判断した場合、ＩＣカード２０は、パリティエラーが発生したバイトを特定する。ＩＣカード２０は、第２のコマンド中におけるパリティエラーが発生したバイトの位置を示す情報（エラー情報）Ｘを含むレスポンス（第２のレスポンス）を生成する。ＩＣカード２０は、生成した第２のレスポンスを端末装置１０に送信する（ステップＳ６１）。さらに、ＩＣカード２０は、上記のフラグをＯＮに切り替える。さらに、ＩＣカード２０は、ステップＳ５１に移行する。これにより、ＩＣカード２０は、端末装置１０から送信される第３のコマンドの受信を待つ状態になる。
【００７８】
ステップＳ５１で第３のコマンドを受信し、ステップＳ５２でフラグがＯＮであると判断した場合、ＩＣカード２０は、受信した第３のコマンドのパリティチェックを行う（ステップＳ６２）。ＩＣカード２０は、パリティエラーが発生したか否か判断する（ステップＳ６３）。
【００７９】
パリティエラーが発生していないと判断した場合、ＩＣカード２０は、受信した第３のコマンドからステップＳ６０でエラーが発生したと判断したバイトに対応するデータＹを取得する。ＩＣカード２０は、第２のコマンドの位置のエラー箇所のデータをデータＹに置き換えて修正する（ステップＳ６４）。ＩＣカード２０は、修正された第２のコマンドに基づいて処理を実行する（ステップＳ５６）。ＩＣカード２０は、この処理結果に応じてレスポンス（第３のレスポンス）を生成し、生成した第３のレスポンスを端末装置１０に送信する（ステップＳ５７）。
【００８０】
また、ステップＳ６３でパリティエラーが発生したと判断した場合、ＩＣカード２０は、第３のコマンドの再送を要求するための再送要求を端末装置１０に送信する（ステップＳ６５）。
【００８１】
上記したように、本実施形態に係る端末装置１０は、ＩＣカード２０へのコマンド送信時にエラーが発生した場合、バイト毎にパリティビットが付加されたコマンドを生成し、ＩＣカード２０に送信する。ＩＣカード２０は、パリティビットが付加されたコマンドを受信した場合、パリティチェックを行ない、コマンド上におけるパリティエラーが発生した位置を特定する。ＩＣカード２０は、特定した位置を示すエラー情報を端末装置１０に送信する。端末装置１０は、コマンド上のエラー情報が示す位置のデータ（修正用データ）をＩＣカード２０に送信する。ＩＣカード２０は、修正用データを用いてコマンドを修正し、修正したコマンドに基づいて処理を実行する。
【００８２】
これにより、ＩＣカード２０は、ブロック形式データ上の通信エラーが発生したバイトを特定する事ができる。これにより、端末装置１０は、通信エラーが発生した位置のデータを修正用データとしてＩＣカード２０に送信することができる。これにより、ＩＣカード２０は、コマンドを修正し、コマンド処理を進める事ができる。この為、全体の処理時間が低下することを防ぐことができる。この結果、より効率的に通信することができるＩＣカード処理装置、及びＩＣカードを提供することができる。
【００８３】
なお、上記の実施形態では、端末装置１０とＩＣカード２０とが非接触通信を行なう例について説明したが、この構成に限定されない。端末装置１０とＩＣカード２０とが接触通信を行なう場合であっても、上記の構成を適用することができる。
【００８４】
また、上記の実施形態では、端末装置１０は、ＩＣカード２０に送信するデータの全体の長さが、予め設定された長さ以上である場合、コマンドにパリティビットを付加する構成であってもよい。この場合、端末装置１０は、コマンドを送信する際にコマンドの長さを確認し、コマンドの長さが予め設定された規定値以上であるか否か判断する。端末装置１０は、コマンドの長さが予め設定された規定値以上であると判断した場合、コマンドのバイト毎にパリティビットを付加する。端末装置１０は、パリティビットを付加したコマンドをＩＣカード２０に送信する。これにより、コマンドの再送信に時間を要するケースにおいて、効率的にコマンドデータの一部のデータをＩＣカード２０に再送することができる。
【００８５】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【００８６】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００８７】
１…ＩＣカード処理システム、１０…端末装置、１１…ＣＰＵ、１２…ＲＡＭ、１３…ＲＯＭ、１４…不揮発性メモリ、１５…操作部、１６…表示部、１７…カードリーダライタ、１８…スロット、１９…バス、２０…ＩＣカード、２１…ＩＣモジュール、２２…ＩＣチップ、２３…通信インターフェース、２４…ＣＰＵ、２５…ＲＯＭ、２６…ＲＡＭ、２７…不揮発性メモリ、２８…電源部、２９…コプロセッサ。
【図１】
2014002471.tif 000003
【図２】
2014002471.tif 000004
【図３】
2014002471.tif 000005
【図４】
2014002471.tif 000006
【図５】
2014002471.tif 000007