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é)議之間區(qū)別

冬至子 ? 來(lái)源:汽車軟件開發(fā)工程師 ? 作者:良皮兒 ? 2023-11-30 16:50 ? 次閱讀

在與ECU或者嵌入式相關(guān)的工作中, 我們肯定會(huì)接觸到各種通信協(xié)議, 很多協(xié)議有很多類似的地方, 也容易混淆. 本文來(lái)介紹一下兩種常見的通信協(xié)議之間的區(qū)別.

I2C 和 SPI 都是允許用戶進(jìn)行短距離串行數(shù)據(jù)傳輸?shù)目偩€協(xié)議. I2C 是飛利浦(現(xiàn)在的 NXP)制定的兩線通信, 而 SPI 是由摩托羅拉制定的. 這兩種協(xié)議通常用于智能手機(jī)、電視和筆記本電腦電子設(shè)備, 以控制電源管理芯片、存儲(chǔ)設(shè)備、輸入設(shè)備等外圍設(shè)備.

什么是I2C?

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

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

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

圖片

此外,I2C總線用于各種控制架構(gòu), 例如SMBus(系統(tǒng)管理總線)、PMBus(電源管理總線)、IPMI(智能平臺(tái)管理接口)等.

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

I2C協(xié)議有很多優(yōu)點(diǎn), 讓用戶在很多應(yīng)用中不得不使用I2C協(xié)議. 下面是I2C的主要優(yōu)點(diǎn):

  • 它是同步通信協(xié)議, 因此主從不需要精確的振蕩器.
  • 它只需要兩根線, 一根線用于數(shù)據(jù)(SDA), 另一根線用于時(shí)鐘(SCL).
  • 它為用戶提供了根據(jù)要求選擇傳輸速率的靈活性.
  • 在 I2C 總線中, 總線上的每個(gè)設(shè)備都可以獨(dú)立尋址.
  • 它遵循主從關(guān)系.
  • 它能夠處理 I2C 總線上的多個(gè)主機(jī)和多個(gè)從機(jī).
  • I2C 具有一些重要的特性, 例如仲裁、時(shí)鐘同步和時(shí)鐘延長(zhǎng).
  • I2C 提供 ACK/NACK(確認(rèn)/不確認(rèn))功能, 可幫助處理錯(cuò)誤.

I2C 通信協(xié)議的缺點(diǎn)

I2C 協(xié)議有很多優(yōu)點(diǎn), 但除此之外, I2C 也有一些限制:

  • 由于開漏拓?fù)? 它比其他串行通信總線消耗更多的功率.
  • 它僅適用于短距離.
  • I2C 協(xié)議對(duì)從機(jī)的數(shù)量有一定的限制, 從機(jī)的數(shù)量取決于 I2C 總線的電容.
  • 它只提供一些有限的通信速度, 如 100 kbit/s、400 kbit/s 等.
  • 在 I2c 中, 設(shè)備可以設(shè)置它們的通信速度, 運(yùn)行速度較慢的設(shè)備可以延遲速度較快的設(shè)備的運(yùn)行.

什么是SPI?

串行外設(shè)接口是基于四線的全雙工通信協(xié)議, 這些線通常稱為 MOSI(主出從入)、MISO(主進(jìn)從出)、SCL(由主產(chǎn)生的串行時(shí)鐘)和 SS(從 選擇線, 用于在通信過程中選擇特定的從站).

圖片

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

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

SPI通訊協(xié)議的優(yōu)點(diǎn)

  • 沒有起始位和停止位, 因此數(shù)據(jù)可以不間斷地連續(xù)流式傳輸.
  • 它支持全雙工.
  • 從設(shè)備中不需要精密振蕩器, 因?yàn)樗褂弥鲿r(shí)鐘.
  • 沒有像 I2C 這樣復(fù)雜的從機(jī)尋址系統(tǒng).
  • 比 I2C 更高的數(shù)據(jù)傳輸速率(幾乎是 I2C 的兩倍).
  • 將 MISO 和 MOSI 線分開, 因此可以同時(shí)發(fā)送和接收數(shù)據(jù).
  • 簡(jiǎn)單的軟件實(shí)現(xiàn).

SPI通訊協(xié)議的缺點(diǎn)

  • 如果通信中的從站不止一個(gè), 那么接線會(huì)很復(fù)雜.
  • 使用四根線(I2C 和 UART 使用兩根).
  • 不確認(rèn)數(shù)據(jù)已成功接收(I2C 具有此功能).
  • 沒有像 UART 中的奇偶校驗(yàn)位那樣的錯(cuò)誤檢查形式.
  • 它只允許一個(gè)主機(jī).

嵌入式系統(tǒng)中, I2C和SPI都扮演著重要的角色. 這兩種通信協(xié)議都是同步通信的例子, 但仍然有一些重要的區(qū)別. 在下表中, 我指出了 SPI 和I2C(SPI 與 I2C)之間的一些常見差異.

下表直觀的對(duì)I2C 和 SPI 進(jìn)行一個(gè)對(duì)比:

1.jpg

2.jpg

聲明:本文內(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)投訴
  • 振蕩器
    +關(guān)注

    關(guān)注

    28

    文章

    3832

    瀏覽量

    139099
  • 電源管理
    +關(guān)注

    關(guān)注

    115

    文章

    6183

    瀏覽量

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

    關(guān)注

    17

    文章

    1706

    瀏覽量

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

    關(guān)注

    4

    文章

    448

    瀏覽量

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

    關(guān)注

    0

    文章

    26

    瀏覽量

    8475
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    i2c通信協(xié)議

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

    介紹一下SPI協(xié)議

    文章目錄前言、SPI介紹1.SPI總線2.尋址方式二、通信原理1.
    發(fā)表于 02-17 07:44

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

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

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

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

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

    我最近剛做完I2C通信協(xié)議的編寫與調(diào)試,下面介紹一下我從開始理解夏老師的程序,修改程序,直到
    發(fā)表于 04-28 08:00 ?21次下載
    <b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>應(yīng)該如何學(xué)習(xí)

    SPI通信協(xié)議講解

    I2C通信協(xié)議大概,弄懂了I2C通信那么相信你也可以輕松弄懂的,因?yàn)?b class='flag-5'>I2CSPI
    發(fā)表于 12-22 19:19 ?26次下載
    <b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>講解

    分享個(gè)單片機(jī)的I2CSPI通信

    I2CSPI兩種不同的通信協(xié)議。聽到協(xié)議,似乎高不可攀,其實(shí)協(xié)議就是人們定義的
    發(fā)表于 02-08 15:31 ?1次下載
    分享<b class='flag-5'>一</b>個(gè)單片機(jī)的<b class='flag-5'>I2C</b>和<b class='flag-5'>SPI</b><b class='flag-5'>通信</b>

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

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

    Arduino常用的三通信協(xié)議 2

    UART、I2CSPI是嵌入式世界里最常見的三通信協(xié)議。在閱讀教程,或者購(gòu)買模塊時(shí)常常看見“這個(gè)模塊是用
    的頭像 發(fā)表于 02-13 10:31 ?2882次閱讀
    Arduino常用的三<b class='flag-5'>種</b><b class='flag-5'>通信協(xié)議</b> <b class='flag-5'>2</b>

    簡(jiǎn)述UART、SPI、I2C協(xié)議區(qū)別

    I2C、SPI、UART都是常見的低速板級(jí)通信協(xié)議 ,目前主流的SoC都內(nèi)置了這些通訊協(xié)議的控制器,同樣,各種傳感器、Touch控制器、指紋
    的頭像 發(fā)表于 02-17 10:50 ?2536次閱讀
    簡(jiǎn)述UART、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>區(qū)別</b>

    文搞懂UART、I2CSPI協(xié)議

    UART、I2C、SPI都是常見的低速板級(jí)通信協(xié)議,目前主流的SoC都內(nèi)置了這些通訊協(xié)議的控制器,同樣,各種傳感器、Touch控制器、指紋模
    的頭像 發(fā)表于 03-26 09:29 ?2084次閱讀

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

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

    i2c接口和spi接口區(qū)別

    些重要的區(qū)別。 I2C接口和SPI接口都屬于串行通信接口標(biāo)準(zhǔn),廣泛應(yīng)用在嵌入式系統(tǒng)和電子設(shè)備中。它們之間的主要
    的頭像 發(fā)表于 12-25 15:02 ?4032次閱讀

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

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

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

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