2.3 通用异步收发传输器 UART Universal Asynchronous Receiver/Transmitter


1 UART是什么?

UART全称是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),它通常称作UART,是一种异步收发传输器,是设备间进行异步通信的关键模块。UART负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式;通信双方只要采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,仅用两根信号线(RX 和TX)就可以完成通信过程,因此也称为异步串行通信
在这里插入图片描述
在这里插入图片描述

2 通信方式是什么?

通信方式是指通信双方之间的工作方式或信号传输方式。根据数据的传输方式,有串行通信和并行通信。
串行通信:
定义:串行通信是指利用一条传输线将数据一位位地顺序传送。
传输方式:传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输。
特点:通信线路简单,利用电话或电报线就可以实现通信,降低成本,适用于远距离通信,但传输速度慢
并行通信:
定义:并行通信是指利用多条传输线将一个数据的各位同时传送。
传输方式:传输一个字节(8个位)的数据时,并口是将8个位一字排开,分别在8条连接线上同时传输。
特点:传输速度块,适用于短距离通信。(长度增加,干扰就会增加,数据也就容易出错。)

串行通信又称为点对点通信,对于点对点之间的通信,根据数据的同步方式,又分为异步传送和同步传送两种方式。
在同步通讯中,数据信号所传输的内容绝大部分就是有效数据,而异步通讯中会包含有帧的各种标识符,所以同步通讯的效率更高,但是同步通讯双方的时钟允许误差较小,而异步通讯双方的时钟允许误差较大。
根据数据的传输方向与时间关系,又可分为单工通信、半双工通信及全双工通信三种方式。
在这里插入图片描述
在这里插入图片描述
串行和并行哪个速度快?
在实际时钟频率比较低的情况下,并口因为可以同时传输若干比特,速率确实比串口快。但是,随着技术的发展,时钟频率越来越高,当时钟频率提高到一定的程度时,并行接口因为有多条并行且紧密的导线,导线之间的相互干扰越来越严重。而串口因为导线少,线间干扰容易控制,况且加上差分信号的加持,抗干扰性能大大提升,因此可以通过不断提高时钟频率来提高传输速率,这就是为什么现在高速传输都采用串行方式的原因。例如常见的USB、SATA、PCIe、以太网等。

如果有人问关于串行传输与并行传输谁更好的问题,你也许会脱口而出:串行通信好!但是,串行传输之所以走红,是由于将单端信号传输转变为差分信号传输,并提升了控制器工作频率的原因,而“在相同频率下并行通信速度更高”这个基本道理是永远不会错的,通过增加位宽来提高数据传输率的并行策略仍将发挥重要作用。当然,前提是有更好的措施来解决并行传输过程中的种种问题。

3 UART通信协议

异步通信是按字符传输的,接收设备在收到起始信号之后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。下一个字符起始位的到来又使同步重新校准。
在这里插入图片描述
在这里插入图片描述
起始位:先发出一个逻辑”0”信号,表示传输字符的开始。UART数据传输线通常在不传输数据时保持在高电平。

数据位:可以是5~8位逻辑”0”或”1”。这个参数最好为8,因为如果此值为其他的值时当你传输的是ASCII值时一般解析肯定会出问题。理由很简单,一个ASCII字符值为8位,如果一帧的数据位为7,那么还有一位就是不确定的值,这样就会出错。

校验位:可以没有。数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)。
在这里插入图片描述
停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容错性越好,但是数据传输率同时也越慢。

空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。

举例:
9600波特率,8个数据位,无奇偶校验和1个停止位。
发送ASCII字符“O”和“K”。O十进制值79,二进制值01001111;而K的二进制值是01001011。
注意是先发低位再发高位,LSB→MSB。
在这里插入图片描述

4 UART电平标准

UART使用标准的TTL/CMOS逻辑电平(0-5v,0-3.3v,0-2.5v或0-1.8v)来表示数据,1表示高电平,0表示低电平。(正逻辑)
为了提高抗干扰能力、提高传输的距离,通常也会TTL/CMOS逻辑电平转换为RS-232逻辑电平,3-15表示0,-3~-15V表示1。(负逻辑)

举个例子,对于传输数据0x55,即二进制的01010101,RS232和TTL的区别如下:
在这里插入图片描述
结合“3.6 高速设计常见电平 LVDS、LVPECL、 HCSL、LVCMOS”

串口通信的接口标准有很多,而我们所了解的RS-232C、RS-232、RS-422A、RS-485 、TTL 都是串口通信标准。
需要注意的是RS-232与TTL只是一种电平标准,而COM口和UART口是物理接口,只是COM口肯定使用RS-232标准,而UART一般使用TTL标准。

COM口
通常使用的是9 针D 形连接器,简称 DB9接口,也称之为RS-232接口,之前串口通信使用的大多都是 DB9 接口,而有的使用的是老式的DB25 针连接器,也称之为RS-422接口,这种接口目前已经很少使用,接头有公头和母头之分,其中带针状的接头是公头,而带孔状的接头是母头。DB9/DB25接口 ,就称为COM口 。

UART口
UART 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片同样它是串行通信接口 UART只有数据线收和发,并无时钟线,故为异步串行通信接口,可以实现全双工传输和接收;在嵌入式中,常用来上位机与外设通信。单片机中的UART有4个pin(VCC, GND, RX, TX), 用的TTL电平。

USB转TTL
我们知道现在电脑使用的基本都是USB接口,而单片机使用的是TTL标准,那么在嵌入式中我们需要上位机通信,怎么办呢?,这时候便需要一个转换芯片,从而使得电脑(主机)可以通过USB输出TTL电平 ,这便是USB转TTL。那么我们所已知的CH340G(用得最多如下图) CH340E PL2303 、CP2102 等等 ,都是USB转TTL串口的芯片,当然现在普遍使用的为CH340G 主要是因为其安全,耐用并且便宜 满足我们日常的正常使用,在接线时注意单片机RX接转接板TX TX接转接板RX。
在这里插入图片描述
USB转串口(RS-232)
我们知道单片机是UATR口 TTL电平标准,而电脑是USB口 如果我们想用电脑的USB口与单片机串口(COM口)通信,这时就需要使用MAX232之类的电平转换芯片,将单片机TTL电平转换成RS-232电平 ,并且将USB转换为RS-232电平 这就是USB转串口。我们所说的USB转串口,就是指单片机上装了一个TTL转RS-232的转换芯片 ,并且有COM口,使得单片机可以输出RS-232电平,这样便可以通过 USB转串口(RS-232)模块连接电脑USB口,再与单片机COM口相连,双方都是RS-232电平标准,便可以来进行通信。市场出售的usb转串口线一般会有两个芯片,一个是CH340这类芯片,一个是MAX232类芯片,因为计算机的串口电平标准是RS232电平,所以通过 USB转串口(RS-232)模块 USB经过CH340转成了TTL串口,中间那四个引脚可以引出,再经由MAX232转换为RS-232电平,9针串口引出 。并且MAX232芯片是 TTL电平与RS232电平的专用双向转换芯片,可以TTL转RS-232,也可以RS-232转TTL,在单片机上用作TTL转RS-232 。
如下图,上面的U3是SP3485,用于RS-485 and RS-422 transceiver;下面的U2是MAX232。
在这里插入图片描述
在这里插入图片描述
USB to serial chip CH340
在这里插入图片描述
RS-232 RS-485 TTL电平标准 以及串口、COM口、UART口、USB转TTL、USB转串口
总结:
①.COM口:在台式机上常用的口,DB9/DB25接口,接口协议只有两种RS232和RS485
COM口多见于旧式电脑,用于连接鼠标,调制调解器等设备,现在已被USB取代。
②.UART口、COM口指的是物理接口形式;TTL、RS232和RS485指的是电平逻辑标准;
③TTL电平和RS232电平转换专用芯片有MAX232,TTL电平转USB芯片有CP2102、PL2303、FT230,CH340
④ COM口 和UART口 都为串口的一种 ,即都为串行通信 UART为异步串行通信接口
⑤UART包含TTL电平的串口和RS232电平的串口,但是我们的单片机的UART是TTL电平
⑥ 串口按照接口划分标准分为很多种 ,如UATR RS232 同步串行接口

5 关于UART的其他注意事项

异步通信中,在异步通信中有两个比较重要的指标:字符帧格式和波特率。
数据的传输速率用波特率表示,即每秒钟传输的的二进制位数。每秒传输的字符数乘以位数即为波特率。只要传输的信号是二进制的,波特率与比特率的概念就是相同的。
数据通常以字符或者字节为单位组成字符帧传送,是通过双方约定好的波特率进行数据传输。
假如双方波特率不一致,则接收到数据就是乱码。常规波特是1200、2400、4800、19200、38400、57600和115200 bps

波特率和比特率的区别
1、波特率就是每秒传输多少符号
2、比特率就是每秒传输多少比特。
二进制一个符号所含信息量为1比特,因此二进制下波特率=比特率。 计算机处理的都是二进制数,在这个环境下波特率和比特率都一样。

CTS,RTS信号,用于硬件流控?
一般来说,只有在半双工通信的情况下需要用到CTS/RTS.
RS232串口之RTS与CTS作用

6 调试记录

调试A项目第一版底板串口的问题点:串口无输出,串口输出乱码问题?
板子上电正常,这里用了B项目同样的一组串口,飞线出来发现无输出,一开始软件用的一个SP3232芯片(TTL→RS232)的串口板,串口一直没有正常的打印信息输出。而B项目的板子上面是用了一个MAX3232芯片,有正常的串口信息输出,电路如下。因为核心板用的是一样的,所以可能是底板的问题或者串口板的问题。
示波器对比测试了B项目的板子跟自己的板子TX跟RX波形的差异,发现TX是正常一样的,都是一直有数据输出,但B项目的板子是正常的高电平输出,而我们自己的板子RX是拉低的,所以怀疑是这里的Max3232芯片可能有影响,拿掉试下。拿掉后发现B项目的板子RX也是拉低状态了,通过SP3232串口打印输出也是乱码,也就是跟我们自己的板子一样的情况了。
在这里插入图片描述
说明SP3232跟MAX3232还是有区别的,网上也找到类似的信息。应该是MAX3232有一定的驱动能力,而SP3232没有。然后又找到了另一块CH340的串口板尝试,发现两块板都可以正常输出串口信息了。而且也可以通过键盘输入信息(注意把软件设置流控那里的RTS/CTS选项打勾去掉)
在这里插入图片描述

7 UART优缺点总结

优点:
1、通信只需要两条数据线。
2、无需时钟信号。
3、有奇偶校验位,方便通信的差错检查。
4、只需要接收端和发送端设置好数据包结构,即可稳定通信。
缺点:
1、传输速率较低。
2、接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
3、传输距离有限,数据帧最大支持9位数据。

8 参考链接

UART协议讲解

UART协议

电路设计中7个常用的接口类型

一目了然!串口、232、485的区别,你学废了吗?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值