JP2016212779A - 携帯可能電子装置、及びicカード - Google Patents
携帯可能電子装置、及びicカード Download PDFInfo
- Publication number
- JP2016212779A JP2016212779A JP2015098039A JP2015098039A JP2016212779A JP 2016212779 A JP2016212779 A JP 2016212779A JP 2015098039 A JP2015098039 A JP 2015098039A JP 2015098039 A JP2015098039 A JP 2015098039A JP 2016212779 A JP2016212779 A JP 2016212779A
- Authority
- JP
- Japan
- Prior art keywords
- application
- area
- buffer area
- work area
- extended
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】データを一時的に記憶する記憶部を効率良く使用することができる携帯可能電子装置、及びICカードを提供することである。
【解決手段】実施形態の携帯可能電子装置は、通信部と、記憶部と、制御部とを持つ。通信部は、外部装置から処理要求を受信するとともに、前記処理要求に対する応答を前記外部装置に送信する。記憶部は、複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する。制御部は、前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する。
【選択図】図3
【解決手段】実施形態の携帯可能電子装置は、通信部と、記憶部と、制御部とを持つ。通信部は、外部装置から処理要求を受信するとともに、前記処理要求に対する応答を前記外部装置に送信する。記憶部は、複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する。制御部は、前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する。
【選択図】図3
Description
本発明の実施形態は、携帯可能電子装置、及びICカードに関する。
近年、IC(Integrated Circuit)チップを搭載したICカードなどの携帯可能電子装置が普及している。携帯可能電子装置は、外部装置から受信したコマンドを処理し、コマンドに応じたレスポンスを送信させるコマンド処理を行う。携帯可能電子装置は、データを一時的に記憶する記憶部(例えば、RAM(Random Access Memory))内に、外部装置から受信するデータを一時的に記憶するバッファ領域、及びコマンド処理を実行する際の作業領域を、固定の領域として備えている。しかしながら、携帯可能電子装置は、例えば、複数のアプリケーションに対応する場合に、多くの領域を予め用意する必要があり、RAMを効率良く使用することかできない可能性があった。
本発明が解決しようとする課題は、データを一時的に記憶する記憶部を効率良く使用することができる携帯可能電子装置、及びICカードを提供することである。
実施形態の携帯可能電子装置は、通信部と、記憶部と、制御部とを持つ。通信部は、外部装置から処理要求を受信するとともに、前記処理要求に対する応答を前記外部装置に送信する。記憶部は、複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する。制御部は、前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する。
以下、実施形態の携帯可能電子装置、及びICカードを、図面を参照して説明する。
(第1の実施形態)
図1は、第1の実施形態のICカード1の一例を示す外観図である。
図1に示すように、ICカード1は、ICモジュール10を備える。ICモジュール10は、ICカード1が接触式ICカードの場合は、コンタクト部3と、内部にICチップ100とを備える。
図1は、第1の実施形態のICカード1の一例を示す外観図である。
図1に示すように、ICカード1は、ICモジュール10を備える。ICモジュール10は、ICカード1が接触式ICカードの場合は、コンタクト部3と、内部にICチップ100とを備える。
なお、ICカード1が非接触式ICカードの場合は、ICモジュール10は、内部にアンテナ部とICチップ100とを備える。ICカード1は、例えば、プラスチックのカード基材PT(カード本体の一例)に、ICモジュール10を実装して形成されている。すなわち、ICカード1は、ICモジュール10と、ICモジュール10が埋め込まれたカード基材PTとを備えている。また、ICカード1は、コンタクト部3を介して外部装置2と通信可能である。
なお、本実施形態では、携帯可能電子装置の一例として、ICカード1について説明する。
なお、本実施形態では、携帯可能電子装置の一例として、ICカード1について説明する。
ICカード1は、例えば、外部装置2が送信したコマンド(処理要求)を、コンタクト部3を介して受信し、受信したコマンドに応じた処理(コマンド処理)を実行する。そして、ICカード1は、コマンド処理の実行結果であるレスポンス(処理応答)を外部装置2にコンタクト部3を介して送信する。
ここで、外部装置2は、ICカード1と通信する上位装置であり、例えば、リーダ/ライタ装置などである。
ここで、外部装置2は、ICカード1と通信する上位装置であり、例えば、リーダ/ライタ装置などである。
ICモジュール10は、コンタクト部3と、ICチップ100とを備え、例えば、テープ上にICモジュール10が複数配置されたCOT(Chip On Tape)などの形態で取引されるモジュールである。
ICモジュール10は、コンタクト部3と、ICチップ100とを備え、例えば、テープ上にICモジュール10が複数配置されたCOT(Chip On Tape)などの形態で取引されるモジュールである。なお、テープから個片抜きして切り離した単体のICモジュール10をCOTという場合がある。
コンタクト部3は、ICカード1が動作するために必要な各種信号の端子を有している。ここで、各種信号の端子は、電源電圧、クロック信号、リセット信号などを外部装置2から供給を受ける端子、及び、外部装置2と通信するためのシリアルデ―タ入出力端子(SIO端子)を有する。
ICチップ100は、例えば、1チップのマイクロプロセッサなどのLSI(Large Scale Integration)である。
ICチップ100は、例えば、1チップのマイクロプロセッサなどのLSI(Large Scale Integration)である。
次に、図2を参照して、本実施形態のICカード1のハードウェア構成について説明する。
図2は、本実施形態のICカード1のハードウェア構成例を示す図である。
図2に示すように、ICカード1は、コンタクト部3と、ICチップ100とを備えたICモジュール10を備えている。そして、ICチップ100は、UART(Universal Asynchronous Receiver Transmitter)4と、CPU5と、ROM(Read Only Memory)6と、RAM(Random Access Memory)7と、EEPROM(Electrically Erasable Programmable ROM)8とを備えている。また、各構成(4〜8)は、内部バスBS1を介して接続されている。
図2は、本実施形態のICカード1のハードウェア構成例を示す図である。
図2に示すように、ICカード1は、コンタクト部3と、ICチップ100とを備えたICモジュール10を備えている。そして、ICチップ100は、UART(Universal Asynchronous Receiver Transmitter)4と、CPU5と、ROM(Read Only Memory)6と、RAM(Random Access Memory)7と、EEPROM(Electrically Erasable Programmable ROM)8とを備えている。また、各構成(4〜8)は、内部バスBS1を介して接続されている。
UART4は、上述したSIO端子を介して、外部装置2とシリアルデータ通信を行う。UART4は、SIO端子を介して受信したシリアルデータ信号をパラレル変換したデータ(例えば、1バイトのデータ)を内部バスBS1に出力する。また、UART4は、内部バスBS1を介して取得したデータをシリアル変換して、SIO端子を介して外部装置2に出力する。UART4は、例えば、SIO端子を介してコマンドを外部装置2から受信する。また、UART4は、SIO端子を介してレスポンスを外部装置2に送信する。
CPU5は、ROM6又はEEPROM8に記憶されているプログラムを実行して、ICカード1の各種処理を行う。CPU5は、例えば、コンタクト部3を介して、UART4が受信したコマンドに応じたコマンド処理を実行する。
ROM6は、例えば、マスクROMなどの不揮発性メモリであり、ICカード1の各種処理を実行するためのプログラム、及びコマンドテーブルなどのデータを記憶する。
EEPROM8は、例えば、電気的に書き換え可能な不揮発性メモリである。EEPROM8は、ICカード1が利用する各種データを記憶する。EEPROM8は、例えば、ICカード1を利用した各種サービス(アプリケーション)に使用される情報を記憶する。
EEPROM8は、例えば、電気的に書き換え可能な不揮発性メモリである。EEPROM8は、ICカード1が利用する各種データを記憶する。EEPROM8は、例えば、ICカード1を利用した各種サービス(アプリケーション)に使用される情報を記憶する。
RAM7(記憶部の一例)は、例えば、SRAM(Static RAM)などの揮発性メモリであり、ICカード1の各種処理を行う際に利用されるデータを一時記憶する。RAM7は、複数のアプリケーションに共通に使用されるアプリケーション共通領域A3(後述する図8参照)と、外部装置2から受信するデータを一時的に記憶するAPDUバッファ領域A4(後述する図8参照)とを少なくとも有している。ここで、APDUは、例えば、アプリケーションプロトコルデータ単位(Application Protocol Data Unit)であり、コマンド及びレスポンスのデータ部分を示す。また、RAM7は、例えば、アプリケーションが新たに選択(活性化)された場合に、選択されたアプリケーションに対応するアプリケーションワーク領域A5(後述する図10参照)及び拡張APDUバッファ領域A6(後述する図10参照)が確保される。なお、RAM7が有する各領域の詳細については後述する。
次に、図3を参照して、本実施形態によるICカード1の機能構成例について説明する。
図3は、本実施形態のICカード1の機能構成例を示すブロック図である。
図3に示すように、ICカード1は、通信部40と、制御部50と、AP(アプリケーション)情報記憶部81と、チャネル情報記憶部71と、拡張領域情報記憶部72とを備えている。
ここで、図3に示されるICカード1の各部は、図2に示されるICカード1のハードウェアを用いて実現される。
図3は、本実施形態のICカード1の機能構成例を示すブロック図である。
図3に示すように、ICカード1は、通信部40と、制御部50と、AP(アプリケーション)情報記憶部81と、チャネル情報記憶部71と、拡張領域情報記憶部72とを備えている。
ここで、図3に示されるICカード1の各部は、図2に示されるICカード1のハードウェアを用いて実現される。
通信部40は、例えば、UART4と、CPU5と、ROM6に記憶されているプログラムとにより実現され、コンタクト部3を介して、例えば、外部装置2との間でコマンド及びレスポンスの送受信を行う。すなわち、通信部40は、所定の処理を要求するコマンド(処理要求)を外部装置2から受信するとともに、コマンドに対するレスポンス(応答)を外部装置2に送信する。
AP情報記憶部81は、例えば、EEPROM8により構成された記憶部である。AP情報記憶部81は、各アプリケーションに対応するアプリケーションワーク領域A5のサイズ及び拡張APDUバッファ領域A6のサイズを記憶する。ここで、図4を参照して、AP情報記憶部81が記憶するデータ例について説明する。
図4は、本実施形態のAP情報記憶部81のデータ例を示す図である。
図4に示すように、AP情報記憶部81は、例えば、「アプリケーション名」と、「APワーク領域のサイズ」と、「拡張APDUバッファ領域のサイズ」とを対応付けて記憶する。ここで、「アプリケーション名」は、アプリケーションを識別する識別情報であり、アプリケーション名の代わりに、アプリケーションID(AID)などでもよい。また、「APワーク領域のサイズ」は、アプリケーションワーク領域A5のサイズ(バイト数)を示し、「拡張APDUバッファ領域のサイズ」は、拡張APDUバッファ領域A6のサイズ(バイト数)を示している。
図4に示すように、AP情報記憶部81は、例えば、「アプリケーション名」と、「APワーク領域のサイズ」と、「拡張APDUバッファ領域のサイズ」とを対応付けて記憶する。ここで、「アプリケーション名」は、アプリケーションを識別する識別情報であり、アプリケーション名の代わりに、アプリケーションID(AID)などでもよい。また、「APワーク領域のサイズ」は、アプリケーションワーク領域A5のサイズ(バイト数)を示し、「拡張APDUバッファ領域のサイズ」は、拡張APDUバッファ領域A6のサイズ(バイト数)を示している。
図4の示す例では、「アプリケーション名」が“アプリケーションA”に対応する「APワーク領域のサイズ」が“128”バイトであり、「拡張APDUバッファ領域のサイズ」が“128”バイトであることを示している。
また、「アプリケーション名」が“アプリケーションB”に対応する「APワーク領域のサイズ」が“512”バイトであり、「拡張APDUバッファ領域のサイズ」が“256”バイトであることを示している。
このように、アプリケーションワーク領域A5のサイズと、拡張APDUバッファ領域A6のサイズとは、通信部40が受信したコマンドによって選択(活性化)されたアプリケーション(例えば、アプリケーション名)に対応して定められている。なお、アプリケーションには、アプリケーションワーク領域A5又は拡張APDUバッファ領域A6の確保を必要としない場合があり、その場合、「APワーク領域のサイズ」又は「拡張APDUバッファ領域のサイズ」に“0”が記憶される。
また、「アプリケーション名」が“アプリケーションB”に対応する「APワーク領域のサイズ」が“512”バイトであり、「拡張APDUバッファ領域のサイズ」が“256”バイトであることを示している。
このように、アプリケーションワーク領域A5のサイズと、拡張APDUバッファ領域A6のサイズとは、通信部40が受信したコマンドによって選択(活性化)されたアプリケーション(例えば、アプリケーション名)に対応して定められている。なお、アプリケーションには、アプリケーションワーク領域A5又は拡張APDUバッファ領域A6の確保を必要としない場合があり、その場合、「APワーク領域のサイズ」又は「拡張APDUバッファ領域のサイズ」に“0”が記憶される。
図3の説明に戻り、チャネル情報記憶部71は、例えば、RAM7により構成された記憶部である。チャネル情報記憶部71は、論理チャネルの状態を示す情報(例えば、論理チャネルが開いている状態(オープンの状態)であるか否かを示す情報)を記憶する。また、チャネル情報記憶部71は、論理チャネルとアプリケーションの対応を記憶する。ここで、図5を参照して、チャネル情報記憶部71が記憶するデータ例について説明する。
図5は、本実施形態のチャネル情報記憶部71のデータ例を示す図である。
図5に示すように、チャネル情報記憶部71は、例えば、「チャネル番号」と、「ステータス」と、「アプリケーション名」と対応付けて記憶する。ここで。「チャネル番号」は、論理チャネルの番号を示し、「ステータス」は、論理チャネルの状態を示している。
図5に示す例では、「チャネル番号」が“0”の「ステータス」が“オープン”(有効)であり、対応する「アプリケーション名」が“アプリケーションA”であることを示している。また、「チャネル番号」が“1”の「ステータス」が“オープン”(有効)であり、対応する「アプリケーション名」が“−”(なし)であることを示している。
図5に示すように、チャネル情報記憶部71は、例えば、「チャネル番号」と、「ステータス」と、「アプリケーション名」と対応付けて記憶する。ここで。「チャネル番号」は、論理チャネルの番号を示し、「ステータス」は、論理チャネルの状態を示している。
図5に示す例では、「チャネル番号」が“0”の「ステータス」が“オープン”(有効)であり、対応する「アプリケーション名」が“アプリケーションA”であることを示している。また、「チャネル番号」が“1”の「ステータス」が“オープン”(有効)であり、対応する「アプリケーション名」が“−”(なし)であることを示している。
再び、図3の説明に戻り、拡張領域情報記憶部72(管理情報記憶部の一例)は、例えば、RAM7により構成された記憶部である。拡張領域情報記憶部72は、現在、確保及び割り付けられている、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を管理する管理情報を記憶する。ここで、図6を参照して、拡張領域情報記憶部72が記憶するデータ例について説明する。
図6は、本実施形態の拡張領域情報記憶部72のデータ例を示す図である。
図6に示すように、拡張領域情報記憶部72は、「アプリケーション名」と、「APワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張APDUバッファ領域」の「先頭アドレス」及び「サイズ」とを対応付けた管理情報を記憶する。ここで、「先頭アドレス」は、例えば、各領域のRAM7内の先頭の物理アドレスを示し、「サイズ」は、各領域のバイト数を示す。なお、この管理情報は、アプリケーションが新たに選択(活性化)された場合に、拡張領域情報記憶部72に追加される。また、管理情報は、アプリケーションが解除(非活性化)された場合に、拡張領域情報記憶部72から消去される。
図6に示すように、拡張領域情報記憶部72は、「アプリケーション名」と、「APワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張APDUバッファ領域」の「先頭アドレス」及び「サイズ」とを対応付けた管理情報を記憶する。ここで、「先頭アドレス」は、例えば、各領域のRAM7内の先頭の物理アドレスを示し、「サイズ」は、各領域のバイト数を示す。なお、この管理情報は、アプリケーションが新たに選択(活性化)された場合に、拡張領域情報記憶部72に追加される。また、管理情報は、アプリケーションが解除(非活性化)された場合に、拡張領域情報記憶部72から消去される。
図6に示す例では、「アプリケーション名」が“アプリケーションA”であり、“アプリケーションA”に対応する「APワーク領域」の「先頭アドレス」が、“XXXX”であり、「サイズ」が“256”バイトであることを示している。また、“アプリケーションA”に対応する「APワーク領域」の「先頭アドレス」が、“XXXX”であり、「サイズ」が“128”バイトであることを示している。
再び、図3の説明に戻り、制御部50は、例えば、CPU5と、RAM7と、ROM6又はEEPROM8とにより実現され、ICカード1を統括的に制御する。制御部50は、例えば、外部装置2からICカード1に送信されたコマンド(処理要求)に応じて、各種コマンドの処理(コマンド処理)を実行する。制御部50は、例えば、論理チャネルが新たに有効になった場合(オープンになった場合)に、当該論理チャネルに対応するチャネル情報記憶部71の「ステータス」を変更して、論理チャネルを管理する。また、制御部50は、例えば、論理チャネルが新たに無効になった場合(クローズになった場合)に、当該論理チャネルに対応するチャネル情報記憶部71の「ステータス」を変更する。
また、制御部50は、例えば、通信部40が受信したコマンドによって、アプリケーションが新たに選択された場合に、新たに選択されたアプリケーションに応じて、アプリケーションに対応した一時記憶領域を確保する。すなわち、制御部50は、新たに選択されたアプリケーションに応じて、アプリケーションワーク領域A5(拡張作業領域の一例)と、拡張APDUバッファ領域A6(拡張バッファ領域の一例)とをRAM7に確保する。ここで、アプリケーションワーク領域A5は、複数のアプリケーションに共通に使用されるアプリケーション共通領域A3(共通作業領域の一例)とは異なる領域である。また、拡張APDUバッファ領域A6は、APDUバッファ領域A4(バッファ領域の一例)と合せた領域が、APDUを一時記憶するバッファ領域として使用される。
具体的に、制御部50は、例えば、SELECTコマンドなどにより新たなアプリケーションが選択された場合に、AP情報記憶部81に記憶されている当該アプリケーションに対応する「APワーク領域サイズ」及び「拡張APDUバッファサイズ」を取得する。制御部50は、取得した「APワーク領域サイズ」及び「拡張APDUバッファサイズ」に基づいて、当該アプリケーションに対応するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を、RAM7に確保する。なお、制御部50は、確保したアプリケーションワーク領域A5に、当該アプリケーションにおいて使用する変数を割り付ける。また、制御部50は、拡張(確保)した拡張APDUバッファ領域A6のサイズを含む制御情報(例えば、SELECTコマンドのFCI(File Control Information))を、コマンドに対するレスポンスとして通信部40に送信させる。
また、制御部50は、当該アプリケーションに対応する管理情報を拡張領域情報記憶部72に追加する。すなわち、制御部50は、図6に示すように、「アプリケーション名」と、「APワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張APDUバッファ領域」の「先頭アドレス」及び「サイズ」とを対応付けた管理情報を拡張領域情報記憶部72に記憶させる。
また、制御部50は、通信部40が受信したコマンドによって、選択されているアプリケーションが解除(非活性化)された場合に、アプリケーションの選択に応じて確保したアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を解放する。すなわち、制御部50は、拡張領域情報記憶部72に記憶されている管理情報のうち、当該アプリケーションに対応する管理情報を消去する。なお、制御部50は、管理情報を消去する際に、対応する管理情報のうちの「先頭アドレス」及び「サイズ」を消去するようにしてもよいし、対応する管理情報を消去するようにしてもよい。
次に、図面を参照して、本実施形態によるICカード1の動作について説明する。
図7は、本実施形態のICカード1の動作の一例を示すフローチャートである。
図7において、まず、ICカード1の制御部50は、コマンドを受信したか否かを判定する(ステップS101)。制御部50は、通信部40によってコマンドが受信されたか否かを判定する。制御部50は、コマンドを受信した場合(ステップS101:YES)に、処理をステップS102に進める。また、制御部50は、コマンドを受信していない場合(ステップS101:NO)に、処理をステップS101に戻す。
図7は、本実施形態のICカード1の動作の一例を示すフローチャートである。
図7において、まず、ICカード1の制御部50は、コマンドを受信したか否かを判定する(ステップS101)。制御部50は、通信部40によってコマンドが受信されたか否かを判定する。制御部50は、コマンドを受信した場合(ステップS101:YES)に、処理をステップS102に進める。また、制御部50は、コマンドを受信していない場合(ステップS101:NO)に、処理をステップS101に戻す。
ステップS102において、制御部50は、アプリケーションが解除されたか否かを判定する。すなわち、制御部50は、例えば、SELECTコマンドなどによって、現在、選択(活性化)されているアプリケーションが解除されるか否かを判定する。制御部50は、アプリケーションが解除された場合(ステップS102:YES)に、処理をステップS103に進める。また、制御部50は、アプリケーションが解除されていない場合(ステップS102:NO)に、処理をステップS104に進める。
ステップS103において、制御部50は、対応するアプリケーションワーク領域A5(図7では、APワーク領域という)及び拡張APDUバッファ領域A6を解放する。すなわち、制御部50は、解除されたアプリケーションに対応するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を解放する。具体的に、制御部50は、拡張領域情報記憶部72に記憶されている管理情報のうち、解除されたアプリケーションに対応する管理情報を消去して、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を解放する。
次に、ステップS104において、制御部50は、アプリケーションが新たに選択されたか否かを判定する。制御部50は、例えば、SELECTコマンドなどによって、アプリケーションが新たに選択(活性化)されるか否かを判定する。制御部50は、アプリケーションが新たに選択された場合(ステップS104:YES)に、処理をステップS105に進める。また、制御部50は、アプリケーションが新たに選択されていない場合(ステップS104:NO)に、処理をステップS106に進める。
ステップS105において、制御部50は、対応するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6をRAM7に確保する。すなわち、制御部50は、新たに選択されたアプリケーションに対応するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6をRAM7に確保する。具体的に、制御部50は、AP情報記憶部81から、当該アプリケーションに対応する「APワーク領域サイズ」及び「拡張APDUバッファサイズ」を取得する。制御部50は、取得した「APワーク領域サイズ」及び「拡張APDUバッファサイズ」に基づいて、当該アプリケーションに対応するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を、RAM7に確保する。すなわち、制御部50は、取得した「APワーク領域サイズ」及び「拡張APDUバッファサイズ」に基づいて、当該アプリケーションに対応する管理情報を拡張領域情報記憶部72に追加する。なお、アプリケーションにおける各種コマンド処理において、制御部50は、例えば、拡張領域情報記憶部72が記憶する「APワーク領域」の「先頭アドレス」を基準に、相対アドレスにより各種変数を割り付ける。
次に、ステップS106において、制御部50は、受信したコマンドに応じたコマンド処理を実行する。
次に、制御部50は、レスポンスを送信する(ステップS107)。すなわち、制御部50は、コマンド処理の結果であるレスポンスを通信部40に送信させる。ここで、上述したステップS105において、制御部50が拡張APDUバッファ領域A6を確保している場合には、制御部50は、拡張APDUバッファ領域A6のサイズを含む制御情報(例えば、FCI)をレスポンスとして通信部40に送信させる。すなわち、通信部40は、制御部50によって確保された拡張APDUバッファ領域A6のサイズを含む制御情報(例えば、FCI)を、コマンドに対するレスポンスとして、外部装置2に送信する。ステップS107の処理後に、制御部50は、処理をステップS101に戻す。
次に、制御部50は、レスポンスを送信する(ステップS107)。すなわち、制御部50は、コマンド処理の結果であるレスポンスを通信部40に送信させる。ここで、上述したステップS105において、制御部50が拡張APDUバッファ領域A6を確保している場合には、制御部50は、拡張APDUバッファ領域A6のサイズを含む制御情報(例えば、FCI)をレスポンスとして通信部40に送信させる。すなわち、通信部40は、制御部50によって確保された拡張APDUバッファ領域A6のサイズを含む制御情報(例えば、FCI)を、コマンドに対するレスポンスとして、外部装置2に送信する。ステップS107の処理後に、制御部50は、処理をステップS101に戻す。
次に、図8〜図9を参照して、本実施形態によるICカード1の動作の具体例について説明する。
図8は、本実施形態のアプリケーションに応じて領域を確保する前の一例を示すRAM7のメモリマップ図である。
図8に示すように、アプリケーションに応じて領域を確保する前の状態において、RAM7は、スタック使用領域A1と、OS管理領域A2と、アプリケーション共通領域A3と、APDUバッファ領域A4とを有している。
図8は、本実施形態のアプリケーションに応じて領域を確保する前の一例を示すRAM7のメモリマップ図である。
図8に示すように、アプリケーションに応じて領域を確保する前の状態において、RAM7は、スタック使用領域A1と、OS管理領域A2と、アプリケーション共通領域A3と、APDUバッファ領域A4とを有している。
スタック使用領域A1は、制御部50による各種コマンド処理において、サブルーチンの戻り先のアドレス情報や、テンポラリ変数などを一時記憶する領域である。
OS管理領域A2は、ICカード1のOSが管理する情報を記憶させる領域である。なお、OS管理領域A2は、上述したチャネル情報記憶部71及び拡張領域情報記憶部72を含んでいる。
OS管理領域A2は、ICカード1のOSが管理する情報を記憶させる領域である。なお、OS管理領域A2は、上述したチャネル情報記憶部71及び拡張領域情報記憶部72を含んでいる。
アプリケーション共通領域A3は、アプリケーションに依存しない共通に使用される変数などの情報を記憶する領域である。
APDUバッファ領域A4は、コマンドのAPDU、及びレスポンスのAPDUを一時記憶する領域である。なお、通信部40は、外部装置2から受信したコマンドのAPDUをAPDUバッファ領域A4に記憶させる。また、通信部40は、APDUバッファ領域A4に記憶されているレスポンスのAPDUを含むレスポンスを、外部装置2に送信する。
APDUバッファ領域A4は、コマンドのAPDU、及びレスポンスのAPDUを一時記憶する領域である。なお、通信部40は、外部装置2から受信したコマンドのAPDUをAPDUバッファ領域A4に記憶させる。また、通信部40は、APDUバッファ領域A4に記憶されているレスポンスのAPDUを含むレスポンスを、外部装置2に送信する。
スタック使用領域A1と、OS管理領域A2と、アプリケーション共通領域A3と、APDUバッファ領域A4とは、例えば、RAM7の先頭アドレスから順に配置されている。また、RAM7において、例えば、APDUバッファ領域A4以降の領域が空き領域となっている。
次に、図9及び図10を参照して、アプリケーションに応じて、一時記憶領域を確保する動作例について説明する。
図9は、本実施形態の動作の一例を示すRAM7のメモリマップ図である。
図9に示す例では、“アプリケーションA”が選択されて、“アプリケーションA”に対応するアプリケーションワーク領域A51がRAM7に確保された状態を示している。なお、ここでは、“アプリケーションA”が、拡張APDUバッファ領域A6の確保を必要としない場合の例を示している。制御部50は、AP情報記憶部81が記憶する「APワーク領域サイズ」に基づいて、アプリケーションワーク領域A51をRAM7に確保する。すなわち、アプリケーションワーク領域A51は、例えば、RAMの最終アドレスから、AP情報記憶部81が記憶する「APワーク領域サイズ」分のバイト数が確保される。
図9は、本実施形態の動作の一例を示すRAM7のメモリマップ図である。
図9に示す例では、“アプリケーションA”が選択されて、“アプリケーションA”に対応するアプリケーションワーク領域A51がRAM7に確保された状態を示している。なお、ここでは、“アプリケーションA”が、拡張APDUバッファ領域A6の確保を必要としない場合の例を示している。制御部50は、AP情報記憶部81が記憶する「APワーク領域サイズ」に基づいて、アプリケーションワーク領域A51をRAM7に確保する。すなわち、アプリケーションワーク領域A51は、例えば、RAMの最終アドレスから、AP情報記憶部81が記憶する「APワーク領域サイズ」分のバイト数が確保される。
なお、アプリケーションワーク領域A51は、“アプリケーションA”に対応するアプリケーションワーク領域であり、ICカード1が備える任意のアプリケーションワーク領域を示す場合、又は特に区別しない場合には、アプリケーションワーク領域A5として説明する。
また、図10は、本実施形態の動作の別の一例を示すRAM7のメモリマップ図である。
図10に示す例では、“アプリケーションA”が選択されて、“アプリケーションA”に対応するアプリケーションワーク領域A51及び拡張APDUバッファ領域A61がRAM7に確保された状態を示している。なお、ここでは、“アプリケーションA”が、アプリケーションワーク領域A5と拡張APDUバッファ領域A6との両方の確保を必要とする場合の例を示している。制御部50は、AP情報記憶部81が記憶する「APワーク領域サイズ」及び「拡張APDUバッファ領域サイズ」に基づいて、アプリケーションワーク領域A51及び拡張APDUバッファ領域A61をRAM7に確保する。すなわち、アプリケーションワーク領域A51は、例えば、RAM7の最終アドレスから、AP情報記憶部81が記憶する「APワーク領域サイズ」分のバイト数が確保される。また、拡張APDUバッファ領域A61は、例えば、APDUバッファ領域A4の後のアドレスから、AP情報記憶部81が記憶する「拡張APDUバッファ領域サイズ」分のバイト数が確保される。
図10に示す例では、“アプリケーションA”が選択されて、“アプリケーションA”に対応するアプリケーションワーク領域A51及び拡張APDUバッファ領域A61がRAM7に確保された状態を示している。なお、ここでは、“アプリケーションA”が、アプリケーションワーク領域A5と拡張APDUバッファ領域A6との両方の確保を必要とする場合の例を示している。制御部50は、AP情報記憶部81が記憶する「APワーク領域サイズ」及び「拡張APDUバッファ領域サイズ」に基づいて、アプリケーションワーク領域A51及び拡張APDUバッファ領域A61をRAM7に確保する。すなわち、アプリケーションワーク領域A51は、例えば、RAM7の最終アドレスから、AP情報記憶部81が記憶する「APワーク領域サイズ」分のバイト数が確保される。また、拡張APDUバッファ領域A61は、例えば、APDUバッファ領域A4の後のアドレスから、AP情報記憶部81が記憶する「拡張APDUバッファ領域サイズ」分のバイト数が確保される。
なお、拡張APDUバッファ領域A61は、“アプリケーションA”に対応する拡張APDUバッファ領域であり、ICカード1が備える任意の拡張APDUバッファ領域を示す場合、又は特に区別しない場合には、拡張APDUバッファ領域A6として説明する。
また、図9及び図10に示す状態において、ICカード1が“アプリケーションA”を解除するコマンドを受信した場合に、制御部50は、アプリケーションワーク領域A51及び拡張APDUバッファ領域A61を解放して、図8に示す状態に戻す。
また、図9及び図10に示す状態において、ICカード1が、例えば、“アプリケーションA”から“アプリケーションB”に変更するコマンドを受信した場合に、制御部50は、アプリケーションワーク領域A51及び拡張APDUバッファ領域A61を解放して、一旦、図8に示す状態に戻す。そして、制御部50は、“アプリケーションB”に対応するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6をRAM7に確保する。
また、図9及び図10に示す状態において、ICカード1が、例えば、“アプリケーションA”から“アプリケーションB”に変更するコマンドを受信した場合に、制御部50は、アプリケーションワーク領域A51及び拡張APDUバッファ領域A61を解放して、一旦、図8に示す状態に戻す。そして、制御部50は、“アプリケーションB”に対応するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6をRAM7に確保する。
以上説明したように、ICカード1は、通信部40と、RAM7(記憶部の一例)と、制御部50とを備えている。通信部40は、所定の処理を要求するコマンド(処理要求)を受信するとともに、コマンドに対するレスポンス(応答)を送信する。RAM7は、データを一時的に記憶する記憶部であって、複数のアプリケーションに共通に使用されるアプリケーション共通領域A3(共通作業領域の一例)と、外部装置2から受信するデータを記憶するAPDUバッファ領域A4(バッファ領域の一例)とを少なくとも有する。制御部50は、通信部40により受信されたコマンドによって、アプリケーションが新たに選択された場合に、新たに選択されたアプリケーションに応じて、アプリケーションワーク領域A5(拡張作業領域の一例)と、拡張APDUバッファ領域A6(拡張バッファ領域の一例)とをRAM7に確保する。ここで、アプリケーションワーク領域A5は、アプリケーション共通領域A3とは異なる領域である。また、拡張APDUバッファ領域A6は、APDUバッファ領域A4を拡張する領域である。
これにより、本実施形態によるICカード1は、アプリケーションに応じて、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6をRAM7に確保するので、データを一時的に記憶するRAM7を効率良く使用することができる。よって、本実施形態によるICカード1は、例えば、複数のアプリケーションに柔軟に対応することができ、利便性を向上させることができる。
また、本実施形態では、制御部50は、通信部40により受信されたコマンドによって、選択されているアプリケーションが解除された場合に、アプリケーションの選択に応じて確保したアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を解放する。
これにより、本実施形態によるICカード1は、アプリケーションに応じて一時的に確保したアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を柔軟に解放して、再利用することができる。よって、本実施形態によるICカード1は、さらに効率良くRAM7を使用することができる。
これにより、本実施形態によるICカード1は、アプリケーションに応じて一時的に確保したアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を柔軟に解放して、再利用することができる。よって、本実施形態によるICカード1は、さらに効率良くRAM7を使用することができる。
また、本実施形態では、アプリケーションワーク領域A5のサイズと、拡張APDUバッファ領域A6のサイズとは、通信部40により受信されたコマンドによって選択されたアプリケーションに対応して定められる。なお、本実施形態によるICカード1は、アプリケーションワーク領域A5のサイズと、拡張APDUバッファ領域A6のサイズとを、アプリケーションごとに記憶するAP情報記憶部81を備えている。制御部50は、通信部40により受信されたコマンドによって選択されたアプリケーションに対応するアプリケーションワーク領域A5のサイズ及び拡張APDUバッファ領域A6のサイズを、AP情報記憶部81から取得する。制御部50は、取得したアプリケーションワーク領域A5のサイズ、及び拡張APDUバッファ領域A6のサイズに基づいて、アプリケーションワーク領域A5と、拡張APDUバッファ領域A6とをRAM7に確保する。
これにより、本実施形態によるICカード1は、確保するアプリケーションワーク領域A5のサイズ及び拡張APDUバッファ領域A6のサイズを、アプリケーションに応じて変更することができる。
これにより、本実施形態によるICカード1は、確保するアプリケーションワーク領域A5のサイズ及び拡張APDUバッファ領域A6のサイズを、アプリケーションに応じて変更することができる。
また、本実施形態では、通信部40は、制御部50によって確保された拡張APDUバッファ領域A6を含む制御情報(例えば、FCI)を、コマンドに対するレスポンスとして外部装置2に送信する。
これにより、本実施形態によるICカード1は、外部装置2に、拡張されたAPDUバッファのサイズを認識させることができる。外部装置2は、拡張されたAPDUバッファのサイズに応じて、例えば、一度にICカード1に送信するデータサイズを決定し、コマンドを効率良くICカード1に送信することができる。
これにより、本実施形態によるICカード1は、外部装置2に、拡張されたAPDUバッファのサイズを認識させることができる。外部装置2は、拡張されたAPDUバッファのサイズに応じて、例えば、一度にICカード1に送信するデータサイズを決定し、コマンドを効率良くICカード1に送信することができる。
また、本実施形態によるICカード1は、アプリケーションワーク領域A5の先頭アドレス及びサイズと、拡張APDUバッファ領域A6の先頭アドレス及びサイズとを含む管理情報を、アプリケーションごとに記憶する拡張領域情報記憶部72(管理情報記憶部の一例)を備えている。
これにより、本実施形態によるICカード1は、拡張領域情報記憶部72が記憶する管理情報に基づいて、確保したアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を有効に使用することができる。
これにより、本実施形態によるICカード1は、拡張領域情報記憶部72が記憶する管理情報に基づいて、確保したアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を有効に使用することができる。
(第2の実施形態)
次に、図面を参照して、第2の実施形態のICカードについて説明する。
図11は、本実施形態のICカード1aの機能構成例を示すブロック図である。
なお、本実施形態のICカード1aの外観図及びハード構成は、図1及び図2に示す第1の実施形態と同様であるのでその説明を省略する。また、図11において、図8に示す構成と同一の構成については同一の符号を付し、その説明を省略する。
次に、図面を参照して、第2の実施形態のICカードについて説明する。
図11は、本実施形態のICカード1aの機能構成例を示すブロック図である。
なお、本実施形態のICカード1aの外観図及びハード構成は、図1及び図2に示す第1の実施形態と同様であるのでその説明を省略する。また、図11において、図8に示す構成と同一の構成については同一の符号を付し、その説明を省略する。
図11に示すように、ICカード1aは、通信部40と、制御部50aと、AP情報記憶部81と、チャネル情報記憶部71aとを備えている。
本実施形態では、論理チャネルに応じて一時記憶領域を確保する点と、チャネル情報記憶部71aが、管理情報記憶部である拡張領域情報記憶部72を兼ねる点が、第1の実施形態と異なる。
本実施形態では、論理チャネルに応じて一時記憶領域を確保する点と、チャネル情報記憶部71aが、管理情報記憶部である拡張領域情報記憶部72を兼ねる点が、第1の実施形態と異なる。
チャネル情報記憶部71a(管理情報記憶部の一例)は、例えば、RAM7により構成された記憶部である。チャネル情報記憶部71aは、図12に示すように、「チャネル番号」と、「ステータス」と、「アプリケーション名」と、「APワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張APDUバッファ領域」の「先頭アドレス」及び「サイズ」とを対応付けた管理情報を記憶する。
図12は、本実施形態のチャネル情報記憶部71aのデータ例を示す図である。
図12に示すように、本実施形態のチャネル情報記憶部71aは、第1の実施形態のチャネル情報記憶部71に、図6の示す拡張領域情報記憶部72が記憶する情報を含めるようにしたものである。
図12は、本実施形態のチャネル情報記憶部71aのデータ例を示す図である。
図12に示すように、本実施形態のチャネル情報記憶部71aは、第1の実施形態のチャネル情報記憶部71に、図6の示す拡張領域情報記憶部72が記憶する情報を含めるようにしたものである。
図11の説明に戻り、制御部50aは、例えば、CPU5と、RAM7と、ROM6又はEEPROM8とにより実現され、ICカード1aを統括的に制御する。制御部50aは、基本的な機能は第1の実施形態と同様であるが、上述したように、論理チャネルに応じて一時記憶領域を確保する点が第1の実施形態と異なる。
制御部50aは、例えば、通信部40が受信したコマンドによって、論理チャネルが新たに有効(オープン)にされた場合に、有効にされた論理チャネルに対応した、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を、RAM7に確保する。
制御部50aは、例えば、通信部40が受信したコマンドによって、論理チャネルが新たに有効(オープン)にされた場合に、有効にされた論理チャネルに対応した、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を、RAM7に確保する。
具体的に、制御部50aは、例えば、コマンドにより論理チャネルが新たに有効(オープン)にされた場合に、チャネル情報記憶部71aの当該論理チャネルに対応する「ステータス」を“オープン”に変更する。なお、チャネル情報記憶部71aの「アプリケーション名」には、論理チャネルにより選択されているファイルに対応する「アプリケーション名」が記憶されているものとする。
制御部50aは、チャネル情報記憶部71aから対応する「アプリケーション名」を取得し、さらに、取得した「アプリケーション名」に対応する「APワーク領域サイズ」及び「拡張APDUバッファサイズ」をAP情報記憶部81から取得する。制御部50aは、取得した「APワーク領域サイズ」及び「拡張APDUバッファサイズ」に基づいて、論理チャネル(論理チャネルに対応したアプリケーション)に応じた、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を、RAM7に確保する。また、制御部50aは、当該論理チャネルに対応する「APワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張APDUバッファ領域」の「先頭アドレス」及び「サイズ」とを、図12に示すように、チャネル情報記憶部71aに記憶させる。
また、制御部50aは、通信部40が受信した処理要求によって、有効にされた論理チャネルが無効にされた場合に、無効(クローズ)にされた論理チャネルに対応して確保されたアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を解放する。制御部50aは、例えば、チャネル情報記憶部71aの当該論理チャネルに対応する「ステータス」を“クローズ”に変更する。また、制御部50aは、チャネル情報記憶部71aの当該論理チャネルに対応する「APワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張APDUバッファ領域」の「先頭アドレス」及び「サイズ」とを消去する。これにより、制御部50aは、当該論理チャネルに対応するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を解放する。
次に、図13を参照して、本実施形態によるICカード1aの動作について説明する。
図13は、本実施形態のICカード1aの動作の一例を示すフローチャートである。
図13において、まず、ICカード1aの制御部50aは、コマンドを受信したか否かを判定する(ステップS201)。制御部50aは、通信部40によってコマンドが受信されたか否かを判定する。制御部50aは、コマンドを受信した場合(ステップS201:YES)に、処理をステップS202に進める。また、制御部50aは、コマンドを受信していない場合(ステップS201:NO)に、処理をステップS201に戻す。
図13は、本実施形態のICカード1aの動作の一例を示すフローチャートである。
図13において、まず、ICカード1aの制御部50aは、コマンドを受信したか否かを判定する(ステップS201)。制御部50aは、通信部40によってコマンドが受信されたか否かを判定する。制御部50aは、コマンドを受信した場合(ステップS201:YES)に、処理をステップS202に進める。また、制御部50aは、コマンドを受信していない場合(ステップS201:NO)に、処理をステップS201に戻す。
ステップS202において、制御部50aは、論理チャネルが無効にされたか否かを判定する。すなわち、制御部50aは、例えば、コマンドによって、現在、有効(オープン)にされている論理チャネルが無効(クローズ)にされるか否かを判定する。制御部50aは、論理チャネルが無効にされた場合(ステップS202:YES)に、処理をステップS203に進める。また、制御部50aは、論理チャネルが無効にされていない場合(ステップS202:NO)に、処理をステップS204に進める。
ステップS203において、制御部50aは、対応するアプリケーションワーク領域A5(図13では、APワーク領域という)及び拡張APDUバッファ領域A6を解放する。すなわち、制御部50aは、無効にされた論理チャネルに対応するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を解放する。具体的に、制御部50aは、チャネル情報記憶部71aに記憶されている管理情報のうち、無効にされた論理チャネルに対応する管理情報を消去して、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を解放する。なお、ここでの管理情報は、「APワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張APDUバッファ領域」の「先頭アドレス」及び「サイズ」とである。
次に、ステップS204において、制御部50aは、論理チャネルが新たに有効にされたか否かを判定する。制御部50aは、例えば、コマンドによって、論理チャネルが新たに有効(オープン)にされるか否かを判定する。制御部50aは、論理チャネルが新たに有効にされた場合(ステップS204:YES)に、処理をステップS205に進める。また、制御部50aは、論理チャネルが新たに有効にされていない場合(ステップS204:NO)に、処理をステップS206に進める。
ステップS205において、制御部50aは、対応するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6をRAM7に確保する。すなわち、制御部50aは、新たに有効にされた論理チャネルに対応するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6をRAM7に確保する。具体的に、制御部50aは、例えば、コマンドにより論理チャネルが新たに有効(オープン)にされた場合に、チャネル情報記憶部71aの当該論理チャネルに対応する「ステータス」を“オープン”に変更する。
また、制御部50aは、チャネル情報記憶部71aから対応する「アプリケーション名」を取得し、さらに、取得した「アプリケーション名」に対応する「APワーク領域サイズ」及び「拡張APDUバッファサイズ」をAP情報記憶部81から取得する。制御部50aは、取得した「APワーク領域サイズ」及び「拡張APDUバッファサイズ」に基づいて、論理チャネル(論理チャネルに対応したアプリケーション)に応じた、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を、RAM7に確保する。また、制御部50aは、当該論理チャネルに対応する「APワーク領域」の「先頭アドレス」及び「サイズ」と、「拡張APDUバッファ領域」の「先頭アドレス」及び「サイズ」とを、チャネル情報記憶部71aに記憶させる。
続く、ステップS206及びステップS207の処理は、図7に示すステップS106及びステップS107の処理と同様であるので、ここではその説明を省略する。ステップS207の処理後に、制御部50aは、処理をステップS201に戻す。
次に、図14を参照して、ICカード1aが、アプリケーションに応じて、一時記憶領域を確保する動作例について説明する。
図14は、本実施形態の動作の一例を示すRAM7のメモリマップ図である。
図14に示す例では、“論理チャネル0”(図14では、チャネル0という)により“アプリケーションA”が選択され、“論理チャネル1”(図14では、チャネル1という)により“アプリケーションB”が選択されている状態を示している。
図14は、本実施形態の動作の一例を示すRAM7のメモリマップ図である。
図14に示す例では、“論理チャネル0”(図14では、チャネル0という)により“アプリケーションA”が選択され、“論理チャネル1”(図14では、チャネル1という)により“アプリケーションB”が選択されている状態を示している。
この場合、図14に示すように、制御部50aは、“チャネル0”に応じて、“アプリケーションA”に対応するアプリケーションワーク領域A52及び拡張APDUバッファ領域A62をRAM7に確保する。また、制御部50aは、“チャネル1”に応じて、“アプリケーションB”に対応するアプリケーションワーク領域A53及び拡張APDUバッファ領域A63をRAM7に確保する。
次に、図15〜図17を参照して、ICカード1aが、論理チャネルが変更された場合の動作について説明する。
図15は、本実施形態の論理チャネルを変更する動作の一例を示すRAM7のメモリマップ図である。
図15に示す例では、図14に示す状態から、“アプリケーションA”が選択された“論理チャネル0”が無効にされ、さらに、“論理チャネル0”により、“アプリケーションC”が選択された状態を示している。
図15は、本実施形態の論理チャネルを変更する動作の一例を示すRAM7のメモリマップ図である。
図15に示す例では、図14に示す状態から、“アプリケーションA”が選択された“論理チャネル0”が無効にされ、さらに、“論理チャネル0”により、“アプリケーションC”が選択された状態を示している。
この場合、図15に示すように、制御部50aは、まず、“チャネル0”及び“アプリケーションA”に対応するアプリケーションワーク領域A52及び拡張APDUバッファ領域A62を解放する。これにより、RAM7は、空き領域EA1及び空き領域EA2を有する状態になる。次に、制御部50aは、“チャネル0”に応じて、“アプリケーションC”に対応するアプリケーションワーク領域A54及び拡張APDUバッファ領域A64をRAM7に新たに確保する。
また、図16は、本実施形態の論理チャネルを変更する動作の第1の変形例を示すRAM7のメモリマップ図である。
図16に示す例では、図14に示す状態から、“アプリケーションA”が選択された“論理チャネル0”が無効にされ、さらに、“論理チャネル0”により、“アプリケーションC”が選択された状態の別の一例を示している。
図16に示す例では、図14に示す状態から、“アプリケーションA”が選択された“論理チャネル0”が無効にされ、さらに、“論理チャネル0”により、“アプリケーションC”が選択された状態の別の一例を示している。
図16に示す例では、制御部50aは、アプリケーションワーク領域A52及び拡張APDUバッファ領域A62を解放した空き領域に、新たに確保する一時記憶領域が確保可能な場合に、当該空き領域に、一時記憶領域を確保する。すなわち、制御部50aは、“チャネル0”に応じて、図15に示すように、“アプリケーションC”に対応するアプリケーションワーク領域A55及び拡張APDUバッファ領域A65をRAM7に新たに確保する。これにより、RAM7は、空き領域EA3及び空き領域EA4を有する状態になる。
このように、図16に示す例では、制御部50aは、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を確保する際に、過去の解放により発生した空き領域に確保できるか否かを判定する。制御部50aは、過去の解放により発生した空き領域に確保できる場合に、当該空き領域に、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を確保する。また、制御部50aは、過去の解放により発生した空き領域に確保できない場合に、RAM7の新たな空き領域に、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を確保する。これにより、ICカード1aは、さらにRAM7を有効に使用することができる。
また、図17は、本実施形態の論理チャネルを変更する動作の第2の変形例を示すRAM7のメモリマップ図である。
図17に示す例では、図14に示す状態から、“アプリケーションA”が選択された“論理チャネル0”が無効にされ、さらに、“論理チャネル0”により、“アプリケーションC”が選択された状態の別の一例を示している。
図17に示す例では、図14に示す状態から、“アプリケーションA”が選択された“論理チャネル0”が無効にされ、さらに、“論理チャネル0”により、“アプリケーションC”が選択された状態の別の一例を示している。
図17に示す例では、制御部50aは、アプリケーションワーク領域A52及び拡張APDUバッファ領域A62を解放した空き領域を、アプリケーションワーク領域A52及び拡張APDUバッファ領域A62の移動により削除する。すなわち、制御部50aは、領域の移動により、図17に示すアプリケーションワーク領域A56及び拡張APDUバッファ領域A66を確保する。また、制御部50aは、“チャネル0”に応じて、図17に示すように、“アプリケーションC”に対応するアプリケーションワーク領域A57及び拡張APDUバッファ領域A67をRAM7に確保する。
このように、図17に示す例では、制御部50aは、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を確保する際に、過去の解放により発生した空き領域に確保できるか否かを判定する。制御部50aは、過去の解放により発生した空き領域が削除されるように、既に存在するアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を移動して、空き領域を連続した空き領域を生成する。そして、制御部50aは、論理チャネルが新たに有効になった場合に、当該連続した空き領域に、新たに有効になった論理チャネルに応じたアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を確保する。これにより、ICカード1aは、さらにRAM7を有効に使用することができる。
なお、上述した本実施形態では、複数の拡張APDUバッファ領域A6を確保する場合に、個別の領域としてRAM7に確保する例を説明したが、複数のアプリケーションの間で領域が重複するように確保してもよい。すなわち、制御部50aは、複数の拡張APDUバッファ領域A6を確保する場合に、図18に示すように、複数のアプリケーションの間で領域が重複するように、拡張APDUバッファ領域A6を確保するようにしてもよい。
図18は、本実施形態の動作の別の一例を示すRAM7のメモリマップ図である。
図18に示す例では、“アプリケーションB”に対応する拡張APDUバッファ領域A63のサイズが、“アプリケーションA”に対応する拡張APDUバッファ領域A62のサイズより大きい場合の一例を示している。この場合、制御部50aは、“アプリケーションA”に対応する拡張APDUバッファ領域A62を“アプリケーションB”に対応する拡張APDUバッファ領域A63と重複して領域を確保する。また、制御部50aは、“アプリケーションB”に対応する拡張APDUバッファ領域A63を確保する場合に、“アプリケーションA”に対応する拡張APDUバッファ領域A62との差分のサイズ分の領域を新たに確保する。
図18に示す例では、“アプリケーションB”に対応する拡張APDUバッファ領域A63のサイズが、“アプリケーションA”に対応する拡張APDUバッファ領域A62のサイズより大きい場合の一例を示している。この場合、制御部50aは、“アプリケーションA”に対応する拡張APDUバッファ領域A62を“アプリケーションB”に対応する拡張APDUバッファ領域A63と重複して領域を確保する。また、制御部50aは、“アプリケーションB”に対応する拡張APDUバッファ領域A63を確保する場合に、“アプリケーションA”に対応する拡張APDUバッファ領域A62との差分のサイズ分の領域を新たに確保する。
なお、ICカード1aは、コマンドの受信に対して、レスポンスを送信する。すなわち、APDUバッファ領域A4及び拡張APDUバッファ領域A6は、異なるアプリケーションにおいても、コマンドAPDUとレスポンスAPDUとの組により使用される。そのため、APDUバッファ領域A4及び拡張APDUバッファ領域A6に記憶されるデータは、1回のコマンド処理ごとに破棄しても問題ないデータである。よって、APDUバッファ領域A4及び拡張APDUバッファ領域A6が、異なるアプリケーションにおいて、重複して使用されても問題なく使用可能である。
以上説明したように、本実施形態では、制御部50aは、通信部40により受信されたコマンドによって、論理チャネルが新たに有効(オープン)にされた場合に、有効にされた論理チャネルに対応した、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6を、RAM7に確保する。
これにより、本実施形態によるICカード1aは、論理チャネルに応じて、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6をRAM7に確保するので、データを一時的に記憶するRAM7を効率良く使用することができる。よって、本実施形態によるICカード1aは、例えば、複数の論理チャネル(及びアプリケーション)に柔軟に対応することができ、利便性を向上させることができる。
これにより、本実施形態によるICカード1aは、論理チャネルに応じて、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6をRAM7に確保するので、データを一時的に記憶するRAM7を効率良く使用することができる。よって、本実施形態によるICカード1aは、例えば、複数の論理チャネル(及びアプリケーション)に柔軟に対応することができ、利便性を向上させることができる。
また、本実施形態では、制御部50aは、通信部40により受信されたコマンドによって、有効にされた論理チャネルが無効にされた場合に、無効にされた論理チャネルに対応して確保されたアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を解放する。
これにより、本実施形態によるICカード1aは、論理チャネル(及びアプリケーション)に応じて一時的に確保したアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を柔軟に解放して、再利用することができる。よって、本実施形態によるICカード1aは、さらに効率良くRAM7を使用することができる。
これにより、本実施形態によるICカード1aは、論理チャネル(及びアプリケーション)に応じて一時的に確保したアプリケーションワーク領域A5及び拡張APDUバッファ領域A6を柔軟に解放して、再利用することができる。よって、本実施形態によるICカード1aは、さらに効率良くRAM7を使用することができる。
また、本実施形態では、制御部50aは、複数の拡張APDUバッファ領域A6を確保する場合に、複数のアプリケーションの間で領域が重複するように、拡張APDUバッファ領域A6を確保する。
これにより、本実施形態によるICカード1aは、APDUバッファ領域A4と、拡張APDUバッファ領域A6とを連続した領域として確保することができる。よって、本実施形態によるICカード1aは、外部装置2との通信において、さらに効率良くRAM7を使用することができる。
これにより、本実施形態によるICカード1aは、APDUバッファ領域A4と、拡張APDUバッファ領域A6とを連続した領域として確保することができる。よって、本実施形態によるICカード1aは、外部装置2との通信において、さらに効率良くRAM7を使用することができる。
上記の各実施形態は、単独で実施される例を説明したが、各実施形態の全部又は一部を組み合わせて実施してもよい。
また、上記の各実施形態において、ICカード1(1a)は、書き換え可能な不揮発性メモリとして、EEPROM8を備える構成としたが、これに限定されるものではない。例えば、ICカード1(1a)は、EEPROM8の代わりに、フラッシュEEPROM、FeRAM(Ferroelectric Random Access Memory:強誘電体メモリ)などを備えてもよい。
また、上記の各実施形態において、ICカード1(1a)は、書き換え可能な不揮発性メモリとして、EEPROM8を備える構成としたが、これに限定されるものではない。例えば、ICカード1(1a)は、EEPROM8の代わりに、フラッシュEEPROM、FeRAM(Ferroelectric Random Access Memory:強誘電体メモリ)などを備えてもよい。
また、上記の各実施形態において、ICカード1(1a)は、コンタクト部3を介して外部装置2と通信する例を説明したが、コイルなどを用いたコンタクトレスインターフェースを介して外部装置2と通信するように構成してもよい。
また、上記の各実施形態において、携帯可能電子装置の一例として、ICカード1(1a)を用いる例を説明したが、これに限定されるものではない。携帯可能電子装置は、例えば、カード形状ではないICタグなどの電子装置であってもよい。
また、上記の各実施形態において、携帯可能電子装置の一例として、ICカード1(1a)を用いる例を説明したが、これに限定されるものではない。携帯可能電子装置は、例えば、カード形状ではないICタグなどの電子装置であってもよい。
また、上記の各実施形態において、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6をRAM7に確保する例を説明したが、アプリケーションワーク領域A5及び拡張APDUバッファ領域A6の一部をEEPROM8などの書き換え可能な不揮発性メモリに確保するようにしてもよい。
また、上記の各実施形態において、AP情報記憶部81をEEPROM8により構成する例を説明したが、これに限定されるものではなく、EEPROM8の代わりに、ROM6により構成するようにしてもよい。
また、上記の各実施形態において、AP情報記憶部81をEEPROM8により構成する例を説明したが、これに限定されるものではなく、EEPROM8の代わりに、ROM6により構成するようにしてもよい。
また、上記の各実施形態において、各アプリケーションのワーク領域における各種変数を、物理アドレスによる先頭アドレスを基準に、相対アドレスにより割り付ける例を説明したがこれに限定されるものではない。例えば、OS管理領域A2が、各種変数の論理アドレスと、物理アドレスとの変換テーブルを記憶し、各種変数を論理アドレスにより割り付けて、変換テーブルを利用して各種変数にアクセスするようにしてもよい。
また、上記の各実施形態において、拡張領域情報記憶部72及びチャネル情報記憶部71aが記憶する管理情報には、確保した領域の先頭アドレス及びサイズを含む例を説明すしたが、これに限定されるものではない。管理情報には、例えば、次に確保可能な領域の先頭アドレスをポインタとして含むようにしてもよいし、他の管理情報により、確保した領域を管理するようにしてもよい。
以上説明した少なくともひとつの実施形態によれば、外部装置2からコマンドを受信するとともに、コマンドに対するレスポンスを外部装置2に送信する通信部40と、複数のアプリケーションに共通に使用されるアプリケーション共通領域A3と、外部装置2から通信部40によって受信したデータを記憶するAPDUバッファ領域A4とを少なくとも有するRAM7と、通信部40により受信されたコマンドによって、アプリケーションが新たに選択された場合に、新たに選択されたアプリケーションに応じて、アプリケーション共通領域A3とは異なるアプリケーションワーク領域A5と、APDUバッファ領域A4を拡張する拡張バッファ領域とをRAM7に確保する制御部50とを持つことにより、RAM7を効率良く使用することができる。
上記実施形態は、以下のように表現することができる。
コンタクト部又はコイルを介して外部装置から処理要求を受信するとともに、前記処理要求に対する応答を、前記コンタクト部又は前記コイルを介して前記外部装置に送信する通信部と、
複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する記憶部と、
前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する制御部と
を備える携帯可能電子装置。
コンタクト部又はコイルを介して外部装置から処理要求を受信するとともに、前記処理要求に対する応答を、前記コンタクト部又は前記コイルを介して前記外部装置に送信する通信部と、
複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する記憶部と、
前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する制御部と
を備える携帯可能電子装置。
なお、実施形態におけるICカード1(1a)が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したICカード1(1a)が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1,1a…ICカード、2…外部装置、3…コンタクト部、4…UART、5…CPU、6…ROM、7…RAM、8…EEPROM、10…ICモジュール、40…通信部、50,50a…制御部、71,71a…チャネル情報記憶部、72…拡張領域情報記憶部、81…AP情報記憶部、100…ICチップ、PT…カード基材、BS1…内部バス
Claims (8)
- 外部装置から処理要求を受信するとともに、前記処理要求に対する応答を前記外部装置に送信する通信部と、
複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する記憶部と、
前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する制御部と
を備える携帯可能電子装置。 - 前記制御部は、前記通信部により受信された前記処理要求によって、論理チャネルが新たに有効にされた場合に、有効にされた前記論理チャネルに対応した、前記拡張作業領域及び前記拡張バッファ領域を、前記記憶部に確保する
請求項1に記載の携帯可能電子装置。 - 前記制御部は、前記通信部により受信された前記処理要求によって、有効にされた前記論理チャネルが無効にされた場合に、無効にされた前記論理チャネルに対応して確保された前記拡張作業領域及び前記拡張バッファ領域を解放する
請求項2に記載の携帯可能電子装置。 - 前記制御部は、前記通信部により受信された前記処理要求によって、選択されている前記アプリケーションが解除された場合に、前記アプリケーションの選択に応じて確保した前記拡張作業領域及び前記拡張バッファ領域を解放する
請求項1から請求項3のいずれか一項に記載の携帯可能電子装置。 - 前記拡張作業領域のサイズと、前記拡張バッファ領域のサイズとを前記アプリケーションごとに記憶する情報記憶部を備え、
前記制御部は、前記通信部により受信された前記処理要求によって選択された前記アプリケーションに対応する前記拡張作業領域のサイズ及び前記拡張バッファ領域のサイズを、前記情報記憶部から取得し、取得した前記拡張作業領域のサイズ及び前記拡張バッファ領域のサイズに基づいて、前記拡張作業領域と、前記拡張バッファ領域とを前記記憶部に確保する
請求項1から請求項4のいずれか一項に記載の携帯可能電子装置。 - 前記通信部は、前記制御部によって確保された前記拡張バッファ領域のサイズを含む制御情報を、前記処理要求に対する応答として送信する
請求項1から請求項5のいずれか一項に記載の携帯可能電子装置。 - 前記制御部は、複数の前記拡張バッファ領域を確保する場合に、複数の前記アプリケーションの間で領域が重複するように、前記拡張バッファ領域を確保する
請求項1から請求項6のいずれか一項に記載の携帯可能電子装置。 - 外部装置から処理要求を受信するとともに、前記処理要求に対する応答を前記外部装置に送信する通信部と、
複数のアプリケーションに共通に使用される共通作業領域と、前記外部装置から前記通信部によって受信したデータを記憶するバッファ領域とを少なくとも有する記憶部と、
前記通信部により受信された前記処理要求によって、アプリケーションが新たに選択された場合に、新たに選択された前記アプリケーションに応じて、前記共通作業領域とは異なる拡張作業領域と、前記バッファ領域を拡張する拡張バッファ領域とを前記記憶部に確保する制御部と
を備えるICモジュールと、
前記ICモジュールが埋め込まれたカード本体と
を備えるICカード。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015098039A JP2016212779A (ja) | 2015-05-13 | 2015-05-13 | 携帯可能電子装置、及びicカード |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015098039A JP2016212779A (ja) | 2015-05-13 | 2015-05-13 | 携帯可能電子装置、及びicカード |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016212779A true JP2016212779A (ja) | 2016-12-15 |
Family
ID=57550069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015098039A Pending JP2016212779A (ja) | 2015-05-13 | 2015-05-13 | 携帯可能電子装置、及びicカード |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016212779A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021022045A (ja) * | 2019-07-25 | 2021-02-18 | カシオ計算機株式会社 | メモリシステム、制御方法及びプログラム |
-
2015
- 2015-05-13 JP JP2015098039A patent/JP2016212779A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021022045A (ja) * | 2019-07-25 | 2021-02-18 | カシオ計算機株式会社 | メモリシステム、制御方法及びプログラム |
JP7322568B2 (ja) | 2019-07-25 | 2023-08-08 | カシオ計算機株式会社 | メモリシステム、制御方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7558110B2 (en) | IC module and cellular phone | |
US8931705B2 (en) | IC card, mobile electronic device and data processing method in IC card | |
JP2016212779A (ja) | 携帯可能電子装置、及びicカード | |
JP6181018B2 (ja) | Icカード、icモジュール、及び携帯端末 | |
WO2015113319A1 (zh) | 具有存储功能的器件 | |
US9313651B2 (en) | Memory system and method of controlling memory system | |
JP5444138B2 (ja) | 通信システム、通信方法及び携帯可能電子装置 | |
JP6499052B2 (ja) | Icカード、icモジュール、及びプログラム | |
US20150242338A1 (en) | Memory device and method enabling performance of special operations by application of memory device | |
JP2015125627A (ja) | Icカードおよび携帯可能電子装置 | |
JP5932588B2 (ja) | Icカード、携帯可能電子装置、及びicカード処理装置 | |
US9891865B2 (en) | Command issue method for issuing command to memory and command processing method of memory | |
JP6461759B2 (ja) | Icカード、及びicモジュール | |
JP2012133656A (ja) | 携帯可能電子装置及びicカード | |
JP5957347B2 (ja) | Icカード、および携帯可能電子装置 | |
JP2014186367A (ja) | Icカード及び携帯可能電子装置 | |
JP6948021B2 (ja) | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム | |
JP2019160190A (ja) | 携帯可能電子装置、及びicカード | |
JP2019053557A (ja) | 携帯可能電子装置、及びicカード | |
JP6917835B2 (ja) | 非接触通信システム、及び非接触通信方法 | |
JP6933446B2 (ja) | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム | |
JP2017142655A (ja) | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム | |
JP6396124B2 (ja) | Icカード、icモジュール、及びicカード発行方法 | |
JP6877134B2 (ja) | 電子装置、通信装置及びプログラム | |
JP3668204B2 (ja) | 携帯可能電子装置及びデータ領域割当方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20170912 Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170912 |