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

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

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

はじめに

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カードのインターフェース仕様は2種類

  • SPIモード
  • SDモード
太郎くん
太郎くん

SDカードがSPIで通信できるのは知ってるけど、
普通はSDモードって形で通信するってことかな?

フクさん
フクさん

そうだね。
SPIモードってのはSDカードの前身である、MMC(Multi Media Card)の仕様を踏襲したものになる。

マルチメディアカード(Multi Media Card)とは、メモリーカードの規格である。MMCと略される。 サンディスクとシーメンス(インフィニオン・テクノロジーズ)が共同開発し、1997年11月に発表した規格が元となって1998年10月に設立されたMultiMediaCard Associationが規格の開発維持を行っている。サイズは 32mm×24mm×1.4mm、重さは2g未満である。 インタフェースは7ピン・シリアルで、クロックは最大20Mbps、書き込み速度は最大2MB/s程である。 Version 4.2まではSPIモードがあり、低速で良ければSPIバスでの複数デバイスの接続を簡単にできた。

Wikipediaより
太郎くん
太郎くん

MMC・・・そんなものがあったのか・・・。

SDカードのインターフェース仕様のSPIモード

フクさん
フクさん

SPIはMaster-Slave構成の通信で、
今回のSDカードはSPIに於いてはSlave側になる。

フクさん
フクさん

そして、SPIのピンは以下4種。

  • SCK(Serial Clock):Master出力
  • MISO(Master In Slave Out):Master出力
  • MOSI(Master Out Slave In):Master入力
  • SS(Slave Select):Master出力
太郎くん
太郎くん

なんか絵で描いてもらえると・・・。

フクさん
フクさん

絵で描くとこうだな。

SPI接続図

SPI信号詳細(SS:Slave Select)

太郎くん
太郎くん

うーん、察する、MISOでデータ送って、MOSIでデータを受けるって感じかな?

フクさん
フクさん

そうだね。

太郎くん
太郎くん

SCKとSSの役割はどうなるの?

フクさん
フクさん

SSは有効なSlave選択用の信号で、これがLowアクティブだとそのSlaveと通信可能になる。

太郎くん
太郎くん

Lowアクティブ?

フクさん
フクさん

うん。
信号がHighではなく、Lowの時にEnableとする信号だね。

太郎くん
太郎くん

何故そんなことに?
Highで良くない?

フクさん
フクさん

まぁ現在に於いてはLowアクティブでもHighアクティブでもどっちでも良いのだろうけど、
トランジスタベース回路のTTL(Transistor-transistor logic)の時代だと、
オープンコレクタという信号接続が一般的で、
オープンコレクタはハイインピーダンス(切断)とHighは同義だったんだよねー。
というわけで意図的に信号制御が確定するのはLowなんで、
デバイスの有効化は暗黙的にLowアクティブが主流になった。
って経緯だと思うよ。

SPI信号詳細(SCLK:Serial Clock)

太郎くん
太郎くん

SCLKは何?

フクさん
フクさん

SCLKはシリアル通信の同期用信号だな。

太郎くん
太郎くん

シリアル通信の同期用?
あれ?ボーレートとか決まってたらそういうの要らないんじゃない?

フクさん
フクさん

んー?
もしかしてUARTのこと言ってる?

UART (Universal Asynchronous Receiver/Transmitter, ユーアート) は、調歩同期方式によるシリアル信号をパラレル信号に変換したり、その逆方向の変換を行うための集積回路である。本機能のみがパッケージングされたICで供給されるものと、マイクロプロセッサのペリフェラルの一部として内蔵されるものとがある。マキシムのMAX232のような、RS-232C規格に準拠する信号レベルに変換するICと組み合わせて、外部機器とのインタフェースとして利用されるのが一般的である。UARTに、同期方式のシリアル信号を変換するための回路を追加したものを、USART (Universal Synchronous Asynchronous Receiver/Transmitter) と呼ぶ。

Wikipediaより
太郎くん
太郎くん

そう。これこれ。

フクさん
フクさん

まぁシリアル通信と言うとUARTのような調歩同期が代表出来ではあるけど、
基板上のデバイス通信だと、SPIのような同期通信が主流になるんだよ。

太郎くん
太郎くん

それまたなんで?

フクさん
フクさん

データ信号と、それを同期するクロックを同時に送ると回線インピーダンスの影響でどちらかが遅延することがある。
異なる装置間だとそれが発生するんで調歩同期を使うことになるんだけど、
基板内ではそれは起きにくい。
よって、SCLKのような同期用信号を送って高速なシリアル通信をさせる。

太郎くん
太郎くん

ちなみにどの程度の速度差があるの?

フクさん
フクさん

まぁ使用するマイコンにもよるけど、
UARTの場合は115.2[Kbps]に対して
SPIは10~50[Mbps]くらいかな。

太郎くん
太郎くん

うわ!全然速度違うじゃん!!

フクさん
フクさん

と言うわけで装置間通信ではない、基板マウントのデバイスと通信する場合は

同期式シリアル通信が用いられる。

まとめ

フクさん
フクさん

まとめだよ。

  • SDカードのインターフェース仕様は2種類。
    • SPIモード。
    • SDモード。
  • SPIはSCK、MISO、MOSI、SSの4種の信号線を使う。
    • SSはLowアクティブ。
      • LowアクティブはTTL時代のオープンコレクタのHigh、HZの区別が付きにくい時代の名残。
  • 調歩同期は装置間通信、同期シリアルは装置内通信で使われる。
    • 同期シリアルの方が圧倒的通信速度が速い。

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

コメント

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