2013-03-21 6 views
10

SPIとシリアルの違いは何ですか?プロセッサ間通信についての記事を読んで、より良い/より高速な通信のためにシリアルインターフェイスがSPIに置き換えられていると述べています。違いは何ですか?シリアルとSPI

答えて

20

「シリアル」という語はあまり意味がありません。しかし、私はあなたが伝統的なシリアル通信規格について話していると仮定します。 SPIについて根本的に異なるのは、という同期です。例えば、RS-232とは対照的に、非同期シグナリング規格。

非同期シグナリングの重要な特性は、バイトのビットが送信される頻度であるボーレートです。受信機は、送信機によって使用されたクロックを回復するために余分な作業をしなければならない。典型的なUARTは、ボーレートの16倍のレートで信号をサブサンプリングすることによってそのようにします。サブサンプリングクロックを同期させるスタートビットが重要です。バイト間の遅延は任意である可能性があり、受信機は個々のバイトごとに再同期する。この方式の問題は、トランスミッタとレシーバのクロック周波数とクロックジッタの不一致であり、ボーレートを効果的に制限します。

これはSPIには問題ありませんが、送信機と受信機の両方が正確に同じクロックを使用するようにクロック信号を伝送する余分な信号線があります。したがって、ミスマッチやジッタの影響を受けず、高い転送レートが可能です。クロック周波数での安定性要件はまったくなく、信号はソフトウェアで簡単に生成できます。 SPIのもう一つの名前は、SSI、同期シリアルインタフェースです。代表的な4本のラインの配線は、次のようになります。

enter image description here

SCLKは、クロック信号です。 MOSIとMISOはデータを、SSはチップセレクト信号です。共通の根拠が想定される。この詳細についてはWikipedia articleをご覧ください。 electronics.stackexchange.comは、より多くの質問をする良いサイトです。

+1

本当にいい説明ですが、それは "オーバーサンプリング"ですか?私はサブサンプリングを関心率よりも低いと考えています。 – mtrw

+0

ありがとうございます。それはまさに私が探していたものです。 – jbh

+0

私はMcLovin 'それです。ありがとう。 – Coldblackice

0

SPIは双方向データプロトコルです。違いは、SPIはバイナリデータの交換を使用することです。また、UARTはASCIIを使用しているため、データ転送速度が非常に遅くなります。

0

previous answerはやや誤解を招きます。

SPIおよびUARTは、ハードウェアによってバイナリデータをバイトおよび/またはワードとして転送します。上で説明したように、一方は同期であり、一方は非同期である。両方とも双方向であるために余分なデータラインが必要です。 ASCIIはバイナリデータの合意された解釈であり、実際にはどちらの要素でもありません。