(57)【要約】【課題】コマンドによりタイムアウト処理時間が異なるメモリーカードを制御するために、アプリケーションソフトが発行するコマンド毎にタイムアウト処理時間を任意に設定可能とする。【解決手段】コントローラＬＳＩ１２１は、ホスト装置１１０がメモリーカード１３０のアクセスのために発行するコマンドと当該コマンドに対応するタイムアウト処理時間情報とを含むコマンドブロックをコントローラＬＳＩ１２１のコマンドブロック受信手段１２２で受信する。コマンド実行手段１２３は、受信したコマンドブロックに従ってコマンドを解釈し、指定された要求に対応する動作コマンドをメモリーカード１３０に発行し、タイムアウト処理時間内に当該コマンド処理が終了するかを確認する。よって、ホスト装置１１０からのタイムアウト処理時間情報に従ってタイムアウト時間処理が実行される。【選択図】図１
2006350881.tif 000002
【特許請求の範囲】
【請求項１】
コマンドによりタイムアウト処理時間が異なるメモリーカードを制御する装置であって、
ホスト装置が前記メモリーカードへのアクセスのために発行するコマンドと当該コマンドに対応するタイムアウト処理時間情報とを含むコマンドブロックを受信する手段と、
前記受信したコマンドブロックに従って、前記コマンドで指定された要求に対応する動作を前記メモリーカードに実行させるために必要な１つ以上の動作コマンドを前記メモリーカードに発行し、前記タイムアウト処理時間内に前記コマンド処理が終了するかを確認するコマンド実行手段と、を備えるメモリーカード制御装置。
【請求項２】
前記タイムアウト処理時間情報は、タイムアウト処理時間を変更する必要があるかどうかを示すフラグ情報を含み、
前記コマンド実行手段は、
前記フラグ情報がタイムアウト処理時間を変更する必要があることを示す場合に、前記コマンドで指定された要求に対応する動作を前記メモリーカードに実行させるために必要な１つ以上の動作コマンドを前記メモリーカードに発行し、前記タイムアウト処理時間内に前記コマンド処理が終了するかを確認する手段と、
前記フラグ情報がタイムアウト処理時間を変更する必要が無いことを示す場合に、あらかじめ設定されているタイムアウト時間で処理を実行する手段と、を含むことを特徴とする請求項１記載のメモリーカード制御装置。
【請求項３】
コマンドによりタイムアウト処理時間が異なるメモリーカードを制御する装置であって、
ホスト装置が前記メモリーカードへのアクセスのために発行する、前記メモリーカードが実行すべき動作を直接指定する動作コマンドと当該コマンドに対応するタイムアウト処理時間情報とを含むダイレクトコマンドブロックを受信する手段と、
前記受信したダイレクトコマンドブロックに含まれる前記動作コマンドを前記メモリーカードに発行し、前記タイムアウト処理時間内に前記コマンド処理が終了するかを確認するダイレクトコマンド実行手段と、を備えるメモリーカード制御装置。
【請求項４】
前記タイムアウト処理時間情報は、タイムアウト処理時間を変更する必要があるかどうかを示すフラグ情報を含み、
前記ダイレクトコマンド実行手段は、
前記フラグ情報がタイムアウト処理時間を変更する必要があることを示す場合に、前記受信したダイレクトコマンドブロックに含まれる前記動作コマンドを前記メモリーカードに発行し、前記タイムアウト処理時間内に前記コマンド処理が終了するかを確認する手段と、
前記フラグ情報がタイムアウト処理時間を変更する必要が無いことを示す場合に、あらかじめ設定されているタイムアウト時間で処理を実行する手段と、を含むことを特徴とする請求項３記載のメモリーカード制御装置。
【請求項５】
コマンドによりタイムアウト処理時間が異なるメモリーカードを制御する、アプリケーションソフト、ドライバーソフトおよびメモリーカード制御装置を含むシステムであって、
前記アプリケーションソフトは、ユーザーの操作に応じて前記メモリーカードへ発行するコマンドと、前記メモリーカードが前記コマンド処理に必要なタイムアウト処理時間情報とを含むコマンドブロックを発行するコマンドブロック発行手段を含み、
前記ドライバーソフトは、前記コマンドブロック発行手段から発行されたコマンドブロックを受信する手段と、受信した前記コマンドを前記メモリーカード制御装置に発行するコマンド発行手段と、前記コマンドブロックで指定されたタイムアウト処理時間でタイムアウト設定時間を管理するタイマーとを含み、
前記メモリーカード制御装置は、前記コマンドを受信する手段と、前記コマンドで指定された要求に対応する動作を前記メモリーカードに実行させるために必要な１つ以上の動作コマンドを前記メモリーカードに発行するコマンド実行手段とを備え、
前記ドライバーソフトは、前記タイマーが前記タイムアウト処理時間を越えたことを検出したときに、前記アプリケーションソフトへタイムアウトエラーを通知する手段を備えることを特徴とするメモリーカード制御システム。
【請求項６】
コマンドによりタイムアウト処理時間が異なるメモリーカードを制御する、アプリケーションソフト、ドライバーソフトおよびメモリーカード制御装置を含むシステムであって、
前記アプリケーションソフトは、ユーザーの操作に応じて前記メモリーカードへ発行する、前記メモリーカードが実行すべき動作を直接指定する動作コマンドと、前記メモリーカードが前記コマンド処理に必要なタイムアウト処理時間情報とを含むダイレクトコマンドブロックを発行するダイレクトコマンドブロック発行手段を含み、
前記ドライバーソフトは、前記ダイレクトコマンドブロック発行手段から発行されたダイレクトコマンドブロックを受信する手段と、受信した前記ダイレクトコマンドブロックに含まれる前記動作コマンドを前記メモリーカード制御装置に発行するコマンド発行手段と、前記ダイレクトコマンドブロックで指定されたタイムアウト処理時間でタイムアウト設定時間を管理するタイマーとを含み、
前記メモリーカード制御装置は、前記ダイレクトコマンドブロックを受信する手段と、前記受信したダイレクトコマンドブロックに含まれる前記動作コマンドを前記メモリーカードに発行する動作コマンド発行手段とを備え、
前記ドライバーソフトは、前記タイマーが前記タイムアウト処理時間を越えたことを検出したときに、前記アプリケーションソフトへタイムアウトエラーを通知する手段を備えることを特徴とするメモリーカード制御システム。
【請求項７】
前記ドライバーソフトは、前記コマンドブロックで指定されたタイムアウト処理時間が、前記メモリーカード制御装置であらかじめ設定されているタイムアウト時間より長いかどうかの判別手段と、前記メモリーカード制御装置にあらかじめ設定されているタイムアウト時間を変更する必要があるかどうかを示すフラグ情報を設定する手段とを含み、
前記コマンドブロックで指定されたタイムアウト処理時間が前記メモリーカード制御装置であらかじめ設定されているタイムアウト時間より長い場合は、フラグ情報をタイムアウト時間無制限とし、短い場合は、タイムアウト時間は前記メモリーカード制御装置にあらかじめ設定されているタイムアウト時間のフラグ情報とし、
前記メモリーカード制御装置は、前記フラグ情報に従ってタイムアウト処理時間を無制限にする、あるいは、あらかじめ設定されているタイムアウト時間処理を行うことを特徴とする請求項５または請求項６に記載のメモリーカード制御システム。
【請求項８】
コマンドによりタイムアウト処理時間が異なるメモリーカードを制御する、アプリケーションソフト、ドライバーソフトおよびメモリーカード制御装置を含むシステムであって、
前記アプリケーションソフトは、ユーザーの操作に応じて前記メモリーカードへ発行するコマンドと、前記メモリーカードが前記コマンド処理に必要なタイムアウト処理時間情報とを含むコマンドブロックを発行するコマンドブロック発行手段を含み、
前記ドライバーソフトは、前記コマンドブロック発行手段から発行されたコマンドブロックを受信する手段と、前記メモリーカード制御装置をタイムアウト延長ステートへ移行させるタイムアウト延長ステート移行コマンド発行手段と、受信した前記コマンドを前記メモリーカード制御装置に発行するコマンド発行手段と、前記コマンドブロックで指定されたタイムアウト処理時間でタイムアウト設定時間を管理するタイマーと、メモリーカードがビジー中かどうかを判別するビジー判別コマンド発行手段と、前記メモリーカード制御装置をタイムアウト延長ステートから通常ステートへと復帰させるタイムアウト延長ステート復帰コマンド発行手段とを含み、
前記メモリーカード制御装置は、前記タイムアウト延長ステート移行手段と、前記コマンドで指定された要求に対応する動作を前記メモリーカードに実行させるために必要な１つ以上の動作コマンドを前記メモリーカードに発行する動作コマンド発行手段と、タイムアウト延長ステート移行中は、前記動作コマンドがビジー中であっても、コマンド完了を通知するコマンド完了応答手段と、前記動作コマンド発行手段によって前記メモリーカードがビジー状態であるかどうかを判別するビジー状態判別手段と、前記タイムアウト延長ステート復帰手段とを含み、
前記ドライバーソフトは、前記ビジー判別コマンド発行手段によってメモリーカードがビジー中かどうかの判別し、前記タイマーが前記タイムアウト処理時間を越えたことを検出したときに、ドライバーソフトがアプリケーションソフトへタイムアウトエラーを通知する手段を備えることを特徴とするメモリーカード制御システム。
【請求項９】
コマンドによりタイムアウト処理時間が異なるメモリーカードを制御する、アプリケーションソフト、ドライバーソフトおよびメモリーカード制御装置を含むシステムであって、
前記アプリケーションソフトは、ユーザーの操作に応じて前記メモリーカードが実行すべき動作を直接指定する動作コマンドと、前記メモリーカードが前記コマンド処理に必要なタイムアウト処理時間情報とを含むダイレクトコマンドブロックを発行するダイレクトコマンドブロック発行手段を含み、
前記ドライバーソフトは、前記ダイレクトコマンドブロック発行手段から発行されたダイレクトコマンドブロックを受信する手段と、前記メモリーカード制御装置をタイムアウト延長ステートへ移行させるタイムアウト延長ステート移行コマンド発行手段と、受信したダイレクトコマンドブロックに含まれる前記動作コマンドを前記メモリーカード制御装置に発行するコマンド発行手段と、前記ダイレクトコマンドブロックで指定されたタイムアウト処理時間でタイムアウト設定時間を管理するタイマーと、メモリーカードがビジー中かどうかを判別するビジー判別コマンド発行手段と、前記メモリーカード制御装置をタイムアウト延長ステートから通常ステートへと復帰させるタイムアウト延長ステート復帰コマンド発行手段とを含み、
前記メモリーカード制御装置は、前記タイムアウト延長ステート移行手段と、前記ダイレクトコマンドブロックを受信する手段と、前記受信したダイレクトコマンドブロックに含まれる前記動作コマンドを前記メモリーカードに発行する動作コマンド発行手段と、タイムアウト延長ステート移行中は、前記動作コマンドがビジー中であっても、コマンド完了を通知するコマンド完了応答手段と、前記動作コマンド発行手段によって前記メモリーカードがビジー状態であるかどうかを判別するビジー状態判別手段と、前記タイムアウト延長ステート復帰手段とを含み、
前記ドライバーソフトは、前記ビジー判別コマンド発行手段によってメモリーカードがビジー中かどうかの判別し、前記タイマーが前記タイムアウト処理時間を越えたことを検出したときに、前記アプリケーションソフトへタイムアウトエラーを通知する手段を備えたことを特徴とするメモリーカード制御システム。
【請求項１０】
前記ドライバーソフトは、前記コマンドブロックで指定されたタイムアウト処理時間が、前記メモリーカード制御装置であらかじめ設定されているタイムアウト時間より長いかどうかの判別手段と、前記メモリーカード制御装置にあらかじめ設定されているタイムアウト時間を変更する必要があるかどうかを示すフラグ情報を設定する手段とを含み、
前記コマンドブロックで指定されたタイムアウト処理時間が前記メモリーカード制御装置であらかじめ設定されているタイムアウト時間より長い場合は、フラグ情報をタイムアウト時間無制限とし、短い場合は、タイムアウト時間は前記メモリーカード制御装置にあらかじめ設定されているタイムアウト時間のフラグ情報とし、
前記メモリーカード制御装置は、前記フラグ情報に従ってタイムアウト処理時間を無制限にする、あるいは、あらかじめ設定されているタイムアウト時間処理を行うことを特徴とする請求項８または請求項９に記載のメモリーカード制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイムアウト処理時間が異なる複数のコマンドを有するメモリーカードを制御するメモリーカード制御装置およびシステムに関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータ、シリコンオーディオプレーヤー、デジタルカメラ、携帯電話等の様々な携帯型電子機器が開発され、これらの電子機器のリムーバブル記憶デバイスの１つとしてメモリーカードが多く用いられている。メモリーカードとしては、ＰＣカード、および、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード（登録商標）が知られている。
【０００３】
このＳＤメモリーカード（登録商標）は音楽データなどのコンテンツの著作権保護を目的としたセキュリティ機能を有しており、ＳＤメモリーカード（登録商標）に記憶した音楽データをその不正コピーなどから保護することができる。
【０００４】
一般に、このようなセキュリティ機能付きメモリーカードは、カード内にコントローラと、ユーザーが自由にアクセス可能なデータ記憶領域であるユーザーデータエリアと、セキュリティ機能に守られたデータ記憶領域であるセキュアエリアが設けられている。
【０００５】
パソコンからセキュアエリアへのアクセス方式として、特許文献１に記載されているメモリーカード制御装置によるダイレクトコマンド実行手段が一例として挙げられる。
【０００６】
ＳＤメモリーカード（登録商標）のコマンド処理時間は、ＳＤ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｐｈｙｓｉｃａｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎによって最大処理時間が規定されており、メモリーカード制御装置で、あらかじめ設定されている一意のタイムアウト処理時間で、タイムアウト処理を実行すれば良かった。
【特許文献１】特開２００３−１３２３０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
近年、ＩＣカード機能を内蔵したメモリーカード（ｓｍａｒｔＳＤカード）が発表され、前記メモリーカードに対応したメモリーカード制御装置およびシステムの供給が求められてきた。しかしながら、ＩＣカード機能のコマンド処理時間は一意の値ではなく、あらかじめ一意のタイムアウト処理時間が設定されている従来のメモリーカード制御装置では、設定されているタイムアウト処理時間を越えてしまい、ＩＣカード機能を内蔵したメモリーカードのタイムアウト処理に対応することができない問題点があった。
【０００８】
本発明は、ホスト装置がコマンドタイムアウト処理時間を任意に設定できるメモリーカード制御装置およびメモリーカード制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のメモリーカード制御装置は、メモリーカードを制御する装置であって、ホスト装置がメモリーカードへのアクセスのために発行するコマンドと当該コマンドに対応するタイムアウト処理時間情報とを含むコマンドブロックを受信する手段と、受信したコマンドブロックに従って、コマンドで指定された要求に対応する動作をメモリーカードに実行させるために必要な１つ以上の動作コマンドをメモリーカードに発行し、タイムアウト処理時間内にコマンド処理が終了するかを確認するコマンド実行手段と、を備える。
【発明の効果】
【００１０】
本発明のメモリーカード制御装置およびメモリーカード制御システムは、メモリーカードで任意に規定される最大処理時間に応じてホスト装置が自由にタイムアウト処理時間を設定可能な装置およびシステムを提供することにより、メモリーカードの最大処理時間を自由に規定できる利点がある。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施の形態について説明する。
【００１２】
（実施の形態１）
図１には、本発明の実施の形態１によるメモリーカード制御装置の構成を示すブロック図である。図１において、ホスト装置１１０は例えばパーソナルコンピュータなどのデータ処理装置であり、本実施の形態では、メモリーカード制御装置１２０はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）デバイスとして実現されており、ＵＳＢケーブル１１７を介してホスト装置１１０に接続される。
【００１３】
メモリーカード制御装置１２０には、ホスト装置１１０から発行されるコマンドを処理するためのコントローラＬＳＩ１２１と、メモリーカード１３０を装着するためのメモリーカードスロット１２５が備えられ、メモリーカードバス１２４を介してコントローラＬＳＩ１２１とメモリーカード１３０が電気的に接続されている。
【００１４】
コントローラＬＳＩ１２１には、ホスト装置１１０がメモリーカード１３０のアクセスのために発行するコマンドと当該コマンドに対応するタイムアウト処理時間情報とを含むコマンドブロックを受信するためのコマンドブロック受信手段１２２と、受信したコマンドブロックに従ってコマンドを解釈および実行して当該コマンドで指定された要求に対応する動作をメモリーカード１３０に実行させるために必要な１つ以上の動作コマンドをメモリーカード１３０に発行し、タイムアウト処理時間内にコマンド処理が終了するかを確認するコマンド実行手段１２３を備える。
【００１５】
次に、図２には本実施の形態において用いられるタイムアウト処理時間情報を含むコマンドブロック構造の一例が示されている。
【００１６】
オペレーションコード（OPERATION CODE）は、ホスト装置１１０がメモリーカード１３０に実行させたい動作を示すコマンドコードである。タイムアウト時間（TIME OUT）は、オペレーションコード処理に必要な最大タイムアウト時間を示しており、本実施の形態では、タイムアウト時間＝１００ｍｓｅｃ×TIME OUT、を一例として示している。物理ブロックアドレス（LOGICAL BLOCK ADDRESS）は、オペレーションコードがメモリーカード１３０内のデータを読み書きするコマンドを指定している場合、メモリーカード１３０内の論理アドレスを示す。転送長情報（TRANSFER LENGTH）は、オペレーションコードがメモリーカード内のデータを読み書きするコマンドを指定している場合、その読み書きするデータ転送長を示している。
【００１７】
次に、図３には本実施の形態において用いられるコマンド実行手段１２３の動作の一例を示すフローチャートが示されている。Ｓ１１０のコマンドブロック受信にてコマンドブロック受信手段１２１でのコマンドブロック受信が実行され、Ｓ１２１のコマンドブロック解釈で、ホスト装置１１０から受信したコマンドに対応するメモリーカード１３０の動作コマンドへの変換、及びメモリーカード１３０への動作コマンド発行を行う。この時、１つ以上の動作コマンドの発行が必要となる場合もある。続いて、Ｓ１２４にてタイムアウト時間で設定された時間内にメモリーカード１３０が動作コマンドの処理を完了したかどうかの確認を行い、パス（Pass）の場合（Ｙｅｓ）は正常終了し、ＮＧの場合（Ｎｏ）はタイムアウトエラー処理を実行する。
【００１８】
以上の構成によって、メモリーカード制御装置１２０のタイムアウト処理時間を、ホスト装置１１０がコマンドブロック毎に任意に設定することを可能とする。
【００１９】
（実施の形態２）
図４は、実施の形態２におけるコマンドブロック構造の一例を示す図である。実施の形態１に対して、タイムアウト処理時間を変更するかどうかを示すフラグ情報を含むコマンドブロック構造が示されている。なお、メモリーカード制御装置の構成は、図１に示した実施の形態１の構成と同様とする。
【００２０】
タイムアウトフラグ（TIME OUT Flag）は、タイムアウト時間をTIME OUTで指定された時間とするか、メモリーカード制御装置１２０であらかじめ設定されている一意の時間とするかを選択するフラグ情報である。
【００２１】
TIME OUTが“00”の時にはタイムアウト時間をメモリーカード制御装置１２０であらかじめ設定されている一意の時間とすることとすれば、タイムアウトフラグはTIME OUTの設定値で代用することも可能である。
【００２２】
図５には、図４に示したタイムアウト処理時間を変更するかどうかを示すフラグ情報を含むコマンドブロック構造を受信した場合のコマンド実行手段１２３の動作の一例が示されるフローチャートである。Ｓ１１０のコマンドブロック受信にてコマンドブロック受信手段１２２でのコマンドブロック受信が実行され、Ｓ１２１のコマンドブロック解釈で、ホスト装置１１０から受信したコマンドに対応するメモリーカード１３０の動作コマンドへの変換、及びメモリーカード１３０への動作コマンド発行を行う。この時、２つ以上の動作コマンドの発行が必要となる場合もある。続いて、Ｓ１２３にてタイムアウトフラグを確認し、TIME OUT Flag＝“１”の場合、Ｓ１２４に分岐しTIME OUTの設定時間内で終了確認されたか否かを判断し、TIME OUT で設定された時間内にメモリーカード１３０が動作コマンドの処理を完了したかどうかの確認を行い、パス（Pass）の場合（Ｙｅｓ）は正常終了し、ＮＧの場合（Ｎｏ）はタイムアウトエラー処理を実行する。
【００２３】
Ｓ１２３の実行で、TIME OUT Flag＝“０”の場合、Ｓ１２５に分岐しメモリーカード制御装置の規定タイムアウト時間内で終了確認されたか否かを判断し、メモリーカード制御装置１２０で任意に設定されている規定タイムアウト時間内でメモリーカード１３０が動作コマンドの処理を完了したかどうかの確認を行い、パス（Pass）の場合（Ｙｅｓ）は正常終了し、ＮＧの場合（Ｎｏ）はタイムアウトエラー処理を実行する。
【００２４】
以上の構成によって、メモリーカード制御装置１２０であらかじめ設定されているタイムアウト処理時間を変更する必定がある場合に限って、メモリーカード制御装置１２０のタイムアウト処理時間を、ホスト装置１１０がコマンドブロック毎に任意に設定することを可能とする。
【００２５】
（実施の形態３）
図６には、本発明の実施の形態３において用いられるタイムアウト処理時間情報を含むダイレクトコマンドブロック構造の一例が示されている。なお、メモリーカード制御装置の構成は、図１に示した実施の形態１の構成と同様とする。
【００２６】
オペレーションコード（OPERATION CODE）は、コマンドブロックがダイレクトコマンドブロックであることを示すコードが格納される。コマンドインデックス（COMMAND INDEX）は、ホスト装置１１０がメモリーカード１３０に実行させたい動作を直接指定する動作コマンドが格納される。サブコマンド（SUB COMMAND）は前述の動作コマンドのタイプを示すパラメータである。動作コマンドのタイプは、
・データなしコマンド：メモリーカード１３０との間のデータ転送が一切不要な動作コマンド
・リードデータありコマンド：メモリーカード１３０からのデータ読み出しを伴う動作コマンド
・ライトデータありコマンド：メモリーカード１３０へ書き込むべきライトデータを伴う動作コマンド
の３種類がある。
【００２７】
アーギュメント情報（COMMAND ARGUMENT）は、当該動作コマンドに関するアドレス情報などの変数を示す。TIME OUTは、前述のコマンドインデックスで指定された動作コマンド処理に必要な最大タイムアウト時間を示しており、本実施の形態では、タイムアウト時間＝１００ｍｓｅｃ×TIME OUTを一例として示している。転送長情報（TRANSFER LENGTH）は、コマンドインデックスで指定された動作コマンドがメモリーカード内のデータを読み書きするコマンドを指定している場合、その読み書きするデータ転送長を示している。
【００２８】
次に、図７には本実施の形態において用いられるコマンド実行手段１２３の動作の一例が示されるフローチャートである。Ｓ２１０のダイレクトコマンドブロック受信にてコマンドブロック受信手段１２２でのダイレクトコマンドブロック受信が実行され、Ｓ２２１で受信したコマンドインデックス、アーギュメント情報のメモリーカード１３０への発行を行う。続いて、Ｓ２２４にて前述のタイムアウト時間で設定された時間内にメモリーカード１３０が当該動作コマンドの処理を完了したかどうかの確認を行い、パス（Pass）の場合（Ｙｅｓ）は正常終了し、ＮＧの場合（Ｎｏ）はタイムアウトエラー処理を実行する。
【００２９】
以上の構成によって、ホスト装置１１０がメモリーカード１３０に実行させたい動作を直接指定する動作コマンドを発行できることによって、メモリーカード１３０の動作コマンド仕様が変更された場合でも、ホスト装置１１０が発行するダイレクトコマンドブロックを変更することによって対応でき、且つ、メモリーカード制御装置１２０のタイムアウト処理時間を、ホスト装置１１０がコマンドブロック毎に任意に設定することを可能とする。
【００３０】
（実施の形態４）
図８には、本発明の実施の形態４によるタイムアウト処理時間を変更するかどうかを示すフラグ情報を含むダイレクトコマンドブロック構造の一例が示されている。なお、メモリーカード制御装置の構成は、図１に示した実施の形態１の構成と同様とする。
【００３１】
タイムアウトフラグ（TIME OUT Flag）は、タイムアウト時間をTIME OUT設定時間とするか、メモリーカード制御装置であらかじめ設定されている一意の時間とするかを選択するフラグ情報である。
【００３２】
TIME OUTが“00”の時にはタイムアウト時間をメモリーカード制御装置であらかじめ設定されている一意の時間とすることとすれば、タイムアウトフラグはTIME OUTの設定値で代用することも可能である。
【００３３】
図９は、前述のタイムアウト処理時間を変更するかどうかを示すフラグ情報を含むダイレクトコマンドブロック構造を受信した場合のコマンド実行手段１２２の動作の一例が示されるフローチャートである。Ｓ２１０のダイレクトコマンドブロック受信にてコマンドブロック受信手段１１０でのコマンドブロック受信が実行され、Ｓ２２１で受信したコマンドインデックス、アーギュメント情報のメモリーカード１３０への発行を行う。続いて、Ｓ２２２にてタイムアウトフラグを確認し、TIME OUT Flag＝“１”の場合、Ｓ２２３に分岐し、TIME OUTの設定時間内で終了確認が行なわれ、TIME OUTで設定された時間内にメモリーカード１３０が前記動作コマンドの処理を完了したかどうかの確認を行い、パス（Pass）の場合（Ｙｅｓ）は正常終了し、ＮＧの場合はタイムアウトエラー処理を実行する。
【００３４】
Ｓ２２２の実行で、TIME OUT Flag＝“０”の場合、Ｓ２２４に分岐し、メモリーカード制御装置１２０の規定タイムアウト時間内で終了確認が行なわれ、メモリーカード制御装置１２０で任意に設定されている規定タイムアウト時間内でメモリーカード１３０が当該動作コマンドの処理を完了したかどうかの確認を行い、パス（Pass）の場合（Ｙｅｓ）は正常終了し、ＮＧの場合（Ｎｏ）はタイムアウトエラー処理を実行する。
【００３５】
以上の構成によって、ホスト装置１１０がメモリーカード１３０に実行させたい動作を直接指定する動作コマンドを発行できることによって、メモリーカード１３０の動作コマンド仕様が変更された場合でも、ホスト装置１１０が発行するダイレクトコマンドブロックを変更することによって対応でき、且つ、メモリーカード制御装置１２０であらかじめ設定されているタイムアウト処理時間を変更する必定がある場合に限って、メモリーカード制御装置１２０のタイムアウト処理時間を、ホスト装置１１０がコマンドブロック毎に任意に設定することを可能とする。
【００３６】
（実施の形態５）
図１０には、本発明の実施の形態５に係るメモリーカード制御システムの構成が示されており、図１１にそのシーケンス図の一例を示す。
【００３７】
このメモリーカード制御システムは、ホスト装置２１０と、ホスト装置２１０にメモリーカード２３０を接続するためのメモリーカード制御装置２２０とから構成されている。ホスト装置２１０は例えばパーソナルコンピュータなどのデータ処理装置であり、メモリーカード用アプリケーションソフト２１１、ファイルシステム２１２、独自コマンドドライバ２１３、ＵＳＢマスストレージクラスドライバ２１４、ＵＳＢドライバ２１５、ＵＳＢコントローラ２１６が備えられている。本実施の形態では、メモリーカード制御装置２２０はＵＳＢ（Universal Serial Bus）デバイスとして実現されており、ＵＳＢケーブル２１７を介してホスト装置２１０のＵＳＢコントローラ２１６に接続される。
【００３８】
アプリケーションソフト２１１は、ユーザーの操作に応じてメモリーカード２３０をアクセスするためのコマンドブロックを生成し、ファイルシステム２１２、及び独自コマンドドライバ２１３に対してコマンドブロックを発行する。
【００３９】
例えばＷｉｎｄｏｗｓ（登録商標）ＯＳが標準でサポートしているコマンドブロックの場合、ファイルシステム２１２に対してコマンドブロックを発行する。この場合のタイムアウト処理時間は、メモリーカード制御装置２２０であらかじめ設定されている一意の時間となる。
【００４０】
独自コマンドを発行する場合は、独自コマンドブロックを発行し、本実施の形態の場合、コマンドブロックにタイムアウト情報を含む。図２が、独自コマンドドライバ２１３に発行されるコマンドブロックの一例である。
【００４１】
独自コマンドドライバ２１３は、アプリケーションソフト２１１から発行されるコマンドブロックを受信し、ＵＳＢマスストレージクラスドライバ２１４へコマンドブロックを伝達するのと同時に、タイマーを起動し、ＵＳＢマスストレージクラスドライバからのＡＣＫ（positive acknowledgement）信号の返答を待つ。コマンドブロックにて指定されたタイムアウト時間を経過してもＡＣＫ返信が無い場合は、アプリケーションソフトに対してタイムアウトエラーを返答する。
【００４２】
タイムアウト時間内にＡＣＫ返答があった場合は、アプリケーションソフトに対してコマンド正常終了を返答する。
【００４３】
ＵＳＢマスストレージクラスドライバ２１４、ＵＳＢドライバ２１５、ＵＳＢコントローラ２１６はファイルシステム２１２、及び、独自コマンドドライバ２１３から発行されるコマンドブロックをメモリーカード制御装置２２０へ伝達し、メモリーカード制御装置２２０からのＮＡＫ（negative acknowledgement）返答、ＡＣＫ返答をファイルシステム２１２、及び独自コマンドドライバ２１３へ伝達する。
【００４４】
メモリーカード制御装置２２０は受信したコマンドブロックを解釈し、メモリーカード２３０の動作コマンドへの変換、及びメモリーカード２３０への動作コマンド発行を行う。
【００４５】
また、メモリーカード２３０がコマンド処理のためにＢｕｓｙ（ビジー）中の場合、ＵＳＢコントローラ２１６に対してＮＡＫ返答を行う。更に、メモリーカード２３０のコマンド処理が完了しＲｅａｄｙ（レディー）になったことを検知し、ＵＳＢコントローラ２１６に対してＡＣＫ返答を行う。この場合、メモリーカード制御装置２２０は、この動作コマンドの処理中はタイムアウト時間処理を実施しない。
【００４６】
コマンドブロックに、実施の形態３で示したダイレクトコマンドブロックを用いることも可能である。
【００４７】
更に、実施の形態２で示したタイムアウトフラグ情報を含むコマンドブロックを用いることも可能であり、その場合、タイムアウトフラグ情報に従って、メモリーカード制御装置２２０は、独自コマンドブロックを受信した時のタイムアウト時間処理の実施の有無を判断する。
【００４８】
以上の構成によって、メモリーカード制御装置２２０のタイムアウト処理時間を、ホスト装置２１０のアプリケーションソフト２１１と独自コマンドドライバ２１３がコマンドブロック毎に任意に設定することを可能とする。
【００４９】
（実施の形態６）
図１２には、本発明の実施の形態６に係るメモリーカード制御システムのそのシーケンス図の一例を示す。なお、メモリーカード制御装置の構成は、図１０に示した実施の形態５の構成と同様とする。
【００５０】
アプリケーションソフト２１１が、ユーザーの操作に応じてメモリーカード２３０をアクセスするためのコマンドブロックを生成し、独自コマンドドライバ２１３に対してタイムアウト情報を含むコマンドブロックを発行した場合、独自コマンドドライバ２１３は、アプリケーションソフトから発行されるコマンドブロックを受信し、タイムアウト延長ステート移行コマンドをＵＳＢマスストレージクラスドライバ２１４、ＵＳＢドライバ２１５、ＵＳＢコントローラ２１６を通じてメモリーカード制御装置２２０に発行する。メモリーカード制御装置２２０は、タイムアウト延長ステートへ移行し、独自コマンドドライバ２１３に対してＡＣＫ返信を行う。
【００５１】
タイムアウト延長コマンドに対するメモリーカード制御装置２２０からのＡＣＫ返信を受けて、独自コマンドドライバ２１３はアプリケーションソフト２１０から受信したコマンドブロックをＵＳＢマスストレージクラスドライバ２１４、ＵＳＢドライバ２１５、ＵＳＢコントローラ２１６を通じてメモリーカード制御装置２２０に発行し、コマンドブロックに含まれているタイムアウト情報に従って、タイマーを起動する。
【００５２】
メモリーカード制御装置２２０は受信したコマンドブロックを解釈し、メモリーカード２３０の動作コマンドへの変換、及びメモリーカード２３０への動作コマンド発行を行う。
【００５３】
メモリーカード２３０がコマンド処理中で、Ｂｕｓｙ状態であっても、タイムアウト延長ステートの状態にある場合は、メモリーカード制御装置は、独自コマンドドライバ２１３に対してＡＣＫ返信を行う。
【００５４】
独自コマンドドライバ２１３は、メモリーカードがＢｕｓｙかＲｅａｄｙかを判別するためのＢｕｓｙ判別コマンドを発行し、メモリーカード制御装置２２０は、メモリーカードの状態を独自コマンドドライバ２１３に対してレスポンス返信する。
【００５５】
メモリーカード２３０がＢｕｓｙ状態の時はＢｕｓｙレスポンスを返信し、メモリーカード２３０がＲｅａｄｙ状態になった時にＲｅａｄｙレスポンスを返信する。
【００５６】
独自コマンドドライバ２１３はメモリーカード制御装置２２０からのレスポンス返信がＲｅａｄｙになるか、タイムアウト時間が経過するまでＢｕｓｙチェックコマンドを発行してポーリングを行う。
【００５７】
独自コマンドドライバ２１３がタイムアウト時間内にＲｅａｄｙのレスポンス返信を受けた場合は、アプリケーションソフト２１１に正常コマンド終了を伝えてアプリケーションソフト２１３のコマンド処理を終了させる。更に、独自コマンドドライバ２１３はメモリーカード制御装置２２０に対してタイムアウト延長ステート復帰コマンドを発行し、メモリーカード制御装置２２０は、タイムアウト延長ステートから通常ステートへ復帰し、独自コマンドドライバ２１３に対してＡＣＫ返信を行う。
【００５８】
独自コマンドドライバ２１３のタイマーがタイムアウト時間オーバーとなった場合は、アプリケーションソフト２１１にタイムアウトエラーを伝えてアプリケーションソフト２１１のエラー処理を実行し、更に、独自コマンドドライバ２１３はメモリーカード制御装置２２０に対してタイムアウト延長ステート復帰コマンドを発行し、メモリーカード制御装置２２０は、タイムアウト延長ステートから通常ステートへ復帰し、独自コマンドドライバ２１３に対してＡＣＫ返信を行う。
【００５９】
コマンドブロックに、実施の形態３で示したダイレクトコマンドブロックを用いることも可能である。
【００６０】
更に、実施の形態２で示したタイムアウトフラグ情報を含むコマンドブロックを用いることも可能であり、その場合、タイムアウトフラグ情報に従って、独自ドライバ２１３はタイムアウト延長ステート移行コマンドの発行、及びタイマー起動の実施の有無を判断する。
【００６１】
以上の構成によって、ＵＳＢマスストレージクラスドライバ２１４、ＵＳＢドライバ２１５、ＵＳＢコントローラ２１６がタイムアウト時間処理を独自に実行していた場合でも、ＵＳＢマスストレージクラスドライバ２１４、ＵＳＢドライバ２１５、ＵＳＢコントローラ２１６のタイムアウト設定時間の制限を受けることなく、メモリーカード制御装置２２０のタイムアウト処理時間を、ホスト装置２１０のアプリケーションソフト２１１と独自コマンドドライバ２１３がコマンドブロック毎に任意に設定することを可能とする。
【産業上の利用可能性】
【００６２】
本発明にかかるメモリーカード制御装置およびメモリーカード制御システムは、メモリーカードで任意に規定される最大処理時間に応じてホスト装置が自由にタイムアウト処理時間を設定可能な装置およびシステムを提供することにより、メモリーカードの最大処理時間を自由に規定できる利点を有し、コマンドによりタイムアウト処理時間が異なるメモリーカードを制御する各種装置、機器およびシステムに有用である。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施の形態１によるメモリーカード制御装置の構成を示すブロック図
【図２】同メモリーカード制御装置において用いられるタイムアウト処理時間情報を含むコマンドブロック構造の一例を示す図
【図３】同メモリーカード制御装置で実行されるタイムアウト処理時間情報を含むコマンドブロック処理の手順を示すフローチャート
【図４】本発明の実施の形態２によるメモリーカード制御装置において用いられるタイムアウトフラグ情報を含むコマンドブロック構造の一例を示す図
【図５】同メモリーカード制御装置で実行されるタイムアウトフラグ情報を含むコマンドブロック処理の手順を示すフローチャート
【図６】本発明の実施の形態３によるメモリーカード制御装置において用いられるタイムアウト処理時間情報を含むダイレクトコマンドブロック構造の一例を示す図
【図７】同メモリーカード制御装置で実行されるタイムアウト処理時間情報を含むダイレクトコマンドブロック処理の手順を示すフローチャート
【図８】本発明の実施の形態４によるメモリーカード制御装置において用いられるタイムアウトフラグ情報を含むダイレクトコマンドブロック構造の一例を示す図
【図９】同メモリーカード制御装置で実行されるタイムアウトフラグ情報を含むダイレクトコマンドブロック処理の手順を示すフローチャート
【図１０】本発明の実施の形態５によるメモリーカード制御システムの構成を示すブロック図
【図１１】同メモリーカード制御システムのシーケンス図
【図１２】本発明の実施の形態６によるメモリーカード制御システムのシーケンス図
【符号の説明】
【００６４】
１１０、２１０    ホスト装置
１１７，２１７    ＵＳＢケーブル
１２０、２２０    メモリーカード制御装置
１２１、２２１    コントローラＬＳＩ
１２２、２２２    コマンドブロック受信手段
１２３、２２３    コマンド実行手段
１２４、２２４    メモリーカードバス
１２５、２２５    メモリーカードスロット
１３０、２３０    メモリーカード
２１１    メモリーカード用アプリケーションソフト
２１２    ファイルシステム
２１３    独自コマンドドライバ
２１４    ＵＳＢマスストレージクラスドライバ
２１５    ＵＳＢドライバ
２１６    ＵＳＢコントローラ
【図１】
2006350881.tif 000003
【図２】
2006350881.tif 000004
【図３】
2006350881.tif 000005
【図４】
2006350881.tif 000006
【図５】
2006350881.tif 000007
【図６】
2006350881.tif 000008
【図７】
2006350881.tif 000009
【図８】
2006350881.tif 000010
【図９】
2006350881.tif 000011
【図１０】
2006350881.tif 000012
【図１１】
2006350881.tif 000013
【図１２】
2006350881.tif 000014