【FileSystem】車載外部ストレージ その51【SD読み書きSDモード③】

【FileSystem】車載外部ストレージ その51【SD読み書きSDモード③】 車載外部ストレージ

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

はじめに

SDカードのSDモード通信のCMD13(SEND_STATUS/SEND_TASK_STATUS)の話の続き

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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モード通信のCMD13(SEND_STATUS/SEND_TASK_STATUS)の切替

太郎くん
太郎くん

前回は、CMD13(SEND_STATUS/SEND_TASK_STATUS)の話だったけど、
SEND_TASK_STATUS側の話が残ってるんだよねー。

太郎くん
太郎くん

そういえば、CMD13(SEND_STATUS/SEND_TASK_STATUS)って
どうすれば、SEND_STATUSになったり、SEND_TASK_STATUSになったりするんだっけ?

フクさん
フクさん

そういえば説明してなかったな。
単純にCMD13(SEND_STATUS/SEND_TASK_STATUS)を送る時のパラメータで切り替える。
CMD13(SEND_STATUS/SEND_TASK_STATUS)のリクエストパラメータは以下になる。

Bit position[31:16][15][14:0]
Width(bit)16115
Valuexx
DescriptionRCASend Task Status Registerstuff bits
太郎くん
太郎くん

RCAは確かRelative Card Addressの略でCMD3(SEND_RELATIVE_ADDR)で取得出るやつだったね。
元々はCMD7(SELECT/DESELECT_CARD)によるTransfer State(tran)遷移で使うものだったと思ったけど、
CMD13(SEND_STATUS/SEND_TASK_STATUS)でも使うんだね。

フクさん
フクさん

(意外と覚えてるな・・・。)

太郎くん
太郎くん

とすると、
Send Task Status RegisterのbitでSEND_STATUSとSEND_TASK_STATUSを切り替えるってことになるのか。
(消去法だ!!)

フクさん
フクさん

そうそう。
前回のSEND_STATUSはSend Task Status Registerのbitを0にした場合の応答だね。

SDカードのSDモード通信のCMD13(SEND_STATUS/SEND_TASK_STATUS)のSEND_TASK_STATUS側の応答

太郎くん
太郎くん

で、Send Task Status Registerのbitを1にすると、SEND_TASK_STATUSのリクエストになるとして、応答はどうなるの?

フクさん
フクさん

構成はR1のcard statusのところにTask Statusが入ることになる。

Bit position4746[45:40][39:8][7:1]0
Width(bit)1163271
Value‘0’‘0’xxx‘1’
Descriptionstart bittransmission bitcommand indexcard statusCRC7end bit

Task Statusの内容

太郎くん
太郎くん

で、Task Statusの内容はどうなるの?

フクさん
フクさん

こんな感じの32bitデータだ。

BitsIdentifierValue
31STATUS_TASK_31‘0’:Not Ready、’1’:Ready
30STATUS_TASK_30‘0’:Not Ready、’1’:Ready
0STATUS_TASK_0‘0’:Not Ready、’1’:Ready
太郎くん
太郎くん

ん?
STUTAUS_TASKってのが32個あって、それの状態を示している・・・
ってことなんだと思うのだけど、
STUTAUS_TASKってなんだ???

フクさん
フクさん

Command Queueの状態だね。

太郎くん
太郎くん

(どんどん知らん単語が出てくる・・・)

フクさん
フクさん

あー。
ここら辺を説明しようと思うと、

  • パフォーマンスエンハンスメントレジスタ
  • 上記の読み書き
  • CQ mode

の説明が必要だね。

太郎くん
太郎くん

・・・。

フクさん
フクさん

まぁ、SDカードの読み書きをするだけであれば、不要な知識ではあるけど・・・。
どーする?

太郎くん
太郎くん

一応、聞いておこうかな・・・。
分からないにしても、どういったものがあるのかは知っておきたいかも。

フクさん
フクさん

よし。
SD読み書きの話はここで終わりとして、
次回からは「応答性向上」の話をしよう。

まとめ

フクさん
フクさん

まとめだよ。

  • CMD13(SEND_STATUS/SEND_TASK_STATUS)の話の続きを説明。
  • CMD13はSend Task Status RegisterでSEND_STATUS/SEND_TASK_STATUSを切替できる。
  • Task StatusはCommand Queueの状態監視用。
    • Command Queueについては次回以降説明。

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

コメント

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