UART
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称为 UART)是一种异步收发传输器,是电脑硬件的一部分,将数据透过串列通信进行传输。UART 通常用在与其他通信接口(如EIA RS-232)的连接上。
具体实物表现为独立的模块化芯片,或是微处理器中的内部周边设备(peripheral)。一般和 RS-232C 规格的,类似Maxim的 MAX232 之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。在 UART 上追加同步方式的串行信号变换电路的产品,被称为 USART(Universal Synchronous Asynchronous Receiver Transmitter)。
功能
在手机设计和测试阶段被用来控制 CPU 与其余部分的消息传送
UART 是通用异步收发器(异步串行通信口)的英文缩写,它包括了RS232、RS449、RS423、RS422和RS485等接口标准规范和总线标准规范,即 UART 是异步串行通信口的总称。而 RS232、RS449、RS423、RS422 和 RS485 等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。实际上是属于通信网络中的物理层(Physical Layer)的概念,与通信协议没有直接关系。而通信协议,是属于通信网络中的数据链路层(Data Link Layer)的概念。COM 是 PC(个人计算机)上,异步串行通信口的简写。由于历史原因,IBM 的 PC 外部接口配置为 RS232,成为实际上的 PC 界默认标准。所以,现在 PC 机的 COM 均为 RS232。若配有多个异步串行通信口,则分别称为 COM1、COM2... 。
原理[编辑]
参见:异步串行通信
通用异步接受器-发送器(UART)把数据的字节按照比特顺序发送[1]。另一端的 UART 把比特组装为字节。每个 UART 包含一个移位寄存器。通过一根线或其他介质的串行通信比通过多根线的并行通信具有更低成本。
UART 通常并不直接产生或接收其他设备的外部信号。独立接口设备用于转换信号的逻辑电平给 UART。
通信可以是单工、全双工或半双工。
数据帧[编辑]
空闲状态,即没有数据传输,是高电平。这是从(有线)电报时代的历史遗存。线路保持高电平表明线路与传输设备没有损坏。每个字符表示为一个帧,以逻辑低电平为开始比特,然后是数据比特,可选的奇偶校验比特,最后是一个或多个停止比特(逻辑高电平)。大部分应用都是先传最低位的数据比特(the least significant data bit),但也有例外(如IBM 2741打印终端)。
如果线路长期(至少大于传输一帧的时间)保持低电平,这被 UART 检测为 Break condition.
接收器[编辑]
UART 硬件受一个内部时钟信号控制。该时钟信号是数据传输率的倍频,典型是比特率的 8 或 16 倍。接收器在每个时钟脉冲时测试接收到的信号状态是否为开始比特。如果开始比特的低电平持续传输 1 个比特所需时间的一半以上,则认为开始了一个数据帧的传输;否则,则认为是毛刺脉冲并忽略。到了下一个比特时间后,线路状态被采样并送入移位寄存器。约定的表示一个字符的所有数据比特(典型为 5 至 8 个比特)接收后,移位寄存器可被接收系统使用。UART 将设置一个标记指出新数据可用,并产生一个处理器中断请求主机处理器取走接收到的数据。
简化的 UART 在开始比特下降沿开始重新同步时间,然后在每个数据比特的中心时刻采样。
UART 的标准特性之一是在接收下一个字符时在缓冲区保存上一个接收到的字符。这种“双缓冲区”允许接收计算机用一个字符的传输时段来获取缓冲区内的上一个字符。许多 UART 有更大的 FIFO 缓冲区,允许主机一次处理多个字符,这特别适用于高传输数据率的串行通信同时处理器中断频率有限(通常中断间隔大于 1 毫秒)。
发送器[编辑]
UART 把一个字符放入移位寄存器,就开始产生一个数据帧。对于全双工通信,发送与接受使用不同的移位寄存器。使用更大的 FIFO 使得主机处理器或 DMA 放置多个字节后由 UART 自主完成传输。 UART 用一个标志位表示 busy。
应用[编辑]
接收与发送的 UART 必须达成数据帧协议。如果接收方发现这方面错误,会向主机报告"framing error"标志。
典型的连接 modem 的串口,使用 8 个比特表示一个字节,没有奇偶校验位,1 个停止位。比特率除以 10 就是发送 ASCII 字符的传输速率。
超低成本的嵌入式系统没有 UART 而是用处理器来实现异步串行通信。
评论