JPWO2005057400A1 - 電子装置、その制御方法、ホスト装置及びその制御方法 - Google Patents

電子装置、その制御方法、ホスト装置及びその制御方法 Download PDF

Info

Publication number
JPWO2005057400A1
JPWO2005057400A1 JP2005516088A JP2005516088A JPWO2005057400A1 JP WO2005057400 A1 JPWO2005057400 A1 JP WO2005057400A1 JP 2005516088 A JP2005516088 A JP 2005516088A JP 2005516088 A JP2005516088 A JP 2005516088A JP WO2005057400 A1 JPWO2005057400 A1 JP WO2005057400A1
Authority
JP
Japan
Prior art keywords
data
block size
command
host device
response
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.)
Granted
Application number
JP2005516088A
Other languages
English (en)
Other versions
JP4452690B2 (ja
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2005057400A1 publication Critical patent/JPWO2005057400A1/ja
Application granted granted Critical
Publication of JP4452690B2 publication Critical patent/JP4452690B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Credit Cards Or The Like (AREA)
  • Communication Control (AREA)

Abstract

ホスト装置の設計を複雑にすることなく、ブロックサイズの設定に関するエラー情報をホスト装置に送信する電子装置及びその制御方法を提供する。 本発明の電子装置は、ホスト装置との間でコマンド、レスポンス、データを送受信し、データが所定以上の長さを有する場合はマルチブロック転送を行うインターフェース部と、データバッファと、ブロックサイズの情報を記憶する記憶部と、を有し、インターフェース部は、ホスト装置の送信したブロックサイズ設定コマンドを受信し、そのブロックサイズがデータバッファの容量よりも大きい場合にブロックサイズ設定コマンドと所定の関係にある1つの時点でそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信する。

Description

本発明は、電子装置、その制御方法、ホスト装置及びその制御方法に関する。
近年、不揮発性メモリと他の機能とを搭載したICカード(電子装置に含まれる。)が開発され、市場に普及してきた。例えば、フラッシュメモリと無線通信機能とを搭載したICカードをPDA(Personal Digital Assistants、ホスト装置)に装着し、ICカードが受信した映像データ及び音声データをPDAに転送し、PDAのディスプレイ及びスピーカから映像データ及び音声データを出力する、という技術が実現されつつある。
また従来から、PDA等のホスト装置がICカードにデータを転送し、ICカードのフラッシュメモリに記憶する機能が実用化されている。
一般に、ホスト装置とICカードとの間で行われるデータ転送は、ホスト装置をマスターとするマスター/スレーブ方式の通信で行われる。ホスト装置がコマンドをICカードに送信し、それに対してICカードがレスポンスをホスト装置に返す。コマンド及びレスポンスを送受信した後、必要に応じて更にデータ転送を行うことが出来るホスト装置及びICカードがある。ホスト装置は、データ転送のタイミング及び転送するデータのサイズを決定し、それに従ってICカードはデータを受信又は送信する。
ホスト装置とICカードとの間でのデータ転送の一つにマルチブロック転送と呼ばれる方法がある。マルチブロック転送とは、データが所定以上の長さを有する場合(典型的には所定のブロックサイズ以上の長さを有する場合)、(1)そのデータを所定のブロックサイズの複数のデータブロックに分割し、(2)その後複数のデータブロックを断続的に転送する方法である。
ホスト装置は、1データブロックのブロックサイズを決定し、データ転送を開始する前にICカードにブロックサイズの情報を送信する。具体的には、ホスト装置は、1バイトのブロックサイズの設定データを含むコマンド(「第1のブロックサイズ設定コマンド」と呼ぶ。)をICカードに送信し、ICカードは、受信したブロックサイズのデータをICカード内のレジスタに設定する。
通常、ホスト装置はICカードからICカードの送受信用のデータバッファの容量を読み出して、ブロックサイズをその容量以下の大きさに設定する。
ところが、汎用のICカードは様々なホスト装置に装着可能である。ホスト装置は汎用の種々のICカード(いずれのICカードも同一の規格に従う。)を装着可能である。それ故に、ホスト装置によっては、ICカードのデータバッファの容量を読み出すことなく又は間違った値を読み出して、ICカードのデータバッファの容量よりも大きいブロックサイズを設定してしまう場合がある。
ホスト装置からICカードに、データバッファの容量よりも大きいサイズのデータブロックが送られてきた場合、ICカードのデータバッファはオーバーフローを起こす。又、ホスト装置がICカードに、データバッファの容量よりも大きいサイズのデータブロックを送信することを要求した場合、ICカードはそのデータブロックを送信することが出来ない。そのためICカードは、データバッファの容量より大きいブロックサイズの設定コマンドを受信した場合、エラー情報をホスト装置に送信する必要がある。
ホスト装置は、ブロックサイズの設定コマンドに対するレスポンスとしてエラー情報を受信した場合、データバッファの容量以下の大きさのブロックサイズの設定コマンドを新たに送信する必要がある。
ICカードは、ブロックサイズの設定データを含む第1のブロックサイズ設定コマンドを受信する。ブロックサイズの設定データがバッファ容量より大きい場合には、ICカードは第1のブロックサイズ設定コマンドに対するレスポンスにエラー情報を含めてホスト装置に送信する。これにより、ICカードのデータバッファがブロックサイズの送受信時にオーバーフローすることを未然に防ぐ。
ホスト装置からICカードにデータを送信する場合(ホスト装置がICカードにデータ書き込み指令を送信した場合)について説明する。ホスト装置は、まず転送するデータを所定のブロックサイズで分割して複数のデータブロックを生成する。次にホスト装置は、ICカードに複数のデータブロックを順に送信する。
ICカードからホスト装置にデータを送信する場合(ホスト装置がICカードにデータ読み出し指令を送信した場合)について説明する。ICカードは、まず転送するデータをホスト装置が設定したブロックサイズで分割して複数のデータブロックを生成する。次にICカードは、ホスト装置に複数のデータブロックを順に送信する。
マルチブロック転送は、複数のデータブロックを断続的に送るため、大量のデータを高速で転送するのに効果的である。
特開平11−298450号公報に、シリアルデータ転送時にオーバーフローが発生した場合にエラー信号をホスト装置に送信する従来例のICカードが開示されている。従来例のICカードは、内蔵するCPUを介さずにホスト装置にエラー信号を送信する。従来例のICカードは、内蔵する受信データバッファがオーバーフローを発生した場合に、ホスト装置にエラー情報を送信する。
特開平11−298450号公報
従来、マルチブロック転送におけるブロックサイズの設定は、ブロックサイズの設定データを含む第1のブロックサイズ設定コマンドでのみ行われていた。第1のブロックサイズ設定コマンドが含むことができるブロックサイズ設定データは、プロトコルにより例えば1バイトと決められている。
ICカードのメモリ容量が増大し、ICカードとホスト装置との間で大量のデータが転送されるようになってくると、ブロックサイズの設定データは1バイトでは不足するようになる。しかし、コマンドの中に1バイトのデータ領域のみを割り当てた第1のブロックサイズ設定コマンドを用いて、ホスト装置がICカードに2バイトのブロックサイズのデータを送信することは出来ない。
そこで、従来の第1のブロックサイズ設定コマンドに加えて、ホスト装置が2バイト以上のブロックサイズのデータをICカードに送信可能なコマンド(「第2のブロックサイズ設定コマンド」と呼ぶ。)を用いることが提案されている。
第2のブロックサイズ設定コマンドは、コマンドの中にブロックサイズの設定データを有しない。第2のブロックサイズ設定コマンドは、(1)ホスト装置がブロックサイズの設定データを送信するというコマンドを送信し、(2)ICカードからのレスポンスを受信し、(3)その後に、ブロックサイズの設定データを送信する、というプロトコルで送信される。
ホスト装置とICカードとはコマンド−レスポンス−データという順でやり取りする。そのため、ICカードはブロックサイズの設定データがデータバッファ容量より大きい場合に、設定データが大きすぎるというエラー情報をレスポンスに含めることができない。
第2のブロックサイズ設定コマンドを用いた場合、ICカードはブロックサイズの設定データがそのデータバッファ容量より大きい場合に、ホスト装置にエラー情報をレスポンスとして送ることが出来ないという問題があった。
ブロックサイズを設定するのに第1のブロックサイズ設定コマンドと第2のブロックサイズ設定コマンドの両方を使用可能にすると、使用するコマンドによって、ブロックサイズの設定に関するエラー情報がICカードからホスト装置に返ってくる場合と返ってこない場合とが発生する。このため、ホスト装置の設計が複雑になるという問題があった。
そこで、データを送るタイミングをレスポンスの前にして、コマンド−データ−レスポンスという順にすることも考えられる。このプロトコルに従ってホスト装置がICカードにブロックサイズ設定コマンドを送信した場合、ICカードはレスポンスを返す前にブロックサイズの設定データを受信する。それ故に、ブロックサイズが大き過ぎる場合はエラー情報をレスポンスとして返すことができる。
しかし、このプロトコルに従ったデータ転送において、例えばコマンドにエラーがあった場合(例えばコマンドが、ICカードが処理できないようなデータをホスト装置から送信するコマンドである場合)、ICカードはすぐにエラー情報をレスポンスとして返せない。そのため、無駄に多量のデータが転送されてしまうという問題があった。
特許文献1に記載の従来例のICカードは、データを受信して、受信データバッファがオーバーフローを発生した時に、エラー信号をホスト装置に送信する。そのため、ホスト装置からのデータの送信が無駄になってしまう。ホスト装置は、ICカードが受信できなかったデータを再送しなければならない。ICカードがデータの転送前にオーバーフローを起こすというエラー情報をホスト装置に送信することができれば、上記の無駄なデータの転送(ICカードが受信できないデータ転送)の問題を未然に防ぐことができる。
本発明は、上記従来の問題点を解決しようとするもので、ホスト装置と電子装置(例えばICカード)とがコマンド−レスポンス−データを順に送信するというプロトコルに従って、ホスト装置がブロックサイズの設定データを送信した場合にも、電子装置がそのブロックサイズの設定データを受け入れられない場合に、ホスト装置にエラー情報を送信する電子装置、その制御方法、それに対応するホスト装置及びその制御方法を提供することを目的とする。
本発明は、ブロックサイズの設定コマンドの種類に関わらず、ブロックサイズの設定に関するエラー情報を所定のタイミングでホスト装置に送る電子装置、その制御方法、それに対応するホスト装置及びその制御方法を提供することを目的とする。
本発明は、ホスト装置の設計を複雑にすることなく、ブロックサイズの設定に関するエラー情報をホスト装置に送る電子装置、その制御方法、ホスト装置及びその制御方法を提供することを目的とする。
本発明は、電子装置の送受信用のデータバッファのオーバーフローを未然に防ぐ電子装置、その制御方法、ホスト装置及びその制御方法を提供することを目的とする。
本発明は、汎用のホスト装置と汎用の電子装置とを互換性をもって組み合わせ可能な電子装置、その制御方法、ホスト装置及びその制御方法を提供することを目的とする。
上記課題を解決するため、本発明は下記の構成を有する。
本発明の1つの観点による電子装置は、ホスト装置からのコマンドを受信し前記ホスト装置へレスポンスを送信するコマンド/レスポンス線と、前記ホスト装置との間で前記コマンド/レスポンス線を通じてコマンド及びレスポンスを送受信した後必要に応じてコマンドに応じたデータを送受信するデータ線とに接続され、前記データが所定以上の長さを有する場合はそのデータを前記ホスト装置から指定されたブロックサイズのデータブロックに分割して送受信するインターフェース部、前記データを格納するデータバッファ、前記インターフェース部が、前記ホスト装置からデータブロックのブロックサイズを指定するコマンドを受信した場合、そのブロックサイズの情報を記憶する記憶部、を有し、前記インターフェース部は、前記ホスト装置から前記データブロックのブロックサイズの情報を含むデータを前記データ線で送信するというコマンド(以下、「ブロックサイズ設定コマンド」と呼ぶ。)を受信し、そのブロックサイズが前記データバッファの容量よりも大きい場合前記ブロックサイズ設定コマンドと所定の関係にある1つの時点でそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信する。
本発明の1つの観点による電子装置の制御方法は、ホスト装置から所定以上の長さを有するデータを複数のデータブロックに分割して送受信する場合における、各データブロックのブロックサイズの情報を含むデータをデータ線で送信するというブロックサイズ設定コマンドをコマンド/レスポンス線を通じて受信し、前記コマンド/レスポンス線を通じてそれに対するレスポンスを送信し、その後そのデータを受信する受信ステップと、前記ブロックサイズが内蔵するデータバッファの容量よりも大きいか否かを判断する判断ステップと、前記ブロックサイズ設定コマンドと所定の関係にある1つの時点で前記ブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信するエラー情報送信ステップと、を有する。
ここで、ブロックサイズ設定コマンドとは、実施の形態の「第2のブロックサイズ設定コマンド」である。
これらの発明は、ホスト装置と電子装置(例えばICカード)とがコマンド−レスポンス−データを順に送信するというプロトコルに従って、ホスト装置がブロックサイズの設定データを送信した場合にも、電子装置がそのブロックサイズの設定データを受け入れられない場合に、ホスト装置にエラー情報を送信する電子装置及びその制御方法を実現できるという作用を有する。
これらの発明は、ホスト装置の設計を複雑にすることなく、ブロックサイズの設定に関するエラー情報を所定のタイミングでホスト装置に送る電子装置及びその制御方法を実現する。
本発明の他の観点による上記の電子装置において、前記所定の関係にある1つの時点が前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時点であって、前記コマンドのレスポンスに前記エラー情報を含めて送信し且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けない。
本発明の他の観点による上記の電子装置の制御方法において、前記所定の関係にある1つの時点が前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時点であって、前記コマンドのレスポンスに前記エラー情報を含めて送信し且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けない。
これらの発明により、ホスト装置は「データブロックを実際に送信し又は受信するというコマンド」に対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
本発明の別の観点による上記の電子装置において、前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記ホスト装置から送信されたコマンドを受信した時点であって、前記コマンドに対応するレスポンスに前記エラー情報を含めたレスポンスを付加して送信する。
本発明の別の観点による上記の電子装置の制御方法において、前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記ホスト装置から送信されたコマンドを受信した時点であって、前記コマンドに対応するレスポンスに前記エラー情報を含めたレスポンスを付加して送信する。
これらの発明により、ホスト装置はブロックサイズ設定コマンドの次のコマンドに対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
本発明の更に別の観点による上記の電子装置において、前記インターフェース部は、前記ホスト装置から前記データブロックのブロックサイズの情報を含むコマンドを前記コマンド/レスポンス線を通じて受信し、そのブロックサイズが前記データバッファの容量よりも大きい場合、その後前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時に、そのコマンドに対してそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信し、且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けず、又は、その次に前記ホスト装置から送信されたコマンドに対応するレスポンスに、ブロックサイズを指定するコマンドに対する応答がエラーであるという情報を付加して送信する。
本発明の更に別の観点による上記の電子装置の制御方法において、前記ホスト装置から前記データブロックのブロックサイズの情報を含むコマンドを前記コマンド/レスポンス線を通じて受信するステップを更に有し、前記判断ステップにおいてそのブロックサイズが前記データバッファの容量よりも大きいと判断した場合、その後前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時に、そのコマンドに対してそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信し、且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けず、又は、その次に前記ホスト装置から送信されたコマンドに対応するレスポンスに、ブロックサイズを指定するコマンドに対する応答がエラーであるという情報を付加して送信する。
ここで、電子装置がコマンド/レスポンス線を介して受信する「データブロックのブロックサイズの情報を含むコマンド」とは、実施の形態の「第1のブロックサイズ設定コマンド」である。
これらの発明によれば、第1のブロックサイズ設定コマンドに対しても、第2のブロックサイズ設定コマンドと同様に、その後の所定のコマンドに対するレスポンスの中で、ブロックサイズ設定コマンドに対する可否を応える。ホスト装置は、送信するブロックサイズの設定コマンドの種類にかかわらず、ブロックサイズに関するエラー情報を一定のタイミングで受信することが出来る。
これらの発明は、ホスト装置の設計を複雑にすることなく、ブロックサイズの設定に関するエラー情報をホスト装置に送る電子装置及びその制御方法を実現する。
本発明の更に別の観点による上記の電子装置はICカードである。
本発明の更に別の観点による上記の電子装置の制御方法において、前記電子装置はICカードである。
これらの発明は、汎用性があり、多彩な製品のバリエーションを有するICカードにおいて、有用である。
本発明の1つの観点によるホスト装置は、電子装置にコマンドを送信し前記電子装置からレスポンスを受信するコマンド/レスポンス線と、前記電子装置との間で前記コマンド/レスポンス線を通じてコマンド及びレスポンスを送受信した後必要に応じてコマンドに応じたデータを送受信するデータ線とに接続され、前記データが所定以上の長さを有する場合はそのデータを分割して生成した所定のブロックサイズのデータブロックを送受信し前記電子装置にそのブロックサイズを指定するコマンドを送信するインターフェース部を有し、前記インターフェース部は、前記データブロックのブロックサイズの情報を含むデータを前記データ線で送信するというブロックサイズ設定コマンドを前記電子装置に送信しそのデータを送信した後、前記ブロックサイズ設定コマンドと所定の関係にある1つの時点に前記電子装置から前記データブロックのブロックサイズの指定値に応じることが出来ないというエラー情報を含むレスポンスが送られてきた場合、前記電子装置にそのデータバッファのデータ容量を問い合わせるコマンドを送信し、それに対するレスポンスに基づいて前記電子装置のデータバッファの容量以下で新たなブロックサイズを決定し前記電子装置に新たなブロックサイズを指定するコマンドを送信する。
本発明の1つの観点によるホスト装置の制御方法は、所定以上の長さを有するデータを複数のデータブロックに分割して送受信する場合における、各データブロックのブロックサイズの情報を含むデータをデータ線で送信するというブロックサイズ設定コマンドをコマンド/レスポンス線を通じて電子装置に送信し、前記コマンド/レスポンス線を通じてそれに対するレスポンスを受信し、その後そのデータを送信する送信ステップと、前記ブロックサイズ設定コマンドと所定の関係にある1つの時点でそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを受信した場合、前記電子装置にそのデータバッファのデータ容量を問い合わせるコマンドを送信するステップと、それに対するレスポンスに基づいて前記電子装置のデータバッファの容量以下で新たなブロックサイズを決定し、前記電子装置に新たなブロックサイズを指定するコマンドを送信する送信ステップと、を有する。
これらの発明は、(1)上記の電子装置(例えばICカード)と接続されたホスト装置がブロックサイズの設定データを送信し、(2)電子装置がそのブロックサイズの設定データを受け入れられないというエラー情報を送信した場合、ホスト装置が適切にブロックサイズの設定データを変更し、マルチブロック転送を実行する、簡単な構成のホスト装置及びその制御方法を実現できるという作用を有する。
本発明の他の観点による上記のホスト装置において、前記所定の関係にある1つの時点が所定以上の長さを有するデータを前記ブロックサイズに分割して実際に送信し又は受信するというコマンドを前記電子装置に送信した時点である。
本発明の他の観点による上記のホスト装置の制御方法において、前記所定の関係にある1つの時点が所定以上の長さを有するデータを前記ブロックサイズに分割して実際に送信し又は受信するというコマンドを前記電子装置に送信した時点である。
これらの発明により、ホスト装置は「所定以上の長さを有するデータをブロックサイズに分割して実際に送信し又は受信するというコマンド」に対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
本発明の別の観点による上記のホスト装置において、前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記電子装置にコマンドを送信した時点である。
本発明の別の観点による上記のホスト装置の制御方法において、前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記電子装置にコマンドを送信した時点である。
これらの発明により、ホスト装置はブロックサイズ設定コマンドの次のコマンドに対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
本発明によれば、ホスト装置と電子装置(例えばICカード)とがコマンド−レスポンス−データを順に送信するというプロトコルに従って、ホスト装置がブロックサイズの設定データを送信した場合にも、電子装置がそのブロックサイズの設定データを受け入れられない場合に、ホスト装置にエラー情報を送信する電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、ブロックサイズの設定コマンドの種類に関わらず、ブロックサイズの設定に関するエラー情報を所定のタイミングでホスト装置に送る電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、ブロックサイズの設定コマンドの種類を1つに限定することなく且つホスト装置の設計を複雑にすることなく、エラー情報をホスト装置に送る電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、ICカードの送受信用のデータバッファのオーバーフローを未然に防ぐ電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、汎用のホスト装置と汎用の電子装置とを互換性をもって組み合わせ可能な電子装置、その制御方法、ホスト装置及びその制御方法を実現できるという有利な効果が得られる。
発明の新規な特徴は添付の請求の範囲に特に記載したものに他ならないが、構成及び内容の双方に関して本発明は、他の目的や特徴と共に、図面と共同して理解されるところの以下の詳細な説明から、より良く理解され評価されるであろう。
図1は本発明の実施の形態1のICカードの構成を示すブロック図である。 図2は本発明の実施の形態1のコマンド、レスポンス及びデータ伝送を示す図である。 図3は本発明の実施の形態1の第1のブロックサイズ設定方法を示すフローチャートである。 図4は本発明の実施の形態1の第2のブロックサイズ設定方法を示すフローチャートである。 図5は本発明の実施の形態1のマルチブロック転送方法を示すフローチャートである。 図6は本発明の実施の形態2の第1のブロックサイズ設定方法を示すフローチャートである。 図7は本発明の実施の形態2の第2のブロックサイズ設定方法を示すフローチャートである。 図8は本発明の実施の形態2のレスポンスの構成を示す図である。
符号の説明
101 ホスト装置
102 ICカード
111 インターフェース部
112 エラー情報生成部
113 データバッファ
114 機能モジュール
121 ブロックサイズ記憶部
122 バッファ容量記憶部
123 比較部
124 レスポンス生成部
図面の一部又は全部は、図示を目的とした概要的表現により描かれており、必ずしもそこに示された要素の実際の相対的大きさや位置を忠実に描写しているとは限らないことは考慮願いたい。
以下本発明の実施をするための最良の形態を具体的に示した実施の形態について、図面とともに記載する。
《実施の形態1》
図1〜5を参照して、本発明の実施の形態1の電子装置(本発明においてはICカードである。)、その制御方法、ホスト装置及びその制御方法を説明する。図1は、本発明の実施の形態1のICカードの構成を示すブロック図である。
実施の形態1において、ホスト装置101は、ICカード102の挿入スロットを有するPDA(Personal Digital Assistants)である。
ホスト装置101とICカード102とは、コマンド/レスポンス線131、1又は複数のデータ線132、ホスト装置101からインターフェース部111に通信用クロックを送るクロック線133とで接続される。その他、ホスト装置101からICカード102に電力を供給する電源線、及びグラウンド線で接続される(図示していない)。
コマンド/レスポンス線131、データ線132、クロック線133は、ハードワイヤ以外にも互いに異なる周波数による電磁波伝送、超音波伝送を含むことができる。
ホスト装置101とICカード102とは、ホスト装置101をマスターとしICカード102をスレーブとするマスター/スレーブ方式の通信を行う。
ホスト装置101は、コマンド/レスポンス線131、データ線132、クロック線133を利用してICカード102との間でコマンド、レスポンス、及びデータの送受信を行うインターフェース部を有する(図示していない)。
ICカード102は、ホスト装置101との間でコマンド、レスポンス、及びデータの送受信を行うインターフェース部111、ブロックサイズに関するエラー情報を生成するエラー情報生成部112、データを一時的に格納するデータバッファ113、メモリ機能及び/又は無線通信機能を有する機能モジュール114を有する。
エラー情報生成部112は、ホスト装置101が決定したブロックサイズを記憶するブロックサイズ記憶部121、データバッファ113のサイズを記憶するバッファ容量記憶部122、ブロックサイズとバッファ容量を比較する比較部123を有する。
インターフェース部111は、ホスト装置101に送信するレスポンスを生成するレスポンス生成部124を有する。
ICカード102のインターフェース部111は、コマンド/レスポンス線131を介して、ホスト装置101から送信されたコマンドを受信し、そのコマンドに対するレスポンスをホスト装置101に送信する。
ICカード102のインターフェース部111は、データ線132を介して、ホスト装置101から送信されたデータを受信し、又はICカード内のデータをホスト装置101に送信する。
コマンド/レスポンス線131及びデータ線132を介して、ホスト装置101とICカード102とが通信する時、クロック線133を介してホスト装置101からICカード102にクロックが送られる。
マルチブロック転送を行う場合、ホスト装置101はデータブロックのやり取りをする前に1データブロックのブロックサイズを決定して、ICカードのブロックサイズ記憶部121に書き込む。ブロックサイズ記憶部121は、ホスト装置101がブロックサイズを書き込むためのレジスタである。
バッファ容量記憶部122は、データバッファ113の容量を記憶するレジスタである。
比較部123は、ブロックサイズ記憶部121に書き込まれているブロックサイズと、バッファ容量記憶部122に書き込まれているバッファ容量とを比較する。比較部123は、比較結果をレスポンス生成部124に伝送する。
レスポンス生成部124は、比較結果に基づいて、バッファ容量記憶部122に書き込まれているデータバッファ113の容量よりも、ブロックサイズ記憶部121に書き込まれているブロックサイズのほうが大きい場合に、ホスト装置101に送信するレスポンスにエラー情報を含める。
ICカード102は、ホスト装置101からデータ線132を介して送信されたデータブロックをデータバッファ113に一旦格納してから、機能モジュール114に伝送する。ICカード102は、機能モジュール114から取り出したデータブロックを、一旦データバッファ113に格納してから、ホスト装置101に送信する。
データバッファ113は、データブロックを一時的に格納するレジスタである。
機能モジュール114は、例えばフラッシュメモリと無線通信機能とを搭載した機能モジュールである。
図1において、インターフェース部111−ブロックサイズ記憶部121、インターフェース部111−バッファ容量記憶部122、ブロックサイズ記憶部121−比較部123、バッファ容量記憶部122−比較部123、比較部123−レスポンス生成部124、インターフェース部111−データバッファ113、データバッファ113−機能モジュール114の各線は、ハードワイヤードでも良いが、より一般的にはソフトウェアの働きによって構成される機能の指令のルートである。
図2は、ホスト装置101とICカード102との間の、コマンド、レスポンス、及びデータのやり取りを時系列に示す図である。ホスト装置101をマスターとし、ICカード102をスレーブとする、マスター/スレーブ方式の通信でマルチブロック転送を行う場合、ホスト装置からICカードへのコマンドの送信と、ICカードからホスト装置へのレスポンスの送信とを交互に行う。その後複数のデータブロックを断続的に転送する。図2は、ホスト装置101がICカード102のデータを読み出す場合である。
コマンド201、コマンド204、及びブロックサイズの設定データ203は、ホスト装置101からICカード102に送信される。レスポンス202、レスポンス205、及びデータブロック206は、ICカード102からホスト装置101に送信される。
但し、コマンド201が第1のブロックサイズ設定コマンドの場合、破線で示すブロックサイズの設定データ203はホスト装置からICカードに送信されない(詳細は後述する)。コマンド201が第2のブロックサイズ設定コマンドの場合のみ、ブロックサイズの設定データ203はホスト装置からICカードに送信される。
図3及び図4は、この実施の形態でホスト装置101がICカード102にブロックサイズの設定を行う2つの場合のフローチャートである。ホスト装置101がブロックサイズの設定に使用するコマンドは、図3の場合と図4の場合の2種類有る。図3の場合と図4の場合との違いは、コマンドの中にブロックサイズの設定データが含まれているか否かである。
図3の場合から説明する。図3は、コマンドの中に設定データが含まれている第1のブロックサイズ設定コマンドを使用して、ブロックサイズを設定する場合である。
ホスト装置101は、1データブロックのブロックサイズを決定すると、ブロックサイズの設定データを含む第1のブロックサイズ設定コマンドを送信する(ステップ301、図2の201)。
ICカードのインターフェース部111は、第1のブロックサイズ設定コマンドを受信する(ステップ302)。ICカード102のブロックサイズ記憶部121は、ホスト装置101が設定したブロックサイズを格納する(ステップ303)。ICカード102は、レスポンスをホスト装置101に送信する(ステップ304、図2の202)。
ホスト装置101は、レスポンス202を受信する(ステップ305)。
図3の場合、第1のブロックサイズ設定コマンド(図2の201)の中にブロックサイズの設定データが含まれているので、図2に示すブロックサイズの設定データ203は、ホスト装置101からICカード102に送信されない。
実施の形態1において、比較部123は受信したブロックサイズがバッファ容量以下か否かの判断結果を出力する。ステップ304において、ICカードのインターフェース部111は、比較部123の判断結果を入力し、それに基づいて第1のブロックサイズ設定コマンドに対するレスポンス(Ack情報又はエラー情報)を送信しても良い。又は、ICカードのインターフェース部111は、比較部123の判断結果を参照することなく、Ack情報をレスポンスとして送信しても良い。
図4について説明する。図4は、コマンドの中にブロックサイズの設定データが含まれていない第2のブロックサイズ設定コマンドを使用して、ブロックサイズを設定する場合である。
ホスト装置101は、1データブロックのブロックサイズを決定すると、第2のブロックサイズ設定コマンドを送信する(ステップ401、図2の201)。
ICカードのインターフェース部111は、第2のブロックサイズ設定コマンドを受信する(ステップ402)。ICカード102は、レスポンスをホスト装置101に送信する(ステップ403、図2の202)。
ホスト装置101は、レスポンス202を受信する(ステップ404)。ホスト装置101は、データ線132を介して、ブロックサイズの設定データを送信する(ステップ405、図2の203)。
ICカードはブロックサイズの設定データ203を受信する(ステップ406)。ICカード102のブロックサイズ記憶部121は、ホスト装置101が設定したブロックサイズを格納する(ステップ407)。
ホスト装置101は、第1のブロックサイズ設定コマンド(図3)又は第2のブロックサイズ設定コマンド(図4)のどちらかのコマンドを用いてICカード102にブロックサイズの設定を行うと、次に図5の処理を行う。
図5は、ホスト装置101とICカード102との間でマルチブロック転送を行うフローチャートである。図5のマルチブロック転送は、ホスト装置101がICカード102のデータを読み出す場合である。
ホスト装置101は、マルチブロック転送の実行(n(n≧1の正整数)個のデータブロックの読み出し指令の実行)コマンドを送信する(ステップ501、図2の204)。ICカード102は、マルチブロック転送の実行コマンドを受信する(ステップ502)。
ICカード102の比較部123は、ブロックサイズ記憶部121に格納されているブロックサイズと、バッファ容量記憶部122に格納されているデータバッファ113のサイズとを比較する(ステップ503)。
データバッファ113のサイズがブロックサイズ未満であれば、レスポンス生成部124はエラー情報を含めてレスポンスを生成する。インターフェース部111はそのエラー情報を含めたレスポンスを送信する(ステップ504、図2の205)。この場合はICカード102はホスト装置101にn個のデータブロック206を送信しない。
データバッファ113のサイズがブロックサイズ以上であれば、エラー情報無しのレスポンスを生成し、ホスト装置に送信する(ステップ505、図2の205)。ICカードはデータブロックをホスト装置に送信する(ステップ508、図2の206)。
ホスト装置101は、レスポンスを受信する(ステップ506)。ホスト装置101は、レスポンス205にエラー情報が含まれているか否かを判断する(ステップ507)。レスポンスにエラー情報が含まれていなければ、ホスト装置はデータブロックを受信する(ステップ509)。
ICカード102はn個全てのデータブロックを送信したか否か判断する(ステップ510)。ICカード102は、n個のデータブロックを全て送信するまでステップ508のデータブロックの送信を繰り返す。n個全てのデータブロックを送信し終えると、処理を終了する。
ステップ507において、ホスト装置101は、レスポンスにエラー情報が含まれていれば、ICカード102のデータバッファ容量の送信要求指令コマンドを送信する(ステップ511)。
ICカード102は、ICカードのデータバッファ容量の送信要求指令コマンドを受信する(ステップ512)と、バッファ容量記憶部122に格納されているデータバッファ113の容量をホスト装置101に送信する(ステップ513)。
ホスト装置101はICカードのデータバッファ容量を受信すると(ステップ514)、データバッファ容量以下で新たなブロックサイズを決定する(ステップ515)。ホスト装置101は図3の方法に従ってICカードにブロックサイズを送信する(ステップ516)。ステップ501に戻り、マルチブロック転送をやり直す。
なお、ステップ516において、図3の処理に代えて図4の方法に従ってICカードにブロックサイズを送信しても良い。
本発明のICカード102は互換性を有する様々なホスト装置101に装着できる。ホスト装置101がICカードのデータバッファ113の容量を正しく読み出した後にブロックサイズを決定すれば、ICカード102はオーバーフローを起こさない。しかし、ホスト装置101によっては、ICカードのデータバッファの容量の読み出しを行わずに、ブロックサイズを設定したり、又はデータバッファの容量を正しく読み出せずに、データバッファの容量よりも大きい値をブロックサイズに設定する場合がある。
このような場合であっても、ICカード102は、実際にデータブロックを送受信する前に、ホスト装置にブロックサイズがデータバッファの容量よりも大きいというエラー情報を通知することができる。本発明のICカード102は、データバッファ113がオーバーフローを起こすことを未然に防ぐことができる。
本発明のICカード102は、ブロックサイズの設定が第1のブロックサイズ設定コマンド(図3)又は第2のブロックサイズ設定コマンド(図4)のどちらのコマンドを使用して行われた場合でも、同じタイミングでエラー情報をレスポンスに含めてホスト装置101に送信する(図5のステップ504)。これにより、ホスト装置はブロックサイズのエラー情報が含まれているか否かの判断をステップ507でのみすれば良い。本発明の電子装置の制御方法はホスト装置の設計を容易にすることができる。
なお、実施の形態1においては、ICカードのデータ読み出しの場合についてのマルチブロック転送について説明したが、ホスト装置101がICカード102にデータを書き込む場合のマルチブロック転送においても、本発明を適用できる。
この場合、ICカードは、ホスト装置の設定したブロックサイズが内蔵するデータバッファの容量よりも大きい場合に、マルチブロック転送の実行コマンドに対するレスポンスにエラー情報を含めてホスト装置に送信する。ICカードは、ホスト装置からデータブロックが送られてきた場合はそれを受け付けない。
ホスト装置は、マルチブロック転送の実行コマンドのレスポンスにエラー情報が含まれていたら、データブロックをICカードに送信しない。ホスト装置は、ICカードのデータバッファ容量を問い合わせて、新たなブロックサイズを設定する。
《実施の形態2》
図6〜9を用いて、実施の形態2の電子装置(本発明においてはICカードである。)、その制御方法、ホスト装置及びその制御方法を説明する。実施の形態2が実施の形態1と違うところは、ブロックサイズがデータバッファ113の容量よりも大きいというエラー情報をホスト装置に送信するタイミングである。それ以外の点においては、実施の形態1と同一である。
ホスト装置101がブロックサイズの設定に使用するコマンドは、実施の形態1と同様に2種類(「第1のブロックサイズ設定コマンド」及び「第2のブロックサイズ設定コマンド」)ある。
実施の形態1においては、ホスト装置101が第1のブロックサイズ設定コマンド又は第2のブロックサイズ設定コマンドのどちらのコマンドを用いてブロックサイズを決定した場合であっても、ICカード102はブロックサイズに関するエラー情報をマルチブロック転送コマンドの後のレスポンスに含めて送信した。そのため、ICカードのエラー情報を送るタイミングが遅くなるという問題があった。
実施の形態2においては、ブロックサイズに関するエラー情報をすぐに送る電子装置、その制御方法、ホスト装置及びその制御方法を提供する。実施の形態2の電子装置、その制御方法、ホスト装置及びその制御方法は、ブロックサイズの設定コマンドの種類に応じて、エラー情報を含めるタイミングを異ならせる。
図6は、コマンドの中にブロックサイズの設定データが含まれている第1のブロックサイズ設定コマンドを使用して、ホスト装置がICカードにブロックサイズを設定する方法を示すフローチャートである。図6において、図3及び図5と同一ステップには同一番号を付している。
ホスト装置101は、ブロックサイズの設定データを含む第1のブロックサイズ設定コマンドを送信する(ステップ301、図2の201)。
ICカード102のインターフェース部111は、第1のブロックサイズ設定コマンドを受信する(ステップ302)。ICカード102のブロックサイズ記憶部121は、ホスト装置101が設定したブロックサイズを格納する(ステップ303)。
ICカード102の比較部123は、ブロックサイズ記憶部121に格納されているブロックサイズと、バッファ容量記憶部122に格納されているデータバッファ113のサイズとを比較する(ステップ503)。
データバッファ113のサイズがブロックサイズ未満であれば、レスポンス生成部124はエラー情報を含めてレスポンスを生成する。インターフェース部111はレスポンスを送信する(ステップ504、図2の202)。データバッファ113のサイズがブロックサイズ以上であれば、エラー情報無しのレスポンスを生成し、ホスト装置に送信する(ステップ505、図2の202)。
図6の場合、第1のブロックサイズ設定コマンド(図2の201)の中にブロックサイズの設定データが含まれているので、図2に示すブロックサイズの設定データ203は、ホスト装置101からICカード102に送信されない。
ホスト装置101は、レスポンス202を受信する(ステップ506)。ホスト装置101は、レスポンスにエラー情報が含まれているか否か判断する(ステップ507)。エラー情報が含まれていなければ、処理を終了する。ホスト装置101は、レスポンスにエラー情報が含まれていれば、ICカード102のデータバッファ容量の送信要求指令コマンドを送信する(ステップ511)。
ICカード102は、ICカードのデータバッファ容量の送信要求指令コマンドを受信する(ステップ512)と、バッファ容量記憶部122に格納されているデータバッファ113の容量をホスト装置101に送信する(ステップ513)。
ホスト装置101はICカードのデータバッファ容量を受信すると(ステップ514)、データバッファ容量以下で新たなブロックサイズを決定する(ステップ515)。ステップ301に戻り、ICカードに新たなブロックサイズを送信して、ブロックサイズを設定し直す。
図7及び図8を用いて、第2のブロックサイズ設定コマンドを使用する場合について説明する。図7は、コマンドの中にブロックサイズの設定データが含まれていない第2のブロックサイズ設定コマンドを使用して、ホスト装置がICカードにブロックサイズを設定する方法を示すフローチャートである。図7において、図4及び図5と同一ステップには同一番号を付している。
図8は、ICカード102がホスト装置101に送信するレスポンスの構成を示す図である。図8(a)は通常のレスポンスであり、ホスト装置101から送信された今のコマンドに対するレスポンス801が含まれている。
図8(b)は、実施の形態2においての第2のブロックサイズ設定コマンドの次にホスト装置から送られてきたコマンドに対するレスポンスである。図8(b)の次のコマンドのレスポンスは、次のコマンド(第2のブロックサイズ設定コマンドの次に送られてきたコマンド)に関するレスポンス801と前のコマンド(第2のブロックサイズ設定コマンド)に関するレスポンス802の両方が含まれている。前のコマンドのレスポンス802には、ブロックサイズの設定に対するAck情報又はエラー情報が含まれる。
ホスト装置101は、第2のブロックサイズ設定コマンドを送信する(ステップ401、図2の201)。
ICカードのインターフェース部111は、第2のブロックサイズ設定コマンドを受信する(ステップ402)。ICカード102は、レスポンスをホスト装置101に送信する(ステップ403、図2の202)。
ホスト装置101は、レスポンス202を受信する(ステップ404)。ホスト装置101は、データ線132を介して、ブロックサイズの設定データを送信する(ステップ405、図2の203)。
ICカードはブロックサイズの設定データ203を受信する(ステップ406)。ICカード102のブロックサイズ記憶部121は、ホスト装置101が設定したブロックサイズを格納する(ステップ407)。
ICカード102の比較部123は、ブロックサイズ記憶部121に格納されているブロックサイズと、バッファ容量記憶部122に格納されているデータバッファ113のサイズとを比較する(ステップ503)。
レスポンス生成部124は、データバッファ113のサイズがブロックサイズ以上であれば、Ack情報を生成する(ステップ701)。データバッファ113のサイズがブロックサイズ未満であれば、エラー情報を生成する(ステップ702)。
ホスト装置101は、次のコマンドを送信する(ステップ703)。ICカード102は次のコマンドを受信する(ステップ704)。ICカード102は、次のコマンドに対するレスポンス801に前のコマンドのレスポンス802であるAck情報又はエラー情報を付加して、ホスト装置に送信する(ステップ705、図2の205)。
ホスト装置101は、レスポンスを受信する(ステップ706)と、レスポンス205にブロックサイズに関するエラー情報が含まれているか否か判断する(ステップ707)。ブロックサイズに関するエラー情報が含まれていなければ(Ack情報が含まれていれば)、次のコマンドに対するレスポンスの受信処理を行う(ステップ708)。
レスポンスにブロックサイズに関するエラー情報が含まれていれば、ホスト装置101は、ICカード102のデータバッファ容量の送信要求指令コマンドを送信する(ステップ511)。
ICカード102は、ICカード102のデータバッファ容量の送信要求指令コマンドを受信する(ステップ512)と、バッファ容量記憶部122に格納されているデータバッファ113の容量をホスト装置101に送信する(ステップ513)。
ホスト装置101はICカードのデータバッファ容量を受信すると(ステップ514)、データバッファ容量以下で新たなブロックサイズを決定する(ステップ515)。ステップ401に戻り、ICカードに第2のブロックサイズ設定コマンドを送信し、ブロックサイズを設定し直す。
本発明の実施の形態2のICカードは、ブロックサイズの設定データを受け取った後すぐに、ブロックサイズに関するエラー情報をホスト装置に通知できる。これにより、ブロックサイズの設定に誤りがあっても、すぐに対処できる。
なお、実施の形態1において、ホスト装置101及びICカード102は図3の代わりに図6の方法を用いて、ICカードにブロックサイズを設定しても良い。この場合、ICカードは、内蔵するデータバッファ113の容量よりもホスト装置101が設定したブロックサイズのほうが大きい場合に、第1のブロックサイズ設定コマンドに対するレスポンスに、エラー情報を含めて送信する。
実施の形態2において、ホスト装置101及びICカード102は図6の代わりに図3の方法を用いても良い。ホスト装置101が第1のブロックサイズ設定コマンド及び第2のブロックサイズ設定コマンドのいずれを送信した場合にも、ICカード102は、次のコマンドに対するレスポンスに、前のコマンド(第1又は第2のブロックサイズ設定コマンド)のレスポンスであるAck情報又はエラー情報を付加して、ホスト装置に送信する。
発明をある程度の詳細さをもって好適な形態について説明したが、この好適形態の現開示内容は構成の細部において変化してしかるべきものであり、各要素の組合せや順序の変化は請求された発明の範囲及び思想を逸脱することなく実現し得るものである。
本発明は、ホスト装置と電子装置との間でマルチブロック転送を行う電子装置、その制御方法、ホスト装置及びその制御方法として有用である。
本発明は、電子装置、その制御方法、ホスト装置及びその制御方法に関する。
近年、不揮発性メモリと他の機能とを搭載したICカード(電子装置に含まれる。)が開発され、市場に普及してきた。例えば、フラッシュメモリと無線通信機能とを搭載したICカードをPDA(Personal Digital Assistants、ホスト装置)に装着し、ICカードが受信した映像データ及び音声データをPDAに転送し、PDAのディスプレイ及びスピーカから映像データ及び音声データを出力する、という技術が実現されつつある。
また従来から、PDA等のホスト装置がICカードにデータを転送し、ICカードのフラッシュメモリに記憶する機能が実用化されている。
一般に、ホスト装置とICカードとの間で行われるデータ転送は、ホスト装置をマスターとするマスター/スレーブ方式の通信で行われる。ホスト装置がコマンドをICカードに送信し、それに対してICカードがレスポンスをホスト装置に返す。コマンド及びレスポンスを送受信した後、必要に応じて更にデータ転送を行うことが出来るホスト装置及びICカードがある。ホスト装置は、データ転送のタイミング及び転送するデータのサイズを決定し、それに従ってICカードはデータを受信又は送信する。
ホスト装置とICカードとの間でのデータ転送の一つにマルチブロック転送と呼ばれる方法がある。マルチブロック転送とは、データが所定以上の長さを有する場合(典型的には所定のブロックサイズ以上の長さを有する場合)、(1)そのデータを所定のブロックサイズの複数のデータブロックに分割し、(2)その後複数のデータブロックを断続的に転送する方法である。
ホスト装置は、1データブロックのブロックサイズを決定し、データ転送を開始する前にICカードにブロックサイズの情報を送信する。具体的には、ホスト装置は、1バイトのブロックサイズの設定データを含むコマンド(「第1のブロックサイズ設定コマンド」と呼ぶ。)をICカードに送信し、ICカードは、受信したブロックサイズのデータをICカード内のレジスタに設定する。
通常、ホスト装置はICカードからICカードの送受信用のデータバッファの容量を読み出して、ブロックサイズをその容量以下の大きさに設定する。
ところが、汎用のICカードは様々なホスト装置に装着可能である。ホスト装置は汎用の種々のICカード(いずれのICカードも同一の規格に従う。)を装着可能である。それ故に、ホスト装置によっては、ICカードのデータバッファの容量を読み出すことなく又は間違った値を読み出して、ICカードのデータバッファの容量よりも大きいブロックサイズを設定してしまう場合がある。
ホスト装置からICカードに、データバッファの容量よりも大きいサイズのデータブロックが送られてきた場合、ICカードのデータバッファはオーバーフローを起こす。又、ホスト装置がICカードに、データバッファの容量よりも大きいサイズのデータブロックを送信することを要求した場合、ICカードはそのデータブロックを送信することが出来ない。そのためICカードは、データバッファの容量より大きいブロックサイズの設定コマンドを受信した場合、エラー情報をホスト装置に送信する必要がある。
ホスト装置は、ブロックサイズの設定コマンドに対するレスポンスとしてエラー情報を受信した場合、データバッファの容量以下の大きさのブロックサイズの設定コマンドを新たに送信する必要がある。
ICカードは、ブロックサイズの設定データを含む第1のブロックサイズ設定コマンドを受信する。ブロックサイズの設定データがバッファ容量より大きい場合には、ICカードは第1のブロックサイズ設定コマンドに対するレスポンスにエラー情報を含めてホスト装置に送信する。これにより、ICカードのデータバッファがブロックサイズの送受信時にオーバーフローすることを未然に防ぐ。
ホスト装置からICカードにデータを送信する場合(ホスト装置がICカードにデータ書き込み指令を送信した場合)について説明する。ホスト装置は、まず転送するデータを所定のブロックサイズで分割して複数のデータブロックを生成する。次にホスト装置は、ICカードに複数のデータブロックを順に送信する。
ICカードからホスト装置にデータを送信する場合(ホスト装置がICカードにデータ読み出し指令を送信した場合)について説明する。ICカードは、まず転送するデータをホスト装置が設定したブロックサイズで分割して複数のデータブロックを生成する。次にICカードは、ホスト装置に複数のデータブロックを順に送信する。
マルチブロック転送は、複数のデータブロックを断続的に送るため、大量のデータを高速で転送するのに効果的である。
特開平11−298450号公報に、シリアルデータ転送時にオーバーフローが発生した場合にエラー信号をホスト装置に送信する従来例のICカードが開示されている。従来例のICカードは、内蔵するCPUを介さずにホスト装置にエラー信号を送信する。従来例のICカードは、内蔵する受信データバッファがオーバーフローを発生した場合に、ホスト装置にエラー情報を送信する。
特開平11−298450号公報
従来、マルチブロック転送におけるブロックサイズの設定は、ブロックサイズの設定データを含む第1のブロックサイズ設定コマンドでのみ行われていた。第1のブロックサイズ設定コマンドが含むことができるブロックサイズ設定データは、プロトコルにより例えば1バイトと決められている。
ICカードのメモリ容量が増大し、ICカードとホスト装置との間で大量のデータが転送されるようになってくると、ブロックサイズの設定データは1バイトでは不足するようになる。しかし、コマンドの中に1バイトのデータ領域のみを割り当てた第1のブロックサイズ設定コマンドを用いて、ホスト装置がICカードに2バイトのブロックサイズのデータを送信することは出来ない。
そこで、従来の第1のブロックサイズ設定コマンドに加えて、ホスト装置が2バイト以上のブロックサイズのデータをICカードに送信可能なコマンド(「第2のブロックサイズ設定コマンド」と呼ぶ。)を用いることが提案されている。
第2のブロックサイズ設定コマンドは、コマンドの中にブロックサイズの設定データを有しない。第2のブロックサイズ設定コマンドは、(1)ホスト装置がブロックサイズの設定データを送信するというコマンドを送信し、(2)ICカードからのレスポンスを受信し、(3)その後に、ブロックサイズの設定データを送信する、というプロトコルで送信される。
ホスト装置とICカードとはコマンド−レスポンス−データという順でやり取りする。そのため、ICカードはブロックサイズの設定データがデータバッファ容量より大きい場合に、設定データが大きすぎるというエラー情報をレスポンスに含めることができない。
第2のブロックサイズ設定コマンドを用いた場合、ICカードはブロックサイズの設定データがそのデータバッファ容量より大きい場合に、ホスト装置にエラー情報をレスポンスとして送ることが出来ないという問題があった。
ブロックサイズを設定するのに第1のブロックサイズ設定コマンドと第2のブロックサイズ設定コマンドの両方を使用可能にすると、使用するコマンドによって、ブロックサイズの設定に関するエラー情報がICカードからホスト装置に返ってくる場合と返ってこない場合とが発生する。このため、ホスト装置の設計が複雑になるという問題があった。
そこで、データを送るタイミングをレスポンスの前にして、コマンド−データ−レスポンスという順にすることも考えられる。このプロトコルに従ってホスト装置がICカードにブロックサイズ設定コマンドを送信した場合、ICカードはレスポンスを返す前にブロックサイズの設定データを受信する。それ故に、ブロックサイズが大き過ぎる場合はエラー情報をレスポンスとして返すことができる。
しかし、このプロトコルに従ったデータ転送において、例えばコマンドにエラーがあった場合(例えばコマンドが、ICカードが処理できないようなデータをホスト装置から送信するコマンドである場合)、ICカードはすぐにエラー情報をレスポンスとして返せない。そのため、無駄に多量のデータが転送されてしまうという問題があった。
特許文献1に記載の従来例のICカードは、データを受信して、受信データバッファがオーバーフローを発生した時に、エラー信号をホスト装置に送信する。そのため、ホスト装置からのデータの送信が無駄になってしまう。ホスト装置は、ICカードが受信できなかったデータを再送しなければならない。ICカードがデータの転送前にオーバーフローを起こすというエラー情報をホスト装置に送信することができれば、上記の無駄なデータの転送(ICカードが受信できないデータ転送)の問題を未然に防ぐことができる。
本発明は、上記従来の問題点を解決しようとするもので、ホスト装置と電子装置(例えばICカード)とがコマンド−レスポンス−データを順に送信するというプロトコルに従って、ホスト装置がブロックサイズの設定データを送信した場合にも、電子装置がそのブロックサイズの設定データを受け入れられない場合に、ホスト装置にエラー情報を送信する電子装置、その制御方法、それに対応するホスト装置及びその制御方法を提供することを目的とする。
本発明は、ブロックサイズの設定コマンドの種類に関わらず、ブロックサイズの設定に関するエラー情報を所定のタイミングでホスト装置に送る電子装置、その制御方法、それに対応するホスト装置及びその制御方法を提供することを目的とする。
本発明は、ホスト装置の設計を複雑にすることなく、ブロックサイズの設定に関するエラー情報をホスト装置に送る電子装置、その制御方法、ホスト装置及びその制御方法を提供することを目的とする。
本発明は、電子装置の送受信用のデータバッファのオーバーフローを未然に防ぐ電子装置、その制御方法、ホスト装置及びその制御方法を提供することを目的とする。
本発明は、汎用のホスト装置と汎用の電子装置とを互換性をもって組み合わせ可能な電子装置、その制御方法、ホスト装置及びその制御方法を提供することを目的とする。
上記課題を解決するため、本発明は下記の構成を有する。
本発明の1つの観点による電子装置は、ホスト装置からのコマンドを受信し前記ホスト装置へレスポンスを送信するコマンド/レスポンス線と、前記ホスト装置との間で前記コマンド/レスポンス線を通じてコマンド及びレスポンスを送受信した後必要に応じてコマンドに応じたデータを送受信するデータ線とに接続され、前記データが所定以上の長さを有する場合はそのデータを前記ホスト装置から指定されたブロックサイズのデータブロックに分割して送受信するインターフェース部、前記データを格納するデータバッファ、前記インターフェース部が、前記ホスト装置からデータブロックのブロックサイズを指定するコマンドを受信した場合、そのブロックサイズの情報を記憶する記憶部、を有し、前記インターフェース部は、前記ホスト装置から前記データブロックのブロックサイズの情報を含むデータを前記データ線で送信するというコマンド(以下、「ブロックサイズ設定コマンド」と呼ぶ。)を受信し、そのブロックサイズが前記データバッファの容量よりも大きい場合前記ブロックサイズ設定コマンドと所定の関係にある1つの時点でそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信する。
本発明の1つの観点による電子装置の制御方法は、ホスト装置から所定以上の長さを有するデータを複数のデータブロックに分割して送受信する場合における、各データブロックのブロックサイズの情報を含むデータをデータ線で送信するというブロックサイズ設定コマンドをコマンド/レスポンス線を通じて受信し、前記コマンド/レスポンス線を通じてそれに対するレスポンスを送信し、その後そのデータを受信する受信ステップと、前記ブロックサイズが内蔵するデータバッファの容量よりも大きいか否かを判断する判断ステップと、前記ブロックサイズ設定コマンドと所定の関係にある1つの時点で前記ブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信するエラー情報送信ステップと、を有する。
ここで、ブロックサイズ設定コマンドとは、実施の形態の「第2のブロックサイズ設定コマンド」である。
これらの発明は、ホスト装置と電子装置(例えばICカード)とがコマンド−レスポンス−データを順に送信するというプロトコルに従って、ホスト装置がブロックサイズの設定データを送信した場合にも、電子装置がそのブロックサイズの設定データを受け入れられない場合に、ホスト装置にエラー情報を送信する電子装置及びその制御方法を実現できるという作用を有する。
これらの発明は、ホスト装置の設計を複雑にすることなく、ブロックサイズの設定に関するエラー情報を所定のタイミングでホスト装置に送る電子装置及びその制御方法を実現する。
本発明の他の観点による上記の電子装置において、前記所定の関係にある1つの時点が前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時点であって、前記コマンドのレスポンスに前記エラー情報を含めて送信し且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けない。
本発明の他の観点による上記の電子装置の制御方法において、前記所定の関係にある1つの時点が前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時点であって、前記コマンドのレスポンスに前記エラー情報を含めて送信し且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けない。
これらの発明により、ホスト装置は「データブロックを実際に送信し又は受信するというコマンド」に対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
本発明の別の観点による上記の電子装置において、前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記ホスト装置から送信されたコマンドを受信した時点であって、前記コマンドに対応するレスポンスに前記エラー情報を含めたレスポンスを付加して送信する。
本発明の別の観点による上記の電子装置の制御方法において、前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記ホスト装置から送信されたコマンドを受信した時点であって、前記コマンドに対応するレスポンスに前記エラー情報を含めたレスポンスを付加して送信する。
これらの発明により、ホスト装置はブロックサイズ設定コマンドの次のコマンドに対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
本発明の更に別の観点による上記の電子装置において、前記インターフェース部は、前記ホスト装置から前記データブロックのブロックサイズの情報を含むコマンドを前記コマンド/レスポンス線を通じて受信し、そのブロックサイズが前記データバッファの容量よりも大きい場合、その後前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時に、そのコマンドに対してそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信し、且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けず、又は、その次に前記ホスト装置から送信されたコマンドに対応するレスポンスに、ブロックサイズを指定するコマンドに対する応答がエラーであるという情報を付加して送信する。
本発明の更に別の観点による上記の電子装置の制御方法において、前記ホスト装置から前記データブロックのブロックサイズの情報を含むコマンドを前記コマンド/レスポンス線を通じて受信するステップを更に有し、前記判断ステップにおいてそのブロックサイズが前記データバッファの容量よりも大きいと判断した場合、その後前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時に、そのコマンドに対してそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信し、且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けず、又は、その次に前記ホスト装置から送信されたコマンドに対応するレスポンスに、ブロックサイズを指定するコマンドに対する応答がエラーであるという情報を付加して送信する。
ここで、電子装置がコマンド/レスポンス線を介して受信する「データブロックのブロックサイズの情報を含むコマンド」とは、実施の形態の「第1のブロックサイズ設定コマンド」である。
これらの発明によれば、第1のブロックサイズ設定コマンドに対しても、第2のブロックサイズ設定コマンドと同様に、その後の所定のコマンドに対するレスポンスの中で、ブロックサイズ設定コマンドに対する可否を応える。ホスト装置は、送信するブロックサイズの設定コマンドの種類にかかわらず、ブロックサイズに関するエラー情報を一定のタイミングで受信することが出来る。
これらの発明は、ホスト装置の設計を複雑にすることなく、ブロックサイズの設定に関するエラー情報をホスト装置に送る電子装置及びその制御方法を実現する。
本発明の更に別の観点による上記の電子装置はICカードである。
本発明の更に別の観点による上記の電子装置の制御方法において、前記電子装置はICカードである。
これらの発明は、汎用性があり、多彩な製品のバリエーションを有するICカードにおいて、有用である。
本発明の1つの観点によるホスト装置は、電子装置にコマンドを送信し前記電子装置からレスポンスを受信するコマンド/レスポンス線と、前記電子装置との間で前記コマンド/レスポンス線を通じてコマンド及びレスポンスを送受信した後必要に応じてコマンドに応じたデータを送受信するデータ線とに接続され、前記データが所定以上の長さを有する場合はそのデータを分割して生成した所定のブロックサイズのデータブロックを送受信し前記電子装置にそのブロックサイズを指定するコマンドを送信するインターフェース部を有し、前記インターフェース部は、前記データブロックのブロックサイズの情報を含むデータを前記データ線で送信するというブロックサイズ設定コマンドを前記電子装置に送信しそのデータを送信した後、前記ブロックサイズ設定コマンドと所定の関係にある1つの時点に前記電子装置から前記データブロックのブロックサイズの指定値に応じることが出来ないというエラー情報を含むレスポンスが送られてきた場合、前記電子装置にそのデータバッファのデータ容量を問い合わせるコマンドを送信し、それに対するレスポンスに基づいて前記電子装置のデータバッファの容量以下で新たなブロックサイズを決定し前記電子装置に新たなブロックサイズを指定するコマンドを送信する。
本発明の1つの観点によるホスト装置の制御方法は、所定以上の長さを有するデータを複数のデータブロックに分割して送受信する場合における、各データブロックのブロックサイズの情報を含むデータをデータ線で送信するというブロックサイズ設定コマンドをコマンド/レスポンス線を通じて電子装置に送信し、前記コマンド/レスポンス線を通じてそれに対するレスポンスを受信し、その後そのデータを送信する送信ステップと、前記ブロックサイズ設定コマンドと所定の関係にある1つの時点でそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを受信した場合、前記電子装置にそのデータバッファのデータ容量を問い合わせるコマンドを送信するステップと、それに対するレスポンスに基づいて前記電子装置のデータバッファの容量以下で新たなブロックサイズを決定し、前記電子装置に新たなブロックサイズを指定するコマンドを送信する送信ステップと、を有する。
これらの発明は、(1)上記の電子装置(例えばICカード)と接続されたホスト装置がブロックサイズの設定データを送信し、(2)電子装置がそのブロックサイズの設定データを受け入れられないというエラー情報を送信した場合、ホスト装置が適切にブロックサイズの設定データを変更し、マルチブロック転送を実行する、簡単な構成のホスト装置及びその制御方法を実現できるという作用を有する。
本発明の他の観点による上記のホスト装置において、前記所定の関係にある1つの時点が所定以上の長さを有するデータを前記ブロックサイズに分割して実際に送信し又は受信するというコマンドを前記電子装置に送信した時点である。
本発明の他の観点による上記のホスト装置の制御方法において、前記所定の関係にある1つの時点が所定以上の長さを有するデータを前記ブロックサイズに分割して実際に送信し又は受信するというコマンドを前記電子装置に送信した時点である。
これらの発明により、ホスト装置は「所定以上の長さを有するデータをブロックサイズに分割して実際に送信し又は受信するというコマンド」に対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
本発明の別の観点による上記のホスト装置において、前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記電子装置にコマンドを送信した時点である。
本発明の別の観点による上記のホスト装置の制御方法において、前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記電子装置にコマンドを送信した時点である。
これらの発明により、ホスト装置はブロックサイズ設定コマンドの次のコマンドに対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
本発明によれば、ホスト装置と電子装置(例えばICカード)とがコマンド−レスポンス−データを順に送信するというプロトコルに従って、ホスト装置がブロックサイズの設定データを送信した場合にも、電子装置がそのブロックサイズの設定データを受け入れられない場合に、ホスト装置にエラー情報を送信する電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、ブロックサイズの設定コマンドの種類に関わらず、ブロックサイズの設定に関するエラー情報を所定のタイミングでホスト装置に送る電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、ブロックサイズの設定コマンドの種類を1つに限定することなく且つホスト装置の設計を複雑にすることなく、エラー情報をホスト装置に送る電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、ICカードの送受信用のデータバッファのオーバーフローを未然に防ぐ電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、汎用のホスト装置と汎用の電子装置とを互換性をもって組み合わせ可能な電子装置、その制御方法、ホスト装置及びその制御方法を実現できるという有利な効果が得られる。
発明の新規な特徴は添付の請求の範囲に特に記載したものに他ならないが、構成及び内容の双方に関して本発明は、他の目的や特徴と共に、図面と共同して理解されるところの以下の詳細な説明から、より良く理解され評価されるであろう。
以下本発明の実施をするための最良の形態を具体的に示した実施の形態について、図面とともに記載する。
《実施の形態1》
図1〜5を参照して、本発明の実施の形態1の電子装置(本発明においてはICカードである。)、その制御方法、ホスト装置及びその制御方法を説明する。図1は、本発明の実施の形態1のICカードの構成を示すブロック図である。
実施の形態1において、ホスト装置101は、ICカード102の挿入スロットを有するPDA(Personal Digital Assistants)である。
ホスト装置101とICカード102とは、コマンド/レスポンス線131、1又は複数のデータ線132、ホスト装置101からインターフェース部111に通信用クロックを送るクロック線133とで接続される。その他、ホスト装置101からICカード102に電力を供給する電源線、及びグラウンド線で接続される(図示していない)。
コマンド/レスポンス線131、データ線132、クロック線133は、ハードワイヤ以外にも互いに異なる周波数による電磁波伝送、超音波伝送を含むことができる。
ホスト装置101とICカード102とは、ホスト装置101をマスターとしICカード102をスレーブとするマスター/スレーブ方式の通信を行う。
ホスト装置101は、コマンド/レスポンス線131、データ線132、クロック線133を利用してICカード102との間でコマンド、レスポンス、及びデータの送受信を行うインターフェース部を有する(図示していない)。
ICカード102は、ホスト装置101との間でコマンド、レスポンス、及びデータの送受信を行うインターフェース部111、ブロックサイズに関するエラー情報を生成するエラー情報生成部112、データを一時的に格納するデータバッファ113、メモリ機能及び/又は無線通信機能を有する機能モジュール114を有する。
エラー情報生成部112は、ホスト装置101が決定したブロックサイズを記憶するブロックサイズ記憶部121、データバッファ113のサイズを記憶するバッファ容量記憶部122、ブロックサイズとバッファ容量を比較する比較部123を有する。
インターフェース部111は、ホスト装置101に送信するレスポンスを生成するレスポンス生成部124を有する。
ICカード102のインターフェース部111は、コマンド/レスポンス線131を介して、ホスト装置101から送信されたコマンドを受信し、そのコマンドに対するレスポンスをホスト装置101に送信する。
ICカード102のインターフェース部111は、データ線132を介して、ホスト装置101から送信されたデータを受信し、又はICカード内のデータをホスト装置101に送信する。
コマンド/レスポンス線131及びデータ線132を介して、ホスト装置101とICカード102とが通信する時、クロック線133を介してホスト装置101からICカード102にクロックが送られる。
マルチブロック転送を行う場合、ホスト装置101はデータブロックのやり取りをする前に1データブロックのブロックサイズを決定して、ICカードのブロックサイズ記憶部121に書き込む。ブロックサイズ記憶部121は、ホスト装置101がブロックサイズを書き込むためのレジスタである。
バッファ容量記憶部122は、データバッファ113の容量を記憶するレジスタである。
比較部123は、ブロックサイズ記憶部121に書き込まれているブロックサイズと、バッファ容量記憶部122に書き込まれているバッファ容量とを比較する。比較部123は、比較結果をレスポンス生成部124に伝送する。
レスポンス生成部124は、比較結果に基づいて、バッファ容量記憶部122に書き込まれているデータバッファ113の容量よりも、ブロックサイズ記憶部121に書き込まれているブロックサイズのほうが大きい場合に、ホスト装置101に送信するレスポンスにエラー情報を含める。
ICカード102は、ホスト装置101からデータ線132を介して送信されたデータブロックをデータバッファ113に一旦格納してから、機能モジュール114に伝送する。ICカード102は、機能モジュール114から取り出したデータブロックを、一旦データバッファ113に格納してから、ホスト装置101に送信する。
データバッファ113は、データブロックを一時的に格納するレジスタである。
機能モジュール114は、例えばフラッシュメモリと無線通信機能とを搭載した機能モジュールである。
図1において、インターフェース部111−ブロックサイズ記憶部121、インターフェース部111−バッファ容量記憶部122、ブロックサイズ記憶部121−比較部123、バッファ容量記憶部122−比較部123、比較部123−レスポンス生成部124、インターフェース部111−データバッファ113、データバッファ113−機能モジュール114の各線は、ハードワイヤードでも良いが、より一般的にはソフトウェアの働きによって構成される機能の指令のルートである。
図2は、ホスト装置101とICカード102との間の、コマンド、レスポンス、及びデータのやり取りを時系列に示す図である。ホスト装置101をマスターとし、ICカード102をスレーブとする、マスター/スレーブ方式の通信でマルチブロック転送を行う場合、ホスト装置からICカードへのコマンドの送信と、ICカードからホスト装置へのレスポンスの送信とを交互に行う。その後複数のデータブロックを断続的に転送する。図2は、ホスト装置101がICカード102のデータを読み出す場合である。
コマンド201、コマンド204、及びブロックサイズの設定データ203は、ホスト装置101からICカード102に送信される。レスポンス202、レスポンス205、及びデータブロック206は、ICカード102からホスト装置101に送信される。
但し、コマンド201が第1のブロックサイズ設定コマンドの場合、破線で示すブロックサイズの設定データ203はホスト装置からICカードに送信されない(詳細は後述する)。コマンド201が第2のブロックサイズ設定コマンドの場合のみ、ブロックサイズの設定データ203はホスト装置からICカードに送信される。
図3及び図4は、この実施の形態でホスト装置101がICカード102にブロックサイズの設定を行う2つの場合のフローチャートである。ホスト装置101がブロックサイズの設定に使用するコマンドは、図3の場合と図4の場合の2種類有る。図3の場合と図4の場合との違いは、コマンドの中にブロックサイズの設定データが含まれているか否かである。
図3の場合から説明する。図3は、コマンドの中に設定データが含まれている第1のブロックサイズ設定コマンドを使用して、ブロックサイズを設定する場合である。
ホスト装置101は、1データブロックのブロックサイズを決定すると、ブロックサイズの設定データを含む第1のブロックサイズ設定コマンドを送信する(ステップ301、図2の201)。
ICカードのインターフェース部111は、第1のブロックサイズ設定コマンドを受信する(ステップ302)。ICカード102のブロックサイズ記憶部121は、ホスト装置101が設定したブロックサイズを格納する(ステップ303)。ICカード102は、レスポンスをホスト装置101に送信する(ステップ304、図2の202)。
ホスト装置101は、レスポンス202を受信する(ステップ305)。
図3の場合、第1のブロックサイズ設定コマンド(図2の201)の中にブロックサイズの設定データが含まれているので、図2に示すブロックサイズの設定データ203は、ホスト装置101からICカード102に送信されない。
実施の形態1において、比較部123は受信したブロックサイズがバッファ容量以下か否かの判断結果を出力する。ステップ304において、ICカードのインターフェース部111は、比較部123の判断結果を入力し、それに基づいて第1のブロックサイズ設定コマンドに対するレスポンス(Ack情報又はエラー情報)を送信しても良い。又は、ICカードのインターフェース部111は、比較部123の判断結果を参照することなく、Ack情報をレスポンスとして送信しても良い。
図4について説明する。図4は、コマンドの中にブロックサイズの設定データが含まれていない第2のブロックサイズ設定コマンドを使用して、ブロックサイズを設定する場合である。
ホスト装置101は、1データブロックのブロックサイズを決定すると、第2のブロックサイズ設定コマンドを送信する(ステップ401、図2の201)。
ICカードのインターフェース部111は、第2のブロックサイズ設定コマンドを受信する(ステップ402)。ICカード102は、レスポンスをホスト装置101に送信する(ステップ403、図2の202)。
ホスト装置101は、レスポンス202を受信する(ステップ404)。ホスト装置101は、データ線132を介して、ブロックサイズの設定データを送信する(ステップ405、図2の203)。
ICカードはブロックサイズの設定データ203を受信する(ステップ406)。ICカード102のブロックサイズ記憶部121は、ホスト装置101が設定したブロックサイズを格納する(ステップ407)。
ホスト装置101は、第1のブロックサイズ設定コマンド(図3)又は第2のブロックサイズ設定コマンド(図4)のどちらかのコマンドを用いてICカード102にブロックサイズの設定を行うと、次に図5の処理を行う。
図5は、ホスト装置101とICカード102との間でマルチブロック転送を行うフローチャートである。図5のマルチブロック転送は、ホスト装置101がICカード102のデータを読み出す場合である。
ホスト装置101は、マルチブロック転送の実行(n(n≧1の正整数)個のデータブロックの読み出し指令の実行)コマンドを送信する(ステップ501、図2の204)。ICカード102は、マルチブロック転送の実行コマンドを受信する(ステップ502)。
ICカード102の比較部123は、ブロックサイズ記憶部121に格納されているブロックサイズと、バッファ容量記憶部122に格納されているデータバッファ113のサイズとを比較する(ステップ503)。
データバッファ113のサイズがブロックサイズ未満であれば、レスポンス生成部124はエラー情報を含めてレスポンスを生成する。インターフェース部111はそのエラー情報を含めたレスポンスを送信する(ステップ504、図2の205)。この場合はICカード102はホスト装置101にn個のデータブロック206を送信しない。
データバッファ113のサイズがブロックサイズ以上であれば、エラー情報無しのレスポンスを生成し、ホスト装置に送信する(ステップ505、図2の205)。ICカードはデータブロックをホスト装置に送信する(ステップ508、図2の206)。
ホスト装置101は、レスポンスを受信する(ステップ506)。ホスト装置101は、レスポンス205にエラー情報が含まれているか否かを判断する(ステップ507)。レスポンスにエラー情報が含まれていなければ、ホスト装置はデータブロックを受信する(ステップ509)。
ICカード102はn個全てのデータブロックを送信したか否か判断する(ステップ510)。ICカード102は、n個のデータブロックを全て送信するまでステップ508のデータブロックの送信を繰り返す。n個全てのデータブロックを送信し終えると、処理を終了する。
ステップ507において、ホスト装置101は、レスポンスにエラー情報が含まれていれば、ICカード102のデータバッファ容量の送信要求指令コマンドを送信する(ステップ511)。
ICカード102は、ICカードのデータバッファ容量の送信要求指令コマンドを受信する(ステップ512)と、バッファ容量記憶部122に格納されているデータバッファ113の容量をホスト装置101に送信する(ステップ513)。
ホスト装置101はICカードのデータバッファ容量を受信すると(ステップ514)、データバッファ容量以下で新たなブロックサイズを決定する(ステップ515)。ホスト装置101は図3の方法に従ってICカードにブロックサイズを送信する(ステップ516)。ステップ501に戻り、マルチブロック転送をやり直す。
なお、ステップ516において、図3の処理に代えて図4の方法に従ってICカードにブロックサイズを送信しても良い。
本発明のICカード102は互換性を有する様々なホスト装置101に装着できる。ホスト装置101がICカードのデータバッファ113の容量を正しく読み出した後にブロックサイズを決定すれば、ICカード102はオーバーフローを起こさない。しかし、ホスト装置101によっては、ICカードのデータバッファの容量の読み出しを行わずに、ブロックサイズを設定したり、又はデータバッファの容量を正しく読み出せずに、データバッファの容量よりも大きい値をブロックサイズに設定する場合がある。
このような場合であっても、ICカード102は、実際にデータブロックを送受信する前に、ホスト装置にブロックサイズがデータバッファの容量よりも大きいというエラー情報を通知することができる。本発明のICカード102は、データバッファ113がオーバーフローを起こすことを未然に防ぐことができる。
本発明のICカード102は、ブロックサイズの設定が第1のブロックサイズ設定コマンド(図3)又は第2のブロックサイズ設定コマンド(図4)のどちらのコマンドを使用して行われた場合でも、同じタイミングでエラー情報をレスポンスに含めてホスト装置101に送信する(図5のステップ504)。これにより、ホスト装置はブロックサイズのエラー情報が含まれているか否かの判断をステップ507でのみすれば良い。本発明の電子装置の制御方法はホスト装置の設計を容易にすることができる。
なお、実施の形態1においては、ICカードのデータ読み出しの場合についてのマルチブロック転送について説明したが、ホスト装置101がICカード102にデータを書き込む場合のマルチブロック転送においても、本発明を適用できる。
この場合、ICカードは、ホスト装置の設定したブロックサイズが内蔵するデータバッファの容量よりも大きい場合に、マルチブロック転送の実行コマンドに対するレスポンスにエラー情報を含めてホスト装置に送信する。ICカードは、ホスト装置からデータブロックが送られてきた場合はそれを受け付けない。
ホスト装置は、マルチブロック転送の実行コマンドのレスポンスにエラー情報が含まれていたら、データブロックをICカードに送信しない。ホスト装置は、ICカードのデータバッファ容量を問い合わせて、新たなブロックサイズを設定する。
《実施の形態2》
図6〜9を用いて、実施の形態2の電子装置(本発明においてはICカードである。)、その制御方法、ホスト装置及びその制御方法を説明する。実施の形態2が実施の形態1と違うところは、ブロックサイズがデータバッファ113の容量よりも大きいというエラー情報をホスト装置に送信するタイミングである。それ以外の点においては、実施の形態1と同一である。
ホスト装置101がブロックサイズの設定に使用するコマンドは、実施の形態1と同様に2種類(「第1のブロックサイズ設定コマンド」及び「第2のブロックサイズ設定コマンド」)ある。
実施の形態1においては、ホスト装置101が第1のブロックサイズ設定コマンド又は第2のブロックサイズ設定コマンドのどちらのコマンドを用いてブロックサイズを決定した場合であっても、ICカード102はブロックサイズに関するエラー情報をマルチブロック転送コマンドの後のレスポンスに含めて送信した。そのため、ICカードのエラー情報を送るタイミングが遅くなるという問題があった。
実施の形態2においては、ブロックサイズに関するエラー情報をすぐに送る電子装置、その制御方法、ホスト装置及びその制御方法を提供する。実施の形態2の電子装置、その制御方法、ホスト装置及びその制御方法は、ブロックサイズの設定コマンドの種類に応じて、エラー情報を含めるタイミングを異ならせる。
図6は、コマンドの中にブロックサイズの設定データが含まれている第1のブロックサイズ設定コマンドを使用して、ホスト装置がICカードにブロックサイズを設定する方法を示すフローチャートである。図6において、図3及び図5と同一ステップには同一番号を付している。
ホスト装置101は、ブロックサイズの設定データを含む第1のブロックサイズ設定コマンドを送信する(ステップ301、図2の201)。
ICカード102のインターフェース部111は、第1のブロックサイズ設定コマンドを受信する(ステップ302)。ICカード102のブロックサイズ記憶部121は、ホスト装置101が設定したブロックサイズを格納する(ステップ303)。
ICカード102の比較部123は、ブロックサイズ記憶部121に格納されているブロックサイズと、バッファ容量記憶部122に格納されているデータバッファ113のサイズとを比較する(ステップ503)。
データバッファ113のサイズがブロックサイズ未満であれば、レスポンス生成部124はエラー情報を含めてレスポンスを生成する。インターフェース部111はレスポンスを送信する(ステップ504、図2の202)。データバッファ113のサイズがブロックサイズ以上であれば、エラー情報無しのレスポンスを生成し、ホスト装置に送信する(ステップ505、図2の202)。
図6の場合、第1のブロックサイズ設定コマンド(図2の201)の中にブロックサイズの設定データが含まれているので、図2に示すブロックサイズの設定データ203は、ホスト装置101からICカード102に送信されない。
ホスト装置101は、レスポンス202を受信する(ステップ506)。ホスト装置101は、レスポンスにエラー情報が含まれているか否か判断する(ステップ507)。エラー情報が含まれていなければ、処理を終了する。ホスト装置101は、レスポンスにエラー情報が含まれていれば、ICカード102のデータバッファ容量の送信要求指令コマンドを送信する(ステップ511)。
ICカード102は、ICカードのデータバッファ容量の送信要求指令コマンドを受信する(ステップ512)と、バッファ容量記憶部122に格納されているデータバッファ113の容量をホスト装置101に送信する(ステップ513)。
ホスト装置101はICカードのデータバッファ容量を受信すると(ステップ514)、データバッファ容量以下で新たなブロックサイズを決定する(ステップ515)。ステップ301に戻り、ICカードに新たなブロックサイズを送信して、ブロックサイズを設定し直す。
図7及び図8を用いて、第2のブロックサイズ設定コマンドを使用する場合について説明する。図7は、コマンドの中にブロックサイズの設定データが含まれていない第2のブロックサイズ設定コマンドを使用して、ホスト装置がICカードにブロックサイズを設定する方法を示すフローチャートである。図7において、図4及び図5と同一ステップには同一番号を付している。
図8は、ICカード102がホスト装置101に送信するレスポンスの構成を示す図である。図8(a)は通常のレスポンスであり、ホスト装置101から送信された今のコマンドに対するレスポンス801が含まれている。
図8(b)は、実施の形態2においての第2のブロックサイズ設定コマンドの次にホスト装置から送られてきたコマンドに対するレスポンスである。図8(b)の次のコマンドのレスポンスは、次のコマンド(第2のブロックサイズ設定コマンドの次に送られてきたコマンド)に関するレスポンス801と前のコマンド(第2のブロックサイズ設定コマンド)に関するレスポンス802の両方が含まれている。前のコマンドのレスポンス802には、ブロックサイズの設定に対するAck情報又はエラー情報が含まれる。
ホスト装置101は、第2のブロックサイズ設定コマンドを送信する(ステップ401、図2の201)。
ICカードのインターフェース部111は、第2のブロックサイズ設定コマンドを受信する(ステップ402)。ICカード102は、レスポンスをホスト装置101に送信する(ステップ403、図2の202)。
ホスト装置101は、レスポンス202を受信する(ステップ404)。ホスト装置101は、データ線132を介して、ブロックサイズの設定データを送信する(ステップ405、図2の203)。
ICカードはブロックサイズの設定データ203を受信する(ステップ406)。ICカード102のブロックサイズ記憶部121は、ホスト装置101が設定したブロックサイズを格納する(ステップ407)。
ICカード102の比較部123は、ブロックサイズ記憶部121に格納されているブロックサイズと、バッファ容量記憶部122に格納されているデータバッファ113のサイズとを比較する(ステップ503)。
レスポンス生成部124は、データバッファ113のサイズがブロックサイズ以上であれば、Ack情報を生成する(ステップ701)。データバッファ113のサイズがブロックサイズ未満であれば、エラー情報を生成する(ステップ702)。
ホスト装置101は、次のコマンドを送信する(ステップ703)。ICカード102は次のコマンドを受信する(ステップ704)。ICカード102は、次のコマンドに対するレスポンス801に前のコマンドのレスポンス802であるAck情報又はエラー情報を付加して、ホスト装置に送信する(ステップ705、図2の205)。
ホスト装置101は、レスポンスを受信する(ステップ706)と、レスポンス205にブロックサイズに関するエラー情報が含まれているか否か判断する(ステップ707)。ブロックサイズに関するエラー情報が含まれていなければ(Ack情報が含まれていれば)、次のコマンドに対するレスポンスの受信処理を行う(ステップ708)。
レスポンスにブロックサイズに関するエラー情報が含まれていれば、ホスト装置101は、ICカード102のデータバッファ容量の送信要求指令コマンドを送信する(ステップ511)。
ICカード102は、ICカード102のデータバッファ容量の送信要求指令コマンドを受信する(ステップ512)と、バッファ容量記憶部122に格納されているデータバッファ113の容量をホスト装置101に送信する(ステップ513)。
ホスト装置101はICカードのデータバッファ容量を受信すると(ステップ514)、データバッファ容量以下で新たなブロックサイズを決定する(ステップ515)。ステップ401に戻り、ICカードに第2のブロックサイズ設定コマンドを送信し、ブロックサイズを設定し直す。
本発明の実施の形態2のICカードは、ブロックサイズの設定データを受け取った後すぐに、ブロックサイズに関するエラー情報をホスト装置に通知できる。これにより、ブロックサイズの設定に誤りがあっても、すぐに対処できる。
なお、実施の形態1において、ホスト装置101及びICカード102は図3の代わりに図6の方法を用いて、ICカードにブロックサイズを設定しても良い。この場合、ICカードは、内蔵するデータバッファ113の容量よりもホスト装置101が設定したブロックサイズのほうが大きい場合に、第1のブロックサイズ設定コマンドに対するレスポンスに、エラー情報を含めて送信する。
実施の形態2において、ホスト装置101及びICカード102は図6の代わりに図3の方法を用いても良い。ホスト装置101が第1のブロックサイズ設定コマンド及び第2のブロックサイズ設定コマンドのいずれを送信した場合にも、ICカード102は、次のコマンドに対するレスポンスに、前のコマンド(第1又は第2のブロックサイズ設定コマンド)のレスポンスであるAck情報又はエラー情報を付加して、ホスト装置に送信する。
発明をある程度の詳細さをもって好適な形態について説明したが、この好適形態の現開示内容は構成の細部において変化してしかるべきものであり、各要素の組合せや順序の変化は請求された発明の範囲及び思想を逸脱することなく実現し得るものである。
図面の一部又は全部は、図示を目的とした概要的表現により描かれており、必ずしもそこに示された要素の実際の相対的大きさや位置を忠実に描写しているとは限らないことは考慮願いたい。
本発明は、ホスト装置と電子装置との間でマルチブロック転送を行う電子装置、その制御方法、ホスト装置及びその制御方法として有用である。
図1は本発明の実施の形態1のICカードの構成を示すブロック図である。 図2は本発明の実施の形態1のコマンド、レスポンス及びデータ伝送を示す図である。 図3は本発明の実施の形態1の第1のブロックサイズ設定方法を示すフローチャートである。 図4は本発明の実施の形態1の第2のブロックサイズ設定方法を示すフローチャートである。 図5は本発明の実施の形態1のマルチブロック転送方法を示すフローチャートである。 図6は本発明の実施の形態2の第1のブロックサイズ設定方法を示すフローチャートである。 図7は本発明の実施の形態2の第2のブロックサイズ設定方法を示すフローチャートである。 図8は本発明の実施の形態2のレスポンスの構成を示す図である。
符号の説明
101 ホスト装置
102 ICカード
111 インターフェース部
112 エラー情報生成部
113 データバッファ
114 機能モジュール
121 ブロックサイズ記憶部
122 バッファ容量記憶部
123 比較部
124 レスポンス生成部

Claims (16)

  1. ホスト装置からのコマンドを受信し前記ホスト装置へレスポンスを送信するコマンド/レスポンス線と、前記ホスト装置との間で前記コマンド/レスポンス線を通じてコマンド及びレスポンスを送受信した後必要に応じてコマンドに応じたデータを送受信するデータ線とに接続され、前記データが所定以上の長さを有する場合はそのデータを前記ホスト装置から指定されたブロックサイズのデータブロックに分割して送受信するインターフェース部、
    前記データを格納するデータバッファ、
    前記インターフェース部が、前記ホスト装置からデータブロックのブロックサイズを指定するコマンドを受信した場合、そのブロックサイズの情報を記憶する記憶部、
    を有し、
    前記インターフェース部は、前記ホスト装置から前記データブロックのブロックサイズの情報を含むデータを前記データ線で送信するというコマンド(以下、「ブロックサイズ設定コマンド」と呼ぶ。)を受信し、そのブロックサイズが前記データバッファの容量よりも大きい場合前記ブロックサイズ設定コマンドと所定の関係にある1つの時点でそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信することを特徴とする電子装置。
  2. 前記所定の関係にある1つの時点が前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時点であって、
    前記コマンドのレスポンスに前記エラー情報を含めて送信し且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けないことを特徴とする請求項1に記載の電子装置。
  3. 前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記ホスト装置から送信されたコマンドを受信した時点であって、
    前記コマンドに対応するレスポンスに前記エラー情報を含めたレスポンスを付加して送信することを特徴とする請求項1に記載の電子装置。
  4. 前記インターフェース部は、前記ホスト装置から前記データブロックのブロックサイズの情報を含むコマンドを前記コマンド/レスポンス線を通じて受信し、そのブロックサイズが前記データバッファの容量よりも大きい場合、
    その後前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時に、そのコマンドに対してそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信し、且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けず、又は、
    その次に前記ホスト装置から送信されたコマンドに対応するレスポンスに、ブロックサイズを指定するコマンドに対する応答がエラーであるという情報を付加して送信する、
    ことを特徴とする請求項1に記載の電子装置。
  5. 電子装置がICカードであることを特徴とする請求項1に記載の電子装置。
  6. 電子装置にコマンドを送信し前記電子装置からレスポンスを受信するコマンド/レスポンス線と、前記電子装置との間で前記コマンド/レスポンス線を通じてコマンド及びレスポンスを送受信した後必要に応じてコマンドに応じたデータを送受信するデータ線とに接続され、前記データが所定以上の長さを有する場合はそのデータを分割して生成した所定のブロックサイズのデータブロックを送受信し前記電子装置にそのブロックサイズを指定するコマンドを送信するインターフェース部を有し、
    前記インターフェース部は、前記データブロックのブロックサイズの情報を含むデータを前記データ線で送信するというブロックサイズ設定コマンドを前記電子装置に送信しそのデータを送信した後、前記ブロックサイズ設定コマンドと所定の関係にある1つの時点に前記電子装置から前記データブロックのブロックサイズの指定値に応じることが出来ないというエラー情報を含むレスポンスが送られてきた場合、前記電子装置にそのデータバッファのデータ容量を問い合わせるコマンドを送信し、それに対するレスポンスに基づいて前記電子装置のデータバッファの容量以下で新たなブロックサイズを決定し前記電子装置に新たなブロックサイズを指定するコマンドを送信することを特徴とするホスト装置。
  7. 前記所定の関係にある1つの時点が所定以上の長さを有するデータを前記ブロックサイズに分割して実際に送信し又は受信するというコマンドを前記電子装置に送信した時点であることを特徴とする請求項6に記載のホスト装置。
  8. 前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記電子装置にコマンドを送信した時点であることを特徴とする請求項6に記載のホスト装置。
  9. ホスト装置から所定以上の長さを有するデータを複数のデータブロックに分割して送受信する場合における、各データブロックのブロックサイズの情報を含むデータをデータ線で送信するというブロックサイズ設定コマンドをコマンド/レスポンス線を通じて受信し、前記コマンド/レスポンス線を通じてそれに対するレスポンスを送信し、その後そのデータを受信する受信ステップと、
    前記ブロックサイズが内蔵するデータバッファの容量よりも大きいか否かを判断する判断ステップと、
    前記ブロックサイズ設定コマンドと所定の関係にある1つの時点で前記ブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信するエラー情報送信ステップと、
    を有することを特徴とする電子装置の制御方法。
  10. 前記所定の関係にある1つの時点が前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時点であって、
    前記コマンドのレスポンスに前記エラー情報を含めて送信し且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けないことを特徴とする請求項9に記載の電子装置の制御方法。
  11. 前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記ホスト装置から送信されたコマンドを受信した時点であって、
    前記コマンドに対応するレスポンスに前記エラー情報を含めたレスポンスを付加して送信することを特徴とする請求項9に記載の電子装置の制御方法。
  12. 前記ホスト装置から前記データブロックのブロックサイズの情報を含むコマンドを前記コマンド/レスポンス線を通じて受信するステップを更に有し、前記判断ステップにおいてそのブロックサイズが前記データバッファの容量よりも大きいと判断した場合、
    その後前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時に、そのコマンドに対してそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信し、且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けず、又は、
    その次に前記ホスト装置から送信されたコマンドに対応するレスポンスに、ブロックサイズを指定するコマンドに対する応答がエラーであるという情報を付加して送信する、
    ことを特徴とする請求項9に記載の電子装置の制御方法。
  13. 電子装置がICカードであることを特徴とする請求項9に記載の電子装置の制御方法。
  14. 所定以上の長さを有するデータを複数のデータブロックに分割して送受信する場合における、各データブロックのブロックサイズの情報を含むデータをデータ線で送信するというブロックサイズ設定コマンドをコマンド/レスポンス線を通じて電子装置に送信し、前記コマンド/レスポンス線を通じてそれに対するレスポンスを受信し、その後そのデータを送信する送信ステップと、
    前記ブロックサイズ設定コマンドと所定の関係にある1つの時点でそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを受信した場合、前記電子装置にそのデータバッファのデータ容量を問い合わせるコマンドを送信するステップと、
    それに対するレスポンスに基づいて前記電子装置のデータバッファの容量以下で新たなブロックサイズを決定し、前記電子装置に新たなブロックサイズを指定するコマンドを送信する送信ステップと、
    を有することを特徴とするホスト装置の制御方法。
  15. 前記所定の関係にある1つの時点が所定以上の長さを有するデータを前記ブロックサイズに分割して実際に送信し又は受信するというコマンドを前記電子装置に送信した時点あることを特徴とする請求項14に記載のホスト装置の制御方法。
  16. 前記所定の関係にある1つの時点が前記ブロックサイズ設定コマンドの次に前記電子装置にコマンドを送信した時点であることを特徴とする請求項14に記載のホスト装置の制御方法。
JP2005516088A 2003-12-09 2004-11-29 電子装置、その制御方法、ホスト装置及びその制御方法 Active JP4452690B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003410840 2003-12-09
JP2003410840 2003-12-09
PCT/JP2004/017724 WO2005057400A1 (ja) 2003-12-09 2004-11-29 電子装置、その制御方法、ホスト装置及びその制御方法

Publications (2)

Publication Number Publication Date
JPWO2005057400A1 true JPWO2005057400A1 (ja) 2007-12-13
JP4452690B2 JP4452690B2 (ja) 2010-04-21

Family

ID=34674957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005516088A Active JP4452690B2 (ja) 2003-12-09 2004-11-29 電子装置、その制御方法、ホスト装置及びその制御方法

Country Status (6)

Country Link
US (1) US7774508B2 (ja)
EP (1) EP1701244B1 (ja)
JP (1) JP4452690B2 (ja)
CN (1) CN100437456C (ja)
TW (1) TW200529244A (ja)
WO (1) WO2005057400A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100826065B1 (ko) * 2004-03-31 2008-04-29 마츠시타 덴끼 산교 가부시키가이샤 메모리카드 및 메모리카드 시스템
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
JP4896450B2 (ja) 2005-06-30 2012-03-14 株式会社東芝 記憶装置
CN101203867B (zh) * 2005-07-05 2010-05-19 松下电器产业株式会社 读出数据长度的指定方法
US8914557B2 (en) * 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
KR100884239B1 (ko) * 2007-01-02 2009-02-17 삼성전자주식회사 메모리 카드 시스템 및 그것의 백그라운드 정보 전송 방법
JP2009110609A (ja) * 2007-10-31 2009-05-21 Hitachi Ltd ストリームデータ転送制御機構
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9740485B2 (en) 2012-10-26 2017-08-22 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US9563565B2 (en) 2013-08-14 2017-02-07 Micron Technology, Inc. Apparatuses and methods for providing data from a buffer
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
US10365835B2 (en) 2014-05-28 2019-07-30 Micron Technology, Inc. Apparatuses and methods for performing write count threshold wear leveling operations
JP6833364B2 (ja) * 2016-07-01 2021-02-24 株式会社東芝 Icカード、および、icカード処理装置
US10795836B2 (en) 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
GB2612658B (en) * 2022-03-10 2023-12-13 Nordic Semiconductor Asa Method and apparatus for radio communications

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61228549A (ja) * 1985-04-02 1986-10-11 Ricoh Co Ltd デ−タ転送方法
JPH0337540A (ja) 1989-07-04 1991-02-18 Toshiba Corp ナトリウム漏洩検出装置
JPH0337540U (ja) * 1989-08-16 1991-04-11
JPH09171545A (ja) * 1995-12-20 1997-06-30 Fujitsu Ltd Icカード,icカード読み取り/書き込み装置,icカード読み取り/書き込み装置用上位装置及びicカードシステム並びにicカードシステムにおけるマルチベンダ対応方法
JP3565967B2 (ja) * 1995-12-21 2004-09-15 富士通株式会社 Icカード読み取り/書き込み装置及びicカードシステム
JPH1027231A (ja) * 1996-07-10 1998-01-27 Matsushita Electric Ind Co Ltd Icカード
US6006289A (en) * 1996-11-12 1999-12-21 Apple Computer, Inc. System for transferring data specified in a transaction request as a plurality of move transactions responsive to receipt of a target availability signal
JP3728366B2 (ja) * 1997-05-13 2005-12-21 株式会社ルネサステクノロジ Icカード
FR2772535B1 (fr) * 1997-12-11 2000-12-15 Micropross Interface de communication avec une carte a puce synchrone et dispositif equipe d'une telle interface
JPH11298450A (ja) * 1998-04-08 1999-10-29 Nec Corp シリアルデータ転送コントローラ
JP3190895B2 (ja) * 1998-10-02 2001-07-23 エヌイーシーマイクロシステム株式会社 通信エラー自動修復システム
JP2002342256A (ja) * 2001-05-14 2002-11-29 Hitachi Ltd データプロセッサ及びデータテーブルの更新方法
JP3914398B2 (ja) * 2001-05-22 2007-05-16 日本電産サンキョー株式会社 Icカードリーダライタの通信方法
CN1430179A (zh) * 2001-12-11 2003-07-16 松下电器产业株式会社 Ic卡及其数据处理方法
JP2003345674A (ja) * 2002-05-29 2003-12-05 Matsushita Electric Ind Co Ltd 入出力装置
KR100887901B1 (ko) * 2002-06-26 2009-03-12 주식회사 히타치엘지 데이터 스토리지 코리아 광디스크 장치에서의 기록속도 가변방법

Also Published As

Publication number Publication date
US20070145151A1 (en) 2007-06-28
TW200529244A (en) 2005-09-01
EP1701244B1 (en) 2015-04-01
WO2005057400A1 (ja) 2005-06-23
JP4452690B2 (ja) 2010-04-21
CN100437456C (zh) 2008-11-26
EP1701244A4 (en) 2008-12-24
CN1890624A (zh) 2007-01-03
US7774508B2 (en) 2010-08-10
EP1701244A1 (en) 2006-09-13

Similar Documents

Publication Publication Date Title
JP4452690B2 (ja) 電子装置、その制御方法、ホスト装置及びその制御方法
KR20110010707A (ko) 슬레이브 디바이스 사이에서 직접 데이터를 전송하는 방법
JPWO2004036440A1 (ja) Icカード、データ転送装置、データ転送方法及びデータ転送方法のプログラム
KR100944892B1 (ko) 버스 시스템 및 버스 인터페이스
US20060236001A1 (en) Direct memory access controller
JP2007259274A (ja) 再送制御回路、送信装置、再送制御方法及び再送制御プログラム
CN114006787A (zh) 数据传输方法、设备以及计算机可读存储介质
JP2006270469A (ja) 通信データ制御装置
KR100787220B1 (ko) 읽기 동작 및 쓰기 동작이 동시에 가능한 디바이스를구비한 전자장치 및 그 방법
KR100736902B1 (ko) 복수의 프로세서에 의한 메모리 공유 방법 및 장치
CN113709061A (zh) 一种报文转发的方法和电路
KR101345437B1 (ko) 칩들간의 통신을 위한 인터페이스 장치 및 방법
US20110110383A1 (en) Network interface controller capable of sharing buffers and buffer sharing method
CN118363901B (zh) PCIe设备、电子组件及电子设备
KR100974914B1 (ko) 스마트 카드에 적합한 디엠에이를 이용한 유에스비 데이터 전송 방법
JP2006201878A (ja) マイクロコンピュータ
JP2005141677A (ja) Icカード用通信ライブラリ及びicカード
JP2005110019A (ja) シリアル通信システム
JP4624252B2 (ja) データパケット転送装置、データパケット転送方法、及び、データパケット転送プログラム
CN118567560A (zh) 存储帧数据的方法、芯片和电子设备
CN116501268A (zh) 应用于ddr phy的数据读取方法
JP2008134892A (ja) 集積回路装置
KR20050107159A (ko) 시스템의 직렬 인터페이스 버스를 위한 버스 컨트롤러
KR20080012654A (ko) 멀티미디어 데이터 처리 장치 및 처리 방법
KR20000067174A (ko) 인터아이씨의 제너럴콜 어크날리지장치및 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090721

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100105

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: 20100201

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20150205

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250