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