UART俗称串口,是Universal Asynchronous Receiver/Transmitter(通用异步收发器)缩写。是常用的芯片与PC间,芯片间低速通信接口。UART是一种定义在数据链路层的通信协议,比较随意马虎会和定义在物理层的RS232等电气协议稠浊。这俩协议之间实际上并无包含关系,只是常日利用的串口是指知足UART通信协议且物理连接知足RS232电气特性的一种通讯办法。
如表1所示,UART通信协议显著特点便是无需时钟旗子暗记,仅需两根线即可完玉成双工通信(此处不谈论带流控的4线环境)。
表1 UART接口旗子暗记

【UART帧构造】
图1 UART数据格式
图1为UART帧构造,UART帧由1bit起始位,5~9比特数据位,0~1bit奇偶校验位,1~2比特停滞位组成。无数据帧发送时,总线空闲时发送空闲位。各域详细描述如下:
空闲位:多bit高电平,表征总线处于空闲状态。
起始位:1bit低电平,表征总线开始传输。在空闲状态时,侦测到1bit低电平则认为帧起始位。
数据位:5~8bit数据。数据按照LSB(低比特宣扬)的办法发送。由于ASCII码位宽为8bit,因此常日数据位设置为8比特。
考验位:根据可配置可分为五种模式。
表2 UART Parity模式
停滞位:帧结束标识。位宽可配置为1bit,1.5bit,2bit 3种环境。
波特率:数据传输速率利用波特率表示,单位bps(bits per second)。可配置选择有8种标准波特率,分别为1200,2400,4800,9600,19200,38400,57600,115200。比特宽度=(1/波特率)。如9600bps,比特宽度为1/9600≈104.17us。
由于UART传输机制中仅定义了数据帧,没有定义掌握帧,因此上述描述中提到的可配置部分,通信双方须要提前配置同等方可进行通信。
【UART传输实例】
图2为UART接口传输Hi字符实例。UART在通报字符时,采取字符的ASCII作为编码办法。’H’字符ASCII码为0x48,’i’字符ASCII码为0x69
图2 UART通报“Hi”字符实例
【UART范例外围电路】
图3 UART范例外围电路
图3为UART运用的范例外围电路。常日从芯片输出的UART旗子暗记为CMOS电平(如本例中的3.3v),为了和PC进行连接一样平常须要将CMOS电平转换为RS232规定的电平标准,图中SP232E芯片便是该转换芯片,DB9为RS232规定的一种连接器规格,在UART运用时仅须要链接2/3/5PIN脚即可。硬件设计时须要把稳,UART_RX方向最好预留上拉电阻位置,若吸收方IO无弱上拉功能,则须要在板级进行弱上拉,以确保任何场景下能得到可靠的空闲状态。
【后记】
UART作为全体系列首个和大家磋商的数字接口,紧张是由于其功能大略且运用广泛。而且大部分SOC芯片均选择通过UART作为Debug接口。芯片回片时,第一次启动通过串口打印出来的字符,像极了一颗新生命在说Hello world,那种觉得估计也只有同行才能懂。
UART在业界有名的几家IP供应商中都有成熟IP可以选用,且大部分半卖半送十分便宜。如果你胆子够大,乃至可以直接从网上获取开源代码利用。作为一名芯片爱好者和从业者,万事溯源是最基本的职业素养。然而遗憾的是,截止本文完成时,仍未找到有关UART通信协议详细起源,以及协议详细掩护组织,大致推断可能和几篇美国专利有关,如有理解的同学忘留言奉告。