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

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

バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/

はじめに

SDカードのSDモード通信の初期化シーケンスのCMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定について。
今回はリクエストパラメータ関連の話。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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モード通信の初期化シーケンス詳細

フクさん
フクさん

今回は、「CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定」について。

  • CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定。 ← これの前半
  • ACMD41(SD_SEND_OP_COND)によるHigh Capacity設定とVoltage Switch可否判定。
  • CMD11(VOLTAGE_SWITCH)によるVoltage Switch。
  • CMD2(ALL_SEND_CID)によるCIDの取得。
  • CMD3(SEND_RELATIVE_ADDR)によるPublished RCAの取得。
  • CMD7(SELECT/DESELECT_CARD)によるTransfer State(tran)遷移。
フクさん
フクさん

フロー図も載せておく。

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

CMD8(SEND_IF_COND)のリクエスト

太郎くん
太郎くん

具体的にどんなリクエストになるのかな?

フクさん
フクさん

こんな構成になるね。

Bit position[37:31][30:14]1312[11:8][7:0]
Width(bits)6181148
Value‘001000’‘00000h’xxxx
DescriptionCommandReservedPCIe 1.2V SupportPCIe AvailabilityVoltage SuppliedCheck pattern

PCIe(PCI express)

太郎くん
太郎くん

PCIeって何?

フクさん
フクさん

PCI expressのことだねー。
SDカード仕様のversion8から導入された仕様で、
PCI express4.0準拠の高速通信ができるようになってるらしい。

PCI Express(ピーシーアイエクスプレス)は、2002年にPCI-SIGによって策定された、I/Oシリアルインタフェース、拡張バスの一種である。書籍、文書ではPCIeと表記されることも多い。この表記はPCI-SIG自身もウェブサイト上で使用している。PCI-Xはパラレルインタフェースの別規格である。

Wikipediaより

PCI Express 4.0:1レーンあたりの物理帯域をPCI Express 3.0 (Gen3) の2倍に引き上げて片方向16 GT/sとする。単純に高速化しただけではバスを活かしきれない可能性があったため、パケットヘッダのタグが256個から768個へ拡張され、それらを効率的に扱うためのクレジットのスケーリング機能 (クレジットを1倍/4倍/16倍として扱う機能) が追加された。

Wikipediaより
フクさん
フクさん

まぁ今回はPCIeまで話を踏み込むと恐ろしく長くなるんで、そういうものがあるってところだけ覚えておけば良いと思うよ。

太郎くん
太郎くん

うん。そうしとく。

Voltage Supplied

太郎くん
太郎くん

そして次はVoltage Suppliedかな?

フクさん
フクさん

これも内訳を書いとく。
現状で有効な値は「0001b」だけなんだけどねー。

Voltage SuppliedValue Definition
0000bNot Defined
0001b2.7~3.6[V]
0010bReserved
0100bReserved
1000bReserved
OthersNot Defined
太郎くん
太郎くん

ほー。

サポート電圧関係のパラメータって感じか。
そういえば、SPIモードの時はCMD58でサポート電圧を見てたね。
その時の話だとSDモードのCMD58は異なる役割って言ってたから、
どうしてるのかと思ったら、CMD8で先に指定する方式なんだ。

SPIモード時のサポート電圧の話

Check pattern

太郎くん
太郎くん

あとはCheck patternか。

フクさん
フクさん

これは、セットした値が、そのまま帰ってくるパラメータだね。
だいたいAAhをセットすることが多い

太郎くん
太郎くん

なんでそんなパラメータが。

フクさん
フクさん

まぁSDv1ではサポートしていないコマンドなんで、ハンドシェイクを確実にするための仕掛けなんだろうねー。

太郎くん
太郎くん

まぁ確かに、そっちの方が堅牢にはなるね。

フクさん
フクさん

まだ、レスポンスの話が残ってるけど、そこは次回かな。

まとめ

フクさん
フクさん

まとめだよ。

  • CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定の説明。
  • 以下のパラメータが存在。
    • PCI express 4.0 Support有無。
    • Voltage Supplied。
    • Check pattern。
      • セットした値がそのままレスポンスに乗ってくる。

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

コメント

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