SPI接口的全稱是"Serial Peripheral Interface",意為串行外圍接口,是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在EEPROM、FLASH、實時時鐘、AD轉換器,還有數字信號處理器和數字信號解碼器之間。
SPI接口是在CPU和外圍低速器件之間進行同步串行數據傳輸,在主器件的移位脈沖下,數據按位傳輸,高位在前,低位在後,為全雙工通信,數據傳輸速度總體來說比I2C總線要快,速度可達到幾Mbps。
編輯本段接口包括以下四種信號:
(1)MOSI – 主器件數據輸出,從器件數據輸入
(2)MISO – 主器件數據輸入,從器件數據輸出
(3)SCLK – 時鐘信號,由主器件產生
(4)NSS – 從器件使能信號,由主器件控制,有的IC會標註為CS(Chip select)
在點對點的通信中,SPI接口不需要進行尋址操作,且為全雙工通信,顯得簡單高效。 多個從器件硬件連接示意圖在多個從器件的系統中,每個從器件需要獨立的使能信號,硬件上比I2C系統要稍微復雜壹些。
SPI接口在內部硬件實際上是兩個簡單的移位寄存器,傳輸的數據為8位,在主器件產生的從器件使能信號和移位脈沖下,按位傳輸,高位在前,低位在後。如下圖所示,在SCLK的下降沿上數據改變,同時壹位數據被存入移位寄存器。