24小時聯系電話:18217114652、13661815404
中文
公司新聞
串行通信協議第 5 部分 - SPI
串行通信協議第 5 部分 - SPI
我們將研究不同類型的串行通信協議,我們將研究流行的 SPI 協議。這是我們將要研究的許多常用的流行協議之一。我們將在本系列的結尾對每種類型的優缺點進行有用的總結。
SPI 代表串行外設接口。它是一種串行通信總線,常用于微控制器和小型外圍設備之間的短距離通信,例如射頻模塊、移位寄存器、外部閃存IC以及各種傳感器和SD卡。它是同步的,這意味著它有一個單獨的時鐘線。
SPI 協議是由摩托羅拉開發的,盡管它被用于其他制造商生產的大量不同 IC、模塊和設備中。
SPI 協議允許全雙工通信,這意味著連接到總線的設備可以同時發送和接收數據。
SPI 通信協議除接地外還包括四條線,它們是:
SCLK - 串行時鐘(主機輸出)
MOSI - Master Out Slave In(數據從主機輸出)
MISO - Master In Slave Out(從機輸出數據)
SS 或 CS - 從機選擇或片選(通常為低電平有效信號,由主機輸出)
根據數據表的來源,SPI 引腳可以標有不同的名稱,因此在開始設計之前仔細閱讀數據表至關重要。
兩個設備之間的 SPI 接線
SPI架構通常由一個主設備和多個主設備通信的從設備組成,這意味著一組數據線可以連接到多個從設備。但是,從選擇與 I2C 完全不同。可在 SPI 通信網絡中使用的從設備數量受可用的 SS(從設備選擇)或 CS(芯片選擇)引腳數量限制。
具有多個 SS 引腳的 SPI 多設備連接
使用 SPI 協議的一些典型應用包括:
溫度和壓力傳感器
ADC、DAC、音頻編解碼器、數字電位器
觸摸屏、視頻游戲控制器
相機鏡頭控制
外部閃存和 EEPROM IC
RTC(實時時鐘)
液晶顯示器
MMC 或 SD 卡
我們將首先研究主站和從站之間的通信。總線主設備應配置 SPI 通信時鐘設置以使用從設備支持的頻率(通常高達幾 MHz)。
然后,主機通過將適當的從機選擇引腳拉低來選擇它想要與哪個從機通信,這會導致該從機開始偵聽。將選擇引腳拉高的其他從設備將忽略這些命令。
通信原理是主設備通過MOSI線向監聽從設備發送數據。從機可以讀取這些數據,同時通過 MISO 線將數據返回給主機,主機可以在那里讀取它。這就是全雙工數據傳輸的方式。
通常,這種通信涉及使用 8 位大小的寄存器,第一位是 MSB(最高位)。主機和從機都通過寄存器向前移動一位,并在時鐘邊沿輸出最后一位。
主從通信及寄存器示例
當傳輸完成時,主設備通過拉高相應的從選擇引腳來取消選擇從。
盡管 SPI 數據傳輸通常包含 8 位消息傳遞,但其他字長(例如 16 位)也常用于音頻編解碼器的觸摸屏控制器等應用。
在使用時鐘速度以外的機制的數據傳輸期間,可以使用備用設置,例如時鐘極性(哪個邏輯電平代表空閑狀態)和相位(在哪個時鐘沿,上升或下降,數據線被采樣)。
有四種不同的 SPI 模式:
SPI模式 |
警察 |
CPHA |
時鐘極性(空閑狀態) |
時鐘相位 |
0 |
0 |
0 |
邏輯低 |
上升沿采樣數據,下降沿輸出 |
1 |
0 |
1 |
低 |
數據下降沿采樣,上升沿輸出 |
2 |
1 |
1 |
邏輯高 |
下降沿采樣數據,上升沿輸出 |
3 |
1 |
0 |
邏輯高 |
數據在上升沿采樣并在下降沿輸出 |
下圖顯示了這些不同模式下 SPI 線的時序圖:
SPI 模式 0:CPOL = 0,CPHA = 0,CLK 空閑狀態 = 低,數據在上升沿采樣并在下降沿移位
SPI 模式 1:CPOL = 0,CPHA = 1,CLK 空閑狀態 = 低,數據在下降沿采樣并在上升沿移位
SPI 模式 2:CPOL = 1,CPHA = 1,CLK 空閑狀態 = 高,數據在下降沿采樣并在上升沿移位
SPI 模式 3:CPOL = 1,CPHA = 0,CLK 空閑狀態 = 低,數據在上升沿采樣并在下降沿移位
SPI 協議流行的原因之一是接收硬件可以非常簡單。它可以使用一個簡單的移位寄存器來實現。這是一種比實現 I2C 所需的更簡單、更便宜的解決方案。
由于SPI總線速度較高,傳輸距離應保持很低(不超過幾米)。但是,可以通過降低時鐘速度或使用專門的 SPI 驅動芯片來增加最大總線長度。
擴展范圍的另一種解決方案是使用數據鏈路 IC 作為中間階段:
使用數據鏈路 IC 的 SPI 總線擴展
例如,您可以通過使用 RS-422 數據鏈路作為中間階段來擴展 SPI 通信距離。
使用SPI協議的優點:
比I2C快得多
接收硬件很簡單(簡單的移位寄存器)
可以支持多個slave
使用SPI協議的缺點:
需要更多的信號線
通信必須明確定義,因為大多數從設備使用自己的協議
主站必須控制通信(沒有主站的命令,從站不能相互交談)
每個從設備通常需要單獨的 SS 或 CS 線