0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

SPI、UART、IIC總線之間有什么區(qū)別與聯(lián)系

FPGA之家 ? 來源:CSDN技術(shù)社區(qū) ? 作者:EE林 ? 2021-06-21 16:46 ? 次閱讀

SPI 總線

SPI(Serial Peripheral Interface,串行外設(shè)接口)是一種高速、全雙工、同步、串行通信總線,3~4線接口,以主從模式工作,收發(fā)獨(dú)立,可以實(shí)現(xiàn)多個(gè)SPI設(shè)備互相連接。

提供SPI串行時(shí)鐘的SPI設(shè)備為SPI主機(jī)或主設(shè)備(Master),其他設(shè)備為SPI從機(jī)或從設(shè)備(Slave)。

SPI總線由三條信號(hào)線組成,分別是SCLK(串行時(shí)鐘)、SDI(串行數(shù)據(jù)輸入)、SDO(串行數(shù)據(jù)輸出)。當(dāng)有多個(gè)從設(shè)備時(shí),還可以增加一條從設(shè)備選擇線,CS是控制芯片是否被選中的,這樣就可以實(shí)現(xiàn)在同一總線上多個(gè)SPI設(shè)備互相連接。

如果用GPIO口模擬SPI總線,必須要有一個(gè)輸出口(SDO),一個(gè)輸入口(SDI),另一個(gè)口則視實(shí)現(xiàn)的設(shè)備類型而定,如果要實(shí)現(xiàn)主從設(shè)備,則需輸入輸出口,若只實(shí)現(xiàn)主設(shè)備,則需輸出口即可,若只實(shí)現(xiàn)從設(shè)備,則只需輸入口即可。

SDI – 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出;

SDO – 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入;

SCLK – 時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生;

CS – 從設(shè)備使能信號(hào),由主設(shè)備控制。

SPI 是一種允許一個(gè)主設(shè)備啟動(dòng)一個(gè)與從設(shè)備同步通訊的協(xié)議,從而完成數(shù)據(jù)的交換。SPI是串行協(xié)議,也就是說數(shù)據(jù)是一位一位傳輸?shù)?,這就是SCLK時(shí)鐘線存在的原因,由SCLK提供時(shí)鐘脈沖,SDI、SDO則基于此脈沖完成數(shù)據(jù)傳輸。

數(shù)據(jù)輸出通過 SDO線,數(shù)據(jù)在時(shí)鐘上升沿或下降沿時(shí)改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。

這樣,在至少8次時(shí)鐘信號(hào)的改變(上沿和下沿為一次),就可以完成8位數(shù)據(jù)的傳輸。

這樣的傳輸方式有一個(gè)優(yōu)點(diǎn),與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少8位數(shù)據(jù),而SPI允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因?yàn)镾CLK時(shí)鐘線由主控設(shè)備控制,當(dāng)沒有時(shí)鐘跳變時(shí),從設(shè)備不采集或傳送數(shù)據(jù)。也就是說,主設(shè)備通過對(duì)SCLK時(shí)鐘線的控制可以完成對(duì)通訊的控制。

SPI還是一個(gè)數(shù)據(jù)交換協(xié)議:因?yàn)镾PI的數(shù)據(jù)輸入和輸出線獨(dú)立,所以允許同時(shí)完成數(shù)據(jù)的輸入和輸出。不同SPI設(shè)備的實(shí)現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時(shí)間不同,在時(shí)鐘信號(hào)上沿或下沿采集有不同定義,具體請(qǐng)參考相關(guān)器件的文檔。

最后,SPI接口的一個(gè)缺點(diǎn):沒有指定的流控制,沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。

在點(diǎn)對(duì)點(diǎn)的通信中,SPI接口不需要進(jìn)行尋址操作,且為全雙工通信,顯得簡(jiǎn)單高效。在多個(gè)從設(shè)備的系統(tǒng)中,每個(gè)從設(shè)備需要獨(dú)立的使能信號(hào),硬件上比I2C系統(tǒng)要稍微復(fù)雜一些。SPI接口主要應(yīng)用在EEPROM、FLASH、實(shí)時(shí)時(shí)鐘、AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。

UART 總線

UART(Universal Asynchronous Receiver Transmitter,通用異步收發(fā)器)總線是兩線、全雙工、異步串口,速度慢。比SPI、I2C這兩種同步串口的結(jié)構(gòu)要復(fù)雜很多,一般由波特率產(chǎn)生器(產(chǎn)生的波特率等于傳輸波特率的16倍)、UART接收器、UART發(fā)送器組成,硬件上有兩根線,一根用于發(fā)送,一根用于接收。

數(shù)據(jù)是異步傳輸?shù)?,?duì)雙方的時(shí)序要求比較嚴(yán)格,通信速度也不是很快,在多機(jī)通信上面用的最多。如果用GPIO口模擬UART總線,則需一個(gè)輸入口,一個(gè)輸出口。

UART是用于控制計(jì)算機(jī)與串行設(shè)備的芯片,它提供了RS-232C數(shù)據(jù)終端設(shè)備接口,這樣計(jì)算機(jī)就可以和調(diào)制解調(diào)器或其它使用RS-232C接口的串行設(shè)備通信了。

大多數(shù)計(jì)算機(jī)包含兩個(gè)基于RS232的串口。串口同時(shí)也是儀器儀表設(shè)備通用的通信協(xié)議;很多GPIB兼容的設(shè)備也帶有RS-232口。同時(shí),串口通信協(xié)議也可以用于獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)。

串口通信的概念非常簡(jiǎn)單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。

作為接口的一部分,UART還提供以下功能:

將由計(jì)算機(jī)內(nèi)部傳送過來的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流;

將計(jì)算機(jī)外部來的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計(jì)算機(jī)內(nèi)部使用并行數(shù)據(jù)的器件使用;

在輸出的串行數(shù)據(jù)流中加入奇偶校驗(yàn)位,并對(duì)從外部接收的數(shù)據(jù)流進(jìn)行奇偶校驗(yàn);

在輸出數(shù)據(jù)流中加入啟停標(biāo)記,并從接收數(shù)據(jù)流中刪除啟停標(biāo)記;

處理由鍵盤或鼠標(biāo)發(fā)出的中斷信號(hào);

可以處理計(jì)算機(jī)與外部串行設(shè)備的同步管理問題;

有一些比較高檔的UART還提供輸入輸出數(shù)據(jù)的緩沖區(qū),現(xiàn)在比較新的UART是16550,它可以在計(jì)算機(jī)需要處理數(shù)據(jù)前在其緩沖區(qū)內(nèi)存儲(chǔ)16字節(jié)數(shù)據(jù)。

IIC 總線

IIC(Inter-Integrated Circuit)總線是雙向、兩線(SCL、SDA)、同步、串行、多主控(multi-master)接口標(biāo)準(zhǔn),具有競(jìng)爭(zhēng)檢測(cè)和總線仲裁機(jī)制,非常適合在器件之間進(jìn)行近距離、非經(jīng)常性的數(shù)據(jù)通信。

在IIC的協(xié)議體系中,傳輸數(shù)據(jù)時(shí)都會(huì)帶上目的設(shè)備的設(shè)備地址,因此可以實(shí)現(xiàn)設(shè)備組網(wǎng)。

如果用GPIO口模擬IIC總線,并實(shí)現(xiàn)雙向傳輸,則需一個(gè)輸入輸出口(SDA),另外還需一個(gè)輸出口(SCL)。

IIC總線最主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。I2C能用于替代標(biāo)準(zhǔn)的并行總線,能連接各種集成電路和功能模塊。只要求兩條總線線路:一條串行數(shù)據(jù)線SDA 一條串行時(shí)鐘線SCL。

IIC是多主控總線,總線上每一個(gè)設(shè)備都有一個(gè)獨(dú)一無二的地址,根據(jù)設(shè)備自己的能力,任何能夠進(jìn)行發(fā)送和接收的設(shè)備都能像主控器一樣工作,并控制總線。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控,如果兩個(gè)或更多主機(jī)同時(shí)初始化數(shù)據(jù)傳輸可以通過沖突檢測(cè)和仲裁,防止數(shù)據(jù)被破壞。

一個(gè)主控能夠控制信號(hào)的傳輸和時(shí)鐘頻率。同步時(shí)鐘允許器件通過總線以不同的波特率進(jìn)行通信。同步時(shí)鐘可以作為停止和重新啟動(dòng)串行口發(fā)送的握手方式。

由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。總線的長(zhǎng)度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個(gè)組件。

串行的8位雙向數(shù)據(jù)傳輸位速率標(biāo)準(zhǔn)模式下可達(dá)100kbit/s 快速模式下可達(dá)400kbit/s 高速模式下可達(dá)3.4Mbit/s

片上的濾波器可以濾去總線數(shù)據(jù)線上的毛刺波保證數(shù)據(jù)完整。IIC使用上拉電阻,抗干擾能力較弱,一般用于同一板卡上芯片之間的通信,較少用于遠(yuǎn)距離通信。連接到相同總線的IC 數(shù)量只受到總線的最大電容400pF 限制。

編輯:jq

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

    關(guān)注

    17

    文章

    1785

    瀏覽量

    94915
  • IIC
    IIC
    +關(guān)注

    關(guān)注

    11

    文章

    306

    瀏覽量

    39250
  • CS
    CS
    +關(guān)注

    關(guān)注

    0

    文章

    55

    瀏覽量

    24972
  • SDO
    SDO
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    5909

原文標(biāo)題:SPI、UART、IIC總線的區(qū)別與聯(lián)系

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    GD32與STM32什么區(qū)別

    電子發(fā)燒友網(wǎng)站提供《GD32與STM32什么區(qū)別.docx》資料免費(fèi)下載
    發(fā)表于 04-03 17:27 ?0次下載

    HSE子系統(tǒng)HSE_H、HSE_M和HSE_B之間什么區(qū)別?

    我想知道 HSE 子系統(tǒng) HSE_H、HSE_M 和 HSE_B 之間什么區(qū)別? 區(qū)別是它們?cè)谀膫€(gè)板上運(yùn)行,還是也存在功能差異?
    發(fā)表于 03-20 07:37

    請(qǐng)問stm32u545這種spi帶boot的和不帶boot的什么區(qū)別?

    請(qǐng)問這種spi帶boot的和不帶boot的什么區(qū)別
    發(fā)表于 03-10 07:16

    私有云和公有云什么區(qū)別

    私有云和公有云在多個(gè)方面存在顯著的區(qū)別,以下是具體的比較,主機(jī)推薦小編為您整理發(fā)布私有云和公有云什么區(qū)別。
    的頭像 發(fā)表于 02-20 10:38 ?620次閱讀

    AIGC和AI什么區(qū)別

    AIGC是AI在內(nèi)容生成領(lǐng)域的一個(gè)特定應(yīng)用方向,AI的技術(shù)發(fā)展為AIGC提供了基礎(chǔ)和支撐。那么,AIGC和AI什么區(qū)別呢?下面,AI部落小編帶您詳細(xì)了解。
    的頭像 發(fā)表于 02-20 10:33 ?708次閱讀

    TXB0104與TXS0102兩者之間什么區(qū)別嗎?

    兩款芯片的區(qū)別;TXB0104是buffered-type;TXS0102是switch-type請(qǐng)問這兩者之間什么區(qū)別嗎?
    發(fā)表于 02-10 08:42

    云計(jì)算和人工智能有什么區(qū)別聯(lián)系

    云計(jì)算和人工智能雖然各自具有獨(dú)特的特點(diǎn)和應(yīng)用領(lǐng)域,但它們之間存在著緊密的聯(lián)系和互動(dòng)。接下來,AI部落小編帶您了解云計(jì)算和人工智能的區(qū)別聯(lián)系。
    的頭像 發(fā)表于 02-06 10:08 ?433次閱讀

    ADC的接口Serial SPISPI兩種,它們之間什么區(qū)別?

    我剛剛接觸ADC,想選一款芯片,看到接口SPI 和Serial SPI,哪位專業(yè)人士解答下兩者什么區(qū)別呢?
    發(fā)表于 01-24 07:55

    LSF010X與TXB010X系列有什么區(qū)別?

    請(qǐng)問,LSF010X與TXB010X系列有什么區(qū)別?用在uartspi時(shí),那個(gè)更適合
    發(fā)表于 12-25 06:22

    滲壓計(jì)和水位計(jì)之間什么區(qū)別?

    問題,南京峟思今天就來給大家簡(jiǎn)單的介紹一下:滲壓計(jì)和水位計(jì)之間什么區(qū)別?1.滲壓計(jì)滲壓計(jì)是一種能夠測(cè)量水工結(jié)構(gòu)物或其它混凝土結(jié)構(gòu)物及土體內(nèi)內(nèi)部的滲透(孔隙)水壓力的儀
    的頭像 發(fā)表于 11-26 15:18 ?546次閱讀
    滲壓計(jì)和水位計(jì)<b class='flag-5'>之間</b><b class='flag-5'>有</b><b class='flag-5'>什么區(qū)別</b>?

    RTOS與Linux到底什么區(qū)別

    很多做嵌入式開發(fā)的小伙伴都存在這樣的疑惑:RTOS與Linux到底什么區(qū)別?
    的頭像 發(fā)表于 10-29 09:53 ?1133次閱讀

    RS485總線與CAN總線什么區(qū)別

    RS485總線與CAN總線都是工業(yè)現(xiàn)場(chǎng)通信中常用的總線技術(shù),它們各自具有獨(dú)特的特點(diǎn)和優(yōu)勢(shì),適用于不同的應(yīng)用場(chǎng)景。以下是對(duì)這兩種總線的詳細(xì)對(duì)比分析,旨在全面闡述它們
    的頭像 發(fā)表于 09-30 11:26 ?2639次閱讀

    SPI總線的定義和特點(diǎn)

    領(lǐng)域得到了廣泛的應(yīng)用,尤其是在微控制器(MCU)與外部設(shè)備(如傳感器、存儲(chǔ)器等)之間的數(shù)據(jù)傳輸中扮演著重要角色。以下將詳細(xì)闡述SPI總線的定義、特點(diǎn)及其工作原理。
    的頭像 發(fā)表于 09-03 14:05 ?2022次閱讀

    RV 和ARM什么區(qū)別

    district RV 和ARM什么區(qū)別
    發(fā)表于 06-26 12:41

    現(xiàn)場(chǎng)總線和工業(yè)以太網(wǎng)什么區(qū)別

    在工業(yè)自動(dòng)化領(lǐng)域,通信技術(shù)的選擇對(duì)于系統(tǒng)的性能、可靠性和成本有著至關(guān)重要的影響?,F(xiàn)場(chǎng)總線和工業(yè)以太網(wǎng)是兩種常用的通信技術(shù),它們?cè)诠I(yè)自動(dòng)化中扮演著不同的角色。本文將對(duì)這兩種技術(shù)進(jìn)行詳細(xì)介紹,并探討它們之間區(qū)別
    的頭像 發(fā)表于 06-19 15:31 ?3392次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品