SPI是Serial Peripheral Interface的簡稱,是由Motorola公司推出的一種高速、全雙工的總線協(xié)議,可以實(shí)現(xiàn)一對一、一對多芯片通信。
SPI由SCLK、CS/SSEL、MOSI,MISO四根線組成,
SCLK,時鐘信號,時鐘頻率即SPI速率,和SPI模式有關(guān);
MOSI,主機(jī)輸出,從機(jī)輸入;
MISO,主機(jī)輸入,從機(jī)輸出;
CS/SSEL,從機(jī)設(shè)備選擇,低電平有效;
多從機(jī)模式
如果主機(jī)有多個片選CS端口,可采用下圖模式,主機(jī)只能獲取一個從機(jī)的MISO信號,其它從機(jī)輸出信號須為高阻。
菊花鏈連接,節(jié)省GPIO、節(jié)省布線面積,但需要保證從機(jī)支持菊花鏈模式。
菊花鏈的數(shù)據(jù)傳輸時序:通過移位 送達(dá)數(shù)據(jù)。
QSPI協(xié)議
QSPI協(xié)議讀寫時序:
注意,很多人寫公眾號都沒說清楚,為什么SPI能做到全雙工,而有些QSPI不能呢?
因?yàn)閺南旅鏁r序圖可看到,發(fā)送時,待發(fā)送數(shù)據(jù)的一組8bit寄存器只在下降沿向左移位(高位先發(fā),低位補(bǔ)充0即可),那么必然存在另一組8bit寄存器用以在上升沿接收數(shù)據(jù),這樣就可以構(gòu)成全雙工,而QSPI一般用FIFO/SRAM進(jìn)行數(shù)據(jù)傳輸,基于成本考慮,一般只能半雙工。
SPI工作模式
根據(jù)時鐘極性CPOL(Clock Polarity)、時鐘相位CPHA(Clock Phase),SPI有4種模式,最廣泛使用的是模式0和3:
官方時序圖如下:
CPOL=0CPHA=0(常用)
CPOL=0,SPICLK空閑狀態(tài)為低電平;
CPHA=0,SPICLK第一個邊沿(上升沿)采集數(shù)據(jù)、第二個沿輸出數(shù)據(jù);
CPOL=1,CPHA=1 (常用)
CPOL=1,SPICLK空閑狀態(tài)為高電平;
CPHA=1,SPICLK第二個邊沿(上升沿)采集數(shù)據(jù)、第三個沿輸出數(shù)據(jù);
CPOL=0,CPHA=1(不常用)
CPOL=0,SPICLK空閑狀態(tài)為低電平;
CPHA=1,SPICLK第二個邊沿(下升沿)采集數(shù)據(jù)、第三個沿輸出數(shù)據(jù);
CPOL=1,CPHA=0
(不常用)
CPOL=1,SPICLK空閑狀態(tài)為高電平;
CPHA=0,SPICLK第一個邊沿(下升沿)采集數(shù)據(jù)、第二個沿輸出數(shù)據(jù);
感謝閱讀,別走!點(diǎn)贊、關(guān)注、轉(zhuǎn)發(fā)后再走吧
審核編輯 :李倩
-
通信協(xié)議
+關(guān)注
關(guān)注
28文章
1035瀏覽量
41175 -
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124513 -
SPI
+關(guān)注
關(guān)注
17文章
1804瀏覽量
95998
原文標(biāo)題:詳解SPI通信協(xié)議
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
常用的串口通信協(xié)議之SPI協(xié)議簡析
SPI通信協(xié)議
SPI通信協(xié)議的基礎(chǔ)知識解析
SPI是什么?SPI通信協(xié)議說明
通信協(xié)議:SPI

通信協(xié)議(SPI)

Arduino UNO上的SPI通信協(xié)議

通信協(xié)議IIC與SPI之間有何區(qū)別?

SPI通信協(xié)議原理是什么

評論