【FileSystem】車載外部ストレージ その78【SD応答向上仕様㉗】

【FileSystem】車載外部ストレージ その78【SD応答向上仕様㉗】 車載外部ストレージ

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

はじめに

SDカードのCQ Modeの読み書き以外のコマンドたち。
今回はCMD19(SEND_TUNING_BLOCK)について。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

CQ Modeのステートマシンと読み書き以外のコマンド

フクさん
フクさん

今回はCMD19(SEND_TUNING_BLOCK)について。
CQ Modeのステートマシン図は以下。

CQ Modeのステートマシン(State Diagram in CQ Mode)、CMD49(WRITE_EXTR_SINGLE) Enable CQ=1、CMD49(WRITE_EXTR_SINGLE) Enable CQ=0、CMD12(STOP_TRANSMISSION),CMD13(SEND_STATUS),CMD32(ERASE_WR_BLK_ADDR),CMD33(ERASE_WR_BLK_END_ADDR)、CMD44(Q_TASK_INFO_A),CMD45(Q_TASK_INFO_B)、Read:CMD19(SEND_TUNING_BLOCK),CMD46(Q_RD_TASK),CMD48(READ_EXTR_SINGLE),CMD58(READ_EXTR_MULTI)、Write:CMD47(Q_WR_TASK),CMD49(WRITE_EXTR_SINGLE),CMD59(WRITE_EXTR_MULTI)、CMD38(ERASE),CMD43(Q_MANAGEMENT)、End of R1b,End of Data Transfer、CMD12(STOP_TRANSMISSION),CMD13(SEND_STATUS)、CMD44(Q_TASK_INFO_A),CMD45(Q_TASK_INFO_B)、CQ Disable、CQ Tran、CQ Enabled
フクさん
フクさん

そして、CQ Modeの読み書き以外のコマンドたち。

  • CMD19(SEND_TUNING_BLOCK) ← これの第1回/全3回
  • CMD32(ERASE_WR_BLK_START)
  • CMD33(ERASE_WR_BLK_END)
  • CMD38(ERASE)
  • CMD43(Q_MANAGEMENT)

CMD19(SEND_TUNING_BLOCK)

太郎くん
太郎くん

とりあえず、上から順番にやっていくとすると、
最初はCMD19(SEND_TUNING_BLOCK)だね。

フクさん
フクさん

うーん、いきなりマニアックなの引いたねぇー。

太郎くん
太郎くん

まじか!!!

太郎くん
太郎くん

じゃ、後回しってことで・・・。

フクさん
フクさん

いやいや、どっちみちやるんだから。

太郎くん
太郎くん

しようがない・・・。

太郎くん
太郎くん

で、どんなコマンド?
名前に「TUNING」って入ってるけど、
なんか調整するヤツ?

フクさん
フクさん

その通り。
SDカードバスの回線インピーダンスの調整とか確認をするためのコマンドだ。

太郎くん
太郎くん

いきなり、電気回路的なのキターーー!

CMD19(SEND_TUNING_BLOCK)リクエストとレスポンス

フクさん
フクさん

まずは回路的な話は置いておいて、
いつも通りリクエストとレスポンスの話を片付けよう。

フクさん
フクさん

まず、リクエストパラメータは無い。

太郎くん
太郎くん

おー?
そうなんだ。脅された割にはシンプルそう。

フクさん
フクさん

そしてレスポンスはR1。

太郎くん
太郎くん

これもいつも通りだ。

太郎くん
太郎くん

とすると・・・Data Blockを送るか受けるタイプか?!

CMD19(SEND_TUNING_BLOCK)のData Block受信

フクさん
フクさん

なかなか勘が鋭いね。
カードからホストへData Blockが送られてくる。

太郎くん
太郎くん

なんかのレジスタを読み出すようなイメージ?

フクさん
フクさん

まぁイメージとしては近いかな。
ただ、読み出されるのは固定データ

フクさん
フクさん

こんなデータになる。

FF0FFF00h FFCCC3CCh C33CCCFFh FEFFFEEFh
FFDFFFDDh FFFBFFFBh BFFF7FFFh 77F7BDEFh
FFF0FFF0h 0FFCCC3Ch CC33CCCFh FFEFFFEEh
FFFDFFFDh DFFFBFFFh BBFFF7FFh F77F7BDEh

太郎くん
太郎くん

この謎の数列はなんだ?
Fh、Eh、Dh、Bh、7hが多いイメージだね?

CMD19(SEND_TUNING_BLOCK)のData Block受信を回線でみると

フクさん
フクさん

まぁ16進数のままだと、イマイチわからないと思うから
回線上のビットパターンを示そう。

フクさん
フクさん

SDカードバス上で見るとこんな感じになる。

CMD19(SEND_TUNING_BLOCK)、SDカードバス上、Tuning Pattern、DAT[0],DAT[1],DAT[2],DAT[3],1 1 0 1  1 1 0 0  1 1 0 0  0 1 0 0  …,F F 0 F  F F 0 0  F F C C  C 3 C C  …
太郎くん
太郎くん

全ビットが立てたり、落としたり。
と思ったら一部のビットだけ立てたり、落としたり・・・。

太郎くん
太郎くん

どういうこと?

フクさん
フクさん

まぁそこら辺は次回、目的含めて説明しよう。

まとめ

フクさん
フクさん

まとめだよ。

  • CMD19(SEND_TUNING_BLOCK)の説明。
    • リクエストとレスポンスは普通。
  • CMD19は固定データがData Blockとして送られてくる。
    • Fh、Eh、Dh、Bh、7hが多い。
    • DAT[3:0]の回線上を見ると何かしら見えてくるかも?

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

コメント

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