通信协议+知识点总结
UART
基本特点
异步,全双工
硬件组成
RX与TX相连,无需外接任何器件(空闲时为高电平)
通信过程

串口数据的发送与接收是基于帧结构的,即一帧一帧的发送与接收数据。每一帧除了中间包含 8bit 有效数据外,还在每一帧的开头都必须有一个起始位,且固定为 0;在每一帧的结束时也必须有一个停止位,且固定为 1,即最基本的帧结构(不包括校验等)有10bit。在不发送或者不接收数据的情况下,rx 和 tx 处于空闲状态,此时 rx 和 tx 线都保持高电平,如果有数据帧传输时,首先会有一个起始位,然后是 8bit 的数据位,接着有 1bit的停止位,然后 rx 和 tx 继续进入空闲状态,然后等待下一次的数据传输。。
RS232
除了逻辑电平不一样,其他和UART都一样
- 逻辑0:+5V – +15V
- 逻辑1:-15V – -5V
RS485
差分信号,半双工,适用于长距离传输
- 逻辑0:+2V – +6V
- 逻辑1:-6V – -2V
这里的电平指AB两线间的电压差
IIC
基本特点
同步,半双工
标准100KHz,最高400KHz(IIC主要应用于低速设备)
硬件组成
需外接上拉电阻
通信过程
空闲状态
SDA和SCL都处于高电平
开始信号S和终止信号P

在数据传输过程中,当SCL=0时,SDA才可以跳变;当SCL=1时,SDA必须保持稳定,一旦有电平跳变就代表是起始信号或终止信号。
- 起始信号S:SCL=1时,SDA由1->0
- 终止信号P:SCL=1时,SDA由0->1
数据有效性

在数据传输过程中,当SCL=0时,SDA才可以跳变;当SCL=1时,SDA必须保持稳定,一旦有电平跳变就代表是起始信号或终止信号。
在SCL=1时,SDA数据线稳定,数据有效。
应答信号
每当主机向从机发送完一个字节的数据,主机总是需要等待从机给出一个应答信号,以确认从机是否成功接收到了数据
主机将SCL拉高,读取SDA电平:
- SDA=0,表示有效应答位(ACK),表示从机已成功接收该字节
- SDA=1,表示非应答位(NACK),表示从机接收该字节失败
每次传输时,接收方都要返回一个ACK给发送方,才能继续数据通信
IIC写数据

1.主机发送设备地址(前7位为设备地址,第8位代表W);
2.各从机比对自己的地址,匹配则发送ACK;
3.主机收到ACK,继续发送要访问的寄存器地址;
4.从机成功接收,发送ACK;
5.主机发送DATA。
写AT24C02时序:

IIC读数据

1.主机发送设备地址(前7位为设备地址,第8位代表W);
2.各从机比对自己的地址,匹配则发送ACK;
3.主机收到ACK,继续发送要访问的寄存器地址;
4.从机成功接收,发送ACK;
5.主机重新发送一个S信号,发送设备地址(第8位为R)
6.从机成功接收,发送ACK;
7.从机紧接着返回对应地址寄存器数据,直到主机不在返回ACK。
读AT24C02时序:

浙公网安备 33010602011771号