通信UART、I2C、SPI

内部通信UARTI2CSPI

目录

1.UART

2.I2C

3.SPI


1.UART

 全双工异步通信,有两根线发送与接收。

通信UART、I2C、SPI_第1张图片

UART串口通信需要两个信号线来实现,一根用于串口发送,另外一根负责串口接收。

一开始高电平,然后拉低表示开始位,接着8个数据位,然后校验位,最后拉高表示停止位,并且进入空闲状态,等待下一次的数据传输。

起始位:先发出逻辑0的信号,表示传输开始。

数据位:支持 4、5、6、7、8 位等,完成约定后才能正确地传输。

检验位 目前简单常用的数据校验方式是奇偶校验    协议就变成了:开始+数据+停止。

停止位:一个字符结束标志。

波特率为 9600/,数据位为 8 位,无校验位。波特率表示它表示每秒传输二进制数据的位数

由于波特率为 9600,时钟50Mhz. 因此我需要的计数为:50000000/9600≈5208。每位占用时间1s/9600=104166ns。

2.I2C

半双工通信

 IIC总线分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。

在总线空闲时SCLSDA由上拉电阻拉高保持高电平状态

IIC总线的传输速率在标准模式下可达100kbit/s;快速模式下可达400kbit/s;高速模式下可达3.4Mbit/s

起始与终止信号:SCL为高期间,

             SDA : 由高到低,起始信号

             SDA:由低到高,终止信号

通信UART、I2C、SPI_第2张图片

ACK(从机应答):拉低代表收到数据

3.SPI

高速、全双工、同步通信总线 。由一个主模块和一个或多个从模块组成。

MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)和CS/SS(片选)

SPI的时钟极性和时钟相位特性可以设置4种不同的SPI通信操作模式

主设备发起信号,将CS/SS拉低,启动通信。

主设备通过发送时钟信号,来告诉从设备进行写数据或者读数据操作(采集时机可能是时钟信号的上升沿(从低到高)或下降沿(从高到低),因为SPI有四种模式,后面会讲到),它将立即读取数据线上的信号,这样就得到了一位数据(1bit)。

两个移位寄存器中的内容就被交换。

CPOL:时钟极性, 表示 SPI 在空闲时, 时钟信号是高电平还是低电平。

CPHA:时钟相位, 表示 SPI 设备是在 SCK 管脚上的时钟信号变为上升沿时触发数据采样, 还是在时钟信号变为下降沿时触发数据采样。

CPOL= 0CPHA=0SCK串行时钟线空闲是为低电平,数据在SCK时钟的上升沿被采样,数据采样是在上升沿,数据发送是在下降沿。

通信UART、I2C、SPI_第3张图片

你可能感兴趣的:(硬件基础知识,单片机,嵌入式硬件)