(轉) SPI時序詳解


1、什么是SPI?

  SPI是串行外設接口(Serial Peripheral Interface)的縮寫,是 Motorola 公司推出的一 
  種同步串行接口技術,是一種高速的,全雙工,同步的通信總線。

2、SPI優點

  支持全雙工通信
  通信簡單
  數據傳輸速率塊

3、缺點

  沒有指定的流控制,沒有應答機制確認是否接收到數據,所以跟IIC總線協議比較在數據 
  可靠性上有一定的缺陷。

4、特點

  (1):高速、同步、全雙工、非差分、總線式
  (2):主從機通信模式

5、SPI 電路連接

  (1):SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設備和一個或多 
  個從設備,需要至少4根線,事實上3根也可以(單向傳輸時)。也是所有基於SPI的設備共 
  有的,它們是SDI(串行數據輸入 Serial Digital IN)、SDO(串行數據輸出 Serial Digital OUT)、SCLK(時鍾)、CS(片選)。

  (2):SDO/MOSI – 主設備數據輸出,從設備數據輸入

  (3):SDI/MISO – 主設備數據輸入,從設備數據輸出

  (4):SCLK – 時鍾信號,由主設備產生;

  (5):CS/SS – 從設備使能信號,由主設備控制。當有多個從設備的時候,因為每個從設 
  備上都有一個片選引腳接入到主設備機中,當我們的主設備和某個從設備通信時將需要將 
  從設備對應的片選引腳電平拉低或者是拉高。

        


 6、SPI通信模式分析 

  SPI通信有4種不同的模式,不同的從設備可能在出廠是就是配置為某種模式, 這是不能改變的,
  但我們的通信雙方必須是工作在同一模式下,所以我們可以對我們的主設備的SPI模式進行配置,
  通過CPOL(時鍾極性)和CPHA(時鍾相位)來控制我們主設備的通信模式。

  具體模式具體如下:
  Mode0:CPOL=0,CPHA=0
  Mode1:CPOL=0,CPHA=1
  Mode2:CPOL=1,CPHA=0
  Mode3:CPOL=1,CPHA=1

  時鍾極性CPOL是用來配置SCLK的電平出於哪種狀態時是空閑態或者有效態,時鍾相位CPHA 
  是用來配置數據采樣是在第幾個邊沿

  CPOL=0,表示當SCLK=0時處於空閑態,所以有效狀態就是SCLK處於高電平時
  CPOL=1,表示當SCLK=1時處於空閑態,所以有效狀態就是SCLK處於低電平時
  CPHA=0,表示數據采樣是在第1個邊沿,數據發送在第2個邊沿
  CPHA=1,表示數據采樣是在第2個邊沿,數據發送在第1個邊沿

  SPI主模塊和與之通信的外設通信時,兩者的時鍾相位和極性應該保持一致。

 7、SPI 時序詳解

  CPOL=0,CPHA=0:此時空閑態時,SCLK處於低電平,數據采樣是在第1個邊沿,也就是 
  SCLK由低電平到高電平的跳變,所以數據采樣是在上升沿,數據發送是在下降沿。

  CPOL=0,CPHA=1:此時空閑態時,SCLK處於低電平,數據發送是在第1個邊沿,也就是 
  SCLK由低電平到高電平的跳變,所以數據采樣是在下降沿,數據發送是在上升沿。

  CPOL=1,CPHA=0:此時空閑態時,SCLK處於高電平,數據采集是在第1個邊沿,也就是 
  SCLK由高電平到低電平的跳變,所以數據采集是在下降沿,數據發送是在上升沿。

  CPOL=1,CPHA=1:此時空閑態時,SCLK處於高電平,數據發送是在第1個邊沿,也就是 
  SCLK由高電平到低電平的跳變,所以數據采集是在上升沿,數據發送是在下降沿。

  

  注意:SPI 主設備能夠控制時鍾信號,因為SPI 通信並不像UART或者IIC通信那樣有 
  專門的通信周期、通信起始信號、通信結束信號;所以SPI 協議只能通過控制時鍾信
  號線,在沒有數據交流的時候,時鍾線要么是保持高電平,要么是保持低電平
  

例:工作在模式0這種時序(CPOL=0,CPHA=0),如下:

   我們來關注SCK的第一個時鍾周期,在時鍾的前沿采樣數據(上升沿,第一個時鍾沿),在時鍾的后沿輸出數據(下降沿,第二個時鍾沿)。首先來看主器件,主器件的輸出口(MOSI)輸出的數據bit1,在時鍾的前沿被從器件采樣,那主器件是在何時刻輸出bit1的呢?bit1的輸出時刻實際上在SCK信號有效以前,比SCK的上升沿還要早半個時鍾周期。bit1的輸出時刻與SSEL信號沒有關系。再來看從器件,主器件的輸入口MISO同樣是在時鍾的前沿采樣從器件輸出的bit1的,那從器件又是在何時刻輸出bit1的呢。從器件是在SSEL信號有效后,立即輸出bit1,盡管此時SCK信號還沒有起效。

 

  從這張圖就可以很清楚的看出主從器件的bit1是怎樣輸出的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM