赞
踩
UART的英文全称是“Universal Asynchronous Receiver/Transmitter”,其中“U”表示通用,而“ART”表示异步收发器。因此,UART是一种通用的异步收发器。UART是一种通信协议,用于在数字电路中进行串行通信。串行通信是指数据逐位地传输,而不是一次传输一个字节或一个字。
空闲状态:数据线TX,RX始终为高电平;
开始位:始终为逻辑0,用于指示一个新的字节的开始;
数据位:通常是8位,用于存储要传输的数据。每个数据位可以是0或1;
校验位:可选,验证数据的正确性。如果使用奇偶校验,那么UART将在数据位后面添加一个奇偶校验位,其值可以是0或1,以使得字节中1的数量为偶数或奇数,为偶数则是偶校验,否则为奇校验。如果数据传输过程中发生了错误,那么接收端可以通过奇偶校验位来检测错误,并进行纠正。
停止位:始终为逻辑1,用于指示一个字节的结束。通常有1个或2个停止位。
UART协议的编码格式是异步串行通信,也称为UART异步串行通信。在UART异步串行通信中,数据以字节为单位进行传输,并且每个字节都是由一个起始位、一个或多个数据位、一个可选的奇偶校验位和一个或多个停止位组成。UART通过控制信号的起始位、数据位、奇偶校验位和停止位参数来确保数据的可靠传输。
起始位 + 数据位 + 奇偶校验位 + 停止位
发送数据过程:
发送端将数据写入UART的发送缓冲区,等待发送。
发送端将发送端口(TX)拉低,表示开始发送数据。
发送端根据UART协议的编码格式,将数据按照起始位、数据位、奇偶校验位和停止位的顺序一位一位地发送出去。
发送端等待数据发送完毕,并将发送端口(TX)拉高,表示数据发送结束。
如果需要发送多个字节的数据,那么重复上述过程,直到所有数据都发送完毕。
接收数据过程:
等待起始位:当接收端检测到数据线上的电平由高变低时,表示一个新的字节开始了,接收端开始等待起始位的到来。
接收数据位:当接收端检测到起始位后,它会开始接收数据位,一位一位地接收。接收端在每个数据位的中间时刻采样数据线上的电平,来确定数据位的值是0还是1。
接收奇偶校验位(可选):如果发送端在发送数据时设置了奇偶校验位,那么接收端也需要接收奇偶校验位。接收端会在数据位结束后,等待一段时间,接收奇偶校验位。如果奇偶校验位的值与数据位中1的数量不符,那么接收端将判断这个字节为错误数据。
接收停止位:当接收端接收完数据位和奇偶校验位(如果有的话),它会等待停止位的到来,以标志这个字节的结束。接收端检测到停止位的到来后,它就会认为这个字节的接收已经完成。
存储数据:当接收端完成了一次数据接收之后,它会将接收到的数据存储在一个缓冲区中,等待被读取或处理。
UART电路包括三个主要的电路模块:波特率发生器、发送模块和接收模块。每个模块都有自己的逻辑和寄存器,用于执行特定的功能。
波特率发生器用于生成UART通信中的时钟信号。它通常由一个计数器和逻辑门组成。计数器用于计算时钟信号的周期,并将结果发送给逻辑门。逻辑门用于将计数器输出与外部时钟信号同步,并生成每个数据位之间的时间间隔。
发送模块主要将并行数据转换为串行数据。接收模块将接收到的串行数据转换为并行数据。
波特率(Baud Rate):这是UART通信的传输速率,表示每秒传输的位数。发送和接收设备必须以相同的波特率进行通信,否则数据将无法正确解释。通常使用的波特率是9600、19200、38400和115200。
奇偶校验位(Parity Bit):在偶校验下,校验位被设置为使整个数据(包括校验位)中1的个数为偶数的值,而在奇校验下,校验位被设置为使整个数据(包括校验位)中1的个数为奇数的值。因此:
在偶校验下,如果数据位中1的数量是奇数,那么校验位被设置为1,否则被设置为0。
在奇校验下,如果数据位中1的数量是奇数,那么校验位被设置为0,否则被设置为1。
发送和接收设备必须以相同的波特率进行通信。
uart没有流控,主要用作输出输入字符,不建议做通信,连续数据传输容易出错,三针串口普遍用于设备调试。相比九针串口有流控功能,所以九针串口通常用于连接需要高速传输和流控功能的设备,例如调制解调器和终端。
不要在传输期间断开连接或移动设备,否则可能会导致数据错误或数据丢失。
当使用UART与其他设备通信时,两设备之间的UART接口电平保证相同,确保数据的正确传输。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。