当前位置: 代码迷 >> 综合 >> UART-IIC-SPI通信协议
  详细解决方案

UART-IIC-SPI通信协议

热度:87   发布时间:2023-12-06 03:38:16.0

一、 UART

1、 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)

2、 发送时序

UART
CLK 信号的第一个上升沿到来时,字节发送模块开始发送起始位,接下来的2 到9 个上升沿,发送8 个数据位,第10 个上升沿到第11 个上升沿为停止位的发送。

3、 接收时序

UART
当对Rx上的每一位进行采样时,一般情况下认为每一位数据的中间点是最稳定的。因此一般应用中,采集中间时刻时的电平即认为是此位数据的电平。

4、 UART 关键参数

数据位(Data bits):该参数定义单个 UART 数据传输在开始到停止期间发送的数据位数。可选择为:5、6、7 或者 8(默认)。

波特率(Baud):是指从一设备发到另一设备的波特率,即每秒钟可以通信的数据比特个数。典型的波特率有300, 1200, 2400, 9600, 19200, 115200 等。一般通信两端设备都要设为相同的波特率,但有些设备也可设置为自动检测波特率。

停止位(Stop bits):在每个字节的数据位发送完成之后,发送停止位,来标志着一次数据传输完成,同时用来帮助接受信号方硬件重同步。可选择为:1(默认)、1.5 或者2 位。

奇偶校验类型(Parity Type):是用来验证数据的正确性。奇偶校验一般不使用,如果使用,则既可以做奇校验(Odd)也可以做偶校验(Even)。在偶校验中,因为奇偶校验位会被相应的置1 或0(一般是最高位或最低位),所以数据会被改变以使得所有传送的数位(含字符的各数位和校验位)中“1”的个数为偶数;在奇校验中,所有传送的数位(含字符的各数位和校验位)中“1”的个数为奇数。奇偶校验可以用于接受方检查传输是否发送生错误,如果某一字节中“1” 的个数发生了错误,那么这个字节在传输中一定有错误发生。如果奇偶校验是正确的,那么要么没有发生错误,要么发生了偶数个的错误。如果用户选择数据长度为8 位,则因为没有多余的比特可被用来作为奇偶校验位,因此就叫做“无奇偶校验(Non)”。

二、IIC

1、集成电路总线(Inter-Integrated Circuit)

2、IIC总线时序

IIC

3、IIC写时序

IIC

4、IIC读时序

IIC

5、数据有效性

IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定;只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
即:数据在时钟线SCL的上升沿到来之前就需准备好。并在在下降沿到来之前必须稳定。

6、空闲状态

当IIC总线的数据线SDA和时钟线SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。

7、I?C规范发布的历史

GF

三、SPI

1、串行外围设备接口(Serial Peripheral interface)

2、SPI模式

根据 SPI 时钟极性(CPOL)和时钟相位(CPHA) 配置的不同,分为 4 种 SPI 模式。时钟极性是指 SPI 通信设备处于空闲状态时SCK 信号线的电平信号。CPOL=0 时, SCK 在空闲状态时为低电平,CPOL=1 时则相反。时钟相位是指数据采样的时刻,当 CPHA=0 时,MOSI或MISO数据线上的信号将会在 SCK 时钟线的奇数边沿被采样。当CPHA=1时,数据线在SCK的偶数边沿采样。
SPI
SPI

3、SPI总线指定了四个逻辑信号:

SCLK:串行时钟(主机输出)
MOSI:主输出从输入或主输出从输入(主输出的数据)
MISO:主输入从输出或主输入从输出(从输出的数据输出)
SS:从设备选择信号线,常称为片选信号线,也称为NSS、CS(主机输出)