Interface)について説明したいと思う。SPIが一般ユーザーの目に一番触れやすいのは、フラッシュメモリの接続であろう。前回も説明した通り、最近マザーボード上でのフラッシュメモリの接続が、LPCからSPIに移行しつつある。D945GTPの場合、ICH7の脇に従来のフラッシュメモリ用のパターンこそ残されているが、フラッシュメモリ自体は実装されていない(Photo01)。HDR"とかかれている脇である(Photo02)。いう4MbitのSPI対応フラッシュメモリで、D945GTPはここにBIOSコードを格納している形だ。何でこんな形に移行しているかというと、SPIの場合は配線が少なくて済むからパッケージ形状も小さく出来るし、配線も容易になり、コストダウンに効果的だからである。D945GTPでは移行期とあってLPC経由のフラッシュメモリと両対応になっているのでコストダウン効果はあまり高くないのだが、組み込み機器系(例えばブロードバンドルータ)ではもうSPI対応のフラッシュメモリを使う方が一般的である。価格的にも、SPIだから高いとかLPCだから安いといった話はもう殆どなく、一杯売れるほうが安いというレベルになっており、この点でも今ではSPI対応フラッシュの方が有利になりつつある。図1そのSPIだが、基本的には図1に示すような4線式のインタフェースである。基本的にはMaster-Slave方式で、Masterからのリクエストに応じてSlaveが動作する形だ。Enable):そのSlaveが通信可能であることを示す。Low、つまり信号がLowだとActiveであるという意味だ。Clock):データ送受信のクロック。このクロック信号の立ち上がりに同期してデータの送受信が行われる。Output):Slave→Masterへのデータ送信ラインとなっている。このSPI、複数Slaveの接続が可能である。1つ目のパターンは図2の様に、各Slaveデバイスをディジーチェーン接続し、全てのSlaveデバイスが同時に送受信するというパターンだ。このケースでは、全てのSlaveデバイスに同じようにCS#とSCLKを与える事で実現している。一つのパターンは、図3の様な方式だ。こちらはMasterがどのSlaveデバイスをEnableにするかを選択すべく、複数のCS#を持つことが前提になっている。図2図3さてこのSPIについて詳細を説明する前に、もう少し概念的な話をしておきたいと思う。Semiconductorである。Controller)と呼ばれる、CPUコアに4回線分のコントローラを内蔵したSoCでは、周辺チップとの接続にSPIを使っている事が多い。当初は1デバイスのみの接続ということで、CS#を省いて3線で接続していた(このためSPIを3線式インタフェースと呼んでいた時期もある)が、その後SPIの普及に伴ってCS#を含む事が標準となったため、今では4線式としている。こんな経緯からも分かる通り、実はSPIのSpecificationというものは、きちんと決まっていない。SSTの25LF040Aの場合は最大33MHzまで通信が可能となっているが、最近はSPIの通信速度は50MHzを超えるものもある。その一方、ちょっと古いものだと12MHzだとか8MHzなんていうものもあるなど、データ転送レート一つとっても統一されていないありさまで、しかも細かなデータ転送タイミングなどはデバイスやコントローラごとに微妙に違っていたりする。この結果、SPIを名乗ればなんでも繋がる訳ではない、というあたりが話をややこしくしている。1/16]ホビーもっと見るページトップ。