メモリカード及びホスト機器
【課題】特定のホスト機器ではメモリカード内のデータの書き込み、読み出し、及び消去が許可され、その他のホスト機器ではデータの書き込み及び消去が禁止され、データの読み出しのみが許可されるメモリカード及びホスト機器を提供する。
【解決手段】メモリカード個々に付与されたカード識別情報を有する不揮発性メモリ22と、不揮発性メモリ22へのデータの書き込み、読み出し、及び消去を制御するメモリコントローラ21とを備える。メモリコントローラ21は、カード識別情報に基づいて生成されたパスワードを用いてパスワードの設定を行う。さらに、メモリコントローラ21は、パスワードの設定を行った後、不揮発性メモリ22に対してデータの書き込み及び消去を禁止し、かつデータの読み出しを許可する読み出し可能なロック動作を行う。
【解決手段】メモリカード個々に付与されたカード識別情報を有する不揮発性メモリ22と、不揮発性メモリ22へのデータの書き込み、読み出し、及び消去を制御するメモリコントローラ21とを備える。メモリコントローラ21は、カード識別情報に基づいて生成されたパスワードを用いてパスワードの設定を行う。さらに、メモリコントローラ21は、パスワードの設定を行った後、不揮発性メモリ22に対してデータの書き込み及び消去を禁止し、かつデータの読み出しを許可する読み出し可能なロック動作を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリカード、及びメモリカードにアクセスするホスト機器に関するものである。
【背景技術】
【0002】
近年、パーソナルコンピュータ、PDA、デジタルカメラ、携帯電話等の様々な携帯用電子機器においては、SD(Secure Digital)メモリカード等のリムーバブルストレージデバイスが広く用いられている。
【0003】
SDメモリカードでは、顧客の要求として、特定のSDホスト機器でのみメモリカードにデータの書き込み、読み出し、及び消去を可能とし、特定でないその他のSDホスト機器にてメモリカードにアクセスする場合には読み出し専用として、データを改ざんできないようにするシステムが求められている。このような要求を従来のSDメモリカードの機能を用いて実現しようとする場合、以下のような問題がある。
【0004】
従来のメモリカードはロック機能を有している。ロック機能の特徴は、パスワードを用いてメモリカード内のデータの書き込み、読み出し、及び消去を禁止する機能である。書き込み、読み出し、及び消去を禁止することを「ロック」と呼び、逆にロックされたメモリカードを再び、書き込み、読み出し、及び消去を可能にすることを「アンロック」と呼ぶ。
【0005】
この機能を利用した場合、特定のSDホスト機器によりSDメモリカードにパスワードを設定し、「ロック」する。これにより、「ロック」を解除するパスワードがわからないその他のSDホスト機器では、メモリカードの「ロック」を解除することができない。これにより、他のSDホスト機器によるSDメモリカード内のデータの改ざんを防止するという目的は達成できたことになる。
【0006】
しかし、従来のSDメモリカードにおける「ロック」は、書き込み、消去を禁止するだけでなく、読み出しも禁止された状態になってしまう。このため、その他のSDホスト機器によるSDメモリカード内のユーザデータの読み出しもできなくなってしまう。したがって、従来の技術では前述した要求を満足することはできない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−259322号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特定のホスト機器ではメモリカード内のデータの書き込み、読み出し、及び消去が許可され、その他のホスト機器ではデータの書き込み及び消去が禁止され、データの読み出しのみが許可されるメモリカード及びホスト機器を提供する。
【課題を解決するための手段】
【0009】
一実施態様のメモリカードは、メモリカード個々に付与されたカード識別情報を有する不揮発性メモリと、前記不揮発性メモリへのデータの書き込み、読み出し、及び消去を制御するコントローラとを備える。前記コントローラは、前記カード識別情報に基づいて生成されたパスワードを用いてパスワードの設定を行う。さらに、前記コントローラは、前記パスワードの設定を行った後、前記不揮発性メモリに対してデータの書き込み及び消去を禁止し、かつデータの読み出しを許可する読み出し可能なロック動作を行うことを特徴とする。
【図面の簡単な説明】
【0010】
【図1】第1実施形態のメモリシステムの構成を示すブロック図である。
【図2】第1実施形態のホスト機器とメモリカード間のロックコマンド実行時のトランザクションを示す図である。
【図3A】第1実施形態のホスト機器によるメモリカードへのデータ書き込みまたは消去の処理手順を示すフローチャートである。
【図3B】第1実施形態のホスト機器によるメモリカードへのデータ読み出しの処理手順を示すフローチャートである。
【図3C】その他のホスト機器によるメモリカードへのデータ書き込みまたは消去の処理手順を示すフローチャートである。
【図3D】その他のホスト機器によるメモリカードへのデータ読み出しの処理手順を示すフローチャートである。
【図4】第1実施形態のホスト機器におけるパスワード生成の処理を示すフローチャートである。
【図5】第1実施形態のメモリカードにおけるパスワード生成の処理を示すフローチャートである。
【図6】第1実施形態のカード識別情報(CID情報)の詳細を示す図である。
【図7】第1実施形態のホスト機器におけるパスワード設定の処理を示すフローチャートである。
【図8】第1実施形態のメモリカードにおけるパスワード設定の処理を示すフローチャートである。
【図9】第1実施形態のホスト機器におけるデータ書き込みの処理を示すフローチャートである。
【図10】第1実施形態のメモリカードにおけるデータ書き込みの処理を示すフローチャートである。
【図11】第1実施形態のホスト機器におけるデータ消去の処理を示すフローチャートである。
【図12】第1実施形態のメモリカードにおけるデータ消去の処理を示すフローチャートである。
【図13】第1実施形態のメモリカードにおける自動ロックの処理を示すフローチャートである。
【図14】第2実施形態のホスト機器におけるパスワード設定の処理を示すフローチャートである。
【図15】第2実施形態のメモリカードにおけるパスワード設定の処理を示すフローチャートである。
【図16】第2実施形態におけるロックコマンドのフォーマットを示す図である。
【図17】第2実施形態にメモリカードにおける自動ロックの処理を示すフローチャートである。
【図18】第3実施形態で転送されるデータのフォーマットを示す図である。
【図19】第3実施形態のメモリカードにおける自動ロックの処理を示すフローチャートである。
【図20】第4実施形態のホスト機器におけるパスワード設定の処理を示すフローチャートである。
【図21】第4実施形態のメモリカードにおけるパスワード設定の処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、図面を参照して実施形態のメモリカード、ホスト機器、及びメモリシステムについて説明する。ここでは、メモリカード、ホスト機器、及びメモリシステムとして、SDメモリカード、SDホスト機器、及びメモリシステムを例に取る。なお、以下の説明において、同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【0012】
[第1実施形態]
まず、第1実施形態のメモリシステムについて説明する。
【0013】
[1]システム構成
図1は、第1実施形態のメモリシステムの構成を示すブロック図である。
【0014】
図示するように、SDホスト機器(以下、ホストと記す)10とSDメモリカード(以下、メモリカードと記す)20は、SDバス30を介して接続されている。
【0015】
メモリカード20は、メモリコントローラ21と不揮発性メモリ22を有する。メモリコントローラ21は、不揮発性メモリ22へのデータの書き込み、読み出し、及び消去を制御する。メモリコントローラ21と不揮発性メモリ22は、互いにメモリバス23により接続されている。
【0016】
不揮発性メモリ22は、メモリカードのレジスタ情報のうちの一つであるカード識別情報(以下、CID情報と記す)が記憶されたCID情報領域22Aと、ユーザの書き込んだデータ(ユーザデータ)が記憶されるユーザデータ領域22Bを有する。CID情報は、メモリカードを識別するためにメモリカード個々に付与された情報である。
【0017】
不揮発性メモリ22は、例えば、NAND型フラッシュメモリ、NOR型フラッシュメモリ、AND型フラッシュメモリを含む。NAND型フラッシュメモリは、複数の不揮発性メモリセルトランジスタを備える。不揮発性メモリセルトランジスタは浮遊ゲートと制御ゲートを有する。
【0018】
ホスト10は、ホスト10の動作を制御するホストコントローラ11を有する。ホストコントローラ11は、メモリカード20内のメモリコントローラ21との間で信号の授受を行う。
【0019】
SDバス30は、ホスト10内のホストコントローラ11とメモリカード20内のメモリコントローラ21を接続して通信を行うためのバスである。また、メモリバス23は、メモリコントローラ21と不揮発性メモリ22を接続して通信を行うためのバスである。
【0020】
次に、ホスト10とメモリカード20との間の通信方式について説明する。通信方式については、“Part 1 Physical Layer Simplified Specification Ver3.01”に記載されている。ホスト10がメモリカード20にコマンドを送信し、メモリカード20は、コマンドを受信したことに対するレスポンスをホスト10へ返信する。また、メモリカード20にデータを書き込む場合、ホスト10は書き込みデータをメモリカード20へ送信する。また、メモリカード20からデータを読み出す場合、ホスト10はメモリカード20から読み出しデータを受信する。
【0021】
また、メモリカード20はロック機能を有する。ロック機能の特徴は、パスワードの設定によってメモリカード20内のデータの書き込み、読み出し、及び消去を禁止する機能である。書き込み、読み出し、及び消去を禁止することを「ロック」と呼び、逆にロックされたメモリカード20を再び、書き込み、読み出し、及び消去を可能にすることを「アンロック」と呼ぶ。また、もう一つの特徴として、パスワードが事前に設定されているSDメモリカードの場合には、次回の電源供給により自動的に「ロック」状態になる自動ロック機能がある。
【0022】
次に、SDホスト機器10とSDメモリカード20においてロックコマンドを実行した時のSDバス30上のトランザクションについて説明する。
【0023】
図2は、ホスト10とメモリカード20間のロックコマンド実行時のトランザクションを示す図である。
【0024】
メモリカード20は、ホスト10からロック動作を命ずるコマンド(ロックコマンド)と引数を受信する(ステップS1)。これに対して、メモリカード20は、レスポンスをホスト10へ送信する(ステップS2)。その後、メモリカード20は、ホスト10から動作モードの命令コード、パスワード長、パスワードが含まれたデータを受信する(ステップS3)。そのデータによりメモリカード20は、5つの動作モード(「ロック動作」、「アンロック動作」、「強制イレーズ動作」、「パスワード設定動作」、「パスワードクリア動作」)のいずれが指定されたかを判断し、指定された動作モードを実行する。そして、メモリカード20は、CRC(cyclic redundancy check)ステータス、及びビジー信号をホスト10へ送信する(ステップS4,S5)。
【0025】
以下に、上述した5つの動作モードについて説明する。
【0026】
「ロック動作」は、あらかじめパスワードが設定されたメモリカード20に対して、パスワード認証によりメモリカードをロック状態にする動作である。また、「アンロック動作」は、メモリカード20がロック状態にあるとき、パスワード認証によりロック状態を解除してアンロック状態にする動作である。また、「強制イレーズ動作」は、メモリカード20がロック状態にあるとき、パスワード認証なしで強制的にロック状態を解除する動作である。ただし、その場合、メモリカード20内のデータはすべて消去される。また、「パスワード設定動作」は、パスワードが未設定のメモリカード20の場合には新規にパスワードを設定し、パスワードが設定済みの場合には、パスワード認証によりパスワードを変更することができる動作である。また、「パスワードクリア動作」は、メモリカード20に設定されているパスワードをパスワード認証により解除する動作である(詳細は“Part 1 Physical Layer Simplified Specification Ver3.01”を参照のこと)。
【0027】
[2]ホスト機器とメモリカードの動作
特定のホスト機器による書き込みまたは消去を図3Aに示し、特定のホスト機器による読み出しを図3Bに、その他のホスト機器による書き込みまたは消去を図3Cに、その他のホスト機器による読み出しを図3Dにそれぞれ示す。
【0028】
図3Aは、第1実施形態のSDホスト機器10によるSDメモリカード20へのデータ書き込みまたは消去の処理手順を示したフローチャートである。図3Aは、書き込みまたは消去の処理をホストの処理として示したが、メモリカードの処理も同様にこのフローチャートに沿ったものとなる。
【0029】
まず、SDホスト機器10は、SDメモリカード20を起動するためにメモリカードへ電源を供給する(ステップS11)。続いて、イニシャライズ用の一連のコマンドをメモリカード20へ送信し、メモリカードをイニシャライズする(ステップS12)。その後、メモリカード20固有のパスワードを生成するための「パスワード生成」の処理を行う(ステップS13)。
【0030】
次に、ホスト10は、メモリカード20がロックされていないかどうかを確認する(ステップS14)。メモリカード20がロックされていない場合(Yes)は、新たにメモリカード20にパスワードを設定するための「パスワード設定」の処理を行う(ステップS15)。
【0031】
続いて、ホスト10は、パスワード設定が成功したか否かを確認する(ステップS16)。パスワード設定が成功した場合(Yes)は、ホスト10はメモリカード20に「データ書き込みまたは消去」の処理を行う(ステップS17)。
【0032】
次に、ホスト10は、データ書き込みまたは消去が成功したか否かを確認する(ステップS18)。データ書き込みまたは消去が成功した場合(Yes)は、ホスト10は「読み出し可能なロック動作」の処理を行う(ステップS19)。ここで、「読み出し可能なロック動作」は、メモリカード20に対し、データの書き込み及び消去を禁止し、データの読み出しのみを許可する動作である。その後、ホスト10はメモリカード20への電源供給を止め(ステップS20)、処理を終了する。
【0033】
また、ステップS14においてメモリカード20がロックされていた場合(No)は、ホスト10は、ホスト10が生成したパスワードにより、メモリカード20のロックを解除する「アンロック動作」の処理を試みる(ステップS21)。続いて、ホスト10は、アンロック動作が成功したか否かを確認する(ステップS22)。アンロック動作が成功した場合(Yes)は、ステップS17に移行し、「データ書き込みまたは消去」の処理を行う。
【0034】
一方、ステップS16でパスワード設定が成功しなかった場合(No)、ステップS18でデータ書き込みまたは消去が成功しなかった場合(No)、及びステップS22でアンロック動作が成功しなかった場合(No)は、ホスト10はエラー処理を行う。
【0035】
なお、メモリカード20が自動ロック機能を持つ場合には、ステップS19の「読み出し可能なロック動作」の処理は削除してもよい。自動ロック機能については、後で詳述する。メモリカード20への電源供給を止める前に、メモリカード20を読み出しが可能なロック状態にする必要がある場合は、このステップS19の「読み出し可能なロック動作」の処理が必要である。
【0036】
図3Bは、第1実施形態のSDホスト機器10によるSDメモリカード20へのデータ読み出しの処理手順を示したフローチャートである。図3Bは、読み出しの処理をホストの処理として示したが、メモリカードの処理も同様にこのフローチャートに沿ったものとなる。
【0037】
まず、SDホスト機器10は、SDメモリカード20を起動するためにメモリカードへ電源を供給する(ステップS11)。続いて、イニシャライズ用の一連のコマンドをメモリカード20へ送信し、メモリカードをイニシャライズする(ステップS12)。その後、メモリカード20固有のパスワードを生成するための「パスワード生成」の処理を行う(ステップS13)。
【0038】
次に、ホスト10は、メモリカード20がロックされていないかどうかを確認する(ステップS14)。メモリカード20がロックされていない場合(Yes)は、新たにメモリカード20にパスワードを設定するための「パスワード設定」の処理を行う(ステップS15)。
【0039】
続いて、ホスト10は、パスワード設定が成功したか否かを確認する(ステップS16)。パスワード設定が成功した場合(Yes)は、ホスト10はメモリカード20に「データ読み出し」の処理を行う(ステップS31)。
【0040】
次に、ホスト10は、データ読み出しが成功したか否かを確認する(ステップS32)。データ読み出しが成功した場合(Yes)は、ホスト10は「読み出し可能なロック動作」の処理を行う(ステップS19)。ここで、「読み出し可能なロック動作」は、メモリカード20に対し、データの書き込み及び消去を禁止し、データの読み出しのみを許可する動作である。その後、ホスト10はメモリカード20への電源供給を止め(ステップS20)、処理を終了する。
【0041】
また、ステップS14においてメモリカード20がロックされていた場合(No)は、ホスト10は、ホスト10が生成したパスワードにより、メモリカード20のロックを解除する「アンロック動作」の処理を試みる(ステップS21)。続いて、ホスト10は、アンロック動作が成功したか否かを確認する(ステップS22)。アンロック動作が成功した場合(Yes)は、ステップS31に移行し、「データ読み出し」の処理を行う。
【0042】
一方、ステップS16でパスワード設定が成功しなかった場合(No)、ステップS32でデータ読み出しが成功しなかった場合(No)、及びステップS22でアンロック動作が成功しなかった場合(No)は、ホスト10はエラー処理を行う。
【0043】
なお、メモリカード20が自動ロック機能を持つ場合には、ステップS19の「読み出し可能なロック動作」の処理は削除してもよい。
【0044】
図3Cは、その他のホスト機器によるSDメモリカード20へのデータの書き込みまたは消去の処理手順を示したフローチャートである。図3Cは、書き込みまたは消去の処理をホストの処理として示したが、メモリカードの処理も同様にこのフローチャートに沿ったものとなる。
【0045】
まず、SDホスト機器は、SDメモリカード20を起動するためにメモリカードへ電源を供給する(ステップS11)。続いて、イニシャライズ用の一連のコマンドをメモリカード20へ送信し、メモリカードをイニシャライズする(ステップS12)。
【0046】
次に、ホストは、メモリカード20がロックされていないかどうかを確認する(ステップS14)。ここでのロックは、「読み出し可能なロック状態」を含まないものとする。メモリカード20がロックされていない場合(Yes)は、ホストはメモリカード20に「データ書き込みまたは消去」の処理を行う(ステップS17)。
【0047】
ホストは、データ書き込みまたは消去が成功したか否かを確認する(ステップS18)。ここで、メモリカード20が「読み出し可能なロック状態」にある場合は、データ書き込みまたは消去は必ず失敗し(No)、ホストはエラー処理を行う。なお、メモリカード20が「読み出し可能なロック状態」にない場合、すなわち、通常のロック状態及び「読み出し可能なロック状態」が共に解除されている場合で、データ書き込みまたは消去が成功した場合は、ホストはメモリカード20への電源供給を止め(ステップS20)、処理を終了する。
【0048】
また、ステップS14においてメモリカード20がロックされていた場合(No)は、ホストは、メモリカード20のロックを解除する「アンロック動作」の処理を試みる(ステップS21)。続いて、ホストは、アンロック動作が成功したか否かを確認する(ステップS22)。ここで、その他のホストではアンロック動作は必ず失敗し、ホストはエラー処理を行う。
【0049】
上述したように、その他のホストでは、メモリカード20が「読み出し可能なロック状態」に設定されている場合、書き込みまたは消去を行うことができない。
【0050】
図3Dは、その他のホスト機器によるSDメモリカード20へのデータ読み出しの処理手順を示したフローチャートである。図3Dは、読み出しの処理をホストの処理として示したが、メモリカードの処理も同様にこのフローチャートに沿ったものとなる。
【0051】
まず、SDホスト機器は、SDメモリカード20を起動するためにメモリカードへ電源を供給する(ステップS11)。続いて、イニシャライズ用の一連のコマンドをメモリカード20へ送信し、メモリカードをイニシャライズする(ステップS12)。
【0052】
次に、ホストは、メモリカード20がロックされていないかどうかを確認する(ステップS14)。ここでのロックは、「読み出し可能なロック状態」を含まないものとする。メモリカード20がロックされていない場合(Yes)は、ホストはメモリカード20に「データ読み出し」の処理を行う(ステップS31)。
【0053】
ホストは、データ読み出しが成功したか否かを確認する(ステップS32)。データ読み出しが成功した場合(Yes)は、ホスト10はメモリカード20への電源供給を止め(ステップS20)、処理を終了する。一方、データ読み出しが成功しなかった場合(No)は、ホスト10はエラー処理を行う。
【0054】
また、ステップS14においてメモリカード20がロックされていた場合(No)は、ホストは、メモリカード20のロックを解除する「アンロック動作」の処理を試みる(ステップS21)。続いて、ホストは、アンロック動作が成功したか否かを確認する(ステップS22)。ここで、その他のホストではアンロック動作は必ず失敗し、ホストはエラー処理を行う。
【0055】
上述したように、その他のホストでは、メモリカード20が「読み出し可能なロック状態」に設定されている場合、読み出しを行うことができる。
【0056】
次に、図3Aに示したフローチャート内の各サブルーチンの処理について詳細を説明する。
【0057】
図4及び図5を用いて図3A内の「パスワード生成」(S13)の処理について説明する。図4はホスト側の処理手順を示し、図5はメモリカード側の処理手順を示したものである。
【0058】
図4に示すホスト10の処理は以下のようになる。まず、ホスト10は、メモリカード20からカード識別情報(CID情報)を読み取るためのコマンド(例えば、CMD2またはCMD10)をメモリカード20へ送信する(ステップS101)。ホスト10は、メモリカード20からCID情報を含んだレスポンスを受信する(ステップS102)。ホスト10は、CID情報に基づいて、そのメモリカード固有のパスワードを生成する(ステップS103)。以上により、ホスト10はパスワード生成処理を終了する。
【0059】
ここで、メモリカードが持つCID情報について詳述する。
【0060】
図6は、CID情報の詳細を示す図である。CID情報は、SDメモリカードを識別するためにSDメモリカード個々に付与された情報であり、SDメモリカードが有する128ビットのデータである。CID情報は、128ビット全体でメモリカードごとに固有の値となっている。パスワード生成では、このCID情報からそのメモリカードに固有のパスワードを生成する。
【0061】
また、図5に示すメモリカード20の処理は以下のようになる。まず、メモリカード20は、CID情報を読み取るためのコマンド(例えば、CMD2またはCMD10)をホスト10から受信する(ステップS201)。続いて、メモリカード20は、CID情報を含むレスポンスをホスト10へ送信する(ステップS202)。以上により、メモリカード20はパスワード生成処理を終了する。
【0062】
次に、図7及び図8を用いて図3A内の「パスワード設定」(S15)の処理について説明する。図7はホスト側の処理手順を示し、図8はメモリカード側の処理手順を示したものである。
【0063】
図7に示すホスト10の処理は以下のようになる。まず、ホスト10は、ロックコマンド(例えば、CMD42)をメモリカード20へ送信する(ステップS301)。ホスト10は、メモリカード20からCMD42のレスポンスを受信する(ステップS302)。
【0064】
ホスト10は、レスポンスにエラーがないかどうかを確認する(ステップS303)。レスポンスにエラーがない場合、ホスト10はパスワード設定を命ずる命令コード、先に生成したパスワード及びパスワード長を含んだデータをメモリカード20へ送信する(ステップS304)。前記データは、ロックコマンドに続いてホスト10からメモリカード20へ送信される。
【0065】
続いて、ホスト10は、メモリカード20からCRCステータスを受信する(ステップS305)。ホスト10は、CRCステータスにエラーがないかどうかを確認する(ステップS306)。CRCステータスにエラーがない場合、ホスト10はメモリカード20におけるビジーを監視する、すなわちホスト10はメモリカード20がパスワード設定の処理中であることを示すビジー信号を監視する(ステップS307)。
【0066】
さらに、ホスト10は、メモリカード20におけるビジーが解除されたか否かを確認する(ステップS308)。ビジーが解除された場合、ホスト10はパスワード設定処理を終了する。
【0067】
また、ステップS303でレスポンスにエラーがあった場合(No)、ステップS306でCRCステータスにエラーがあった場合(No)、及びステップS308でメモリカード20におけるビジーが所定時間、解除されなかった場合(No)は、ホスト10はエラー処理を行う。
【0068】
一方、図8に示すメモリカード20の処理は以下のようになる。まず、メモリカード20は、ホスト10からロックコマンド(例えば、CMD42)を受信する(ステップS401)。メモリカード20は、CMD42に対するレスポンスをホスト10へ送信する(ステップS402)。
【0069】
続いて、メモリカード20は、パスワード設定を命ずる命令コード、パスワード及びパスワード長を含んだデータをホスト10から受信する(ステップS403)。前記データは、ロックコマンドに続いてメモリカード20に入力される。メモリカード20は、CRCステータスをホスト10へ送信する(ステップS404)。
【0070】
さらに、先に受信した命令コード、パスワード及びパスワード長を含んだデータに基づいて、メモリカード20はパスワード設定の処理を実行する(ステップS405)。続いて、メモリカード20は、パスワード設定の処理中であることをビジー信号によりSDバス30上でホスト10へ通知する(ステップS406)。その後、メモリカード20はパスワード設定処理を終了する。
【0071】
次に、図3A内の「データ書き込みまたは消去」(S17)の処理のうち、まずデータ書き込みの処理について図9及び図10を用いて説明する。図9はホスト側の処理手順を示し、図10はカード側の処理手順を示したものである。
【0072】
図9に示すホスト10の処理は以下のようになる。まず、ホスト10は、データ書き込みを命ずるコマンド(例えば、CMD24またはCMD25)をメモリカード20へ送信する(ステップS501)。続いて、ホスト10は、メモリカード20から前記コマンドのレスポンスを受信する(ステップS502)。
【0073】
ホスト10は、レスポンスにエラーがないかどうかを確認する(ステップS503)。レスポンスにエラーがない場合、書き込むべきユーザデータをメモリカード20へ送信する(ステップS504)。
【0074】
続いて、ホスト10は、メモリカード20からCRCステータスを受信する(ステップS505)。ホスト10は、CRCステータスにエラーがないかどうかを確認する(ステップS506)。CRCステータスにエラーがない場合、ホスト10はメモリカード20におけるビジーを監視する、すなわちホスト10はメモリカード20がデータ書き込みの処理中であることを示すビジー信号を監視する(ステップS507)。
【0075】
さらに、ホスト10は、メモリカード20におけるビジーが解除されたか否かを確認する(ステップS508)。ビジーが解除された場合、ホスト10はデータ書き込み処理を終了する。
【0076】
また、ステップS503でレスポンスにエラーがあった場合(No)、ステップS506でCRCステータスにエラーがあった場合(No)、及びステップS508でメモリカード20におけるビジーが所定時間、解除されなかった場合(No)は、ホスト10はエラー処理を行う。
【0077】
一方、図10に示すメモリカード20の処理は以下のようになる。まず、メモリカード20は、ホスト10からデータ書き込みを命ずるコマンド(例えば、CMD24またはCMD25)を受信する(ステップS601)。メモリカード20は、前記コマンドに対するレスポンスをホスト10へ送信する(ステップS602)。
【0078】
続いて、メモリカード20は、ホスト10から書き込むべきユーザデータを受信する(ステップS603)。メモリカード20は、CRCステータスをホスト10へ送信する(ステップS604)。
【0079】
続いて、メモリカード20は、不揮発性メモリ22内のユーザデータ領域22Bにユーザデータの書き込みを行う(ステップS605)。この処理中、メモリカード20は、書き込みの処理中であることをビジー信号によりホスト10へ通知する(ステップS606)。以上により、メモリカード20は書き込み処理を終了する。
【0080】
次に、図3A内の「データ書き込みまたは消去」(S17)の処理のうち、データ消去の処理について図11及び図12を用いて説明する。図11はホスト側の処理手順を示し、図12はカード側の処理手順を示したものである。
【0081】
図11に示すホスト10の処理は以下のようになる。データ消去の処理手順はデータ書き込みと類似しているが、ホスト10からのデータ送信の処理がないため、多少異なる。まず、ホスト10は、データ消去を命ずるコマンド(例えば、CMD32またはCMD33、CMD38)をメモリカード20へ送信する(ステップS701)。続いて、ホスト10は、メモリカード20から前記コマンドのレスポンスを受信する(ステップS702)。
【0082】
ホスト10は、レスポンスにエラーがないかどうかを確認する(ステップS703)。レスポンスにエラーがない場合は、ホスト10はメモリカード20におけるビジーを監視する、すなわちホスト10はメモリカード20がデータ消去の処理中であることを示すビジー信号を監視する(ステップS704)。
【0083】
さらに、ホスト10は、メモリカード20におけるビジーが解除されたか否かを確認する(ステップS705)。ビジーが解除された場合、ホスト10はデータ消去処理を終了する。
【0084】
また、ステップS703でレスポンスにエラーがあった場合(No)、及びステップS705でメモリカード20におけるビジーが所定時間、解除されなかった場合(No)は、ホスト10はエラー処理を行う。
【0085】
一方、図12に示すメモリカード20の処理は以下のようになる。まず、メモリカード20は、ホスト10からデータ消去を命ずるコマンドを受信する(ステップS801)。メモリカード20は、前記コマンドに対するレスポンスをホスト10へ送信する(ステップS802)。
【0086】
続いて、メモリカード20は、不揮発性メモリ22内のユーザデータ領域22Bに記憶されたデータを消去する(ステップS803)。この処理中、メモリカード20は、消去の処理中であることをビジー信号によりホスト10へ通知する(ステップS804)。以上により、メモリカード20は消去処理を終了する。
【0087】
次に、図3A内の「アンロック動作」(S21)の処理について説明する。
【0088】
アンロック動作は、ステップS14においてメモリカード20がロックされていた場合に実行される。アンロック動作の処理は、先に説明した図7と図8を用いて述べる。図7において、ステップS304で扱うデータ内の命令コードがアンロック動作を命ずるコードとなっている。また、図8において、ステップS403で扱うデータ内の命令コードがアンロック動作を命ずるコードとなっている。その他の処理は、図7または図8と同様である。
【0089】
次に、図3A内の「読み出し可能なロック動作」(S19)の処理について説明する。
【0090】
読み出し可能なロック動作は、ステップS19においてデータ書き込みまたは消去が成功した場合に実行される。読み出し可能なロック動作は、前述したように、メモリカード20に対し、データの書き込み及び消去を禁止し、データの読み出しのみを許可する動作である。
【0091】
読み出し可能なロック動作の処理は、先に説明した図7と図8を用いて述べる。図7において、ステップS304で扱うデータ内の命令コードが読み出し可能なロック動作を命ずるコードとなっている。また、図8において、ステップS403で扱うデータ内の命令コードが読み出し可能なロック動作を命ずるコードとなっている。その他の処理は、図7または図8と同様である。
【0092】
次に、メモリカード20が持つ自動ロック機能について説明する。自動ロック機能は、メモリカード20の電源がオンされたとき、すなわちメモリカードへの電源供給が開始されたときに、自動的に、メモリカードが読み出し可能なロック状態あるいはアンロック状態に設定される機能である。読み出し可能なロック状態は、データの書き込み及び消去を禁止し、データの読み出しのみを許可する状態を指す。
【0093】
図13は、「自動ロック」の処理を示すフローチャートである。
【0094】
メモリカード20にホスト10から電源が供給される(ステップS901)。すると、メモリカード20は、パスワードが既に設定されているか否かを確認する(ステップS902)。パスワードが既に設定されている場合は、メモリカード20は、自動的に読み出し可能なロック状態に遷移して起動する(ステップS903)。パスワードが設定されていない場合は、メモリカード20はロックされていない通常の状態(アンロック状態)で起動する(ステップS904)。以上により、メモリカード20は自動ロック処理を終了する。
【0095】
図13に示した機能は、従来のSD規格の自動ロック機能におけるロック状態を、読み出し可能なロック状態に置き換えたものである。ここで、読み出し可能なロック状態とは、書き込み、読み出し、及び消去をすべて禁止する従来のロック状態とは異なり、書き込み及び消去を禁止し、データの読み出しのみを許可する状態である。
【0096】
[3]効果
第1実施形態では、特定のホスト機器によりSDメモリカードにパスワードが設定されれば、メモリカードの自動ロック機能により、例えデータの書き込みあるいは消去の作業前や作業中であっても、またメモリカードへの電源供給が絶たれたり、カード自体が抜け落ちた場合でも、次回の電源供給によりメモリカードが自動的に読み出し可能なロック状態になる。このため、メモリカードのパスワードを認知していないその他のホスト機器、すなわち特定のホスト機器以外のその他のホスト機器では、読み出し可能なロック状態を解除できない。これにより、その他のホスト機器では、メモリカード内のデータの読み出しは可能だが、書き込みや消去ができない。この結果、データの読み出しのみを可能として、データの書き込みや消去による改ざんを防止することができる。
【0097】
また、特定のホスト機器がメモリカードに設定するパスワードの生成と設定を自動で行うため、ユーザによる設定の手間が省ける。さらに、ユーザにその処理自体を意識させる必要がないため、通常のホスト機器を扱う以上の知識が必要ない。
【0098】
また、読み出し可能なロック状態になったメモリカードであっても、メモリカードのパスワードを認知している特定のホスト機器を用いれば、パスワード認証によりロック状態を解除可能である。このため、メモリカード内のデータを適宜、編集あるいは消去したり、メモリカード内にデータを追加したりなど、従来のメモリカードと全く同等にユーザが扱えるため、ユーザに不便さを感じさせることはない。
【0099】
以上説明したように第1実施形態によれば、特定のホスト機器ではメモリカードへのデータの書き込み、読み出し、及び消去が可能であり、特定のホスト機器以外のその他のホスト機器ではデータの書き込み、消去を禁止し、データの読み出しのみを許可するメモリカード、ホスト機器、及びメモリシステムを提供することができる。これにより、特定のホスト機器以外のホスト機器では、データの読み出しだけしかできないため、メモリカードに記憶されたデータの改ざんを防止することができる。
【0100】
また、特定のホスト機器は、メモリカード内の不揮発性メモリが有するカード識別情報を使用して、メモリカードに設定するパスワードを自動的に生成する機能を備えることにより、ユーザがパスワードを設定する手間を省くことができる。
【0101】
さらに、特定のホスト機器はメモリカードが有するカード識別情報に基づいて固有のパスワードを生成するため、特定のホスト機器はパスワードを記憶しておく必要がない。このため、ホスト機器の記憶容量を消費しないという利点がある。
【0102】
[第2実施形態]
第2実施形態のメモリシステムについて説明する。第1実施形態では「読み出し可能なロック動作」(S19)におけるロックコマンドの命令コードにより「読み出し可能なロック動作」を指定したが、第2実施形態では、「パスワード設定」(S15)におけるロックコマンドの引数により「読み出し可能なロック動作」を指定する。第2実施形態は、第1実施形態と同様に、図1に示したシステム構成において、図3Aの処理手順により目的の動作を実現する。その際、図3A内の「パスワード設定」の処理が第1実施形態と異なる。第2実施形態における「パスワード設定」の処理を以下に説明する。
【0103】
図14及び図15は、第2実施形態における「パスワード設定」の処理を示すフローチャートである。図14はホスト側の処理手順を示し、図15はメモリカード側の処理手順を示したものである。
【0104】
図14に示すホスト10の処理は以下のようになる。まず、ホスト10は、ロックコマンド(例えば、CMD42)を引数付きでメモリカード20へ送信する(ステップS1001)。ホスト10は、メモリカード20からCMD42のレスポンスを受信する(ステップS302)。
【0105】
ホスト10は、レスポンスにエラーがないかどうかを確認する(ステップS303)。レスポンスにエラーがない場合、ホスト10は命令コード、先に生成したパスワード及びパスワード長を含んだデータをメモリカード20へ送信する(ステップS304)。前記データは、ロックコマンドに続いてホスト10からメモリカード20へ送信される。
【0106】
続いて、ホスト10は、メモリカード20からCRCステータスを受信する(ステップS305)。ホスト10は、CRCステータスにエラーがないかどうかを確認する(ステップS306)。CRCステータスにエラーがない場合、ホスト10はメモリカード20からのビジー信号を監視する(ステップS307)。
【0107】
さらに、ホスト10は、メモリカード20におけるビジーが解除されたか否かを確認する(ステップS308)。ビジーが解除された場合、ホスト10はロックコマンド動作を終了する。
【0108】
また、ステップS303でレスポンスにエラーがあった場合(No)、ステップS306でCRCステータスにエラーがあった場合(No)、及びステップS308でメモリカード20におけるビジーが所定時間、解除されなかった場合(No)は、ホスト10はエラー処理を行う。
【0109】
一方、図15に示すメモリカード20の処理は以下のようになる。まず、メモリカード20は、ホスト10からロックコマンド(例えば、CMD42)を引数付で受信する(ステップS1101)。メモリカード20は、CMD42に対するレスポンスをホスト10へ送信する(ステップS402)。
【0110】
続いて、メモリカード20は、命令コード、パスワード及びパスワード長を含んだデータをホスト10から受信する(ステップS403)。前記データは、ロックコマンドに続いてメモリカード20に入力される。メモリカード20は、CRCステータスをホスト10へ送信する(ステップS404)。
【0111】
さらに、先に受信した、引数と命令コード、パスワード及びパスワード長を含んだデータに基づいて、メモリカード20はロックコマンド動作を実行する(ステップS1102)。続いて、メモリカード20は、ロックコマンド動作の処理中であることをビジー信号によりSDバス30上でホスト10へ通知する(ステップS406)。その後、メモリカード20はロックコマンド動作を終了する。
【0112】
次に、図14内のステップS1001、及び図15内のステップS1101で使用するロックコマンドのフォーマットについて説明する。
【0113】
図16は、ロックコマンドのフォーマットを示す図である。
【0114】
図示するように、ロックコマンドは48ビットの長さを持つ。ロックコマンドのフォーマットは、上位からビット47がスタートビット、ビット46がトランスミッションビット、ビット45−40がコマンドインデックス、ビット39−8が引数、ビット7−1がCRC7、ビット0がエンドビットとなっている。
【0115】
ビット39−8の引数に、「読み出し可能なロック動作」を指示する機能を新たに割り当てることにより、ホスト10はメモリカード20に「読み出し可能なロック動作」の指示を伝えることができる。例えば、引数に“0x00000001”が設定されたときは、「読み出し可能なロック動作」を指示し、それ以外の値のときは、従来のロック動作を指示するというように区別して指定する。
【0116】
また、第2実施形態における図3A内の「アンロック動作」(S21)は、第1実施形態の図14において、ステップS304の命令コードがアンロック動作を命ずる点が異なり、その他の処理は図14に示した処理と同様である。図3A内の「読み出し可能なロック動作」(S19)も、第1実施形態の図15において、ステップS403の命令コードが読み出し可能なロック動作を命ずる点が異なり、その他の処理は図15に示した処理と同様である。さらに、第2実施形態における、図3A内の「パスワード生成」(S13)及び「データ書き込みまたは消去」(S17)についても、第1実施形態の図4、図5、図9、図10、図11、図12に示した処理と同様であるため、説明は省略する。
【0117】
次に、第2実施形態におけるメモリカード20が持つ自動ロック機能について説明する。図17は、「自動ロック」の処理を示すフローチャートである。
【0118】
メモリカード20にホスト10から電源が供給される(ステップS901)。すると、メモリカード20は、パスワードが既に設定されているか否かを確認する(ステップS902)。パスワードが既に設定されている場合は、前回のパスワード設定時に、コマンドの引数に「読み出し可能なロック動作」が指定されていたか否かを確認する(ステップS1201)。
【0119】
ステップS1201で「読み出し可能なロック動作」が指定されていた場合、メモリカード20は自動的に読み出し可能なロック状態に遷移して起動する(ステップS903)。「読み出し可能なロック動作」が指定されていない場合、メモリカード20は自動的にロック状態に遷移して起動する(ステップS1202)。
【0120】
また、ステップS902でパスワードが設定されていない場合は、メモリカード20はロックされていない通常の状態で起動する(ステップS904)。以上により、メモリカード20は自動ロック処理を終了する。
【0121】
第2実施形態では、ロックコマンドが有する引数により「読み出し可能なロック動作」を指定する手段を用いている。このような第2実施形態では、第1実施形態と同様の効果が得られる以外に次のような効果が得られる。従来の「ロック動作」の機能は変更せず、「ロック動作」に、読み出し可能なロック動作の機能を追加して実装することができるため、従来のホスト機器との互換性が保てる。その他の構成及び効果は、第1実施形態と同様である。
【0122】
[第3実施形態]
第3実施形態のメモリシステムについて説明する。第1実施形態では「読み出し可能なロック動作」(S19)におけるロックコマンドの命令コードにより「読み出し可能なロック動作」を指定したが、第3実施形態では、「パスワード設定」(S15)におけるロックコマンドの命令コードにより「読み出し可能なロック動作」を指定する。
【0123】
第3実施形態は、第1実施形態と同様に、図1のシステム構成において、図3Aの処理手順により目的の動作を実現する。その際、図3A内の「パスワード設定」の処理を示す図7及び図8において、ステップS304,S403で送受信されるデータが第1実施形態と異なる。そのデータのフォーマットを以下に説明する。
【0124】
図18は、図7内のステップS304、及び図8内のステップS403で転送されるデータのフォーマットを示す図である。
【0125】
図示するように、バイトオフセット0の各ビットに、ロックの動作モードがそれぞれ割り当てられている。また、バイトオフセット1にはパスワード長が格納され、バイトオフセット2からパスワード長+1までには、パスワードデータが格納される。
【0126】
バイトオフセット0の各ビットについて詳しく説明する。ビット0−3は従来どおりの機能が割り当てられており、ビット0は「パスワード設定動作」、ビット1は「パスワードクリア動作」、ビット2は「ロック動作/アンロック動作」、ビット3は「強制イレーズ動作」がそれぞれ割り当てられている。ここで、「読み出し可能なロック動作」を例えばビット4に割り当てる。これにより、ビット4に例えば“1”がセットされたデータをメモリカード20が受信することにより、図8に示したステップS405において「読み出し可能なロック動作」の処理を行う。
【0127】
また、第3実施形態における図3A内の「アンロック動作」(S21)は、第1実施形態の図14において、ステップS304の命令コードがアンロック動作を命ずる点が異なり、その他の処理は図14に示した処理と同様である。図3A内の「読み出し可能なロック動作」(S19)も、第1実施形態の図15において、ステップS403の命令コードが読み出し可能なロック動作を命ずる点が異なり、その他の処理は図15に示した処理と同様である。さらに、第3実施形態における、図3A内の「パスワード生成」(S13)、及び「データ書き込みまたは消去」(S17)についても、第1実施形態の図4、図5、図9、図10、図11、図12に示した処理と同様であるため、説明は省略する。
【0128】
次に、第3実施形態におけるメモリカード20が持つ自動ロック機能について説明する。図19は、「自動ロック」の処理を示すフローチャートである。
【0129】
メモリカード20にホスト10から電源が供給される(ステップS901)。すると、メモリカード20は、パスワードが既に設定されているか否かを確認する(ステップS902)。パスワードが既に設定されている場合は、前回のパスワード設定時に受信したデータ内の命令コードに「読み出し可能なロック動作」が指定されていたか否かを確認する(ステップS1301)。
【0130】
ステップS1301で「読み出し可能なロック動作」が指定されていた場合、メモリカード20は自動的に読み出し可能なロック状態に遷移して起動する(ステップS903)。「読み出し可能なロック動作」が指定されていない場合、メモリカード20は自動的にロック状態に遷移して起動する(ステップS1202)。
【0131】
また、ステップS902でパスワードが設定されていない場合は、メモリカード20はロックされていない通常の状態で起動する(ステップS904)。以上により、メモリカード20は自動ロック処理を終了する。
【0132】
第3実施形態では、「パスワード設定」(S15)におけるロックコマンドのデータ内の命令コードにより「読み出し可能なロック動作」を指定する手段を用いている。このような第3実施形態では、第1実施形態と同様の効果が得られる以外に次のような効果が得られる。第2実施形態と同様に、従来の「ロック動作」の機能は変更せず、「ロック動作」に、読み出し可能なロック動作の機能を追加して実装することができるため、従来のホスト機器との互換性が保てる。その他の構成及び効果は、第1実施形態と同様である。
【0133】
[第4実施形態]
第4実施形態のメモリシステムについて説明する。第3実施形態では「パスワード設定」(S15)におけるロックコマンドの命令コードにより「読み出し可能なロック動作」を指定したが、第4実施形態では、「パスワード設定」(S15)におけるジェネラルコマンド(例えば、CMD56)の命令コードにより「読み出し可能なロック動作」を指定する。ジェネラルコマンドは、任意に使用できるコマンドである(ジェネラルコマンド(CMD56)については、“Part 1 Physical Layer Simplified Specification Ver3.01”を参照のこと)。
【0134】
第4実施形態は、第1実施形態と同様に、図1のシステム構成において、図3Aの処理手順により目的の動作を実現する。その際、図3A内の「パスワード設定」、「アンロック動作」、及び「読み出し可能なロック動作」の処理が第1実施形態と異なる。第4実施形態における「パスワード設定」、「アンロック動作」、及び「読み出し可能なロック動作」の処理を以下に説明する。
【0135】
図20及び図21は、「パスワード設定」、「アンロック動作」、及び「読み出し可能なロック動作」の処理を示すフローチャートである。図20はホスト側の処理手順を示し、図21はメモリカード側の処理手順を示したものである。
【0136】
図20にて示す「パスワード設定」、「アンロック動作」、及び「読み出し可能なロック動作」の処理では、ステップS1401,S1402に示すように、図7の処理においてステップS301,S302で使用するロックコマンドをジェネラルコマンド(例えば、CMD56)に置き換える。さらに、ステップS304における命令コードにより「読み出し可能なロック動作」、「アンロック動作」、及び「読み出し可能なロック動作」をそれぞれ指定する。その他の処理は、図7に示した処理と同様である。
【0137】
図21にて示す「パスワード設定」、「アンロック動作」、及び「読み出し可能なロック動作」の処理では、ステップS1501,S1502に示すように、図8の処理においてステップS401,S4O2で使用するロックコマンドをジェネラルコマンド(例えば、CMD56)に置き換える。さらに、ステップS403における命令コードにより「読み出し可能なロック動作」、「アンロック動作」、及び「読み出し可能なロック動作」をそれぞれ指定する。その他の処理は、図8に示した処理と同様である。
【0138】
また、第4実施形態における、図3A内の「パスワード生成」(S13)、「データ書き込みまたは消去」(S17)、及び「自動ロック」についても、第1実施形態の図4、図5、図9、図10、図11、図12、図13に示した処理と同様であるため、説明は省略する。
【0139】
第4実施形態では、「パスワード設定」(S15)におけるジェネラルコマンドのデータ内の命令コードにより「読み出し可能なロック動作」を指定する手段を用いている。このような第4実施形態では、第1実施形態と同様の効果が得られる以外に次のような効果が得られる。第2,第3実施形態と同様に、従来の「ロック動作」の機能は変更せず、「ロック動作」に、読み出し可能なロック動作の機能を追加して実装することができるため、従来のホスト機器との互換性が保てる。その他の構成及び効果は、第1実施形態と同様である。
【0140】
以上述べたように第1〜第4実施形態によれば、特定のホスト機器ではメモリカードへのデータの書き込み、読み出し、及び消去が許可され、特定のホスト機器以外のその他のホスト機器ではデータの書き込み、消去を禁止し、データの読み出しのみを許可するメモリカード、ホスト機器、及びメモリシステムを提供することができる。これにより、特定のホスト機器以外のホスト機器では、データの読み出ししかできないため、メモリカードに記憶されたデータの改ざんを防止することができる。
【0141】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0142】
10…SDホスト機器、11…ホストコントローラ、20…SDメモリカード、21…メモリコントローラ、22…不揮発性メモリ、22A…CID情報領域、22B…ユーザデータ領域、23…メモリバス、30…SDバス。
【技術分野】
【0001】
本発明の実施形態は、メモリカード、及びメモリカードにアクセスするホスト機器に関するものである。
【背景技術】
【0002】
近年、パーソナルコンピュータ、PDA、デジタルカメラ、携帯電話等の様々な携帯用電子機器においては、SD(Secure Digital)メモリカード等のリムーバブルストレージデバイスが広く用いられている。
【0003】
SDメモリカードでは、顧客の要求として、特定のSDホスト機器でのみメモリカードにデータの書き込み、読み出し、及び消去を可能とし、特定でないその他のSDホスト機器にてメモリカードにアクセスする場合には読み出し専用として、データを改ざんできないようにするシステムが求められている。このような要求を従来のSDメモリカードの機能を用いて実現しようとする場合、以下のような問題がある。
【0004】
従来のメモリカードはロック機能を有している。ロック機能の特徴は、パスワードを用いてメモリカード内のデータの書き込み、読み出し、及び消去を禁止する機能である。書き込み、読み出し、及び消去を禁止することを「ロック」と呼び、逆にロックされたメモリカードを再び、書き込み、読み出し、及び消去を可能にすることを「アンロック」と呼ぶ。
【0005】
この機能を利用した場合、特定のSDホスト機器によりSDメモリカードにパスワードを設定し、「ロック」する。これにより、「ロック」を解除するパスワードがわからないその他のSDホスト機器では、メモリカードの「ロック」を解除することができない。これにより、他のSDホスト機器によるSDメモリカード内のデータの改ざんを防止するという目的は達成できたことになる。
【0006】
しかし、従来のSDメモリカードにおける「ロック」は、書き込み、消去を禁止するだけでなく、読み出しも禁止された状態になってしまう。このため、その他のSDホスト機器によるSDメモリカード内のユーザデータの読み出しもできなくなってしまう。したがって、従来の技術では前述した要求を満足することはできない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−259322号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特定のホスト機器ではメモリカード内のデータの書き込み、読み出し、及び消去が許可され、その他のホスト機器ではデータの書き込み及び消去が禁止され、データの読み出しのみが許可されるメモリカード及びホスト機器を提供する。
【課題を解決するための手段】
【0009】
一実施態様のメモリカードは、メモリカード個々に付与されたカード識別情報を有する不揮発性メモリと、前記不揮発性メモリへのデータの書き込み、読み出し、及び消去を制御するコントローラとを備える。前記コントローラは、前記カード識別情報に基づいて生成されたパスワードを用いてパスワードの設定を行う。さらに、前記コントローラは、前記パスワードの設定を行った後、前記不揮発性メモリに対してデータの書き込み及び消去を禁止し、かつデータの読み出しを許可する読み出し可能なロック動作を行うことを特徴とする。
【図面の簡単な説明】
【0010】
【図1】第1実施形態のメモリシステムの構成を示すブロック図である。
【図2】第1実施形態のホスト機器とメモリカード間のロックコマンド実行時のトランザクションを示す図である。
【図3A】第1実施形態のホスト機器によるメモリカードへのデータ書き込みまたは消去の処理手順を示すフローチャートである。
【図3B】第1実施形態のホスト機器によるメモリカードへのデータ読み出しの処理手順を示すフローチャートである。
【図3C】その他のホスト機器によるメモリカードへのデータ書き込みまたは消去の処理手順を示すフローチャートである。
【図3D】その他のホスト機器によるメモリカードへのデータ読み出しの処理手順を示すフローチャートである。
【図4】第1実施形態のホスト機器におけるパスワード生成の処理を示すフローチャートである。
【図5】第1実施形態のメモリカードにおけるパスワード生成の処理を示すフローチャートである。
【図6】第1実施形態のカード識別情報(CID情報)の詳細を示す図である。
【図7】第1実施形態のホスト機器におけるパスワード設定の処理を示すフローチャートである。
【図8】第1実施形態のメモリカードにおけるパスワード設定の処理を示すフローチャートである。
【図9】第1実施形態のホスト機器におけるデータ書き込みの処理を示すフローチャートである。
【図10】第1実施形態のメモリカードにおけるデータ書き込みの処理を示すフローチャートである。
【図11】第1実施形態のホスト機器におけるデータ消去の処理を示すフローチャートである。
【図12】第1実施形態のメモリカードにおけるデータ消去の処理を示すフローチャートである。
【図13】第1実施形態のメモリカードにおける自動ロックの処理を示すフローチャートである。
【図14】第2実施形態のホスト機器におけるパスワード設定の処理を示すフローチャートである。
【図15】第2実施形態のメモリカードにおけるパスワード設定の処理を示すフローチャートである。
【図16】第2実施形態におけるロックコマンドのフォーマットを示す図である。
【図17】第2実施形態にメモリカードにおける自動ロックの処理を示すフローチャートである。
【図18】第3実施形態で転送されるデータのフォーマットを示す図である。
【図19】第3実施形態のメモリカードにおける自動ロックの処理を示すフローチャートである。
【図20】第4実施形態のホスト機器におけるパスワード設定の処理を示すフローチャートである。
【図21】第4実施形態のメモリカードにおけるパスワード設定の処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、図面を参照して実施形態のメモリカード、ホスト機器、及びメモリシステムについて説明する。ここでは、メモリカード、ホスト機器、及びメモリシステムとして、SDメモリカード、SDホスト機器、及びメモリシステムを例に取る。なお、以下の説明において、同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【0012】
[第1実施形態]
まず、第1実施形態のメモリシステムについて説明する。
【0013】
[1]システム構成
図1は、第1実施形態のメモリシステムの構成を示すブロック図である。
【0014】
図示するように、SDホスト機器(以下、ホストと記す)10とSDメモリカード(以下、メモリカードと記す)20は、SDバス30を介して接続されている。
【0015】
メモリカード20は、メモリコントローラ21と不揮発性メモリ22を有する。メモリコントローラ21は、不揮発性メモリ22へのデータの書き込み、読み出し、及び消去を制御する。メモリコントローラ21と不揮発性メモリ22は、互いにメモリバス23により接続されている。
【0016】
不揮発性メモリ22は、メモリカードのレジスタ情報のうちの一つであるカード識別情報(以下、CID情報と記す)が記憶されたCID情報領域22Aと、ユーザの書き込んだデータ(ユーザデータ)が記憶されるユーザデータ領域22Bを有する。CID情報は、メモリカードを識別するためにメモリカード個々に付与された情報である。
【0017】
不揮発性メモリ22は、例えば、NAND型フラッシュメモリ、NOR型フラッシュメモリ、AND型フラッシュメモリを含む。NAND型フラッシュメモリは、複数の不揮発性メモリセルトランジスタを備える。不揮発性メモリセルトランジスタは浮遊ゲートと制御ゲートを有する。
【0018】
ホスト10は、ホスト10の動作を制御するホストコントローラ11を有する。ホストコントローラ11は、メモリカード20内のメモリコントローラ21との間で信号の授受を行う。
【0019】
SDバス30は、ホスト10内のホストコントローラ11とメモリカード20内のメモリコントローラ21を接続して通信を行うためのバスである。また、メモリバス23は、メモリコントローラ21と不揮発性メモリ22を接続して通信を行うためのバスである。
【0020】
次に、ホスト10とメモリカード20との間の通信方式について説明する。通信方式については、“Part 1 Physical Layer Simplified Specification Ver3.01”に記載されている。ホスト10がメモリカード20にコマンドを送信し、メモリカード20は、コマンドを受信したことに対するレスポンスをホスト10へ返信する。また、メモリカード20にデータを書き込む場合、ホスト10は書き込みデータをメモリカード20へ送信する。また、メモリカード20からデータを読み出す場合、ホスト10はメモリカード20から読み出しデータを受信する。
【0021】
また、メモリカード20はロック機能を有する。ロック機能の特徴は、パスワードの設定によってメモリカード20内のデータの書き込み、読み出し、及び消去を禁止する機能である。書き込み、読み出し、及び消去を禁止することを「ロック」と呼び、逆にロックされたメモリカード20を再び、書き込み、読み出し、及び消去を可能にすることを「アンロック」と呼ぶ。また、もう一つの特徴として、パスワードが事前に設定されているSDメモリカードの場合には、次回の電源供給により自動的に「ロック」状態になる自動ロック機能がある。
【0022】
次に、SDホスト機器10とSDメモリカード20においてロックコマンドを実行した時のSDバス30上のトランザクションについて説明する。
【0023】
図2は、ホスト10とメモリカード20間のロックコマンド実行時のトランザクションを示す図である。
【0024】
メモリカード20は、ホスト10からロック動作を命ずるコマンド(ロックコマンド)と引数を受信する(ステップS1)。これに対して、メモリカード20は、レスポンスをホスト10へ送信する(ステップS2)。その後、メモリカード20は、ホスト10から動作モードの命令コード、パスワード長、パスワードが含まれたデータを受信する(ステップS3)。そのデータによりメモリカード20は、5つの動作モード(「ロック動作」、「アンロック動作」、「強制イレーズ動作」、「パスワード設定動作」、「パスワードクリア動作」)のいずれが指定されたかを判断し、指定された動作モードを実行する。そして、メモリカード20は、CRC(cyclic redundancy check)ステータス、及びビジー信号をホスト10へ送信する(ステップS4,S5)。
【0025】
以下に、上述した5つの動作モードについて説明する。
【0026】
「ロック動作」は、あらかじめパスワードが設定されたメモリカード20に対して、パスワード認証によりメモリカードをロック状態にする動作である。また、「アンロック動作」は、メモリカード20がロック状態にあるとき、パスワード認証によりロック状態を解除してアンロック状態にする動作である。また、「強制イレーズ動作」は、メモリカード20がロック状態にあるとき、パスワード認証なしで強制的にロック状態を解除する動作である。ただし、その場合、メモリカード20内のデータはすべて消去される。また、「パスワード設定動作」は、パスワードが未設定のメモリカード20の場合には新規にパスワードを設定し、パスワードが設定済みの場合には、パスワード認証によりパスワードを変更することができる動作である。また、「パスワードクリア動作」は、メモリカード20に設定されているパスワードをパスワード認証により解除する動作である(詳細は“Part 1 Physical Layer Simplified Specification Ver3.01”を参照のこと)。
【0027】
[2]ホスト機器とメモリカードの動作
特定のホスト機器による書き込みまたは消去を図3Aに示し、特定のホスト機器による読み出しを図3Bに、その他のホスト機器による書き込みまたは消去を図3Cに、その他のホスト機器による読み出しを図3Dにそれぞれ示す。
【0028】
図3Aは、第1実施形態のSDホスト機器10によるSDメモリカード20へのデータ書き込みまたは消去の処理手順を示したフローチャートである。図3Aは、書き込みまたは消去の処理をホストの処理として示したが、メモリカードの処理も同様にこのフローチャートに沿ったものとなる。
【0029】
まず、SDホスト機器10は、SDメモリカード20を起動するためにメモリカードへ電源を供給する(ステップS11)。続いて、イニシャライズ用の一連のコマンドをメモリカード20へ送信し、メモリカードをイニシャライズする(ステップS12)。その後、メモリカード20固有のパスワードを生成するための「パスワード生成」の処理を行う(ステップS13)。
【0030】
次に、ホスト10は、メモリカード20がロックされていないかどうかを確認する(ステップS14)。メモリカード20がロックされていない場合(Yes)は、新たにメモリカード20にパスワードを設定するための「パスワード設定」の処理を行う(ステップS15)。
【0031】
続いて、ホスト10は、パスワード設定が成功したか否かを確認する(ステップS16)。パスワード設定が成功した場合(Yes)は、ホスト10はメモリカード20に「データ書き込みまたは消去」の処理を行う(ステップS17)。
【0032】
次に、ホスト10は、データ書き込みまたは消去が成功したか否かを確認する(ステップS18)。データ書き込みまたは消去が成功した場合(Yes)は、ホスト10は「読み出し可能なロック動作」の処理を行う(ステップS19)。ここで、「読み出し可能なロック動作」は、メモリカード20に対し、データの書き込み及び消去を禁止し、データの読み出しのみを許可する動作である。その後、ホスト10はメモリカード20への電源供給を止め(ステップS20)、処理を終了する。
【0033】
また、ステップS14においてメモリカード20がロックされていた場合(No)は、ホスト10は、ホスト10が生成したパスワードにより、メモリカード20のロックを解除する「アンロック動作」の処理を試みる(ステップS21)。続いて、ホスト10は、アンロック動作が成功したか否かを確認する(ステップS22)。アンロック動作が成功した場合(Yes)は、ステップS17に移行し、「データ書き込みまたは消去」の処理を行う。
【0034】
一方、ステップS16でパスワード設定が成功しなかった場合(No)、ステップS18でデータ書き込みまたは消去が成功しなかった場合(No)、及びステップS22でアンロック動作が成功しなかった場合(No)は、ホスト10はエラー処理を行う。
【0035】
なお、メモリカード20が自動ロック機能を持つ場合には、ステップS19の「読み出し可能なロック動作」の処理は削除してもよい。自動ロック機能については、後で詳述する。メモリカード20への電源供給を止める前に、メモリカード20を読み出しが可能なロック状態にする必要がある場合は、このステップS19の「読み出し可能なロック動作」の処理が必要である。
【0036】
図3Bは、第1実施形態のSDホスト機器10によるSDメモリカード20へのデータ読み出しの処理手順を示したフローチャートである。図3Bは、読み出しの処理をホストの処理として示したが、メモリカードの処理も同様にこのフローチャートに沿ったものとなる。
【0037】
まず、SDホスト機器10は、SDメモリカード20を起動するためにメモリカードへ電源を供給する(ステップS11)。続いて、イニシャライズ用の一連のコマンドをメモリカード20へ送信し、メモリカードをイニシャライズする(ステップS12)。その後、メモリカード20固有のパスワードを生成するための「パスワード生成」の処理を行う(ステップS13)。
【0038】
次に、ホスト10は、メモリカード20がロックされていないかどうかを確認する(ステップS14)。メモリカード20がロックされていない場合(Yes)は、新たにメモリカード20にパスワードを設定するための「パスワード設定」の処理を行う(ステップS15)。
【0039】
続いて、ホスト10は、パスワード設定が成功したか否かを確認する(ステップS16)。パスワード設定が成功した場合(Yes)は、ホスト10はメモリカード20に「データ読み出し」の処理を行う(ステップS31)。
【0040】
次に、ホスト10は、データ読み出しが成功したか否かを確認する(ステップS32)。データ読み出しが成功した場合(Yes)は、ホスト10は「読み出し可能なロック動作」の処理を行う(ステップS19)。ここで、「読み出し可能なロック動作」は、メモリカード20に対し、データの書き込み及び消去を禁止し、データの読み出しのみを許可する動作である。その後、ホスト10はメモリカード20への電源供給を止め(ステップS20)、処理を終了する。
【0041】
また、ステップS14においてメモリカード20がロックされていた場合(No)は、ホスト10は、ホスト10が生成したパスワードにより、メモリカード20のロックを解除する「アンロック動作」の処理を試みる(ステップS21)。続いて、ホスト10は、アンロック動作が成功したか否かを確認する(ステップS22)。アンロック動作が成功した場合(Yes)は、ステップS31に移行し、「データ読み出し」の処理を行う。
【0042】
一方、ステップS16でパスワード設定が成功しなかった場合(No)、ステップS32でデータ読み出しが成功しなかった場合(No)、及びステップS22でアンロック動作が成功しなかった場合(No)は、ホスト10はエラー処理を行う。
【0043】
なお、メモリカード20が自動ロック機能を持つ場合には、ステップS19の「読み出し可能なロック動作」の処理は削除してもよい。
【0044】
図3Cは、その他のホスト機器によるSDメモリカード20へのデータの書き込みまたは消去の処理手順を示したフローチャートである。図3Cは、書き込みまたは消去の処理をホストの処理として示したが、メモリカードの処理も同様にこのフローチャートに沿ったものとなる。
【0045】
まず、SDホスト機器は、SDメモリカード20を起動するためにメモリカードへ電源を供給する(ステップS11)。続いて、イニシャライズ用の一連のコマンドをメモリカード20へ送信し、メモリカードをイニシャライズする(ステップS12)。
【0046】
次に、ホストは、メモリカード20がロックされていないかどうかを確認する(ステップS14)。ここでのロックは、「読み出し可能なロック状態」を含まないものとする。メモリカード20がロックされていない場合(Yes)は、ホストはメモリカード20に「データ書き込みまたは消去」の処理を行う(ステップS17)。
【0047】
ホストは、データ書き込みまたは消去が成功したか否かを確認する(ステップS18)。ここで、メモリカード20が「読み出し可能なロック状態」にある場合は、データ書き込みまたは消去は必ず失敗し(No)、ホストはエラー処理を行う。なお、メモリカード20が「読み出し可能なロック状態」にない場合、すなわち、通常のロック状態及び「読み出し可能なロック状態」が共に解除されている場合で、データ書き込みまたは消去が成功した場合は、ホストはメモリカード20への電源供給を止め(ステップS20)、処理を終了する。
【0048】
また、ステップS14においてメモリカード20がロックされていた場合(No)は、ホストは、メモリカード20のロックを解除する「アンロック動作」の処理を試みる(ステップS21)。続いて、ホストは、アンロック動作が成功したか否かを確認する(ステップS22)。ここで、その他のホストではアンロック動作は必ず失敗し、ホストはエラー処理を行う。
【0049】
上述したように、その他のホストでは、メモリカード20が「読み出し可能なロック状態」に設定されている場合、書き込みまたは消去を行うことができない。
【0050】
図3Dは、その他のホスト機器によるSDメモリカード20へのデータ読み出しの処理手順を示したフローチャートである。図3Dは、読み出しの処理をホストの処理として示したが、メモリカードの処理も同様にこのフローチャートに沿ったものとなる。
【0051】
まず、SDホスト機器は、SDメモリカード20を起動するためにメモリカードへ電源を供給する(ステップS11)。続いて、イニシャライズ用の一連のコマンドをメモリカード20へ送信し、メモリカードをイニシャライズする(ステップS12)。
【0052】
次に、ホストは、メモリカード20がロックされていないかどうかを確認する(ステップS14)。ここでのロックは、「読み出し可能なロック状態」を含まないものとする。メモリカード20がロックされていない場合(Yes)は、ホストはメモリカード20に「データ読み出し」の処理を行う(ステップS31)。
【0053】
ホストは、データ読み出しが成功したか否かを確認する(ステップS32)。データ読み出しが成功した場合(Yes)は、ホスト10はメモリカード20への電源供給を止め(ステップS20)、処理を終了する。一方、データ読み出しが成功しなかった場合(No)は、ホスト10はエラー処理を行う。
【0054】
また、ステップS14においてメモリカード20がロックされていた場合(No)は、ホストは、メモリカード20のロックを解除する「アンロック動作」の処理を試みる(ステップS21)。続いて、ホストは、アンロック動作が成功したか否かを確認する(ステップS22)。ここで、その他のホストではアンロック動作は必ず失敗し、ホストはエラー処理を行う。
【0055】
上述したように、その他のホストでは、メモリカード20が「読み出し可能なロック状態」に設定されている場合、読み出しを行うことができる。
【0056】
次に、図3Aに示したフローチャート内の各サブルーチンの処理について詳細を説明する。
【0057】
図4及び図5を用いて図3A内の「パスワード生成」(S13)の処理について説明する。図4はホスト側の処理手順を示し、図5はメモリカード側の処理手順を示したものである。
【0058】
図4に示すホスト10の処理は以下のようになる。まず、ホスト10は、メモリカード20からカード識別情報(CID情報)を読み取るためのコマンド(例えば、CMD2またはCMD10)をメモリカード20へ送信する(ステップS101)。ホスト10は、メモリカード20からCID情報を含んだレスポンスを受信する(ステップS102)。ホスト10は、CID情報に基づいて、そのメモリカード固有のパスワードを生成する(ステップS103)。以上により、ホスト10はパスワード生成処理を終了する。
【0059】
ここで、メモリカードが持つCID情報について詳述する。
【0060】
図6は、CID情報の詳細を示す図である。CID情報は、SDメモリカードを識別するためにSDメモリカード個々に付与された情報であり、SDメモリカードが有する128ビットのデータである。CID情報は、128ビット全体でメモリカードごとに固有の値となっている。パスワード生成では、このCID情報からそのメモリカードに固有のパスワードを生成する。
【0061】
また、図5に示すメモリカード20の処理は以下のようになる。まず、メモリカード20は、CID情報を読み取るためのコマンド(例えば、CMD2またはCMD10)をホスト10から受信する(ステップS201)。続いて、メモリカード20は、CID情報を含むレスポンスをホスト10へ送信する(ステップS202)。以上により、メモリカード20はパスワード生成処理を終了する。
【0062】
次に、図7及び図8を用いて図3A内の「パスワード設定」(S15)の処理について説明する。図7はホスト側の処理手順を示し、図8はメモリカード側の処理手順を示したものである。
【0063】
図7に示すホスト10の処理は以下のようになる。まず、ホスト10は、ロックコマンド(例えば、CMD42)をメモリカード20へ送信する(ステップS301)。ホスト10は、メモリカード20からCMD42のレスポンスを受信する(ステップS302)。
【0064】
ホスト10は、レスポンスにエラーがないかどうかを確認する(ステップS303)。レスポンスにエラーがない場合、ホスト10はパスワード設定を命ずる命令コード、先に生成したパスワード及びパスワード長を含んだデータをメモリカード20へ送信する(ステップS304)。前記データは、ロックコマンドに続いてホスト10からメモリカード20へ送信される。
【0065】
続いて、ホスト10は、メモリカード20からCRCステータスを受信する(ステップS305)。ホスト10は、CRCステータスにエラーがないかどうかを確認する(ステップS306)。CRCステータスにエラーがない場合、ホスト10はメモリカード20におけるビジーを監視する、すなわちホスト10はメモリカード20がパスワード設定の処理中であることを示すビジー信号を監視する(ステップS307)。
【0066】
さらに、ホスト10は、メモリカード20におけるビジーが解除されたか否かを確認する(ステップS308)。ビジーが解除された場合、ホスト10はパスワード設定処理を終了する。
【0067】
また、ステップS303でレスポンスにエラーがあった場合(No)、ステップS306でCRCステータスにエラーがあった場合(No)、及びステップS308でメモリカード20におけるビジーが所定時間、解除されなかった場合(No)は、ホスト10はエラー処理を行う。
【0068】
一方、図8に示すメモリカード20の処理は以下のようになる。まず、メモリカード20は、ホスト10からロックコマンド(例えば、CMD42)を受信する(ステップS401)。メモリカード20は、CMD42に対するレスポンスをホスト10へ送信する(ステップS402)。
【0069】
続いて、メモリカード20は、パスワード設定を命ずる命令コード、パスワード及びパスワード長を含んだデータをホスト10から受信する(ステップS403)。前記データは、ロックコマンドに続いてメモリカード20に入力される。メモリカード20は、CRCステータスをホスト10へ送信する(ステップS404)。
【0070】
さらに、先に受信した命令コード、パスワード及びパスワード長を含んだデータに基づいて、メモリカード20はパスワード設定の処理を実行する(ステップS405)。続いて、メモリカード20は、パスワード設定の処理中であることをビジー信号によりSDバス30上でホスト10へ通知する(ステップS406)。その後、メモリカード20はパスワード設定処理を終了する。
【0071】
次に、図3A内の「データ書き込みまたは消去」(S17)の処理のうち、まずデータ書き込みの処理について図9及び図10を用いて説明する。図9はホスト側の処理手順を示し、図10はカード側の処理手順を示したものである。
【0072】
図9に示すホスト10の処理は以下のようになる。まず、ホスト10は、データ書き込みを命ずるコマンド(例えば、CMD24またはCMD25)をメモリカード20へ送信する(ステップS501)。続いて、ホスト10は、メモリカード20から前記コマンドのレスポンスを受信する(ステップS502)。
【0073】
ホスト10は、レスポンスにエラーがないかどうかを確認する(ステップS503)。レスポンスにエラーがない場合、書き込むべきユーザデータをメモリカード20へ送信する(ステップS504)。
【0074】
続いて、ホスト10は、メモリカード20からCRCステータスを受信する(ステップS505)。ホスト10は、CRCステータスにエラーがないかどうかを確認する(ステップS506)。CRCステータスにエラーがない場合、ホスト10はメモリカード20におけるビジーを監視する、すなわちホスト10はメモリカード20がデータ書き込みの処理中であることを示すビジー信号を監視する(ステップS507)。
【0075】
さらに、ホスト10は、メモリカード20におけるビジーが解除されたか否かを確認する(ステップS508)。ビジーが解除された場合、ホスト10はデータ書き込み処理を終了する。
【0076】
また、ステップS503でレスポンスにエラーがあった場合(No)、ステップS506でCRCステータスにエラーがあった場合(No)、及びステップS508でメモリカード20におけるビジーが所定時間、解除されなかった場合(No)は、ホスト10はエラー処理を行う。
【0077】
一方、図10に示すメモリカード20の処理は以下のようになる。まず、メモリカード20は、ホスト10からデータ書き込みを命ずるコマンド(例えば、CMD24またはCMD25)を受信する(ステップS601)。メモリカード20は、前記コマンドに対するレスポンスをホスト10へ送信する(ステップS602)。
【0078】
続いて、メモリカード20は、ホスト10から書き込むべきユーザデータを受信する(ステップS603)。メモリカード20は、CRCステータスをホスト10へ送信する(ステップS604)。
【0079】
続いて、メモリカード20は、不揮発性メモリ22内のユーザデータ領域22Bにユーザデータの書き込みを行う(ステップS605)。この処理中、メモリカード20は、書き込みの処理中であることをビジー信号によりホスト10へ通知する(ステップS606)。以上により、メモリカード20は書き込み処理を終了する。
【0080】
次に、図3A内の「データ書き込みまたは消去」(S17)の処理のうち、データ消去の処理について図11及び図12を用いて説明する。図11はホスト側の処理手順を示し、図12はカード側の処理手順を示したものである。
【0081】
図11に示すホスト10の処理は以下のようになる。データ消去の処理手順はデータ書き込みと類似しているが、ホスト10からのデータ送信の処理がないため、多少異なる。まず、ホスト10は、データ消去を命ずるコマンド(例えば、CMD32またはCMD33、CMD38)をメモリカード20へ送信する(ステップS701)。続いて、ホスト10は、メモリカード20から前記コマンドのレスポンスを受信する(ステップS702)。
【0082】
ホスト10は、レスポンスにエラーがないかどうかを確認する(ステップS703)。レスポンスにエラーがない場合は、ホスト10はメモリカード20におけるビジーを監視する、すなわちホスト10はメモリカード20がデータ消去の処理中であることを示すビジー信号を監視する(ステップS704)。
【0083】
さらに、ホスト10は、メモリカード20におけるビジーが解除されたか否かを確認する(ステップS705)。ビジーが解除された場合、ホスト10はデータ消去処理を終了する。
【0084】
また、ステップS703でレスポンスにエラーがあった場合(No)、及びステップS705でメモリカード20におけるビジーが所定時間、解除されなかった場合(No)は、ホスト10はエラー処理を行う。
【0085】
一方、図12に示すメモリカード20の処理は以下のようになる。まず、メモリカード20は、ホスト10からデータ消去を命ずるコマンドを受信する(ステップS801)。メモリカード20は、前記コマンドに対するレスポンスをホスト10へ送信する(ステップS802)。
【0086】
続いて、メモリカード20は、不揮発性メモリ22内のユーザデータ領域22Bに記憶されたデータを消去する(ステップS803)。この処理中、メモリカード20は、消去の処理中であることをビジー信号によりホスト10へ通知する(ステップS804)。以上により、メモリカード20は消去処理を終了する。
【0087】
次に、図3A内の「アンロック動作」(S21)の処理について説明する。
【0088】
アンロック動作は、ステップS14においてメモリカード20がロックされていた場合に実行される。アンロック動作の処理は、先に説明した図7と図8を用いて述べる。図7において、ステップS304で扱うデータ内の命令コードがアンロック動作を命ずるコードとなっている。また、図8において、ステップS403で扱うデータ内の命令コードがアンロック動作を命ずるコードとなっている。その他の処理は、図7または図8と同様である。
【0089】
次に、図3A内の「読み出し可能なロック動作」(S19)の処理について説明する。
【0090】
読み出し可能なロック動作は、ステップS19においてデータ書き込みまたは消去が成功した場合に実行される。読み出し可能なロック動作は、前述したように、メモリカード20に対し、データの書き込み及び消去を禁止し、データの読み出しのみを許可する動作である。
【0091】
読み出し可能なロック動作の処理は、先に説明した図7と図8を用いて述べる。図7において、ステップS304で扱うデータ内の命令コードが読み出し可能なロック動作を命ずるコードとなっている。また、図8において、ステップS403で扱うデータ内の命令コードが読み出し可能なロック動作を命ずるコードとなっている。その他の処理は、図7または図8と同様である。
【0092】
次に、メモリカード20が持つ自動ロック機能について説明する。自動ロック機能は、メモリカード20の電源がオンされたとき、すなわちメモリカードへの電源供給が開始されたときに、自動的に、メモリカードが読み出し可能なロック状態あるいはアンロック状態に設定される機能である。読み出し可能なロック状態は、データの書き込み及び消去を禁止し、データの読み出しのみを許可する状態を指す。
【0093】
図13は、「自動ロック」の処理を示すフローチャートである。
【0094】
メモリカード20にホスト10から電源が供給される(ステップS901)。すると、メモリカード20は、パスワードが既に設定されているか否かを確認する(ステップS902)。パスワードが既に設定されている場合は、メモリカード20は、自動的に読み出し可能なロック状態に遷移して起動する(ステップS903)。パスワードが設定されていない場合は、メモリカード20はロックされていない通常の状態(アンロック状態)で起動する(ステップS904)。以上により、メモリカード20は自動ロック処理を終了する。
【0095】
図13に示した機能は、従来のSD規格の自動ロック機能におけるロック状態を、読み出し可能なロック状態に置き換えたものである。ここで、読み出し可能なロック状態とは、書き込み、読み出し、及び消去をすべて禁止する従来のロック状態とは異なり、書き込み及び消去を禁止し、データの読み出しのみを許可する状態である。
【0096】
[3]効果
第1実施形態では、特定のホスト機器によりSDメモリカードにパスワードが設定されれば、メモリカードの自動ロック機能により、例えデータの書き込みあるいは消去の作業前や作業中であっても、またメモリカードへの電源供給が絶たれたり、カード自体が抜け落ちた場合でも、次回の電源供給によりメモリカードが自動的に読み出し可能なロック状態になる。このため、メモリカードのパスワードを認知していないその他のホスト機器、すなわち特定のホスト機器以外のその他のホスト機器では、読み出し可能なロック状態を解除できない。これにより、その他のホスト機器では、メモリカード内のデータの読み出しは可能だが、書き込みや消去ができない。この結果、データの読み出しのみを可能として、データの書き込みや消去による改ざんを防止することができる。
【0097】
また、特定のホスト機器がメモリカードに設定するパスワードの生成と設定を自動で行うため、ユーザによる設定の手間が省ける。さらに、ユーザにその処理自体を意識させる必要がないため、通常のホスト機器を扱う以上の知識が必要ない。
【0098】
また、読み出し可能なロック状態になったメモリカードであっても、メモリカードのパスワードを認知している特定のホスト機器を用いれば、パスワード認証によりロック状態を解除可能である。このため、メモリカード内のデータを適宜、編集あるいは消去したり、メモリカード内にデータを追加したりなど、従来のメモリカードと全く同等にユーザが扱えるため、ユーザに不便さを感じさせることはない。
【0099】
以上説明したように第1実施形態によれば、特定のホスト機器ではメモリカードへのデータの書き込み、読み出し、及び消去が可能であり、特定のホスト機器以外のその他のホスト機器ではデータの書き込み、消去を禁止し、データの読み出しのみを許可するメモリカード、ホスト機器、及びメモリシステムを提供することができる。これにより、特定のホスト機器以外のホスト機器では、データの読み出しだけしかできないため、メモリカードに記憶されたデータの改ざんを防止することができる。
【0100】
また、特定のホスト機器は、メモリカード内の不揮発性メモリが有するカード識別情報を使用して、メモリカードに設定するパスワードを自動的に生成する機能を備えることにより、ユーザがパスワードを設定する手間を省くことができる。
【0101】
さらに、特定のホスト機器はメモリカードが有するカード識別情報に基づいて固有のパスワードを生成するため、特定のホスト機器はパスワードを記憶しておく必要がない。このため、ホスト機器の記憶容量を消費しないという利点がある。
【0102】
[第2実施形態]
第2実施形態のメモリシステムについて説明する。第1実施形態では「読み出し可能なロック動作」(S19)におけるロックコマンドの命令コードにより「読み出し可能なロック動作」を指定したが、第2実施形態では、「パスワード設定」(S15)におけるロックコマンドの引数により「読み出し可能なロック動作」を指定する。第2実施形態は、第1実施形態と同様に、図1に示したシステム構成において、図3Aの処理手順により目的の動作を実現する。その際、図3A内の「パスワード設定」の処理が第1実施形態と異なる。第2実施形態における「パスワード設定」の処理を以下に説明する。
【0103】
図14及び図15は、第2実施形態における「パスワード設定」の処理を示すフローチャートである。図14はホスト側の処理手順を示し、図15はメモリカード側の処理手順を示したものである。
【0104】
図14に示すホスト10の処理は以下のようになる。まず、ホスト10は、ロックコマンド(例えば、CMD42)を引数付きでメモリカード20へ送信する(ステップS1001)。ホスト10は、メモリカード20からCMD42のレスポンスを受信する(ステップS302)。
【0105】
ホスト10は、レスポンスにエラーがないかどうかを確認する(ステップS303)。レスポンスにエラーがない場合、ホスト10は命令コード、先に生成したパスワード及びパスワード長を含んだデータをメモリカード20へ送信する(ステップS304)。前記データは、ロックコマンドに続いてホスト10からメモリカード20へ送信される。
【0106】
続いて、ホスト10は、メモリカード20からCRCステータスを受信する(ステップS305)。ホスト10は、CRCステータスにエラーがないかどうかを確認する(ステップS306)。CRCステータスにエラーがない場合、ホスト10はメモリカード20からのビジー信号を監視する(ステップS307)。
【0107】
さらに、ホスト10は、メモリカード20におけるビジーが解除されたか否かを確認する(ステップS308)。ビジーが解除された場合、ホスト10はロックコマンド動作を終了する。
【0108】
また、ステップS303でレスポンスにエラーがあった場合(No)、ステップS306でCRCステータスにエラーがあった場合(No)、及びステップS308でメモリカード20におけるビジーが所定時間、解除されなかった場合(No)は、ホスト10はエラー処理を行う。
【0109】
一方、図15に示すメモリカード20の処理は以下のようになる。まず、メモリカード20は、ホスト10からロックコマンド(例えば、CMD42)を引数付で受信する(ステップS1101)。メモリカード20は、CMD42に対するレスポンスをホスト10へ送信する(ステップS402)。
【0110】
続いて、メモリカード20は、命令コード、パスワード及びパスワード長を含んだデータをホスト10から受信する(ステップS403)。前記データは、ロックコマンドに続いてメモリカード20に入力される。メモリカード20は、CRCステータスをホスト10へ送信する(ステップS404)。
【0111】
さらに、先に受信した、引数と命令コード、パスワード及びパスワード長を含んだデータに基づいて、メモリカード20はロックコマンド動作を実行する(ステップS1102)。続いて、メモリカード20は、ロックコマンド動作の処理中であることをビジー信号によりSDバス30上でホスト10へ通知する(ステップS406)。その後、メモリカード20はロックコマンド動作を終了する。
【0112】
次に、図14内のステップS1001、及び図15内のステップS1101で使用するロックコマンドのフォーマットについて説明する。
【0113】
図16は、ロックコマンドのフォーマットを示す図である。
【0114】
図示するように、ロックコマンドは48ビットの長さを持つ。ロックコマンドのフォーマットは、上位からビット47がスタートビット、ビット46がトランスミッションビット、ビット45−40がコマンドインデックス、ビット39−8が引数、ビット7−1がCRC7、ビット0がエンドビットとなっている。
【0115】
ビット39−8の引数に、「読み出し可能なロック動作」を指示する機能を新たに割り当てることにより、ホスト10はメモリカード20に「読み出し可能なロック動作」の指示を伝えることができる。例えば、引数に“0x00000001”が設定されたときは、「読み出し可能なロック動作」を指示し、それ以外の値のときは、従来のロック動作を指示するというように区別して指定する。
【0116】
また、第2実施形態における図3A内の「アンロック動作」(S21)は、第1実施形態の図14において、ステップS304の命令コードがアンロック動作を命ずる点が異なり、その他の処理は図14に示した処理と同様である。図3A内の「読み出し可能なロック動作」(S19)も、第1実施形態の図15において、ステップS403の命令コードが読み出し可能なロック動作を命ずる点が異なり、その他の処理は図15に示した処理と同様である。さらに、第2実施形態における、図3A内の「パスワード生成」(S13)及び「データ書き込みまたは消去」(S17)についても、第1実施形態の図4、図5、図9、図10、図11、図12に示した処理と同様であるため、説明は省略する。
【0117】
次に、第2実施形態におけるメモリカード20が持つ自動ロック機能について説明する。図17は、「自動ロック」の処理を示すフローチャートである。
【0118】
メモリカード20にホスト10から電源が供給される(ステップS901)。すると、メモリカード20は、パスワードが既に設定されているか否かを確認する(ステップS902)。パスワードが既に設定されている場合は、前回のパスワード設定時に、コマンドの引数に「読み出し可能なロック動作」が指定されていたか否かを確認する(ステップS1201)。
【0119】
ステップS1201で「読み出し可能なロック動作」が指定されていた場合、メモリカード20は自動的に読み出し可能なロック状態に遷移して起動する(ステップS903)。「読み出し可能なロック動作」が指定されていない場合、メモリカード20は自動的にロック状態に遷移して起動する(ステップS1202)。
【0120】
また、ステップS902でパスワードが設定されていない場合は、メモリカード20はロックされていない通常の状態で起動する(ステップS904)。以上により、メモリカード20は自動ロック処理を終了する。
【0121】
第2実施形態では、ロックコマンドが有する引数により「読み出し可能なロック動作」を指定する手段を用いている。このような第2実施形態では、第1実施形態と同様の効果が得られる以外に次のような効果が得られる。従来の「ロック動作」の機能は変更せず、「ロック動作」に、読み出し可能なロック動作の機能を追加して実装することができるため、従来のホスト機器との互換性が保てる。その他の構成及び効果は、第1実施形態と同様である。
【0122】
[第3実施形態]
第3実施形態のメモリシステムについて説明する。第1実施形態では「読み出し可能なロック動作」(S19)におけるロックコマンドの命令コードにより「読み出し可能なロック動作」を指定したが、第3実施形態では、「パスワード設定」(S15)におけるロックコマンドの命令コードにより「読み出し可能なロック動作」を指定する。
【0123】
第3実施形態は、第1実施形態と同様に、図1のシステム構成において、図3Aの処理手順により目的の動作を実現する。その際、図3A内の「パスワード設定」の処理を示す図7及び図8において、ステップS304,S403で送受信されるデータが第1実施形態と異なる。そのデータのフォーマットを以下に説明する。
【0124】
図18は、図7内のステップS304、及び図8内のステップS403で転送されるデータのフォーマットを示す図である。
【0125】
図示するように、バイトオフセット0の各ビットに、ロックの動作モードがそれぞれ割り当てられている。また、バイトオフセット1にはパスワード長が格納され、バイトオフセット2からパスワード長+1までには、パスワードデータが格納される。
【0126】
バイトオフセット0の各ビットについて詳しく説明する。ビット0−3は従来どおりの機能が割り当てられており、ビット0は「パスワード設定動作」、ビット1は「パスワードクリア動作」、ビット2は「ロック動作/アンロック動作」、ビット3は「強制イレーズ動作」がそれぞれ割り当てられている。ここで、「読み出し可能なロック動作」を例えばビット4に割り当てる。これにより、ビット4に例えば“1”がセットされたデータをメモリカード20が受信することにより、図8に示したステップS405において「読み出し可能なロック動作」の処理を行う。
【0127】
また、第3実施形態における図3A内の「アンロック動作」(S21)は、第1実施形態の図14において、ステップS304の命令コードがアンロック動作を命ずる点が異なり、その他の処理は図14に示した処理と同様である。図3A内の「読み出し可能なロック動作」(S19)も、第1実施形態の図15において、ステップS403の命令コードが読み出し可能なロック動作を命ずる点が異なり、その他の処理は図15に示した処理と同様である。さらに、第3実施形態における、図3A内の「パスワード生成」(S13)、及び「データ書き込みまたは消去」(S17)についても、第1実施形態の図4、図5、図9、図10、図11、図12に示した処理と同様であるため、説明は省略する。
【0128】
次に、第3実施形態におけるメモリカード20が持つ自動ロック機能について説明する。図19は、「自動ロック」の処理を示すフローチャートである。
【0129】
メモリカード20にホスト10から電源が供給される(ステップS901)。すると、メモリカード20は、パスワードが既に設定されているか否かを確認する(ステップS902)。パスワードが既に設定されている場合は、前回のパスワード設定時に受信したデータ内の命令コードに「読み出し可能なロック動作」が指定されていたか否かを確認する(ステップS1301)。
【0130】
ステップS1301で「読み出し可能なロック動作」が指定されていた場合、メモリカード20は自動的に読み出し可能なロック状態に遷移して起動する(ステップS903)。「読み出し可能なロック動作」が指定されていない場合、メモリカード20は自動的にロック状態に遷移して起動する(ステップS1202)。
【0131】
また、ステップS902でパスワードが設定されていない場合は、メモリカード20はロックされていない通常の状態で起動する(ステップS904)。以上により、メモリカード20は自動ロック処理を終了する。
【0132】
第3実施形態では、「パスワード設定」(S15)におけるロックコマンドのデータ内の命令コードにより「読み出し可能なロック動作」を指定する手段を用いている。このような第3実施形態では、第1実施形態と同様の効果が得られる以外に次のような効果が得られる。第2実施形態と同様に、従来の「ロック動作」の機能は変更せず、「ロック動作」に、読み出し可能なロック動作の機能を追加して実装することができるため、従来のホスト機器との互換性が保てる。その他の構成及び効果は、第1実施形態と同様である。
【0133】
[第4実施形態]
第4実施形態のメモリシステムについて説明する。第3実施形態では「パスワード設定」(S15)におけるロックコマンドの命令コードにより「読み出し可能なロック動作」を指定したが、第4実施形態では、「パスワード設定」(S15)におけるジェネラルコマンド(例えば、CMD56)の命令コードにより「読み出し可能なロック動作」を指定する。ジェネラルコマンドは、任意に使用できるコマンドである(ジェネラルコマンド(CMD56)については、“Part 1 Physical Layer Simplified Specification Ver3.01”を参照のこと)。
【0134】
第4実施形態は、第1実施形態と同様に、図1のシステム構成において、図3Aの処理手順により目的の動作を実現する。その際、図3A内の「パスワード設定」、「アンロック動作」、及び「読み出し可能なロック動作」の処理が第1実施形態と異なる。第4実施形態における「パスワード設定」、「アンロック動作」、及び「読み出し可能なロック動作」の処理を以下に説明する。
【0135】
図20及び図21は、「パスワード設定」、「アンロック動作」、及び「読み出し可能なロック動作」の処理を示すフローチャートである。図20はホスト側の処理手順を示し、図21はメモリカード側の処理手順を示したものである。
【0136】
図20にて示す「パスワード設定」、「アンロック動作」、及び「読み出し可能なロック動作」の処理では、ステップS1401,S1402に示すように、図7の処理においてステップS301,S302で使用するロックコマンドをジェネラルコマンド(例えば、CMD56)に置き換える。さらに、ステップS304における命令コードにより「読み出し可能なロック動作」、「アンロック動作」、及び「読み出し可能なロック動作」をそれぞれ指定する。その他の処理は、図7に示した処理と同様である。
【0137】
図21にて示す「パスワード設定」、「アンロック動作」、及び「読み出し可能なロック動作」の処理では、ステップS1501,S1502に示すように、図8の処理においてステップS401,S4O2で使用するロックコマンドをジェネラルコマンド(例えば、CMD56)に置き換える。さらに、ステップS403における命令コードにより「読み出し可能なロック動作」、「アンロック動作」、及び「読み出し可能なロック動作」をそれぞれ指定する。その他の処理は、図8に示した処理と同様である。
【0138】
また、第4実施形態における、図3A内の「パスワード生成」(S13)、「データ書き込みまたは消去」(S17)、及び「自動ロック」についても、第1実施形態の図4、図5、図9、図10、図11、図12、図13に示した処理と同様であるため、説明は省略する。
【0139】
第4実施形態では、「パスワード設定」(S15)におけるジェネラルコマンドのデータ内の命令コードにより「読み出し可能なロック動作」を指定する手段を用いている。このような第4実施形態では、第1実施形態と同様の効果が得られる以外に次のような効果が得られる。第2,第3実施形態と同様に、従来の「ロック動作」の機能は変更せず、「ロック動作」に、読み出し可能なロック動作の機能を追加して実装することができるため、従来のホスト機器との互換性が保てる。その他の構成及び効果は、第1実施形態と同様である。
【0140】
以上述べたように第1〜第4実施形態によれば、特定のホスト機器ではメモリカードへのデータの書き込み、読み出し、及び消去が許可され、特定のホスト機器以外のその他のホスト機器ではデータの書き込み、消去を禁止し、データの読み出しのみを許可するメモリカード、ホスト機器、及びメモリシステムを提供することができる。これにより、特定のホスト機器以外のホスト機器では、データの読み出ししかできないため、メモリカードに記憶されたデータの改ざんを防止することができる。
【0141】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0142】
10…SDホスト機器、11…ホストコントローラ、20…SDメモリカード、21…メモリコントローラ、22…不揮発性メモリ、22A…CID情報領域、22B…ユーザデータ領域、23…メモリバス、30…SDバス。
【特許請求の範囲】
【請求項1】
メモリカード個々に付与されたカード識別情報を有する不揮発性メモリと、
前記不揮発性メモリへのデータの書き込み、読み出し、及び消去を制御するコントローラとを具備し、
前記コントローラは、前記カード識別情報に基づいて生成されたパスワードを用いてパスワードの設定を行い、
前記コントローラは、前記パスワードの設定を行った後、前記不揮発性メモリに対してデータの書き込み及び消去を禁止し、かつデータの読み出しを許可する読み出し可能なロック動作を行うことを特徴とするメモリカード。
【請求項2】
メモリカード個々に付与されたカード識別情報を有する不揮発性メモリと、
前記不揮発性メモリへのデータの書き込み、読み出し、及び消去を制御するコントローラとを具備し、
前記コントローラは、電源供給が開始されたとき、前記カード識別情報に基づいて生成されたパスワードが設定されているか否かを確認し、
前記コントローラは、前記パスワードが設定されている場合は、前記不揮発性メモリに対するデータの書き込み及び読み出しを禁止し、かつデータの読み出しを許可し、
前記パスワードが設定されていない場合は、前記不揮発性メモリに対するデータの書き込み、読み出し、及び消去を許可することを特徴とするメモリカード。
【請求項3】
前記コントローラは、受信したコマンドが含む引数によって前記読み出し可能なロック動作を行うことを特徴とする請求項1に記載のメモリカード。
【請求項4】
前記コントローラは、受信したコマンドに続いて入力されたデータが含む命令コードによって、前記読み出し可能なロック動作を行うことを特徴とする請求項1に記載のメモリカード。
【請求項5】
メモリカードに対してアクセスするホスト機器において、
前記ホスト機器は、前記メモリカードとの間で信号の授受を行うホストコントローラを具備し、
前記ホストコントローラは、前記メモリカードからカード識別情報を受信し、前記カード識別情報に基づいて前記メモリカードに設定するパスワードを生成することを特徴とするホスト機器。
【請求項6】
前記ホストコントローラは、コマンドを前記メモリカードへ送信することによって、データの書き込み及び消去を禁止し、かつデータの読み出しを許可する、読み出し可能なロック動作を前記メモリカードに実行させることを特徴とする請求項5に記載のホスト機器。
【請求項7】
前記ホストコントローラは、前記コマンドが含む引数によって前記読み出し可能なロック動作を前記メモリカードに実行させることを特徴とする請求項6に記載のホスト機器。
【請求項8】
前記ホストコントローラは、前記コマンドに続いて前記メモリカードへ入力される命令コード及び前記パスワードによって、前記読み出し可能なロック動作を前記メモリカードに実行させることを特徴とする請求項6に記載のホスト機器。
【請求項1】
メモリカード個々に付与されたカード識別情報を有する不揮発性メモリと、
前記不揮発性メモリへのデータの書き込み、読み出し、及び消去を制御するコントローラとを具備し、
前記コントローラは、前記カード識別情報に基づいて生成されたパスワードを用いてパスワードの設定を行い、
前記コントローラは、前記パスワードの設定を行った後、前記不揮発性メモリに対してデータの書き込み及び消去を禁止し、かつデータの読み出しを許可する読み出し可能なロック動作を行うことを特徴とするメモリカード。
【請求項2】
メモリカード個々に付与されたカード識別情報を有する不揮発性メモリと、
前記不揮発性メモリへのデータの書き込み、読み出し、及び消去を制御するコントローラとを具備し、
前記コントローラは、電源供給が開始されたとき、前記カード識別情報に基づいて生成されたパスワードが設定されているか否かを確認し、
前記コントローラは、前記パスワードが設定されている場合は、前記不揮発性メモリに対するデータの書き込み及び読み出しを禁止し、かつデータの読み出しを許可し、
前記パスワードが設定されていない場合は、前記不揮発性メモリに対するデータの書き込み、読み出し、及び消去を許可することを特徴とするメモリカード。
【請求項3】
前記コントローラは、受信したコマンドが含む引数によって前記読み出し可能なロック動作を行うことを特徴とする請求項1に記載のメモリカード。
【請求項4】
前記コントローラは、受信したコマンドに続いて入力されたデータが含む命令コードによって、前記読み出し可能なロック動作を行うことを特徴とする請求項1に記載のメモリカード。
【請求項5】
メモリカードに対してアクセスするホスト機器において、
前記ホスト機器は、前記メモリカードとの間で信号の授受を行うホストコントローラを具備し、
前記ホストコントローラは、前記メモリカードからカード識別情報を受信し、前記カード識別情報に基づいて前記メモリカードに設定するパスワードを生成することを特徴とするホスト機器。
【請求項6】
前記ホストコントローラは、コマンドを前記メモリカードへ送信することによって、データの書き込み及び消去を禁止し、かつデータの読み出しを許可する、読み出し可能なロック動作を前記メモリカードに実行させることを特徴とする請求項5に記載のホスト機器。
【請求項7】
前記ホストコントローラは、前記コマンドが含む引数によって前記読み出し可能なロック動作を前記メモリカードに実行させることを特徴とする請求項6に記載のホスト機器。
【請求項8】
前記ホストコントローラは、前記コマンドに続いて前記メモリカードへ入力される命令コード及び前記パスワードによって、前記読み出し可能なロック動作を前記メモリカードに実行させることを特徴とする請求項6に記載のホスト機器。
【図1】
【図2】
【図3A】
【図3B】
【図3C】
【図3D】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3A】
【図3B】
【図3C】
【図3D】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公開番号】特開2012−212396(P2012−212396A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2011−78675(P2011−78675)
【出願日】平成23年3月31日(2011.3.31)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願日】平成23年3月31日(2011.3.31)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]