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

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

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

はじめに

SDカードのSPIモード通信の読み書きについて。

ざっと読み込みと書き込みの手順解説。

今後の説明手順を列挙してみる。

登場人物

博識フクロウのフクさん

指差しフクロウ

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

太郎くん
太郎くん

前回までで、SDカードの初期化関連は完了でいいんだよね?

フクさん
フクさん

そうだね。
というわけで、いよいよSDカード読み書きの話に突入する。
まずはSPIモードの話をする予定。

太郎くん
太郎くん

なんか複雑な処理とかあるの?

フクさん
フクさん

SPIモードの方はほぼ無いかなー。

太郎くん
太郎くん

(逆説的にSDモードの方はいろいろあるのか・・・。)

SDカードのSPIモード通信の書き込み手順

太郎くん
太郎くん

先に大雑把に手順を教えてもらえると助かるんだけど。

フクさん
フクさん

そうだね。
まずは書き込み手順。
Single Block Writeの場合と、Multi Blockの場合に分かれる。

Single Block Writeの場合

①CMD24(WRITE_BLOCK)による書き込み

Multi Block Writeの場合

①ACMD23(SET_WR_BLK_ERASE_COUNT)による消去ブロック数指定
②CMD25(WRITE_MULTIPLE_BLOCK)による書き込み
③Start Block/data Response/STOP_TRAN tokenの発行

太郎くん
太郎くん

そういえば、Single Block転送、Multi Block転送ってやり方があったから、
ここで使い分けするわけか!

太郎くん
太郎くん

具体的なハンドシェイクはここでやったねー。

SDカードのSPIモード通信の読み込み手順

フクさん
フクさん

次は読み込み手順について。
こっちもSingle Block ReadとMulti Block Readに分かれる。

Single Block Readの場合

①CMD17(READ_SINGLE_BLOCK)による読み出し

Multi Block Readの場合

①CMD18(READ_MULTIPLE_BLOCK)による読み出し
②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カードのSPIモード通信の読み書きの手順について説明。
  • 詳細は以下の流れで説明予定。
    • Single Block Write処理。
    • Multi Block Write処理。
    • Single Block Read処理。
    • Multi Block Read処理。

コメント

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