嵌入式系統

串列周邊介面(SPI)

SPI 是晶片對晶片串列通訊的快車道:一條共用時脈(SCLK)、兩條資料線(各走一個方向,MOSI 與 MISO),再為每個周邊各拉一條獨立的晶片選擇線。因為控制器驅動一條明確的時脈,雙方總在完全相同的瞬間取樣位元——正是這種同步性讓 SPI 能跑到數十 MHz,比 I²C 快上數十倍。想像兩個人在面對面、完全同步移動的輸送帶上互傳珠子:一邊送出一顆,另一邊正好收到,於是每個時脈節拍都同時雙向交換一個位元(全雙工)。

要和某個特定裝置溝通,控制器就把該裝置的晶片選擇線(CS/SS)拉低;CS 為高電位的裝置則完全忽略匯流排。這讓 SPI 既簡單又快——沒有位址、沒有確認,只在每個時脈邊緣移位元——但代價是腳位:每多一個周邊就要多一條 CS 線,所以十個裝置就是十條選擇線加上三條共用線。凡是要搬大量資料的場合,SPI 都是首選:SD 卡、TFT 顯示器、快速 ADC、快閃記憶體晶片、無線電模組。它與 I²C 的取捨正是經典的嵌入式設計抉擇——速度與簡單,對上腳位數量與接線。

SPI 與 I²C 一句話分辨:SPI 每次傳輸更快更簡單,但每個裝置要燒一條晶片選擇腳;I²C 靠定址讓所有裝置只用兩條線,但較慢也較囉嗦。顯示器與 SD 卡選 SPI,一群慢速感測器選 I²C。

又稱
serial peripheral interfacefour-wire serial四線串列