UART —— Universal Asynchronous Receiver/Transmitter —— 通用异步收发器。
一、UART简介
UART是异步串口通信协议,
工作原理是将传输数据的每个字符一位接一位地传输,它能将要传输的资料在串行通信与并行通信之间加以转换,能够灵活地与外部设备进行全双工数据交换。
USART是UART的升级版,其支持同步模式,用法与UART相同
二、概念辨析
------------------------------------UART COM口 串口 USB口 RS - 232 TTL---------------------------------------------
UART,在硬件上表现为串口收发的逻辑电路,可被集成为独立地模块化芯片
COM口,串行通信端口,有时也称为串口,是一种连接器的结构,这里区别于USB的“通用串行总线”和硬盘的“SATA”,串口的接口标准规范和总线标准规范是RS-232
常见的有两种物理标准,D型9针插头,和4针杜邦头,
USB口:通用串行总线,和串口完全是两个概念。虽然也是串行方式通信,但由于USB的通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,用于PC连接各种外设,U盘、键鼠、移动硬盘、当然也包括“USB转串口”的模块。(USB转串口模块,就是USB接口的UART模块)
TTL,RS232,RS485等都是一种逻辑电平的表示方式,详见:A
三、UART原理说明
发送数据时,CPU将并行数据写入UART,UART按照一定格式在一根电线上串行发出;接收数据时,UART检测另一根电线上的信号,将串行收集放在缓冲区,CPU就可以读取UART获取这些数据。
TxD —— 发送数据 RxD —— 接收数据 Gnd —— 用于给双方提供参考电平
UART使用标准的TTL / CMOS 逻辑电平来表示数据,高电平表示1,低电平为0,。为了增强数据的抗干扰能力,提高传输长度,通常将TTL / COMS逻辑电平转换为RS-232逻辑电平
数据传输流程:以传输一字节数据‘A’为例
双方约定好波特率(每一位占据的时间);规定传输协议
1)平时数据线处于“空闭”状态(1状态)
2)当要发送数据时,UART改变TxD数据线的状态,变为0状态,并维持一位的时间,这样接收方检测到开始位后,再等待1.5位的时间就开始一位一位地检测数据线的状态得到所传输的数据。
3)UART一帧中可以有5/6/7/8位的数据,发送方一位一位的改变数据线的状态将数据发送出去,首先发送最低位
4)如果使用校验功能,UART在发送完数据后,还要发送一个校验位:奇校验,偶校验——数据位连同校验位中,“1”的数目属于奇数或偶数。
5)最后发送停止位,数据线恢复到“空闭”状态(1状态),停止位长度有三种:1位、1.5位、2位
图1-1 TTL / COMS逻辑电平下,传输A时的波形
图1-2 RS - 232逻辑电平下,传输数据A的波形
对于TTL / CMOS 电平,在xV至5V之间,就认为是逻辑1,在0V至yV之间就为逻辑0。
对于RS - 232电平,在-12V至-3V之间,就认为是逻辑1,在+3V至+12V之间就为逻辑0。
RS-232的电平比TTL/CMOS高,能传输更远的距离,在工业上用得比较多。
在ARM芯片上的串口都是TTL电平的,通过板子或外接电平转换芯片,可以转成RS232标准的接口。如图2-1所示
如今终端上的RS-232标准的接口越来越少,越多的是USB口,因也可以使用USB转串口芯片将TTL电平转为USB传输电平。
四、异步串行通信的特点
所谓异步通信,是指数据传送以字节为单位,字符与字符间的传送是完全异步的,位与位的传送基本是同步的。
特点:
1)以字符为单位传送信息
2)相邻两字符间的间隔任意长
3)由于一个字符的波特位长度有限,所以需要接受时钟和发送时钟相近就可以
4)字符间异步,字符内同步
五、基本结构
图3-1 UART结构图
ARM处理器中UART功能相似,都有独立的通道,每个通道都可工作于中断或DMA模式,即UART可以发出中断或DMA请求以便在UART、CPU间传输数据。具体的UART特性可参见不同芯片的芯片手册。以下以S3C2440芯片分析UART的使用过程。
S3C2440 UART的FIFO深度为64字节。发送数据时,CPU先将数据写入发送FIFO中,然后UART自动将FIFO的数据复制到“发送移位器”中,发送移位器将数据一位一位地发送到TxDn数据线上(按照设定的格式,插入开始位,校验位和停止位)。接收数据时,“接收移位器”将RxDn数据线上的数据一位一位接收进来,然后复制到FIFO中,CPU即可从中读取数据。UART的结构如图3-1所示。
六、使用UART
参考文档:
嵌入式LINUX应用开发手册 —— 韦东山
基于STM32之UART串口通信协议(一)详解
串口、COM口、UART口, TTL、RS-232、RS-485区别详解
来源:https://www.cnblogs.com/y4247464/p/12295764.html