I2C接口与SPI和UART接口的区别

一、SPI I2C UART通信速率比较:

SPI > I2C > UART

1、同步通信>异步通信;
2、同步通信时必须有一根时钟线连接传输的两端;
3、都是串行通信方式,并行通信用于内部存储间的通信,如flash;
4、适合传输的距离和通信速率成反比关系;

3-SPI:两条合一的数据线、1时钟线、1CS(设备片选线)
SPI:2数据线、1时钟线、1CS(设备片选线)/串行 同步 通信全双工
I2C:1数据线、1时钟线/串行 同步 通信半双工 传输距离比UART短
UART:2数据线、 1地线/串行 异步 通信全双工 传输距离比I2C长些

(I2C接口是“器件间”接口,是在一块板子之内传输数据)
(UART是 “设备间”接口,更多的是用于两台设备之间传输数据)

二、串行和并行、同步和异步的区别:

串行通信:利用一条数据线将数据一位一位的顺序传送,特点是通信线路简单,成本低,适合于长距离传送
并行通信:利用多条数据线将数据的各位同时传送,特点是传输速度快,适合于短距离传送

异步:在一个字符的传输时间范围内保持同步即可
同步:在数据传输过程中,需要一根时钟线同步,IIC总线,SPI总线

三、I2C接口与串行接口的区别:

I2C 两线式串行总线
UART 通用串行异步收发器串口,UART是串行异步通信接口,它包括RS232、RS499、RS423、RS422和RS485等接口规范和 标准规范,即UART是串行异步通信口的总称。

有很大方式的不同。譬如i2c是带地址的通讯,支持多方通讯,串口就搞不定;两者通讯的机制原理也不同;另外速度上I2C相对会快一些,好像i2c是philips发明的,目的就是解决速度的瓶颈。网上有很多资料,自己搜一下吧!

1、I2C接口是'器件间'接口,是在一块板子之内数据的,RS232串行接口是'设备间'接口,更多的是用于两台设备之间传 输数据。

2、从传输数据的距离来说,应该是RS232传输的距离较远,但二者具体差别多少,我没有做过专门的试验。

3、串口是一根线传送数据,一根线接收数据
I2C是一根线是时钟线,一根线是数据线,数据线是双向的,可以接收,也可以发送。

4、协议不同,波特率不同

串行接口,像单片机,时钟由内部MCU提供,而I2C接口要由器件来决定,不能太快。

5、I2C是同步串行传输,RS232(或称UART,通用异步收发器)是异步串行传输。

6、同步方式必须有一根时钟线连接传输的两端,i2c里的scl就是这根时钟线。因为同步方式不用花费额外的开销对其 数据,所以其传输速率一般比异步方式高。

四、总线接口 UART I2C SPI USB的异同点

1、UART 通用异步串行口,速率不快,可全双工,结构上一般由波特率产生器、UART发送器、UART接收器组成,硬件上两线,一收一发。

2、SPI 高速同步串行口,高速,可全双工,收发独立,同步接口,可实现多个SPI设备互联,硬件4条线。

3、I2C 双向、两线、串行、多主控接口标准。速率不快,半双工,同步接口,具有总线仲裁机制,非常适合器件间

近距离经常性数据通信,可实现设备组网。

4、USB 通用串行总线,高速,半双工,由主机、hub、设备组成。设备可以与下级hub相连构成星型结构。

五、串口通信:UART、SPI、I2C区别:

1、UART就是两线,一根发送一根接收,可以全双工通信,线数也比较少。数据是异步传输的,对双方的时序要求比

较严格,通信速度也不是很快。在多机通信上面用的最多。

2、SPI接口和上面UART相比,多了一条同步时钟线,上面UART的缺点也就是它的优点了,对通信双方的时序要求不

严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容

量存储器等。

3、I2C接口也是两线接口,它是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复

杂。一般单片机系统里主要用来和24C02等小容易存储器连接。

SPI:高速同步串行口。3~4线接口,收发独立、可同步进行

UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢

SPI:一种串行传输方式,三线制,网上可找到其通信协议和用法的3根线实现数据双向传输串行外围接口
(Serial peripheral Interface)

UART:通用异步收发器

UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计

算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能:

1、将由计算机内部传送过来的并行数据转换为输出的串行数据流。

2、将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。

3、在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。

4、在输出数据流中加入启停标记,并从接收数据流中删除启停标记。

5、处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。

6、处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。

7、可以处理计算机与外部串行设备的同步管理问题。

8、有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理

数据前在其缓冲区内存储16字节数据,而通常的UART是8250。

9、现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。

I2C:
能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个设备都能像

主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作

为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。

I2C总线:
I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了

电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率

支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都

可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

UART:

单端,远距离传输。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很

多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非

常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送

数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备

线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。具体的适用范

围就可多了,军用,医疗…到处到能用。

第一个区别当然是名字:
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)。主

从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。

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

定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。

I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在

器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。(注:

I2C资料了解得比较少,这里的描述可能很不完备)

UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传

输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。

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

第四,看看牛人们的意见吧!

wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支

持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI

实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协

议。

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

转载自:https://blog.csdn.net/a746742897/article/details/52503298

(0)

相关推荐

  • UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡、1-W...

    UART.I2C.RS485--这些通信虽然都普遍在用,但解释起来也是模棱两可,觉得有必要整理一下,目的是巩固和区分.文章有点长,建议先收藏,需要的时候再拿出来看. UART通用异步收发器 UART口 ...

  • 高阶自动驾驶系统的通信存储技术

    知圈 | 进"域控制器群"请加微13636581676,备注域 高阶自动驾驶汽车需要通过高带宽和低延迟的网络来连接所有传感器.摄像头.诊断工具.通信系统以及中央人工智能.这些技术会 ...

  • 【学术论文】基于TMS320C6748的多路串行通信接口设计与实现

    摘要: 在嵌入式飞行控制系统中,为了满足小型化和集成化的要求,需要控制多个串口与外部设备通信.采用TMS320C6748作为核心处理器,通过EMIF总线实现和异步通信协议芯片TL16C754并行通信, ...

  • 汽车总线文章合集

    汽车ECU设计 一个菜鸟程序猿的成长之路. 70篇原创内容 公众号 欢迎关注汽车ECU设计 ^_^ ~直接点击链接即可跳转至相关文章~ 第2期 CAN总线基础(上) CAN总线基础(下) CAN总线由 ...

  • 嵌入式开发中常用的几种通信接口总结

    在嵌入式系统中,板上通信接口是指用于将各种集成电路与其他外围设备交互连接的通信通路或总线. 以下内容为常用板上通信接口:包括I2C.SPI.UART.1-Wire: I2C总线 I2C总线是一种同步. ...

  • 串行通信(UART)

    串行通信(UART)admin  17/07/10 说明 嵌入式电子产品都是由一些电路(处理器或其他集成电路)互连形成的. 为了在这些电路之间交换信息,他们必须遵循一个共同的通信协议.目前已经有数百种 ...

  • 串口基本知识

    一.什么是串口通讯? 举个例子,人与人之间的沟通可通过书面文件,语音或视频来交换信息.那么设备和计算机之间用来交换信息的桥梁是什么呢?那就是串口通讯.串口通信是以串行数字二进制形式用不同方法交换数据的 ...

  • 接口IIC

    接口IIC

  • TTL转RS232模块 RS232及UART接口互转模块

    2019-10-5 19:45 [简要说明] 一.尺寸:全长24mm宽19mm高14mm 二.主芯片:MAX3232通讯芯片 三. 工作电压:直流3.3V-5.5V供电; 四. 特点: 1.RS232 ...

  • GPIO口/UART接口内部逻辑框图

    GPIO(英语:General-purpose input/output),通用型之输入输出的简称,功能类似8051的P0-P3. Peripherals and Interfaces – Gener ...

  • 带你快速对比SPI、UART、I2C通信的区别与应用!

    电子设备之间的通信就像人类之间的交流,双方都需要说相同的语言.在电子产品中,这些语言称为通信协议. 之前有单独地分享了SPI.UART.I2C通信的文章,这篇对它们做一些对比. 串行 VS 并行 电子 ...

  • python接口自动化41-suds测试webservice接口

    前言 webservice 的接口,前面已经掌握了在 postman 上做接口测试,接下来使用 python 代码测试 webservice 接口 环境准备 先使用 pip 安装suds 库: pip ...

  • DVI接口好,还是HDMI接口好?主要看应用的环境

    描述 目前的液晶显示器产品,主要配备的显示信号接口为D-Sub.DVI-D.HDMI以及DisplayPort几种,其中以D-Sub和DVI-D两种接口更为普遍,也是目前液晶显示器中的主流接口类型.目 ...

  • 【膜拜】40Gbps的传输接口----雷电(Thunderbolt)接口

    雷电,英文名"Thunderbolt",雷电模式是目前电脑上最快的数据传输方式,Thunderbolt 1技术宣称数据传输速度可达双向10Gbps(2013年新款Mac Pro搭载 ...

  • 欧盟立案统一充电接口 USB-C将成唯一接口

    来源:连接器世界网 [哔哥哔特导读]近日,欧盟委员会公布一项法案建议,计划将USB-C接口作为欧盟境内所有智能手机.平板电脑.相机.耳机.扬声器及视频游戏机等电子设备的通用充电接口. 德国<商报 ...

  • 嵌入式开发——串口 UART JTAG TTL 区别和联系

    参考文献: 区分:串口,COM口,UART,USART https://blog.csdn.net/qq_26904271/article/details/79829363 JTAG,串口和USB这三 ...

  • 这些单片机接口,一定要熟悉:UART、I2C、SPI、TTL、RS232、RS422、RS485、C...

    干货福利,第一时间送达! UART.I2C.RS485--这些通信虽然都普遍在用,但解释起来也是模棱两可,觉得有必要整理一下,目的是巩固和区分.文章有点长,建议先收藏,需要的时候再拿出来看. UART ...