(57)【要約】【課題】複数の入出力端子からの受信データを、損なうことなく迅速に処理することができるＩＣカードを提供する。【解決手段】ＣＰＵ３はコマンド処理６１を行う。時間ｔ１１において、Ｉ／Ｏバッファ２３ａには、Ｉ／Ｏポート１１ａから受信したデータが書き込まれる（書込６２）。ＣＰＵ３は直ちにコマンド処理６１を中断し、Ｉ／Ｏバッファ２３ａに書き込まれたデータをＲＡＭ７に退避させる（退避６３）。退避６３が終了すると、ＣＰＵ３はＩ／Ｏバッファ２３ａがデータを受信中であるかを問い合わせる（問合せ６５）。これに対し、Ｉ／Ｏバッファ２３ａからは受信中６４のステータスがＣＰＵ３に返される。ＣＰＵ３は、コマンド処理６１を再開せず、次のＩ／Ｏバッファ２３ａへの書き込みを待つ。【選択図】図６
2008090800.tif 000002
【特許請求の範囲】
【請求項１】
複数の入出力端子と、
前記入出力端子の各々に対応して、前記入出力端子における受信データを一時的に保管するバッファと、
前記バッファに書き込まれた前記受信データを退避する退避手段と、
を有し、
前記退避手段は、
コマンド処理中に前記バッファに前記受信データが書き込まれる都度前記受信データを退避し、次の受信データを受信しなければコマンド処理を再開する手段を具備することを特徴とするＣＰＵを内蔵した情報記録媒体。
【請求項２】
前記退避手段は、
第１の受信データを退避した後に、後続の受信データの有無を検知する手段と、
前記第１の受信データに後続する第２の受信データがあると検知した場合に、前記第２の受信データが前記バッファに書き込まれるのを待機して、前記第２の受信データが前記バッファに書き込まれた場合には、前記第２の受信データを退避させる手段と、
を具備することを特徴とする請求項１記載のＣＰＵを内蔵した情報記録媒体。
【請求項３】
前記退避手段は、
コマンド処理中に前記バッファに前記受信データが書き込まれる都度前記受信データを退避し、その後直ちにコマンド処理を再開する手段を更に具備し、
前記受信データを退避した後、直ちにコマンド処理を再開するか、一定時間経過後に次の受信データを受信しなければコマンド処理を再開するか、いずれかを、バッファの大きさ、受信速度より計算して決定する手段を更に具備することを特徴とする請求項１記載のＣＰＵを内蔵した情報記録媒体。
【請求項４】
前記バッファはＵＡＲＴに置かれることを特徴とする請求項１記載のＣＰＵを内蔵した情報記録媒体。
【請求項５】
前記退避手段は、揮発性メモリに前記受信データを退避することを特徴とする請求項１記載のＣＰＵを内蔵した情報記録媒体。
【請求項６】
コンピュータを請求項１記載のＣＰＵを内蔵した情報記録媒体として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の入出力端子を有するＩＣカード等のＣＰＵを内蔵した情報記録媒体等に関するものである。
【背景技術】
【０００２】
従来、ＩＣカードは、店舗等に設置された端末に差し込んで利用する接触型ＩＣカードと、端末にかざして利用する非接触型ＩＣカードに大別され、サービス要件に基づいてそれぞれ採用されていた。
【０００３】
また、通信分野において、通信機能を持つ携帯型端末を使った決済サービスが登場してきた。このような端末には、通信サービス向けの接触型ＩＣカード機能と、決済サービス向けの非接触型ＩＣカード機能の両者を備えることが求められる。つまり、少なくとも接触型・非接触型の２つの入出力端子（以下Ｉ／Ｏポートと称する。）を有し、それぞれのＩ／Ｏポートから任意のタイミングでコマンドを送受信することが可能なＩＣカードへの要求は高まっている。
【０００４】
携帯型端末は、受信処理の発生やポーリング処理の実施など、予測不能なタイミングでの通信サービス処理を要求され、決済サービス処理など能動的な処理も要求される。即ち、同時に２つのサービス処理要求を受付けることが可能なＩＣカードが必要とされている。
【０００５】
ＩＣカードがサービス処理要求としてのコマンドを受信するときは、先ずＩ／Ｏポートの状態変化を検出してＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ）に代表される通信処理回路からコマンド受信の割り込みイベントが発生する。ＩＣカードでは、割り込みハンドラがコマンド受信処理を実行し、その後処理を復帰する。
【０００６】
通常、受信したデータはＩ／Ｏバッファと呼ばれるバッファに退避される。Ｉ／Ｏバッファは容量に限りがあり、バッファがいっぱいになると古いデータから上書きされてしまう。このため、受信データが上書きされる前にＩ／Ｏバッファのデータを安全な領域に退避する必要がある。この安全な領域への退避要求は割り込み処理としてイベントが発生する。通常、割り込み処理は優先度順に処理される。
【特許文献１】特開２００５−２９３３８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＩＣカードの処理スピードが向上している中、優先度順に割り込みを処理していると受信データを退避前にＩ／Ｏバッファが新たに受信したデータに上書きされてしまう可能性がある。
【課題を解決するための手段】
【０００８】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは複数の入出力端子からの受信データを、損なうことなく迅速に処理するＩＣカードを提供することにある。
【０００９】
前述した目的を達成するために第１の発明は、複数の入出力端子と、前記入出力端子の各々に対応して、前記入出力端子における受信データを一時的に保管するバッファと、前記バッファに書き込まれた前記受信データを退避する退避手段と、を有し、前記退避手段は、コマンド処理中に前記バッファに前記受信データが書き込まれる都度前記受信データを退避し、次の受信データを受信しなければコマンド処理を再開する手段を具備することを特徴とするＣＰＵを内蔵した情報記録媒体である。
【００１０】
前記退避手段は、第１の受信データを退避した後に、後続の受信データの有無を検知する手段と、前記第１の受信データに後続する第２の受信データがあると検知した場合に、前記第２の受信データが前記バッファに書き込まれるのを待機して、前記第２の受信データが前記バッファに書き込まれた場合には、前記第２の受信データを退避させる手段と、を具備する。
【００１１】
また、前記退避手段は、コマンド処理中に前記バッファに前記受信データが書き込まれる都度前記受信データを退避し、その後直ちにコマンド処理を再開する手段を更に具備し、前記受信データを退避した後、直ちにコマンド処理を再開するか、一定時間経過後に次の受信データを受信しなければコマンド処理を再開するか、いずれかを、バッファの大きさ、受信速度より計算して決定する手段を更に具備するようにしてもよい。
【００１２】
本発明では、前記バッファはＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ Ｔｒａｎｓｍｉｔｔｅｒ）に置かれる。また前記退避手段は、揮発性メモリに前記受信データを退避する。
【００１３】
第２の発明は、コンピュータを第１の発明のＣＰＵを内蔵した情報記録媒体として機能させるプログラムである。
【発明の効果】
【００１４】
本発明のＣＰＵを内蔵した情報記録媒体により、複数の入出力端子からの受信データを、損なうことなく迅速に処理することができる。
【発明を実施するための最良の形態】
【００１５】
以下添付図面に基づいて、本発明の一実施形態に係るＣＰＵを内蔵した情報記録媒体について詳細に説明する。
【００１６】
最初に図１はＣＰＵを内蔵した情報記録媒体であるＩＣカード１の構成の概略を示すブロック図である。
【００１７】
図１に示すように、ＩＣカード１は、接触・非接触の機能を持ったＩＣカードである。ＩＣモジュール端子とリーダ／ライタの端子が接触することで電力供給や通信を行う。
ＩＣカード１には、ＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）、ＵＩＭ（Ｕｎｉｖｅｒｓａｌ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）、ＵＳＩＭ（Ｕｎｉｖｅｒｓａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）等がある。
ＩＣカード１は、ＣＰＵ３、ＥＥＰＲＯＭ５（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＲＡＭ７、ＲＯＭ９、Ｉ／Ｏポート１１、ＵＡＲＴ１３（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ Ｔｒａｎｓｍｉｔｔｅｒ）等から構成される。
【００１８】
ＣＰＵ３は、ＲＯＭ９等に格納されるプログラムをＲＡＭ７上のワークメモリ領域に呼び出して実行し、演算処理、動作制御を行い、システム全体を制御する。
ＥＥＰＲＯＭ５は、書込み可能な不揮発性メモリであり、ユーザ領域を有し、プラットフォーム型ＯＳに対応したアプリケーションを複数搭載可能とする。例えば、アプリケーションとして、契約端末の認証を行う認証アプリケーション・プログラム、正当使用者／端末を特定するための認証情報（例えば、契約者識別情報等）を搭載、格納する。
【００１９】
ＲＡＭ７は、揮発性メモリであり、ＲＯＭ９等からロードしたプログラム、データ等を一時的に保持するとともに、ＣＰＵ３が各種処理を行う為に使用するワークエリアを備える。
【００２０】
ＲＯＭ９は、プログラム領域を有し、アプリケーションの追加・削除が可能なプラットフォーム型のＯＳを格納する。またアプリケーション・プログラムの一部を格納する。
Ｉ／Ｏポート１１ａ、１１ｂはＣＰＵが周辺機器にデータを送受信するために使う窓口である。それぞれのＩ／Ｏポート１１は固有のＩ／Ｏポートアドレスを持ち、識別される。ここでは、２つのＩ／Ｏポートを持つＩＣカード１を例にとって説明を行う。Ｉ／Ｏポート１１ａを接触型の機能を持つポート、Ｉ／Ｏポート１１ｂを非接触型の機能を持つポートとする。
【００２１】
ＵＡＲＴ１３ａ、１３ｂは、通信回路であり、各Ｉ／Ｏポート１１ａ、１１ｂに対応付けられる。
ＵＡＲＴ１３ａ、１３ｂは、パラレル信号をシリアル信号に変換したり、シリアル信号をパラレル信号に変換したりする。
尚、ＩＣカード１は、この構成に限られるものではない。
【００２２】
次に、図２を参照しながら、それぞれのＩ／Ｏポート１１からＩ／Ｏバッファ２３へのデータの流れについて説明を行う。
図２は接触型のＩ／Ｏポート１１ａと、Ｉ／Ｏポート１１ａに対応するＵＡＲＴ１３ａとのデータの流れを示す図である。
【００２３】
図２に示すように、ＵＡＲＴ１３ａにはシフトレジスタ２１ａ、Ｉ／Ｏバッファ２３ａ等が設けられる。シフトレジスタ２１ａは、受信したパラレル信号を１ビットずつ書き込んで左右に移動させることのできる一時的な記憶場所である。
Ｉ／Ｏバッファ２３ａは、受信したデータをＣＰＵ３が処理するために安全な場所に退避させるまでの間、一時的に保存しておく場所である。
【００２４】
Ｉ／Ｏポート１１ａから入力されたパラレル信号は、ＵＡＲＴ１３ａのシフトレジスタ２１ａに１ビットずつ書き込まれ（Ａ）、１バイト受信したところでＩ／Ｏバッファ２３ａに書き込まれる（Ｂ）。
【００２５】
次に、図３を参照しながら、Ｉ／Ｏポート１１からコマンドを受信した場合のＣＰＵ３の動作について説明を行う。図３は時間（ｔ）の経過とＣＰＵ３の動作を示す図である。コマンドは、例えば電話の接続時における認証コマンド等である。
【００２６】
図３に示すように、ＣＰＵ３はまずコマンド受信３１を行う。次にＣＰＵ３は受信したコマンドについてコマンド処理３２を行う。次にコマンドに対するレスポンス送信３３を行う。
【００２７】
ここで、複数のＩ／Ｏポート１１が存在する場合には、コマンド受信３１、コマンド処理３２、レスポンス送信３３の各々のタイミングで、他のＩ／Ｏポート１１からのコマンドを受信することがある。
【００２８】
通常、Ｉ／Ｏポートから受信したコマンドは、Ｉ／Ｏバッファ２３に一旦保存される。
【００２９】
次に図４を参照しながら、Ｉ／Ｏバッファ２３に受信データ（コマンド）が順次書き込まれた場合の受信データ（コマンド）の推移について説明を行う。
図４（ａ）は、Ｉ／Ｏバッファ２３の受信データの推移を示す図である。Ｔ１でＩ／Ｏバッファ２３に、Ｉ／Ｏポート１１から受信した受信データａ（コマンド）が存在しているときに、Ｉ／Ｏポート１１からさらに受信データｂが受信される。
Ｉ／Ｏバッファ２３上の受信データａは受信データｂで置き換えられる。
【００３０】
Ｉ／Ｏバッファ２３上には受信データｂが保存された状態になる。次にＴ２で、Ｉ／Ｏポート１１から受信データｃが受信されると、上記と同様にＩ／Ｏバッファ２３上の受信データｂは受信データｃで置き換えられる。
【００３１】
図４（ｂ）は、Ｉ／Ｏバッファ２３上に複数の受信データを保存するテーブルを保有し、受信データを履歴とともに保存する場合である。Ｔ１１で、Ｉ／Ｏバッファ２３上には受信データａ、受信データｂが保存されている。ここにＩ／Ｏポート１１から受信データｃが受信されると、空いている箇所に保存される。
【００３２】
次に、Ｔ１２において、受信データｄが受信されると、Ｉ／Ｏバッファ２３上の空いている場所に保存される。
次に、Ｔ１３において受信データｅが受信されると、Ｉ／Ｏバッファ２３上に空いている場所がないため、最も古い受信データａが受信データｅに置き換えられる。
【００３３】
このように、Ｉ／Ｏバッファ２３上の受信データは、Ｉ／Ｏバッファ２３に空きスペースがないと、次に受信したデータが最も古いデータを置き換えてしまう。
【００３４】
次に図５を参照しながら、複数のＩ／Ｏポート１１からデータ（コマンド）を受信する都度、逐次Ｉ／Ｏバッファ２３のデータを退避する逐次受信機能について説明を行う。
図５は、Ｉ／Ｏポート１１ｂから受信したコマンドの処理中にＩ／Ｏバッファ２３ａへの書き込みがあった場合の、Ｉ／Ｏバッファ２３ａのデータの退避、即ち、図３におけるコマンド処理３２時の割り込みを示すフローチャートである。
【００３５】
ＣＰＵ３は、コマンド処理５１を行う。時間ｔ１において、Ｉ／Ｏバッファ２３ａには、Ｉ／Ｏポート１１ａから受信したデータが書き込まれる（書込５２）。ＣＰＵ３は直ちにコマンド処理５１を中断し、Ｉ／Ｏバッファ２３ａに書き込まれたデータをメモリ、即ちＲＡＭ７等の安全な場所に退避させる（退避５３）。
一たん退避させたデータは、コマンド実行の際、再びＣＰＵ３が読み出して実行する。
【００３６】
退避５３が終了すると、ＣＰＵ３は直ちにコマンド処理５４を再開する。さらに、時間ｔ２において上記と同様にＩ／Ｏバッファ２３ａに受信データが書き込まれると（書込５５）、ＣＰＵ３はコマンド処理５４を中断し、Ｉ／Ｏバッファ２３ａに書き込まれたデータの退避５６を行う。
【００３７】
退避５６が終了するとコマンド処理５７が再開される。コマンド処理５７が終了するとＣＰＵ３は、Ｉ／Ｏポート１１ｂに対するレスポンスの送信を行い、送信されたデータはＩ／Ｏバッファ２３ｂを経由してＩ／Ｏポート１１ｂに送られる。
【００３８】
さらに、時間ｔ３においてＩ／Ｏバッファ２３ａに受信データが書き込まれる（書込５８）。ｔ１３では、ＣＰＵ３は既にコマンド処理５７を終えているので、ＣＰＵ３はＩ／Ｏバッファ２３ａに書き込まれたデータを直ちに退避する（退避５９）。
【００３９】
このように、ＣＰＵ３がコマンド処理中の場合には、Ｉ／Ｏバッファ２３に書き込みが行われる都度、ＣＰＵ３はコマンド処理を中断し、Ｉ／Ｏバッファ２３のデータの退避を行う。
【００４０】
次に、図６を参照しながら、複数のＩ／Ｏポート１１からデータ（コマンド）を受信した場合に、ＣＰＵ３が、１件のデータ（コマンド）を受信し終わるまでＩ／Ｏバッファ２３のデータの退避を繰り返す受信優先機能について説明を行う。
図６は、図５と同様、Ｉ／Ｏポート１１ｂから受信したコマンドの処理中にＩ／Ｏバッファ２３ａへの書き込みがあった場合の、Ｉ／Ｏバッファ２３ａのデータの退避、即ち、図３におけるコマンド処理３２時の割り込みを示すフローチャートである。
【００４１】
図６において、まずＣＰＵ３はコマンド処理６１を行う。時間ｔ１１において、Ｉ／Ｏバッファ２３ａには、Ｉ／Ｏポート１１ａから受信したデータが書き込まれる（書込６２）。ＣＰＵ３は直ちにコマンド処理６１を中断し、Ｉ／Ｏバッファ２３ａに書き込まれたデータを退避させる（退避６３）。
【００４２】
退避６３が終了すると、ＣＰＵ３はＩ／Ｏバッファ２３ａがデータを受信中であるかを問い合わせる（問合せ６５）。これに対し、Ｉ／Ｏバッファ２３ａからは受信中６４のステータスがＣＰＵ３に返される。ＣＰＵ３は、コマンド処理６１を再開せず、次のＩ／Ｏバッファ２３ａへの書き込みを待つ。
【００４３】
次に時間ｔ１２において、Ｉ／Ｏバッファ２３ａには、Ｉ／Ｏポート１１ａから受信したデータが書き込まれる（書込６６）。Ｉ／Ｏバッファ２３ａに書き込まれたデータは退避される（退避６７）。退避６７が終了すると、ＣＰＵ３はＩ／Ｏバッファ２３ａがデータを受信中であるかを問い合わせる（問合せ６９）。これに対し、Ｉ／Ｏバッファ２３ａからは受信中６８のステータスがＣＰＵ３に返される。ＣＰＵ３は、コマンド処理６１を再開せず、次のＩ／Ｏバッファ２３ａへの書き込みを待つ。
【００４４】
次に時間ｔ１３において、Ｉ／Ｏバッファ２３ａには、Ｉ／Ｏポート１１ａから受信したデータが書き込まれる（書込７０）。Ｉ／Ｏバッファ２３ａに書き込まれたデータは退避される（退避７１）。退避７１が終了すると、ＣＰＵ３はＩ／Ｏバッファ２３ａがデータを受信中であるかを問い合わせる（問合せ７２）。これに対し、Ｉ／Ｏバッファ２３ａからは受信中のステータスがＣＰＵ３に返されない（矢印７３）。ＣＰＵ３は、コマンド処理７４を再開する。
【００４５】
次に時間ｔ１４において、Ｉ／Ｏバッファ２３ａには、Ｉ／Ｏポート１１ａから受信したデータが書き込まれる（書込７５）。Ｉ／Ｏバッファ２３ａに書き込まれたデータは退避される（退避７６）。
【００４６】
このように、ＣＰＵ３がコマンド処理中の場合に、Ｉ／Ｏバッファ２３に書き込みが行われると、ＣＰＵ３はＩ／Ｏバッファ２３のデータの退避を行う。さらにＣＰＵ３は続けてＩ／Ｏバッファ２３への書き込みが行われるかどうかの問合せをし、受信中のステータスを受け取ると次のＩ／Ｏバッファ２３への書き込みを待つ。次のデータを受信していなければ、ＣＰＵ３はコマンド処理を再開する。
【００４７】
このようにして、データ量が多く、受信間隔の短いデータに関しては、データの上書きの危険性がさらに高まることから、次のデータを受信していなければ、実行中の処理を中断することによって、上書きによるデータの消去の危険性を回避することができる。
【００４８】
図５の逐次受信機能か、図６の受信優先機能かいずれを選択するかについては、通信速度、バッファサイズの２点が考慮される。
詳細を以下に述べる。
【００４９】
Ｉ／Ｏバッファ２３の書き込みが発生後、退避処理を実行し、次のＩ／Ｏバッファ２３の書き込みに対する退避処理までに発生する処理時間をＭとする。このとき、Ｍが最小となる場合はコマンド処理時間が０の場合である。Ｉ／Ｏバッファ２３の上書き時間と比較するためこの最小値をＭｍｉｎとして求める。この値はＩＣカード１ごとに異なるが、あらかじめ決まっている値である。
【００５０】
活性化後およびＰＰＳコマンド送信後、ＩＣカード１は通信速度からＩ／Ｏバッファ２３にデータが書き込まれてから次に上書きが発生するまでの時間Ｎを算出する。尚、この時間はもっとも早く受信処理される場合を想定して計算する。
Ｎ＝バッファサイズ／通信速度
尚、ＰＰＳコマンドとは通信プロトコルおよび通信速度を変更するコマンドである。
【００５１】
ＭｍｉｎおよびＮを比較し、逐次受信が可能かどうかを判断する。
Ｍｍｉｎ≧Ｎの場合、ＩＣカード１が活性化されるまで全ての受信割り込みに対して受信優先機能を採用する。
Ｍｍｉｎ＜Ｎの場合、ＩＣカード１が活性化されるまで全ての受信割り込みに対して逐次受信機能を採用する。
【００５２】
受信優先時に受信割り込みが発生した場合、本処理に戻らずに受信すべきデータ長分、受信処理を行う。しかし、ＣＰＵ３がＩ／Ｏバッファ２３のデータを退避した後、Ｉ／Ｏポート１１がコマンド受信中であることを確認できなければ、本処理であるコマンド処理に移行する。
【００５３】
以上のように、本発明のＩＣカード１では、複数の入出力端子からのデータを、計算を行って逐次受信機能か受信優先機能かを決定し、最も効率のよい方法を用いてＩ／Ｏバッファ２３のデータを退避させる。即ち、比較的データ量が少なく、受信間隔の長い受信データであれば、逐次受信機能を選択し、逆にデータ量が多く、受信間隔の短い受信データであれば受信優先機能を選択することとなる。
【００５４】
これにより、ＩＣカード１では、上書きによるデータの消去の危険性を回避し、複数の入出力端子からの受信データを、損なうことなく迅速に処理することができる。
【００５５】
以上、添付図面を参照しながら、本発明にかかるＩＣカード等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００５６】
【図１】ＩＣカード１の構成を示すブロック図
【図２】Ｉ／Ｏバッファ２３ａへの書き込みを示す図
【図３】コマンド受信時のＣＰＵ３の動作を示す図
【図４】Ｉ／Ｏバッファ２３における受信データの推移を示す図
【図５】逐次受信機能による割り込みを示す図
【図６】受信優先機能による割り込みを示す図
【符号の説明】
【００５７】
１………ＩＣカード
３………ＣＰＵ
５………ＥＥＰＲＯＭ
７………ＲＡＭ
９………ＲＯＭ
１１………Ｉ／Ｏポート
１３………ＵＡＲＴ
２１………シフトレジスタ
２３………Ｉ／Ｏバッファ
【図１】
2008090800.tif 000003
【図２】
2008090800.tif 000004
【図３】
2008090800.tif 000005
【図４】
2008090800.tif 000006
【図５】
2008090800.tif 000007
【図６】
2008090800.tif 000008