左左右学堂 · 课程目录

第47期 什么是USART串口通信(上)

观看B站原视频 · 文稿与高清画面

Hello,小伙伴们,大家好。这里是左左右。好久不见。这期视频我们来聊一聊什么是 USART 串口通信协议。那么什么是通信协议呢?这就好比两个人打电话,一个人说英语,一个人说汉语,互相都听不懂对方在说什么。而“通信协议”就是电子元器件之间沟通的“语言”,只有使用相同的通信协议,电子元器件之间才能实现有效的数据传输。

那么,什么又是串口通信呢?串口的全称是”串行通信接口”,与“串口”相对应的就是“并口”,全称为“并行通信接口”。这里我们假设要将一个字节的数据由单片机A发送到单片机B,在使用并行通信接口时,8个bit的数据一下子就传送完了,而在串行通信模式下,8个bit的数据需要一个bit一个bit的传送,这时串口和并口的优缺点一下子就看明白了,并口的优点是传送速度快,缺点是占用引脚多,而且由于多根数据线紧挨在一起,容易产生串扰,且每一位到达时间不完全一致(信号歪斜),距离越长问题越严重。

视频画面 00:50.7
视频画面 00:50.7 · 1080P 原图 · 查看对应视频

所以并口的传输距离很短,所以并口通信距离通常不超过两三米。串口的优点是:引脚占用少,线少,彼此间干扰小,可以加屏蔽和差分驱动(RS-232、RS-485),轻松传输几十米到上千米。唯一的缺点就是相对于“并行”速度较慢,但是串行已经可以满足我们大多数设计需求了,在这里大家有没有这样一个疑问?

视频画面 01:16.5
视频画面 01:16.5 · 1080P 原图 · 查看对应视频

这里的0和1是如何从单片机A发送到单片机B的?我们都知道IO口是可以输出高低电平的,单片机A将0转换为低电平发送到单片机B,单片机B将接收到的低电平信号转换为0,这样就实现了数据的传输。同理,1就是高电平。为了保证数据传输的准确,就要保证发送和接收保持相同的节奏,也就是说,单片机A发送一次数据,单片机B接收一次数据。

这里假设单片机A发送一次数据,而单片机B接收两次数据,这时接收到的数据就会变成这样,也就是多收到数据了。同理假设单片机A发送两次数据,单片机B接收一次数据,这时接收到的数据就会变成这样,也就是漏收到数据了。所以保证发送和接收保持相同的节奏是非常重要的。这里的节奏有个专业名词就是波特率,它指的是每秒信号状态变化的次数,单位是波特(Baud),常用的波特率有9600、115200等等。

视频画面 02:33.8
视频画面 02:33.8 · 1080P 原图 · 查看对应视频

USART串口通信协议的全称是Universal Synchronous Asynchronous Receiver Transmitter‌,中文译作通用同步/异步收发器。这里一定要能区分S和A分别代表什么意思。这里的S,也就是Synchronous,中文译作“同步”。这里的A,也就是Asynchronous,中文译作“异步”。

视频画面 02:59.6
视频画面 02:59.6 · 1080P 原图 · 查看对应视频

如果实在记不住看到S就要想到same这个单词,也就是“相同”的意思。

这样就记住了S代表同步,A代表异步了。USART 支持的模式包括:UART异步全双工 、同步模式、单线半双工、多处理器通信、IrDA SIR ENDEC、LIN 模式、智能卡模式、硬件流控制。其中UART异步全双工模式占 90% 以上的应用场景,也是我们接下来主要讲的一种模式。异步 + 硬件流控制的模式是在数据量较大时、需要可靠传输时(比如连接 4G 模块、高速 WiFi 模组),会启用 RTS/CTS 硬件流控。

它可以自动暂停对方发送,防止接收缓冲区溢出。本质上还是异步模式,只是增加了两个硬件握手引脚。多处理器模式(一主多从常用)在 RS-485 多机通信 中非常经典,至于其他模式,使用频率不高,大家先做了解就好。

视频画面 04:04.1
视频画面 04:04.1 · 1080P 原图 · 查看对应视频

其实,在之前的视频里,为了帮助大家快速上手串口屏,我们已经讲过 USART 串口通信的一些基础内容。如果这期视频听起来有不太明白的地方,欢迎回去翻一翻之前那几期。好了,今天的视频就到这里。一定要关注、点赞、收藏、评论,你们的支持是我这样的小博主持续更新下去的最大动力。期待下期视频再见。