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

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

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

藍牙串口通訊總線——I2C/SPI/UART

美迅物聯(lián)網(wǎng) ? 來源:jf_75680484 ? 作者:jf_75680484 ? 2024-01-22 09:41 ? 次閱讀

嵌入式工程師在做串口通信調(diào)試工作的時候,會經(jīng)常用到I2C、SPI、UART這3條總線,I2C、SPI、UART這三種通信總線在嵌入式領(lǐng)域很常見,目前主流的SOC芯片都內(nèi)置了這三種總線的控制器,各種Sensor、Touch、藍牙模塊、WIFI模塊等也都兼容這三種通信協(xié)議的1種以上。那么這三條通信總線有什么區(qū)別呢?工業(yè)物聯(lián)網(wǎng)無線通信專業(yè)廠商為您一一細說——

I2C:半雙工、同步、串行傳輸,物理上只有兩根線(SDA/SCL);傳輸數(shù)據(jù)必須8位8位的傳輸。

I2C串口通信傳輸步驟

1.在SCL線為高電平時,主機通過將SDA線從高電平切換到低電平來啟動總線通信;

2.主機向總線發(fā)送要與之通信的從機的7位或10位地址,以及讀/寫位;

3.每個從機將主機發(fā)送的地址與其自己的地址進行比較。如果地址匹配,則從機通過將SDA線拉低一位返回一個ACK位。如果主機的地址與從機的地址不匹配,則從機將SDA線拉高。

4.主機發(fā)送或接收數(shù)據(jù)幀;

5.傳輸完每個數(shù)據(jù)幀后,接收設(shè)備將另一個ACK位返回給發(fā)送方,以確認已成功接收到該幀;

6.隨后主機將SCL切換為高電平,然后再將SDA切換為高電平,從而向從機發(fā)送停止條件。

SPI:全雙工、同步、串行傳輸,收發(fā)獨立,傳輸速率高,但是沒有指定的流控制,沒有應答機制確認是否接收到數(shù)據(jù)。物理上4根線(CLK/SDI/SDO/CS),因為是全雙工,并且不需要尋址,所以速度要比I2C快,但是占用的物理線的數(shù)量要比I2C多;通信時可以一位一位的傳輸數(shù)據(jù)。

SPI串口通信傳輸步驟:

1.主機輸出時鐘信號;

2.主機拉低SS/CS引腳,激活從機;

3.主機通過MOSI將數(shù)據(jù)發(fā)送給從機;

4.如果需要相應,則從機通過MISO將數(shù)據(jù)返回給從機。

UART:全雙工、異步、串行傳輸,收發(fā)獨立,UART總線并沒有時鐘線,所以需要提前約定對應的波特率,傳輸速度較慢,物理上4根線(VCC/TX/RX/GND),雖然速度慢,但是可用于不同主機間的通信,通常用于debug調(diào)試非常方便;傳輸時數(shù)據(jù)位可以5、6、7、8位。

UART串口通信傳輸步驟:

1.發(fā)送UART從數(shù)據(jù)總線并行接收數(shù)據(jù);

2.發(fā)送UART將起始位、奇偶校驗位和停止位添加到數(shù)據(jù)幀;

3.整個數(shù)據(jù)包從發(fā)送UART串行發(fā)送到接收UART。接收UART以預先配置的波特率對數(shù)據(jù)線進行采樣;

4.接收UART丟棄數(shù)據(jù)幀中的起始位、奇偶校驗位和停止位;

5.接收UART將串行數(shù)據(jù)轉(zhuǎn)換回并行數(shù)據(jù),并將其傳輸?shù)浇邮斩说臄?shù)據(jù)總線。

單工、半雙工、全雙工

單工:數(shù)據(jù)只能在一個方向上傳輸。

半雙工:數(shù)據(jù)可以在兩個方向上進行傳輸,但是同一時刻,只允許數(shù)據(jù)在一個方向上傳輸,相當于單工通信的分時復用。

全雙工:數(shù)據(jù)可以同時在兩個方向上傳輸,相當于兩個單工通信的結(jié)合。

同步通信和異步通信

同步是阻塞模式,異步是非阻塞模式。

同步通信要求發(fā)收雙方具有同頻同相的同步時鐘信號(一般共用一個時鐘),同步通信效率高。

異步通信的收發(fā)雙方?jīng)]有同步時鐘,比如UART,收發(fā)雙方僅僅是約定,你按照什么樣的速率發(fā),而我也按照這樣的速率去接收,這樣如果速度越快,那么信號寬度越窄,誤差就越大,所以異步通信效率較低。

綜上所述,工業(yè)物聯(lián)網(wǎng)無線通信專業(yè)廠商要說的是I2C、SPI、UART這三條總線在通信速度上,SPI最快,UART最慢;通信距離上,I2C和SPI通常用于片上通信,而UART通常用于設(shè)備間通信,比如PC機和我們要調(diào)試的產(chǎn)品設(shè)備。

wKgaomWtx96AFO9kAAM4WMrTP2Y515.jpg

審核編輯 黃宇


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

    關(guān)注

    114

    文章

    5823

    瀏覽量

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

    關(guān)注

    17

    文章

    1706

    瀏覽量

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

    關(guān)注

    10

    文章

    2881

    瀏覽量

    88085
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1235

    瀏覽量

    101392
  • 串口通訊
    +關(guān)注

    關(guān)注

    1

    文章

    259

    瀏覽量

    24930
收藏 人收藏

    評論

    相關(guān)推薦

    I2C總線上拉電阻阻值如何確定?

    導讀I2C總線在產(chǎn)品設(shè)計中被廣泛應用,盡管其結(jié)構(gòu)簡單,但經(jīng)常發(fā)生上拉電阻設(shè)計不合理的問題。本文將對I2C上拉電阻的選擇進行簡要分析。一根信號線上,通過電阻連接一個固定的高電平VCC,信號線初始、空閑
    的頭像 發(fā)表于 12-27 11:34 ?345次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>上拉電阻阻值如何確定?

    為什么嵌入式調(diào)試經(jīng)常用UART,卻很少用SPI、I2C或USRT?

    在嵌入式調(diào)試中經(jīng)常使用 UART(通用異步收發(fā)傳輸器)而較少使用 SPI(串行外設(shè)接口)、I2C(集成電路總線)或 USRT(通用同步 / 異步收發(fā)傳輸器)主要有以下原因
    的頭像 發(fā)表于 12-18 09:58 ?254次閱讀
    為什么嵌入式調(diào)試經(jīng)常用<b class='flag-5'>UART</b>,卻很少用<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>或USRT?

    詳解I2C總線SPI總線的區(qū)別

    I2C(Inter-Integrated Circuit)表示集成電路互連,是一種用于線路板內(nèi)部芯片之間通信的總線。
    的頭像 發(fā)表于 10-16 15:16 ?4381次閱讀
    詳解<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>與<b class='flag-5'>SPI</b><b class='flag-5'>總線</b>的區(qū)別

    了解I2C總線

    電子發(fā)燒友網(wǎng)站提供《了解I2C總線.pdf》資料免費下載
    發(fā)表于 10-08 11:13 ?2次下載
    了解<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>

    DHT11用的是SPI還是I2C

    DHT11并不使用SPII2C通信協(xié)議,而是采用單總線(1-Wire)協(xié)議進行通信 。單總線協(xié)議是由美國DALLAS達爾斯公司推出的外圍串行擴展
    的頭像 發(fā)表于 09-04 09:11 ?1123次閱讀

    I2C轉(zhuǎn)UART子系統(tǒng)設(shè)計

    電子發(fā)燒友網(wǎng)站提供《I2C轉(zhuǎn)UART子系統(tǒng)設(shè)計.pdf》資料免費下載
    發(fā)表于 08-28 10:27 ?2次下載
    <b class='flag-5'>I2C</b>轉(zhuǎn)<b class='flag-5'>UART</b>子系統(tǒng)設(shè)計

    UART轉(zhuǎn)I2C橋接器

    電子發(fā)燒友網(wǎng)站提供《UART轉(zhuǎn)I2C橋接器.pdf》資料免費下載
    發(fā)表于 08-28 09:24 ?1次下載
    <b class='flag-5'>UART</b>轉(zhuǎn)<b class='flag-5'>I2C</b>橋接器

    I2C總線協(xié)議的工作原理和尋址格式

    I2C(Inter-Integrated Circuit)總線協(xié)議,即集成電路總線協(xié)議,是一種用于連接微控制器及其外圍設(shè)備的串行總線協(xié)議。I2C
    的頭像 發(fā)表于 05-27 15:47 ?1772次閱讀

    I2CSPI、UART的通信過程還可以這樣理解

    到目前為止,I2C、SPIUART等仍然是電子嵌入式設(shè)備中最常用的通信協(xié)議,本文,我們將剖析這三種協(xié)議,讓大家清楚、直觀的了解它們的功能、優(yōu)點和局限性,并輔以GIF動圖展示。一、IIC協(xié)議I
    的頭像 發(fā)表于 05-23 08:10 ?7199次閱讀
    <b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>UART</b>的通信過程還可以這樣理解

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

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

    逼真動畫展示I2C、SPI、UART的通信過程

    到目前為止,I2C、SPIUART等仍然是電子嵌入式設(shè)備中最常用的通信協(xié)議,本文,我們將剖析這三種協(xié)議,讓大家清楚、直觀的了解它們的功能、優(yōu)點和局限性,并輔以GIF動圖展示。I2C協(xié)
    的頭像 發(fā)表于 04-12 08:27 ?984次閱讀
    逼真動畫展示<b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>UART</b>的通信過程

    總結(jié)usart、uarti2c、spi區(qū)別及相關(guān)知識

    USART、UART、I2CSPI是四種不同的串行通信協(xié)議,它們各自具有獨特的特點和應用領(lǐng)域
    的頭像 發(fā)表于 04-10 09:47 ?1792次閱讀
    總結(jié)usart、<b class='flag-5'>uart</b>、<b class='flag-5'>i2c</b>、<b class='flag-5'>spi</b>區(qū)別及相關(guān)知識

    XV4001BC車載用SPI/I2C輸出接口的數(shù)字輸出

    XV4001BC車載用SPI/I2C輸出接口的數(shù)字輸出,可實現(xiàn)角速度輸出和溫度傳感器輸出,滿足汽車導航和通訊系統(tǒng)的要求。SPI / I2C
    發(fā)表于 01-02 16:33 ?0次下載

    最簡單的總線通訊!I2C通訊總線的原理原來這么好懂

    通訊I2C
    安泰儀器維修
    發(fā)布于 :2024年01月02日 11:16:31