1 簡介
SPI(Serial Peripheral Interface) 是串行外設接口的簡稱,是微控制器(MCU)與外圍設備通信最常見的接口,常見的外圍設備包含ADC/DAC、傳感器以及存儲器等。
2 SPI的特點
- SPI有哪些引腳?
SPI是一種同步全雙工通信方式,我們一般采用四線SPI接口,具體包含以下這些信號:
- 時鐘信號(SPI Clock,SCLK)
- 片選信號(Chip Select,SC)
- 主機輸出,從機輸入(Master Output Slave Inpit,MOSI或DO)
- 主機輸入,從機輸出(Master Inpit Slave Output,MISO或DI)
其中每個PIN腳都有其特定的功能,具體見下:
信號名稱 | 功能描述 |
---|---|
時鐘信號CLK | 主機用于產生時鐘信號,主機和從機之間的數據同步。 |
片選信號CS | 用于選擇從機,常低電平有效。 |
數據信號(MISO) | 從機將數據發送給主機。 |
數據信號(MOSI) | 主機將數據發送給從機。 |
- SPI信號與I2C信號有哪些差異?
SPI接口與I2C接口有很明顯的不同,具體體現在以下幾個方面:
- SPI時鐘的頻率比I2C時鐘頻率更高。
- SPI采用四線制,I2C采用二線制。
- SPI只能有一個主機,I2C可以有多個主機(總線仲裁機制)。
- SPI信號數據傳輸過程?
SPI通信需要的時鐘由主機(Master)產生,且主機通過片選信號來選擇通信的設備(低電平有效,由主機主動拉低)。SPI能同時進行數據的發送(MOSI)與接收(MISO),且SPI允許用戶靈活選擇時鐘的上升沿/下降沿進行數據的采樣和移位。
3 時鐘極性和時鐘相位
- 什么是時鐘極性(CPOL)和時鐘相位(CPHA)?
在SPI通信中。時鐘極性和時鐘相位是可以由用戶進行設定的。
時鐘極性(CPOL) :決定了時鐘信號在空閑時的狀態(高電平或者低電平)。
時鐘相位(CPHA) :決定了是在上升沿或者下降沿進行采樣和移位。
SPI | CPOL | COHA | 時鐘極性(空閑) | 時間(采樣/移位) |
---|---|---|---|---|
0 | 0 | 0 | 低電平 | 上升沿采樣、下降沿移出 |
1 | 0 | 1 | 低電平 | 下升沿采樣、上降沿移出 |
2 | 1 | 1 | 高電平 | 下升沿采樣、上降沿移出 |
3 | 1 | 0 | 高電平 | 上升沿采樣、下降沿移出 |
- 時鐘極性(CPOL)和時鐘相位(CPHA)的圖解
說明:
- 綠色:表示數據傳輸的開始和結束。
- 橙色:表示數據的采樣。
- 藍色:表示數據的移位。
- SPI模式0,CPOL = 0,CPHA = 0:CLK空閑狀態 = 低電平,數據在上升沿采樣,并在下降沿移出。
- SPI模式1,CPOL = 0,CPHA = 1:CLK空閑狀態 = 低電平,數據在下降沿采樣,并在上升沿移出。
- SPI模式2,CPOL = 1,CPHA = 0:CLK空閑狀態 = 高電平,數據在下降沿采樣,并在上升沿移出。
- SPI模式3,CPOL = 1,CPHA = 1:CLK空閑狀態 = 高電平,數據在上升沿采樣,并在下降沿移出。
4 SPI的級聯
多個從機可與單個SPI主機一起使用。從機可以采用常規模式連接,或采用菊花鏈模式連接。
- 常規模式
在常規模式下,主機需要為每個從機提供單獨的片選信號。一旦主機使能(拉低)片選信號,MOSI/MISO線上的時鐘和數據便可用 于所選的從機。如果使能多個片選信號,則MISO線上的數據會被破壞,因為主機無法識別哪個從機正在傳輸數據。從下圖可以看出,隨著從機數量的增加,來自主機的片選線的數量 也增加。這會快速增加主機需要提供的輸入和輸出數量,并限制可以使用的從機數量。可以使用其他技術來增加常規模式下的從機數量,例如使用多路復用器產生片選信號。
- 菊花鏈模式
在菊花鏈模式下,所有從機的片選信號連接在一起,數據從一個從機傳播到下一個從機。在此配置中,所有從機同時接收同一SPI時鐘。來自主機的數據直接送到第一個從機,該從機將數據提供給下一個從機,依此類推。
使用該方法時,由于數據是從一個從機傳播到下一個從機,所以傳輸數據所需的時鐘周期數與菊花鏈中的從機位置成比例。例如在下圖所示的8位系統中,為使第3個從機能夠獲得數據,需要24個時鐘脈沖,而常規SPI模式下只需8個時鐘脈沖。圖8顯示了時鐘周期和通過菊花鏈的數據傳播。并非所有SPI器件都支持菊花鏈模 式。請參閱產品數據手冊以確認菊花鏈是否可用。
-
微控制器
+關注
關注
48文章
7552瀏覽量
151423 -
電路設計
+關注
關注
6674文章
2453瀏覽量
204363 -
接口
+關注
關注
33文章
8598瀏覽量
151157 -
SPI
+關注
關注
17文章
1706瀏覽量
91585 -
串行外設接口
+關注
關注
0文章
15瀏覽量
4014
發布評論請先 登錄
相關推薦
評論