(58)【調査した分野】(Int.Cl.,DB名)
前記制御部は、アプリケーションを実行する機能を有し、アプリケーションを実行中にバッファサイズの変更を要求するコマンドを受信した場合、当該コマンドで指定されたバッファサイズに基づいて受信バッファと送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する制御部と、
請求項1乃至3の何れか1項に記載のICカード。
前記制御部は、前記外部装置が指定するバッファサイズが最小受信バッファサイズよりも小さいサイズである場合、受信バッファを最小受信バッファサイズに設定し、前記外部装置が指定するバッファサイズが最小送信バッファサイズよりも小さいサイズである場合、送信バッファを最小送信バッファサイズに設定する、
請求項1乃至5の何れか1項に記載のICカード。
【発明を実施するための形態】
【0007】
以下、実施形態について、図面を参照しつつ説明する。
図1は、実施形態に係るICカード1の構成例を概略的に示すブロック図である。
実施形態に係るICカード1は、ICカード処理装置2と共にICカード処理システムを構成する。ICカード1は、ICカード処理装置2から供給される電力により活性化する(動作可能な状態になる)携帯可能な電子機器である。ICカード1は、スマートカードとも称される。ICカード1は、大別すると、接触型のICカード(接触式ICカード)と非接触型のICカード(非接触式ICカード)とがある。例えば、接触式ICカード1は、通信インターフェースとしてのコンタクト部を介してICカード処理装置2からの動作電源及び動作クロックの供給を受けて活性化する。非接触式ICカード1は、通信インターフェースとしてのアンテナ及び変復調回路などを介してICカード処理装置2からの電波を受信し、その電波から動作電源及び動作クロックを生成して活性化する。
【0008】
図1に示すように、ICカード1は、本体Cを有する。本体Cは、プラスチックなどによりカード状に形成される。ICカード1は、本体C内にモジュールMを有する。モジュールMは、1つまたは複数のICチップCaと通信用の外部インターフェース(インターフェース)とが接続された状態で一体的に形成され、本体C内に埋設される。また、ICカード1のモジュールMは、
図1に示すように、プロセッサ11、RAM12、ROM13、不揮発性メモリ14、通信制御部15及びインターフェース16などを有する。
【0009】
プロセッサ11は、種々の処理を実行する回路を含む。プロセッサ11は、例えば、CPU(Central Processing Unit)である。プロセッサ11は、ICカード1全体の制御を司る。プロセッサ11は、ROM13あるいは不揮発性メモリ14に記憶されているプログラムを実行することにより、種々の処理機能を実現する。ただし、後述するプロセッサ11が実行する各種の機能のうちの一部又は全部は、ハードウエア回路により実現されるようにしても良い。
【0010】
RAM12は、ワーキングメモリとして機能する揮発性のメモリである。また、RAM12は、プロセッサ11が処理中のデータなどを一時保管するバッファとしても機能する。例えば、RAM12は、通信制御部15及びインターフェース16を介してICカード処理装置2との間で送受信するデータを一時保管する通信バッファ(送受信バッファ)が設けられる。RAM12に設けられる通信バッファは、送信データを格納する送信バッファと受信データを格納する受信バッファとから構成される。また、RAM12には、通信バッファを定義するための各種の制御情報も格納される。
【0011】
ROM13は、プログラムメモリとして機能する不揮発性のメモリである。ROM13は、予め制御用のプログラムおよび制御データなどが記憶される。ROM13は、製造段階で制御プログラムや制御データなどが記憶された状態でICカード1内に組み込まれるものである。つまり、ROM13に記憶される制御プログラムや制御データは、予め当該ICカード1の仕様に応じて組み込まれる。たとえば、ROM13には、ICカード処理装置2から受信するコマンドに応じた処理をプロセッサ11が実行するためのプログラムが記憶される。
【0012】
不揮発性メモリ14は、データの書き込み及び書換えが可能な不揮発性のメモリである。不揮発性メモリ14は、例えば、EEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)あるいはフラッシュROMなどで構成する。不揮発性メモリ14には、当該ICカード1の運用用途に応じたプログラムや種々のデータが書込まれる。また、不揮発性メモリ14は、一部または全部の領域が耐タンパー性を有し、セキュアにデータが格納できる。不揮発性メモリ14には、プログラムファイルあるいはデータファイルなどが定義され、それらのファイルに制御プログラムや種々の設定データが書き込まれる。例えば、不揮発性メモリ14は、各種の通信制御用の設定データ、ユーザデータ、あるいは、アプリケーションプログラムなどを記憶する。
【0013】
通信制御部15は、インターフェース16に接続する。インターフェース16は、外部装置に通信接続するためのインターフェースである。通信制御部15及びインターフェース16は、通信部を構成する。通信制御部15及びインターフェース16は、ICカード処理装置2のインターフェースに対応した通信方式による通信機能を実現する。また、通信制御部15及びインターフェース16は、複数の通信方式(例えば、接触通信と非接触通信)をサポートするものとして構成しても良い。
【0014】
当該ICカード1が接触式ICカードとして実現される場合、通信制御部15及びインターフェース16は、ICカード処理装置2と接触して通信する通信部を構成する。この場合、インターフェース16は、ICカード処理装置2のコンタクト部と物理的かつ電気的に接触するコンタクト部により構成され、通信制御部15は、コンタクト部を介した信号の送受信を制御する回路などにより構成される。
【0015】
また、当該ICカード1が非接触式ICカードとして実現される場合、通信制御部15及びインターフェース16は、ICカード処理装置2のカードリーダライタと非接触(無線)で通信する通信部を構成する。この場合、インターフェース16は、電波の送受信を行うアンテナにより構成され、通信制御部15は、送信する電波を生成するための変調回路及び受信した電波から信号を生成するための復調回路などにより構成される。
【0016】
図2は、実施形態に係るICカード処理システムの構成例を概略的に示すブロック図である。
図2に示す構成例において、ICカード処理システムのICカード処理装置2は、カードリーダライタを介してICカード1と通信する機能を有する上位装置である。ICカード処理装置2は、例えば、カードリーダライタをPCなどの制御装置に接続した装置を想定する。
【0017】
ICカード処理装置2は、
図2に示すように、制御部21、表示部22、操作部23、カードリーダライタ24などを有する。
制御部21は、ICカード処理装置2全体の動作を制御する。制御部21は、プロセッサ(CPU)25、RAM26、ROM27、不揮発性メモリ28、通信部29などにより構成される。例えば、制御部21は、パーソナルコンピュータ(PC)により構成される。プロセッサ25は、ROM27又は不揮発性メモリ28が記憶するプログラムを実行することにより種々の処理を実行する。RAM26は、データを一時的に保持するワーキングメモリとして機能する。ROM27は、プログラムや制御データなどを記憶する不揮発性のメモリである。不揮発性メモリ28は、書換え可能な不揮発性のメモリである。通信部29は、外部装置と通信するためのインターフェースである。
【0018】
制御部21は、カードリーダライタ24によりICカード1へコマンドを送信する機能、ICカード1から受信したデータを基に種々の処理を行う機能などを有する。たとえば、制御部21は、カードリーダライタ24を介してICカード1にデータの書き込みコマンドを送信することによりICカード1内の不揮発性メモリにデータを書き込む制御を行う。また、制御部21は、ICカード1に読み取りコマンドを送信することによりICカード1からデータを読み出す制御を行う。また、制御部21は、複数のアプリケーションを実行する機能を有する。
【0019】
表示部22は、制御部21の制御により種々の情報を表示する表示装置である。操作部23は、キーボード、テンキー、ポインティングデバイスなどにより構成する。操作部23は、ICカード処理装置2の操作員が種々の操作指示やデータなどを入力するためのものである。また、操作部23は、ICカード1の利用者の識別情報あるいはパスワードなどの認証情報を入力する為の入力部としても機能する。
【0020】
カードリーダライタ24は、ICカード1との通信を行うためのインターフェース装置である。カードリーダライタ24は、ICカード1の通信方式に応じたインターフェースにより構成される。たとえば、ICカード1が接触型のICカードである場合、カードリーダライタ24は、ICカード1のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。また、ICカード1が非接触型のICカードである場合、カードリーダライタ24は、ICカード1との無線通信を行うためのアンテナおよび通信制御などにより構成される。カードリーダライタ24は、ICカード1に対して、電源供給、クロック供給、リセット制御、データの送受信を行う。カードリーダライタ24は、制御部21による制御に基づいてICカード1の活性化(起動)、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行う。
【0021】
次に、本実施形態に係るICカード1のRAM12におけるデータの構成例について説明する。
図3は、RAM12における各種のデータを格納するための記憶領域の構成例を示す図である。
ICカード1のRAM12には、データ通信制御に用いる記憶領域として、各種の設定情報を記憶するための領域31〜35、および、送受信バッファ(通信バッファ)36が設けられる。
図3に示す構成例において、領域31は、受信バッファと送信バッファとからなる通信バッファ(送受信バッファ)のサイズ(総バッファサイズ)を示す情報を格納する記憶領域である。領域32は、受信バッファのサイズを示す情報を格納する記憶領域である。領域33は、送信バッファのサイズを示す情報を格納する記憶領域である。領域34は、RAM12のメモリ領域における受信バッファの先頭アドレスである受信バッファポインタを格納する記憶領域である。領域35は、RAM12のメモリ領域における送信バッファの先頭アドレスである送信バッファポインタを格納する記憶領域である。
【0022】
送受信バッファ36は、RAM12のメモリ領域において送信バッファおよび受信バッファとして用いられる記憶領域である。
図3に示す構成例において、送受信バッファは、送信バッファと受信バッファとが連続した記憶領域で構成される。送受信バッファにおいて、送信バッファサイズ(402)の領域が送信バッファとして確保され、受信バッファサイズ(403)の領域が受信バッファとして確保される。送受信バッファ全体のサイズ(総バッファサイズ)は、一旦設定されたサイズで固定される。送信バッファのサイズと受信バッファのサイズとは、総バッファサイズが設定された後であっても、送受信バッファ内において可変である。
【0023】
次に、本実施形態に係るICカード1の不揮発性メモリ14におけるデータの構成例について説明する。
図4は、ICカード1の不揮発性メモリ14における設定データの格納例を示す図である。
図4に示す構成例において、不揮発性メモリ14には、送信バッファ及び受信バッファに関する設定データを記憶する領域41、42が設けられる。領域41は、最小受信バッファサイズを示す情報を格納する記憶領域である。最小受信バッファサイズは、受信バッファとして設定できる最小のサイズを示す設定値であり、受信バッファは、最小受信バッファサイズ以上の大きさに設定される。例えば、受信バッファのサイズを変更する場合に、受信バッファのサイズは、最小受信バッファサイズよりも小さな値に変更することは出来ないことを意味する。領域42は、最小送信バッファサイズを示す情報を格納する記憶領域である。最小送信バッファサイズは、送信バッファとして設定できる最小のサイズを示す設定値であり、送信バッファは、最小受信バッファサイズ以上のサイズが確保される。例えば、送信バッファのサイズを変更する場合、送信バッファのサイズは、最小送信バッファサイズよりも小さな値に変更することは出来ないことを意味する。
【0024】
次に、ICカードとICカード処理装置との通信制御としての初期応答あるいはアンチコリジョンにおける送信バッファおよび受信バッファの設定処理について説明する。
まず、ICカード1が接触式ICカードである場合の初期応答の処理について概略的に説明する。
図5は、接触式ICカードとしてのICカード1が初期応答(ATR)としてICカード処理装置2へ送信するデータの構成例を示す図である。
図5に示すように、接触式ICカード1は、初期応答において、初期応答データと総バッファサイズとを有する応答データをICカード処理装置2へ送信する。総バッファサイズは、ICカード1がRAM12上に設けた送受信バッファの大きさを示す情報である。送受信バッファは、ICカード1の初期設定においてRAM12上に固定のサイズで設定されるため、総バッファサイズは、一連の通信処理において固定の値となる。
【0025】
図6は、ICカード処理装置2からの接触式ICカード1への要求(PPS)の構成例を示す図である。
接触式ICカード1からの初期応答を受信した後、ICカード処理装置2は、初期応答の送信元である接触式ICカード1に対してプロトコルパラメータ選択処理を要求する。
図6に示す構成例では、ICカード処理装置2は、プロトコルパラメータ選択処理データ61とICカードの受信バッファサイズ62とを含む要求データをICカード1へ送信する。プロトコルパラメータ選択処理データ61は、ICカード1に対して要求するプロトコルパラメータ選択処理を示すものである。受信バッファサイズ62は、ICカード1に対して要求(指定)する受信バッファのサイズを示すものである。
例えば、ICカード処理装置2は、接触式ICカード1から受信した初期応答における総バッファサイズおよび送信するデータのサイズなどに基づいて、ICカード1に対して要求する受信バッファのサイズを決定し、ICカードに対する要求データにおける受信バッファサイズ62としてICカード1へ送信する。
【0026】
図7は、ICカード処理装置2からの要求に対する接触式ICカード1からの応答(PPS)の例を示す図である。
接触式ICカード1は、ICカード処理装置2から受信バッファサイズの指定を受けた場合、送受信バッファ内における受信バッファと送信バッファとを設定し、設定結果を示す応答データをICカード処理装置2へ送信する。
図7では、接触式ICカード1からICカード処理装置2への応答(PPS)として、プロトコルパラメータ選択処理データ71とICカードの受信バッファサイズ72とICカードの送信バッファサイズ73とを含む応答データの構成例を示している。
【0027】
プロトコルパラメータ選択処理データ71は、ICカード処理装置2から要求されたプロトコルパラメータ選択処理の実行結果を示すものである。受信バッファサイズ72は、ICカード1が送受信バッファ36内に設定した受信バッファのサイズを示すものである。送信バッファサイズ73は、ICカード1が送受信バッファ36内に設定した送信バッファのサイズを示すものである。
【0028】
例えば、ICカード1は、総バッファサイズ、最小受信バッファサイズ及び最小送信バッファサイズを考慮しつつ、ICカード処理装置2から要求された受信バッファサイズに基づいて、送受信バッファ36内に受信バッファと送信バッファとを設定する。ICカード1における受信バッファ及び送信バッファの設定処理については、後で詳細に説明するものとする。受信バッファ及び送信バッファを設定すると、ICカード1は、設定した受信バッファのサイズと送信バッファのサイズとをセットした応答データをICカード処理装置2へ送信する。
【0029】
次に、ICカード1が非接触式ICカードである場合のアンチコリジョンの処理について概略的に説明する。
図8は、アンチコリジョン処理において、ICカード処理装置2が非接触式ICカードとしてのICカード1へ要求するデータ(RATS、ATTRIB)の構成例を示す図である。
本実施形態では、ICカード処理装置2は、非接触式ICカード1とのアンチコリジョン処理において、ICカード1に対して受信バッファサイズを指定する。
図8に示す構成例では、ICカード処理装置2は、アンチコリジョン処理のRATS又はATTRIBにおいてアンチコリジョン処理データ81とICカードの受信バッファサイズ82とを含むデータをICカード1へ送信する。アンチコリジョン処理データ71は、ICカード1に対して要求するアンチコリジョンの処理を示すものである。受信バッファサイズ82は、ICカード1に対して要求する受信バッファのサイズを示すものである。
【0030】
図9は、ICカード処理装置2から要求に対する非接触式ICカード1からの応答(ATS、Answer to ATTRIB)の例を示す図である。
非接触式ICカード1は、ICカード処理装置2から受信バッファサイズの指定を受けた場合、送受信バッファ内における受信バッファ及び送信バッファの設定処理を行い、設定結果を示す応答をICカード処理装置2へ送信する。
図9では、ICカード1がICカード処理装置2へ送信するアンチコリジョン処理における応答データ(ATS、Answer to ATTRIB)として、アンチコリジョン処理データ91とICカードの受信バッファサイズ92とICカードの送信バッファサイズ93とを含むデータの構成例を示している。
【0031】
アンチコリジョン処理データ91は、ICカード処理装置2から要求されたアンチコリジョン処理の実行結果を示すものである。受信バッファサイズ92は、ICカード1が送受信バッファ36内に設定した受信バッファのサイズを示すものである。送信バッファサイズ93は、ICカード1が送受信バッファ36内に設定した送信バッファのサイズを示すものである。
【0032】
例えば、ICカード1は、総バッファサイズ、最小受信バッファサイズ及び最小送信バッファサイズを考慮しつつ、ICカード処理装置2から要求された受信バッファサイズに基づいて、送受信バッファ36内に受信バッファと送信バッファとを設定する。ICカード1における受信バッファ及び送信バッファの設定処理については、後で詳細に説明するものとする。受信バッファ及び送信バッファを設定すると、ICカード1は、設定した受信バッファのサイズと送信バッファのサイズとをセットした応答データをICカード処理装置2へ送信する。
【0033】
次に、実施形態に係るICカード1に与えられるバッファサイズ変更コマンドの構成例について説明する。
図10は、バッファサイズ変更コマンドの構成例を示す図である。
図10に示すコマンドは、ICカード1の処理に用いられる一般的な規格(例えば、ISO/IEC 7816)で規定されたコマンドのフォーマットに準じた構成を有するものである。
図10に示す例において、バッファサイズ変更コマンドは、CLA101、INS102、P1(103)、P2(104)、Lc105、データ部106、およびLe107を並べたフォーマットにより構成される。
【0034】
CLA101およびINS102は、コマンドを示す情報(例えば、コマンドコード)である。コマンドを示す情報は、実行すべき処理内容を示すものであり、予め規格などにより決められる情報である。本実施形態において、バッファサイズ変更コマンドは、CLA101およびINS102が、バッファサイズの変更を要求するコマンドであることを示す情報となる。すなわち、ICカード処理装置2は、ICカード1に対して受信バッファサイズの変更を要求する場合、バッファサイズ変更コマンドを示す情報をCLAおよびINSにセットしたコマンドを生成する。
【0035】
P1(103)及びP2(104)は、当該コマンドのパラメータである。例えば、P1及びP2には、応答(レスポンス)に対するセキュリティ設定を示す情報がセットされる。Lc105は、当該コマンドにおけるデータの長さを示す情報である。データ部106は、コマンドにおけるデータを格納する。
図10に示すバッファサイズ変更コマンドにおいて、データ部106は、ICカード1に対して要求(指定)する受信バッファのサイズを示すデータとなる。Le107は、当該コマンドに対するレスポンスのデータの長さを示す情報を格納する。
【0036】
図11は、ICカード1がバッファサイズ変更コマンドに対するレスポンス(応答)としてICカード処理装置2へ送信するレスポンスデータの構成例を示す図である。
図11に示すように、バッファサイズ変更コマンドに対するレスポンスデータは、第1データ部111、第2データ部112、SW1(113)及びSW2(114)を有する。SW1(113)及びSW2(114)は、コマンドに対する処理結果を示す情報(ステータスワード)である。例えば、SW1(113)及びSW2(114)は、コマンドを正常に処理した事を示す情報、或いは、コマンドの処理がエラーとなった事を示す情報などとなる。
【0037】
第1データ部111及び第2データ部112は、コマンドに対する処理結果として得られたデータを格納するデータ部である。
図10に示す構成例では、バッファサイズ変更コマンドに対するレスポンスデータのデータ部が、受信バッファサイズを示すデータである第1データ部111と送信バッファサイズを示すデータである第2データ部112とを含むことを示している。
【0038】
次に、実施形態に係るICカード1におけるバッファサイズの変更処理について説明する。
図12は、ICカード1におけるバッファサイズ変更処理の流れを説明するためのフローチャートである。
ICカード1は、ICカード処理装置1からのバッファサイズの指定を受け付ける。たとえば、ICカード1は、接触式ICカードであれば、初期応答処理におけるICカード処理装置2からの要求(例えば、
図6参照)によりバッファサイズの指定を受け付ける。また、ICカード1は、非接触式ICカードであれば、アンリコリジョン処理におけるICカード処理装置2からの要求(例えば、
図8参照)によりバッファサイズの指定を受け付ける。また、ICカード1は、アプリケーションを実行中において、バッファサイズ変更コマンド(例えば、
図10参照)によりICカード処理装置2からのバッファサイズ(受信バッファサイズ)の指定を受け付ける。
【0039】
ICカード処理装置2からのバッファサイズの指定を受信すると(S11、YES)、ICカード1のプロセッサ11は、指定された受信バッファのサイズ(指定受信バッファサイズと称する)が最小受信バッファサイズよりも大きいかを判定する(S12)。指定受信バッファサイズが最小受信バッファサイズ以下であると判定した場合(S12、NO)、プロセッサ11は、RAM12における送受信バッファ36内の受信バッファサイズを最小受信バッファサイズに決定する(S13)。
【0040】
また、指定受信バッファサイズが最小受信バッファよりも大きいと判定した場合(S12、YES)、プロセッサ11は、総バッファサイズから指定受信バッファサイズを減算したサイズが最小送信バッファサイズよりも大きいかを判定する(S14)。本実施形態に係るICカード1では、送受信バッファ(通信バッファ)36を、受信バッファと送信バッファとで分ける。このため、総バッファサイズから指定受信バッファサイズを減算したサイズが最小送信バッファサイズ以下であれば、送信バッファサイズは、最小送信バッファサイズに設定する必要がある。
すなわち、総バッファサイズから指定受信バッファサイズを減算したサイズが最小受信バッファサイズ以下であると判定した場合(S14、NO)、プロセッサ11は、RAM12における送受信バッファ36内の受信バッファサイズを、総バッファサイズから最小送信バッファサイズを減算したサイズに決定する(S15)。
【0041】
また、総バッファサイズから指定受信バッファサイズを減算したサイズが最小送信バッファサイズよりも大きいと判定した場合(S14、YES)、プロセッサ11は、RAM12における送受信バッファ36内の受信バッファサイズを、指定受信バッファサイズに決定する(S16)。
受信バッファサイズが決定すると(S13、S15又はS16)、プロセッサ11は、総バッファサイズから決定した受信バッファサイズを減算したサイズを送信バッファサイズに決定する(S17)。
【0042】
指定受信バッファサイズに基づく受信バッファサイズおよび送信バッファサイズが決定すると、プロセッサ11は、RAM12が記憶する各種の設定情報を更新する。すなわち、プロセッサ11は、RAM12の領域31に記憶する受信バッファサイズを決定した受信バッファサイズに更新する(S18)。また、プロセッサ11は、RAM12の領域32に記憶する送信バッファサイズを決定した送信バッファサイズに更新する(S19)。また、プロセッサ11は、更新した受信バッファサイズに応じて受信バッファのRAM12における位置を示す情報を更新する(S20)。また、プロセッサ11は、更新した送信バッファサイズに応じて送信バッファのRAM12における位置を示す情報を更新する(S21)。
【0043】
RAM12に記憶する各種の設定情報を更新すると、プロセッサ11は、受信バッファサイズおよび送信受信バッファサイズとを示す応答データを作成してICカード処理装置2へ送信する(S22)。例えば、ICカード1は、接触式ICカードあれば、初期応答処理におけるICカード処理装置2からの要求に対する
図7に示すような応答データにより、受信バッファサイズと送信バッファサイズとをICカード処理装置2へ送信する。また、ICカード1は、非接触式ICカードあれば、アンリコリジョン処理におけるICカード処理装置2からの要求に対する
図9に示すような応答データによって受信バッファサイズと送信バッファサイズとをICカード処理装置2へ送信する。また、ICカード1は、アプリケーションを実行中におけるバッファサイズ変更コマンドに対しては
図11に示すようなレスポンスデータによって受信バッファサイズと送信バッファサイズとをICカード処理装置2へ送信する。
【0044】
次に、実施形態に係るICカード処理システムにおけるICカード1でのバッファサイズ設定(変更)処理を含むデータ通信処理について説明する。
本実施形態に係るICカード1は、アプリケーションを実行中において、ICカード処理装置2からのバッファサイズ変更コマンドに応じたバッファサイズの設定(変更)処理を行う。すなわち、ICカード1のプロセッサ11は、アプリケーション層においてICカード処理装置2との間でバッファサイズのネゴシエーションを行う機能を有する。これに対して、ICカード処理装置2の制御部21は、ICカード1の送信バッファサイズ及び受信バッファサイズに応じたデータ通信を制御する機能と、アプリケーションの実行中に発生する送受信データのサイズに応じてICカード1に対してバッファサイズの変更を要求する機能(バッファサイズのネゴシエーションを行う機能)とを有する。
【0045】
図13は、ICカード処理システムにおけるバッファサイズ設定(変更)処理を含むデータ通信処理の流れを説明するための図である。
ICカード処理装置2では、例えば、初期応答処理又はアンリコリジョン処理において、ICカードが設定した受信バッファサイズと送信バッファサイズとを示す情報をRAM26又は不揮発性メモリ28に記憶する。
【0046】
ICカード処理装置2の制御部21は、ICカードを取り扱うアプリケーションによる処理を実行中において送信データ又は受信データが発生すると(S31、YES)、ICカードの受信バッファサイズ及び送信バッファサイズを変更すべきか否かを判定する(S32)。ICカードの受信バッファサイズ及び送信バッファサイズを変更しないと判定した場合(S32、NO)、制御部21は、現在のICカードの受信バッファサイズ及び送信バッファサイズに応じたデータ通信を実行する(S36)。
【0047】
また、ICカードの受信バッファサイズ及び送信バッファサイズを変更すると判定した場合(S32、YES)、制御部21は、送信データ又は受信データのサイズに応じてICカード1に対して要求する受信バッファサイズ(又は送信バッファサイズ)を決定する。ICカードに対して要求する受信バッファサイズが決定すると、制御部21は、決定した受信バッファサイズを指定するバッファサイズ変更コマンドを生成する。バッファサイズ変更コマンドを生成すると、制御部21は、生成したバッファ変更コマンドをICカード1へ送信する(S33)。
【0048】
ICカード処理装置2がバッファ変更コマンドを送信すると、ICカード1のプロセッサ11は、インターフェース16及び通信制御部15を介して当該バッファサイズ変更コマンドを受信する(S41)。バッファサイズ変更コマンドを受信すると、プロセッサ11は、
図11に示すようなバッファサイズ設定処理によってバッファサイズ変更コマンドに応じた受信バッファ及び送信バッファを設定する(S42)。受信バッファ及び送信バッファを設定すると、プロセッサ11は、設定した受信バッファサイズ及び送信バッファサイズを示す応答データをICカード処理装置2へ送信する(S43)。
【0049】
ICカード1が応答データを送信すると、ICカード処理装置2の制御部21は、カードリーダライタ24を介して応答データを受信する(S34)。ICカード1からの応答データを受信すると、制御部21は、ICカード1に設定された受信バッファサイズ及び送信バッファサイズを示す情報を更新する(S34)。また、ICカード1からの応答データを受信した場合、制御部21は、ICカード1において設定された受信バッファサイズ及び送信バッファサイズが許容範囲であるか否かを判定する(S35)。ICカード1が設定した受信バッファサイズ及び送信バッファサイズが許容範囲でなければ、制御部21は、上記S33へ戻り、再度バッファサイズ変更コマンドを生成してICカード1へ送信する。
【0050】
ICカード1が設定した受信バッファサイズ及び送信バッファサイズが許容範囲であると判定した場合(S35、YES)、制御部21は、ネゴシエーションが成立したものとして、ICカード1で設定された受信バッファサイズ及び送信バッファサイズを考慮してデータ通信処理を行う(S36)。このようなデータ通信処理に対して、ICカード1は、設定した受信バッファおよび送信バッファを用いたデータ通信処理(コマンド処理)を実行する(S44)。
【0051】
上記のような処理によれば、ICカードがアプリケーションを実行中に、ICカード処理装置2が送受信するデータのサイズに応じてICカードの受信バッファサイズおよび送信バッファサイズを変更できる。すなわち、ICカード1では、アプリケーション層において、ICカード処理装置2からのバッファサイズ変更コマンドに応じてバッファサイズを変更できる。
【0052】
上述の処理の具体例として、書込みコマンドなどでICカード処理装置2がICカード1へ大きなサイズのデータを送信したい場合について説明する。
ICカード処理装置2は、書込みコマンドなどでICカード処理装置2がICカード1へ大きなサイズのデータを送信したい場合、ICカード1の受信バッファサイズを大きくすることをICカードに要求する。すなわち、ICカード処理装置2は、送信するデータのサイズに応じた大きなサイズの受信バッファサイズを指定したバッファサイズ変更コマンドを作成する。この場合、ICカード処理装置2は、バッファサイズ変更コマンドにおいて、受信バッファサイズを最大とすることを指定するようにしても良いし、設定可能な最大値を設定してICカード側に最大の受信バッファサイズを設定させるようにしても良い。
【0053】
ICカード1は、ICカード処理装置2からのバッファサイズ変更コマンドにおいて指示された受信バッファサイズに基づいて大きなサイズの受信バッファを設定する。例えば、バッファサイズ変更コマンドにおいて指定された受信バッファサイズが最小送信バッファを確保である範囲のサイズであれば、ICカード1のプロセッサ11は、指定されたサイズの受信バッファを設定する。また、バッファサイズ変更コマンドにおいて設定可能な最大の受信バッファサイズを超えるサイズが指定された場合、又は、受信バッファサイズを最大とすることが指定された場合、ICカード1のプロセッサ11は、送受信バッファ36において、最小送信バッファを確保して受信バッファサイズを最大サイズに設定する。
【0054】
ICカード1は、バッファサイズ変更コマンドに対する応答として受信バッファサイズおよび送信バッファサイズをICカード処理装置2へ通知する。ICカード処理装置2は、ICカード1から通知された受信バッファサイズおよび送信バッファサイズが許容できるものであれば、ネゴシエーションが成立したものとしてデータ通信を開始する。これにより、ICカードの受信バッファサイズが大きくなるため、ICカード処理装置2は、大きいサイズに設定(変更)された受信バッファに入るような大きなサイズのデータを一度の送信処理でICカード1への送信できるようになる。
【0055】
また、別の具体例として、読取りコマンドなどでICカード処理装置2がICカード1から大きなサイズのデータを受信したい場合(ICカードから大きなサイズのデータを送信したい場合)について説明する。
ICカード処理装置2は、読取りコマンドなどでICカードから大きなサイズのデータを受信したい場合、ICカードの受信バッファサイズを小さくすること(つまり、ICカード1の送信バッファサイズを大きくすること)をICカードに要求する。すなわち、ICカード処理装置2は、受信するデータのサイズに応じた大きなサイズの送信バッファサイズとなるように、小さなサイズの受信バッファサイズを指定したバッファサイズ変更コマンドを作成する。この場合、ICカード処理装置2は、バッファサイズ変更コマンドにおいて、受信バッファサイズを最小とすることを指定するようにしても良いし、設定可能な最小値を設定してICカード側に最小の受信バッファサイズを設定させるようにしても良い。
【0056】
ICカード1は、ICカード処理装置2からのバッファサイズ変更コマンドで指示された受信バッファサイズに基づいて小さなサイズの受信バッファを設定し、大きなサイズの送信バッファを設定する。例えば、バッファサイズ変更コマンドで指定された受信バッファサイズが最小受信バッファよりも大きいサイズであれば、ICカード1のプロセッサ11は、指定されたサイズの受信バッファを設定する。また、バッファサイズ変更コマンドにおいて最小の受信バッファサイズ以下の受信バッファサイズが指定された場合、又は、受信バッファサイズを最小とすることが指定された場合、ICカード1のプロセッサ11は、送受信バッファ36において、受信バッファサイズを最小受信バッファサイズとし、送信バッファサイズを最大のサイズに設定する。
【0057】
ICカード1は、バッファサイズ変更コマンドに対する応答として受信バッファサイズおよび送信バッファサイズをICカード処理装置2へ通知する。ICカード処理装置2は、ICカード1から通知された受信バッファサイズおよび送信バッファサイズが許容できるものであれば、ネゴシエーションが成立したものとしてデータ通信を開始する。これにより送信バッファサイズが大きくなるため、ICカード処理装置2は、一度の受信処理においてICカード1から大きいサイズのデータを受信することが可能となる。
【0058】
上述した実施形態によれば、ICカードは、ICカード処理装置からICカード内の受信バッファサイズ又は送信バッファサイズの指定を受け付け、ICカード処理装置から指定された受信バッファサイズ又は送信バッファサイズに基づいて前記通信バッファにおける受信バッファサイズと送信バッファサイズとを設定し、設定した受信バッファサイズと送信バッファサイズとをICカード処理装置へ応答するようにしたものである。
【0059】
これにより、ICカードは、ICカード処理装置から指定されるバッファサイズに基づいて、受信バッファサイズと送信バッファサイズとを最適化できる。また、ICカード内の通信バッファが固定のサイズであっても、ICカード処理装置から指定されるバッファサイズに基づいて受信バッファサイズと送信バッファサイズとを可変でき、メモリ領域の有効活用に寄与できる。
【0060】
また、実施形態に係るICカードは、接触式ICカードであれば、ICカード処理装置との初期応答の処理においてICカード処理装置が指定するバッファサイズに基づく受信バッファサイズ及び送信バッファサイズの設定が可能となる。また、実施形態に係るICカードは、
非接触式ICカードであれば、ICカード処理装置とのアンチコリジョン処理において前記外部装置が指定するバッファサイズに基づく受信バッファサイズ及び送信バッファサイズの設定が可能となる。
【0061】
さらに、実施形態に係るICカードは、アプリケーションを実行中にバッファサイズの変更を要求するバッファサイズ変更コマンドを受信した場合、当該バッファサイズ変更コマンドで指定されたバッファサイズに基づいて受信バッファサイズ及び送信バッファサイズを再設定(変更)する。これにより、本実施形態によれば、ICカードは、アプリケーション層でもバッファサイズを変更できる。この結果として、アプリケーション処理中に送受信するデータのサイズなどに応じて受信バッファサイズ及び送信バッファサイズを再設定でき、アプリケーション処理の最適化が実現できる。
【0062】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【0063】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下、本願の出願当初の特許請求の範囲に記載した内容を付記する。
[1]
外部装置と通信する通信部と、
前記通信部による前記外部装置との通信用の通信バッファが設定される記憶部と、
前記外部装置から通信に用いるバッファサイズが指定された場合、前記通信バッファにおいて受信データを格納する受信バッファと送信データを格納する送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する制御部と、
を有するICカード。
[2]
前記通信部は、接触式の通信を行うインターフェースを含み、
前記制御部は、前記外部装置との接触式通信の初期応答処理において前記外部装置が指定するバッファサイズに基づいて受信バッファと送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する、
[1]に記載のICカード。
[3]
前記通信部は、非接触式の通信を行うインターフェースを含み、
前記制御部は、前記外部装置との非接触式通信のアンチコリジョン処理において前記外部装置が指定するバッファサイズに基づいて受信バッファと送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する、
[1]又は[2]の何れか1つに記載のICカード。
[4]
前記制御部は、アプリケーションを実行する機能を有し、アプリケーションを実行中にバッファサイズの変更を要求するコマンドを受信した場合、当該コマンドで指定されたバッファサイズに基づいて受信バッファと送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する制御部と、
[1]乃至[3]の何れか1つに記載のICカード。
[5]
前記制御部は、前記通信バッファにおける受信バッファと送信バッファとの配分を変更することにより受信バッファと送信バッファとを設定する、
[1]乃至[4]の何れか1つに記載のICカード。
[6]
前記制御部は、前記外部装置が指定するバッファサイズが最小受信バッファサイズよりも小さいサイズである場合、受信バッファを最小受信バッファサイズに設定し、前記外部装置が指定するバッファサイズが最小送信バッファサイズよりも小さいサイズである場合、送信バッファを最小送信バッファサイズに設定する、
[1]乃至[5]の何れか1つに記載のICカード。
[7]
前記通信部と、前記記憶部と、前記制御部と、を有するモジュールと、
前記モジュールを有する本体と、を有する、
[1]乃至[6]の何れか1つに記載のICカード。
[8]
外部装置と通信する通信部と、
前記通信部による前記外部装置との通信用の通信バッファが設定される記憶部と、
前記外部装置から通信に用いるバッファサイズが指定された場合、前記通信バッファにおいて受信データを格納する受信バッファと送信データを格納する送信バッファとを設定し、設定した受信バッファサイズと送信バッファサイズとを前記外部装置へ通知する制御部と、
を有する携帯可能電子装置。
[9]
ICカードと通信する通信部と、
前記ICカードが有する通信バッファにおける受信バッファ或は送信バッファのバッファサイズを指定するデータをICカードへ送信し、前記ICカードが設定した受信バッファサイズ及び送信バッファサイズを示す情報を受信し、受信した前記ICカードにおける受信バッファサイズ及び送信バッファサイズに応じたデータ通信を行う制御部と、
を有するICカード処理装置。