🌈以下是本人在串口通信学习过程中的理解和笔记记录,是为了方便后续的学习,如有补充和错误,欢迎评论区留言!

串口通信

1.通信方式分类

按数据通信方式分类:串行通信、并行通信
1740035899949.png

通信方式 优点 缺点
串行通信 占用的引脚IO少,成本低 传输速率低
并行通信 传输速率快 占用的引脚IO较多,成本高

按数据传输方向分类:单工通信、半双工通信、全双工通信
1740036390128.png

通信方式 特点
单工通信 数据只能沿一个方向传输
半双工通信 数据可以沿两个方向传输,但需要分时进行
全双工通信 数据可以同时进行双向传输

按数据同步方式分类:同步通信、异步通信
1740036617097.png

通信方式 特点
同步通信 带时钟端口的数据传输
异步通信 没有时钟端口,发送方和接收方使用各自的时钟控制数据的收发过程

常见串行通信接口特点

通信标准 引脚说明 通信方式 通信方向
UART (通用异步收发器) TXD:发送端 RXD:接收端 GND:公共地 异步通信 全双工
1-WIRE (单总线) DQ:发送/接收端 异步通信 半双工
IIC SCL:同步时钟 SDA:数据输入/输出端 同步通信 全双工
SPI SCK:同步时钟 MISO:主机输入,从机输出
MOSI:主机输出,从机输入 CS:片选信号
同步通信 半双工

2.UART串口通信

UART串口是什么

  UART(Universal Asynchronous Receiver-Transmitter):即通用异步收发器,是一种通用串行数据总线,用于异步通信。一般UART接口常指串口。
  UART在发送数据时将并行数据转换成串行数据来传输,在接收数据时将接收到的串行数据转换成并行数据

UART协议层

UART串口通信数据格式
1740037673550.png

起始位:一帧的开始,必须保持一个比特位的低电平0
数据位:传输的有效数据,数据位可选5~8位;LSB在前,MSB在后
校验位:可选位,占用1个比特位,也可以没有校验
停止位:一帧的结束,必须有,可选占用0.5/1/1.5/2个比特位,保持逻辑高电平1

奇校验:保证数据位和校验位1的个数为奇数。偶校验:保证数据位和校验位1的个数为偶数。

UART串口通信传输速率:波特率
  波特率(BaudRate):串口通信的速率用波特率表示,它表示每秒传输二进制数据的位数,单位是bps(位/秒)
  常用的波特率有9600、19200、38400、57600以及115200等。
UART串口通信是异步通信,所以其实它与时钟周期是无关的,决定它的传输速率是波特率。例如波特率为115200,表示一秒钟传输115200位数据。1秒钟是10^9ns,那么1位数据所需要传输的时间就是10^9/115200≈8680.56ns,假设是在50M的时钟周期下,1位数据传输所需要的时钟周期个数为8680.56ns/20ns≈434个,在100M的时钟周期下所需要的时钟周期个数就是8680.56ns/10ns≈868个

3.UART串口通信实验

1.实验设备及要求

实验设备:正点原子达芬奇开发板(Xilinx),电脑(上位机)
实验要求:上位机通过串口调试助手发送数据给开发板,开发板通过USB UART串口接收数据并将接收到的数据发送给上位机,完成串口数据环回。UART通信波特率:115200,停止位:1,数据位:8位,无校验位。
开发环境:Vivado_2020、Vscode、Visio。