SPI接口

SPI接口

通信總線
SPI(Serial Peripheral Interface--串行外設接口)總線系統是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息。[1]SPI有三個寄存器分别為:控制寄存器SPCR,狀态寄存器SPSR,數據寄存器SPDR。外圍設備包括FLASHRAM、網絡控制器、LCD顯示驅動器、A/D轉換器和MCU等。SPI總線系統可直接與各個廠家生産的多種标準外圍器件直接接口,該接口一般使用4條線:串行時鐘線(SCLK)、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線NSS(有的SPI接口芯片帶有中斷信号線INT、有的SPI接口芯片沒有主機輸出/從機輸入數據線MOSI)。
  • 中文名:串行外設接口
  • 外文名:Serial Peripheral Interface(SPI)
  • 所屬品牌:
  • 簡稱:SPI
  • 類别:接口

應用

SPI接口的全稱是"SerialPeripheralInterface",意為串行外圍接口,是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在EEPROM、FLASH、實時時鐘、AD轉換器,還有數字信号處理器和數字信号解碼器之間。

SPI接口是在CPU和外圍低速器件之間進行同步串行數據傳輸,在主器件的移位脈沖下,數據按位傳輸,高位在前,低位在後,為全雙工通信,數據傳輸速度總體來說比I2C總線要快,速度可達到幾Mbps。

特點

SPI一共有11位有用信号,每位信号差分成兩個信号用來提高傳輸抗幹擾性,在物理連接上用标準25芯D型插頭座(DB25)傳輸,因此連線多且複雜,傳輸距離短,容易出現故障。而ASI(異步串行接口)用串行傳輸,隻需要一根同軸電纜線,連線簡單,傳輸距離長。

接口信号

(1)MOSI–主器件數據輸出,從器件數據輸入

(2)MISO–主器件數據輸入,從器件數據輸出

(3)SCLK–時鐘信号,由主器件産生,最大為fPCLK/2,從模式頻率最大為fCPU/2

(4)NSS–從器件使能信号,由主器件控制,有的IC會标注為CS(Chipselect)

在點對點的通信中,SPI接口不需要進行尋址操作,且為全雙工通信,顯得簡單高效。在多個從器件的系統中,每個從器件需要獨立的使能信号,硬件上比I2C系統要稍微複雜一些。

SPI接口在内部硬件實際上是兩個簡單的移位寄存器,傳輸的數據為8位,在主器件産生的從器件使能信号和移位脈沖下,按位傳輸,高位在前,低位在後。如下圖所示,在SCLK的上升沿上數據改變,同時一位數據被存入移位寄存器。

原理圖

最後,SPI接口的一個缺點:沒有指定的流控制,沒有應答機制确認是否接收到數據。

工作模式

SPI有四種工作模式,各個工作模式的不同在與SCLK不同,具體工作由CPOL,CPHA決定

CPOL:(ClockPolarity),時鐘極性

當CPOL為0時,時鐘空閑idle時候的電平是低電平;

當CPOL為1時,時鐘空閑idle時候的電平是高電平;

CPHA:(ClockPhase),時鐘相位

當CPHA為0時,時鐘周期的前一邊緣采集數據;

當CPHA為1時,時鐘周期的後一邊緣采集數據;

CPOL和CPHA,分别都可以是0或時1,對應的四種組合就是:

四種工作模式下的SCLK表現如下:

紅線表示采集數據,下面的一個例子是S3C2440上面SPI控制器的總線範例:

相關詞條

相關搜索

其它詞條