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

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

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

通信協(xié)議之SPI總線硬件篇

hellosz ? 來(lái)源:hellosz ? 作者:hellosz ? 2024-11-25 17:56 ? 次閱讀

一、概述

SPI:Serial Peripheral Interface,串行外圍設(shè)備接口。

是由摩托羅拉在20世紀(jì)80年代中期開(kāi)發(fā)的同步串行總線接口規(guī)范(帶有時(shí)鐘信號(hào),通過(guò)時(shí)鐘極性和時(shí)鐘相位來(lái)控制采樣,

即同步傳輸)。

1、支持半雙工、全雙工通信模式。

2、沒(méi)有流控制和應(yīng)答機(jī)制來(lái)確認(rèn)是否接收到數(shù)據(jù)(UART有校驗(yàn)或流控制)。

3、沒(méi)有一個(gè)固定的傳輸速率規(guī)定,已有器件SPI輸出速率達(dá)到50Mbps以上(I2C有明確規(guī)定速率)。

4、只能板內(nèi)的短距離傳輸(RS232、RS485輸出距離遠(yuǎn))。

5、沒(méi)有限制傳輸bit數(shù)量,常用的是8bit或9bit。

6、不需要硬件地址(I2C要地址),采用片選。

7、主從模式,一托多。

二、3線和4線模式

3線SPI和4線SPI各個(gè)模式下信號(hào)定義:

3線9bit I型 接口信號(hào):SCL、CS、SDA

3線9bit II型接口信號(hào):SCL、CS、SDO、SDI

4線8bit I型接口信號(hào):SCL、CS、DCX、SDA

4線8bit II型接口信號(hào):SCL、CS、DCX、SDO、SDI

3線9bit 2 data Lane 接口信號(hào):SCL、CS、D0、D1

對(duì)于3線或4線來(lái)區(qū)分,并不是信號(hào)線的數(shù)量,也不是網(wǎng)上說(shuō)的半雙工和全雙工,或者數(shù)據(jù)線數(shù)量差異。

個(gè)人認(rèn)為:

3線說(shuō)的是時(shí)鐘、片選、數(shù)據(jù)信號(hào)(不管是一根數(shù)據(jù)線,還是兩根數(shù)據(jù)線),共三種信號(hào)。

4線說(shuō)的是時(shí)鐘、片選、數(shù)據(jù)信號(hào)、數(shù)據(jù)或命令控制線(確定發(fā)送的是數(shù)據(jù)還是命令),共4中信號(hào)。

三、SPI 四種工作模式

通過(guò)CPOL時(shí)鐘極性和CPHA時(shí)鐘相位的搭配來(lái)得到四種工作模式:

wKgZomXtxOSAJVpAAABYsv1YBhk227.png

CPOL時(shí)鐘極性定義的是 SCLK時(shí)鐘線空閑狀態(tài)時(shí)的電平

CPOL=0,即SCLK=0,表示SCLK時(shí)鐘信號(hào)線在空閑狀態(tài)時(shí)的電平為低電平,因此有效狀態(tài)為高電平。

CPOL=1,即SCLK=1,表示SCLK時(shí)鐘信號(hào)線在空閑狀態(tài)時(shí)的電平為高電平,因此有效狀態(tài)為低電平。

CPHA時(shí)鐘相位定義的是數(shù)據(jù)位相對(duì)于時(shí)鐘線的時(shí)序(即相位)

CPHA=0,即表示輸出(out)端在上一個(gè)時(shí)鐘周期的后沿改變數(shù)據(jù),而輸入(in)端在時(shí)鐘周期的前沿(或不久之后)捕

獲數(shù)據(jù)。輸出端保持?jǐn)?shù)據(jù)有效直到當(dāng)前時(shí)鐘周期的尾部邊緣。對(duì)于第一個(gè)時(shí)鐘周期來(lái)說(shuō),第一位的數(shù)據(jù)必須在時(shí)鐘前沿之

前出現(xiàn)在MOSI線上。也就是一個(gè)CPHA=0的周期包括半個(gè)時(shí)鐘空閑和半個(gè)時(shí)鐘置位的周期。

CPHA=1,即表示輸出(out)端在當(dāng)前時(shí)鐘周期的前沿改變數(shù)據(jù),而輸入(in)端在時(shí)鐘周期的后沿(或不久之后)捕獲

數(shù)據(jù)。輸出端保持?jǐn)?shù)據(jù)有效直到下一個(gè)時(shí)鐘周期的前沿。對(duì)于最后一個(gè)時(shí)鐘周期來(lái)說(shuō),從機(jī)設(shè)備在片選信號(hào)消失之前保持

MISO信號(hào)線有效。也就是一個(gè)CHPA=1的周期包括半個(gè)時(shí)鐘置位和半個(gè)時(shí)鐘空閑的周期。

四、SPI升級(jí)版

SPI flash接口有standard SPI、Dual SPI、Quad SPI、Octal SPI,也就是所謂的1248線模式。

wKgaomXtxRqAN-NSAAB2yzCWnrE361.png

五、SDR和DDR模式

SPI通信支持SDR和DDR模式。

SDR:Single Data Rate通過(guò) SCLK 的觸發(fā)對(duì)信號(hào)進(jìn)行采樣時(shí),一個(gè)時(shí)鐘周期只執(zhí)行一次,稱為單倍數(shù)據(jù)速率模式。

DDR:Double Data Rate通過(guò) SCLK 的觸發(fā)對(duì)信號(hào)進(jìn)行采樣時(shí),每個(gè)上升沿和下降沿將采樣一次。

也就是說(shuō)一個(gè)時(shí)鐘周期內(nèi)發(fā)送2位或者接收2位數(shù)據(jù),稱為雙倍數(shù)據(jù)速率模式

六、SPI Flash接口

Dual SPI有兩根數(shù)據(jù)IO;Quad SPI有4根數(shù)據(jù)IO。

SPI flash spec:

wKgZomXtxSyAJAlOAADXh9dy0kw866.png

七、SPI TFT液晶屏接口

TFT液晶屏ST7789 spec定義,支持串行和并行,支持SPI多種通信模式。

wKgZomXtxTqAEyqCAAGWM8jADHU220.png

八、信號(hào)定義及連線

標(biāo)準(zhǔn)SPI接口信號(hào)定義:

wKgaomXtxUiAE7QyAAB9ddLnuZQ588.png

標(biāo)準(zhǔn)的SPI規(guī)范連線:

wKgZomXtxVWAZwjrAAAqtjMN35Y772.png

SDOSDI網(wǎng)絡(luò)命名的連線(SDO和SDI交叉):

wKgaomXtxWKAPFYoAAApwhTqMl8503.png

SPI總線,一對(duì)多連線:

wKgaomXtxW-AV8pDAACAtdpW32k449.png

九、小結(jié)

1、有的參考設(shè)計(jì)原理圖中,用SDI表示MOSI,用SDO表示MISO,連線要注意輸出和輸入的定義。

2、芯片引腳的信號(hào)輸入或輸出,是針對(duì)自身來(lái)標(biāo)明的,因此在主從設(shè)備芯片的輸出或輸入要連接正確。

3、電路設(shè)計(jì)上引腳信號(hào)不需要上拉。如果是IO模擬的話,需注意是不是開(kāi)漏,如是要加上拉。另,要確認(rèn)器件spec的SPI

信息,可能有特殊的要加上下拉。

4、一對(duì)多的連線,片選信號(hào)CS單獨(dú)控制,多個(gè)從設(shè)備需要多個(gè)CS信號(hào)。

5、從設(shè)備未被選中時(shí),信號(hào)線變成高阻態(tài)(斷開(kāi))。

6、Layout上沒(méi)有特殊要求,當(dāng)然可以SCLK信號(hào)包下地。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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

    文章

    899

    瀏覽量

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

    關(guān)注

    17

    文章

    1715

    瀏覽量

    91830
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2892

    瀏覽量

    88210
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ADS1278通過(guò)SPI通信協(xié)議讀取轉(zhuǎn)換數(shù)據(jù)時(shí)遇到的疑問(wèn)求解

    我用的是TI的ADS1278進(jìn)行六通道電壓同步采樣,工作在SPI的TDM,離散數(shù)據(jù)模式。在通過(guò)SPI通信協(xié)議讀取轉(zhuǎn)換數(shù)據(jù)時(shí),采用了下面的讀取方法: 通過(guò)DSP處理器SPI接口MIS
    發(fā)表于 01-14 06:31

    總線通信協(xié)議解析及應(yīng)用

    在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,總線通信協(xié)議扮演著至關(guān)重要的角色。它們定義了數(shù)據(jù)如何在處理器、內(nèi)存、輸入/輸出設(shè)備等組件之間傳輸。 總線通信協(xié)議的基本概念 總線
    的頭像 發(fā)表于 12-31 10:07 ?135次閱讀

    常見(jiàn)串口通信協(xié)議 如何設(shè)置串口參數(shù)

    ,使用9針或25針的D-sub連接器。它支持全雙工通信,但傳輸距離和速率有限。 RS-485 :這是一種差分信號(hào)的串行通信協(xié)議,可以支持更遠(yuǎn)距離和更高速率的通信,常用于工業(yè)現(xiàn)場(chǎng)總線。
    的頭像 發(fā)表于 12-27 09:51 ?452次閱讀

    AUTOSAR通信協(xié)議解析 如何實(shí)現(xiàn)AUTOSAR通信

    通信協(xié)議棧是一個(gè)復(fù)雜的系統(tǒng),它涵蓋了多種通信方式和模塊,以實(shí)現(xiàn)車內(nèi)ECU之間的高效、可靠的數(shù)據(jù)交換。以下是對(duì)AUTOSAR通信協(xié)議的解析及實(shí)現(xiàn)AUTOSAR通信的方法: 一、AUTOS
    的頭像 發(fā)表于 12-17 14:54 ?797次閱讀

    如何使用Arduino實(shí)現(xiàn)CAN總線通信

    CAN總線(Controller Area Network)是一種多主控制的串行通信協(xié)議,廣泛應(yīng)用于汽車電子、工業(yè)自動(dòng)化等領(lǐng)域。它以其高可靠性、實(shí)時(shí)性和靈活性而受到青睞。Arduino作為一個(gè)
    的頭像 發(fā)表于 11-12 10:09 ?1156次閱讀

    CAN總線與其他串行通信協(xié)議比較

    CAN總線與其他串行通信協(xié)議相比,具有其獨(dú)特的特點(diǎn)和優(yōu)勢(shì)。以下是對(duì)CAN總線與UART、I2C、SPI等常見(jiàn)串行通信協(xié)議的比較: 一、基本特
    的頭像 發(fā)表于 11-12 09:56 ?879次閱讀

    CAN總線通信協(xié)議詳解

    一、CAN總線概述 CAN總線是一種多主控制的串行通信協(xié)議,它允許多個(gè)設(shè)備共享同一通信線路,而無(wú)需中央控制單元。這種設(shè)計(jì)使得CAN總線非常適
    的頭像 發(fā)表于 11-12 09:46 ?1293次閱讀

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

    PROFINET通信協(xié)議是一種專為工業(yè)自動(dòng)化領(lǐng)域設(shè)計(jì)的基于以太網(wǎng)的實(shí)時(shí)通信協(xié)議。以下是對(duì)PROFINET通信協(xié)議的詳細(xì)解析,包括其定義、特點(diǎn)、體系結(jié)構(gòu)、工作原理、通信方式、應(yīng)用領(lǐng)域以及
    的頭像 發(fā)表于 09-25 18:13 ?2110次閱讀

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

    SPI(Serial Peripheral Interface)通信協(xié)議,即串行外圍設(shè)備接口,是一種高速、全雙工、同步通信總線,由摩托羅拉公司提出并廣泛應(yīng)用。
    的頭像 發(fā)表于 09-09 17:04 ?1819次閱讀

    dht11采用什么通信協(xié)議

    DHT11是一款廣泛使用的溫濕度傳感器,它通過(guò)簡(jiǎn)單的數(shù)字接口與微控制器或其他數(shù)字設(shè)備進(jìn)行通信。DHT11使用單總線通信協(xié)議,這意味著所有的數(shù)據(jù)傳輸都通過(guò)單一的數(shù)據(jù)線完成。這種通信方式簡(jiǎn)
    的頭像 發(fā)表于 09-04 09:06 ?2427次閱讀

    簡(jiǎn)單認(rèn)識(shí)UART通信協(xié)議

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)通信協(xié)議是一種常見(jiàn)的串行通信協(xié)議,廣泛應(yīng)用于計(jì)算機(jī)、嵌入式系統(tǒng)、傳感器、無(wú)線通信
    的頭像 發(fā)表于 07-25 18:07 ?1510次閱讀

    簡(jiǎn)單認(rèn)識(shí)I2C通信協(xié)議

    I2C(Inter-Integrated Circuit)通信協(xié)議是由飛利浦公司(現(xiàn)為恩智浦半導(dǎo)體)開(kāi)發(fā)的一種簡(jiǎn)單、雙向二線制同步串行總線協(xié)議。自1982年發(fā)布以來(lái),I2C協(xié)議因其高效
    的頭像 發(fā)表于 07-25 18:06 ?1578次閱讀

    高速串行通信協(xié)議都有哪些

    (通用串行總線) USB是一種廣泛使用的串行通信協(xié)議,用于連接計(jì)算機(jī)和各種外部設(shè)備,如鍵盤、鼠標(biāo)、打印機(jī)等。USB協(xié)議有多個(gè)版本,包括USB 1.1、USB 2.0、USB 3.0、USB 3.1和USB 4.0。每個(gè)版本都有
    的頭像 發(fā)表于 05-31 16:11 ?1187次閱讀

    SPI和I2C通信協(xié)議:應(yīng)用與區(qū)別

    本文深入解析了SPI和I2C這兩種通信協(xié)議的特點(diǎn)、工作原理和應(yīng)用場(chǎng)景。SPI適用于高速數(shù)據(jù)傳輸,常用于存儲(chǔ)器芯片和顯示器驅(qū)動(dòng)等領(lǐng)域;I2C適用于低速控制和傳感器數(shù)據(jù)傳輸,常用于溫度傳感器和ADC
    的頭像 發(fā)表于 04-22 16:45 ?1901次閱讀

    工業(yè)控制通信協(xié)議的報(bào)文幀分別是什么樣的?

    工業(yè)控制常用到不同的通信協(xié)議,MODBUS,CAN,CANOPEN,PROFIBUS,PROFINET,ETNERNET,ETHERCAT,SPI,PPI,工業(yè)以太網(wǎng)等等,協(xié)議,就是兩臺(tái)設(shè)備交換數(shù)據(jù)
    發(fā)表于 01-19 14:46