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

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

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

一文搞懂SPI通信協(xié)議

sanyue7758 ? 來(lái)源:全棧芯片工程師 ? 2023-03-23 16:51 ? 次閱讀

SPI是Serial Peripheral Interface的簡(jiǎn)稱(chēng),是由Motorola公司推出的一種高速、全雙工的總線協(xié)議,可以實(shí)現(xiàn)一對(duì)一、一對(duì)多芯片通信。

SPI接口信號(hào)

SPI由SCLK、CS/SSEL、MOSI,MISO四根線組成,

SCLK,時(shí)鐘信號(hào),時(shí)鐘頻率即SPI速率,和SPI模式有關(guān);

MOSI,主機(jī)輸出,從機(jī)輸入;

MISO,主機(jī)輸入,從機(jī)輸出;

CS/SSEL,從機(jī)設(shè)備選擇,低電平有效;

多從機(jī)模式

如果主機(jī)有多個(gè)片選CS端口,可采用下圖模式,主機(jī)只能獲取一個(gè)從機(jī)的MISO信號(hào),其它從機(jī)輸出信號(hào)須為高阻。

a9065f2c-c957-11ed-bfe3-dac502259ad0.png

菊花鏈連接,節(jié)省GPIO、節(jié)省布線面積,但需要保證從機(jī)支持菊花鏈模式。

a9152908-c957-11ed-bfe3-dac502259ad0.png

菊花鏈的數(shù)據(jù)傳輸時(shí)序:通過(guò)移位 送達(dá)數(shù)據(jù)。

a91e5a3c-c957-11ed-bfe3-dac502259ad0.png

QSPI協(xié)議

QSPI協(xié)議讀寫(xiě)時(shí)序:

a948e55e-c957-11ed-bfe3-dac502259ad0.jpg

注意,很多人寫(xiě)公眾號(hào)都沒(méi)說(shuō)清楚,為什么SPI能做到全雙工,而有些QSPI不能呢?

因?yàn)閺南旅鏁r(shí)序圖可看到,發(fā)送時(shí),待發(fā)送數(shù)據(jù)的一組8bit寄存器只在下降沿向左移位(高位先發(fā),低位補(bǔ)充0即可),那么必然存在另一組8bit寄存器用以在上升沿接收數(shù)據(jù),這樣就可以構(gòu)成全雙工,而QSPI一般用FIFO/SRAM進(jìn)行數(shù)據(jù)傳輸,基于成本考慮,一般只能半雙工。

SPI工作模式

根據(jù)時(shí)鐘極性CPOL(Clock Polarity)、時(shí)鐘相位CPHA(Clock Phase),SPI有4種模式,最廣泛使用的是模式0和3:

a96d0d8a-c957-11ed-bfe3-dac502259ad0.png

官方時(shí)序圖如下:

a974d9f2-c957-11ed-bfe3-dac502259ad0.png

a9a64adc-c957-11ed-bfe3-dac502259ad0.png

CPOL=0CPHA=0(常用)

CPOL=0,SPICLK空閑狀態(tài)為低電平;

CPHA=0,SPICLK第一個(gè)邊沿(上升沿)采集數(shù)據(jù)、第二個(gè)沿輸出數(shù)據(jù);

a9eb547e-c957-11ed-bfe3-dac502259ad0.png

CPOL=1,CPHA=1 (常用)

CPOL=1,SPICLK空閑狀態(tài)為高電平;

CPHA=1,SPICLK第二個(gè)邊沿(上升沿)采集數(shù)據(jù)、第三個(gè)沿輸出數(shù)據(jù);

aa18e70e-c957-11ed-bfe3-dac502259ad0.jpg ? ?

CPOL=0,CPHA=1(不常用)

CPOL=0,SPICLK空閑狀態(tài)為低電平;

CPHA=1,SPICLK第二個(gè)邊沿(下升沿)采集數(shù)據(jù)、第三個(gè)沿輸出數(shù)據(jù);

CPOL=1,CPHA=0

(不常用)

CPOL=1,SPICLK空閑狀態(tài)為高電平;

CPHA=0,SPICLK第一個(gè)邊沿(下升沿)采集數(shù)據(jù)、第二個(gè)沿輸出數(shù)據(jù);





審核編輯:劉清

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

    關(guān)注

    28

    文章

    884

    瀏覽量

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

    關(guān)注

    17

    文章

    1706

    瀏覽量

    91598
  • 時(shí)鐘信號(hào)
    +關(guān)注

    關(guān)注

    4

    文章

    448

    瀏覽量

    28568
  • miso
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    5426

原文標(biāo)題:詳解SPI通信協(xié)議

文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    常用的串口通信協(xié)議SPI協(xié)議簡(jiǎn)析

    SPI(serial peripheral interface)也是種同步串行通信協(xié)議。這里為啥要說(shuō)“也”呢,回想上篇介紹的PS/2不也是同步串行
    發(fā)表于 07-07 09:33 ?4325次閱讀

    搞懂SPI通信協(xié)議

    SPI 的英文全稱(chēng)為 Serial Peripheral Interface,顧名思義為串行外設(shè)接口。SPI種同步串行通信接口規(guī)范,主要應(yīng)用于嵌入式系統(tǒng)中的短距離
    發(fā)表于 06-06 10:02 ?1195次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>搞懂</b><b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>

    fpga與spi通信協(xié)議

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

    SPI通信協(xié)議

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

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

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

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

    了I2C通信協(xié)議大概,弄懂了I2C通信那么相信你也可以輕松弄懂的,因?yàn)镮2C和SPI之間有些共同點(diǎn)。I2C通信
    發(fā)表于 02-17 06:09

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

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

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

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

    SPI通信協(xié)議講解

    了I2C通信協(xié)議大概,弄懂了I2C通信那么相信你也可以輕松弄懂的,因?yàn)镮2C和SPI之間有些共同點(diǎn)。I2C通信
    發(fā)表于 12-22 19:19 ?26次下載
    <b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>講解

    通信協(xié)議SPI

    STM32模擬SPI通信協(xié)議SPI的簡(jiǎn)介:SPI是串行外設(shè)接口的縮寫(xiě),是種高速的,全雙工、同步的串行
    發(fā)表于 12-22 19:20 ?22次下載
    <b class='flag-5'>通信協(xié)議</b>:<b class='flag-5'>SPI</b>

    通信協(xié)議SPI

    、SPI簡(jiǎn)介SPI(Serial Peripheral Interface)是串行外設(shè)接口的縮寫(xiě),SPI是高速的,**全雙工**、**同步**的串行
    發(fā)表于 12-22 19:33 ?6次下載
    <b class='flag-5'>通信協(xié)議</b>(<b class='flag-5'>SPI</b>)

    i2c和spi通信協(xié)議的概念與區(qū)別 I2C/SPI總線通信協(xié)議搞懂沒(méi)有

    ? 通信協(xié)議 同步VS異步、串行VS并行有什么區(qū)別? 通信協(xié)議是個(gè)基本功,哪里都用的到。 但是般也很少人能很自信說(shuō)自己完全弄懂了某個(gè)通信協(xié)議。很多時(shí)候我們用到的只是
    的頭像 發(fā)表于 06-23 17:19 ?3660次閱讀

    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>

    【世說(shuō)知識(shí)】搞懂UART通信協(xié)議

    UART,即通用異步接收器/發(fā)送器,是最常用的設(shè)備間通信協(xié)議,正確配置后,UART可以配合許多不同類(lèi)型的涉及發(fā)送和接收串行數(shù)據(jù)的串行協(xié)議工作。在串行通信中,數(shù)據(jù)通過(guò)單條線路或?qū)Ь€逐
    的頭像 發(fā)表于 02-02 10:46 ?2213次閱讀
    【世說(shuō)知識(shí)】<b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>搞懂</b>UART<b class='flag-5'>通信協(xié)議</b>

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

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