SPI協議是由摩托羅拉公司提出的通訊協議(Serial Peripheral Interface),即序列外設介面。廣泛用在ADC、LCD等裝置與MCU間,要求通訊速率較高的場合。區分它與I2C協議差異以及FLASH儲存器與EEPROM儲存器的區別。下面我們分別對SPI協議的物理層及協議層進行講解。
物理層
SS低電平工作(工作啟動線)
SCK時鐘線(公用時鐘線)
MISO:master input slave output(資料傳輸線1)
MOSI:master output slave input(資料傳輸線2)
協議層
SPI協議定義了通訊的起始和停止訊號、資料有效性、時鐘同步等環節。
標號1處,NSS訊號線由高變低,是SPI通訊的起始訊號。從機開始工作。
標號6處,NSS訊號由低變高,是SPI通訊的停止訊號,表示本次通訊結束,從機的選中狀態被取消。
CPOL/CPHA時鐘作用模式
CPOL是限定SCK的工作模式,CPOL=0上升沿取樣;CPOL=1下降沿取樣。
CPHA也是限定SCK工作模式,CPHA=0奇數邊沿取樣,CPHA=1偶數邊沿取樣。
模式0和3比較常用。
23.2.1 SPI特徵
-
3線全雙工同步傳輸
-
帶或不帶第三根雙向資料線的雙線單工同步傳輸
-
8或16位傳輸幀格式選擇
-
主或從操作
-
支援多主模式
-
8個主模式波特率預分頻係數(最大為fPcux/2)從模式頻率(最大為fPcLx/2)
-
主模式和從模式的快速通訊
-
主模式和從模式下均可以由軟體或硬體進行NSS管理:主/從操作模式的動態改變可程式設計的時鐘極性和相位
-
可程式設計的資料順序,MSB在前或LSB在前可觸發中斷的專用傳送和接收標誌
-
SPI匯流排忙狀態標誌
-
支援可靠通訊的硬體CRC
-
一在傳送模式下,CRC值可以被作為最後一個位元組傳送
-
一在全雙工模式中對接收到的最後一個位元組自動進行CRC校驗可觸發中斷的主模式故障、過載以及CRC錯誤標誌
支援DMA功能的1位元組傳送和接收緩衝器:產生髮送和接受請求