(57)【要約】【課題】外部機器が複数のコマンドにより電子情報記憶媒体に処理を実行させる際の外部機器と電子情報記憶媒体間の通信データ量を削減し、通信時間を短縮することができる電子情報記憶媒体等を提供する。【解決手段】複数のコマンドを含むコマンド群と、当該複数のコマンドの実行順序と、当該コマンド群を識別するための識別情報とを対応付けて記憶しておき、コマンド群を識別可能なコマンド群実行コマンドを外部機器から受信した場合に、記憶しておいたコマンド群であって、コマンド群実行コマンドで識別されるコマンド群に含まれる複数のコマンドを当該コマンド群に対応する実行順序で実行する。【選択図】図４
2019168944.tif 000002
【特許請求の範囲】
【請求項１】
複数のコマンドを含むコマンド群と、前記複数のコマンドの実行順序と、前記コマンド群を識別するための識別情報とを対応付けて記憶する不揮発性メモリと、
前記コマンド群を識別可能なコマンド群実行コマンドを外部機器から受信した場合に、前記コマンド群実行コマンドで識別される前記コマンド群に含まれる前記複数のコマンドを前記実行順序で実行する実行手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項２】
請求項１に記載の電子情報記憶媒体であって、
前記実行手段は、前記不揮発性メモリに記憶させる前記コマンド群と、前記複数のコマンドの実行順序と、前記コマンド群を識別するための識別情報とを含むコマンドであって、前記コマンド群を書き込むためのコマンドであるコマンド群書き込みコマンドを外部機器から受信した場合に、前記コマンド群書き込みコマンドに含まれる前記コマンド群と、前記実行順序と、前記識別情報とを対応付けて前記不揮発性メモリに記憶させることを特徴とする電子情報記憶媒体。
【請求項３】
請求項２に記載の電子情報記憶媒体であって、
前記実行手段は、前記コマンド群書き込みコマンドに含まれるコマンド群に含まれる複数のコマンドの中に、予め書き込むことが禁止されているコマンドが含まれる場合、前記コマンド群書き込みコマンドに含まれる前記コマンド群と、前記実行順序と、前記識別情報とを前記不揮発性メモリに記憶させないことを特徴とする電子情報記憶媒体。
【請求項４】
請求項１乃至３の何れか一項に記載の電子情報記憶媒体であって、
前記実行手段は、前記不揮発性メモリに記憶されている前記コマンド群を識別するための識別情報を含むコマンドであって、前記コマンド群を消去するためのコマンドであるコマンド群消去コマンドを外部機器から受信した場合に、前記コマンド群消去コマンドに含まれる前記識別情報で識別される前記コマンド群を前記不揮発性メモリから消去することを特徴とする電子情報記憶媒体。
【請求項５】
請求項１乃至４の何れか一項に記載の電子情報記憶媒体であって、
前記コマンド群に含まれるコマンドには、前記不揮発性メモリにデータを書き込むコマンドが含まれていることを特徴とする電子情報記憶媒体。
【請求項６】
請求項１乃至５の何れか一項に記載の電子情報記憶媒体を備えるＩＣカード。
【請求項７】
複数のコマンドを含むコマンド群と、前記複数のコマンドの実行順序と、前記コマンド群を識別するための識別情報とを対応付けて記憶する不揮発性メモリを備える電子情報記憶媒体によるコマンド群実行方法であって、
前記コマンド群を識別可能なコマンド群実行コマンドを外部機器から受信した場合に、前記コマンド群実行コマンドで識別される前記コマンド群に含まれる前記複数のコマンドを前記実行順序で実行する実行工程と、
を含むことを特徴とするコマンド群実行方法。
【請求項８】
複数のコマンドを含むコマンド群と、前記複数のコマンドの実行順序と、前記コマンド群を識別するための識別情報とを対応付けて記憶する不揮発性メモリを備える電子情報記憶媒体に含まれるコンピュータを、
前記コマンド群を識別可能なコマンド群実行コマンドを外部機器から受信した場合に、前記コマンド群実行コマンドで識別される前記コマンド群に含まれる前記複数のコマンドを前記実行順序で実行する実行手段、
として機能させることを特徴とするコマンド群実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＣ（Integrated Circuit）チップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
ＩＣカードに搭載されるＩＣチップ等の電子情報記憶媒体は、ＣＰＵ、ＲＡＭ、不揮発性メモリ等を備えている。電子情報記憶媒体のＣＰＵは、カード発行機やリーダ・ライタなどの外部機器からコマンドを受信すると、当該コマンドに対応するコマンド処理を実行し、実行結果を示すＳＷ（Status Word）をレスポンスとして送信する。
【０００３】
また、電子情報記憶媒体のＣＰＵの性能向上により、電子情報記憶媒体内部のコマンド処理よりも、外部機器がコマンドを送信してから電子情報記憶媒体がコマンド処理を実行して応答するまでの通信処理に時間が掛かるようになっている。特に、大きなデータを電子情報記憶媒体の不揮発性メモリに書き込む場合など、外部機器と電子情報記憶媒体間において通信するデータの量が増えることでより顕著になる。
【０００４】
ここで、電子情報記憶媒体のコマンド処理の一例として、ＤＦ（Dedicated File）を選択し、次いで、当該ＤＦの配下のＥＦ（Elementary File）を選択し、更に、当該ＥＦにデータの書き込みを行う場合に、外部機器と電子情報記憶媒体間で通信するデータのデータ量及び通信時間を計算する。具体的には、以下のコマンド及びレスポンスが外部機器と電子情報記憶媒体の間で通信される。
【０００５】
（１）［外部機器→電子情報記憶媒体］
・ＤＦを選択するためのＳＥＬＥＣＴコマンド
ＣＬＡ部(１バイト)＋ＩＮＳ部(１バイト)＋Ｐ１部(１バイト)＋Ｐ２部(１バイト)＋Ｌｃ部(１バイト)＋Ｄａｔａ部(６バイト)＝１１バイト
※Ｄａｔａ部にはＤＦを識別するための６バイトのＩＤが設定される
（２）［電子情報記憶媒体→外部機器］
・（１）に対するレスポンス
ＳＷ（２バイト）
（３）［外部機器→電子情報記憶媒体］
・ＥＦを選択するためのＳＥＬＥＣＴコマンド
ＣＬＡ部(１バイト)＋ＩＮＳ部(１バイト)＋Ｐ１部(１バイト)＋Ｐ２部(１バイト)＋Ｌｃ部(１バイト)＋Ｄａｔａ部(２バイト)＝７バイト
※Ｄａｔａ部にはＥＦを識別するための２バイトのＩＤが設定される
（４）［電子情報記憶媒体→外部機器］
・（３）に対するレスポンス
ＳＷ（２バイト）
（５）［外部機器→電子情報記憶媒体］
・ＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンド
ＣＬＡ部(１バイト)＋ＩＮＳ部(１バイト)＋Ｐ１部(１バイト)＋Ｐ２部(１バイト)＋Ｌｃ部(１バイト)＋Ｄａｔａ部(２５５バイト)＝２６０バイト
※Ｄａｔａ部に不揮発性メモリに書き込む２５５バイトのデータが設定された場合を想定
（６）［電子情報記憶媒体→外部機器］
・（５）に対するレスポンス
ＳＷ（２バイト）
【０００６】
すなわち、外部機器と電子情報記憶媒体の間で通信されるコマンド及びレスポンスのデータ量は、「１１＋２＋７＋２＋２６０＋２＝２８４（バイト）」となる。接触インターフェイスの通信規格であるＩＳＯ／ＩＥＣ７８１６−３のＴ＝１プロトコルによると、１バイト送信には１２ｅｔｕを必要とする。周波数＝３．５Ｍｈｚ、通信速度＝９６００ｂｐｓにて通信した場合、１ｅｔｕは「３７２ｃｌｏｃｋ／３．５ＭＨｚ≒１０４．１７μs」となる。したがって、２８４バイトを通信するために掛かる通信時間は「１０４．１７μs×１２ｅｔｕ×２８４バイト≒３５５．０ｍｓ」となってしまう。
【０００７】
一方で、特許文献１には、高速通信を効率よく実施する技術について開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１４−１８２７７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１の技術によれば、通信時間を短縮することも可能だが、通信データ量が多い場合には、やはり要求される時間内に通信処理を完了できない場合がある。
【００１０】
そこで、本発明は、外部機器が複数のコマンドにより電子情報記憶媒体に処理を実行させる際の通信データ量を削減し、通信時間を短縮することができる電子情報記憶媒体等を提供することを課題とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、請求項１に記載の発明は、複数のコマンドを含むコマンド群と、前記複数のコマンドの実行順序と、前記コマンド群を識別するための識別情報とを対応付けて記憶する不揮発性メモリと、前記コマンド群を識別可能なコマンド群実行コマンドを外部機器から受信した場合に、前記コマンド群実行コマンドで識別される前記コマンド群に含まれる前記複数のコマンドを前記実行順序で実行する実行手段と、を備えることを特徴とする
【００１２】
請求項２に記載の発明は、請求項１に記載の電子情報記憶媒体であって、前記実行手段は、前記不揮発性メモリに記憶させる前記コマンド群と、前記複数のコマンドの実行順序と、前記コマンド群を識別するための識別情報とを含むコマンドであって、前記コマンド群を書き込むためのコマンドであるコマンド群書き込みコマンドを外部機器から受信した場合に、前記コマンド群書き込みコマンドに含まれる前記コマンド群と、前記実行順序と、前記識別情報とを対応付けて前記不揮発性メモリに記憶させることを特徴とする。
【００１３】
請求項３に記載の発明は、請求項２に記載の電子情報記憶媒体であって、前記実行手段は、前記コマンド群書き込みコマンドに含まれるコマンド群に含まれる複数のコマンドの中に、予め書き込むことが禁止されているコマンドが含まれる場合、前記コマンド群書き込みコマンドに含まれる前記コマンド群と、前記実行順序と、前記識別情報とを前記不揮発性メモリに記憶させないことを特徴とする。
【００１４】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の電子情報記憶媒体であって、前記実行手段は、前記不揮発性メモリに記憶されている前記コマンド群を識別するための識別情報を含むコマンドであって、前記コマンド群を消去するためのコマンドであるコマンド群消去コマンドを外部機器から受信した場合に、前記コマンド群消去コマンドに含まれる前記識別情報で識別される前記コマンド群を前記不揮発性メモリから消去することを特徴とする。
【００１５】
請求項５に記載の発明は、請求項１乃至４の何れか一項に記載の電子情報記憶媒体であって、前記コマンド群に含まれるコマンドには、前記不揮発性メモリにデータを書き込むコマンドが含まれていることを特徴とする。
【００１６】
請求項６に記載の発明は、請求項１乃至５何れか一項に記載の電子情報記憶媒体を備えるＩＣカードである。
【００１７】
請求項７に記載の発明は、複数のコマンドを含むコマンド群と、前記複数のコマンドの実行順序と、前記コマンド群を識別するための識別情報とを対応付けて記憶する不揮発性メモリを備える電子情報記憶媒体によるコマンド群実行方法であって、前記コマンド群を識別可能なコマンド群実行コマンドを外部機器から受信した場合に、前記コマンド群実行コマンドで識別される前記コマンド群に含まれる前記複数のコマンドを前記実行順序で実行する実行工程と、を含むことを特徴とする。
【００１８】
請求項８に記載の発明は、複数のコマンドを含むコマンド群と、前記複数のコマンドの実行順序と、前記コマンド群を識別するための識別情報とを対応付けて記憶する不揮発性メモリを備える電子情報記憶媒体に含まれるコンピュータを、前記コマンド群を識別可能なコマンド群実行コマンドを外部機器から受信した場合に、前記コマンド群実行コマンドで識別される前記コマンド群に含まれる前記複数のコマンドを前記実行順序で実行する実行手段、として機能させることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、複数のコマンドを含むコマンド群を、当該複数のコマンドの実行順序と当該コマンド群の識別情報と対応付けて不揮発性メモリに記憶しておき、コマンド群を識別可能なコマンド群実行コマンドを外部機器から受信した場合に、当該コマンド群実行コマンドで識別されるコマンド群に含まれる複数のコマンドを当該コマンド群に対応する実行順序で実行する。これにより、外部機器が複数のコマンドにより電子情報記憶媒体に処理を実行させる際の通信データ量を削減し、通信時間を短縮することができる。
【図面の簡単な説明】
【００２０】
【図１】ＩＣカード１に搭載されるＩＣチップ１ａのハードウェア構成例を示す図である。
【図２】コマンド群連続実行コマンドのコマンドフォーマットの構成例を示す概念図である。
【図３】（Ａ）は、コマンド群の一例を示す図であり、（Ｂ）は、コマンド群テーブル２００の一例を示す図であり、（Ｃ）は、登録不可リスト３００の一例を示す図である。
【図４】コマンド群連続実行コマンド（書き込み）送信時における処理例を示す図である。
【図５】コマンド群連続実行コマンド（書き込み）送信時における処理例を示す図である。
【図６】コマンド群連続実行コマンド（実行）送信時における処理例を示す図である。
【図７】コマンド群連続実行コマンド（実行）送信時における処理例を示す図である。
【図８】コマンド群連続実行コマンド（実行）送信時における処理例を示す図である。
【図９】コマンド群連続実行コマンド（実行）送信時における処理例を示す図である。
【図１０】コマンド群連続実行コマンド（実行）送信時における処理例を示す図である。
【図１１】コマンド群連続実行コマンド（実行）送信時における処理例を示す図である。
【図１２】コマンド群連続実行コマンド（消去）送信時における処理例を示す図である。
【図１３】ＣＰＵ１０によるコマンド受信時処理の一例を示すフローチャートである。
【図１４】ＣＰＵ１０によるコマンド群書き込み処理の一例を示すフローチャートである。
【図１５】ＣＰＵ１０によるコマンド群消去処理の一例を示すフローチャートである。
【図１６】ＣＰＵ１０によるコマンド群実行処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣチップ並びにＩＣチップを搭載するＩＣカードに対して本発明を適用した場合の実施の形態である。
【００２２】
［１．ＩＣチップ１ａの構成］
まず、図１を参照して、ＩＣカード１に搭載されるＩＣチップ１ａの構成について説明する。図１は、ＩＣカード１に搭載されるＩＣチップ１ａのハードウェア構成例を示す図である。本実施形態のＩＣカード１は、接触によるデータ通信と非接触によるデータ通信の２つの通信機能を兼ね備えたデュアルインターフェース型ＩＣカードである。但し、ＩＣカード１の種類はデュアルインターフェース型ＩＣカードに限定されず、キャッシュカードやクレジットカードと同じ大きさのプラスチック製カードにＩＣチップ１ａがエンベットされた接触型ＩＣカードであってもよいし、また、アンテナコイルを内蔵し無線でリーダ・ライタとデータ通信する非接触型ＩＣカードであってもよい。
【００２３】
図１に示すように、ＩＣチップ１ａは、ＣＰＵ（Central Processing Unit）１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、不揮発性メモリ１３、及びＩ／Ｏ回路１４を備えて構成される。ＣＰＵ１０は、ＲＯＭ１２又は不揮発性メモリ１３に記憶された各種プログラムを実行するプロセッサ（コンピュータ）である。なお、Ｉ／Ｏ回路１４は、外部機器２とのインターフェイスを担う。これにより、ＩＣチップ１ａは、リーダ・ライタを備える外部機器２との間で接触又は非接触で通信を行うことができる。接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、Ｃ１〜Ｃ８の８個の端子が備えられている。例えば、Ｃ１端子は電源端子（ＩＣチップ１ａへ電源供給する端子）、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部機器２との間で通信を行うための端子である。一方、非接触式のＩＣチップ１ａの場合、Ｉ／Ｏ回路１４には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部機器２の例としては、ＩＣカード発行機やサーバ装置が挙げられる。
【００２４】
不揮発性メモリ１３には、例えばフラッシュメモリ又は「Electrically Erasable Programmable Read-Only Memory」などを適用することができる。不揮発性メモリ１３は、ＯＳ、各種アプリケーション、図１３〜図１６に示す処理を実行するためのプログラム等を記憶する。なお、ＯＳについては、その一部を不揮発性メモリ１３が記憶し、その他の部分をＲＯＭ１２が記憶することとしてもよい。
【００２５】
［２．コマンド群連続実行コマンド］
次に、本実施形態特有のコマンド群連続実行コマンドについて説明する。図２に示すように、コマンド群連続実行コマンドは、外部機器２がコマンド群の書き込み、コマンド群の消去、及び、コマンド群の実行という３つの種類の処理をＩＣチップ１ａに実行させるためのコマンドである（それぞれの種類をコマンド群連続実行コマンドの「コマンド群書き込み機能」、「コマンド群消去機能」及び「コマンド群実行機能」という場合がある）。コマンド群の書き込み機能は、複数のコマンドを含むコマンド群を不揮発性メモリ１３に書き込む（登録する）機能である。コマンド群の消去機能は、不揮発性メモリ１３に登録したコマンド群を削除する機能である。そして、コマンド群の実行機能は、不揮発性メモリ１３に登録したコマンド群に含まれるコマンドを連続実行する機能である。
【００２６】
次に、図２を用いて、コマンド群連続実行コマンドのそれぞれの機能に対応するコマンドフォーマットについて説明する。なお、図２に示すように、コマンドフォーマットは機能毎に異なる。具体的には、「コマンド群書き込み機能」のコマンドフォーマットは、ＣＬＡ部、ＩＮＳ部、Ｐ１部、Ｐ２部、Ｌｃ部及びＤＡＴＡ部で構成される（このフォーマットを「Ｃａｓｅ３」という）。また、「コマンド群消去機能」のコマンドフォーマットは、ＣＬＡ部、ＩＮＳ部、Ｐ１部及びＰ２部で構成される（このフォーマットを「Ｃａｓｅ１」という）。更に、「コマンド群実行機能」のコマンドフォーマットは、ＣＬＡ部、ＩＮＳ部、Ｐ１部、Ｐ２部及びＬｅ部で構成される（このフォーマットを「Ｃａｓｅ２」という）。但し、「コマンド群実行機能」のコマンドフォーマットは、Ｌｅ部を含まない場合（Ｃａｓｅ１の場合）もある。
【００２７】
まず、ＣＬＡ部及びＩＮＳ部は、何れの機能であってもそれぞれ「Ｆ０ｈ」、「Ｆ１ｈ」が設定される。
【００２８】
Ｐ１部は、機能毎に割り当てられた値が設定される。具体的には、「コマンド群書き込み機能」であればＰ１部に「０１ｈ」が設定され、「コマンド群消去機能」であればＰ１部に「０２ｈ」が設定され、「コマンド群実行機能」であればＰ１部に「０３ｈ」が設定される。ＩＣチップ１ａのＣＰＵ１０は、Ｐ１部に設定された値に基づいて何れの機能に対応する処理を実行するかを判別する。
【００２９】
Ｐ２部は、コマンド群を識別するためのコマンド群ＩＤが設定される。具体的には、「コマンド群書き込み機能」であればＰ２部に、登録するコマンド群を識別するためのコマンド群ＩＤが設定される。「コマンド群消去機能」であればＰ２部に、不揮発性メモリ１３から消去するコマンド群を識別するためのコマンド群ＩＤが設定される。「コマンド群実行機能」であればＰ２部に、実行するコマンド群を識別するためのコマンド群ＩＤが設定される。コマンド群は、当該コマンド群を識別するためのコマンド群ＩＤと対応付けられてＩＣチップ１ａの不揮発性メモリ１３に書き込まれる。ＣＰＵ１０は、コマンド群ＩＤに基づいてコマンド群を識別する。
【００３０】
Ｌｃ部及びＤＡＴＡ部は「コマンド群書き込み機能」を実現するコマンド群連続実行コマンドのコマンドフォーマットに含まれる。Ｌｃ部には、ＤＡＴＡ部の長さが設定される。ＤＡＴＡ部は登録するコマンド群に含まれるコマンドがＴＬＶ形式（Ｔ＝コマンド番号、Ｌ＝Ｖ（コマンドデータ）の長さ、Ｖ＝コマンドデータ）で設定される。
【００３１】
Ｌｅ部は「コマンド群実行機能」を実現するコマンド群連続実行コマンドのコマンドフォーマットに含まれる。Ｌｅ部には、コマンド群を実行した結果に関するレスポンスデータ（ＳＷ）の長さが設定される。なお、Ｌｅ部に「００ｈ」を設定した場合には、コマンド群に含まれるコマンドに対応するコマンド処理毎のＳＷが外部機器２に送信される（コマンド数分のＳＷが送信される）。なお、Ｌｅ部を持たない「コマンド群実行機能」を実現するコマンド群連続実行コマンド（Ｃａｓｅ１）である場合には、コマンド群全体についてのＳＷが外部機器２に送信される（コマンド数に関係なく１つのＳＷが送信される）。
【００３２】
以下では、図３（Ａ）に示す２つのコマンド群を例に用いてそれぞれの機能について説明する。一つ目のコマンド群は、コマンド群ＩＤ「０１」で識別され、１番目（コマンド群欄の左端に記載された「０１」、「０２」、「０３」がコマンドの実行順序（コマンド番号）を示す）に実行されるＳＥＬＥＣＴ  ＤＦコマンドと、２番目に実行されるＳＥＬＥＣＴ  ＥＦコマンドと、３番目に実行されるＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンドを含む。ＳＥＬＥＣＴ  ＤＦコマンドは、ＤＦＩＤ（ＤＦを識別するためのＩＤ）が「ＦＦＦＦＦＦＦＦＦＦ０１ｈ」であるＤＦを選択するコマンドである。ＳＥＬＥＣＴ  ＥＦコマンドはＥＦＩＤ（ＥＦを識別するためのＩＤ）が「０００１ｈ」であるＥＦを選択するコマンドである。ＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンドは、２５５バイトのデータ（データの内容については省略する）を書き込むコマンドである。すなわち、一つ目のコマンド群は、ＤＦを選択し、次いで、当該ＤＦの配下のＥＦを選択し、当該ＥＦに２５５バイトのデータを書き込む処理を連続実行するためのコマンド群である。
【００３３】
二つ目のコマンド群は、コマンド群ＩＤ「０２ｈ」で識別され、１番目に実行されるＳＥＬＥＣＴ  ＤＦコマンドと、２番目に実行されるＳＥＬＥＣＴ  ＥＦコマンドと、３番目に実行されるＳＴＯＰ  ＴＩＭＥＲコマンドと、４番目に実行されるＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンドを含む。なお、コマンド群ＩＤ「０１ｈ」で識別されるコマンド群とは、３番目にＳＴＯＰ  ＴＩＭＥＲコマンドが入っている点で異なる。ＳＴＯＰ  ＴＩＭＥＲコマンドは、ＩＣチップ１ａ内のタイマーを停止させるコマンドである。すなわち、二つ目のコマンド群は、ＤＦを選択し、次いで、当該ＤＦの配下のＥＦを選択し、タイマーを停止させて、当該ＥＦに２５５バイトのデータを書き込む処理を連続実行するためのコマンド群である。
【００３４】
図３（Ｂ）は、不揮発性メモリ１３に記憶されるコマンド群テーブル２００の一例である。図３（Ｂ）のコマンド群テーブル２００は、図３（Ａ）に示した２つのコマンド群を「コマンド群書き込み機能」により不揮発性メモリ１３に書き込んだ場合におけるコマンド群テーブル２００である。コマンド群テーブル２００には、コマンド群毎に、コマンド群ＩＤ２０１、コマンド群長２０２が設定され、更に、コマンド群に含まれるコマンド毎に、コマンド番号２０３、コマンド長２０４、コマンドデータ２０５が登録される。
【００３５】
コマンド群ＩＤ２０１には、コマンド群を識別するための情報が登録される。コマンド群長２０２には、コマンド番号２０３、コマンド長２０４及びコマンドデータ２０５として格納されるデータの長さの合計が登録される。コマンド番号２０３には、コマンド群に含まれるコマンドを識別するための情報であって、当該コマンドの実行順序を示す情報が登録される。コマンド長２０４には、コマンドデータ２０５に登録されるコマンドの長さが登録される。コマンドデータ２０５には、コマンド群ＩＤに含まれるコマンドが登録される。
【００３６】
なお、コマンド群テーブル２００は、ＴＬＶ形式の二重構造となっている。すなわち、コマンド群テーブル２００は、Ｔとしてのコマンド群ＩＤ２０１と、Ｌとしてのコマンド群長２０２と、Ｖとしてのコマンド番号２０３、コマンド長２０４及びコマンドデータ２０５を含む。また、当該Ｖの中身は、Ｔとしてのコマンド番号２０３、Ｌとしてのコマンド長２０４、Ｖとしてのコマンドデータ２０５を含む。
【００３７】
コマンド群ＩＤ２０１には、Ｐ１部に「０１ｈ」（コマンド群書き込み機能）が設定されたコマンド群連続実行コマンドにおけるＰ２部に設定されているコマンド群ＩＤが登録される。コマンド群長２０２には、コマンド番号２０３、コマンド長２０４、コマンドデータ２０５に登録されるデータのデータ長を合計した値を、コマンド群に含まれるコマンド数分だけ合算した値が登録される。コマンド番号２０３、コマンド長２０４、コマンドデータ２０５には、Ｐ１部に「０１ｈ」（コマンド群書き込み機能）が設定されたコマンド群連続実行コマンドにおけるＤＡＴＡ部にＴＬＶ形式（Ｔ＝コマンド番号、Ｌ＝Ｖの長さ、Ｖ＝コマンドデータ）で設定されているデータがそれぞれ登録される。よって、コマンドデータの１バイト目はコマンドのＣＬＡ部に対応し、２バイト目はコマンドのＩＮＳ部（ＩＮＳバイト）に対応し、３バイト目はコマンドのＰ１部に対応し、４バイト目はコマンドのＰ２部に対応する。
【００３８】
図３（Ｃ）は、不揮発性メモリ１３に記憶される登録不可リスト３００の一例である。登録不可リスト３００は、Ｐ１部に「０１ｈ」（コマンド群書き込み機能）が設定されたコマンド群連続実行コマンドにより登録することができないコマンドのＩＮＳ部の値が記述されている。すなわち、ＣＰＵ１０は、登録不可リスト３００に登録されているＩＮＳ部の値と同じ値をＩＮＳ部に持つコマンドを含むコマンド群が登録されようとした場合には、当該コマンド群を不揮発性メモリ１３に登録させない。登録不可とするコマンドとしては、例えば、ＶＥＲＩＦＹコマンドや、ＥＸＴＥＲＮＡＬ  ＡＵＴＨＥＮＴＩＣＡＴＥコマンドなど、認証や鍵の照合に関するコマンドが挙げられる。ＶＥＲＩＦＹコマンドの登録を禁止する理由は、ユーザがＰＩＮ（personal identification number）照合を省略した場合など、意図しない利用を防ぐ（ＰＩＮ照合自体を登録してしまうと、ＰＩＮの値を知らなくてもコマンド群実行すれば利用できてしまう）ためである。
【００３９】
次に、図４、図５を用いて、コマンド群連続実行コマンドの「コマンド群書き込み機能」について説明する。図４に示すように、ＩＣチップ１ａのＣＰＵ１０は、外部機器２からコマンド群連続実行コマンド４０１を受信すると、ＤＡＴＡ部に設定されているコマンド群を不揮発性メモリ１３に書き込む（コマンド群テーブル２００に登録する）。ＣＰＵ１０は、書き込みが正常終了した場合には、ＳＷ５０１（「９０  ００ｈ」は正常終了を示す）を外部機器２に送信する。図４の処理により、図３（Ｂ）のコマンド群テーブル２００にコマンド群ＩＤ「０１ｈ」で識別されるコマンド群が登録されることとなる。
【００４０】
次いで、図５に示すように、ＩＣチップ１ａのＣＰＵ１０は、外部機器２からコマンド群連続実行コマンド４０２を受信すると、ＤＡＴＡ部に設定されているコマンド群を不揮発性メモリ１３に書き込む（コマンド群テーブル２００に登録する）。ＣＰＵ１０は、書き込みが正常終了した場合には、ＳＷ５０２を外部機器２に送信する。図５の処理により、図３（Ｂ）のコマンド群テーブル２００にコマンド群ＩＤ「０２」で識別されるコマンド群が登録されることとなる。
【００４１】
次に、図６−図１１を用いて、コマンド群連続実行コマンドの「コマンド群書き込み機能」について説明する。図６に示すように、ＣＰＵ１０は、外部機器２からコマンド群連続実行コマンド４０３を受信するとコマンド群を実行する。具体的には、コマンド群テーブル２００（図３（Ｂ）参照）に基づいて、コマンド群ＩＤ「０１ｈ」で識別されるコマンド群に含まれるコマンド（ＳＥＬＥＣＴ  ＤＦコマンド、ＳＥＬＥＣＴ  ＥＦコマンド、ＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンド）に対応するコマンド処理をコマンド番号順に実行する。ＣＰＵ１０は、一のコマンドに対応するコマンド処理を実行する度に、ＳＷを取得する。図６の例では、ＳＥＬＥＣＴ  ＤＦコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」、ＳＥＬＥＣＴ  ＥＦコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」、ＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」をそれぞれ取得する。そして、ＣＰＵ１０は、全てのコマンド処理のＳＷが「９０  ００ｈ」である場合には、ＳＷ５０３を外部機器２に送信する。
【００４２】
一方、図７に示すように、ＣＰＵ１０は、外部機器２からコマンド群連続実行コマンド４０３を受信し、ＳＥＬＥＣＴ  ＤＦコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」、ＳＥＬＥＣＴ  ＥＦコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」、ＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンドに対応するコマンド処理についてＳＷ「６５  ８１ｈ」をそれぞれ取得した場合には、ＳＷ５０４を外部機器２に送信する。
【００４３】
また、図８に示すように、ＣＰＵ１０は、外部機器２からコマンド群連続実行コマンド４０４を受信するとコマンド群の実行を試みる。具体的には、コマンド群テーブル２００（図３（Ｂ）参照）に基づいて、コマンド群ＩＤ「０３ｈ」で識別されるコマンド群の実行を試みる。しかしながら、コマンド群ＩＤ「０３ｈ」で識別されるコマンド群は登録されていないことから、ＣＰＵ１０は、ＳＷ５０５（「６Ａ  ８６ｈ」は、Ｐ１部とＰ２部に設定されている値が不正であることを示す）を外部機器２に送信する。
【００４４】
次に、図９に示すように、ＣＰＵ１０は、外部機器２からコマンド群連続実行コマンド４０５を受信するとコマンド群を実行する。具体的には、コマンド群テーブル２００（図３（Ｂ）参照）に基づいて、コマンド群ＩＤ「０２ｈ」で識別されるコマンド群に含まれるコマンド（ＳＥＬＥＣＴ  ＤＦコマンド、ＳＥＬＥＣＴ  ＥＦコマンド、ＳＴＯＰ  ＴＩＭＥＲコマンド、ＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンド）に対応するコマンド処理をコマンド番号順に実行する。ＣＰＵ１０は、一のコマンドに対応するコマンド処理を実行する度に、ＳＷを取得する。図９の例では、ＳＥＬＥＣＴ  ＤＦコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」、ＳＥＬＥＣＴ  ＥＦコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」、ＳＴＯＰ  ＴＩＭＥＲコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」、ＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」をそれぞれ取得する。ＣＰＵ１０は、コマンド群連続実行コマンド４０５はＣａｓｅ２であり、且つ、Ｌｅ部に設定されている値が「００ｈ」である場合、４つのコマンドに対応するコマンド処理毎のＳＷに、コマンド群の実行についてのＳＷを追記したＳＷ５０６を外部機器２に送信する。具体的には、ＳＷ５０６はＴＬＶ形式でＳＷが記録されており、Ｔとしてコマンド番号（１バイト）、ＬとしてＳＷの長さ（２バイト）、Ｖとしてコマンド処理又はコマンド群の実行についてのＳＷ（２バイト）が記録される。なお、コマンド群の実行についてはＴのコマンド番号として「ＦＦｈ」が記録される。
【００４５】
一方、図１０に示すように、ＣＰＵ１０は、外部機器２からコマンド群連続実行コマンド４０５を受信し、ＳＥＬＥＣＴ  ＤＦコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」、ＳＥＬＥＣＴ  ＥＦコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」、ＳＴＯＰ  ＴＩＭＥＲコマンドに対応するコマンド処理についてＳＷ「９０  ００ｈ」、ＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンドに対応するコマンド処理についてＳＷ「６５  ８１ｈ」をそれぞれ取得した場合には、ＳＷ５０７を外部機器２に送信する。ＣＰＵ１０は、コマンド群連続実行コマンド４０５はＣａｓｅ２であり、且つ、Ｌｅ部に設定されている値が「００ｈ」であるので、４つのコマンドに対応するコマンド処理毎のＳＷに、コマンド群の実行についてのＳＷを追記したＳＷ５０７を外部機器２に送信する。
【００４６】
また、図１１に示すように、ＣＰＵ１０は、外部機器２からコマンド群連続実行コマンド４０６（Ｃａｓｅ２であり、且つ、Ｌｅ部に設定されている値が「００ｈ」）を受信するとコマンド群の実行を試みる。具体的には、コマンド群テーブル２００（図３（Ｂ）参照）に基づいて、コマンド群ＩＤ「０３ｈ」で識別されるコマンド群の実行を試みる。しかしながら、コマンド群ＩＤ「０３ｈ」で識別されるコマンド群は登録されていないことから、ＣＰＵ１０は、図８に示した例と同様にＳＷ５０８を外部機器２に送信する。
【００４７】
次に、図１２を用いて、コマンド群連続実行コマンドの「コマンド群消去機能」について説明する。図１２に示すように、ＩＣチップ１ａのＣＰＵ１０は、外部機器２からコマンド群連続実行コマンド４０７を受信すると、Ｐ２部に設定されているコマンド群ＩＤで識別されるコマンド群を不揮発性メモリ１３から消去する。消去の方法としては、コマンド群が記憶されている領域を初期値に書き換える方法や、コマンド群テーブル２００のＴ（コマンド群ＩＤ２０１）やＬ（コマンド群長２０２）を検索不可能な値に書き換える方法などを採用することができる。ＣＰＵ１０は、消去が正常終了した場合には、ＳＷ５０９を外部機器２に送信する。図１２の処理により、図３（Ｂ）のコマンド群テーブル２００にコマンド群ＩＤ「０１ｈ」で識別されるコマンド群が消去されることとなる。
【００４８】
［３．ＣＰＵ１０によるコマンド受信時処理］
次に、図１３を用いて、ＣＰＵ１０によるコマンド受信時処理について説明する。なお、図１３は、コマンド受信時処理の一例を示すフローチャートである。コマンド受信時処理は、外部機器２からＩＣチップ１ａがコマンドを受信することにより開始される。
【００４９】
まず、ＣＰＵ１０は、コマンドのＣＬＡ部が「Ｆ０ｈ」であり、且つ、ＩＮＳ部が「Ｆ１ｈ」であるか否かを判定する（ステップＳ１０１）。ＣＰＵ１０は、コマンドのＣＬＡ部が「Ｆ０ｈ」でない、又は、ＩＮＳ部が「Ｆ１ｈ」でないと判定した場合には（ステップＳ１０１：ＮＯ）、コマンドに応じた処理を行い（ステップＳ１０２）、コマンド受信時処理を終了する。一方、ＣＰＵ１０は、コマンドのＣＬＡ部が「Ｆ０ｈ」であり、且つ、ＩＮＳ部が「Ｆ１ｈ」であると判定した場合には（ステップＳ１０１：ＹＥＳ）、次いで、Ｐ１部が「０１ｈ」であるか否かを判定する（ステップＳ１０３）。
【００５０】
ＣＰＵ１０は、Ｐ１部が「０１ｈ」であると判定した場合には（ステップＳ１０３：ＹＥＳ）、コマンド群書き込み処理を行い（ステップＳ１０４）、コマンド受信時処理を終了する。なお、コマンド群書き込み処理については後述する。一方、ＣＰＵ１０は、Ｐ１部が「０１ｈ」ではないと判定した場合には（ステップＳ１０３：ＮＯ）、次いで、Ｐ１部が「０２ｈ」であるか否かを判定する（ステップＳ１０５）。
【００５１】
ＣＰＵ１０は、Ｐ１部が「０２ｈ」であると判定した場合には（ステップＳ１０５：ＹＥＳ）、コマンド群消去処理を行い（ステップＳ１０６）、コマンド受信時処理を終了する。なお、コマンド群消去処理については後述する。一方、ＣＰＵ１０は、Ｐ１部が「０２ｈ」ではないと判定した場合には（ステップＳ１０５：ＮＯ）、次いで、Ｐ１部が「０３ｈ」であるか否かを判定する（ステップＳ１０７）。
【００５２】
ＣＰＵ１０は、Ｐ１部が「０３ｈ」であると判定した場合には（ステップＳ１０７：ＹＥＳ）、コマンド群実行処理を行い（ステップＳ１０８）、コマンド受信時処理を終了する。なお、コマンド群実行処理については後述する。一方、ＣＰＵ１０は、Ｐ１部が「０３ｈ」ではないと判定した場合には（ステップＳ１０７：ＮＯ）、次いで、ＳＷ「６Ａ  ８６ｈ」を外部機器２に送信し（ステップＳ１０９）、コマンド受信時処理を終了する。
【００５３】
［４．ＣＰＵ１０によるコマンド群書き込み処理］
次に、図１４を用いて、ＣＰＵ１０によるコマンド群書き込み処理について説明する。なお、図１４は、コマンド群書き込み処理の一例を示すフローチャートである。
【００５４】
まず、ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ３であるか否かを判定する（ステップＳ１２１）。ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ３ではないと判定した場合には（ステップＳ１２１：ＮＯ）、ＳＷ「６７  ００ｈ」を外部機器２に送信し（ステップＳ１２２）、コマンド群書き込み処理を終了する。一方、ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ３であると判定した場合には（ステップＳ１２１：ＹＥＳ）、ＤＡＴＡ部のＴＬＶ構造に不整合があるか否かを判定する（ステップＳ１２３）。例えば、Ｌｃの値がＴＬＶ構造に矛盾していないか判定する。
【００５５】
ＣＰＵ１０は、ＤＡＴＡ部のＴＬＶ構造に不整合があると判定した場合には（ステップＳ１２３：ＹＥＳ）、ＳＷ「６Ａ  ８５ｈ」を外部機器２に送信し（ステップＳ１２４）、コマンド群書き込み処理を終了する。一方、ＣＰＵ１０は、ＤＡＴＡ部のＴＬＶ構造に不整合がないと判定した場合には（ステップＳ１２３：ＮＯ）、次いで、Ｐ２部に設定されているコマンド群ＩＤがコマンド群テーブル２００に登録済みか否かを判定する（ステップＳ１２５）。
【００５６】
ＣＰＵ１０は、Ｐ２部に設定されているコマンド群ＩＤがコマンド群テーブル２００に登録済みであると判定した場合には（ステップＳ１２５：ＹＥＳ）、ＳＷ「６Ａ  ８６ｈ」を外部機器２に送信し（ステップＳ１２６）、コマンド群書き込み処理を終了する。一方、ＣＰＵ１０は、Ｐ２部に設定されているコマンド群ＩＤがコマンド群テーブル２００に登録済みでないと判定した場合には（ステップＳ１２５：ＮＯ）、次いで、コマンド群に含まれるコマンドのＩＮＳ部に設定されている値が登録不可リスト３００に存在しないか否かを判定する（ステップＳ１２７）。
【００５７】
ＣＰＵ１０は、コマンド群に含まれるコマンドのＩＮＳ部に設定されている値が登録不可リスト３００に存在すると判定した場合には（ステップＳ１２７：ＮＯ）、ＳＷ「６Ａ  ８０ｈ」を外部機器２に送信し（ステップＳ１２８）、コマンド群書き込み処理を終了する。一方、ＣＰＵ１０は、コマンド群に含まれるコマンドのＩＮＳ部に設定されている値が登録不可リスト３００に存在しないと判定した場合には（ステップＳ１２７：ＹＥＳ）、コマンドのＤＡＴＡ部に設定されているコマンド群をコマンド群テーブル２００に登録し（ステップＳ１２９）、次いで、ＳＷ「９０  ００ｈ」を外部機器２に送信し（ステップＳ１３０）、コマンド群書き込み処理を終了する。
【００５８】
［５．ＣＰＵ１０によるコマンド群消去処理］
次に、図１５を用いて、ＣＰＵ１０によるコマンド群消去処理について説明する。なお、図１５は、コマンド群消去処理の一例を示すフローチャートである。
【００５９】
まず、ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ１であるか否かを判定する（ステップＳ１４１）。ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ１ではないと判定した場合には（ステップＳ１４１：ＮＯ）、ＳＷ「６７  ００ｈ」を外部機器２に送信し（ステップＳ１４２）、コマンド群消去処理を終了する。一方、ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ１であると判定した場合には（ステップＳ１４１：ＹＥＳ）、次いで、Ｐ２部に設定されているコマンド群ＩＤがコマンド群テーブル２００に登録済みか否かを判定する（ステップＳ１４３）。
【００６０】
ＣＰＵ１０は、Ｐ２部に設定されているコマンド群ＩＤがコマンド群テーブル２００に登録済みでないと判定した場合には（ステップＳ１４３：ＮＯ）、ＳＷ「６Ａ  ８６ｈ」を外部機器２に送信し（ステップＳ１４４）、コマンド群消去処理を終了する。一方、ＣＰＵ１０は、Ｐ２部に設定されているコマンド群ＩＤがコマンド群テーブル２００に登録済みであると判定した場合には（ステップＳ１４３：ＹＥＳ）、Ｐ２部に設定されているコマンド群ＩＤで識別されるコマンド群をコマンド群テーブル２００から削除し（ステップＳ１４５）、次いで、ＳＷ「９０  ００ｈ」を外部機器２に送信し（ステップＳ１４６）、コマンド群消去処理を終了する。
【００６１】
［６．ＣＰＵ１０によるコマンド群実行処理］
次に、図１６を用いて、ＣＰＵ１０によるコマンド群実行処理について説明する。なお、図１６は、コマンド群実行処理の一例を示すフローチャートである。
【００６２】
まず、ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ１又はＣａｓｅ２であるか否かを判定する（ステップＳ１６１）。ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ１又はＣａｓｅ２の何れでもないと判定した場合には（ステップＳ１６１：ＮＯ）、ＳＷ「６７  ００ｈ」を外部機器２に送信し（ステップＳ１６２）、コマンド群実行処理を終了する。一方、ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ１又はＣａｓｅ２であると判定した場合には（ステップＳ１６１：ＹＥＳ）、次いで、Ｐ２部に設定されているコマンド群ＩＤがコマンド群テーブル２００に登録済みか否かを判定する（ステップＳ１６３）。
【００６３】
ＣＰＵ１０は、Ｐ２部に設定されているコマンド群ＩＤがコマンド群テーブル２００に登録済みでないと判定した場合には（ステップＳ１６３：ＮＯ）、ＳＷ「６Ａ  ８６ｈ」を外部機器２に送信し（ステップＳ１６４）、コマンド群実行処理を終了する。一方、ＣＰＵ１０は、Ｐ２部に設定されているコマンド群ＩＤがコマンド群テーブル２００に登録済みであると判定した場合には（ステップＳ１６３：ＹＥＳ）、コマンド群テーブル２００からコマンド番号順にコマンドデータを取得する（ステップＳ１６５）。
【００６４】
次に、ＣＰＵ１０は、ステップＳ１６５の処理で取得したコマンドに対応するコマンド処理を実行し（ステップＳ１６６）、ＳＷをＴＬＶ形式で記録する（ステップＳ１６７）。すなわち、Ｔとしてコマンド番号、ＬとしてＳＷの長さ（「０２ｈ」）、ＶとしてＳＷを記録する。
【００６５】
次に、ＣＰＵ１０は、Ｐ２部に設定されているコマンド群ＩＤで識別されるコマンド群に含まれる全てのコマンドをステップＳ１６５の処理で取得したか否かを判定する（ステップＳ１６８）。ＣＰＵ１０は、全て取得していないと判定した場合には（ステップＳ１６８：ＮＯ）、ステップＳ１６５の処理に移行する。すなわち、ＣＰＵ１０は、Ｐ２部に設定されているコマンド群ＩＤで識別されるコマンド群に含まれる全てのコマンドをコマンド番号順に取得するまで、ステップＳ１６５〜ステップＳ１６８の処理を繰り返す。一方、ＣＰＵ１０は、全て取得したと判定した場合には（ステップＳ１６８：ＹＥＳ）、ＴＬＶ形式で記録した全てのＳＷが「９０  ００ｈ」であるか否かを判定する（ステップＳ１６９）。
【００６６】
ＣＰＵ１０は、全てのＳＷが「９０  ００ｈ」であると判定した場合には（ステップＳ１６９：ＹＥＳ）、次いで、コマンドのコマンドフォーマットがＣａｓｅ１であるか否かを判定する（ステップＳ１７０）。ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ１であると判定した場合には（ステップＳ１７０：ＹＥＳ）、ＳＷ「９０  ００ｈ」を外部機器２に送信し（ステップＳ１７１）、コマンド群実行処理を終了する。一方、ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ１ではないと判定した場合には（ステップＳ１７０：ＮＯ）、ＴＬＶ形式で記録しているＳＷに、コマンド群の実行についてのＳＷ「９０  ００ｈ」を追記する（ステップＳ１７２）。具体的には、ＣＰＵ１０は、Ｔとして「ＦＦｈ」、ＬとしてＳＷの長さ（「０２ｈ」）、ＶとしてＳＷ「９０  ００ｈ」を追記する。次いで、ＣＰＵ１０は、レスポンスデータとＴＬＶ形式で記録したＳＷを外部機器２に送信し（ステップＳ１７３）、コマンド群実行処理を終了する。
【００６７】
他方、ＣＰＵ１０は、一部のＳＷが「９０  ００ｈ」ではないと判定した場合には（ステップＳ１６９：ＮＯ）、次いで、コマンドのコマンドフォーマットがＣａｓｅ１であるか否かを判定する（ステップＳ１７４）。ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ１であると判定した場合には（ステップＳ１７４：ＹＥＳ）、ＳＷ「６３  ００ｈ」を外部機器２に送信し（ステップＳ１７５）、コマンド群実行処理を終了する。一方、ＣＰＵ１０は、コマンドのコマンドフォーマットがＣａｓｅ１ではないと判定した場合には（ステップＳ１７４：ＮＯ）、ＴＬＶ形式で記録しているＳＷに、コマンド群実行についてのＳＷ「６３  ００ｈ」を追記する（ステップＳ１７６）。具体的には、ＣＰＵ１０は、Ｔとして「ＦＦｈ」、ＬとしてＳＷの長さ（「０２ｈ」）、ＶとしてＳＷ「６３  ００ｈ」を追記する。次いで、ＣＰＵ１０は、レスポンスデータとＴＬＶ形式で記録したＳＷを外部機器２に送信し（ステップＳ１７７）、コマンド群実行処理を終了する。
【００６８】
以上のように、本実施形態のＩＣチップ１ａ（「電子情報記憶媒体」の一例）は、不揮発性メモリ１３が、複数のコマンドを含むコマンド群と、当該複数のコマンドのコマンド番号（「実行順序」の一例）と、当該コマンド群を識別するためのコマンド群ＩＤ（「識別情報」の一例）とを対応付けて記憶し、ＣＰＵ１０（「実行手段」の一例）は、コマンド群を識別可能なコマンド群連続実行コマンド（「コマンド群実行コマンド」の一例）を外部機器２から受信した場合に、コマンド群連続実行コマンドで識別されるコマンド群に含まれる複数のコマンドをコマンド番号順で実行する。
【００６９】
したがって、本実施形態のＩＣチップ１ａによれば、複数のコマンドを含むコマンド群を、当該複数のコマンドの実行順序を示すコマンド番号とコマンド群ＩＤと対応付けて不揮発性メモリ１３に記憶しておき、コマンド群を識別可能なコマンド群連続実行コマンドを外部機器２から受信した場合に、当該コマンド群連続実行コマンドで識別されるコマンド群に含まれる複数のコマンドを当該コマンド群に対応するコマンド番号順で実行する。これにより、外部機器２が複数のコマンドによりＩＣチップ１ａに処理を実行させる際の通信データ量を削減し、通信時間を短縮することができる。
【００７０】
また、ＣＰＵ１０は、不揮発性メモリ１３に記憶させるコマンド群と、複数のコマンドのコマンド番号と、コマンド群を識別するためのコマンド群ＩＤとを含むコマンドであって、「コマンド群書き込み機能」を実現するコマンド群連続実行コマンド（「コマンド群書き込みコマンド」の一例）を外部機器２から受信した場合に、「コマンド群書き込み機能」を実現するコマンド群連続実行コマンドに含まれるコマンド群と、コマンド番号と、コマンド群ＩＤとを対応付けて不揮発性メモリ１３に記憶させる。これにより、複数のコマンドを含むコマンド群を、当該複数のコマンドの実行順序を示すコマンド番号とコマンド群ＩＤと対応付けて不揮発性メモリ１３に記憶させることができる。
【００７１】
更に、ＣＰＵ１０は、「コマンド群書き込み機能」を実現するコマンド群連続実行コマンドに含まれるコマンド群に含まれる複数のコマンドの中に、登録不可リスト３００に登録されているコマンド（「予め書き込むことが禁止されているコマンド」の一例）が含まれる場合、当該コマンド群連続実行コマンドに含まれるコマンド群を不揮発性メモリ１３に記憶させない。これにより、不揮発性メモリ１３に記憶させることが好ましくないコマンドを登録不可リスト３００に登録しておくことで、当該コマンドを含むコマンド群を不揮発性メモリ１３に記憶させることを防ぐことができる。
【００７２】
更にまた、ＣＰＵ１０は、不揮発性メモリ１３に記憶されているコマンド群を識別するためのコマンド群ＩＤを含むコマンドであって、「コマンド群消去機能」を実現するコマンド群連続実行コマンド（「コマンド群消去コマンド」の一例）を外部機器２から受信した場合に、当該コマンド群連続実行コマンドに含まれるコマンド群ＩＤで識別されるコマンド群を不揮発性メモリ１３から消去する。これにより、不揮発性メモリ１３が記憶するコマンド群を消去することができる。
【００７３】
更にまた、不揮発性メモリ１３に記憶されるコマンド群に含まれるコマンドには、ＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンド（「不揮発性メモリ１３にデータを書き込むコマンド」の一例）が含まれている。ＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンドにより不揮発性メモリ１３にデータを書き込む場合、当該データのデータ量が大きいと、外部機器２とＩＣチップ１ａ間の通信時間が長くなるが、データを書き込むファイルを選択するＳＥＬＥＣＴコマンドとＵＰＤＡＴＥ  ＢＩＮＡＲＹコマンドを含むコマンド群を不揮発性メモリ１３に予め記憶させておき、データを書き込むべき時に、当該コマンド群を実行するコマンド群連続実行コマンドを送信することにより、データを書き込む際の通信データ量を削減し、通信時間を短縮することができる。
【００７４】
ここで、背景技術の欄で説明したケース（ＤＦ及びＥＦを選択し、ＥＦへデータの書き込みを行うケース）について、本実施形態を採用した場合の通信データ量及び通信処理時間を計算する。
【００７５】
（１）［外部機器２→ＩＣチップ１ａ］
・「コマンド群実行機能」を実現するコマンド群連続実行コマンド（Ｃａｓｅ１）
ＣＬＡ部(１バイト)＋ＩＮＳ部(１バイト)＋Ｐ１部(１バイト)＋Ｐ２部(１バイト)＝４バイト
（２）［ＩＣチップ１ａ→外部機器２］
・（１）に対するレスポンス
ＳＷ（２バイト）
【００７６】
すなわち、外部機器２とＩＣチップ１ａの間で通信されるコマンド及びレスポンスのデータ量は、「４＋２＝６（バイト）」となる。また、６バイトを送受信するために掛かる通信時間は「１０４．１７μs×１２ｅｔｕ×６バイト≒７．５ｍｓ」となる。なお、背景技術の欄及びここで挙げた計算結果は概算値であり、ＩＳＯ／ＩＥＣ７８１６−３のＴ＝１プロトコルによると、ブロックフレームにはＰｒｏｌｏｇｕｅ  ｆｉｅｌｄ（３バイト）とＥｐｉｌｏｇｕｅ  ｆｉｅｌｄ（１バイト）を付随することとなるため、コマンドシーケンスの数が増加するにつれて、通信データ量及び通信時間の削減効果は大きくなる
【００７７】
なお、上記実施形態では、図２に示すように、コマンド群連続実行コマンドのＰ１部に設定する値によって、「コマンド群書き込み機能」、「コマンド群消去機能」及び「コマンド群実行機能」を切り替えることとしたが、それぞれの機能毎にコマンド群書き込みコマンド、コマンド群消去コマンド、コマンド群実行コマンドを設ける（ＣＬＡ部及びＩＮＳ部の値を異ならせる）こととしてもよい。
【００７８】
この場合、図１３のコマンド受信時処理において、ＣＰＵ１０は、ＣＬＡ部及びＩＮＳ部に設定された値に基づいて、コマンド群書き込みコマンドを受信したと判定したにはステップＳ１０４の処理を実行し、コマンド群消去コマンドを受信したと判定したにはステップＳ１０６の処理を実行し、コマンド群実行コマンドを受信したと判定したにはステップＳ１０８の処理を実行する。
【符号の説明】
【００７９】
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
２  外部機器
【図１】
2019168944.tif 000003
【図２】
2019168944.tif 000004
【図３】
2019168944.tif 000005
【図４】
2019168944.tif 000006
【図５】
2019168944.tif 000007
【図６】
2019168944.tif 000008
【図７】
2019168944.tif 000009
【図８】
2019168944.tif 000010
【図９】
2019168944.tif 000011
【図１０】
2019168944.tif 000012
【図１１】
2019168944.tif 000013
【図１２】
2019168944.tif 000014
【図１３】
2019168944.tif 000015
【図１４】
2019168944.tif 000016
【図１５】
2019168944.tif 000017
【図１６】
2019168944.tif 000018