説明

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

【課題】複数の入出力端子からの受信データを、損なうことなく迅速に処理することができるICカードを提供する。
【解決手段】時刻tにおいて、I/Oポート11aから受信したデータがI/Oバッファ23aに(書込48)、またI/Oポート11bから受信したデータがI/Oバッファ23bに同時に書き込まれた場合(書込47)、I/Oポート11aからI/Oバッファ23aに書き込まれたデータが優先され、最初に退避される(退避49)。I/Oバッファ23a上のデータの退避が終わると、I/Oバッファ23b上のデータが退避される(退避50)。I/Oバッファ23a、I/Oバッファ23bのI書き込みが同時に発生した場合、通信プロトコル、通信速度、バッファサイズの3点が考慮されて、バッファの退避処理の優先度が決定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の入出力端子を有するICカード等のCPUを内蔵した情報記録媒体等に関するものである。
【背景技術】
【0002】
従来、ICカードは、店舗等に設置された端末に差し込んで利用する接触型ICカードと、端末にかざして利用する非接触型ICカードに大別され、サービス要件に基づいてそれぞれ採用されていた。
【0003】
また、通信分野において、通信機能を持つ携帯型端末を使った決済サービスが登場してきた。このような端末には、通信サービス向けの接触型ICカード機能と、決済サービス向けの非接触型ICカード機能の両者を備えることが求められる。つまり、少なくとも接触型・非接触型の2つの入出力端子(以下I/Oポートと称する。)を有し、それぞれのI/Oポートから任意のタイミングでコマンドを送受信することが可能なICカードへの要求は高まっている(例えば『特許文献1』参照。)。
【0004】
例えば、クレジット機能やポイントアプリケーション機能を、接触型I/Oポートを用いて使用し、小額決済機能や入退出管理機能を、非接触型I/Oポートを用いて使用するICカードなどがある。
【0005】
このようなICカードは、大部分は接触I/Oポートと非接触I/Oポートから送受信されるコマンドを処理する演算処理装置が別れている(2CPU構成)。また、二つのI/Oポートに対して演算処理装置が共通(1CPU構成)だとしても、サービス利用の観点から同時に機能する必要性は少なかった(例えば、クレジット決済をしながら入退出はしない等。)。
【特許文献1】特開2005−293383号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、通信機能を有した携帯端末に挿入して使用するICカードにおいて、演算処理装置が一つで接触型・非接触型のI/Oポートを共に有する場合、利用されるサービス内容次第でそれぞれのI/Oポートから受信されるコマンドを同時に受け付ける必要が生じてきた。例えば、非接触I/Oポート経由でクレジット決済を実行している間に、携帯端末にメールが着信する場合がある。
【0007】
このような場合、通信機能を有した携帯端末に挿入して使用するICカードが、1つの演算処理装置で、接触型及び非接触型のI/Oポートを有する場合、両I/Oポートからのコマンドを同時に処理するための機能が求められる。
【課題を解決するための手段】
【0008】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは複数の入出力端子からの受信データを、損なうことなく迅速に処理するICカードを提供することにある。
【0009】
前述した目的を達成するために第1の発明は複数の入出力端子と、前記入出力端子の各々に対応して、前記入出力端子における入出力データを一時的に保管するバッファと、前記バッファに書き込まれた前記入出力データを退避する退避手段と、を有し、前記退避手段は、通常は複数の前記バッファに書き込まれた順に前記入出力データを退避し、前記バッファへの前記入出力データの書き込みが同時に行われた場合には、バッファの大きさと書込速度によって前記入出力データを退避する順序を決定することを特徴とするCPUを内蔵した情報記録媒体である。
【0010】
第2の発明は、複数の入出力端子と、前記入出力端子の各々に対応して、前記入出力端子における入出力データを一時的に保管するバッファと、前記バッファに書き込まれた前記入出力データを退避する退避手段と、を有し、前記退避手段は、第1の入出力端子から受信したコマンドを処理中に第2の入出力端子から受信データが前記バッファに書き込まれた場合、コマンド処理を中断して前記入出力データの退避を行うことを特徴とするCPUを内蔵した情報記録媒体である。
【0011】
第3の発明は、複数の入出力端子と、前記入出力端子の各々に対応して、前記入出力端子における入出力データを一時的に保管するバッファと、前記バッファに書き込まれた前記入出力データを退避する退避手段と、を有し、前記退避手段は、第1の入出力端子に対してレスポンス送信中に第2の入出力端子からの受信データが前記バッファに書き込まれた場合、レスポンス送信を中断して前記入出力データの退避を行うことを特徴とするCPUを内蔵した情報記録媒体である。
【0012】
第1の発明から第3の発明までのCPUを内蔵した情報記録媒体では、前記バッファはUART(Universal Asynchronous Receiver Transmitter)に置かれ、前記退避手段は、揮発性メモリに前記受信データを退避する。
【0013】
第4の発明は、コンピュータを第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に受信データ(コマンド)が順次書き込まれた場合の、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が受信されると、空いている箇所に保存される。
次に、T12において、受信データdが受信されると、I/Oバッファ23上の空いている場所に保存される。
次に、T13において受信データeが受信されると、I/Oバッファ23上に空いている場所がないため、最も古い受信データaが受信データeに置き換えられる。
【0032】
このように、I/Oバッファ23上の受信データは、I/Oバッファ23に空きスペースがないと、次に受信したデータが、最も古いデータを置き換えてしまう。
【0033】
次に図5を参照しながら、複数のI/Oポート11からデータ(コマンド)を受信し、複数のI/Oバッファ23に対する書き込みが行われる場合の並列コマンド処理について説明を行う。即ち、図3におけるコマンド受信31時における他のI/Oバッファ23の処理の割り込みの処理である。コマンド処理32が実行されるまでの間、受信したコマンドはI/Oバッファ23上に置かれる。CPU3はコマンド処理32の際にI/Oバッファ23からコマンドを読み出して実行することになるが、図4で前述したようにI/Oバッファ23にデータ(コマンド)が置かれている間にI/Oポート11からデータ(コマンド)が受信されると、古いデータから順に上書きされて消去されてしまう。
【0034】
従って、I/Oバッファ23上のデータ(コマンド)が上書きされる前に、受信データ(コマンド)を安全な場所、即ちRAM7等の安全な場所に退避させる必要がある。
以下に詳細を述べる。尚、I/Oバッファ23aはI/Oポート11aに対応し、I/Oバッファ23bはI/Oポート11bに対応する。
【0035】
まず、I/Oポート11aから受信したデータが、時刻tにおいてI/Oバッファ23aに書き込まれる(書込41)。I/Oバッファ23aに書き込まれたデータは退避42される。
次に、I/Oポート11bから受信したデータが、時刻tにおいてI/Oバッファ23bに書き込まれる(書込43)。I/Oバッファ23bに書き込まれたデータは退避44される。
次に、I/Oポート11aから受信したデータが、時刻tにおいてI/Oバッファ23aに書き込まれる(書込45)。I/Oバッファ23aに書き込まれたデータは退避46される。
【0036】
書込41から退避46までの処理については、I/Oバッファ23a、I/Oバッファ23bに書き込まれた順番に退避が行われる。退避されたデータは、処理が実行されるまでRAM7上に置かれ、コマンド実行の際に再びCPU3が読み出して実行する。
【0037】
次に、時刻tにおいて、I/Oポート11aから受信したデータがI/Oバッファ23aに(書込48)、またI/Oポート11bから受信したデータがI/Oバッファ23bに同時に書き込まれたとする(書込47)。このとき、I/Oポート11aからI/Oバッファ23aに書き込まれたデータが優先され、最初に退避される(退避49)。I/Oバッファ23a上のデータの退避が終わると、I/Oバッファ23b上のデータが退避される(退避50)。
【0038】
I/Oバッファ23a、I/Oバッファ23bの書き込みが同時に発生した場合、どちらのバッファの退避処理を優先すべきかについては、通信プロトコル、通信速度、バッファサイズの3点が考慮される。
尚、優先度は、活性化後およびPPSコマンド実行後に算出される。PPSコマンドとは通信プロトコルおよび通信速度を変更するコマンドである。
詳細を以下に述べる。
【0039】
活性化後およびPPSコマンド送信後、ICカードは通信プロトコル、通信速度およびバッファサイズからI/Oバッファ23にデータが書き込まれてから次に上書きが発生するまでの時間T(優先度)を算出する。I/Oバッファ23aの優先度(T)をM、I/Oバッファ23bの優先度(T)をNとする。尚、この時間はもっとも早く受信処理される場合を想定して計算する。
M=I/Oバッファ23aのバッファサイズ/通信速度
N=I/Oバッファ23bのバッファサイズ/通信速度
【0040】
I/Oバッファ23a、23bの書き込みが同時に発生した場合はMおよびNの値に基づいて優先度を比較する。上書きが発生するまでの時間が短いほうを優先して処理する。
【0041】
例えば、接触通信において通信速度が153.6Kbpsでバッファサイズが1byteの場合、1byte受信に11.8etuかかるため、上書きまでに以下の時間が発生する。
1*11.8/153.6K=0.0768[msec]
尚etuとは1bitデータを伝送するために必要となる時間の単位である。
【0042】
また、非接触通信において通信速度が1.6Mbpsでバッファサイズが32byteの場合、
8*32/1.6M=0.16[msec]
となる。この結果、接触通信における上書きまでの時間が短いことになり、接触通信のI/Oバッファ23a上のデータの退避が優先される。
【0043】
このようにして、優先度の高いI/Oバッファ23のデータを優先して退避させるため、データの上書きの危険性を回避することができ、さらに、複数のI/Oポート11からの受信データを迅速に同時に処理することができる。
【0044】
図6は、I/Oポート11bから受信したコマンドの処理中にI/Oバッファ23aへの書き込みがあった場合の、I/Oバッファ23aのデータの退避、即ち、図3におけるコマンド処理32時の割り込みを示すフローチャートである。
【0045】
CPU3は、コマンド処理61を行う。時間t11において、I/Oバッファ23aには、I/Oポート11aから受信したデータが書き込まれる(書込62)。CPU3は直ちにコマンド処理61を中断し、I/Oバッファ23aに書き込まれたデータを退避させる(退避63)。
【0046】
退避63が終了すると、コマンド処理64が再開される。さらに、時間t12において上記と同様にI/Oバッファ23aに受信データが書き込まれると(書込65)、CPU3はコマンド処理64を中断し、I/Oバッファ23aに書き込まれたデータの退避66を行う。
【0047】
退避66が終了するとコマンド処理67が再開される。コマンド処理67が終了するとCPU3は、I/Oポート11bに対するレスポンスの送信68を行う。送信されたデータはI/Oバッファ23bを経由してI/Oポート11bに送られる。
【0048】
さらに、時間t13においてI/Oバッファ23aに受信データが書き込まれる(書込70)。t13では、CPU3は既にコマンド処理67を終えているので、CPU3はI/Oバッファ23aに書き込まれたデータを直ちに退避する(退避71)。
【0049】
このように、CPU3がコマンド処理中の場合には、I/Oバッファ23に書き込みが行われる都度、CPU3はコマンド処理を中断し、I/Oバッファ23のデータの退避を行う。
【0050】
図7は、I/Oポート11aから受信したコマンドを処理した結果をI/Oバッファ23aに対して送信処理を行うとき、即ち、図3におけるレスポンス送信33時の割り込みを示すフローチャートである。
【0051】
CPU3は、レスポンス処理82を行う。I/Oバッファ23aには、I/Oポート11aに送られるデータが書き込まれる(書込81)。時間t21において、I/Oポート11bから受信したデータがI/Oバッファ23bに書き込まれる(書込83)。CPU3は直ちにレスポンス送信処理82を中断し、I/Oバッファ23bに書き込まれたデータを退避させる(退避84)。
【0052】
退避84が終了するとCPU3はレスポンス送信処理85を再開する。I/Oバッファ23aにはCPU3から送信された送信データの書込86が行われる。
【0053】
さらに、時間t22において、I/Oバッファ23bにI/Oポート11bから受信したデータが書き込まれる。CPU3はレスポンス送信処理85を終了しているので、直ちにI/Oバッファ23bのデータを退避させる(退避88)。
【0054】
このようにCPU3は、I/Oバッファ23aに対してレスポンスの送信処理を行っているときに、他のI/Oポート11bからI/Oバッファ23bへの書込みがあった場合には、レスポンス送信処理を中断してI/Oバッファ23bの受信データの退避を行う。
【0055】
以上のように、本発明のICカード1では、複数の入出力端子からのデータを受信した場合には、データの退避のための優先順位が決定され、優先順位の高い順に安全な場所へデータを退避する。また、ICカード1がコマンドの処理を行っている場合には、コマンド処理を中断して他の入出力端子からの入力データをI/Oバッファより退避させる。また、ICカード1がレスポンス送信処理を行っているときに、他の入出力端子からの受信があった場合には、同様にレスポンス送信処理を中断して他の入出力端子からの入力データをI/Oバッファより退避させる。これにより、複数の入出力端子からの受信データを、損なうことなく迅速に処理することができる。
【0056】
以上、添付図面を参照しながら、本発明にかかるICカード等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【0057】
【図1】ICカード1の構成を示すブロック図
【図2】I/Oバッファ23aへの書き込みを示す図
【図3】コマンド受信時のCPU3の動作を示す図
【図4】I/Oバッファ23における受信データの推移を示す図
【図5】コマンド受信31時の割り込みを示す図
【図6】コマンド処理32時の割り込みを示す図
【図7】レスポンス送信33時の割り込みを示す図
【符号の説明】
【0058】
1………ICカード
3………CPU
5………EEPROM
7………RAM
9………ROM
11………I/Oポート
13………UART
21………シフトレジスタ
23………I/Oバッファ

【特許請求の範囲】
【請求項1】
複数の入出力端子と、
前記入出力端子の各々に対応して、前記入出力端子における入出力データを一時的に保管するバッファと、
前記バッファに書き込まれた前記入出力データを退避する退避手段と、
を有し、
前記退避手段は、
通常は複数の前記バッファに書き込まれた順に前記入出力データを退避し、
前記バッファへの前記入出力データの書き込みが同時に行われた場合には、バッファの大きさと書込速度によって前記入出力データを退避する順序を決定することを特徴とするCPUを内蔵した情報記録媒体。
【請求項2】
複数の入出力端子と、
前記入出力端子の各々に対応して、前記入出力端子における入出力データを一時的に保管するバッファと、
前記バッファに書き込まれた前記入出力データを退避する退避手段と、
を有し、
前記退避手段は、
第1の入出力端子から受信したコマンドを処理中に第2の入出力端子から受信データが前記バッファに書き込まれた場合、コマンド処理を中断して前記入出力データの退避を行うことを特徴とするCPUを内蔵した情報記録媒体。
【請求項3】
複数の入出力端子と、
前記入出力端子の各々に対応して、前記入出力端子における入出力データを一時的に保管するバッファと、
前記バッファに書き込まれた前記入出力データを退避する退避手段と、
を有し、
前記退避手段は、
第1の入出力端子に対してレスポンス送信中に第2の入出力端子からの受信データが前記バッファに書き込まれた場合、レスポンス送信を中断して前記入出力データの退避を行うことを特徴とするCPUを内蔵した情報記録媒体。
【請求項4】
前記バッファはUARTに置かれることを特徴とする請求項1から請求項3のいずれかに記載のCPUを内蔵した情報記録媒体。
【請求項5】
前記退避手段は、揮発性メモリに前記受信データを退避することを特徴とする請求項1から請求項3のいずれかに記載のCPUを内蔵した情報記録媒体。
【請求項6】
コンピュータを請求項1記載のCPUを内蔵した情報記録媒体として機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


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