加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1、SPI簡(jiǎn)介
    • 2、SPI 有幾根線?
    •  
    •   3、SPI 通信原理
    • 4、SPI 的特征
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

了解SPI總線常識(shí),竟如此簡(jiǎn)單

2022/09/22
2320
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1、SPI簡(jiǎn)介

SPI,即Serial Peripheral Interface的英文縮寫。從字面意思看就是串行外部設(shè)備接口,是一種全雙工、高速、同步的通信總線

SPI最早是摩托羅拉公司開發(fā)的全雙工同步串行總線,用于微控制器MCU)連接外部設(shè)備之間的同步串行通信。主要應(yīng)用于Flash、數(shù)模轉(zhuǎn)換器、信號(hào)處理器、控制器、EEPROM存儲(chǔ)器等外設(shè)中。

SPI總線屬于一主多從接口,和I2C不同的是,SPI 采用CS片選來控制主機(jī)與那個(gè)從機(jī)通信。

現(xiàn)在的單片機(jī)幾乎都支持SPI總線,其已經(jīng)成為一種高速、同步、雙工的通用標(biāo)準(zhǔn),在IoT產(chǎn)品中得到廣泛應(yīng)用。

2、SPI 有幾根線?

SPI通常有4根線(四線制),可實(shí)現(xiàn)全雙工通信。

【SCK】: 串行時(shí)鐘(Serial Clock)

【MOSI】:主發(fā)從收信號(hào)(Master Output, Slave Input)

【MISO】:主收從發(fā)信號(hào)(Master Input, Slave Output)

【CS/CS】:片選信號(hào)(Slave Select)

 
SPI應(yīng)用也有3根線(三線制),實(shí)現(xiàn)半雙工通信。

 

 
3、SPI 通信原理

SPI模塊為了和外設(shè)進(jìn)行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,其輸出串行同步時(shí)鐘極性和相位可以進(jìn)行配置,通過CPHA(時(shí)鐘相位)、CPOL(時(shí)鐘極性)來控制設(shè)備的通信模式。

時(shí)鐘極性CPOL是用來配置SCK的電平在哪種狀態(tài)時(shí)是有效狀態(tài)或者空閑狀態(tài)。時(shí)鐘相位CPHA是用來配置數(shù)據(jù)采樣是在哪個(gè)邊沿:

CPHA=0,數(shù)據(jù)采樣是在第1個(gè)邊沿,數(shù)據(jù)發(fā)送在第2個(gè)邊沿

CPHA=1,數(shù)據(jù)采樣是在第2個(gè)邊沿,數(shù)據(jù)發(fā)送在第1個(gè)邊沿

CPOL=0,當(dāng)SCLK=0時(shí)處于空閑態(tài),有效狀態(tài)就是SCLK處于高電平時(shí)

CPOL=1,當(dāng)SCLK=1時(shí)處于空閑態(tài),有效狀態(tài)就是SCLK處于低電平時(shí)

 
 

CPHA=0、CPOL=0:此時(shí)空閑態(tài)時(shí),SCK處于低電平,數(shù)據(jù)采樣是在第1個(gè)邊沿,就是SCK由低電平到高電平的跳變,所以數(shù)據(jù)采樣是在上升沿(準(zhǔn)備數(shù)據(jù)),(發(fā)送數(shù)據(jù))數(shù)據(jù)發(fā)送是在下降沿。

CPHA=0、CPOL=1:此時(shí)空閑態(tài)時(shí),SCK處于高電平,數(shù)據(jù)采集是在第1個(gè)邊沿,即SCK由高電平到低電平的跳變,所以數(shù)據(jù)采集是在下降沿,數(shù)據(jù)發(fā)送是在上升沿。

CPHA=1、CPOL=0:此時(shí)空閑態(tài)時(shí),SCK處于低電平,數(shù)據(jù)發(fā)送是在第1個(gè)邊沿,即SCK由低電平到高電平的跳變,所以數(shù)據(jù)采樣是在下降沿,數(shù)據(jù)發(fā)送是在上升沿。

CPHA=1、CPOL=1:此時(shí)空閑態(tài)時(shí),SCK處于高電平,數(shù)據(jù)發(fā)送是在第1個(gè)邊沿,即SCK由高電平到低電平的跳變,所以數(shù)據(jù)采集是在上升沿,數(shù)據(jù)發(fā)送是在下降沿。

另外,分享個(gè)時(shí)序圖識(shí)圖方法。交叉線:數(shù)據(jù)允許發(fā)生改變,但不一定要變。平行線:數(shù)據(jù)不允許發(fā)生改變,必須穩(wěn)定發(fā)送。

 
再細(xì)說傳輸時(shí)序。SPI接口在內(nèi)部硬件實(shí)際上是兩個(gè)簡(jiǎn)單的移位寄存器,傳輸?shù)臄?shù)據(jù)為8位,在主器件產(chǎn)生的從器件使能信號(hào)和移位脈沖下,按位傳輸,高位在前,低位在后。如下圖所示,在SCLK的下降沿上數(shù)據(jù)改變,上升沿一位數(shù)據(jù)被存入移位寄存器。SPI接口沒有指定的流控制,沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。
 

4、SPI 的特征

4.1 優(yōu)勢(shì)

  • 高速
  • 同步
  • 全雙工
  • 總線結(jié)構(gòu)
  • 主從及通信模式

4.2 缺點(diǎn)

  • 無指定流控制
  • 沒有應(yīng)答機(jī)制確認(rèn)

相關(guān)推薦

電子產(chǎn)業(yè)圖譜