UART、I2C以及SPI协议学习总结

本文详细介绍了串行通信的几种主要形式:UART(通用异步收发器)采用异步通信方式,仅需两条线(TXD和RXD)即可实现半双工通信;I2C(两线穿行接口)则是一种同步通信方式,通过SCL和SDA两条线实现数据传输,并要求外部连接上拉电阻;SPI(穿行外围设备接口)是一种全双工、高速、同步通信协议。

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

UART(通用异步收发器)异步串行通信

是属于异步通信。所谓的异步通信,简单来讲就是不同步,比如计算机发送给单片机,计算机只负责把数据通过TXD发送出来即可,接收数据是单片机自己的事。UART通信先是一直保持高电平,发送数据之前有起始位0,而后是8位数据位(数据位是固定长度,福特率分之一),完了之后是1位停止位(保持高电平))。(数据位是低位在先,高位在后)
UART通信虽然是两条线(TXD和RXD),但是实际上一条线就足够通信。 (半双工)

I2C

而I2C(两线穿行接口)属于同步通信,SCL负责收发双方的时钟节拍,SDA数据线负责传输数据。I2C的发送方和接收方都以SCL这个时钟节拍为基准进行收发数据。
I2C每次通信都必须有两根线才能进行通信。
I2C总线是开漏引脚并联的结构,因此外部要加上上拉电阻。开漏电路外部加上拉就构成了线“与”的关系,所谓的线“与”就是讲,所以得器件都是高电平才是高电平,有一个为低就是低。(这样做每一个器件都可以做主机)
I2C的其实信号定义为在SCL的高电平期间,SDA给一个下降沿,表示起始信号。数据部分I2C无固定波特率但有时序要求,只有在SCL为高电平期间,SDA才允许变化!(但是在I2C总线的起始和结束时例外。)高位在先低位在后。(因为在SCL为高电平期间,接收方要来读取当前SDA的信号)(这么来讲的话,AD里面的I2C器件PCF8951,P331原文”PCF8591的转换时钟周期为I2C的SCL,8个SCL周期完成一次转换(),所以当前的转换结果总是在下一个字节的8个SCL上才能读出,因此这里的第一条语句的作用是产生一个整体的SCL时钟提供给PCF8591进行时钟转换,第二次读取的是当前的转换结果,如果只使用第二条语句的话,每次读到的都是上一次的转换结果。”)停止信号是在SCL为低电平期间,SDA由低到高产生一个上升沿。
(全双工)

SPI 穿行外围设备接口,高速、全双工、同步通信
(全双工)

通信的三种类型:
1.单工:只允许一方向另一方发送信息,而另一方不能回传信息。比如电视遥控,收音机广播。
2.半双工:数据可以在双方之间进行传播,但是同一时刻只允许一方发送给另一方。比如说对讲机。
3.全双工:数据可在双方之间进行传播,也允许同一时刻两方同时接收数据。比如打电话。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReCclay

如果觉得不错,不妨请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值