串口通信协议(UART)及仿真

串口通信协议

串口通信(UART)是一种用两线(Rx【发送端】、Tx【接收端】)实现的异步、全双工通信方式。

由于串口通信没有时钟信号线,由此而出现波特率(BaundRate),即接收和发送双方规定好相同的波特率;以此来保证传送的数据的正确性;

※波特率:一秒钟内传送的比特数目。

如下图1是串口通信协议(UART Protocol),分为五个阶段分别为:起始位(Start)、有效数据位(Vaild
Data Bits)、奇偶校验(Parity)、停止位(Stop)、空闲位(Idle)。

串口通信协议(UART)及仿真_第1张图片

◆ 对于上图一帧的数据,是有这样的格式组成的。

◆ 第1位:起始位,为0。

◆ 第2~9位:是有效数据位,先传输低位,再传输高位。

◆ 第10位:奇偶校验位,parity,有的核会有no parity这个参数设置,就没有奇偶校验位。

◆ 第11位:停止位,为1。

开始状态
由于接收端(Rx)空闲时处于高电平转态,当要接收数据时(一般是有标志信号),接收端被拉低,并维持一个bit时间的低电平,接下来进入接收有效数据。

数据接送状态:数据的接收方式为,先接收最低位数据0(LSB),最后接收最高位数据(MSB)数据的接收在相同的波特率下进行。

奇偶校验位:奇偶校验是一种校验接收数据正确性的一种方式。

偶校验 :是要保证传送的一帧数据中出现 1的数目是偶数个。如果前面的数据是奇数个 1 时,则校验位则为1 ,以确保发送的一帧数据是偶数个 1。

停止位:停止位为高电平,并维持一个bit的时间。

在这里插入图片描述

如果想要通过一个例子来看一下串口协议的时序,请参考这个链接下的一段代码。
虽然是AXI的接口,但是我们只需要看串口的tx的变化是不是按照上述格式变化。

https://www.eefocus.com/mastershifu2015/blog/16-08/389789_b32a3.html

在例子中
uart的输出数据tx,可根据uart的协议格式确定,该核有起始位,数据位,和停止位,没有奇偶校验和空闲位。每一帧数据都是这样的格式。

Tx的变化是根据波特率发送的,1/115200 = 8.68us, 发送1bit的数据需要8.68 us.

你可能感兴趣的:(串行总线)