【物联网】总结SPI、I2C、UART三者的区别以及有关知识_spi i2c uart区别(1)

| I2C | 2线(SDA\SCL) | KHz | 同步 | 多设备总线 |
| UART | 2线(TX\RX) | 115200bps | 异步 | 单向或双向串行 |

  1. 硬件连接:SPI使用4线或3线(带主从模式)连接,其中包括一个时钟线、一个主从选择线、一个主设备输出线和一个主设备输入线。I2C使用两根线(SDA和SCL)进行连接。UART使用两根线(TX和RX)进行连接。

  2. 总线速度:SPI可以达到较高的传输速度,通常可以在MHz范围内运行。I2C的传输速度较低,通常在几十至几百kHz之间。UART的传输速度通常较低,最常见的波特率是115200bps,但可以通过调整设置来达到更高的速度。

  3. 总线拓扑:SPI可以支持一对多的连接方式,其中一个主设备可以控制多个从设备。I2C使用多主机和从机的方式,可以有多个主设备和多个从设备连接在同一条总线上。UART通常是点对点的,只支持一个发送器和一个接收器。

  4. 传输方式:SPI和I2C是同步传输方式,数据传输时需要时钟同步。UART是异步传输方式,不需要外部时钟信号,数据通过起始位、数据位、校验位和停止位进行帧的组织和同步。

  5. 功能:SPI在数据传输方面非常灵活,并且可以支持双向、全双工或半双工模式。I2C具有广泛的设备支持和多种设备可以共享同一条总线的能力。UART主要用于串行数据传输,通常用于简单的单向或双向串行通信。

单工,半双工,全双工:

单工(Simplex):单工通信只允许信息在一个方向上进行传输。发送方和接收方在通信中扮演固定的角色,发送方只能发送数据,而接收方只能接收数据。这种通信方式类似于广播,其中一方发送信息,而另一方只能接收信息,而不能传输回复。

半双工(Half Duplex):半双工通信允许信息在两个方向上进行传输,但不能同时进行。发送方和接收方可以交替地发送和接收数据,但在任何给定的时间内,只能有一个方向上的传输。当一方发送数据时,另一方必须等待,而不能同时发送数据。

全双工(Full Duplex):全双工通信允许信息在两个方向上同时进行传输。发送方和接收方可以同时发送和接收数据,因此在通信中可以实现双向传输,无需等待。这意味着发送和接收可以同时进行,提高了通信效率。

在全双工通信中,通信双方需使用独立的信道或信号线来进行发送和接收,以避免冲突。相比之下,半双工通信只需要使用一个信道或信号线来进行交替的发送和接收,因此可能会出现一定程度的冲突。单工通信只允许单一方向上的数据传输,因此通信效率相对较低。选择适当的通信模式取决于具体的应用场景和通信需求。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

举一下生活中的例子解释说明:

  1. 单工:我们将收音机作为发送方,而我们自己是接收方。我们只能从收音机中接收音乐信号,而无法向收音机发送任何指令(如调整频道或音量)。这就是单工通信,只能在一个方向上传输信息。

  2. 半双工:考虑使用对讲机进行通信。我们可以在对讲机上按下一个按钮,对讲机会接收我们说的话并将其传输到另一个对讲机。当我们松开按钮时,我们可以接收来自另一个对讲机的信息。但在同一时间,只能有一个人说话,而另一个必须等待。这就是半双工通信,可以双向传输信息,但不能同时进行。

  3. 全双工:将手机通话作为例子。我们可以同时听对方说话并回答,而对方也可以同时听我们说话并回答。在这种情况下,我们可以同时进行发送和接收。这就是全双工通信,允许同时进行双向传输。

同步传输和异步传输:

  1. 同步传输:同步传输是一种基于时钟信号进行数据传输的方式。发送方和接收方在数据传输之前需要保持时钟的同步。数据的传输速率是根据时钟信号的频率来确定的,发送方和接收方都严格按照时钟信号的边沿来进行数据的采样和发送。常见的同步传输协议包括SPI(Serial Peripheral Interface)、I2C(Inter-Integrated Circuit)和SDI(Serial Data Interface)等。

  2. 异步传输:异步传输是一种不依赖于固定时钟信号的数据传输方式。在异步传输中,每个数据帧具有独立的起始标志和停止标志,以标识一个完整的数据帧。发送方和接收方之间的数据传输速率不需要保持精确的同步。常见的异步传输协议包括UART(Universal Asynchronous Receiver/Transmitter)和USB(Universal Serial Bus)等。

主要区别如下:

  • 同步传输依赖于时钟信号,而异步传输不依赖于时钟信号。
  • 同步传输的传输速率受到时钟频率的限制,而异步传输的传输速率可以根据需求进行调整。
  • 同步传输要求发送方和接收方保持时钟同步,而异步传输不需要时钟同步。
  • 同步传输通常用于短距离高速数据传输,而异步传输通常用于串行通信和较长距离的数据传输。

串行和并行:

  1. 串行传输:串行传输是一种按照顺序逐位传输数据的方式。在串行传输中,数据位逐个按照一定的顺序进行传输,每一位数据都需要依次传输完毕,然后再传输下一位数据。因此,串行传输只使用一条信号线或通道进行数据传输。串行传输的优势在于可以减少所需的物理连接数目,适用于较长距离传输和对线路复杂性要求较低的场景。常见的串行传输接口包括串行总线接口(如I2C、SPI)和串行通信协议(如RS-232)等。

  2. 并行传输:并行传输是一种同时传输多个数据位的方式。在并行传输中,数据被分成多个数据位,并通过多条信号线同时传输。每个数据位通过一个独立的信号线进行传输,从而实现多个数据位的同时传输。并行传输的优势在于传输速度较快,适用于对传输速度要求较高的场景。然而,由于每个数据位需要独立的信号线,因此并行传输会增加所需的物理连接数目和线路复杂性,尤其在距离较远时会更加复杂。常见的并行传输接口包括传统的并行端口(如打印机接口)和内部总线(如PCIe)等。

串行传输是逐位传输数据的方式,适用于长距离传输和对线路复杂性要求较低的场景;而并行传输是同时传输多个数据位的方式,适用于要求高传输速度的场景,但会增加线路复杂性。具体选择串行传输还是并行传输,需要考虑具体的应用需求和系统架构。

两者的区别是:

串行传输和并行传输的主要区别在于数据传输的方式和使用的信号线数量。

  1. 数据传输方式:串行传输是逐位传输数据的方式,即一次只传输一个数据位,按照固定的顺序逐位传输;而并行传输是同时传输多个数据位的方式,多个数据位通过独立的信号线同时传输。

  2. 信号线数量:串行传输只使用一条信号线(或通道)进行数据传输,每次传输仅传输一个数据位;而并行传输需要使用多条平行的信号线进行数据传输,每组信号线对应一个数据位,多个数据位通过各自的信号线同时传输。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

获取!!**](https://bbs.csdn.net/topics/618654289)

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值