嵌入式linux------通用异步收发UART(数据传输)
通用异步收发UART用来传输穿行数据,以全双工方式传输,最精简的连线方式只有三条线:TxD用于发送数据,RxD用于接收数据,Gnd为地线为双方提供参考电平。
UART采用标准的TTL/CMOS逻辑电平,高电平表示1,低电平表示0。转换为RS232逻辑电平后往往传输距离远、抗干扰能力强。
数据传输TxD和RxD以“位”为最小单位传输。帧包含开始位、数据位、校验位和停止位。在发送数据之前,一般先设定好数据传输速率(每位传输所用时间,其倒数成为波特率)。
数据传输过程:
- 平时数据处于空闲“1”状态。
- 需要发送数据,UART改变TxD数据线状态,下拉为0,并保持1位的时间,接收方检测到下拉变化,等待1.5位的时间,开始一位一位检测数据线状态,得到所接收的数据。
- 发送方从最低位开始一位一位传输。
- 发送完数据后可能还要发送一个校验位---数据位连同校验位中“1”的数目等于奇数还是偶数。
- 最后发送停止位,数据线恢复到空闲状态,停止位有三种:1位、1.5位和2位。
- 上图是发送字符‘A’,ob1000001的过程。