説明

ICカード

【課題】UIMにおいてタイムラグを少なくしてMEに実行させたい複数のコマンドがある場合、これら複数のコマンドの送受信を効率的に実行でき、MEがこれら複数のコマンドを少ないタイムラグで実行する。
【解決手段】外部装置1からのコマンド指示を解釈・実行し、その結果を応答するICカード2において、外部装置の処理能力を表す情報を取得する能力情報取得部と、外部装置からの特定のコマンド指示に対して外部装置に特定の動作を求める要求コマンドを複数生成するコマンド生成部と、特定のコマンド指示に対する応答の際、要求コマンドの発生を外部に通知する通知部と、外部から要求コマンドの取り出しを指示された際、生成した複数の要求コマンドの内、外部装置の処理能力に応じた少なくとも一つの要求コマンドを一つの応答要求コマンドにまとめて外部装置に送出する送出部とを備えた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施の形態は、ICカードに関する。
【背景技術】
【0002】
海外の多くの国は携帯電話システム方式としてGSM(登録商標)(Global System for Mobile communications)方式を採用している。GSM(登録商標)方式においては携帯電話機内にICカードの一種であるSIM(Subscriber Identitiy Module)カードが必須となっている。
日本では、GSM(登録商標)でなく、3GPP(3rd Generation Partnership Project)規格を採用した携帯電話システムが立ちあがっている。3GPP規格でもSIMカードと同様なICカード、USIM(Universal Subscriber Identitiy Module)カードが必須となっている。
【0003】
GSM(登録商標)や3GPPで使用されているSIM、USIMは携帯電話端末内に挿入される。SIM、USIMには通信事業者の通信ネットワークに接続するのに必要な鍵情報、暗号アルゴリズム、各種ネットワークパラメータが記録されている。携帯電話端末はそれらの情報を通信事業者のOTA(Over The Air)サーバ、認証・管理サーバ等に送信し、これらのサーバと認証を行い、認証結果が正しければ、通信事業者の通信サービスを受けることが可能となる。
【0004】
非特許文献1乃至3には、CAT(Card Application Toolkit)と呼ばれる仕様を規定している。CATは、ICカードの中のSIM、USIM、UIM等に代表される携帯電話等の加入者情報を識別する為のカード(以下、UIMと呼ぶ)に実装される。このCATの仕様の一つに、UIMから携帯電話(以下、MEと呼ぶ)、または、ネットワークサーバに対して、各種操作要求や情報送信を行う、Proactiveコマンドと呼ばれる機能が規定されている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】ETSI TS 102 223
【非特許文献2】ETSI TS 102 241
【非特許文献3】ETSI TS 102 221
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記規格によると、UIMにおいて、ToolKit Appletと呼ばれるApplet、もしくは、組込ソフトウエアが実行された場合、UIMではProactiveコマンド送信要求が発生することがある。この時、UIMは、MEから送信されるFetchコマンドに対するレスポンスデータとして、Proactiveコマンドを送信する。その後、MEは、受信したProactiveコマンドに基づき処理を行い、その実行結果を示すため、Terminal Responseコマンドを出力する。
【0007】
この時、現状の規格においては、1度に送信できるProactiveコマンドは1つのProactiveコマンドのみである。そのため、MEに対して、ユーザからのキー入力要求と音出力要求の2つの要求を送信したい場合、2つのProactiveコマンドを出力する必要がある。そのため、上記規格で規定される手順である、Fetch→Terminal Responseのコマンド送受信の手順を2度繰り返して実行する必要があり、実行処理が煩雑である。また、ユーザによるキー入力要求と音出力とをほぼ同時に実行させたい場合であっても、2つのProactiveコマンドの送受信に長いタイムラグが生じるため所望の動作が行なわれない恐れがある。更に2つのProactiveコマンドを所望の順序で実施させたい場合もある。
【0008】
従って、UIMにおいてタイムラグを少なくしてMEに実行させたい複数のコマンドがある場合、これら複数のコマンドの送受信を効率的に実行でき、MEがこれら複数のコマンドを少ないタイムラグで実行できる技術に対するニーズがある。
【課題を解決するための手段】
【0009】
上記課題を解決するための本発明の実施の形態によれば、外部装置からのコマンド指示を解釈・実行し、その結果を応答するICカードにおいて、前記外部装置の処理能力を表す情報を取得する能力情報取得部と、前記外部装置からの特定のコマンド指示に対して前記外部装置に特定の動作を求める要求コマンドを複数生成するコマンド生成部と、前記特定のコマンド指示に対する応答の際、前記要求コマンドの発生を外部に通知する通知部と、前記外部から前記要求コマンドの取り出しを指示された際、生成した複数の前記要求コマンドの内、前記外部装置の処理能力に応じた少なくとも一つの前記要求コマンドを一つの応答要求コマンドにまとめて前記外部装置に送出する送出部とを備えたICカードが提供される。
【図面の簡単な説明】
【0010】
【図1】第1の実施の形態のMEとUIMとの接続とそれぞれの構成ブロックとを示す図。
【図2】第1の実施の形態のMEとUIMとの間での通常のコマンド授受手順を示す図。
【図3】第1の実施の形態のMEとUIMとの間でのコマンド授受手順を示す図。
【図4】第1の実施の形態のTerminal Profileコマンドデータの構成を示す図。
【図5】第1の実施の形態のUIMにおけるTerminal Profileコマンド処理手順を示すフロー図。
【図6】第1の実施の形態のUIMにおけるFetchコマンド処理手順を示すフロー図。
【図7】本実施の形態のUIMをICカードに組み込んで構成した例について説明するためのブロック図。
【発明を実施するための形態】
【0011】
以下、本実施の形態のICカードを携帯可能電子機器であるUIMとして説明する。また、ICカードと情報を授受するTerminalを携帯電話端末として説明する。
【0012】
[第1の実施の形態]
図1は、本実施の形態の携帯電話端末(ME)1とUIM2との接続とそれぞれの構成ブロックとを示す図である。UIM2は、携帯可能電子機器であり、ME1に装着されて携帯電話アプリ利用時のデータをハンドリングする。
【0013】
ME1には、制御部11、表示部12、通信部14及び入力部15が設けられている。制御部11は、ME1内の各部の動作を統括して制御する。表示部12は、ユーザに対して情報を表示する。通信部14は、UIM2との間のデータ通信を実行する。入力部15は、ユーザからの指示を入力する。
【0014】
UIM2は、通信インターフェース部21、制御部22、RAM23、ROM24、不揮発性メモリ25を備えている。
【0015】
通信インターフェース部21は、ME1から送信されるデータを受信して制御部22に出力する。また、通信インターフェース部21は、制御部22からデータを入力してME1に送信する。制御部22は、演算、制御などを行い、UIM2を統括して制御する。ROM24は、読み出し専用メモリである。ROM24には、オペレーティングシステム(OS)などの基本ソフトウエア、アプリケーション及びデータが格納されている。RAM23は、制御部22の処理における作業領域として使用される。不揮発性メモリ25は、EEPROM、フラッシュメモリなどの書き換え可能な不揮発性のメモリであり、通常ユーザのワークエリア、プログラムエリアなどとして使用されている。後述のAppletは、不揮発性メモリ25に格納されている。
【0016】
図2は、第1の実施の形態のME1とUIM2との間での通常のコマンド授受手順を示す図である。
【0017】
ステップS01において、ME1はUIM2にTerminal Profileコマンドを送信する。Terminal Profileコマンドには、ME1によってサポートされているCAT機能を表したリストがコンテンツとして含まれる。
【0018】
UIM2では、受信したTerminal Profileコマンドに対応したAppletが起動し、Appletに記載されているプログラムが実行される。この際にME1に何らかの動作を起こさせる場合、例えば、ME1の表示部12にユーザキー入力要求を表示する処理を実行させる場合は、ME1に対してキー入力要求画面表示を指定したProactiveコマンドを送信することが必要である。そこでステップS02において、UIM2は、ME1に「91XX」のステータスワードを送信する。この「91XX」のステータスワードは、Proactiveコマンドの送信要求を表す。即ち、UIM2に送信すべきProactiveコマンドがあるということを表している。
【0019】
UIM2から「91XX」の応答コードが返されると、ME1はUIM2が長さ「XX」のデータを送出する準備ができたと判断し、ステップS03において、FETCHコマンドをUIM2に送信する。
【0020】
ステップS04において、UIM2はFETCHコマンドに対して一個のProactiveコマンド(例えば、Set Up Menuコマンド)を送出する。Set Up Menuコマンドは、ME1がUIM2に対して利用可能な機能についての情報を、UIM2がME1に通知するためのコマンドである。Proactiveコマンドを受信したME1は、そのProactiveコマンドに対応した処理を実行する。
【0021】
ステップS05において、ME1は処理の実行結果をTerminal ResponseとしてUIM2に出力する。ステップS06において、UIM2は「9000」のステータスワードを送信してProactiveコマンドの送信を終了する。
【0022】
続いて、ME1では、ユーザが例えば所望の操作を実行する。ステップS07において、ME1はUIM2にEnvelopeコマンドを送信する。ここで、Envelopeコマンドには、上述の規格において複数種類のフォーマットが規定されている。「Menu Selection」はこのフォーマットの1種類であり、ME1でメニューが選択されたというイベントが発生したことをUIM2に通知する内容である。
【0023】
UIM2では、受信したEnvelopeコマンドに対応したAppletが起動し、Appletに記載されているプログラムが実行される。この際にME1に何らかの動作を起こさせる場合、例えば、ME1の表示部12に文字情報を表示する処理を実行させる場合は、ME1に対して表示文字情報を指定したProactiveコマンドを送信することが必要である。そこでステップS08において、UIM2は、ME1に「91XX」のステータスワードを送信する。この「91XX」のステータスワードは、Proactiveコマンドの送信要求を表す。即ち、UIM2に送信すべきProactiveコマンドがあるということを表している。
【0024】
「91XX」のステータスワードを受信したME1は、ステップS09において、UIM2に対してFetchコマンドを出力する。Fetchコマンドを受信したUIM2は、ステップS10において、表示文字情報(1)を指定したProactiveコマンドをME1に送信する。
【0025】
Proactiveコマンドを受信したME1は、そのProactiveコマンドに対応した情報表示処理を実行する。そして、ステップS11において、ME1は情報表示処理の実行結果をTerminal ResponseとしてUIM2に出力する。
【0026】
UIM2は、未送信のProactiveコマンドが残っているかどうかを調べる。
【0027】
表示文字情報(2)及び表示文字情報(3)が未送信であるため、ステップS12において、UIM2は、ME1に「91XX」のステータスワードを送信する。
【0028】
ステップS13〜S18において、上述の手順を繰り返して、ME1とUIM2との間で、表示文字情報(2)及び表示文字情報(3)についての送受信が実行される。
【0029】
ステップS19において、ME1は実行結果をTerminal ResponseとしてUIM2に出力する。ステップS20において、UIM2は「9000」のステータスワードを送信してProactiveコマンドの送信を終了する。これ以降の処理は、Appletのプログラムに従う。
【0030】
上述のように、通常の手順ではME1がUIM2に対してFetchコマンドを実行する毎に、UIM2は内部に用意した複数のProactiveコマンド(この例ではDisplay Textコマンド)を一個づつ送出する。
【0031】
図3は、第1の実施の形態のME1とUIM2との間でのコマンド授受手順を示す図である。
【0032】
ステップS31において、ME1はUIM2にTerminal Profileコマンドを送信する。このTerminal Profileコマンドには、ME1の動作環境に関する情報、例えばME1の表示器に表示できるデータ容量などの情報が追加して含まれている。
【0033】
図4は、第1の実施の形態のTerminal Profileコマンドデータの構成を示す図である。
Terminal Profileコマンドデータのコマンドパラメータには、「Description」、「Clause」、「M/O/C」、「Length」の各ブロックが設けられている。「Description」ブロックには、ME1によってサポートされているCAT機能を表したリストがコンテンツとして含まれる。
【0034】
このコンテンツには、それぞれの機能ごとにME1によってサポートされているか否かのビット情報がバイトデータ(バイト単位)として記録されている。このバイトデータには、未使用領域であるRFU(Reserved For Future Use)ビットが設けられているものがある。また、複数のサブシークェント(Subsequent)バイトは、全てがRFUビットで構成されている追加可能な未使用領域である。
【0035】
従って、この未使用領域に上述の動作環境に関する情報を格納することができる。例えば、動作環境が表示機能の場合は、表示できる全文字数、表示できる文字の種類などを規定することができる。動作環境が音声機能の場合は、音声データの容量、音声方式などを規定することができる。
【0036】
図3のステップS32において、UIM2では、受信したTerminal Profileコマンドに対応したAppletが起動し、Appletに記載されているプログラムが実行される。この際、AppletはTerminal Profileコマンドに記録されているME1の動作環境に関する情報(表示機能=50文字)を取得して保存する。そして、UIM2は、ME1に「91XX」のステータスワードを送信する。この「91XX」のステータスワードは、上述のようにProactiveコマンドの送信要求を表す。
【0037】
UIM2から「91XX」の応答コードが返されると、ME1はUIM2が長さ「XX」のデータを送出する準備ができたと判断し、ステップS33において、FETCHコマンドをUIM2に送信する。
【0038】
ステップS34において、UIM2はFETCHコマンドに対して一個のProactiveコマンド(Set Up Mune)を送出する。Proactiveコマンドを受信したME1は、そのProactiveコマンドに対応した処理を実行する。
【0039】
ステップS35において、ME1は処理の実行結果をTerminal ResponseとしてUIM2に出力する。ステップS36において、UIM2は「9000」のステータスワードを送信してProactiveコマンドの送信を終了する。
【0040】
図5は、第1の実施の形態のUIM2におけるTerminal Profileコマンド処理手順を示すフロー図である。
【0041】
ステップS51において、UIM2は、ME1からのコマンドの受信を待機する。そして、コマンドを受信した場合は、ステップS52において、受信したコマンドがTerminal Profileコマンドかどうかを調べる。
【0042】
受信したコマンドがTerminal Profileコマンドでない場合(ステップS52 NO)は、ステップS53において、受信したコマンドに対応した処理を実行する。
【0043】
受信したコマンドがTerminal Profileコマンドである場合(ステップS52 Yes)は、ステップS54において、UIM2は、コマンドデータ部にME1の処理能力・動作環境に関する情報があればその情報を保存する。ステップS55において、UIM2は、コマンドデータ部にあるその他の情報を保存する。そして、ステップS56において、UIM2は、Terminal Profileコマンドを受信済みのフラグを設定する。
【0044】
図3のステップS37において、ME1はUIM2にメニュー選択のイベントが発生したことを表すEnvelopeコマンドを送信する。
【0045】
UIM2では、受信したEnvelopeコマンドに対応したAppletが起動し、Appletに記載されているプログラムが実行され、複数のProactiveコマンド(Display Text)が生成される。そして、ステップS38において、ME1にProactiveコマンドの送信要求を表す「91XX」のステータスワードを送信する。
【0046】
「91XX」のステータスワードを受信したME1は、ステップS39において、UIM2に対してFetchコマンドを出力する。Fetchコマンドを受信したUIM2は、複数の表示文字情報のうち、ME1の動作環境に関する情報(表示機能=50文字)に
適合するように表示文字情報を選択する。例えば、表示文字情報(1)の情報量が20文字、表示文字情報(2)の情報量が30文字、表示文字情報(3)の情報量が30文字であるときは、ME1の表示機能=50文字の条件に適合するように、表示文字情報(1)及び表示文字情報(2)が選択される。そして、UIM2は、ステップS40において、表示文字情報(1)及び表示文字情報(2)の情報を記録したProactiveコマンドをME1に送信する。
【0047】
Proactiveコマンドを受信したME1は、そのProactiveコマンドに対応した表示文字情報(1)及び表示文字情報(2)について情報表示処理を実行する。そして、ステップS41において、ME1は情報表示処理の実行結果をTerminal ResponseとしてUIM2に出力する。
【0048】
UIM2は、未送信のProactiveコマンドが残っているかどうかを調べる。表示文字情報(3)が未送信である。従って、ステップS42において、UIM2は、ME1に「91XX」のステータスワードを送信する。
【0049】
「91XX」のステータスワードを受信したME1は、ステップS43において、UIM2に対してFetchコマンドを出力する。Fetchコマンドを受信したUIM2は、ME1の動作環境に関する情報(表示機能=50文字)に適合するように残っている表示文字情報を選択する。残っている表示文字情報(3)の情報量が30文字であるため、ME1の表示機能=50文字の条件に適合する。そこでUIM2は、ステップS44において、表示文字情報(3)の情報を記録したProactiveコマンドをME1に送信する。
【0050】
ステップS45において、ME1は実行結果をTerminal ResponseとしてUIM2に出力する。ステップS46において、UIM2は「9000」のステータスワードを送信してProactiveコマンドの送信を終了する。これ以降の処理は、Appletのプログラムに従う。
【0051】
図6は、第1の実施の形態のUIM2におけるFetchコマンド処理手順を示すフロー図である。
【0052】
ステップS61において、UIM2は、ME1からのコマンドの受信を待機する。そして、コマンドを受信した場合は、ステップS62において、受信したコマンドがFetchコマンドかどうかを調べる。
【0053】
受信したコマンドがFetchコマンドでない場合(ステップS62 NO)は、ステップS63において、受信したコマンドに対応した処理を実行する。
【0054】
受信したコマンドがFetchコマンドである場合(ステップS62 Yes)は、ステップS64において、UIM2は、Proactiveコマンドが準備されているかどうかを調べる。Proactiveコマンドが準備されていない場合(ステップS64 NO)は、ステップS65において、UIM2は、エラー処理を実行する。
【0055】
Proactiveコマンドが準備されている場合(ステップS64 Yes)は、ステップS66において、残っている最初のProactiveコマンドをME1に対するレスポンスデータとして設定する。
【0056】
ステップS67において、UIM2は、残っているProactiveコマンドが複数あるかどうかを調べる。残っているProactiveコマンドが1つの場合(ステップS67 NO)は、ステップS75において、UIM2は、設定した1つのレスポンスデータをME1に送信する。
【0057】
残っているProactiveコマンドが複数の場合(ステップS67 Yes)は、ステップS69において、ME1の処理能力・動作環境に関する情報を、ME1から取得済みかどうかを調べる。ME1から情報を取得していない場合(ステップS69 NO)は、ステップS75において、UIM2は、設定した1つのレスポンスデータをME1に送信する。この後、通常の送信方法と同様にして1個単位でProactiveコマンドの送信が行われる。
【0058】
ME1から情報を取得している場合(ステップS69 Yes)は、ステップS70において、変数パラメータn=2を設定する。ステップS71において、UIM2は、1〜n番目までのProactiveコマンドを一括して処理可能かどうかを調べる。一括して処理可能でない場合(ステップS71 NO)、ステップS75において、UIM2は、1〜(n−1)番目までのレスポンスデータを1つのProactiveコマンドにまとめてME1に送信する。
【0059】
一括して処理可能である場合(ステップS71 Yes)、ステップS72において、UIM2は、n番目のProactiveコマンドをレスポンスデータに追加して設定する。ステップS73において、変数パラメータnに1を加算(n=n+1)する。ステップS74において、更にProactiveコマンドが残っているかどうかを調べる。
【0060】
次のProactiveコマンドが残っていない場合(ステップS74 NO)、ステップS75において、UIM2は、1〜(n−1)番目までのレスポンスデータを一つのProactiveコマンドにまとめてME1に送信する。次のProactiveコマンドが残っている場合(ステップS74 Yes)、UIM2は、ステップS71からの処理を実行する。
【0061】
以上、説明した実施の形態によれば、一つのProactiveコマンドに複数の送信データを含むことができるため、ME1は複数の処理をタイムラグを少なくして実行することができる。また、複数コマンドを取り扱う際、ME1の動作環境、処理能力等を考慮した上で複数のProactiveコマンドをまとめて送出することができるため、処理手順の簡略化、高速化を図ることができる。
【0062】
なお、上述の実施の形態ではME1の表示器の能力に応じてProactiveコマンドをまとめて送出する例を説明したが、この実施例に限られず、音声装置の能力に応じてProactiveコマンドをまとめて送出することができる。さらに、これらの例に限られず、ME1の処理能力などの情報をもとに適正な処理量を判断して一時に送信するProactiveコマンドの量を決定する内容であれば、Proactiveコマンドの種類は問わない。
【0063】
また、Proactiveコマンドの処理内容によって、まとめて送出することが適当でないと判断された場合は、UIM2は、複数のProactiveコマンドをまとめて送出することを行わないように構成することができる。
【0064】
[第1の実施の形態のバリエーション]
第1の実施の形態のバリエーションでは、UIM2は、Proactiveコマンドの実行順を指定することができる。
【0065】
例えば、ME1が処理する複数のProactiveコマンドについての実行順は、Proactiveコマンドデータの「Command Details」の「Value」ブロックにデータとして含めることができる。Proactiveコマンドの順序は実行順に配列されていても良く、実行順に配列されていなくても別に実行順が指定されていても良い。一方、実行順が指定されていない場合は、ME1が処理するProactiveコマンドについての実行順は、適宜ME1が選択しても良い。
【0066】
なお上述のUIM2は、ICカードに組み込み、カードリーダライタとの間でデータの送受信を行なうように構成することができる。
図7は、本実施の形態のUIMをICカード100に組み込んで構成した例について説明するためのブロック図である。
【0067】
図7に示すように、ICカード100は、プラスチックなどで形成されたカード状の本体101と、本体101内に内蔵されたICモジュール102とを備えている。ICモジュール102は、1つ又は複数のICチップ103と、通信I/F部21とを備える。ICチップ103と通信I/F部21とは、互いに接続された状態でICモジュール102内に埋設して形成されている。本実施の形態のUIMはICモジュール102として構成することができる。
【0068】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0069】
1…携帯電話端末、2…携帯可能電子装置、11…制御部、12…表示部、14…通信部、15…入力部、21…通信インターフェース部、22…制御部、23…RAM、24…ROM、25…不揮発性メモリ、100…ICカード、101…本体、102…ICモジュール、103…ICチップ。

【特許請求の範囲】
【請求項1】
外部装置からのコマンド指示を解釈・実行し、その結果を応答するICカードにおいて、
前記外部装置の処理能力を表す情報を取得する能力情報取得部と、
前記外部装置からの特定のコマンド指示に対して前記外部装置に特定の動作を求める要求コマンドを複数生成するコマンド生成部と、
前記特定のコマンド指示に対する応答の際、前記要求コマンドの発生を外部に通知する通知部と、
前記外部から前記要求コマンドの取り出しを指示された際、生成した複数の前記要求コマンドの内、前記外部装置の処理能力に応じた少なくとも一つの前記要求コマンドを一つの応答要求コマンドにまとめて前記外部装置に送出する送出部と
を備えたことを特徴とするICカード。
【請求項2】
前記ICカードはTerminal Profileコマンドをサポートし、
前記外部装置の処理能力を表す情報は、前記Terminal Profileコマンドに含まれることを特徴とする請求項1に記載のICカード。
【請求項3】
前記ICカードは更にProactiveコマンドをサポートし、
前記外部装置に送出する前記応答要求コマンドは、Proactiveコマンドであることを特徴とする請求項2に記載のICカード。
【請求項4】
Proactiveコマンドには、前記複数の要求コマンドそれぞれの実行順を指定する情報が含まれることを特徴とする請求項3に記載のICカード。
【請求項5】
請求項1乃至4の内いずれか1項に記載の各部を有するICモジュールと、
このICモジュールを収納したICカード本体と
を備えたことを特徴とするICカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−70140(P2013−70140A)
【公開日】平成25年4月18日(2013.4.18)
【国際特許分類】
【出願番号】特願2011−205817(P2011−205817)
【出願日】平成23年9月21日(2011.9.21)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】