バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのSDモード通信の初期化シーケンスのCMD2(ALL_SEND_CID)によるCIDの取得について。
CID(Card IDentification)の詳細の話の続き。
登場人物
博識フクロウのフクさん
イラスト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の取得」に於いての
CID(Card IDentification)の具体的な内容の話になる。
- CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定。
- ACMD41(SD_SEND_OP_COND)によるHigh Capacity設定とVoltage Switch可否判定。
- CMD11(VOLTAGE_SWITCH)によるVoltage Switch。
- CMD2(ALL_SEND_CID)によるCIDの取得。← これ3回目/全4回
- CMD3(SEND_RELATIVE_ADDR)によるPublished RCAの取得。
- CMD7(SELECT/DESELECT_CARD)によるTransfer State(tran)遷移。
全体フローはこれ。
CID(Card IDentification)の内訳はこれ。
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] |
CID (Card IDentification)のProduct name
前回はOEM/Applicationまでやったから、Product nameからだね。
Product nameだから製品名ってことかな?
そうだね。
最大8文字のASCIIコードが入る感じだ。
“SD01G”
みたいな文字列が入ってるのを見たことあるよ。
ここら辺は製造側で好きに決めて良さそうって感じだね。
CID (Card IDentification)のProduct revision
次は、Product revisionか。
これは、なんか番号が入る感じかな?
まぁ番号と言えば番号ではあるんだけど、
「n.m」のリビジョン番号を表す2つの二進化十進数(BCD)で表記される。
二進化十進数?
BCD?
二進化十進数(BCD)
Wiipediaから持ってきた。
二進化十進数 (BCD、Binary-coded decimal ) とは、コンピュータにおける数値の表現方式の一つで、十進法の1桁を、0から9までを表す二進法の4桁で表したものである。「二進化十進符号」などとも呼ばれる。3増し符号など同じ目的の他の方式や、より一般的に、十進3桁を10ビットで表現するDensely packed decimalなども含めることもある。
Wikipediaより。
ようは、16進数のA~Fは使わずに10進数っぽく9の次は桁上がりするってことかな?
そうそう。
よって、Product revisionでは8bitで、上位ニブルがm、下位ニブルnなんで、
それぞれ、0~9までしか使えないってことだね。
なんでそんなことになってるか分からんけど、
パッと見の見やすさ重視ってことなんだろうね。
たぶんそうなんだろう。
まとめ
まとめだよ。
- CID(Card IDentification)の詳細の話の続き。
- Product nameは最大8文字のASCIIコード。
- “SD01G”のような文字列。
- Product revisionはn.mを示す形でそれぞれ二進化十進数(BCD)で表記。
- 二進化十進数(BCD)は二進法の4桁で0から9を表現。
バックナンバーはこちら。
コメント