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

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

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

一文搞懂UART、I2C、SPI協(xié)議

STM32嵌入式開(kāi)發(fā) ? 來(lái)源:STM32嵌入式開(kāi)發(fā) ? 2023-03-26 09:29 ? 次閱讀

UARTI2C、SPI都是常見(jiàn)的低速板級(jí)通信協(xié)議,目前主流的SoC都內(nèi)置了這些通訊協(xié)議的控制器,同樣,各種傳感器、Touch控制器、指紋模塊、藍(lán)牙模塊、WIFI模塊也都兼容這三種通信方式的一種或幾種。

下面分別說(shuō)下:

UART

UART一般由TXD、RXD、GND三根線組成,是一種異步傳輸協(xié)議。

無(wú)論是主機(jī)還是從機(jī),均可以自由發(fā)送數(shù)據(jù),但是由于UART總線并沒(méi)有時(shí)鐘線,所以需要提前約定對(duì)應(yīng)的波特率,這是一種很簡(jiǎn)單的傳輸協(xié)議。

e2a65a94-ca28-11ed-bfe3-dac502259ad0.jpg

I2C

I2C是兩根線,SDA(數(shù)據(jù))和SCL(時(shí)鐘),也是一種同步傳輸協(xié)議。主機(jī)在發(fā)送開(kāi)始信號(hào)之后,先發(fā)送7個(gè)比特的地址位和1個(gè)比特的讀寫(xiě)位,每個(gè)從機(jī)有自己的I2C地址,當(dāng)發(fā)現(xiàn)該條指令是發(fā)給自己的時(shí)候,拉低SDA線(即回復(fù)ACK信號(hào)),然后主機(jī)發(fā)送或接收數(shù)據(jù),完成傳輸。傳輸完成之后,主機(jī)發(fā)送停止位,完成該次傳輸。

wKgZomQfoBiATa_dAAATJvMracY215.png

SPI

SPI是四根線,分別是CS(片選)、MOSI(主發(fā)從收)、MISO(從發(fā)主收)、CLK(時(shí)鐘),是一種同步傳輸協(xié)議。主機(jī)送出CLK信號(hào),主機(jī)到從機(jī)的數(shù)據(jù)在MOSI線上傳輸,從機(jī)到主機(jī)的數(shù)據(jù)在MISO線上傳輸。在啟動(dòng)傳輸之前,需要先拉低(一般是這樣,也有各別芯片是CS高有效)對(duì)應(yīng)從機(jī)的CS管腳,在傳輸完成之后,再拉高CS管腳,從機(jī)的SPI Slave模塊進(jìn)入休眠。

wKgaomQfoBiAKwsdAAANdoff_uA398.png

使用場(chǎng)景

首先,I2C和SPI都是同步協(xié)議,都有時(shí)鐘信號(hào),在一條總線上也都可以掛多個(gè)從設(shè)備,但是I2C的從設(shè)備是通過(guò)地址來(lái)區(qū)分的,SPI的從設(shè)備是通過(guò)片選線來(lái)區(qū)分的,所以SPI總線上,每多掛一個(gè)從設(shè)備,就要多用一個(gè)線作為片選線,而I2C則不用,只要地址不沖突,可以隨便掛設(shè)備。

但是,I2C總線速度一般普遍慢于SPI,I2C一般的速度是100kbs、400kbps和1Mbps,而SPI的速度可以在幾Mbps,也可以10+Mbps。所以看使用場(chǎng)合,低速的話,I2C就挺合適的,如果速度快一些,則一般都要選用SPI。另外,I2C總線的管腳都是開(kāi)漏輸出,必須外接上拉電阻,阻值可以根據(jù)總線速度來(lái)推算,一般我們常用400kbps傳輸速率,上拉電阻選用2.2K。

UART和SPI、I2C不同,他是異步傳輸?shù)?,一般?lái)說(shuō)傳輸速度比較慢,傳統(tǒng)的傳輸速度一般在115200bps或以下,不過(guò)現(xiàn)在大部分UART控制器也能支持到4Mbps或者8Mbps了。UART目前最常用的就是調(diào)試接口,因?yàn)閁ART比較簡(jiǎn)單,所以CPU輸出log一般都通過(guò)一個(gè)UART口來(lái)輸出。

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

    關(guān)注

    2557

    文章

    51747

    瀏覽量

    758909
  • 通信協(xié)議
    +關(guān)注

    關(guān)注

    28

    文章

    923

    瀏覽量

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

    關(guān)注

    17

    文章

    1731

    瀏覽量

    92899
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1499

    瀏覽量

    125413
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1246

    瀏覽量

    102170

原文標(biāo)題:一文搞懂UART、I2C、SPI協(xié)議

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SPI,UART,I2C區(qū)別與特點(diǎn)

    本內(nèi)容詳細(xì)介紹了SPI,UART,I2C區(qū)別與特點(diǎn),SPI:高速同步串行口。3~4線接口,收發(fā)獨(dú)立、可同步進(jìn)行,UART:通用異步串行口。按
    發(fā)表于 02-02 16:15 ?6683次閱讀

    逼真動(dòng)畫(huà)展示I2C、SPI、UART的通信過(guò)程

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

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

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

    SPI、SCI、I2C、UART之間的異同

    詳細(xì)介紹了SPI、SCI、I2C、UART幾種通信方式的異同便于讀者整體了解通信的意義.
    發(fā)表于 12-15 14:32 ?0次下載

    SPII2C、UART三種串行總線協(xié)議的區(qū)別

    SPII2C、UART三種串行總線協(xié)議的區(qū)別
    發(fā)表于 07-17 17:23 ?0次下載

    看懂I2C協(xié)議

    電子行業(yè)最常用的3種串行通訊協(xié)議UART、SPII2C。前面介紹了串口通訊協(xié)議及其FPGA實(shí)現(xiàn),SP
    發(fā)表于 01-25 18:32 ?40次下載
    <b class='flag-5'>一</b><b class='flag-5'>文</b>看懂<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>

    什么是I2C協(xié)議

    I2C協(xié)議個(gè)允許多個(gè) “從機(jī)” 芯片和個(gè)或更多的 “主機(jī)” 芯片進(jìn)行通訊的協(xié)議。它就像串行外設(shè)接口(
    發(fā)表于 10-11 16:46 ?4645次閱讀

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

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

    低速板級(jí)通信協(xié)議UART、I2C、SPI協(xié)議

    UARTSPI、I2C不同,他是異步傳輸?shù)模?b class='flag-5'>一般來(lái)說(shuō)傳輸速度比較慢,傳統(tǒng)的傳輸速度般在115200bps或以下,不過(guò)現(xiàn)在大部分
    發(fā)表于 03-23 12:51 ?2015次閱讀

    詳解I2C總線協(xié)議

    I2C協(xié)議個(gè)允許主多從進(jìn)行通訊的協(xié)議。它就像串行外設(shè)接口(SPI
    發(fā)表于 04-11 10:33 ?3009次閱讀

    SPI自舉程序中使用的I2C協(xié)議

    電子發(fā)燒友網(wǎng)站提供《SPI自舉程序中使用的I2C協(xié)議.pdf》資料免費(fèi)下載
    發(fā)表于 09-21 11:41 ?0次下載
    <b class='flag-5'>SPI</b>自舉程序中使用的<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>

    I2CSPIUART:如何布局這些通用總線

    如果您要為項(xiàng)目構(gòu)建開(kāi)發(fā)板或使用通用MCU,則會(huì)發(fā)現(xiàn)許多用于通信其他活動(dòng)組件的協(xié)議。USB和以太網(wǎng)之類(lèi)的標(biāo)準(zhǔn)已內(nèi)置在大多數(shù)控制器中,用于與計(jì)算機(jī)外圍設(shè)備起使用。盡管如此,仍使用I2CSPI
    的頭像 發(fā)表于 11-08 17:33 ?1417次閱讀
    <b class='flag-5'>I2C</b>與<b class='flag-5'>SPI</b>與<b class='flag-5'>UART</b>:如何布局這些通用總線

    UART、SPII2C比較 串口通信介紹

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

    藍(lán)牙串口通訊總線——I2C/SPI/UART

    嵌入式工程師在做串口通信調(diào)試工作的時(shí)候,會(huì)經(jīng)常用到I2C、SPI、UART這3條總線,I2CSPI、U
    的頭像 發(fā)表于 01-22 09:41 ?1953次閱讀
    藍(lán)牙串口通訊總線——<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)知識(shí)

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