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

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

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

はじめに

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

現状は選択肢が少なくNGパターンも皆無。
よって、ほぼレスポンスパターンは限られるがSD仕様追加により変わることもあり得る。
(かもしれない。)

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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)のレスポンス(R7)

フクさん
フクさん

CMD8のレスポンスの話になるが、
レスポンスフォーマットはR7フォーマットというものになる。

太郎くん
太郎くん

ほう。
構成はどんな感じになるの?

フクさん
フクさん

こんなん。

Bit position[37:31][30:14]1312[11:8][7:0]
Width(bits)6181148
Value‘001000’‘00000h’xxxx
DescriptionCommandReservedPCIe 1.2V SupportPCIe ResponseVoltage acceptedEcho-back of check pattern
太郎くん
太郎くん

あれ?
これって、前回のCMD8のリクエスト電文と似てない?

フクさん
フクさん

そうだね。
前回のCMD8リクエスト電文も載せておこう。

Bit position[37:31][30:14]1312[11:8][7:0]
Width(bits)6181148
Value001000′00000h’xxxx
DescriptionCommandReservedPCIe 1.2V SupportPCIe AvailabilityVoltage SuppliedCheck pattern
太郎くん
太郎くん

やっぱり、そっくりだ!

フクさん
フクさん

まぁイメージとしては、
リクエストが受けつけられたかどうかを返しているだけって感じだねー。

PCIe 1.2V SupportとPCIe Availability

太郎くん
太郎くん

PCIe 1.2V SupportとPCIe Responseのところはなんとなくわかるぞ。
Supportして有効化できればフラグとして立つやつだな。

フクさん
フクさん

その通り。
まぁどのみち今回はPCIeは触れないんで、パラメータの存在だけ覚えておいて。

太郎くん
太郎くん

はいよー。

Voltage accepted

太郎くん
太郎くん

これも・・・Voltage SuppliedでリクエストしたものがOKならそのまま帰ってくる感じかな?

フクさん
フクさん

そうだね。
まぁ現状は1パターンしか選択肢がないから、NGなパターンが有っても困るものではあるけどねー。
一応、値と意味の表を載せるけど、前回のVoltage Suppliedと一緒だ。

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

たしかに一緒だ。
現状では、0001bをリクエストして0001bが返ってくればOKってことだね。

Echo-back of check pattern

太郎くん
太郎くん

Echo-back of check patternが前回言ってた、Check patternにセットした値がそのまま帰ってくるっていう。

フクさん
フクさん

そうそう。
AAhってリクエストしたらレスポンスAAhが埋まってるはずのパラメータになる。

太郎くん
太郎くん

ここら辺の全パラメータの辻褄が合っていればSDv2で、辻褄が合っていなければ使用不可って感じか。

フクさん
フクさん

そうだね。
まぁ現状では無いとは思うけど、
今後のSDカード仕様如何では上位仕様だけを持った特殊なSDカードとか登場して、
古い仕様だとサポートできないって時がくるのかもしれないねー。

太郎くん
太郎くん

そこらへんは寿命の長い仕様の宿命だねー。

まとめ

フクさん
フクさん

まとめだよ。

  • CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定のレスポンス側の説明。
    • レスポンスはリクエストと同等の構成。
      • リクエストが受けつけられたかどうかを返しているだけ。
  • 現状は選択肢が少ないので、ほぼレスポンスパターンは限られるが今後のSD仕様の追加次第ではどうなるか分からない。

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

コメント

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