...

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

by user

on
Category: Documents
26

views

Report

Comments

Transcript

SDメモリーカードの 実装の心得
第 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
1
1.10 で 50MHz の High Speed バージョンの規定が追加
され,
Version 2.00 で 2G バイトを超える High Capacity
イニシャライズ―― SD メモリー
カードと MMC カードには違いが
● 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(SD
card Association)で,MMC カードが MMCA(Multi
注 1 :Version 1.10 対応の High Speed バージョンの SD メモリー
カードは,それ以前のホスト機器でも動作する.
表1
SD メモリーカード,miniSD
カード,microSD カードのピ
ン比較
ピン数
信号名
148
MediaCard Association)という別団体です.そのた
め,カードの使用に関するライセンス形態が異なりま
SD メモリーカード
9
SCLK
CMD
DATA0 ∼ 3
VSS(× 2)
VDD
―
miniSD カード
11
SCLK
CMD
DATA0 ∼ 3
VSS(× 2)
VDD
予備(× 2)
microSD カード
8
SCLK
CMD
DATA0 ∼ 3
VSS
VDD
―
第 7 章 SD メモリーカードの実装の心得
す 注 2 .ホスト機器側は,意識的に両者のカードを区
別してサポートする必要があります.
● SD メモリーカードと MMC カードのイニシャライ
ズ・ルーチン
電源投入/
カード検出
電源投入/
カード検出
ダミー・クロック
(最低74クロック)
ダミー・クロック
(最低74クロック)
CMD0
CMD0
ACMD41
CMD1
sCMD0 を最初に発行する
図 1 に SD メモリーカードと MMC カードのイニ
シャライズ・ルーチンを示します.SD メモリーカー
ドは,MMC カードの CMD1 にはレスポンスを返しま
せん.したがって,ホスト機器は,カードの挿入を検
出したとき,まず CMD0 に続いて CMD1 を発行しま
カード
RDY?
CMD1 にレスポンスする),再度 CMD0 を発行してか
カード
RDY?
yes
す.レスポンスがない場合は,挿入されたカードが
MMC カードではないと判断し(MMC カードだと
no
no
yes
*
CMD2
CMD2*
CMD3*
CMD3*
イニシャライズ終了
イニシャライズ終了
ら 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
Fly UP