SPI是Serial Peripheral Interface的簡(jiǎn)稱,是由Motorola公司推出的一種高速、全雙工的總線協(xié)議,可以實(shí)現(xiàn)一對(duì)一、一對(duì)多芯片通信。
SPI由SCLK、CS/SSEL、MOSI,MISO四根線組成,
SCLK,時(shí)鐘信號(hào),時(shí)鐘頻率即SPI速率,和SPI模式有關(guān);
MOSI,主機(jī)輸出,從機(jī)輸入;
MISO,主機(jī)輸入,從機(jī)輸出;
CS/SSEL,從機(jī)設(shè)備選擇,低電平有效;
多從機(jī)模式
如果主機(jī)有多個(gè)片選CS端口,可采用下圖模式,主機(jī)只能獲取一個(gè)從機(jī)的MISO信號(hào),其它從機(jī)輸出信號(hào)須為高阻。

菊花鏈連接,節(jié)省GPIO、節(jié)省布線面積,但需要保證從機(jī)支持菊花鏈模式。

菊花鏈的數(shù)據(jù)傳輸時(shí)序:通過移位 送達(dá)數(shù)據(jù)。

QSPI協(xié)議
QSPI協(xié)議讀寫時(shí)序:

注意,很多人寫公眾號(hào)都沒說清楚,為什么SPI能做到全雙工,而有些QSPI不能呢?
因?yàn)閺南旅鏁r(shí)序圖可看到,發(fā)送時(shí),待發(fā)送數(shù)據(jù)的一組8bit寄存器只在下降沿向左移位(高位先發(fā),低位補(bǔ)充0即可),那么必然存在另一組8bit寄存器用以在上升沿接收數(shù)據(jù),這樣就可以構(gòu)成全雙工,而QSPI一般用FIFO/SRAM進(jìn)行數(shù)據(jù)傳輸,基于成本考慮,一般只能半雙工。
SPI工作模式
根據(jù)時(shí)鐘極性CPOL(Clock Polarity)、時(shí)鐘相位CPHA(Clock Phase),SPI有4種模式,最廣泛使用的是模式0和3:

官方時(shí)序圖如下:


CPOL=0CPHA=0(常用)
CPOL=0,SPICLK空閑狀態(tài)為低電平;
CPHA=0,SPICLK第一個(gè)邊沿(上升沿)采集數(shù)據(jù)、第二個(gè)沿輸出數(shù)據(jù);

CPOL=1,CPHA=1 (常用)
CPOL=1,SPICLK空閑狀態(tài)為高電平;
CPHA=1,SPICLK第二個(gè)邊沿(上升沿)采集數(shù)據(jù)、第三個(gè)沿輸出數(shù)據(jù);

CPOL=0,CPHA=1(不常用)
CPOL=0,SPICLK空閑狀態(tài)為低電平;
CPHA=1,SPICLK第二個(gè)邊沿(下升沿)采集數(shù)據(jù)、第三個(gè)沿輸出數(shù)據(jù);
CPOL=1,CPHA=0
(不常用)
CPOL=1,SPICLK空閑狀態(tài)為高電平;
CPHA=0,SPICLK第一個(gè)邊沿(下升沿)采集數(shù)據(jù)、第二個(gè)沿輸出數(shù)據(jù);
感謝閱讀,別走!點(diǎn)贊、關(guān)注、轉(zhuǎn)發(fā)后再走吧
審核編輯 :李倩
-
通信協(xié)議
+關(guān)注
關(guān)注
28文章
1092瀏覽量
42181 -
寄存器
+關(guān)注
關(guān)注
31文章
5608瀏覽量
130011 -
SPI
+關(guān)注
關(guān)注
17文章
1885瀏覽量
101293
原文標(biāo)題:詳解SPI通信協(xié)議
文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
常用的串口通信協(xié)議之SPI協(xié)議簡(jiǎn)析
SPI通信協(xié)議
SPI通信協(xié)議的基礎(chǔ)知識(shí)解析
SPI是什么?SPI通信協(xié)議說明
通信協(xié)議:SPI
通信協(xié)議(SPI)
Arduino UNO上的SPI通信協(xié)議
通信協(xié)議IIC與SPI之間有何區(qū)別?
SPI通信協(xié)議原理是什么
詳解SPI通信協(xié)議
評(píng)論