(57)【要約】【課題】通信エラーが発生しても効率良くリカバーできるＩＣカード、携帯可能電子装置およびＩＣカード処理装置を提供することを目的とする。【解決手段】実施形態によれば、ＩＣカードは、送信手段と、再生成手段と、再送手段と、を有する。送信手段は、外部装置へメッセージを送信する。再生成手段は、送信手段により送信したメッセージの再送要求を受信した場合、メッセージを分割したデータごとに誤り符号を付加したデータブロックを形成し、形成したデータブロックを順番に並べた分割ブロック構造のメッセージを生成する。再送手段は、再生成手段により生成した分割ブロック構造のメッセージを外部装置へ送信する。【選択図】図２
2014182645.tif 000002
【特許請求の範囲】
【請求項１】
外部装置へメッセージを送信する送信手段と、
前記送信手段により送信したメッセージの再送要求を受信した場合、前記メッセージを分割したデータごとに誤り符号を付加したデータブロックを形成し、前記形成したデータブロックを順番に並べた分割ブロック構造のメッセージを生成する再生成手段と、
前記再生成手段により生成した分割ブロック構造のメッセージを前記外部装置へ送信する再送手段と、
を有するＩＣカード。
【請求項２】
さらに、前記再送手段により送信した分割ブロック構造のメッセージにおける一部のデータブロックを指定する再送要求に対して、前記指定されたデータブロックを前記外部装置へ再送する第２の再送手段を有する、
前記請求項１に記載のＩＣカード。
【請求項３】
前記データブロックは、データ本体の長さを示すデータとデータ本体と誤り検査符号とから構成される、
前記請求項１又は２の何れか１項に記載のＩＣカード。
【請求項４】
前記再生成手段は、前記メッセージが所定閾値以上の長さである場合に、前記分割ブロック構造のメッセージを生成し、
前記再送手段は、前記メッセージが所定閾値以上の長さである場合には前記再生成手段により生成した分割ブロック構造のメッセージを前記外部装置へ送信し、前記メッセージが所定閾値未満の長さである場合には前記メッセージを再送する、
前記請求項１乃至３の何れか１項に記載のＩＣカード。
【請求項５】
外部装置へメッセージを送信する送信手段と、前記送信手段により送信したメッセージの再送要求を受信した場合、前記メッセージを分割したデータごとに誤り符号を付加したデータブロックを形成し、前記形成したデータブロックを順番に並べた分割ブロック構造のメッセージを生成する再生成手段と、前記再生成手段により生成した分割ブロック構造のメッセージを前記外部装置へ送信する再送手段と、を備えるモジュールと、
前記モジュールを具備する本体と、
を備えるＩＣカード。
【請求項６】
外部装置へメッセージを送信する送信手段と、
前記送信手段により送信したメッセージの再送要求を受信した場合、前記メッセージを分割したデータごとに誤り符号を付加したデータブロックを形成し、前記形成したデータブロックを順番に並べた分割ブロック構造のメッセージを生成する再生成手段と、
前記再生成手段により生成した分割ブロック構造のメッセージを前記外部装置へ送信する再送手段と、
を有する携帯可能電子装置。
【請求項７】
ＩＣカードから受信したメッセージの再送要求を前記ＩＣカードへ送信する第１の送信手段と、
前記第１の送信手段により送信した再送要求に対して誤り符号が付加されたデータブロックを順番に並べた分割ブロック構造のメッセージを受信した場合、前記データブロックごとに前記誤り符号を用いてエラーの有無を検査するエラー検査手段と、
前記エラー検査手段によりエラーを検出したデータブロックを指定する再送要求を前記ＩＣカードへ送信する第２の送信手段と、
を有するＩＣカード処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、携帯可能電子装置およびＩＣカード処理装置に関する。
【背景技術】
【０００２】
従来、ＩＣカードなどの携帯可能電子装置では、外部装置とのデータ通信において、通信エラーを検知する方法として、誤り検査符号（ＥＤＣデータ）を用いることがある。従来のＩＣカードは、メッセージ全体に対してＥＤＣデータを付加し、送信先の外部装置がメッセージの正当性が確認できるまで、再送処理を繰り返す。また、外部装置から供給する大容量データをＩＣカードに書き込む場合、全体の処理時間は、データの通信時間が大半の割合を占めることになる。ＩＣカードは、通信エラーが発生すると、大容量データを再送する必要があるため、通信時間および全体の処理時間が長くなる可能性がある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＩＳＯ／ＩＥＣ１４４４３−４
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態では、通信エラーが発生しても効率良くリカバーできるＩＣカードおよび携帯可能電子装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
実施形態によれば、ＩＣカードは、送信手段と、再生成手段と、再送手段と、を有する。送信手段は、外部装置へメッセージを送信する。再生成手段は、送信手段により送信したメッセージの再送要求を受信した場合、メッセージを分割したデータごとに誤り符号を付加したデータブロックを形成し、形成したデータブロックを順番に並べた分割ブロック構造のメッセージを生成する。再送手段は、再生成手段により生成した分割ブロック構造のメッセージを外部装置へ送信する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係るＩＣカードとＩＣカード処理装置とを有するＩＣカードシステムの構成例を示す図である。
【図２】図２は、実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】図３は、実施形態に係るＩＣカードとＩＣカード処理装置とが送受信するデータブロックのフォーマットの構成例を示す図である。
【図４】図４は、実施形態に係るＩＣカードとＩＣカード処理装置とが送受信するＩ−ｂｌｏｃｋのＰＣＢのフォーマット例を示す図である。
【図５】図５は、本実施形態に係るＩＣカードとＩＣカード処理装置との通信エラーを含む通信シーケンスの例を示す図である。
【図６】図６は、本実施形態に係るＩＣカードの動作例を説明するためのフローチャートである。
【図７】図７は、本実施形態に係るＩＣカードの動作例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態について、図面を参照して説明する。  
図１は、実施形態に係る携帯可能電子装置としてのＩＣカード２と、ＩＣカード２と通信を行う外部装置としてのＩＣカード処理装置１の構成について説明するためのブロック図である。
【０００８】
ＩＣカード２は、外部装置から与えられるコマンドを処理し、その処理結果をレスポンスとして出力する携帯可能電子装置である。本実施形態においては、ＩＣカード２は、非接触型のＩＣカードであることを想定してする。本実施形態において想定する非接触型ＩＣカードとしてのＩＣカード２は、例えば、国際的な標準規格であるＩＳＯ／ＩＥＣ  １４４４３−４に準拠するものとする。ただし、本実施形態は、外部装置とデータ通信を行う携帯可能電子装置であれば適用可能である。たとえば、本実施形態は、接触式ＩＣカードなどにも適用可能である。
【０００９】
まず、ＩＣカード処理装置１の構成について説明する。  
図１に示す構成例において、ＩＣカード処理装置１は、制御部１０、および、カードリーダライタ１５、操作部１７、および、ディスプレイ１８を有する。また、制御部１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、および、不揮発性メモリ１４を有する。たとえば、制御部１０は、パーソナルコンピュータ（ＰＣ）により構成されるようにしても良い。ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、カードリーダライタ１５、操作部１７及びディスプレイ１８は、それぞれバスを介して互いに接続される。
【００１０】
ＣＰＵ１１は、ＩＣカード処理装置１全体の制御を司る。ＣＰＵ１１は、ＲＯＭ１２又は不揮発性メモリ１４に記憶されている制御プログラムを実行することにより種々の処理を行う。例えば、ＣＰＵ１１は、カードリーダライタ１５を介してＩＣカード２とコマンド及びレスポンスの送受信を行う。
【００１１】
ＲＯＭ１２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＡＭ１３は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ１３は、カードリーダライタ１５を介して外部の機器と送受信するデータを一時的に格納する。また、ＲＡＭ１３は、ＣＰＵ１１が実行するプログラムを一時的に格納する。
【００１２】
不揮発性メモリ１４は、例えば、ＥＥＰＲＯＭなどの書き換え可能な不揮発性メモリにより構成する。不揮発性メモリ１４は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。
【００１３】
カードリーダライタ１５は、ＩＣカード２との通信を行うためのインターフェース装置である。カードリーダライタ１５は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。ＩＣカード２が非接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御部などにより構成される。
【００１４】
非接触型のＩＣカードに対応するカードリーダライタ１５では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ１５は、制御部１０のＣＰＵ１１による制御に基づいてＩＣカード２の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１５】
なお、ＩＣカード２が接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成され、ＩＣカード２に対しては、コンタクト部を介して、電源供給、クロック供給、リセット制御、データの送受信を行うようにすれば良い。
【００１６】
操作部１７は、ＩＣカード処理装置１の操作者によって、種々の操作指示が入力される。操作部１７は、操作者に入力された操作指示のデータをＣＰＵ１１へ送信する。操作部１７は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。  
ディスプレイ１８は、ＣＰＵ１１の制御により種々の情報を表示する表示装置である。ディスプレイ１８は、たとえば、液晶表示装置である。
【００１７】
次に、ＩＣカード２について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの上位機器から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。例えば、ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００１８】
また、ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００１９】
次に、ＩＣカード２の構成例について説明する。  
図２は、実施形態に係るＩＣカード２の構成例を概略的に示すブロック図である。  
ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵されている。モジュールＭは、１つまたは複数のＩＣチップＣａと通信部としての外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設されている。
【００２０】
図２に示す構成例において、ＩＣカード２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、不揮発性メモリ２４、通信部２５を備えている。これらの各部は、データバスを介して互いに接続されている。また、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、および不揮発性メモリ２４は、１つ又は複数のＩＣチップＣａにより構成され、通信部２５に接続された状態でモジュールＭを構成している。
【００２１】
ＣＰＵ２１は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２１は、ＲＯＭ２２あるいは不揮発性メモリ２４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、ＣＰＵ２１は、ＲＯＭ２２に記憶されているプログラムを実行することにより、ＩＣカード２の動作制御あるいはＩＣカード２の運用形態に応じた種々の処理を行う。なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００２２】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００２３】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、計算用バッファ２３ａ、受信用バッファ２３ｂ、送信用バッファ２３ｃとして機能する。計算用バッファ２３ａとしては、ＣＰＵ２１が実行する種々の演算処理の結果などを一時的に保持する。受信用バッファ２３ｂとしては、通信部２５を介してＩＣカード処理装置１から受信するコマンドデータなどを保持する。送信用バッファ２３ｃとしては、通信部２５を介してＩＣカード処理装置１へ送信するメッセージ（レスポンスデータ）などを保持する。また、ＲＡＭ２３は、動作状態を示すフラグを記憶する。たとえば、ＲＡＭ２３は、直前に送信したメッセージが後述する分割ブロック構造のメッセージであることを示す分割送信フラグ２３ｄを有する。
【００２４】
不揮発性メモリ２４は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。不揮発性メモリ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、不揮発性メモリ２４では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【００２５】
通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５との通信を行うためのインターフェースである。非接触型のＩＣカードとしてのＩＣカード２においては、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。また、ＩＣカード２が接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。
【００２６】
次に、ＩＣカード２とＩＣカード処理装置１との通信方式について説明する。  
ＩＣカード２とＩＣカード処理装置１とは、所定のフォーマットのデータを送受信する。ＩＣカード処理装置１は、ＩＣカード２へ所定のフォーマットのコマンドデータを送信し、ＩＣカード２は、ＩＣカード処理装置１へ所定のフォーマットのレスポンスデータを返信する。たとえば、ＩＣカード２とＩＣカード処理装置１とは、ＩＳＯ／ＩＥＣ  １４４４３−４で規定されているデータ伝送方式でデータ通信を行う。
【００２７】
ただし、携帯可能電子装置としてのＩＣカード２と外部装置としてのＩＣカード処理装置１との通信方式は、ＩＳＯ／ＩＥＣ  １４４４３−４で規定されているデータ伝送方式に限定されるものではなく、所定のフォーマットのデータを送受信し、かつ、送受信データに対するエラーチェックを行えるものであれば良い。
【００２８】
図３は、ＩＣカード２とＩＣカード処理装置１とが送受信するデータブロックのフォーマットの構成例を示す図である。  
図３に示す構成例は、ＩＳＯ／ＩＥＣ  １４４４３−４で規定されているデータ伝送方式で送受信されるデータブロックの構成例を示している。図３に示すように、ＩＳＯ／ＩＥＣ  １４４４３−４で規定されているデータ伝送方式では、ブロック伝送として、Ｉ−ｂｌｏｃｋ（Ｉｎｆｏｒｍａｔｉｏｎ  ｂｌｏｃｋ：情報ブロック）、Ｒ−ｂｌｏｃｋ（Ｒｅｃｅｉｖｅ  ｒｅａｄｙ  ｂｌｏｃｋ：受信準備完了ブロック）、Ｓ−ｂｌｏｃｋ（Ｓｕｐｅｒｖｉｓｏｒｙ  ｂｌｏｃｋ：管理ブロック）の３種類のフォーマットのデータを送受信する。
【００２９】
Ｉ−ｂｌｏｃｋ、Ｒ−ｂｌｏｃｋ、及びＳ−ｂｌｏｃｋは、それぞれ異なる役割を有する。Ｉ−ｂｌｏｃｋ（Ｉブロック）は、アプリケーション層で使用する情報を伝達するためのフォーマットである。通常のデータ読出し、書き込みには、Ｉ−ｂｌｏｃｋが用いられる。
【００３０】
Ｒ−ｂｌｏｃｋ（Ｒブロック）は、肯定応答または否定応答を伝達するためのフォーマットである。Ｒ−ｂｌｏｃｋには、Ｒ−ｂｌｏｃｋ（ＡＣＫ）及びＲ−ｂｌｏｃｋ（ＮＡＣ）などの種類がある。Ｒ−ｂｌｏｃｋ（ＡＣＫ）は、次のコマンドを要求するときに用いられる。また、Ｒ−ｂｌｏｃｋ（ＮＡＣ）は、受信したコマンドの再送を要求するときに用いられる。
【００３１】
Ｓ−ｂｌｏｃｋ（Ｓブロック）は、ＩＣカード２０とＩＣカード３０との間で制御情報を交換する為のフォーマットである。たとえば、Ｓ−ｂｌｏｃｋは、処理時間の延長要求（WTX：Waiting Time extension）、ＩＣカードを非活性化させる命令（Ｄｅｓｅｌｅｃｔ）として用いられる。なお、Ｓ−ｂｌｏｃｋにおいては、処理時間の延長要求（WTX）か非活性化させる命令（Ｄｅｓｅｌｅｃｔ）かを後述のＰＣＢで指定する。
【００３２】
図３に示すように、ＩＳＯ／ＩＥＣ１４４４３により規定されているブロックフォーマットに準拠したフレームは、プロローグフィールド、情報フィールド（ＩＮＦ：  Ｉｎｆｏｒｍａｔｉｏｎ）、およびエピローグフィールド（ＥＤＣ：  Ｅｒｒｏｒ  Ｄｅｔｅｃｔｉｏｎ  Ｃｏｄｅ）などのフィールドを有する。Ｉ−ｂｌｏｃｋ、Ｒ−ｂｌｏｃｋ、及びＳ−ｂｌｏｃｋは、いずれもこの図３に示されたブロックフォーマットを準拠している。
【００３３】
プロローグフィールドは、Ｐｒｏｔｏｃｏｌ  Ｃｏｎｔｒｏｌｌ  Ｂｙｔｅ（ＰＣＢ）、Ｃａｒｄ  ＩＤｅｎｔｉｆｉｅｒ（ＣＩＤ）、及びＮｏｄｅ  Ａｄｄｒｅｓｓ（ＮＡＤ）などのデータを有する。
【００３４】
ＰＣＢは、プロトコル制御バイトである。ＰＣＢは、データ伝送の制御に必要な情報を相手側の機器（外部機器）に伝達することができる。例えば、ＰＣＢは、このフレームがＩ−ｂｌｏｃｋであるか、Ｒ−ｂｌｏｃｋであるか、またはＳ−ｂｌｏｃｋであるかを示す情報を有する。
【００３５】
ＣＩＤは、カード識別子である。ＣＩＤは、処理対称のＩＣカードを指定するためのデータである。ＩＣカード２は、固有のＣＩＤをＲＯＭ２６または不揮発性メモリ２８内に記憶している。  
ＮＡＤは、ノードアドレスである。ＮＡＤは、異なる論理接続を構築するためのデータである。
【００３６】
情報フィールド（ＩＮＦ）は、例えば、コマンドのデータ本体、アプリケーションデータ、または状態情報などを格納するフィールドである。ＩＣカード２は、情報フィールドに格納されているデータに応じて種々の処理を実行する。なお、情報フィールドは、省略されてもよい。Ｒ−ｂｌｏｃｋでは、情報フィールドは省略される。
【００３７】
エピローグフィールド（ＥＤＣ：Ｅｒｒｏｒ  Ｄｅｔｅｃｔｉｏｎ  Ｃｏｄｅ）には、例えば、通信エラーなどによりデータ異常を検知するために、ＣＲＣなどのエラー検出符号を格納する。エラー検出符号は、エピローグフィールド及び情報フィールドのデータに基づいて算出される値である。受信側の機器は、受信したデータのエピローグフィールド及び情報フィールド内のデータとエラー検出符号とに基づいて、通信エラーなどのデータ異常を検知することができる。たとえば、ＩＣカード２からＩ−ｂｌｏｃｋを受信したＩＣカード処理装置１は、受信したＩ−ｂｌｏｃｋのエピローグフィールド（ＥＤＣ）におけるＥＤＣデータによりエラーの有無をチェックする。
【００３８】
図４は、Ｉ−ｂｌｏｃｋのＰＣＢのフォーマット例を示す図である。  
Ｉ−ｂｌｏｃｋのフレームは、プロローグフィールド、情報フィールド、およびエピローグフィールドを備えている。Ｉ−ｂｌｏｃｋのＰＣＢは、１バイトのデータであり、第１ビットｂ１乃至第８ビットｂ８を有する。
【００３９】
Ｉ−ｂｌｏｃｋのＰＣＢにおいて、第１ビットｂ１は、ブロックナンバー（Ｂｌｏｃｋ  ｎｕｍｂｅｒ）である。第２ビットｂ２は、規定値の「１」である。第３ビットｂ３は、ＮＡＤの有無を示す。第３ビットｂ３は、「１」である場合にはＮＡＤが有ることを示し、「０」である場合にはＮＡＤが無いことを示す。第４ビットｂ４は、ＣＩＤの有無を示す。第４ビットｂ４は、「１」である場合にはＣＡＤが有ることを示し、「０」である場合にはＣＩＤが無いことを示す。
【００４０】
第５ビットｂ５は、ブロックの連鎖（Ｂｌｏｃｋ  ｃｈａｉｎｉｎｇ）の有無を示す。第５ビットｂ５は、「１」である場合にはＢｌｏｃｋ  ｃｈａｉｎｉｎｇが有ることを示し、「０」である場合にはＢｌｏｃｋ  ｃｈａｉｎｉｎｇが無いことを示す。
【００４１】
第６ビットｂ６は、番号指定による再送要求或いは再送応答であるか否かを示す。第６ビットｂ６は、「１」である場合には番号指定による再送要求或いは再送応答であることを示し、「０」である場合には番号指定による再送要求或いは再送応答で無い（例えば、ＩＳＯ／ＩＥＣ１４４４３規定のブロックである）ことを示す。
【００４２】
第７ビットｂ７と第８ビットｂ８は、このＰＣＢを含むフレームがＩ−ｂｌｏｃｋ、Ｒ−ｂｌｏｃｋ，またはＳ−ｂｌｏｃｋであるかを示す。例えば、第８ビットｂ８が「０」であり、第７ビットｂ７が「０」である場合、このＰＣＢを含むフレームがＩ−ｂｌｏｃｋであることを示す。
【００４３】
次に、ＩＣカード２とＩＣカード処理装置１とにおけるコマンド及びレスポンスの交換手順について説明する。  
図５は、本実施形態に係るＩＣカード２とＩＣカード処理装置１との通信エラーを含む通信シーケンスの例を示す図である。  
ＩＣカード処理装置１とＩＣカード２とは、通信プロトコルの活性化が完了した後、コマンド及びレスポンス交換を開始する。
【００４４】
まず、ＩＣカード処理装置１の制御部１０は、ＩＣカード２に対して処理を要求するコマンドデータをＩ−ｂｌｏｃｋ（Ｉｎｆｏｒｍａｔｉｏｎ  ｂｌｏｃｋ）のフォーマットで生成する（ステップＳ１１）。コマンドを生成すると、ＩＣカード処理装置１の制御部１０は、カードリーダライタ１５により作成したＩ−ｂｌｏｃｋのコマンドデータを送信する（ステップＳ１２）。
【００４５】
ＩＣカード２は、ＩＣカード処理装置１からのＩ−ｂｌｏｃｋのコマンドを受信する。ＩＣカード２は、受信したＩ−ｂｌｏｃｋのデータ（コマンド）を解析し、コマンドの内容を解釈する。コマンドの内容を解釈すると、ＩＣカード２は、コマンドが要求する処理を実行する（ステップＳ１３）。コマンドを実行すると、ＩＣカード２は、コマンドの実行結果を示す情報を含むレスポンスデータ（メッセージ）をＩ−ｂｌｏｃｋのフォーマットで作成する（ステップＳ１４）。ＩＣカード２は、Ｉ−ｂｌｏｃｋのフォーマットで作成したメッセージを送信する（ステップＳ１５）。
【００４６】
ここで、ＩＣカード２は、送信したレスポンスデータがＩＣカード処理装置１に正常に受信されるまで、ＲＡＭ２３のバッファメモリなどに保存しておくものとする。また、ここでは、ＩＣカード２は、大容量のデータを一括してＩ−ｂｌｏｃｋのレスポンスデータ（メッセージ）で送信（応答）を想定するものとする。
【００４７】
ＩＣカード処理装置１のカードリーダライタ１５は、ＩＣカード２からのＩ−ｂｌｏｃｋのメッセージを受信する。ＩＣカード２からＩ−ｂｌｏｃｋのメッセージを受信すると、ＩＣカード処理装置１の制御部１０は、受信したＩ−ｂｌｏｃｋのメッセージについて、ＥＤＣ検査を実行する（ステップＳ１６）。ＥＤＣ検査によってエラーが検出されなければ（ステップＳ１７、ＮＯ）、ＩＣカード処理装置１の制御部１０は、ステップＳ１１で作成したコマンドに対する処理を終了する。また、ＥＤＣ検査によって通信エラーと判断した場合（ステップＳ１７、ＹＥＳ）、ＩＣカード処理装置１の制御部１０は、エラーとなったデータの再送を要求するコマンドとして、ＮＡＫ（Ｎｅｇａｔｉｖｅ  ａｃｋｎｏｗｌｅｄｇｅ）を示すＲ−ｂｌｏｃｋ（Ｒｅｃｅｉｖｅ  ｒｅａｄｙ  ｂｌｏｃｋ）のコマンドデータ（ＮＡＫデータ）を生成する（ステップＳ１８）。ＩＣカード処理装置１の制御部１０は、生成したＮＡＫ（再送要求）データをカードリーダライタ１５によりＩＣカード２へ送信する（ステップＳ１９）。
【００４８】
ＩＣカード２は、通信部２５によりＩＣカード処理装置１からのＲ−ｂｌｏｃｋのＮＡＫデータを受信する。Ｒ−ｂｌｏｃｋのＮＡＫデータを受信すると、ＩＣカード２の制御素子２１は、直前に送信したレスポンスデータ（再送すべきデータ）を複数のＴＬＶデータに分割したデータで再送すべきか否かを判断する（ステップＳ２０）。たとえば、ＩＣカード２の制御素子２１は、レスポンスデータが所定のデータ量以上であるか否かにより、レスポンスデータを分割したデータで再送すべきか否かを判断する。分割したデータで再送する必要がないと判断した場合（ステップＳ２０、ＮＯ）、ＩＣカード２の制御素子２１は、上記ステップＳ１４へ戻り、直前に送信したレスポンスデータを再送する。
【００４９】
また、レスポンスデータを分割したデータで再送すべきと判断した場合（ステップＳ２０、ＹＥＳ）、ＩＣカード２の制御素子２１は、直前に送信したレスポンスデータの情報フィールド（ＩＮＦ）のデータを複数に分割し、分割した各データにデータ長とＥＤＣ符号とを付加したデータ列（データブロック）を形成する。さらに、制御素子２１は、ＥＤＣ符号を付加した各データブロックを順番に並べたＩＮＦを有する再送用のレスポンスデータとしての分割ブロック構造のメッセージを作成する（ステップＳ２２）。
【００５０】
たとえば、分割した各データを含む各データブロック（データ列）は、データ長ＬとデータＶとＥＤＣ符号（ＥＤＣ）とを連結したデータとする。制御素子２１は、再送すべきレスポンスデータにおける情報フィールド（ＩＮＦ）のデータを複数のデータ（Ｖ）に分割し、分割した各データ（Ｖ）の前にそれぞれのデータ長（Ｌ）を付加し、さらに、データ（Ｖ）とデータ長（Ｌ）とを連結したデータ列にＥＤＣ符号を付加したデータ列としてのデータブロックを形成する。制御素子２１は、データ（Ｖ）とデータ長（Ｌ）とＥＤＣ符号（ＥＤＣ）とを連結した各データブロックを順番に並べて、再送すべきレスポンスデータにおける情報フィールド（ＩＮＦ）のデータを再構成する。このようなデータブロックを並べたＩＮＦを有するレスポンスデータが分割ブロック構造のメッセージであるものとする。
【００５１】
分割したデータにＥＤＣ符号を付加したデータブロックで再構成した分割ブロック構造のメッセージを作成すると、ＩＣカード２の制御素子２１は、再生成した分割ブロック構造のメッセージを再送用のレスポンスデータとしてＩＣカード処理装置１へ送信する（ステップＳ２３）。また、分割ブロック構造のメッセージを送信する場合、ＩＣカード２の制御素子２１は、分割ブロック構造のメッセージを送信した直後であることを示す分割送信フラグをオンする（例えば、「１」にする）。
【００５２】
ＩＣカード処理装置１は、カードリーダライタ１５によりＩＣカード２から再送されたレスポンスデータを受信する。再送されたレスポンスデータを受信すると、ＩＣカード処理装置１の制御部１０は、受信したレスポンスデータ全体、および、当該レスポンスデータの情報フィールドに並べて格納されている各データ列に対して、それぞれＥＤＣ検査を実行する（ステップＳ２４）。
【００５３】
これらのＥＤＣ検査によりデータ全体とＩＮＦ内の全てのデータ列とからエラーが検出されなかった場合（ステップＳ２５、ＮＯ）、ＩＣカード処理装置１の制御部１０は、ステップＳ１１で作成したコマンドの処理を終了する。
【００５４】
また、ＥＤＣ検査によりエラーが検出されたデータ列が存在する場合（ステップＳ２５、ＹＥＳ）、ＩＣカード処理装置１の制御部１０は、エラーとなったデータ列を示すＮＡＫデータを生成する（ステップＳ２６）。たとえば、エラーとなったデータ列は、当該レスポンスデータのＩＮＦ内に並べた順番で指定する。この場合、ＩＮＦ内のｘ番目のデータ列がエラーを検出すれば、制御部１０は、ｘ番目を指定して再送を要求するデータ（ＮＡＫデータ）を生成する。データ列を指定するＮＡＫデータを生成すると、制御部１０は、カードリーダライタ１５により、データ列を指定するＮＡＫデータをＩＣカード２へ送信する（ステップＳ２７）。
【００５５】
ＩＣカード２は、ＩＣカード処理装置１から送信されたデータ列を指定するＮＡＫデータを通信部２５により受信する。データ列を指定するＮＡＫデータを受信すると、ＩＣカード２の制御素子２１は、受信したＮＡＫデータで指定されているデータ列を再送用のレスポンスデータのＩＮＦから抽出し、抽出したデータ列をＩＮＦに格納した新たなレスポンスデータ（再々送信用のレスポンスデータ）を生成する（ステップＳ２８）。制御素子２１は、受信したＮＡＫデータに対する応答として、当該ＮＡＫデータで指定されたデータ列をＩＮＦに格納したレスポンスデータをＩＣカード処理装置１へ送信する（ステップＳ２９）。
【００５６】
次に、上記のようなＩＣカード処理装置１との通信を行うＩＣカード２の動作について説明する。  
図６及び図７は、ＩＣカード２の動作例を説明するためのフローチャートである。  
ＩＣカード処理装置１からの電源供給を受けて起動したＩＣカード２の制御素子２１は、ＩＣカード処理装置１との通信による通信プロトコルの活性化が完了した後、コマンド（メッセージ）の受信が可能な状態とする。この状態において、ＩＣカード２は、通信部２５によりＩＣカード処理装置１からのメッセージを受信する。
【００５７】
通信部２５によりメッセージを受信した場合、ＩＣカード２の制御素子２１は、分割送信フラグ２３ｄをチェックし、直前に分割ブロック構造のメッセージを応答した状態であるか否かを判断する（ステップＳ３２）。直前に分割ブロック構造のメッセージを応答した状態である場合（ステップＳ３２．ＹＥＳ）、ＩＣカード２の制御素子２１は、受信したメッセージがI−ｂｌｏｃｋであるか否かを判断する（ステップＳ３３）。
【００５８】
受信したメッセージがI−ｂｌｏｃｋであると判断した場合（ステップＳ３３、ＹＥＳ）、制御素子２１は、受信したI−ｂｌｏｃｋのメッセージが特定のデータブロックを指定する再送要求であるか否かを判断する（ステップＳ３４）。たとえば、I−ｂｌｏｃｋのＰＣＢが図４に示す構成であれば、制御素子２１は、受信したI−ｂｌｏｃｋのメッセージにおける第６ビットの値が「１」（ｂ６＝１）であるか否かにより、受信したメッセージがデータブロックを指定（番号指定）する再送要求であるか否かを判断する。
【００５９】
受信したメッセージがデータブロックを指定する再送要求であると判断した場合（ステップＳ３４、ＹＥＳ）、制御素子２１は、ＲＡＭ２３の送信用バッファ２３ｃに保持している分割ブロック構造のメッセージから指定されたデータブロックを抽出し、抽出したデータブロックをＩＮＦにセットしたメッセージをＩＣカード処理装置１へ送信する（ステップＳ３５）。指定されたデータブロックをセットしたメッセージを送信した後、ＩＣカード２の制御素子２１は、次のメッセージの受信待ち状態となる。
【００６０】
また、受信したメッセージがデータブロックを指定する再送要求でないと判断した場合、つまり、受信したメッセージが通常のコマンドを含むメッセージであると判断した場合（ステップＳ３４、ＮＯ）、制御素子２１は、メッセージのＩＮＦに格納されたデータを解析することにより受信したコマンドを認識し、コマンド処理を実行する（ステップＳ３５）。コマンド処理において、制御素子２１は、処理結果を含むレスポンスデータ（メッセージ）を生成し、ＩＣカード処理装置１へ送信する。受信したコマンドに対応する新たなレスポンスデータをＩＣカード処理装置１へ送信した場合、制御素子２１は、分割送信フラグ２３ｄをオフの状態に更新し（ステップＳ３７）、メッセージの受信待ちの状態となる。
【００６１】
また、受信したメッセージがI−ｂｌｏｃｋでないと判断した場合（ステップＳ３３、ＮＯ）、制御素子２１は、受信したメッセージがＳ−ｂｌｏｃｋであるか否かを判断する（ステップＳ３８）。受信したＳ−ｂｌｏｃｋのメッセージであると判断した場合（ステップＳ３８、ＹＥＳ）。制御素子２１は、受信したＳ−ｂｌｏｃｋの処理を実行する（ステップＳ３９）。受信したＳ−ｂｌｏｃｋの処理結果を送信すると、制御素子２１は、分割送信フラグ２３ｄをオフの状態に更新し（ステップＳ３７）、メッセージの受信待ちの状態となる。
【００６２】
また、受信したメッセージがＳ−ｂｌｏｃｋでないと判断した場合（ステップＳ３８、ＮＯ）、制御素子２１は、受信したメッセージがＲ−ｂｌｏｃｋであるか否かを判断する（ステップＳ４０）。受信したメッセージがＲ−ｂｌｏｃｋでもないと判断した場合（ステップＳ４０、ＮＯ）。制御素子２１は、ＩＣカード処理装置１に対して無応答とする（ステップＳ４１）。この場合、制御素子２１は。無応答のままエラー処理を行うようにしても良いし、次のメッセージの受信待ちの状態としても良い。
【００６３】
受信したメッセージがＲ−ｂｌｏｃｋであると判断した場合（ステップＳ４０、ＹＥＳ）、制御素子２１は、受信したＲ−ｂｌｏｃｋのメッセージがＡＣＫかＮＡＫかを判別する（ステップＳ４２）。受信したＲ−ｂｌｏｃｋのメッセージがＡＣＫであると判別した場合（ステップＳ４２、ＹＥＳ）、制御素子２１は、次のＩ−ｂｌｏｃｋのメッセージを送信し（ステップＳ４３）、分割送信フラグ２３ｄをオフの状態に更新する（ステップＳ３７）。分割送信フラグ２３ｄをオフの状態にすると、制御素子２１は、次のメッセージの受信待ちの状態となる。
【００６４】
また、受信したＲ−ｂｌｏｃｋのメッセージがＮＡＫであると判別した場合（ステップＳ４２、ＮＯ）、制御素子２１は、ＮＡＫ処理としてＲＡＭ２３の送信用バッファ２３ｃに保持している直前のメッセージ（この場合は分割ブロック構造のメッセージ）をそのままの状態でＩＣカード処理装置１へ再送し（ステップＳ４３）、次のメッセージの受信待ちの状態となる。
【００６５】
さらに、直前に分割ブロック構造のメッセージを応答した状態でない場合（ステップＳ３２、ＮＯ）、ＩＣカード２の制御素子２１は、図７に示すような処理を実行する。すなわち、制御素子２１は、受信したメッセージがI−ｂｌｏｃｋであるか否かを判断する（ステップＳ３５１）。
【００６６】
受信したメッセージがI−ｂｌｏｃｋであると判断した場合（ステップＳ５１、ＹＥＳ）、制御素子２１は、受信したI−ｂｌｏｃｋのメッセージのＩＮＦに格納されたデータを解析することにより受信したコマンドを認識し、コマンド処理を実行する（ステップＳ５２）。処理結果をＩＣカードに送信することによりコマンド処理を終了すると、制御素子２１は、次のメッセージの受信待ちの状態となる。
【００６７】
また、受信したメッセージがI−ｂｌｏｃｋでないと判断した場合（ステップＳ５１、ＮＯ）、制御素子２１は、受信したメッセージがＳ−ｂｌｏｃｋであるか否かを判断する（ステップＳ５３）。受信したＳ−ｂｌｏｃｋのメッセージであると判断した場合（ステップＳ５３、ＹＥＳ）。制御素子２１は、受信したＳ−ｂｌｏｃｋの処理を実行する（ステップＳ５４）。受信したＳ−ｂｌｏｃｋの処理結果を送信すると、制御素子２１は、次のメッセージの受信待ちの状態となる。
【００６８】
また、受信したメッセージがＳ−ｂｌｏｃｋでないと判断した場合（ステップＳ５３、ＮＯ）、制御素子２１は、受信したメッセージがＲ−ｂｌｏｃｋであるか否かを判断する（ステップＳ５５）。受信したメッセージがＲ−ｂｌｏｃｋでもないと判断した場合（ステップＳ５５、ＮＯ）。制御素子２１は、ＩＣカード処理装置１に対して無応答とし（ステップＳ５６）、処理を終了する。
【００６９】
また、受信したメッセージがＲ−ｂｌｏｃｋであると判断した場合（ステップＳ５５、ＹＥＳ）、制御素子２１は、受信したＲ−ｂｌｏｃｋのメッセージがＡＣＫかＮＡＫかを判別する（ステップＳ５７）。受信したＲ−ｂｌｏｃｋのメッセージがＡＣＫであると判別した場合（ステップＳ５７、ＹＥＳ）、制御素子２１は、次のＩ−ｂｌｏｃｋのメッセージを送信し（ステップＳ５８）、次のメッセージの受信待ちの状態となる。
【００７０】
また、受信したＲ−ｂｌｏｃｋのメッセージがＮＡＫであると判別した場合（ステップＳ５７、ＮＯ）、制御素子２１は、ＲＡＭ２３の送信用バッファ２３ｃに保持している直前に送信したメッセージを分割ブロック構造のメッセージに再構成するか否かを判断する（ステップＳ５９）。たとえば、制御素子２１は、直前に送信したメッセージの長さが所定の閾値以上であるか否かにより分割ブロック構造のメッセージを再構成するか否かを判断する。また、分割ブロック構造のメッセージを再構成するか否かを判断する閾値としては、２５６バイト程度を設定しても良い。また、前記閾値は、通信環境に応じて可変するようにしても良い。通信環境が悪い場合には、閾値を低く設定し、通信環境が良い場合には閾値を高く設定しても良い。
【００７１】
直前に送信したメッセージを分割ブロック構造のメッセージに再構成する必要がないと判断した場合（ステップＳ５９、ＹＥＳ）、制御素子２１は、送信用バッファ２３ｃに保持されている直前に送信したメッセージをそのままの再送し（ステップ６０）、次のメッセージの受信待ちの状態となる。
【００７２】
また、直前に送信したメッセージを分割ブロック構造のメッセージに再構成すると判断した場合（ステップＳ５９、ＹＥＳ）、制御素子２１は、メッセージのＩＮＦのデータを分割する方法を決定する（ステップＳ６１）。たとえば、分割する長さは、所定長（例えば、１ｋバイト）ごとに分割しても良いし、全体のデータ長に応じて段階的に設定した長さで分割しても良い。また、分割する方法としては、分割数を決めて分割数で全体のデータ長を割った長さで分割するようにしても良い。
【００７３】
分割方法を決定すると、制御素子２１は、決定した分割方法に従って直前に送信したメッセージのＩＮＦのデータを複数に分割する（ステップＳ６２）。ＩＮＦのデータを分割すると、制御素子２１は、分割した各データの直前にそれぞれのデータ長を示すデータを付加し、さらに、データ長とデータ本体とで構成するデータ列に対するＥＤＣ符号を付加してデータブロックを形成する（ステップＳ６３）。データブロックを生成すると、制御素子２１は、形成した各データブロックを先頭から順番に並べたＩＮＦを有するメッセージ（分割ブロック構造のメッセージ）を再生成する（ステップＳ６４）。分割ブロック構造のメッセージを再生成すると、制御素子２１は、再生成した分割ブロック構造のメッセージをＩＣカード処理装置１へ送信する（ステップＳ６５）。また、分割ブロック構造のメッセージを送信すると、制御素子２１は、直前に分割ブロック構造のメッセージを送信した状態であることを示す分割送信フラグをオンする（フラグの値を「１」にする）（ステップＳ６６）。
【００７４】
上述した実施形態によれば、ＩＣカードは、ＩＣカード処理装置からＮＡＫを受信後、直前に送信したメッセージにおけるＩＮＦのデータを複数のデータに分割し、分割した各データにデータ長とＥＤＣ符号とを付加したデータブロック（データ列）を複数生成する。ＩＣカードは、生成したデータ長とＥＤＣ符号を付加したデータブロックをＩＮＦに順番に並べた再送用のメッセージとしての分割ブロック構造のメッセージを作成し、さらに、メッセージ全体にもＥＤＣを付加してＩＣカード処理装置へ再送する。
【００７５】
また、ＩＣカード処理装置は、受信したメッセージ全体のＥＤＣ検査を実施し、異常であった場合には各データ列に付加されているＥＤＣを検査し、どのデータ列がエラーであるかを確認する。特定のデータ例にＥＤＣ異常を検出した場合、ＩＣカード処理装置は、ＥＤＣ異常があったデータ列の番号を指定して再送要求を実施する。ＩＣカードは、再送要求で指定された番号のデータ列を再送として応答する。
【００７６】
上記のような実施形態によれば、大容量のデータを一括して送受信する場合に、通信エラーが繰り返し発生するような状況であれば、通信エラーの度に大容量のデータ全体の再送を繰り返すのではなく、エラーが発生した一部のデータを再送すれば良いため、通信時間の短縮化が期待できる。この結果として、通信エラーが発生しても効率良くリカバーできるＩＣカード、ＩＣカード処理装置およびＩＣカード処理システムを提供することができる。
【００７７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７８】
Ｃ…本体、Ｍ…モジュール、Ｃａ…ＩＣチップ、１…ＩＣカード処理装置、２…ＩＣカード、１０…制御部、１５…カードリーダライタ、１７…操作部、１８…ディスプレイ、２１…制御素子（ＣＰＵ）、２２…ＲＯＭ、２３…ＲＡＭ、２３ｃ…送信用バッファ、２３ｄ…分割送信フラグ、２４…不揮発性メモリ、２５…通信部。
【図１】
2014182645.tif 000003
【図２】
2014182645.tif 000004
【図３】
2014182645.tif 000005
【図４】
2014182645.tif 000006
【図５】
2014182645.tif 000007
【図６】
2014182645.tif 000008
【図７】
2014182645.tif 000009