1. 程式人生 > >SPI通訊匯流排原理及工作過程

SPI通訊匯流排原理及工作過程

SPI, serial peripheral interface, 序列外圍裝置介面。高速的,全雙工的,同步通訊匯流排。有四個引腳:SDI(資料輸入)SDO(資料輸出)SCLK(時鐘)CS(片選)

應用:

常作為微控制器外設晶片序列擴充套件介面,主要應用於EEPROM,FLASH,實時時鐘,AD轉換器,數字訊號處理器和數字訊號解碼器之間。

通訊原理:

以主從方式工作

MOSI(SDO):主器件資料輸出,從器件資料輸入。
MISO(SDI)
:主器件資料輸入,從器件資料輸出。

 SCLK :時鐘訊號,由主器件產生。

SPI序列傳輸,資料一位一位從MSBLSB開始傳輸,產生相應的脈衝沿時,

MOSI,MISO才進行資料傳輸。
CS
:從器件使能訊號,由主器件控制。

      CS控制晶片是否被選中,只有片選訊號為實現約定的使能訊號時(高電位或地電位),對此晶片的操作才有效,這也就允許同一總線上連線多個SPI裝置。

工作過程:

SPI可以用全雙工通訊方式同時傳送和接收8(16)位資料,過程如下:

主機啟動傳送過程,送出時鐘脈衝訊號——>主移位暫存器的資料通過SDO移入到從移位暫存器,同時從移位寄存器中的資料通過SDI移人到主移位暫存器中——>8(16)個時鐘脈衝過後,時鐘停頓,主移位暫存器中的8(16)位資料全部移人到從移位暫存器中,隨即又被自動裝入從接收緩衝器中,從機接收緩衝器滿標誌位

(BF)和中斷標誌位(SSPIF)“1”。同理,從移位暫存器中的8位資料全部移入到主暫存器中,隨即又被自動裝入到主接收緩衝器中.主接收緩衝器滿標誌位(BF)和中斷標誌位(SSPIF)“1——>CPU檢測到主接收緩衝器的滿標誌位或者中斷標誌位置1後,就可以讀取接收緩衝器中的資料。同樣,從CPU檢測到從接收緩衝器滿標誌位或中斷標誌位置1後,就可以讀取接收緩衝器中的資料,這樣就完成了一次相互通訊過程。

SPI匯流排介面及時序

SPI輸出串行同步時鐘極性和相位可以根據外設工作要求進行配置。

CPOL = 0,串行同步時鐘的空閒狀態為低電平;

CPOL = 1,串行同步時鐘的空閒狀態為高電平;

時序如下


CPHA = 0,在串行同步時鐘的第一個跳變沿(上升或下降)資料將被取樣;

CPHA = 1,在串行同步時鐘的第二個跳變沿(上升或下降)資料將被取樣;

時序如下:

 

SPI主模組與與之通訊的外設空閒狀態的極性和時鐘相位應該一致。