(57)【特許請求の範囲】
【請求項１】
ホスト装置からのコマンドを受信し前記ホスト装置へレスポンスを送信するコマンド／レスポンス線と、前記ホスト装置との間で前記コマンド／レスポンス線を通じてコマンド及びレスポンスを送受信した後必要に応じてコマンドに応じたデータを送受信するデータ線とに接続され、前記データが所定以上の長さを有する場合はそのデータを前記ホスト装置から指定されたブロックサイズのデータブロックに分割して送受信するインターフェース部、
前記データを格納するデータバッファ、
前記インターフェース部が、前記ホスト装置からデータブロックのブロックサイズを指定するコマンドを受信した場合、そのブロックサイズの情報を記憶する記憶部、
を有し、
前記インターフェース部は、前記ホスト装置から前記データブロックのブロックサイズの情報を含むデータを前記データ線で送信するというコマンド（以下、「ブロックサイズ設定コマンド」と呼ぶ。）を受信し、そのブロックサイズが前記データバッファの容量よりも大きい場合前記ブロックサイズ設定コマンドと所定の関係にある１つの時点でそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信することを特徴とする電子装置。
【請求項２】
前記所定の関係にある１つの時点が前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時点であって、
前記コマンドのレスポンスに前記エラー情報を含めて送信し且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けないことを特徴とする請求項１に記載の電子装置。
【請求項３】
前記所定の関係にある１つの時点が前記ブロックサイズ設定コマンドの次に前記ホスト装置から送信されたコマンドを受信した時点であって、
前記コマンドに対応するレスポンスに前記エラー情報を含めたレスポンスを付加して送信することを特徴とする請求項１に記載の電子装置。
【請求項４】
前記インターフェース部は、前記ホスト装置から前記データブロックのブロックサイズの情報を含むコマンドを前記コマンド／レスポンス線を通じて受信し、そのブロックサイズが前記データバッファの容量よりも大きい場合、
その後前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時に、そのコマンドに対してそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信し、且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けず、又は、
その次に前記ホスト装置から送信されたコマンドに対応するレスポンスに、ブロックサイズを指定するコマンドに対する応答がエラーであるという情報を付加して送信する、
ことを特徴とする請求項１に記載の電子装置。
【請求項５】
電子装置がＩＣカードであることを特徴とする請求項１に記載の電子装置。
【請求項６】
電子装置にコマンドを送信し前記電子装置からレスポンスを受信するコマンド／レスポンス線と、前記電子装置との間で前記コマンド／レスポンス線を通じてコマンド及びレスポンスを送受信した後必要に応じてコマンドに応じたデータを送受信するデータ線とに接続され、前記データが所定以上の長さを有する場合はそのデータを分割して生成した所定のブロックサイズのデータブロックを送受信し前記電子装置にそのブロックサイズを指定するコマンドを送信するインターフェース部を有し、
前記インターフェース部は、前記データブロックのブロックサイズの情報を含むデータを前記データ線で送信するというブロックサイズ設定コマンドを前記電子装置に送信しそのデータを送信した後、前記ブロックサイズ設定コマンドと所定の関係にある１つの時点に前記電子装置から前記データブロックのブロックサイズの指定値に応じることが出来ないというエラー情報を含むレスポンスが送られてきた場合、前記電子装置にそのデータバッファのデータ容量を問い合わせるコマンドを送信し、それに対するレスポンスに基づいて前記電子装置のデータバッファの容量以下で新たなブロックサイズを決定し前記電子装置に新たなブロックサイズを指定するコマンドを送信することを特徴とするホスト装置。
【請求項７】
前記所定の関係にある１つの時点が所定以上の長さを有するデータを前記ブロックサイズに分割して実際に送信し又は受信するというコマンドを前記電子装置に送信した時点であることを特徴とする請求項６に記載のホスト装置。
【請求項８】
前記所定の関係にある１つの時点が前記ブロックサイズ設定コマンドの次に前記電子装置にコマンドを送信した時点であることを特徴とする請求項６に記載のホスト装置。
【請求項９】
ホスト装置から所定以上の長さを有するデータを複数のデータブロックに分割して送受信する場合における、各データブロックのブロックサイズの情報を含むデータをデータ線で送信するというブロックサイズ設定コマンドをコマンド／レスポンス線を通じて受信し、前記コマンド／レスポンス線を通じてそれに対するレスポンスを送信し、その後そのデータを受信する受信ステップと、
前記ブロックサイズが内蔵するデータバッファの容量よりも大きいか否かを判断する判断ステップと、
前記ブロックサイズ設定コマンドと所定の関係にある１つの時点で前記ブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信するエラー情報送信ステップと、
を有することを特徴とする電子装置の制御方法。
【請求項１０】
前記所定の関係にある１つの時点が前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時点であって、
前記コマンドのレスポンスに前記エラー情報を含めて送信し且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けないことを特徴とする請求項９に記載の電子装置の制御方法。
【請求項１１】
前記所定の関係にある１つの時点が前記ブロックサイズ設定コマンドの次に前記ホスト装置から送信されたコマンドを受信した時点であって、
前記コマンドに対応するレスポンスに前記エラー情報を含めたレスポンスを付加して送信することを特徴とする請求項９に記載の電子装置の制御方法。
【請求項１２】
前記ホスト装置から前記データブロックのブロックサイズの情報を含むコマンドを前記コマンド／レスポンス線を通じて受信するステップを更に有し、前記判断ステップにおいてそのブロックサイズが前記データバッファの容量よりも大きいと判断した場合、
その後前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時に、そのコマンドに対してそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信し、且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けず、又は、
その次に前記ホスト装置から送信されたコマンドに対応するレスポンスに、ブロックサイズを指定するコマンドに対する応答がエラーであるという情報を付加して送信する、
ことを特徴とする請求項９に記載の電子装置の制御方法。
【請求項１３】
電子装置がＩＣカードであることを特徴とする請求項９に記載の電子装置の制御方法。
【請求項１４】
所定以上の長さを有するデータを複数のデータブロックに分割して送受信する場合における、各データブロックのブロックサイズの情報を含むデータをデータ線で送信するというブロックサイズ設定コマンドをコマンド／レスポンス線を通じて電子装置に送信し、前記コマンド／レスポンス線を通じてそれに対するレスポンスを受信し、その後そのデータを送信する送信ステップと、
前記ブロックサイズ設定コマンドと所定の関係にある１つの時点でそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを受信した場合、前記電子装置にそのデータバッファのデータ容量を問い合わせるコマンドを送信するステップと、
それに対するレスポンスに基づいて前記電子装置のデータバッファの容量以下で新たなブロックサイズを決定し、前記電子装置に新たなブロックサイズを指定するコマンドを送信する送信ステップと、
を有することを特徴とするホスト装置の制御方法。
【請求項１５】
前記所定の関係にある１つの時点が所定以上の長さを有するデータを前記ブロックサイズに分割して実際に送信し又は受信するというコマンドを前記電子装置に送信した時点であることを特徴とする請求項１４に記載のホスト装置の制御方法。
【請求項１６】
前記所定の関係にある１つの時点が前記ブロックサイズ設定コマンドの次に前記電子装置にコマンドを送信した時点であることを特徴とする請求項１４に記載のホスト装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置、その制御方法、ホスト装置及びその制御方法に関する。
【背景技術】
【０００２】
近年、不揮発性メモリと他の機能とを搭載したＩＣカード（電子装置に含まれる。）が開発され、市場に普及してきた。例えば、フラッシュメモリと無線通信機能とを搭載したＩＣカードをＰＤＡ（Personal Digital Assistants、ホスト装置）に装着し、ＩＣカードが受信した映像データ及び音声データをＰＤＡに転送し、ＰＤＡのディスプレイ及びスピーカから映像データ及び音声データを出力する、という技術が実現されつつある。
また従来から、ＰＤＡ等のホスト装置がＩＣカードにデータを転送し、ＩＣカードのフラッシュメモリに記憶する機能が実用化されている。
【０００３】
一般に、ホスト装置とＩＣカードとの間で行われるデータ転送は、ホスト装置をマスターとするマスター／スレーブ方式の通信で行われる。ホスト装置がコマンドをＩＣカードに送信し、それに対してＩＣカードがレスポンスをホスト装置に返す。コマンド及びレスポンスを送受信した後、必要に応じて更にデータ転送を行うことが出来るホスト装置及びＩＣカードがある。ホスト装置は、データ転送のタイミング及び転送するデータのサイズを決定し、それに従ってＩＣカードはデータを受信又は送信する。
【０００４】
ホスト装置とＩＣカードとの間でのデータ転送の一つにマルチブロック転送と呼ばれる方法がある。マルチブロック転送とは、データが所定以上の長さを有する場合（典型的には所定のブロックサイズ以上の長さを有する場合）、（１）そのデータを所定のブロックサイズの複数のデータブロックに分割し、（２）その後複数のデータブロックを断続的に転送する方法である。
【０００５】
ホスト装置は、１データブロックのブロックサイズを決定し、データ転送を開始する前にＩＣカードにブロックサイズの情報を送信する。具体的には、ホスト装置は、１バイトのブロックサイズの設定データを含むコマンド（「第１のブロックサイズ設定コマンド」と呼ぶ。）をＩＣカードに送信し、ＩＣカードは、受信したブロックサイズのデータをＩＣカード内のレジスタに設定する。
【０００６】
通常、ホスト装置はＩＣカードからＩＣカードの送受信用のデータバッファの容量を読み出して、ブロックサイズをその容量以下の大きさに設定する。
ところが、汎用のＩＣカードは様々なホスト装置に装着可能である。ホスト装置は汎用の種々のＩＣカード（いずれのＩＣカードも同一の規格に従う。）を装着可能である。それ故に、ホスト装置によっては、ＩＣカードのデータバッファの容量を読み出すことなく又は間違った値を読み出して、ＩＣカードのデータバッファの容量よりも大きいブロックサイズを設定してしまう場合がある。
【０００７】
ホスト装置からＩＣカードに、データバッファの容量よりも大きいサイズのデータブロックが送られてきた場合、ＩＣカードのデータバッファはオーバーフローを起こす。又、ホスト装置がＩＣカードに、データバッファの容量よりも大きいサイズのデータブロックを送信することを要求した場合、ＩＣカードはそのデータブロックを送信することが出来ない。そのためＩＣカードは、データバッファの容量より大きいブロックサイズの設定コマンドを受信した場合、エラー情報をホスト装置に送信する必要がある。
ホスト装置は、ブロックサイズの設定コマンドに対するレスポンスとしてエラー情報を受信した場合、データバッファの容量以下の大きさのブロックサイズの設定コマンドを新たに送信する必要がある。
【０００８】
ＩＣカードは、ブロックサイズの設定データを含む第１のブロックサイズ設定コマンドを受信する。ブロックサイズの設定データがバッファ容量より大きい場合には、ＩＣカードは第１のブロックサイズ設定コマンドに対するレスポンスにエラー情報を含めてホスト装置に送信する。これにより、ＩＣカードのデータバッファがブロックサイズの送受信時にオーバーフローすることを未然に防ぐ。
【０００９】
ホスト装置からＩＣカードにデータを送信する場合（ホスト装置がＩＣカードにデータ書き込み指令を送信した場合）について説明する。ホスト装置は、まず転送するデータを所定のブロックサイズで分割して複数のデータブロックを生成する。次にホスト装置は、ＩＣカードに複数のデータブロックを順に送信する。
【００１０】
ＩＣカードからホスト装置にデータを送信する場合（ホスト装置がＩＣカードにデータ読み出し指令を送信した場合）について説明する。ＩＣカードは、まず転送するデータをホスト装置が設定したブロックサイズで分割して複数のデータブロックを生成する。次にＩＣカードは、ホスト装置に複数のデータブロックを順に送信する。
マルチブロック転送は、複数のデータブロックを断続的に送るため、大量のデータを高速で転送するのに効果的である。
【００１１】
特開平１１−２９８４５０号公報に、シリアルデータ転送時にオーバーフローが発生した場合にエラー信号をホスト装置に送信する従来例のＩＣカードが開示されている。従来例のＩＣカードは、内蔵するＣＰＵを介さずにホスト装置にエラー信号を送信する。従来例のＩＣカードは、内蔵する受信データバッファがオーバーフローを発生した場合に、ホスト装置にエラー情報を送信する。
【００１２】
【特許文献１】特開平１１−２９８４５０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
従来、マルチブロック転送におけるブロックサイズの設定は、ブロックサイズの設定データを含む第１のブロックサイズ設定コマンドでのみ行われていた。第１のブロックサイズ設定コマンドが含むことができるブロックサイズ設定データは、プロトコルにより例えば１バイトと決められている。
【００１４】
ＩＣカードのメモリ容量が増大し、ＩＣカードとホスト装置との間で大量のデータが転送されるようになってくると、ブロックサイズの設定データは１バイトでは不足するようになる。しかし、コマンドの中に１バイトのデータ領域のみを割り当てた第１のブロックサイズ設定コマンドを用いて、ホスト装置がＩＣカードに２バイトのブロックサイズのデータを送信することは出来ない。
【００１５】
そこで、従来の第１のブロックサイズ設定コマンドに加えて、ホスト装置が２バイト以上のブロックサイズのデータをＩＣカードに送信可能なコマンド（「第２のブロックサイズ設定コマンド」と呼ぶ。）を用いることが提案されている。
【００１６】
第２のブロックサイズ設定コマンドは、コマンドの中にブロックサイズの設定データを有しない。第２のブロックサイズ設定コマンドは、（１）ホスト装置がブロックサイズの設定データを送信するというコマンドを送信し、（２）ＩＣカードからのレスポンスを受信し、（３）その後に、ブロックサイズの設定データを送信する、というプロトコルで送信される。
【００１７】
ホスト装置とＩＣカードとはコマンド−レスポンス−データという順でやり取りする。そのため、ＩＣカードはブロックサイズの設定データがデータバッファ容量より大きい場合に、設定データが大きすぎるというエラー情報をレスポンスに含めることができない。
【００１８】
第２のブロックサイズ設定コマンドを用いた場合、ＩＣカードはブロックサイズの設定データがそのデータバッファ容量より大きい場合に、ホスト装置にエラー情報をレスポンスとして送ることが出来ないという問題があった。
【００１９】
ブロックサイズを設定するのに第１のブロックサイズ設定コマンドと第２のブロックサイズ設定コマンドの両方を使用可能にすると、使用するコマンドによって、ブロックサイズの設定に関するエラー情報がＩＣカードからホスト装置に返ってくる場合と返ってこない場合とが発生する。このため、ホスト装置の設計が複雑になるという問題があった。
【００２０】
そこで、データを送るタイミングをレスポンスの前にして、コマンド−データ−レスポンスという順にすることも考えられる。このプロトコルに従ってホスト装置がＩＣカードにブロックサイズ設定コマンドを送信した場合、ＩＣカードはレスポンスを返す前にブロックサイズの設定データを受信する。それ故に、ブロックサイズが大き過ぎる場合はエラー情報をレスポンスとして返すことができる。
しかし、このプロトコルに従ったデータ転送において、例えばコマンドにエラーがあった場合（例えばコマンドが、ＩＣカードが処理できないようなデータをホスト装置から送信するコマンドである場合）、ＩＣカードはすぐにエラー情報をレスポンスとして返せない。そのため、無駄に多量のデータが転送されてしまうという問題があった。
【００２１】
特許文献１に記載の従来例のＩＣカードは、データを受信して、受信データバッファがオーバーフローを発生した時に、エラー信号をホスト装置に送信する。そのため、ホスト装置からのデータの送信が無駄になってしまう。ホスト装置は、ＩＣカードが受信できなかったデータを再送しなければならない。ＩＣカードがデータの転送前にオーバーフローを起こすというエラー情報をホスト装置に送信することができれば、上記の無駄なデータの転送（ＩＣカードが受信できないデータ転送）の問題を未然に防ぐことができる。
【００２２】
本発明は、上記従来の問題点を解決しようとするもので、ホスト装置と電子装置（例えばＩＣカード）とがコマンド−レスポンス−データを順に送信するというプロトコルに従って、ホスト装置がブロックサイズの設定データを送信した場合にも、電子装置がそのブロックサイズの設定データを受け入れられない場合に、ホスト装置にエラー情報を送信する電子装置、その制御方法、それに対応するホスト装置及びその制御方法を提供することを目的とする。
本発明は、ブロックサイズの設定コマンドの種類に関わらず、ブロックサイズの設定に関するエラー情報を所定のタイミングでホスト装置に送る電子装置、その制御方法、それに対応するホスト装置及びその制御方法を提供することを目的とする。
本発明は、ホスト装置の設計を複雑にすることなく、ブロックサイズの設定に関するエラー情報をホスト装置に送る電子装置、その制御方法、ホスト装置及びその制御方法を提供することを目的とする。
本発明は、電子装置の送受信用のデータバッファのオーバーフローを未然に防ぐ電子装置、その制御方法、ホスト装置及びその制御方法を提供することを目的とする。
本発明は、汎用のホスト装置と汎用の電子装置とを互換性をもって組み合わせ可能な電子装置、その制御方法、ホスト装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記課題を解決するため、本発明は下記の構成を有する。
本発明の１つの観点による電子装置は、ホスト装置からのコマンドを受信し前記ホスト装置へレスポンスを送信するコマンド／レスポンス線と、前記ホスト装置との間で前記コマンド／レスポンス線を通じてコマンド及びレスポンスを送受信した後必要に応じてコマンドに応じたデータを送受信するデータ線とに接続され、前記データが所定以上の長さを有する場合はそのデータを前記ホスト装置から指定されたブロックサイズのデータブロックに分割して送受信するインターフェース部、前記データを格納するデータバッファ、前記インターフェース部が、前記ホスト装置からデータブロックのブロックサイズを指定するコマンドを受信した場合、そのブロックサイズの情報を記憶する記憶部、を有し、前記インターフェース部は、前記ホスト装置から前記データブロックのブロックサイズの情報を含むデータを前記データ線で送信するというコマンド（以下、「ブロックサイズ設定コマンド」と呼ぶ。）を受信し、そのブロックサイズが前記データバッファの容量よりも大きい場合前記ブロックサイズ設定コマンドと所定の関係にある１つの時点でそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信する。
【００２４】
本発明の１つの観点による電子装置の制御方法は、ホスト装置から所定以上の長さを有するデータを複数のデータブロックに分割して送受信する場合における、各データブロックのブロックサイズの情報を含むデータをデータ線で送信するというブロックサイズ設定コマンドをコマンド／レスポンス線を通じて受信し、前記コマンド／レスポンス線を通じてそれに対するレスポンスを送信し、その後そのデータを受信する受信ステップと、前記ブロックサイズが内蔵するデータバッファの容量よりも大きいか否かを判断する判断ステップと、前記ブロックサイズ設定コマンドと所定の関係にある１つの時点で前記ブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信するエラー情報送信ステップと、を有する。
【００２５】
ここで、ブロックサイズ設定コマンドとは、実施の形態の「第２のブロックサイズ設定コマンド」である。
これらの発明は、ホスト装置と電子装置（例えばＩＣカード）とがコマンド−レスポンス−データを順に送信するというプロトコルに従って、ホスト装置がブロックサイズの設定データを送信した場合にも、電子装置がそのブロックサイズの設定データを受け入れられない場合に、ホスト装置にエラー情報を送信する電子装置及びその制御方法を実現できるという作用を有する。
これらの発明は、ホスト装置の設計を複雑にすることなく、ブロックサイズの設定に関するエラー情報を所定のタイミングでホスト装置に送る電子装置及びその制御方法を実現する。
【００２６】
本発明の他の観点による上記の電子装置において、前記所定の関係にある１つの時点が前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時点であって、前記コマンドのレスポンスに前記エラー情報を含めて送信し且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けない。
【００２７】
本発明の他の観点による上記の電子装置の制御方法において、前記所定の関係にある１つの時点が前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時点であって、前記コマンドのレスポンスに前記エラー情報を含めて送信し且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けない。
【００２８】
これらの発明により、ホスト装置は「データブロックを実際に送信し又は受信するというコマンド」に対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
【００２９】
本発明の別の観点による上記の電子装置において、前記所定の関係にある１つの時点が前記ブロックサイズ設定コマンドの次に前記ホスト装置から送信されたコマンドを受信した時点であって、前記コマンドに対応するレスポンスに前記エラー情報を含めたレスポンスを付加して送信する。
【００３０】
本発明の別の観点による上記の電子装置の制御方法において、前記所定の関係にある１つの時点が前記ブロックサイズ設定コマンドの次に前記ホスト装置から送信されたコマンドを受信した時点であって、前記コマンドに対応するレスポンスに前記エラー情報を含めたレスポンスを付加して送信する。
【００３１】
これらの発明により、ホスト装置はブロックサイズ設定コマンドの次のコマンドに対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
【００３２】
本発明の更に別の観点による上記の電子装置において、前記インターフェース部は、前記ホスト装置から前記データブロックのブロックサイズの情報を含むコマンドを前記コマンド／レスポンス線を通じて受信し、そのブロックサイズが前記データバッファの容量よりも大きい場合、その後前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時に、そのコマンドに対してそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信し、且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けず、又は、その次に前記ホスト装置から送信されたコマンドに対応するレスポンスに、ブロックサイズを指定するコマンドに対する応答がエラーであるという情報を付加して送信する。
【００３３】
本発明の更に別の観点による上記の電子装置の制御方法において、前記ホスト装置から前記データブロックのブロックサイズの情報を含むコマンドを前記コマンド／レスポンス線を通じて受信するステップを更に有し、前記判断ステップにおいてそのブロックサイズが前記データバッファの容量よりも大きいと判断した場合、その後前記ホスト装置から所定以上の長さを有するデータを分割して生成した前記ブロックサイズのデータブロックを実際に送信し又は受信するというコマンドを受信した時に、そのコマンドに対してそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを送信し、且つ前記ホスト装置から分割されたデータブロックが送信された場合にはそれを受け付けず、又は、その次に前記ホスト装置から送信されたコマンドに対応するレスポンスに、ブロックサイズを指定するコマンドに対する応答がエラーであるという情報を付加して送信する。
【００３４】
ここで、電子装置がコマンド／レスポンス線を介して受信する「データブロックのブロックサイズの情報を含むコマンド」とは、実施の形態の「第１のブロックサイズ設定コマンド」である。
これらの発明によれば、第１のブロックサイズ設定コマンドに対しても、第２のブロックサイズ設定コマンドと同様に、その後の所定のコマンドに対するレスポンスの中で、ブロックサイズ設定コマンドに対する可否を応える。ホスト装置は、送信するブロックサイズの設定コマンドの種類にかかわらず、ブロックサイズに関するエラー情報を一定のタイミングで受信することが出来る。
これらの発明は、ホスト装置の設計を複雑にすることなく、ブロックサイズの設定に関するエラー情報をホスト装置に送る電子装置及びその制御方法を実現する。
【００３５】
本発明の更に別の観点による上記の電子装置はＩＣカードである。
【００３６】
本発明の更に別の観点による上記の電子装置の制御方法において、前記電子装置はＩＣカードである。
【００３７】
これらの発明は、汎用性があり、多彩な製品のバリエーションを有するＩＣカードにおいて、有用である。
【００３８】
本発明の１つの観点によるホスト装置は、電子装置にコマンドを送信し前記電子装置からレスポンスを受信するコマンド／レスポンス線と、前記電子装置との間で前記コマンド／レスポンス線を通じてコマンド及びレスポンスを送受信した後必要に応じてコマンドに応じたデータを送受信するデータ線とに接続され、前記データが所定以上の長さを有する場合はそのデータを分割して生成した所定のブロックサイズのデータブロックを送受信し前記電子装置にそのブロックサイズを指定するコマンドを送信するインターフェース部を有し、前記インターフェース部は、前記データブロックのブロックサイズの情報を含むデータを前記データ線で送信するというブロックサイズ設定コマンドを前記電子装置に送信しそのデータを送信した後、前記ブロックサイズ設定コマンドと所定の関係にある１つの時点に前記電子装置から前記データブロックのブロックサイズの指定値に応じることが出来ないというエラー情報を含むレスポンスが送られてきた場合、前記電子装置にそのデータバッファのデータ容量を問い合わせるコマンドを送信し、それに対するレスポンスに基づいて前記電子装置のデータバッファの容量以下で新たなブロックサイズを決定し前記電子装置に新たなブロックサイズを指定するコマンドを送信する。
【００３９】
本発明の１つの観点によるホスト装置の制御方法は、所定以上の長さを有するデータを複数のデータブロックに分割して送受信する場合における、各データブロックのブロックサイズの情報を含むデータをデータ線で送信するというブロックサイズ設定コマンドをコマンド／レスポンス線を通じて電子装置に送信し、前記コマンド／レスポンス線を通じてそれに対するレスポンスを受信し、その後そのデータを送信する送信ステップと、前記ブロックサイズ設定コマンドと所定の関係にある１つの時点でそのブロックサイズに応じることが出来ないというエラー情報を含むレスポンスを受信した場合、前記電子装置にそのデータバッファのデータ容量を問い合わせるコマンドを送信するステップと、それに対するレスポンスに基づいて前記電子装置のデータバッファの容量以下で新たなブロックサイズを決定し、前記電子装置に新たなブロックサイズを指定するコマンドを送信する送信ステップと、を有する。
【００４０】
これらの発明は、（１）上記の電子装置（例えばＩＣカード）と接続されたホスト装置がブロックサイズの設定データを送信し、（２）電子装置がそのブロックサイズの設定データを受け入れられないというエラー情報を送信した場合、ホスト装置が適切にブロックサイズの設定データを変更し、マルチブロック転送を実行する、簡単な構成のホスト装置及びその制御方法を実現できるという作用を有する。
【００４１】
本発明の他の観点による上記のホスト装置において、前記所定の関係にある１つの時点が所定以上の長さを有するデータを前記ブロックサイズに分割して実際に送信し又は受信するというコマンドを前記電子装置に送信した時点である。
【００４２】
本発明の他の観点による上記のホスト装置の制御方法において、前記所定の関係にある１つの時点が所定以上の長さを有するデータを前記ブロックサイズに分割して実際に送信し又は受信するというコマンドを前記電子装置に送信した時点である。
【００４３】
これらの発明により、ホスト装置は「所定以上の長さを有するデータをブロックサイズに分割して実際に送信し又は受信するというコマンド」に対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
【００４４】
本発明の別の観点による上記のホスト装置において、前記所定の関係にある１つの時点が前記ブロックサイズ設定コマンドの次に前記電子装置にコマンドを送信した時点である。
【００４５】
本発明の別の観点による上記のホスト装置の制御方法において、前記所定の関係にある１つの時点が前記ブロックサイズ設定コマンドの次に前記電子装置にコマンドを送信した時点である。
【００４６】
これらの発明により、ホスト装置はブロックサイズ設定コマンドの次のコマンドに対するレスポンスを受け取って、ブロックサイズの設定に関するエラー情報を確認できる。これにより、ホスト装置の設計を複雑にすることなく、ホスト装置は電子装置からエラー情報を受け取ることができる。
【発明の効果】
【００４７】
本発明によれば、ホスト装置と電子装置（例えばＩＣカード）とがコマンド−レスポンス−データを順に送信するというプロトコルに従って、ホスト装置がブロックサイズの設定データを送信した場合にも、電子装置がそのブロックサイズの設定データを受け入れられない場合に、ホスト装置にエラー情報を送信する電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、ブロックサイズの設定コマンドの種類に関わらず、ブロックサイズの設定に関するエラー情報を所定のタイミングでホスト装置に送る電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
【００４８】
本発明によれば、ブロックサイズの設定コマンドの種類を１つに限定することなく且つホスト装置の設計を複雑にすることなく、エラー情報をホスト装置に送る電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、ＩＣカードの送受信用のデータバッファのオーバーフローを未然に防ぐ電子装置、その制御方法、それに対応するホスト装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、汎用のホスト装置と汎用の電子装置とを互換性をもって組み合わせ可能な電子装置、その制御方法、ホスト装置及びその制御方法を実現できるという有利な効果が得られる。
【００４９】
発明の新規な特徴は添付の請求の範囲に特に記載したものに他ならないが、構成及び内容の双方に関して本発明は、他の目的や特徴と共に、図面と共同して理解されるところの以下の詳細な説明から、より良く理解され評価されるであろう。
【発明を実施するための最良の形態】
【００５０】
以下本発明の実施をするための最良の形態を具体的に示した実施の形態について、図面とともに記載する。
【００５１】
《実施の形態１》
図１〜５を参照して、本発明の実施の形態１の電子装置（本発明においてはＩＣカードである。）、その制御方法、ホスト装置及びその制御方法を説明する。図１は、本発明の実施の形態１のＩＣカードの構成を示すブロック図である。
実施の形態１において、ホスト装置１０１は、ＩＣカード１０２の挿入スロットを有するＰＤＡ（Personal Digital Assistants）である。
【００５２】
ホスト装置１０１とＩＣカード１０２とは、コマンド／レスポンス線１３１、１又は複数のデータ線１３２、ホスト装置１０１からインターフェース部１１１に通信用クロックを送るクロック線１３３とで接続される。その他、ホスト装置１０１からＩＣカード１０２に電力を供給する電源線、及びグラウンド線で接続される（図示していない）。
コマンド／レスポンス線１３１、データ線１３２、クロック線１３３は、ハードワイヤ以外にも互いに異なる周波数による電磁波伝送、超音波伝送を含むことができる。
ホスト装置１０１とＩＣカード１０２とは、ホスト装置１０１をマスターとしＩＣカード１０２をスレーブとするマスター／スレーブ方式の通信を行う。
【００５３】
ホスト装置１０１は、コマンド／レスポンス線１３１、データ線１３２、クロック線１３３を利用してＩＣカード１０２との間でコマンド、レスポンス、及びデータの送受信を行うインターフェース部を有する（図示していない）。
【００５４】
ＩＣカード１０２は、ホスト装置１０１との間でコマンド、レスポンス、及びデータの送受信を行うインターフェース部１１１、ブロックサイズに関するエラー情報を生成するエラー情報生成部１１２、データを一時的に格納するデータバッファ１１３、メモリ機能及び／又は無線通信機能を有する機能モジュール１１４を有する。
エラー情報生成部１１２は、ホスト装置１０１が決定したブロックサイズを記憶するブロックサイズ記憶部１２１、データバッファ１１３のサイズを記憶するバッファ容量記憶部１２２、ブロックサイズとバッファ容量を比較する比較部１２３を有する。
インターフェース部１１１は、ホスト装置１０１に送信するレスポンスを生成するレスポンス生成部１２４を有する。
【００５５】
ＩＣカード１０２のインターフェース部１１１は、コマンド／レスポンス線１３１を介して、ホスト装置１０１から送信されたコマンドを受信し、そのコマンドに対するレスポンスをホスト装置１０１に送信する。
ＩＣカード１０２のインターフェース部１１１は、データ線１３２を介して、ホスト装置１０１から送信されたデータを受信し、又はＩＣカード内のデータをホスト装置１０１に送信する。
コマンド／レスポンス線１３１及びデータ線１３２を介して、ホスト装置１０１とＩＣカード１０２とが通信する時、クロック線１３３を介してホスト装置１０１からＩＣカード１０２にクロックが送られる。
【００５６】
マルチブロック転送を行う場合、ホスト装置１０１はデータブロックのやり取りをする前に１データブロックのブロックサイズを決定して、ＩＣカードのブロックサイズ記憶部１２１に書き込む。ブロックサイズ記憶部１２１は、ホスト装置１０１がブロックサイズを書き込むためのレジスタである。
バッファ容量記憶部１２２は、データバッファ１１３の容量を記憶するレジスタである。
【００５７】
比較部１２３は、ブロックサイズ記憶部１２１に書き込まれているブロックサイズと、バッファ容量記憶部１２２に書き込まれているバッファ容量とを比較する。比較部１２３は、比較結果をレスポンス生成部１２４に伝送する。
レスポンス生成部１２４は、比較結果に基づいて、バッファ容量記憶部１２２に書き込まれているデータバッファ１１３の容量よりも、ブロックサイズ記憶部１２１に書き込まれているブロックサイズのほうが大きい場合に、ホスト装置１０１に送信するレスポンスにエラー情報を含める。
【００５８】
ＩＣカード１０２は、ホスト装置１０１からデータ線１３２を介して送信されたデータブロックをデータバッファ１１３に一旦格納してから、機能モジュール１１４に伝送する。ＩＣカード１０２は、機能モジュール１１４から取り出したデータブロックを、一旦データバッファ１１３に格納してから、ホスト装置１０１に送信する。
データバッファ１１３は、データブロックを一時的に格納するレジスタである。
機能モジュール１１４は、例えばフラッシュメモリと無線通信機能とを搭載した機能モジュールである。
【００５９】
図１において、インターフェース部１１１−ブロックサイズ記憶部１２１、インターフェース部１１１−バッファ容量記憶部１２２、ブロックサイズ記憶部１２１−比較部１２３、バッファ容量記憶部１２２−比較部１２３、比較部１２３−レスポンス生成部１２４、インターフェース部１１１−データバッファ１１３、データバッファ１１３−機能モジュール１１４の各線は、ハードワイヤードでも良いが、より一般的にはソフトウェアの働きによって構成される機能の指令のルートである。
【００６０】
図２は、ホスト装置１０１とＩＣカード１０２との間の、コマンド、レスポンス、及びデータのやり取りを時系列に示す図である。ホスト装置１０１をマスターとし、ＩＣカード１０２をスレーブとする、マスター／スレーブ方式の通信でマルチブロック転送を行う場合、ホスト装置からＩＣカードへのコマンドの送信と、ＩＣカードからホスト装置へのレスポンスの送信とを交互に行う。その後複数のデータブロックを断続的に転送する。図２は、ホスト装置１０１がＩＣカード１０２のデータを読み出す場合である。
【００６１】
コマンド２０１、コマンド２０４、及びブロックサイズの設定データ２０３は、ホスト装置１０１からＩＣカード１０２に送信される。レスポンス２０２、レスポンス２０５、及びデータブロック２０６は、ＩＣカード１０２からホスト装置１０１に送信される。
但し、コマンド２０１が第１のブロックサイズ設定コマンドの場合、破線で示すブロックサイズの設定データ２０３はホスト装置からＩＣカードに送信されない（詳細は後述する）。コマンド２０１が第２のブロックサイズ設定コマンドの場合のみ、ブロックサイズの設定データ２０３はホスト装置からＩＣカードに送信される。
【００６２】
図３及び図４は、この実施の形態でホスト装置１０１がＩＣカード１０２にブロックサイズの設定を行う２つの場合のフローチャートである。ホスト装置１０１がブロックサイズの設定に使用するコマンドは、図３の場合と図４の場合の２種類有る。図３の場合と図４の場合との違いは、コマンドの中にブロックサイズの設定データが含まれているか否かである。
【００６３】
図３の場合から説明する。図３は、コマンドの中に設定データが含まれている第１のブロックサイズ設定コマンドを使用して、ブロックサイズを設定する場合である。
ホスト装置１０１は、１データブロックのブロックサイズを決定すると、ブロックサイズの設定データを含む第１のブロックサイズ設定コマンドを送信する（ステップ３０１、図２の２０１）。
【００６４】
ＩＣカードのインターフェース部１１１は、第１のブロックサイズ設定コマンドを受信する（ステップ３０２）。ＩＣカード１０２のブロックサイズ記憶部１２１は、ホスト装置１０１が設定したブロックサイズを格納する（ステップ３０３）。ＩＣカード１０２は、レスポンスをホスト装置１０１に送信する（ステップ３０４、図２の２０２）。
ホスト装置１０１は、レスポンス２０２を受信する（ステップ３０５）。
【００６５】
図３の場合、第１のブロックサイズ設定コマンド（図２の２０１）の中にブロックサイズの設定データが含まれているので、図２に示すブロックサイズの設定データ２０３は、ホスト装置１０１からＩＣカード１０２に送信されない。
【００６６】
実施の形態１において、比較部１２３は受信したブロックサイズがバッファ容量以下か否かの判断結果を出力する。ステップ３０４において、ＩＣカードのインターフェース部１１１は、比較部１２３の判断結果を入力し、それに基づいて第１のブロックサイズ設定コマンドに対するレスポンス（Ａｃｋ情報又はエラー情報）を送信しても良い。又は、ＩＣカードのインターフェース部１１１は、比較部１２３の判断結果を参照することなく、Ａｃｋ情報をレスポンスとして送信しても良い。
【００６７】
図４について説明する。図４は、コマンドの中にブロックサイズの設定データが含まれていない第２のブロックサイズ設定コマンドを使用して、ブロックサイズを設定する場合である。
ホスト装置１０１は、１データブロックのブロックサイズを決定すると、第２のブロックサイズ設定コマンドを送信する（ステップ４０１、図２の２０１）。
【００６８】
ＩＣカードのインターフェース部１１１は、第２のブロックサイズ設定コマンドを受信する（ステップ４０２）。ＩＣカード１０２は、レスポンスをホスト装置１０１に送信する（ステップ４０３、図２の２０２）。
【００６９】
ホスト装置１０１は、レスポンス２０２を受信する（ステップ４０４）。ホスト装置１０１は、データ線１３２を介して、ブロックサイズの設定データを送信する（ステップ４０５、図２の２０３）。
【００７０】
ＩＣカードはブロックサイズの設定データ２０３を受信する（ステップ４０６）。ＩＣカード１０２のブロックサイズ記憶部１２１は、ホスト装置１０１が設定したブロックサイズを格納する（ステップ４０７）。
【００７１】
ホスト装置１０１は、第１のブロックサイズ設定コマンド（図３）又は第２のブロックサイズ設定コマンド（図４）のどちらかのコマンドを用いてＩＣカード１０２にブロックサイズの設定を行うと、次に図５の処理を行う。
【００７２】
図５は、ホスト装置１０１とＩＣカード１０２との間でマルチブロック転送を行うフローチャートである。図５のマルチブロック転送は、ホスト装置１０１がＩＣカード１０２のデータを読み出す場合である。
【００７３】
ホスト装置１０１は、マルチブロック転送の実行（ｎ（ｎ≧１の正整数）個のデータブロックの読み出し指令の実行）コマンドを送信する（ステップ５０１、図２の２０４）。ＩＣカード１０２は、マルチブロック転送の実行コマンドを受信する（ステップ５０２）。
【００７４】
ＩＣカード１０２の比較部１２３は、ブロックサイズ記憶部１２１に格納されているブロックサイズと、バッファ容量記憶部１２２に格納されているデータバッファ１１３のサイズとを比較する（ステップ５０３）。
データバッファ１１３のサイズがブロックサイズ未満であれば、レスポンス生成部１２４はエラー情報を含めてレスポンスを生成する。インターフェース部１１１はそのエラー情報を含めたレスポンスを送信する（ステップ５０４、図２の２０５）。この場合はＩＣカード１０２はホスト装置１０１にｎ個のデータブロック２０６を送信しない。
データバッファ１１３のサイズがブロックサイズ以上であれば、エラー情報無しのレスポンスを生成し、ホスト装置に送信する（ステップ５０５、図２の２０５）。ＩＣカードはデータブロックをホスト装置に送信する（ステップ５０８、図２の２０６）。
【００７５】
ホスト装置１０１は、レスポンスを受信する（ステップ５０６）。ホスト装置１０１は、レスポンス２０５にエラー情報が含まれているか否かを判断する（ステップ５０７）。レスポンスにエラー情報が含まれていなければ、ホスト装置はデータブロックを受信する（ステップ５０９）。
【００７６】
ＩＣカード１０２はｎ個全てのデータブロックを送信したか否か判断する（ステップ５１０）。ＩＣカード１０２は、ｎ個のデータブロックを全て送信するまでステップ５０８のデータブロックの送信を繰り返す。ｎ個全てのデータブロックを送信し終えると、処理を終了する。
【００７７】
ステップ５０７において、ホスト装置１０１は、レスポンスにエラー情報が含まれていれば、ＩＣカード１０２のデータバッファ容量の送信要求指令コマンドを送信する（ステップ５１１）。
ＩＣカード１０２は、ＩＣカードのデータバッファ容量の送信要求指令コマンドを受信する（ステップ５１２）と、バッファ容量記憶部１２２に格納されているデータバッファ１１３の容量をホスト装置１０１に送信する（ステップ５１３）。
【００７８】
ホスト装置１０１はＩＣカードのデータバッファ容量を受信すると（ステップ５１４）、データバッファ容量以下で新たなブロックサイズを決定する（ステップ５１５）。ホスト装置１０１は図３の方法に従ってＩＣカードにブロックサイズを送信する（ステップ５１６）。ステップ５０１に戻り、マルチブロック転送をやり直す。
【００７９】
なお、ステップ５１６において、図３の処理に代えて図４の方法に従ってＩＣカードにブロックサイズを送信しても良い。
【００８０】
本発明のＩＣカード１０２は互換性を有する様々なホスト装置１０１に装着できる。ホスト装置１０１がＩＣカードのデータバッファ１１３の容量を正しく読み出した後にブロックサイズを決定すれば、ＩＣカード１０２はオーバーフローを起こさない。しかし、ホスト装置１０１によっては、ＩＣカードのデータバッファの容量の読み出しを行わずに、ブロックサイズを設定したり、又はデータバッファの容量を正しく読み出せずに、データバッファの容量よりも大きい値をブロックサイズに設定する場合がある。
このような場合であっても、ＩＣカード１０２は、実際にデータブロックを送受信する前に、ホスト装置にブロックサイズがデータバッファの容量よりも大きいというエラー情報を通知することができる。本発明のＩＣカード１０２は、データバッファ１１３がオーバーフローを起こすことを未然に防ぐことができる。
【００８１】
本発明のＩＣカード１０２は、ブロックサイズの設定が第１のブロックサイズ設定コマンド（図３）又は第２のブロックサイズ設定コマンド（図４）のどちらのコマンドを使用して行われた場合でも、同じタイミングでエラー情報をレスポンスに含めてホスト装置１０１に送信する（図５のステップ５０４）。これにより、ホスト装置はブロックサイズのエラー情報が含まれているか否かの判断をステップ５０７でのみすれば良い。本発明の電子装置の制御方法はホスト装置の設計を容易にすることができる。
【００８２】
なお、実施の形態１においては、ＩＣカードのデータ読み出しの場合についてのマルチブロック転送について説明したが、ホスト装置１０１がＩＣカード１０２にデータを書き込む場合のマルチブロック転送においても、本発明を適用できる。
この場合、ＩＣカードは、ホスト装置の設定したブロックサイズが内蔵するデータバッファの容量よりも大きい場合に、マルチブロック転送の実行コマンドに対するレスポンスにエラー情報を含めてホスト装置に送信する。ＩＣカードは、ホスト装置からデータブロックが送られてきた場合はそれを受け付けない。
ホスト装置は、マルチブロック転送の実行コマンドのレスポンスにエラー情報が含まれていたら、データブロックをＩＣカードに送信しない。ホスト装置は、ＩＣカードのデータバッファ容量を問い合わせて、新たなブロックサイズを設定する。
【００８３】
《実施の形態２》
図６〜９を用いて、実施の形態２の電子装置（本発明においてはＩＣカードである。）、その制御方法、ホスト装置及びその制御方法を説明する。実施の形態２が実施の形態１と違うところは、ブロックサイズがデータバッファ１１３の容量よりも大きいというエラー情報をホスト装置に送信するタイミングである。それ以外の点においては、実施の形態１と同一である。
ホスト装置１０１がブロックサイズの設定に使用するコマンドは、実施の形態１と同様に２種類（「第１のブロックサイズ設定コマンド」及び「第２のブロックサイズ設定コマンド」）ある。
【００８４】
実施の形態１においては、ホスト装置１０１が第１のブロックサイズ設定コマンド又は第２のブロックサイズ設定コマンドのどちらのコマンドを用いてブロックサイズを決定した場合であっても、ＩＣカード１０２はブロックサイズに関するエラー情報をマルチブロック転送コマンドの後のレスポンスに含めて送信した。そのため、ＩＣカードのエラー情報を送るタイミングが遅くなるという問題があった。
【００８５】
実施の形態２においては、ブロックサイズに関するエラー情報をすぐに送る電子装置、その制御方法、ホスト装置及びその制御方法を提供する。実施の形態２の電子装置、その制御方法、ホスト装置及びその制御方法は、ブロックサイズの設定コマンドの種類に応じて、エラー情報を含めるタイミングを異ならせる。
【００８６】
図６は、コマンドの中にブロックサイズの設定データが含まれている第１のブロックサイズ設定コマンドを使用して、ホスト装置がＩＣカードにブロックサイズを設定する方法を示すフローチャートである。図６において、図３及び図５と同一ステップには同一番号を付している。
【００８７】
ホスト装置１０１は、ブロックサイズの設定データを含む第１のブロックサイズ設定コマンドを送信する（ステップ３０１、図２の２０１）。
ＩＣカード１０２のインターフェース部１１１は、第１のブロックサイズ設定コマンドを受信する（ステップ３０２）。ＩＣカード１０２のブロックサイズ記憶部１２１は、ホスト装置１０１が設定したブロックサイズを格納する（ステップ３０３）。
【００８８】
ＩＣカード１０２の比較部１２３は、ブロックサイズ記憶部１２１に格納されているブロックサイズと、バッファ容量記憶部１２２に格納されているデータバッファ１１３のサイズとを比較する（ステップ５０３）。
データバッファ１１３のサイズがブロックサイズ未満であれば、レスポンス生成部１２４はエラー情報を含めてレスポンスを生成する。インターフェース部１１１はレスポンスを送信する（ステップ５０４、図２の２０２）。データバッファ１１３のサイズがブロックサイズ以上であれば、エラー情報無しのレスポンスを生成し、ホスト装置に送信する（ステップ５０５、図２の２０２）。
【００８９】
図６の場合、第１のブロックサイズ設定コマンド（図２の２０１）の中にブロックサイズの設定データが含まれているので、図２に示すブロックサイズの設定データ２０３は、ホスト装置１０１からＩＣカード１０２に送信されない。
【００９０】
ホスト装置１０１は、レスポンス２０２を受信する（ステップ５０６）。ホスト装置１０１は、レスポンスにエラー情報が含まれているか否か判断する（ステップ５０７）。エラー情報が含まれていなければ、処理を終了する。ホスト装置１０１は、レスポンスにエラー情報が含まれていれば、ＩＣカード１０２のデータバッファ容量の送信要求指令コマンドを送信する（ステップ５１１）。
【００９１】
ＩＣカード１０２は、ＩＣカードのデータバッファ容量の送信要求指令コマンドを受信する（ステップ５１２）と、バッファ容量記憶部１２２に格納されているデータバッファ１１３の容量をホスト装置１０１に送信する（ステップ５１３）。
【００９２】
ホスト装置１０１はＩＣカードのデータバッファ容量を受信すると（ステップ５１４）、データバッファ容量以下で新たなブロックサイズを決定する（ステップ５１５）。ステップ３０１に戻り、ＩＣカードに新たなブロックサイズを送信して、ブロックサイズを設定し直す。
【００９３】
図７及び図８を用いて、第２のブロックサイズ設定コマンドを使用する場合について説明する。図７は、コマンドの中にブロックサイズの設定データが含まれていない第２のブロックサイズ設定コマンドを使用して、ホスト装置がＩＣカードにブロックサイズを設定する方法を示すフローチャートである。図７において、図４及び図５と同一ステップには同一番号を付している。
【００９４】
図８は、ＩＣカード１０２がホスト装置１０１に送信するレスポンスの構成を示す図である。図８（ａ）は通常のレスポンスであり、ホスト装置１０１から送信された今のコマンドに対するレスポンス８０１が含まれている。
図８（ｂ）は、実施の形態２においての第２のブロックサイズ設定コマンドの次にホスト装置から送られてきたコマンドに対するレスポンスである。図８（ｂ）の次のコマンドのレスポンスは、次のコマンド（第２のブロックサイズ設定コマンドの次に送られてきたコマンド）に関するレスポンス８０１と前のコマンド（第２のブロックサイズ設定コマンド）に関するレスポンス８０２の両方が含まれている。前のコマンドのレスポンス８０２には、ブロックサイズの設定に対するＡｃｋ情報又はエラー情報が含まれる。
【００９５】
ホスト装置１０１は、第２のブロックサイズ設定コマンドを送信する（ステップ４０１、図２の２０１）。
ＩＣカードのインターフェース部１１１は、第２のブロックサイズ設定コマンドを受信する（ステップ４０２）。ＩＣカード１０２は、レスポンスをホスト装置１０１に送信する（ステップ４０３、図２の２０２）。
【００９６】
ホスト装置１０１は、レスポンス２０２を受信する（ステップ４０４）。ホスト装置１０１は、データ線１３２を介して、ブロックサイズの設定データを送信する（ステップ４０５、図２の２０３）。
ＩＣカードはブロックサイズの設定データ２０３を受信する（ステップ４０６）。ＩＣカード１０２のブロックサイズ記憶部１２１は、ホスト装置１０１が設定したブロックサイズを格納する（ステップ４０７）。
【００９７】
ＩＣカード１０２の比較部１２３は、ブロックサイズ記憶部１２１に格納されているブロックサイズと、バッファ容量記憶部１２２に格納されているデータバッファ１１３のサイズとを比較する（ステップ５０３）。
レスポンス生成部１２４は、データバッファ１１３のサイズがブロックサイズ以上であれば、Ａｃｋ情報を生成する（ステップ７０１）。データバッファ１１３のサイズがブロックサイズ未満であれば、エラー情報を生成する（ステップ７０２）。
【００９８】
ホスト装置１０１は、次のコマンドを送信する（ステップ７０３）。ＩＣカード１０２は次のコマンドを受信する（ステップ７０４）。ＩＣカード１０２は、次のコマンドに対するレスポンス８０１に前のコマンドのレスポンス８０２であるＡｃｋ情報又はエラー情報を付加して、ホスト装置に送信する（ステップ７０５、図２の２０５）。
【００９９】
ホスト装置１０１は、レスポンスを受信する（ステップ７０６）と、レスポンス２０５にブロックサイズに関するエラー情報が含まれているか否か判断する（ステップ７０７）。ブロックサイズに関するエラー情報が含まれていなければ（Ａｃｋ情報が含まれていれば）、次のコマンドに対するレスポンスの受信処理を行う（ステップ７０８）。
【０１００】
レスポンスにブロックサイズに関するエラー情報が含まれていれば、ホスト装置１０１は、ＩＣカード１０２のデータバッファ容量の送信要求指令コマンドを送信する（ステップ５１１）。
ＩＣカード１０２は、ＩＣカード１０２のデータバッファ容量の送信要求指令コマンドを受信する（ステップ５１２）と、バッファ容量記憶部１２２に格納されているデータバッファ１１３の容量をホスト装置１０１に送信する（ステップ５１３）。
【０１０１】
ホスト装置１０１はＩＣカードのデータバッファ容量を受信すると（ステップ５１４）、データバッファ容量以下で新たなブロックサイズを決定する（ステップ５１５）。ステップ４０１に戻り、ＩＣカードに第２のブロックサイズ設定コマンドを送信し、ブロックサイズを設定し直す。
【０１０２】
本発明の実施の形態２のＩＣカードは、ブロックサイズの設定データを受け取った後すぐに、ブロックサイズに関するエラー情報をホスト装置に通知できる。これにより、ブロックサイズの設定に誤りがあっても、すぐに対処できる。
【０１０３】
なお、実施の形態１において、ホスト装置１０１及びＩＣカード１０２は図３の代わりに図６の方法を用いて、ＩＣカードにブロックサイズを設定しても良い。この場合、ＩＣカードは、内蔵するデータバッファ１１３の容量よりもホスト装置１０１が設定したブロックサイズのほうが大きい場合に、第１のブロックサイズ設定コマンドに対するレスポンスに、エラー情報を含めて送信する。
【０１０４】
実施の形態２において、ホスト装置１０１及びＩＣカード１０２は図６の代わりに図３の方法を用いても良い。ホスト装置１０１が第１のブロックサイズ設定コマンド及び第２のブロックサイズ設定コマンドのいずれを送信した場合にも、ＩＣカード１０２は、次のコマンドに対するレスポンスに、前のコマンド（第１又は第２のブロックサイズ設定コマンド）のレスポンスであるＡｃｋ情報又はエラー情報を付加して、ホスト装置に送信する。
【０１０５】
発明をある程度の詳細さをもって好適な形態について説明したが、この好適形態の現開示内容は構成の細部において変化してしかるべきものであり、各要素の組合せや順序の変化は請求された発明の範囲及び思想を逸脱することなく実現し得るものである。
図面の一部又は全部は、図示を目的とした概要的表現により描かれており、必ずしもそこに示された要素の実際の相対的大きさや位置を忠実に描写しているとは限らないことは考慮願いたい。
【産業上の利用可能性】
【０１０６】
本発明は、ホスト装置と電子装置との間でマルチブロック転送を行う電子装置、その制御方法、ホスト装置及びその制御方法として有用である。
【図面の簡単な説明】
【０１０７】
【図１】図１は本発明の実施の形態１のＩＣカードの構成を示すブロック図である。
【図２】図２は本発明の実施の形態１のコマンド、レスポンス及びデータ伝送を示す図である。
【図３】図３は本発明の実施の形態１の第１のブロックサイズ設定方法を示すフローチャートである。
【図４】図４は本発明の実施の形態１の第２のブロックサイズ設定方法を示すフローチャートである。
【図５】図５は本発明の実施の形態１のマルチブロック転送方法を示すフローチャートである。
【図６】図６は本発明の実施の形態２の第１のブロックサイズ設定方法を示すフローチャートである。
【図７】図７は本発明の実施の形態２の第２のブロックサイズ設定方法を示すフローチャートである。
【図８】図８は本発明の実施の形態２のレスポンスの構成を示す図である。
【符号の説明】
【０１０８】
１０１    ホスト装置
１０２    ＩＣカード
１１１    インターフェース部
１１２    エラー情報生成部
１１３    データバッファ
１１４    機能モジュール
１２１    ブロックサイズ記憶部
１２２    バッファ容量記憶部
１２３    比較部
１２４    レスポンス生成部
【図１】
0004452690.tif 000002
【図２】
0004452690.tif 000003
【図３】
0004452690.tif 000004
【図４】
0004452690.tif 000005
【図５】
0004452690.tif 000006
【図６】
0004452690.tif 000007
【図７】
0004452690.tif 000008
【図８】
0004452690.tif 000009