JP4462646B2 - Information processing apparatus, information processing method, reader / writer, access method, and recording medium - Google Patents

Information processing apparatus, information processing method, reader / writer, access method, and recording medium Download PDF

Info

Publication number
JP4462646B2
JP4462646B2 JP17143097A JP17143097A JP4462646B2 JP 4462646 B2 JP4462646 B2 JP 4462646B2 JP 17143097 A JP17143097 A JP 17143097A JP 17143097 A JP17143097 A JP 17143097A JP 4462646 B2 JP4462646 B2 JP 4462646B2
Authority
JP
Japan
Prior art keywords
block
area
data
user
provider
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.)
Expired - Lifetime
Application number
JP17143097A
Other languages
Japanese (ja)
Other versions
JPH10105661A (en
Inventor
進 日下部
昌幸 高田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP17143097A priority Critical patent/JP4462646B2/en
Publication of JPH10105661A publication Critical patent/JPH10105661A/en
Application granted granted Critical
Publication of JP4462646B2 publication Critical patent/JP4462646B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、情報処理装置および情報処理方法リーダ/ライタおよびアクセス方法、並びに記録媒体に関し、特に、所定の利用者からのコマンドを受信し、そのコマンドを処理し、処理の結果を送信する情報処理装置および情報処理方法リーダ/ライタおよびアクセス方法、並びに記録媒体に関する。
【0002】
【従来の技術】
電子マネーシステムやセキュリティシステムで利用されるICカード(スマートカード)が開発されている。
【0003】
このようなICカードは、各種処理を行うCPUや、処理に必要なデータなどを記憶するメモリを内蔵し、所定のリーダ/ライタ(R/W)に接触させた状態で、データの送受信を行っている。
【0004】
また、ICカードの中には、自らはバッテリを有していないバッテリレス型のICカードもある。このようなバッテリレス型のICカードは、R/Wから電力を供給される。
【0005】
【発明が解決しようとする課題】
しかしながら、このようなICカードにおいては、R/Wに接触させた状態で使用することを前提としているので、非接触で使用する場合、電力を取得することが困難であるという問題を有している。
【0006】
また、電磁波を利用して、非接触でICカードとR/Wとの間でデータの送受信を行うとともに、その電磁波でICカードに必要な電力を供給する方法も考えられるが、このような方法においては、ICカードが内蔵するメモリにアクセスしている途中で、電磁波の受信状態が不良になった場合、十分な電力が得られなくなり、メモリにおけるデータの整合性に欠陥が生じる(メモリコラプション(Memory Corruption)が生じる)可能性があるという問題を有している。
【0007】
さらに、MS−DOS(Microsoft-Disc Operating System)のFAT(File Allocation Table)のように、データが記憶される単位(MS−DOSの場合はセクタ)毎に情報を保持すると、データが記憶される領域の大きさに比例した領域が、データ管理のために必要となり、メモリの利用効率が低下するという問題を有している。また、記憶領域を、データが記憶される所定の単位で管理すると、その単位に満たない大きさのデータを記憶するとき、使用されない記憶領域が発生し、さらに、メモリの利用効率が低下するという問題を有している。
【0008】
さらに、上述のICカードにおいては、R/Wに対して一様な処理を行っているため、複数のR/Wに対応して個別の処理を行うことが困難であるという問題を有している。
【0009】
本発明は、このような状況に鑑みてなされたもので、複数の利用者のデータを記憶する第1の領域と、第1の領域に記憶されている複数の利用者により使用され、所定の大きさの物理ブロック単位で管理される第2の領域とを含む記憶部を利用するとともに、その物理ブロックに記憶されるデータに、論理ブロック番号を割り当て、そのデータを、その論理ブロック番号を有するデータが記憶されている物理ブロック以外の物理ブロックに記憶したり、物理ブロックに記憶されるデータに、記憶される順番に対応する番号を割り当て、最後の番号を有する物理ブロックが、最後の物理ブロックである場合、そのデータを、先頭の物理ブロックに記憶し、最後の番号を有する物理ブロックが、最後の物理ブロックではない場合、そのデータを、最後尾の番号を有する物理ブロックの次の物理ブロックに記憶することで、メモリにおけるメモリコラプションの発生を論理的に抑制するものである。
【0010】
また、本発明は、各利用者により使用される領域の先頭の物理ブロックに対応する番号および最後の物理ブロックに対応する番号を保持することで、利用者により使用される領域の大きさではなく、利用者の数に比例した量の情報(先頭の物理ブロックに対応する番号および最後の物理ブロックに対応する番号)で、データを管理することができるようにするものである。
【0011】
さらに、本発明は、上述の記憶部において、第2の領域における所定の領域、および、それぞれ異なるアクセス権を規定する複数のデータを、1利用者に対応して第1の領域に記憶したり、第2の領域における所定の領域を規定するデータを、複数の利用者に対応して、第1の領域に記憶することで、複数の利用者(R/W)に対応して個別の処理を行うことができるようにするものである。
【0012】
【課題を解決するための手段】
請求項1に記載の情報処理装置は、所定のシステムを提供するプロバイダの装置からのコマンドを受信する受信手段と、コマンドを処理する処理手段と、処理の結果を送信する送信手段と、プロバイダの装置が利用するデータを記憶するユーザブロック領域およびユーザブロック領域を管理する領域定義ブロック領域が形成される記憶手段とを備え、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、領域定義ブロック領域は、利用するユーザブロックを規定するデータ、および当該ユーザブロックへのアクセス権を規定するデータを有する複数の領域定義ブロックからなるとともに、プロバイダの装置ごとに領域定義ブロックが割り当てられ、同一のユーザブロックが、アクセス権の異なる複数のプロバイダの装置のそれぞれに割り当てられた領域定義ブロックのそれぞれにおいて規定される場合、プロバイダの装置ごとに、それぞれのプロバイダの装置に割り当てられた領域定義ブロックにおいて規定される互いに異なるアクセス権が参照されて、同一のユーザブロックへのアクセスが行われることを特徴とする。
【0013】
請求項4に記載の情報処理方法は、所定のシステムを提供するプロバイダの装置が利用するデータを記憶するユーザブロック領域およびユーザブロック領域を管理する領域定義ブロック領域が形成される記憶手段を備える情報処理装置の情報処理方法であって、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、域定義ブロック領域は、利用するユーザブロックを規定するデータ、および当該ユーザブロックへのアクセス権を規定するデータを有する複数の領域定義ブロックからなるとともに、プロバイダの装置ごとに領域定義ブロックが割り当てられ、同一のユーザブロックが、アクセス権の異なる複数のプロバイダの装置のそれぞれに割り当てられた領域定義ブロックのそれぞれにおいて規定される場合、プロバイダの装置ごとに、それぞれのプロバイダの装置に割り当てられた領域定義ブロックにおいて規定される互いに異なるアクセス権が参照されて、同一のユーザブロックへのアクセスが行われ、プロバイダの装置からのコマンドを受信する受信ステップと、領域定義ブロック領域を利用して、コマンドを処理する処理ステップと、処理の結果を送信する送信ステップとを含むことを特徴とする。
【0014】
請求項5に記載の記録媒体のプログラムは、所定のシステムを提供するプロバイダの装置が利用するデータを記憶するユーザブロック領域およびユーザブロック領域を管理する領域定義ブロック領域が形成される記憶手段を備える情報処理装置であって、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、領域定義ブロック領域は、利用するユーザブロックを規定するデータ、および当該ユーザブロックへのアクセス権を規定するデータを有する複数の領域定義ブロックからなるとともに、プロバイダの装置ごとに領域定義ブロックが割り当てられ、同一のユーザブロックが、アクセス権の異なる複数のプロバイダの装置のそれぞれに割り当てられた領域定義ブロックのそれぞれにおいて規定される場合、プロバイダの装置ごとに、それぞれのプロバイダの装置に割り当てられた領域定義ブロックにおいて規定される互いに異なるアクセス権が参照されて、同一のユーザブロックへのアクセスが行われる情報処理装置に、プロバイダの装置からのコマンドの受信を制御する受信制御ステップと、領域定義ブロック領域を利用して、コマンドを処理する処理ステップと、処理の結果の送信を制御する送信制御ステップとを実行させることを特徴とする。
【0015】
請求項6に記載のリーダ/ライタは、所定のシステムを提供するプロバイダの装置が利用するデータが記憶されるユーザブロック領域と、ユーザブロック領域を管理する領域定義ブロック領域とが形成される記憶手段を備える情報処理装置のユーザブロック領域にアクセスするためのリーダ/ライタであって、情報処理装置に送信する送信データおよび情報処理装置から受信した受信データの処理を行うデータ処理手段と、送信データを変調する変調手段と、受信データを復調する復調手段とを含み、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、送信データは、記憶手段の領域定義ブロック領域を構成する領域定義ブロックに記憶されている、ユーザブロックを規定するデータおよびユーザブロックへのアクセス権を規定するデータに基づいて制御されるユーザブロックへのアクセスのためのコマンドであり、コマンドは、複数のリーダ/ライタのそれぞれに対して割り当てられた複数の領域定義ブロックのそれぞれのうち、自分自身に対して割り当てられた領域定義ブロックにおいて規定されるアクセス権が参照されて処理され、同一のユーザブロックは、コマンドの処理により、アクセス権の異なる複数のリーダ/ライタによって互いに異なるアクセス権でアクセスされることを特徴とする。
【0016】
請求項7に記載のアクセス方法は、所定のシステムを提供するプロバイダの装置が利用するデータが記憶されるユーザブロック領域と、ユーザブロック領域を管理する領域定義ブロック領域とが形成される記憶手段を備える情報処理装置のユーザブロック領域にプロバイダの装置がアクセスするアクセス方法であって、送受信手段が情報処理装置に呼びかけを行う呼びかけステップと、送受信手段が呼びかけに応答した情報処理装置に対し、コマンドを送信する送信ステップと、送受信手段が情報処理装置により処理されたコマンドに対する送信結果を受信する受信ステップと、処理手段が送信結果を処理する処理ステップとを含み、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、コマンドは、記憶手段の領域定義ブロック領域を構成する領域定義ブロックに記憶されている、ユーザブロックを規定するデータおよびユーザブロックへのアクセス権を規定するデータに基づいて制御されるユーザブロックへのアクセスのためのコマンドであって、複数のプロバイダの装置のそれぞれに対して割り当てられた複数の領域定義ブロックのそれぞれのうち、自分自身に対して割り当てられた領域定義ブロックにおいて規定されているアクセス権が参照されて処理されるコマンドであり、同一のユーザブロックは、コマンドの処理により、アクセス権の異なる複数のプロバイダの装置によって互いに異なるアクセス権でアクセスされることを特徴とする。
【0017】
請求項9に記載の記録媒体のプログラムは、所定のシステムを提供するプロバイダの装置が利用するデータが記憶されるユーザブロック領域と、ユーザブロック領域を管理する領域定義ブロック領域とが形成される記憶手段を備える情報処理装置であって、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、プロバイダの装置から送信されるコマンドは、記憶手段の領域定義ブロック領域を構成する領域定義ブロックに記憶されている、ユーザブロックを規定するデータおよびユーザブロックへのアクセス権を規定するデータに基づいて制御されるユーザブロックにアクセスするためのコマンドであって、複数のプロバイダの装置のそれぞれに対して割り当てられた複数の領域定義ブロックのそれぞれのうち、プロバイダの装置に割り当てられた領域定義ブロックにおいて規定されるアクセス権が参照されて処理されるコマンドであり、同一のユーザブロックは、コマンドの処理により、アクセス権の異なる複数のプロバイダの装置によって互いに異なるアクセス権でアクセスされる、情報処理装置にアクセスするプロバイダの装置に、送受信手段が情報処理装置に呼びかけを行う呼びかけステップと、送受信手段が呼びかけに応答した情報処理装置に対し、コマンドの送信を制御する送信制御ステップと、送受信手段が情報処理装置により処理されたコマンドに対する送信結果の受信を制御する受信制御ステップと、処理手段が送信結果を処理する処理ステップとを実行させることを特徴とする。
【0033】
請求項1に記載の情報処理装置においては、所定のシステムを提供するプロバイダの装置からのコマンドが受信され、コマンドが処理され、処理の結果が送信され、プロバイダの装置が利用するデータを記憶するユーザブロック領域およびユーザブロック領域を管理する領域定義ブロック領域が形成される。ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、領域定義ブロック領域は、利用するユーザブロックを規定するデータ、および当該ユーザブロックへのアクセス権を規定するデータを有する複数の領域定義ブロックからなるとともに、プロバイダの装置ごとに領域定義ブロックが割り当てられ、同一のユーザブロックが、アクセス権の異なる複数のプロバイダの装置のそれぞれに割り当てられた領域定義ブロックのそれぞれにおいて規定される場合、プロバイダの装置ごとに、それぞれのプロバイダの装置に割り当てられた領域定義ブロックにおいて規定される互いに異なるアクセス権が参照されて、同一のユーザブロックへのアクセスが行われる。
【0034】
請求項4に記載の情報処理方法および請求項5に記載の記録媒体においては、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、領域定義ブロック領域は、利用するユーザブロックを規定するデータ、および当該ユーザブロックへのアクセス権を規定するデータを有する複数の領域定義ブロックからなるとともに、プロバイダの装置ごとに領域定義ブロックが割り当てられ、同一のユーザブロックが、アクセス権の異なる複数のプロバイダの装置のそれぞれに割り当てられた領域定義ブロックのそれぞれにおいて規定される場合、プロバイダの装置ごとに、それぞれのプロバイダの装置に割り当てられた領域定義ブロックにおいて規定される互いに異なるアクセス権が参照されて、同一のユーザブロックへのアクセスが行われ、プロバイダの装置からのコマンドが受信され、領域定義ブロック領域を利用して、コマンドが処理され、処理の結果が送信される。
【0035】
請求項6に記載のリーダ/ライタにおいては、情報処理装置に送信する送信データおよび情報処理装置から受信した受信データの処理が行われ、送信データが変調され、受信データが復調される。また、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、送信データは、記憶手段の領域定義ブロック領域を構成する領域定義ブロックに記憶されている、ユーザブロックを規定するデータおよびユーザブロックへのアクセス権を規定するデータに基づいて制御されるユーザブロックへのアクセスのためのコマンドとされ、コマンドは、複数のリーダ/ライタのそれぞれに対して割り当てられた複数の領域定義ブロックのそれぞれのうち、自分自身に対して割り当てられた領域定義ブロックにおいて規定されるアクセス権が参照されて処理され、同一のユーザブロックは、コマンドの処理により、アクセス権の異なる複数のリーダ/ライタによって互いに異なるアクセス権でアクセスされる
【0036】
請求項7に記載のアクセス方法および請求項9に記載の記録媒体においては、情報処理装置に呼びかけが行われ、呼びかけに応答した情報処理装置に対し、コマンドが送信され、情報処理装置により処理されたコマンドに対する送信結果が受信され、送信結果が処理される。ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、コマンドは、記憶手段の領域定義ブロック領域を構成する領域定義ブロックに記憶されている、ユーザブロックを規定するデータおよびユーザブロックへのアクセス権を規定するデータに基づいて制御されるユーザブロックへのアクセスのためのコマンドであって、複数のプロバイダの装置のそれぞれに対して割り当てられた複数の領域定義ブロックのそれぞれのうち、ユーザブロックにアクセスする装置に対して割り当てられた領域定義ブロックのアクセス権が参照されて処理されるコマンドとされ、同一のユーザブロックは、コマンドの処理により、アクセス権の異なる複数のプロバイダの装置によって互いに異なるアクセス権でアクセスされる。
【0040】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態(但し一例)を付加して本発明の特徴を記述すると、次のようになる。但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
【0041】
請求項1に記載の情報処理装置は、所定のシステムを提供するプロバイダの装置からのコマンドを受信する受信手段(例えば、図3のアンテナ53,RFインターフェース部61、およびBPSK復調回路62)と、コマンドを処理する処理手段(例えば、図3のシーケンス91)と、処理の結果を送信する送信手段(例えば、図3のアンテナ53,RFインターフェース部61、およびBPSK変調回路68)と、プロバイダの装置が利用するデータを記憶するユーザブロック領域およびユーザブロック領域を管理する領域定義ブロック領域が形成される記憶手段(例えば、図3のEEPROM66)とを含み、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、領域定義ブロック領域は、利用するユーザブロックを規定するデータ、および当該ユーザブロックへのアクセス権を規定するデータを有する複数の領域定義ブロックからなるとともに、プロバイダの装置ごとに領域定義ブロックが割り当てられ、同一のユーザブロックが、アクセス権の異なる複数のプロバイダの装置のそれぞれに割り当てられた領域定義ブロックのそれぞれにおいて規定される場合、プロバイダの装置ごとに、それぞれのプロバイダの装置に割り当てられた領域定義ブロックにおいて規定される互いに異なるアクセス権が参照されて、同一のユーザブロックへのアクセスが行われることを特徴とする。
【0042】
請求項6に記載のリーダ/ライタは、所定のシステムを提供するプロバイダの装置が利用するデータが記憶されるユーザブロック領域と、ユーザブロック領域を管理する領域定義ブロック領域とが形成される記憶手段(例えば、図3のEEPROM66)を備える情報処理装置のユーザブロック領域にアクセスするリーダ/ライタであって、情報処理装置に送信する送信データおよび情報処理装置から受信した受信データの処理を行うデータ処理手段(例えば、図2のSPU32)と、送信データを変調する変調手段(例えば、図2の変調回路23)と、受信データを復調する復調手段(例えば、図2の復調回路25)とを含み、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、送信データは、記憶手段の領域定義ブロック領域を構成する領域定義ブロックに記憶されている、ユーザブロックを規定するデータおよびユーザブロックへのアクセス権を規定するデータに基づいて制御されるユーザブロックへのアクセスのためのコマンドであり、コマンドは、複数のリーダ/ライタのそれぞれに対して割り当てられた複数の領域定義ブロックのそれぞれのうち、自分自身に対して割り当てられた領域定義ブロックのアクセス権が参照されて処理され、同一のユーザブロックは、コマンドの処理により、アクセス権の異なる複数のリーダ/ライタによって互いに異なるアクセス権でアクセスされることを特徴とする。
【0048】
図1は、R/W1およびICカード2を利用した非接触カードシステムの一例を示している。R/W1およびICカード2は、電磁波を利用して非接触で、データの送受信を行う。
【0049】
R/W1が、所定のコマンドをICカード2に送信すると、ICカード2は、そのコマンドを受信し、そのコマンドに対応する処理を行うようになされている。
【0050】
本発明の情報処理装置の一実施の形態であるICカード2は、R/W1がデータをICカード2に送信すると、そのコマンドを受信し、受信したコマンドを処理し、その処理結果に対応する応答データをR/W1に送信するようになされている。
【0051】
また、R/W1は、所定のインタフェース(例えばRS−485A)を介してコントローラ3に接続され、コントローラ3より所定の制御信号を供給され、その制御信号に従って、処理を行うようになされている。
【0052】
図2は、R/W1の構成を示している。
【0053】
IC21においては、データの処理を行うDPU(Data Processing Unit)31、ICカード2に送信するデータおよびICカード2から受信したデータの処理を行うSPU(Signal Processing Unit)32、コントローラ3との通信を行うSCC(Serial Communication Controller)33、および、データの処理に必 要な情報を予め記憶しているROM部41と、処理途中のデータを一時的に記憶するRAM部42で構成されるメモリ部34が、バスを介して接続されている。
【0054】
また、このバスには、所定のデータを記憶するフラッシュメモリ22も接続されている。
【0055】
DPU31は、ICカード2に送信するコマンドをSPU32に出力するとともに、ICカード2から受信した応答データをSPU32から受け取るようになされている。
【0056】
SPU32は、ICカード2に送信するコマンドに対して所定の処理(例えば、BPSK(BiPhase Shift Keying)変調(後述))を行った後、変調回路23に出力するとともに、ICカード2により送信されてきた応答データを復調回路25から受け取り、そのデータに対して所定の処理を行うようになされている。
【0057】
変調回路23は、発振器26より供給された所定の周波数(例えば13.56MHz)の搬送波を、SPU32より供給されたデータで、ASK(Amplitude Shift Keying)変調し、生成された変調波をアンテナ27を介して、電磁波としてICカード2に出力するようになされている。このとき、変調回路23は、変調度を1未満にして、ASK変調を行う。即ち、データがローレベルのときにおいても、変調波の最大振幅がゼロにならないようにする。
【0058】
復調回路24は、アンテナ27を介して受信した変調波(ASK変調波)を復調し、復調されたデータをSPU32に出力するようになされている。
【0059】
図3は、ICカード2の構成例を示している。このICカード2においては、IC51は、アンテナ53を介して、R/W1により送信された変調波を受信するようになされている。なお、コンデンサ52は、アンテナ53とともにLC回路を構成し、所定の周波数(キャリア周波数)の電磁波に同調するようになされている。
【0060】
IC51においては、RFインタフェース部61は、ASK復調部81で、アンテナ53を介して受信した変調波(ASK変調波)を検波して復調し、復調後のデータをBPSK復調回路62およびPLL(Phase Locked Loop)部63に出力するとともに、電圧レギュレータ82で、ASK復 調部81が検波した信号を安定化し、各回路に直流電力として供給するようになされている。
【0061】
また、RFインタフェース部61は、発振回路83でデータのクロック周波数と同一の周波数の信号を発振し、その信号をPLL部63に出力するようになされている。
【0062】
そして、RFインタフェース部61のASK変調部84は、演算部64より供給されたデータに対応して、ICカード2の電源としてのアンテナ53の負荷を変動させる(例えば、データに対応して所定のスイッチング素子をオン/オフさせ、スイッチング素子がオン状態であるときだけ所定の負荷をアンテナ53に並列に接続させる)ことにより、アンテナ53を介して受信している変調波(ICカード2からデータを送信するときは、変調波の最大振幅を一定にしている)をASK変調し、その変調成分を、アンテナ53を介してR/W1に送信する(R/W1のアンテナ27の端子電圧を変動させる)ようになされている。
【0063】
PLL部63は、ASK復調部81より供給されたデータより、そのデータに同期したクロック信号を生成し、そのクロック信号をBPSK復調回路62およびBPSK変調回路68に出力するようになされている。
【0064】
BPSK復調回路62は、ASK復調部81で復調されたデータが、BPSK変調されている場合、PLL部63より供給されたクロック信号に従って、そのデータの復調を行い、復調したデータを演算部64に出力するようになされている。
【0065】
演算部64は、BPSK復調回路62より供給されたデータが暗号化されている場合、そのデータを暗号/復号部92で復号化した後、そのデータを、コマンドとして、シーケンサ91で処理するようになされている。なお、データが暗号化されていない場合、BPSK復調回路62より供給されたデータは、暗号/復号部92を介さず、シーケンサ91に、直接供給される。
【0066】
シーケンサ91は、供給されたコマンドに対応する処理を行うようになされている。例えば、このとき、シーケンサ91は、EEPROM66に記憶されているデータの処理を行う。
【0067】
演算部64のパリティ演算部93は、EEPROM66に記憶されるデータや、EEPROM66に記憶されているデータから、パリティとして、リードソロモン符号を算出するようになされている。
【0068】
さらに、演算部64は、シーケンサ91で所定の処理を行った後、その処理に対応する応答データ(R/W1に送信するデータ)をBPSK変調回路68に出力するようになされている。
【0069】
BPSK変調回路68は、演算部64より供給されたデータをBPSK変調し(後述)、変調後のデータをRFインタフェース部61のASK変調部84に出力するようになされている。
【0070】
RAM67は、シーケンサ91が処理を行うとき、処理の途中のデータなどを、一時的に記憶するようになされている。
【0071】
EEPROM(Electrically Erasable and Programmable ROM)66は、不揮発性のメモリであり、ICカード2がR/W1との通信を終了し、電力供給が停止した後も、データを記憶し続けるようになされている。ROM65には、シーケンサ91がR/W1からのコマンドを処理するのに必要な基礎的なプログラムが記憶されている。
【0072】
図4は、EEPROM66のメモリの割り当ての一例を示している。
【0073】
EEPROM66は、40バイトの物理ブロックを、256個有している。各物理ブロックは、32バイトのデータ部(D00乃至D1f)、2バイトのアトリビュート部(AT1,AT2)、および、6バイトのパリティ部(P0乃至P5)の合計40バイトで構成されている。
【0074】
EEPROM66の物理ブロック番号ffH(Hは16進数を表している)は、システムIDブロックに割り当てられている。システムIDブロックは、ICカード2のセキュリティに関する情報を記憶している。
【0075】
次に、物理ブロック番号fdHから00Hに向かって順次、物理ブロックが、共通領域定義ブロック(Common Area Definition Block)(第1の領域)またはプロバイダ領域定義ブロック(Provider Area Definition Block)(第1の領域)に割り当てられている。
【0076】
EEPROM66には、ICカード2が発行されるとき、所定の装置(発行機)により、このICカード2を利用したシステムを提供する者(プロバイダ)が登録される。発行機は、1プロバイダ当たり1物理ブロックで、プロバイダ領域定義ブロックを、物理ブロック番号fdHから00Hに向かって順次使用し、プロバイダを登録する。
【0077】
共通領域定義ブロックおよびプロバイダ領域定義ブロックは、プロバイダが使用する記憶領域の位置などの情報を記憶している。
【0078】
そして、システムIDブロック、共通領域定義ブロック、およびプロバイダ領域定義ブロックとして利用されない物理ブロックが、プロバイダにより使用されるユーザブロック(User Block)に割り当てられる。
【0079】
図5は、システムIDブロックに対する各データの割り当ての一例を示している。
【0080】
データ部のD00乃至D0fは、EEPROM66の製造時の製造ID(Manufacture ID)(IDm)が記憶されている。領域D00乃至D03、領域D04乃至D07、領域D08乃至D0b、および、領域D0c乃至D0fは、EEPROM66のICコード、EEPROM66を作成した製造機のコード(Manufacture Equipment Code)、EEPROM66の製造日(Manufacture Date)、および、EEPROM66の製造シリアルナンバ(Manufacture Serial Number) を、それぞれ記憶している。
【0081】
このIDmの情報を利用することにより、すべてのICカード2(EEPROM66)の識別を行うことができる。なお、製造日は、2000年1月1日を0000Hとして、2000年1月1日からの日数とする。なお、製造日が1990年台である場合、製造日は、2の補数を利用して、2000年1月1日からの負の日数として表現される。
【0082】
データ部のD10乃至D1fは、このIDカード2を発行したときの発行ID(Issue ID)(IDi)が記憶されている。領域D10乃至D13、領域D14乃至D17、領域D18乃至D1b、および、領域D1c乃至1fは、ICカード2の属するカテゴリおよびグループを示すカテゴリ/グループナンバ、このICカード2を発行した発行機のコード、ICカード2を発行した日にち、および、ICカード2の有効期限を、それぞれ記憶している。
【0083】
図6は、システムIDブロックのアトリビュート部を示している。アトリビュート部は、登録されているプロバイダの数を記憶している。発行機は、1つのプロバイダを登録する際に、1つの物理ブロックを使用し、そのとき、このアトリビュート部の値を更新する。
【0084】
アトリビュート部の値は、製造時に、ゼロに設定されており、その後、発行機が、ICカード2にプロバイダを登録するとき、アトリビュート部の値を、登録されるプロバイダの数で更新する。
【0085】
システムIDブロックのパリティ部は、データ部およびアトリビュート部の各ビットの値から、パリティ演算部93で演算されるリードソロモン符号(RS符号)を記憶している。従って、パリティ部の値は、データ部またはアトリビュート部が更新される度に、演算し直される。
【0086】
図7は、共通領域定義ブロックおよびプロバイダ領域定義ブロックの一例を示している。なお、これらのブロックは、ICカード2が発行されるとき、予め、発行機により書き込まれている。
【0087】
共通領域定義ブロックは、EEPROM66の物理ブロック番号feHに配置され、全プロバイダにより使用される記憶領域(共通領域(Common Area))( 第2の領域)の設定を記憶している。
【0088】
プロバイダ領域定義ブロックは、EEPROM66の物理ブロック番号fdHから、00Hに向かって配置され、1プロバイダ当たり1物理ブロックで、プロバイダの情報を記憶している。
【0089】
図7に示すように、領域定義ブロック(共通領域定義ブロックおよびプロバイダ領域定義ブロック)のデータ部D00乃至D1fの領域D00,D01は、プロバイダの種類を示すプロバイダコード(Provider Code)を記憶している。共 通領域定義ブロックの場合、領域D00,D01の値は、0000Hとされ、プロバイダ領域定義ブロックの場合、領域D00,D01の値は、0001H乃至FFFFHのいずれかの値とされている。
【0090】
領域定義ブロックのデータ部の領域D02乃至D05は、このプロバイダが使用する記憶領域(プロバイダ領域(Provider Area))(第2の領域)の先頭の物理ブロックの番号BN0(領域D02,D03)と、終わりの物理ブロックの番号の次の物理ブロックの番号BN1(領域D04,D05)(BN1>BN0)で構成されるアロケーションテーブル(Allocation Table)を記憶している。プロバイダ領域は、図8に示すように、システムブロック(システムIDブロック、領域定義ブロック)を除く、EEPROM66の所定の位置(物理ブロック番号BN0乃至(BN1−1))に設定される。
【0091】
このように、BN0とBN1でプロバイダ領域を指定しているので、プロバイダ(利用者)により使用される領域の大きさではなく、プロバイダの数に比例した量の情報で、データを管理することができ、メモリの利用効率を高くすることができる。
【0092】
領域定義ブロックのデータ部の領域D06乃至D09は、プロバイダが使用する記憶領域のうち、ランダムアクセス領域(後述)のブロック数BRA(領域D06,D07)と、ランダムアクセス領域中のリード/ライトブロックのブロック数BRW(領域D08,D09)で構成されるパーティションテーブル(Partition Table)を記憶している。このとき、ランダムアクセス領域のブロック数BRA は、式
RA=0
または、式
2×n≦BRA≦BN1−BN0
(nはライトバッファ(後述)の数)
を満足する値に設定され、リード/ライトブロックのブロック数BRWは、BRA=0である場合においては、BRW=0に設定され、BRA≠0である場合においては、式
n≦BRW≦BRA−n
を満足する値に設定される。
【0093】
領域定義ブロックのデータ部の領域D0a,D0bは、ランダムアクセス領域のライトバッファの数nを記憶している。n個のライトバッファは、n個のデータを、ランダムアクセス領域の論理ブロック番号00H乃至(00+n(16進数表示))Hに、同時に記憶させるときに利用される。なお、ランダムアクセス領域のうち、その他の論理ブロック番号を有する物理ブロックにデータを記憶するときにおいては、ライトバッファは、1個だけ利用される。
【0094】
以上のように、領域定義ブロックに従って、図8に示すように、物理ブロック番号BN0乃至(BN1−1)の領域(プロバイダ領域または共通領域)は、プロバイダコードで指定されるプロバイダに割り当てられ、さらに、その領域(プロバイダ領域または共通領域)のうちのBRA個の物理ブロックが、ランダムアクセス領域に割り当てられ、残りの物理ブロックがシーケンシャルアクセス領域(後述)に割り当てられている。
【0095】
さらに、領域定義ブロックに従って、図8に示すように、ランダムアクセス領域は、BRW個のリード/ライトブロック、リードオンリーブロック、および、n個のライトバッファに、論理的に割り当てられている。なお、リード/ライトブロックおよびライトバッファ以外の物理ブロックが、リードオンリーブロックに割り当てられる。
【0096】
領域定義ブロックのデータ部の領域D0c,D0dは、このプロバイダが利用する記憶領域(ランダムアクセス領域)におけるパースブロック(Purse Block)(後述)に対するアクセス権の情報を有するパースブロックパーミッションを記憶している。
【0097】
図9は、パースブロックパーミッションの一例を示している。
【0098】
パースブロックパーミッション(16ビット、b0乃至bf)は、パースブロックに対する読み出し、加算命令、および、減算命令の許可または不許可を示している。
【0099】
共通領域定義ブロックのパースブロックパーミッションは、共通領域定義ブロックで設定される記憶領域(共通領域)においてパースブロックを使用するか否かを、領域(ビット)bbに記憶している。即ち、bb=0の場合、パースブロックを使用しない。bb=1の場合、パースブロックを使用する。そして、共通領 域定義ブロックのパースブロックパーミッションにおけるその他の領域(ビット)は、特に使用されない。なお、bb=1の場合、論理ブロック番号が00Hで あるリード/ライトブロックが、パースブロックとして使用される。
【0100】
次に、プロバイダ領域定義ブロックのパースブロックパーミッションにおいては、このプロバイダ領域定義ブロックで設定された記憶領域でパースブロックを使用するか否かを領域b3に記憶している。即ち、b3=0の場合、パースブロックを使用しない。b3=1の場合、パースブロックを使用する。なお、b3=1の場合、論理ブロック番号が00Hであるリード/ライトブロックが、パースブロックとして使用される。
【0101】
そして、そのパースブロックに対する加算命令の可否を領域b2に記憶し、そ のパースブロックに対する減算命令の可否を領域b1に記憶し、そのパースブロ ックに対する読み出しの可否を領域b0に記憶している(bi=1(i=0,1,2)の場合、その命令は許可され、bi=0の場合、その命令は許可されない)。また、共通領域定義ブロックで設定された記憶領域でパースブロックを使用するか否かを領域bbに記憶している。なお、bbには、共通領域定義ブロックのパースブロックパーミッションのbbと同じ値が記憶されている。
【0102】
さらに、そのパースブロックに対する加算命令の可否を領域baに記憶し、そ のパースブロックに対する減算命令の可否を領域b9に記憶し、そのパースブロ ックに対する読み出しの可否を領域b8に記憶している(bi=1(i=8,9,a)の場合、その命令は許可され、bi=0の場合、その命令は許可されない)。
【0103】
図7の領域定義ブロックのデータ部の領域D0e,D0fは、プロバイダ(R/W1)の認証、並びに、暗号化および復号化に利用されるセキュリティキー(共通鍵とプロバイダ鍵)のバージョン番号を記憶し、領域D10乃至1fは、そのセキュリティキーを記憶している。
【0104】
なお、R/W1がポーリングを行ったときは、ICカード2は、この2つのキー(共通鍵とプロバイダ鍵)のバージョン番号を返送する。従って、R/W1とICカード2との間の認証においては、複数のバージョンのセキュリティキーを使い分けることができる。
【0105】
そして、領域定義ブロックのアトリビュート部AT1,AT2は、予備として設けられており、特に情報は記憶されていない。領域定義ブロックのパリティ部は、データ部およびアトリビュート部のすべてのビットの値より演算されるパリティ(RS符号)を記憶している。
【0106】
このように、発行機により設定される領域定義ブロックは、プロバイダコード、アロケーションテーブル、パーティションテーブル、パースブロックパーミッション、セキュリティキーバージョン、および、セキュリティキーを記憶している。
【0107】
図10は、ユーザブロックの一例を示している。図4を参照して上述したように、EEPROM66のメモリ空間のうち、システムIDブロック、共通領域定義ブロック、プロバイダ領域定義ブロック以外の物理ブロックが、ユーザブロックとして、プロバイダにより使用される。
【0108】
例えば、図4に示すように、メモリ空間が256ブロックで構成されている場合において、8個のプロバイダが登録されると、システムIDブロック、共通領域定義ブロック、および、8個のプロバイダ領域定義ブロックの合計10(=1+1+8)個のシステムブロック以外の、246(=256−10)ブロックがユーザブロックとして使用される。また、40個のプロバイダを登録すると、システムブロックは合計42(=1+1+40)個となり、214(=256−42)個のユーザブロックが確保される。
【0109】
ユーザブロックは、領域定義ブロックのアロケーションテーブル(図7)に従って、各プロバイダに割り当てられる。なお、プロバイダは、アロケーションテーブルを参照して、予め割り当てられているユーザブロックを使用するので、アロケーションテーブルで割り当てられた領域(プロバイダ領域または共通領域)以外にアクセスすることはない。
【0110】
アロケーションテーブルで割り当てられた領域(プロバイダ領域または共通領域)のユーザブロックは、上述のパーティションテーブル(図7)に従って、ランダムアクセス領域と、シーケンシャルアクセス領域に割り当てられている。
【0111】
さらに、ランダムアクセス領域のユーザブロックは、リード/ライトブロック、リードオンリーブロック、および、ライトバッファのいずれかとして利用され、これらのブロックの数は、上述のように、パーティションテーブルおよびライトバッファの数に従って設定されている。
【0112】
このように割り当てられているユーザブロックのデータ部D00乃至D1fは、そのユーザブロックが割り当てられているプロバイダによる処理に応じて使用される。
【0113】
ランダムアクセス領域のユーザブロックのアトリビュート部は、図11に示すように、インクリメンタルカウンタ(Incremental Counter)(ビットbf,be)および論理ブロック番号(ビットbd乃至b0)を記憶している。
【0114】
論理ブロック番号とインクリメンタルカウンタは、ランダムアクセス領域のユーザブロックにアクセスするときに利用される。
【0115】
ランダムアクセス領域に記憶されているデータを読み出すときにおいては、論理ブロック番号で、読み出すデータ(物理ブロック)を検索し、その論理ブロック番号を有するデータのインクリメンタルカウンタを参照して最も新しいデータを読み出す。
【0116】
一方、ランダムアクセス領域にデータを記憶する場合、既にランダムアクセス領域に記憶されているデータの論理ブロック番号とインクリメンタルカウンタを参照し、不要となった物理ブロック(後述)を、ライトバッファとした後、そのライトバッファにデータを書き込む。
【0117】
なお、上述の領域定義ブロックのパースブロックパーミッションが、パースブロックを使用するように設定されている場合、論理ブロック番号が00Hであるリード/ライトブロックは、パースブロックとして使用される。
【0118】
パースブロックは、データの加算および減算を頻繁に行うとき、既に記憶している値を読み出したくないとき(情報が漏洩する可能性が増すので)、データに対するアクセス権を細かく設定するときなどに利用される。
【0119】
図12は、パースブロックの一例を示している。パースブロックのデータ部D00乃至D1fの領域D00乃至D07は、パースデータ部として利用される。パースブロックのデータ部D00乃至D1fの領域D08乃至D0fは、エグゼキューションID(Execution ID)を記憶している。なお、パースブロックのデータ部の領域D10乃至D1fは、ユーザデータ部として利用されるが、読み出し専用に設定される。
【0120】
パースデータ部は、所定のデータを記憶している。エグゼキューションIDは、パースブロックに対する加算命令または減算命令が実行されるときに参照され、その加算命令または減算命令に含まれているエグゼキューションIDと比較される。
【0121】
一方、シーケンシャルアクセス領域のユーザブロックのアトリビュート部は、図13に示すように、ラップラウンド番号(ビットbf乃至b0)を記憶している。シーケンシャルアクセス領域には、領域の先頭の物理ブロックから順番に(シーケンシャルに)データが記憶されていき、領域の最後の物理ブロックまでデータが記憶されると、再び、領域の先頭の物理ブロックから順番にデータが記憶されていく(上書きされていく)。ラップラウンド番号は、その順番を記憶している。
【0122】
従って、ラップラウンド番号は、シーケンシャルアクセス領域のユーザブロックにアクセスするときに利用されるとともに、シーケンシャルアクセス領域にデータを記憶する場合、順次参照される。そして、それまでの最後尾のラップラウンド番号を有する物理ブロックの次の物理ブロックに、データが記憶される。このとき、データが記憶された物理ブロックのラップラウンド番号は、それまでの最後尾のラップラウンド番号に1を加算した数に設定される。
【0123】
なお、例えば前回の書込のときに書込の途中で障害が発生して、最後尾のラップラウンド番号を有する物理ブロックにパリティエラー(物理的なメモリコラプション)が生じている場合、新たなデータは、その物理ブロックに記憶される。また、最後尾のラップラウンド番号を有する物理ブロックがシーケンシャルアクセス領域の終わりの物理ブロックの場合、新たなデータは、シーケンシャルアクセス領域の先頭の物理ブロックに記憶される。
【0124】
以上のように、EEPROM66は、各プロバイダに適宜利用される。
【0125】
次に、図14のフローチャートおよび図15のタイミングチャートを参照して、ICカード2およびR/W1の動作について説明する。
【0126】
最初にステップS1において、ICカード2に登録されているプロバイダに対応しているR/W1は、アンテナ27から所定の電磁波を放射して、アンテナ27の負荷状態を監視し、ICカード2が接近し、負荷状態の変化が検出されるまで待機する。なお、ステップS1においては、R/W1は、所定の短いパターンのデータでASK変調した電磁波を放射して、ICカード2への呼びかけを、ICカード2からの応答が一定時間内において得られるまで繰り返すようにしてもよい。
【0127】
R/W1がステップS1においてICカード2の接近を検出した場合(図15の時刻t0)、ステップS2に進み、R/W1のSPU32は、図16(a)に 示すような所定の周波数(例えば、データのクロック周波数の2倍の周波数)の矩形波を搬送波として、ICカード2に送信するデータ(ICカード2に実行させる処理に対応するコマンド)(例えば、図16(b)に示すデータ)で、BPSK変調を行い、生成した変調波(BPSK変調信号)(図16(c))を変調回路23に出力する。
【0128】
なお、BPSK変調時においては、差動変換を利用して、図16(c)に示すように、値が0のデータが現れた場合、直前のBPSK変調信号(「1」「0」または「0」「1」)と同じものをBPSK変調信号とし、値が1のデータが現れた場合、直前のBPSK変調信号の位相を反転させたもの(「1」を「0」に反転させ、「0」を「1」に反転させたもの)をBPSK変調信号としている。
【0129】
このように差動変換を利用して、変調波の位相の変化でデータを保持することにより、BPSK変調信号が反転した場合も、元のデータに復調されるので、復調するとき変調波の極性を配慮する必要が無くなる。
【0130】
そして、変調回路23は、そのBPSK変調信号で、所定の搬送波を1未満(例えば0.1)の変調度(=データ信号の最大振幅/搬送波の最大振幅)でASK変調させ、生成された変調波(ASK変調波)を、アンテナ27を介してICカード2に送信する(図15の時刻t0乃至時刻t1の間)。
【0131】
なお、送信を行わないとき、変調回路23は、デジタル信号の2つのレベル(ハイレベルとローレベル)のうちのハイレベルで変調波を生成するようになされている。
【0132】
次にステップS3において、ICカード2は、アンテナ53およびコンデンサ52で、R/W1のアンテナ27が放射した電磁波の一部を電気信号に変換し、その電気信号(変調波)を、IC51のRFインタフェース部61に出力する。そして、RFインタフェース部61のASK復調部81は、その変調波を整流および平滑し(即ち、包絡線検波し)、生成された信号を電圧レギュレータ82に供給するとともに、生成された信号の直流成分を抑制してデータ信号を抽出し、そのデータ信号をBPSK復調回路62およびPLL部63に出力する。
【0133】
電圧レギュレータ82は、ASK復調部81より供給された信号を安定化し、直流電力を生成し、各回路に供給する。
【0134】
なお、このとき、アンテナ53の端子電圧V0は、例えば次のようになる。
0=V10(1+k×Vs(t))cos(ωt)
【0135】
ここで、V10は、搬送波成分の振幅を、kは変調度を、Vs(t)は信号成分を、それぞれ示している。
【0136】
また、ASK復調部81による整流後の電圧V1におけるローレベルの値VLR は、例えば次のようになる。
LR=V10(1+k×(−1))−Vf
【0137】
ここで、Vfは、整流回路のダイオードDにおける電圧降下を示している。通常Vfは0.7ボルト程度である。
【0138】
そして、電圧レギュレータ82は、ASK復調部81により整流および平滑された信号を安定化し、直流電力として、演算部64を始めとする各回路に供給する。なお、変調波の変調度kは1未満であるので、整流後の電圧変動(ハイレベルとローレベルの差)が小さい。従って、電圧レギュレータ82は、直流電力を容易に生成することができる。
【0139】
例えば、変調度kが5%の変調波を、V10が3ボルト以上になるように受信した場合、整流後のローレベル電圧VLRは、2.15(=3×(1−0.05)−0.7)ボルト以上となり、電圧レギュレータ82は、電源として充分な電圧を各回路に供給することができるとともに、整流後の電圧V1の交流成分(データ 成分)の振幅2×k×V10(Peak-to-Peak値)は、0.3(=2×0.05×3)ボルト以上になり、ASK復調部81は、十分高いS/N比でデータの復調を行うことができる。
【0140】
このように、変調度kが1未満のASK変調波を利用することにより、エラーレートの低い(S/N比の高い状態で)通信を行うとともに、電源として充分な直流電圧がICカード2に供給される。
【0141】
そして、BPSK復調回路62は、PLL部63より供給されるクロック信号に従って、ASK復調部81からのデータ信号(BPSK変調信号)を復調し、復調したデータを演算部64に出力する。
【0142】
次に、ステップS4において、演算部64は、BPSK復調回路62より供給されたデータが暗号化されている場合は、暗号/復号部92で復号化した後、そのデータ(コマンド)をシーケンサ91に供給し、そのコマンドに対応する処理を行う(図15の時刻t1乃至時刻t2の間)。なお、この期間、即ちICカード2からの返答を受信するまでの間、R/W1は、値が1のデータを送信したまま待機している。従って、この期間においては、ICカード2は、最大振幅が一定である変調波を受信している。
【0143】
次に、ステップS5において、演算部64のシーケンサ91は、処理結果などのデータ(R/W1に送信するデータ)を、BPSK変調回路68に出力する。BPSK変調回路68は、R/W1のSPU32と同様に、そのデータをBPSK変調した後、RFインタフェース部61のASK変調部84に出力する。
【0144】
そして、ASK変調部84は、アンテナ53の両端に接続される負荷を、スイッチング素子を利用してデータに応じて変動させることにより、受信している変調波(ICカード2の送信時においては、変調波の最大振幅は一定になっている)を、送信するデータに応じてASK変調させ、それに応じてR/W1のアンテナ27の端子電圧を変動させて、そのデータをR/W1に送信する(図15の時刻t2乃至時刻t3の間)。
【0145】
ステップS6において、R/W1の変調回路23は、ICカード2からのデータの受信時においても、値が1(ハイレベル)のデータの送信を継続している。そして、復調回路25は、ICカード2のアンテナ27と電磁気的に結合しているアンテナ27の端子電圧の微小な変動(例えば、数十マイクロボルト)から、ICカード2により送信されてきたデータを検出する。
【0146】
そして、復調回路25は、検出した信号(ASK変調波)を高利得の増幅器で増幅した後、復調し、生成されたデジタルデータをSPU32に出力する。
【0147】
そして、ステップS7において、R/W1のSPU32は、そのデータ(BPSK変調信号)を復調した後、DPU31に出力し、DPU31は、そのデータを処理する(図15の時刻t3乃至時刻t4の間)。
【0148】
さらに、ステップS8において、R/W1のDPU31は、処理結果に応じて、通信を終了するか否かを判断し、再度、通信を行うと判断した場合、ステップS2に戻り、ステップS2乃至ステップS7で、次のデータ(コマンド)の通信を行う(図15の時刻t4乃至時刻t8)。一方、通信を終了すると判断した場合、R/W1は、ICカード2との通信を終了する。
【0149】
以上のように、R/W1は、変調度kが1未満であるASK変調を利用して、ICカード2に所定のコマンドを送信し、ICカード2は、そのコマンドを受け取り、そのコマンドに対応する処理を行って、その処理の結果に対応するデータを、R/W1に返送する。
【0150】
次に、上述のステップS4におけるICカード2による処理の例として、EEPROM66に対してデータの書込を行うときの動作について、図17乃至図21のフローチャートを参照して説明する。
【0151】
最初に、図17乃至図19のフローチャートを参照して、EEPROM66のランダムアクセス領域にデータを書き込むときの動作について説明する。
【0152】
ステップS21において、シーケンサ91は、データを書き込む物理ブロックがリード/ライトブロック(パースブロックは含まない)である(図8に示すように、BN0から順番に、BRW個までのブロックはリード/ライトブロックとされる)か否かを判断し、リード/ライトブロックであると判断した場合、ステップS22に進む。
【0153】
シーケンサ91は、R/W1のプロバイダコードを有するプロバイダ領域定義ブロックのパースブロックパーミッション(図9)を参照し、パースブロックを使用している(b3=1)か否かを判断し、パースブロックを使用していない場合(b3=0の場合)、ステップS23(図18)に進む。
【0154】
一方、ステップS22においてパースブロックを使用していると判断した場合、シーケンサ91は、ステップS24において、記憶する(書き込む)データの論理ブロック番号が00Hであるか否か、即ち、データを書き込むリード/ライトブロックがパースブロックと重なっているか否かを判断し、データを書き込むリード/ライトブロックがパースブロックと重なっていないと判断した場合、ステップS23に進む。
【0155】
データを書き込むリード/ライトブロックがパースブロックと重なっていると判断した場合、シーケンサ91は、ステップS25において、エラー処理を行った後、処理を終了する。
【0156】
また、ステップS21においてデータを書き込む物理ブロックがリード/ライトブロックではないと判断した場合、ステップS26に進み、シーケンサ91は、データを書き込む物理ブロックがパースブロックであるか否かを判断し、パースブロックであると判断した場合、ステップS27に進む。
【0157】
データを書き込む物理ブロックがパースブロックではないと判断した場合、シーケンサ91は、ステップS28において、エラー処理を行った後、処理を終了する。
【0158】
ステップS27において、シーケンサ91は、ランダムアクセス領域において、パースブロック(論理ブロック番号が00Hの物理ブロック)を探し、パースブロックを発見した場合、ステップS29に進む。
【0159】
ステップS27でパースブロックが発見されなかった場合、パースブロックに対する書込を行うことができないので、シーケンサ91は、ステップS30において、エラー処理を行った後、処理を終了する。
【0160】
次に、ステップS29において、シーケンサ91は、そのパースブロックに対する命令(コマンド)が加算命令であるか否かを判断し、加算命令であると判断した場合、ステップS31に進み、プロバイダ領域定義ブロックのパースブロックパーミッションを参照して、加算命令が許可されているか(b2=1)否かを判断する。
【0161】
そして、ステップS31で、シーケンサ91が、パースブロックに対する加算命令が許可されていると判断した場合、ステップS23に進む。
【0162】
一方、ステップS31で、パースブロックに対する加算命令が許可されていないと判断した場合(b2=0の場合)、シーケンサ91は、加算命令を実行せずに、ステップS32において、エラー処理を行った後、処理を終了する。
【0163】
また、ステップS29において、パースブロックに対する命令が加算命令ではないと判断した場合、ステップS33に進み、シーケンサ91は、そのパースブロックに対する命令が減算命令であるか否かを判断し、減算命令であると判断した場合、ステップS34に進む。
【0164】
そして、ステップS34において、シーケンサ91は、プロバイダ領域定義ブロックのパースブロックパーミッションを参照して、減算命令が許可されている(b1=1)か否かを判断し、パースブロックに対する減算命令が許可されていると判断した場合、ステップS23に進む。
【0165】
一方、ステップS34で、パースブロックに対する減算命令が許可されていないと判断した場合(b1=0の場合)、シーケンサ91は、減算命令を実行せずに、ステップS35において、エラー処理を行った後、処理を終了する。
【0166】
また、ステップS33において、パースブロックに対する命令が減算命令ではないと判断した場合、シーケンサ91は、ステップS36において、エラー処理を行った後、処理を終了する。
【0167】
次に、図18のステップS23において、シーケンサ91は、ランダムアクセス領域の物理ブロックを検索して、書込を行うデータの論理ブロック番号と同一の論理ブロック番号を有する物理ブロックを探す。
【0168】
そして、ステップS37において、シーケンサ91は、ステップS23で発見した物理ブロックの数が2個であるか否かを判断する。すなわち、このシステムにおいては、各論理ブロックについて、少なくとも、前回のデータと、前々回のデータを記憶するようにする。そして、さらに新たなデータを記憶するときは、前々回のデータの上に新たなデータを記憶する(他の論理ブロック番号の前々回のデータの上に記憶される場合もある)。同一の論理ブロック番号の物理ブロックが2個存在する場合、ステップS38に進み、その2つの物理ブロックにおけるインクリメンタルカウンタの値(00,01,10,11のいずれか)を読み出し、比較する。
【0169】
そして、インクリメンタルカウンタの値が大きい物理ブロックを、新しいデータが記憶されている物理ブロック(新しい物理ブロック)とし、インクリメンタルカウンタの値が小さい物理ブロックを、古いデータが記憶されている物理ブロック(古い物理ブロック)とする。
【0170】
ただし、2つのインクリメンタルカウンタの値が00と11である場合は、インクリメンタルカウンタの値が00である物理ブロックを、新しい物理ブロックとし、インクリメンタルカウンタの値が11である物理ブロックを、古い物理ブロックとする。
【0171】
ステップS39において、シーケンサ91は、2つの物理ブロックのうち、新しい物理ブロックの番号(物理ブロック番号)を、変数Yとして、RAM67に記憶し、古い物理ブロックの番号を、変数W(ライトブロックとして利用される物理ブロックの番号)として、RAM67に記憶させる。
【0172】
このように、シーケンサ91が、変数Yと変数Wを記憶させた後、ステップS49に進む。
【0173】
一方、ステップS37において、ステップS23で発見した物理ブロックの数が2個ではないと判断した場合、ステップS40に進み、シーケンサ91は、ステップS23で発見した物理ブロックの数が1個であるか否かを判断する。そして、1個であると判断した場合、ステップS41に進む。
【0174】
ステップS40において、シーケンサ91が、ステップS23で発見した物理ブロックの数が1個ではないと判断した場合、ステップS42において、エラー処理を行った後、処理を終了する。
【0175】
同一の論理ブロックが1個しか存在しないということは、何等かの理由により、前々回のデータが存在しないことになる。そこで、この場合は、他の論理ブロック番号の物理ブロックで、前回と前々回のデータを有する物理ブロック(すなわち、同一の論理ブロック番号を有する物理ブロックの数が2個である物理ブロック)を検索し、そのうちの前々回の物理ブロックをライトブロックとして利用する。このため、ステップS41において、シーケンサ91は、発見した物理ブロック(1個)の番号を、変数Yとして、RAM67に記憶させた後、ステップS43に進む。
【0176】
ステップS43において、シーケンサ91は、ランダムアクセス領域の物理ブロックを検索して、所定の(任意の)同一の論理ブロック番号(いま書込対象としている論理ブロック番号とは無関係の論理ブロック番号)を有する2個の物理ブロックを探す。
【0177】
なお、物理ブロックを検索するときは、論理ブロック番号00Hから順次検索していくので、頻繁に書込処理を行うデータの論理ブロック番号を、より小さい番号すると、検索時間を短くすることができる。
【0178】
そして、ステップS44において、シーケンサ91は、論理ブロック番号が同一である2個の物理ブロックがステップS43で発見されたか否かを判断し、発見されたと判断した場合、ステップS45に進み、発見された2個の物理ブロックのインクリメンタルカウンタを参照し、2個の物理ブロックのうち、古い方の物理ブロックの番号を、変数W(ライトブロックの番号)として、RAM67に記憶させた後、ステップS49(図19)に進む。
【0179】
一方、ステップS44において、ステップS43で2個の物理ブロックが発見されなかったと判断した場合、ステップS46に進み、シーケンサ91は、ランダムアクセス領域の各物理ブロックのパリティを順次計算して、各物理ブロックのパリティ部に記憶されている値と比較し、パリティエラーを起こしている物理ブロックを探す。
【0180】
そして、パリティエラーを起こしている物理ブロックがあるか否かを判断し、パリティエラーを起こしている物理ブロックがあると判断した場合、ステップS47に進み、シーケンサ91は、その物理ブロックの番号を、変数W(ライトブロックの番号)として、RAM67に記憶させた後、ステップS49に進む。
【0181】
ステップS46において、パリティエラーを起こしている物理ブロックがないと判断した場合、シーケンサ91は、ステップS48において、エラー処理を行った後、処理を終了する。
【0182】
次に、図19のステップS49において、シーケンサ91は、データを書き込む物理ブロックがパースブロック(論理ブロック番号が00Hである物理ブロック)であるか否かを判断し、パースブロックであると判断した場合、ステップS50に進み、パースブロックに対して行われる命令のエグゼキューションIDが、ステップS39またはステップS41で変数Yとして記憶された番号の物理ブロックのエグゼキューションID(図12)と同一であるか否かを判断し、同一であると判断した場合、この命令は既に処理されていると判断し、処理を終了する。
【0183】
このようにエグゼキューションIDを利用することにより、R/W1が同じコマンドをリトライした場合において、そのコマンドが既に処理されているときは、ICカード2は、そのコマンドの処理を行わないので、同じコマンドが2度処理されることはない。
【0184】
ステップS50において、パースブロックに対して行われる命令のエグゼキューションIDが、変数Yとして記憶された番号の物理ブロックのエグゼキューションIDと同一ではないと判断した場合、シーケンサ91は、ステップS51において、パースブロックに対して行われる命令が加算命令であるか否かを判断し、加算命令である場合、ステップS52に進む。
【0185】
ステップS52において、シーケンサ91は、変数Yの番号の物理ブロックのパースデータを読み出し、そのパースデータと、パースブロックに対して行われる命令に含まれているデータの和を計算し、その和を新規ブロックデータにおけるパースデータ(新規パースデータ)とする。このように処理を行った後、ステップS54に進む。なお、このとき、変数Yの番号の物理ブロックのエグゼキューションIDを新規ブロックデータのエグゼキューションIDとする。これにより2重の処理を防止する。
【0186】
一方、ステップS51において、パースブロックに対して行われる命令が加算命令ではない(即ち、減算命令である)と判断した場合、ステップS53に進み、シーケンサ91は、変数Yの番号の物理ブロックのパースデータを読み出し、そのパースデータと、パースブロックに対して行われる命令に含まれているデータの差を計算し、その差を新規ブロックデータにおけるパースデータ(新規パースデータ)とする。このように処理を行った後、ステップS54に進む。なお、このとき、変数Yの番号の物理ブロックのエグゼキューションIDを新規ブロックデータのエグゼキューションIDとする。これにより2重の処理を防止する。
【0187】
また、ステップS49において、シーケンサ91は、データを書き込む物理ブロックがパースブロックではない(即ち、リード/ライトブロックである)と判断した場合、ステップS54に進む。
【0188】
そして、ステップS54において、シーケンサ91は、変数Yの番号の物理ブロックのインクリメンタルカウンタの値に1を加算した数を、新規ブロックデータのインクリメンタルカウンタの値とする。ただし、変数Yの番号の物理ブロックのインクリメンタルカウンタの値が11である場合、シーケンサ91は、新規ブロックデータのインクリメンタルカウンタの値を00とする。
【0189】
次に、ステップS55において、シーケンサ91は、パリティ演算部93に、新たに書き込むデータ、インクリメンタルカウンタおよび論理ブロック番号のパリティを計算させ、そのパリティの値を、新規ブロックデータのパリティ部の値とする。
【0190】
そして、ステップS56において、シーケンサ91は、ステップS39、ステップS45、または、ステップS47のいずれかで記憶された変数Wの番号の物理ブロック(ライトバッファ)に、新規ブロックデータ(新たに記憶するデータ(パースブロックの場合、パースデータとエグゼキューションID)、その論理ブロック番号、インクリメンタルカウンタ、および、これらのパリティ)を記憶させる。
【0191】
以上のように、論理ブロック番号と、インクリメンタルカウンタを利用して、データを記憶する物理ブロック(ライトバッファ)を選択することにより、データの書込の最中に、障害が発生した場合においても、そのデータの論理ブロック番号と同一の論理ブロック番号のデータがメモリに残されているので、論理的には、メモリコラプションが発生することはない。
【0192】
上記実施の形態では、ランダムアクセス領域の同一の論理ブロックのうち、新しいデータが記録されているブロックを判別するためにインクリメンタルカウンタを用いたが、例えば、記録時の絶対時刻(日付と時刻、あるいはカウンタの値)をランダムアクセス領域に、例えば4バイトの領域を確保して、そこに記録させることによって、新しいデータが記録されているブロックを判別することも可能である。
【0193】
次に、図20および図21のフローチャートを参照して、EEPROM66のシーケンシャルアクセス領域にデータを書き込むときの動作について説明する。
【0194】
ステップS61において、シーケンサ91は、シーケンシャルアクセス領域の先頭の物理ブロックの番号を、変数Zとして、RAM67に記憶させる。
【0195】
次に、ステップS62において、シーケンサ91は、物理ブロック番号がZである物理ブロックのラップラウンド番号を読み出し、変数Aとして、RAM67に記憶させるとともに、物理ブロック番号がZ+1である物理ブロックのラップラウンド番号を読み出し、変数Bとして、RAM67に記憶させる。
【0196】
そして、ステップS63において、シーケンサ91は、変数Aの値と変数Bの値の差(A−B)が1であるか否かを判断し、1ではない場合、物理ブロック番号Zの物理ブロックが、最後尾のラップラウンド番号を有するデータを記憶する物理ブロックであると判断し、ステップS66に進む。
【0197】
変数Aの値と変数Bの値の差(A−B)が1であると判断した場合、シーケンサ91は、ステップS64において、物理ブロック番号Zが、シーケンシャルアクセス領域の終わりの物理ブロックの番号と同一であるか否かを判断し、同一であると判断した場合、シーケンシャルアクセス領域の終わりの物理ブロックが、最後尾のラップラウンド番号を有するデータを記憶する物理ブロックであると判断し、ステップS66に進む。
【0198】
ステップS64において、物理ブロック番号Zが、シーケンシャルアクセス領域の終わりの物理ブロックの番号と同一ではないと判断した場合、シーケンサ91は、ステップS65において、RAM67に記憶させた変数Zの値を1だけ増加させた後、ステップS62に戻る。そして、ステップS62乃至ステップS65の処理を、変数Zの値(検索する物理ブロック番号の値)を変化させながら順次繰り返す。
【0199】
このようにして、シーケンシャルに記憶されているデータのラップラウンド番号の最後尾を発見する。そして、ステップS66において、シーケンサ91は、変数Zの番号(=ラップラウンド番号の最後尾の物理ブロックの番号)のブロックのパリティチェックを行う。
【0200】
そして、ステップS67において、シーケンサ91は、その物理ブロックにパリティエラーが生じているか否かを判断し、パリティエラーが生じていると判断した場合、ステップS68に進む。
【0201】
ステップS68において、シーケンサ91は、変数Zの値が、シーケンシャルアクセス領域の先頭の物理ブロックの番号と同一であるか否かを判断し、同一であると判断した場合、データ(パリティエラーを起こしているものは含まない)の最後尾が、シーケンシャルアクセス領域の終わりの物理ブロックであると判断し、ステップS70において、シーケンシャルアクセス領域の終わりの物理ブロックの番号を、新たな変数Yとして、RAM67に記憶させた後、ステップS72(図21)に進む。
【0202】
変数Zの値が、シーケンシャルアクセス領域の先頭の物理ブロックの番号と同一ではないと判断した場合、ステップS71において、シーケンサ91は、データの最後尾の物理ブロックの番号を、変数Zの値から1を減算して算出し、算出した値(Z−1)を、変数Yとして、RAM67に記憶させた後、ステップS72に進む。
【0203】
一方、ステップS67でパリティエラーが生じていないと判断した場合、ステップS69において、シーケンサ91は、データの最後尾の物理ブロックの番号(この場合、変数Zの値)を、変数Yとして、RAM67に記憶させた後、ステップS72に進む。
【0204】
次に、ステップS72において、シーケンサ91は、データの最後尾の物理ブロックの番号(変数Yの値)と、シーケンシャルアクセス領域の終わりの物理ブロックの番号が同一であるか否かを判断し、同一であると判断した場合、ステップS73に進む。
【0205】
そして、ステップS73において、シーケンサ91は、シーケンシャルアクセス領域の先頭の物理ブロックの番号を、新たなデータを書き込む物理ブロックの番号とし、その番号を変数Wとして、RAM67に記憶させた後、ステップS75に進む。
【0206】
ステップS72においてデータの最後尾の物理ブロックの番号(変数Yの値)と、シーケンシャルアクセス領域の終わりの物理ブロックの番号が同一ではないと判断した場合、ステップS74において、シーケンサ91は、変数Yの値に1を加算した数を、新たなデータを書き込む物理ブロックの番号とし、その番号を変数Wとして、RAM67に記憶させた後、ステップS75に進む。
【0207】
次にステップS75において、シーケンサ91は、新たに記憶するデータと、変数Yの番号の物理ブロック(最後尾のデータ)が同一であるか否かを判断し、同一である場合、新たに記憶するデータが既に記憶されているので、処理を終了する。
【0208】
一方、新たに記憶するデータと、変数Yの番号の物理ブロック(最後尾のデータ)が同一ではないと判断された場合、ステップS76において、シーケンサ91は、変数Yの番号の物理ブロックのラップラウンド番号を読み出し、その値に1を加算した数を、新たに記憶されるデータ(新規ブロックデータ)のラップラウンド番号とする。
【0209】
次にステップS77において、シーケンサ91は、パリティ演算部93に、記憶するデータおよびラップラウンド番号(新規ブロックデータ)のパリティを演算させ、ステップS78において、番号Wの物理ブロックに新規ブロックデータを書き込む。
【0210】
このように、シーケンシャルに記憶されているデータにおけるラップラウンド番号を順次検索していき、最後尾のデータの次の物理ブロック(または、シーケンシャルアクセス領域の先頭の物理ブロック)に、新たなデータを記憶するので、新たなデータの書込の最中に、障害が発生した場合においても、書き込んでいたデータのラップラウンド番号より小さいラップラウンド番号のデータが残っているので、論理的には、メモリコラプションは発生しない。
【0211】
以上のように、EEPROM66は、複数のプロバイダに対して、独立に記憶領域を提供することができるとともに、アトリビュート部の情報を利用して、メモリコラプションの発生を抑制するようになされている。
【0212】
なお、複数のプロバイダに対して、同一のユーザブロックを割り当てることもできる。その場合、それらのプロバイダ(オーバラッププロバイダ)が登録されているプロバイダ領域定義ブロックのアロケーションテーブルで、同一のユーザブロックを割り当てるようにする。このとき、各プロバイダ毎に、プロバイダ領域定義ブロックのパーティションテーブルを設定することにより、同一のユーザブロックに対して、プロバイダ毎に異なるアクセス権(リード/ライトまたはリードオンリー)を設定することができる。さらに、所定のプロバイダに対してはパースブロックを使用しないように設定し、他のプロバイダに対してはパースブロックを使用するように設定することにより、所定のプロバイダは、他のプロバイダが使用するパースブロックのユーザデータ部(他のプロバイダに対しては読み出し専用)に対して、データの書込を行うことができる。
【0213】
また、領域定義ブロックの領域D0e,D0f(通常、セキュリティキーのバージョン番号が記憶されている領域)の値を、所定の値(例えば、FFFFH)に設定し、さらに、領域定義ブロックの領域D10乃至D1fに、所定のプロバイダのプロバイダコード(最大8個)を記憶することにより、そのプロバイダ(ローカルコモンプロバイダ)は、この領域定義ブロックのアロケーションテーブルで割り当てられるユーザブロックを、共通領域として使用することができる。
【0214】
また、同一のユーザブロックを割り当てる2つの領域定義ブロックに、ローカルコモンプロバイダを登録し、領域定義ブロック毎に、異なるアクセス権を設定することにより、そのユーザブロックに対するアクセス権を、ローカルコモンプロバイダ毎に設定することができる。
【0215】
このように、オーバラッププロバイダおよびローカルコモンプロバイダを設定することにより、複数のプロバイダ(即ち、R/W)に対応して個別の処理を行うことができる。
【0216】
なお、本発明は、電波(非接触)で信号を授受する場合の他、物理的に結合された状態(接触)で信号を授受する場合にも適用することができる。停電の場合、あるいは、電池で動作する装置において、電池が取り外されてしまったような場合に、データを確保しておくことができる。
【0217】
また、上記各処理を行うプログラムは、磁気ディスク、CD−ROMなどの記録媒体よりなる伝送媒体に記録してユーザに提供したり、ネットワークなどの伝送媒体を介してユーザに伝送し、ハードディスク、固体メモリなどの記録媒体よりなる伝送媒体に記録し、利用させるようにすることができる。
【0218】
【発明の効果】
以上のごとく、請求項1に記載の情報処理装置によれば、所定のシステムを提供するプロバイダの装置からのコマンドが受信され、コマンドが処理され、処理の結果が送信され、プロバイダの装置が利用するデータを記憶するユーザブロック領域およびユーザブロック領域を管理する領域定義ブロック領域が形成される。また、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、領域定義ブロック領域は、利用するユーザブロックを規定するデータ、および当該ユーザブロックへのアクセス権を規定するデータを有する複数の領域定義ブロックからなるとともに、プロバイダの装置ごとに領域定義ブロックが割り当てられ、同一のユーザブロックが、アクセス権の異なる複数のプロバイダの装置のそれぞれに割り当てられた領域定義ブロックのそれぞれにおいて規定される場合、プロバイダの装置ごとに、それぞれのプロバイダの装置に割り当てられた領域定義ブロックにおいて規定される互いに異なるアクセス権が参照されて、同一のユーザブロックへのアクセスが行われるようにしたので、所定の利用者に対して、所定の記憶領域における複数のアクセス権を与えることができる。複数の利用者に、同一の記憶領域を割り当てることができる。複数の利用者に対して、所定の記憶領域における異なるアクセス権を与えることができる。
【0219】
請求項4に記載の情報処理方法および請求項5に記載の記録媒体によれば、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、領域定義ブロック領域は、利用するユーザブロックを規定するデータ、および当該ユーザブロックへのアクセス権を規定するデータを有する複数の領域定義ブロックからなるとともに、プロバイダの装置ごとに領域定義ブロックが割り当てられ、同一のユーザブロックが、アクセス権の異なる複数のプロバイダの装置のそれぞれに割り当てられた領域定義ブロックのそれぞれにおいて規定される場合、プロバイダの装置ごとに、それぞれのプロバイダの装置に割り当てられた領域定義ブロックにおいて規定される互いに異なるアクセス権が参照されて、同一のユーザブロックへのアクセスが行われ、プロバイダの装置からのコマンドが受信され、領域定義ブロック領域を利用して、コマンドが処理され、処理の結果が送信されるようにしたので、所定の利用者に対して、所定の記憶領域における複数のアクセス権を与えることができる。複数の利用者に、同一の記憶領域を割り当てることができる。複数の利用者に対して、所定の記憶領域における異なるアクセス権を与えることができる。
【0220】
請求項6に記載のリーダ/ライタによれば、情報処理装置に送信する送信データおよび情報処理装置から受信した受信データの処理が行われ、送信データが変調され、受信データが復調される。ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、送信データは、記憶手段の領域定義ブロック領域を構成する領域定義ブロックに記憶されている、ユーザブロックを規定するデータおよびユーザブロックへのアクセス権を規定するデータに基づいて制御されるユーザブロックへのアクセスのためのコマンドであり、コマンドは、複数のリーダ/ライタのそれぞれに対して割り当てられた複数の領域定義ブロックのそれぞれのうち、自分自身に対して割り当てられた領域定義ブロックにおいて規定されるアクセス権が参照されて処理され、同一のユーザブロックは、コマンドの処理により、アクセス権の異なる複数のリーダ/ライタによって互いに異なるアクセス権でアクセスされるようにしたので、所定の利用者に対して、所定の記憶領域における複数のアクセス権を与えることができる。複数の利用者に、同一の記憶領域を割り当てることができる。複数の利用者に対して、所定の記憶領域における異なるアクセス権を与えることができる。
【0221】
請求項7に記載のアクセス方法および請求項9の記録媒体によれば、情報処理装置に呼びかけが行われ、呼びかけに応答した情報処理装置に対し、コマンドが送信され、情報処理装置により処理されたコマンドに対する送信結果が受信され、送信結果が処理される。また、ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、コマンドは、記憶手段の領域定義ブロック領域を構成する領域定義ブロックに記憶されている、ユーザブロックを規定するデータおよびユーザブロックへのアクセス権を規定するデータに基づいて制御されるユーザブロックへのアクセスのためのコマンドであって、複数のプロバイダの装置のそれぞれに対して割り当てられた複数の領域定義ブロックのそれぞれのうち、ユーザブロックにアクセスする装置に対して割り当てられた領域定義ブロックにおいて規定されるアクセス権が参照されて処理されるコマンドとされ、同一のユーザブロックは、コマンドの処理により、アクセス権の異なる複数のプロバイダの装置によって互いに異なるアクセス権でアクセスされるようにしたので、所定の利用者に対して、所定の記憶領域における複数のアクセス権を与えることができる。複数の利用者に、同一の記憶領域を割り当てることができる。複数の利用者に対して、所定の記憶領域における異なるアクセス権を与えることができる。
【図面の簡単な説明】
【図1】本発明の情報処理装置の一実施の形態であるICカード2を利用した非接触カードシステムの一例を示すブロック図である。
【図2】図1のリーダ/ライタ1の構成例を示すブロック図である。
【図3】本発明の情報処理装置の一実施の形態であるICカード2の構成を示すブロック図である。
【図4】図3のEEPROM66のメモリの割り当ての一例を示す図である。
【図5】図4のシステムIDブロックの各領域の割り当ての一例を示す図である。
【図6】図5のアトリビュート部の一例を示す図である。
【図7】図3の領域定義ブロックの各領域の割り当ての一例を示す図である。
【図8】図3のユーザブロックの割り当ての一例を示す図である。
【図9】図7のパースブロックパーミッションの一例を示す図である。
【図10】図3のユーザブロックの各領域の割り当ての一例を示す図である。
【図11】図8のランダムアクセス領域のユーザブロックのアトリビュート部の一例を示す図である。
【図12】パースブロックの各領域の割り当ての一例を示す図である。
【図13】図8のシーケンシャルアクセス領域のユーザブロックのアトリビュート部の一例を示す図である。
【図14】図1の非接触カードシステムの動作の説明するフローチャートである。
【図15】図1の非接触カードシステムの動作の説明するタイミングチャートである。
【図16】BPSK変調の一例を示す図である。
【図17】図8のランダムアクセス領域のユーザブロックに対する書込時における、ICカード2の動作について説明するフローチャートである。
【図18】図8のランダムアクセス領域のユーザブロックに対する書込時における、ICカード2の動作について説明するフローチャートである。
【図19】図8のランダムアクセス領域のユーザブロックに対する書込時における、ICカード2の動作について説明するフローチャートである。
【図20】図8のシーケンシャルアクセス領域のユーザブロックに対する書込時における、ICカード2の動作について説明するフローチャートである。
【図21】図8のシーケンシャルアクセス領域のユーザブロックに対する書込時における、ICカード2の動作について説明するフローチャートである。
【符号の説明】
1 リーダ/ライタ, 2 ICカード, 3 コントローラ, 21 IC, 23 変調回路, 25 復調回路, 27 アンテナ, 51 IC, 52 コンデンサ, 53 アンテナ, 61 RFインタフェース部, 62BPSK復調回路, 63 PLL部, 64 演算部, 65 ROM, 66 EEPROM, 67 RAM, 68 BPSK変調回路, 81 ASK復調部, 82 電圧レギュレータ, 83 発振回路, 84 ASK変調部, 91 シーケンサ, 92 暗号/復号部, 93 パリティ演算部
[0001]
BACKGROUND OF THE INVENTION
  The present invention provides information processingapparatusAnd information processingMethod,Reader / writer, access method, and recording mediumIn particular, information processing that receives a command from a predetermined user, processes the command, and transmits the processing resultapparatusAnd information processingMethod,Reader / writer, access method, and recording mediumAbout.
[0002]
[Prior art]
IC cards (smart cards) used in electronic money systems and security systems have been developed.
[0003]
Such an IC card incorporates a CPU for performing various processes and a memory for storing data necessary for the processes, and transmits and receives data while being in contact with a predetermined reader / writer (R / W). ing.
[0004]
Some IC cards include a batteryless IC card that does not have a battery. Such a battery-less IC card is supplied with power from the R / W.
[0005]
[Problems to be solved by the invention]
However, since such an IC card is assumed to be used in a state where it is in contact with the R / W, there is a problem that it is difficult to obtain power when used in a non-contact manner. Yes.
[0006]
In addition, a method of transmitting and receiving data between the IC card and the R / W in a non-contact manner using electromagnetic waves and supplying power necessary for the IC card with the electromagnetic waves can be considered. In the case where the reception state of electromagnetic waves becomes poor while accessing the memory built in the IC card, sufficient power cannot be obtained, resulting in a defect in data consistency in the memory (memory corruption ( Memory Corruption) may occur).
[0007]
Further, data is stored when information is held for each unit (sector in the case of MS-DOS) in which data is stored, such as FAT (File Allocation Table) of MS-DOS (Microsoft-Disc Operating System). An area proportional to the size of the area is necessary for data management, and there is a problem that the efficiency of use of the memory decreases. Further, if the storage area is managed in a predetermined unit in which data is stored, when storing data having a size smaller than that unit, an unused storage area is generated, and further, the use efficiency of the memory is reduced. Have a problem.
[0008]
Furthermore, since the above-described IC card performs uniform processing on the R / W, there is a problem that it is difficult to perform individual processing corresponding to a plurality of R / Ws. Yes.
[0009]
The present invention has been made in view of such circumstances, and is used by a first area for storing data of a plurality of users and a plurality of users stored in the first area. And using a storage unit including a second area managed in units of physical blocks, assigning a logical block number to data stored in the physical block, and having the data have the logical block number A number corresponding to the order of storage is assigned to data stored in a physical block other than the physical block in which the data is stored, or the physical block having the last number is assigned to the data stored in the physical block. If the physical block with the last number is not the last physical block, the data is stored in the first physical block. By storing the next physical block of the physical block having the number of tail is intended to suppress the occurrence of memory corruption in a memory logically.
[0010]
Further, the present invention maintains the number corresponding to the first physical block and the number corresponding to the last physical block of the area used by each user, so that the size of the area used by the user is not increased. Thus, data can be managed with information in an amount proportional to the number of users (number corresponding to the first physical block and number corresponding to the last physical block).
[0011]
Further, according to the present invention, in the above-described storage unit, a predetermined area in the second area and a plurality of data defining different access rights are stored in the first area corresponding to one user. By storing data defining a predetermined area in the second area in the first area corresponding to a plurality of users, individual processing corresponding to the plurality of users (R / W) Is to be able to do.
[0012]
[Means for Solving the Problems]
  The information processing apparatus according to claim 1 is a receiving unit that receives a command from a provider device that provides a predetermined system, a processing unit that processes the command, a transmitting unit that transmits a result of the processing, Stores data used by the deviceManage user block areas and user block areasStorage means in which an area defining block area is formed;The user block area is composed of a plurality of user blocks allocated in units of a predetermined size,The area definition block area isData defining the user block to be used, and the user blockMultiple area definition blocks with data defining access rights toAnd an area definition block is assigned to each provider device, and the same user block is defined in each of the area definition blocks assigned to each of a plurality of provider devices having different access rights. For each device, access to the same user block is performed by referring to different access rights defined in the area definition block assigned to each provider's device.It is characterized by that.
[0013]
  The information processing method according to claim 4 comprises:An information processing method for an information processing apparatus, comprising: a user block area for storing data used by a provider apparatus that provides a predetermined system; and an area definition block area for managing the user block area. The block area consists of a plurality of user blocks allocated in units of a predetermined size,The area definition block area isData defining the user block to be used, and the user blockMultiple area definition blocks with data defining access rights toAnd an area definition block is assigned to each provider device, and the same user block is defined in each of the area definition blocks assigned to each of a plurality of provider devices having different access rights. For each device, access to the same user block is performed with reference to different access rights defined in the area definition block assigned to each provider's device,It includes a reception step for receiving a command from a provider apparatus, a processing step for processing a command using an area definition block area, and a transmission step for transmitting a processing result.
[0014]
  The recording medium program according to claim 5 is:An information processing apparatus including a storage unit in which a user block area for storing data used by a provider apparatus that provides a predetermined system and an area definition block area for managing the user block area are formed. The area definition block area includes a plurality of area definition blocks having data defining a user block to be used and data defining an access right to the user block. And an area definition block is assigned to each provider device, and the same user block is defined in each of the area definition blocks assigned to each of a plurality of provider devices having different access rights. For each device, Are referenced to each other in different access rights defined in the assigned area definition block in the apparatus of the provider, the information processing apparatus accesses are made to the same user block,A reception control step for controlling reception of a command from the provider device, a processing step for processing the command using the area definition block area, and a transmission control step for controlling transmission of the processing result;ExecuteIt is characterized by that.
[0015]
  The reader / writer according to claim 6 is:Access to a user block area of an information processing apparatus provided with a storage means in which a user block area for storing data used by a provider apparatus providing a predetermined system and an area definition block area for managing the user block area are formed A reader / writerIncluding data processing means for processing transmission data to be transmitted to the information processing apparatus and reception data received from the information processing apparatus, modulation means for modulating the transmission data, and demodulation means for demodulating the reception data,The user block area is composed of a plurality of user blocks allocated in units of a predetermined size.The transmission data is stored in the storage means.Configure the area definition block areaUser block controlled based on the data defining the user block and the data defining the access right to the user block stored in the area definition blockCommands for accessingAndThe command is processed with reference to the access right defined in the area definition block assigned to itself among the plurality of area definition blocks assigned to each of the plurality of reader / writers, The same user block is accessed with different access rights by multiple readers / writers with different access rights by processing commands.It is characterized by that.
[0016]
  Claim 7The access method described inA provider is provided in a user block area of an information processing apparatus including a storage unit in which a user block area for storing data used by a provider apparatus that provides a predetermined system and an area definition block area for managing the user block area are formed. An access method to be accessed byA calling step in which the transmission / reception means calls the information processing apparatus, a transmission step in which the transmission / reception means transmits a command to the information processing apparatus that responds to the call, and a transmission result for the command processed by the information processing apparatus by the transmission / reception means. A receiving step for receiving, and a processing step for processing means to process the transmission result,The user block area consists of a plurality of user blocks allocated in units of a predetermined size.Storage meansConfigure the area definition block areaUser block controlled based on the data defining the user block and the data defining the access right to the user block stored in the area definition blockIs a command for accessing the device, and is specified in an area definition block assigned to itself among a plurality of area definition blocks assigned to each of a plurality of provider devices. This command is processed with reference to the access right, and the same user block is accessed with different access rights by devices of a plurality of providers having different access rights by processing the command.It is characterized by that.
[0017]
  Claim 9The recording medium program described inAn information processing apparatus comprising a storage unit in which a user block area for storing data used by a provider apparatus that provides a predetermined system and an area definition block area for managing the user block area are formed. The area is composed of a plurality of user blocks assigned in units of a predetermined size, and the command transmitted from the provider device is stored in the area definition block constituting the area definition block area of the storage means. A command for accessing a user block controlled on the basis of data defining the data and data defining the access right to the user block, and a plurality of area definitions assigned to each of a plurality of provider devices Of each of the blocks, assigned to the provider's device The command is processed with reference to the access right defined in the area definition block, and the same user block is accessed with different access rights by the devices of a plurality of providers having different access rights by the command processing. In the provider's device that accesses the information processing device,A calling step in which the transmission / reception means calls the information processing apparatus, a transmission control step for controlling transmission of a command to the information processing apparatus that responds to the call by the transmission / reception means, and a command in which the transmission / reception means is processed by the information processing apparatus A reception control step for controlling reception of the transmission result, and a processing step for processing means to process the transmission result;ExecuteIt is characterized by that.
[0033]
  The information processing apparatus according to claim 1 receives a command from a provider apparatus that provides a predetermined system, processes the command, transmits a processing result, and stores data used by the provider apparatus.Manage user block areas and user block areasAn area definition block area is formed.The user block area is composed of a plurality of user blocks allocated in units of a predetermined size.The area definition block area isData defining the user block to be used, and the user blockMultiple area definition blocks with data defining access rights toAnd an area definition block is assigned to each provider device, and the same user block is defined in each of the area definition blocks assigned to each of a plurality of provider devices having different access rights. For each device, access to the same user block is performed by referring to different access rights defined in the area definition block assigned to each provider's device.
[0034]
  In the information processing method according to claim 4 and the recording medium according to claim 5,The user block area is composed of a plurality of user blocks allocated in units of a predetermined size.The area definition block area isData defining the user block to be used, and the user blockMultiple area definition blocks with data defining access rights toAnd an area definition block is assigned to each provider device, and the same user block is defined in each of the area definition blocks assigned to each of a plurality of provider devices having different access rights. For each device, access to the same user block is performed with reference to different access rights defined in the area definition block assigned to each provider's device,A command from the provider apparatus is received, the command is processed using the area definition block area, and the processing result is transmitted.
[0035]
  In the reader / writer according to the sixth aspect, the transmission data transmitted to the information processing apparatus and the reception data received from the information processing apparatus are processed, the transmission data is modulated, and the reception data is demodulated. Also,The user block area is composed of a plurality of user blocks allocated in units of a predetermined size.The transmission data is stored in the storage means.Configure the area definition block areaUser block controlled based on the data defining the user block and the data defining the access right to the user block stored in the area definition blockThe command is used to access multiple reader / writers.Of the plurality of area definition blocks assigned to each of the areas, the area definition block assigned to itselfThe same user block is accessed with different access rights by a plurality of readers / writers having different access rights by processing the command..
[0036]
  Claim 7Access method andClaim 9In the recording medium described in the above, a call is made to the information processing apparatus, a command is transmitted to the information processing apparatus that responds to the call, a transmission result for the command processed by the information processing apparatus is received, and the transmission result is It is processed.The user block area consists of a plurality of user blocks allocated in units of a predetermined size.Storage meansConfigure the area definition block areaUser block controlled based on the data defining the user block and the data defining the access right to the user block stored in the area definition blockOf the area definition block assigned to the device that accesses the user block among the plurality of area definition blocks assigned to each of the devices of the plurality of providers. The access right is referred to as a command to be processed, and the same user block is accessed with a different access right by a plurality of provider devices having different access rights by processing the command.
[0040]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below, but in order to clarify the correspondence between each means of the invention described in the claims and the following embodiments, in parentheses after each means, The features of the present invention will be described with the corresponding embodiment (however, an example) added. However, of course, this description does not mean that each means is limited to the description.
[0041]
  The information processing apparatus according to claim 1 includes a receiving unit (for example, the antenna 53, the RF interface unit 61, and the BPSK demodulation circuit 62 in FIG. 3) that receives a command from a provider apparatus that provides a predetermined system; Processing means for processing commands (for example, sequence 91 in FIG. 3), transmitting means for transmitting processing results (for example, antenna 53, RF interface unit 61, and BPSK modulation circuit 68 in FIG. 3), and provider apparatus Memorize data used byManage user block areas and user block areasStorage means (for example, EEPROM 66 in FIG. 3) in which an area definition block area is formed,The user block area is composed of a plurality of user blocks allocated in units of a predetermined size.The area definition block area isData defining the user block to be used, and the user blockMultiple area definition blocks with data defining access rights toAnd an area definition block is assigned to each provider device, and the same user block is defined in each of the area definition blocks assigned to each of a plurality of provider devices having different access rights. For each device, access to the same user block is performed by referring to different access rights defined in the area definition block assigned to each provider's device.It is characterized by that.
[0042]
  The reader / writer according to claim 6 is:A given systemUser block area in which data used by the provider's device is storedAnd an area definition block area for managing the user block areaIs a reader / writer that accesses a user block area of an information processing apparatus including a storage unit (for example, EEPROM 66 in FIG. 3) in which transmission data is transmitted to the information processing apparatus and received data received from the information processing apparatus Data processing means (for example, SPU 32 in FIG. 2), modulation means for modulating transmission data (for example, modulation circuit 23 in FIG. 2), and demodulation means for demodulating received data (for example, demodulation in FIG. 2) Circuit 25),The user block area is composed of a plurality of user blocks allocated in units of a predetermined size.The transmission data is stored in the storage means.Configure the area definition block areaUser block controlled based on the data defining the user block and the data defining the access right to the user block stored in the area definition blockFor access toCommand,The command is for multiple readers / writers.Of the plurality of area definition blocks assigned to each of the areas, the area definition block assigned to itselfThe same user block is accessed with different access rights by a plurality of reader / writers having different access rights by processing the command.It is characterized by that.
[0048]
FIG. 1 shows an example of a contactless card system using the R / W 1 and the IC card 2. The R / W 1 and the IC card 2 transmit and receive data without contact using electromagnetic waves.
[0049]
When the R / W 1 transmits a predetermined command to the IC card 2, the IC card 2 receives the command and performs processing corresponding to the command.
[0050]
When the R / W 1 transmits data to the IC card 2, the IC card 2 which is an embodiment of the information processing apparatus of the present invention receives the command, processes the received command, and responds to the processing result. Response data is transmitted to R / W1.
[0051]
The R / W 1 is connected to the controller 3 via a predetermined interface (for example, RS-485A), supplied with a predetermined control signal from the controller 3, and performs processing according to the control signal.
[0052]
FIG. 2 shows the configuration of R / W1.
[0053]
The IC 21 communicates with a DPU (Data Processing Unit) 31 for processing data, an SPU (Signal Processing Unit) 32 for processing data transmitted to the IC card 2 and data received from the IC card 2, and a controller 3. A memory unit 34 comprising an SCC (Serial Communication Controller) 33 to be performed, a ROM unit 41 storing information necessary for data processing in advance, and a RAM unit 42 temporarily storing data being processed. Are connected via a bus.
[0054]
Also connected to this bus is a flash memory 22 for storing predetermined data.
[0055]
The DPU 31 outputs a command to be transmitted to the IC card 2 to the SPU 32 and receives response data received from the IC card 2 from the SPU 32.
[0056]
The SPU 32 performs predetermined processing (for example, BPSK (BiPhase Shift Keying) modulation (described later)) on the command transmitted to the IC card 2, and then outputs the modulated signal to the modulation circuit 23 and transmitted from the IC card 2. The response data received from the demodulation circuit 25 is subjected to predetermined processing.
[0057]
The modulation circuit 23 performs ASK (Amplitude Shift Keying) modulation on the carrier wave having a predetermined frequency (for example, 13.56 MHz) supplied from the oscillator 26 with the data supplied from the SPU 32, and the generated modulated wave is transmitted to the antenna 27. Via the IC card 2 as electromagnetic waves. At this time, the modulation circuit 23 performs ASK modulation with a modulation degree less than 1. That is, even when the data is at a low level, the maximum amplitude of the modulated wave is prevented from becoming zero.
[0058]
The demodulation circuit 24 demodulates the modulated wave (ASK modulated wave) received via the antenna 27 and outputs the demodulated data to the SPU 32.
[0059]
FIG. 3 shows a configuration example of the IC card 2. In this IC card 2, the IC 51 receives the modulated wave transmitted by the R / W 1 via the antenna 53. The capacitor 52 constitutes an LC circuit together with the antenna 53, and is tuned to an electromagnetic wave having a predetermined frequency (carrier frequency).
[0060]
In the IC 51, the RF interface unit 61 detects and demodulates the modulated wave (ASK modulated wave) received via the antenna 53 by the ASK demodulator 81, and demodulates the demodulated data to the BPSK demodulator circuit 62 and the PLL (Phase In addition to being output to the Locked Loop) unit 63, the voltage regulator 82 stabilizes the signal detected by the ASK demodulating unit 81 and supplies it to each circuit as DC power.
[0061]
The RF interface unit 61 oscillates a signal having the same frequency as the data clock frequency by the oscillation circuit 83 and outputs the signal to the PLL unit 63.
[0062]
Then, the ASK modulation unit 84 of the RF interface unit 61 varies the load of the antenna 53 as the power source of the IC card 2 in accordance with the data supplied from the calculation unit 64 (for example, a predetermined value corresponding to the data) The switching element is turned on / off, and a predetermined load is connected in parallel to the antenna 53 only when the switching element is in the on state. When transmitting, ASK modulation is performed for the maximum amplitude of the modulated wave, and the modulated component is transmitted to R / W1 via antenna 53 (the terminal voltage of antenna 27 of R / W1 is varied). )
[0063]
The PLL unit 63 generates a clock signal synchronized with the data from the data supplied from the ASK demodulating unit 81 and outputs the clock signal to the BPSK demodulating circuit 62 and the BPSK modulating circuit 68.
[0064]
When the data demodulated by the ASK demodulator 81 is BPSK modulated, the BPSK demodulator circuit 62 demodulates the data in accordance with the clock signal supplied from the PLL unit 63, and sends the demodulated data to the arithmetic unit 64. It is designed to output.
[0065]
When the data supplied from the BPSK demodulation circuit 62 is encrypted, the arithmetic unit 64 decrypts the data with the encryption / decryption unit 92 and then processes the data as a command with the sequencer 91. Has been made. If the data is not encrypted, the data supplied from the BPSK demodulation circuit 62 is directly supplied to the sequencer 91 without going through the encryption / decryption unit 92.
[0066]
The sequencer 91 is configured to perform processing corresponding to the supplied command. For example, the sequencer 91 processes the data stored in the EEPROM 66 at this time.
[0067]
The parity calculation unit 93 of the calculation unit 64 is configured to calculate a Reed-Solomon code as parity from data stored in the EEPROM 66 or data stored in the EEPROM 66.
[0068]
Further, the arithmetic unit 64 performs predetermined processing by the sequencer 91, and then outputs response data (data to be transmitted to the R / W1) corresponding to the processing to the BPSK modulation circuit 68.
[0069]
The BPSK modulation circuit 68 performs BPSK modulation on the data supplied from the calculation unit 64 (described later), and outputs the modulated data to the ASK modulation unit 84 of the RF interface unit 61.
[0070]
When the sequencer 91 performs processing, the RAM 67 temporarily stores data during the processing.
[0071]
An EEPROM (Electrically Erasable and Programmable ROM) 66 is a non-volatile memory that continues to store data even after the IC card 2 finishes communication with the R / W 1 and power supply is stopped. . The ROM 65 stores a basic program necessary for the sequencer 91 to process a command from the R / W 1.
[0072]
FIG. 4 shows an example of memory allocation of the EEPROM 66.
[0073]
The EEPROM 66 has 256 40-byte physical blocks. Each physical block is composed of a total of 40 bytes including a 32-byte data part (D00 to D1f), a 2-byte attribute part (AT1, AT2), and a 6-byte parity part (P0 to P5).
[0074]
The physical block number ffH (H represents a hexadecimal number) of the EEPROM 66 is assigned to the system ID block. The system ID block stores information related to the security of the IC card 2.
[0075]
Next, in order from the physical block number fdH to 00H, the physical block is a common area definition block (Common Area Definition Block) (first area) or a provider area definition block (Provider Area Definition Block) (first area). ).
[0076]
When the IC card 2 is issued, a person (provider) who provides a system using the IC card 2 is registered in the EEPROM 66 by a predetermined device (issuing machine). The issuing machine uses one physical block per provider and sequentially uses the provider area definition block from the physical block number fdH to 00H to register the provider.
[0077]
The common area definition block and the provider area definition block store information such as the location of the storage area used by the provider.
[0078]
Then, a physical block that is not used as a system ID block, a common area definition block, and a provider area definition block is allocated to a user block (User Block) used by the provider.
[0079]
FIG. 5 shows an example of allocation of each data to the system ID block.
[0080]
In the data portion D00 to D0f, a manufacturing ID (Manufacture ID) (IDm) at the time of manufacturing the EEPROM 66 is stored. The areas D00 to D03, the areas D04 to D07, the areas D08 to D0b, and the areas D0c to D0f are the IC code of the EEPROM 66, the code of the manufacturing machine (Manufacture Equipment Code) that created the EEPROM 66, and the manufacturing date (Manufacture Date) of the EEPROM 66. And a manufacturing serial number of the EEPROM 66 are stored.
[0081]
By using this IDm information, all the IC cards 2 (EEPROM 66) can be identified. The production date is set to 0000H on January 1, 2000, and is the number of days from January 1, 2000. When the manufacturing date is in the 1990s, the manufacturing date is expressed as a negative number of days from January 1, 2000 using 2's complement.
[0082]
In the data portion D10 to D1f, an issue ID (Issue ID) (IDi) when the ID card 2 is issued is stored. The areas D10 to D13, the areas D14 to D17, the areas D18 to D1b, and the areas D1c to 1f are a category / group number indicating the category and group to which the IC card 2 belongs, the code of the issuing machine that issued the IC card 2, The date when the IC card 2 is issued and the expiration date of the IC card 2 are stored.
[0083]
FIG. 6 shows the attribute part of the system ID block. The attribute part stores the number of registered providers. The issuing machine uses one physical block when registering one provider, and updates the value of this attribute part at that time.
[0084]
The value of the attribute part is set to zero at the time of manufacture. Thereafter, when the issuing machine registers the provider in the IC card 2, the value of the attribute part is updated with the number of registered providers.
[0085]
The parity part of the system ID block stores a Reed-Solomon code (RS code) calculated by the parity calculation unit 93 from the value of each bit of the data part and attribute part. Therefore, the value of the parity part is recalculated every time the data part or attribute part is updated.
[0086]
FIG. 7 shows an example of the common area definition block and the provider area definition block. These blocks are written in advance by the issuing machine when the IC card 2 is issued.
[0087]
The common area definition block is arranged in the physical block number feH of the EEPROM 66, and stores the setting of a storage area (Common Area) (second area) used by all providers.
[0088]
The provider area definition block is arranged from the physical block number fdH of the EEPROM 66 toward 00H, and stores provider information in one physical block per provider.
[0089]
As shown in FIG. 7, the areas D00 and D01 of the data parts D00 to D1f of the area definition block (common area definition block and provider area definition block) store a provider code (Provider Code) indicating the type of provider. . In the case of the common area definition block, the values of the areas D00 and D01 are 0000H, and in the case of the provider area definition block, the values of the areas D00 and D01 are any one of 0001H to FFFFH.
[0090]
The areas D02 to D05 of the data part of the area definition block are the numbers BN of the first physical block in the storage area (Provider Area) (second area) used by this provider.0(Areas D02 and D03) and the number BN of the physical block next to the number of the physical block at the end1(Regions D04, D05) (BN1> BN0) Is stored. As shown in FIG. 8, the provider area is a predetermined position (physical block number BN) of the EEPROM 66 excluding the system block (system ID block, area definition block).0To (BN1-1)).
[0091]
Thus, BN0And BN1Since the provider area is specified in, data can be managed with the amount of information proportional to the number of providers, not the size of the area used by the provider (user), and the memory usage efficiency can be improved. Can be high.
[0092]
The areas D06 to D09 of the data part of the area definition block are the number B of random access areas (described later) among the storage areas used by the providerRA(Area D06, D07) and the number B of read / write blocks in the random access areaRWA partition table (Partition Table) composed of (regions D08, D09) is stored. At this time, the random access area block number BRA Is the formula
BRA= 0
Or an expression
2 × n ≦ BRA≦ BN1-BN0
(N is the number of write buffers (described later))
The number of read / write blocks is set to a value that satisfiesRWIs BRAIf = 0, BRW= 0 and BRAIf ≠ 0, the expression
n ≦ BRW≦ BRA-N
Is set to a value that satisfies.
[0093]
The areas D0a and D0b in the data portion of the area definition block store the number n of write buffers in the random access area. The n write buffers are used to simultaneously store n data in the logical block numbers 00H to (00 + n (hexadecimal notation)) H of the random access area. In the random access area, when data is stored in physical blocks having other logical block numbers, only one write buffer is used.
[0094]
As described above, according to the area definition block, as shown in FIG. 8, the physical block number BN0To (BN1-1) area (provider area or common area) is assigned to the provider specified by the provider code, and B in the area (provider area or common area) is assigned.RAThe physical blocks are allocated to the random access area, and the remaining physical blocks are allocated to the sequential access area (described later).
[0095]
Furthermore, according to the area definition block, as shown in FIG.RWLogically assigned to read / write blocks, read-only blocks, and n write buffers. A physical block other than the read / write block and the write buffer is assigned to the read-only block.
[0096]
The areas D0c and D0d of the data portion of the area definition block store a parse block permission having access right information for a parse block (described later) in a storage area (random access area) used by this provider. .
[0097]
FIG. 9 shows an example of the parse block permission.
[0098]
Parse block permission (16 bits, b0Thru bf) Indicates permission or disapproval of the read, add instruction, and subtract instruction for the parse block.
[0099]
The parse block permission of the common area definition block indicates whether or not the parse block is used in the storage area (common area) set in the common area definition block.bI remember it. That is, bbWhen = 0, the parse block is not used. bbWhen = 1, a parse block is used. The other areas (bits) in the parse block permission of the common area definition block are not particularly used. BbWhen = 1, the read / write block whose logical block number is 00H is used as the parse block.
[0100]
Next, in the parse block permission of the provider area definition block, it is determined whether or not the parse block is used in the storage area set in the provider area definition block.ThreeI remember it. That is, bThreeWhen = 0, the parse block is not used. bThreeWhen = 1, a parse block is used. BThreeWhen = 1, the read / write block whose logical block number is 00H is used as the parse block.
[0101]
Then, whether or not an addition instruction can be performed for the parse block is indicated in a region b.2And whether the subtraction instruction for the parse block is acceptable or not is stored in area b.1And whether or not the parse block can be read is stored in area b.0(BiIf = 1 (i = 0, 1, 2), the instruction is allowed and biIf = 0, the instruction is not allowed). Whether to use a parse block in the storage area set in the common area definition block is also indicated in area b.bI remember it. BbIncludes b in the parse block permission of the common area definition blockbThe same value as is stored.
[0102]
Further, whether or not an addition instruction can be performed for the parse block is indicated in a region b.aAnd whether the subtraction instruction for the parse block is acceptable or not is stored in area b.9And whether or not the parse block can be read is stored in area b.8(BiIf = 1 (i = 8, 9, a), the instruction is allowed and biIf = 0, the instruction is not allowed).
[0103]
Areas D0e and D0f in the data part of the area definition block in FIG. 7 store the version numbers of security keys (common key and provider key) used for provider (R / W1) authentication and encryption and decryption. The areas D10 to 1f store the security key.
[0104]
When the R / W 1 performs polling, the IC card 2 returns the version numbers of these two keys (common key and provider key). Therefore, in the authentication between the R / W 1 and the IC card 2, a plurality of versions of security keys can be used properly.
[0105]
The attribute portions AT1 and AT2 of the area definition block are provided as spares, and no information is stored in particular. The parity part of the area definition block stores parity (RS code) calculated from the values of all bits in the data part and attribute part.
[0106]
As described above, the area definition block set by the issuing machine stores a provider code, an allocation table, a partition table, a parse block permission, a security key version, and a security key.
[0107]
FIG. 10 shows an example of a user block. As described above with reference to FIG. 4, in the memory space of the EEPROM 66, physical blocks other than the system ID block, common area definition block, and provider area definition block are used by the provider as user blocks.
[0108]
For example, as shown in FIG. 4, when the memory space is composed of 256 blocks, if eight providers are registered, a system ID block, a common area definition block, and eight provider area definition blocks A total of 246 (= 256-10) blocks other than 10 (= 1 + 1 + 8) system blocks are used as user blocks. If 40 providers are registered, the total number of system blocks is 42 (= 1 + 1 + 40), and 214 (= 256-42) user blocks are secured.
[0109]
The user block is allocated to each provider according to the allocation table (FIG. 7) of the area definition block. Since the provider uses the user block assigned in advance with reference to the allocation table, the provider does not access any area other than the area (provider area or common area) assigned in the allocation table.
[0110]
User blocks in the area (provider area or common area) allocated in the allocation table are allocated to the random access area and the sequential access area in accordance with the partition table (FIG. 7).
[0111]
Furthermore, the user block in the random access area is used as one of a read / write block, a read-only block, and a write buffer, and the number of these blocks depends on the number of partition tables and write buffers as described above. Is set.
[0112]
The data portions D00 to D1f of the user block assigned in this way are used according to processing by the provider to which the user block is assigned.
[0113]
As shown in FIG. 11, the attribute part of the user block in the random access area includes an incremental counter (Incremental Counter) (bit bf, Be) And logical block number (bit b)dThru b0) Is remembered.
[0114]
The logical block number and the incremental counter are used when accessing the user block in the random access area.
[0115]
When reading the data stored in the random access area, the data (physical block) to be read is searched by the logical block number, and the latest data is read by referring to the incremental counter of the data having the logical block number.
[0116]
On the other hand, when storing data in the random access area, refer to the logical block number and incremental counter of the data already stored in the random access area, and after making unnecessary physical blocks (described later) a write buffer, Write data to the write buffer.
[0117]
When the parse block permission of the area definition block is set to use a parse block, the read / write block whose logical block number is 00H is used as a parse block.
[0118]
The parse block is used when frequently adding and subtracting data, when you do not want to read the stored value (because the possibility of leaking information), and when setting the access right to the data in detail Is done.
[0119]
FIG. 12 shows an example of a parse block. The areas D00 to D07 of the data parts D00 to D1f of the parse block are used as parse data parts. The areas D08 to D0f of the data portions D00 to D1f of the parse block store execution IDs. It should be noted that areas D10 to D1f of the data portion of the parse block are used as a user data portion, but are set to be read only.
[0120]
The parse data part stores predetermined data. The execution ID is referred to when an add instruction or a subtract instruction for the parse block is executed, and is compared with the execution ID included in the add instruction or the subtract instruction.
[0121]
On the other hand, the attribute part of the user block in the sequential access area has a wrap round number (bit b) as shown in FIG.fThru b0) Is remembered. In the sequential access area, data is stored in order from the first physical block of the area (sequentially). When data is stored up to the last physical block of the area, the data is stored again in order from the first physical block of the area. The data is stored in (is overwritten). The wrap round number stores the order.
[0122]
Therefore, the wrap round number is used when accessing the user block in the sequential access area, and is sequentially referred to when data is stored in the sequential access area. Then, the data is stored in the physical block next to the physical block having the last wrap round number. At this time, the wrap round number of the physical block in which the data is stored is set to a number obtained by adding 1 to the last wrap round number.
[0123]
For example, when a failure occurs during writing at the time of the previous writing and a parity error (physical memory corruption) occurs in the physical block having the last wrap round number, new data Is stored in the physical block. When the physical block having the last wrap round number is the physical block at the end of the sequential access area, new data is stored in the first physical block in the sequential access area.
[0124]
As described above, the EEPROM 66 is appropriately used by each provider.
[0125]
Next, operations of the IC card 2 and the R / W 1 will be described with reference to the flowchart of FIG. 14 and the timing chart of FIG.
[0126]
First, in step S1, the R / W 1 corresponding to the provider registered in the IC card 2 emits a predetermined electromagnetic wave from the antenna 27, monitors the load state of the antenna 27, and the IC card 2 approaches. And wait until a change in load condition is detected. In step S1, R / W1 emits an ASK-modulated electromagnetic wave with a predetermined short pattern of data until a response from IC card 2 is obtained within a certain period of time. It may be repeated.
[0127]
When R / W1 detects the approach of the IC card 2 in step S1 (time t in FIG. 15)0In step S2, the SPU 32 of the R / W1 uses the rectangular wave of a predetermined frequency (for example, a frequency twice the data clock frequency) as shown in FIG. BPSK modulation is performed on the data to be transmitted (command corresponding to the processing to be executed by the IC card 2) (for example, the data shown in FIG. 16B), and the generated modulated wave (BPSK modulated signal) (FIG. 16C) ) Is output to the modulation circuit 23.
[0128]
At the time of BPSK modulation, when data having a value of 0 appears as shown in FIG. 16C using differential conversion, the immediately preceding BPSK modulation signal (“1” “0” or “ BPSK modulation signal is the same as 0 and “1”), and when data with a value of 1 appears, the data obtained by inverting the phase of the immediately preceding BPSK modulation signal (“1” is inverted to “0”, “ 0 "is inverted to" 1 ") is the BPSK modulated signal.
[0129]
As described above, even when the BPSK modulation signal is inverted by holding the data by changing the phase of the modulated wave using differential conversion, the polarity of the modulated wave is demodulated when demodulated. There is no need to consider.
[0130]
Then, the modulation circuit 23 performs ASK modulation on the predetermined carrier wave with the modulation degree of less than 1 (for example, 0.1) (= maximum amplitude of the data signal / maximum amplitude of the carrier wave) with the BPSK modulation signal, and the generated modulation A wave (ASK modulated wave) is transmitted to the IC card 2 via the antenna 27 (time t in FIG. 15).0To time t1Between).
[0131]
When transmission is not performed, the modulation circuit 23 generates a modulated wave at a high level of two levels (high level and low level) of the digital signal.
[0132]
Next, in step S3, the IC card 2 converts a part of the electromagnetic wave radiated from the antenna 27 of the R / W1 into an electric signal by the antenna 53 and the capacitor 52, and converts the electric signal (modulated wave) into the RF of the IC 51. The data is output to the interface unit 61. Then, the ASK demodulator 81 of the RF interface unit 61 rectifies and smoothes the modulated wave (that is, detects the envelope), supplies the generated signal to the voltage regulator 82, and generates a DC component of the generated signal. And the data signal is extracted, and the data signal is output to the BPSK demodulation circuit 62 and the PLL unit 63.
[0133]
The voltage regulator 82 stabilizes the signal supplied from the ASK demodulator 81, generates DC power, and supplies it to each circuit.
[0134]
At this time, the terminal voltage V of the antenna 530For example,
V0= VTen(1 + k × Vs (t)) cos (ωt)
[0135]
Where VTenIndicates the amplitude of the carrier component, k indicates the modulation factor, and Vs (t) indicates the signal component.
[0136]
Further, the voltage V after rectification by the ASK demodulator 811Low level value V atLR For example,
VLR= VTen(1 + k × (−1)) − Vf
[0137]
Here, Vf indicates a voltage drop in the diode D of the rectifier circuit. Usually, Vf is about 0.7 volts.
[0138]
The voltage regulator 82 stabilizes the signal rectified and smoothed by the ASK demodulator 81 and supplies the signal as DC power to each circuit including the arithmetic unit 64. Since the modulation degree k of the modulated wave is less than 1, the voltage fluctuation after rectification (difference between high level and low level) is small. Therefore, the voltage regulator 82 can easily generate DC power.
[0139]
For example, a modulation wave having a modulation degree k of 5% is expressed as VTenIs received so that the voltage becomes 3 volts or more, the low level voltage V after rectificationLRIs equal to or greater than 2.15 (= 3 × (1-0.05) −0.7) volts, and the voltage regulator 82 can supply a sufficient voltage to each circuit as a power source, and a voltage after rectification. V1Amplitude of AC component (data component) 2 × k × VTenThe (Peak-to-Peak value) is 0.3 (= 2 × 0.05 × 3) volts or more, and the ASK demodulator 81 can demodulate data with a sufficiently high S / N ratio.
[0140]
In this way, by using an ASK modulated wave having a modulation degree k of less than 1, communication is performed with a low error rate (with a high S / N ratio), and a DC voltage sufficient as a power source is applied to the IC card 2. Supplied.
[0141]
The BPSK demodulation circuit 62 demodulates the data signal (BPSK modulation signal) from the ASK demodulation unit 81 according to the clock signal supplied from the PLL unit 63, and outputs the demodulated data to the calculation unit 64.
[0142]
Next, in step S4, when the data supplied from the BPSK demodulator circuit 62 is encrypted, the arithmetic unit 64 decrypts the data (command) to the sequencer 91 after decrypting it by the encryption / decryption unit 92. And processes corresponding to the command (time t in FIG. 15).1To time t2Between). Note that during this period, that is, until the response from the IC card 2 is received, the R / W 1 stands by while transmitting data having a value of 1. Therefore, during this period, the IC card 2 receives a modulated wave having a constant maximum amplitude.
[0143]
Next, in step S <b> 5, the sequencer 91 of the calculation unit 64 outputs data such as a processing result (data to be transmitted to the R / W 1) to the BPSK modulation circuit 68. The BPSK modulation circuit 68 BPSK-modulates the data, like the R / W1 SPU 32, and then outputs the data to the ASK modulation unit 84 of the RF interface unit 61.
[0144]
Then, the ASK modulation unit 84 varies the load connected to both ends of the antenna 53 according to the data using the switching element, so that the received modulated wave (at the time of transmission of the IC card 2) The maximum amplitude of the modulated wave is constant) according to the data to be transmitted, the terminal voltage of the antenna 27 of the R / W1 is changed accordingly, and the data is transmitted to the R / W1. (Time t in FIG. 152To time tThreeBetween).
[0145]
In step S 6, the R / W 1 modulation circuit 23 continues to transmit data having a value of 1 (high level) even when data is received from the IC card 2. Then, the demodulation circuit 25 receives the data transmitted from the IC card 2 from a minute fluctuation (for example, several tens of microvolts) of the terminal voltage of the antenna 27 that is electromagnetically coupled to the antenna 27 of the IC card 2. To detect.
[0146]
Then, the demodulation circuit 25 amplifies the detected signal (ASK modulated wave) with a high gain amplifier, demodulates it, and outputs the generated digital data to the SPU 32.
[0147]
Then, in step S7, the SPU 32 of R / W1 demodulates the data (BPSK modulation signal) and then outputs it to the DPU 31, and the DPU 31 processes the data (time t in FIG. 15).ThreeTo time tFourBetween).
[0148]
Further, in step S8, the DPU 31 of the R / W1 determines whether or not to end communication according to the processing result, and when it is determined that communication is performed again, the process returns to step S2, and steps S2 to S7 are performed. Then, the next data (command) is communicated (time t in FIG. 15).FourTo time t8). On the other hand, when it is determined that the communication is to be ended, the R / W 1 ends the communication with the IC card 2.
[0149]
As described above, the R / W 1 transmits a predetermined command to the IC card 2 by using the ASK modulation whose modulation degree k is less than 1, and the IC card 2 receives the command and responds to the command. The data corresponding to the result of the processing is returned to the R / W1.
[0150]
Next, as an example of the process performed by the IC card 2 in step S4 described above, an operation when data is written to the EEPROM 66 will be described with reference to the flowcharts of FIGS.
[0151]
First, the operation when data is written in the random access area of the EEPROM 66 will be described with reference to the flowcharts of FIGS.
[0152]
In step S21, the sequencer 91 is a read / write block (not including a parse block) in which a physical block to which data is written (as shown in FIG. 8, BN0In order from BRWIf the block is a read / write block, the process proceeds to step S22.
[0153]
The sequencer 91 uses the parse block by referring to the parse block permission (FIG. 9) of the provider area definition block having the provider code of R / W1 (b)Three= 1) whether or not the parse block is used (b)Three= 0), the process proceeds to step S23 (FIG. 18).
[0154]
On the other hand, if it is determined in step S22 that the parse block is used, the sequencer 91 determines in step S24 whether the logical block number of the data to be stored (written) is 00H, that is, the read / write to write data. It is determined whether or not the write block overlaps with the parse block. If it is determined that the read / write block to which data is written does not overlap with the parse block, the process proceeds to step S23.
[0155]
If it is determined that the read / write block to which data is written overlaps the parse block, the sequencer 91 performs error processing in step S25, and then ends the processing.
[0156]
If it is determined in step S21 that the physical block to which data is written is not a read / write block, the process proceeds to step S26, and the sequencer 91 determines whether or not the physical block to which data is written is a parse block. If it is determined, the process proceeds to step S27.
[0157]
If it is determined that the physical block to which data is written is not a parse block, the sequencer 91 performs error processing in step S28, and then ends the processing.
[0158]
In step S27, the sequencer 91 searches for a parse block (physical block whose logical block number is 00H) in the random access area. If the parse block is found, the sequencer 91 proceeds to step S29.
[0159]
If no parse block is found in step S27, writing to the parse block cannot be performed. Therefore, the sequencer 91 performs error processing in step S30, and then ends the process.
[0160]
Next, in step S29, the sequencer 91 determines whether or not the instruction (command) for the parse block is an addition instruction. If the sequencer 91 determines that the instruction is an addition instruction, the sequencer 91 proceeds to step S31, and the provider area definition block. Whether an add instruction is permitted with reference to the parse block permission (b)2= 1) Determine whether or not.
[0161]
If the sequencer 91 determines in step S31 that the addition instruction for the parse block is permitted, the process proceeds to step S23.
[0162]
On the other hand, if it is determined in step S31 that the addition instruction for the parse block is not permitted (b2In the case of = 0), the sequencer 91 performs the error processing in step S32 without executing the addition instruction, and ends the processing.
[0163]
If it is determined in step S29 that the instruction for the parse block is not an addition instruction, the process proceeds to step S33, where the sequencer 91 determines whether or not the instruction for the parse block is a subtraction instruction, and is a subtraction instruction. If it is determined, the process proceeds to step S34.
[0164]
In step S34, the sequencer 91 refers to the parse block permission of the provider area definition block, and the subtraction instruction is permitted (b).1= 1), and if it is determined that the subtraction instruction for the parse block is permitted, the process proceeds to step S23.
[0165]
On the other hand, if it is determined in step S34 that the subtraction instruction for the parse block is not permitted (b1In the case of = 0), the sequencer 91 executes the error process in step S35 without executing the subtraction instruction, and then ends the process.
[0166]
If it is determined in step S33 that the instruction for the parse block is not a subtraction instruction, the sequencer 91 performs error processing in step S36, and then ends the process.
[0167]
Next, in step S23 of FIG. 18, the sequencer 91 searches for a physical block in the random access area and searches for a physical block having the same logical block number as the logical block number of the data to be written.
[0168]
In step S37, the sequencer 91 determines whether the number of physical blocks found in step S23 is two. That is, in this system, at least the previous data and the previous data are stored for each logical block. When new data is stored, new data is stored on the previous data (may be stored on the previous data of another logical block number). When two physical blocks having the same logical block number exist, the process proceeds to step S38, and the value of the incremental counter (any one of 00, 01, 10, 11) in the two physical blocks is read and compared.
[0169]
A physical block with a large incremental counter value is defined as a physical block in which new data is stored (new physical block), and a physical block with a small incremental counter value is defined as a physical block in which old data is stored (old physical block). Block).
[0170]
However, if the values of the two incremental counters are 00 and 11, the physical block with the incremental counter value of 00 is set as a new physical block, and the physical block with the incremental counter value of 11 is set as an old physical block. To do.
[0171]
In step S39, the sequencer 91 stores the new physical block number (physical block number) of the two physical blocks as the variable Y in the RAM 67, and uses the old physical block number as the variable W (write block). As a physical block number) to be stored in the RAM 67.
[0172]
Thus, the sequencer 91 stores the variable Y and the variable W, and then proceeds to step S49.
[0173]
On the other hand, if it is determined in step S37 that the number of physical blocks found in step S23 is not two, the process proceeds to step S40, and the sequencer 91 determines whether or not the number of physical blocks found in step S23 is one. Determine whether. If it is determined that there is one, the process proceeds to step S41.
[0174]
If the sequencer 91 determines in step S40 that the number of physical blocks found in step S23 is not one, error processing is performed in step S42, and then the process ends.
[0175]
The fact that there is only one identical logical block means that there is no previous data for some reason. Therefore, in this case, the physical block having another logical block number and the physical block having the previous and previous data (that is, the physical block having two physical blocks having the same logical block number) are searched. The physical block of the last time is used as a write block. For this reason, in step S41, the sequencer 91 stores the number of the found physical block (one) in the RAM 67 as the variable Y, and then proceeds to step S43.
[0176]
In step S43, the sequencer 91 searches for a physical block in the random access area and has a predetermined (arbitrary) identical logical block number (a logical block number unrelated to the logical block number that is currently written). Search for two physical blocks.
[0177]
When searching for a physical block, the search is performed sequentially from the logical block number 00H. Therefore, if the logical block number of data that is frequently written is set to a smaller number, the search time can be shortened.
[0178]
In step S44, the sequencer 91 determines whether or not two physical blocks having the same logical block number have been found in step S43. If it is determined that the physical block has been found, the sequencer 91 proceeds to step S45 and is found. The incremental counters of the two physical blocks are referred to, and the older physical block number of the two physical blocks is stored in the RAM 67 as a variable W (write block number), and then step S49 (FIG. Proceed to 19).
[0179]
On the other hand, if it is determined in step S44 that two physical blocks were not found in step S43, the process proceeds to step S46, where the sequencer 91 sequentially calculates the parity of each physical block in the random access area, The physical block in which a parity error has occurred is searched for by comparing with the value stored in the parity part of.
[0180]
Then, it is determined whether or not there is a physical block causing a parity error. If it is determined that there is a physical block causing a parity error, the process proceeds to step S47, and the sequencer 91 sets the physical block number to After the variable W (write block number) is stored in the RAM 67, the process proceeds to step S49.
[0181]
If it is determined in step S46 that there is no physical block causing a parity error, the sequencer 91 performs error processing in step S48, and then ends the processing.
[0182]
Next, in step S49 of FIG. 19, the sequencer 91 determines whether or not the physical block to which data is written is a parse block (physical block whose logical block number is 00H) and determines that it is a parse block. In step S50, the execution ID of the instruction performed on the parse block is the same as the execution ID (FIG. 12) of the physical block having the number stored as the variable Y in step S39 or step S41. If it is determined that the instructions are the same, it is determined that the instruction has already been processed, and the process is terminated.
[0183]
By using the execution ID in this way, when the R / W1 retries the same command and the command has already been processed, the IC card 2 does not process the command. The same command is never processed twice.
[0184]
If it is determined in step S50 that the execution ID of the instruction performed on the parse block is not the same as the execution ID of the physical block having the number stored as the variable Y, the sequencer 91 determines in step S51. Then, it is determined whether or not the instruction to be executed for the parse block is an addition instruction. If it is an addition instruction, the process proceeds to step S52.
[0185]
In step S52, the sequencer 91 reads the parse data of the physical block having the number of the variable Y, calculates the sum of the parse data and the data included in the instruction executed for the parse block, and newly adds the sum. This is parse data (new parse data) in block data. After performing the processing in this way, the process proceeds to step S54. At this time, the execution ID of the physical block having the number of the variable Y is set as the execution ID of the new block data. This prevents double processing.
[0186]
On the other hand, if it is determined in step S51 that the instruction to be performed on the parse block is not an addition instruction (that is, a subtraction instruction), the process proceeds to step S53, and the sequencer 91 parses the physical block having the number of the variable Y. Data is read, and the difference between the parse data and the data included in the instruction executed for the parse block is calculated, and the difference is set as the parse data (new parse data) in the new block data. After performing the processing in this way, the process proceeds to step S54. At this time, the execution ID of the physical block having the number of the variable Y is set as the execution ID of the new block data. This prevents double processing.
[0187]
If the sequencer 91 determines in step S49 that the physical block to which data is written is not a parse block (that is, a read / write block), the sequencer 91 proceeds to step S54.
[0188]
In step S54, the sequencer 91 sets a value obtained by adding 1 to the value of the incremental counter of the physical block with the variable Y as the value of the incremental counter of the new block data. However, when the value of the incremental counter of the physical block with the variable Y number is 11, the sequencer 91 sets the value of the incremental counter of the new block data to 00.
[0189]
Next, in step S55, the sequencer 91 causes the parity calculation unit 93 to calculate the parity of the newly written data, the incremental counter, and the logical block number, and set the parity value as the value of the parity part of the new block data. .
[0190]
In step S56, the sequencer 91 adds new block data (data to be newly stored (write buffer) to the physical block (write buffer) of the number of the variable W stored in either step S39, step S45, or step S47). In the case of a parse block, parse data and execution ID), its logical block number, incremental counter, and their parity) are stored.
[0191]
As described above, by selecting a physical block (write buffer) for storing data using a logical block number and an incremental counter, even when a failure occurs during data writing, Since data having the same logical block number as the logical block number of the data remains in the memory, logically no memory corruption occurs.
[0192]
In the above embodiment, an incremental counter is used to determine a block in which new data is recorded among the same logical blocks in the random access area. For example, an absolute time (date and time at the time of recording, or It is also possible to determine a block in which new data is recorded by securing a 4-byte area, for example, in the random access area and recording it in the random access area.
[0193]
Next, the operation when data is written to the sequential access area of the EEPROM 66 will be described with reference to the flowcharts of FIGS.
[0194]
In step S61, the sequencer 91 stores the number of the first physical block in the sequential access area in the RAM 67 as the variable Z.
[0195]
Next, in step S62, the sequencer 91 reads the wrap round number of the physical block whose physical block number is Z, stores it as the variable A in the RAM 67, and wraps the physical block whose physical block number is Z + 1. Is stored in the RAM 67 as a variable B.
[0196]
In step S63, the sequencer 91 determines whether or not the difference (A−B) between the value of the variable A and the value of the variable B is 1, and if not, the physical block of the physical block number Z is Then, it is determined that the physical block stores data having the last wrap round number, and the process proceeds to step S66.
[0197]
When determining that the difference (A−B) between the value of the variable A and the value of the variable B is 1, the sequencer 91 determines that the physical block number Z is the number of the physical block at the end of the sequential access area in step S64. It is determined whether or not they are the same. If it is determined that they are the same, it is determined that the physical block at the end of the sequential access area is a physical block that stores data having the last wrap round number, and step S66. Proceed to
[0198]
If it is determined in step S64 that the physical block number Z is not the same as the physical block number at the end of the sequential access area, the sequencer 91 increases the value of the variable Z stored in the RAM 67 by 1 in step S65. Then, the process returns to step S62. Then, the processes in steps S62 to S65 are sequentially repeated while changing the value of the variable Z (value of the physical block number to be searched).
[0199]
In this way, the tail end of the wrap round number of the data stored sequentially is found. In step S66, the sequencer 91 performs a parity check of the block of the variable Z number (= the last physical block number of the wrap round number).
[0200]
In step S67, the sequencer 91 determines whether or not a parity error has occurred in the physical block. If it is determined that a parity error has occurred, the sequencer 91 proceeds to step S68.
[0201]
In step S68, the sequencer 91 determines whether or not the value of the variable Z is the same as the number of the first physical block in the sequential access area. The last physical block at the end of the sequential access area is stored in the RAM 67 as a new variable Y in step S70. Then, the process proceeds to step S72 (FIG. 21).
[0202]
When determining that the value of the variable Z is not the same as the number of the first physical block in the sequential access area, in step S71, the sequencer 91 sets the number of the last physical block of the data to 1 from the value of the variable Z. And the calculated value (Z-1) is stored in the RAM 67 as the variable Y, and the process proceeds to step S72.
[0203]
On the other hand, if it is determined in step S67 that no parity error has occurred, in step S69, the sequencer 91 sets the number of the last physical block of the data (in this case, the value of the variable Z) as the variable Y in the RAM 67. After the storage, the process proceeds to step S72.
[0204]
Next, in step S72, the sequencer 91 determines whether or not the number of the physical block at the end of the data (the value of the variable Y) and the number of the physical block at the end of the sequential access area are the same. If it is determined, the process proceeds to step S73.
[0205]
In step S73, the sequencer 91 stores the number of the first physical block in the sequential access area as the number of the physical block into which new data is written, stores the number as the variable W in the RAM 67, and then proceeds to step S75. move on.
[0206]
If it is determined in step S72 that the number of the last physical block of the data (value of variable Y) and the number of the physical block at the end of the sequential access area are not the same, in step S74, the sequencer 91 The number obtained by adding 1 to the value is used as the number of the physical block to which new data is written, and the number is stored in the RAM 67 as the variable W. Then, the process proceeds to step S75.
[0207]
Next, in step S75, the sequencer 91 determines whether or not the newly stored data is the same as the physical block (last data) of the variable Y number, and if it is the same, the sequencer 91 newly stores it. Since the data is already stored, the process is terminated.
[0208]
On the other hand, if it is determined that the newly stored data is not the same as the physical block with the variable Y number (the last data), the sequencer 91 wraps rounds the physical block with the variable Y number in step S76. The number obtained by reading the number and adding 1 to the value is used as the lap round number of the newly stored data (new block data).
[0209]
Next, in step S77, the sequencer 91 causes the parity calculation unit 93 to calculate the data to be stored and the parity of the wrap round number (new block data), and write the new block data to the physical block of number W in step S78.
[0210]
In this way, the lap round number in the sequentially stored data is sequentially searched, and new data is stored in the physical block next to the last data (or the first physical block in the sequential access area). Therefore, even when a failure occurs during the writing of new data, data with a wrap round number smaller than the wrap round number of the written data remains. Does not occur.
[0211]
As described above, the EEPROM 66 can provide storage areas independently to a plurality of providers, and suppress the occurrence of memory corruption by using information in the attribute part.
[0212]
The same user block can be assigned to a plurality of providers. In that case, the same user block is allocated in the allocation table of the provider area definition block in which those providers (overlap providers) are registered. At this time, by setting the partition table of the provider area definition block for each provider, it is possible to set different access rights (read / write or read only) for each provider with respect to the same user block. In addition, by setting a given provider not to use a parse block and setting other providers to use a parse block, a given provider can be parsed by other providers. Data can be written to the user data portion of the block (read-only for other providers).
[0213]
Further, the values of the areas D0e and D0f of the area definition block (usually areas where the security key version numbers are stored) are set to predetermined values (for example, FFFFH), and the areas D10 to D10 of the area definition block are further set. By storing the provider code (maximum 8) of a predetermined provider in D1f, the provider (local common provider) can use the user block assigned in the allocation table of this area definition block as a common area. it can.
[0214]
In addition, by registering a local common provider in two area definition blocks to which the same user block is assigned, and setting different access rights for each area definition block, the access right for that user block is assigned to each local common provider. Can be set.
[0215]
As described above, by setting the overlap provider and the local common provider, it is possible to perform individual processing corresponding to a plurality of providers (that is, R / W).
[0216]
The present invention can be applied not only when signals are transmitted and received by radio waves (non-contact) but also when signals are transmitted and received in a physically coupled state (contact). Data can be secured in the event of a power outage or when the battery is removed in a battery-operated device.
[0217]
The program for performing each of the above processes is provided to the user by being recorded on a transmission medium such as a magnetic disk or a CD-ROM, or transmitted to the user via a transmission medium such as a network. It can be recorded on a transmission medium made of a recording medium such as a memory and used.
[0218]
【The invention's effect】
  As described above, according to the information processing apparatus of the first aspect, the command from the provider apparatus that provides the predetermined system is received, the command is processed, the processing result is transmitted, and the provider apparatus uses the command. Memorize dataManage user block areas and user block areasAn area definition block area is formed. Also,The user block area is composed of a plurality of user blocks allocated in units of a predetermined size.The area definition block area isData defining the user block to be used, and the user blockMultiple area definition blocks with data defining access rights toAnd an area definition block is assigned to each provider device, and the same user block is defined in each of the area definition blocks assigned to each of a plurality of provider devices having different access rights. For each device, access to the same user block is performed by referring to different access rights defined in the area definition block assigned to each provider's device.Thus, a plurality of access rights in a predetermined storage area can be given to a predetermined user. The same storage area can be assigned to a plurality of users. Different access rights in a predetermined storage area can be given to a plurality of users.
[0219]
  According to the information processing method according to claim 4 and the recording medium according to claim 5,The user block area is composed of a plurality of user blocks allocated in units of a predetermined size.The area definition block area isData defining the user block to be used, and the user blockMultiple area definition blocks with data defining access rights toAnd an area definition block is assigned to each provider device, and the same user block is defined in each of the area definition blocks assigned to each of a plurality of provider devices having different access rights. For each device, access to the same user block is performed with reference to different access rights defined in the area definition block assigned to each provider's device,Since the command from the provider device is received, the command is processed using the area definition block area, and the processing result is transmitted, a plurality of data in the predetermined storage area can be transmitted to a predetermined user. Can be given access rights. The same storage area can be assigned to a plurality of users. Different access rights in a predetermined storage area can be given to a plurality of users.
[0220]
  According to the reader / writer of the sixth aspect, the transmission data transmitted to the information processing apparatus and the reception data received from the information processing apparatus are processed, the transmission data is modulated, and the reception data is demodulated.The user block area is composed of a plurality of user blocks allocated in units of a predetermined size.The transmission data is stored in the storage means.Configure the area definition block areaUser block controlled based on the data defining the user block and the data defining the access right to the user block stored in the area definition blockCommands for accessingAndThe command is for multiple readers / writers.Of the plurality of area definition blocks assigned to each of the areas, the area definition block assigned to itselfThe same user block is accessed with different access rights by a plurality of readers / writers having different access rights by processing the command.Thus, a plurality of access rights in a predetermined storage area can be given to a predetermined user. The same storage area can be assigned to a plurality of users. Different access rights in a predetermined storage area can be given to a plurality of users.
[0221]
  Claim 7Access method andClaim 9According to this recording medium, a call is made to the information processing apparatus, a command is transmitted to the information processing apparatus that responds to the call, a transmission result for the command processed by the information processing apparatus is received, and the transmission result is processed. Is done. Also,The user block area consists of a plurality of user blocks allocated in units of a predetermined size.Storage meansConfigure the area definition block areaUser block controlled based on the data defining the user block and the data defining the access right to the user block stored in the area definition blockIn an area definition block assigned to a device that accesses a user block among a plurality of area definition blocks assigned to each of a plurality of provider devices. The command is processed with reference to the specified access right, and the same user block is accessed with different access rights by devices of a plurality of providers having different access rights by the command processing.Thus, a plurality of access rights in a predetermined storage area can be given to a predetermined user. The same storage area can be assigned to a plurality of users. Different access rights in a predetermined storage area can be given to a plurality of users.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an example of a contactless card system using an IC card 2 which is an embodiment of an information processing apparatus of the present invention.
FIG. 2 is a block diagram illustrating a configuration example of the reader / writer 1 of FIG.
FIG. 3 is a block diagram showing a configuration of an IC card 2 which is an embodiment of an information processing apparatus of the present invention.
4 is a diagram showing an example of memory allocation of the EEPROM 66 in FIG. 3; FIG.
FIG. 5 is a diagram showing an example of allocation of each area of the system ID block of FIG. 4;
6 is a diagram illustrating an example of an attribute part in FIG. 5. FIG.
7 is a diagram showing an example of allocation of each area of the area definition block in FIG. 3; FIG.
8 is a diagram illustrating an example of user block allocation in FIG. 3;
9 is a diagram illustrating an example of a parse block permission in FIG. 7. FIG.
FIG. 10 is a diagram illustrating an example of allocation of each area of the user block in FIG. 3;
11 is a diagram illustrating an example of an attribute part of a user block in the random access area of FIG. 8;
FIG. 12 is a diagram illustrating an example of allocation of each area of a parse block;
13 is a diagram showing an example of an attribute part of a user block in the sequential access area of FIG.
FIG. 14 is a flowchart for explaining the operation of the contactless card system of FIG. 1;
FIG. 15 is a timing chart for explaining the operation of the contactless card system of FIG. 1;
FIG. 16 is a diagram illustrating an example of BPSK modulation.
FIG. 17 is a flowchart for explaining the operation of the IC card 2 at the time of writing to the user block in the random access area of FIG. 8;
18 is a flowchart for explaining the operation of the IC card 2 at the time of writing to the user block in the random access area of FIG.
FIG. 19 is a flowchart for explaining the operation of the IC card 2 at the time of writing to the user block in the random access area of FIG. 8;
20 is a flowchart for explaining the operation of the IC card 2 at the time of writing to the user block in the sequential access area of FIG. 8;
21 is a flowchart for explaining the operation of the IC card 2 at the time of writing to the user block in the sequential access area of FIG.
[Explanation of symbols]
1 Reader / Writer, 2 IC Card, 3 Controller, 21 IC, 23 Modulation Circuit, 25 Demodulation Circuit, 27 Antenna, 51 IC, 52 Capacitor, 53 Antenna, 61 RF Interface Unit, 62 BPSK Demodulation Circuit, 63 PLL Unit, 64 Arithmetic Unit, 65 ROM, 66 EEPROM, 67 RAM, 68 BPSK modulation circuit, 81 ASK demodulation unit, 82 voltage regulator, 83 oscillation circuit, 84 ASK modulation unit, 91 sequencer, 92 encryption / decryption unit, 93 parity calculation unit

Claims (9)

所定のシステムを提供するプロバイダの装置からのコマンドを受信する受信手段と、
前記コマンドを処理する処理手段と、
前記処理の結果を送信する送信手段と、
前記プロバイダの装置が利用するデータを記憶するユーザブロック領域および前記ユーザブロック領域を管理する領域定義ブロック領域が形成される記憶手段と
を備え、
前記ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、
前記領域定義ブロック領域は、利用する前記ユーザブロックを規定するデータ、および当該ユーザブロックへのアクセス権を規定するデータを有する複数の領域定義ブロックからなるとともに、前記プロバイダの装置ごとに前記領域定義ブロックが割り当てられ、
同一のユーザブロックが、アクセス権の異なる複数の前記プロバイダの装置のそれぞれに割り当てられた前記領域定義ブロックのそれぞれにおいて規定される場合、前記プロバイダの装置ごとに、それぞれの前記プロバイダの装置に割り当てられた前記領域定義ブロックにおいて規定される互いに異なるアクセス権が参照されて、前記同一のユーザブロックへのアクセスが行われる
ことを特徴とする情報処理装置。
Receiving means for receiving a command from an apparatus of a provider providing a predetermined system;
Processing means for processing the command;
Transmitting means for transmitting the result of the processing;
A storage unit in which a user block area for storing data used by the provider apparatus and an area definition block area for managing the user block area are formed;
The user block area is composed of a plurality of user blocks allocated in units of a predetermined size,
The area definition block area includes a plurality of area definition blocks having data defining the user block to be used and data defining an access right to the user block, and the area definition block is provided for each provider device. Is assigned,
When the same user block is defined in each of the area definition blocks allocated to each of a plurality of the provider devices having different access rights, each provider device is allocated to each provider device. The information processing apparatus is characterized in that access to the same user block is performed with reference to different access rights defined in the area definition block .
前記ユーザブロック領域は、前記領域定義ブロック領域として使用されていない空き領域に割り当てられて形成される
ことを特徴とする請求項1に記載の情報処理装置。
The information processing apparatus according to claim 1, wherein the user block area is allocated to a free area that is not used as the area definition block area.
前記アクセス権を規定するデータは、前記ユーザブロック領域のユーザブロックに対するリード/ライトまたはリードオンリのいずれかのアクセスを規定するデータである
ことを特徴とする請求項1に記載の情報処理装置。
The information processing apparatus according to claim 1, wherein the data defining the access right is data defining read / write access or read-only access to a user block in the user block area.
所定のシステムを提供するプロバイダの装置が利用するデータを記憶するユーザブロック領域および前記ユーザブロック領域を管理する領域定義ブロック領域が形成される記憶手段を備える情報処理装置の情報処理方法において、
前記ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、
前記領域定義ブロック領域は、利用する前記ユーザブロックを規定するデータ、および当該ユーザブロックへのアクセス権を規定するデータを有する複数の領域定義ブロックからなるとともに、前記プロバイダの装置ごとに前記領域定義ブロックが割り当てられ、
同一のユーザブロックが、アクセス権の異なる複数の前記プロバイダの装置のそれぞれに割り当てられた前記領域定義ブロックのそれぞれにおいて規定される場合、前記プロバイダの装置ごとに、それぞれの前記プロバイダの装置に割り当てられた前記領域定義ブロックにおいて規定される互いに異なるアクセス権が参照されて、前記同一のユーザブロックへのアクセスが行われ、
前記プロバイダの装置からのコマンドを受信する受信ステップと、
前記領域定義ブロック領域を利用して、前記コマンドを処理する処理ステップと、
前記処理の結果を送信する送信ステップと
を含むことを特徴とする情報処理方法。
In an information processing method for an information processing apparatus, comprising: a user block area for storing data used by an apparatus of a provider providing a predetermined system; and a storage unit in which an area definition block area for managing the user block area is formed.
The user block area is composed of a plurality of user blocks allocated in units of a predetermined size,
The area definition block area includes a plurality of area definition blocks having data defining the user block to be used and data defining an access right to the user block, and the area definition block is provided for each provider device. Is assigned,
When the same user block is defined in each of the area definition blocks allocated to each of a plurality of the provider devices having different access rights, each provider device is allocated to each provider device. In addition, referring to different access rights defined in the area definition block, access to the same user block is performed,
Receiving a command from the provider device;
Processing step for processing the command using the area definition block area;
And a transmission step of transmitting the result of the processing.
所定のシステムを提供するプロバイダの装置が利用するデータを記憶するユーザブロック領域および前記ユーザブロック領域を管理する領域定義ブロック領域が形成される記憶手段を備える情報処理装置であって、
前記ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、
前記領域定義ブロック領域は、利用する前記ユーザブロックを規定するデータ、および当該ユーザブロックへのアクセス権を規定するデータを有する複数の領域定義ブロックからなるとともに、前記プロバイダの装置ごとに前記領域定義ブロックが割り当てられ、
同一のユーザブロックが、アクセス権の異なる複数の前記プロバイダの装置のそれぞれに割り当てられた前記領域定義ブロックのそれぞれにおいて規定される場合、前記プロバイダの装置ごとに、それぞれの前記プロバイダの装置に割り当てられた前記領域定義ブロックにおいて規定される互いに異なるアクセス権が参照されて、前記同一のユーザブロックへのアクセスが行われる情報処理装置に、
前記プロバイダの装置からのコマンドの受信を制御する受信制御ステップと、
前記領域定義ブロック領域を利用して、前記コマンドを処理する処理ステップと、
前記処理の結果の送信を制御する送信制御ステップと
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
An information processing apparatus comprising: a user block area for storing data used by a provider apparatus that provides a predetermined system; and a storage unit in which an area definition block area for managing the user block area is formed .
The user block area is composed of a plurality of user blocks allocated in units of a predetermined size,
The area definition block area includes a plurality of area definition blocks having data defining the user block to be used and data defining an access right to the user block, and the area definition block is provided for each provider device. Is assigned,
When the same user block is defined in each of the area definition blocks assigned to each of a plurality of the provider devices having different access rights, it is assigned to each provider device for each provider device. In addition, an information processing apparatus that is referred to by different access rights defined in the area definition block and that accesses the same user block,
A reception control step for controlling reception of a command from the provider device;
Processing step for processing the command using the area definition block area;
A transmission control step for controlling transmission of the result of the processing;
The computer-readable recording medium which recorded the program for performing this .
所定のシステムを提供するプロバイダの装置が利用するデータが記憶されるユーザブロック領域と、前記ユーザブロック領域を管理する領域定義ブロック領域とが形成される記憶手段を備える情報処理装置の前記ユーザブロック領域にアクセスするためのリーダ/ライタであって、
前記情報処理装置に送信する送信データおよび前記情報処理装置から受信した受信データの処理を行うデータ処理手段と、
前記送信データを変調する変調手段と、
前記受信データを復調する復調手段と
を含み、
前記ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、
前記送信データは、前記記憶手段の前記領域定義ブロック領域を構成する領域定義ブロックに記憶されている、前記ユーザブロックを規定するデータおよび前記ユーザブロックへのアクセス権を規定するデータに基づいて制御される前記ユーザブロックへのアクセスのためのコマンドであり、
前記コマンドは、複数のリーダ/ライタのそれぞれに対して割り当てられた複数の前記領域定義ブロックのそれぞれのうち、自分自身に対して割り当てられた前記領域定義ブロックにおいて規定されるアクセス権が参照されて処理され、
同一のユーザブロックは、前記コマンドの処理により、アクセス権の異なる複数のリーダ/ライタによって互いに異なるアクセス権でアクセスされる
ことを特徴とするリーダ/ライタ。
The user block area of the information processing apparatus including a storage unit in which a user block area in which data used by a provider apparatus providing a predetermined system is stored and an area definition block area for managing the user block area are formed A reader / writer for accessing
Data processing means for processing transmission data to be transmitted to the information processing apparatus and reception data received from the information processing apparatus;
Modulation means for modulating the transmission data;
Demodulating means for demodulating the received data,
The user block area is composed of a plurality of user blocks allocated in units of a predetermined size,
The transmission data is controlled based on data defining the user block and data defining an access right to the user block, which are stored in an area definition block constituting the area definition block area of the storage means. A command for accessing the user block,
The command, among the plurality of the area definition block allocated to each of the plurality of reader / writers, and access rights as defined in the area definition blocks allocated to itself is referred to Processed,
The same user block is accessed with different access rights by a plurality of reader / writers having different access rights by processing the command .
所定のシステムを提供するプロバイダの装置が利用するデータが記憶されるユーザブロック領域と、前記ユーザブロック領域を管理する領域定義ブロック領域とが形成される記憶手段を備える情報処理装置の前記ユーザブロック領域に前記プロバイダの装置がアクセスするアクセス方法であって、
送受信手段が前記情報処理装置に呼びかけを行う呼びかけステップと、
前記送受信手段が前記呼びかけに応答した前記情報処理装置に対し、コマンドを送信する送信ステップと、
前記送受信手段が前記情報処理装置により処理された前記コマンドに対する送信結果を受信する受信ステップと、
処理手段が前記送信結果を処理する処理ステップと
を含み、
前記ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、
前記コマンドは、前記記憶手段の前記領域定義ブロック領域を構成する領域定義ブロックに記憶されている、前記ユーザブロックを規定するデータおよび前記ユーザブロックへのアクセス権を規定するデータに基づいて制御される前記ユーザブロックへのアクセスのためのコマンドであって、複数のプロバイダの装置のそれぞれに対して割り当てられた複数の前記領域定義ブロックのそれぞれのうち、自分自身に対して割り当てられた前記領域定義ブロックにおいて規定されるアクセス権が参照されて処理されるコマンドであり、
同一のユーザブロックは、前記コマンドの処理により、アクセス権の異なる複数のプロバイダの装置によって互いに異なるアクセス権でアクセスされる
ことを特徴とするアクセス方法。
The user block area of the information processing apparatus including a storage unit in which a user block area in which data used by a provider apparatus providing a predetermined system is stored and an area definition block area for managing the user block area are formed An access method for the provider's device to access
A calling step in which a transmission / reception unit calls the information processing apparatus;
A transmission step in which the transmission / reception means transmits a command to the information processing apparatus responding to the call;
A receiving step in which the transmission / reception means receives a transmission result for the command processed by the information processing apparatus;
Processing means for processing the transmission result, and
The user block area is composed of a plurality of user blocks allocated in units of a predetermined size,
The command is controlled based on data defining the user block and data defining an access right to the user block stored in an area definition block constituting the area definition block area of the storage means. A command for accessing the user block , the area definition block assigned to itself among the plurality of area definition blocks assigned to each of a plurality of provider devices. Is a command to be processed with reference to the access right defined in
The same user block is accessed with different access rights by a plurality of provider devices having different access rights by processing the command .
前記アクセス権を規定するデータは、前記ユーザブロック領域の前記ユーザブロックに対するリード/ライトまたはリードオンリのいずれかのアクセスを規定するデータである
ことを特徴とする請求項7に記載のアクセス方法。
The access method according to claim 7 , wherein the data defining the access right is data defining read / write access or read-only access to the user block in the user block area.
所定のシステムを提供するプロバイダの装置が利用するデータが記憶されるユーザブロック領域と、前記ユーザブロック領域を管理する領域定義ブロック領域とが形成される記憶手段を備える情報処理装置であって、
前記ユーザブロック領域は、所定の大きさの単位で割り当てられる複数のユーザブロックからなり、
前記プロバイダの装置から送信されるコマンドは、前記記憶手段の前記領域定義ブロック領域を構成する領域定義ブロックに記憶されている、前記ユーザブロックを規定するデータおよび前記ユーザブロックへのアクセス権を規定するデータに基づいて制御される前記ユーザブロックにアクセスするためのコマンドであって、複数のプロバイダの装置のそれぞれに対して割り当てられた複数の前記領域定義ブロックのそれぞれのうち、前記プロバイダの装置に割り当てられた前記領域定義ブロックにおいて規定されるアクセス権が参照されて処理されるコマンドであり、
同一のユーザブロックは、前記コマンドの処理により、アクセス権の異なる複数のプロバイダの装置によって互いに異なるアクセス権でアクセスされる、
情報処理装置にアクセスするプロバイダの装置に、
送受信手段が前記情報処理装置に呼びかけを行う呼びかけステップと、
前記送受信手段が前記呼びかけに応答した前記情報処理装置に対し、前記コマンドの送信を制御する送信制御ステップと、
前記送受信手段が前記情報処理装置により処理された前記コマンドに対する送信結果の受信を制御する受信制御ステップと、
処理手段が前記送信結果を処理する処理ステップと
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
An information processing apparatus comprising storage means for forming a user block area for storing data used by a provider apparatus that provides a predetermined system and an area definition block area for managing the user block area ,
The user block area is composed of a plurality of user blocks allocated in units of a predetermined size,
The command transmitted from the provider device defines the data defining the user block and the access right to the user block stored in the area definition block constituting the area definition block area of the storage means. A command for accessing the user block controlled based on data, and assigned to each of the plurality of area definition blocks assigned to each of a plurality of provider devices. A command to be processed with reference to the access right defined in the area definition block.
The same user block is accessed with different access rights by a plurality of provider devices having different access rights by processing the command.
To the provider's device that accesses the information processing device,
A calling step in which a transmission / reception unit calls the information processing apparatus;
To said information processing apparatus in which the transmitting and receiving means responds to the call above, a transmission control step of controlling transmission of said command,
A reception control step in which the transmission / reception means controls reception of a transmission result for the command processed by the information processing apparatus;
A processing step for processing means to process the transmission result;
The computer-readable recording medium which recorded the program for performing this .
JP17143097A 1996-06-28 1997-06-27 Information processing apparatus, information processing method, reader / writer, access method, and recording medium Expired - Lifetime JP4462646B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17143097A JP4462646B2 (en) 1996-06-28 1997-06-27 Information processing apparatus, information processing method, reader / writer, access method, and recording medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP16896696 1996-06-28
JP8-168966 1996-06-28
JP17143097A JP4462646B2 (en) 1996-06-28 1997-06-27 Information processing apparatus, information processing method, reader / writer, access method, and recording medium

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2004188867A Division JP3890603B2 (en) 1996-06-28 2004-06-25 Information processing apparatus, information processing method, reader / writer, access method, and recording medium
JP2004188866A Division JP3890602B2 (en) 1996-06-28 2004-06-25 Information processing apparatus, information processing method, and recording medium

Publications (2)

Publication Number Publication Date
JPH10105661A JPH10105661A (en) 1998-04-24
JP4462646B2 true JP4462646B2 (en) 2010-05-12

Family

ID=26492472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17143097A Expired - Lifetime JP4462646B2 (en) 1996-06-28 1997-06-27 Information processing apparatus, information processing method, reader / writer, access method, and recording medium

Country Status (1)

Country Link
JP (1) JP4462646B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132583A (en) * 2000-10-20 2002-05-10 Sony Corp Data processing apparatus, data storage device and data processing method, and program providing medium
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP6015461B2 (en) * 2013-01-21 2016-10-26 大日本印刷株式会社 Information recording medium, data read / write method, and data read / write program

Also Published As

Publication number Publication date
JPH10105661A (en) 1998-04-24

Similar Documents

Publication Publication Date Title
US7752406B2 (en) Information processing method and information processing apparatus having data locations accessible by different devices in accordance with different permissions
JP4051510B2 (en) Data storage device and data storage method
CN100390754C (en) Information processing equipment and information processing method and computer program
JP3721725B2 (en) Information processing method and information processing apparatus
JP4029234B2 (en) Information processing apparatus and information processing method
JP2004054394A (en) Radio information processing system, radio information recording medium, radio information processor and communication method for radio information processing system
JP3702923B2 (en) Information processing method and information processing apparatus
US7376973B2 (en) Data storage apparatus
JP4462646B2 (en) Information processing apparatus, information processing method, reader / writer, access method, and recording medium
JP3890602B2 (en) Information processing apparatus, information processing method, and recording medium
JP3890603B2 (en) Information processing apparatus, information processing method, reader / writer, access method, and recording medium
JP4576894B2 (en) Information management apparatus and information management method
KR100398450B1 (en) Hybrid card having door control function and hybrid card management system
JP4618259B2 (en) Data storage device and data storage method
JP2005309975A (en) Data communication system, method, and device
KR20090007267A (en) Hybrid card having door control function and hybridcard management system

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040625

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060420

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060619

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070411

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070417

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071019

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091228

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100216

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140226

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term