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