JP2009271829A - Icカードリーダライタ装置、携帯通信端末、icカード管理方法、icカード管理プログラム、及びicカード - Google Patents
Icカードリーダライタ装置、携帯通信端末、icカード管理方法、icカード管理プログラム、及びicカード Download PDFInfo
- Publication number
- JP2009271829A JP2009271829A JP2008123313A JP2008123313A JP2009271829A JP 2009271829 A JP2009271829 A JP 2009271829A JP 2008123313 A JP2008123313 A JP 2008123313A JP 2008123313 A JP2008123313 A JP 2008123313A JP 2009271829 A JP2009271829 A JP 2009271829A
- Authority
- JP
- Japan
- Prior art keywords
- data
- card
- storage area
- identification code
- writing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 ICカードに不正なデータが残っているかどうかを意識することなく、そのICカードの書き込み/読み込みを可能とし、また、書き込みが中断したデータの書き込みを最後まで完了させる。
【解決手段】
ICカード10は、データが書き込み/読み込みされる第1,第2データ保存領域13,14と、正常にデータが書き込まれたデータ保存領域を特定するための識別コードを格納する識別コード格納領域15とを少なくとを有している。リーダライタは、ICカード10へのデータの書き込みを行う時には、識別コード格納領域15内の識別コードをチェックして、正常にデータが書き込まれたデータ保存領域とは別のデータ保存領域へデータを書き込み、一方、ICカード10からのデータ読み込み時には、識別コードにて示されるデータ保存領域(常にデータが書き込まれたデータ保存領域)からデータを読み込む。
【選択図】 図1
【解決手段】
ICカード10は、データが書き込み/読み込みされる第1,第2データ保存領域13,14と、正常にデータが書き込まれたデータ保存領域を特定するための識別コードを格納する識別コード格納領域15とを少なくとを有している。リーダライタは、ICカード10へのデータの書き込みを行う時には、識別コード格納領域15内の識別コードをチェックして、正常にデータが書き込まれたデータ保存領域とは別のデータ保存領域へデータを書き込み、一方、ICカード10からのデータ読み込み時には、識別コードにて示されるデータ保存領域(常にデータが書き込まれたデータ保存領域)からデータを読み込む。
【選択図】 図1
Description
本発明は、所謂非接触型或いは接触型のICカードに対するデータの書き込み/読み込みを行うICカードリーダライタ装置、少なくともICカードリーダライタ機能を備えた携帯通信端末、ICカード管理方法、ICカード管理プログラム、及びICカードに関する。
近年は、電気的な接点を介してデータの書き込み/読み込みが行われる従来の接触型のICカードのみならず、例えば電磁誘導を利用して非接触状態にてデータの書き込み/読み込みが行われる非接触型のICカードなど、多種多様のICカードが出回っている。以下の説明では、接触型や非接触型のICカードを区別せずに単にICカードと表記し、当該ICカードに対してデータを書き込み/読み込みする装置をリーダライタと表記する。
ここで、通常、上述のようなICカードへのデータの書き込み/読み込みは、ブロック(若しくはパケット)と呼ばれる単位で行われている。例えば16バイトを1ブロックとしたICカードでは、16バイト単位でデータの書き込み/読み込みが行われる。
また、ICカードにおけるデータ書き込み時の一回当たりのトランザクションでは、一度に複数のブロックの書き込みが可能となされている。但し、一回のトランザクションで書き込み可能なブロック数は、ICカードにより異なっている。例えば、一度に4ブロック分のデータの書き込みが可能なICカードの場合は、16バイト×4ブロック分、すなわち64バイトのデータを一回のトランザクションで書き込むことができる。なお、これは読み込みの場合も同様である。
一方、データの長さが一度に書き込みできるバイト数を超える場合、リーダライタは、当該データを分割し、それら分割されたデータをそれぞれ書き込むようにする。なお、読み込みの場合、リーダライタは、分割されて書き込まれているデータをそれぞれ読み込んで繋げることになる。
ここで、例えばICカードへのデータ書き込み中に、何らかの異常により書き込みが正常に行えなくなったような場合、当該ICカード内では、以前の正常な書き込み済みデータの上に、書き込み中のデータが途中まで上書きされた不正な状態になることがある。なお、書き込み異常の例としては、書き込み中にICカードがリーダライタと通信できなくなった場合や、ICカードへの書き込み中にリーダライタで装置異常が発生して通信が停止した場合、瞬断等により正常に書き込みが完了しなかった場合等が挙げられる。また、書き込み中にICカードがリーダライタと通信できなくなる例としては、接触型ICカードの接点部とリーダライタ側の接点部とが物理的に離れた場合や、非接触型ICカードがリーダライタのRF領域外に離れてしまった場合などが挙げられる。
これに対し、例えば特開平6−35776号の公開特許公報(特許文献1)には、データ書き込み作業中に中断事故が発生した後、当該中断があったことをリーダライタが認識できるようにする技術が開示されている。
また、特開平4−43477号の公開特許公報(特許文献2)には、データ書き込み作業中に中断事故が発生した場合に、その書き込み中断位置をリーダライタが認識できるようにした技術が開示されている。
また、特開2001−22653号の公開特許公報(特許文献3)には、データ書き込み実行中にその動作が中断した場合、その位置のアドレス情報とパリティ情報をバックアップエリアに書き込んでおくことで、データの修復を可能とした技術が開示されている。
さらに、特開2003−85511号の公開特許公報(特許文献4)には、書き換え可能なバッファ領域に書き込み用データを一時的に記憶させておくことで、書き込みデータを保護することを可能とする技術が開示されている。
上述した各公開特許公報にて開示されている技術を利用、若しくはそれら技術を組み合わせて利用すれば、何らかの理由で書き込みが中断した後、リーダライタは、書き込みの再開及びその書き込みを最後まで完了させることが可能となる。また、リーダライタは、再書き込みや読み込みを行う前に、書き込み前のデータを復旧することが可能となる。
しかしながら、それら技術をもってしても、例えば前述のように書き込み中断により途中までデータが上書きされた不正な状態のICカードが在った場合、リーダライタは、当該ICカードから上記不正な状態のデータを読み込んでしまう虞がある。したがって、このような不正な状態のデータの読み込みを無くすためには、リーダライタが、必ず書き込みを最後まで完了させるようにするか、又は、パリティ情報等を利用して書き込み前のデータを復旧する必要がある。すなわちこの場合のリーダライタは、ICカードの書き込みや読み込みを行う前に、必ずデータを復旧するための手順等を行わなければならなくなる。この手順を実行するようにした場合、リーダライタにおける処理が複雑になり、同時にトランザクションが完了するまでに時間がかかるという問題がある。
本発明は、ICカードに不正なデータが残っているかどうかを意識することなく、該ICカードのデータを読み込むことを可能にするICカードリーダライタ装置、携帯通信端末、ICカード管理方法及びプログラム、ICカードの提供を目的とする。
また、本発明は、書き込みが中断したデータの書き込みを最後まで完了させることを可能とするICカードリーダライタ装置、携帯通信端末、ICカード管理方法、プログラム、及びICカードの提供を目的とする。
本発明では、データが書き込み/読み込みされる二以上のデータ保存領域と正常にデータが書き込まれたICカード及びデータ保存領域を特定するための識別コードを格納する識別コード格納領域とを少なくとも有するICカードの書き込み/読み出しを行う。ここで、ICカードのデータ保存領域に正常にデータが書き込まれた時には、識別コード格納領域に格納する識別コードを生成する。また、ICカードのデータ保存領域に対するデータの書き込み/読み込みを行う際には、ICカードの識別コード格納領域に格納されている識別コードに応じて、データ保存領域に対するデータ書き込み/読み込みを制御する。これにより、本発明は上述した課題を解決する。
また、本発明では、ICカードのデータ保存領域へのデータ書き込みが中断した時には、当該データ保存領域の書き込み中断位置情報と、当該書き込み中断時の未書き込みデータと、上記ICカードの識別コード格納領域から読み込んだ識別コードとを内部に保存する。そして、書き込みが中断したデータの再書き込みを行う場合、ICカードの識別コード格納領域から読み込んだ識別コードと書き込み中断時に保存した識別コードとが一致するICカードに対して、書き込み中断時の未書き込みデータを、中断位置情報にて示されるデータ保存領域内の位置から書き込む。
すなわち本発明によれば、ICカードには二以上のデータ保存領域と、正常にデータが書き込まれたデータ保存領域を特定する識別コードが格納される識別コード格納領域とが設けられている。そして、ICカードリーダライタ装置は、識別コード格納領域の識別コードをチェックすることで、何れのデータ保存領域からデータを読み込むべきか、また、何れのデータ保存領域へデータを書き込むかを判断する。
また本発明によれば、書き込みが中断した時、ICカードから読み込んだ識別コードと書き込み中断位置と未書き込みデータとを保存しておくことで、その後再書き込みを行う際に、中断位置からの未書き込みデータの書き込みを可能にしている。
本発明においては、ICカード内の識別コードにより、二以上のデータ保存領域の中で正常なデータ書き込みが行われたデータ保存領域を特定可能であり、それにより、何れのデータ保存領域に対して書き込み/読み込みを行うかを判断可能となされている。このため、本発明によれば、ICカードに不正なデータが残っているかどうかを意識することなく、当該ICカードのデータを読み込むことができる。
また、本発明においては、書き込み中断時、ICカードから読み込んだ識別コードと中断位置と未書き込みデータとを保存し、データの再書き込み時には、未書き込みデータを中断位置から書き込むことにより、中断した書き込みを最後まで完了させることができる。
以下、図面を参照しながら、本発明の一実施形態について説明する。
なお、以下の実施形態では、本発明の適用例として、接触型や非接触型のICカードに対してデータを書き込み/読み込み可能なICカードリーダライタ機能を備えた携帯電話端末を挙げている。以下の説明では、ICカードリーダライタ機能が起動した状態の本実施形態の携帯電話端末を単にリーダライタと呼ぶことにする。勿論、ここで説明する内容はあくまで一例であり、本発明はこの例に限定されないことは言うまでもない。
〔ICカードの概略的内部構成〕
図1には、本実施形態のリーダライタによりデータが書き込み/読み込みされるICカード10の概略的な内部構成を示す。
図1には、本実施形態のリーダライタによりデータが書き込み/読み込みされるICカード10の概略的な内部構成を示す。
図1に示すように、本実施形態のICカード10は、その内部に、リーダライタとの間でデータ通信を行うための図示しない信号処理及び制御回路と、データ記録用のメモリとが設けられている。また、本実施形態の場合、リーダライタは、当該ICカード10内のメモリの記憶領域12を、複数の領域に分けて使用するようになされている。
図1の例は、リーダライタが、ICカード10の記憶領域12を、第1データ保存領域13及び第2データ保存領域14と識別コード格納領域15に分けて用いる場合を図示している。なお、本実施形態では、記憶領域12の領域分けの管理をリーダライタが行う例を挙げているが、ICカード10の信号処理及び制御回路が、領域分けとその管理を行っても良い。
上記第1データ保存領域13と第2データ保存領域14は、データが書き込み/読み込みされる記憶領域である。そして、リーダライタは、データ書き込みを行う場合、これら第1データ保存領域13又は第2データ保存領域14の何れかに書き込むようにする。但し、詳細は後述するが、本実施形態の場合、リーダライタは、データの書き込みを行う場合、前回(つまり最後に)正しく書き込まれたデータ保存領域ではない方のデータ保存領域から書き込みを開始する。すなわち例えば、最後にデータが正しく書き込まれたのが第1データ保存領域13であった場合、リーダライタは、第2データ保存領域14から書き込みを開始する。逆に、最後にデータが正しく書き込まれたのが第2データ保存領域14であった場合、リーダライタは、第1データ保存領域13から書き込みを開始する。
このようなことを実現するために、リーダライタは、前回正しく書き込まれた領域が上記第1データ保存領域13と第2データ保存領域の何れの領域であるかを判断するための情報として、識別コードを用いる。言い換えると、識別コードは、最後の(前回の)データ書き込みの際に、そのデータ書き込みが途中で中断したかどうかを、リーダライタが判断するために使用されるコードとなされている。このため、識別コードは、全てのICカード及び全てのデータ保存領域においてそれぞれ一意となるコードとなされる。なお本実施形態において、一意の識別コードは、リーダライタにてランダムに生成されたコードが用いられる。
より具体的に説明すると、識別コードは、第1属性と第2属性の何れか一方の属性を有している。一例として、当該識別コードは、図2に示すように、MSB(最上位ビット)が“0”の場合には、第1属性の識別コードN1となり、MSBが“1”の場合は第2属性の識別コードN2となされる。なお、本実施形態では、一例としてMSBを属性のフラグとして用いているが、実装に当たっては、リーダライタのプログラムが実際に扱い易く、当該属性を判定し易い情報を用いるようにしても良い。
リーダライタは、最後に正しくデータを書き込んだデータ保存領域が上記第1,第2データ保存領域13,14の何れであるかに応じて、上記第1属性の識別コードN1と第2属性の識別コードN2の何れか一方を、識別コード格納領域15に格納する。すなわち例えば、リーダライタは、最後に正しくデータを書き込んだデータ保存領域が例えば第1データ保存領域13である場合には、識別コード格納領域15に第1属性の識別コードN1を格納する。また例えば、最後に正しくデータを書き込んだデータ保存領域が例えば第2データ保存領域14である場合、リーダライタは、識別コード格納領域15に上記第2属性の識別コードN2を格納する。
一方、リーダライタは、ICカード10の記憶領域12からデータを読み込む際には、実際にデータの読み込みを開始する前に、上記識別コード格納領域15内の識別コードを確認する。そして、リーダライタは、その識別コードの属性により、いずれのデータ保存領域からデータを読み込むか判断する。すなわち、リーダライタは、識別コード格納領域15に第1属性の識別コードN1が格納されている場合には、前回正しくデータが書き込まれたデータ保存領域が第1データ保存領域13であると判断する。したがってこの場合、リーダライタは、当該第1データ保存領域13からデータを読み込む。一方、リーダライタは、識別コード格納領域15に第2属性の識別コードN2が格納されている場合には、前回正しくデータが書き込まれたデータ保存領域が第2データ保存領域14であると判断する。したがってこの場合、リーダライタは、当該第2データ保存領域14からデータを読み込む。
また、リーダライタは、ICカード10に新たにデータを書き込む際には、実際にデータの書き込みを開始する前に、上記識別コード格納領域15内の識別コードを確認する。そして、リーダライタは、その識別コードの属性により、いずれのデータ保存領域へデータを書き込むか判断する。すなわち例えば、リーダライタは、識別コード格納領域15に第1属性の識別コードN1が格納されている場合には、最後に正しくデータが書き込まれたデータ保存領域が第1データ保存領域13であると判断する。したがってこの場合、リーダライタは、最後に正しく書き込みがなされた第1データ保存領域13ではない方の第2データ保存領域14からデータの書き込みを開始する。また例えば、リーダライタは、識別コード格納領域15に第2属性の識別コードN2が格納されている場合には、最後に正しくデータが書き込まれたデータ保存領域が第2データ保存領域14であると判断する。したがってこの場合、リーダライタは、最後に正しく書き込みがなされた第2データ保存領域14ではない方の第1データ保存領域13からデータの書き込みを開始する。
〔リーダライタの主要部の概略構成〕
図3には、本実施形態のリーダライタ20の主要部の概略構成を示す。なお図3では、携帯電話端末が一般的に備えている構成の図示は省略している。
図3には、本実施形態のリーダライタ20の主要部の概略構成を示す。なお図3では、携帯電話端末が一般的に備えている構成の図示は省略している。
図3に示すように、本実施形態のリーダライタ20は、主要な構成として、CPU22と、メモリ23、及び、RFアンテナ21とを有して構成されている。なお、RFアンテナ21は、ICカード10が非接触型カードである場合の構成であり、ICカード10が接触型カードである場合にはRFアンテナ21に代えて電気接点が設けられる。
また本実施形態において、メモリ23の記憶領域内には、少なくともプログラム格納領域35、識別コード保存領域36、中断データ保存領域37、中断位置保存領域38、データ一時格納領域39が設けられている。
上記メモリ23のデータ一時格納領域39には、ICカード10に書き込まれるデータ或いはICカード10から読み込まれたデータが、一時的に蓄積される。
上記メモリ23のプログラム格納領域35には、当該リーダライタ20のCPU22により実行されるプログラムが格納されている。本実施形態の場合、プログラム格納領域35内には、前述のようにICカードの第1,第2データ保存領域13,14の管理と識別コードの生成、識別コード格納領域15の管理等の処理及びそれらの制御を、CPU22が実行するためのICカード管理プログラムが格納されている。
CPU22は、上記ICカード管理プログラムを実行する。当該ICカード管理プログラム実行時のCPU22内には、少なくとも、識別コード生成部31、識別コードチェック部32、書き込み/読み込み制御部34及び通信制御部33の各処理実行部が形成される。
上記識別コード生成部31は、ICカード10に正常にデータが書き込まれた時に、当該正常にデータが書き込まれたICカード及びデータ保存領域を一意に特定可能な前述の識別コードを生成する。
識別コードチェック部32は、ICカード10からのデータ読み込みや書き込みの際に、前記識別コード格納領域15内の識別コードを確認する。また、識別コードチェック部32は、後述するように、前回書き込みが中断されたICカードへの再書き込みを行う際に、当該書き込みが中断されたICカードと再書き込みするデータ保存領域を特定するために、前記識別コード格納領域15内の識別コードを確認する。
通信制御部33は、ICカード10との間のデータ送受の際の各種信号処理と通信制御を行う。
書き込み/読み込み制御部34は、ICカード10の第1,第2データ保存領域13,14に対するデータの書き込み/読み込みと、識別コード格納領域15に対する識別コードの書き込み/読み込みを制御する。
また、書き込み/読み込み制御部34は、当該リーダライタ20のメモリ23内の識別コード保存領域36、中断データ保存領域37、中断位置保存領域38、データ一時格納領域39に対する各種データやコード等の書き込み/読み込みも制御する。
上記メモリ23の識別コード保存領域36には、ICカード10のデータ保存領域へのデータ書き込みが途中で中断した場合、先に当該ICカード10の識別コード格納領域15から読み込まれた識別コードが保存される。
メモリ23の中断データ保存領域37には、ICカード10への書き込みが途中で中断した場合、その中断したデータが保存される。
メモリ23の中断位置保存領域38には、ICカード10のデータ保存領域へのデータ書き込みが途中で中断した場合、そのデータ保存領域内でデータ書き込みが中断した位置情報(メモリアドレス)が保存される。
〔リーダライタによるICカードの書き込み/読み込み処理の概要〕
上述した図3の構成を有するリーダライタ20において、例えばICカード10に対してデータを読み込み/書き込みする場合には、以下のような処理が行われる。
上述した図3の構成を有するリーダライタ20において、例えばICカード10に対してデータを読み込み/書き込みする場合には、以下のような処理が行われる。
ICカード10からデータを読み込む場合、CPU22の書き込み/読み込み制御部34は、先ず、ICカード10の識別コード格納領域15に格納されている識別コードを読み込む。
次いで、識別コードチェック部32は、その識別コードが前述した第1属性、第2属性の何れの属性であるかを確認する。すなわち、識別コードチェック部32は、識別コードが第1属性である場合には前回の書き込みが第1データ保存領域13に正常に書き込まれているものとみなし、第2属性である場合には第2データ保存領域14に正常に書き込まれているものとみなす。
そして、識別コードチェック部32にて第1データ保存領域13が正常に書き込まれていると確認された場合、書き込み/読み込み制御部34は、当該第1データ保存領域13からデータを読み込む。また、識別コードチェック部32にて第2データ保存領域14が正常に書き込まれていると確認された場合、書き込み/読み込み制御部34は、当該第2データ保存領域14からデータを読み込む。
一方、ICカード10にデータを書き込む場合、CPU22の書き込み/読み込み制御部34は、先ず、ICカード10の識別コード格納領域15に格納されている識別コードを読み込む。
次いで、識別コードチェック部32は、その識別コードの属性を確認する。すなわち識別コードチェック部32は、識別コードが第1属性である場合には前回の書き込みが第1データ保存領域13に正常に書き込まれているものとみなし、第2属性である場合には第2データ保存領域14に正常に書き込まれているものとみなす。
ここで、識別コードチェック部32にて第1データ保存領域13が正常に書き込まれていると確認された場合、書き込み/読み込み制御部34は、第2データ保存領域14からデータの書き込みを開始する。また、当該第2データ保存領域14へのデータ書き込みが正しく完了した場合、識別コード生成部31は、ランダムな値からなる第2属性の識別コードN2を生成する。そして、書き込み/読み込み制御部34は、上記第2属性の識別コードN2を、識別コード格納領域15に書き込む。一方、識別コードチェック部32にて第2データ保存領域14が正常に書き込まれていると確認された場合、書き込み/読み込み制御部34は、第1データ保存領域13からデータの書き込みを開始する。また、当該第1データ保存領域13へのデータ書き込みが正しく完了した場合、識別コード生成部31は、ランダムな値からなる第1属性の識別コードN1を生成する。そして、書き込み/読み込み制御部34は、上記第1属性の識別コードN1を、識別コード格納領域15に書き込む。
また、ICカード10へのデータ書き込み中に、何らかの理由により途中で書き込みが中断した場合、CPU22では以下のような処理が行われる。
データ書き込みの中断が発生した場合、先ず、CPU22の書き込み/読み込み制御部34は、ICカード10の識別コード格納領域15に格納されている識別コードを読み込む。
次いで、識別コードチェック部32は、その識別コードの属性を前述の書き込み/読み込み時と同様にして確認する。
ここで、一例として、ICカード10がリーダライタ20のRFフィールド外(非接触通信が可能なRF領域の外)に移動したこと等の理由により、データ書き込みが途中で中断したと想定する。なお、ICカード10がリーダライタ20のRFフィールド内に存在するかどうかは、例えば通信制御部33が通信状態を監視することにより行う。
ICカード10がリーダライタ20のRFフィールド外に移動した場合、CPU22の通信制御部33は、ICカード10への書き込みコマンドに対するレスポンスとして、エラーレスポンスを受け取ることになる。なお、当該エラーレスポンスは、通常はICカード10から送られてくるが、ICカード10との通信そのものが出来なくなった場合には通信制御部33自身が発生しても良い。
通信制御部33がエラーレスポンスを受け取った場合、書き込み/読み込み制御部344は、その時点までにICカード10のデータ保存領域へデータを書き込んだ位置情報(アドレス情報)を、中断位置保存領域38に保存する。同時に、書き込み/読み込み制御部34は、当該書き込みが中断した時の残りのデータ(未書き込みデータ)を、中断データ保存領域37に保存する。また、書き込み/読み込み制御部34は、当該データの書き込みを行う前に、ICカード10の識別コード格納領域15から読み込んだ識別コードを、識別コード保存領域36に保存する。
そしてその後、ICカード10がリーダライタ20のRFフィールド内に再び入ったことが通信制御部33により検知されると、書き込み/読み込み制御部34は、その時のICカード10の識別コード格納領域15に格納されている識別コードを再度読み込む。また同時に、書き込み/読み込み制御部34は、メモリ23の識別コード保存領域36からも識別コードを読み込む。
次に、識別コードチェック部32は、上記ICカード10から再読み込みされた識別コードと、メモリ23の識別コード保存領域36に保存されていた識別コードとを比較する。すなわちこの場合、識別コードチェック部32では、RFフィールド内に入ったICカード10が、先に書き込みが中断したICカードであるかどうかの確認が行われる。
それら識別コードの比較の結果、両識別コードが一致した場合、書き込み/読み込み制御部34は、中断位置保存領域38に保存されている位置情報、つまり前回の書き込み中断位置情報を読み込む。また同時に、書き込み/読み込み制御部34は、中断データ保存領域37に保存されているデータ、つまり書き込み中断時の残りのデータ(未書き込みデータ)を読み込む。
そして、書き込み/読み込み制御部34は、書き込みが中断されたICカードのデータ保存領域に対し、上記書き込み中断位置から上記未書き込みデータを書き込む。これにより、リーダライタは、先に書き込みが中断されたICカードへ、データの書き込みを再開することができる。
なお、書き込みが中断されたICカード10からデータを読み込む場合には、前述したような通常の読み込み処理と全く同じ流れで、読み込み処理が行われる。すなわち、最初にICカード10の識別コード格納領域15から識別コードを読み込み、その属性に対応したデータ保存領域からデータを読み込む。
また、上記識別コードの比較の結果、両識別コードが一致しなかった場合、通信制御部10は、前回書き込みが中断したICカード10とは異なる別のICカードがRFフィールド内に入ったと判断する。この場合、リーダライタ20は、当該新たなICカードに対する通常の書き込み/読み込み処理を行う。
〔リーダライタによるICカードの書き込み/読み込み処理のフローチャート〕
図4〜図9には、リーダライタ20のCPU22が、ICカード管理プログラムを実行し、ICカード10に対してデータの書き込み/読み込みを行う際の処理の流れを示す。
図4〜図9には、リーダライタ20のCPU22が、ICカード管理プログラムを実行し、ICカード10に対してデータの書き込み/読み込みを行う際の処理の流れを示す。
先ず、図4〜図7を参照してデータの書き込み時の処理の流れを説明する。
図4において、例えばICカード10へのデータ書き込み処理が開始されると、ステップS1の処理として、CPU22の書き込み/読み込み制御部34は、先ず、書き込み対象のICカード10の識別コード格納領域15から識別コードを読み込む。
次に、ステップS2の処理として、CPU22の書き込み/読み込み制御部34は、メモリ23の識別コード保存領域36から識別コードを読み込む。また、識別コードチェック部32は、対象ICカード10から読み込んだ識別コードが、メモリ23内に保存されている識別コードと一致するか判定する。そして、それら両識別コードが一致した場合、CPU22は、図8の書き込み再開処理のフローチャートへ処理を進める。一方、識別コード保存領域36に識別コードが保存されていないか、又は、識別コード保存領域36のに保存されている識別コードと対象ICカード10の識別コードとが不一致である場合、CPU22は、ステップS3へ処理を進める。
ステップS3の処理に進むと、CPU22の識別コードチェック部32は、両識別コードの属性をチェックする。そして、CPU22は、それら識別コードの属性が第1属性である場合には図5のステップS11へ処理を進め、一方、第2属性である場合には図6のステップS21へ処理を進める。
図4のステップS3から図5のステップS11の処理に進むと、CPU22の識別コード生成部31は、ランダムな値からなる第2属性の識別コードN2を生成する。
次に、CPU22の書き込み/読み込み制御部34は、ステップS12の処理として、ICカード10の第2データ保存領域14へのデータ書き込みループ処理を開始する。
このデータ書き込みループ処理に移行すると、書き込み/読み込み制御部34は、ステップS13の処理として、書き込むべき例えば複数のデータパケット(つまりデータブロック)を順次書き込んでいく。
またこの時、通信制御部33は、データ書き込みのエラーレスポンスを受信したか否か判定する。そして、CPU22は、上記通信制御部33がエラーレスポンスを受信した場合には図7のステップS31へ処理を進め、一方エラーレスポンスを受信していない時にはステップS15へ処理を進める。
ステップS15の処理に進むと、書き込み/読み込み制御部34は、全てのデータパケットの書き込みが完了したか判定し、完了していない場合にはステップS13へ処理を戻す。一方、全てのデータの書き込みが完了した場合、CPU22は、ステップS16にて第2データ保存領域14へのデータ書き込みループ処理を終了し、ステップS17へ処理を進める。
ステップS17の処理に進むと、書き込み/読み込み制御部34は、ステップS11にて識別コード生成部31が生成した第2属性の識別コードN2を、ICカードの識別コード格納領域15に格納する。
このステップS17の処理後、CPU22は、書き込み処理を終了する。
また、図4のステップS3から図6のステップS21の処理に進むと、CPU22の識別コード生成部31は、ランダムな値からなる第1属性の識別コードN1を生成する。
次に、CPU22の書き込み/読み込み制御部34は、ステップS22の処理として、ICカード10の第1データ保存領域13へのデータ書き込みループ処理を開始する。
このデータ書き込みループ処理に移行すると、書き込み/読み込み制御部34は、ステップS23の処理として、書き込むべき複数のデータパケット(データブロック)を順次書き込んでいく。
またこの時、通信制御部33は、データ書き込みのエラーレスポンスを受信したか否か判定する。そして、CPU22は、上記通信制御部33がエラーレスポンスを受信した場合には図7のステップS31へ処理を進め、一方エラーレスポンスを受信していない時にはステップS25へ処理を進める。
ステップS25の処理に進むと、書き込み/読み込み制御部34は、全てのデータパケットの書き込みが完了したか判定し、完了していない場合にはステップS23へ処理を戻す。一方、全てのデータの書き込みが完了した場合、CPU22は、ステップS26にて第1データ保存領域13へのデータ書き込みループ処理を終了し、ステップS27へ処理を進める。
ステップS27の処理に進むと、書き込み/読み込み制御部34は、ステップS21にて識別コード生成部31が生成した第1属性の識別コードN1を、ICカードの識別コード格納領域15に格納する。
このステップS27の処理後、CPU22は、書き込み処理を終了する。
一方、図5のステップS14或いは図6のステップS24から図7のステップS31の処理に進むと、CPU22の書き込み/読み込み制御部34は、書き込み中断時の残りのデータを中断データ保存領域37に保存する。すなわち、データパケットnまで書き込み済みである場合、書き込み/読み込み制御部34は、当該データパケットnの次のパケット(n+1)から最終パケットまでのデータを中断データ保存領域37に保存する。
次に、CPU22の書き込み/読み込み制御部34は、ステップS32の処理として、データ書き込みが中断された時の、上記データ保存領域内の中断位置情報(中断アドレス情報)を、中断位置保存領域38に保存する。
また同時に、書き込み/読み込み制御部34は、ステップS33の処理として、当該データ書き込みが中断された時の識別コードを、メモリ23の識別コード保存領域36に保存する。つまりこの場合、書き込み/読み込み制御部34は、先のステップS1にてICカード10の識別コード格納領域15から読み込まれた識別コードをメモリ23の識別コード保存領域36に保存する。
このステップS33の処理後、CPU22は、書き込み処理を終了する。
次に、図8を参照してデータ書き込みが中断した後、書き込みを再開する場合の処理の流れを説明する。
図4のステップS2から図8の書き込み再開処理開始のフローチャートに進むと、CPU22の書き込み/読み込み制御部34は、ステップS41の処理として、中断データ保存領域37から、書き込み中断時の残りの未書き込みデータを取得する。
また同時に、書き込み/読み込み制御部34は、ステップS42の処理として、
次に、CPU22の書き込み/読み込み制御部34は、ステップS32の処理として、中断位置保存領域38から、書き込み中断時のデータ保存領域の中断位置情報(中断アドレス情報)を取得する。
次に、CPU22の書き込み/読み込み制御部34は、ステップS32の処理として、中断位置保存領域38から、書き込み中断時のデータ保存領域の中断位置情報(中断アドレス情報)を取得する。
次に、CPU22の書き込み/読み込み制御部34は、ステップS43の処理として、書き込みが中断したデータ保存領域に対し、その中断アドレスから上記未書き込みデータを書き込むループ処理を開始する。
当該中断データの書き込みループ処理に移行すると、書き込み/読み込み制御部34は、ステップS44の処理として、未書き込みの複数のデータパケット(データブロック)を順次書き込んでいく。
またこの時、通信制御部33は、データ書き込みのエラーレスポンスを受信したか否か判定する。そして、CPU22は、上記通信制御部33がエラーレスポンスを受信した場合にはステップS49へ処理を進め、一方エラーレスポンスを受信していない時にはステップS46へ処理を進める。
ステップS46の処理に進むと、書き込み/読み込み制御部34は、上記未書き込みとなっていた全てのデータパケットの書き込みが完了したか判定し、完了していない場合にはステップS44へ処理を戻す。一方、全てのデータの書き込みが完了した場合、CPU22は、ステップS47にて上記書き込みが中断していたデータ保存領域へのデータ書き込みループ処理を終了し、ステップS48へ処理を進める。
ステップS48の処理に進むと、書き込み/読み込み制御部34は、先に識別コード生成部31が生成した識別コードを、ICカードの識別コード格納領域15に格納する。
このステップS48の処理後、CPU22は、書き込み再開処理を終了する。
また、ステップS45からステップS49の処理に進んだ場合、CPU22の書き込み/読み込み制御部34は、書き込み中断時の残りのデータを中断データ保存領域37に保存する。例えば、データパケットnまで書き込み済みである場合、書き込み/読み込み制御部34は、当該データパケットnの次のパケット(n+1)から最終パケットまでのデータを中断データ保存領域37に保存する。
次に、CPU22の書き込み/読み込み制御部34は、ステップS50の処理として、データ書き込みが中断された時の、上記データ保存領域内の中断位置情報(中断アドレス情報)を、中断位置保存領域38に保存する。つまりこの場合、書き込み/読み込み制御部34は、先のステップS1にてICカード10の識別コード格納領域15から読み込まれた識別コードをメモリ23の識別コード保存領域36に保存する。
また同時に、書き込み/読み込み制御部34は、ステップS51の処理として、当該データ書き込みが中断された時の識別コードを、メモリ23の識別コード保存領域36に保存する。
このステップS51の処理後、CPU22は、書き込み再開処理を終了する。
次に、図9を参照してデータ読み込み時の処理の流れを説明する。
図9において、例えばICカード10へのデータ読み込み処理が開始されると、ステップS61の処理として、CPU22の書き込み/読み込み制御部34は、先ず、書き込み対象のICカード10の識別コード格納領域15から識別コードを読み込む。
次に、ステップS62の処理として、CPU22の識別コードチェック部32は、上記対象ICカード10から読み込まれた識別コードの属性をチェックする。そして、CPU22は、その識別コードの属性が第1属性である場合にはステップS71へ処理を進め、一方、第2属性である場合にはステップS81へ処理を進める。
ステップS62からステップS71の処理に進むと、CPU22の書き込み/読み込み制御部34は、ICカード10の第1データ保存領域13からのデータ読み込みループ処理を開始する。
このデータ読み込みループ処理に移行すると、書き込み/読み込み制御部34は、ステップS72の処理として、読み込むべき複数のデータパケット(データブロック)を順次読み込んでいく。
またこの時、書き込み/読み込み制御部34は、ステップS73の処理として、全てのデータパケットの読み込みが完了したか判定し、完了していない場合にはステップS72へ処理を戻す。一方、全てのデータの読み込みが完了した場合、CPU22は、ステップS74にて第1データ保存領域13からのデータ読み込みループ処理を終了する。
このステップS74の処理後、CPU22は、読み込み処理を終了する。
またステップS62からステップS81の処理に進むと、CPU22の書き込み/読み込み制御部34は、ICカード10の第2データ保存領域14からのデータ読み込みループ処理を開始する。
このデータ読み込みループ処理に移行すると、書き込み/読み込み制御部34は、ステップS82の処理として、読み込むべき複数のデータパケット(データブロック)を順次読み込んでいく。
またこの時、書き込み/読み込み制御部34は、ステップS83の処理として、全てのデータパケットの読み込みが完了したか判定し、完了していない場合にはステップS82へ処理を戻す。一方、全てのデータの読み込みが完了した場合、CPU22は、ステップS84にて第2データ保存領域14からのデータ読み込みループ処理を終了する。
このステップS84の処理後、CPU22は、読み込み処理を終了する。
〔まとめ〕
以上説明したように、本実施形態によれば、データの書き込みトランザクションが中断したICカードを、別のリーダライタにて書き込み/読み込みする場合、そのICカードが書き込み中断したカードであるかどうかを意識する必要がない。
以上説明したように、本実施形態によれば、データの書き込みトランザクションが中断したICカードを、別のリーダライタにて書き込み/読み込みする場合、そのICカードが書き込み中断したカードであるかどうかを意識する必要がない。
また、本実施形態によれば、例えばICカードへのデータ書き込みが中断し、その中断したデータを最後まで書き込む場合、書き込み中断位置からの書き込み再開が可能となる。さらに、本実施形態によれば、書き込みが中断した時の残りのデータから書き込みを再開することができるため、再書き込みのための処理時間の短縮も可能となる。
なお、上述した本発明の各実施形態の説明は、本発明の一例である。このため、本発明は上述の実施形態に限定されることなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることはもちろんである。
上述の実施形態では、ICカードの記憶領域内に二つのデータ保存領域を設けた例を挙げたが、データ保存領域は三つ以上であっても良い。データ保存領域を三つ以上にした場合、それらデータ保存領域の数に対応して、識別データの属性も三つ以上とする。一例として、第1〜第4データ保存領域の四つがある場合、識別データの属性は、上位2ビットの“00”,“01”,“10”,“11”により表される第1〜第4属性とすることができる。同様のことから、識別データの属性を表すためのビット数を増やせば、さらに多くのデータ保存領域を設けた場合にも対応可能となる。
また、このようにデータ保存領域を複数設けた場合には、一つのICカードにおける複数回の連続した書き込み中断にも対応可能となる。例えば、データ保存領域を第1〜第4データ保存領域の四つにした場合には、最大で3回分の連続した書き込み中断にも対応可能となる。すなわち例えば、第1データ保存領域への書き込みが中断した後、さらに第2データ保存領域への別のデータ書き込みが中断し、またさらに第3データ保存領域への別のデータ書き込みが中断した場合でもあってもリーダライタは対応できることになる。具体的に説明すると、この例の場合、ICカードの識別データ格納領域には第4属性の識別コードのみ格納されているため、リーダライタは、データ読み込みを行う場合には、当該識別コードから、第4データ保存領域に正常なデータが格納されていることを知る。これにより、リーダライタは、第4データ保存領域から正常なデータを読み込むことができる。一方、リーダライタは、データ書き込みを行う場合には、ICカードの識別コード格納領域の上記第4属性の識別コードから、第1〜第3データ保存領域にデータを書き込んでも良いことを知る。これにより、リーダライタは、第1〜第3データ保存領域の何れかに(或いは予め決められた順に)データを書き込むことができる。またこの時、メモリ23内の識別コード保存領域36には第4属性の識別コードが保存され、中断位置保存領域38には第1〜第3データ保存領域の各中断位置情報が、中断データ保存領域37には第1〜第3データ保存領域に各々対応した未書き込みデータが保存される。したがって、リーダライタは、それら各領域36,37,38内の情報を基に、第1〜第3データ保存領域の各中断アドレスから、それぞれ未書き込みデータの書き込みを再開できる。
さらに、本実施形態によれば、各識別コードは、それぞれ一意のコードであるため、例えば複数の各々異なるICカードにおける中断時の再書き込みにも対応可能となる。例えば、メモリ23の識別コード保存領域に、それぞれ異なる四つの識別コードが保存されているような場合には、リーダライタは、それら四つの識別コードから特定可能な四つのICカードに対する再書き込みが可能となる。具体的に説明すると、この例の場合、リーダライタは、各ICカードへの書き込み中断時の識別コードと、それら各ICカードのデータ保存領域の中断アドレス及び中断データを保存している。したがって、リーダライタは、保存している識別コードから、何れのICカードの何れのデータ保存領域への書き込みが中断したのかを知ることができ、また、その中断アドレスも知ることができる。これにより、リーダライタは、四つの各々異なるICカードにおける中断時の再書き込みが可能となる。
その他、上述した実施形態では、リーダライタ機能を備えた携帯電話端末を例に挙げたが、本発明はそれに限定されず、リーダライタ機能を備えた各種の機器にも適用可能である。また、それら機器は、据え置き型、携帯型何れであっても良い。
10 ICカード、12 記憶領域、13 第1データ保存領域、14 第2データ保存領域、15 識別コード格納領域、20 リーダライタ、21 RFアンテナ、22 CPU、23 メモリ、31 識別コード生成部、32 識別コードチェック部、33 通信制御部、34 書き込み/読み込み制御部、35 プログラム格納領域、36 識別コード保存領域、37 中断データ保存領域、38 中断位置保存領域
Claims (8)
- データが書き込み/読み込みされる二以上のデータ保存領域と、正常にデータが書き込まれたICカード及びデータ保存領域を特定するための識別コードを格納する識別コード格納領域とを、少なくとも有するICカードとの間で、通信を行うカード通信部と、
上記ICカードのデータ保存領域に正常にデータが書き込まれた時に、上記識別コード格納領域に格納する識別コードを生成する識別コード生成部と、
上記ICカードのデータ保存領域に対するデータの書き込み/読み込みと上記識別コード格納領域に対する識別コードの書き込み/読み込みを行うと共に、上記ICカードの識別コード格納領域に格納されている識別コードに応じて、上記データ保存領域に対するデータ書き込み/読み込みを制御する制御部と、
を有するICカードリーダライタ装置。 - 上記制御部は、上記ICカードからデータを読み込む際には上記識別コードにより特定されるデータ保存領域からデータを読み込み、上記ICカードにデータを書き込む際には上記識別コードにより特定されるデータ保存領域とは別のデータ保存領域へデータを書き込む請求項1記載のICカードリーダライタ装置。
- 上記ICカードのデータ保存領域へのデータ書き込みが中断した時、上記制御部は、当該データ保存領域の書き込み中断位置情報と、当該書き込み中断時の未書き込みデータと、上記ICカードの識別コード格納領域から読み込んだ識別コードとを内部に保存し、
上記書き込みが中断したデータの再書き込みを行う時、上記制御部は、当該再書き込みの際にICカードの識別コード格納領域から読み込んだ識別コードと上記書き込み中断時に保存した識別コードとが一致するICカードに対して、上記書き込み中断時の未書き込みデータを、上記中断位置情報にて示されるデータ保存領域内の位置から書き込む請求項2記載のICカードリーダライタ装置。 - 上記識別コード生成部は、ICカード及びデータ保存領域を一意に特定するランダムな値の識別コードを生成する請求項1記載のICカードリーダライタ装置。
- データが書き込み/読み込みされる二以上のデータ保存領域と、正常にデータが書き込まれたICカード及びデータ保存領域を特定するための識別コードを格納する識別コード格納領域とを、少なくとも有するICカードとの間で、通信を行うカード通信部と、
上記ICカードのデータ保存領域に正常にデータが書き込まれた時に、上記識別コード格納領域に格納する識別コードを生成する識別コード生成部と、
上記ICカードのデータ保存領域に対するデータの書き込み/読み込みと上記識別コード格納領域に対する識別コードの書き込み/読み込みを行うと共に、上記ICカードの識別コード格納領域に格納されている識別コードに応じて、上記データ保存領域に対するデータ書き込み/読み込みを制御する制御部とを有するICカードリーダライタ機能を、
備えた携帯通信端末。 - データが書き込み/読み込みされる二以上のデータ保存領域と、正常にデータが書き込まれたICカード及びデータ保存領域を特定するための識別コードを格納する識別コード格納領域とを、少なくとも有するICカードとの間で、カード通信部が通信を行うステップと、
上記ICカードのデータ保存領域に正常にデータが書き込まれた時に、識別コード生成部が、上記識別コード格納領域に格納する識別コードを生成するステップと、
制御部が、上記ICカードのデータ保存領域に対するデータの書き込み/読み込みと上記識別コード格納領域に対する識別コードの書き込み/読み込みを行うと共に、上記ICカードの識別コード格納領域に格納されている識別コードに応じて、上記データ保存領域に対するデータ書き込み/読み込みを制御するステップと、
を有するICカード管理方法。 - データが書き込み/読み込みされる二以上のデータ保存領域と、正常にデータが書き込まれたICカード及びデータ保存領域を特定するための識別コードを格納する識別コード格納領域とを、少なくとも有するICカードとの間で行われる通信を、制御するカード通信制御部と、
上記ICカードのデータ保存領域に正常にデータが書き込まれた時に、上記識別コード格納領域に格納する識別コードを生成する識別コード生成部と、
上記ICカードの識別コード格納領域に対する識別コードの書き込み/読み込みを制御すると共に、上記ICカードの識別コード格納領域に格納されている識別コードに応じて、当該ICカードのデータ保存領域に対するデータ書き込み/読み込みを制御する制御部として、
コンピュータを機能させるICカード管理プログラム。 - データが書き込み/読み込みされる二以上のデータ保存領域と、
正常にデータが書き込まれたデータ保存領域を特定するための識別コードを格納する識別コード格納領域とを、
少なくとも有するICカード。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008123313A JP2009271829A (ja) | 2008-05-09 | 2008-05-09 | Icカードリーダライタ装置、携帯通信端末、icカード管理方法、icカード管理プログラム、及びicカード |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008123313A JP2009271829A (ja) | 2008-05-09 | 2008-05-09 | Icカードリーダライタ装置、携帯通信端末、icカード管理方法、icカード管理プログラム、及びicカード |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009271829A true JP2009271829A (ja) | 2009-11-19 |
Family
ID=41438301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008123313A Pending JP2009271829A (ja) | 2008-05-09 | 2008-05-09 | Icカードリーダライタ装置、携帯通信端末、icカード管理方法、icカード管理プログラム、及びicカード |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009271829A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122365A (zh) * | 2011-02-28 | 2011-07-13 | 中国电子技术标准化研究所 | 一种射频识别系统中标签存储区访问方法和标签 |
-
2008
- 2008-05-09 JP JP2008123313A patent/JP2009271829A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122365A (zh) * | 2011-02-28 | 2011-07-13 | 中国电子技术标准化研究所 | 一种射频识别系统中标签存储区访问方法和标签 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6523754B2 (en) | IC card, a method of controlling update of data, a method of controlling restoration of data or messages, and a computer product | |
CN100377120C (zh) | 非易失性存储器装置的控制方法 | |
JP4768237B2 (ja) | 携帯可能電子装置及び携帯可能電子装置の制御方法 | |
JP4701618B2 (ja) | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム | |
WO2005109446A1 (ja) | 半導体メモリ装置 | |
US7257030B2 (en) | Operating a storage component | |
CN113608602A (zh) | 一种片上系统的复位方法和装置 | |
JP2003216511A (ja) | 不揮発性メモリ装置、データ更新方法、データ更新プログラム及びそのプログラムが記録されたコンピュータ読み取り可能な記録媒体 | |
JP2009271829A (ja) | Icカードリーダライタ装置、携帯通信端末、icカード管理方法、icカード管理プログラム、及びicカード | |
JP5754287B2 (ja) | Icチップ、icチップにおける処理方法、uim、携帯端末、及びicチップ用処理プログラム | |
JP6233134B2 (ja) | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム | |
JP3376331B2 (ja) | フラッシュメモリを用いる記憶方法及び記憶制御プログラムを記録した記録媒体 | |
JP6636930B2 (ja) | フラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラム | |
JP2008107991A (ja) | 情報処理媒体とそのプログラム、情報処理媒体のエラー処理方法、及び、情報処理システム | |
JP5050508B2 (ja) | 記憶装置、記憶装置のプログラム及び記憶処理方法 | |
JP2000357216A (ja) | Icカード | |
US20070274302A1 (en) | Data Storage Device, Memory Managing Method, and Program | |
JP5341947B2 (ja) | Icカード、icカードの制御方法、および携帯可能電子装置の制御方法 | |
JP2001312891A (ja) | 半導体メモリ装置 | |
JP4239754B2 (ja) | 不揮発メモリシステム | |
JP4868979B2 (ja) | 携帯可能電子装置およびicカード | |
JP5786702B2 (ja) | セキュリティトークン、セキュリティトークンにおける命令の実行方法及びコンピュータプログラム | |
JP7563181B2 (ja) | 電子情報記憶媒体、パッチプログラムの書き込み方法、及びプログラム | |
JP2006059204A (ja) | Icカードおよびicカードのメモリアクセス制御方法および制御装置 | |
JP2008009521A (ja) | 携帯型電子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20091002 |