0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

串行通信接口SPI接口介紹

jf_78858299 ? 來源:長點芯 ? 作者:阿杰 ? 2023-04-04 15:15 ? 次閱讀

前言:

接口的存在是使得芯片的設(shè)計達到 模塊化modularity ),就像在第一篇文章所講到的,我們可以通過不同的IP組成一個功能完備的芯片(或稱之為 SoC )。

芯片的接口可以分為兩大類:片上通信接口片外通信接口 。以AMBA為代表的片上接口主要有靈活,效率高的優(yōu)勢,而片外接口的選擇則更加廣泛,根據(jù)不同的成本需求或是性能需求,能夠選擇的片外通信接口有IIC,SPI等。

今天討論的SPI接口是一種十分常用的片外通信接口,經(jīng)常作為芯片與片外存儲器(多為 serial nand flash )的通信接口。同時,硬件物理接口也是應(yīng)屆生面試時被提問最多的問題之一。有意在畢業(yè)后從事計算機硬件行業(yè)的朋友們可以在準(zhǔn)備應(yīng)聘的時候多多儲備這方面的知識。

SPI接口介紹

SPI是一種串行通信接口,全稱是 Serial Peripheral Interface 。它是一種 full-duplex (全雙工:支持發(fā)射端TX與接收端RX同時雙向傳輸數(shù)據(jù))接口。最基礎(chǔ)的SPI接口由四根線組成:

  1. SCLK(Serial Clock)
  2. SS(Slave Select或CS:Chip Select)
  3. MOSI(Mater Out Slave In)
  4. MISO(Mater In Slave Out)

如下圖。

圖片

SPI接口pin

1. SCLK:

首先是這根時鐘線,這也是將接口分為 Synchronous (同步接口)與 asynchronous (異步接口)的重要標(biāo)志。由于異步接口發(fā)送與采集數(shù)據(jù)沒有一個統(tǒng)一控制信號,所以沒法確保發(fā)送端與接收端有相同的收發(fā) data rate, 這給現(xiàn)在許多使用同步設(shè)計方法的芯片帶來的很多難題,所以這也是目前同步接口更受歡迎的原因。

圖片

異步通信接口

圖片

同步通信接口

不過當(dāng)然了,異步接口也有它的好處。可以在數(shù)據(jù)的起始位和終止位來添加兩個 flag (標(biāo)記符)來控制數(shù)據(jù)的接收,而且需要在使用前確保兩個模塊收發(fā)數(shù)據(jù)的速率是相同的。

所以要是有了這個由 Master (一般是一個 microcontroller )發(fā)出的CLK給slave,slave端就知道什么時候接受數(shù)據(jù)了,可以是上升沿也可以是下降沿,一般由datasheet決定。時鐘的頻率也取決于slave能夠正常工作的時鐘頻率范圍,一般在80MHz左右。

2.SS/CS:

因為SPI接口有時候會連有多個Slave(一般不超過三個),所以隨著slave的增加,master端就會需要越來越多的pin口。當(dāng)Master與slave處于斷鏈狀態(tài)時,SS/CS一般是置成高位的,這樣在master決定要給與哪個slave交互的時候就會把相應(yīng)的SS/CS置低,稱作 active low 。

3.MISO/MOSI:

剩下的幾個接口都是SPI的數(shù)據(jù)線,在每個時鐘周期內(nèi),master都會向slave發(fā)送1bit數(shù)據(jù),slave也可以同時向master發(fā)送1bit數(shù)據(jù)。所以說假設(shè)某個SPI接口正工作在50MHz的時鐘頻率,那么它的數(shù)據(jù)傳輸速率可以達到50Mbps/100Mbps(隨著數(shù)據(jù)線的增加SPI的數(shù)據(jù)傳輸速率還能增大更多)。相較于普通的IIC接口已經(jīng)高出不少了。這也是為什么對于許多傳感器來說會選擇SPI接口。

圖片

多位寬數(shù)據(jù)pin口的SPI通信接口

其實呢,SPI作為一個常用的外設(shè)接口,卻不存在一個標(biāo)準(zhǔn),因此沒有用于驗證給定產(chǎn)品的接口一致性的基準(zhǔn)。。所以SPI可以說是一個 * de facto standard ( 在實踐中被接受,但尚未經(jīng)過任何正式程序以達成共識的標(biāo)準(zhǔn),甚至可能沒有公開可用的文檔 )。* * *

A de facto standard :is one that has become accepted in practice but has not undergone any formal process to obtain consensus and may not even have publicly available documentation。

并且在SPI中沒有任何通信流程控制單元,SPI的硬件實現(xiàn)有時候就是靠一個簡單的 shift register ,時鐘這個唯一的控制信號的穩(wěn)定性至關(guān)重要。除此之外,如何確保數(shù)據(jù)的傳輸是否準(zhǔn)確也十分重要,一般只能通過軟件來檢測。在一些 real-time embedded system (實時嵌入式系統(tǒng))中,軟件必須以比數(shù)據(jù)到達更快的速度處理接收到的數(shù)據(jù)。通過接收端的FIFO Buffer,可以緩解此問題。SPI接口中沒有嵌入到錯誤檢測和校正功能中。如果需要,必須在軟件中實現(xiàn)錯誤檢測/糾正。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7521

    瀏覽量

    164095
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8673

    瀏覽量

    151554
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1717

    瀏覽量

    91858
  • 通信接口
    +關(guān)注

    關(guān)注

    3

    文章

    240

    瀏覽量

    31019
收藏 人收藏

    評論

    相關(guān)推薦

    基于PC/104 總線與CPLD 的SPI 接口設(shè)計

    本文根據(jù)SPI 同步串行接口通信協(xié)議,介紹了在CPLD 中利用VHDL 語言實現(xiàn)PC/104 總線擴展
    發(fā)表于 05-30 09:28 ?41次下載

    SPI接口讀寫串行EEPROM

    SPI接口讀寫串行EEPROM:93C46為采用3線串行同步總線SPI接口方式的EEPROM,其
    發(fā)表于 09-19 11:39 ?89次下載

    理解ATE SPI (串行外設(shè)接口)

    理解ATE SPI (串行外設(shè)接口) 大多數(shù)Maxim® ATE設(shè)計都采用了一個串行接口,以便從外部控制器件。這種
    發(fā)表于 01-26 16:34 ?2646次閱讀
    理解ATE <b class='flag-5'>SPI</b> (<b class='flag-5'>串行</b>外設(shè)<b class='flag-5'>接口</b>)

    串行接口SPI接口應(yīng)用設(shè)計

    使用的同步串行三線SPI 接口,可以方便的連接采用SPI 通信協(xié)議的外圍或另一片AVR 單片機,實現(xiàn)在短距離內(nèi)的高速同步
    發(fā)表于 11-07 17:28 ?80次下載

    AVR單片機串行接口SPI接口應(yīng)用設(shè)計

    使用的同步串行三線SPI接口,可以方便的連接采用SPI通信協(xié)議的外圍或另一片AVR單片機,實現(xiàn)在短距離內(nèi)的高速同步
    發(fā)表于 11-09 17:37 ?3912次閱讀

    一文讀懂SPI串行外設(shè)接口

    SPI總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進行通信以交換信息。正是由于有了
    發(fā)表于 04-27 15:19 ?1w次閱讀

    基于MSP430F2的SPI串行同步通信

    通用串行通信接口(USCI)采用一個硬件模塊支持多種串行通信方式。本文檔內(nèi)容介紹同步外圍
    發(fā)表于 09-21 15:34 ?2次下載
    基于MSP430F2的<b class='flag-5'>SPI</b><b class='flag-5'>串行</b>同步<b class='flag-5'>通信</b>

    串行外設(shè)接口SPI通信協(xié)議的應(yīng)用

    SPI串行外設(shè)接口(SerialPeripheral Interface)的縮寫。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片
    發(fā)表于 01-09 14:58 ?1897次閱讀
    <b class='flag-5'>串行</b>外設(shè)<b class='flag-5'>接口</b><b class='flag-5'>SPI</b><b class='flag-5'>通信</b>協(xié)議的應(yīng)用

    嵌入式硬件通信接口協(xié)議中的串行通信接口-SPI

    本節(jié)繼續(xù)講嵌入式硬件通信接口協(xié)議中的另外一個串行通信接口-SPI。相比于UART串口協(xié)議,
    發(fā)表于 02-05 11:35 ?1654次閱讀
    嵌入式硬件<b class='flag-5'>通信</b><b class='flag-5'>接口</b>協(xié)議中的<b class='flag-5'>串行</b><b class='flag-5'>通信</b><b class='flag-5'>接口</b>-<b class='flag-5'>SPI</b>

    Firefly-RK328-SPI接口介紹

    SPI是一種高速的,全雙工,同步串行通信接口,用于連接微控制器、傳感器、存儲設(shè)備等,本文以指紋識別模塊為例簡單介紹
    的頭像 發(fā)表于 11-25 10:26 ?2008次閱讀
    Firefly-RK328-<b class='flag-5'>SPI</b><b class='flag-5'>接口</b><b class='flag-5'>介紹</b>

    Firefly-RK3128--SPI接口介紹

    SPI是一種高速的,全雙工,同步串行通信接口,用于連接微控制器、傳感器、存儲設(shè)備等,本文以指紋識別模塊為例簡單介紹
    的頭像 發(fā)表于 11-28 16:32 ?3036次閱讀
    Firefly-RK3128--<b class='flag-5'>SPI</b><b class='flag-5'>接口</b><b class='flag-5'>介紹</b>

    通信接口的作用_常用的串行通信接口有哪些

    本文首先介紹通信接口的作用,其次闡述了通信接口的種類,最后介紹了常用的
    發(fā)表于 03-28 10:33 ?1.8w次閱讀

    基于SPI串行總線接口的Verilog實現(xiàn)

    與各種外圍接口器件以串行方式進行通信、交換信息。本文簡述了SPI總線的特點,介紹了其4條信號線,SPI
    的頭像 發(fā)表于 05-29 10:16 ?5161次閱讀
    基于<b class='flag-5'>SPI</b><b class='flag-5'>串行</b>總線<b class='flag-5'>接口</b>的Verilog實現(xiàn)

    SPI 串行外設(shè)接口

    **SPI簡介:**串行外設(shè)接口(Serial Peripheral Interface Bus)SPI是一種用于芯片通信的同步
    發(fā)表于 12-20 19:31 ?9次下載
    <b class='flag-5'>SPI</b> <b class='flag-5'>串行</b>外設(shè)<b class='flag-5'>接口</b>

    SPI串行外設(shè)接口設(shè)計實現(xiàn)

    SPI 全稱為 Serial Peripheral Interface,譯為串行外設(shè)接口。它是 Motorola 公司推出的一種相對高速的同步、全雙工的通信總線協(xié)議。
    發(fā)表于 05-29 15:40 ?1535次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>串行</b>外設(shè)<b class='flag-5'>接口</b>設(shè)計實現(xiàn)