SPI(Serial Peripheral Interface--串列外設介面)匯流排系統是一種同步串列外設介面,它可以使MCU與各種外圍設備以串列方式進行通信以交換信息。SPI匯流排可直接與各個廠家生產的多種標準外圍器件相連,包括FLASHRAM、網路控制器、LCD顯示驅動器、A/D轉換器和MCU等。 ...
SPI(Serial Peripheral Interface--串列外設介面)匯流排系統是一種同步串列外設介面,它可以使MCU與各種外圍設備以串列方式進行通信以交換信息。SPI匯流排可直接與各個廠家生產的多種標準外圍器件相連,包括FLASHRAM、網路控制器、LCD顯示驅動器、A/D轉換器和MCU等。
SPI介面是在CPU和外圍低速器件之間進行同步串列數據傳輸,在主器件的移位脈衝下,數據按位傳輸,高位在前,低位在後,為全雙工通信,數據傳輸速度總體來說比I2C匯流排要快,速度可達到幾Mbps。
1.介面信號
該介面一般使用4條線:串列時鐘線(SCLK)、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線NS。
圖1:主從機結構
2.工作模式
SPI在SCLK控制下通過移位寄存器,每個sclk時鐘周期傳輸1bit的數據,其具體數據傳輸模式可查看SPI匯流排協議及SPI時序圖詳解這篇文章。
有四種工作模式,各個工作模式的不同在於SCLK不同, 具體工作由時鐘極性CPOL(Clock Polarity),時鐘相位CPHA(Clock Phase)決定
CPOL:決定時鐘空閑時的電平為高或低;
1 = 時鐘低電平時有效,空閑時為高
0 = 時鐘高電平時有效,空閑時為低
CPHA:定義SPI數據傳輸的兩種基本模式
0=時鐘周期的上升沿採集數據,時鐘周期的下降沿輸出數據;
1=時鐘周期的下降沿採集數據,時鐘周期的上升沿輸出數據; 時序圖: