UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器),是一种全双工、异步、低位先行的通信协议。
UART通信设备间的硬件连接如下图所示
当两设备间的电平标准不同时需要进行电平转换,串口常见的电平标准有以下几种:
①TTL电平:+3.3V或+5V表示1,0V表示0
②RS232电平:-3~-15V表示1,+3~+15V表示0
③两线压差+2~+6V表示1,-2~-6V表示0(差分信号)
注意,电平标准只是电气硬件上的差别,与通信协议的时序无关,不同的电平标准只不过是数据1和数据0的表达方式不同。
UART通信时序如下图所示
①起始位:标志一个数据帧的开始,固定为低电平;
②数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行;
③校验位:用于数据验证,根据数据位计算得来;
④停止位:用于数据帧间隔,固定为高电平。
由于是异步通信,UART设备之间需要统一每一位的持续时间,也即串口通信的速率——波特率。
UART传输多个字节时,重复上述通信时序即可。