「シリアル・ペリフェラル・インタフェース」の版間の差分

削除された内容 追加された内容
31行目:
[[File:SPI 8-bit circular transfer.svg|upright=1.8|thumb|典型的なハードウェア構成。2つの[[シフトレジスタ]]が、チップ間の[[リングバッファ]]を形成する ]]
 
通信を始めるために、マスタは、スレーブがサポートする周波数(典型的には数MHz)のクロック信号を生成する。その後、マスタは該当するスレーブのSS線の論理レベルを0にして、スレーブを選択する。もし、待ち時間がスレーブから要求されているなら(例えばアナログからディジタルへの変換のため)、マスタは、クロック信号を発信する前に、少なくとも要求されている時間は待たなければならない。
 
SPIの各クロックの間に、全二重データ送信が行われる。マスタはMOSI線上で1ビットを送信し、スレーブがそれを読み込む。その間、スレーブはMISO線上で1ビット送信し、マスタがそれを読み込む。この一連の処理は、たとえ一方通行のデータ送信を目的としていても維持される。
 
通常、送信には、8ビットなど、特定のワードサイズの2つのシフトレジスタが用いられる。1つはマスターに、もう1つはスレーブに配置される。これらのレジスタは、仮想的なリング状に接続される。データは通常、最上位ビットが最初にシフトアウトされます。クロックエッジで、マスターとスレーブの両方がビットをシフトアウトし、伝送ライン上で向かい合う相手に出力します。次のクロックエッジで、各レシーバーで伝送ラインからビットがサンプリングされ、シフトレジスタの新しい最下位ビットとして設定されます。レジスタの全ビットがシフトインおよびシフトアウトされた後には、マスターとスレーブはレジスタ値を交換した状態になります。さらにデータを交換する必要がある場合、シフトレジスタがリロードされ、この一連の処理が繰り返されます。送信は、任意の数のクロックサイクルにわたって継続できます。完了すると、マスターはクロック信号のLowとHighの切り替えを停止し、通常はスレーブの選択を解除します。
 
== アーキテクチャおよび通信タイミング ==