(57)【要約】 【課題】  効率の良いデータ通信が可能なＩＣカード、携帯可能電子装置、および、ＩＣカード処理装置を提供する。【解決手段】  実施形態によれば、ＩＣカードは、通信部と、記憶部と、制御部とを有する。通信部は、外部装置と通信する。記憶部は、前記通信部による前記外部装置との通信用の通信バッファが設定される。制御部は、前記外部装置から通信に用いるバッファサイズが指定された場合、前記通信バッファにおいて受信データを格納する受信バッファと送信データを格納する送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する。【選択図】図１
2018005561.tif 000002
【特許請求の範囲】
【請求項１】
外部装置と通信する通信部と、
前記通信部による前記外部装置との通信用の通信バッファが設定される記憶部と、
前記外部装置から通信に用いるバッファサイズが指定された場合、前記通信バッファにおいて受信データを格納する受信バッファと送信データを格納する送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する制御部と、
を有するＩＣカード。
【請求項２】
前記通信部は、接触式の通信を行うインターフェースを含み、
前記制御部は、前記外部装置との接触式通信の初期応答処理において前記外部装置が指定するバッファサイズに基づいて受信バッファと送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する、
請求項１に記載のＩＣカード。
【請求項３】
前記通信部は、非接触式の通信を行うインターフェースを含み、
前記制御部は、前記外部装置との非接触式通信のアンチコリジョン処理において前記外部装置が指定するバッファサイズに基づいて受信バッファと送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する、
請求項１又は２の何れか１項に記載のＩＣカード。
【請求項４】
前記制御部は、アプリケーションを実行する機能を有し、アプリケーションを実行中にバッファサイズの変更を要求するコマンドを受信した場合、当該コマンドで指定されたバッファサイズに基づいて受信バッファと送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する制御部と、
請求項１乃至３の何れか１項に記載のＩＣカード。
【請求項５】
前記制御部は、前記通信バッファにおける受信バッファと送信バッファとの配分を変更することにより受信バッファと送信バッファとを設定する、
請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項６】
前記制御部は、前記外部装置が指定するバッファサイズが最小受信バッファサイズよりも小さいサイズである場合、受信バッファを最小受信バッファサイズに設定し、前記外部装置が指定するバッファサイズが最小送信バッファサイズよりも小さいサイズである場合、送信バッファを最小送信バッファサイズに設定する、
請求項１乃至５の何れか１項に記載のＩＣカード。
【請求項７】
前記通信部と、前記記憶部と、前記制御部と、を有するモジュールと、
前記モジュールを有する本体と、を有する、
請求項１乃至６の何れか１項に記載のＩＣカード。
【請求項８】
外部装置と通信する通信部と、
前記通信部による前記外部装置との通信用の通信バッファが設定される記憶部と、
前記外部装置から通信に用いるバッファサイズが指定された場合、前記通信バッファにおいて受信データを格納する受信バッファと送信データを格納する送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する制御部と、
を有する携帯可能電子装置。
【請求項９】
ＩＣカードと通信する通信部と、
前記ＩＣカードが有する通信バッファにおける受信バッファ或は送信バッファのバッファサイズを指定するデータをＩＣカードへ送信し、前記ＩＣカードが設定した受信バッファサイズ及び送信バッファサイズを示す情報を受信し、受信した前記ＩＣカードにおける受信バッファサイズ及び送信バッファサイズに応じたデータ通信を行う制御部と、
を有するＩＣカード処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、携帯可能電子装置、および、ＩＣカード処理装置に関する。
【背景技術】
【０００２】
従来、ＩＣカードは、ワーキングメモリ上に設けた通信バッファを用いてＩＣカード処理装置とのデータ通信を行うが、通信バッファサイズを超えるサイズのデータの送受信を行う場合は、データを分割するなどの制御を行う必要がある。例えば、従来のＩＣカードは、セキュアメッセージング処理においてレスポンスＡＰＤＵ長が通信プロトコルのバッファサイズよりも長くなる場合、バッファサイズを超えないように制御するか、もしくは、バッファサイズを超えて応答するかは、個々のＩＣカードの実装に依存した動作となるため、ＩＣカード処理装置との通信における互換性に問題が生じることがある。また、ＩＣカードは、メモリのサイズが限られているため、バッファサイズを容易に拡張できないという問題もある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開ＷＯ２００５／０５７４００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するために、本発明は、効率の良いデータ通信が可能なＩＣカード、携帯可能電子装置、および、ＩＣカード処理装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、ＩＣカードは、通信部と、記憶部と、制御部とを有する。通信部は、外部装置と通信する。記憶部は、前記通信部による前記外部装置との通信用の通信バッファが設定される。制御部は、前記外部装置から通信に用いるバッファサイズが指定された場合、前記通信バッファにおいて受信データを格納する受信バッファと送信データを格納する送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係るＩＣカードの構成例を示す図である。
【図２】図２は、実施形態に係るＩＣカード処理装置の構成例を示す図である。
【図３】図３は、本実施形態に係るＩＣカード１のＲＡＭ１２におけるデータの構成例を示す図である。
【図４】図４は、実施形態に係るＩＣカードにおける不揮発性メモリが記憶する設定データの例を示す図である。
【図５】図５は、実施形態に係るＩＣカードが初期応答としてＩＣカード処理装置へ送信するデータの構成例を示す図である。
【図６】図６は、実施形態に係るＩＣカード処理装置がＩＣカードへ送信する要求データの構成例を示す図である。
【図７】図７は、実施形態に係るＩＣカード１からＩＣカード処理装置へ送信する応答データの例を示す図である。
【図８】図８は、実施形態に係るＩＣカード処理装置２がアンチコリジョン処理においてＩＣカード１へ送信する要求データの構成例を示す図である。
【図９】図９は、実施形態に係るＩＣカードからＩＣカード処理装置へ送信する応答データの例を示す図である。
【図１０】図１０は、実施形態に係るＩＣカード１に与えられるバッファサイズ変更コマンドの構成例を示す図である。
【図１１】図１１は、実施形態に係るＩＣカードがＩＣカード処理装置へ送信するバッファサイズ変更コマンドに対するレスポンスデータの構成例を示す図である。
【図１２】図１２は、実施形態に係るＩＣカードにおけるバッファサイズ変更処理の流れを説明するためのフローチャートである。
【図１３】図１３は、実施形態に係るＩＣカード処理システムにおけるデータ通信処理の流れを説明するための図である。
【発明を実施するための形態】
【０００７】
以下、実施形態について、図面を参照しつつ説明する。  
図１は、実施形態に係るＩＣカード１の構成例を概略的に示すブロック図である。  
実施形態に係るＩＣカード１は、ＩＣカード処理装置２と共にＩＣカード処理システムを構成する。ＩＣカード１は、ＩＣカード処理装置２から供給される電力により活性化する（動作可能な状態になる）携帯可能な電子機器である。ＩＣカード１は、スマートカードとも称される。ＩＣカード１は、大別すると、接触型のＩＣカード（接触式ＩＣカード）と非接触型のＩＣカード（非接触式ＩＣカード）とがある。例えば、接触式ＩＣカード１は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置２からの動作電源及び動作クロックの供給を受けて活性化する。非接触式ＩＣカード１は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置２からの電波を受信し、その電波から動作電源及び動作クロックを生成して活性化する。
【０００８】
図１に示すように、ＩＣカード１は、本体Ｃを有する。本体Ｃは、プラスチックなどによりカード状に形成される。ＩＣカード１は、本体Ｃ内にモジュールＭを有する。モジュールＭは、１つまたは複数のＩＣチップＣａと通信用の外部インターフェース（インターフェース）とが接続された状態で一体的に形成され、本体Ｃ内に埋設される。また、ＩＣカード１のモジュールＭは、図１に示すように、プロセッサ１１、ＲＡＭ１２、ＲＯＭ１３、不揮発性メモリ１４、通信制御部１５及びインターフェース１６などを有する。
【０００９】
プロセッサ１１は、種々の処理を実行する回路を含む。プロセッサ１１は、例えば、ＣＰＵ（Central Processing Unit）である。プロセッサ１１は、ＩＣカード１全体の制御を司る。プロセッサ１１は、ＲＯＭ１３あるいは不揮発性メモリ１４に記憶されているプログラムを実行することにより、種々の処理機能を実現する。ただし、後述するプロセッサ１１が実行する各種の機能のうちの一部又は全部は、ハードウエア回路により実現されるようにしても良い。
【００１０】
ＲＡＭ１２は、ワーキングメモリとして機能する揮発性のメモリである。また、ＲＡＭ１２は、プロセッサ１１が処理中のデータなどを一時保管するバッファとしても機能する。例えば、ＲＡＭ１２は、通信制御部１５及びインターフェース１６を介してＩＣカード処理装置２との間で送受信するデータを一時保管する通信バッファ（送受信バッファ）が設けられる。ＲＡＭ１２に設けられる通信バッファは、送信データを格納する送信バッファと受信データを格納する受信バッファとから構成される。また、ＲＡＭ１２には、通信バッファを定義するための各種の制御情報も格納される。
【００１１】
ＲＯＭ１３は、プログラムメモリとして機能する不揮発性のメモリである。ＲＯＭ１３は、予め制御用のプログラムおよび制御データなどが記憶される。ＲＯＭ１３は、製造段階で制御プログラムや制御データなどが記憶された状態でＩＣカード１内に組み込まれるものである。つまり、ＲＯＭ１３に記憶される制御プログラムや制御データは、予め当該ＩＣカード１の仕様に応じて組み込まれる。たとえば、ＲＯＭ１３には、ＩＣカード処理装置２から受信するコマンドに応じた処理をプロセッサ１１が実行するためのプログラムが記憶される。
【００１２】
不揮発性メモリ１４は、データの書き込み及び書換えが可能な不揮発性のメモリである。不揮発性メモリ１４は、例えば、ＥＥＰＲＯＭ（登録商標）（Electrically  Erasable  Programmable  Read  Only  Memory）あるいはフラッシュＲＯＭなどで構成する。不揮発性メモリ１４には、当該ＩＣカード１の運用用途に応じたプログラムや種々のデータが書込まれる。また、不揮発性メモリ１４は、一部または全部の領域が耐タンパー性を有し、セキュアにデータが格納できる。不揮発性メモリ１４には、プログラムファイルあるいはデータファイルなどが定義され、それらのファイルに制御プログラムや種々の設定データが書き込まれる。例えば、不揮発性メモリ１４は、各種の通信制御用の設定データ、ユーザデータ、あるいは、アプリケーションプログラムなどを記憶する。
【００１３】
通信制御部１５は、インターフェース１６に接続する。インターフェース１６は、外部装置に通信接続するためのインターフェースである。通信制御部１５及びインターフェース１６は、通信部を構成する。通信制御部１５及びインターフェース１６は、ＩＣカード処理装置２のインターフェースに対応した通信方式による通信機能を実現する。また、通信制御部１５及びインターフェース１６は、複数の通信方式（例えば、接触通信と非接触通信）をサポートするものとして構成しても良い。
【００１４】
当該ＩＣカード１が接触式ＩＣカードとして実現される場合、通信制御部１５及びインターフェース１６は、ＩＣカード処理装置２と接触して通信する通信部を構成する。この場合、インターフェース１６は、ＩＣカード処理装置２のコンタクト部と物理的かつ電気的に接触するコンタクト部により構成され、通信制御部１５は、コンタクト部を介した信号の送受信を制御する回路などにより構成される。
【００１５】
また、当該ＩＣカード１が非接触式ＩＣカードとして実現される場合、通信制御部１５及びインターフェース１６は、ＩＣカード処理装置２のカードリーダライタと非接触（無線）で通信する通信部を構成する。この場合、インターフェース１６は、電波の送受信を行うアンテナにより構成され、通信制御部１５は、送信する電波を生成するための変調回路及び受信した電波から信号を生成するための復調回路などにより構成される。
【００１６】
図２は、実施形態に係るＩＣカード処理システムの構成例を概略的に示すブロック図である。  
図２に示す構成例において、ＩＣカード処理システムのＩＣカード処理装置２は、カードリーダライタを介してＩＣカード１と通信する機能を有する上位装置である。ＩＣカード処理装置２は、例えば、カードリーダライタをＰＣなどの制御装置に接続した装置を想定する。
【００１７】
ＩＣカード処理装置２は、図２に示すように、制御部２１、表示部２２、操作部２３、カードリーダライタ２４などを有する。  
制御部２１は、ＩＣカード処理装置２全体の動作を制御する。制御部２１は、プロセッサ（ＣＰＵ）２５、ＲＡＭ２６、ＲＯＭ２７、不揮発性メモリ２８、通信部２９などにより構成される。例えば、制御部２１は、パーソナルコンピュータ（ＰＣ）により構成される。プロセッサ２５は、ＲＯＭ２７又は不揮発性メモリ２８が記憶するプログラムを実行することにより種々の処理を実行する。ＲＡＭ２６は、データを一時的に保持するワーキングメモリとして機能する。ＲＯＭ２７は、プログラムや制御データなどを記憶する不揮発性のメモリである。不揮発性メモリ２８は、書換え可能な不揮発性のメモリである。通信部２９は、外部装置と通信するためのインターフェースである。
【００１８】
制御部２１は、カードリーダライタ２４によりＩＣカード１へコマンドを送信する機能、ＩＣカード１から受信したデータを基に種々の処理を行う機能などを有する。たとえば、制御部２１は、カードリーダライタ２４を介してＩＣカード１にデータの書き込みコマンドを送信することによりＩＣカード１内の不揮発性メモリにデータを書き込む制御を行う。また、制御部２１は、ＩＣカード１に読み取りコマンドを送信することによりＩＣカード１からデータを読み出す制御を行う。また、制御部２１は、複数のアプリケーションを実行する機能を有する。
【００１９】
表示部２２は、制御部２１の制御により種々の情報を表示する表示装置である。操作部２３は、キーボード、テンキー、ポインティングデバイスなどにより構成する。操作部２３は、ＩＣカード処理装置２の操作員が種々の操作指示やデータなどを入力するためのものである。また、操作部２３は、ＩＣカード１の利用者の識別情報あるいはパスワードなどの認証情報を入力する為の入力部としても機能する。
【００２０】
カードリーダライタ２４は、ＩＣカード１との通信を行うためのインターフェース装置である。カードリーダライタ２４は、ＩＣカード１の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード１が接触型のＩＣカードである場合、カードリーダライタ２４は、ＩＣカード１のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。また、ＩＣカード１が非接触型のＩＣカードである場合、カードリーダライタ２４は、ＩＣカード１との無線通信を行うためのアンテナおよび通信制御などにより構成される。カードリーダライタ２４は、ＩＣカード１に対して、電源供給、クロック供給、リセット制御、データの送受信を行う。カードリーダライタ２４は、制御部２１による制御に基づいてＩＣカード１の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行う。
【００２１】
次に、本実施形態に係るＩＣカード１のＲＡＭ１２におけるデータの構成例について説明する。  
図３は、ＲＡＭ１２における各種のデータを格納するための記憶領域の構成例を示す図である。  
ＩＣカード１のＲＡＭ１２には、データ通信制御に用いる記憶領域として、各種の設定情報を記憶するための領域３１〜３５、および、送受信バッファ（通信バッファ）３６が設けられる。図３に示す構成例において、領域３１は、受信バッファと送信バッファとからなる通信バッファ（送受信バッファ）のサイズ（総バッファサイズ）を示す情報を格納する記憶領域である。領域３２は、受信バッファのサイズを示す情報を格納する記憶領域である。領域３３は、送信バッファのサイズを示す情報を格納する記憶領域である。領域３４は、ＲＡＭ１２のメモリ領域における受信バッファの先頭アドレスである受信バッファポインタを格納する記憶領域である。領域３５は、ＲＡＭ１２のメモリ領域における送信バッファの先頭アドレスである送信バッファポインタを格納する記憶領域である。
【００２２】
送受信バッファ３６は、ＲＡＭ１２のメモリ領域において送信バッファおよび受信バッファとして用いられる記憶領域である。図３に示す構成例において、送受信バッファは、送信バッファと受信バッファとが連続した記憶領域で構成される。送受信バッファにおいて、送信バッファサイズ（４０２）の領域が送信バッファとして確保され、受信バッファサイズ（４０３）の領域が受信バッファとして確保される。送受信バッファ全体のサイズ（総バッファサイズ）は、一旦設定されたサイズで固定される。送信バッファのサイズと受信バッファのサイズとは、総バッファサイズが設定された後であっても、送受信バッファ内において可変である。
【００２３】
次に、本実施形態に係るＩＣカード１の不揮発性メモリ１４におけるデータの構成例について説明する。  
図４は、ＩＣカード１の不揮発性メモリ１４における設定データの格納例を示す図である。  
図４に示す構成例において、不揮発性メモリ１４には、送信バッファ及び受信バッファに関する設定データを記憶する領域４１、４２が設けられる。領域４１は、最小受信バッファサイズを示す情報を格納する記憶領域である。最小受信バッファサイズは、受信バッファとして設定できる最小のサイズを示す設定値であり、受信バッファは、最小受信バッファサイズ以上の大きさに設定される。例えば、受信バッファのサイズを変更する場合に、受信バッファのサイズは、最小受信バッファサイズよりも小さな値に変更することは出来ないことを意味する。領域４２は、最小送信バッファサイズを示す情報を格納する記憶領域である。最小送信バッファサイズは、送信バッファとして設定できる最小のサイズを示す設定値であり、送信バッファは、最小受信バッファサイズ以上のサイズが確保される。例えば、送信バッファのサイズを変更する場合、送信バッファのサイズは、最小送信バッファサイズよりも小さな値に変更することは出来ないことを意味する。
【００２４】
次に、ＩＣカードとＩＣカード処理装置との通信制御としての初期応答あるいはアンチコリジョンにおける送信バッファおよび受信バッファの設定処理について説明する。  
まず、ＩＣカード１が接触式ＩＣカードである場合の初期応答の処理について概略的に説明する。  
図５は、接触式ＩＣカードとしてのＩＣカード１が初期応答（ＡＴＲ）としてＩＣカード処理装置２へ送信するデータの構成例を示す図である。  
図５に示すように、接触式ＩＣカード１は、初期応答において、初期応答データと総バッファサイズとを有する応答データをＩＣカード処理装置２へ送信する。総バッファサイズは、ＩＣカード１がＲＡＭ１２上に設けた送受信バッファの大きさを示す情報である。送受信バッファは、ＩＣカード１の初期設定においてＲＡＭ１２上に固定のサイズで設定されるため、総バッファサイズは、一連の通信処理において固定の値となる。
【００２５】
図６は、ＩＣカード処理装置２からの接触式ＩＣカード１への要求（ＰＰＳ）の構成例を示す図である。  
接触式ＩＣカード１からの初期応答を受信した後、ＩＣカード処理装置２は、初期応答の送信元である接触式ＩＣカード１に対してプロトコルパラメータ選択処理を要求する。図６に示す構成例では、ＩＣカード処理装置２は、プロトコルパラメータ選択処理データ６１とＩＣカードの受信バッファサイズ６２とを含む要求データをＩＣカード１へ送信する。プロトコルパラメータ選択処理データ６１は、ＩＣカード１に対して要求するプロトコルパラメータ選択処理を示すものである。受信バッファサイズ６２は、ＩＣカード１に対して要求（指定）する受信バッファのサイズを示すものである。  
例えば、ＩＣカード処理装置２は、接触式ＩＣカード１から受信した初期応答における総バッファサイズおよび送信するデータのサイズなどに基づいて、ＩＣカード１に対して要求する受信バッファのサイズを決定し、ＩＣカードに対する要求データにおける受信バッファサイズ６２としてＩＣカード１へ送信する。
【００２６】
図７は、ＩＣカード処理装置２からの要求に対する接触式ＩＣカード１からの応答（ＰＰＳ）の例を示す図である。  
接触式ＩＣカード１は、ＩＣカード処理装置２から受信バッファサイズの指定を受けた場合、送受信バッファ内における受信バッファと送信バッファとを設定し、設定結果を示す応答データをＩＣカード処理装置２へ送信する。図７では、接触式ＩＣカード１からＩＣカード処理装置２への応答（ＰＰＳ）として、プロトコルパラメータ選択処理データ７１とＩＣカードの受信バッファサイズ７２とＩＣカードの送信バッファサイズ７３とを含む応答データの構成例を示している。
【００２７】
プロトコルパラメータ選択処理データ７１は、ＩＣカード処理装置２から要求されたプロトコルパラメータ選択処理の実行結果を示すものである。受信バッファサイズ７２は、ＩＣカード１が送受信バッファ３６内に設定した受信バッファのサイズを示すものである。送信バッファサイズ７３は、ＩＣカード１が送受信バッファ３６内に設定した送信バッファのサイズを示すものである。
【００２８】
例えば、ＩＣカード１は、総バッファサイズ、最小受信バッファサイズ及び最小送信バッファサイズを考慮しつつ、ＩＣカード処理装置２から要求された受信バッファサイズに基づいて、送受信バッファ３６内に受信バッファと送信バッファとを設定する。ＩＣカード１における受信バッファ及び送信バッファの設定処理については、後で詳細に説明するものとする。受信バッファ及び送信バッファを設定すると、ＩＣカード１は、設定した受信バッファのサイズと送信バッファのサイズとをセットした応答データをＩＣカード処理装置２へ送信する。
【００２９】
次に、ＩＣカード１が非接触式ＩＣカードである場合のアンチコリジョンの処理について概略的に説明する。  
図８は、アンチコリジョン処理において、ＩＣカード処理装置２が非接触式ＩＣカードとしてのＩＣカード１へ要求するデータ（ＲＡＴＳ、ＡＴＴＲＩＢ）の構成例を示す図である。  
本実施形態では、ＩＣカード処理装置２は、非接触式ＩＣカード１とのアンチコリジョン処理において、ＩＣカード１に対して受信バッファサイズを指定する。図８に示す構成例では、ＩＣカード処理装置２は、アンチコリジョン処理のＲＡＴＳ又はＡＴＴＲＩＢにおいてアンチコリジョン処理データ８１とＩＣカードの受信バッファサイズ８２とを含むデータをＩＣカード１へ送信する。アンチコリジョン処理データ７１は、ＩＣカード１に対して要求するアンチコリジョンの処理を示すものである。受信バッファサイズ８２は、ＩＣカード１に対して要求する受信バッファのサイズを示すものである。
【００３０】
図９は、ＩＣカード処理装置２から要求に対する非接触式ＩＣカード１からの応答（ＡＴＳ、Ａｎｓｗｅｒ ｔｏ ＡＴＴＲＩＢ）の例を示す図である。  
非接触式ＩＣカード１は、ＩＣカード処理装置２から受信バッファサイズの指定を受けた場合、送受信バッファ内における受信バッファ及び送信バッファの設定処理を行い、設定結果を示す応答をＩＣカード処理装置２へ送信する。図９では、ＩＣカード１がＩＣカード処理装置２へ送信するアンチコリジョン処理における応答データ（ＡＴＳ、Ａｎｓｗｅｒ ｔｏ ＡＴＴＲＩＢ）として、アンチコリジョン処理データ９１とＩＣカードの受信バッファサイズ９２とＩＣカードの送信バッファサイズ９３とを含むデータの構成例を示している。
【００３１】
アンチコリジョン処理データ９１は、ＩＣカード処理装置２から要求されたアンチコリジョン処理の実行結果を示すものである。受信バッファサイズ９２は、ＩＣカード１が送受信バッファ３６内に設定した受信バッファのサイズを示すものである。送信バッファサイズ９３は、ＩＣカード１が送受信バッファ３６内に設定した送信バッファのサイズを示すものである。
【００３２】
例えば、ＩＣカード１は、総バッファサイズ、最小受信バッファサイズ及び最小送信バッファサイズを考慮しつつ、ＩＣカード処理装置２から要求された受信バッファサイズに基づいて、送受信バッファ３６内に受信バッファと送信バッファとを設定する。ＩＣカード１における受信バッファ及び送信バッファの設定処理については、後で詳細に説明するものとする。受信バッファ及び送信バッファを設定すると、ＩＣカード１は、設定した受信バッファのサイズと送信バッファのサイズとをセットした応答データをＩＣカード処理装置２へ送信する。
【００３３】
次に、実施形態に係るＩＣカード１に与えられるバッファサイズ変更コマンドの構成例について説明する。  
図１０は、バッファサイズ変更コマンドの構成例を示す図である。  
図１０に示すコマンドは、ＩＣカード１の処理に用いられる一般的な規格（例えば、ＩＳＯ／ＩＥＣ  ７８１６）で規定されたコマンドのフォーマットに準じた構成を有するものである。図１０に示す例において、バッファサイズ変更コマンドは、ＣＬＡ１０１、ＩＮＳ１０２、Ｐ１（１０３）、Ｐ２（１０４）、Ｌｃ１０５、データ部１０６、およびＬｅ１０７を並べたフォーマットにより構成される。
【００３４】
ＣＬＡ１０１およびＩＮＳ１０２は、コマンドを示す情報（例えば、コマンドコード）である。コマンドを示す情報は、実行すべき処理内容を示すものであり、予め規格などにより決められる情報である。本実施形態において、バッファサイズ変更コマンドは、ＣＬＡ１０１およびＩＮＳ１０２が、バッファサイズの変更を要求するコマンドであることを示す情報となる。すなわち、ＩＣカード処理装置２は、ＩＣカード１に対して受信バッファサイズの変更を要求する場合、バッファサイズ変更コマンドを示す情報をＣＬＡおよびＩＮＳにセットしたコマンドを生成する。
【００３５】
Ｐ１（１０３）及びＰ２（１０４）は、当該コマンドのパラメータである。例えば、Ｐ１及びＰ２には、応答（レスポンス）に対するセキュリティ設定を示す情報がセットされる。Ｌｃ１０５は、当該コマンドにおけるデータの長さを示す情報である。データ部１０６は、コマンドにおけるデータを格納する。図１０に示すバッファサイズ変更コマンドにおいて、データ部１０６は、ＩＣカード１に対して要求（指定）する受信バッファのサイズを示すデータとなる。Ｌｅ１０７は、当該コマンドに対するレスポンスのデータの長さを示す情報を格納する。
【００３６】
図１１は、ＩＣカード１がバッファサイズ変更コマンドに対するレスポンス（応答）としてＩＣカード処理装置２へ送信するレスポンスデータの構成例を示す図である。  
図１１に示すように、バッファサイズ変更コマンドに対するレスポンスデータは、第１データ部１１１、第２データ部１１２、ＳＷ１（１１３）及びＳＷ２（１１４）を有する。ＳＷ１（１１３）及びＳＷ２（１１４）は、コマンドに対する処理結果を示す情報（ステータスワード）である。例えば、ＳＷ１（１１３）及びＳＷ２（１１４）は、コマンドを正常に処理した事を示す情報、或いは、コマンドの処理がエラーとなった事を示す情報などとなる。
【００３７】
第１データ部１１１及び第２データ部１１２は、コマンドに対する処理結果として得られたデータを格納するデータ部である。図１０に示す構成例では、バッファサイズ変更コマンドに対するレスポンスデータのデータ部が、受信バッファサイズを示すデータである第１データ部１１１と送信バッファサイズを示すデータである第２データ部１１２とを含むことを示している。
【００３８】
次に、実施形態に係るＩＣカード１におけるバッファサイズの変更処理について説明する。  
図１２は、ＩＣカード１におけるバッファサイズ変更処理の流れを説明するためのフローチャートである。  
ＩＣカード１は、ＩＣカード処理装置１からのバッファサイズの指定を受け付ける。たとえば、ＩＣカード１は、接触式ＩＣカードであれば、初期応答処理におけるＩＣカード処理装置２からの要求（例えば、図６参照）によりバッファサイズの指定を受け付ける。また、ＩＣカード１は、非接触式ＩＣカードであれば、アンリコリジョン処理におけるＩＣカード処理装置２からの要求（例えば、図８参照）によりバッファサイズの指定を受け付ける。また、ＩＣカード１は、アプリケーションを実行中において、バッファサイズ変更コマンド（例えば、図１０参照）によりＩＣカード処理装置２からのバッファサイズ（受信バッファサイズ）の指定を受け付ける。
【００３９】
ＩＣカード処理装置２からのバッファサイズの指定を受信すると（Ｓ１１、ＹＥＳ）、ＩＣカード１のプロセッサ１１は、指定された受信バッファのサイズ（指定受信バッファサイズと称する）が最小受信バッファサイズよりも大きいかを判定する（Ｓ１２）。指定受信バッファサイズが最小受信バッファサイズ以下であると判定した場合（Ｓ１２、ＮＯ）、プロセッサ１１は、ＲＡＭ１２における送受信バッファ３６内の受信バッファサイズを最小受信バッファサイズに決定する（Ｓ１３）。
【００４０】
また、指定受信バッファサイズが最小受信バッファよりも大きいと判定した場合（Ｓ１２、ＹＥＳ）、プロセッサ１１は、総バッファサイズから指定受信バッファサイズを減算したサイズが最小送信バッファサイズよりも大きいかを判定する（Ｓ１４）。本実施形態に係るＩＣカード１では、送受信バッファ（通信バッファ）３６を、受信バッファと送信バッファとで分ける。このため、総バッファサイズから指定受信バッファサイズを減算したサイズが最小送信バッファサイズ以下であれば、送信バッファサイズは、最小送信バッファサイズに設定する必要がある。  
すなわち、総バッファサイズから指定受信バッファサイズを減算したサイズが最小受信バッファサイズ以下であると判定した場合（Ｓ１４、ＮＯ）、プロセッサ１１は、ＲＡＭ１２における送受信バッファ３６内の受信バッファサイズを、総バッファサイズから最小送信バッファサイズを減算したサイズに決定する（Ｓ１５）。
【００４１】
また、総バッファサイズから指定受信バッファサイズを減算したサイズが最小送信バッファサイズよりも大きいと判定した場合（Ｓ１４、ＹＥＳ）、プロセッサ１１は、ＲＡＭ１２における送受信バッファ３６内の受信バッファサイズを、指定受信バッファサイズに決定する（Ｓ１６）。  
受信バッファサイズが決定すると（Ｓ１３、Ｓ１５又はＳ１６）、プロセッサ１１は、総バッファサイズから決定した受信バッファサイズを減算したサイズを送信バッファサイズに決定する（Ｓ１７）。
【００４２】
指定受信バッファサイズに基づく受信バッファサイズおよび送信バッファサイズが決定すると、プロセッサ１１は、ＲＡＭ１２が記憶する各種の設定情報を更新する。すなわち、プロセッサ１１は、ＲＡＭ１２の領域３１に記憶する受信バッファサイズを決定した受信バッファサイズに更新する（Ｓ１８）。また、プロセッサ１１は、ＲＡＭ１２の領域３２に記憶する送信バッファサイズを決定した送信バッファサイズに更新する（Ｓ１９）。また、プロセッサ１１は、更新した受信バッファサイズに応じて受信バッファのＲＡＭ１２における位置を示す情報を更新する（Ｓ２０）。また、プロセッサ１１は、更新した送信バッファサイズに応じて送信バッファのＲＡＭ１２における位置を示す情報を更新する（Ｓ２１）。
【００４３】
ＲＡＭ１２に記憶する各種の設定情報を更新すると、プロセッサ１１は、受信バッファサイズおよび送信受信バッファサイズとを示す応答データを作成してＩＣカード処理装置２へ送信する（Ｓ２２）。例えば、ＩＣカード１は、接触式ＩＣカードあれば、初期応答処理におけるＩＣカード処理装置２からの要求に対する図７に示すような応答データにより、受信バッファサイズと送信バッファサイズとをＩＣカード処理装置２へ送信する。また、ＩＣカード１は、非接触式ＩＣカードあれば、アンリコリジョン処理におけるＩＣカード処理装置２からの要求に対する図９に示すような応答データによって受信バッファサイズと送信バッファサイズとをＩＣカード処理装置２へ送信する。また、ＩＣカード１は、アプリケーションを実行中におけるバッファサイズ変更コマンドに対しては図１１に示すようなレスポンスデータによって受信バッファサイズと送信バッファサイズとをＩＣカード処理装置２へ送信する。
【００４４】
次に、実施形態に係るＩＣカード処理システムにおけるＩＣカード１でのバッファサイズ設定（変更）処理を含むデータ通信処理について説明する。  
本実施形態に係るＩＣカード１は、アプリケーションを実行中において、ＩＣカード処理装置２からのバッファサイズ変更コマンドに応じたバッファサイズの設定（変更）処理を行う。すなわち、ＩＣカード１のプロセッサ１１は、アプリケーション層においてＩＣカード処理装置２との間でバッファサイズのネゴシエーションを行う機能を有する。これに対して、ＩＣカード処理装置２の制御部２１は、ＩＣカード１の送信バッファサイズ及び受信バッファサイズに応じたデータ通信を制御する機能と、アプリケーションの実行中に発生する送受信データのサイズに応じてＩＣカード１に対してバッファサイズの変更を要求する機能（バッファサイズのネゴシエーションを行う機能）とを有する。
【００４５】
図１３は、ＩＣカード処理システムにおけるバッファサイズ設定（変更）処理を含むデータ通信処理の流れを説明するための図である。  
ＩＣカード処理装置２では、例えば、初期応答処理又はアンリコリジョン処理において、ＩＣカードが設定した受信バッファサイズと送信バッファサイズとを示す情報をＲＡＭ２６又は不揮発性メモリ２８に記憶する。
【００４６】
ＩＣカード処理装置２の制御部２１は、ＩＣカードを取り扱うアプリケーションによる処理を実行中において送信データ又は受信データが発生すると（Ｓ３１、ＹＥＳ）、ＩＣカードの受信バッファサイズ及び送信バッファサイズを変更すべきか否かを判定する（Ｓ３２）。ＩＣカードの受信バッファサイズ及び送信バッファサイズを変更しないと判定した場合（Ｓ３２、ＮＯ）、制御部２１は、現在のＩＣカードの受信バッファサイズ及び送信バッファサイズに応じたデータ通信を実行する（Ｓ３６）。
【００４７】
また、ＩＣカードの受信バッファサイズ及び送信バッファサイズを変更すると判定した場合（Ｓ３２、ＹＥＳ）、制御部２１は、送信データ又は受信データのサイズに応じてＩＣカード１に対して要求する受信バッファサイズ（又は送信バッファサイズ）を決定する。ＩＣカードに対して要求する受信バッファサイズが決定すると、制御部２１は、決定した受信バッファサイズを指定するバッファサイズ変更コマンドを生成する。バッファサイズ変更コマンドを生成すると、制御部２１は、生成したバッファ変更コマンドをＩＣカード１へ送信する（Ｓ３３）。
【００４８】
ＩＣカード処理装置２がバッファ変更コマンドを送信すると、ＩＣカード１のプロセッサ１１は、インターフェース１６及び通信制御部１５を介して当該バッファサイズ変更コマンドを受信する（Ｓ４１）。バッファサイズ変更コマンドを受信すると、プロセッサ１１は、図１１に示すようなバッファサイズ設定処理によってバッファサイズ変更コマンドに応じた受信バッファ及び送信バッファを設定する（Ｓ４２）。受信バッファ及び送信バッファを設定すると、プロセッサ１１は、設定した受信バッファサイズ及び送信バッファサイズを示す応答データをＩＣカード処理装置２へ送信する（Ｓ４３）。
【００４９】
ＩＣカード１が応答データを送信すると、ＩＣカード処理装置２の制御部２１は、カードリーダライタ２４を介して応答データを受信する（Ｓ３４）。ＩＣカード１からの応答データを受信すると、制御部２１は、ＩＣカード１に設定された受信バッファサイズ及び送信バッファサイズを示す情報を更新する（Ｓ３４）。また、ＩＣカード１からの応答データを受信した場合、制御部２１は、ＩＣカード１において設定された受信バッファサイズ及び送信バッファサイズが許容範囲であるか否かを判定する（Ｓ３５）。ＩＣカード１が設定した受信バッファサイズ及び送信バッファサイズが許容範囲でなければ、制御部２１は、上記Ｓ３３へ戻り、再度バッファサイズ変更コマンドを生成してＩＣカード１へ送信する。
【００５０】
ＩＣカード１が設定した受信バッファサイズ及び送信バッファサイズが許容範囲であると判定した場合（Ｓ３５、ＹＥＳ）、制御部２１は、ネゴシエーションが成立したものとして、ＩＣカード１で設定された受信バッファサイズ及び送信バッファサイズを考慮してデータ通信処理を行う（Ｓ３６）。このようなデータ通信処理に対して、ＩＣカード１は、設定した受信バッファおよび送信バッファを用いたデータ通信処理（コマンド処理）を実行する（Ｓ４４）。
【００５１】
上記のような処理によれば、ＩＣカードがアプリケーションを実行中に、ＩＣカード処理装置２が送受信するデータのサイズに応じてＩＣカードの受信バッファサイズおよび送信バッファサイズを変更できる。すなわち、ＩＣカード１では、アプリケーション層において、ＩＣカード処理装置２からのバッファサイズ変更コマンドに応じてバッファサイズを変更できる。
【００５２】
上述の処理の具体例として、書込みコマンドなどでＩＣカード処理装置２がＩＣカード１へ大きなサイズのデータを送信したい場合について説明する。  
ＩＣカード処理装置２は、書込みコマンドなどでＩＣカード処理装置２がＩＣカード１へ大きなサイズのデータを送信したい場合、ＩＣカード１の受信バッファサイズを大きくすることをＩＣカードに要求する。すなわち、ＩＣカード処理装置２は、送信するデータのサイズに応じた大きなサイズの受信バッファサイズを指定したバッファサイズ変更コマンドを作成する。この場合、ＩＣカード処理装置２は、バッファサイズ変更コマンドにおいて、受信バッファサイズを最大とすることを指定するようにしても良いし、設定可能な最大値を設定してＩＣカード側に最大の受信バッファサイズを設定させるようにしても良い。
【００５３】
ＩＣカード１は、ＩＣカード処理装置２からのバッファサイズ変更コマンドにおいて指示された受信バッファサイズに基づいて大きなサイズの受信バッファを設定する。例えば、バッファサイズ変更コマンドにおいて指定された受信バッファサイズが最小送信バッファを確保である範囲のサイズであれば、ＩＣカード１のプロセッサ１１は、指定されたサイズの受信バッファを設定する。また、バッファサイズ変更コマンドにおいて設定可能な最大の受信バッファサイズを超えるサイズが指定された場合、又は、受信バッファサイズを最大とすることが指定された場合、ＩＣカード１のプロセッサ１１は、送受信バッファ３６において、最小送信バッファを確保して受信バッファサイズを最大サイズに設定する。
【００５４】
ＩＣカード１は、バッファサイズ変更コマンドに対する応答として受信バッファサイズおよび送信バッファサイズをＩＣカード処理装置２へ通知する。ＩＣカード処理装置２は、ＩＣカード１から通知された受信バッファサイズおよび送信バッファサイズが許容できるものであれば、ネゴシエーションが成立したものとしてデータ通信を開始する。これにより、ＩＣカードの受信バッファサイズが大きくなるため、ＩＣカード処理装置２は、大きいサイズに設定（変更）された受信バッファに入るような大きなサイズのデータを一度の送信処理でＩＣカード１への送信できるようになる。
【００５５】
また、別の具体例として、読取りコマンドなどでＩＣカード処理装置２がＩＣカード１から大きなサイズのデータを受信したい場合（ＩＣカードから大きなサイズのデータを送信したい場合）について説明する。  
ＩＣカード処理装置２は、読取りコマンドなどでＩＣカードから大きなサイズのデータを受信したい場合、ＩＣカードの受信バッファサイズを小さくすること（つまり、ＩＣカード１の送信バッファサイズを大きくすること）をＩＣカードに要求する。すなわち、ＩＣカード処理装置２は、受信するデータのサイズに応じた大きなサイズの送信バッファサイズとなるように、小さなサイズの受信バッファサイズを指定したバッファサイズ変更コマンドを作成する。この場合、ＩＣカード処理装置２は、バッファサイズ変更コマンドにおいて、受信バッファサイズを最小とすることを指定するようにしても良いし、設定可能な最小値を設定してＩＣカード側に最小の受信バッファサイズを設定させるようにしても良い。
【００５６】
ＩＣカード１は、ＩＣカード処理装置２からのバッファサイズ変更コマンドで指示された受信バッファサイズに基づいて小さなサイズの受信バッファを設定し、大きなサイズの送信バッファを設定する。例えば、バッファサイズ変更コマンドで指定された受信バッファサイズが最小受信バッファよりも大きいサイズであれば、ＩＣカード１のプロセッサ１１は、指定されたサイズの受信バッファを設定する。また、バッファサイズ変更コマンドにおいて最小の受信バッファサイズ以下の受信バッファサイズが指定された場合、又は、受信バッファサイズを最小とすることが指定された場合、ＩＣカード１のプロセッサ１１は、送受信バッファ３６において、受信バッファサイズを最小受信バッファサイズとし、送信バッファサイズを最大のサイズに設定する。
【００５７】
ＩＣカード１は、バッファサイズ変更コマンドに対する応答として受信バッファサイズおよび送信バッファサイズをＩＣカード処理装置２へ通知する。ＩＣカード処理装置２は、ＩＣカード１から通知された受信バッファサイズおよび送信バッファサイズが許容できるものであれば、ネゴシエーションが成立したものとしてデータ通信を開始する。これにより送信バッファサイズが大きくなるため、ＩＣカード処理装置２は、一度の受信処理においてＩＣカード１から大きいサイズのデータを受信することが可能となる。
【００５８】
上述した実施形態によれば、ＩＣカードは、ＩＣカード処理装置からＩＣカード内の受信バッファサイズ又は送信バッファサイズの指定を受け付け、ＩＣカード処理装置から指定された受信バッファサイズ又は送信バッファサイズに基づいて前記通信バッファにおける受信バッファサイズと送信バッファサイズとを設定し、設定した受信バッファサイズと送信バッファサイズとをＩＣカード処理装置へ応答するようにしたものである。
【００５９】
これにより、ＩＣカードは、ＩＣカード処理装置から指定されるバッファサイズに基づいて、受信バッファサイズと送信バッファサイズとを最適化できる。また、ＩＣカード内の通信バッファが固定のサイズであっても、ＩＣカード処理装置から指定されるバッファサイズに基づいて受信バッファサイズと送信バッファサイズとを可変でき、メモリ領域の有効活用に寄与できる。
【００６０】
また、実施形態に係るＩＣカードは、接触式ＩＣカードであれば、ＩＣカード処理装置との初期応答の処理においてＩＣカード処理装置が指定するバッファサイズに基づく受信バッファサイズ及び送信バッファサイズの設定が可能となる。また、実施形態に係るＩＣカードは、接触式ＩＣカードであれば、ＩＣカード処理装置とのアンチコリジョン処理において前記外部装置が指定するバッファサイズに基づく受信バッファサイズ及び送信バッファサイズの設定が可能となる。
【００６１】
さらに、実施形態に係るＩＣカードは、アプリケーションを実行中にバッファサイズの変更を要求するバッファサイズ変更コマンドを受信した場合、当該バッファサイズ変更コマンドで指定されたバッファサイズに基づいて受信バッファサイズ及び送信バッファサイズを再設定（変更）する。これにより、本実施形態によれば、ＩＣカードは、アプリケーション層でもバッファサイズを変更できる。この結果として、アプリケーション処理中に送受信するデータのサイズなどに応じて受信バッファサイズ及び送信バッファサイズを再設定でき、アプリケーション処理の最適化が実現できる。
【００６２】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【００６３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６４】
１…ＩＣカード（携帯可能電子装置）、Ｃ…本体、Ｍ…モジュール、２…ＩＣカード処理装置（外部装置）、１１…プロセッサ（制御部）、１２…ＲＡＭ、１３…ＲＯＭ、１４…不揮発性メモリ、１５…通信制御部（通信部）、１６…インターフェース、２１…制御部（制御部）、２４…カードリーダライタ（通信部）、３６…送受信バッファ（通信バッファ）。
【図１】
2018005561.tif 000003
【図２】
2018005561.tif 000004
【図３】
2018005561.tif 000005
【図４】
2018005561.tif 000006
【図５】
2018005561.tif 000007
【図６】
2018005561.tif 000008
【図７】
2018005561.tif 000009
【図８】
2018005561.tif 000010
【図９】
2018005561.tif 000011
【図１０】
2018005561.tif 000012
【図１１】
2018005561.tif 000013
【図１２】
2018005561.tif 000014
【図１３】
2018005561.tif 000015