
隨著科技的演進, 在單晶片微控制器及 SoC 的領域中, SPI 及 I2C 這二種串列 (序列) 介面變得十分常見. 這二者與主機間通訊用的非同步串列通訊埠 RS-232 (UART) 非常不一樣
二個都是
同步傳輸介面, 主要是用於 CPU 和週邊晶片之間.
SPI 及 I
2C 二者設計的主要目的在於減少 CPU 和週邊晶片之間的接腳數.
SPI 一般需要 4 條接線 (至少三條), 而 I
2C 則只要二條線, 這和早期常用的並列匯流排動輒十數條接線有著明顯的差異.
SPI 的硬體結構簡單而且傳輸速度快, 一般是 5M/10M/20Mbps 或是更快 (可以到 200Mbps), I
2C 的傳輸速度則只有 100Kbps/400Kbps/1Mbps(/3.4Mbps/單向5Mbps).
SPI 是全雙工, I
2C 則是半雙工.
SPI 使用硬體線路來指定 slave 晶片, I
2C 則在傳送的第一個位元組上指定 (7bit位址).
SPI 不提供交握機制, 無法確認 slave 晶片是否有跟上. I
2C 則有雙向的確認機制.