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