【FileSystem】車載外部ストレージ その12【SDカード⑧】

【FileSystem】車載外部ストレージ その12【SDカード⑧】 車載外部ストレージ

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

はじめに

SDカードの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カードのSPIモード通信はとりあえず一段落追加感じだな。

太郎くん
太郎くん

まだ具体的な通信を理解したわけではないけど、イメージは掴んだ感じかな。

太郎くん
太郎くん

で、SPIモードとは別にSDモードって通信方式があるんだよね?

フクさん
フクさん

そうそう。
そろそろそっちもやっていこうかと思う。

太郎くん
太郎くん

SPIと似たような感じになるのかな?

フクさん
フクさん

まぁ同期シリアルって意味では似てるかなー。
ただ、

  • command/responseの双方向のCMDライン
  • Read/Write Blockの双方向のDATAライン

があって、結構一気にいろいろなやり取りができる

太郎くん
太郎くん

SPIよりも高度な通信方式って感じ?

フクさん
フクさん

そうだね。
DATAラインも最大で4bitなんで、スループットは単純計算で4倍だ。
まぁ同期クロックの速度にも依存はするが、
クロック自体はSPIと似たような感じになることが多いし、4倍と思っておけばOKかな。

実際の波形パターン

太郎くん
太郎くん

とりあえず、どんな感じの波形になるか見せてもらえればわかる気がする。

フクさん
フクさん

一応描いてみた。

SDカードのSDモード通信例
太郎くん
太郎くん

クロックに同期するのはSPIと一緒だね。

太郎くん
太郎くん

CMDは1本だけど、DATが4本あるから、これでスループット4倍ってことになるのか。

フクさん
フクさん

ちなみに、SDモードは1bitモード4bitモードがあるんで、
1bitモードだとDAT0だけで通信することになる。

太郎くん
太郎くん

1bitを選択する利点ってあるの?
折角のスループット4倍が得られなくなるんじゃない?

フクさん
フクさん

まぁそうなんだよねー。
それほど利点らしい利点は思いつかないが、
マイコンとSDカードの距離がそこそこ離れている場合は1bitモードの方が安定する。
ってのはあるかもしれない。

太郎くん
太郎くん

1bitモードの方が安定?
なんで?

フクさん
フクさん

以前もちょっと言ったけど、
回線インピーダンスの都合でどこかの線が遅延する可能性がある。
1bitだったら遅延もへったくれもないんで安定。
とはいえ、CMDとCLKのラインは別なんで、この理屈もちょっと怪しいかな。

太郎くん
太郎くん

ということは4bitモードにすべきってことになるのかな?

フクさん
フクさん

そうだね。
まぁデフォルトが1bitモードになってるんで、4bitモードにするには対応したコマンドを送ってあげる必要はある。

太郎くん
太郎くん

デフォルトが1bitモードなのか。
また、面倒な。

フクさん
フクさん

しようがない。そういう仕様になってるんだし。

SDモードの話の続き

フクさん
フクさん

次回からはSPIモードの時と同じように、以下を押さえていくことになると思う。

  • No data Operation
  • (Multiple) Block Read Operation
  • (Multiple) Block Write Operation
太郎くん
太郎くん

あー、SPIの時にやったね。

太郎くん
太郎くん

大体一緒なのかな?

フクさん
フクさん

そうだねー。
雰囲気としては一緒かなー。
ただ、扱うデータの大きさや、command/responseのラインとRead/Writeのラインが別になってるんで、タイミングが違うとかは出てくるはずだよ。

太郎くん
太郎くん

だったら、一応確認しておいた方がよさそうだね。

まとめ

フクさん
フクさん

まとめだよ。

  • SDモード通信について確認。
  • SPIと同じく同期シリアル通信に該当する。
    • ただし、command/responseはCMDライン、read/writeはDATライン
    • DATラインは最大4bitのラインとなる。
  • SDモードはデフォルトでDAQ0だけを使う1bitモードなので、commandで4bitモードに切り替える必要がある。

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

コメント

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