バックナンバーはこちら。
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の持つ情報達について。
などなど。
登場人物
博識フクロウのフクさん
![指差しフクロウ](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![技術者太郎](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
SDカードのSDモード通信の初期化シーケンス詳細
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
今回は「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)遷移
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
全体フローはこれ。
![SDカードのSDモード通信の初期化シーケンスのフロー図](https://www.simulationroom999.com/blog/wp-content/uploads/2021/02/02_SDカードのSDモード通信の初期化シーケンスのフロー図-814x1024.png)
CMD2(ALL_SEND_CID)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
CMD2(ALL_SEND_CID)。
名前的にはCIDというものを取得だから、
コマンド送ればOKパターンのやつかな。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そうだね。
CMD2(ALL_SEND_CID)はパラメータを持たないコマンドなんで、
送ればOKだ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者04.png)
じゃ、これで終了!
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/びっくりフクロウ.png)
んなわけないじゃん!!
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
だよねー。
CID
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
ところで、CIDは何の略?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
CIDはCard IDentificationの略だね。
SDカード識別用の情報が埋まってる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
ほう。
それを見ればいろいろわかるわけか。
CMD2(ALL_SEND_CID)のレスポンス(R2レスポンスフォーマット)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
まぁコマンドを投げるってことはレスポンスがあるってことなわけで、
そもそもどんなレスポンスなの?
って話があるよねぇ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
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を含む) |
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
CIDとは別にCSDってのがあるの?
CSDとは???
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
今回は使わないが、CMD9(SEND_CSD)で取得される情報。
CSDはCard Specific Dataの略で、
SDカードのVersoinが取得できる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
まぁそういうものがあるってことで、今回はとりあえず置いておくか。
CIDの内訳
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
で、本題のCIDの内容はどうなってるの?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
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] |
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
ということはこの内訳を確認していく感じか。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
まぁスルーしちゃってもいいんだけど、
折角だから説明しよう。
というわけで次回!
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- 「CMD2(ALL_SEND_CID)によるCIDの取得」の説明。
- CIDはCard IDentificationの略。
- CMD2(ALL_SEND_CID)のレスポンスはR2レスポンスフォーマット。
- CIDは128bitの6種類の情報を持つ。
バックナンバーはこちら。
コメント