説明

CPUを内蔵した情報記録媒体及びプログラム

【課題】複数の入出力端子からの受信データを、損なうことなく迅速に処理することができるICカードを提供する。
【解決手段】CPU3はコマンド処理61を行う。時間t11において、I/Oバッファ23aには、I/Oポート11aから受信したデータが書き込まれる(書込62)。CPU3は直ちにコマンド処理61を中断し、I/Oバッファ23aに書き込まれたデータをRAM7に退避させる(退避63)。退避63が終了すると、CPU3はI/Oバッファ23aがデータを受信中であるかを問い合わせる(問合せ65)。これに対し、I/Oバッファ23aからは受信中64のステータスがCPU3に返される。CPU3は、コマンド処理61を再開せず、次のI/Oバッファ23aへの書き込みを待つ。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の入出力端子を有するICカード等のCPUを内蔵した情報記録媒体等に関するものである。
【背景技術】
【0002】
従来、ICカードは、店舗等に設置された端末に差し込んで利用する接触型ICカードと、端末にかざして利用する非接触型ICカードに大別され、サービス要件に基づいてそれぞれ採用されていた。
【0003】
また、通信分野において、通信機能を持つ携帯型端末を使った決済サービスが登場してきた。このような端末には、通信サービス向けの接触型ICカード機能と、決済サービス向けの非接触型ICカード機能の両者を備えることが求められる。つまり、少なくとも接触型・非接触型の2つの入出力端子(以下I/Oポートと称する。)を有し、それぞれのI/Oポートから任意のタイミングでコマンドを送受信することが可能なICカードへの要求は高まっている。
【0004】
携帯型端末は、受信処理の発生やポーリング処理の実施など、予測不能なタイミングでの通信サービス処理を要求され、決済サービス処理など能動的な処理も要求される。即ち、同時に2つのサービス処理要求を受付けることが可能なICカードが必要とされている。
【0005】
ICカードがサービス処理要求としてのコマンドを受信するときは、先ずI/Oポートの状態変化を検出してUART(Universal Asynchronous Receiver Transmitter)に代表される通信処理回路からコマンド受信の割り込みイベントが発生する。ICカードでは、割り込みハンドラがコマンド受信処理を実行し、その後処理を復帰する。
【0006】
通常、受信したデータはI/Oバッファと呼ばれるバッファに退避される。I/Oバッファは容量に限りがあり、バッファがいっぱいになると古いデータから上書きされてしまう。このため、受信データが上書きされる前にI/Oバッファのデータを安全な領域に退避する必要がある。この安全な領域への退避要求は割り込み処理としてイベントが発生する。通常、割り込み処理は優先度順に処理される。
【特許文献1】特開2005−293383号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、ICカードの処理スピードが向上している中、優先度順に割り込みを処理していると受信データを退避前にI/Oバッファが新たに受信したデータに上書きされてしまう可能性がある。
【課題を解決するための手段】
【0008】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは複数の入出力端子からの受信データを、損なうことなく迅速に処理するICカードを提供することにある。
【0009】
前述した目的を達成するために第1の発明は、複数の入出力端子と、前記入出力端子の各々に対応して、前記入出力端子における受信データを一時的に保管するバッファと、前記バッファに書き込まれた前記受信データを退避する退避手段と、を有し、前記退避手段は、コマンド処理中に前記バッファに前記受信データが書き込まれる都度前記受信データを退避し、次の受信データを受信しなければコマンド処理を再開する手段を具備することを特徴とするCPUを内蔵した情報記録媒体である。
【0010】
前記退避手段は、第1の受信データを退避した後に、後続の受信データの有無を検知する手段と、前記第1の受信データに後続する第2の受信データがあると検知した場合に、前記第2の受信データが前記バッファに書き込まれるのを待機して、前記第2の受信データが前記バッファに書き込まれた場合には、前記第2の受信データを退避させる手段と、を具備する。
【0011】
また、前記退避手段は、コマンド処理中に前記バッファに前記受信データが書き込まれる都度前記受信データを退避し、その後直ちにコマンド処理を再開する手段を更に具備し、前記受信データを退避した後、直ちにコマンド処理を再開するか、一定時間経過後に次の受信データを受信しなければコマンド処理を再開するか、いずれかを、バッファの大きさ、受信速度より計算して決定する手段を更に具備するようにしてもよい。
【0012】
本発明では、前記バッファはUART(Universal Asynchronous Receiver Transmitter)に置かれる。また前記退避手段は、揮発性メモリに前記受信データを退避する。
【0013】
第2の発明は、コンピュータを第1の発明のCPUを内蔵した情報記録媒体として機能させるプログラムである。
【発明の効果】
【0014】
本発明のCPUを内蔵した情報記録媒体により、複数の入出力端子からの受信データを、損なうことなく迅速に処理することができる。
【発明を実施するための最良の形態】
【0015】
以下添付図面に基づいて、本発明の一実施形態に係るCPUを内蔵した情報記録媒体について詳細に説明する。
【0016】
最初に図1はCPUを内蔵した情報記録媒体であるICカード1の構成の概略を示すブロック図である。
【0017】
図1に示すように、ICカード1は、接触・非接触の機能を持ったICカードである。ICモジュール端子とリーダ/ライタの端子が接触することで電力供給や通信を行う。
ICカード1には、SIM(Subscriber Identity Module)、UIM(Universal Identity Module)、USIM(Universal Subscriber Identity Module)等がある。
ICカード1は、CPU3、EEPROM5(Electrically Erasable Programmable ROM)、RAM7、ROM9、I/Oポート11、UART13(Universal Asynchronous Receiver Transmitter)等から構成される。
【0018】
CPU3は、ROM9等に格納されるプログラムをRAM7上のワークメモリ領域に呼び出して実行し、演算処理、動作制御を行い、システム全体を制御する。
EEPROM5は、書込み可能な不揮発性メモリであり、ユーザ領域を有し、プラットフォーム型OSに対応したアプリケーションを複数搭載可能とする。例えば、アプリケーションとして、契約端末の認証を行う認証アプリケーション・プログラム、正当使用者/端末を特定するための認証情報(例えば、契約者識別情報等)を搭載、格納する。
【0019】
RAM7は、揮発性メモリであり、ROM9等からロードしたプログラム、データ等を一時的に保持するとともに、CPU3が各種処理を行う為に使用するワークエリアを備える。
【0020】
ROM9は、プログラム領域を有し、アプリケーションの追加・削除が可能なプラットフォーム型のOSを格納する。またアプリケーション・プログラムの一部を格納する。
I/Oポート11a、11bはCPUが周辺機器にデータを送受信するために使う窓口である。それぞれのI/Oポート11は固有のI/Oポートアドレスを持ち、識別される。ここでは、2つのI/Oポートを持つICカード1を例にとって説明を行う。I/Oポート11aを接触型の機能を持つポート、I/Oポート11bを非接触型の機能を持つポートとする。
【0021】
UART13a、13bは、通信回路であり、各I/Oポート11a、11bに対応付けられる。
UART13a、13bは、パラレル信号をシリアル信号に変換したり、シリアル信号をパラレル信号に変換したりする。
尚、ICカード1は、この構成に限られるものではない。
【0022】
次に、図2を参照しながら、それぞれのI/Oポート11からI/Oバッファ23へのデータの流れについて説明を行う。
図2は接触型のI/Oポート11aと、I/Oポート11aに対応するUART13aとのデータの流れを示す図である。
【0023】
図2に示すように、UART13aにはシフトレジスタ21a、I/Oバッファ23a等が設けられる。シフトレジスタ21aは、受信したパラレル信号を1ビットずつ書き込んで左右に移動させることのできる一時的な記憶場所である。
I/Oバッファ23aは、受信したデータをCPU3が処理するために安全な場所に退避させるまでの間、一時的に保存しておく場所である。
【0024】
I/Oポート11aから入力されたパラレル信号は、UART13aのシフトレジスタ21aに1ビットずつ書き込まれ(A)、1バイト受信したところでI/Oバッファ23aに書き込まれる(B)。
【0025】
次に、図3を参照しながら、I/Oポート11からコマンドを受信した場合のCPU3の動作について説明を行う。図3は時間(t)の経過とCPU3の動作を示す図である。コマンドは、例えば電話の接続時における認証コマンド等である。
【0026】
図3に示すように、CPU3はまずコマンド受信31を行う。次にCPU3は受信したコマンドについてコマンド処理32を行う。次にコマンドに対するレスポンス送信33を行う。
【0027】
ここで、複数のI/Oポート11が存在する場合には、コマンド受信31、コマンド処理32、レスポンス送信33の各々のタイミングで、他のI/Oポート11からのコマンドを受信することがある。
【0028】
通常、I/Oポートから受信したコマンドは、I/Oバッファ23に一旦保存される。
【0029】
次に図4を参照しながら、I/Oバッファ23に受信データ(コマンド)が順次書き込まれた場合の受信データ(コマンド)の推移について説明を行う。
図4(a)は、I/Oバッファ23の受信データの推移を示す図である。TでI/Oバッファ23に、I/Oポート11から受信した受信データa(コマンド)が存在しているときに、I/Oポート11からさらに受信データbが受信される。
I/Oバッファ23上の受信データaは受信データbで置き換えられる。
【0030】
I/Oバッファ23上には受信データbが保存された状態になる。次にTで、I/Oポート11から受信データcが受信されると、上記と同様にI/Oバッファ23上の受信データbは受信データcで置き換えられる。
【0031】
図4(b)は、I/Oバッファ23上に複数の受信データを保存するテーブルを保有し、受信データを履歴とともに保存する場合である。T11で、I/Oバッファ23上には受信データa、受信データbが保存されている。ここにI/Oポート11から受信データcが受信されると、空いている箇所に保存される。
【0032】
次に、T12において、受信データdが受信されると、I/Oバッファ23上の空いている場所に保存される。
次に、T13において受信データeが受信されると、I/Oバッファ23上に空いている場所がないため、最も古い受信データaが受信データeに置き換えられる。
【0033】
このように、I/Oバッファ23上の受信データは、I/Oバッファ23に空きスペースがないと、次に受信したデータが最も古いデータを置き換えてしまう。
【0034】
次に図5を参照しながら、複数のI/Oポート11からデータ(コマンド)を受信する都度、逐次I/Oバッファ23のデータを退避する逐次受信機能について説明を行う。
図5は、I/Oポート11bから受信したコマンドの処理中にI/Oバッファ23aへの書き込みがあった場合の、I/Oバッファ23aのデータの退避、即ち、図3におけるコマンド処理32時の割り込みを示すフローチャートである。
【0035】
CPU3は、コマンド処理51を行う。時間tにおいて、I/Oバッファ23aには、I/Oポート11aから受信したデータが書き込まれる(書込52)。CPU3は直ちにコマンド処理51を中断し、I/Oバッファ23aに書き込まれたデータをメモリ、即ちRAM7等の安全な場所に退避させる(退避53)。
一たん退避させたデータは、コマンド実行の際、再びCPU3が読み出して実行する。
【0036】
退避53が終了すると、CPU3は直ちにコマンド処理54を再開する。さらに、時間tにおいて上記と同様にI/Oバッファ23aに受信データが書き込まれると(書込55)、CPU3はコマンド処理54を中断し、I/Oバッファ23aに書き込まれたデータの退避56を行う。
【0037】
退避56が終了するとコマンド処理57が再開される。コマンド処理57が終了するとCPU3は、I/Oポート11bに対するレスポンスの送信を行い、送信されたデータはI/Oバッファ23bを経由してI/Oポート11bに送られる。
【0038】
さらに、時間tにおいてI/Oバッファ23aに受信データが書き込まれる(書込58)。t13では、CPU3は既にコマンド処理57を終えているので、CPU3はI/Oバッファ23aに書き込まれたデータを直ちに退避する(退避59)。
【0039】
このように、CPU3がコマンド処理中の場合には、I/Oバッファ23に書き込みが行われる都度、CPU3はコマンド処理を中断し、I/Oバッファ23のデータの退避を行う。
【0040】
次に、図6を参照しながら、複数のI/Oポート11からデータ(コマンド)を受信した場合に、CPU3が、1件のデータ(コマンド)を受信し終わるまでI/Oバッファ23のデータの退避を繰り返す受信優先機能について説明を行う。
図6は、図5と同様、I/Oポート11bから受信したコマンドの処理中にI/Oバッファ23aへの書き込みがあった場合の、I/Oバッファ23aのデータの退避、即ち、図3におけるコマンド処理32時の割り込みを示すフローチャートである。
【0041】
図6において、まずCPU3はコマンド処理61を行う。時間t11において、I/Oバッファ23aには、I/Oポート11aから受信したデータが書き込まれる(書込62)。CPU3は直ちにコマンド処理61を中断し、I/Oバッファ23aに書き込まれたデータを退避させる(退避63)。
【0042】
退避63が終了すると、CPU3はI/Oバッファ23aがデータを受信中であるかを問い合わせる(問合せ65)。これに対し、I/Oバッファ23aからは受信中64のステータスがCPU3に返される。CPU3は、コマンド処理61を再開せず、次のI/Oバッファ23aへの書き込みを待つ。
【0043】
次に時間t12において、I/Oバッファ23aには、I/Oポート11aから受信したデータが書き込まれる(書込66)。I/Oバッファ23aに書き込まれたデータは退避される(退避67)。退避67が終了すると、CPU3はI/Oバッファ23aがデータを受信中であるかを問い合わせる(問合せ69)。これに対し、I/Oバッファ23aからは受信中68のステータスがCPU3に返される。CPU3は、コマンド処理61を再開せず、次のI/Oバッファ23aへの書き込みを待つ。
【0044】
次に時間t13において、I/Oバッファ23aには、I/Oポート11aから受信したデータが書き込まれる(書込70)。I/Oバッファ23aに書き込まれたデータは退避される(退避71)。退避71が終了すると、CPU3はI/Oバッファ23aがデータを受信中であるかを問い合わせる(問合せ72)。これに対し、I/Oバッファ23aからは受信中のステータスがCPU3に返されない(矢印73)。CPU3は、コマンド処理74を再開する。
【0045】
次に時間t14において、I/Oバッファ23aには、I/Oポート11aから受信したデータが書き込まれる(書込75)。I/Oバッファ23aに書き込まれたデータは退避される(退避76)。
【0046】
このように、CPU3がコマンド処理中の場合に、I/Oバッファ23に書き込みが行われると、CPU3はI/Oバッファ23のデータの退避を行う。さらにCPU3は続けてI/Oバッファ23への書き込みが行われるかどうかの問合せをし、受信中のステータスを受け取ると次のI/Oバッファ23への書き込みを待つ。次のデータを受信していなければ、CPU3はコマンド処理を再開する。
【0047】
このようにして、データ量が多く、受信間隔の短いデータに関しては、データの上書きの危険性がさらに高まることから、次のデータを受信していなければ、実行中の処理を中断することによって、上書きによるデータの消去の危険性を回避することができる。
【0048】
図5の逐次受信機能か、図6の受信優先機能かいずれを選択するかについては、通信速度、バッファサイズの2点が考慮される。
詳細を以下に述べる。
【0049】
I/Oバッファ23の書き込みが発生後、退避処理を実行し、次のI/Oバッファ23の書き込みに対する退避処理までに発生する処理時間をMとする。このとき、Mが最小となる場合はコマンド処理時間が0の場合である。I/Oバッファ23の上書き時間と比較するためこの最小値をMminとして求める。この値はICカード1ごとに異なるが、あらかじめ決まっている値である。
【0050】
活性化後およびPPSコマンド送信後、ICカード1は通信速度からI/Oバッファ23にデータが書き込まれてから次に上書きが発生するまでの時間Nを算出する。尚、この時間はもっとも早く受信処理される場合を想定して計算する。
N=バッファサイズ/通信速度
尚、PPSコマンドとは通信プロトコルおよび通信速度を変更するコマンドである。
【0051】
MminおよびNを比較し、逐次受信が可能かどうかを判断する。
Mmin≧Nの場合、ICカード1が活性化されるまで全ての受信割り込みに対して受信優先機能を採用する。
Mmin<Nの場合、ICカード1が活性化されるまで全ての受信割り込みに対して逐次受信機能を採用する。
【0052】
受信優先時に受信割り込みが発生した場合、本処理に戻らずに受信すべきデータ長分、受信処理を行う。しかし、CPU3がI/Oバッファ23のデータを退避した後、I/Oポート11がコマンド受信中であることを確認できなければ、本処理であるコマンド処理に移行する。
【0053】
以上のように、本発明のICカード1では、複数の入出力端子からのデータを、計算を行って逐次受信機能か受信優先機能かを決定し、最も効率のよい方法を用いてI/Oバッファ23のデータを退避させる。即ち、比較的データ量が少なく、受信間隔の長い受信データであれば、逐次受信機能を選択し、逆にデータ量が多く、受信間隔の短い受信データであれば受信優先機能を選択することとなる。
【0054】
これにより、ICカード1では、上書きによるデータの消去の危険性を回避し、複数の入出力端子からの受信データを、損なうことなく迅速に処理することができる。
【0055】
以上、添付図面を参照しながら、本発明にかかるICカード等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【0056】
【図1】ICカード1の構成を示すブロック図
【図2】I/Oバッファ23aへの書き込みを示す図
【図3】コマンド受信時のCPU3の動作を示す図
【図4】I/Oバッファ23における受信データの推移を示す図
【図5】逐次受信機能による割り込みを示す図
【図6】受信優先機能による割り込みを示す図
【符号の説明】
【0057】
1………ICカード
3………CPU
5………EEPROM
7………RAM
9………ROM
11………I/Oポート
13………UART
21………シフトレジスタ
23………I/Oバッファ

【特許請求の範囲】
【請求項1】
複数の入出力端子と、
前記入出力端子の各々に対応して、前記入出力端子における受信データを一時的に保管するバッファと、
前記バッファに書き込まれた前記受信データを退避する退避手段と、
を有し、
前記退避手段は、
コマンド処理中に前記バッファに前記受信データが書き込まれる都度前記受信データを退避し、次の受信データを受信しなければコマンド処理を再開する手段を具備することを特徴とするCPUを内蔵した情報記録媒体。
【請求項2】
前記退避手段は、
第1の受信データを退避した後に、後続の受信データの有無を検知する手段と、
前記第1の受信データに後続する第2の受信データがあると検知した場合に、前記第2の受信データが前記バッファに書き込まれるのを待機して、前記第2の受信データが前記バッファに書き込まれた場合には、前記第2の受信データを退避させる手段と、
を具備することを特徴とする請求項1記載のCPUを内蔵した情報記録媒体。
【請求項3】
前記退避手段は、
コマンド処理中に前記バッファに前記受信データが書き込まれる都度前記受信データを退避し、その後直ちにコマンド処理を再開する手段を更に具備し、
前記受信データを退避した後、直ちにコマンド処理を再開するか、一定時間経過後に次の受信データを受信しなければコマンド処理を再開するか、いずれかを、バッファの大きさ、受信速度より計算して決定する手段を更に具備することを特徴とする請求項1記載のCPUを内蔵した情報記録媒体。
【請求項4】
前記バッファはUARTに置かれることを特徴とする請求項1記載のCPUを内蔵した情報記録媒体。
【請求項5】
前記退避手段は、揮発性メモリに前記受信データを退避することを特徴とする請求項1記載のCPUを内蔵した情報記録媒体。
【請求項6】
コンピュータを請求項1記載のCPUを内蔵した情報記録媒体として機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2008−90800(P2008−90800A)
【公開日】平成20年4月17日(2008.4.17)
【国際特許分類】
【出願番号】特願2006−274132(P2006−274132)
【出願日】平成18年10月5日(2006.10.5)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】