天天看點

一文搞懂SPI的傳輸時序

一文搞懂SPI的傳輸時序

《《《《《正文》》》》》

《SPI概念》

SPI(Serial Peripheral Interface,串行外設接口)是一種高速、全雙工、同步通信總線,常用于短距離通訊,主要應用于 EEPROM、FLASH、實時時鐘、AD 轉換器、還有數字信号處理器和數字信号解碼器之間。SPI 一般使用 4 根線通信(當然也有3根的,本質上沒有差別,主要差別在于時序組合的意義不同),如下圖所示:

一文搞懂SPI的傳輸時序
  • MOSI –主機輸出 / 從機輸入資料線(SPI Bus Master Output/Slave Input)。
  • MISO –主機輸入 / 從機輸出資料線(SPI Bus Master Input/Slave Output)。
  • SCLK –串行時鐘線(Serial Clock),主裝置輸出時鐘信号至從裝置。
  • CS –從裝置選擇線 (Chip select)。也叫 SS、CSB、CSN、EN 等,主裝置輸出片選信号至從裝置。

《SPI通信模式》

SPI 以主從方式工作,通常有一個主裝置和一個或多個從裝置。通信由主裝置發起,主裝置通過 CS(片選腳) 選擇要通信的從裝置,然後通過 SCLK 給從裝置提供時鐘信号,資料通過 MOSI 輸出給從裝置,同時通過 MISO 接收從裝置發送的資料。

如下圖所示晶片有 2 個 SPI 控制器,SPI 控制器對應 SPI 主裝置,每個 SPI 控制器可以連接配接多個 SPI 從裝置。挂載在同一個 SPI 控制器上的從裝置共享 3 個信号引腳:SCK、MISO、MOSI,但每個從裝置的 CS 引腳是獨立的。

一文搞懂SPI的傳輸時序

主裝置通過控制 CS 引腳對從裝置進行片選,一般為低電平有效。任何時刻,一個 SPI 主裝置上隻有一個 CS 引腳處于有效狀态,與該有效 CS 引腳連接配接的從裝置此時可以與主裝置通信。

《SPI傳輸時序》

從裝置的時鐘由主裝置通過 SCLK 提供,MOSI、MISO 則基于此脈沖完成資料傳輸。

SPI 的工作時序模式由 CPOL(Clock Polarity,時鐘極性)和 CPHA(Clock Phase,時鐘相位)之間的相位關系決定。CPOL 表示時鐘信号的初始電平的狀态(就是空閑狀态),CPOL 為 0 表示時鐘信号初始狀态為低電平,為 1 表示時鐘信号的初始電平是高電平。CPHA 表示在哪個時鐘沿采樣資料,CPHA 為 0 表示在首個時鐘變化沿采樣資料,而 CPHA 為 1 則表示在第二個時鐘變化沿采樣資料。

根據 CPOL 和 CPHA 的不同組合共有 4 種工作時序模式:

①CPOL=0,CPHA=0

②CPOL=0,CPHA=1

③CPOL=1,CPHA=0

④CPOL=1,CPHA=1

時序組合如下圖所示:

一文搞懂SPI的傳輸時序