2017-04-15 72 views
-3
  1. 我想知道SPI和I2C通信協議哪一個是 更快?我在一篇文章中看到SPI的速度更快,但他們爲什麼沒有給出解釋呢?這是否是因爲與I2C相比,SPI的開銷更低(如開始,確認,停止)?
  2. 哪一個更好?我已經看到,ADC主要是SPI 是首選,但爲什麼?對於Flash來說,我也主要使用SPI 協議,但對於SPI和I2C傳感器。現在,是什麼使得 決定一個外設我應該去SPI和 另一個I2C是首選?
+1

關於I2C的其他壞處,它使用只有3mA的開路集電極,而SPI使用全推輓,這使得SPI更少出錯。 – 12431234123412341234123

+1

您可能通過問「有什麼區別......」而不是哪個更好,保存了這個問題。有點問題,他們仍然會更合適,你似乎迷路了;這是這個問題的錯誤地點;請嘗試http://electronics.stackexchange.com/ – Clifford

+0

當外設具有I2C和SPI並且具有SPI時,可以使用I2C。如果它不是性能關鍵(例如LCD顯示器),那麼它可能支持在同一芯片上。或者有一個版本和另一個版本。對於需要表現的事情,他們會有spi。 –

回答

3

更好的問題是我什麼時候應該使用I2C以及何時應該使用SPI。與工程總是一樣,兩種協議都有不同的優缺點。我將它們在下面進行了比較,以便您能夠評估什麼更符合您的要求。

我自己的快速比較:

I2C vs SPI by Krystian Sakowski

補充說明:

  • SPI通常用於從設備,其中速度事項例如ADC外圍設備,FLASH存儲器等。
  • I2C通常用於從屬設備,這些從設備在I2C速度約束條件下很好,或者像傳感器那樣慢,可能需要較長時間才能獲得測量結果。帶I2C的流行溫度和溼度傳感器HTU21-D執行3-16 [ms]之間的測量(此時間取決於所選的測量分辨率)。
  • Post explaining I2C Bus Length constrains.
  • Post explaining why SPI is faster than I2C

PS:

  • 最快的ADC外設不使用I2C或SPI。他們使用並行I/O。
  • 請記住,對於簡單的(愛好)項目它通常沒有關係,你會沒事的任何一個。
+0

超過1米的I2C也很差(容易出錯,或者需要額外的工作來防止它),我不會使用I2C超過20釐米。 – 12431234123412341234123

+0

好點。校驗和或至少奇偶校驗位總是有用的,對於更長的距離更是如此。 –

+0

@KrystianSakowski:我曾經參與過一個項目,該項目使用SPI遠距離傳輸,並且錯誤被認爲是來自系統中重負載的干擾,團隊添加了錯誤檢查和重試協議層,並且仍然不可靠。最後所有的錯誤都由軟件引入;一旦SPI驅動程序中的基本錯誤得到修復,錯誤檢查/重試內容就變得多餘了。所以我的觀點是,在添加代碼以處理信號完整性和干擾問題之前,在電氣良好的環境中對其進行短距離測試。 – Clifford

相關問題