本文关于UART的介绍,首先借助百度百科,进行基础部分阐述
一、UART基础知识
定义:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器。主要功能实现串并行数据的转换,具体实物表现为模块化芯片,常常被用来作为嵌入式芯片的外设模块,与外部设备进行通信。
UART常常也被理解为一种通信协议,用来实现异步串行通信,规定了数据传输格式和波特率,多是数据链路层的概念。常常被用来和UART做对比的RS-232和RS-485则规定了数据通信的电气接口,更多的是物理层的概念。
二、UART基本结构
数据发送的思想是,当启动字节发送时,通过TxD先发起始位,然后发数据位和奇偶数校验位,最后再发停止位,发送过程由发送状态机控制,每次中断只发送1个位,经过若干个定时中断完成1个字节帧的发送。
数据接收的思想是,当不在字节帧接收过程时,每次定时中断以3倍的波特率监视RxD的状态,当其连续3次采样电平依次为1、0、0时,就认为检测到了起始位,则开始启动一次字节帧接收,字节帧接收过程由接收状态机控制,每次中断只接收1个位,经过若干个定时中断完成1个字节帧的接收。
四、UART工作原理
(1)发送与接收
发送逻辑对从发送FIFO 读取的数据执行“并→串”转换。控制逻辑输出起始位在先的串行位流,并且根据控制寄存器中已编程的配置,后面紧跟着数据位(注意:最低位 LSB 先输出)、奇偶校验位和停止位。
在检测到一个有效的起始脉冲后,接收逻辑对接收到的位流执行“串→并”转换。此外还会对溢出错误、奇偶校验错误、帧错误和线中止(line-break)错误进行检测,并将检测到的状态附加到被写入接收FIFO 的数据中。
(2)波特率产生