常见的通信方式SPI、UART、I2C等通信的区别

本文详细介绍了UART、SPI和I2C三种常见的串行通信接口。UART是一种异步通信协议,依赖起始和停止位来同步数据传输;SPI是全双工通信,适合高速数据传输,支持主机-从机架构;I2C则是结合了SPI和UART特点的总线系统,支持多从机通信且有更复杂的地址系统。每种接口有其独特的优缺点,适用于不同的硬件通信需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考1
参考2

整体总结

UART:通用异步收发,Universal Asynchronous Receiver/Transmitter
SPI:Serial Peripheral Interface,串行外设接口
I2C或IIC或I2C :Inter-Integrated Circuit芯片间总线接口电路
UART:通用同步异步收发器

在这里插入图片描述

在这里插入图片描述

硬件接口含义

在这里插入图片描述

串行和并行通信

串行:只用一根线进行数据通信,同时伴随着一个时钟
并行通信:数据位在导线上同时通信,例如8根线同时传送一个字节的数据
在这里插入图片描述

串口通信(典型的例子UART)

异步通信:没有时钟信号线,以UART为例,但通过奇偶校验位和停止位等同步信号将需要传输的数据打包成一帧数据包,并且两设备设置好通信的波特率。
同步通信:速度快,但双方时钟要求允许误差小

SPI通信

独特优势就是可以无中断传输数据,可以连续地发送或接收任意数量的位。而在I2C和UART中,数据以数据包的形式发送,有着限定位数

SPI设备中,设备分为主机与从机系统。主机是控制设备(通常是微控制器),而从机(通常是传感器,显示器或存储芯片)从主机那获取指令。

一套SPI通讯共包含四种信号线:MOSI (Master Output/Slave Input) – 信号线,主机输出,从机输入。MISO (Master Input/Slave Output) – 信号线,主机输入,从机输出。SCLK (Clock) – 时钟信号。SS/CS (Slave Select/Chip Select) – 片选信号,通俗讲选择那一片从机
在这里插入图片描述
SPI的接口可以看出这是一种全双工的串行通信,从机和主机可以同时通过各自的数据传送线传送数据。

优点

无起始位和停止位,没有像I2C这样的复杂的从站寻址系统

缺点

没有信号接收成功的确认(I2C拥有此功能),没有任何形式的错误检查(如UART中的奇偶校验位等)

UART通信

在这里插入图片描述
UART属于异步通讯,这意味着没有时钟信号,取而代之的是在数据包中添加开始和停止位
接收UART检测到起始位时,它将以特定波特率的频率读取,就相当于在数据包中,以起始位为标志开始默认(并不存在)时钟(频率)的读取,这种读取的速度用波特率度量(bps),两个UART必须以大约相同的波特率工作,发送和接收UART之间的波特率只能相差约10%。

两个UART之间数据传送(整体):

在这里插入图片描述

两个UART之间数据传送(各部分):

在这里插入图片描述
发送UART将起始位,奇偶校验位和停止位添加到数据帧
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

一个数据包包含的内容

一个起始位,一个数据帧,记录数据针中1的数量是奇数或偶数的一位校验位,停止
在这里插入图片描述

缺点

数据帧的大小最大为9位
不支持多个从属系统或多个主系统
每个UART的波特率必须在彼此的10%之内

I2C通信

I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。结合了 SPI 和 UART 的优点,可以将多个从机连接到单个主机
在这里插入图片描述
SDA (Serial Data) – 数据线。
SCL (Serial Clock) – 时钟线。

数据传送方式

以msg为单位,msg中包含多种信息:起始位,从机地址,读写位,数据帧,ACK/NACK位(每个数据帧前后都有),
在这里插入图片描述
启动条件:当SCL是高电平时,SDA从高电平向低电平切换。
停止条件:当SCL是高电平时,SDA由低电平向高电平切换。
在这里插入图片描述
地址帧:每个从属设备唯一的7位或10位序列,用于主从设备之间的地址识别。主机将需要通信的地址
发送到每一个从机
,从机比较自己地址,然后判断是否动作
读/写位:一位,如果主机是向从机发送数据则为低电平,请求数据则为高电平。主机要
向从机发送数据
,则为电平。如果是主机向从机请求数据,则为高电平
ACK/NACK:消息中的每个帧后均带有一个ACK/NACK位。如果成功接收到地址帧或数据帧,接收设备会返回一个ACK位用于表示确认。主机检测到从机的ACK位(寻址从机返回的)后,就可以发送第一个数据帧

缺点

数据传输速率比SPI慢
数据帧的大小限制为8位

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值