1 簡(jiǎn)介
SPI(Serial Peripheral Interface) 是串行外設(shè)接口的簡(jiǎn)稱,是微控制器(MCU)與外圍設(shè)備通信最常見(jiàn)的接口,常見(jiàn)的外圍設(shè)備包含ADC/DAC、傳感器以及存儲(chǔ)器等。
2 SPI的特點(diǎn)
- SPI有哪些引腳?
SPI是一種同步全雙工通信方式,我們一般采用四線SPI接口,具體包含以下這些信號(hào):
- 時(shí)鐘信號(hào)(SPI Clock,SCLK)
- 片選信號(hào)(Chip Select,SC)
- 主機(jī)輸出,從機(jī)輸入(Master Output Slave Inpit,MOSI或DO)
- 主機(jī)輸入,從機(jī)輸出(Master Inpit Slave Output,MISO或DI)
其中每個(gè)PIN腳都有其特定的功能,具體見(jiàn)下:
信號(hào)名稱 | 功能描述 |
---|---|
時(shí)鐘信號(hào)CLK | 主機(jī)用于產(chǎn)生時(shí)鐘信號(hào),主機(jī)和從機(jī)之間的數(shù)據(jù)同步。 |
片選信號(hào)CS | 用于選擇從機(jī),常低電平有效。 |
數(shù)據(jù)信號(hào)(MISO) | 從機(jī)將數(shù)據(jù)發(fā)送給主機(jī)。 |
數(shù)據(jù)信號(hào)(MOSI) | 主機(jī)將數(shù)據(jù)發(fā)送給從機(jī)。 |
- SPI信號(hào)與I2C信號(hào)有哪些差異?
SPI接口與I2C接口有很明顯的不同,具體體現(xiàn)在以下幾個(gè)方面:
- SPI時(shí)鐘的頻率比I2C時(shí)鐘頻率更高。
- SPI采用四線制,I2C采用二線制。
- SPI只能有一個(gè)主機(jī),I2C可以有多個(gè)主機(jī)(總線仲裁機(jī)制)。
- SPI信號(hào)數(shù)據(jù)傳輸過(guò)程?
SPI通信需要的時(shí)鐘由主機(jī)(Master)產(chǎn)生,且主機(jī)通過(guò)片選信號(hào)來(lái)選擇通信的設(shè)備(低電平有效,由主機(jī)主動(dòng)拉低)。SPI能同時(shí)進(jìn)行數(shù)據(jù)的發(fā)送(MOSI)與接收(MISO),且SPI允許用戶靈活選擇時(shí)鐘的上升沿/下降沿進(jìn)行數(shù)據(jù)的采樣和移位。
3 時(shí)鐘極性和時(shí)鐘相位
- 什么是時(shí)鐘極性(CPOL)和時(shí)鐘相位(CPHA)?
在SPI通信中。時(shí)鐘極性和時(shí)鐘相位是可以由用戶進(jìn)行設(shè)定的。
時(shí)鐘極性(CPOL) :決定了時(shí)鐘信號(hào)在空閑時(shí)的狀態(tài)(高電平或者低電平)。
時(shí)鐘相位(CPHA) :決定了是在上升沿或者下降沿進(jìn)行采樣和移位。
SPI | CPOL | COHA | 時(shí)鐘極性(空閑) | 時(shí)間(采樣/移位) |
---|---|---|---|---|
0 | 0 | 0 | 低電平 | 上升沿采樣、下降沿移出 |
1 | 0 | 1 | 低電平 | 下升沿采樣、上降沿移出 |
2 | 1 | 1 | 高電平 | 下升沿采樣、上降沿移出 |
3 | 1 | 0 | 高電平 | 上升沿采樣、下降沿移出 |
- 時(shí)鐘極性(CPOL)和時(shí)鐘相位(CPHA)的圖解
說(shuō)明:
- 綠色:表示數(shù)據(jù)傳輸?shù)拈_(kāi)始和結(jié)束。
- 橙色:表示數(shù)據(jù)的采樣。
- 藍(lán)色:表示數(shù)據(jù)的移位。
- SPI模式0,CPOL = 0,CPHA = 0:CLK空閑狀態(tài) = 低電平,數(shù)據(jù)在上升沿采樣,并在下降沿移出。
- SPI模式1,CPOL = 0,CPHA = 1:CLK空閑狀態(tài) = 低電平,數(shù)據(jù)在下降沿采樣,并在上升沿移出。
- SPI模式2,CPOL = 1,CPHA = 0:CLK空閑狀態(tài) = 高電平,數(shù)據(jù)在下降沿采樣,并在上升沿移出。
- SPI模式3,CPOL = 1,CPHA = 1:CLK空閑狀態(tài) = 高電平,數(shù)據(jù)在上升沿采樣,并在下降沿移出。
4 SPI的級(jí)聯(lián)
多個(gè)從機(jī)可與單個(gè)SPI主機(jī)一起使用。從機(jī)可以采用常規(guī)模式連接,或采用菊花鏈模式連接。
- 常規(guī)模式
在常規(guī)模式下,主機(jī)需要為每個(gè)從機(jī)提供單獨(dú)的片選信號(hào)。一旦主機(jī)使能(拉低)片選信號(hào),MOSI/MISO線上的時(shí)鐘和數(shù)據(jù)便可用 于所選的從機(jī)。如果使能多個(gè)片選信號(hào),則MISO線上的數(shù)據(jù)會(huì)被破壞,因?yàn)橹鳈C(jī)無(wú)法識(shí)別哪個(gè)從機(jī)正在傳輸數(shù)據(jù)。從下圖可以看出,隨著從機(jī)數(shù)量的增加,來(lái)自主機(jī)的片選線的數(shù)量 也增加。這會(huì)快速增加主機(jī)需要提供的輸入和輸出數(shù)量,并限制可以使用的從機(jī)數(shù)量??梢允褂闷渌夹g(shù)來(lái)增加常規(guī)模式下的從機(jī)數(shù)量,例如使用多路復(fù)用器產(chǎn)生片選信號(hào)。
- 菊花鏈模式
在菊花鏈模式下,所有從機(jī)的片選信號(hào)連接在一起,數(shù)據(jù)從一個(gè)從機(jī)傳播到下一個(gè)從機(jī)。在此配置中,所有從機(jī)同時(shí)接收同一SPI時(shí)鐘。來(lái)自主機(jī)的數(shù)據(jù)直接送到第一個(gè)從機(jī),該從機(jī)將數(shù)據(jù)提供給下一個(gè)從機(jī),依此類推。
使用該方法時(shí),由于數(shù)據(jù)是從一個(gè)從機(jī)傳播到下一個(gè)從機(jī),所以傳輸數(shù)據(jù)所需的時(shí)鐘周期數(shù)與菊花鏈中的從機(jī)位置成比例。例如在下圖所示的8位系統(tǒng)中,為使第3個(gè)從機(jī)能夠獲得數(shù)據(jù),需要24個(gè)時(shí)鐘脈沖,而常規(guī)SPI模式下只需8個(gè)時(shí)鐘脈沖。圖8顯示了時(shí)鐘周期和通過(guò)菊花鏈的數(shù)據(jù)傳播。并非所有SPI器件都支持菊花鏈模 式。請(qǐng)參閱產(chǎn)品數(shù)據(jù)手冊(cè)以確認(rèn)菊花鏈?zhǔn)欠窨捎谩?/p>
-
微控制器
+關(guān)注
關(guān)注
48文章
7336瀏覽量
150103 -
電路設(shè)計(jì)
+關(guān)注
關(guān)注
6636文章
2398瀏覽量
201129 -
接口
+關(guān)注
關(guān)注
33文章
8257瀏覽量
149953 -
SPI
+關(guān)注
關(guān)注
17文章
1669瀏覽量
90729 -
串行外設(shè)接口
+關(guān)注
關(guān)注
0文章
14瀏覽量
3986
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論