1. 程式人生 > 其它 >SPI通訊協議介面概述

SPI通訊協議介面概述

一、 spi的概述

SPI是序列外設介面(Serial Peripheral Interface)的縮寫,是一種高速的,全雙工,同步的通訊匯流排,它是由Motorola公司推出,用來在微控制器和外圍裝置晶片之間實現資料交換的低成本、易使用的介面。SPI匯流排為同步序列資料傳輸匯流排,用於微控制器的外圍拓展。spi利用時鐘線對資料位進行同步,時鐘的上升沿或下降沿鎖存資料,來自主機或從機的資料在時鐘上升沿或下降沿同步,主機和從機可以同時傳輸資料。

二、 spi的配置

spi可以是三線式的也可以是四線式的

1、三線制半雙工SPI可以分時收發

SCLK序列時鐘

CS或SS外設片選或從機選擇

DIO資料線,輸入與輸出共用

2、四線制全雙工SPI可同時收發

MISO主機輸入/從機輸出

MOSI主機輸出/從機輸入

SCLK序列時鐘

CS/SS外設片選或從機選擇

來自主機的片選訊號CS是從晶片是否被主晶片選中的控制訊號,這通常式一個低電平有效,拉高時從機與SPI匯流排斷開連線,當使用多個從機時,主機需要為每個從機提供單獨的片選訊號,產生時鐘訊號的器件稱為主機

三、 spi的資料傳輸

通訊是通過資料交換完成的,這裡先要知道SPI是序列通訊協議,也就是說資料是一位一位的傳輸的。這就是SCLK時鐘線存在的原因,由SCLK提供時鐘脈衝,SDI,SDO則基於此脈衝完成資料傳輸。資料輸出通過 SDO線,資料在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成一位資料傳輸,輸入也使用同樣原理。因此,至少需要8次時鐘訊號的改變(上沿和下沿為一次),才能完成8位資料的傳輸。(源自百度百科)

四、 時鐘極性和時鐘相位

在spi的概述中我們講spi利用時鐘線對資料位進行同步,時鐘的上升沿或下降沿鎖存資料,那麼主機就需要根據從機的要求去選擇時鐘極性和時鐘相位。根據CPOL和CPHA位的選擇,有四種SPI模式可用。

CKPOL (Clock Polarity) (時鐘)極性:SPI空閒時的時鐘訊號電平(1高電平,0低電平)

CKPHA (Clock Phase) (時鐘)相位:SPI在時鐘的第幾個邊沿取樣(1第二個邊沿開始,0第一個邊沿開始)

參考:SPI程式碼實現_嗶哩嗶哩_bilibili

參考:SPI(SPI協議)_百度百科 (baidu.com)