RM新时代网站-首页

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

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

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

什么是SPI通信協(xié)議

汽車電子技術(shù) ? 來源:嵌入式之入坑筆記 ? 作者:嵌入式之入坑筆記 ? 2023-02-10 10:56 ? 次閱讀

SPI協(xié)議是由摩托羅拉公司提出的一種串行外圍設(shè)備通信接口,是一種高速全雙工通信總線。它被廣泛地使用在ADC、LCD、存儲(chǔ)器等設(shè)備中,包括一些需要與MCU之間有較高通訊速率要求的場(chǎng)合中。

1、SPI 的硬件

SPI是采用主從模式的一種通信方式,它支持一主一從、一主多從,但是不支持多主機(jī)模式。

常見的一主多從的連接方式如下:

圖片

1.1、SPI接口信號(hào)

SPI接口共有四根信號(hào)線,它們分別如下:

SCLK: 時(shí)鐘信號(hào)線。由主機(jī)產(chǎn)生并控制。

MOSI: 主機(jī)數(shù)據(jù)輸出,從機(jī)數(shù)據(jù)輸入。(主出從入)

MISO: 主機(jī)數(shù)據(jù)輸入,從機(jī)數(shù)據(jù)輸出。(主入從出)

NSS: 從機(jī)片選使能信號(hào)線。該信號(hào)由主機(jī)進(jìn)行控制。在一主對(duì)多從的模式下,每一個(gè)從機(jī)都需要一個(gè)NSS,用于主機(jī)選擇和那個(gè)從機(jī)進(jìn)行通信(一般為低電平有效)。當(dāng)一個(gè)SPI設(shè)備需要發(fā)送廣播數(shù)據(jù),它必須拉低NSS信號(hào),以通知所有其它的設(shè)備它是主設(shè)備。

1.2、SPI通信常見的連接方式

(1)SPI通信配置為全雙工的連接方式:

圖片

這種連接方式允許主從機(jī)之間互相進(jìn)行通信,時(shí)鐘均由主機(jī)產(chǎn)生。

(2)單工模式 —— 主機(jī)接收,從機(jī)發(fā)送

圖片

這種模式下由主機(jī)產(chǎn)生時(shí)鐘SCK,主機(jī)只能收到從機(jī)上報(bào)的數(shù)據(jù),不能向從機(jī)下發(fā)數(shù)據(jù)。

(3)單工模式 —— 主機(jī)發(fā)送,從機(jī)接收

圖片

這種模式下由主機(jī)產(chǎn)生時(shí)鐘SCK,主機(jī)只能向從機(jī)下發(fā)數(shù)據(jù),不能接收從機(jī)上報(bào)的數(shù)據(jù)。常見的應(yīng)用有帶SPI接口的LCD顯示屏。

(4)雙向通信的連接方式

圖片

2、SPI的通信協(xié)議

SPI的協(xié)議定義了通信的起始信號(hào)、停止信號(hào)、數(shù)據(jù)有效性、時(shí)鐘同步等。它的通訊時(shí)序如下:

圖片

圖:SPI通信時(shí)序圖

這是一個(gè)主機(jī)的通信時(shí)序,信號(hào)線 NSS、SCK、MOSI 都是由主機(jī)控制,MISO 是由從機(jī)進(jìn)行控制。其中 MOSI 和 MISO 上的數(shù)據(jù)僅在 NSS 為低時(shí)才有效,并且每個(gè)SCK 時(shí)鐘周期只交換一位數(shù)據(jù)。

2.1、起始信號(hào)

SPI通信時(shí)序圖中的①為通信的起始信號(hào),由主機(jī)控制NSS從高電平到低電平,從而選擇要進(jìn)行通信的從機(jī),再通過主機(jī)產(chǎn)生時(shí)鐘信號(hào)SCK,啟動(dòng)一次數(shù)據(jù)的傳輸。

圖片

2.2、停止信號(hào)

SPI通信時(shí)序圖中的⑥為通信的起始信號(hào),由主機(jī)控制NSS從低電平到高電平,從而結(jié)束一次數(shù)據(jù)的傳輸。

圖片

2.3、數(shù)據(jù)有效性

SPI 在 SCK 時(shí)鐘的同步下進(jìn)行數(shù)據(jù)的準(zhǔn)備和采樣,如通信時(shí)序圖的②③④⑤所示。在 NSS 為低的情況時(shí),在 SCK 的上升沿時(shí) MISO 和 MOSI 進(jìn)行數(shù)據(jù)準(zhǔn)備,SCK 的下降沿時(shí)讀取 MISO 和 MOSI 上的數(shù)據(jù)。 在 NSS 為高時(shí),MISO 和MOSI 上的數(shù)據(jù)無效。

圖片

2.4、時(shí)鐘的同步

SPI 的數(shù)據(jù)傳輸是需要 SCK 時(shí)鐘信號(hào)嚴(yán)格同步的,每一個(gè) SCK 周期只傳輸一位數(shù)據(jù),這一個(gè)周期里要完成數(shù)據(jù)的準(zhǔn)備和采樣,且數(shù)據(jù)的輸入和輸出是同時(shí)進(jìn)行的。

SPI中數(shù)據(jù)是MSB 先行或 LSB先行,在協(xié)議中是沒有硬性規(guī)定,只需通信雙方保持統(tǒng)一即可。

SPI 一次數(shù)據(jù)傳輸可以是 8 位或 16 位為單位,每次傳輸?shù)膯挝粩?shù)不受限制。

3、SPI的工作模式

SPI 一共有四種工作模式。它們的區(qū)別是:

1)總線空閑時(shí) SCK 的電平狀態(tài)

2)數(shù)據(jù)開始采樣的時(shí)刻。

這四種模式是通過 “時(shí)鐘極性 CPOL” 和 “時(shí)鐘相位 CPHA” 的電平來實(shí)現(xiàn)和區(qū)分的。如下:

1)CPOL=0 時(shí),SCK 引腳在空閑狀態(tài)保持低電平;

2)CPOL=1 時(shí),SCK 引腳在空閑狀態(tài)保持高電平;

3)CPHA=0 時(shí),SCK 時(shí)鐘的第一個(gè)邊沿進(jìn)行采樣;

4)CPHA =1 時(shí),SCK 時(shí)鐘的第二個(gè)邊沿進(jìn)行采樣。

時(shí)鐘相位CPHA =1 ,數(shù)據(jù)在SCK 時(shí)鐘的第二個(gè)邊沿采樣的時(shí)序圖如下:

圖片

時(shí)鐘相位CPHA =0 ,數(shù)據(jù)在SCK 時(shí)鐘的第一個(gè)邊沿采樣的時(shí)序圖如下:

圖片

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

    關(guān)注

    146

    文章

    17123

    瀏覽量

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

    關(guān)注

    3

    文章

    237

    瀏覽量

    30980
  • SPI協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    8361
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    fpga與spi通信協(xié)議

    fpga通過spi通信協(xié)議在與外圍設(shè)備實(shí)現(xiàn)通信的過程中程序代碼該怎么寫?新手勿噴
    發(fā)表于 04-09 12:44

    用FPGA 怎么編寫SPI通信協(xié)議,求各位大神指點(diǎn),謝謝

    用FPGA 怎么編寫SPI通信協(xié)議,求各位大神指點(diǎn),謝謝
    發(fā)表于 08-18 16:35

    SPI通信協(xié)議

    LOTO虛擬示波器采集到的數(shù)據(jù)波形并進(jìn)行對(duì)比分析,方便大家的理解。SPI通信協(xié)議一般只需要四根線將主控芯片與從芯片連接起來,其中四根線分別為:(1)SDO– 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入(2)SDI– 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出(3)SCLK– 時(shí)鐘信號(hào),由主設(shè)備產(chǎn)
    發(fā)表于 08-09 07:49

    SPI通信協(xié)議的基礎(chǔ)知識(shí)解析

    SPI通信協(xié)議詳解寫在最前: 本文講述了SPI通信協(xié)議的基本內(nèi)容包括如下SPI的基礎(chǔ)知識(shí)SPI
    發(fā)表于 12-13 08:05

    SPI是什么?SPI通信協(xié)議說明

    文章目錄目錄前言一、SPI是什么?二、SPI通信協(xié)議1.通信引腳說明2.通信格式說明3.實(shí)現(xiàn)形式4.三線制
    發(fā)表于 02-17 06:45

    SPI通信協(xié)議講解相關(guān)資料推薦

    SPI通信協(xié)議講解SPI通信概念SPI通信SPI
    發(fā)表于 02-17 06:09

    STM32如何模擬SPI通信協(xié)議

    STM32模擬SPI通信協(xié)議SPI的簡(jiǎn)介:SPI是串行外設(shè)接口的縮寫,是一種高速的,全雙工、同步的串行通信總線;
    發(fā)表于 02-17 08:03

    SPI通信協(xié)議通信過程是怎樣的?

    SPI通信協(xié)議通信過程是怎樣的?
    發(fā)表于 02-17 06:52

    SPI通信協(xié)議及實(shí)例打包

    本文是SPI通信協(xié)議及實(shí)例打包分享。
    發(fā)表于 11-16 13:24 ?47次下載

    SPI通信協(xié)議

    Serial Peripheral interface的縮寫,顧名思義就是串行外圍設(shè)備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為PCB的布局上節(jié)
    發(fā)表于 12-22 19:17 ?5次下載
    <b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>

    SPI通信協(xié)議講解

    SPI通信協(xié)議講解SPI通信概念SPI通信SPI
    發(fā)表于 12-22 19:19 ?26次下載
    <b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>講解

    Arduino UNO上的SPI通信協(xié)議

    電子發(fā)燒友網(wǎng)站提供《Arduino UNO上的SPI通信協(xié)議.zip》資料免費(fèi)下載
    發(fā)表于 11-09 10:24 ?0次下載
    Arduino UNO上的<b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>

    配置芯片寄存器的SPI通信協(xié)議的verilog實(shí)現(xiàn)

    最近正在調(diào)試一個(gè)芯片的評(píng)估板,其中配置寄存器使用的是SPI通信協(xié)議。其實(shí)很多芯片寄存器的配置都用到了SPI通信協(xié)議,我們今天就需要實(shí)現(xiàn)這個(gè)SPI
    的頭像 發(fā)表于 06-16 09:50 ?1950次閱讀
    配置芯片寄存器的<b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>的verilog實(shí)現(xiàn)

    SPI通信協(xié)議原理是什么

    Peripheral Interface,也就是串行外設(shè)接口,同樣是一種通信協(xié)議,在很多芯片中都有集成。 相比之前學(xué)習(xí)的UART串口通信,他多了兩根線,其中一個(gè)是時(shí)鐘信號(hào),另一個(gè)是設(shè)備使能信號(hào),用來控制設(shè)備是否
    的頭像 發(fā)表于 11-24 17:37 ?1078次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>原理是什么

    SPI通信協(xié)議的基本概念和工作模式

    SPI(Serial Peripheral Interface)通信協(xié)議,即串行外圍設(shè)備接口,是一種高速、全雙工、同步通信總線,由摩托羅拉公司提出并廣泛應(yīng)用。SPI以其高效的數(shù)據(jù)傳輸能
    的頭像 發(fā)表于 09-09 17:04 ?1338次閱讀
    RM新时代网站-首页