SPI協議

lethe1203發表於2024-03-19
學習資料來源:https://www.bilibili.com/video/BV14o4y1Y7A1?p=13&vd_source=432ba293ecfc949a4174ab91ccc526d6
SPI(serial peripheral interface)是序列外設介面的縮寫,SPI是一種高速的、全雙工、同步的序列通訊匯流排;SPI採用主從方式工作,一般有一個主裝置和多個從裝置;SPI需要至少4根線,分別是MISO(主裝置輸入從裝置輸出)、MOSI(主裝置輸出從裝置輸入)、SCLK(時鐘)、CS(片選),SPI使用引腳較少且佈線方便。如下圖:
當一個匯流排被多個主機佔用,管理者就是主機。

定址方式:

當主裝置要和某個從裝置進行通訊時,主裝置需要先向對應的從裝置的片選線上傳送使能訊號(高電平或者低電平,根據從機而定)表示選中該從裝置。IIC開始通訊先傳送一個位元組就是從機的地址。
0
一般CS槓表示低電平有效

通訊過程:

SPI匯流排在進行資料傳送時,先傳送高位,後傳送低位;資料線為高電平表示邏輯“1”,低電平表示邏輯“0”;一個位元組傳送完成後無需應答即可開始下一個位元組的傳送;SPI匯流排採用同步方式工作,時鐘線在上升沿和下降沿時傳送器向資料線上傳送資料,在緊接著的下降沿或上升沿時接收器從資料線上讀取資料,完成一位資料傳送,八個時鐘週期即可完成一個位元組資料的傳送:
0
例如:時鐘線下降沿,傳送器發資料,時鐘先上升沿,接收器收資料
IIC:低電平發資料,高電平收資料
SPI匯流排沒有停止和起始訊號,也沒有應答訊號

極性與相位:

SPI匯流排有四種不同的工作模式,取決於極性和相位這兩個因素
極性表示SCLK空閒時的狀態
極性為0,空閒時SCLK為低電平
極性為1,空閒時SCLK為高電平
相位表示取樣時刻
相位為0,每個週期的第一個時鐘沿取樣
相位為1,每個週期的第二個時鐘沿取樣
白話來說就是,極性就是高電平為0還是1,相位表示低電平取樣還是高電平取樣。所以SPI有四種不同的工作模式

IIC與SPI的相同點和不同點:

相同點:
1、均採用序列、同步的方式
2、均採用TTL電平,傳輸舉例和應用場景類似,不適合長距離通訊
3、均採用主從方式工作
不同點:
1、IIC為半雙工,SPI為全雙工
2、IIC有應答機制,SPI無應答機制
3、IIC透過向匯流排廣播從機地址來進行定址,SPI透過片選定址。這樣導致SPI引腳比較多,通訊快。IIC引腳少,通訊較慢
4、IIC的時鐘極性和時鐘相位固定,SPI的時鐘極性和時鐘相位可調
SPI示波器測量波形:
0

相關文章