【FileSystem】車載外部ストレージ その36【SD初期化⑲】

【FileSystem】車載外部ストレージ その36【SD初期化⑲】 車載外部ストレージ

バックナンバーはこちら。
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)遷移。
フクさん
フクさん

全体フローはこれ。

SDカードのSDモード通信の初期化シーケンスのフロー図
フクさん
フクさん

CID(Card IDentification)の内訳はこれ。

NameFieldWidthBit position
Manufacture IDMID8[127:120]
OEM/Application IDOID16[119:104]
Product namePNM40[103:64]
Product revisionPRV8[63:56]
Product serial numberPSN32[55:24]
reserved4[23:20]
Manufacturing dateMDT12[19:8]
CRC7 checksumCRC7[7:1]
not used,always 11[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より。
二進化十進表現 - 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を表現。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました