バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのSDモード通信の初期化シーケンスのCMD2(ALL_SEND_CID)によるCIDの取得について。
「CMD2(ALL_SEND_CID)によるCIDの取得」の説明。
CIDはCard IDentificationの略。
CMD2(ALL_SEND_CID)のレスポンスフォーマットついて。
CIDの持つ情報達について。
などなど。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
SDカードのSDモード通信の初期化シーケンス詳細
今回は「CMD2(ALL_SEND_CID)によるCIDの取得」の話になる。
- CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定。
- ACMD41(SD_SEND_OP_COND)によるHigh Capacity設定とVoltage Switch可否判定。
- CMD11(VOLTAGE_SWITCH)によるVoltage Switch。
- CMD2(ALL_SEND_CID)によるCIDの取得。← これの1回目/全4回
- CMD3(SEND_RELATIVE_ADDR)によるPublished RCAの取得。
- CMD7(SELECT/DESELECT_CARD)によるTransfer State(tran)遷移
全体フローはこれ。
CMD2(ALL_SEND_CID)
CMD2(ALL_SEND_CID)。
名前的にはCIDというものを取得だから、
コマンド送ればOKパターンのやつかな。
そうだね。
CMD2(ALL_SEND_CID)はパラメータを持たないコマンドなんで、
送ればOKだ。
じゃ、これで終了!
んなわけないじゃん!!
だよねー。
CID
ところで、CIDは何の略?
CIDはCard IDentificationの略だね。
SDカード識別用の情報が埋まってる。
ほう。
それを見ればいろいろわかるわけか。
CMD2(ALL_SEND_CID)のレスポンス(R2レスポンスフォーマット)
まぁコマンドを投げるってことはレスポンスがあるってことなわけで、
そもそもどんなレスポンスなの?
って話があるよねぇ。
CMD2(ALL_SEND_CID)のレスポンスは
R2レスポンスフォーマットになる。
R2レスポンスフォーマットは以下。
Bit position | [132:127] | [126:0] |
Width(bit) | 6 | 127 |
Value | ‘111111’ | x |
Description | reserved | CID or CSD(CRC7を含む) |
CIDとは別にCSDってのがあるの?
CSDとは???
今回は使わないが、CMD9(SEND_CSD)で取得される情報。
CSDはCard Specific Dataの略で、
SDカードのVersoinが取得できる。
まぁそういうものがあるってことで、今回はとりあえず置いておくか。
CIDの内訳
で、本題のCIDの内容はどうなってるの?
CIDは128bitのデータで以下の内訳になってる。
Name | Field | Width | Bit position |
---|---|---|---|
Manufacture ID | MID | 8 | [127:120] |
OEM/Application ID | OID | 16 | [119:104] |
Product name | PNM | 40 | [103:64] |
Product revision | PRV | 8 | [63:56] |
Product serial number | PSN | 32 | [55:24] |
reserved | – | 4 | [23:20] |
Manufacturing date | MDT | 12 | [19:8] |
CRC7 checksum | CRC | 7 | [7:1] |
not used,always 1 | – | 1 | [0:0] |
ということはこの内訳を確認していく感じか。
まぁスルーしちゃってもいいんだけど、
折角だから説明しよう。
というわけで次回!
まとめ
まとめだよ。
- 「CMD2(ALL_SEND_CID)によるCIDの取得」の説明。
- CIDはCard IDentificationの略。
- CMD2(ALL_SEND_CID)のレスポンスはR2レスポンスフォーマット。
- CIDは128bitの6種類の情報を持つ。
バックナンバーはこちら。
コメント