(57)【要約】【課題】ＩＣチップ等の電子情報記憶媒体と通信機器の間で通信されるＣ−ＡＰＤＵ（命令データ）やＲ−ＡＰＤＵ（応答データ）等の通信データに関し、同一の通信データにより複数の異なる意味を持たせることができる電子情報記憶媒体や通信機器等を提供する。【解決手段】  第１のキャラクタと第２のキャラクタを含む通信データを１キャラクタずつ送信する際に、所定の条件に応じて第１のキャラクタと第２のキャラクタの送信間隔を異ならせる。【選択図】図６
2020144736.tif 000002
【特許請求の範囲】
【請求項１】
通信機器から受信した命令データに応じた処理を実行し、第１のキャラクタと第２のキャラクタを含む応答データを前記通信機器に送信する電子情報記憶媒体であって、
前記応答データを構成する各キャラクタを１キャラクタずつ送信する際に、前記処理の実行結果に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信手段、
を備えることを特徴とする電子情報記憶媒体。
【請求項２】
請求項１に記載の電子情報記憶媒体であって、
前記第１のキャラクタと前記第２のキャラクタは、前記処理の実行結果を示すＳＷ（status word）を構成するＳＷ１とＳＷ２であることを特徴とする電子情報記憶媒体。
【請求項３】
通信機器から第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを受信し、当該命令データに応じた処理を実行する電子情報記憶媒体であって、
前記命令データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定手段と、
前記測定手段が測定した受信間隔に応じた前記処理を実行する実行手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項４】
請求項３に記載の電子情報記憶媒体であって、
前記第１のキャラクタと前記第２のキャラクタは、コマンドヘッダを構成するＣＬＡとＩＮＳ、ＩＮＳとＰ１、又は、Ｐ１とＰ２の少なくとも何れかであることを特徴とする電子情報記憶媒体。
【請求項５】
第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを電子情報記憶媒体に送信する通信機器であって、
前記命令データを構成する各キャラクタを１キャラクタずつ送信する際に、前記電子情報記憶媒体に実行させる処理に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信手段、
を備えることを特徴とする通信機器。
【請求項６】
請求項５に記載の通信機器であって、
前記第１のキャラクタと前記第２のキャラクタは、コマンドヘッダを構成するＣＬＡとＩＮＳ、ＩＮＳとＰ１、又は、Ｐ１とＰ２の少なくとも何れかであることを特徴とする通信機器。
【請求項７】
命令データに応じた処理を実行する電子情報記憶媒体から、第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる、前記処理の実行結果に応じた応答データを受信する通信機器であって、
前記応答データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定手段と、
前記測定手段が測定した受信間隔に応じて前記処理の実行結果を判断する判断手段と、
を備えることを特徴とする通信機器。
【請求項８】
請求項７に記載の通信機器であって、
前記第１のキャラクタと前記第２のキャラクタは、前記処理の実行結果を示すＳＷ（status word）を構成するＳＷ１とＳＷ２であることを特徴とする通信機器。
【請求項９】
第１の通信機器と第２の通信機器とを含む通信システムであって、
前記第１の通信機器は、
第１のキャラクタと第２のキャラクタを含む通信データを１キャラクタずつ前記第２の通信機器に送信する際に、所定の条件に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信手段、
を備え、
前記第２の通信機器は、
前記第１の通信機器から受信した前記第１のキャラクタと前記第２のキャラクタの送信間隔に応じて前記通信データを解釈する解釈手段と、
を備えることを特徴とする通信システム。
【請求項１０】
通信機器から受信した命令データに応じた処理を実行し、第１のキャラクタと第２のキャラクタを含む応答データを前記通信機器に送信する電子情報記憶媒体による通信方法であって、
前記応答データを構成する各キャラクタを１キャラクタずつ送信する際に、前記処理の実行結果に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信工程、
を含むことを特徴とする通信方法。
【請求項１１】
通信機器から受信した命令データに応じた処理を実行し、第１のキャラクタと第２のキャラクタを含む応答データを前記通信機器に送信する電子情報記憶媒体に含まれるコンピュータを、
前記応答データを構成する各キャラクタを１キャラクタずつ送信する際に、前記処理の実行結果に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信手段、
として機能させることを特徴とする通信プログラム。
【請求項１２】
通信機器から第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを受信し、当該命令データに応じた処理を実行する電子情報記憶媒体による命令実行方法であって、
前記命令データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定工程と、
前記測定工程により測定した受信間隔に応じた前記処理を実行する実行工程と、
を含むことを特徴とする命令実行方法。
【請求項１３】
通信機器から第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを受信し、当該命令データに応じた処理を実行する電子情報記憶媒体に含まれるコンピュータを、
前記命令データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定手段、
前記測定手段が測定した受信間隔に応じた前記処理を実行する実行手段、
として機能させることを特徴とする命令実行プログラム。
【請求項１４】
第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを電子情報記憶媒体に送信する通信機器による通信方法であって、
前記命令データを構成する各キャラクタを１キャラクタずつ送信する際に、前記電子情報記憶媒体に実行させる処理に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信工程、
を含むことを特徴とする通信方法。
【請求項１５】
第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを電子情報記憶媒体に送信する通信機器に含まれるコンピュータを、
前記命令データを構成する各キャラクタを１キャラクタずつ送信する際に、前記電子情報記憶媒体に実行させる処理に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信手段、
として機能させることを特徴とする通信プログラム。
【請求項１６】
命令データに応じた処理を実行する電子情報記憶媒体から、第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる、前記処理の実行結果に応じた応答データを受信する通信機器による応答判断方法であって、
前記応答データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定工程と、
前記測定工程により測定した受信間隔に応じて前記処理の実行結果を判断する判断工程と、
を含むことを特徴とする応答判断方法。
【請求項１７】
命令データに応じた処理を実行する電子情報記憶媒体から、第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる、前記処理の実行結果に応じた応答データを受信する通信機器に含まれるコンピュータを、
前記応答データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定手段、
前記測定手段が測定した受信間隔に応じて前記処理の実行結果を判断する判断手段、
として機能させることを特徴とする応答判断プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＣチップ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
国際標準規格であるＩＳＯ／ＩＥＣ７８１６が適用されるＩＣカードはＩＣチップ（「電子情報記憶媒体」の一例）を備え、通信機器からコマンドを含むＡＰＤＵ（Application protocol data unit）であるＣ−ＡＰＤＵ（Command-APDU）を受信し、コマンドに応じた処理を実行する。そして、ＩＣカードは、当該処理の実行結果に応じたＳＷ（status word）を含むＡＰＤＵであるＲ−ＡＰＤＵ（Response-APDU）を通信機器へ送信（返信）する。ＳＷには、正常終了を示すコード（「９０００ｈ」）や異常終了を示すエラーコードが設定される（例えば特許文献１参照）。通信機器は、受信したＳＷの示すコードによってＩＣカード内において処理が正常終了したのか、異常終了したのか、異常終了であればどのようなエラーが発生したのかを認識することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２１６０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＳＷはＳＷ１（１バイト）とＳＷ２（１バイト）により構成されており、エラー種別毎にエラーコードがＩＳＯ／ＩＥＣ７８１６により定められている。例えば、ＳＷ「６Ｆ００ｈ」は、自己診断異常（検査誤り）のエラー種別を示す。ところが、自己診断異常（検査誤り）というエラー種別だけでは、具体的なエラー原因を特定することができないことが多い。そこで、より詳細なエラー種別毎にエラーコードを設定することが望まれるが、エラーコードは国際規格により定められているため実現が難しいという問題がある。
【０００５】
一方で、通信機器がＩＣカードに送信するコマンドに関する規則もＩＳＯ／ＩＥＣ７８１６に定められており、規則に従ってＣ−ＡＰＤＵを送信する必要があるため、コマンドについて規則に定められていない機能を付加することが困難であるという問題がある。
【０００６】
そこで、本発明は、上記問題等に鑑みてなされたものであり、ＩＣチップ等の電子情報記憶媒体と通信機器の間で通信されるＣ−ＡＰＤＵ（命令データ）やＲ−ＡＰＤＵ（応答データ）等の通信データに関し、同一の通信データにより複数の異なる意味を持たせることができる電子情報記憶媒体や通信機器等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、通信機器から受信した命令データに応じた処理を実行し、第１のキャラクタと第２のキャラクタを含む応答データを前記通信機器に送信する電子情報記憶媒体であって、前記応答データを構成する各キャラクタを１キャラクタずつ送信する際に、前記処理の実行結果に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信手段、を備えることを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の電子情報記憶媒体であって、前記第１のキャラクタと前記第２のキャラクタは、前記処理の実行結果を示すＳＷ（status word）を構成するＳＷ１とＳＷ２であることを特徴とする。
【０００９】
請求項３に記載の発明は、通信機器から第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを受信し、当該命令データに応じた処理を実行する電子情報記憶媒体であって、前記命令データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定手段と、前記測定手段が測定した受信間隔に応じた前記処理を実行する実行手段と、を備えることを特徴とする。
【００１０】
請求項４に記載の発明は、請求項３に記載の電子情報記憶媒体であって、前記第１のキャラクタと前記第２のキャラクタは、コマンドヘッダを構成するＣＬＡとＩＮＳ、ＩＮＳとＰ１、又は、Ｐ１とＰ２の少なくとも何れかであることを特徴とする。
【００１１】
請求項５に記載の発明は、第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを電子情報記憶媒体に送信する通信機器であって、前記命令データを構成する各キャラクタを１キャラクタずつ送信する際に、前記電子情報記憶媒体に実行させる処理に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信手段、を備えることを特徴とする。
【００１２】
請求項６に記載の発明は、請求項５に記載の通信機器であって、前記第１のキャラクタと前記第２のキャラクタは、コマンドヘッダを構成するＣＬＡとＩＮＳ、ＩＮＳとＰ１、又は、Ｐ１とＰ２の少なくとも何れかであることを特徴とする。
【００１３】
請求項７に記載の発明は、命令データに応じた処理を実行する電子情報記憶媒体から、第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる、前記処理の実行結果に応じた応答データを受信する通信機器であって、前記応答データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定手段と、前記測定手段が測定した受信間隔に応じて前記処理の実行結果を判断する判断手段と、を備えることを特徴とする。
【００１４】
請求項８に記載の発明は、請求項７に記載の通信機器であって、前記第１のキャラクタと前記第２のキャラクタは、前記処理の実行結果を示すＳＷ（status word）を構成するＳＷ１とＳＷ２であることを特徴とする。
【００１５】
請求項９に記載の発明は、第１の通信機器と第２の通信機器とを含む通信システムであって、前記第１の通信機器は、第１のキャラクタと第２のキャラクタを含む通信データを１キャラクタずつ前記第２の通信機器に送信する際に、所定の条件に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信手段、を備え、前記第２の通信機器は、前記第１の通信機器から受信した前記第１のキャラクタと前記第２のキャラクタの送信間隔に応じて前記通信データを解釈する解釈手段と、を備えることを特徴とする。
【００１６】
請求項１０に記載の発明は、通信機器から受信した命令データに応じた処理を実行し、第１のキャラクタと第２のキャラクタを含む応答データを前記通信機器に送信する電子情報記憶媒体による通信方法であって、前記応答データを構成する各キャラクタを１キャラクタずつ送信する際に、前記処理の実行結果に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信工程、を含むことを特徴とする。
【００１７】
請求項１１に記載の発明は、通信機器から受信した命令データに応じた処理を実行し、第１のキャラクタと第２のキャラクタを含む応答データを前記通信機器に送信する電子情報記憶媒体に含まれるコンピュータを、前記応答データを構成する各キャラクタを１キャラクタずつ送信する際に、前記処理の実行結果に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信手段、として機能させることを特徴とする。
【００１８】
請求項１２に記載の発明は、通信機器から第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを受信し、当該命令データに応じた処理を実行する電子情報記憶媒体による命令実行方法であって、前記命令データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定工程と、前記測定工程により測定した受信間隔に応じた前記処理を実行する実行工程と、を含むことを特徴とする。
【００１９】
請求項１３に記載の発明は、通信機器から第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを受信し、当該命令データに応じた処理を実行する電子情報記憶媒体に含まれるコンピュータを、前記命令データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定手段、前記測定手段が測定した受信間隔に応じた前記処理を実行する実行手段、として機能させることを特徴とする。
【００２０】
請求項１４に記載の発明は、第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを電子情報記憶媒体に送信する通信機器による通信方法であって、前記命令データを構成する各キャラクタを１キャラクタずつ送信する際に、前記電子情報記憶媒体に実行させる処理に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信工程、を含むことを特徴とする。
【００２１】
請求項１５に記載の発明は、第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる命令データを電子情報記憶媒体に送信する通信機器に含まれるコンピュータを、前記命令データを構成する各キャラクタを１キャラクタずつ送信する際に、前記電子情報記憶媒体に実行させる処理に応じて前記第１のキャラクタと前記第２のキャラクタの送信間隔を異ならせて送信する送信手段、として機能させることを特徴とする。
【００２２】
請求項１６に記載の発明は、命令データに応じた処理を実行する電子情報記憶媒体から、第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる、前記処理の実行結果に応じた応答データを受信する通信機器による応答判断方法であって、前記応答データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定工程と、前記測定工程により測定した受信間隔に応じて前記処理の実行結果を判断する判断工程と、を含むことを特徴とする。
【００２３】
請求項１７に記載の発明は、命令データに応じた処理を実行する電子情報記憶媒体から、第１のキャラクタと第２のキャラクタを含む複数のキャラクタからなる、前記処理の実行結果に応じた応答データを受信する通信機器に含まれるコンピュータを、前記応答データを構成する各キャラクタを１キャラクタずつ受信する際に、前記第１のキャラクタと前記第２のキャラクタの受信間隔を測定する測定手段、前記測定手段が測定した受信間隔に応じて前記処理の実行結果を判断する判断手段、として機能させることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、第１のキャラクタと第２のキャラクタを含む通信データを１キャラクタずつ送信する際に、所定の条件に応じて第１のキャラクタと第２のキャラクタの送信間隔を異ならせることにより、同一の通信データであっても複数の異なる意味を持たせることができる。
【図面の簡単な説明】
【００２５】
【図１】本実施形態に係るＩＣカード１に搭載されるＩＣチップ１ａと外部機器２のハードウェア構成例を示す図である。
【図２】（Ａ）はキャラクタフレームの概要を示す図であり、（Ｂ）はキャラクタフレームの送信間隔の概要を示す図である。
【図３】Ｃ−ＡＰＤＵのフォーマットの一例を示す図である。
【図４】Ｒ−ＡＰＤＵのフォーマットの一例を示す図である。
【図５】第１実施例に係るＳＷ１とＳＷ２の送信間隔の一例を示す図である。
【図６】第１実施例に係る外部機器２とＩＣチップ１ａによるコマンドレスポンス処理の一例を示すフローチャートである。
【図７】第２実施例に係るＣＬＡとＩＮＳの送信間隔の一例を示す図である。
【図８】第２実施例に係る外部機器２とＩＣチップ１ａによるコマンドレスポンス処理の一例を示すフローチャートである。
【図９】Ｔ＝１プロトコルにおけるブロックフォーマットの一例を示す図である。
【発明を実施するための形態】
【００２６】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣカード１と、ＩＣカード１と通信を行う外部機器２を含む通信システムＳに対して本発明を適用した場合の実施の形態である。
【００２７】
［１．ＩＣカードの構成］
まず、図１を参照して、ＩＣカード１と、ＩＣカード１と通信する外部機器２の構成について説明する。図１は、ＩＣカード１に搭載されるＩＣチップ１ａと外部機器２の構成例を示す図である。
【００２８】
ＩＣチップ１ａは、ＣＰＵ（Central Processing Unit）１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、不揮発性メモリ１３、及びＩ／Ｏ回路１４を備えて構成される。ＣＰＵ１０は、ＲＯＭ１２又は不揮発性メモリ１３に記憶された各種プログラムを実行するプロセッサ（コンピュータ）である。
【００２９】
不揮発性メモリ１３には、例えばフラッシュメモリ、強誘電体メモリ又は「Electrically Erasable Programmable Read-Only Memory」を適用することができる。不揮発性メモリ１３は、ＩＣカードＯＳ（Operating System）や各種アプリケーション及びこれらが使用するデータを記憶する。また、不揮発性メモリ１３は後述するコマンドレスポンス処理を実行するためのプログラムを記憶する。
【００３０】
ＩＣカードＯＳは、その一機能として複数のキャラクタを含むＲ−ＡＰＤＵを送信する際のキャラクタ間の送信間隔を異ならせる機能や、複数のキャラクタを含むＣ−ＡＰＤＵを受信した際のキャラクタ間の受信間隔に応じて処理を行う機能を備える。
【００３１】
Ｉ／Ｏ回路１４は、外部機器２とのインターフェースを担う。これにより、ＩＣチップ１ａは、リーダ・ライタを備える外部機器２との間で通信を行うことができる。Ｉ／Ｏ回路１４には、例えばＩＳＯ／ＩＥＣ７８１６によって定められたＣ１〜Ｃ８の８個の端子が備えられている。Ｃ１端子は電源端子（ＩＣチップ１ａへ電源供給する端子）、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ７端子は外部機器２との間で通信を行うための端子である。
【００３２】
［２．外部機器２の構成］
一方、外部機器２は、ＣＰＵ２０、ＲＡＭ２１、ＲＯＭ２２、不揮発性メモリ２３、Ｉ／Ｏ回路２４、操作部２５及び表示部２６を備えて構成される。ＣＰＵ２０は、ＲＯＭ２２又は不揮発性メモリ２３に記憶された各種プログラムを実行するプロセッサ（コンピュータ）である。
【００３３】
不揮発性メモリ２３には、例えばフラッシュメモリ、強誘電体メモリ又は「Electrically Erasable Programmable Read-Only Memory」を適用することができる。不揮発性メモリ２３は、ＯＳや各種アプリケーション及びこれらが使用するデータを記憶する。また、不揮発性メモリ２３は後述するコマンドレスポンス処理を実行するためのプログラムを記憶する。
【００３４】
ＯＳは、その一機能として複数のキャラクタを含むＣ−ＡＰＤＵを送信する際のキャラクタ間の送信間隔を異ならせる機能や、複数のキャラクタを含むＲ−ＡＰＤＵを受信した際のキャラクタ間の受信間隔に応じてＩＣカード１における処理結果を解釈したり、処理を行ったりする機能を備える。
【００３５】
Ｉ／Ｏ回路２４は、ＩＣチップ１ａとのインターフェースを担い、リーダ・ライタとして機能する。これにより外部機器２はＩＣチップ１ａとの間で通信を行うことができる。
【００３６】
操作部２５は、オペレータからの指示を受け付けるための操作ボタンを有しており、オペレータにより押下された操作ボタンに対応する指示信号をＣＰＵ２０へ出力する。表示部２６は、例えば、液晶ディスプレイ、又は有機ＥＬディスプレイ等で構成され、ＣＰＵ２０による制御の下、各種操作画面等を表示する。
【００３７】
［３．ＩＣカード１と外部機器２の通信］
まず、ＩＣカード１と外部機器２の間の通信の手順について説明する。まず、外部機器２とＩＣカード１が接続されると、全ての端子がＬ（Low）状態に維持され、次いで、ＩＣカード１のＣ１端子に電源電圧が印加される。次いで、ＩＣカード１のＣ７端子が受信モードに設定されて、ＩＣカード１のＣ３端子にクロック信号が印加される。次いで、外部機器２は自身の入出力端子を受信モードにし、ＩＣカード１は自分のＣ７端子を送信モードにする。次いで、外部機器２はＩＣカード１のＣ２端子に印加し、ＩＣカード１は応答としてＡＴＲ(Answer to Reset)と呼ばれる一連のキャラクタを送信する。ＡＴＲには、Ｔ＝０又はＴ＝１のプロトコル選択を含めて、以後の通信をどのように行うかについての詳細情報が格納される。プロトコルの指定がない場合は、Ｔ＝０と見なされる。その後、トランザクション（コマンドとレスポンスのやりとり）が実行される。
【００３８】
ＩＣカード１と外部機器２の間では調歩同期方式により通信が行われる。図２（Ａ）に示すように、キャラクタ（フレーム）はスタートビット（１ビット）、８ビットのデータ及びパリティビット（１ビット）で構成される。スタートビットは、Ｃ７端子に接続される入出力線のＬ（Low）に対応しており、次いで、８ビットのデータが送信されることを意味する。なお、入出力線のＨ（High）は２進数の「１」（「１ｂ」と表記する）に対応しており、Ｌ（Low）は２進数の「０」（「０ｂ」と表記する）に対応する。パリティビットは、キャラクタフレームに含まれる「１ｂ」の数の合計が偶数になるように、Ｈ（High）又はＬ（Low）となる。例えば、８ビットのデータにおける「１ｂ」の数が「３」個であればパリティビットはＨ（High）となる。
【００３９】
入出力線は非通信時においてＨ（High）となっている。送信側はキャラクタを送信する場合、Ｌ（Low）とすることによりスタートビットを送信し、それ以降、８ビットのデータを送信し、最後にパリティビットを送信する。受信側は、非通信時においてＨ（High）となっている入出力線がＬ（Low）となったことを検知することにより、以降、８ビットのデータを受信し、次いで受信したパリティビットにより、先に受信した８ビットのデータに誤りがないかをチェックする。こうして、ＩＣカード１と外部機器２の間で８ビットのデータが送受信される。
【００４０】
図２（Ｂ）に示すように、ＩＣカード１と外部機器２の間で２つのキャラクタＣ１、Ｃ２を連続して送信する場合において、送信側がキャラクタＣ１のパリティビットを送信してからキャラクタＣ２のスタートビットを送信するまで間隔をガードタイムＧＴという。また、送信側がキャラクタＣ１のスタートビットを送信してからキャラクタＣ２のスタートビットを送信するまでの間隔を送信間隔ＩＮＴという。ガードタイムＧＴをどれだけとることとするかはＡＴＲにより事前に設定される。同様に、送信間隔ＩＮＴがどれだけ空いたらエラーと判断するかの基準となる時間はＣＷＴ（character waiting time）と呼ばれ、ＡＴＲにより事前に設定される。
【００４１】
次に、ＩＣカード１と外部機器２の間のトランザクションについて説明する。トランザクションは、外部機器２からＩＣカード１へのコマンドの発行、ＩＣカード１による当該コマンドに応じた処理の実行、ＩＣカード１から外部機器２への実行結果に応じたレスポンスの送信で構成される。トランザクション中の外部機器２とＩＣカード１の間の通信は、ＡＰＤＵを用いて行われる。外部機器２がＩＣカード１へ送信するＡＰＤＵをＣ−ＡＰＤＵといい、ＩＣカード１が外部機器２へ送信するＡＰＤＵをＲ−ＡＰＤＵという。
【００４２】
図３は、Ｃ−ＡＰＤＵのフォーマットの一例を示す図である。コマンドの構成には、図３（Ａ）〜（Ｄ）に示すように、いくつかのバリエーションがあり、何れの場合も、ヘッダ（「コマンドヘッダ」）は、ＣＬＡ（命令クラス）、ＩＮＳ（命令コード）、Ｐ１（命令パラメータ１）、及びＰ２（命令パラメータ２）からなる。一方、ボディは、無い場合（図３（Ａ））と、Ｌｅフィールドからなる場合（図３（Ｂ））と、Ｌｃフィールド及びデータ（Ｄａｔａ）フィールドからなる場合（図３（Ｃ））と、Ｌｃフィールド、データフィールド、及びＬｅフィールドからなる場合（図３（Ｄ））とがある。
【００４３】
図４は、Ｒ−ＡＰＤＵのフォーマットの一例を示す図である。レスポンスの構成には、図４（Ａ）、（Ｂ）に示すように、２つのバリエーションがあり、一つは、データバイト列とＳＷ１とＳＷ２からなり（図４（Ａ））、もう一つは、ＳＷ１とＳＷ２からなる（図４（Ｂ））。ＳＷ１とＳＷ２からなるＳＷはコマンドに応じた処理の結果を示し、処理が正常終了した場合には「９０００ｈ」がセットされ、異常終了した場合には「９０００ｈ」以外の値（エラーコード）がセットされる。
【００４４】
［４．第１実施例］
次に、図５及び図６を用いて本実施形態の第１実施例について説明する。第１実施例は、Ｒ−ＡＰＤＵに含まれるＳＷ１とＳＷ２の間隔を異ならせることにより、ＳＷの値が示すエラー（異常）の内容よりも詳細なエラー（異常）の内容を外部機器２に知らせる実施例である。
【００４５】
まず、図５を用いてＲ−ＡＰＤＵに含まれるＳＷ１とＳＷ２の間隔について説明する。ＩＣチップ１ａのＣＰＵ１０は、所定の条件に応じて、ＳＷ１とＳＷ２の間隔を異ならせてＳＷを送信する。ここでは、ＣＰＵ１０が外部機器２からデータ読み出しコマンドを受信して、データ読み出し処理を実行した場合の例について説明する。
【００４６】
ＣＰＵ１０は、データ読み出し処理の結果が正常終了であった場合にはＳＷ１のパリティビットとＳＷ２のスタートビットの間隔を１ｅｔｕ（送信間隔ＩＮＴは１１ｅｔｕ）とし（図５（Ａ））、データ読み出し処理の結果がメモリ異常による異常終了であった場合にはＳＷ１のパリティビットとＳＷ２のスタートビットの間隔を２ｅｔｕ（送信間隔ＩＮＴは１２ｅｔｕ）とし（図５（Ｂ））、データ読み出し処理の結果が論理異常による異常終了であった場合にはＳＷ１のパリティビットとＳＷ２のスタートビットの間隔を３ｅｔｕ（送信間隔ＩＮＴは１３ｅｔｕ）とする（図５（Ｃ））。ｅｔｕ(elementary time unit)は、１ビット当たりの送信時間のことである。例えば、外部機器２とＩＣカード１の間の通信速度が９６００ｂｐｓ（bit per second）である場合には１ｅｔｕは３７２ｃｌｏｃｋに相当し、通信速度が１９２００ｂｐｓである場合には１ｅｔｕは１８６ｃｌｏｃｋに相当する。
【００４７】
なお、第１実施例では、ＳＷ１とＳＷ２の送信間隔ＩＮＴが１１ｅｔｕである場合を「間隔１」と呼び、ＳＷ１とＳＷ２の送信間隔ＩＮＴが１２ｅｔｕである場合を「間隔２」と呼び、ＳＷ１とＳＷ２の送信間隔ＩＮＴが１３ｅｔｕである場合を「間隔３」と呼ぶ。
【００４８】
次に、図６を用いて第１実施例におけるＩＣカード１（ＩＣチップ１ａ）と外部機器２によるコマンドレスポンス処理について説明する。なお、図６は第１実施例における外部機器２とＩＣチップ１ａによるコマンドレスポンス処理の一例を示すフローチャートである。また、ここでは通信プロトコルがＴ＝０である場合について説明する。
【００４９】
まず、外部機器２のＣＰＵ２０は、データ読み出しコマンドをＩＣカード１に送信する（ステップＳ１０１）。
【００５０】
これに対して、ＩＣカード１のＣＰＵ１０は、データ読み出しコマンドを外部機器２から受信すると（ステップＳ２０１）、データ読み出し処理を実行する（ステップＳ２０２）。
【００５１】
次に、ＣＰＵ１０は、データの読み出し時に異常が無かったか否かを判定する（ステップＳ２０３）。ＣＰＵ１０は、データの読み出し時に異常が無かったと判定した場合には（ステップＳ２０３：ＹＥＳ）、読み出したデータと、正常終了を示すＳＷ（「９０００ｈ」）を間隔１で外部機器２に送信し（ステップＳ２０４）、コマンドレスポンス処理を終了する。なお、間隔１とするのはＳＷ１（「９０ｈ」）とＳＷ２（「００ｈ」）の送信間隔ＩＮＴである。一方、ＣＰＵ１０は、データの読み出し時に異常があったと判定した場合には（ステップＳ２０３：ＮＯ）、次いで、データの読み出し時にメモリ異常が発生したか否かを判定する（ステップＳ２０５）。
【００５２】
ＣＰＵ１０は、データの読み出し時にメモリ異常が発生したと判定した場合には（ステップＳ２０５：ＹＥＳ）、異常終了を示すＳＷ（「６Ｆ００ｈ」）を間隔２で外部機器２に送信し（ステップＳ２０６）、コマンドレスポンス処理を終了する。なお、間隔２とするのはＳＷ１（「６Ｆｈ」）とＳＷ２（「００ｈ」）の送信間隔ＩＮＴである。一方、ＣＰＵ１０は、データの読み出し時にメモリ異常が発生していないと判定した場合には（ステップＳ２０５：ＮＯ）、次いで、データの読み出し時に論理異常が発生したか否かを判定する（ステップＳ２０７）。
【００５３】
ＣＰＵ１０は、データの読み出し時に論理異常が発生したと判定した場合には（ステップＳ２０７：ＹＥＳ）、異常終了を示すＳＷ（「６Ｆ００ｈ」）を間隔３で外部機器２に送信し（ステップＳ２０８）、コマンドレスポンス処理を終了する。なお、間隔３とするのはＳＷ１（「６Ｆｈ」）とＳＷ２（「００ｈ」）の送信間隔ＩＮＴである。一方、ＣＰＵ１０は、データの読み出し時に論理異常が発生していないと判定した場合には（ステップＳ２０７：ＮＯ）、次いで、異常終了を示すＳＷ（「６Ｆ００ｈ」）を間隔１で外部機器２に送信し（ステップＳ２０９）、コマンドレスポンス処理を終了する。なお、間隔１とするのはＳＷ１（「６Ｆｈ」）とＳＷ２（「００ｈ」）の送信間隔ＩＮＴである。
【００５４】
一方、外部機器２のＣＰＵ２０は、ステップＳ１０１の処理後、ＩＣカード１からレスポンスを受信すると（ステップＳ１０２）、ＳＷが「９０００ｈ」であるか否かを判定する（ステップＳ１０３）。ＣＰＵ２０は、ＳＷが「９０００ｈ」であると判定した場合には（ステップＳ１０３：ＹＥＳ）、ＩＣカード１においてデータ読み出し処理が正常終了したと解釈し（ステップＳ１０４）、コマンドレスポンス処理を終了する。一方、ＣＰＵ２０は、ＳＷが「９０００ｈ」ではないと判定した場合には（ステップＳ１０３：ＮＯ）、次いで、ＳＷが「６Ｆ００ｈ」であり、且つ、ＳＷ１とＳＷ２の送信間隔ＩＮＴが間隔２であるか否かを判定する（ステップＳ１０５）。具体的には、ＣＰＵ２０は、ＩＣチップ１ａがＳＷ１のスタートビットを送信してからＳＷ２のスタートビットを送信するまでのＣＬＯＣＫ数を計数することにより送信間隔ＩＮＴを測定し、送信間隔ＩＮＴが間隔２であるか否かを判定する。
【００５５】
ＣＰＵ２０は、ＳＷが「６Ｆ００ｈ」であり、且つ、ＳＷ１とＳＷ２の送信間隔ＩＮＴが間隔２であると判定した場合には（ステップＳ１０５：ＹＥＳ）、ＩＣカード１においてデータ読み出し処理時にメモリ異常が発生したと解釈し（ステップＳ１０６）、コマンドレスポンス処理を終了する。一方、ＣＰＵ２０は、ＳＷが「６Ｆ００ｈ」ではない、又は、ＳＷ１とＳＷ２の送信間隔ＩＮＴが間隔２ではないと判定した場合には（ステップＳ１０５：ＮＯ）、次いで、ＳＷが「６Ｆ００ｈ」であり、且つ、ＳＷ１とＳＷ２の送信間隔ＩＮＴが間隔３であるか否かを判定する（ステップＳ１０７）。
【００５６】
ＣＰＵ２０は、ＳＷが「６Ｆ００ｈ」であり、且つ、ＳＷ１とＳＷ２の送信間隔ＩＮＴが間隔３であると判定した場合には（ステップＳ１０７：ＹＥＳ）、ＩＣカード１においてデータ読み出し処理時に論理異常が発生したと解釈し（ステップＳ１０８）、コマンドレスポンス処理を終了する。一方、ＣＰＵ２０は、ＳＷが「６Ｆ００ｈ」ではない、又は、ＳＷ１とＳＷ２の送信間隔ＩＮＴが間隔３ではないと判定した場合には（ステップＳ１０７：ＮＯ）、その他の異常（メモリー異常及び論理異常以外の異常）が発生したと解釈し（ステップＳ１０９）、コマンドレスポンス処理を終了する。
【００５７】
以上のように、第１実施例のＩＣチップ１ａ（「電子情報記憶媒体」の一例）のＣＰＵ１０（「送信手段」の一例）は、外部機器２（「通信機器」の一例）から受信したデータ読み出しコマンド（「命令データ」の一例）に応じてデータ読み出し処理を実行し、ＳＷ１（「第１のキャラクタ」の一例）とＳＷ２（「第２のキャラクタ」の一例）で構成されるＳＷ（「応答データ」の一例）を外部機器２に送信する。そして、ＣＰＵ１０は、ＳＷを構成する各キャラクタを１キャラクタずつ送信する際に、データ読み出し処理の実行結果が正常終了であるか、メモリ異常発生による異常終了であるか、又は、論理異常による異常終了であるか（「所定の条件」の一例）に応じてＳＷ１とＳＷ２の送信間隔ＩＮＴを異ならせて送信する。
【００５８】
したがって、第１実施例のＩＣチップ１ａによれば、ＳＷ１とＳＷ２を含むレスポンスを１キャラクタずつ送信する際に、処理の実行結果に応じてＳＷ１とＳＷ２の送信間隔を異ならせることにより、同一の異常終了を示すＳＷであっても、メモリ異常発生による異常終了や、論理異常による異常終了といった複数の異なる意味を持たせることができる。
【００５９】
また、第１実施例の外部機器２は、データ読み出しコマンド（「命令データ」の一例）に応じたデータ読み出し処理を実行するＩＣチップ１ａ（「電子情報記憶媒体」の一例）から、ＳＷ１（「第１のキャラクタ」の一例）とＳＷ２（「第２のキャラクタ」の一例）を含み、データ読み出し処理の実行結果に応じたＳＷ（「応答データ」の一例）を受信し、ＣＰＵ２０（「測定手段」、「判断手段」の一例）は、ＳＷを構成する各キャラクタを１キャラクタずつ受信する際に、ＳＷ１とＳＷ２の受信間隔を測定し、当該受信間隔に応じてデータ読み出し処理の実行結果を判断する。したがって、第１実施例の外部機器２によれば、データ読み出し処理の実行結果をＳＷ１とＳＷ２の受信間隔に応じて判断することができる。
【００６０】
更に、第１実施例の通信システムＳにおいて、ＩＣカード１におけるＩＣチップ１ａ（「第１の通信機器」の一例）のＣＰＵ１０（「送信手段」の一例）は、ＳＷ１（「第１のキャラクタ」の一例）とＳＷ２（「第２のキャラクタ」の一例）を含むレスポンス（「通信データ」の一例）を１キャラクタずつ外部機器２（「第２の通信機器」の一例）に送信する際に、データ読み出しコマンドに応じたデータ読み出し処理の実行結果が正常終了であるか、メモリ異常発生による異常終了であるか、又は、論理異常による異常終了であるか（「所定の条件」の一例）に応じてＳＷ１とＳＷ２の送信間隔ＩＮＴを異ならせて送信する。一方、外部機器２のＣＰＵ２０（「解釈手段」の一例）は、ＩＣチップ１ａから受信したＳＷ１とＳＷ２の受信間隔（送信間隔ＩＮＴに一致する）に応じてレスポンスを解釈する。すなわち、同一の異常終了を示すＳＷであっても、メモリ異常発生による異常終了や、論理異常による異常終了といった複数の異なる意味を持たせることができる。
【００６１】
［５．第２実施例］
次に、図７及び図８を用いて本実施形態の第２実施例について説明する。第２実施例は、Ｃ−ＡＰＤＵに含まれるコマンドヘッダにおけるＣＬＡとＩＮＳの間隔を異ならせることにより、ＣＬＡ及びＩＮＳに格納されている値が示すコマンドの内容よりも詳細なコマンドの内容をＩＣカード１に知らせる実施例である。
【００６２】
まず、図７を用いてＣ−ＡＰＤＵに含まれるＣＬＡとＩＮＳの間隔について説明する。外部機器２のＣＰＵ２０は、所定の条件に応じて、ＣＬＡとＩＮＳの間隔を異ならせてコマンドヘッダを送信する。ここでは、ＣＰＵ２０がＩＣカード１に対してデータ読み出しコマンドを送信して、ＩＣカード１がデータ読み出し処理を実行する場合の例について説明する。
【００６３】
ＣＰＵ２０は、データ読み出し処理においてデータを読み出す領域に応じてＣＬＡのパリティビットとＩＮＳのスタートビットの間隔を異ならせる。例えば、ＣＰＵ２０は、ＩＣカード１に対して不揮発性メモリ１３における領域１からデータを読み出させる場合には、ＣＬＡのパリティビットとＩＮＳのスタートビットの間隔を１ｅｔｕ（送信間隔ＩＮＴは１１ｅｔｕ）とし（図７（Ａ））、ＩＣカード１に対して不揮発性メモリ１３における領域２からデータを読み出させる場合には、ＣＬＡのパリティビットとＩＮＳのスタートビットの間隔を２ｅｔｕ（送信間隔ＩＮＴは１２ｅｔｕ）とし（図７（Ｂ））、ＩＣカード１に対して不揮発性メモリ１３における領域３からデータを読み出させる場合には、ＣＬＡのパリティビットとＩＮＳのスタートビットの間隔を３ｅｔｕ（送信間隔ＩＮＴは１３ｅｔｕ）とする（図７（Ｃ））。なお、不揮発性メモリ１３は領域１、領域２、領域３に分割されていることを外部機器２は把握していることとする。
【００６４】
なお、第２実施例では、ＣＬＡとＩＮＳの送信間隔ＩＮＴが１１ｅｔｕである場合を「間隔１」と呼び、ＣＬＡとＩＮＳの送信間隔ＩＮＴが１２ｅｔｕである場合を「間隔２」と呼び、ＣＬＡとＩＮＳの送信間隔ＩＮＴが１３ｅｔｕである場合を「間隔３」と呼ぶ。
【００６５】
次に、図８を用いて第２実施例におけるＩＣカード１（ＩＣチップ１ａ）と外部機器２によるコマンドレスポンス処理について説明する。なお、図８は第２実施例における外部機器２とＩＣチップ１ａによるコマンドレスポンス処理の一例を示すフローチャートである。また、ここでは通信プロトコルがＴ＝０である場合について説明する。
【００６６】
まず、外部機器２のＣＰＵ２０は、データ読み出しコマンドを示すＣ−ＡＰＤＵを構成するキャラクタ（送信キャラクタ）を準備する（ステップＳ１３１）。
【００６７】
次に、ＣＰＵ２０は、データ読み出しコマンドにより読み出すデータが格納されている領域であるデータ読み出し領域は、領域１であるか否かを判定する（ステップＳ１３２）。ＣＰＵ２０は、データ読み出し領域は領域１であると判定した場合には（ステップＳ１３２：ＹＥＳ）、読み出しコマンドのＣＬＡとＩＮＳの送信間隔ＩＮＴを間隔１（１１ｅｔｕ）として読み出しコマンドをＩＣカード１に送信し（ステップＳ１３３）、ステップＳ１３７の処理に移行する。一方、ＣＰＵ２０は、データ読み出し領域は領域１ではないと判定した場合には（ステップＳ１３２：ＮＯ）、次いで、データ読み出し領域は、領域２であるか否かを判定する（ステップＳ１３４）。
【００６８】
ＣＰＵ２０は、データ読み出し領域は領域２であると判定した場合には（ステップＳ１３４：ＹＥＳ）、読み出しコマンドのＣＬＡとＩＮＳの送信間隔ＩＮＴを間隔２（１２ｅｔｕ）として読み出しコマンドをＩＣカード１に送信し（ステップＳ１３５）、ステップＳ１３７の処理に移行する。一方、ＣＰＵ２０は、データ読み出し領域は領域２ではないと判定した場合には（ステップＳ１３４：ＮＯ）、読み出しコマンドのＣＬＡとＩＮＳの送信間隔ＩＮＴを間隔３（１３ｅｔｕ）として読み出しコマンドをＩＣカード１に送信し（ステップＳ１３６）、ステップＳ１３７の処理に移行する。
【００６９】
これに対して、ＩＣカード１のＣＰＵ１０は、データ読み出しコマンドを外部機器２から受信する（ステップＳ２３１）。なお、ＣＰＵ１０は、外部機器２からＣ−ＡＰＤＵを受信する際に、ＣＬＡとＩＮＴの送信間隔ＩＮＴを測定することとする。例えば、ＣＰＵ１０は、ＣＬＡに対応するキャラクタのスタートビットを受信してから、ＩＮＴに対応するキャラクタのスタートビットを受信するまでのＣＬＯＣＫ数を計数することにより送信間隔ＩＮＴを測定する。
【００７０】
次に、ＣＰＵ１０は、ステップＳ２３１で受信したデータ読み出しコマンドのＣＬＡとＩＮＳの送信間隔ＩＮＴが間隔１（１１ｅｔｕ）であったか否かを判定する（ステップＳ２３２）。例えば、ＣＰＵ１０は、ＣＬＡに対応するキャラクタのスタートビットを受信してから、ＩＮＴに対応するキャラクタのスタートビットを受信するまでのＣＬＯＣＫ数が１１ｅｔｕに対応しているか否かにより間隔１であったか否かを判定する。
【００７１】
ＣＰＵ１０は、ＣＬＡとＩＮＳの送信間隔ＩＮＴが間隔１であったと判定した場合には（ステップＳ２３２：ＹＥＳ）、領域１からデータを読み出し、読み出したデータとＳＷ（「９０００ｈ」）を含むＲ−ＡＰＤＵを外部機器２に送信し（ステップＳ２３３）、コマンドレスポンス処理を終了する。一方、ＣＬＡとＩＮＳの送信間隔ＩＮＴが間隔１ではなかったと判定した場合には（ステップＳ２３２：ＮＯ）、次いで、ＣＰＵ１０は、ステップＳ２３１で受信したデータ読み出しコマンドのＣＬＡとＩＮＳの送信間隔ＩＮＴが間隔２（１２ｅｔｕ）であったか否かを判定する（ステップＳ２３４）。例えば、ＣＰＵ１０は、ＣＬＡに対応するキャラクタのスタートビットを受信してから、ＩＮＴに対応するキャラクタのスタートビットを受信するまでのＣＬＯＣＫ数が１２ｅｔｕに対応しているか否かにより間隔２であったか否かを判定する。
【００７２】
ＣＰＵ１０は、ＣＬＡとＩＮＳの送信間隔ＩＮＴが間隔２であったと判定した場合には（ステップＳ２３４：ＹＥＳ）、領域２からデータを読み出し、読み出したデータとＳＷ（「９０００ｈ」）を含むＲ−ＡＰＤＵを外部機器２に送信し（ステップＳ２３５）、コマンドレスポンス処理を終了する。一方、ＣＬＡとＩＮＳの送信間隔ＩＮＴが間隔２ではなかったと判定した場合には（ステップＳ２３４：ＮＯ）、次いで、ＣＰＵ１０は、ステップＳ２３１で受信したデータ読み出しコマンドのＣＬＡとＩＮＳの送信間隔ＩＮＴが間隔３（１３ｅｔｕ）であったか否かを判定する（ステップＳ２３６）。例えば、ＣＰＵ１０は、ＣＬＡに対応するキャラクタのスタートビットを受信してから、ＩＮＴに対応するキャラクタのスタートビットを受信するまでのＣＬＯＣＫ数が１３ｅｔｕに対応しているか否かにより間隔３であったか否かを判定する。
【００７３】
ＣＰＵ１０は、ＣＬＡとＩＮＳの送信間隔ＩＮＴが間隔３であったと判定した場合には（ステップＳ２３６：ＹＥＳ）、領域３からデータを読み出し、読み出したデータとＳＷ（「９０００ｈ」）を含むＲ−ＡＰＤＵを外部機器２に送信し（ステップＳ２３７）、コマンドレスポンス処理を終了する。一方、ＣＬＡとＩＮＳの送信間隔ＩＮＴが間隔３ではなかったと判定した場合には（ステップＳ２３６：ＮＯ）、次いで、ＣＰＵ１０は、異常終了を示すＳＷ（例えば、「６Ｆ００ｈ」）を含むＲ−ＡＰＤＵを外部機器２に送信し（ステップＳ２３８）、コマンドレスポンス処理を終了する。
【００７４】
なお、図８では、ステップＳ２３３、ステップＳ２３５、ステップＳ２３７の処理においてデータ読み出し処理が正常終了した場合の例を示したが、異常終了であった場合には、ＣＰＵ１０は、異常の内容を示すＳＷを含むＲ−ＡＰＤＵを外部機器２に送信することとする（第１実施例で説明したようにＳＷ１とＳＷ２の送信間隔ＩＮＴをエラーの内容に応じて異ならせることとしてもよい）。
【００７５】
また、図８では、ＣＬＡとＩＮＳの送信間隔ＩＮＴが間隔１、間隔２及び間隔３の何れでもない場合に、異常を示すＳＷを送信することとしたが（ステップＳ２３８）、領域１、領域２又は領域３の何れかの領域からデータを読み出すこととし、読み出したデータと、ＳＷ（「９０００ｈ」）を送信することとしてもよい。
【００７６】
以上のように、第２実施例のＩＣチップ１ａ（「電子情報記憶媒体」の一例）のＣＰＵ１０（「測定手段」、「実行手段」の一例）は、外部機器２（「通信機器」の一例）からＣＬＡ（「第１のキャラクタ」の一例）とＩＮＳ（「第２のキャラクタ」の一例）を含む複数のキャラクタからなるデータ読み出しコマンド（「命令データ」の一例）を受信し、データ読み出し処理を実行する。そして、ＣＰＵ１０は、データ読み出しコマンドを構成する各キャラクタを１キャラクタずつ受信する際に、ＣＬＡとＩＮＳの受信間隔（送信間隔ＩＮＴと一致する）を測定し、当該測定した受信間隔に応じた処理を実行する。例えば、受信間隔が間隔１であれば領域１からデータを読み出し、受信間隔が間隔２であれば領域２からデータを読み出し、受信間隔が間隔３であれば領域３からデータを読み出す。
【００７７】
したがって、第２実施例のＩＣチップ１ａによれば、ＣＬＡとＩＮＳを含むデータ読み出しコマンドを１キャラクタずつ受信した際に、ＣＬＡとＩＮＳの受信間隔に応じた記憶領域からデータを読み出すことから、同一のデータ読み出しコマンドであっても異なる領域からデータを読み出すコマンドとして解釈し、受信間隔に応じた記憶領域からデータを読み出すことができる。
【００７８】
また、第２実施例の外部機器２（「通信機器」の一例）のＣＰＵ２０（「送信手段」の一例）は、ＣＬＡ（「第１のキャラクタ」の一例）とＩＮＳ（「第２のキャラクタ」の一例）を含む複数のキャラクタからなるデータ読み出しコマンド（「命令データ」の一例）をＩＣカード１のＩＣチップ１ａ（「電子情報記憶媒体」の一例）に送信する。そして、ＣＰＵ２０は、データ読み出しコマンドを構成する各キャラクタを１キャラクタずつ送信する際に、ＩＣチップ１ａにデータを読み出させる領域に応じてＣＬＡとＩＮＳの送信間隔ＩＮＴを異ならせて送信する。
【００７９】
したがって、第２実施例の外部機器２によれば、ＣＬＡとＩＮＳを含むデータ読み出しコマンドを１キャラクタずつ送信する際に、データを読み出す記憶領域に応じてＣＬＡとＩＮＳの送信間隔ＩＮＴを異ならせることにより、同一のデータ読み出しコマンドであっても異なる領域からデータを読み出させることができる。
【００８０】
更に、第２実施例の通信システムＳにおいて外部機器２（「第１の通信機器」の一例）のＣＰＵ２０（「送信手段」の一例）は、ＣＬＡ（「第１のキャラクタ」の一例）とＩＮＳ（「第２のキャラクタ」の一例）を含むデータ読み出しコマンド（「通信データ」の一例）を１キャラクタずつＩＣカード１のＩＣチップ１ａ（「第２の通信機器」の一例）に送信する際に、データを読み出させる記憶領域に応じてＣＬＡとＩＮＳの送信間隔ＩＮＴを異ならせて送信する。また、ＩＣチップ１ａのＣＰＵ１０（「解釈手段」の一例）は、外部機器２から受信したＣＬＡとＩＮＳの受信間隔（送信間隔ＩＮＴに一致する）に応じてデータ読み出しコマンドに基づいてデータを読み出す領域を解釈する。すなわち、同一のデータ読み出しコマンドであっても異なる領域からデータを読み出させることができる。
【００８１】
［６．変形例］
次に、上記実施例の変形例について説明する。なお、以下に説明する変形例は適宜組み合わせることができる。
【００８２】
［６．１．変形例１］
上記実施例は、ＩＣカード１と外部機器２の間の通信プロトコルがＴ＝０である場合について説明したが、変形例１はＴ＝１である場合について説明する。図９は、Ｔ＝１プロトコルにおけるブロックフォーマットの一例を示す図である。
【００８３】
ＩＣカード１と外部機器２の間の通信プロトコルがＴ＝１である場合には、図９（Ａ）に示すブロックフォーマットによりＣ−ＡＰＤＵやＲ−ＡＰＤＵが送受信される。ブロックフォーマットは、先頭フィールド、情報フィールド、最終フィールドにより構成されている。先頭フィールドはＮＡＤ（ノードアドレス、１バイト）、ＰＣＢ(プロトコル制御バイト、１バイト)、ＬＥＮ（長さ、１バイト）の３バイトで構成される。ＮＡＤは、ブロックの送信元及び宛先を示し、ＰＣＢは、データ伝送の制御に必要となる情報であり、ＬＥＮは、情報フィールドのバイト数（０〜２５４）を示す。情報フィールドは、例えば、Ｃ−ＡＰＤＵやＲ−ＡＰＤＵが格納される。最終フィールドは、ブロックの誤り検出符号(ＥＤＣ:error detection code)が格納される。誤り検出符号は、例えば、水平冗長符合(ＬＲＣ: longitudinal redundancy check)、又は巡回冗長検査(ＣＲＣ: Cyclic redundancy check)が用いられる。なお、Ｃ−ＡＰＤＵを含むブロックは命令データの一例であり、Ｒ−ＡＰＤＵを含むブロックは応答データの一例であり、また、それぞれ通信データの一例でもある。
【００８４】
図９（Ｂ）は、情報フィールドにＲ−ＡＰＤＵ（ＳＷ１、ＳＷ２）が格納されている例を示し、図９（Ｃ）は、情報フィールドにＣ−ＡＰＤＵ（ＣＬＡ、ＩＮＳ、Ｐ１、Ｐ２）が格納されている例を示している。
【００８５】
上記第１実施例では、ＳＷ１とＳＷ２の送信間隔ＩＮＴを異ならせることとしたが、変形例１では、他のキャラクタ間の送信間隔ＩＮＴを異ならせることとしてもよい。例えば、ＮＡＤとＰＣＢの送信間隔ＩＮＴや、ＰＣＢとＬＥＮの送信間隔ＩＮＴ、ＬＥＮとＳＷ１と送信間隔ＩＮＴ、ＳＷ２とＬＲＣの送信間隔ＩＮＴを異ならせることとしてもよい。
【００８６】
また、上記第２実施例では、ＣＬＡとＩＮＳの送信間隔ＩＮＴを異ならせることとしたが、変形例１では、他のキャラクタ間の送信間隔ＩＮＴを異ならせることとしてもよい。例えば、ＮＡＤとＰＣＢの送信間隔ＩＮＴや、ＰＣＢとＬＥＮの送信間隔ＩＮＴ、ＬＥＮとＣＬＡの送信間隔ＩＮＴ、ＩＮＳとＰ１の送信間隔ＩＮＴ、Ｐ１とＰ２の送信間隔ＩＮＴ、Ｐ２とＬＲＣの送信間隔ＩＮＴを異ならせることとしてもよい。
【００８７】
更に、第１実施例、第２実施例及び変形例１では、一つの送信間隔ＩＮＴ（例えば、第１のキャラクタと第２のキャラクタ間の送信間隔ＩＮＴ）を異ならせる場合について説明したが、２以上の送信間隔ＩＮＴを異ならせ、それぞれに意味を持たせてもよい。例えば、第１のキャラクタと第２のキャラクタ間の送信間隔ＩＮＴと、第２のキャラクタと第３のキャラクタ（第２のキャラクタに続くキャラクタ）間の送信間隔ＩＮＴをそれぞれ異ならせることとしてもよい。この場合、第１のキャラクタと第２のキャラクタ間の送信間隔ＩＮＴを間隔１〜間隔３の何れかとし、第２のキャラクタと第３のキャラクタ間の送信間隔ＩＮＴを間隔１〜間隔３の何れかとする場合、９パターンの送信パターンとして、それぞれに意味を持たせることができる。更に、他のキャラクタ間の送信間隔ＩＮＴを異ならせることにより、より多くの送信パターンとして、それぞれ意味を持たせることができる。
【００８８】
なお、第１実施例、第２実施例及び変形例１において、何れのキャラクタ間の送信間隔ＩＮＴを何れの条件に従ってどのように異ならせるかについて、予めＩＣカード１と外部機器２の間でルールを決めておくこととする。
【００８９】
［６．２．変形例２］
ＩＣカード１のＣＰＵ１０は、外部機器２から受信したコマンドに応じた処理を実行した場合において当該処理が正常終了した場合には、正常終了を示すＳＷ（「９０００ｈ」）を外部機器２に送信するが、ＳＷ１とＳＷ２の送信間隔ＩＮＴを異ならせることにより、正常終了に複数の意味を持たせてもよい。例えば、ＣＰＵ１０が、データ書き込みコマンドに応じた処理を実行した場合に、データを書き込んだ後の記憶領域の残量に応じて送信間隔ＩＮＴを異ならせても良い。仮に記憶領域の残量がゼロになった（または次にデータを書き込むだけの記憶領域がない）場合には、ＳＷ１とＳＷ２の送信間隔ＩＮＴを間隔２とし、記憶領域の残量に余裕がある場合には、ＳＷ１とＳＷ２の送信間隔ＩＮＴを間隔１とすることができる。これにより、外部機器２は、ＳＷ１とＳＷ２の送信間隔ＩＮＴが間隔２である場合に、記憶容量不足により、次のデータは書き込めないことを把握することができる。    
【符号の説明】
【００９０】
Ｓ  通信システム
１  ＩＣカード
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
２  外部機器
２０  ＣＰＵ
２１  ＲＡＭ
２２  ＲＯＭ
２３  不揮発性メモリ
２４  Ｉ／Ｏ回路
２５  操作部
２６  表示部
【図１】
2020144736.tif 000003
【図２】
2020144736.tif 000004
【図３】
2020144736.tif 000005
【図４】
2020144736.tif 000006
【図５】
2020144736.tif 000007
【図６】
2020144736.tif 000008
【図７】
2020144736.tif 000009
【図８】
2020144736.tif 000010
【図９】
2020144736.tif 000011