SPI是Serial Peripheral Interface的簡(jiǎn)稱(chēng),是由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í)序:通過(guò)移位 送達(dá)數(shù)據(jù)。
QSPI協(xié)議
QSPI協(xié)議讀寫(xiě)時(shí)序:
注意,很多人寫(xiě)公眾號(hào)都沒(méi)說(shuō)清楚,為什么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ù);
審核編輯:劉清
-
通信協(xié)議
+關(guān)注
關(guān)注
28文章
884瀏覽量
40311 -
SPI
+關(guān)注
關(guān)注
17文章
1706瀏覽量
91598 -
時(shí)鐘信號(hào)
+關(guān)注
關(guān)注
4文章
448瀏覽量
28568 -
miso
+關(guān)注
關(guān)注
0文章
7瀏覽量
5426
原文標(biāo)題:詳解SPI通信協(xié)議
文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論