ご注意
安全設計に関するお願い
1. 弊社は品質、信頼性の向上に努めておりますが、半導体製品は故障が発生したり、誤動作する場合があります。弊社の半導体製品の故障又は誤動作によって結果として、人身事故、火災事故、社会的損害などを生じさせないような安全性を考慮した冗長設計、延焼対策設計、誤動作防止設計などの安全設計に十分ご留意ください。
本資料ご利用に際しての留意事項
1. 本資料は、お客様が用途に応じた適切なルネサス テクノロジ製品をご購入いただくための参考資料であり、本資料中に記載の技術情報についてルネサス テクノロジが所有する知的財産権その他の権利の実施、使用を許諾するものではありません。
2. 本資料に記載の製品データ、図、表、プログラム、アルゴリズムその他応用回路例の使用に起因する損害、第三者所有の権利に対する侵害に関し、ルネサス テクノロジは責任を負いません。
3. 本資料に記載の製品データ、図、表、プログラム、アルゴリズムその他全ての情報
は本資料発行時点のものであり、ルネサス テクノロジは、予告なしに、本資料に記載した製品または仕様を変更することがあります。ルネサス テクノロジ半導体製品のご購入に当たりましては、事前にルネサス テクノロジ、ルネサス販売または特約店へ最新の情報をご確認頂きますとともに、ルネサス テクノロジホームページ(http://www.renesas.com)などを通じて公開される情報に常にご注意ください。
4. 本資料に記載した情報は、正確を期すため、慎重に制作したものですが万一本資料の記述誤りに起因する損害がお客様に生じた場合には、ルネサス テクノロジはその責任を負いません。
5. 本資料に記載の製品データ、図、表に示す技術的な内容、プログラム及びアルゴリ
ズムを流用する場合は、技術内容、プログラム、アルゴリズム単位で評価するだけ
でなく、システム全体で十分に評価し、お客様の責任において適用可否を判断してください。ルネサス テクノロジは、適用可否に対する責任は負いません。
6. 本資料に記載された製品は、人命にかかわるような状況の下で使用される機器あるいはシステムに用いられることを目的として設計、製造されたものではありません。
本資料に記載の製品を運輸、移動体用、医療用、航空宇宙用、原子力制御用、海底中継用機器あるいはシステムなど、特殊用途へのご利用をご検討の際には、ルネサ
ス テクノロジ、ルネサス販売または特約店へご照会ください。
7. 本資料の転載、複製については、文書によるルネサス テクノロジの事前の承諾が必要です。
8. 本資料に関し詳細についてのお問い合わせ、その他お気付きの点がございましたら
ルネサス テクノロジ、ルネサス販売または特約店までご照会ください。

ADJ-603-002B(O)マルチメディアカード ユーザーズマニュアル

マルチメディアカード
発行年月日
発行
編集
株式会社 日立製作所

2000 年 9 月 第 1 版
2003 年 3 月 第 3 版
株式会社 日立製作所
半導体グループビジネスオペレーション本部
株式会社日立小平セミコン
技術ドキュメントグループ
2000

ご注意
1

本書に記載の製品及び技術のうち「外国為替及び外国貿易法」に基づき安全保障貿易管理関連貨物・技術に該当するものを輸出する場合，または国外に持ち出す場合は日本国政府の許可が必要です。

2

3

本書に記載された情報の使用に際して，弊社もしくは第三者の特許権，著作権，商標権，その他の知的所有権等の権利に対する保証または実施権の許諾を行うものではありません。また本書に記載された情報を使用した事により第三者の知的所有権等の権利に関わる問題が生じた場合，弊社はその責を負いませんので予めご了承ください。
製品及び製品仕様は予告無く変更する場合がありますので，最終的な設計，ご購入，ご使用に際しましては，
事前に最新の製品規格または仕様書をお求めになりご確認ください。

4

弊社は品質・信頼性の向上に努めておりますが，宇宙，航空，原子力，燃焼制御，運輸，交通，各種安全装置， ライフサポート関連の医療機器等のように，特別な品質・信頼性が要求され，その故障や誤動作が直接人命を脅かしたり，人体に危害を及ぼす恐れのある用途にご使用をお考えのお客様は，事前に弊社営業担当
迄ご相談をお願い致します。

5

設計に際しては，特に最大定格，動作電源電圧範囲，放熱特性，実装条件及びその他諸条件につきましては，
弊社保証範囲内でご使用いただきますようお願い致します。
保証値を越えてご使用された場合の故障及び事故につきましては，弊社はその責を負いません。また保証値
内のご使用であっても半導体製品について通常予測される故障発生率，故障モードをご考慮の上，弊社製品の動作が原因でご使用機器が人身事故，火災事故，その他の拡大損害を生じないようにフェールセーフ等のシステム上の対策を講じて頂きますようお願い致します。

6

本製品は耐放射線設計をしておりません。

7

本書の一部または全部を弊社の文書による承認なしに転載または複製することを堅くお断り致します。

8

本書をはじめ弊社半導体についてのお問い合わせ，ご相談は弊社営業担当迄お願い致します。

目次
マルチメディアカードの歴史と特徴 ....................................................................................................... 1-1

1.
1.1

フラッシュカードの歴史 ............................................................................................................................... 1-1

1.2

マルチメディアカードの特徴 ....................................................................................................................... 1-2

1.3

MMCA規格Ver.3.2について .......................................................................................................................... 1-4
日立マルチメディアカードの概要........................................................................................................... 2-1

2.
2.1

マルチメディアカードのシステムコンセプト............................................................................................ 2-1

2.2

バスインタフェース....................................................................................................................................... 2-2

2.2.1

インタフェース........................................................................................................................................ 2-2

2.2.2

複数カード識別方法................................................................................................................................ 2-3

2.2.3

バスプロトコル........................................................................................................................................ 2-4

2.2.4

転送モード................................................................................................................................................ 2-5

2.3

CRC .................................................................................................................................................................. 2-7

2.4

レジスタ .......................................................................................................................................................... 2-8

2.4.1

OCR（Operation conditions register：動作条件レジスタ） .................................................................. 2-9

2.4.2

CID（Card identification number：カード ID レジスタ）................................................................... 2-10

2.4.3

RCA（Relative card address：相対カードアドレスレジスタ）−MMC モードのみ使用............... 2-10

2.4.4

CSD（Card specific data：カード特性レジスタ） .............................................................................. 2-10

2.4.5

DSR（Driver specific data：ドライバステージレジスタ）................................................................ 2-12

2.4.6

ステータスレジスタ.............................................................................................................................. 2-12
コマンド ........................................................................................................................................................ 2-14

2.5
2.5.1

コマンド概要.......................................................................................................................................... 2-14

2.5.2

MMC モードのコマンド ....................................................................................................................... 2-18

2.5.3

SPI モードのコマンド ........................................................................................................................... 2-35

2.6

レスポンス .................................................................................................................................................... 2-39

2.7

データトークン............................................................................................................................................. 2-41

2.8

リードライトプロトコル ............................................................................................................................. 2-42
応用プロダクト開発のためのトータルシステム サポート ...................................................................... 3-1

3.
3.1

マルチメディアカードシステムの開発 ....................................................................................................... 3-1

3.1.1

サポート概要............................................................................................................................................ 3-1

3.1.2

システム開発の流れ................................................................................................................................ 3-2

3.2
3.2.1

アダプタ論理................................................................................................................................................... 3-6
ポート制御方式........................................................................................................................................ 3-7

3.2.2

MMC アダプタ ......................................................................................................................................... 3-8

3.2.3

SPI アダプタ............................................................................................................................................. 3-9

3.2.4

ホストマイコン........................................................................................................................................ 3-9
開発プラットホーム..................................................................................................................................... 3-10

3.3
3.3.1

マイコンの選定...................................................................................................................................... 3-12

3.3.2

制御アダプタ回路.................................................................................................................................. 3-12

3.3.3

MMC バスインタフェース ................................................................................................................... 3-12

3.3.4

モニタモード.......................................................................................................................................... 3-123.3.5

デバッグモード...................................................................................................................................... 3-14
搭載機器のためのソフトウェア ................................................................................................................. 3-15

3.4
3.4.1

ソフトウェア構成.................................................................................................................................. 3-15

3.4.2

ファイルシステムとの切り口 .............................................................................................................. 3-17

3.4.3

MMC の活線挿抜対応 ........................................................................................................................... 3-17

3.4.4

MMC の初期化について ....................................................................................................................... 3-19

3.5

マルチメディアカードプロトコルアナライザ.......................................................................................... 3-21

3.6

応用システム開発事例（ミュージックプレーヤの試作） ...................................................................... 3-29

3.6.1

マイコンと MMC 間のアダプタ論理................................................................................................... 3-31

3.6.2

使用マイコン.......................................................................................................................................... 3-31

3.6.3

AUDIO コーデックその他 .................................................................................................................... 3-32

マルチメディアカードシステム設計時の注意事項 .................................................................................. 4-1

4.
4.1

始めに .............................................................................................................................................................. 4-1

4.2

動作モードについて....................................................................................................................................... 4-1

4.3

バス設計 .......................................................................................................................................................... 4-2

4.3.1
4.3.2
4.4

バス配線設計............................................................................................................................................ 4-2
電源ノイズ低減........................................................................................................................................ 4-4
電源投入時の注意事項とリセット動作 ....................................................................................................... 4-5

4.4.1

電源投入 ................................................................................................................................................... 4-5

4.4.2

リセット動作............................................................................................................................................ 4-6

4.5
4.5.1
4.5.2

MMCモードにおけるデータ転送までの初期設定について ...................................................................... 4-7動作電圧条件の取得と指定 .................................................................................................................... 4-9
カード属性情報の取得およびバス上におけるカードの相対的アドレスの指定.............................. 4-9

4.6

SPIモードにおけるデータ転送までの初期設定について ........................................................................ 4-11

4.7

タイミング設計について ............................................................................................................................. 4-12

付録 ..........................................................................................................................................................付録-1
A.

開発サポート............................................................................................................................................. 付録-1

1.

マルチメディアカードの歴史と特徴

1.1

フラッシュカードの歴史

フラッシュメモリを使用したカードの歴史は 1990 年に PCMCIA において規格が決定した PC メモリカードに始まります。これは PC メモリカードをフラッシュメモリで実現したものであり、現在一般にリニアのフラッシュメモリカードと呼ばれ、主にノートパソコン等の小型携帯機器の拡張メモリとして使用されています。
次いで 1992 年の PC カードの規格改定において、ハードディスクと同様のインタフェースを採用した IDE/ATA
互換の I/O カードとして PC-ATA カード規格（PC Card ATA 仕様）が 1992 年に誕生し、現在販売されているほ
とんどのノート PC にそのスロットが搭載されるまでに普及しました。
その後、フラッシュカードは小型化に向かい、PC-ATA カードの機能をそのままに、形状のみ小型化したコン
パクトフラッシュカードが 1995 年に製品化されました。コンパクトフラッシュカードはデジタルカメラ、ハンドヘルド PC 等への採用によりその生産数量は飛躍的に伸びました。同時期にフラッシュメモリのみを搭載した
カードとしてスマートメディアも誕生し、コンパクトフラッシュカードとともにデジタルカメラ等の記憶媒体として普及しています。また、1996 年には汎用メモリカードとして新しく設計されたミニチュアカードの仕様が発表されています。
1998 年に、携帯音楽プレーヤなどの小型機器用として一層の小型化を図って生まれたのがマルチメディアカー
ド（以下 MMC）とメモリスティックです。マルチメディアカードは、コンパクトフラッシュに比べて容積で 1/5という驚異的な小型化が実現できたことにより、MP3 プレーヤ、ビデオカメラなど、その応用製品が続々と発売されています。
さらに 2002 年には、市場のさらなる小型化の要求により、より一層の小型化を図ったフラッシュカードが相次いで発表されました。メモリースティック Duo、xD ピクチャーカード、リデューストサイズマルチメディア
カードです。このうち最も小型なリデューストサイズマルチメディアカードは、その小型サイズ（24×18×1.4mm）
から、リムーバブルメディアとしてだけではなく、増設・リプレースの容易な内蔵メモリとしても使用可能です。
マルチメディアカードは、コンパクトフラッシュと同様にオープンスタンダードによる業界標準化を目指しています。標準化を推進する団体として、1998 年 1 月にマルチメディアカードアソシエーション（MMCA）*1 が設立されました。
また、データの保存以外に、セキュリティ機能を搭載したカードも生まれています。まず、1999 年には、著作権保護機能付きカードとして、マジックゲートメモリースティック、SD メモリーカード、セキュアマルチメディアカードが発表されました。さらに 2002 年には、セキュアマルチメディアカードの機能に個人認証機能を搭載した、PIN(*2)セキュアマルチメディアカードが登場しました。PIN セキュアマルチメディアカードは、マルチメディアカードとのコンパチビリティが確保されています。以上の簡単なフラッシュカードの歴史を図 1.1 に示します。
当社ではこれまで PC-ATA カード、コンパクトフラッシュカード、マルチメディアカードを提供しており、今後は PIN セキュアマルチメディアカードにも力を入れて販売していく予定です。

1-1

マルチメディアカードの歴史と特徴

1.

なお、本ユーザーズマニュアルは、通常のマルチメディアカードを中心に記述しております。Security 機能付
きカードのユーザーズマニュアルについては、別途準備予定です。
【注】*1

MMCA のホームページ：http://www.mmca.org/*2

PIN（Personal Identification Number）：個人認証

1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
٨PCMCIA⸳┙٨PCMCIA㧛JEIDA౒ㅢⷙᩰ٨ࠦࡦࡄࠢ࠻ࡈ࡜࠶ࠪࡘ઀᭽⊒⴫
٨SSFDC㧔ࠬࡑ࡯࠻ࡔ࠺ࠖࠕ㧕⵾ຠൻ٨ࡒ࠾࠴ࡘࠕࠞ࡯࠼઀᭽⊒⴫٨ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼઀᭽⊒⴫٨ࡔࡕ࡝ࠬ࠹ࠖ࠶ࠢ઀᭽⊒⴫
٨SDࡔࡕ࡝࡯ࠞ࡯࠼઀᭽⊒⴫٨࠮ࠠࡘࠕࡑ࡞࠴ࡔ࠺ࠖࠕ
‫઀࠼࡯ࠞޓ‬᭽⊒⴫
٨PIN࠮ࠠࡘࠕࡑ࡞࠴
‫઀࠼࡯ࠞࠕࠖ࠺ࡔޓ‬᭽⊒⴫٨xDࡇࠢ࠴ࡖ࡯ࠞ࡯࠼઀᭽
‫⴫⊒ޓ‬٨࡝࠺ࡘ࡯ࠬ࠻ࠨࠗ࠭
‫࠼࡯ࠞࠕࠖ࠺ࡔ࠴࡞ࡑޓ‬‫઀ޓ‬᭽⊒⴫

図 1.1 フラッシュカードの歴史

1.2

マルチメディアカードの特徴

これからの小型フラッシュカードは、そのサイズと重さが重要です。携帯電話のように常時持ち歩く機器では、より小さく軽いことが部品選定の大きなポイントになるためです。表 1.1 および表 1.2 に示すように切手サイズのマルチメディアカード（重さ：1.5g、外形寸法：32mm×24mm、厚さ：1.4mm ）ならびに、マルチメディアカードの約半分のサイズ（重さ：0.8g、外形寸法：18mm×24mm、厚さ：1.4mm）を実現したリデューストサイズ
マルチメディアカード（2003 年 1 月現在、小型フラッシュカードの部類では最軽量）は実装場所を選びません。
リデューストサイズマルチメディアカードの端子構造は従来のマルチメディアカードと互換性をもち、アダプタを用いることで、マルチメディアカードとして使用可能です。
また、デジタルスチルカメラのようなパーソナル機器では、取り扱い易さが普及の大きなポイントになります。
マルチメディアカードは、わずか 7 ピンでシステムと接続する構造で、切り欠きによる逆差し防止機構がついているので、専門知識のない個人ユーザでも安心して使えます。
厚みを除いて、形状が同一のフラッシュカードとして SD メモリーカードがありますが、SD メモリーカード
対応のホストであれば、SD メモリーカード固有のセキュリティ機能を使用するホストを除いて、ほとんどのホ
ストでマルチメディアカードも使用可能です。

1-2

1.

マルチメディアカードの歴史と特徴

表 1.1 小型フラッシュカード仕様比較
名称

マルチ
メディア
カード

メモリー
スティック

PIN セキュア
マルチメディア
カード

マジックゲート
メモリースティック

SD メモリーカード

サイズ

32.0×24.0×1.4 mm

50.0×21.5×2.8 mm

32.0×24.0×2.1 mm

重量

1.5 g

4g

3g

ピン数

7 pin

10 pin9 pin

データピン数

1 pin

著作権保護機能

無

有

無

有

有

個人認証機能

無

有

無

無

無

1 pin

4 pin

表 1.2 超小型フラッシュカード仕様比較
名称

リデューストサイズ
マルチメディアカード

xD ピクチャーカード

メモリースティック Duo

サイズ

18.0×24.0×1.4 mm

20.0×25.0×1.7 mm

20.0×31.0×1.6 mm

重量

0.8 g

2.0 g

2.0 g

ピン数

7 pin

18 pin10 pin

データピン数

1 pin

8 pin

1 pin

1-3

マルチメディアカードの歴史と特徴

1.

1.3

MMCA 規格 Ver.3.2 について2001 年 6 月までは Ver.2.11 で運用していました。2002 年 1 月に Ver.3.2 が発効されました。主な違いは表 1.3の通りです。
表 1.3 MMCA 規格各バージョンの違い
項目

No.

v2.11

1

低電圧

2.0〜3.6V

2

MMC モードに未定義

v3.1
2.0〜3.6V
・ CSD のv3.2
1.65〜3.6V
・ CSD の

v3.x
1.65〜3.6V
・ CSD のおけるロック

TMP_WRITE_PROT

TMP_WRITE_PROT

TMP_WRITE_PROTされたカードのECT が"1"の場合、強ECT が"1"の場合、強ECT が"1"の場合、強強制消去

制消去を行い、

制消去を行い、

制消去を行い、

TMP_WRITE_PROT

TMP_WRITE_PROT

TMP_WRITE_PROTECT を"0"にする。

ECT を"0"にする。

・ CSD の・ CSD の

ECT を"0"にする。
・ CSD のPERM_WRITE_PRO

PERM_WRITE_PRO

PERM_WRITE_PRO

TECT が"1"の場合、TECT が"1"の場合、TECT が"1"の場合、消去は fail し、

消去は fail し、

消去は fail し、

LOCK_UNLOCK_FAI

LOCK_UNLOCK_FAI

LOCK_UNLOCK_FAI

LED ビットが"1"にセLED ビットが"1"にセLED ビットが"1"にセットされる。（カーットされる。（カーットされる。（カードはロック状態のまドはロック状態のまドはロック状態のま

ま）

ま）

ま）

（SPI モードも同様）（SPI モードも同様）（SPI モードも同様）

MMC モードの

MMC モードの

MMC モードのおける Multiple

Multiple Read/Write

Multiple Read/Write

Multiple Read/Write

Read/Writeと同様の転送モードと同様の転送モードと同様の転送モードをサポートした。

をサポートした。

をサポートした。

未定義

未定義

未定義

規格化

対応日立マルチメディア

HB28xxxxMM1

HB28xxxxMM2



HB28xxxxRM2

カード

シリーズ*

シリーズ*

SPI モードに3

4

Reduced Size

未サポート

MultiMediaCard

【注】

1-4

*

仕様の詳細は各々のデータシートをご参照ください。

シリーズ*

2.

日立マルチメディアカードの概要

2.1

マルチメディアカードのシステムコンセプト

マルチメディアカードは携帯電話、携帯プレーヤ等の小型情報機器での情報やコンテンツのストレージを目的としているために、ホストシステムの負荷を低減して、簡単なシステムでも利用できることをシステムコンセプ
トとしています。
マルチメディアカードを利用したシステム構成例を図 2.1 に示します。
（1） ソフトウェア制御方式
これはマイクロコントローラのポートにダイレクトにマルチメディアカードの信号を接続する方式です。
ソフトウェアによりポート信号をコントロールすることでマルチメディアカードのプロトコルをエミュ
レートします。ホストシステムは最も簡単になりますが、データ転送速度は遅くなります。
（2） アダプタ制御方式
これは、マイクロプロセッサとマルチメディアカードの間に、マルチメディアカードをコントロールするためのアダプタ（ハードウェア）を挿入して、コントロールする方式です。
（3） シンプルバス経由アダプタ制御方式
これは、マルチメディアカードアダプタをアプリケーションアダプタ経由でシンプルバスに接続する方式です。
（4） PC バス経由アダプタ制御方式
これは、マルチメディアカードアダプタをバスブリッジ経由で PC バスに接続する方式です。システムは複雑で高コストとなりますが、データ転送速度は速くなります。

2-1

日立マルチメディアカードの概要

2.

Bus BridgeǴࠦࡦ࠻ࡠ࡯࡜

Ǵࡊࡠ࠮࠶ࠨ

Ǵࡊࡠ࠮࠶ࠨ

Ǵࡊࡠ࠮࠶ࠨ
Simple Bus

PC BusBus Bridge

Simple Bus
Application
Adapter
AdapterInterface Bus
MultiMediaCardTM*
Adapter
MMC SerialBus

MMC SerialBus㧔1㧕࠰ࡈ࠻࠙ࠚࠕ೙ᓮ

㧔2㧕ࠕ࠳ࡊ࠲೙ᓮ

Application
Adapter

AdapterInterface Bus
MultiMediaCardTM*
Adapter

AdapterInterface Bus
MultiMediaCardTM*
Adapter

MMC SerialBus㧔3㧕ࠪࡦࡊ࡞ࡃࠬ⚻↱‫࠲ࡊ࠳ࠕ ޓޓ‬೙ᓮ࡮࠰ࡈ࠻࠙ࠚࠕ೙ᓮ
࡮ૐࠦࠬ࠻࡮ૐࠬࡇ࡯࠼

MMC SerialBus

㧔4㧕PCࡃࠬ⚻↱‫࠲ࡊ࠳ࠕ ޓޓ‬೙ᓮ࡮ࡂ࡯࠼࠙ࠚࠕ೙ᓮ
࡮㜞ࠦࠬ࠻࡮㜞ࠬࡇ࡯࠼

* MultiMediaCardTM㧔ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼㧕⁛ Infineon Technologies AG␠ߣ☨ Sandisk Corporation␠ߦࠃࠅ㐿⊒ߐࠇߚ‫ޔ‬ᬺ⇇ᦨዊߩࡈ࡜࠶ࠪࡘ㧛ROMࠞ࡯࠼
ⷙᩰ‫ޕ‬MultiMediaCardTMߪ‫ ⁛ޔ‬Infineon Technologies AG␠ߩ໡ᮡߢ޽ࠅ‫࡚ࠪ࡯ࠛࠪ࠰ࠕ࡮࠼࡯ࠞࠕࠖ࠺ࡔ࠴࡞ࡑޔ‬ࡦ㧔MultiMediaCard Association㧕ߦ࡜ࠗ࠮ࡦࠬߐࠇߡ޿߹ߔ‫ޕ‬
MMCAߪ‫ޔ‬਎⇇ᦨዊ‫ᦨޔ‬シ㊂࡟ࡌ࡞ߩዊဳ࠮ࠠࡘࠕࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼߅ࠃ߮ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼ߩᮡḰൻ࿅૕ߢ޽ࠅ‫⃻ޔ‬࿷‫⚂ޔ‬100␠ߩෳടࡔࡦࡃ࡯ળ␠ߢ᭴ᚑߐࠇ߹ߔ‫ޕ‬

図 2.1 マルチメディアカードシステム構成例

2.2
2.2.1

バスインタフェース
インタフェース

図 2.2 に示すように、マルチメディアカードのインタフェースは 7 ピンのシリアルインタフェースで、通信プ
ロトコルには MMC（MultiMediaCard）モードと SPI モードの 2 種類があります。どちらのモードもクロック最大動作周波数は 20MHz です。それぞれインタフェースの方式は違いますが、どちらのモードで書き込んだデー
タも、どちらのモードのホストでも読み出すことが可能です。当社のマルチメディアカードも MMC、SPI どち
らのホストに対しても動作可能となっています。モードの設定方法の詳細は後述しますが、マルチメディアカー
ド認識フロー中のコマンド 0 発行時に CS ピンを Low にすれば SPI モードとなります。

2-2

2.

日立マルチメディアカードの概要

㧔A㧕MMCࡕ࡯࠼
ࡇࡦ⇟ภ

ฬ⒓

࠲ࠗࡊ

ࡇࡦᯏ⢻⸥ㅀ

1

RSV

NC

੍⚂ࡇࡦ

2

CMD

I/O‫ޔ‬PP‫ޔ‬ODࠦࡑࡦ࠼㧛࡟ࠬࡐࡦࠬ

3

VSS1

S

GND

4

VDD1

S

VCC

5

CLK

I

ࠢࡠ࠶ࠢ

6

VSS2

S

GND

7

DAT

I/O‫ޔ‬PP

࠺࡯࠲౉಴ജ

ࡇࡦ⇟ภ

ฬ⒓

࠲ࠗࡊ

ࡇࡦᯏ⢻⸥ㅀ

1

CS

I࠴࠶ࡊ࠮࡟ࠢ࠻

2

DI

I

࠺࡯࠲౉ജ

3

VSS

S

GND

4

VDD

S

VCC

5

SCLK

I

ࠢࡠ࠶ࠢ

6

VSS2

S

GND

7

DO

O‫ޔ‬PP࠺࡯࠲಴ജ

1 2 3 4 5 6 7

㧔B㧕SPIࡕ࡯࠼‫ޣ‬ᵈ‫ޤ‬S㧩Power Supply‫ޔ‬I㧩Input‫ޔ‬O㧩Output‫ޔ‬PP㧩Push Pull‫ޓޓޓ‬OD㧩Open Drain‫ޔ‬NC㧩Not Connected

図 2.2 マルチメディアカードのピンアサイン

2.2.2

複数カード識別方法

マルチメディアカードは、同一バス上で最大 30 枚まで使用することが可能です。それぞれのモードの複数枚カードからアクセスをしたいカードを選択する方法は、以下の通りです。
（1） MMC モード
MMC モードでは、複数枚カードの中から、アクセスするカードを選択するために、認識フローの中でそれぞれのカードに固有の名称に相当する相対アドレス RCA（Relative card address：「2.4 レジスタ」
で説明）を 1 枚 1 枚に振っておき、この相対アドレスを指定することでカードを選択します。
（2） SPI モード
SPI モードでは、複数枚のカードそれぞれに対して、チップセレクト信号（CS）が接続してあり、アクセスしたいカードのチップセレクト信号を Low にアサートしてカードを選択します。

2-3

日立マルチメディアカードの概要

2.

2.2.3

バスプロトコル

図 2.2 にマルチメディアカードのピンアサイン、図 2.3 にプロトコルの概略図を示します。ホストから各機能に対応したコマンドをカードに対して発行することで、マルチメディアカードは動作します。
（1） MMC モード
MMC モードでは、ホストシステムとのインタフェースはクロック、コマンド、データの 3 本の信号が使用されます。クロック信号はシステムとカードとの同期を取るために使用されます。コマンド信号はホストからカードへのコマンド発行、およびカードからホストへのレスポンス返信に使用されます。また、データ信号はカードに対するデータの書き込み、読み出しに使用されます。コマンドとデータ信号
は双方向バスとなります。
（2） SPI モード
SPI モードでは、ホストシステムとのインタフェースはクロック、データイン、データアウト、チップ
セレクト信号の 4 本の信号が使用されます。クロック信号がシステムとカードとの同期を取るために使用されるのは MMC モードと同じです。データイン信号はホストからカードに対するコマンドの発行、およびカードに対するデータの書き込みに使用されます。また、データアウト信号はカードからホストに対するレスポンスの返信、およびカードからのデータの読み出しに使用されます。データイン、デー
タアウト信号は単方向バスとなります。チップセレクト信号は任意の枚数のカードよりアクセスしたい
カードを選択するのに使用されます。SPI モードでは、8 クロック単位でのデータ転送にご注意下さい。

٨MMCࡕ࡯࠼ࡊࡠ࠻ࠦ࡞᭎ⷐ

㧔2㧕response

㧔1㧕CMD
CMD
㧔2㧕RSP㧔3㧕data block

DAT

㧹㧹㧯

㧴㧻㧿㨀

CMD 㧔1㧕command㧔3㧕DATA㧔Read㧕
DATCS

㧔3㧕DATA㧔Write㧕٨SPIࡕ࡯࠼ࡊࡠ࠻ࠦ࡞᭎ⷐ
㧔1㧕CMDDI
㧔3'㧕DATA㧔Write㧕㧔Read㧕
㧔2㧕response

DO
CS

Low

㧔3"㧕data block㧔2㧕RSP
DO
㧔3"㧕DATA㧔Read㧕

図 2.3 マルチメディアカードプロトコル概要

2-4

㧹㧹㧯

㧔3'㧕data block㧔1㧕command㧴㧻㧿㨀㧔Write㧕
DI

2.

2.2.4

日立マルチメディアカードの概要

転送モード

図 2.4 にマルチメディアカードの MMC モード時のデータ転送モードを、図 2.5 に SPI モードの時データの転送モードを示します。転送モードには、シングルブロック転送、マルチブロック転送、ストリーム転送の 3 通りがあります。また、マルチブロック転送には、転送開始後に停止コマンド（SPI モードのライトでは、停止コマ
ンドの替わりに STOP Tran Token を使用）で、転送を終了する Open-ended Multiple block read/write と、転送時のブロック数を事前にコマンドで指定する、Multiple block read/write with predefined block count の 2 種類があります。
（1） MMC モード
MMC モードはシングルブロック転送、マルチブロック転送、ストリーム転送のすべての転送方法をサポートしています。カードによりデフォルトのブロックサイズが規定されており、シングルブロック転送では 1 コマンドに対応して 1 ブロックの転送が、またマルチブロック転送では 1 コマンドに対して複数ブロックの転送が可能です。当社のマルチメディアカードの場合にはデフォルトのブロックサイズが512 バイトとなっていますが、ブロックサイズ変更コマンドを使用することで、ブロックサイズを 1 バ
イト〜2048 バイトまで変更可能です。ストリーム転送にはブロックという概念はなく、任意のアドレスからバイト単位で任意のバイト数のデータ転送が可能です。しかしながら、CRC を使用していないため、データの信頼性が必要とされる用途には向かず、また、転送がセクタ単位でないため、DOS 互換 FAT
ファイルシステムを使用したシステム等にも不向きです。
（2） SPI モード
SPI モードの転送モードは、従来の MMCA 規格 Ver.2.xx ではシングルブロック転送のみでしたが Ver.3.1（2001 年 6 月発効）からは新たにマルチブロック転送もサポートしています。ブロックサイズの変更はMMC モード同様可能で、当社のマルチメディアカードの場合、1 バイトから 2048 バイトまで設定可能
です。

2-5

2.

日立マルチメディアカードの概要

࡝࡯࠼
࡜ࠗ࠼

ォㅍࡕ࡯࠼

ォㅍࠗࡔ࡯ࠫ࿑
Block1(1) Single block
Read
CMD17

CMD17

CMD17

Block1(2) Open-ended
Multiple block read
CMD18

Block3

CMD17

Block1

CMD23

Block4Block5CMD17

Block2Block3Block4Block2Block3CMD12(STOP)
Block4Block5Block2Block3Block4

CMD18

࡝࡯࠼(3) Multiple block readwith predefined
block count
CMD18

Block2Block5

CMD18(set block count)

Block1

Block5(4) Stream read
CMD11
CMD11
Block1(5) Single block
Write
CMD24

CMD24

Block3

CMD24

Block1

CMD23

Block4Block2Block3Block4Block5Block2Block3CMD12(STOP)
Block4Block5Block2Block3Block4

CMD25(set block count)

Block1(8) Stream write
CMD20
CMD20

図 2.4 転送モードの概要（MMC モード）

2-6

Block5

CMD24

CMD25

࡜ࠗ࠻
(7) Multiple block writewith predefined
block count
CMD25

Block2

CMD24

Block1(6) Open-ended
Multiple block write
CMD25

CMD12
(STOP)CMD12(STOP)

Block5

2.

࡝࡯࠼
࡜ࠗ࠼

ォㅍࡕ࡯࠼

ォㅍࠗࡔ࡯ࠫ࿑
Block1(1) Single block
Read
CMD17

CMD17

(2) Open-ended
Multiple block read
CMD18

Block2

CMD17

Block1
࡝࡯࠼

日立マルチメディアカードの概要

Block3

CMD17(3) Multiple block readwith predefined
block count
CMD18

CMD23

Block5CMD17

Block2Block3Block4Block2Block3CMD12(STOP)
Block4Block5Block2Block3Block4

CMD18
Block1

Block4Block5

CMD18(set block count)

Block1(4) Single block
Write
CMD24

CMD24

CMD24

Block1
࡜ࠗ࠻(5) Open-ended
Multiple block write
CMD25

CMD24

Block2Block3Block2Block3

CMD25
Block1(6) Multiple block writewith predefined
block count
CMD25

CMD24

CMD23

Block5Block4Block5

STOP Tran Token
Block4Block5

CMD25(set block count)

図 2.5 転送モードの概要（SPI モード）

2.3

CRC

マルチメディアカードのコマンド、レスポンス、データには CRC（Cyclic Redundancy Codes）を付加して転送しています。
CRC をチェックすることで、データの誤転送の検出ができ、検出時にはシステム側で再転送処理を行うなど、システムの信頼性向上が可能となります。
MMC モードでは、ストリーム転送以外の転送モードで CRC は必須で、コマンドには 7 ビット、データには 512
バイトあたりに 16 ビットの CRC が付加されます。
SPI モードでは CRC はオプションです。

2-7

日立マルチメディアカードの概要

2.

2.4

レジスタ

表 2.1 にマルチメディアカードの内部レジスタ一覧を示します。
表 2.1 MultiMediaCardレジスタ一覧

OCR

レジスタ名

レジスタ長

動作条件レジスタ

32 ビット

レジスタ概要MMC 動作電圧を定義。1 ビットが 100mV。
1 のとき：動作可能範囲。0 のとき：動作不可範囲。

CID

カード識別レジスタ

128 ビット

カード固有の識別情報
製造者名、OEM、個別カード番号など。

RCA

相対カードアドレスレジスタ

16 ビット

ホストによりカード識別のための名称を設定。
0001h から FFFFh（MMC モードのみ）

CSD

カード特性データレジスタ

128 ビット

カード固有の情報を格納。
PCMCIA の CIS に相当。

DSR

ドライバステージレジスタ

16 ビットMMC のバス駆動能力を設定。オプション。
当社 MMC は未使用。

ステータスレジスタ2-8

32 ビットMMC の状態やエラー発生状況の表示。

2.

2.4.1

日立マルチメディアカードの概要

OCR（Operation conditions register：動作条件レジスタ）32 ビット長のレジスタでカードの動作可能範囲を定義しています。100mV 刻みで、動作可能範囲に対応するビットに 1 を立てます。また、カード認識フロー時に、カード内部処理が終了したかをポーリングするための R/B
ビットも 1 ビット持っています。表 2.2 に OCR の内容を示します。
表 2.2 OCR（Operation Conditions Register）内容【注】

OCR bit position

VDD voltage window

Hitachi MMC

31

card power up status（R/B）

0：Busy、1：ready30〜24

reserved

023

3.5〜3.6

1*1

22

3.4〜3.5

1

21

3.3〜3.4

120

3.2〜3.3

1

19

3.1〜3.2

118

3.0〜3.1

1

17

2.9〜3.01

16

2.8〜2.9

1

15

2.7〜2.8

1

14

2.6〜2.7

0*2

13

2.5〜2.6

012

2.4〜2.5011

2.3〜2.4

010

2.2〜2.3

09

2.1〜2.208

2.0〜2.10

7〜0reserved

0*1

1：Support Voltage*20：Not Support Voltage

0 or 8

F

F

8

0


MMCA 規格 Ver.3.1 準拠

2-9

2.

日立マルチメディアカードの概要

2.4.2

CID（Card identification number：カード ID レジスタ）

128 ビット長のレジスタで、カードのシリアルナンバーがカードメーカによって書き込まれます。この CID はすべてのマルチメディアカードでユニークなナンバーであり、MMC モードで、カードを選択するための相対ア
ドレスを割り振るために使用されます。表 2.3 に CID の内容を示します。
表 2.3 CID（Card Identification）内容
Name

Field

Width

CID-slice

Note
1

Manufacturer IDMID8[127:120]

OEM/Application ID

OID

16

[119:104]

Product name

PNM

48

[103:56]

Product revisionPRV

8[55:48]

Product serial number

PSN

32

[47:16]

Manufacturing date

MDT8

[15:8]

7-bit CRC checksum

CRC7

7

[7:1]

not used, always 1



1

[0:0]

【注】

2.4.3

1.

MID の値は 0x06 です。

RCA（Relative card address：相対カードアドレスレジスタ）−MMC モードのみ使用

16 ビット長のレジスタで、カードに対してアドレスを割り振るために使用されます。0001h から FFFFh のアド
レスを付加することが可能です。このレジスタに割り振られたアドレスを使用して、1 枚のカードを選択後、そのカードに対してリード、ライト、イレース等の処理を実施します。

2.4.4

CSD（Card specific data：カード特性レジスタ）

128 ビット長のレジスタで、対応している MMCA スペックバージョン、サポートコマンドクラス、カード容量、アクセス時間、転送単位ブロック長等のカードに関係する諸情報を記載してあります。表 2.4 に CSD の内
容を示します。

2-10

2.

日立マルチメディアカードの概要

表 2.4 CSD（Card specific data）内容
Width

CSD-slice

Value

Type

CSD structure

Name

CSD_STRUCTURE

Field

2

[127:126]“10”read onlySpec version

SPEC_VERS

4[125:122]“0011”

read only

Reserved2[121:120]0read only

Data read access-time-1

TAAC

8

[119:112]

0x0E（1ms）

read only

Data read access-time-2 in CLK

NSAC

8

[111:104]

0x01

read only（100 cycles）

cycles（NSAC*100）
Max. data transfer rate

TRAN_SPEED

8[103:96]0x2A（20 Mbit/s）

read only

Card command classes

CCC

12

[95:84]0x0FF（classread only

Max. read data block length

READ_BLK_LEN

4[83:80]0x9（512 bytes）

Partial blocks for read allowed

READ_BLK_PARTIAL

1[79:79]‘1’（Enabled）

read only

Write block misalignment

WRITE_BLK_MISALIGN

1[78:78]‘0’（Disabled）

read only

Read block misalignment

READ_BLK_MISALIGN

1[77:77]‘0’（Disabled）

read only

0,1,2,3,4,5,6,7）
read only

DSR implemented

DSR_IMP1[76:76]‘0’（Disabled）

read only

Reserved2[75:74]0read only

Device size

C_SIZE12[73:62]*1

read only
read only

Max. read current at VDD min

VDD_R_CURR_MIN

3[61:59]*2

Max. read current at VDD max

VDD_R_CURR_MAX

3[58:56]*2

read only
read only

Max. write current at VDD min

VDD_W_CURR_MIN

3[55:53]*2

Max. write current at VDD max

VDD_W_CURR_MAX

3[52:50]*2

read only

Device size multiplier

C_SIZE_MULT

3[49:47]*3

read only

Erase group size

ERASE_GRP_SIZE

5[46:42]0read only

Erase group size multiplier

ERASE_GRP_MULT

5[41:37]0x0F

read only

Write protect group size

WP_GRP_SIZE

5[36:32]0x01（16 kByte）

read only

Write protect group enable

WP_GRP_ENABLE

1[31:31]‘1’

read only

Manufacturer default ECC

DEFAULT_ECC

2[30:29]0read only

Write speed factor

R2W_FACTOR

3[28:26]2（4）read only

Max. write data block length

WRITE_BLK_LEN

4[25:22]9（512 Bytes）

read only

Partial blocks for write allowed

WRITE_BLK_PARTIAL

1[21:21]‘0’

read only

Reserved

5[20:16]0read only

File format group

FILE_FORMAT_GRP

1[15:15]×*4

read/write

Copy flag（OTP）

COPY

1

[14:14]×

read/write

Permanent write protection

PERM_WRITE_PROTECT1[13:13]×

read/write

Temporary write protection

TMP_WRITE_PROTECT1[12:12]×

read/write

File format

FILE_FORMAT

2[11:10]×

read/write

ECC code

ECC

2

[9:8]

×

read/write/erase/erase7-bit CRC

CRC7

7

[7:1]

×

read/write

Not used, always 1



1

[0:0]

1

read only/erase2-11

2.

日立マルチメディアカードの概要

【注】

2.4.5

*1

型名に依存。C_SIZE 参照。

*2

型名に依存。

*3

型名に依存。C_SIZE_MULT 参照。

*4

×はユーザプログラマブルであることを意味します。

DSR（Driver specific data：ドライバステージレジスタ）16 ビット長のレジスタでカードのバス駆動能力を設定できます。オプションのレジスタで、当社のカードではサポートしていません。

2.4.6

ステータスレジスタ32 ビットのレジスタで、カードの状態やエラー発生状況を表示します。表 2.5 に MMC モードステータスレジ
スタ表を示します。
表 2.5 MMC モードステータスレジスタ
Bits

Identifier

Type

Value

Description

Clear
condition

31

30

29

OUT_OF_RANGEADDRESS_ERRORBLOCK_LEN_ERROR

ER

ERX

ER

‘0’ = no error

コマンド引数がこのカードに対して’1’ = error

許可されている範囲外であった。

‘0’ = no error

ブロック長とミスアラインしたアド’1’ = error

レスがコマンドで使われていた。

‘0’ = no error

転送されたブロック長がこのカード’1’ = errorに対しては不当であるか、転送され

C

C

C

たバイトの数がブロック長と一致し
ない。
28

27

ERASE_SEQ_ERRORERASE_PARAM

ER

EX‘0’ = no error

イレースコマンドのシーケンスでエ’1’ = error

ラーが発生した。

‘0’ = no error

イレースをするための、セクタまた’1’ = error

はグループの選択状況が不当であ

C

C

る。
26

25

24

WP_VIOLATIONCARD_IS_LOCKED

LOCK_UNLOCK_FAILED

ERX

SX

ERX

‘0’ = not protected

ライトプロテクトブロックにライト’1’ = protected

しようとした。

‘0’ = card unlocked‘1’に設定されている時は、カードは’1’ = card locked

ホストによってロックされている。

‘0’ = no error

カードのロック／アンロック操作’1’ = error

で、手順またはパスワードのエラー

C

A

C

が発生した時か、ロックされたカードにアクセスしようと試みた場合に’1’に設定されます。
23

22

21

2-12

COM_CRC_ERRORILLEGAL_COMMAND

CARD_ECC_FAILED

ER

ER

EX

‘0’ = no error

直前のコマンドの CRC チェックが失’1’ = error

敗した。

‘0’ = no error

現在のカードのステートではコマン’1’ = error

ドは不当である。

‘0’ = success

カード内部の ECC が適用されたが、’1’ = failure

データ訂正が失敗した。

B

B

C

2.

Bits

IdentifierType

日立マルチメディアカードの概要

Value

Description

Clear
condition

20

CC_ERROR

ERX

カードの内蔵コントローラのエラー

C‘0’ = no error

オペレーション中に汎用エラーまたC’1’ = error

は不明エラーが発生した。

‘0’ = no error

ストリームリードモードで、カード’1’ = error

がデータ転送を続けることができな‘0’ = no error’1’ = error

19

18

ERROR

UNDERRUN

ERX

EX

C

くなった。
17

OVERRUNEX‘0’ = no error

ストリームライトモードで、カード’1’ = error

がデータのライトを続けることがでCきなくなった。
16

CID_OVERWRITE/ERX

CSD_OVERWRITE‘0’ = no error

以下のいずれかのエラーの可能性が’1’ = error

ある。

C• CID レジスタはすでに書き込まれており、オーバーライトは不可能である。

• CSD のリードオンリセクションがカードコンテントと一致しない。

• copy ビット（コピー（COPY=’1’）と設定してあるものをオリジナル（COPY=’0’）と設定する）または
パーマネント WP ビット（ライト
プロテクト済み（PERM_WRITE_PROTECT=’1’）と設定してあるものをライトプロテクトなし（PERM_WRITE_PROTECT=’0’）と設定する）を、’1’から’0’に反転しようとした。
15

WP_ERASE_SKIP

SX‘0’ = not protected

ライトプロテクトされた WP ブロッ’1’ = protected

クがイレース対象領域に存在したたCめ、アドレス空間の一部のみがイレースされた。
14

13

CARD_ECC_DISABLEDERASE_RESET

SX

SR‘0’ = enabled

コマンドはカード内蔵の ECC を使わ’1’ = disabled

ずに実行された。

‘0’ = cleared

イレースシーケンス外のコマンドが’1’ = set

受信されたため、イレースシーケン

AC

スが実行前にクリアされた。
12:9

CURRENT_STATESX

0 = idle

カードの現在のステート。

B

1 =ready
2 =ident
3 =stby
4 =tran
5 =data
6 =rcv
7 =prg
8 =dis9-15 = reserved

2-13日立マルチメディアカードの概要

2.

Bits

Identifier

Type

Value

Description

Clear
condition

8

BUFFER_EMPTY

7:6

reserved

5

APP_CMDSX‘0’ = not empty

バスのバッファ空きシグナルに相当’1’ = emptyする。

A

Permanently 0SR‘0’ = disabled

カードが APP_CMD コマンドを受付’1’ = enabled

可能かどうか、または受け取ったコC

マンドを、カードが APP_CMD コマ
ンドだと解釈したかどうかを表す。
4:0

reserved

Permanently 0

3:2

reserved for application specific commands

1:0

reserved for manufacturer test mode

2.5
2.5.1

コマンド
コマンド概要カードの認識処理、リード、ライト、イレース等のすべての処理はホストから発行されるコマンドによりカードに対して命令されます。表 2.6 にコマンド一覧を示します。
表 2.6 マルチメディアカードサポートコマンド一覧
略語

CMD

内容

INDEX
CMD0

MMC モード

SPI モードType

Argument

Resp.

Argument

Resp.

MMC リセットbc[31:0] Stuff bits

−

None

R1

SEND_OP_COND

MMC R/B ポーリン
グ動作電圧の設定（MMC モードのみ）bcr[31:0]OCR without
busy

R2

None

R1

ALL_SEND_

CID 送信要求bcr[31:0]

R3

GO_IDLE_
STATE

CMD1

CMD2

CID
CMD3

SET_RELATIVE_

Stuff bits
RCA の設定

ac

ADDR
CMD4

SET_DSR[31:16] RCA

R1[15:0] Stuff bits
DSR の設定bc[31:16] DSR[15:0] Stuff bits
CMD7

SELECT/DESELECT_
CARD

アクセスする MMCの選択ac[31:16] RCA[15:0] Stuff bits

R1b
（only
from theselected
card）

CMD9

SEND_CSD

CSD 送信要求ac[31:16] RCA

R2

None

R1

R2

None

R1

None

R1

[15:0] Stuff bits
CMD10

SEND_CID

CID 送信要求ac[31:16] RCA[15:0] Stuff bits

CMD11

READ_DAT_

ストリームリード

adtc

UNTIL_STOP
CMD12

2-14

[31:0]

R1

data address

STOP_

リード、ライトスト

TRANSMISSION

ップコマンドac[31:0] Stuff bits

R1b

2.

CMD

略語

内容

INDEX
CMD13

SEND_STATUS

カードステータス

日立マルチメディアカードの概要

MMC モード

SPI モードType

Argument

Resp.

Argument

Resp.

ac

[31:16] RCA

R1

None

R2

要求

[15:0] Stuff bits

CMD16

SET_BLOCKLEN

リードライト
ブロック長変更ac[31:0]
block length

R1[31:0]
block
lengthR1

CMD17

READ_SINGLE_
BLOCK

シングルブロックリード

adtc[31:0]
data address

R1[31:0]
data
address

R1

CMD18

READ_MULTIPLE_
BLOCK

マルチブロックリード

adtc[31:0]
data address

R1[31:0]
data
address

R1

WRITE_DAT_

ストリームライト

adtc[31:0]R1

CMD20

UNTIL_ STOP

data address

CMD23

SET_BLOCK_
COUNT

転送ブロック数の指定

ac[31:16] Set to 0
[15:0] numberof blocks

R1[31:16]
Set to 0[15:0]
number ofblocksR1

CMD24

WRITE_BLOCK

シングルブロックライト

adtc[31:0]
data address

R1[31:0]
data
address

R1

CMD25

WRITE_MULTIPLE_BLOCK

マルチブロックライト

adtc[31:0]
data address

R1[31:0]
data
addressR1

CMD26

PROGRAM_CID

CID のプログラム

adtc[31:0] Stuff Bits

R1

CMD27

PROGRAM_CSD

CSD のプログラム

adtc[31:0] Stuff Bits

R1

None

R1

CMD28

SET_WRITE_PROT

プロテクトの設定

ac[31:0]

R1b[31:0]

R1b

data address

data
address

CMD29

CLR_WRITE_PROT

プロテクトの解除

ac[31:0]

R1b

data address[31:0]

R1b

data
address

CMD30

SEND_WRITE_
PROT

プロテクトビットス
テータスの送信adtc[31:0]
write protect
data address

R1[31:0]write
protect
data
addressR1

CMD32

TAG_SECTOR_
START

イレースしたいエリ
アの最初のセクタを設定

ac[31:0]
data address

R1[31:0]
data
addressR1

CMD33

TAG_SECTOR_
END

イレースしたいエリ
アの最後のセクタを設定

ac[31:0]
data address

R1[31:0]
data
addressR1

CMD34

UNTAG_SECTOR_

イレースエリアの中でイレースしないセ
クタを設定

ac

[31:0]
data address

R1[31:0]
data
addressR1

CMD35

TAG_ERASE_GROUP_START

イレースしたいエリ
アの最初のグループを設定

ac[31:0]
data address

R1[31:0]
data
address

R1

2-15

2.

日立マルチメディアカードの概要

略語

CMD

内容

INDEX
CMD36

MMC モードType

TAG_ERASE_

イレースしたいエリ

GROUP_END

アの最後のグループac

Argument[31:0]SPI モード
Resp.

Argument

Resp.

R1

[31:0]

R1

data address

data

を設定
CMD37

UNTAG_ERASE_

イレースエリアの中

GROUP

でイレースしないグ

ERASE

選択済のエリアを消

addressac[31:0]

R1

data address

addressac[31:0] stuff bits

R1b

去
CMD42

LOCK_UNLOCK

パスワードの設定

R1

data

ループを設定CMD38[31:0][31:0]

R1b

stuff bits
adtc

[31:0] stuff bits

R1b

[31:0]

R1b

stuff bits
CMD58

READ_OCR

OCR（動作電圧）

None

R3

[31:1]
stuff bits
[0:0] CRC
optionR1

情報のリードCMD59

CRC_ON_OFF

CRC 仕様の
ON/OFF

MMC モードでは以下のような 4 種類のコマンドタイプが定義されています。
（a） ブロードキャストコマンド（bc: broadcast command）
CMD ラインからバス上のすべてのカードに対して発行されるコマンドで、カードからのレスポンスはありません。
（b） レスポンス付きブロードキャストコマンド（bcr: broadcast command with response）
CMD ラインからバス上のすべてのカードに対して発行されるコマンドで、CMD ラインからバス上のすべてのカードが同時にレスポンスを返します。
（c） アドレス指定コマンド（ac: addressed（point-to-point）commands）
CMD ラインから指定された特定のカードに対して発行されるコマンドで、CMD ラインから指定された
特定のカードがレスポンスを返します。
（d） アドレス指定データ送信コマンド（adtc: addressed（point-to-point）data transfer commands）
CMD ラインから指定された特定のカードに対して発行されるコマンドで、CMD ラインから指定された
特定のカードがレスポンスを返した後に、DAT ラインを通してデータ転送が行われます。

（1） コマンドフォーマット
表 2.7 にコマンドフォーマットを示します。コマンドはスタートビット 1 ビット"0"固定、トランスファービッ
ト 1 ビット 1 固定、コマンド部 6 ビット、アーギュメント部 4 バイト（32 ビット）、CRC 部 7 ビット、エンド
ビット 1 ビット 1 固定の計 48 ビット（6 バイト）で構成されています。アーギュメント部分にそのコマンドを発行するための必要な情報（カード相対アドレス、リードアドレス、ライトアドレス等）を記載します。

2-16

日立マルチメディアカードの概要

2.

表 2.7 コマンドフォーマット
Serial Data
コマンド

[47]

[0]

Bit position

47

46[45:40][39:8][7:1]

0

Width（bit）

1

1

6

32

7

1

Value

0

1

X

X

X

1

start bittransmission bit

command index

argument

CRC7

end bitDescription（2） カードコマンドクラス
コマンドは、基本コマンド、リードコマンド、ライトコマンド、イレースコマンド等にクラス分けされています。表 2.8 にコマンドクラス一覧を示します。当然のことながら、ROM 版 MMC はライト、イレースができず、このクラスのコマンドは使用不可となっています。ホストはカードがどのような種類なのか識別するために、このサポートクラスが記載されている、前述の CSD レジスタを認識シーケンス中に取得する必要があります。

表 2.8 コマンドフォーマット
コマンドクラス

class 0

クラス定義

basic

サポートコマンドMMC mode

SPI mode

0、1、2、3、4、7、9、10、

0、1、9、10、13、58、59

12、13、15class 1stream read11

Not supportedclass 2

block read

16、17、18、23

12、16、17、18、23class 3stream write

20

Not supportedclass 4block write

16、23、24、25、26、27

16、23、24、25、27

class 5earse

32、33、34、35、36、37、

32、33、34、35、36、37、38

38

write protection

28、29、30

28、29、30class 7lock card

42

42class 8application specific

55、56

55、56

class 9I/O mode

39、40

Not supportedclass 10〜11

reservedclass 6

次に各コマンドクラス別に、各コマンドの使用方法や注意点等を説明します。

2-17

2.

日立マルチメディアカードの概要

2.5.2

MMC モードのコマンド（1） 基本コマンド（クラス 0）
表 2.9 にコマンドクラス 0 に分類されるコマンドを示します。このクラスには認識シーケンスや内部情報の取得に使用される基本的なコマンドが分類されます。
表 2.9 基本コマンド（クラス 0）
CommandType

Argument

Resp

Abbreviation

Command descriptionbc[31:0] stuff bits

なし

GO_IDLE_STATE

Ina 状態にあるカードを除く、すべて

Index
CMD0

のカードを Idle 状態にリセットするためのコマンド。
CS 信号を Low にした状態で、本 CMD0を発行すると、選択されたカードは SPI
モードへと遷移します。
CMD1

bcr

[31:0]R3

SEND_OP_COND

使用カードの動作可能な電圧範囲のチ
ェック、およびカードの内部処理が終OCR without busy

了したかをチェックするために使用されます。CMD1 がカードに対して発行されると、カードは OCR（Operation
Conditions Register）の値を含む R3タイプのレスポンスを返します。このOCR 内の個々の 1 ビットが 100mV 範
囲（例：3.2V〜3.3V）に相当しており、
1 であれば、その電圧範囲でカードが動作可能である事を示します。また、
OCR の最上位 1 ビットはカードの内部処理が終了を確認するためのReady/Busy ポーリングを行うために使用されます。
CMD2

bcr[31:0] stuff bits

R2

ALL_SEND_CID

CMD2 が発行されるとすべての Ready
状態のカードは同タイミングで一斉にCID 情報を 1 ビットずつ、CMD ライ
ンへと送信を開始します。CMD ライ
ンはオープンドレインアーキテクチャとなっており、それぞれのカードが、
転送 1 ビット毎に CMD ラインバスの状態と自身の CID 値を比較して、異なる場合はそこで CID の送信を中止してReady 状態へと戻ります。この結果、最終的には CID 値の一番小さなカード
が、最後まで自身の CID 値の送信を成し遂げ、唯一 1 枚選択されて
Identification 状態へと遷移します。

2-18

2.

CommandType

Argument

日立マルチメディアカードの概要

Resp

Abbreviation

Command description

R1

SET_RELATIVE_

CMD2 によって Identification 状態へとADDR

遷移したカードに対して相対カードア

Index
CMD3

ac

[31:16] RCA[15:0] stuff bits

ドレス（RCA）を設定します。RCA を設定されたカードは Standby 状態へと遷移し、以降の CMD2、CMD3 に対して応答しなくなります。
CMD4

bc

[31:16] DSRなし

SET_DSRDSR（Driver State Register）をプログラムするために使用されます。当社[15:0] stuff bits

MMC では DSR をサポートしていませ
ん。
CMD7

ac

[31:16] RCA

R1[15:0] stuff bits

（select

SELECT/

1 枚のカードを選択して Stand-by から

DESELECT_CARD

Transfer 状態へと遷移させます。

card

Transfer 状態へは 1 枚のカードしか遷

only）

移できず、そのカードのみが、その後のリード、ライト、イレース等のコマンドに反応します。すでに 1 枚 Transfer
状態へと選択されているとき、別のカードを選択した場合には、新規選択のカードが新たに Transfer 状態へと遷移
して、代わりに前に選択されていたカードは Stand-by 状態へと戻ります。
RCA=0000h にて CMD7 発行時にはす
べての Transfer 状態選択カードを、Stand-by 状態に戻すために予約されて
います。

CMD9

ac

[31:16] RCA

R2

SEND_CSDの読み出しに使用します。

[15:0] stuff bits
CMD10

ac

[31:16] RCA

R2

SEND_CIDac[31:0] stuff bits

RCA で指定されたカードの CID 情報の読み出しに使用します。

[15:0] stuff bits
CMD12

RCA で指定されたカードの CSD 情報

R1b

STOP_

ストリームリード、マルチリード、ス

TRANSMISSION

トリームライト、マルチライトのコマ
ンドの処理を強制的に停止するための
コマンド。

CMD13

ac

[31:16] RCA

R1

SEND_STATUS

アドレス指定したカードにステータス
レジスタの内容を送信するよう要求す[15:0] stuff bits

るコマンド。ステータスレジスタには、カードに起きたエラーの内容やカードの状態等を格納しています。
CMD15

ac

[31:16] RCA[15:0] stuff bits

なし

GO_INACTIVE_

カードを Inactive 状態にするためのコ

STATE

マンドです。

2-19

2.

日立マルチメディアカードの概要（2） ストリームリードコマンド（クラス 1）
表 2.10 にコマンドクラス 1 に分類されるコマンドを示します。このクラスにはストリームリードコマンドが分類されます。
表 2.10 ストリームリードコマンド（クラス 1）
CommandType

Argument

Resp

Abbreviation

Command description

READ_DAT_UNTIL_

STOP_TRANSMISSION コマンドが送STOP

信されるまでの間、与えられたアドレ

Index
CMD11

adtc

[31:0]

R1

data address

スから始まるデータストリームを、カードより読み出すためのコマンド。

（3） ブロックリードコマンド（クラス 2）
表 2.11 にコマンドクラス 2 に分類されるコマンドを示します。このクラスにはブロックリードに関連したコ
マンドが分類されます。
表 2.11 ブロックリードコマンド（クラス 2）
CommandType

Argument

Resp

Abbreviation

Command description

Index
CMD16

ac

[31:0] block length

R1

SET_BLOCKLEN

以後の CMD17（シングルブロックリード）、CMD18（マルチブロックリード）、CMD24（シングルブロックライト）、CMD25（マルチブロックライト）
使用時の転送ブロック長を変更するためのコマンド。

CMD17

adtc

[31:0]

R1

data address

READ_SINGLE_

Argument で指定したアドレスから、

BLOCK

CMD16 で設定されたブロック長（未設定の場合はデフォルトの 512 バイト）のデータをカードから読み出すためのコマンド。

CMD18

adtc

[31:0]
data address

R1

READ_MULTIPLE_

Argument で指定したアドレスから、

BLOCK

CMD16 で設定されたブロック長（未設定の場合はデフォルトの 1 ブロック
512 バイト）のデータをカードから連続し、ストップコマンド（CMD12）が入力されるまで複数ブロック読み出すためのコマンド。

・ CMD16
当社MMCでは、CMD16を使用することで、転送ブロックサイズを1〜2048バイトの間のバイト単位で変更可能です。
例）Argument=00 00 00 20h → 32バイト単位転送。

2-20

2.

日立マルチメディアカードの概要

なお、一度変更したブロックサイズは再度CMD16でブロックサイズを変更するまで、またはCMD0でリセットされるまで有効です。また、本コマンド未使用時にはデフォルトのブロックサイズ512バイトでデータ転送されます。
当社MMCではCSDレジスタ値にREAD_BLK_PARTIAL=1と設定されているため、本CMD16を使用して転送
ブロックサイズを変更しておけば、CMD17、CMD18のブロックリード系のコマンド使用時には変更後のブロックサイズ単位でデータの読み出しが可能となります。
ただし、当社MMCではCSDレジスタ値にWRITE_BLK_PARTIAL=0と設定されているため、本CMD16を使用して転送ブロックサイズを変更しておいても、CMD24､CMD25のブロックライト系のコマンド使用時にはブロックサイズは変更されず、512バイト固定で書き込まれます。
・ CMD17
当社MMCでは、CSDでREAD_BLK_MISALIGN=0と設定されているため、リードデータブロックは物理的
ブロック境界線を超えることはできません。リードデータ範囲が物理境界にかからないように、スタートア
ドレスおよびブロックサイズの変更をしてください。物理ブロック境界はアドレス0000hから0800h毎（2048
バイト毎）に存在します。物理ブロック境界にまたがるブロックデータを読み込もうとした場合には、レスポンスにエラービットが立ちます。図2.6にスタートアドレスの設定例を示します。

2048ࡃࠗ࠻
ᱜߒ޿CMD17ߦࠃࠆ⺒ߺㄟߺ଀Start Address
2048ࡃࠗ࠻Ფߩ‛ℂႺ⇇2048ࡃࠗ࠻
㑆㆑ߞߚCMD17ߦࠃࠆ⺒ߺㄟߺ଀Start Address
2048ࡃࠗ࠻Ფߩ‛ℂႺ⇇2048ࡃࠗ࠻

図 2.6 CMD17 使用時のスタートアドレス設定例

・ CMD18
CMD17と同様に、当社MMCでは、CSDでREAD_BLK_MISALIGN=0と設定されているため、マルチブロッ
クリードで読み出される、各データブロックそれぞれは物理的ブロック境界線を超えることはできません。
各データブロックそれぞれが物理境界にかからないように、スタートアドレスおよびブロックサイズの変更をしてください。物理ブロック境界はアドレス0000hから0800h毎（2048バイト毎）に存在します。物理ブロ
ック境界にまたがるブロックデータを読み込もうとした場合には、レスポンスにエラービットが立ちます。
図2.7にスタートアドレスの設定例を示します。

2-21

2.

日立マルチメディアカードの概要

ᱜߒ޿CMD18ߦࠃࠆ⺒ߺㄟߺ଀2048ࡃࠗ࠻
Start Address

2048ࡃࠗ࠻Ფߩ‛ℂႺ⇇2048ࡃࠗ࠻

㑆㆑ߞߚCMD18ߦࠃࠆ⺒ߺㄟߺ଀Start Address
2048ࡃࠗ࠻Ფߩ‛ℂႺ⇇2048ࡃࠗ࠻

図 2.7 CMD18 使用時のスタートアドレス設定例（4） ストリームライトコマンド（クラス 3）
表 2.12 にコマンドクラス 3 に分類されるコマンドを示します。このクラスにはストリームライトコマンドが分類されます。
表 2.12 ストリームライトコマンド（クラス 3）
CommandType

Argument

Resp

Abbreviation

Command description

Index
CMD20

adtc

[31:0]

R1

data address

WRITE_DAT_

ストップトランスミッションコマンド

UNTIL_STOP（CMD12）が発行されるまでの間、与えられたアドレスから始まるデータストリ
ームを、カードへ書き込む。

（5） ブロックリード／ライトコマンド（クラス 2／4）
表 2.13 にコマンドクラス 2／4 の両方に所属するコマンドを示します。コマンドクラス 2／4 の両方に所属するコマンドは、コマンド 16、コマンド 23 の 2 種類ですが、弊社 MMC では CSD レジスタ値に WRITE_BLK_PARTIAL= 0 と設定されているため、CMD16 を使用して転送ブロックサイズを変更しても、CMD24、CMD25のブロックライト系のコマンド使用時にはブロックサイズは変更されず、512Byte 固定で書き込まれます。コマンド 16 は（3）ブロックリードコマンド内で説明しているため、ここではコマンド 23 のみを記載します。
このコマンド 23 は従来の MMCA 規格 Ver.2.xx から Ver.3.1（2001 年 6 月発効）の改訂で新たに追加されたコ
マンドです。
表 2.13 ブロックリード／ライトコマンド（クラス 2／4）
CommandType

Argument

Resp

Abbreviation

Command description

Index
CMD23

ac

[31:16] set to 0
[15:0] numberof blocks

R1

SET_BLOCK_

直後の CMD18（マルチブロックリード）、

COUNT

CMD25（マルチブロックライト）使用時に転送するブロック数を指定するための
コマンド。

2-22

2.

日立マルチメディアカードの概要（6） ブロックライトコマンド（クラス 4）
表 2.14 にコマンドクラス 4 に分類されるコマンドを示します。このクラスにはブロックライト関係のコマンドが分類されています。
表 2.14 ブロックライトコマンド（クラス 4）
CommandType

Argument

Resp

Abbreviation

Command description

Index
CMD24

adtc

[31:0]

R1

WRITE_BLOCK

Argument で指定したアドレスから、
CMD16 で設定されたブロック長（未設定data addressの場合はデフォルトの 512 バイト）のデータをカードに書き込むためのコマンド。ただし、当社 MMC はブロック長 512
バイト固定です。
CMD25

adtc

[31:0]

R1

data address

WRITE_MULTIPLE_

Argument で指定したアドレスから、

BLOCK

CMD16 で設定されたブロック長（未設定の場合はデフォルトの 1 ブロック 512 バ
イト）のデータを連続して、ストップコ
マンド（CMD12）が入力されるまで複数
ブロック書き込むためのコマンド。ただし、当社 MMC はブロック長 512 バイト
固定です。

CMD26

adtc

[31:0]R1

PROGRAM_CID

CID レジスタのプログラミングに使用するコマンド。ただし、出荷前にカードメ

stuff bitsーカにより CID を書き込むために 1 回限
り使用可能なコマンドで、MMC ホストサ
イドで使用不可なコマンドです。
CMD27

adtc

[31:0]R1

PROGRAM_CSD

stuff bits

CSD レジスタ内のプログラマブルビットのプログラミングに使用するコマンド。

・ CMD24
当社MMCでは、CSDでWRITE_BLK_PARTIAL=0と設定されているためにライト時のブロック長は512バイ
ト固定です。
当社MMCでは、CSDでWRITE_BLK_MISALIGN=0と設定されているため、ライトデータブロックは物理的
ブロック境界線を超えることはできません。ライトデータ範囲が物理境界にかからないように、スタートア
ドレスの設定をしてください。物理ブロック境界はアドレス0000hから0800h毎（2048バイト毎）に存在します。物理ブロック境界にまたがるブロックデータを書き込もうとした場合には、レスポンスにエラービットが立ちます。図2.8にスタートアドレスの設定例を示します。

2-23

2.

日立マルチメディアカードの概要

2048ࡃࠗ࠻
ᱜߒ޿CMD24ߦࠃࠆᦠ߈ㄟߺ଀
Start Address
2048ࡃࠗ࠻Ფߩ‛ℂႺ⇇2048ࡃࠗ࠻
㑆㆑ߞߚCMD24ߦࠃࠆᦠ߈ㄟߺ଀
Start Address
2048ࡃࠗ࠻Ფߩ‛ℂႺ⇇2048ࡃࠗ࠻

図 2.8 CMD24 使用時のスタートアドレス設定例

・ CMD25
CMD24と同様に、当社MMCでは、CSDでWRITE_BLK_MISALIGN=0と設定されているため、マルチブロッ
クライトで書き込まれる各データブロックそれぞれは物理的ブロック境界線を超えることはできません。各
データブロックそれぞれが物理境界にかからないように、スタートアドレスの設定をしてください。物理ブ
ロック境界はアドレス0000hから0800h毎（2048バイト毎）に存在します。物理ブロック境界にまたがるブロ
ックデータを書き込もうとした場合には、レスポンスにエラービットが立ちます。図2.9にスタートアドレ
スの設定例を示します。

2048ࡃࠗ࠻

ᱜߒ޿CMD25ߦࠃࠆᦠ߈ㄟߺ଀

Start Address

2048ࡃࠗ࠻Ფߩ‛ℂႺ⇇2048ࡃࠗ࠻

㑆㆑ߞߚCMD25ߦࠃࠆᦠ߈ㄟߺ଀

Start Address
2048ࡃࠗ࠻Ფߩ‛ℂႺ⇇2048ࡃࠗ࠻

図 2.9 CMD25 使用時のスタートアドレス設定例

当社MMCの内部構造は512バイト×4のバッファ、2kバイトのフラッシュが1ユニットとなっています。Flash
への実際の書き込みは2kバイト単位で行われ、それまでは内部のバッファにデータが一時保管されます。このためマルチブロックを使用した際の各ブロックの書き込み時間（Busy期間）は、バッファ書き込み時は短く、2kバイト毎にフラッシュに書き込みが発生するタイミングでBusy期間が長くなります。図2.10に各転送ブロック毎のBusy時間目安を示します。

2-24

日立マルチメディアカードの概要

2.

ォㅍࡉࡠ࠶ࠢ

512ࡃࠗ࠻

Data

Busyᦼ㑆

1st

ѳ300Ǵs2nd

ѳ100Ǵs3rd

ѳ100Ǵs4th

ѳ2.5ms㧔Typ㧕

MMC
1st

Buffer

2nd

3rd

4th

512 ࡃࠗ࠻4

Flash

CMD

2kࡃࠗ࠻

CMD25

RSP
1st

DAT

2nd

Busy

DAT㧔1st㧕DAT㧔2nd㧕
Ready

3rd

Busy

Busy

DAT㧔3rd㧕
Ready

Ready

CMD
DAT

4th
DAT㧔4th㧕

5th

Busy

DAT㧔5th㧕
Ready

6th

Busy

DAT㧔6th㧕

Busy

Ready

Ready

図 2.10 各転送ブロック毎の Busy 時間概念

当社MMCでは2048バイト単位（アドレス0000h、0800h、1000h、1800h・・・）にフラッシュ書き込みの物
理境界が存在し、この単位ごとに書き込みが行われます。したがって、図2.11に示すように同じ512バイト
×4の2048バイトのデータをマルチブロックライト（CMD25）を使用して書き込もうとした場合に、（A）のように2048バイトの物理境界内に収まるようなアドレス（0000h）から書き込んだ場合と、（B）のように物理境界にまたがるように書き込んだ場合（0400h）では、内部バッファからフラッシュに書き込む処理が（A）では1回、（B）では2回となります。高速化を計るためには、データを書き込む際には2048バイトの物理境界を考慮したアドレス（0000h、0800h、1000h、1800h・・・）から書き込んでください。

㧔B㧕

㧔A㧕ផᅑ
Start Add㧔0000h㧕
0000h
0800h

1st

Start Add㧔0400h㧕
2nd

3rd

1st

4th

0000h
Stop CMD
0800h

1st Busy 㧩300Ǵs
2nd Busy 㧩100Ǵs
3rd Busy 㧩100Ǵs
4th Busy 㧩2.5ms㧔ࡈ࡜࠶ࠪࡘᦠ߈ㄟߺ㧕

3rd

4th
Stop CMD

2nd512ࡃࠗ࠻

1st Busy 㧩300Ǵs
2nd Busy 㧩2.5ms㧔ࡈ࡜࠶ࠪࡘᦠ߈ㄟߺ㧕
3rd Busy 㧩300Ǵs
4th Busy 㧩2.5ms㧔ࡈ࡜࠶ࠪࡘᦠ߈ㄟߺ㧕

図 2.11 マルチブロックスタートアドレス設定推奨例

前述のようにマルチブロックライトを使用した場合に、バッファに書き込むだけの処理となるか、フラッシ
ュへの書き込みが生じるかで大きくBusy時間が異なります。データ転送後にDAT線がBusyとなり、ホスト
はReadyとなるまでポーリングをすることになりますが、このポーリングの間隔をフラッシュへ書き込みが生じるタイミングのBusy期間に合わせて行うと、無駄な時間が生じますので、ポーリングは内部バッファへの書き込み時のBusy期間に合わせて充分短い間隔で行うようにしてください。

2-25

2.

日立マルチメディアカードの概要（7） イレースコマンド（クラス 5）
表 2.15 にコマンドクラス 5 に分類されるコマンドを示します。このクラスにはイレース関係のコマンドが分類されています。
表 2.15 イレースコマンド（クラス 5）
CommandType

Argument

Resp

Abbreviation

Command description

Index
CMD32

ac

[31:0]

R1

data address

TAG_SECTOR_

イレースグループ内の連続してイレース

START

したい範囲の最初のセクタのアドレスを
設定。

CMD33

ac

[31:0]R1

TAG_SECTOR_END

イレースグループ内の連続してイレース
したい範囲の最終のセクタのアドレスを

data address

設定。
CMD32 で設定したセクタと同一でも可。
CMD34

ac

[31:0]

R1

UNTAG_SECTOR

イレースグループ内の連続してイレース
したい範囲の中の任意のセクタの消去を

data address

解除。
CMD35

ac

[31:0]

R1

data address
CMD36

ac

[31:0]

R1

data address

TAG_ERASE_GROUP

連続して消去したい範囲の最初のイレー_START

スグループのアドレスを設定。

TAG_ERASE_GROUP

連続して消去したい範囲の最後のイレー_END

スグループのアドレスを設定。
CMD35 で設定したイレースグループと同
一でも可。

CMD37

ac

[31:0]

R1

data address

UNTAG_ERASE_

連続してイレースしたいイレースグルー

GROUP

プ群のなかの 1 つのイレースグループの消去を解除。

CMD38

ac[31:0]

R1b

ERASE

設定した範囲の消去実行。

stuff bits

セクタ単位に消去を実施するには図 2.12 に示すような、フローに従いコマンド発行をします。コマンド発行
順はこの順番でなくてはなりません。当社 MMC のイレースグループサイズは CSD に 8k バイトと設定してあります。イレースグループ間にまたがるセクタ消去はできません。また、イレースグループ単位消去を実行時には
図 2.13 に示すようなフローに従いコマンドを発行します。セクタイレース同様にコマンド発行順はこの順番でなくてはなりません。

2-26

2.

日立マルチメディアカードの概要

CMD32 ࠬ࠲࡯࠻࠮ࠢ࠲ࠕ࠼࡟ࠬ⸳ቯ㧔ᔅ㗇㧕

CMD33 ࠛࡦ࠼࠮ࠢ࠲ࠕ࠼࡟ࠬ⸳ቯ㧔ᔅ㗇㧕

CMD34 ᶖ෰⸃㒰࠮ࠢ࠲ࠕ࠼࡟ࠬ⸳ቯ㧔⋭⇛น㧕 Max16࿁

CMD38 ᶖ෰ታⴕ㧔ᔅ㗇㧕

ᶖ෰ታᣉ଀
0000h

CMD32 Argument㧩0000h

512ࡃࠗ࠻

0200h
CMD33 Argument㧩1C00h
䲒

ࠗ࡟࡯ࠬ
ࠣ࡞࡯ࡊ
16࠮ࠢ࠲
㧔8kࡃࠗ࠻㧕

CMD34 Argument㧩1800h

CMD34 Argument㧩1A00h

1A00h
1C00h
1E00h

CMD38

㧦ᶖ෰▸࿐

図 2.12 セクタ単位消去フロー

2-27

2.

日立マルチメディアカードの概要

CMD35 ࠬ࠲࡯࠻ࠗ࡟࡯ࠬࠣ࡞࡯ࡊࠕ࠼࡟ࠬ⸳ቯ㧔ᔅ㗇㧕

CMD36 ࠛࡦ࠼ࠗ࡟࡯ࠬࠣ࡞࡯ࡊࠕ࠼࡟ࠬ⸳ቯ㧔ᔅ㗇㧕

CMD37 ᶖ෰⸃㒰ࠗ࡟࡯ࠬࠣ࡞࡯ࡊࠕ࠼࡟ࠬ⸳ቯ㧔⋭⇛น㧕 Max16࿁

CMD38 ᶖ෰ታⴕ㧔ᔅ㗇㧕

ᶖ෰ታᣉ଀
0000h

CMD35 Argument㧩0000h

8kࡃࠗ࠻

2000h
8kࡃࠗ࠻
4000h
8kࡃࠗ࠻

CMD36 Argument㧩1C000h䲒
CMD37 Argument㧩18000h

CMD37 Argument㧩1A000h

1A000h1C000h1E000h

CMD38

㧦ᶖ෰▸࿐

図 2.13 ブロック単位消去フロー（8） ライトプロテクトコマンド（クラス 6）
表 2.16 にコマンドクラス 6 に分類されるコマンドを示します。このクラスにはライトプロテクト関係のコマンドが分類されています。
表 2.16 ライトプロテクトコマンド（クラス 6）
CommandType

Argument

Resp

Abbreviation

Command description

SET_WRITE_PROT

カードがライトプロテクトの機能を持っ

Index
CMD28

ac

[31:0]

R1bている場合に、アドレス指定されたグル

data address

ープのライトプロテクトビットを設定し
ます。
CMD29

ac

[31:0]R1

CLR_WRITE_PROT

カードがライトプロテクトの機能を持っている場合に、アドレス指定されたグル

data address

ープのライトプロテクトビットを解除し
ます。
CMD30

adtc

[31:0]R1

SEND_WRITE_PROT

カードがライトプロテクトの機能を持っwrite protectている場合に、カードにライトプロテク

data address

トビットのステータスの送信要求をしま
す。

2-28

2.

日立マルチメディアカードの概要

当社 MMC では、CSD の WP_GRP_SIZE=1 と設定されています。ライトプロテクトグループサイズは、（1+ WP_GRP_SIZE）×ERASE_GRP_SIZEで規定されますので 16k バイトとなります。
したがって、16k バイト単位に、CMD28 を使用してのライトプロテクトの設定、CMD29 を使用してのライト
プロテクトの解除ができます。図 2.14 にライトプロテクトブロックの例を示します。Argument = 4000h で CMD28を発行すれば、図中のエリアにプロテクトがかかります。

࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࡉࡠ࠶ࠢ
Add 0000h

16kࡃࠗ࠻

Add 4000h

16kࡃࠗ࠻

Add 8000h

16kࡃࠗ࠻

଀㧕Argument㧩4000hߢCMD28ታⴕߢ‫࠻ࠢ࠹ࡠࡊޓޓ‬図 2.14 ライトプロテクトブロック例

カード全体をイレースやライトに対してプロテクトしたい場合は、CSD レジスタの PERM_WRITE_PROTECT、または TMP_WRITE_PROTECT に 1 をセットします。（デフォルトはそれぞれ 0 となっています。）
PERM_WRITE_PROTECT はカスタマーにより 1 回限り設定可能で、1 度設定したら恒久的にイレースおよびライトからプロテクトされます。これに対して TMP_WRITE_PROTECT はテンポラリーにプロテクト可能で、何度でも設定、解除が可能です。
CMD30（センドライトプロテクション）を使用することで、ライトプロテクトビットのステータスを読み取ることができます。図 2.15 にライトプロテクトビットステータスの送信例を示します。通常、読み取りできる範
囲は、指定したアドレスから 32 プロテクトグループ分で、指定したアドレスのプロテクトグループのステータ
スが最終データとして、シングルリードと同じ方法で出力されます。
また、指定したアドレスに相当するライトプロテクトグループから後のライトプロテクトグループが 32 ライ
トプロテクトグループ分存在しない場合は、存在しないライトプロテクトグループのライトプロテクトビットは0 で出力されます。

2-29

2.

日立マルチメディアカードの概要٨࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ߇32࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊಽሽ࿷ߔࠆ႐ว
‫଀ޓ‬㧕࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻࠺࡯࠲ࠕ࠼࡟ࠬߣߒߡ0000hࠍᜰቯߒߡCMD30⊒ⴕ‫ޕ‬‫ޓޓޓ‬ψ࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ0000h߆ࠄ32ࠣ࡞࡯ࡊಽߩ࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࡆ࠶࠻ࠬ࠹࡯࠲ࠬࠍ಴ജ‫ޕ‬࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࡆ࠶࠻
Add 0000h࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔1㧕

16kࡃࠗ࠻

0

16kࡃࠗ࠻

1

16kࡃࠗ࠻

0

Add 4000h࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔2㧕
Add 8000h࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔3㧕

಴ജ㗅
Add 74000h࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔30㧕

16kࡃࠗ࠻

1

16kࡃࠗ࠻

0

16kࡃࠗ࠻

0

Add 78000h࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔31㧕
Add 7C000h࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔32㧕ࡊࡠ࠹ࠢ࠻⸳ቯ㧦1ࡊࡠ࠹ࠢ࠻⸃㒰㧦0ࠞ࡯࠼߆ࠄߩDAT✢ࠍㅢߒߡߩ಴ജ࠺࡯࠲ࡉࡠ࠶ࠢ

0

0

1

0

1

0 16ࡆ࠶࠻CRC

٨࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ߇32࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊಽሽ࿷ߒߥ޿႐ว
‫ޓ‬ψሽ࿷ߒߥ޿࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊߩ࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࡆ࠶࠻ߪ0ߢ಴ജߐࠇ߹ߔ‫ޕ‬࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࡆ࠶࠻
Add XXXXh࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔1㧕

16kࡃࠗ࠻

0

16kࡃࠗ࠻

1

16kࡃࠗ࠻

0

Add XXXXh࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔2㧕
Add XXXXh࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔3㧕ࡔࡕ࡝ᦨᄢኈ㊂಴ജ㗅࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔30㧕

0࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔31㧕

0࡜ࠗ࠻ࡊࡠ࠹ࠢ࠻ࠣ࡞࡯ࡊ㧔32㧕

0ࡊࡠ࠹ࠢ࠻⸳ቯ㧦1ࡊࡠ࠹ࠢ࠻⸃㒰㧦0ࠞ࡯࠼߆ࠄߩDAT✢ࠍㅢߒߡߩ಴ജ࠺࡯࠲ࡉࡠ࠶ࠢ

0

0

0

0

0

図 2.15 ライトプロテクトビットステータス送信例

2-30

1

0 16ࡆ࠶࠻CRC

2.

日立マルチメディアカードの概要（9） ロックカードコマンド（クラス 7）
表 2.17 にコマンドクラス 7 に分類されるコマンドを示します。このクラスにはカードをパスワードでロックするためのコマンドが分類されています。
表 2.17 ロックカードコマンド（クラス 7）
CommandType

Argument

adtc[31:0] stuff bits

Resp

Abbreviation

Command description

Index
CMD42

R1b

LOCK_UNLOCK

パスワードの設定／消去またはカードのロッ
ク／アンロックに使用します。パスワードによりロックしたカードは、ロックを解除する
までは、データのリード／ライトができなくなります。パスワード長は 128 ビットまでの範囲で設定可能です。

パスワードによる保護機能を使用することで、カードをロックすることが可能となります。ロックされたカードは基本コマンドクラス（Class0）とロックカードコマンドクラス（Class7）のコマンドに対してのみレスポン
スを返します。つまり、初期化、識別、選択、状態の問い合わせ、およびロックに関わるコマンドのみ使用可能
で、カード内のデータのリード、ライト、イレースはできなくなります。パスワード情報、ロック情報は不揮発性の情報で、電源再投入操作により内容が消えることは無く、保持されます。

表 2.18 にカードロックに使用されるレジスタを示します。
表 2.18 カードロックに使用されるレジスタ
Byte#

Bit7

0

Bit6

Bit5

Bit4

Bit3

Reserved

ERASE

Bit2

Bit1

Bit0

LOCK_

CLR_PWDSET_PWDUNLOCK
1

PWD_LEN…

Password data（Max128Bit）

PWD_LEN + 1【注】ERASE：

カード内のデータを全て強制的にイレースする場合にセットします。
1：強制イレース実行。

LOCK_UNLOCK：

カードのロックおよび アンロックする場合にセットします。
1：カードをロック。
0：カードをアンロック。

CLR_PWD：

パスワードをクリアする場合にセットします。
1：パスワードクリア。

SET_PWD：

新しいパスワードのセットをする場合にセットします。

PWD_LEN：

パスワードの長さ（バイト単位）です。

PWD：

パスワードデータです。

1：新しいパスワードを PWD レジスタにセット。

2-31

2.

日立マルチメディアカードの概要（a） パスワードの新規設定方法（1） パスワードを設定したいカードを未選択の場合は、CMD7 を使用してカードの選択を行います。
（2） 設定したいパスワードの長さ（バイト単位で 1 バイト〜16 バイトの間で設定可能）を決定します。
（3） （決定したパスワードバイト長＋2 バイト）のデータ転送ができるように、CMD16 を使用してブロック長の変更を行います。
（4） カードロック／アンロックコマンド（CMD42）とデータブロックを送信します。
送信時にデータブロックの LOCK_UNLOCK ビットに 1 をセットした場合は、本 CMD42 実行直後にカードはロックされます。また、LOCK_UNLOCK ビットに 0 をセットした場合であっても、カードに対して電源を一旦落として､再度電源を投入することで、カードがロックされます。これは、PWD_LENの内容は現在パスワードがセットされているかどうかを示しており、PWD_LEN の値が 0 でない場合は自動的に電源投入操作後にロックがかかるためです。
（5） カードはパスワード長（PWD_LEN）と設定したバスワード（PWD）を保存します。
表 2.19 新規パスワード設定時にカードに送るデータブロック
Byte#

Bit7

0

Bit6

Bit5

Bit4

Reserved

Bit3
0

Bit2

Bit1

Bit0

LOCK_

0

1

UNLOCK
1

設定したいパスワードバイト長（PWD_LEN）…

新規に設定したいパスワード（PWD）

PWD_LEN + 1（b） パスワードの変更方法（1） パスワードを設定したいカードを未選択の場合は、CMD7 を使用してカードの選択を行います。
（2） 新パスワードの長さ（バイト単位で 1 バイト〜16 バイトの間で設定可能）を決定します。
（3） （旧パスワードのバイト長＋新パスワードバイト長＋2 バイト）のデータ転送ができるように、CMD16を使用してブロック長の変更を行います。
（4） カードロック／アンロックコマンド（CMD42）とデータブロックを送信します。
送信時にデータブロックの LOCK_UNLOCK ビットに 1 をセットした場合は、本 CMD42 実行直後にカードはロックされます。また、LOCK_UNLOCK ビットに 0 をセットした場合であっても、カードに対して電源を一旦落として､再度電源を投入することで、カードがロックされます。これは、PWD_LENの内容は現在パスワードがセットされているかどうかを示しており、PWD_LEN の値が 0 でない場合は自動的に電源投入操作後にロックがかかるためです。

2-32

2.

日立マルチメディアカードの概要

表 2.20 パスワード変更時にカードに送るデータブロック
Byte#

Bit7

Bit6

0

Bit5

Bit4

Reserved

Bit3

Bit2

Bit1

Bit0

0

LOCK_

0

1

UNLOCK1

新パスワードバイト長（PWD_LEN）…

旧パスワード＋PWD_LEN + 1

新パスワード（c） パスワードのクリア方法（1） パスワードをクリアしたいカードを未選択の場合は、CMD7 を使用してカードの選択を行います。
（2） （設定パスワードバイト長＋2 バイト）のデータ転送ができるように、CMD16 を使用してブロック長の変更を行います。
（3） カードロック／アンロックコマンド（CMD42）とデータブロックを送信します。
（4） カードは送信されたパスワードバイト長とパスワードがレジスタに保存されていた値と一致する場合に、パスワードをイレースし、パスワード長（PWD_LEN）に 0 をセットします。このときのパスワード長0 はパスワード未設定を示します。
表 2.21 パスワードクリア時に転送するデータブロック
Byte#

Bit7

0

Bit6

Bit5

Bit4

Reserved

Bit3

Bit2

Bit1

Bit0

0

X

1

0

1

設定しているパスワードバイト長（PWD_LEN）…

設定しているパスワード（PWD）

PWD_LEN + 1（d） カードのロック方法（1） ロックしたいカードを未選択の場合は、CMD7 を使用してカードの選択を行います。
（2） （設定パスワードバイト長＋2 バイト）のデータ転送ができるように、CMD16 を使用してブロック長の変更を行います。
（3） カードロック／アンロックコマンド（CMD42）とデータブロックを送信します。
（4） カードは送信されたパスワードバイト長とパスワードがレジスタに保存されていた値と一致する場合に、カードをロックして、コマンドに対するレスポンスで、CARD_IS_LOCKED＝1 を返します。
表 2.22 カードロック時に転送するデータブロック
Byte#
0

Bit7

Bit6
Reserved

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

1

0

0

1

設定しているパスワードバイト長（PWD_LEN）…

設定しているパスワード（PWD）

PWD_LEN + 1

2-33

2.

日立マルチメディアカードの概要（e） カードのアンロック方法（1） アンロックしたいカードを未選択の場合は、CMD7 を使用してカードの選択を行います。
（2） （設定パスワードバイト長＋2 バイト）のデータ転送ができるように、CMD16 を使 3 してブロック長の変更を行います。
（3） カードロック／アンロックコマンド（CMD42）とデータブロックを送信します。
（4） カードは送信されたパスワードバイト長とパスワードがレジスタに保存されていた値と一致する場合に、カードをアンロックして、コマンドに対するレスポンスで、CARD_IS_LOCKED＝0 を返します。
【注】

カードがアンロックの状態を維持するのは、あくまでカードに対して電源が ON の状態中のみです。カードの電源を一度落として再度電源を投入した場合には、再び自動的にロックされます。恒久的にロックを解除するためには前述のパスワードを消去する必要があります。

表 2.23 カードアンロック時に転送するデータブロック
Byte#

Bit7

Bit6

0

Bit5

Bit4

Reserved

Bit3

Bit2

Bit1

Bit0

0

0

0

0

1

設定しているパスワードバイト長（PWD_LEN）…

設定しているパスワード（PWD）

PWD_LEN + 1（f） データの強制イレース方法
カードのパスワード情報を忘れた場合に、カード内の全データと共にパスワードの内容を消去することができます。
（1） データの強制イレースしたいカードを未選択の場合は、CMD7 を使用してカードの選択を行います。
（2） 1 バイトのデータ転送ができるように、CMD16 を使用して転送ブロック長を 1 バイトに変更します。
（3） カードロック／アンロックコマンド（CMD42）とデータブロックを送信します。
（4） カードはパスワード長レジスタ、パスワードレジスタを含むすべてのデータ領域を消去し、ロックされていたカードはロックされていない状態となります。
表 2.24 パスワードクリア時に転送するデータブロック
Byte#
0

2.5.3

Bit7

Bit6
Reserved

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

1

0

0

0

SPI モードのコマンド

SPI のコマンド一覧を表 2.25 に示します。MMC モードコマンドとの主な違いは、CMD1 で OCR レジスタの値を読み出せないために、CMD58 が OCR の読み出しのためにアサインされている点、SPI モードはデフォルト
で CRC がオフとなっているために、CRC オンするための CMD59 がアサインされている点です。他のコマンド
ではレスポンスの形態は違いますが、コマンドの機能や発行形態は MMC モードコマンドと同一です。

2-34

日立マルチメディアカードの概要

2.

表 2.25 SPI モードコマンド一覧
CommandType

Argument

Resp

None

R1

Abbreviation

Command description

Index
CMD0

Yes

GO_IDLE_STATE

カードのリセットに使用するコマンドです。
CS 信号を Low にした状態で、本 CMD0を発行すると、選択されたカードは SPI
モードへと遷移します。CMD0 発行後に発行可能なコマンドは CMD1 と CMD58
のみです。

CMD1

Yes

None

R1

SEND_OP_COND

カードの初期化完了を監視するために使用します。レスポンス R1 が 01h（Busy）
から 00h（Ready）になるまで、ホストは CMD1 でポーリングを続けてください。MMC モードのときの CMD1 のように電源電圧範囲のやり取りはありません
ので、電源電圧範囲を確認したい場合は、
CMD58（Read_OCR）を利用してくだ
さい。

CMD2

No

CMD3

No

CMD4

No

CMD5

Reserved

CMD6

Reserved

CMD7

No

CMD8

Reserved

CMD9

Yes

None

R1

SEND_CSDRCA で指定されたカードの CSD 情報の

CMD10

Yes

None

R1

SEND_CIDRCA で指定されたカードの CID 情報の読み出しに使用します。

読み出しに使用します。
CMD11

No

CMD12

Yes

CMD13

Yes

None

None

R1

R2

STOP_

マルチリードのコマンド処理を強制的にTRANSMISSION

停止するためのコマンド。

SEND_STATUS

選択されているカードにそのステータス
レジスタを送信するように命令するためのコマンド。

CMD14

Reserved

CMD15

No

CMD16

Yes

[31:0]
block
lengthR1

SET_BLOCKLEN

以後の CMD17（シングルブロックリード）、CMD24（シングルブロックライト）、使用時の転送ブロック長を変更するためのコマンド。ただし、当社カードではライト転送ブロックサイズは 512 バイト固定。
発行時の設定例は「MMC モード時のCMD16 説明」を参照願います。

2-35

2.

日立マルチメディアカードの概要

CommandType

Argument

Resp[31:0] data

R1

Abbreviation

Command description

Index
CMD17

Yes

address

READ_SINGLE_

Argument で指定したアドレスから、

BLOCK

CMD16 で設定されたブロック長（未設定の場合はデフォルトの 512 バイト）のデータをカードから読み出すためのコマ
ンド。

CMD18

No

[31:0] data

R1

address

READ_MULTIPLE_

Argument で指定したアドレスから、

BLOCK

CMD16 で設定されたブロック長（未設定の場合はデフォルトの 1 ブロック 512バイト）のデータをカードから連続し、
ストップコマンド（CMD12）が入力されるまで複数ブロック読み出すためのコマ
ンド。

CMD19

Reserved

CMD20

No

CMD21〜
22

Reserved

CMD23

Yes

[31:16]

R1

SET_BLOCK_COUNT

直後の CMD18（マルチブロックリード）、

set to 0

CMD25（マルチブロックライト）使用時[15:0]に転送するブロック数を指定するためのnumber of

コマンド。

blocks
CMD24

Yes[31:0]

R1

WRITE_BLOCK

Argument で指定したアドレスから、
CMD16 で設定されたブロック長（未設data

定の場合はデフォルトの 512 バイト）のaddress

データをカードに書き込むためのコマンド。ただし、当社 MMC はブロック長 512
バイト固定です。
CMD25

No[31:0] data

R1

address

WRITE_MULTIPLE_

Argument で指定したアドレスから、

BLOCK

CMD16 で設定されたブロック長（未設定の場合はデフォルトの 1 ブロック 512バイト）のデータを連続して、ストップ
コマンド（CMD12）が入力されるまで複数ブロック書き込むためのコマンド。ただし、当社 MMC はブロック長 512 バイ
ト固定です。（但し、MMCA 規格 Ver.3.1の MM2 シリーズから適用）

CMD26

No

CMD27

Yes

None

R1b

PROGRAM_CSD

CSD レジスタ内のプログラマブルビットのプログラミングに使用するコマンド。

CMD28

Yes

[31:0] data

R1b

SET_WRITE_PROT

カードがライトプロテクトの機能を持っている場合に、アドレス指定されたグル

address

ープのライトプロテクトビットを設定。
CMD29

Yes

[31:0] data
address

R1b

CLR_WRITE_PROT

カードがライトプロテクトの機能を持っている場合に、アドレス指定されたグループのライトプロテクトビットを解除。

2-36

2.

CommandType

Argument

Resp[31:0] write

R1

日立マルチメディアカードの概要

Abbreviation

Command description

SEND_WRITE_PROT

カードがライトプロテクトの機能を持っ

Index
CMD30

Yes

protectdataている場合に、カードにライトプロテク

address

トビットのステータスの送信要求をしま
す。

CMD31

Reserved

CMD32

Yes

[31:0] data

R1

address

TAG_SECTOR_

イレースグループ内の連続してイレース

START

したい範囲の最初のセクタのアドレスを
設定。

CMD33

Yes

[31:0] data

R1

TAG_SECTOR_END

イレースグループ内の連続してイレース
したい範囲の最終のセクタのアドレスを

address

設定。CMD32 で設定したセクタと同一
でも可。
CMD34

Yes

[31:0] data

R1

UNTAG_SECTOR

イレースグループ内の連続してイレース
したい範囲の中の任意のセクタの消去を

address

解除。
CMD35

Yes

[31:0] data

R1

address
CMD36

Yes[31:0] data

R1

address

TAG_ERASE_

連続して消去したい範囲の最初のイレー

GROUP_START

スグループのアドレスを設定。

TAG_ERASE_

連続して消去したい範囲の最後のイレー

GROUP_END

スグループのアドレスを設定。CMD35で設定したイレースグループと同一でも
可。

CMD37

Yes

[31:0] data

R1

address

UNTAG_ERASE_

連続してイレースしたいイレースグルー

GROUP

プ群のなかの 1 つのイレースグループの消去を解除。

CMD38

Yes[31:0]

R1b

ERASE

設定した範囲の消去実行。

R1b

LOCK_UNLOCK

パスワードの設定／消去またはカードのstuff bits
CMD39

No

CMD40

No

CMD41

Reserved

CMD42

Yes

[31:0]

ロック／アンロックに使用します。パス

stuff bits

ワードによりロックしたカードは、ロッ
クを解除するまでは、データのリード／
ライトができなくなります。パスワード
長は 128 ビットまでの範囲で設定可能です。
CMD43〜
57

Reserved

CMD58

Yes

None

R3

READ_OCR

OCR レジスタの内容をリードするための
コマンド。

2-37

2.

日立マルチメディアカードの概要

CommandType

Argument

Resp[31:1] stuff

R1

Abbreviation

Command description

Index
CMD59

Yes

CRC オプションを ON、OFF するための

CRC_ON_OFF

bits

コマンド。SPI モードはデフォルトでは[0:0] CRC

CRC オフのために、オンする時に本コマ

optionンドを使用。
・ CRC オプションビット＝1→CRC オン・ CRC オプションビット＝0→CRC オフ

CMD60

2.6

No

レスポンス

コマンドがホストからカードに対して発行されると、これを受けてカードはホストに対して、コマンド毎に規定されたフォーマットのレスポンスを返します。そのフォーマットは使用インタフェースが MMC モードか SPI
モードかで異なります。表 2.26 に MMC モードのレスポンスフォーマットを、表 2.27 に SPI モードのレスポン
スフォーマットを示します。
表 2.26 レスポンスフォーマット（MMC モード）（a） R1、R1b（ノーマルレスポンスコマンド：48 ビット）
Serial Data
[47]
Bit position

47

46

Width（bit）

1

Value

0
start bit

Description

R1、R1b[45:40][39:8]

1

6

1

X

transmission bit

command index

[0]

[7:1]

0

32

7

1

X

X

1

card status

CRC7

end bit（b） R2（CID、CSD レジスタレスポンスコマンド：136 ビット）
Serial Data
[135]
Bit position

135

134

Width（bit）

1

Value

0
start bit

Description

2-38

R2

[0]

[133:128][127:1]

0

1

6

127

1

0

111111X

1transmission bit

reserved

CID or CSD registerend bit

日立マルチメディアカードの概要

2.

（c） R3（OCR レジスタレスポンスコマンド：136 ビット）
Serial Data
[135]

R3

[0]

Bit position

47

46[45:40][39:8][7:1]

0

Width（bit）

1

1

6

32

7

1

Value

0

0

111111

X

111111

1

start bittransmission bit

reserved

OCR register

reservedend bitDescription

表 2.27 レスポンスフォーマット（SPI モード）（a） R1、R1b（SEND_STATUS：CMD13 以外のコマンドに対するレスポンス）
Serial Data
700

in idle stateerase reset
illegal command
com crc error
erase sequence error
address error
parameter error（b） R2（SEND_STATUS：CMD13 に対するレスポンス）
Serial Data
7
0

1ࡃࠗ࠻

0

7

2ࡃࠗ࠻

0

0

Card is locked
wp erase skip㨨lock/unlock cmd failederror
CC errorcard ecc failed
wp violationerase paramout of range
in idle stateerase reset
illegal command
com crc error
erase sequence error
address error
parameter error（1） MMC モード
MMCモード時のレスポンスにはR1、R2、R3、R4、R5の5タイプが有り、どのコマンドがどのタイプのレスポンスを返すかは表2.6に示す通りです。主要なコマンドのレスポンスはR1となっており、カード
ステータス情報を返します。また、R2はコマンド2、9、10を受けてCSDレジスタ値、CIDレジスタ値等を含む136ビットレスポンスを返し、R3はコマンド1を受けてOCRレジスタ値32ビットを含む48ビットレ

2-39

2.

日立マルチメディアカードの概要

スポンスを返します。
（2） SPI モード
SPIモード時のレスポンスにはR1、R2の2つのタイプがあり、コマンド13を受けてR2タイプの16ビット
レスポンス、他のコマンド時にはR1タイプの8ビットレスポンスとなります。R2タイプの16ビットレス
ポンスの内、下位8ビットはR1タイプと全く同一です。

2.7

データトークン

リードコマンドとライトコマンドは、デ−タト−クンとしてデータ転送を行います。すべてのデータバイトはMSB（Most signification bit：最上位ビット） が最初に転送されます。
データトークンは、4 バイトから 2051 バイトの長さで、表 2.28 のフォーマットとなっています。
SPI モードのマルチブロックライトオペレーションでは、コマンド 12（STOP_TRANSMISSION）は使用できません。替わりに、転送処理の中断は Stop Tran
ックライトオペレーションは Stop Tran

トークンを発行することによって、実行されます。マルチブロ

トークンを用いることでそのタイプに関係なく、いつでも書き込みを中断することができます。
表 2.28 スタートデータブロックトークンのフォーマット
• 第 1 バイト：スタートバイト
Token TypeTransaction Type7

Bit Position

0

Start BlockSingle Block Read

1

1

1

1

1

1

1

0

Start BlockMultiple Block Read

1

1

1

1

1

1

1

0

Start BlockSingle Block Write

1

1

1

1

1

1

1

0

Start BlockMultiple Block Write

1

1

1

1

1

1

0

0

Stop Tran

Multiple Block Write

1

1

1

1

1

1

0

1

• バイト 2-2049（データブロック長に依存する）：ユーザデータ• 最後の 2 バイト：16 ビット CRC

2-40

2.

2.8

日立マルチメディアカードの概要

リードライトプロトコル

図 2.16 に MMC モード時のリード、図 2.17 に MMC モード時のライトのプロトコル例を、図 2.18 に SPI モ
ード時のリード、図 2.19 に SPI モード時のライトのプロトコルの例を示します。

٨ࠪࡦࠣ࡞ࡉࡠ࠶ࠢ࡝࡯࠼㧔MMCࡕ࡯࠼㧕
CMD

command

response

DAT

data block

crc

block read operation㧔CMD17㧕٨ࡑ࡞࠴ࡉࡠ࠶ࠢ࡝࡯࠼㧔Open-ended Multiple block read MMCࡕ࡯࠼㧕
CMD

command

response

DAT

commanddata block

crc

data block

response

crc
data stop operation
㧔CMD12㧕

multi block read operation㧔CMD18㧕

٨ࡑ࡞࠴ࡉࡠ࠶ࠢ࡝࡯࠼㧔Multiple block read with predefined block count MMCࡕ࡯࠼㧕
CMD

command

response

DAT

command

response

data block
Set block countoperation㧔CMD23㧕

crc

data block

crc

multi block read operation㧔CMD18㧕

図 2.16 MMC モード Read 転送例

2-41

2.

日立マルチメディアカードの概要٨ࠪࡦࠣ࡞ࡉࡠ࠶ࠢ࡜ࠗ࠻㧔MMCࡕ࡯࠼㧕
CMD

command

response

DAT

data block

crc

busy

block write operation㧔CMD24㧕

٨ࡑ࡞࠴ࡉࡠ࠶ࠢ࡜ࠗ࠻㧔Open-ended Multiple block write MMCࡕ࡯࠼㧕
CMD

command

response

DAT

commanddata block

crc

busy

data block

crc

responsebusy

data stop operation
㧔CMD12㧕
multi block write operation㧔CMD25㧕

٨ࡑ࡞࠴ࡉࡠ࠶ࠢ࡜ࠗ࠻㧔Multiple block write with predefined block count MMCࡕ࡯࠼㧕
CMD

command

responsecommand

response

data block

DAT
Set block countoperation㧔CMD23㧕

crc

multi block write operation㧔CMD25㧕

図 2.17 MMC モード Write 転送例

2-42

busy

data block

crc

busy

日立マルチメディアカードの概要

2.

٨ࠪࡦࠣ࡞ࡉࡠ࠶ࠢ࡝࡯࠼㧔SPIࡕ࡯࠼㧕
Data In

command

Data Outresponse

data block

crc

block read operation㧔CMD17㧕٨ࡑ࡞࠴ࡉࡠ࠶ࠢ࡝࡯࠼㧔Open-ended Multiple block read SPIࡕ࡯࠼㧕
Data In

command

Data Outcommand

response

data block

crc

data block

crc

data b

response

data stop
operation㧔CMD12㧕
multi block read operation㧔CMD18㧕

٨ࡑ࡞࠴ࡉࡠ࠶ࠢ࡝࡯࠼㧔Multiple block read with predefined block count SPIࡕ࡯࠼㧕
Data In

Data Outcommandcommand

response
Set block countoperation㧔CMD23㧕

response

data block

crc

data block

crc

multi block read operation㧔CMD18㧕

図 2.18 SPI モード Read 転送例

2-43

2.

日立マルチメディアカードの概要٨ࠪࡦࠣ࡞ࡉࡠ࠶ࠢ࡜ࠗ࠻㧔SPIࡕ࡯࠼㧕
Data In

data blockcommand

response

Data Outdata response

busy

block write operation㧔CMD24㧕

STOP Tran Token٨ࡑ࡞࠴ࡉࡠ࠶ࠢ࡜ࠗ࠻㧔Open-ended Multiple block write SPIࡕ࡯࠼㧕
Data In

command

Data Outdata block

data block

data response busy

response

data response busy

busy

multi block write operation㧔CMD25㧕

٨ࡑ࡞࠴ࡉࡠ࠶ࠢ࡜ࠗ࠻㧔Multiple block write with predefined block count SPIࡕ࡯࠼㧕
Data In

Data Outcommandcommand
response

Set block countoperation㧔CMD23㧕

data block
response

data block
data response busy

multi block write operation㧔CMD25㧕

図 2.19 SPI モード Write 転送例

2-44data response busy

3.

応用プロダクト開発のためのトータルシステム
サポート

3.1

マルチメディアカードシステムの開発

MMC は、ただ単にフラッシュメモリを搭載したカードではなく、マルチメディア機器に応用されることを前提に、インテリジェント性を高めるためコントローラ（一般にマイコンを使用）を内蔵し、カードに対する要求
は全てコマンドでインタフェースを取る方式になっています。これによりユーザプログラムは MMC との間で独立性が高められ、プログラム開発が容易にできます。

3.1.1

サポート概要（1）MMC の評価・検討を容易にする
MMCを応用プロダクトに採用する場合に、カードの特性や機能について簡単に評価・検討ができるよう 開発プラットホームを提供します。このプラットホームはパソコンに接続するだけでユーザシステムなしで評価ができるようになっています。

（2）MMC 上に PC 互換ファイルを容易に構築できるカード上には一般的に画像、音声、文字データなどをファイルとして格納しますが、このとき、ファイルシ
ステムが必要となります。当社では PC互換ファイルシステム を用意、さらにMMCとのコマンド等のコ
ミュニケーションを行う MMCドライバソフト を提供し、ファイルシステムを容易に構築できるようにします。

（3）MMC トータルシステム開発サポート
MMCをサポートしたシステムを開発する場合、システムとカード間でのインタフェースや種々の条件下での確認作業が容易であることがシステム開発において重要であることからプロトコルアナライザ を準備します。
（a） MMC とシステム間の信号を全てモニタリング可能（b） モニタリングにおいてはコマンド、データパターンなど種々のトリガ条件でイベントを検出可能（c） マルチモードのサポートによりデバッグが容易• ノーマルモード
システムとカード間のモニタリング• 擬似カードモード
擬似的にシステム側の動作をし、カードサイドのインタフェースのデバッグ

3-1

応用プロダクト開発のためのトータルシステムサポート3.

• 擬似ホストモード
擬似的にカード側の動作をし、ホストサイドのインタフェースのデバッグ

3.1.2

システム開発の流れ

図 3.1 に、MMC を使用したシステムの開発の流れと必要なツールを示します。

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼
࠰࡝ࡘ࡯࡚ࠪࡦ

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼
ࠨࡐ࡯࠻ࠪࠬ࠹ࡓ

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼
ߩ⹏ଔ㧛ᬌ⸛

ࡂ࡯࠼࠙ࠚࠕ㐿⊒ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼
ࡊࡠ࠻ࠦ࡞ࠕ࠽࡜ࠗࠩ

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼
ࠕࡊ࡝ࠤ࡯࡚ࠪࡦ㐿⊒

࡮PC੕឵ࡈࠔࠗ࡞ࠪࠬ࠹ࡓ
࡮࠺ࡃࠗࠬ࠼࡜ࠗࡃ

ࠪࠬ࠹ࡓ࠰ࡈ࠻㐿⊒ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼
ࡊࡠ࠻ࠦ࡞ࠕ࠽࡜ࠗࠩ

㐿⊒ࡊ࡜࠶࠻ࡎ࡯ࡓ

ࠪࠬ࠹ࡓ⛔ว

ࠪࠬ࠹ࡓ࠺ࡃ࠶ࠣ
‫࠼࡯ࠞࠕࠖ࠺ࡔ࠴࡞ࡑޓ‬࡮‫ࠩࠗ࡜࠽ࠕ࡞ࠦ࠻ࡠࡊ ޓ‬࡮ࠗࡦࠨ࡯ࠠ࠶࠻ࠛࡒࡘ࡟࡯࠲
‫ޓ‬㧔ࠪࠬ࠹ࡓ࠺ࡃ࠶ࠣ㧕ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼
ࡊࡠ࠻ࠦ࡞ࠕ࠽࡜ࠗࠩ

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼៞タࠪࠬ࠹ࡓ

図 3.1 システム開発概要

最初に、MMC ソリューションとして MMC の評価・検討を 開発プラットホーム を使用して実施します。
この評価作業が終わればいよいよ MMC サポートシステムの開発に着手することになります。開発の流れとしては、ソフトウェアの開発、ハードウェアの開発、そしてシステム統合を行い、システムデバッグをして MMC 搭載システムが完成します。

（1） ソフトウェアの開発
搭載システムのシステム制御を行うプログラム、ユーザアプリケーションプログラムの開発を行います。
MMC アプリケーションの開発では、 PC 互換ファイルシステム と デバイスドライバ を使用することにより、MMC 上にファイルをサポートできます。
システムソフトの開発では、 マルチメディアプロトコルアナライザ の活用により、ほとんどのシステムソ
フトの確認を実機ができあがる前に行えます。

3-2

3.

応用プロダクト開発のためのトータルシステムサポート（2） ハードウェアの開発
ハードウェアの開発では、従来の開発に加えて MMC インタフェースの開発が新たに発生します。即ち、MMC
アダプタ LSI を準備するか、もしくは、MMC インタフェースをあらかじめ内蔵したマイコンを使用する事で MMC
をインプリメントする事が可能となります。また、特にハードウェアを準備する事なくマイコンが持っているシ
リアルコミュニケーションインタフェースを利用して、ソフトウェア的に MMC をインプリメントするという方法もあります。
この出来上がったハードウェアの MMC インタフェースについて、マルチメディアカードプロトコルアナライ
ザを利用してシステムデバッグが可能となります。

（3） システムデバッグ
ソフトウェア、ハードウェアの開発が完了した後、これらを統合（システム統合）し、いよいよシステムデバッグに入ります。従来、インサーキットエミュレータを使用してハードウェア／ソフトウェアのデバッグを実施
し、システムの確認作業を行っていましたが、MMC のようなインテリジェントデバイスに関しては、ロジック
アナライザなどに頼ることとなり、システム開発期間を短縮することはできず開発者に大きな負担をかけていました。MMC 搭載の簡略化を目的に用意した マルチメディアカードプロトコルアナライザを利用することにより、MMC に関する不良解析が行えます。また、MMC に特有なデータを用意しテストしたいなどの要望に関しては、 開発プラットホーム

でフォーマッティングやシステムテストで記録されたデータの解析などを行えるようになっています。
このように MMC 搭載システムの開発が実施されます。

以上、MMC 搭載システム開発の流れに沿って開発概要を説明しましたが、搭載システムの構成について図 3.2でもう少し掘り下げて見ることにしましょう。

3-3

応用プロダクト開発のためのトータルシステムサポート3.

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼៞タࠪࠬ࠹ࡓPC੕឵ࡈࠔࠗ࡞ࠪࠬ࠹ࡓSPIࡕ࡯࠼
࠼࡜ࠗࡃ࠰ࡈ࠻

MMCࡕ࡯࠼
࠼࡜ࠗࡃ࠰ࡈ࠻SPIࠕ࠳ࡊ࠲LSI

MMCࠕ࠳ࡊ࠲LSIࡐ࡯࠻೙ᓮ࠼࡜ࠗࡃ࠰ࡈ࠻

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼ࡊࡠ࠻ࠦ࡞ࠕ࠽࡜ࠗࠩ

MMC

MMC

MMC

MMC

MMC

MMC៞タࠪࠬ࠹ࡓ㐿⊒࡮ࠨࡐ࡯࠻

図 3.2 搭載システム構成図

MMC 搭載システムは PC 互換ファイルシステムをメインに MMC の制御方式によりポート制御とアダプタ制
御があります。ここではアダプタ制御方式の SPI モードと MMC モードに関して説明します。
図 3.2 から判るように、搭載システムではいずれかの方式を選択しシステムを構築しますが、いずれにしてもSPI モードドライバソフト、SPI アダプタ LSI もしくは MMC モードドライバソフト、MMC アダプタ LSI を経由
し、MMC にアクセスを行い、データの書き込み、読み込み、削除をファイル単位に行います。このとき、MMC
に対しシステム側ではパラレルで処理しますが、カード側ではシリアルでコマンド、データ、カードからの応答を処理します。インテリジェントなカードのデバッグにおいては、種々のステータスや情報をより効果的に収集・解析できれば、開発者に対するマンパワーをより有効に活用できるようになります。 MMC プロトコルアナラ
イザを利用することにより、開発期間の短縮を図ることができます。

MMC 搭載プロダクトの開発サポートがどのようになっているかを図 3.3 にまとめました。 開発の支援は大き
く 3 つに分類することができます。

3-4

3.

応用プロダクト開発のためのトータルシステムサポートࠕ࠳ࡊ࠲೙ᓮ

MMCࠕ࠳ࡊ࠲LSISPIࠕ࠳ࡊ࠲LSI

ࡑ࡞࠴ࡔ࠺ࠖࠕ
ࠞ࡯࠼ࡊࡠ࠳ࠢ࠻㐿⊒ࠨࡐ࡯࠻ࡂ࡯࠼࠙ࠚࠕ㐿⊒ᡰេࡊࡠ࠻ࠦ࡞ࠕ࠽࡜ࠗࠩ

࠷࡯࡞㐿⊒ࡊ࡜࠶࠻ࡎ࡯ࡓ

ࡈࠔࠗ࡞
ࠨࡐ࡯࠻

ࠪࠬ࠹ࡓ㐿⊒ᡰេPC੕឵ࡈࠔࠗ࡞ࠪࠬ࠹ࡓ

MMCࡕ࡯࠼࠼࡜ࠗࡃ࠰ࡈ࠻SPIࡕ࡯࠼࠼࡜ࠗࡃ࠰ࡈ࠻
ࡐ࡯࠻೙ᓮ࠼࡜ࠗࡃ࠰ࡈ࠻

࠰ࡈ࠻࠙ࠚࠕ㐿⊒ᡰេ

図 3.3 プロダクト開発サポート（1）ハードウェア開発支援
MMCをハードウェアに搭載する為には、アダプタ制御方式を実現しなければなりません。その為には、
MMC/SPIアダプタLSIの準備、もしくはそれらのMMCインタフェースを内蔵したマイコンを準備する必要があります。
（2）ソフトウェア開発支援
MMC上にファイルシステムを容易にサポートするために、PC互換ファイルシステムを提供すると共に、アダプタ制御方式をインプリメントするために2種類のドライバソフトを提供しています。このためユーザはMMCというものを意識することなくアプリケーションソフトウェアを開発可能です。またポート制御方式のドライバソフトも同様に用意してあります。
（3）システム開発支援
システム開発時にソフトウェアとハードウェアを総合的にデバッグするために、プロトコルアナライザおよび開発プラットホームを提供しています。 開発プラットホームには、検討／評価のみならず、次のような利用方法があります。
（a） システムデバッグで MMC 上にファイルの書き込みは動作していないが、リード処理をテストしたい
場合に、ファイル（映像、音声、テキスト etc.）を作成可能。
（b） システムデバッグで書き込んだファイルが正しくできてあるかの確認作業。
（c） MMC 上のデータの修正作業。

3-5

応用プロダクト開発のためのトータルシステムサポート3.

このような開発支援ツールを利用することにより MMC システムの開発が容易に行えます。 具体的にソフト
ウェアサポート、ツールがどのようになっているかを以降の章で詳しく説明します。

3.2

アダプタ論理MMC は CLK、CMD、DAT と称されるシリアルインタフェースラインでホストと接続されます。最大 20Mbpsという高速データ転送をカード、ホスト間で効率よく実行するためには、ホスト上の汎用マイコンと MMC の間にアダプタと呼ばれるハードウェアを必要とします。そのハードウェアを搭載したシステム構成例を図 3.4 に示します。
アダプタには MultiMediaCard System Specification*に規定された、MMC アダプタと SPI アダプタがあります。
アダプタ内にどれだけの回路を入れるかは要求されるシステムスピードによって決定されます。ここでは市販のFPGA を用いて実現した、ポート制御方式、MMC アダプタ、SPI アダプタの各ハードウェア回路について述べま
す。
【注】

*

MMCA（MultiMediaCard Association）が定めた規格㧔1㧕࠰ࡈ࠻࠙ࠚࠕ㧔ࡐ࡯࠻㧕‫ޓޓޓ‬೙ᓮᣇᑼ

㧔2㧕ࠕ࠳ࡊ࠲೙ᓮᣇᑼ
࠰ࡈ࠻࠙ࠚࠕ

࠰ࡈ࠻࠙ࠚࠕ

OSCPU
㧔SH7612㧕ROMࡈࠔࠗ࡞ࡑࡀ࡯ࠫࡖ

OSCPU
㧔SH7612㧕ROM࠼࡜ࠗࡃ࠰ࡈ࠻
㧔MMC/SPI㧕࠼࡜ࠗࡃ࠰ࡈ࠻
㧔MMC/SPI㧕

8ࡆ࠶࠻Parallel

8ࡆ࠶࠻Parallelࡐ࡯࠻㧔ᢙࡃࠗ࠻࡟ࠫࠬ࠲㧕ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼
ࠕ࠳ࡊ࠲

Serial㧔MMC/SPI㧕

Serial㧔MMC/SPI㧕

࠰ࠤ࠶࠻

࠰ࠤ࠶࠻

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼

図 3.4 マルチメディアカードシステム実施例

3-6

ࡈࠔࠗ࡞ࡑࡀ࡯ࠫࡖ

応用プロダクト開発のためのトータルシステムサポート

3.

3.2.1

ポート制御方式

図 3.5 に今回製作したポート制御方式のブロック図を示します。
ホストマイコンの外部メモリ領域に、1 バイトのレジスタポートを FPGA を用いて構成しレジスタ内のビット
にて CLK、CMD、DAT、VDD の各コントロールを実行させます。電源オン／オフ、クロックの High/Low レベ
ル制御、コマンドのビット毎出力、データのビット単位入出力をすべてホストマイコンのドライバソフト処理に任せるため転送スピードは落ちますが、ハードウェアの構成は簡単になります。

HC125
3.3V
10K

PORTREGRD-N

VDDON-N
D15㨪D8

47K

NC

D7㨪D0

SPI↪

PORTREG
D0
D1
D2
D3

SCLK
DO
DI

Q0
D0
DAT
Q1
D1
CMD
Q2
D2
Q3
D3
Q4
D4
CMDOUT
Q5
D5
DATOUT
Q6
D6
Q7
D7
CLR
CLK

D4
D5
D6
D7
PWRONRES-N
PORTREGWR-NCS
VDD

10K 10K

D0HC125
PORTREGRD-NSPIDATARD-N
D Q SPISEL-N

MMC↪
CLK
DAT
CMD
NC
VDD

MMCDATARD-N

PORTREGWR-N
R

Q

MMCSEL-N

ಾࠅᦧ߃REG

E10K30A
D1
D2

HC125

図 3.5 ポート制御方式ブロック図

3-7

応用プロダクト開発のためのトータルシステムサポート

3.

3.2.2

MMC アダプタ

図 3.6 に今回製作した MMC アダプタのブロック図を示します。

FF FF
DAT

1kB FIFOSELSHD[7:0]

DI

PψS
ᄌ឵

DO

RS
CRC16

DR

PONRES-N

FIFOCNTREG

FIFOCR
SψPᄌ឵
CRC16

ࠬ࠹࡯࠻
ࡑࠪࡦ

ࠦࡑࡦ࠼࡟ࠫࠬ࠲

CMD

PψSᄌ឵

CMD0㨪5
CRC7࡟ࠬࡐࡦࠬ࡟ࠫࠬ࠲SψPᄌ឵

RESP0㨪16

CRC7

ォㅍࡃࠗ࠻ᢙ
TBCR
SHIRQࠝࡍ࡟࡯࡚ࠪࡦ
ࠦࡦ࠻ࡠ࡯࡞࡟ࠫࠬ࠲

ഀࠅㄟߺࠦࡦ࠻ࡠ࡯࡞࡟ࠫࠬ࠲ INTCRഀࠅㄟߺࠬ࠹࡯࠲ࠬ࡟ࠫࠬ࠲

INTSTR

OCR
ࠞ࡯࠼ࠬ࠹࡯࠲ࠬ࡟ࠫࠬ࠲

ࠛ࡜࡯ࠬ࠹࡯࠲ࠬ࡟ࠫࠬ࠲

CSTR

ESTR

࠲ࠗࡓࠕ࠙࠻⸳ቯ࡟ࠫࠬ࠲TOCR
VDDon࡟ࠫࠬ࠲VDDON-N

VDDon
20MHz-Pࠢࡠ࠶ࠢ࠺ࡃࠗ࠳

CLK

図 3.6 MMC アダプタブロック図

ホストマイコンのソフトオーバヘッド軽減のため、マイコンのバスインタフェースを MMC のシリアルインタ
フェースに変換するための回路や、コマンドレジスタ（6 バイト構成）、レスポンスレジスタ（17 バイト構成）
データレジスタ（1k バイト FIFO 構成）等を FPGA で回路構成します。
MMC 転送プロトコルには、コマンド転送、レスポンス転送、データ転送においてデータ転送品質を保証する
CRC チェックが必要とされるため、コマンド送出、データ送出時 CRC コードをハードウェアで自動生成しビッ
トパターンに付加します。またレスポンス受信時、データ受信時には CRC チェックを自動的に行います。
データレジスタは書き込み、読み出しを独立して行える FIFO を FPGA 内に組みました。MMC へのデータ転送は、あらかじめ FIFO にマイコン側からデータを書き込んでおき、コマンドをレジスタにセットし、コマンド
スタートをかけると自動的にコマンドパターンを CRC を含めて送出し、カードからのレスポンスがレスポンス
レジスタに反映されます。マイコンはこのレスポンス内容をチェックし、妥当であればデータ転送イネーブルレ

3-8

3.

応用プロダクト開発のためのトータルシステムサポート

ジスタを転送許可にします。このあと FIFO に貯えられたデータは、ハードウェアで 1 バイト毎読み出され、シリアルビット列に変換され MMC インタフェース上の DAT ラインから送出されます。データ転送中のエラーや、レスポンス無応答、FIFO エンプティ、FIFO フル状態はマイコンへの割り込みとして通知されます。MMC アダ
プタとして必要な上記レジスタのほか、MMC カードの電源をオン、オフするレジスタや MMC に与えるクロッ
クを 400kHz、5MHz、10MHz、20MHz から選んで供給する機能も付けました。

3.2.3

SPI アダプタ

ハードウェア構成は上記の MMC アダプタとほぼ同様になります。MMC バスインタフェース上の違いは、レ
スポンス長が最大 2 バイト、データ転送ブロックサイズが最大 512 バイト、1 コマンドに対しマルチブロックのデータ転送は許可されていないことです。MMC アダプタ同様パラレル／シリアルデータ変換回路や コマンドレ
ジスタ（6 バイト構成）、レスポンスレジスタ（2 バイト構成）、データレジスタ（512 バイト FIFO 構成）等をFPGA で回路構成しました。CRC 回路や、割り込み発生回路、クロック発生回路、電源オン／オフ回路は MMCアダプタと同一です。SPI インタフェースの特徴である CS ラインは、新たにレジスタを追加してマイコンから制御しています。

3.2.4

ホストマイコン

上記各アダプタの機能は、MMC 各アダプタを FPGA 搭載ドータボードに組み込み、SH7612 マイコン上でまず動作確認しました。ポート制御方式、SPI アダプタ、MMC アダプタそれぞれで当初目的とした読み出し性能が得られています。一方、MMC カードの場合 8 ビットクラスのマイコンをホストにする要求も強く、以下に述べ
る H8S マイコンをベースとした開発プラットホームも製作しました。

3-9

3.

応用プロダクト開発のためのトータルシステムサポート

3.3

開発プラットホーム

MMC を使用したシステムの開発をより容易にする為、また、MMC の書込みや読み出し性能を簡単に評価できるシステムが必要とされるため MMC 開発プラットホームを作成しました。
特徴としては、MMC をディスクドライブとして扱うモニタモードと MMC/SPI プロトコルを直接扱うデバッ
グモードを備えています。

（1） モニタモード
モニタモードでは、開発プラットホームモニタプログラムコマンドを用いて、以下の操作を行う事が出来ます。
・ カードの情報（CID、CSD）を表示する事が出来ます。
・ カードをディスクドライブとして扱い、ファイル操作及びホスト間ファイル転送を行う事が出来ます。
・ 2048 バイトの編集バッファを使用して、ファイル内容の編集をする事が出来ます。

（2） デバッグモード
モニタモードからデバッグモードに切り替える事で、以下の操作を行う事が出来ます。
・ 2048 バイトの編集バッファを使用して、カードの内容を編集する事が出来ます。
・ MMC/SPI モードの、未定義も含めたすべてのコマンドを発行する事が出来ます。
・ シングルブロック転送の動作検証を行う事ができます。（MMC/SPI モード）・ ストリーム転送、複数ブロック転送の動作検証を行う事ができます。（MMC モード）・ Keitai-De-Music MMC に対応しています。複数ブロック転送の動作検証を行う事が出来ます。（SPI
モード）
図 3.7 に今回製作したシステムのシステム構成を、また図 3.8 にブロック図を示します。

3-10

3.

応用プロダクト開発のためのトータルシステムサポートࠕࠢ࠮ࠬ⴫␜LED

RS-232Cࠤ࡯ࡉ࡞ࠪ࡝ࠕ࡞ࡐ࡯࠻

ࠞ࡯࠼ࠬࡠ࠶࠻1ࠞ࡯࠼ࠬࡠ࠶࠻2㔚Ḯࠬࠗ࠶࠴

ࠞ࡯࠼ࠬࡠ࠶࠻3

ࡎࠬ࠻PCࡕ࡯࠼⴫␜LED㔚Ḯࠕ࠳ࡊ࠲

RESET
㔚ḮLED

MODE-SEL

࠺ࠖ࠶ࡊࠬࠗ࠶࠴

MultiMediaCardTM Reference Platform

図 3.7 システム構成

F-ZTAT I/F

RS232CI/F

H8S/2633

RS232C
I/F

RS232C 2ch

20MHz

IIC I/F

SRAM 128kB

STATUS
LED

Slot1

MMCࠦࡦ࠻ࡠ࡯࡜㧔FPGA㧕
࠺ࠖ࠶ࡊSW

Slot2

࡟ࡌ࡞ࠪࡈ࠲

࡝࠮࠶࠻SW

ࡕ࡯࠼SW

20MHz

Slot3

5.0Vേ૞

3.3Vേ૞

図 3.8 開発プラットホームブロック図

3-11

3.

応用プロダクト開発のためのトータルシステムサポート

3.3.1

マイコンの選定

民生機器、ローエンド対象で、FLASH メモリを内蔵、外部に 128kB 以上のメモリ空間を持ち、パソコンとのシリアルインタフェースを 2 チャンネル以上持ち、かつ 20MHz 以上の動作が可能なマイコンとして H8S/2633 を選定しました。
CPU クロックとしては MMC バスインタフェースクロックが最大 20MHz であることから 20MHz に設定してい
ます。

3.3.2

制御アダプタ回路

既にのべた SPI アダプタ、MMC アダプタのどちらかの回路が、ボードに実装されたスイッチにより、パワー
オン時に自動的に FPGA にコンフィギュレーションされるようなしくみとしました。また、このスイッチの値は
H8S マイコンにより読み出し可能で、プラットホームに組み込まれたモニタソフトにより、どちらのアダプタが実装されているのか自動認識できるようになっています。
アダプタと H8S マイコンのインタフェースには 8 ビットの標準インタフェースを採用し、データ（8 ビット）、
アドレス（5 ビット）、RD、WR、CS、IRQ それと CLOCK の信号線を使用しました。アダプタは H8S マイコンからは約 30 バイトのレジスタ群に見えます。

3.3.3

MMC バスインタフェース

制御アダプタはマイコンとのインタフェースとカードとのインタフェースを持ちます。MultiMediaCard
System Specification は、単一 MMC バスに対し 30 枚までのカードスタックを規定していますが、今回開発したプラットホームはカード 3 枚分のカードスロットを用意しました。1 つの制御アダプタで複数のカードスロットに対応する場合、SPI アダプタでは CS ラインを CS0、CS1、CS2...と増やして対応します。また MMC アダプタの場合には信号の追加はなく、カード側で複数枚の自動管理がなされます。複数枚のメモリカードがシステムに存在する場合の動作検証や評価を容易にするため、3 枚のカードスロットとしています。

3.3.4

モニタモードマルチメディアカード開発プラットホームは、パソコンをターミナルとしてシリアルケーブルで接続して使用します。
プラットホーム上の FLASH メモリにモニタプログラム、ドライバソフトが書き込まれており、以下の機能がサポートされています。表 3.1 にモニタコマンド一覧を示します。
（a） MMC カードレジスタ情報（CID および CSD）の表示ができます。
（b） MMC カードの指定アドレス（セクタ番号で指定）を編集バッファへ読み込み、編集、および書き込みができます。
（c） MMC カードのファイル一覧表示、ファイルコピー、ファイル内容表示などファイル操作が行えます。
（d） ホストシステムと H8S プラットホーム上の MMC カード間でファイル転送を行うことができます。
（e） MMC カードアクセスは、MMC プロトコルおよび SPI プロトコルをサポートしています。

3-12

3.

応用プロダクト開発のためのトータルシステムサポート

表 3.1 モニタコマンド一覧
機能
CID、CSD 表示

コマンド
CID
CSD

MMC 指定アドレス

R

読み込み／書き込みW

バッファ編集

フォーマットディレクトリ操作

ファイル操作

処理内容

CSD レジスタ情報表示
MMC カードの指定セクタのデータを編集バッファに読み

1 セクタ単位込む。

（512 バイト固定）

MMC カードの指定セクタに編集バッファのデータを書き

1 セクタ単位込む。

（512 バイト固定）D

編集バッファ内容表示M

編集バッファ内容変更

F

編集バッファへデータの埋め込み

FORMAT

備考

CID レジスタ情報表示

MMC カードのフォーマット

DIR

ファイル一覧表示MD

ディレクトリ作成

RD

ディレクトリ削除

COPY

ファイルコピーDISKCOPY

ディスクコピー

DUMP

ファイルダンプ

ホストシステム間

PUT

MMC カードからホスト PC へ 1 ファイル転送

ファイル転送GET

ホスト PC から MMC カードへ 1 ファイル転送3-13

応用プロダクト開発のためのトータルシステムサポート

3.

3.3.5

デバッグモード

デバッグモードでは、MMC の全コマンドを使用してカード及びシステムの動作検証を行う事が出来ます。デバッグモードで使用できるコマンドと、対応する MMC/SPI プロトコルのコマンド番号を表 3.2 に示します。
表 3.2 デバッグコマンド一覧
MMC モードCMD

SEND_WRITE_PROT（30）(‘read data’ operation）

SPI モードSEND_CSD（9）SEND_CID（10）SEND_WRITE_PROT（30）(‘read data’ operation）

PROGRAM_CID（26）

PROGRAM_CSD（27）

PROGRAM_CSD（27）(‘write data’ operation）(‘write data’ operation）

CSEL

上記以外の CMD0〜63（’reserved’含む）

上記以外の CMD0〜63（’reserved’含む）(’no data’ operation）*1(’no data’ operation）*1

SELECT/DESELECT_CARD（7）RS

SELECT/DESELECT_CARD（7）READ_DAT_UNTIL_STOP（11）STOP_TRANSMISSION（12）WS

SELECT/DESELECT_CARD（7）WRITE_DAT_UNTIL_STOP（20）STOP_TRANSMISSION（12）RB

SELECT/DESELECT_CARD（7）SET_BLOCKLEN（16）SET_BLOCKLEN（16）READ_SINGLE_BLOCK（17）READ_SINGLE_BLOCK（17）SELECT/DESELECT_CARD（7）WB

SET_BLOCKLEN（16）SET_BLOCKLEN（16）APP_CMD（55）*2

READ_MULTIPLE_BLOCK（18）SET_BLOCK_COUNT（30）*2

STOP_TRANSMISSION（12）READ_SINGLE_BLOCK（17）（Keitai-de-Music-MMC 時*2 のみ）

SELECT/DESELECT_CARD（7）SET_BLOCKLEN（16）SET_BLOCKLEN（16）WRITE_SINGLE_BLOCK（24）WRITE_SINGLE_BLOCK（24）SELECT/DESELECT_CARD（7）

【注】

*1

SET_BLOCKLEN（16）SET_BLOCKLEN（16）APP_CMD（55）*2

WRITE_MULTIPLE_BLOCK（25）SET_BLOCK_COUNT（30）*2

STOP_TRANSMISSION（12）WRITE_SINGLE_BLOCK（24）（Keitai-de-Music-MMC 時*2 のみ）

reserved, reserved for manufacturer コマンドなどは無条件に’no data’ operation として扱うため、カードによっては応答待ちのまま復帰しない場合があります。その場合は、CTRL+C で処理を強制中断した後、システムおよびカードをリセットしてください。

*2

Keitai-de-Music-MMC は、MultiMediaCard Reference Platform AP-002-PF01 で新たにサポートされた機能で
す。

3-14

3.

3.4

応用プロダクト開発のためのトータルシステムサポート

搭載機器のためのソフトウェア

MMC に書き込まれたデータを、パソコンなどでファイルとして認識するためには、組み込みシステム側に PC
互換ファイルシステムとドライバソフトウェアを実装する必要があります。 ここでは、組み込み用 PC 互換ファ
イルシステムとして市販されている「USFiles」用に作成したドライバソフトウェアを例にして、MMC を搭載した組込み機器を開発する上で必要なソフトウェアについて説明します。
組み込みシステムにおいて、MMC に対して「MMC へのデータ書き込み」「MMC からのデータ読み込み」等の要求を実現するためのソフトウェアは、MMC へ「コマンド」と呼ばれる命令を送り、MMC から「レスポンス」と呼ばれる応答をソフトウェアが受けるといった形を基本として、MMC とのアクセスを行う「ドライバ」と呼ばれるソフトウェアが必要です。 ドライバの主な処理としては、「MMC の初期化、データリード、データ
ライト、領域のイレース、MMC の状態チェック」になります。

3.4.1

ソフトウェア構成

図 3.9 に、組み込みシステムにおけるソフトウェア構成の例を示します。

ࠕࡊ࡝ࠤ࡯࡚ࠪࡦࡊࡠࠣ࡜ࡓ

FATࡈࠔࠗ࡞ࠪࠬ࠹ࡓ
㧔USFiles㧕਄૏ጀࡈࠔࠗ࡞ࠪࠬ࠹ࡓߣߩI/Fಣℂጀ

MMCࡊࡠ࠻ࠦ࡞ಣℂጀਅ૏ጀ࠼࡜ࠗࡃ࠰ࡈ࠻

MMCߣߩI/Oಣℂጀ

MMC
㧔ࠞ࡯࠼㧕

図 3.9 MMC 制御ソフトウェアの構成

図 3.9 のファイルシステムとドライバとの I/F 処理層から MMC との I/O 処理層までがドライバソフトウェアに相当します。MMC には、SPI モードおよび MMC モードの 2 つのモードが存在しますが、ソフトウェアから見ると次のような違いがあります。

3-15

3.

応用プロダクト開発のためのトータルシステムサポート

1）MMC モード
・ Identification のシーケンスがあり、MMC にアドレスが割り当てられます（詳細は後述）。
・ 複数の MMC すべてに対し、同時に命令を出せる Bload Cast Command（ブロードキャストコマンド）があります。
・ 複数枚の MMC の中から特定の MMC を選択する際には、MMC のアドレスを使用してセレクトとディセ
レクトの処理が必要です。（カードセレクトコマンドを使用）
・ SPI モードよりレスポンスの種類が多い。
2）SPI モード
・ Identification のシーケンスが単純。
・ MMC を複数枚使用する際に、特定の MMC を選択するための Chip Select 信号（以下 CS）があります。
・ MMC からの応答（レスポンス）の種類が、MMC モードより少なくシンプル。

この MMC、SPI モードのプロトコルに従って処理するソフトウェアがプロトコル処理層になります。プロト
コル処理層で、MMC の初期化、リード、ライト、イレース等の処理を行います。
また、ハードウェアとドライバソフトウェアの機能のトレードオフにより、ハードウェアで MMC バスプロト
コルを処理するアダプタ制御方式と、ソフトウェアで処理するポート制御方式の 2 つの制御方法があります。 これらの対応については、I/O 処理層で行います。
（1） ポート制御方式
コマンドの生成からMMCとのポート入出力処理まで、全てソフトウェアで制御する方式です。具体的には、クロックの送出、クロックに同期させてデータ送信と受信、バス上でのエラーの有無を検出する
ために、CRCを送信データに付加したり、受信したデータのCRCをチェックする等の全ての処理を、ソ
フトウェアで制御します。

3-16

3.

3.4.2

応用プロダクト開発のためのトータルシステムサポート

ファイルシステムとの切り口

ファイルシステムとドライバソフトウェアとの切り口は表 3.3 に示す 8 つの関数になっています。 これらの関数をドライバ側に用意することにより、記録メディア（MMC、CF カード等）を意識することなくアクセスができます。
表 3.3 ファイルシステムとドライバの切り口
init( )

デバイスを初期化する

format( )セクタを物理フォーマットする

raw_read( )セクタをリードする（シリンダ、ヘッド、セクタ指定）

raw_write( )セクタをライトする（シリンダ、ヘッド、セクタ指定）

read( )

セクタをリードする（論理セクタ番号指定）

write( )セクタをライトする（論理セクタ番号指定）

timestamp( )時間と日付けを返す

diskchange( )ディスクがチェンジされたことを返す

3.4.3

MMC の活線挿抜対応

MMC は活線挿抜をサポートしています。ファイルオープンを例に、この活線挿抜の対応プロセスを説明します。（図 3.10）
アプリケーションプログラムからファイルシステムにファイルオープンの要求があると、ファイルシステムは
まずメディアが交換されたかどうかを確認します。これはドライバソフト側の mmc_diskchange( )を呼ぶことで行われます。メディア交換が検出されなければファイルオープン処理に移ります。一方メディア交換が検出された
場合は、ドライバソフト側の mmc_init( )により MMC の初期化を行います。初期化が正常完了すればファイルオ
ープン処理に移ります。
USFiles 用に作成した MMC ドライバの diskchange( )関数のプログラム例を図 3.11 に示します。

3-17

3.

応用プロダクト開発のためのトータルシステムサポートࠕࡊ࡝ࠤ࡯࡚ࠪࡦ
ࡊࡠࠣ࡜ࡓࡈࠔࠗ࡞ࠪࠬ࠹ࡓ

ࡈࠔࠗ࡞ࠝ࡯ࡊࡦ

ࠞ࡯࠼ࠬ࠹࡯࠲ࠬࠍCMD13ߦࠃࠅ⏕⹺‫ޕ‬ࠞ࡯࠼߆ࠄߩ࡟ࠬࡐࡦࠬߩ᦭ή‫⇣ޔ‬Ᏹࠍ࠴ࠚ࠶ࠢߒߡᝌᛮ⏕⹺ߔࠆ‫ޕ‬ࡔ࠺ࠖࠕ⏕⹺
mmc_diskchange( )diskchangeᬌ಴

NO

YESࡔ࠺ࠖࠕೋᦼൻ
mmc_init( )ೋᦼൻቢੌࠝ࡯ࡊࡦಣℂNO

YESࠝ࡯ࡊࡦಣℂࡔ࠺ࠖࠕߥߒ

図 3.10 ファイルオープンの場合の処理

int mmc_diskchange( DEVICE *devp ){byte ‫ޓ‬card_no;uint32 ret;
card_no = 0;
ret = 0;/*----------------------------------------------------*//* ࠞ࡯࠼⇟ภߩขᓧ*//*----------------------------------------------------*/
card_no = (devp->unit_no & ~UNIT_NO);/*----------------------------------------------------*//* ࠞ࡯࠼⁁ᘒߩ⏕⹺*//*----------------------------------------------------*/
if ( ret = MMC_Send_Status( card_no, &Card_Info ) ){return( 1 );/* ࡔ࠺ࠖࠕ࠴ࠚࡦࠫ᦭ࠅ */}else{
return( 0 );/* ࡔ࠺ࠖࠕ࠴ࠚࡦࠫήߒ */}}

図 3.11 活線挿抜対応のコード例

3-18

3.

3.4.4

応用プロダクト開発のためのトータルシステムサポート

MMC の初期化について

MMC へのデータリード／ライトなどを行うためには、まず MMC を初期化しなくてはなりません。初期化処
理は、 MMC モード 、 SPI モード でそれぞれ異なり、各モードに合わせた処理をする必要があります。MMC
モードはオープンドレイン方式の制御方法です。 ここではオープンドレイン方式の MMC モードの初期化処理について詳しく述べます。
初期化のために、表 3.4 に示すコマンドが用意されています。
表 3.4 初期化のためのコマンド
COMMANDRESPONSE

CMD0−

GO_IDLE_STATEABBREVATION

全カードをリセットしアイドルステートにする。

DESCRIPTION

CMD1

R3

SEND_OP_COND

全カードにオペレーションコンディションを訊ねる。

CMD2

R2

ALL_SEND_CID

全カードに CID を訊ねる。

CMD3

R1

SET_RELATIVE_ADDR

RCA を割り当てる。

（1） CMD0 を発行
ホストが MMC を初期化する際に最初に行うことは、CMD0 を MMC に発行することです。CMD0 を発行することで MMC はアイドリング状態になります。通常、MMC はホストからの「コマンド」に対して、MMC からの応答である「レスポンス」を返しますが、コマンドの幾つかは、レスポンスを返さないものがあります。CMD0もその一つなので、MMC がアイドリング状態になったか否かのレスポンスは返してきません。従って、ホストは十分と思われる任意回数だけ CMD0 を発行する必要があります。

（2） CMD1 を発行
MMC がアイドリング状態になったら、次に CMD1 を発行します。CMD1 では、MMC へ供給する電源の「電圧値」を設定できるようになっています。 CMD1 を発行したときに、MMC が設定した電圧値に対応していれば、MMC はレスポンスとして MMC 自身が対応している電圧の範囲を返してきます。 ここで対応電圧から外れた
MMC はインアクティブステートになります。

（3） CMD2 を発行
CMD1 を発行してレスポンスが得られた MMC が存在していたら、ホストは続いて CMD2 を発行します。CMD2を発行することで、MMC はレスポンスとして CID（Card Identification Register）データを返してきます。
バス上に複数枚の MMC があるときは、ホストからの CMD2 を受け取ると、全ての MMC がレスポンスを返そうとします。このとき最初にバス権を獲得した MMC のレスポンスをホストは受け取ることができます。

（4） CMD3 を発行
この「バス権を獲得した MMC」に対して、ホストは CMD3 を発行する必要があります。CMD3 では、MMCに割り付ける番号である RCA（Relative Card Address）を設定できるようになっています。この RCA は、1〜65535
までの番号が設定できるようになっており、今後 MMC へのアクセスは、この RCA によって複数の中からホストがアクセスしたい MMC を選択できることになります。

3-19

3.

応用プロダクト開発のためのトータルシステムサポート

MMC が複数枚バス上にあるとき、ホストは 1 回目の CMD2 発行によってバス権を獲得できなかった MMC のために、バス上にある MMC の枚数分だけ CMD2 を発行する必要があります。
CMD3 が正常に終了すると、MMC はデータトランスファモードになります（それまではカードアイデンティ
フィケーションモード）。データトランスファモードになった MMC は、CMD2 を受け取ってもレスポンスを返しません。
このことによって、複数枚の MMC がバス上にあっても、重複して RCA を設定してしまうことなく、全てのMMC に対してデータトランスファモードへ移行させることが可能になります。
以上の初期化のようすを図 3.12 に示します。
図 3.13 に、USFiles 用に作成した MMC ドライバの初期化関数 mmc_init( )のプログラム例を示します。

IDLE STATE

CMD0

INACTIVE
STATE

CMD1
ࡆࠫ࡯߹ߚߪ㔚࿶㕖ኻᔕ㔚࿶㕖ኻᔕࠞ࡯࠼
READY STATE

CMD2
ࡃࠬᧂ₪ᓧ

ࡃࠬ₪ᓧ
IDENTIFICATION
STATE

CMD3
Identification Mode

Data Transfer Mode
STAND-BY
STATE

図 3.12 初期化中の MMC の状態

3-20

3.

応用プロダクト開発のためのトータルシステムサポート

int mmc_init( DEVICE *devp ){uint32 ret;/* ೋᦼൻਛࠛ࡜࡯ߩ᦭ή */ret = 0;/*-----------------------------------------------------------*//* ࠞ࡯࠼ߩೋᦼൻ㧔SPIࡕ࡯࠼ᤨߪCMD0‫ޔ‬CMD1߹ߢߩಣℂ*//*
MMCࡕ࡯࠼ᤨߪCMD0㨪CMD3߹ߢߩಣℂ㧕
*//*-----------------------------------------------------------*/
if ( ret = MMC_InitCard( &Card_Info ) ){return( 1 );}/*-----------------------------------------------------------*//* CSD࡮CIDߩขᓧ*//*-----------------------------------------------------------*/
if ( ret = MMC_GetInfo( &Card_Info ) ){return( 1 );}/*-----------------------------------------------------------*//* 1ࡉࡠ࠶ࠢᒰߚࠅߩࡃࠗ࠻ᢙࠍ⸳ቯ
*//*-----------------------------------------------------------*/
if ( ret = MMC_SetSectLen( &Card_Info ) ){return( 1 );}return( 0 );}

図 3.13 初期化のコード例

3.5

マルチメディアカードプロトコルアナライザ

マルチメデイアカードは外部インタフェースピンが 7 本で、このうち 3 本のシリアル線（CLK、CMD、DAT）
を使い機器とデータ転送されます。ハードウェアインタフェースがシンプルである代わりに、カードと機器のデータ転送はコマンド、レスポンスと呼ばれるプロトコルが定められています。コマンドの種類は 64 種あります。
カードを使用したシステムを開発する場合、このプロトコルの解析が容易に出来ればシステム開発期間を短縮できます。この観点から MMC プロトコルアナライザを開発し製品化しました。（以下プロトコルアナライザまたはアナライザと略します）

写真 3.1 および表 3.5 にプロトコルアナライザの外観図と物理仕様を示します。本プロトコルアナライザシス
テムはアナライザ本体部と、ホストパソコン上で動作し GUI でアナライザの操作を行うためのソフトウェアから構成されています。図 3.14 にプロトコルアナライザのシステム構成を示します。
プロトコルアナライザには、以下に記述する MMC システム開発に役立つ様々な機能がありますが、これらの機能はすべて GUI により操作できます。

3-21

3.

応用プロダクト開発のためのトータルシステムサポート

写真 3.1 プロトコルアナライザ

表 3.5 アナライザ物理仕様
本体外形

235（W）×170（L）×50（D）mm

重量1.45kg

電源

AC90〜240V

付属品

AC コード
RS232C ケーブル（2m、DSUB 9pin タイプ）
パラレルケーブル（2m、DSUB 25pin タイプ）
アナライザプローブ（50cm、同軸ケーブル）
擬似カードケーブル（50cm、同軸ケーブル）
システムソフト（3.5"FD

2 枚）

オペレーションマニュアル（日本文、英文3-22

各 1 冊）

3.

応用プロダクト開発のためのトータルシステムサポートࡊࡠ࠻ࠦ࡞ࠕ࠽࡜ࠗࠩ

೙ᓮPC

ᝌ౉

ᝌ౉
ࡊࡠ࡯ࡉ

ⵍ᷹ቯࡎࠬ࠻

ⵍ᷹ቯࠞ࡯࠼

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼ࡊࡠ࠻ࠦ࡞

図 3.14 プロトコルアナライザシステム構成

表 3.6 にプロトコルアナライザの機能仕様一覧を示します。

3-23

3.

応用プロダクト開発のためのトータルシステムサポート

表 3.6 機能仕様一覧
項番
1

項目
トレース機能仕様
1. MMC バス状態をトレース（CMD、DAT、CLK、VDD 電圧、VDD 電流、Time Stamp 情報）
2. 4 種のトレースモードをサポート（1 OF 4 SELECTION）
a. フリートレースモード
b. トレース開始条件指定モード
c. トレース停止条件指定モード
d. トレースモニタモード
3. コマンド、レスポンスのみのトレースモード（MMC モードのみ）
4. トレース容量は 64K サイクル
（オーバライト、バッファストップ機能あり）
5. タイムスタンプ（実時間）表示
a. 分解能は 50ns 単位
b. MMC バス上の CLK、COMMAND、RESPONSE、DATA 間隔を実時間 or クロック数
で表示
6. MMC バスアイドル時のトレース一時停止機能2

イベント検出1. コマンドパターンまたはレスポンス 1、2、3 パターンまたはデータパターンでトレース
トリガ（開始 or 停止条件）指定可能
2. GUI ボタンによる強制トレース開始、終了
3. イベント検出の回数指定

3

動作状態モニタ

1. MMC バス上の CLK 状態、VDD 電圧値、VDD 電流値はトレースオン／オフに関わらず

4

疑似モード

1. 通常モード、疑似ホストモード、疑似 MMC モードをサポート（1 of 3 selection）

常時 GUI 画面に表示

a. 通常モードは MMC アダプタ〜MMC 間にアナライザプローブを挿入して使用。
b. 疑似ホスト（PseudoHOST）は本体 MMC コネクタに MMC を挿入して使用。
プロトコルアナライザからコマンド、ライトデータ送出可能。
c. 疑似 MMC（PseudoMMC）は疑似 MMC ケーブルを介して HOST と接続して使用。
プロトコルアナライザからレスポンス、ライトデータ返信可能。
2. 疑似モード中もトレース有効（簡単なプロトコルチェック、タイミングチェックが可能）
3. 疑似ホスト（PseudoHOST）モード時 VDD オン、オフ、各種クロック選択が可能
5HOST

1. RS232C 歩調同期シリアルまたは双方向パラレルにて接続

インタフェース

2. RS232C シリアル−9600bps〜38400bps
3. 双方向パラレル−150K バイト／sec

6

LED 表示1. Power On、Trece On、MMC-VDD、CMD、DAT 状態の表示

7

スイッチ

1. Power ON/OFF スイッチ（背面）2. リセットスイッチ（前面）
3. Dip Switch（前面）8DIAG 機能

9

SPI モード

1. Dip Switch の状態により、パワーオン時の詳細 Diagnastic Test の実行有無を指定可能
サポート項番 1、2、3、5、6、7、8 の機能は SPI 時も有効
（ただし SPI モードで使うか、MMC アタプタモードで使うかは二者択一）

10

トリガアウト出力

指定したトレーストリガのイベント検出時にアナライザプローブ上の TRG 端子によりトリガ信号を出力3-24

3.

応用プロダクト開発のためのトータルシステムサポート（1） トレース機能
マルチメデイアカードとシステム間の信号状態をトレース取得し、ホストパソコン上にコマンド、レス
ポンス、データなどを分かり易く表示可能です。（電圧値、電流値も表示します。）（2） イベント検出機能
コマンド、レスポンス、データパターン等様々なトリガ条件を指定し、トレースを開始させたり、トレースを停止させることができます。
（3） 疑似モード
アナライザが疑似的にホスト動作し、カードサイドのインタフェースのデバッグが可能な疑似ホストモ
ードと、アナライザが疑似的にカード動作しホストサイドのインタフェースのデバッグが可能な疑似カ
ードモードを備えています。
この機能によりホストシステムまたはカードがなくても MMC システムの開発が進められます。
（4） 性能測定
トレース機能で取得するデータには、MMC 信号の他に MMC バスの使用時間データも取得します。このデータから MMC とホスト間のデータ転送性能も表示することができます。
（5） バス状態表示
MMC バスの電源状態、クロック状態を常に表示します。
（6） 状態の保存と回復
エミュレーション状態（設定条件、トレース情報）をディスクに保存し回復することができます。
（7） ハードコピー
画面に表示された内容をプリンタへハードコピーできます。
図 3.15 にトレース取得モードの概要を示します。

3-25

3.

応用プロダクト開発のためのトータルシステムサポート㧨ࡊࡠ࠻ࠦ࡞㧪

㧨࠺࡯࠲㧪

㧨ࡕ࡯࠼㧪

MMC

ో࠺࡯࠲

ࡈ࡝࡯࠻࡟࡯ࠬ

㧨᧦ઙ㧪࠻࡟࡯ࠬ஗ᱛ1㐿ᆎ᧦ઙ㧦ࠦࡑࡦ࠼‫ࠟ࡝࠻ޔ࠲ࡦ࠙ࠞޔ࠲࡯࠺ޔࠬࡦࡐࠬ࡟ޔ‬૏⟎࠻࡟࡯ࠬ஗ᱛ2஗ᱛ᧦ઙ㧦ࠦࡑࡦ࠼‫࠲ࡦ࠙ࠞޔ࠲࡯࠺ޔࠬࡦࡐࠬ࡟ޔ‬࠻࡟࡯ࠬࡕ࠾࠲

ࠦࡑࡦ࠼㧛࡟ࠬࡐࡦࠬ

ࡈ࡝࡯࠻࡟࡯ࠬ
࠻࡟࡯ࠬ஗ᱛ1㐿ᆎ᧦ઙ㧦ࠦࡑࡦ࠼‫ࠟ࡝࠻ޔ࠲ࡦ࠙ࠞޔ࠲࡯࠺ޔࠬࡦࡐࠬ࡟ޔ‬૏⟎࠻࡟࡯ࠬ஗ᱛ2஗ᱛ᧦ઙ㧦ࠦࡑࡦ࠼‫࠲ࡦ࠙ࠞޔ࠲࡯࠺ޔࠬࡦࡐࠬ࡟ޔ‬࠻࡟࡯ࠬࡕ࠾࠲

ࠞ࠶࠻࠳࠙ࡦ⴫␜

ࡈ࡝࡯࠻࡟࡯ࠬ
࠻࡟࡯ࠬ஗ᱛ1㐿ᆎ᧦ઙ㧦ࠦࡑࡦ࠼‫ࠟ࡝࠻ޔ࠲ࡦ࠙ࠞޔ࠲࡯࠺ޔࠬࡦࡐࠬ࡟ޔ‬૏⟎࠻࡟࡯ࠬ஗ᱛ2஗ᱛ᧦ઙ㧦ࠦࡑࡦ࠼‫࠲ࡦ࠙ࠞޔ࠲࡯࠺ޔࠬࡦࡐࠬ࡟ޔ‬࠻࡟࡯ࠬࡕ࠾࠲

SPIో࠺࡯࠲ࡈ࡝࡯࠻࡟࡯ࠬ
࠻࡟࡯ࠬ஗ᱛ1㐿ᆎ᧦ઙ㧦ࠦࡑࡦ࠼‫ࠟ࡝࠻ޔ࠲ࡦ࠙ࠞޔ‬૏⟎࠻࡟࡯ࠬ஗ᱛ2஗ᱛ᧦ઙ㧦ࠦࡑࡦ࠼‫࠲ࡦ࠙ࠞޔ‬࠻࡟࡯ࠬࡕ࠾࠲

ࠞ࠶࠻࠳࠙ࡦ⴫␜

ࡈ࡝࡯࠻࡟࡯ࠬ
࠻࡟࡯ࠬ஗ᱛ1㐿ᆎ᧦ઙ㧦ࠦࡑࡦ࠼‫ࠟ࡝࠻ޔ࠲ࡦ࠙ࠞޔ‬૏⟎࠻࡟࡯ࠬ஗ᱛ2஗ᱛ᧦ઙ㧦ࠦࡑࡦ࠼‫࠲ࡦ࠙ࠞޔ‬࠻࡟࡯ࠬࡕ࠾࠲

S-MMC

ో࠺࡯࠲

ࡈ࡝࡯࠻࡟࡯ࠬ
࠻࡟࡯ࠬ஗ᱛ1㐿ᆎ᧦ઙ㧦ࠦࡑࡦ࠼‫ࠟ࡝࠻ޔ࠲ࡦ࠙ࠞޔ‬૏⟎࠻࡟࡯ࠬ஗ᱛ2஗ᱛ᧦ઙ㧦ࠦࡑࡦ࠼‫࠲ࡦ࠙ࠞޔ‬࠻࡟࡯ࠬࡕ࠾࠲

ࠞ࠶࠻࠳࠙ࡦ⴫␜

ࡈ࡝࡯࠻࡟࡯ࠬ
࠻࡟࡯ࠬ஗ᱛ1㐿ᆎ᧦ઙ㧦ࠦࡑࡦ࠼‫ࠟ࡝࠻ޔ࠲ࡦ࠙ࠞޔ‬૏⟎࠻࡟࡯ࠬ஗ᱛ2஗ᱛ᧦ઙ㧦ࠦࡑࡦ࠼‫࠲ࡦ࠙ࠞޔ‬࠻࡟࡯ࠬࡕ࠾࠲

図 3.15 トレース取得モードの概要（1） ＜プロトコル＞
プロトコルアナライザのトレース解析に使用するプロトコルを MMC、SPI、及び SMMC の 3 種類から選択できます。SMMC モードは SPI モードをベースにセキュア用拡張コマンドをサポートしたモードで
す。

3-26

3.

応用プロダクト開発のためのトータルシステムサポート（2） ＜データ＞
プロトコルアナライザは、すべてのトレース情報を取得する全データトレース機能と、コマンド及びレ
スポンスがあるときのみトレース取得するコマンド/レスポンストレース機能があります。また、この他に、コマンド/レスポンス/データ以外のサイクルを除外した形でトレース情報を画面表示する「Cut Down
Display」指定が可能です。さらにこの指定がされたいるときモードごとにデータ部の解析サイズを下記のように設定可能です。
MMC モード：

1〜2048 バイト

SPI モード：

2〜512 バイト

S-MMC モード： 512 バイト（固定）（3） ＜モード＞＜条件＞
モード、条件では、トレースモードとトレース開始、終了条件を指定します。フリートレースモードでは常に最新のバス状態を 64k サイクル分トレースメモリに書き込み、古い情報は書き換えられます。
図 3.16 にトレース表示ウィンドウを示します。
トレース取得後にこれらのトレース表示機能を使用し、コマンド、レスポンス、データ、及びそれぞれの間隔、
クロック単位のビットの変化などをパソコン画面で簡単に見る事が出来ます。また、トレースデータはリスト表
示で画面に出す事も可能です。

図 3.16 トレース表示ウィンドウ

3-27

3.

応用プロダクト開発のためのトータルシステムサポート

図 3.17 に疑似ホストモードウィンドウを示します。

図 3.17 疑似ホストモードウィンドウ

疑似ホストモードコマンドを使用して、MMC カードに対して 1 つのコマンドを発行し、レスポンスを確認することで MMC カードのプロトコルを確認することができます。図 3.17 の例では、プロトコルアナライザがカードに対し VDD をオンにした後、10MHz のクロックを与え、続いて CMD0 を発行しています。これらのシーケ
ンスとカードからのレスポンスがトレース取得されるので解析が容易となります。疑似モードにはここで説明した疑似ホストモードと、アナライザが MMC カードの代わりとなってホストにレスポンスを返す疑似カードモー
ドがあります。

上記のようにプロトコルアナライザを使用することにより、従来ではロジックアナライザやオシロスコープで波形を見ながらデバッグを進めていたやり方が改善され、マルチメディアカードを使用したシステムの開発が効率よく行えるようになります。

3-28

3.

3.6

応用プロダクト開発のためのトータルシステムサポート

応用システム開発事例（ミュージックプレーヤの試作）

小型、軽量、大容量 FLASH というマルチメデイアカードの特徴を生かす代表的応用分野の一つとして携帯型
音楽プレーヤがあります。今回は MMC の性能評価、およびデモを目的とした携帯機器として MP2 プレーヤを試作しました。今後、現在主流である MP3 プレーヤーの開発試作を行う計画です。今回の試作機では、前項で述べた、MMC アダプタ論理 FPGA、MMC ドライバソフト、PC 互換ファイルシステム、MMC プロトコルアナ
ライザを開発ツールとして使用しています。開発中の様子を写真 3.2 に示します。

写真 3.2 MP2 プレーヤ（試作品）

3-29

3.

応用プロダクト開発のためのトータルシステムサポート

図 3.18 に今回開発したプレーヤのハードウェアブロック図を示します。

CPU

SDRAM

FLASH
ROM

ࠪ࡝ࠕ࡞
SW, LED

SPI
ࠦࡀࠢ࠲

PLD

PS
5V, 3.3V, 1.8V

MIC
ࠦࡀࠢ࠲

CODEC

㔚ᵹ⴫␜
ࡉࡠ࠶ࠢ

図 3.18 MP2 プレーヤブロック図

3-30

Phone
ࠦࡀࠢ࠲

3.

3.6.1

応用プロダクト開発のためのトータルシステムサポート

マイコンと MMC 間のアダプタ論理

音楽再生、録音というシステムスピードとしては中クラスの能力をカバーするため SPI インタフェースアダプ
タの論理回路を採用しました。SPI アダプタは 512 バイトの FIFO をはじめ、MMC コマンドレジスタや、レスポ
ンスレジスタを有し、マイコン〜MMC 間のドライバソフトのオーバヘッドを軽減させています。図 3.19 に SPI
アダプタのマイコン CPU から見たメモリマップを示します。
MMC〜アダプタ間は、20M ビット／秒の転送速度を採用しています。

SPI↪࡟ࠫࠬ࠲
D7

D0ࠕ࠼࡟ࠬ㧔B+㧕

CMDR 00

CMDR 1

1

CMDR 2

2

CMDR 3

3

CMDR 4

4
5

CMDR 5
D7

D0‫ ޓ‬RSPS 0

6

RSPS 1

7
8

RSPS 2
D7

D0
9DR㧔FiFo㧕
D7

D6

D5

D4

CSON

TYP1

TYP0

DATAEN

D7

D6

D5

D4

D3

CSTR

BUSY

FiFo
Full

FiFo
EPTY

CWRE

DTBUSYINTCR 0

D7
FEIE

D6
FFIE

D5
DRPIE

D4
DTIE

FEI

FFI

DRPI

DTI

OCR

A
D2

D1

REQ

B

D3
R1IE

D2
CMDIE
CRCIE

D1
FNEIE
DTERIED0INTE
CTERIE

C

R1I

CMDI
CRCI

FNEI
DTERI

INT
CTERI

D2
CSEL2

D1
CSEL1

D0
CSEL0

10

D2
CTSEL2

D1
CTSEL1D0
CTSEL0

11

D2
CRCERR

D1
DTOUT

D0
CTOUT

12

D2
C2

D1
C1

D0
C0

13

D1
TXMD

D0
FiFoCR

14

INTCR 1
INTSTR 0
INTSTR 1
VDDON

D7
VDDON

TOCR

D7
DTSEL3

D6
DTSEL2

D5
DTSEL1D4
DTSEL0D3
CTSEL3ESTR
TBCR
FiFoCR

D3
C3

D0

D
E
F

図 3.19 SPI アダプタメモリマップ

3.6.2

使用マイコン

音声圧縮、伸張処理には、それなりの処理能力のあるマイコンを選択する必要があります。
今回は、日立の SuperH • RISC マイコンの 1 種である、SH7729 を選定しました。
マイコン内部クロック 133MHz、外部バスクロック 33MHz、内蔵ペリフェラルクロック 33MHz で動作させて
います。

3-31

3.

応用プロダクト開発のためのトータルシステムサポート

3.6.3

AUDIO コーデックその他

オーデイオ入出力とマイコンとのインタフェースには AC'97 に準拠した CODEC IC を採用しました。また音声
データバッファメモリとして 8M バイトの SDRAM を用意しました。さらにシステムの消費電流、マイコンの消費電流、または MMC カードの消費電流をモニタして 7SEG−LED に表示させる機能もつけました。この機能は電流センサと H8/337 シングルチップマイコンで実現しています。
（1） ソフトウェア処理フロー
図 3.20 に今回開発したプレーヤのソフトウェア処理フローを示します。

㍳㖸࠺࡯࠲

MP2ࠛࡦࠦ࡯࠳

PC੕឵ࡈࠔࠗ࡞ߩ૞ᚑSPI࠼࡜ࠗࡃ

MMC࠺࡯࠲ߩᩰ⚊SPI࠼࡜ࠗࡃ

PC੕឵ࡈࠔࠗ࡞ߩ૞ᚑ

MP2࠺ࠦ࡯࠳

㖸ჿ಴ജ

図 3.20 録音再生フロー

3-32

3.

応用プロダクト開発のためのトータルシステムサポート●ステレオ再生時（1）ホストパソコンで MP2 のステレオ音声圧縮を行います。
（2）PC ファイルフォーマットでファイルを作成します。
（3）シリアルポートでファイルを PC からプレーヤへロードします。
（4）音楽データを MMC に格納します。
（5）MMC 内格納データを読み出し、ステレオ音声伸張をかけながらイヤホンに音楽を出力します。
●モノラル録音／再生時（1）CODEC IC からマイク音声デーダを取り込みます。
（2）MP2 エンコーダ処理によりデータ圧縮をかけます。
（3）PC 互換ファイルを作成し、SPI ドライバで MMC へ書き込みます。（録音時）（4）MMC 内のファイルを SPI ドライバにて読み出します。（再生時）（5）MP2 デコード処理しながら、イヤホンに音声を再生出力します。
（2） 性能評価
今回製作した MP2 プレーヤでは、16M バイト MMC カード 1 枚を媒体とした場合ステレオ音楽で 17 分、モノ
ラル音声で 70 分のデータを格納することができました。

3-33

3.

応用プロダクト開発のためのトータルシステムサポート

3-34

4.

マルチメディアカードシステム設計時の注意事項

4.1

始めに

MMC は、フラッシュカードとしては非常にコンパクトなサイズとなっています。既存のメジャーなフラッシ
ュカード、例えば PC カード、CompactFlash*等が、どちらかといえば PC 寄りのコンセプトであったとすれば、明らかに民生用途を主眼においたカードと言えます。それは、
1)わずか７ピンのシンプルなインタフェース
2)超小型かつ軽量な筐体
3)活線挿抜を考慮したアーキテクチャ等の特徴が示しています。
このように優れた設計思想の元に開発されたカードですが、新しい規格でもあり、まだまだ使用するための情報・ノウハウが一般的に入手しづらく、多くの設計者の方々が利用できる環境にはなっていません。また、MMCの規格仕様書自体が、原則的には、MMCA（MultiMediaCard Association）に参加する企業にのみ開示されている関係から、更に情報を入手することが難しい状態となっています。詳細な規格内容の入手は、MMCA への参加が必要ですが、その規格書の要約版については、MMCA のホームページに記載されており、どなたでもフリーでダウンロードすることが可能ですので、是非アクセスして見てください。
MMCAのホームページ：http://www.mmca.org/
仕様書：http://www.mmca.org/specific.htm
本項は、既に規格書を入手し設計に着手されている方、または MMC の使用を検討中でどのようなものか知りたいとお考えの方が設計される際の手引書として、参考になるようまとめてあります。
【注】* CompactFlash は、米国サンディスク社の登録商標であり、CFA（CompactFlash Association）へライセンスされてい
ます。

4.2

動作モードについて

MMC は、下記の 2 つの動作モードを有しています。
一般的に、ホスト機器は、いずれかのモードをサポートすることになります。
（1） MMC（MultiMediaCard）モード
Primary モード：MMC は必ずサポートしています。
（2） SPI（Serial Peripheral Interface）モード
Optional モード：規格上は、オプションとなるモードです。
MMC において、電源投入直後は、MMC モードとなります。SPI モードは、CMD0 発行時に CS ピンをアサートすることで MMC モードから SPI モードへ遷移します。モードの切替は電源立ち上げ直後に行われる初期化作

4-1

マルチメディアカードシステム設計時の注意事項

4.

業時にのみ有効で、一度 MMC モードで動作を始めると、電源を再投入しない限りは SPI モードに切り替えることができません。SPI モードで動作している場合にも同じことが言えます。
各々のモードには、表 4.1 のような特徴がありますので、ご検討のシステム構成に最適なモードを採用することが必要です。
表 4.1 各モードの特徴

バス方式

MMC（MultiMediaCard）モード

SPI（Serial Peripheral Interface）モード

全 2 重 3 線式シリアルバス（CLK,CMD,DAT

全 2 重 3 線式シリアルバス（CLK,DI,DO & CS）

ピン）
動作周波数

可変 0〜20MHz

可変

0〜20MHz（尚、MMC 規格 Ver1.4 では、0〜5MHz）
カード選択方式

カード最大接続数

転送コマンド

4.3
4.3.1

コマンドによるカード選択

CS ピンによるカード選択

理論上、64K 枚までのカードを管理可能

理論上の制限無し

30 枚（ただし、10MHz）

30 枚（ただし、10MHz）

20MHz 時は、5 枚まで。

20MHz 時は、5 枚まで。

シングルセクタ・シングルブロック単位転送

シングルセクタ・シングルブロック単位転送

マルチプルセクタ・ブロック単位転送

マルチプルセクタ・ブロック単位転送

ストリーム転送（尚、MMCA 規格 Ver3.1 以降）

バス設計
バス配線設計MMC は、Open-Drain モード、または Push-Pull モードで MMC バスを駆動します。そのため、必ず各バスの配線上には、プルアップ抵抗が必要になります。抵抗が無かったり、または Pull-Down 抵抗をつけたりすると正常に動作しませんので注意が必要です。図 4.1 に、バス構成を示します。プルアップ抵抗の値は、MMC 規格に定められており、表 4.2 に示す通りです。

4-2

4.

マルチメディアカードシステム設計時の注意事項

1㧕MMCࡕ࡯࠼
VCC

RDAT

RCS

RCMD

MMCⷙᩰࠃࠅ
RDAT㧩50㨪100 [kǡ]RCMD㧩4.7㨪100 [kǡ]RCS㧩30㨪2 [Ǵǡ]

ࡎࠬ࠻
CMD

CMD

DAT

DAT

CLK

CLK
1ࡇࡦ

1 2 3 4 5 6 7

2㧕SPIࡕ࡯࠼
VCC

RCS

RDin

RDout

RDout㧩50㨪100 [kǡ]RDin㧩4.7㨪100 [kǡ]RCS㧩30㨪2 [Ǵǡ]MMCࡕ࡯࠼ᤨߣห᭽ߣߔࠆ‫ޕ‬

ࡎࠬ࠻
Dout

Dout

CLK

CLK

Din

Din

CS

1 2 3 4 5 6 7

図 4.1 バス接続回路

表 4.2 プルアップ抵抗値
Parameter

Symbol

Min

Max.

Unit

Remark

CMD

RCMD

4.7

100

kΩ

bus floating 回避

DAT

RDAT

50

100

kΩ

bus floating 回避

CS

RCS

30

2

μΩ

bus floating 回避

4-3

マルチメディアカードシステム設計時の注意事項

4.

プルアップ抵抗値は、バスの動作周波数、MMC スロット数、カードの負荷容量等の諸条件に応じて規格の範囲内でカスタマイズする必要があります。参考として、MMC バスの条件を示します。
バスの一本当たりの配線容量 CL は、・ CL 250 pF ｛fpp≤ 5 MHz、カード 30 枚接続時｝
・ CL 100 pF ｛fpp≤ 20 MHz、カード 10 枚接続時｝
バスの一本当たりのインダクタンス L は、
16 nH ｛fpp≤ 20 MHz｝を想定しています。
なお、MMC1 枚当たりの負荷容量 C は、7 pF であることが定められています。
安定した動作を得るために、上記の注意事項に留意してください。

4.3.2

電源ノイズ低減

一般的に、ピーク電流の影響を緩和するため、パスコンを使用します。コンデンサは、下図に示すように、バス側に置かれます。パスコン容量は、ホストコントローラの容量を含み（VCC に対して）、Cbuf = 1μF/slot が目安です。
MMC は、Open-Drain、Push-Pull 動作でバスラインが制御されるため、VCC 側へプルアップ抵抗が付いています。そのため、GND の揺れによりも、電源側 VCC の揺れの方に、比較的影響を受けやすいので留意が必要です。

Lmax㧩13mm

single card slot

VSS1
C

MultiMediaCardTM
VCC
VSS2
single card slot

C㧩100nF

図 4.2 パスコン配置

4-4

4.

4.4
4.4.1

マルチメディアカードシステム設計時の注意事項

電源投入時の注意事項とリセット動作
電源投入

図 4.3 に電源投入シーケンスを示します。MMC は、電源電圧検出回路を内部に有しており、一定電圧以下の時は、誤動作を防止するためにパワーオンリセットをかけ、十分な電圧に至ると自動的に内部の初期化を行います。

VCCࠪࠬ࠹ࡓଏ⛎㔚࿶
2.7 Vࡔࡕ࡝ࠦࠕㇱ߇േ૞น⢻ߥᦨૐ㔚࿶

2.0 V

ࡠࠫ࠶ࠢㇱ߇
േ૞น⢻ߥᦨૐ㔚࿶ᤨ㑆Power Upᤨ㑆ೋᦼൻಣℂታⴕ
㔚Ḯ቟ቯᓟߦCMD1⊒ⴕߎߩᤨ㑆ߪ‫ᦨޔ‬ᄢ1ms߽ߒߊߪ74ࠢࡠ࠶ࠢ‫ޕ‬

図 4.3 電源投入シーケンス

ホストは、電源投入後、十分な電圧に到達した時点より、MMC へのクロック送出を始め、CMD ライン上で認識シーケンスの発行を行いますが、その前に、ダミークロックとして、CMD ラインを、最大 1ms、または 74 ク
ロックの間、High レベルに保持することが MMCA のスペックで規定されています。正常に、MMC 内部の自動初期化作業が終了すると、MMC は(ホットインサーション、コールドインサーションに関わらず)、Idle 状態に入り、SEND_OP_COND(CMD1）および CMD0 以外は受け取りません。
なお、MMC へのアクセスは、電源電圧に対して 2 段階構成となっており、レジスタアクセスのみ可能なコミ
ニュケーションモード、フラッシュメモリへのリードライトまで可能になるオペレーションモードに分けられます。この電圧については、個々の製品により異なるので確認してください。

4-5

マルチメディアカードシステム設計時の注意事項

4.

4.4.2

リセット動作

MMC におけるリセットは、規格により定義された通りのシーケンスを行わなければなりません。MMC には、
外部にリセットピンが存在しませんが、そのため、リセットコマンドの発行により行われます。リセットコマン
ドは、GO_IDLE_STATE(CMD0)コマンドにより行うことができます。リセットコマンドを実行すると、現在の状態に関係無く、強制的に、MMC を idle 状態へ移行させます。ただし、Inactive（不活性化）状態にある MMC は、
このリセットコマンドすらも無視します。また、本コマンド：CMD0 を発行すると、カードは、全ての出力端子の状態をハイインピーダンス状態とし、各カードの RCA レジスタ値は、初期値である（0001h）となります。これは、パワーオンすることによっても同様であり、パワーオン後のカードは、常に idle 状態です。この状態で、唯一の受け付ける有効なホストからのコマンドは、CMD1：SEND_OP_COND のみです。しかしながら、SPI モ
ードにおいて、CMD1 は、有効オペランドを持っていません。よって、ホストは、Response に含まれる in-idle-state
ビットが有効な間は、CMD1 を繰り返して送ることによって、カード状態をポーリングし続ける必要があります。
このビットが無効となった時点で、当該カードが、その初期化プロセスを正常終了し、次のコマンド受け付けの準備ができたことを意味します。このように、MMC モード時と SPI モード時で、CMD1 に対する処理が異なるので注意が必要です。

4-6

4.

4.5

マルチメディアカードシステム設計時の注意事項

MMC モードにおけるデータ転送までの初期設定について初期設定とは、ホストが、バス上の全カードの（1）動作条件の取得と指定（2）カード属性情報の取得（3）バス上におけるカードの相対アドレスの指定を行うことを指します。カードの動作電圧条件の取得及び指定は CMD1 を、カード属性情報の取得は CMD2を、カードの相対アドレスの指定は CMD3 を使用します。図 4.4 に初期設定時状態遷移図を、また図 4.5 に初期設定フローを示します。
なお、SPI モードにおける初期設定については、4.6 章で説明します。

Power On

Idle⁁ᘒ
㧔Idle㧕CMD0

CMD1Inactive⁁ᘒ㧔ina㧕

Ready⁁ᘒ
㧔Ready㧕ࡎࠬ࠻߇CMD1⊒ⴕᤨߦᜰቯߒߚ
േ૞㔚࿶▸࿐ᄖߩࠞ࡯࠼

㧔ina㧕ࠍ㒰ߊోߡߩ⁁ᘒ

Card Busy

Card looses
bus
CMD2
Card wins bus
㧔Ready⁁ᘒߦ޽ࠆࠞ࡯࠼ߢ‫߽ᦨޔ‬‫ޓ‬CIDᖱႎߩዊߐ޿ࠞ࡯࠼㧕
Identification⁁ᘒ㧔ident㧕CMD3Stand-by⁁ᘒ㧔stby㧕

ࠞ࡯࠼⹺⼂ࡕ࡯࠼
㧔ࡃࠬࡕ࡯࠼㧦ࠝ࡯ࡊࡦ࠼࡟ࠗࡦ㧕࠺࡯࠲࠻࡜ࡦࠬࡈࠔࡕ࡯࠼
㧔ࡃࠬࡕ࡯࠼㧦ࡊ࠶ࠪࡘࡊ࡞㧕

図 4.4 MMC ステートダイアグラム（カード認識モード）

4-7

4.

マルチメディアカードシステム設計時の注意事項

㔚Ḯᛩ౉߆ࠄ
㔚࿶቟ቯᓙߜ
ೋᦼൻᓙߜ
1ms߹ߚߪ74clk

ߤߩ⁁ᘒ߆ࠄߢ߽
CMD0⊒ⴕ
ߦߡ߽น⢻

㧔1㧕േ૞᧦ઙߩขᓧߣᜰቯ

Idle⁁ᘒ
CMD1⊒ⴕ
ᜰቯേ૞㔚࿶୯
ࡈ࡞࡟ࡦࠫᜰቯ

⋭⇛น౒ㅢേ૞㔚࿶ขᓧ

⋭⇛น

CMD1⊒ⴕ
౒ㅢേ૞㔚࿶‫ߪߚ߹ޔ‬ࡎࠬ࠻േ૞㔚࿶୯ᜰቯ
㧔OCR୯㧕

ㆃᑧࡎࠬ࠻ᜰቯߩ
OCR୯ߣ
ㆡว

No

Inactive⁁ᘒએᓟ‫࠼ࡦࡑࠦޔ‬ฃߌઃߌߖߕ‫ޕ‬Yes
ోߡߩMMCߩBusyࡈ࡜ࠣߩ
Wired-OR಴ജBusy
Response㧔3㧕ࡃࠬ਄ߦ߅ߌࠆࠞ࡯࠼ߩ
‫⋧ ޓޓ‬ኻࠕ࠼࡟ࠬߩᜰቯ

㧔2㧕ࠞ࡯࠼ዻᕈᖱႎߩขᓧ

Ready
Ready⁁ᘒ
CMD2⊒ⴕ
㧔ኻోMMC㧕
MMC߆ࠄCIDㅍ಴ᬌ಴
Yes
Identification⁁ᘒోߡߩMMCߦኻߒߡ
CIDㅍ಴
No
ⶄᢙߩMMC߇‫ޔ‬ࡃࠬ਄ߦሽ࿷ߔࠆ
႐ว‫ޔ‬ᔅߕ1ᨎ߇ᚑഞߔࠆ‫ޕ‬CMD3⊒ⴕ
㧔RCA⸳ቯ㧕
RCA⸳ቯߩ⚳ࠊߞߚ߽ߩ߆ࠄStandby⁁ᘒ߳⒖ⴕߒ‫ޔ‬એ㒠CMD2‫ޔ‬3ߦߪᔕ╵ߒߥ޿‫ޕ‬
ోMMCߩIdentification⚳ੌ
card identification mode
data-transfer modeStandby⁁ᘒ࠺࡯࠲ォㅍน⢻⁁ᘒ

図 4.5 初期設定フロー

4-8

4.

4.5.1

マルチメディアカードシステム設計時の注意事項

動作電圧条件の取得と指定電源投入後、MMC は Idle 状態に遷移します。この状態において、ホストは、
0) 初期化時の周波数により制御を行います。
1) SEND_OP_COND ( CMD1 )を発行します。
2) ホストは、バス上の全MMCがパワーアップシーケンスから抜けるまで、CMD1を発行し、MMCのポー
リングを行う必要があります。またCMD1の引数として動作電圧プロファイル（OCR値）を使用します。
OCR値は、実際にMMCに供給する電圧値（範囲）を指定してください。
【注】 この時、OCR=ALL"0"指定は、カードに対して電圧を供給しないという意味になるため、指定してはいけません。仮に指定すると MMC は規格に従い、Inactive 状態に遷移し、以後のコマンドに応答しなくなりますので行ってはなりません。誤って行った場合は、再度、電源投入よりやり直す必要があります。

3) CMD1をMMCに発行すると、ResponseとしてカードのOCR値、及びBusyフラグを返します。バスに複数のMMCが接続されている場合、それぞれのMMCから出力されるOCR値及びBusyフラグ値は、Wired-OR
されてホストに通知されます。Busyフラグは、当該MMC群がパワーアップシーケンス中であることを示し、そのOCR値は、接続されている全カードにおける動作可能電圧の公約数となります。
4) ホストは、カード群のBusyビットが全てクリアされるまで、CMD1を発行し続けなければなりませんし、またBusyビットのポーリングを必ず行う必要があります。
【注】 全 MMC の Busy が解除された状態で、MMC に対して CMD1 を発行すると、カードは Inactive 状態に遷移し、正常に動作しなくなる可能性があります。

5) Busyビットがクリアされると、Inactive状態に遷移したMMC以外は、Ready状態に遷移したことがわかります。
次に、カードの属性情報の取得を行います。

4.5.2

カード属性情報の取得およびバス上におけるカードの相対的アドレスの指定ホストは、バスに接続され Ready 状態にある MMC に対して、ALL_SEND_CID(CMD2)を発行することにより、それら全ての MMC における認識情報（CID）取得を行う必要があります。CID 情報は、個々の MMC で全て異なり、また、そのデータのやり取りは、CMD ラインで行います。
1) ホストは、Ready状態にあるMMCに対してALL_SEND_CID(CMD2)を発行します。
2) MMCはCMD2を受けると、5クロック目よりCID情報の送出を一斉にはじめます。
3) 各カードのCID情報は全て異なるため、送出中にMMCの出力とカードのバス出力レベルが異なる部分が出てきます。これを検出したMMCは、再びReady状態に戻り、再度CMD2の発行を待ちます。
4) 結果、一回のCMD2発行に対して、最もCID情報の小さいMMC1枚のみがCID送出に成功し、Identification
状態に入ります。
5) この時、Identification状態にあるMMCは、バス上に1枚しか存在しません。

4-9

4.

マルチメディアカードシステム設計時の注意事項

ࡎࠬ࠻

MMC

VCC

RDAT
Open Drain
CID࡟ࠫࠬ࠲㧔128ࡆ࠶࠻㧕
MMCࡃࠬ
㧔DAT㧕

Ყセ

৻⥌

No

Card loose bus
Ready⁁ᘒ

Yes
Card wins bus
Identification⁁ᘒ

図 4.6 オープンドレインアーキテクチャ

6) ここで、ホストは、SET_RELATIVE_ADDR（CMD3）を発行して、このMMCに対して相対的カードア
ドレス：RCA（Relative Card Address）の設定を行います。
【注】 RCA 値を自由に設定することが可能ですが、RCA="0000h"を指定してはいけません。これは、データ転送モ
ードにおいて、SELECT_DESELECT_CARD（CMD7）を使用するときに、仮に RCA=0000h と指定すると、バス上の全ての MMC を非選択にすることができるよう、MMC 規格により予約されているためです。
尚、電源立ち上げ当初の MMC における RCA 初期値は、RCA=0001h です。

7) RCAを設定されたMMCは、データ転送モードにおける状態の一つであるStanby状態に遷移し、以降、
CMD2、CMD3発行に対して応答しなくなります。ホストは、1)〜7)の作業を繰り返し、全てのMMCにRCA
値を設定します。
8) ホストは、CMD2発行に対して、バス上の全MMCが反応しない＝CID送出をしないことをもって、全てのカードを認識したか否か判断します。この時のTimeｰOutの判定条件は、CMD2送出後、5クロックでStart
Bitが検出されないことをもって確認します。
9) MMCはデータ転送状態に移行します。この時点で、クロック周波数を、20MHz以下で変更することが可能です。
10) CSDレジスタを読み込みます11) リードセクタサイズの変更などを設定します
12) データのリード･ライト等の処理が可能な状態です。
これらの作業をもって、ようやく MMC に対してデータのリード・ライトコマンド等のデータ転送コマンドが使用することができます。

4-10

4.

4.6

マルチメディアカードシステム設計時の注意事項

SPI モードにおけるデータ転送までの初期設定について

MMC は、電源投入直後は MMC モードにて立ち上がります。よって特定の処理を実施しない限り、通常は MMC
モードとなるので、SPI モードは面倒のようにお考えになるかもしれません。しかしながら、MMC モードのよ
うに、 状態；state”という概念が無い上に、カード選択を、CS ピンで行うという従来のメモリ等に近い考え方が扱えるので、SPI モードに切り替えれば、MMC モードに比較して容易に扱えます。
電源投入後、MMC はIdle”状態に遷移しますが、MMC モードのままですので留意してください。

この状態において、ホストは、
1) CS=Highとして、カードをNonActiveにします。
2) MMCイニシャライズ用のダミークロックを74クロック以上発行する。
3) CS=Lowとし、CMD0（GO_IDLE_STATE）を送信します。
【注】 この時点では、まだ MMC モードなので CRC が必要です。コマンド 0 のフォーマットは 40、00、00、00、00、
95 で、このうち"95"が CRC です。
また、MMC 規格により、idle 状態の MMC は、CMD0 と CMD1 しか受け付けません。CMD59 により CRC 機
能を ON/OFF させたい場合は、CMD1 の後で実施する必要があります。

4) この時点においてSPIモードに切替ります。MMCからの応答；R1レスポンスを待ちます。。
5) R1レスポンスが、01hの場合、(8)へ、R1レスポンスが、01h以外ならば、エラーと判定して、エラー処理を行います。一般には、エラー表示を実施することになるか、再度、パワーオンより再実行するなどの処理が考えられます。
6) 応答が無い場合、タイムアウトとしエラー処理を行います。タイムアウト規定は、各社製品により異なります。
タイムアウトを判定したら、エラー処理を実行します。
7) CMD1（SEND_OP_CMD）を発行し、MMCからの応答；R1レスポンスをポーリングします。
8) R1レスポンスが00hの場合(9)へ、01hの場合CMD1を再度発行して00hになるまでポーリング、また、00h、
01h以外ならば、エラーと判定して、エラー処理を行います。一般には、エラー表示を実施することになるか、再度、パワーオンより再実行するなどの処理が考えられます。また、応答が無い場合、タイムアウトとしエラー処理を行います。
9) データ転送モードに切り替わります。この時点で、クロック周波数を、20MHz以下で変更可能です。
【注】 MMC 規格 Ver1.4 に準拠する一部の MMC では、SPI モードは、0〜5MHz で動作させる必要があります。

10) CSDレジスタを読み込みます。なお、レジスタ値の読み取りに専用コマンドが使用されるMMCモードと異なり、SPIモードにおけるCSD、CIDレジスタ内容の取得は、通常のシンプルなリードブロック転送となります。MMCは、ホストからの要求に対し、標準のResponseトークンによりデータを返します。即ち、16バイトデータブロックと、それに付随する16ビットCRCにより応答されます。
11) リードセクタサイズの変更などを設定。
12) この時点でリードライトが可能な状態です。
13) 電源オフをする時は、カードがReady状態であることを確認し、かつ、CS=Highにしてから電源をオフしてください。

4-11

4.

マルチメディアカードシステム設計時の注意事項

4.7

タイミング設計について

図 4.7 に MMC のタイミング仕様を示します。MMC 規格によると、各信号の入出力は全てクロックの立ち上がりに対して規定されていて、MMC は各信号のデータの取り込みと出力をクロック信号の立ち上がりで行います。図中の網掛け部は値が Don’t Care となっており、ホストはこの範囲でのデータの取り込みを行わないでくだ
さい。

tPP
tWH

tWL
VIH

Clock
tIH

tTHL

tTLH

VIL

VIH
Input
VIL

tISU

VOH
Output
VOL
tOH

tOSU
̖✂ដߌㇱߪDon't Careߢߔ‫ޕ‬

MMCⷙᩰࠃࠅ
SymbolParameter

Min

Max

Unit

RemarkClock㧔ోߡߩⷙᩰߪ‫ޔ‬VIH‫ޔ‬VILߦኻߒߡⷙቯߐࠇ߹ߔ‫ޕ‬㧕࠺࡯࠲ォㅍᤨ๟ᵄᢙ㧔10ᨎࠬ࠲࠶ࠢ㧕

fPP

0

20

MHz

CL҇100pF
㧔10ᨎ㧕࠺࡯࠲ォㅍᤨ๟ᵄᢙ㧔30ᨎࠬ࠲࠶ࠢ㧕

fPP

0

5

MHz

CL҇250pF
㧔30ᨎ㧕ೋᦼൻᤨ๟ᵄᢙ

fOD

0

400

kHz

ࠢࡠ࠶ࠢ࡮LOW࠲ࠗࡓ

tWL

10

ns

ࠢࡠ࠶ࠢ࡮HIGH࠲ࠗࡓ

tWH

10

ns

ࠢࡠ࠶ࠢ࡮Rise࠲ࠗࡓ

tTLH

10

ns

ࠢࡠ࠶ࠢ࡮Fall࠲ࠗࡓ

tTHL

10

ns

ࠢࡠ࠶ࠢ࡮LOW࠲ࠗࡓ

tWL

50

ns

ࠢࡠ࠶ࠢ࡮HIGH࠲ࠗࡓ

tWH

50

ns

ࠢࡠ࠶ࠢ࡮Rise࠲ࠗࡓ

tTLH

50

ns

ࠢࡠ࠶ࠢ࡮Fall࠲ࠗࡓ

tTHL

50

ns

౉ജ࠮࠶࠻ࠕ࠶ࡊᤨ㑆

tISU

3

ns

౉ജࡎ࡯࡞࠼ᤨ㑆

tIH

3

ns

಴ജ࠮࠶࠻ࠕ࠶ࡊᤨ㑆

tOSU

5

ns

಴ജࡎ࡯࡞࠼ᤨ㑆

tOH

5

ns

図 4.7 MMC タイミング図

4-12

CL҇100pF
㧔10ᨎ㧕CL҇250pF
㧔30ᨎ㧕

付録
A.

開発サポートマルチメディアカード搭載システムの開発時の概略フローを図 A.1 に示します。図に示すように開発の各フェーズにおいてさまざまなサポートツールを準備しております。

ࠨࡐ࡯࠻࠷࡯࡞

ࠪࠬ࠹ࡓ㐿⊒ࡈࡠ࡯ኻᔕࡔ࡯ࠞࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼
࠰࡝ࡘ࡯࡚ࠪࡦ

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼៞タࠪࠬ࠹ࡓ㐿⊒ࡂ࡯࠼࠙ࠚࠕ㐿⊒ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼
ߩ⹏ଔ㧛ᬌ⸛

࠰ࡈ࠻࠙ࠚࠕ㐿⊒ࠕࡊ࡝ࠤ࡯࡚ࠪࡦ
࠰ࡈ࠻࠙ࠚࠕ㐿⊒
MMCࠗࡦ࠲ࡈࠚ࡯ࠬ
㐿⊒

٨H8S㐿⊒‫ࡓ࡯ࠜࡈ࠻࠶࡜ࡊޓ‬‫ޓ‬MMCߩ㐿⊒⹏ଔ߇‫ޓ‬ኈᤃߦߢ߈߹ߔ‫ޕ‬

٨PC੕឵ࡈࠔࠗ࡞ࠪࠬ࠹ࡓ 㧔ᩣ㧕ࠛ࡯ࠕࠗࠦ࡯ࡐ࡟࡯࡚ࠪࡦ
٨࠺ࡃࠗࠬ࠼࡜ࠗࡃ
‫ޓ‬MMC਄ߦPC੕឵ࡈࠔࠗ࡞
‫ࠍޓ‬ኈᤃߦ᭴▽ߢ߈߹ߔ‫ޕ‬
٨MMC I/F ౝ⬿‫ࡦࠦࠗࡑޓ‬㧔Ḱ஻ਛ㧕٨ࠞ࡯࠼࠰ࠤ࠶࠻㧒ࠤ࡯ࠬࠪࠬ࠹ࡓ࠰ࡈ࠻㐿⊒٨ࠞ࡯࠼࠰ࠤ࠶࠻

٨ࠞ࡯࠼ࠕ࠳ࡊ࠲

ࠪࠬ࠹ࡓ⛔ว

ࠪࠬ࠹ࡓ࠺ࡃ࠶ࠣ

࿖㓙㔚᳇ࠕ࡞ࡈࠔ㧔ᩣ㧕㧔ᩣ㧕ᣣ┙⵾૞ᚲ

᧲੩ࠛ࡟࠹࠶ࠢ㧔ᩣ㧕ᣣᧄ࿶⌕┵ሶ⵾ㅧ㧔ᩣ㧕ࠕ࡞ࡊࠬ㔚᳇㧔ᩣ㧕ਃ๺㔚᳇Ꮏᬺ㧔ᩣ㧕٨ࡊࡠ࠻ࠦ࡞ࠕ࠽࡜ࠗࠩ
‫࠼࡯ࠞߣࡓ࠹ࠬࠪࠩ࡯࡙ޓ‬‫ޓ‬㑆ߢߩࠗࡦ࠲ࡈࠚ࡯ࠬ
‫ޕߔ߹߈ߢ߇ࠢ࠶ࡃ࠺ޓ‬࿖㓙㔚᳇ࠕ࡞ࡈࠔ㧔ᩣ㧕٨ࠗࡦࠨ࡯ࠠ࠶࠻
‫࠲࡯࡟ࡘࡒࠛޓ‬‫ޓ‬㧔ᒰ␠ࡑࠗࠦࡦߏ૶↪ߩ‫ޓޓ‬႐ว㧕㧔ᩣ㧕ᣣ┙⵾૞ᚲ

ࡑ࡞࠴ࡔ࠺ࠖࠕࠞ࡯࠼៞タࠪࠬ࠹ࡓ㧔ቢᚑ㧕

図 A.1 マルチメディアカード開発フローと提供可能なツール一覧

付録-1

付録

●MultiMediaCardお問い合わせ窓口〒100-0004 東京都千代田区大手町 2 丁目 6 番 2 号 日本ビル
株式会社 日立製作所 半導体グループ
メモリビジネスユニット

マーケティング本部 マーケティング部

TEL：03-5201-5021
HomePage：http://www.hitachi.co.jp/Sicd/flashcard/●プロトコルアナライザ、開発プラットフォームお問い合わせ窓口〒205-0023 東京都羽村市神明台 2 丁目 6 番 13 号
国際電気アルファ株式会社

TEL：042-578-1659
FAX：042-555-5957
HomePage：http://www.ke-alpha.co.jp/
E-mail（Technical Support）：mmc-info@ke-alpha.co.jp（Sales）：sales@ke-alpha.co.jp●ファイルシステム、ドライバソフトお問い合わせ窓口〒141-0031 東京都品川区西五反田 2 丁目 25 番 2 飯島ビル
株式会社 エーアイコーポレーション
TEL：03-3493-7981
FAX：03-3493-7993
HomePage：http://www.aicp.co.jp
E-mail：sales@aicp.co.jp●MMC ソケット＆ケースお問い合わせ窓口〒110-0006 東京都台東区秋葉原 3 丁目 10
東京エレテック 株式会社
TEL：03-5295-1661
FAX：03-5295-1663
HomePage：http://www.tetc.co.jp
E-mail：sales@tetc.co.jp

付録-2

付録

●MMC ソケットお問い合わせ窓口〒222-0001 神奈川県横浜市港北区樽町 4-8-24
日本圧着端子製造株式会社

TEL：045-543-1278
FAX：045-544-1300
HomePage：http://www.jst-mfg.com/〒145-8501 東京都大田区雪谷大塚町 1-7
アルプス電気 株式会社
TEL：03-5499-8154
HomePage：http://www.alps.co.jp/
上記より http://www3.alps.co.jp の電子部品カタログの項目
電子部品に関するお問い合わせ資料請求からご連絡願います。

●Reduced Size MultiMediaCard アダプタお問合せ窓口〒102-8140 東京都千代田区富士見 1-6-1
三和電気工業 株式会社
TEL：03-5213-3030
FAX：03-5213-3041
HomePage：http://www.snwd.co.jp
E-mail：eigyo@snwd.co.jp

付録-3
3

付録

付録-4

マルチメディアカード ユーザーズマニュアル
発行年月 2000 年 9 月 第 1 版
2003 年 3 月 第 3 版
発
行 株式会社 日立製作所
半導体グループビジネスオペレーション本部
編
集 株式会社 日立小平セミコン
技術ドキュメントグループ©株式会社 日立製作所 2000