0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C,UART,SPI之间的区别是什么

放人 2022-10-30 13:28 次阅读

第一个区别当然是名字:

SPI(Serial Peripheral Interface:串行外设接口);

I2C(INTER IC BUS:意为IC之间总线)

UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)

第二,区别在电气信号线上:

SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。

9fc6531e-5813-11ed-b468-dac502259ad0.jpg

如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。

I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。

9ff2f216-5813-11ed-b468-dac502259ad0.jpg

UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。

显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。

第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;

总结:I2C线更少,比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。

缺点:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1615

    浏览量

    89644
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1347

    浏览量

    120863
  • uart
    +关注

    关注

    22

    文章

    1159

    浏览量

    99973
收藏 人收藏

    评论

    相关推荐

    在STM32中,通信串口USART与I2C之间有啥原理上的区别?二者之间又有什么联系?

    请问一下,在STM32中,通信串口USART与I2C之间有啥原理上的区别?二者之间又有什么联系?对于所有的通信之间,又存在什么样的关联?
    发表于 03-25 07:27

    在Sense Tuner中并没有找到相关的I2C设置,请问真么设置才能将UART变为I2C

    在Sense Tuner中并没有找到相关的I2C设置,请问真么设置才能将UART变为I2C
    发表于 02-02 08:59

    请问哪些PSoC 4000设备支持I2CSPIUART

    哪些 PSoC 4 设备支持 I2CSPIUART? 使用 PSoC Creator 中的设备选择器会显示所有 PSoC 4000 设备都有通信块。设备选择器并未说明这些通信块支持什么。 我
    发表于 01-31 07:31

    蓝牙串口通讯总线——I2C/SPI/UART

    嵌入式工程师在做串口通信调试工作的时候,会经常用到I2CSPIUART这3条总线,I2CSPIU
    的头像 发表于 01-22 09:41 394次阅读
    蓝牙串口通讯总线——<b class='flag-5'>I2C</b>/<b class='flag-5'>SPI</b>/<b class='flag-5'>UART</b>

    最简单的总线通讯!I2C通讯总线的原理原来这么好懂

    通讯I2C
    安泰仪器维修
    发布于 :2024年01月02日 11:16:31

    i2c接口和spi接口区别

    重要的区别I2C接口和SPI接口都属于串行通信接口标准,广泛应用在嵌入式系统和电子设备中。它们之间的主要区别在于通信协议、电气特性、速度
    的头像 发表于 12-25 15:02 669次阅读

    UARTSPII2C比较 串口通信介绍

    UARTSPII2C比较 I2C线更少,比UARTSPI更为强大,但是技术上也更加麻烦些,
    的头像 发表于 11-09 18:06 750次阅读
    <b class='flag-5'>UART</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>比较 串口通信介绍

    I2CSPIUART:如何布局这些通用总线

    UART等协议与下游MCU或可编程IC进行接口。I2C总线,SPI总线和UART总线之间区别
    的头像 发表于 11-08 17:33 432次阅读
    <b class='flag-5'>I2C</b>与<b class='flag-5'>SPI</b>与<b class='flag-5'>UART</b>:如何布局这些通用总线

    twi和i2c总线有什么区别

    twi和i2c总线有什么区别,他们谁是不是兼容谁
    发表于 11-08 07:45

    终于搞清了:SPIUARTI2C通信的区别与应用!

    电子设备之间的通信就像人类之间的交流,双方都需要说相同的语言。在电子产品中,这些语言称为通信协议。 之前有单独地分享了SPIUARTI2C
    发表于 10-07 17:01

    全面掌握面试必考题I2C协议 - 第12节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:07:43

    全面掌握面试必考题I2C协议 - 第10节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:06:03

    80 第23.1讲 I2C实验-I2C协议和6U的I2C控制器详解 - 第2

    程序代码I2C协议
    充八万
    发布于 :2023年08月17日 10:03:33

    I2CSPI区别是什么 速率对比

    I2CSPI 对比   功能 I2C SPI 线数 2(SDA,SCL) 4(MOSI,MISO,SCLK,CS) 主机数量 >=1 ==1 类型 半双工 全双工 回应机制 ye
    的头像 发表于 07-27 10:55 2018次阅读

    I2C通信间隔的版本之间有什么区别吗?

    初始化PN71506版芯片和PN71501版芯片时代码相同 确认PN71501版芯片的I2C通信READ TIME时间稍长。 (06版本读30ms,01版本30ms不读,导致同段代码出错,改READ TIME为40ms,01版本读)。 关于 I2C 通信间隔的版本
    发表于 05-06 07:19