第 2 部 SD/MMC カード編

第7章

イニシャライズ，セクタの読み書き，消去の動作

SD メモリーカードの実装の心得
岡田 浩人

1999 年に発表された SD メモリーカード（SD カード）

本章では，SD メモリーカードのプロトコルについは，2003 年に miniSD カード，そして 2004 年に microて，そのベースとなった MMC（マルチメディアカー

SD カードと，より小型に進化し続けています．機能ド）と比較しながら，実際のホスト機器の実装でしばについては，SD Memory Card Specifications Part.1

しば問題になるポイントを説明していきます．

Physical Layer Specification（SD Spec）の Version

SD メモリー
1 イニシャライズ――
カードと MMC カードには違いが1.10 で 50MHz の High Speed バージョンの規定が追加され，Version 2.00 で 2G バイトを超える High Capacity● SD メモリーカードと MMC カードの違い

カードの仕様が策定されました．
miniSD カードや microSD カードは，SD メモリーSD メモリーカードと MMC カードのインターカードと形状だけでなくピン数も異なります．
しかし，フェースのもっとも大きな違いは，イニシャライズのその内訳をみると，miniSD カードは 2 本の予備ピン部分です．

が追加されているだけです．また，microSD カード

SD メモリーカードは MMC カードの上位互換にな

は 2 本あった VSS が 1 本に減っただけで，通信の基本るように設計されているので，当然ながら，SD メモとなる SCLK，CMD，DATA0 〜 3 は同じであること

リーカードの入るコネクタには MMC カードも入りまがわかります（表 1）．

す．そのため，SD メモリーカードをサポートした機
注1

50MHz の High Speed バージョン

では，基本的に器にカードを挿入したとき，そのカードが SD メモ

は 25M バイト/s のデータ転送を実現するためにクロッリーカードなのか，それとも MMC カードなのかを識

ク周波数をそれまでの 25MHz から 2 倍の 50MHz にし別するために，カードのイニシャライズ方式が変更さました．また，2G バイトを超える High Capacity カーれているのです．

ドでは，アドレッシング方法およびデータのブロック

SD メモリーカードと MMC カードは，いわば兄弟長に関する変更が行われており，SD メモリーカードのようなカードです．しかし，その仕様を管理していの基本的な通信プロトコルは継承されています．

る普及推進団体は，SD メモリーカードは SDA（SDcard Association）で，MMC カードが MMCA（Multi

注 1 ：Version 1.10 対応の High Speed バージョンの SD メモリー
カードは，それ以前のホスト機器でも動作する．

表1
SD メモリーカード，miniSD
カード，microSD カードのピン比較

ピン数

信号名

148

MediaCard Association）という別団体です．そのため，カードの使用に関するライセンス形態が異なりまSD メモリーカード
9SCLK
CMD
DATA0 〜 3VSS（× 2）
VDD―miniSD カード
11SCLKCMD
DATA0 〜 3
VSS（× 2）VDD
予備（× 2）

microSD カード
8SCLK
CMD
DATA0 〜 3VSS
VDD―第7章
す 注 2 ．ホスト機器側は，意識的に両者のカードを区別してサポートする必要があります．
● SD メモリーカードと MMC カードのイニシャライ
ズ・ルーチン

SD メモリーカードの実装の心得

電源投入/
カード検出

電源投入/
カード検出

ダミー・クロック（最低74クロック）ダミー・クロック（最低74クロック）

CMD0

CMD0

ACMD41CMD1sCMD0 を最初に発行する
図 1 に SD メモリーカードと MMC カードのイニシャライズ・ルーチンを示します．SD メモリーカー
ドは，MMC カードの CMD1 にはレスポンスを返しません．したがって，ホスト機器は，カードの挿入を検出したとき，まず CMD0 に続いて CMD1 を発行しま

カードRDY?

CMD1 にレスポンスする），再度 CMD0 を発行してかカードRDY?

noyes

yes＊CMD2CMD2＊

CMD3＊

CMD3＊

イニシャライズ終了

イニシャライズ終了

す．レスポンスがない場合は，挿入されたカードがMMC カードではないと判断し（MMC カードだとnoら ACMD41 を発行します．このとき，レスポンスがあれば，挿入されたカードは SD メモリーカードと認識して，CMD2，CMD3 と連続した処理を行います．
ACMD41 に対してレスポンスがない場合は，処理できないカードとしてエラー処理を行います．CMD0は，リセット・コマンドでカードをリセット状態（idle ステート）にします．

＊：SDカードとMMCでは，CMD2，CMD3の動作が異なる（a）SDメモリーカードのイニシャライズ（b）MMCのイニシャライズ

図 1 SD メモリーカードと MMC のイニシャライズ・ルーチン

仕様については，CMD0 の発行は SD Spec で定義されていません．しかし，まずカードを確実に idle スです．最初に発行した ACMD41 で，カード内部の初期テートから始めるためにも，CMD0 を最初に発行す化がスタートします．これ以降，しばらくカードはることをお勧めします．

BSY 状態になり，ACMD41 に対するレスポンスでも，蜷与えられた電源電圧で動作可能か確認

カードは BSY 状態を示します．

続く ACMD41（MMC では CMD1）では，二つの処

カード内部の初期化が終了すると，カードは Ready理が行われます．一つは，ホスト機器がカードに対しステートになり，カード・レスポンスは RDY 状態をて電源電圧を通知し，カード側で通知された電源電圧示します．ホスト機器は ACMD41 を発行し，ステーで動作可能かどうかを判断することです．通知されたタスのポーリングを行ってカード・レスポンスが電圧で動作可能な場合，カードはホスト機器にレスポRDY 状態になったことを確認する必要があります．

ンスを返します．もし，通知された電圧で動作できな

このカード初期化のための BSY 時間は，カードのい場合，カードはレスポンスを返さず，inactive ス

大容量化に伴い長くなる傾向にあります．BSY タイテートに移行し，それ以降のホスト機器からのアクセ

ム・アウト時間が短く設定されており，かつ SD メモスにいっさい対応しません．inactive ステートから抜

リーカードが正常に初期化動作を行っているにもかかけるためには，一度，電源を OFF にする必要がありわらずタイム・アウト・エラーになってしまう障害例ます．もし，SD メモリーカードが ACMD41 にレスポがあります．そのため，BSY タイム・アウト時間は，ンスしない場合は，ホスト機器から通知した電源電圧1 秒以上に設定します．

が，そのカードのサポートしている電圧であるかどう蜷CMD2 ―― 複数の MMC カードが接続されているとかを確認してください．
蜷カードの初期化処理で使える状態にする
ACMD41 のもう一つの処理は，カードの初期化処理

きの処理
CMD2 は，複数の MMC カードが一つの MMC カード・バスに接続されている場合，その中から一つの

注 2 ：SD メモリーカードをホスト機器で採用する場合，SDA とのライセンス契約が必要となる．MMC カードの場合，この種のライセンス契約は必要ない．ただし，MMCA では，MMCA のメンバになることを強く推奨している．

149