(第1の実施形態)
以下、図面を参照しながら、一実施形態に係るICカード、携帯可能電子装置、及びICカードの制御方法について詳細に説明する。
本実施形態に係る携帯可能電子装置(ICカード)20及びICカードを処理する処理装置(端末装置)10は、例えば、ISO/IEC14443などにより規定されている非接触通信の機能を備える。これにより、ICカード20及び端末装置10は、互いにデータの送受信を行うことができる。
図1は、一実施形態に係るICカード処理システム1の構成例を示す。
ICカード処理システム1は、ICカード20を処理する端末装置10と、ICカード20と、を備える。端末装置10とICカード20とは、上記したように非接触通信により互いに種々のデータを送受信する。
端末装置10は、CPU11、ROM12、RAM13、不揮発性メモリ14、送受信部15、共振部16、ロジック部17、インターフェース18、及び電源部19を備える。CPU11、ROM12、RAM13、不揮発性メモリ14、送受信部15、共振部16、ロジック部17、及びインターフェース18は、それぞれバスを介して互いに接続されている。
CPU11は、端末装置10全体の制御を司る制御部として機能する。CPU11は、ROM12又は不揮発性メモリ14に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、CPU11は、送受信部15及び共振部16を介してICカード20とコマンド及びレスポンスの送受信を行う。
ROM12は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。RAM13は、ワーキングメモリとして機能する揮発性のメモリである。RAM13は、CPU11の処理中のデータなどを一時的に格納する。例えば、RAM13は、送受信部15及び共振部16を介して外部の機器と送受信するデータを一時的に格納する。また、RAM13は、CPU11が実行するプログラムを一時的に格納する。
不揮発性メモリ14は、例えばEEPROM、FRAMなどを備える。不揮発性メモリ14は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。
送受信部15及び共振部16は、ICカード20と通信を行うためのインターフェース装置である。
送受信部15は、共振部16により送受信するデータに対して信号処理を施す。例えば、送受信部15は、符号化、復号、変調、及び復調を行なう。送受信部15は、符号化及び変調を施したデータを共振部16に供給する。
共振部16は、例えば所定の共振周波数を有するアンテナを有する。共振部16は、送受信部15から供給されるデータに応じて磁界を発生させる。これにより、端末装置10は、通信可能範囲に存在するICカード20に対してデータを非接触で送信することができる。
また、共振部16は、磁界を検知し、検知した磁界に応じてデータを生成する。これにより、共振部16は、データを非接触で受信することができる。共振部16は、受信したデータを送受信部15に供給する。送受信部15は、共振部16により受信したデータに対して復調及び復号を行う。これにより、端末装置10は、ICカード20から送信された元のデータを取得することができる。
ロジック部17は、所定の演算処理を行う。例えば、ロジック部17は、CPU11の制御に基づいて、データの暗号化、復号、及び乱数生成などの演算処理を行う。
インターフェース18は、種々の装置、または端末などと通信するためのインターフェースである。例えば、インターフェース18には、キーボード、表示部、または他の端末などの上位端末30などが接続される。キーボードは、操作者による入力に基づいて操作信号を生成する操作キーなどを備える。表示部は、種々の情報を表示する。インターフェース18は、キーボードからデータを受け取り、CPU11に伝送する。例えば、利用者にキーボードにより種々の操作を入力させることにより、端末装置10は、利用者からの操作信号を取得することが出来る。
電源部19は、端末装置10の各部に電力を供給する。
図2は、一実施形態に係るICカード20の構成例を示す。
図2に示すように、ICカード20は、例えば、矩形状の本体21と、本体21内に内蔵されたICモジュール22とを備える。ICモジュール22は、ICチップ23と、共振部(アンテナ)24とを備える。ICチップ23と共振部24とは、互いに接続された状態でICモジュール22内に形成されている。
なお、本体21は、少なくとも共振部24が配設されるICモジュール22を設置可能な形状であれば、矩形状に限らず如何なる形状であっても良い。
ICチップ23は、CPU25、ROM26、RAM27、不揮発性メモリ28、送受信部29、電源部31、及びロジック部32などを備える。CPU25、ROM26、RAM27、不揮発性メモリ28、送受信部29、電源部31、及びロジック部32は、バスを介して互いに接続されている。
共振部24は、端末装置(外部機器)10の共振部16と通信を行うためのインターフェースである。共振部24は、例えば、ICモジュール22内に所定の形状で配設される金属線により構成されるアンテナを備える。
ICカード20は、端末装置10に送信するデータに応じてアンテナにより磁界を発生させる。これにより、ICカード20は、端末装置10に対してデータを送信することができる。また、ICカード20は、電磁誘導によりアンテナに発生する誘導電流に基づいて端末装置10から送信されるデータを認識する。
CPU25は、ICカード20全体の制御を司る制御部として機能する。CPU25は、ROM26あるいは不揮発性メモリ28に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、端末装置10から受信したコマンドに応じて種々の処理を行い、処理結果としてのレスポンスなどのデータの生成を行なう。
ROM26は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM26は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード20内に組み込まれる。即ち、ROM26に記憶される制御プログラム及び制御データは、予めICカード20の仕様に応じて組み込まれる。
RAM27は、ワーキングメモリとして機能する揮発性のメモリである。RAM27は、CPU25の処理中のデータなどを一時的に格納する。例えば、RAM27は、共振部24を介して端末装置10から受信したデータを一時的に格納する。またRAM27は、共振部24を介して端末装置10に送信するデータを一時的に格納する。またさらに、RAM27は、CPU25が実行するプログラムを一時的に格納する。
不揮発性メモリ28は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリを備える。不揮発性メモリ28は、ICカード20の運用用途に応じて制御プログラム及び種々のデータを格納する。
送受信部29は、端末装置10に送信するデータに対して符号化、負荷変調などの信号処理を行う。例えば、送受信部29は、端末装置10に送信するデータの変調(増幅)を行う。送受信部29は、信号処理を施したデータを共振部24に送信する。
また、送受信部29は、共振部24により受信する信号に対して復調、及び復号を行う。例えば、送受信部29は、共振部24により受信する信号の解析を行う。これにより、送受信部29は、2値の論理データを取得する。送受信部29は、解析したデータをバスを介してCPU25に送信する。
電源部31は、端末装置10の共振部16から送信される電波、特にキャリア波に基づいて電力を生成する。さらに、電源部31は、動作クロックを生成する。電源部31は、発生させた電力及び動作クロックをICカード20の各部に電力を供給する。ICカード20の各部は、電力の供給を受けた場合、動作可能な状態になる。
ロジック部32は、演算処理をハードウエアにより行う演算部である。例えば、ロジック部32は、端末装置10からのコマンドに基づいて、暗号化、復号、及び乱数の生成などの処理を行う。例えば、端末装置10から相互認証コマンドを受信する場合、ロジック部32は、乱数を生成し、生成した乱数をCPU25に伝送する。
ICカード20は、一次発行と二次発行とにより発行される。端末装置10は、一次発行において、ICカード20の不揮発性メモリ28に種々のデータを格納する為のファイルを創成する。これにより、不揮発性メモリ28には、Master File(MF)、Dedicated File(DF)、及びElementary File(EF)などが創成される。
MFは、ファイル構造の根幹となるファイルである。DFは、MFの下位に創成される。DFは、アプレット及びアプレットが有するコンポーネントなどをグループ化して格納するファイルである。EFは、DFの下位に創成される。EFは、様々なデータを格納するためのファイルである。また、MFの直下にEFが置かれる場合もある。
EFには、Working Elementary File(WEF)とInternal Elementary File(IEF)などの種類がある。WEFは、作業用EFであり、個人情報などを格納する。IEFは、内部EFであり、例えば、セキュリティのための暗号鍵(暗証番号)などのデータを記憶する。
二次発行では、EFに例えば顧客データなどの個別データが格納される。これにより、ICカード20が運用可能な状態になる。即ち、CPU25は、不揮発性メモリ28、または、ROM26に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
図3は、一実施形態に係るICカード処理システム1の動作について示す。
端末装置10は、ICカード20に初期応答要求コマンドを送信することにより、ICカード20に最大処理時間(FWT)を設定させる。FWTは、端末装置10から送信されたコマンドのフレームの最後から、ICカード20が応答を開始するまでの最大時間である。即ち、FWTは、ICカード20が端末装置10から送信されたコマンドの受信を完了してから、このコマンドに基づく処理を実行し、実行結果をレスポンスデータとして端末装置10に送信を開始するまでの時間である。
端末装置10は、コマンドの送信を完了してからこのFWTが経過してもICカード20からレスポンスが送信されない場合、レスポンスの受信を待つ受信待機状態を中止し、ICカード20からの応答が無い(無応答)と判定する。
図4は、一実施形態に係るICカード処理システム1の動作について示す。
まず、端末装置10は、ICカード20の検知を行なう為に、共振部16により送信する初期応答要求コマンドを生成する(ステップS11)。端末装置10は、生成した初期応答要求コマンドを共振部16により繰り返し通信可能範囲に送信する(ステップS12)。
ICカード20は、端末装置10の共振部16の通信可能範囲内に進入する場合、活性化されてアイドル状態になる。さらに、ICカード20は、初期応答要求コマンドを受信する。
ICカード20のCPU25は、受信した初期応答要求コマンドを解析する。CPU25は、初期応答要求コマンドに基づいて、初期応答処理を行う(ステップS13)。CPU25は、初期応答処理の結果に基づいて、初期応答要求コマンドに対するレスポンス(初期応答)を生成する(ステップS14)。ICカード20は、生成したレスポンスを端末装置10に送信する(ステップS15)。
ICカード20のCPU25は、初期応答処理を行う場合、ROM26などに記憶されている情報を読み出す。CPU25は、たとえば、ICカード20がサポートしている通信速度、最大フレーム長、プロトコルタイプ、フレーム待ち時間整数、応用データ符号化、フレームオプション、及びPUPIなどを読み出す。
CPU25は、初期応答処理の結果に基づいて、初期応答要求コマンドに対するレスポンス(初期応答)を生成し、端末装置10に送信する。即ち、CPU25は、読み出した通信速度、最大フレーム長、プロトコルタイプ、フレーム待ち時間整数、応用データ符号化、フレームオプション、及びPUPIなどを含むレスポンスを生成し、端末装置10に送信する。
PUPIは、擬似固有ICカード(PICC)識別子である。PUPIは、端末装置10側からICカード20を識別するために使用される。最大フレーム長は、ICカード20が受信可能な最大フレーム長を示す。プロトコルタイプは、ICカード20がサポートしているプロトコルタイプを示す。応用データ符号化は、ICカード20がサポートする符号化の形式を示す。フレームオプションは、ICカード20がノードアドレス(NAD)をサポートしているか、カード識別子(CID)をサポートしているかを示す。
フレーム待ち時間整数(FWI:Frame Waiting Time Integer)は、端末装置10から送信されたコマンド(コマンドを含むフレーム)の最後からICカード20が応答を開始するまでの最大処理時間(FWT)を決定するための係数である。FWIは、ISO/IEC14443では、「0」乃至「14」の整数値として規定されている。
ICカード20は、FWIの値を初期応答に付加し、端末装置10に送信する。ISO/IEC14443 Type Aの場合、ICカード20は、「Request for answer to select」コマンドに対するレスポンスである「Answer To Select」の中の、「フレーム待ち時間」を定義するためのインタフェースバイトTB(1)にFWIの値を設定する。なお、インタフェースバイトTB(1)は省略可能である。この為、インタフェースバイトTB(1)が省略されている場合、端末装置10は、FWIのデフォルトの値である「4」を採用する。
また、ISO/IEC14443 Type Bの場合、ICカード20は、初期応答要求コマンドである「REQB(REQuest command typeB)」に対するレスポンスである「ATQB(Answer To REQuest command typeB)」の「プロトコル情報」にFWIを設定する。
端末装置10は、初期応答要求コマンドに対するレスポンス(初期応答)を受信する場合、通信可能範囲内にICカード20が存在することを認識する(ステップS16)。
さらに、端末装置10は、ICカード20から送信された初期応答からFWIの値を認識する。端末装置10は、認識したFWIの値に基づいて、FWTを設定する(ステップS17)。端末装置10は、例えば、FWT=(256×16/fc)×2FWIに基づいてFWTを算出する。上記したように、FWI=14である場合、FWTが最大となる。この場合、FWTは、FWT=(256×16/13.56×106)×214=4949[ms]となる。
次に、端末装置10は、ICカード20を選択する為の選択コマンドなどをICカード20に送信し、ICカード20との間で通信路を確立する。これにより、端末装置10は、ICカード20との通信の通信速度を設定する。以降、ICカード20は、端末装置10から送信されるコマンドに基づいて、種々のコマンド処理を実行することができる。
端末装置10は、ICカード20に処理を実行させるためのコマンドを送信する(ステップS18)。
ICカード20は、コマンドを受信した場合、受信したコマンドを解析する。ICカードは、解析したコマンドに基づいてコマンド処理を実行し、レスポンスを生成する。ICカード20は、生成したレスポンスを端末装置10に送信する(ステップS19)。
なお、端末装置10とICカード20とは、所定の形式のフレームを送受信することにより、コマンドレスポンスを行う。ISO/IEC14443 Type Aの場合、「Short frame」、または「Standard frame」が用いられる。
「Short frame」は、Start of communication(通信開始信号)とEnd of communication(通信終了信号)との間にb1乃至b8の8ビットのデータビットが挿入されたフレーム形式である。
「Standard frame」は、通信開始信号と通信終了信号との間にb1乃至b8と奇数パリティビットとの組み合わせがnセット挿入されたフレーム形式である。
また、ISO/IEC14443 Type Bの場合、Start of frame(開始フレーム)とEnd of frame(終了フレーム)との間に、Start bit(論理”0”のスタートビット)、b1乃至b8の8ビットのデータビット、及びStop bit(論理”1”のストップビット)が挿入されたフレーム形式が用いられる。
本実施形態に係るICカード20は、端末装置10からコマンドを受信した場合、一定時間の間隔で受信したコマンドに応じた処理を実行中である事を示す情報を端末装置10に送信する。
図5は、第1の実施形態に係る端末装置10とICカード20との間におけるコマンドレスポンスの例を示す。
端末装置10は、ICカード20に処理を実行させるためのコマンドを送信する(ステップS21)。
ICカード20は、コマンドを受信した場合、コマンドを正常に受信出来た事を示す情報(正常受信通知)を端末装置10に送信する(ステップS22)。さらに、ICカード20は、受信したコマンドを解析し、コマンドに基づいてコマンド処理を実行する(ステップS23)。即ち、ICカード20は、コマンドを正常に受信することがした場合、コマンドを解析中、または処理中であることを示す情報を正常受信通知として端末装置10に送信する。
ICカード20は、コマンド処理が完了した場合、コマンド処理の結果に基づいてレスポンスを生成する(ステップS24)。ICカード20は、生成したレスポンスを端末装置10に送信する(ステップS25)。
端末装置10は、コマンドを送信してから時間をカウントする。端末装置10は、正常受信通知を受信した場合、コマンドを送信してから上記のように設定したFWTの間、ICカード20からのレスポンスを待つ状態を維持する(ステップS26)。端末装置10は、FWTが経過するまでにICカード20からレスポンスが送信されない場合、ICカード20においてエラーが発生したと判断する。FWTの間にレスポンスを受信した場合(ステップS27)、端末装置10は、レスポンスによりICカード20における処理結果を認識し、次の処理に移行する。
これにより、端末装置10は、ICカード20においてコマンドに応じた処理が行われているか否か把握することができる。また、ICカード20からの通知がない場合、端末装置10は、コマンドの送信中に何らかの通信エラーが発生したと認識することができる。この為、FWTの経過を待つことなく、ICカード20の状態を認識することができる為、端末装置10は、より早い段階で次の処理に移行することができる。この結果、より効率的に処理を行うことができるICカード、携帯可能電子装置、及びICカードの制御方法を提供することができる。
(第2の実施形態)
図6は、第2の実施形態に係る端末装置10とICカード20との間におけるコマンドレスポンスの例を示す。
端末装置10は、ICカード20に処理を実行させるためのコマンドを送信する(ステップS31)。
ICカード20は、コマンドを受信した場合、受信したコマンドを解析し、コマンドに基づいてコマンド処理を開始する(ステップS32)。さらに、ICカード20は、コマンド処理を開始したことを示す情報(処理中通知)を端末装置10に送信する(ステップS33)。
ICカード20は、コマンドを受信してから時間をカウントする。ICカード20は、コマンドを受信してから所定時間T1の間隔で処理中通知を端末装置10に送信する。ICカード20は、例えば、端末装置10に送信したFWIに応じたFWTに対応する時間T1の間隔で処理中通知を端末装置10に送信する。なお、時間T1は、少なくともFWTより短い時間である。即ち、ICカード20は、FWTより短い時間間隔である時間T1の間隔で処理中通知を端末装置10に送信する。なお、時間T1は、ICカード20及び端末装置10において予め設定された値であってもよい。また、ICカード20は、処理中通知により時間T1を端末装置10に通知する構成であってもよい。
端末装置10は、初期応答で通知されたFWIに基づいてFWTを算出し、FWTに対応するT1を認識する。例えば、端末装置10は、FWTに予め設定された係数を乗算することにより、時間T1を算出する。また、端末装置10は、予め時間T1を記憶しておく構成であってもよい。
端末装置10は、コマンドを送信してから時間をカウントする。端末装置10は、コマンドを送信してから時間T1以内に、ICカード20から処理中通知を受信した場合、ICカード20に送信したコマンドに応じた処理がICカード20により行われていると認識する(ステップS34)。この場合、端末装置10は、ICカード20からのレスポンスを待つ状態を維持する。即ち、この時間T1は、端末装置10がICカード20からの処理中通知を待つ待機時間である。
なお、端末装置10は、ICカード20からの処理中通知に基づいて時間T1を認識する構成であってもよい。この場合、端末装置10は、最初の処理中通知を受信するまでは、FWTを待機時間として用いてもよい。
コマンドを送信してから時間T1以内に処理中通知を受信しなかった場合、端末装置10は、ICカード20においてエラーが発生したと判断する。
ICカード20は、端末装置10に処理中通知を送信した場合、処理中通知を送信してからの時間をカウントする。ICカード20は、端末装置10に処理中通知を送信してから時間T1以内に次の処理中通知を端末装置10に送信する(ステップS35)。
端末装置10は、前の処理中通知を受信してから時間をカウントする。端末装置10は、処理中通知を受信してから時間T1以内に、ICカード20から次の処理中通知を受信した場合、ICカード20に送信したコマンドに応じた処理がICカード20により継続して行われていると認識する(ステップS36)。この場合、端末装置10は、ICカード20からのレスポンスを待つ状態を維持する。
また、前の処理中通知を受信してから時間T1以内に次の処理中通知を受信しなかった場合、端末装置10は、ICカード20においてエラーが発生したと判断する。
ICカード20は、コマンド処理を完了した場合、コマンド処理の結果に応じたレスポンスを生成する(ステップS37)。ICカード20は、生成したレスポンスを送信する(ステップS38)。
端末装置10は、前の処理中通知を受信してから時間T1以内に、ICカード20からレスポンスを受信した場合、レスポンスによりICカード20における処理結果を認識し、次の処理に移行する(ステップS39)。
また、端末装置10は、前の処理中通知を受信してから時間T1以内に、ICカード20からレスポンスを受信しなかった場合、ICカード20においてエラーが発生したと判断する。
これにより、端末装置10は、ICカード20においてコマンドに応じた処理が行われているか否か把握することができる。また、ICカード20からの処理中通知が所定時間以内にない場合、端末装置10は、コマンド処理中にICカード20において何らかのエラーが発生したと認識することができる。長い時間を要するコマンド処理をICカード20が行っている場合であっても、端末装置10は、ICカード20における処理の状態を逐次認識することができる。この為、端末装置10は、より早い段階で次の処理に移行することができる。この結果、より効率的に処理を行うことができるICカード、携帯可能電子装置、及びICカードの制御方法を提供することができる。
(第3の実施形態)
図7は、第3の実施形態に係る端末装置10とICカード20との間におけるコマンドレスポンスの例を示す。
端末装置10は、ICカード20に処理を実行させるためのコマンドを送信する(ステップS41)。
ICカード20は、コマンドを受信した場合、受信したコマンドを解析し、コマンドに基づいてコマンド処理を開始する(ステップS42)。さらに、ICカード20は、コマンド処理を開始したことを示す情報(処理中通知)を端末装置10に送信する(ステップS43)。ICカード20は、コマンドを受信してから時間をカウントする。ICカード20は、コマンドを受信してから所定時間T1の間隔で処理中通知を端末装置10に送信する。ICカード20は、例えば、端末装置10に送信したFWIに応じたFWTに対応する時間T1の間隔で処理中通知を端末装置10に送信する。
端末装置10は、コマンドを送信してから時間をカウントする。端末装置10は、コマンドを送信してからFWTに対応する時間T1以内に、ICカード20から処理中通知を受信した場合、ICカード20に送信したコマンドに応じた処理がICカード20により行われていると認識する(ステップS44)。この場合、端末装置10は、コマンド処理の継続を許可する通知をICカード20に対して送信する(ステップS45)。端末装置10は、この通知をICカード20に送信した後、ICカード20からのレスポンスを待つ状態を維持する。
また、コマンドを送信してから時間T1以内に処理中通知を受信しなかった場合、端末装置10は、ICカード20においてエラーが発生したと判断する。
ICカード20は、コマンド処理の継続を許可する通知を端末装置10から受信した場合、コマンド処理を継続して行う。さらに、ICカード20は、端末装置10に処理中通知を送信した場合、処理中通知を送信してからの時間をカウントする。ICカード20は、端末装置10に処理中通知を送信してから時間T1以内に次の処理中通知を端末装置10に送信する(ステップS46)。
端末装置10は、前の処理中通知を受信してから時間をカウントする。端末装置10は、処理中通知を受信してから時間T1以内に、ICカード20から次の処理中通知を受信した場合、ICカード20に送信したコマンドに応じた処理がICカード20により継続して行われていると認識する(ステップS47)。この場合、端末装置10は、コマンド処理の継続を許可する通知をICカード20に対して送信する(ステップS48)。端末装置10は、この通知をICカード20に送信した後、ICカード20からのレスポンスを待つ状態を維持する。
また、前の処理中通知を受信してから時間T1以内に次の処理中通知を受信しなかった場合、端末装置10は、ICカード20においてエラーが発生したと判断する。
ICカード20は、コマンド処理の継続を許可する通知を端末装置10から受信した場合、コマンド処理を継続して行う。
ICカード20は、コマンド処理を完了した場合、コマンド処理の結果に応じたレスポンスを生成する(ステップS49)。ICカード20は、生成したレスポンスを送信する(ステップS50)。
端末装置10は、前の処理中通知を受信してから時間T1以内に、ICカード20からレスポンスを受信した場合、レスポンスによりICカード20における処理結果を認識し、次の処理に移行する(ステップS51)。
また、端末装置10は、前の処理中通知を受信してから時間T1以内に、ICカード20からレスポンスを受信しなかった場合、ICカード20においてエラーが発生したと判断する。
例えば、端末装置10は、ICカード20におけるコマンド処理を中止させる場合、コマンド処理の継続を許可する通知をICカード20に送信しない。ICカード20は、端末装置10からコマンド処理の継続を許可する通知が送信されない場合、コマンド処理を中止する。
これにより、端末装置10は、ICカード20においてコマンドに応じた処理が行われているか否か把握することができる。また、ICカード20からの処理中通知が所定時間以内にない場合、端末装置10は、コマンド処理中にICカード20において何らかのエラーが発生したと認識することができる。さらに、端末装置10は、任意のタイミングでICカード20におけるコマンド処理を中止させることができる。この結果、より効率的に処理を行うことができるICカード、携帯可能電子装置、及びICカードの制御方法を提供することができる。
(第4の実施形態)
図8は、第4の実施形態に係る端末装置10とICカード20との間におけるコマンドレスポンスの例を示す。
端末装置10は、ICカード20に処理を実行させるためのコマンドを送信する(ステップS61)。
ICカード20は、コマンドを受信した場合、受信したコマンドを解析し、コマンドに基づいてコマンド処理を開始する(ステップS62)。
さらに、ICカード20は、任意で待機時間の変更を端末装置10に要求する。この待機時間は、上記の時間T1に対応する。この時間T1が短い場合、ICカード20は、頻繁に処理中通知を端末装置10に送信する必要があり、処理が負担となる可能性がある。そこで、ICカード20は、待機時間変更要求を生成する(ステップS63)。
ICカード20は、新たに設定する待機時間T2を示す情報を待機時間変更要求に付加する。また、ICカード20は、待機時間T2を算出する為の情報を待機時間変更要求に付加する構成であってもよい。この場合、ICカード20は、時間T1より長い時間を算出する為のFWIを待機時間変更要求に付加する。
ICカード20は、生成した待機時間変更要求を端末装置10に送信する(ステップS64)。
端末装置10は、待機時間変更要求を受信した場合、受信した待機時間変更要求を認識する(ステップS65)。これにより、端末装置10は、待機時間変更要求で指定された時間T2を認識する。
端末装置10は、例えば、受信した待機時間変更要求に付加されている時間T2を自身の待機時間として設定する(ステップS66)。また、待機時間変更要求にFWIが付加されている場合、端末装置10は、付加されていたFWIに基づいてFWT(=時間T2)を算出し、算出した時間T2を待機時間として設定する構成であってもよい。さらに、端末装置10は、待機時間の変更を許可したことを示す通知をICカード20に送信する(ステップS67)。
ICカード20は、待機時間の変更を許可したことを示す通知を端末装置10から受信した場合、所定時間T2の間隔で処理中通知を端末装置10に送信する(ステップS68)。例えば、ICカード20は、最初のコマンドを受信してから時間T2以内に処理中通知を端末装置10に送信する。また、ICカード20は、待機時間の変更を許可したことを示す通知を端末装置10から受信してから時間T2以内に処理中通知を端末装置10に送信する構成であってもよい。
端末装置10は、コマンドを送信してから時間をカウントする。端末装置10は、コマンドを送信してから上記の処理により設定した時間T2以内に、ICカード20から処理中通知を受信した場合、ICカード20に送信したコマンドに応じた処理がICカード20により行われていると認識する(ステップS69)。この場合、端末装置10は、コマンド処理の継続を許可する通知をICカード20に対して送信する(ステップS70)。端末装置10は、この通知をICカード20に送信した後、ICカード20からのレスポンスを待つ状態を維持する。
また、コマンドを送信してから時間T2以内に処理中通知を受信しなかった場合、端末装置10は、ICカード20においてエラーが発生したと判断する。
ICカード20は、コマンド処理の継続を許可する通知を端末装置10から受信した場合、コマンド処理を継続して行う。さらに、ICカード20は、端末装置10に処理中通知を送信した場合、処理中通知を送信してからの時間をカウントする。ICカード20は、端末装置10に処理中通知を送信してから時間T2以内に次の処理中通知を端末装置10に送信する(ステップS71)。
端末装置10は、前の処理中通知を受信してから時間をカウントする。端末装置10は、処理中通知を受信してから時間T2以内に、ICカード20から次の処理中通知を受信した場合、ICカード20に送信したコマンドに応じた処理がICカード20により継続して行われていると認識する(ステップS72)。この場合、端末装置10は、コマンド処理の継続を許可する通知をICカード20に対して送信する(ステップS73)。端末装置10は、この通知をICカード20に送信した後、ICカード20からのレスポンスを待つ状態を維持する。
また、前の処理中通知を受信してから時間T2以内に次の処理中通知を受信しなかった場合、端末装置10は、ICカード20においてエラーが発生したと判断する。
ICカード20は、コマンド処理の継続を許可する通知を端末装置10から受信した場合、コマンド処理を継続して行う。
ICカード20は、コマンド処理を完了した場合、コマンド処理の結果に応じたレスポンスを生成する(ステップS74)。ICカード20は、生成したレスポンスを送信する(ステップS75)。
端末装置10は、前の処理中通知を受信してから時間T2以内に、ICカード20からレスポンスを受信した場合、レスポンスによりICカード20における処理結果を認識し、次の処理に移行する(ステップS76)。
また、端末装置10は、前の処理中通知を受信してから時間T2以内に、ICカード20からレスポンスを受信しなかった場合、ICカード20においてエラーが発生したと判断する。
上記したように、端末装置10は、ICカード20から送信された待機時間変更要求に基づいて待機時間を変更して設定する。これにより、ICカード20は、任意で端末装置10の待機時間を伸ばすことが出来る。この為、ICカード20は、頻繁に処理中通知を端末装置10に送信することなく、コマンド処理を実行することができる。この結果、より効率的に処理を行うことができるICカード、携帯可能電子装置、及びICカードの制御方法を提供することができる。
(第5の実施形態)
図9は、第5の実施形態に係る端末装置10とICカード20との間におけるコマンドレスポンスの例を示す。
端末装置10は、ICカード20に処理を実行させるためのコマンドを送信する(ステップS81)。
ICカード20は、コマンドを受信した場合、受信したコマンドを解析し、コマンドに基づいてコマンド処理を開始する(ステップS82)。この場合、ICカード20は、端末装置10から受信したコマンドが所定のコマンドである場合、処理中通知を端末装置10に送信する。
例えば、ICカード20は、大量データの読出し、認証指示などのコマンド処理に長い時間を要するコマンドが端末装置10から送信された場合に処理中通知を端末装置10に送信する。ICカード20は、処理中通知を送信すべきコマンド(特定コマンド)を予め記憶する。ICカード20は、受信したコマンドが、特定コマンドであるか否か判定する(ステップS83)。ICカード20は、受信したコマンドが特定コマンドである場合、処理中通知を端末装置10に送信する(ステップS84)。
これ以降、端末装置10及びICカード20は、図7に示すステップS44乃至ステップS51と同様の処理を行う。即ち、ステップS85乃至ステップS92は、図7のステップS44乃至ステップS51と同様の処理であるので、説明を省略する。
ICカード20は、短時間で処理することが出来るコマンドを通常通り処理し、処理に時間を要するコマンドを受信した場合、上記したように、処理中通知を端末装置10に送信する。これにより、処理をより効率化することができる。この結果、より効率的に処理を行うことができるICカード、携帯可能電子装置、及びICカードの制御方法を提供することができる。
なお、上記の実施形態のICカード20は、上記の処理中通知を所定の形式のフレームを端末装置10に送信することにより通知する。即ち、ICカード20は、所定の波形の電波を出力することにより、端末装置10に処理中通知を通知する。
図10乃至図12は、ISO/IEC14443 TypeAの場合の処理中通知のフレーム形式の例を示す。
ICカード20及び端末装置10は、Highレベル(Hレベル)と、このHレベルより電位の低いLowレベル(Lレベル)とを組合せて波形を生成することにより、「0」または「1」の論理値を表現することができる。
図10に示すフレームは、通信開始信号と通信終了信号とが連結されたフレームである。
図11に示すフレームは、通信開始信号と通信終了信号との間に、論理値が「0」であるb1乃至b9の9ビットと、論理値が「1」であるビットとの組み合わせがnセット挿入されたフレームである。
図12に示すフレームは、通信開始信号と通信終了信号との間に、Lレベルの波形がb1乃至b9の9ビットに相当する期間に亘って連続するフレームである。
ICカード20は、図10乃至図12に示すようなフレームを処理中通知として端末装置10に送信する。端末装置10は、図10乃至図12に示すようなフレームを受信した場合、ICカード20から処理中通知が送信されたことを認識する。即ち、ICカード20は、処理中通知を所定の波形パターンにより端末装置10に通知する。
なお、図10により示されるフレームは、図11及び図12により示されるフレームに比べて構成が簡易である。この為、処理中通知を通知する処理に要するICカード20の負担が少ない。また、図12により示されるフレームは、Lレベルの波形が連続する為、データ部の変調が不要である。この為、図12により示されるフレームは、図11により示されるフレームに比べて、ICカード20の電力消費を抑えることができる。
また、ICカード20は、正常受信通知、待機時間変更要求などを図10乃至図12により示されるフレームを用いて端末装置10に通知する構成であってもよい。
図13乃至図15は、ISO/IEC14443 TypeBの場合の処理中通知のフレーム形式の例を示す。
ICカード20及び端末装置10は、TypeAの場合と同様に、Highレベル(Hレベル)と、このHレベルより電位の低いLowレベル(Lレベル)とを組合せて波形を生成することにより、「0」または「1」の論理値を表現することができる。
図13に示すフレームは、開始フレームと終了フレームとが連結されたフレームである。
図14に示すフレームは、開始フレームと終了フレームとの間に、「0」または「1」の論理値がb1乃至b10の10ビットに亘って連続するデータ部が挿入されたフレームである。なお、データ部は、複数であってもよい。また、データ部の前には論理値が「0」であるスタートビットが付加され、データ部の後ろには、論理値が「1」であるストップビットが付加される。
図15に示すフレームは、開始フレームと終了フレームとの間に、Lレベルの波形がb1乃至b10の10ビットに相当する期間に亘って連続するデータ部が挿入されたフレームである。
ICカード20は、図13乃至図15に示すようなフレームを処理中通知として端末装置10に送信する。端末装置10は、図13乃至図15に示すようなフレームを受信した場合、ICカード20から処理中通知が送信されたことを認識する。即ち、ICカード20は、処理中通知を所定の波形パターンにより端末装置10に通知する。
なお、図13により示されるフレームは、図14及び図15により示されるフレームに比べて構成が簡易である。この為、処理中通知を通知する処理に要するICカード20の負担が少ない。また、図15により示されるフレームは、Lレベルの波形が連続する為、データ部の変調が不要である。この為、図15により示されるフレームは、図14により示されるフレームに比べて、ICカード20の電力消費を抑えることができる。
また、ICカード20は、正常受信通知、待機時間変更要求などを図13乃至図15により示されるフレームを用いて端末装置10に通知する構成であってもよい。
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。