RM新时代网站-首页

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

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

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

I2C和SPI通信協(xié)議的主要差異在哪?

玩轉(zhuǎn)單片機(jī)與嵌入式 ? 來源:玩轉(zhuǎn)單片機(jī)與嵌入式 ? 作者:觀海聽濤 ? 2022-11-09 09:50 ? 次閱讀

有很多串行通信協(xié)議,但其中I2C和SPI非常有名。I2C 和 SPI 都是總線協(xié)議,允許用戶進(jìn)行短距離的串行數(shù)據(jù)傳輸。I2C是飛利浦(現(xiàn)在是NXP)制造的兩線通信,而SPI是摩托羅拉制造的。

這兩種協(xié)議通常用于智能手機(jī)、電視和筆記本電腦電子設(shè)備中,以控制電源管理芯片、存儲(chǔ)設(shè)備、輸入設(shè)備等外圍設(shè)備。

在本文中,我們討論一下I2C和SPI之間的區(qū)別。本文討論的目錄如下:

一:什么是I2C

I2C 是一種串行通信協(xié)議。它為慢速設(shè)備提供了很好的支持,例如EEPROM、ADC和RTC等。I2c不僅可以在單板使用,還可通過電纜與板連接的其他外部組件一起使用。

I2C是一種兩線通信協(xié)議。它僅使用兩根線進(jìn)行通信。其中一根線用于數(shù)據(jù)(SDA),另一根線用于時(shí)鐘(SCL)。

在 I2C 中,兩條總線都是雙向的,這意味著主機(jī)能夠發(fā)送和接收來自從機(jī)的數(shù)據(jù)。時(shí)鐘總線由主機(jī)控制,但在某些情況下,從機(jī)也能夠抑制時(shí)鐘信號(hào)。

39f71ec8-5fbc-11ed-8abf-dac502259ad0.jpg

二:I2C協(xié)議的優(yōu)點(diǎn)

I2C 協(xié)議有很多優(yōu)點(diǎn),使得用戶在很多應(yīng)用中不得不使用 I2C 協(xié)議。

它是同步通信協(xié)議,因此主從不需要精確的振蕩器。

它只需要兩根線,一根用于數(shù)據(jù) (SDA),另一根用于時(shí)鐘 (SCL)。

它為用戶提供了根據(jù)要求選擇傳輸速率的靈活性。

在 I2C 總線中,總線上的每個(gè)設(shè)備都是可獨(dú)立尋址的。

它遵循主從關(guān)系。

它能夠處理 I2C 總線上的多個(gè)主機(jī)和多個(gè)從機(jī)。

I2C 具有一些重要功能,例如仲裁、時(shí)鐘同步和時(shí)鐘延長。

I2C 提供 ACK/NACK(確認(rèn)/未確認(rèn))功能,可幫助處理錯(cuò)誤。

三:I2C總線的缺點(diǎn)

I2C 協(xié)議有很多優(yōu)勢,但除此之外,I2C也會(huì)存在缺點(diǎn)。

由于開漏拓?fù)?,它比其他串行通信總線消耗的功率更多。

它只適用于短距離。

I2C 協(xié)議對(duì)從機(jī)的數(shù)量有一定的限制,從機(jī)的數(shù)量取決于 I2C 總線的電容。

它只提供一些有限的通信速度,如 100 kbit/s、400 kbit/s 等。

在 I2c 中,設(shè)備可以設(shè)置它們的通信速度,并且在運(yùn)行時(shí)需要等待應(yīng)答信號(hào)等,運(yùn)行速度較慢的設(shè)備可能會(huì)延遲速度較快的設(shè)備的運(yùn)行。

四:什么是SPI?

SPI(serial peripheral interface)是基于四線的全雙工通信協(xié)議,這些線通常被稱為 MOSI(master out slave in)、MISO(master in slave out)、SCL(由 master 產(chǎn)生的串行時(shí)鐘)和 SS(slave 選擇線,用于在通信期間選擇特定從站)。

3a9749d4-5fbc-11ed-8abf-dac502259ad0.png

SPI 遵循主從架構(gòu),通信始終由主機(jī)啟動(dòng)。與 I2C 一樣,它也是一種同步通信協(xié)議,因?yàn)闀r(shí)鐘由主機(jī)和從機(jī)共享。

SPI 僅支持多從機(jī)不支持多主機(jī),從機(jī)由從機(jī)選擇信號(hào)選擇。在 SPI 中,通信期間數(shù)據(jù)從主機(jī)移出并通過移位寄存器移入從機(jī),反之亦然。

五:SPI通信的優(yōu)點(diǎn)

總結(jié)的SPI通信協(xié)議的優(yōu)點(diǎn)如下:

沒有開始位和停止位,因此數(shù)據(jù)可以連續(xù)流式傳輸而不會(huì)中斷。

它支持全雙工。

從設(shè)備中不需要精密振蕩器,因?yàn)樗褂弥鲿r(shí)鐘。

沒有像 I2C 這樣復(fù)雜的從機(jī)尋址系統(tǒng)。

比 I2C 更高的數(shù)據(jù)傳輸速率(幾乎快兩倍)。

MISO和MOSI線分開,可以同時(shí)發(fā)送和接收數(shù)據(jù)。

軟件實(shí)現(xiàn)比較簡單。

六:SPI通信的缺點(diǎn)

如果有多個(gè)從站進(jìn)行通信,則接線會(huì)很復(fù)雜。

使用四根線(I2C 和 UART 使用兩根線)。

沒有確認(rèn)數(shù)據(jù)已成功接收(I2C有)。

沒有像 UART 中的奇偶校驗(yàn)位那樣的錯(cuò)誤檢查形式。

它只允許一個(gè)主機(jī)。

七:SPI和I2C的區(qū)別

嵌入式系統(tǒng)中,I2C和SPI都扮演著重要的角色。兩種通信協(xié)議都是同步通信的例子,但仍然有一些重要的區(qū)別。

在下表中,列出了SPI和I2C之間的一些常見差異。

I2C SPI
????????I2C 可以是多主機(jī)和多從機(jī),這意味著可以有多個(gè)主機(jī)和從機(jī)連接到 I2C 總線。 SPI 可以支持多從機(jī),不支持多主機(jī),這意味著只能有一個(gè)主機(jī)連接到 SPI 總線
I2C 是一種半雙工通信協(xié)議 SPI 是一種全雙工通信協(xié)議
I2C 具有時(shí)鐘延長的特性,這意味著如果從機(jī)無法以足夠快的速度發(fā)送快速數(shù)據(jù),則它會(huì)抑制時(shí)鐘以停止通信。 SPI無始終延長特性
I2C僅使用兩根線進(jìn)行通信,一根用于數(shù)據(jù),另一根用于時(shí)鐘 SPI 需要三線或四線進(jìn)行通信(取決于要求):MOSI、MISO、SCL 和片選引腳
通信速度:I2C 比 SPI 慢 與 I2C 相比,SPI 更快
I2C 比 SPI 消耗更多功率 與 I2C 相比,功耗更低
I2C 比 SPI 更不易受噪聲影響 SPI 比 I2C 更容易受到噪聲的影響
I2C 比 SPI 通信協(xié)議實(shí)現(xiàn)起來更便宜 與 I2C 相比,成本較高
I2C 工作在“線與”邏輯上,它有一個(gè)上拉電阻 在 SPI 的情況下不需要上拉電阻
在 I2C 通信中,我們在每個(gè)字節(jié)后得到確認(rèn)位 SPI 通信協(xié)議不支持確認(rèn)位
I2C 確保發(fā)送的數(shù)據(jù)被從設(shè)備接收 SPI 不驗(yàn)證數(shù)據(jù)是否正確接收
I2C 是一種多主機(jī)通信協(xié)議,所以它具有仲裁功能 SPI 不是多主機(jī)通信協(xié)議,因此它不具備仲裁屬性
I2C 是基于地址的總線協(xié)議,通信前需要發(fā)送從機(jī)的地址 在 SPI 的情況下,您必須使用從機(jī)選擇引腳選擇從機(jī)進(jìn)行通信
由于開始位和停止位,I2C 有一些額外的開銷 SPI 沒有開始位和停止位
I2C 支持同一總線上的多個(gè)設(shè)備,無需任何額外的選擇線(根據(jù)設(shè)備地址工作) SPI 需要額外的信號(hào)(從選擇線)線來管理同一總線上的多個(gè)設(shè)備
I2C更適合長距離 SPI更適合短距離
I2C 由 NXP 開發(fā) SPI 由摩托羅拉開發(fā)







審核編輯:劉清

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

    關(guān)注

    9

    文章

    1019

    瀏覽量

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

    關(guān)注

    0

    文章

    18

    瀏覽量

    8361
  • I2C協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    8472

原文標(biāo)題:通過一張表區(qū)分I2C和SPI通信協(xié)議(都是串行通信,兩者有什么區(qū)別)

文章出處:【微信號(hào):玩轉(zhuǎn)單片機(jī)與嵌入式,微信公眾號(hào):玩轉(zhuǎn)單片機(jī)與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    i2c通信協(xié)議

    1.1 i2c通信協(xié)議通信協(xié)議:用來實(shí)現(xiàn)數(shù)據(jù)傳輸。i2c物理總線:SCL(時(shí)鐘線) SDA(數(shù)據(jù)線)i2c
    發(fā)表于 03-06 16:15

    I2C通信協(xié)議硬軟件

    目錄12C通信協(xié)議硬軟件I2CAHT20測溫濕度參考12C通信協(xié)議I2C
    發(fā)表于 08-23 07:42

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

    I2C通信協(xié)議I2C通信原理I2C通信原理:I2C
    發(fā)表于 02-17 07:16

    SPI、I2C、UART串行總線協(xié)議

    串口通訊通信協(xié)議UART,以及常用外設(shè)通信協(xié)議 SPI、I2C的介紹與他們之間的區(qū)別
    發(fā)表于 11-30 11:28 ?95次下載

    實(shí)驗(yàn)八-I2C通信協(xié)議

    實(shí)驗(yàn)八-I2C通信協(xié)議,感興趣的可以瞧一瞧。
    發(fā)表于 09-22 16:42 ?2次下載

    spii2c總線協(xié)議的對(duì)比分析

    通信協(xié)議非常適合近距離低速芯片間通信。Philips(for I2C)和Motorola(for SPI) 出于不同背景和市場需求制定了這兩種標(biāo)準(zhǔn)
    發(fā)表于 12-06 11:57 ?2485次閱讀

    I2C通信協(xié)議應(yīng)該如何學(xué)習(xí)

    我最近剛做完I2C通信協(xié)議的編寫與調(diào)試,下面介紹一下我從一開始理解夏老師的程序,修改程序,直到下板調(diào)試整個(gè)的學(xué)習(xí)過程,希望對(duì)大家學(xué)習(xí) I2C 有一定的幫助。一、 分析源代碼學(xué)習(xí) I2C
    發(fā)表于 04-28 08:00 ?21次下載
    <b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>應(yīng)該如何學(xué)習(xí)

    關(guān)于stm32通信協(xié)議:軟件模擬SPI、軟件模擬I2C的總結(jié)(fishing_8)

    趁著幫老師代上嵌入式實(shí)驗(yàn)課的機(jī)會(huì),又重新熟悉了一遍stm32的通信協(xié)議:串口協(xié)議SPI協(xié)議、I2C協(xié)議
    發(fā)表于 12-05 13:51 ?3次下載
    關(guān)于stm32<b class='flag-5'>通信協(xié)議</b>:軟件模擬<b class='flag-5'>SPI</b>、軟件模擬<b class='flag-5'>I2C</b>的總結(jié)(fishing_8)

    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>講解

    i2cspi通信協(xié)議的概念與區(qū)別 I2C/SPI總線通信協(xié)議你搞懂沒有

    計(jì)劃第四期:硬聲UP主@硬件研究獅 從工程實(shí)踐的角度,給大家拆解I2CSPI。 ? ? 四分鐘搞定通信協(xié)議的分類 簡介: 同步通信與異步通信
    的頭像 發(fā)表于 06-23 17:19 ?3644次閱讀

    了解I2C Primer、PMBus和SMBus通信協(xié)議

    I2C或內(nèi)部集成電路是建立設(shè)備之間通信的常用串行通信協(xié)議,特別是對(duì)于兩個(gè)或多個(gè)不同的電路。I2C引物是最常用的 I2C. 本文將提供
    的頭像 發(fā)表于 12-12 16:58 ?8718次閱讀
    了解<b class='flag-5'>I2C</b> Primer、PMBus和SMBus<b class='flag-5'>通信協(xié)議</b>

    I2C通信協(xié)議:了解I2C Primer、 PMBus和SMBus

    I2C,即Inter-Integrated Circuit,是一種常用的串行通信協(xié)議,用于在器件之間——特別是兩個(gè)或兩個(gè)以上不同電路之間建立通信。I2C Primer是最常用的
    的頭像 發(fā)表于 06-15 15:29 ?5690次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>:了解<b class='flag-5'>I2C</b> Primer、 PMBus和SMBus

    UART、SPII2C比較 串口通信介紹

    ,較少用于遠(yuǎn)距離通信。 SPI實(shí)現(xiàn)要簡單一些,UART需要固定的波特率,就是說兩位數(shù)據(jù)的間隔要相等,而SPI則無所謂,因?yàn)樗怯袝r(shí)鐘的協(xié)議I2C
    的頭像 發(fā)表于 11-09 18:06 ?1389次閱讀
    UART、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>比較 串口<b class='flag-5'>通信</b>介紹

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

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

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

    I2C(Inter-Integrated Circuit)通信協(xié)議是由飛利浦公司(現(xiàn)為恩智浦半導(dǎo)體)開發(fā)的一種簡單、雙向二線制同步串行總線協(xié)議。自1982年發(fā)布以來,I2C
    的頭像 發(fā)表于 07-25 18:06 ?1431次閱讀
    RM新时代网站-首页