(57)【要約】【課題】効果的にデータを送受信することができるＩＣカード、携帯可能電子装置、ＩＣカード処理装置、及び、ＩＣカード処理システムを提供する。【解決手段】実施形態によれば、外部装置からのコマンドを実行するＩＣカードは、通信部と、生成部と、分割処理部と、送信処理部と、を備える。通信部は、前記外部装置とデータを送受信する。生成部は、プロアクティブコマンドを生成する。分割処理部は、前記生成部が生成した前記プロアクティブコマンドを前記ＩＣカードが一度に送信することができる最大データ長以下の分割プロアクティブコマンドに分割する。送信処理部は、前記通信部を通じて、前記分割処理部が分割した前記分割プロアクティブコマンドを前記外部装置へ送信する。【選択図】図１
2016206975.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からのコマンドを実行するＩＣカードであって、
前記外部装置とデータを送受信する通信部と、
プロアクティブコマンドを生成する生成部と、
前記生成部が生成した前記プロアクティブコマンドを前記ＩＣカードが一度に送信することができる最大データ長以下の分割プロアクティブコマンドに分割する分割処理部と、
前記通信部を通じて、前記分割処理部が分割した前記分割プロアクティブコマンドを前記外部装置へ送信する送信処理部と、
を備えるＩＣカード。
【請求項２】
前記送信処理部が最初に送信する分割プロアクティブコマンドは、前記プロアクティブコマンドのデータ長を示すデータ長情報を備える、
前記請求項１に記載のＩＣカード。
【請求項３】
前記送信処理部が最初に送信する分割プロアクティブコマンドは、前記外部装置に前記プロアクティブコマンドを分割して送信することを示すフラグを備える、
前記請求項１又は２に記載のＩＣカード。
【請求項４】
前記送信処理部が２回目以降に送信する分割プロアクティブコマンドは、前記分割プロアクティブコマンドのデータ長のアイテムデータを備える、
前記請求項１乃至３の何れか１項に記載のＩＣカード。
【請求項５】
前記分割処理部は、前記プロアクティブコマンドを前記最大データ長の分割プロアクティブコマンドに分割する、
前記請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項６】
前記送信処理部は、前記通信部を通じて前記外部装置から分割プロアクティブコマンドを取り出す取出コマンドを受信した場合に、前記通信部を通じて前記取出コマンドに対するレスポンスとして前記外部装置へ順に分割プロアクティブコマンドを送信する、
前記請求項１又は５の何れか１項に記載のＩＣカード。
【請求項７】
前記取出コマンドは、ＦＥＴＣＨコマンドである、
前記請求項６に記載のＩＣカード。
【請求項８】
前記分割処理部は、前記外部装置が送信するターミナルプロファイルが前記外部装置がプロアクティブコマンドを分割して受信することをサポートすることを示す場合に、前記生成部が生成した前記プロアクティブコマンドを前記分割プロアクティブコマンドに分割する、
前記請求項１乃至７の何れか１項に記載のＩＣカード。
【請求項９】
外部装置からのコマンドを実行するＩＣカードであって、
前記外部装置とデータを送受信する通信部と、プロアクティブコマンドを生成する生成部と、前記生成部が生成した前記プロアクティブコマンドを前記ＩＣカードが一度に送信することができる最大データ長以下の分割プロアクティブコマンドに分割する分割処理部と、前記通信部を通じて、前記分割処理部が分割した前記分割プロアクティブコマンドを前記外部装置へ送信する送信処理部と、を備えるモジュールと、
前記モジュールを内蔵した本体と、
を備えるＩＣカード。
【請求項１０】
外部装置からのコマンドを実行する携帯可能電子装置であって、
前記外部装置とデータを送受信する通信部と、
プロアクティブコマンドを生成する生成部と、
前記生成部が生成した前記プロアクティブコマンドを前記携帯可能電子装置が一度に送信することができる最大データ長以下の分割プロアクティブコマンドに分割する分割処理部と、
前記通信部を通じて、前記分割処理部が分割した前記分割プロアクティブコマンドを前記外部装置へ送信する送信処理部と、
を備える携帯可能電子装置。
【請求項１１】
ＩＣカードに対してコマンドを供給するＩＣカード処理装置であって、
ＩＣカードとデータを送受信する通信部と、
前記通信部を通じて、プロアクティブコマンドを分割した分割プロアクティブコマンドを取り出す取出コマンドを前記ＩＣカードへ送信する第１送信処理部と、
前記通信部を通じて、前記ＩＣカードから前記取出コマンドに対するレスポンスとして前記分割プロアクティブコマンドを受信する受信処理部と、
を備えるＩＣカード処理装置。
【請求項１２】
前記受信処理部が最初に受信する分割プロアクティブコマンドは、前記プロアクティブコマンドのデータ長を示すデータ長情報を備え、
前記第１送信処理部は、前記データ長情報に基づいて、前記取出コマンドを前記ＩＣカードへ送信する、
前記請求項１１に記載のＩＣカード処理装置。
【請求項１３】
前記取出コマンドは、ＦＥＴＣＨコマンドである、
前記請求項１１又は１２に記載のＩＣカード処理装置。
【請求項１４】
前記通信部を通じて、前記ＩＣカード処理装置がプロアクティブコマンドを分割して受信することをサポートすることを示すターミナルプロファイルを前記ＩＣカードへ送信する第２送信処理部を備える、
前記請求項１１乃至１３の何れか１項に記載のＩＣカード処理装置。
【請求項１５】
ＩＣカードとＩＣカード処理装置とを有するＩＣカード処理システムにおいて、
前記ＩＣカードは、
前記ＩＣカード処理装置とデータを送受信する通信部と、
プロアクティブコマンドを生成する生成部と、
前記生成部が生成した前記プロアクティブコマンドを前記ＩＣカードが一度に送信することができる最大データ長以下の分割プロアクティブコマンドに分割する分割処理部と、
前記通信部を通じて、前記分割処理部が分割した前記分割プロアクティブコマンドを前記ＩＣカード処理装置へ送信する送信処理部と、
を備え、
前記ＩＣカード処理装置は、
前記ＩＣカードとデータを送受信する第２通信部と、
前記第２通信部を通じて、前記ＩＣカードから前記分割プロアクティブコマンドを受信する受信処理部と、
を備える、
ＩＣカード処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、携帯可能電子装置、ＩＣカード処理装置、及び、ＩＣカード処理システムに関する。
【背景技術】
【０００２】
ＩＣカードなどの携帯可能電子装置は、外部装置からのコマンドに応じて外部装置にプロアクティブコマンドを送信するものがある。ＩＣカードは、所定のバイト数（たとえば２５６バイト）以下のプロアクティブコマンドを送信する。従来、ＩＣカードは、所定のバイト数より大きいプロアクティブコマンドを送信することができないという課題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−０４１５５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するために、効果的にデータを送受信することができるＩＣカード、携帯可能電子装置、ＩＣカード処理装置、及び、ＩＣカード処理システムを提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、外部装置からのコマンドを実行するＩＣカードは、通信部と、生成部と、分割処理部と、送信処理部と、を備える。通信部は、前記外部装置とデータを送受信する。生成部は、プロアクティブコマンドを生成する。分割処理部は、前記生成部が生成した前記プロアクティブコマンドを前記ＩＣカードが一度に送信することができる最大データ長以下の分割プロアクティブコマンドに分割する。送信処理部は、前記通信部を通じて、前記分割処理部が分割した前記分割プロアクティブコマンドを前記外部装置へ送信する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係るＩＣカードとＩＣカード処理装置とを有するＩＣカード処理システムの構成例を示す図である。
【図２】図２は、実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】図３は、実施形態に係るＩＣカードが送信するプロアクティブコマンドの構成例を示す図である。
【図４】図４は、実施形態に係るＩＣカードが最初に送信する分割プロアクティブコマンドの構成例を示す図である。
【図５】図５は、実施形態に係るＩＣカードが２回目以降に送信する分割プロアクティブコマンドの構成例を示す図である。
【図６】図６は、実施形態に係るＩＣカード処理システムの動作例を示すシーケンシャル図である。
【図７】図７は、実施形態に係るＩＣカード処理装置の動作例を示すフローチャートである。
【図８】図８は、実施形態に係るＩＣカードの動作例を示すフローチャートである。
【図９】図９は、実施形態に係るＩＣカードの動作例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態について、図面を参照して説明する。  
図１は、実施形態に係る携帯可能電子装置としてのＩＣカード２と、ＩＣカード２と通信を行う外部装置としてのＩＣカード処理装置１とを備えるＩＣカード処理システム１０の構成例について説明するためのブロック図である。
【０００８】
図１が示す構成例において、ＩＣカード処理装置１（外部装置）は、基本的な構成として、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、カードリーダライタ１５、操作部１６、及び、ディスプレイ１７などを有する。これらの各部は、データバスを介して互いに接続されている。なお、ＩＣカード処理装置１は、図１が示すような構成の他に、必要に応じた構成を具備したり特定の構成を除外したりしてもよい。
【０００９】
ＣＰＵ１１は、ＩＣカード処理装置１全体の動作を制御する機能を有する。ＣＰＵ１１は、内部キャッシュおよび各種のインターフェースなどを備えても良い。ＣＰＵ１１は、内部メモリ、ＲＯＭ１２あるいはＮＶＭ１４に予め記憶したプログラムを実行することにより種々の処理を実現する。
【００１０】
ＣＰＵ１１は、カードリーダライタ１５によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信するレスポンスなどのデータを基に種々の処理を行う機能などを有する。たとえば、ＣＰＵ１１は、カードリーダライタ１５を介して、操作部１６などに入力されたデータ又は所定のデータなどを含む書き込みコマンドをＩＣカード２に送信することにより、ＩＣカード２に当該データの書き込み処理を要求する制御を行う。
【００１１】
なお、ＣＰＵ１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ１１は、ハードウエア回路により実行される機能を制御する。
【００１２】
ＲＯＭ１２は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ＲＯＭ１２に記憶される制御プログラム及び制御データは、予めＩＣカード処理装置１の仕様に応じて組み込まれる。ＲＯＭ１２は、たとえば、ＩＣカード処理装置１の回路基板を制御するプログラム（例えば、ＢＩＯＳ）などを格納している。
【００１３】
ＲＡＭ１３は、揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。ＲＡＭ１３は、ＣＰＵ１１からの命令に基づき種々のアプリケーションプログラムを格納している。また、ＲＡＭ１３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００１４】
ＮＶＭ１４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ１４は、例えば、ハードディスク、ＳＳＤ、ＥＥＰＲＯＭ（登録商標）又はフラッシュメモリなどにより構成される。ＮＶＭ１４は、ＩＣカード処理装置１の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【００１５】
カードリーダライタ１５（通信部）は、ＩＣカード２とデータを送受信するためのインターフェース装置である。カードリーダライタ１５は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１６】
また、ＩＣカード２が非接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御部などにより構成される。カードリーダライタ１５では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。
【００１７】
このような機能によってカードリーダライタ１５は、ＣＰＵ１１による制御に基づいてＩＣカード２に対する電源供給、ＩＣカード２の活性化（起動）、クロック供給、リセット制御、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１８】
操作部１６は、ＩＣカード処理装置１の操作者によって、種々の操作指示が入力される。操作部１６は、操作者に入力された操作指示のデータをＣＰＵ１１へ送信する。操作部１６は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
【００１９】
ディスプレイ１７は、ＣＰＵ１１の制御により種々の情報を表示する表示装置である。ディスプレイ１７は、たとえば、液晶モニタなどである。なお、ディスプレイ１７は、操作部１６と一体的に形成されてもよい。
【００２０】
次に、ＩＣカード２について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの上位装置から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。例えば、ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００２１】
また、ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。  
たとえば、ＩＣカード２は、ＵＳＡＴ（Ｕｎｉｖｅｒｓａｌ  Ｓｕｂｓｃｒｉｂｅｒ  ｉｄｅｎｔｉｔｙ  ｍｏｄｕｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｔｏｏｌｋｉｔ）をサポートする。たとえば、ＩＣカード２は、携帯端末などで利用されるＳＩＭ等である。
【００２２】
次に、ＩＣカード２の構成例について説明する。  
図２は、実施形態に係るＩＣカード２の構成例を概略的に示すブロック図である。  
ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵されている。モジュールＭは、１つまたは複数のＩＣチップＣａと通信部としての外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設されている。
【００２３】
図２に示す構成例において、ＩＣカード２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４、及び、通信部２５などを備えている。これらの各部は、データバスを介して互いに接続されている。また、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、およびＮＶＭ２４は、１つ又は複数のＩＣチップＣａにより構成され、通信部２５に接続された状態でモジュールＭを構成している。
【００２４】
ＣＰＵ２１は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２１は、ＲＯＭ２２あるいはＮＶＭ２４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、ＣＰＵ２１は、ＲＯＭ２２に記憶されているプログラムを実行することにより、ＩＣカード２の動作制御あるいはＩＣカード２の運用形態に応じた種々の処理を行う。
【００２５】
なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００２６】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００２７】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、計算用バッファ、受信用バッファ、送信用バッファ及びコマンドバッファとして機能する。計算用バッファは、ＣＰＵ２１が実行する種々の演算処理の結果などを一時的に保持する。受信用バッファは、通信部２５を介してＩＣカード処理装置１から受信するコマンドデータなどを保持する。送信用バッファは、通信部２５を介してＩＣカード処理装置１へ送信するメッセージ（レスポンスデータ）などを保持する。コマンドバッファは、プロアクティブコマンドなどを保持する。プロアクティブコマンドについては後術する。また、ＲＡＭ２３は、動作状態を示すフラグを記憶する。
【００２８】
ＮＶＭ２４は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。ＮＶＭ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、ＮＶＭ２４では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【００２９】
通信部２５は、ＩＣカード処理装置１とデータを送受信するためのインターフェースである。即ち、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５との通信を行うためのインターフェースである。非接触型のＩＣカードとしてのＩＣカード２においては、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【００３０】
ＩＣカード２が接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。
【００３１】
次に、ＩＣカード処理装置１のＣＰＵ１１が実現する機能について説明する。  
ＣＰＵ１１は、ＩＣカード２からプロアクティブコマンドを分割して受信すること（分割受信）をサポートすることをＩＣカード２に通知する機能を有する（送信処理部）。即ち、ＣＰＵ１１は、カードリーダライタ１５を通じて、分割受信をサポートすることをＩＣカードに通知する。
【００３２】
たとえば、ＣＰＵ１１は、ターミナルプロファイル（Ｔｅｒｍｉｎａｌ  Ｐｒｏｆｉｌｅ）に分割受信をサポートすることを示すフラグをセットして、ＩＣカード２に送信する。たとえば、ＣＰＵ１１は、ターミナルプロファイルの３２バイト以降に分割受信をサポートすることを示すフラグをセットして、ＩＣカード２に送信する。この場合、ターミナルプロファイルは、分割受信をサポートすることを示す。
【００３３】
また、ＣＰＵ１１は、プロアクティブコマンドを生成させる生成コマンドをＩＣカード２に送信する機能を有する。即ち、ＣＰＵ１１は、カードリーダライタ１５を通じて生成コマンドをＩＣカード２へ送信する。生成コマンドが生成させるプロアクティブコマンドは、特定の構成に限定されるものではない。
【００３４】
また、ＣＰＵ１１は、ＩＣカード２から分割されたプロアクティブコマンド（分割プロアクティブコマンド）を受信するために取出コマンドを送信する機能を有する（送信処理部）。即ち、ＣＰＵ１１は、カードリーダライタ１５を通じて、取出コマンドをＩＣカード２へ送信する。たとえば、ＣＰＵ１１は、取出コマンドとしてＦＥＴＣＨコマンドをＩＣカード２へ送信する。ここでは、ＣＰＵ１１は、ＦＥＴＣＨコマンドをＩＣカード２へ送信するものとする。
【００３５】
ＣＰＵ１１は、分割プロアクティブコマンドを受信するためにＦＥＴＣＨコマンドをＩＣカード２に送信する。ＣＰＵ１１は、要求レスポンス（たとえば、ＳＷ＝９１ＸＸ）を受信した場合に、最初の分割プロアクティブコマンドを受信するため最初のＦＥＴＣＨコマンドをＩＣカード２へ送信する。
【００３６】
また、ＣＰＵ１１は、後続する分割プロアクティブコマンド（ＩＣカード２が未送信である分割プロアクティブコマンド）がある場合に、さらにＦＥＴＣＨコマンドをＩＣカード２に送信する。たとえば、ＣＰＵ１１は、プロアクティブコマンドのレングス（Ｌｅｎｇｔｈ）が示すデータ長に基づいて、後続する分割プロアクティブコマンドがあると判定する。たとえば、ＣＰＵ１１は、最初に受信した分割プロアクティブコマンドのレングスからプロアクティブコマンドのデータ長を取得する。ＣＰＵ１１は、レングスが示すデータ長分のデータを受信していない場合に、後続する分割プロアクティブコマンドがあると判定する。なお、ＣＰＵ１１は、分割プロアクティブコマンドに設定されたフラグなどに基づいて後続する分割プロアクティブコマンドがあるか判定してもよい。
【００３７】
また、ＣＰＵ１１は、カードリーダライタ１５を通じて、分割プロアクティブコマンドをＩＣカード２から受信する機能を有する（受信処理部）。たとえば、ＣＰＵ１１は、ＦＥＴＣＨコマンドに対するレスポンスとして分割プロアクティブコマンドを受信する。
【００３８】
次に、ＩＣカード２のＣＰＵ２１が実現する機能について説明する。  
ＣＰＵ２１は、ＩＣカード処理装置１からの生成コマンドに応じてプロアクティブコマンドを生成する機能を有する（生成部）。プロアクティブコマンドは、ＣＰＵ２１がＩＣカード処理装置１へ送信するコマンドである。たとえば、プロアクティブコマンドは、ＩＣカード処理装置１に所定の動作を行わせる。
【００３９】
たとえば、プロアクティブコマンドは、ＥＴＳＩ  ＴＳ  １０２．２２３又はＥＴＳＩ  
ＴＳ  １０２．２４１に規定される。プロアクティブコマンドは、たとえば、ディスプレイに文字を表示させるディスプレイテキスト、音を再生させるプレイトーン、入力を受け付けさせるゲットイン、又は、選択を受け付させるメニューＩＤなどである。プロアクティブコマンドは、特定の構成に限定されるものではない。
【００４０】
次に、プロアクティブコマンドの構成例について説明する。  
図３は、プロアクティブコマンドの構成例を示す図である。  
図３が示すように、プロアクティブコマンドは、プロアクティブＵＩＣＣタグ（Ｐｒｏａｃｔｉｖｅ  ＵＩＣＣ  Ｔａｇ）、レングス（Ｌｅｎｇｔｈ）、コマンドディテール（Ｃｏｍａｎｄ  ｄａｔａｉｌｓ）、デバイスＩＤ（Ｄｅｖｉｄｅ  ＩＤ）、アルファＩＤ（Ａｌｐｈａ  ＩＤ）及びアイテムデータ（Ｉｔｅｍ  ｄａｔａ）などを備える。ここでは、プロアクティブコマンドの長さは、ＩＣカード２が一度に送信することができるデータ長（最大データ長）よりも長いものとする。
【００４１】
プロアクティブＵＩＣＣタグは、プロアクティブコマンドを分割して送信することを示すフラグを格納する。たとえば、「Ｅ０」は、プロアクティブコマンドを分割して送信することを示すフラグである。また、たとえば、「Ｄ０」は、プロアクティブコマンドを通常通り送信することを示すフラグである。
【００４２】
レングス（データ長情報）は、後続するデータのデータ長を示す。  
コマンドディテールは、ＳＥＴ  ＵＰ  ＭＥＮＵであることを示す。  
デバイスＩＤは、ソースデバイス及びデスティネーションデバイスを示す。  
アルファＩＤは、短縮ダイヤル番号などを含むデータである。  
アイテムデータは、プロアクティブコマンドを実行するために必要なデータである。たとえば、アイテムデータは、文字列などを示す。
【００４３】
プロアクティブコマンドは、適宜他の構成を備えてもよいし、不要な構成を備えなくともよい。プロアクティブコマンドの構成は、特定の構成に限定されるものではない。  
なお、ＣＰＵ２１は、生成コマンドに応じてプロアクティブＵＩＣＣタグ以外の要素を生成し、データ長に応じてプロアクティブＵＩＣＣタグを生成してもよい。また、ＣＰＵ２１は、生成コマンドに応じてプロアクティブコマンドを生成して、データ長に応じてプロアクティブＵＩＣＣタグを更新してもよい。
【００４４】
また、ＣＰＵ２１は、生成されたプロアクティブコマンドを最大データ長以下の分割プロアクティブコマンドに分割する機能を有する（分割処理部）。たとえば、ＣＰＵ２１は、生成されたプロアクティブコマンドが最大データ長（たとえば、２５６バイト）より大きい場合、プロアクティブコマンドを分割する。たとえば、ＣＰＵ２１は、プロアクティブコマンドを最大データ長に分割する。たとえば、ＣＰＵ２１は、２５６バイト（最大データ長）ずつにプロアクティブコマンドを分割する。
【００４５】
図４は、分割されたプロアクティブコマンド（分割プロアクティブコマンド）の例を示す。図４が示す分割プロアクティブコマンドは、先頭の分割プロアクティブコマンドの例である。即ち、図４が示す分割プロアクティブコマンドは、最初に送信される分割プロアクティブコマンドである。
【００４６】
図４が示すように、分割プロアクティブコマンドは、プロアクティブＵＩＣＣタグ（、レングス、コマンドディテール、デバイスＩＤ、アルファＩＤ及びアイテムデータなどを備える。
【００４７】
分割プロアクティブコマンドの長さは、最大データ長である。そのため、当該分割プロアクティブコマンドのアイテムデータは、プロアクティブコマンドのアイテムデータの一部である。
【００４８】
図５は、後続の分割プロアクティブコマンドの構成例を示す。即ち、図５が示す分割プロアクティブコマンドは、２回目以降に送信される分割プロアクティブコマンドである。  
図５が示すように、分割プロアクティブコマンドは、アイテムデータを備える。分割プロアクティブコマンドの長さは、最大データ長である。即ち、分割プロアクティブコマンドは、最大データ長分のアイテムデータである。
【００４９】
なお、ＣＰＵ２１は、２回目以降に送信される分割プロアクティブコマンドに、後続する分割プロアクティブコマンドがあることを示すフラグをセットしてもよい。この場合、たとえば、分割プロアクティブコマンドは、最大データ長からフラグのデータ長を引いた長さのアイテムデータを備えてもよい。
【００５０】
また、２回目以降に送信される分割プロアクティブコマンドは、タグ又はレングスの少なくとも一部を備えなくともよい。たとえば、２回目以降に送信される分割プロアクティブコマンドは、タグ及びアイテムデータを備えてもよい。この場合、タグは、後続する分割プロアクティブコマンドがあることを示すフラグを格納してもよい。また、２回目以降に送信される分割プロアクティブコマンドは、レングス及びアイテムデータを備えてもよい。また、２回目以降に送信される分割プロアクティブコマンドは、コマンドディテール、デバイスＩＤ又はアルファＩＤを備えなくともよい。また、２回目以降に送信される分割プロアクティブコマンドは、当該分割プロアクティブコマンドのデータ長のアイテムデータを備えてもよい。
【００５１】
また、ＣＰＵ２１は、通信部２５を通じて、取出コマンド（たとえば、ＦＥＴＣＨコマンド）を要求する要求レスポンスを送信する機能を有する（送信処理部）。たとえば、ＣＰＵ２１は、要求レスポンスとしてレスポンス（ＳＷ＝９１ＸＸ）を送信する。
【００５２】
また、ＣＰＵ２１は、通信部２５を通じて、順に分割プロアクティブコマンドをＩＣカード処理装置１へ送信する機能を有する（送信処理部）。たとえば、ＣＰＵ２１は、通信部２５を通じて取出コマンドを受信した場合に、通信部２５を通じて当該取出コマンドのレスポンスとして分割プロアクティブコマンドをＩＣカード処理装置１へ送信する。
【００５３】
次に、ＩＣカード処理システム１０の動作例について説明する。  
図６は、ＩＣカード処理システム１０の動作例を説明するためのシーケンス図である。  
ここでは、ＩＣカード処理装置１とＩＣカード２との通信が確立しているものとする。
【００５４】
まず、ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて、分割受信をサポートすることを示すフラグをセットしたターミナルプロファイルをＩＣカード２へ送信する（Ｓ１１）。
【００５５】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じてターミナルプロファイルを受信する。ターミナルプロファイルを受信すると、ＣＰＵ２１は、通信部２５を通じて、ターミナルプロファイルに対するレスポンスをＩＣカード処理装置１へ送信する（Ｓ１２）。
【００５６】
ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて当該レスポンスを受信する。当該レスポンスを受信すると、ＣＰＵ１１は、カードリーダライタ１５を通じて、プロアクティブコマンドを生成させる生成コマンドをＩＣカード２へ送信する（Ｓ１３）。
【００５７】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じて、生成コマンドを受信する。生成コマンドを受信すると、ＣＰＵ２１は、プロアクティブコマンドを生成する（Ｓ１４）。ここでは、プロアクティブコマンドの長さは、最大データ長よりも長いものとする。また、プロアクティブコマンドは、プロアクティブＵＩＣＣタグとして「Ｅ０」を格納するものとする。また、プロアクティブコマンドは、３つに分割されるものとする。即ち、プロアクティブコマンドの長さは、ＩＣカード処理装置１が３回取出コマンドをＩＣカード２に送信すればプロアクティブコマンドを取り出せる長さである。
【００５８】
プロアクティブコマンドを生成すると、ＣＰＵ２１は、通信部２５を通じて生成コマンドのレスポンスとしてレスポンス（ＳＷ＝９１ＸＸ）を送信する（Ｓ１５）。
【００５９】
ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じてレスポンス（ＳＷ＝９１ＸＸ）を受信する。レスポンス（ＳＷ＝９１ＸＸ）を受信すると、ＣＰＵ１１は、カードリーダライタ１５を通じてＦＥＴＣＨコマンドをＩＣカード２へ送信する（Ｓ１６）。
【００６０】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じてＦＥＴＣＨコマンドを受信する。ＦＥＴＣＨコマンドを受信すると、ＣＰＵ２１は、通信部２５を通じて最初の分割プロアクティブコマンドを送信する（Ｓ１７）。
【００６１】
ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて分割プロアクティブコマンドを受信する。分割プロアクティブコマンドを受信すると、ＣＰＵ１１は、カードリーダライタ１５を通じてＦＥＴＣＨコマンドをＩＣカード２へ送信する（Ｓ１８）。
【００６２】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じてＦＥＴＣＨコマンドを受信する。ＦＥＴＣＨコマンドを受信すると、ＣＰＵ２１は、通信部２５を通じて次の分割プロアクティブコマンドを送信する（Ｓ１９）。
【００６３】
ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて分割プロアクティブコマンドを受信する。分割プロアクティブコマンドを受信すると、ＣＰＵ１１は、カードリーダライタ１５を通じてＦＥＴＣＨコマンドをＩＣカード２へ送信する（Ｓ２０）。
【００６４】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じてＦＥＴＣＨコマンドを受信する。ＦＥＴＣＨコマンドを受信すると、ＣＰＵ２１は、通信部２５を通じて次の分割プロアクティブコマンドを送信する（Ｓ２１）。
【００６５】
ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて分割プロアクティブコマンドを受信する。分割プロアクティブコマンドを受信すると、ＣＰＵ１１は、カードリーダライタ１５を通じてターミナルレスポンスをＩＣカード２へ送信する（Ｓ２２）。
【００６６】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じてターミナルレスポンスを受信する。ターミナルレスポンスを受信すると、ＣＰＵ２１は、通信部２５を通じてターミナルレスポンスに対するレスポンスを送信する（Ｓ２２）。
【００６７】
ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じてターミナルレスポンスに対するレスポンスを受信する。ＣＰＵ１１が当該レスポンスを受信すると、ＩＣカード処理システム１０は、動作を終了する。  
なお、ＩＣカード処理装置１は、さらに他のコマンドをＩＣカード２へ送信してもよい。
【００６８】
次に、ＩＣカード処理装置１の動作例について説明する。  
図７は、ＩＣカード処理装置１の動作例について説明するためのフローチャートである。ここでは、ＩＣカード処理装置１とＩＣカード２との通信が確立し、ＩＣカード処理装置１は、ターミナルプロファイルを送信したものとする。
【００６９】
まず、ＩＣカード処理装置１のＣＰＵ１１は、カードリーダライタ１５を通じて生成コマンドをＩＣカード２へ送信する（Ｓ３１）。生成コマンドを送信すると、ＣＰＵ１１は、カードリーダライタ１５を通じてＩＣカード２からレスポンスを受信したか判定する（Ｓ３２）。
【００７０】
レスポンスを受信していないと判定すると（Ｓ３２、ＮＯ）、ＣＰＵ１１は、Ｓ３２へ戻る。レスポンスを受信したと判定すると（Ｓ３２、ＹＥＳ）、ＣＰＵ１１は、レスポンスのＳＷが９１ＸＸであるか判定する（Ｓ３３）。
【００７１】
レスポンスのＳＷが９１ＸＸであると判定すると（Ｓ３３、ＹＥＳ）、ＣＰＵ１１は、カードリーダライタ１５を通じてＦＥＴＣＨコマンドをＩＣカード２へ送信する（Ｓ３４）。ＦＥＴＣＨコマンドを送信すると、ＣＰＵ１１は、カードリーダライタ１５を通じてＩＣカード２から分割プロアクティブコマンドを受信したか判定する（Ｓ３５）。分割プロアクティブコマンドを受信していないと判定すると（Ｓ３５、ＮＯ）、ＣＰＵ１１は、Ｓ３５に戻る。
【００７２】
分割プロアクティブコマンドを受信したと判定すると（Ｓ３５、ＹＥＳ）、ＣＰＵ１１は、後続する分割プロアクティブコマンドがあるか判定する（Ｓ３６）。後続する分割プロアクティブコマンドがあると判定すると（Ｓ３６、ＹＥＳ）、ＣＰＵ１１は、Ｓ３４に戻る。
【００７３】
後続する分割プロアクティブコマンドがないと判定すると（Ｓ３７）、ＣＰＵ１１は、カードリーダライタ１５を通じて、受信された分割プロアクティブコマンドを結合したプロアクティブコマンドに対応するターミナルレスポンスをＩＣカード２に送信する（Ｓ３７）。ターミナルレスポンスに送信すると、ＣＰＵ１１は、カードリーダライタ１５を通じてレスポンスを受信したか判定する（Ｓ３８）。レスポンスを受信していないと判定すると（Ｓ３８、ＮＯ）、ＣＰＵ１１は、Ｓ３８に戻る。
【００７４】
レスポンスのＳＷが９１ＸＸでないと判定した場合（Ｓ３３、ＮＯ）、又は、レスポンスを受信したと判定した場合（Ｓ３８、ＹＥＳ）、ＣＰＵ１１は、動作を終了する。
【００７５】
次に、ＩＣカード２の動作例について説明する。  
図８及び図９は、ＩＣカード２の動作例について説明するためのフローチャートである。ここでは、ＩＣカード処理装置１とＩＣカード２との通信が確立しているものとする。また、ＩＣカード２は、ＩＣカード処理装置１からターミナルプロファイルを受信し、ターミナルプロファイルへのレスポンスを送信したものとする。
【００７６】
ＩＣカード２のＣＰＵ２１は、通信部２５を通じてＩＣカード処理装置１から生成コマンドを受信したか判定する（Ｓ４１）。生成コマンドを受信していないと判定すると（Ｓ４１、ＮＯ）、ＣＰＵ２１は、Ｓ４１へ戻る。
【００７７】
生成コマンドを受信したと判定すると（Ｓ４１、ＹＥＳ）、ＣＰＵ２１は、生成コマンドに従ってプロアクティブコマンドを生成する（Ｓ４２）。プロアクティブコマンドを生成すると、ＣＰＵ２１は、生成されたプロアクティブコマンドをＲＡＭ２３のコマンドバッファに格納する（Ｓ４３）。
【００７８】
プロアクティブコマンドをコマンドバッファに格納すると、ＣＰＵ２１は、プロアクティブコマンドの長さが最大データ長（たとえば、２５６バイト）以下であるか判定する（Ｓ４４）。
【００７９】
プロアクティブコマンドの長さが最大データ長以下でないと判定すると（Ｓ４４、ＮＯ）、ＣＰＵ２１は、ＩＣカード処理装置１が分割受信をサポートしているか判定する（Ｓ４５）。たとえば、ＣＰＵ２１は、ターミナルプロファイルを参照してＩＣカード処理装置１が分割受信をサポートしているか判定する。
【００８０】
ＩＣカード処理装置１が分割受信をサポートしていると判定すると（Ｓ４５、ＹＥＳ）、ＣＰＵ２１は、プロアクティブコマンドを分割して送信することを示すフラグをプロアクティブコマンドに設定する（Ｓ４６）。
【００８１】
フラグをプロアクティブコマンドに設定すると、ＣＰＵ２１は、通信部２５を通じて、ＦＥＴＣＨコマンドを要求する要求レスポンス（ＳＷ＝９１ＸＸ）をＩＣカード処理装置１へ送信する（Ｓ４７）。
【００８２】
要求レスポンスを送信すると、未送信のプロアクティブコマンドが最大データ長以下であるか判定する（Ｓ４８）。未送信のプロアクティブコマンドが最大データ長以下でないと判定すると（Ｓ４８、ＮＯ）、ＣＰＵ２１は、最大データ長分のプロアクティブコマンド（分割プロアクティブコマンド）を送信用バッファに格納する（Ｓ４９）。
【００８３】
分割プロアクティブコマンドを送信バッファに格納すると、ＣＰＵ２１は、コマンドバッファから当該分割プロアクティブコマンド分のデータを削除する（Ｓ５０）。なお、ＣＰＵ２１は、コマンドバッファ内において送信済みのデータを示すポインタを最大データ長分移動させてもよい。
【００８４】
当該分割プロアクティブコマンド分のデータを削除すると、ＣＰＵ２１は、通信部２５を通じてＦＥＴＣＨコマンドをＩＣカード処理装置１から受信したか判定する（Ｓ５１）。ＦＥＴＣＨコマンドを受信していないと判定すると（Ｓ５１、ＮＯ）、ＣＰＵ２１は、Ｓ５１に戻る。
【００８５】
ＦＥＴＣＨコマンドを受信したと判定すると（Ｓ５１、ＹＥＳ）、ＣＰＵ２１は、通信部２５を通じて送信用バッファのデータをＩＣカード処理装置１へ送信する（Ｓ５２）。送信用バッファのデータをＩＣカード処理装置１へ送信すると、ＣＰＵ２１は、未送信のデータ（コマンドバッファのデータ）が０バイトであるか判定する（Ｓ５３）。未送信のデータが０バイトでないと判定すると（Ｓ５３、ＮＯ）、ＣＰＵ２１は、Ｓ４８へ戻る。
【００８６】
未送信のプロアクティブコマンドが最大データ長以下であると判定すると（Ｓ４８、ＹＥＳ）、ＣＰＵ２１は、未送信のプロアクティブコマンド（最後の分割プロアクティブコマンド）を送信用バッファに格納する（Ｓ５４）。未送信のプロアクティブコマンドを送信用バッファに格納すると、ＣＰＵ２１は、Ｓ５１へ進む。
【００８７】
未送信のデータが０バイトであると判定すると（Ｓ５３、ＹＥＳ）、ＣＰＵ２１は、通信部２５を通じてＩＣカード処理装置１からターミナルレスポンスを受信したか判定する（Ｓ５５）。ターミナルレスポンスを受信していないと判定する（Ｓ５５、ＮＯ）、ＣＰＵ２１は、Ｓ５５へ戻る。
【００８８】
ターミナルレスポンスを受信したと判定する（Ｓ５５、ＹＥＳ）、ＣＰＵ２１は、通信部２５を通じてＩＣカード処理装置１へターミナルレスポンスに対するレスポンスを送信する（Ｓ５６）。
【００８９】
プロアクティブコマンドの長さが最大データ長以下であると判定すると（Ｓ４４、ＹＥＳ）、ＣＰＵ２１は、ＦＥＴＣＨコマンドを要求する要求レスポンス（ＳＷ＝９１ＸＸ）をＩＣカード処理装置１へ送信する（Ｓ５７）。ＦＥＴＣＨコマンドを要求する要求レスポンス（ＳＷ＝９１ＸＸ）をＩＣカード処理装置１へ送信すると、ＣＰＵ２１は、Ｓ５４に進む。
【００９０】
ＩＣカード処理装置１が分割受信をサポートしていないと判定すると（Ｓ４５、ＮＯ）、ＣＰＵ２１は、通信部２５を通じてＩＣカード処理装置１にエラーメッセージを送信する（Ｓ５８）。
【００９１】
ターミナルレスポンスに対するレスポンスを送信した場合（Ｓ５６）、又は、エラーメッセージを送信した場合（Ｓ５８）、ＣＰＵ２１は、動作を終了する。
【００９２】
なお、ＣＰＵ２１は、分割プロアクティブコマンドを送信用バッファに格納した後にレスポンス（ＳＷ＝９１ＸＸ）を送信してもよい。
【００９３】
以上のように構成されたＩＣカード処理システムは、最大データ長よりも長いプロアクティブコマンドを分割してＩＣカード２からＩＣカード処理装置へ送信することができる。その結果、ＩＣカードは、容量の大きなプロアクティブコマンドを複数回に分割してＩＣカード処理装置へ送信することができる。したがって、ＩＣカード処理システムは、効果的にデータを送受信することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９４】
１…ＩＣカード処理装置、２…ＩＣカード、１０…ＩＣカード処理システム、１１…ＣＰＵ、１４…ＮＶＭ、１５…カードリーダライタ、２１…ＣＰＵ、２４…ＮＶＭ、２５…通信部、Ｍ…モジュール、Ｃ…本体。
【図１】
2016206975.tif 000003
【図２】
2016206975.tif 000004
【図３】
2016206975.tif 000005
【図４】
2016206975.tif 000006
【図５】
2016206975.tif 000007
【図６】
2016206975.tif 000008
【図７】
2016206975.tif 000009
【図８】
2016206975.tif 000010
【図９】
2016206975.tif 000011