(57)【要約】【課題】リセット動作中に、より長い時間遅延させることができる。【解決手段】ＩＣカードは、リセット動作中に接続装置にリセット応答を送信するＩＣカードであって、カードの機能を実行するカード機能部と、カード機能部が起動するまで、リセット応答の各バイトに所定の割合で誤りを発生させて再送する起動遅延部と、を備える。【選択図】図１
2016091219.tif 000002
【特許請求の範囲】
【請求項１】
リセット動作中に接続装置にリセット応答を送信するＩＣカードであって、
カードの機能を実行するカード機能部と、
前記カード機能部が起動するまで、前記リセット応答の各バイトに所定の割合で誤りを発生させて再送する起動遅延部と、
を備えることを特徴とするＩＣカード。
【請求項２】
前記起動遅延部は、前記カード機能部が起動するまで、複数バイトある前記リセット応答を１バイト毎に、通常より長い時間間隔を空けて送信する
ことを特徴とする請求項１に記載のＩＣカード。
【請求項３】
ＩＳＯ７８１６−３に準じた通信インタフェース部をさらに備える
ことを特徴とする請求項１または２に記載のＩＣカード。
【請求項４】
リセット動作中に接続装置にリセット応答を送信するＩＣカードにおける通信方法であって、
カードの機能を実行するカード機能部が起動するまで、前記リセット応答の各バイトに所定の割合で誤りを発生させて再送する起動遅延過程
を有することを特徴とする通信方法。
【請求項５】
リセット動作中に接続装置にリセット応答を送信するＩＣカードのコンピュータに、
カードの機能を実行するカード機能部が起動するまで、前記リセット応答の各バイトに所定の割合で誤りを発生させて再送する起動遅延ステップ
を実行させるための通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカード、通信方法及び通信プログラムに関する。
【背景技術】
【０００２】
従来から、標準ＩＳＯ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ）７８１６‐３により接触インタフェースを介して、接続装置と通信するＩＣカードがある。特許文献１に記載の技術では、トランザクションを維持するために、リセット動作中のリセット応答（ＡＴＲ（Ａｎｓｗｅｒ  Ｔｏ  Ｒｅｓｅｔ）を遅延させている。具体的には、リセット応答の１バイトを送信し、その「送信の再開」を所定サイクル後に行うことにより、リセット応答の各バイト間隔を空けて送信し、リセット動作を遅延させている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００７−５１６５２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、リセット応答の最大長が３２バイトであること及び空けられる間隔に規格上上限があることにより、遅延させられる最大の時間には限界がある(最大約２９秒)、という問題があった。例えば、クロックが３．８５ＭＨｚである場合、１ＥＴＵ（Ｅｌｅｍｅｎｔａｒｙ  Ｔｉｍｅ  Ｕｎｉｔ）は(１／３８５００００)×３７２＝０．００００９６６(秒)である。また、１バイト遅らせる際の最大値は９６００ＥＴＵ＝０．９２７６(秒)である。よって、３２バイトのリセット応答を最大限に遅らせた場合の遅延時間は０．９２７６×３１＝２８．７５５(秒)である。
【０００５】
本発明は上記の点に鑑みてなされたものであり、リセット動作中に、より長い時間遅延させることができるＩＣカード、通信方法及び通信プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
（１）本発明は上記の課題を解決するためになされたものであり、本発明の第１の態様は、リセット動作中に接続装置にリセット応答を送信するＩＣカードであって、カードの機能を実行するカード機能部と、前記カード機能部が起動するまで、前記リセット応答の各バイトに所定の割合で誤りを発生させて再送する起動遅延部と、を備えることを特徴とするＩＣカードである。
【０００７】
（２）また、本発明の第２の態様は、リセット動作中に接続装置にリセット応答を送信するＩＣカードにおける通信方法であって、カードの機能を実行するカード機能部が起動するまで、前記リセット応答の各バイトに所定の割合で誤りを発生させて再送する起動遅延過程を有することを特徴とする通信方法である。
【０００８】
（３）また、本発明の第３の態様は、リセット動作中に接続装置にリセット応答を送信するＩＣカードのコンピュータに、カードの機能を実行するカード機能部が起動するまで、前記リセット応答の各バイトに所定の割合で誤りを発生させて再送する起動遅延ステップを実行させるための通信プログラムである。
【発明の効果】
【０００９】
本発明によれば、リセット動作中に、より長い時間遅延させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態に係るＩＣカードの機能構成を示すブロック図である。
【図２】第１の実施形態に係るＩＣカードにおける通信処理の一動作例を説明するためのタイミングチャートである。
【図３】第１の実施形態に係るＩＣカードの通信処理の一例を示すフローチャートである。
【図４】本発明の第２の実施形態に係るＩＣカードにおける通信処理の一動作例を説明するためのタイミングチャートである。
【図５】第２の実施形態に係るＩＣカードの通信処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
（第１の実施形態）
まず、本発明の第１の実施形態について説明する。
図１は、第１の実施形態に係るＩＣカード１０の機能構成を示すブロック図である。
ＩＣカード１０は、ＩＳＯ７８１６−３に準じたシリアルインタフェースを備えたＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カードである。ＩＣカード１０は、カード機能部１０１と、カード制御部１０２と、起動遅延部１０３と、通信インタフェース部１０４と、を含んで構成される。
【００１２】
カード機能部１０１は、ＩＣカード１０のメインの機能を実行して提供する。カード制御部１０２は、ＩＣカード１０全体を統括して制御する。例えば、カード制御部１０２は、ＩＣカード１０の電源がオンになったとき（以下、電源ＯＮ時とする）またはＩＣカード１０のリセットが解除されたとき（以下、リセット解除時とする）に、カード機能部１０１の起動状態を確認し、確認した起動状態に応じて起動遅延部１０３の動作を制御する。
【００１３】
起動遅延部１０３は、ＩＣカード１０のリセット動作中（電源ＯＮ時またはリセット解除時）に、通信インタフェース部１０４を介して、ＩＣカード１０のリーダ（接続装置）にリセット応答（ＡＴＲ）を送信する。このとき、起動遅延部１０３は、複数バイトあるリセット応答を１バイト毎に順に送信する。また、起動遅延部１０３は、カード制御部１０２から得たカード機能部１０１の起動状態に応じて、リセット応答の送信を遅延させて、リーダとの間のリセット動作を遅延させる動作を行う。具体的には、起動遅延部１０３は、電源ＯＮ時またはリセット解除時からカード機能部１０１が起動するまで、リセット応答の各バイトに所定の割合で誤り（パリティエラー）を発生させて再送する。通信インタフェース部１０４は、ＩＣカード１０のリーダと接続するための接触通信インタフェースであり、ＩＳＯ７８１６−３に準じたシリアルインタフェースである。
【００１４】
次に、本実施形態によるＩＣカード１０による通信方法について説明する。
図２は、第１の実施形態に係るＩＣカード１０における通信処理の一動作例を説明するためのタイミングチャートである。本図における横軸は時間である。ＩＣカード１０の起動遅延部１０３は、リセット動作中に、通信インタフェース部１０４を介して、リセット応答を１バイトずつ順にリーダに送信する。本図に示すリセット応答は、６バイトである。具体的には、起動遅延部１０３は、電源ＯＮ時またはリセット解除時（ｔ１１）からカード機能部１０１の起動が完了するまで（ｔ１２）の間（カード機能部１０１の起動処理中）、所定の割合で意図的なパリティエラーを挿入してリセット応答を再送する。そして、起動遅延部１０３は、カード機能部１０１の起動が完了すると（ｔ１２）、リセット応答を通常通り送信する。
【００１５】
図２（ａ）は、従来技術に係るＩＣカードにおけるリセット応答送信方法を示す。従来技術では、リセット応答の各バイトを順に送信するため、カード機能部１０１の起動が完了する前にリセット応答を全て送信してしまうことがあった。この場合、ＩＣカードは、リセット応答を全て送信した後であってカード機能部１０１の起動が完了する前に、ＩＣカードのリーダから機能使用要求を受信した場合（ｔ１３）には、カード機能部１０１が起動していないため、エラーが発生する。機能使用要求は、カード機能部１０１の機能の使用を要求するデータである。
【００１６】
図２（ｂ）は、本実施形態に係るＩＣカード１０におけるリセット応答送信方法を示す。ＩＣカード１０の起動遅延部１０３は、電源ＯＮ時またはリセット解除時（ｔ１１）からカード機能部１０１の起動が完了するまで（ｔ１２）の間、リセット応答の各バイトに２回パリティエラーを発生させて送信する。すなわち、起動遅延部１０３は、リセット応答を１バイト送信するために３回の送信を発生させる。また、起動遅延部１０３は、カード機能部１０１の起動が完了する（ｔ１２）と、リセット応答を通常通り送信する。すなわち、起動遅延部１０３は、カード機能部１０１の起動が完了すると、パリティエラーの挿入を停止する。図示する例では、起動遅延部１０３は、リセット応答を、ｔ１２までに送信した４バイト目まではパリティエラーを挿入して送信し、ｔ１２以降に送信する５バイト目以降にはパリティエラーを挿入せずに送信する。これにより、ＩＣカード１０は、従来技術に比べて、リセット動作中に、より長い時間遅延させることができる。すなわち、カード機能部１０１の起動が完了するまでに、リセット応答を送信し続けることができる。よって、ＩＣカード１０は、リセット応答を全て送信した後にＩＣカード１０のリーダから機能使用要求を受信した場合（ｔ１４）であっても、カード機能部１０１の起動が完了しているため、当該機能使用要求に応答することができる。
【００１７】
図３は、第１の実施形態に係るＩＣカード１０の通信処理の一例を示すフローチャートである。本図に示す処理は、ＩＣカード１０の電源ＯＮ時またはリセット解除時に実行される。
ステップＳＴ１０１において、カード制御部１０２は、ＩＣカード１０の電源ＯＮまたはリセット解除を検出する。その後、ステップＳＴ１０２の処理に進む。
【００１８】
ステップＳＴ１０２において、起動遅延部１０３は、エラー挿入数ｃを２に初期化する。その後、ステップＳＴ１０３の処理に進む。
ステップＳＴ１０３において、カード制御部１０２は、カード機能部１０１の起動が完了したか否かを判定する。カード機能部１０１の起動が完了している場合にはステップＳＴ１０９の処理に進む。一方、カード機能部１０１の起動が完了していない場合にはステップＳＴ１０４の処理に進む。
【００１９】
ステップＳＴ１０４において、起動遅延部１０３は、エラー挿入数ｃが０であるか否かを判定する。エラー挿入数ｃが０である場合にはステップＳＴ１０７の処理に進む。一方、エラー挿入数ｃが０でない場合にはステップＳＴ１０５の処理に進む。
【００２０】
ステップＳＴ１０５において、起動遅延部１０３は、パリティエラーのあるリセット応答を１バイト送信する。その後、ステップＳＴ１０６の処理に進む。
ステップＳＴ１０６において、起動遅延部１０３は、エラー挿入数ｃから１減算する。その後、ステップＳＴ１０３の処理に戻る。
【００２１】
ステップＳＴ１０７において、起動遅延部１０３は、正常な（パリティエラーのない）リセット応答を１バイト送信する。その後、ステップＳＴ１０８の処理に進む。
ステップＳＴ１０８において、起動遅延部１０３は、リセット応答の最後のバイトの送信を完了したか否かを判定する。最後のバイトを送信した場合には処理を終了する。一方、最後のバイトを送信していない場合にはステップＳＴ１０２の処理に戻る。
ステップＳＴ１０２〜ＳＴ１０８の処理が、リセット応答の各バイトに一定の割合でパリティエラーを挿入して再送を促す処理である。
【００２２】
ステップＳＴ１０９において、起動遅延部１０３は、正常な（パリティエラーのない）リセット応答を１バイト送信する。その後、ステップＳＴ１１０の処理に進む。
ステップＳＴ１１０において、起動遅延部１０３は、リセット応答の最後のバイトの送信を完了したか否かを判定する。最後のバイトを送信した場合には処理を終了する。一方、最後のバイトを送信していない場合にはステップＳＴ１０９の処理に戻る。
ステップＳＴ１０９〜ＳＴ１１０の処理が、カード機能部１０１の起動が完了した後に、リセット応答を通常通り送信する処理である。
【００２３】
なお、本実施形態では、起動遅延部１０３は、リセット応答を１バイト送信する毎に２回パリティエラーを挿入しているが、これに限らず、エラー挿入数ｃは１回以上であればよい。
【００２４】
このように、本実施形態によれば、ＩＣカード１０は、リセット動作中に接続装置にリセット応答を送信するＩＣカード１０であって、カードの機能を実行するカード機能部１０１と、カード機能部１０１が起動するまで、リセット応答の各バイトに所定の割合で誤りを発生させて再送する起動遅延部１０３と、を備える。
【００２５】
これにより、ＩＣカード１０は、従来技術に比べて、リセット動作中に、より長い時間遅延させることができる。すなわち、カード機能部１０１の起動に、より時間のかかるＩＣカード１０であっても、電源ＯＮ時またはリセット解除時に正常に動作させることができる。
【００２６】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
本実施形態におけるＩＣカード１０の構成は、図１に示す第１の実施形態における構成と同様であるため、その説明を省略する。第１の実施形態ではリセット応答の各バイトを通常の時間間隔で送信しているが、本実施形態ではカード機能部１０１の起動が完了するまでリセット応答の各バイトを送信する時間間隔を通常より長くする。すなわち、本実施形態における起動遅延部１０３は、電源ＯＮ時またはリセット解除時からカード機能部１０１が起動するまで、複数バイトあるリセット応答を１バイト毎に、通常より長い時間間隔を空けて送信する。当該空ける時間間隔は、例えば規格上の上限時間である。
【００２７】
図４は、第２の実施形態に係るＩＣカード１０における通信処理の一動作例を説明するためのタイミングチャートである。本図における横軸は時間である。ＩＣカード１０の起動遅延部１０３は、リセット動作中に、通信インタフェース部１０４を介して、リセット応答を１バイトずつ順にリーダに送信する。本図に示すリセット応答は、６バイトである。具体的には、電源ＯＮ時またはリセット解除時（ｔ２１）からカード機能部１０１の起動が完了するまで（ｔ２２）の間（カード機能部１０１の起動処理中）、所定の割合で意図的なパリティエラーを挿入して応答を再送するとともに、各バイトを送信する時間間隔を通常より長くする。そして、起動遅延部１０３は、カード機能部１０１の起動が完了すると（ｔ２２）、リセット応答を通常通り送信する。
【００２８】
図４（ａ）は、従来技術に係るＩＣカードにおけるリセット応答送信方法を示す。従来技術では、リセット応答の各バイトを順に送信するため、カード機能部１０１の起動が完了する前にリセット応答を全て送信してしまうことがあった。この場合、ＩＣカードは、リセット応答を全て送信した後であってカード機能部１０１の起動が完了する前に、ＩＣカードのリーダから機能使用要求を受信した場合（ｔ２３）には、カード機能部１０１が起動していないため、エラーが発生する。
【００２９】
図４（ｂ）は、本実施形態に係るＩＣカード１０におけるリセット応答送信方法を示す。ＩＣカード１０の起動遅延部１０３は、電源ＯＮ時またはリセット解除時（ｔ２１）からカード機能部１０１の起動が完了するまで（ｔ２２）の間、リセット応答の各バイトに１回パリティエラーを発生させて送信するとともに、各バイトを送信する時間間隔を通常より長くする。すなわち、起動遅延部１０３は、リセット応答を１バイト送信するために２回の送信を発生させる。また、起動遅延部１０３は、カード機能部１０１の起動が完了する（ｔ２２）と、リセット応答を通常通り送信する。すなわち、起動遅延部１０３は、カード機能部１０１の起動が完了すると、パリティエラーの挿入を停止するとともに、各バイトを送信する時間間隔を通常に戻す。図示する例では、起動遅延部１０３は、リセット応答を、ｔ２２までに送信した４バイト目まではパリティエラーを挿入するとともに各バイトの時間間隔を空けて送信し、ｔ２２以降に送信する５バイト目以降はパリティエラーを挿入せずかつ時間間隔を空けずに送信する。これにより、ＩＣカード１０は、従来技術に比べて、リセット動作中に、より長い時間遅延させることができる。すなわち、カード機能部１０１の起動が完了するまでに、リセット応答を送信し続けることができる。よって、ＩＣカード１０は、リセット応答を全て送信した後にＩＣカード１０のリーダから機能使用要求を受信した場合（ｔ２４）であっても、カード機能部１０１の起動が完了しているため、当該機能使用要求に応答することができる。
【００３０】
図５は、第２の実施形態に係るＩＣカード１０の通信処理の一例を示すフローチャートである。本図に示す処理は、ＩＣカード１０の電源ＯＮ時またはリセット解除時に実行される。
ステップＳＴ２０１において、カード制御部１０２は、ＩＣカード１０の電源ＯＮまたはリセット解除を検出する。その後、ステップＳＴ２０２の処理に進む。
【００３１】
ステップＳＴ２０２において、起動遅延部１０３は、エラー挿入数ｃを１に初期化する。その後、ステップＳＴ２０３の処理に進む。
ステップＳＴ２０３において、カード制御部１０２は、カード機能部１０１の起動が完了したか否かを判定する。カード機能部１０１の起動が完了している場合にはステップＳＴ２１０の処理に進む。一方、カード機能部１０１の起動が完了していない場合にはステップＳＴ２０４の処理に進む。
【００３２】
ステップＳＴ２０４において、起動遅延部１０３は、エラー挿入数ｃが０であるか否かを判定する。エラー挿入数ｃが０である場合にはステップＳＴ２０７の処理に進む。一方、エラー挿入数ｃが０でない場合にはステップＳＴ２０５の処理に進む。
【００３３】
ステップＳＴ２０５において、起動遅延部１０３は、パリティエラーのあるリセット応答を１バイト送信する。その後、ステップＳＴ２０６の処理に進む。
ステップＳＴ２０６において、起動遅延部１０３は、エラー挿入数ｃから１減算する。また、起動遅延部１０３は、所定時間待機する（ウェイト）。その後、ステップＳＴ２０３の処理に戻る。
【００３４】
ステップＳＴ２０７において、起動遅延部１０３は、正常な（パリティエラーのない）リセット応答を１バイト送信する。その後、ステップＳＴ２０８の処理に進む。
ステップＳＴ２０８において、起動遅延部１０３は、リセット応答の最後のバイトの送信を完了したか否かを判定する。最後のバイトを送信した場合には処理を終了する。一方、最後のバイトを送信していない場合にはステップＳＴ２０９の処理に進む。
ステップＳＴ２０９において、起動遅延部１０３は、所定時間待機する（ウェイト）。その後、ステップＳＴ２０２の処理に戻る。
ステップＳＴ２０２〜ＳＴ２０９の処理が、リセット応答の各バイトに一定の割合でパリティエラーを挿入して再送を促すとともに、リセット応答の送信間隔を通常より長くする処理である。
【００３５】
ステップＳＴ２１０において、起動遅延部１０３は、正常な（パリティエラーのない）リセット応答を１バイト送信する。その後、ステップＳＴ２１１の処理に進む。
ステップＳＴ２１１において、起動遅延部１０３は、リセット応答の最後のバイトの送信を完了したか否かを判定する。最後のバイトを送信した場合には処理を終了する。一方、最後のバイトを送信していない場合にはステップＳＴ２１０の処理に戻る。
ステップＳＴ２１０〜ＳＴ２１１の処理が、カード機能部１０１の起動が完了した後に、リセット応答を通常通り送信する処理である。
【００３６】
なお、本実施形態では、起動遅延部１０３は、リセット応答を１バイト送信する毎に１回パリティエラーを挿入しているが、これに限らず、エラー挿入数ｃは１回以上であればよい。また、本実施形態では、カード機能部１０１の起動が完了までに送信するリセット応答において、１バイト毎に空ける時間間隔（ウェイト）を規格上の上限時間としたが、これに限らず、空ける時間間隔は通常より長い時間であればよい。
【００３７】
このように、本実施形態によれば、ＩＣカード１０は、第１の実施形態の構成に加えて、起動遅延部１０３は、カード機能部１０１が起動するまで、複数バイトあるリセット応答を１バイト毎に、通常より長い時間間隔を空けて送信する。
【００３８】
これにより、ＩＣカード１０は、従来技術に比べて、リセット動作中に、より長い時間遅延させることができる。すなわち、カード機能部１０１の起動に、より時間のかかるＩＣカード１０であっても、電源ＯＮ時またはリセット解除時に正常に動作させることができる。
【００３９】
なお、上述した実施形態におけるＩＣカード１０の一部、例えば、カード制御部１０２及び起動遅延部１０３をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、ＩＣカード１０に内蔵されたコンピュータシステムであって、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００４０】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【００４１】
（１）リセット動作中に接続装置にリセット応答を送信するＩＣカードであって、カードの機能を実行するカード機能部と、カード機能部が起動するまで、リセット応答の各バイトに所定の割合で誤りを発生させて再送する起動遅延部と、を備えることを特徴とするＩＣカード。
【００４２】
（２）起動遅延部は、カード機能部が起動するまで、複数バイトあるリセット応答を１バイト毎に、通常より長い時間間隔を空けて送信することを特徴とする（１）に記載のＩＣカード。
（３）ＩＳＯ７８１６−３に準じた通信インタフェース部をさらに備えることを特徴とする（１）または（２）に記載のＩＣカード。
【００４３】
（４）リセット動作中に接続装置にリセット応答を送信するＩＣカードにおける通信方法であって、カードの機能を実行するカード機能部が起動するまで、リセット応答の各バイトに所定の割合で誤りを発生させて再送する起動遅延過程を有することを特徴とする通信方法。
【００４４】
（５）リセット動作中に接続装置にリセット応答を送信するＩＣカードのコンピュータに、カードの機能を実行するカード機能部が起動するまで、リセット応答の各バイトに所定の割合で誤りを発生させて再送する起動遅延ステップを実行させるための通信プログラム。
【符号の説明】
【００４５】
１０・・・ＩＣカード、１０１・・・カード機能部、１０２・・・カード制御部、１０３・・・起動遅延部、１０４・・通信インタフェース部
【図１】
2016091219.tif 000003
【図２】
2016091219.tif 000004
【図３】
2016091219.tif 000005
【図４】
2016091219.tif 000006
【図５】
2016091219.tif 000007