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

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

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

はじめに

SDカードのSPIモード通信の読み書き詳細の
「CMD12(STOP_TRANSMISSION)による停止」
について。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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カードのSPIモード通信の読み書き詳細

フクさん
フクさん

今回はSPIモード読み書きに関する話としては最後で、
「CMD12(STOP_TRANSMISSION)による停止」
について。

  • CMD24(WRITE_BLOCK)による書き込み
  • ACMD23(SET_WR_BLK_ERASE_COUNT)による消去ブロック数指定
  • CMD25(WRITE_MULTIPLE_BLOCK)による書き込み
  • Start Block/data Response/STOP_TRAN tokenの発行
  • CMD17(READ_SINGLE_BLOCK)による読み出し
  • CMD18(READ_MULTIPLE_BLOCK)による読み出し
  • CMD12(STOP_TRANSMISSION)による停止 ← これ
フクさん
フクさん

タイミングチャートも貼っておこう。

SDカードのMultiple-Block-Read-OperationSPIモード図解

CMD12(STOP_TRANSMISSION)のリクエスト

太郎くん
太郎くん

これは、リクエストパラメータが無いやつと推測!

フクさん
フクさん

なかなか勘が冴えてるねー。
正解だ。

太郎くん
太郎くん

まぁ止めることが目的のコマンドだからね。
こういうタイプは大体パラメータが無いってのはなんとなく分かってきたよ。

CMD12(STOP_TRANSMISSION)のレスポンス

太郎くん
太郎くん

そして、レスポンスもR1だ!

フクさん
フクさん

惜しい!

太郎くん
太郎くん

って、ことはR1bか!

フクさん
フクさん

正解。

太郎くん
太郎くん

busy付きってことは、
data block送信から通常状態に戻るのにちょっと時間がかかることがあり得るってことなのかな?

フクさん
フクさん

まぁSDカード内部の設計次第な面ではあるけど、
内部でモード切替相当のことはやってそうだし、busy仕様が入っている方が安全ってことなのだろう。

太郎くん
太郎くん

そう考えると良くできた仕様だよねー。

フクさん
フクさん

そうだね。
どのメーカも守ってるルールなわけだから、
しっかりした仕様だと思うよ。

太郎くん
太郎くん

とりえあず、SPIモードの読み書きが終わったから
次回からはSDモードの方になるのかな?

フクさん
フクさん

そうだね。
でも、SDモードでも流れはそれほど変わらないからなー。

太郎くん
太郎くん

(ほほう。それはチョロそうだ。)

まとめ

フクさん
フクさん

まとめだよ。

  • CMD12(STOP_TRANSMISSION)による停止について説明。
  • CMD12のリクエストパラメータはなし。
  • CMD12のレスポンスはR1bフォーマット。
    • busy付きなのはだたdata block転送モードを解除するのに時間が必要になることを想定しているためと思われる。

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

コメント

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