通用异步收发器(universalasynchronousreceiver/transmitter )通常称为UART,是串行、异步和全双工通信协议,在嵌入式领域使用非常广泛。
UART作为一种异步串行通信协议,其原理是将传输数据的各二进制位逐位传输。 在UART通信协议中,信号线上的状态为xxdrs时表示“1”,信号线上的状态为低电平时表示“0”。 例如,在使用UART通信协议进行1字节数据的传输的情况下,在信号线中产生8个高低电平的组合。 但是,实际上UART通信协议在进行1字节数据传输时,除了最基本的数据位以外还需要表示很多信息,具体的协议形式如下
空闲位:
在URT协议中,当总线空闲时,信号线的状态被规定为‘1’,即,xxdrs
起始位:
每次开始通信时,发送端首先发送逻辑“0”的信号(低电平),表示传输字符的开始。 总线空闲时为xxdrs,因此开始通信时,会先发送与空闲明显区分的信号——低电平。
数据位:
开头位之后是要传输的数据。 数据位构成一个字符,例如5、6、7和8位。 首先发送最低限比特,最后发送最高限比特,且当在低电平表示“‘0'xxdrs时,“1”完成了数据比特的传输。
奇偶校验位:
在数据位加上该位后,将“1”的位数设为偶数(偶数检查)或奇数(检查),验证数据传输的正确性
停止位:
这是字符数据的结束标志。 也可以是1位、1.5位、2位的xxdrs。 由于数据是在传输线路上调度的,每个设备都有自己的时钟,因此在通信过程中两个设备之间很可能会发生小的异步。 因此,停止位不仅指示传输的结束,而且提供计算机校正时钟的机会。 停止位数越多,数据传输越稳定,但数据传输速度也越慢。
比特率:
UART使用波特率表示数据的传输速度。 比特率表示每秒发送的二进制位数。