SPI最大傳輸速率【轉】


轉自:https://www.silabs.com/community/mcu/8-bit/knowledge-base.entry.html/2017/01/13/spi_-asc0

問題

SPI作為master或slave時可以達到的最大傳輸速率是多少 ?

答案

SPI最大傳輸速率受以下幾個條件影響:

  1. SPI的最大時鍾頻率
  2. CPU處理SPI數據的能力
  3. 輸出端驅動能力(PCB所允許的最大信號傳輸速率)

 

SPI的最大時鍾頻率

一般情況下,SPI模塊的最大時鍾頻率為系統時鍾頻率的1/2。雖然SPI的傳輸速率主要受限於CPU處理SPI數據的能力,但在同另一個非常高速率的SPI設備通訊時,SPI的最大時鍾頻率將有可能制約其傳輸速率。

 

CPU處理SPI數據的能力

通常情況下,考慮到系統中CPU有可能需要處理其他任務,以及對所接收SPI數據的具體運算處理方法,CPU處理SPI數據的能力將影響到整體的傳輸速率。

例如,系統在收到SPI數據后只是作簡單的累加。如果當前SPI模塊的時鍾頻率是1/2系統時鍾頻率,接收每一個SPI byte將需要16個系統時鍾周期。那么在下一筆SPI數據接收到之前CPU有足夠的時間來處理當前數據,此時SPI的最大傳輸速率即為系統時鍾的1/2。

接下來考慮另外一種情形,假設CPU有50%的時間用於處理其他任務,同時對所接收到的每byte SPI數據,需要100個系統時鍾周期來作運算處理。每接收1 byte SPI數據,CPU需要100個時鍾周期來作處理,同時需要100個時鍾周期來處理其他任務,因此總共需要消耗200個系統時鍾周期。用公式表達如下:

200 *Tsysclk = 8 * Tspiclk;

spiclk = sysclk/25;

因此,在這個例子中,我們可以看出SPI的最大傳輸速率由CPU處理SPI數據的能力所決定。

 

輸出端驅動能力

最后要考慮的因素是輸出節點的驅動力。PCB上的微量電容和器件引腳的輸出阻抗相結合,將會形成一個低通濾波器,限制設備間信號的傳輸速度。通常該濾波器的截止頻率可以近似為:

Fmax = 1 /(2 × π × Rdrive * Ctrace);

其中Rdrive是所驅動的最大阻抗值,Ctrace表示輸出節點所驅動的所有微量電容的總和。

在固定阻抗條件下,電路的微量電容將成為制約SPI傳輸速率的因素。系統中如果設備間的距離非常短(Ctrace較小值),那么CPU的處理能力或SPI的時鍾頻率將是主要限制因素。如果系統中總線上有多個SPI設備,同時設備間的連線很長(Ctrace較大值),那么輸出驅動能力將制約SPI的傳輸速率。

  • 8 位 MCU
  • Knowledge Base Articles
  • 接口
 

Level 6

 

Employee

Replied Mar 28 2017, 8:00 PM

 


免責聲明!

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



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