【コラム】

セカンド・オピニオン

126 バスのアーキテクチャ - 過去から未来へ(87)

    大原雄介  [2005/08/05]

    シンプルなバス(その5):SPI(その1)

    今回からは、SPI(Serial Peripheral Interface)について説明したいと思う。SPIが一般ユーザーの目に一番触れやすいのは、フラッシュメモリの接続であろう。前回も説明した通り、最近マザーボード上でのフラッシュメモリの接続が、LPCからSPIに移行しつつある。先鞭をつけたのはやはりIntelであって、例えばIntel D945GTPの場合、ICH7の脇に従来のフラッシュメモリ用のパターンこそ残されているが、フラッシュメモリ自体は実装されていない(Photo01)。

    Photo01

    Photo02

    ではフラッシュメモリはどこに? というと、ICH7左下に小さく"SPI HDR"とかかれている脇である(Photo02)。ここに搭載されているのは、米SST(Silicon Storage Technology)の25LF040A という4MbitのSPI対応フラッシュメモリで、D945GTPはここにBIOSコードを格納している形だ。

    何でこんな形に移行しているかというと、SPIの場合は配線が少なくて済むからパッケージ形状も小さく出来るし、配線も容易になり、コストダウンに効果的だからである。もっともD945GTPでは移行期とあってLPC経由のフラッシュメモリと両対応になっているのでコストダウン効果はあまり高くないのだが、組み込み機器系(例えばブロードバンドルータ)ではもうSPI対応のフラッシュメモリを使う方が一般的である。価格的にも、SPIだから高いとかLPCだから安いといった話はもう殆どなく、一杯売れるほうが安いというレベルになっており、この点でも今ではSPI対応フラッシュの方が有利になりつつある。

    図1

    そのSPIだが、基本的には図1に示すような4線式のインタフェースである。基本的にはMaster-Slave方式で、Masterからのリクエストに応じてSlaveが動作する形だ。各信号線の意味は、

    • CS#(Chip Select/Chip Enable):そのSlaveが通信可能であることを示す。#が付いているのはActive Low、つまり信号がLowだとActiveであるという意味だ。
    • SCLK(Serial Clock):データ送受信のクロック。このクロック信号の立ち上がりに同期してデータの送受信が行われる。
    • MOSI(Master Output/Slave Input):Master→Slaveへのデータ送信ライン
    • MISO(Master Input/Slave Output):Slave→Masterへのデータ送信ライン

    となっている。

    さてこのSPI、複数Slaveの接続が可能である。まず1つ目のパターンは図2の様に、各Slaveデバイスをディジーチェーン接続し、全てのSlaveデバイスが同時に送受信するというパターンだ。このケースでは、全てのSlaveデバイスに同じようにCS#とSCLKを与える事で実現している。もう一つのパターンは、図3の様な方式だ。こちらはMasterがどのSlaveデバイスをEnableにするかを選択すべく、複数のCS#を持つことが前提になっている。

    図2

    図3

    さてこのSPIについて詳細を説明する前に、もう少し概念的な話をしておきたいと思う。SPIを最初に作り出したのはMotorola、現在のFreescale Semiconductorである。このバスの目的は、同社のMicroprocessorやMicrocontrollerと周辺回路を簡単に接続するというもので、例えば同社のQUICC(Quad Integrated Communication Controller)と呼ばれる、CPUコアに4回線分のコントローラを内蔵したSoCでは、周辺チップとの接続にSPIを使っている事が多い。当初は1デバイスのみの接続ということで、CS#を省いて3線で接続していた(このためSPIを3線式インタフェースと呼んでいた時期もある)が、その後SPIの普及に伴ってCS#を含む事が標準となったため、今では4線式としている。

    ただこんな経緯からも分かる通り、実はSPIのSpecificationというものは、きちんと決まっていない。例えばSSTの25LF040Aの場合は最大33MHzまで通信が可能となっているが、最近はSPIの通信速度は50MHzを超えるものもある。その一方、ちょっと古いものだと12MHzだとか8MHzなんていうものもあるなど、データ転送レート一つとっても統一されていないありさまで、しかも細かなデータ転送タイミングなどはデバイスやコントローラごとに微妙に違っていたりする。この結果、SPIを名乗ればなんでも繋がる訳ではない、というあたりが話をややこしくしている。(続く)

    新着記事

    特設サイトの情報

      人気記事

      一覧

        新着記事

        特別企画

        マイナビニュースマガジン