一、UART基本原理
1.UART基本概念
UART全称为通用异步收发传输器(Universal Asynchronous Receiver-Transmitter),是一种常用的串行通信接口。它通过发送和接收数据的方式,在计算机系统中实现设备之间的通信。UART负责处理数据总线和串行口之间的串并转换,并规定了帧格式,只要双方采用相同的帧格式和波特率,仅用两根信号线(RX、TX)就可以完成异步通信。
2.UART帧格式
空闲位:当通信双方不传输数据时,空闲位会一直处于高电平。为了区分数据是否开始传输,设置了起始位。
起始位:当起始位为低电平时开始进行数据传输。根据从空闲位的高电平到起始位的低电平的电平改变,来判断数据是否开始传输。
数据位:用来放置要传输的数据,位数为5-8位。通常是一个字节8位。
检验位:通过校验位来判断传输的数据是否有误。分为奇校验和偶校验。校验位可有可无,根据需要来决定。(奇校验:数据位加上奇校验位共有奇数个1;偶校验:数据位加上偶校验位共有偶数个1)
停止位:默认为高电平。由于UART是异步传输,为了防止误差,最多传输8bit就要停止,重新发送。
3.UART波特率
3.1 基本概念
波特率:每秒钟传送的码元数,单位是Bd/s。(当码元为1 bit时,即bps)
3.2 计算
若全局时钟为100 MHz,波特率要设置为9600 bps,如何产生?
1/9600 = 104166 ns/bit
1/100 M = 10ns
104166 /10 = 10416(分频系数)
使用计数器进行分频设计,产生9600 bps。
3.3 与比特率、采样频率的区别
①比特率
比特率:每秒钟传送的二进制比特数,单位是bps。
波特率 = 比特率 x 调制一个码元所需要的比特数(码元:相同时间间隔内的信号表示一个当码元的离散状态个数M大于2时,称为M进制码元)
码元可以是1bit、2bit、3bit等,只有当调制一个码元所需要的bit数为1时,波特率 = 比特率。
②采样频率
采样频率:单位时间内从连续信号中提取并组成离散信号的采样个数,它用 赫兹 (Hz)来表示。
在数据的传输中,信号可能受到一些干扰而产生一些抖动,如果接收端只对这些信号进行一次采样,那么它有可能采样到的是不准确的数据,所以接收端在采样时,通常都要采样多次,然后通过处理获得准确的数据。
所以采样频率 ≠ 波特率。
二、UART优缺点与应用
1.优点
简单易用:UART使用简单的硬件和协议,只使用两根电线,不需要时钟信号,易于实现和使用。
低成本:UART使用简单的硬件和协议,成本较低。
可靠性高:UART使用异步通信方式,有一个奇偶校验位,可以在不同的时钟频率下进行通信,具有较高的可靠性。
通信距离远:UART可以通过线路驱动器和接收器进行电平转换,从而实现较长的通信距离。
2.缺点
速度有限:UART的通信速度受限于波特率,通信速率相对较低,且每个UART的波特率差异必须在10%之内。
只能点对点通信:UART只能实现点对点的通信,不支持多个从属或多个主系统,无法实现多点通信。
数据帧长度固定:UART的数据帧长度是固定的,无法灵活调整。
3.应用
UART广泛应用于各种领域,包括电子设备、通信设备、嵌入式系统、工业控制等。以下是UART的一些常见应用:
串口通信:UART常用于串口通信,如计算机与外设的通信、嵌入式系统的调试等。如打印机、扫描仪、传感器等。通过串口通信,可以实现数据的传输和控制。
数据采集与传输:UART可以用于传输各种类型的数据,如传感器数据、控制命令等。例如,将UART接口连接到传感器,可以获取传感器的数据。
无线通信:UART可以与无线模块结合使用,实现无线通信功能。例如,将UART接口连接到无线模块,可以实现无线数据的传输和通信。
工业自动化:UART可以用于工业自动化领域的数据采集和设备控制。例如,将UART接口连接到PLC(可编程逻辑控制器),可以实现设备的控制和监控。
汽车电子:UART可以用于汽车电子领域的数据传输和通信控制。例如,将UART接口连接到显示屏,可以实现数据的显示和控制。
总之,UART是一种常用的串行通信接口,具有广泛的应用领域。它可以实现设备之间的数据传输和通信,是许多电子设备和系统中不可或缺的一部分。