簡介
高速、全雙工串行總線,使用四根線完成通信。數據一位一位的傳輸,高位先行。
有點:連線少
缺點:沒有應答機制
連線
一共四根線
SSEL:片選信號。低電平選中,可以用多個GPIO代替這個信號實現多從機通信。
SCLK:時鐘信號,由主機產生。
MOSI:主機給從機發送指令或者數據的通道。
MISO:主機讀取從機的狀態或者數據的通道。
傳輸協議
SPI通信的時候再SCLK邊沿採樣數據,常見的是SCLK上升沿主機發送數據,在SCLK下降沿主機接收數據,這稱作SPI的相位(CPHA: Clock Phase)。另外還有總線空閒的時候SCLK處在什麼電平,這稱作時鐘極性(CPOL:Clock Polarity)。由此就產生了四種組合。
- SCLK上升沿主機發送數據,下降沿接收數據,空閒時刻SCLK低電平:CPHA = 1,CPOL = 0
- SCLK上升沿主機發送數據,下降沿接收數據,空閒時刻SCLK高電平:CPHA = 1,CPOL = 1
- SCLK上升沿主機接收數據,下降沿發送數據,空閒時刻SCLK低電平:CPHA = 0,CPOL = 0
- SCLK上升沿主機接收數據,下降沿發送數據,空閒時刻SCLK高電平:CPHA = 0,CPOL = 1
時序圖:
四種模式的時序: