SPI通訊匯流排原理及工作過程
SPI, serial peripheral interface, 序列外圍裝置介面。高速的,全雙工的,同步通訊匯流排。有四個引腳:SDI(資料輸入),SDO(資料輸出),SCLK(時鐘),CS(片選)。
應用:
常作為微控制器外設晶片序列擴充套件介面,主要應用於EEPROM,FLASH,實時時鐘,AD轉換器,數字訊號處理器和數字訊號解碼器之間。
通訊原理:
以主從方式工作
MOSI(SDO):主器件資料輸出,從器件資料輸入。
MISO(SDI):主器件資料輸入,從器件資料輸出。
SCLK :時鐘訊號,由主器件產生。
SPI序列傳輸,資料一位一位從MSB或LSB開始傳輸,產生相應的脈衝沿時,
CS:從器件使能訊號,由主器件控制。
CS控制晶片是否被選中,只有片選訊號為實現約定的使能訊號時(高電位或地電位),對此晶片的操作才有效,這也就允許同一總線上連線多個SPI裝置。
工作過程:
SPI可以用全雙工通訊方式同時傳送和接收8(16)位資料,過程如下:
主機啟動傳送過程,送出時鐘脈衝訊號——>主移位暫存器的資料通過SDO移入到從移位暫存器,同時從移位寄存器中的資料通過SDI移人到主移位暫存器中——>8(16)個時鐘脈衝過後,時鐘停頓,主移位暫存器中的8(16)位資料全部移人到從移位暫存器中,隨即又被自動裝入從接收緩衝器中,從機接收緩衝器滿標誌位
SPI匯流排介面及時序
SPI輸出串行同步時鐘極性和相位可以根據外設工作要求進行配置。
若CPOL = 0,串行同步時鐘的空閒狀態為低電平;
若CPOL = 1,串行同步時鐘的空閒狀態為高電平;
時序如下
若CPHA = 0,在串行同步時鐘的第一個跳變沿(上升或下降)資料將被取樣;
若CPHA = 1,在串行同步時鐘的第二個跳變沿(上升或下降)資料將被取樣;
時序如下:
SPI主模組與與之通訊的外設空閒狀態的極性和時鐘相位應該一致。