串口USART的分析以及GD32和STM32的USART的差异

1、什么是串口?

USART是全双工通用同步/异步收发器,是一种串行的通信设备。在嵌入式开发设计中经常被使用到,广泛的被应用于主机与外围设备的通信交互中,应用相当的广泛。

1.1、串口中的 UART 和 USART有什么不同?

UART:指的是通用异步收发器;
USART:指的是通用同步和异步收发器。
当只使用异步通信功能时,这两者是没有区别的,区别在于USART比UART多了同步(时钟)通信功能。

2、通信方式有哪些?

2.1、并行通信

并行通信指的是数据同时在多根数据线上进行发送或者接收。如下所示:
在这里插入图片描述
并行通信的优点:控制方式简单,传输速度快,适用于距离比较近的传输。
并行通信的缺点:占用的数据线较多,对MCU资源少的单片机而言不是很友好,线路布局变复杂。

2.2、串行通信

串行通信指的是数据在同一根数据线上依次按位(bit)进行发送或者接收。如下图所示:
在这里插入图片描述
串行通信方式的优点:占用数据线少,适合用于远距离传输,系统布线简单;
串行通信方式的缺点:控制方式复杂,传输速度较并行通信的方式要慢。

3、串行通信方式中的两种方式

3.1、同步串行通信方式

同步通信的方式是发送方和接收方都必须采用同一个时钟,收发双方利用时钟信号来确定每个信号位。如下图所示:
在这里插入图片描述
这种方式把多个字符组成一个信息帧,每帧的开头用同步字符来指示,是一种连续传送数据的通信方式。即使在传输中没有信息需要传输时,因为同步传输不允许中间有空隙,所以也要填上空字符。如下图所示:
在这里插入图片描述

3.2、异步串行通行方式

异步串行通信方式是指通信的双方使用各自的时钟,以一个字符作为数据传输单元并且发送方发送字符的时间间隔不一定,是一种不规则数据段传送的通信方式。如下图所示:
在这里插入图片描述

4、串行通信方式的传送方向

根据串行数据的传输方向,可以将通信分为单工、半双工、全双工。
1)单工:是指数据传输仅能沿一个方向,不能实现反向传输。
2)半双工:是指数据传输可以沿两个方向,但需要分时进行传输。
3)全双工:是指数据可以同时进行双向传输。
在这里插入图片描述

5、常用到的 USART 通信方式

在嵌入式中最常使用到的就是异步全双工的USART通信方式,收发两方各自使用自身的时钟,收发可以相互独立的进行。数据传输的示意图如下:
在这里插入图片描述
异步串行通信是将一个字节数据加上起始位、校验位、停止位,构成的字符帧。由于异步通信没有同步时钟,所以接收端要时刻处于接收状态。
**起始位:**在没有数据需要传送时,此时通信线上为逻辑“1”状态。当发送端要发送一个字符时,首先发送一个逻辑“0”信号,即起始位,告诉接收端要开始发送一帧数据了。接收端检测到这个低电平时,就开始准备接收数据信息了。
**数据位:**在起始位发送完毕之后,发送端发出的就是数据位了,数据位一般是没有严格的规定的,5~9位都可以。一般是低位先发,高位后发,按位依次进行传输。平时使用中一般都是选择8bit的。
**校验位:**数据位发送完成之后,为了检验数据在传输过程中是否有出错,可以选择发送一个位进行校验。使用的是奇偶校验,当然也可以选择不进行检验。
**波特率:**是指数据传输的速率。表示每秒钟传送的bit位数。比如,一秒钟传送了120个字符,每个字符传送10个bit(1个起始位 + 8个数据位 + 1个停止位),那么:波特率 = 10x120 = 1200 (bit/s)。平常使用中常用的波特率有9600、115200、19200、25600等。

6、GD32 与 STM32 的 USART 的差异

6.1、USART编号上的差异

通过对比GD32和STM32同样内核已经同样引脚数的MCU手册可以知道,两者是有区别的。如下图:
在这里插入图片描述

6.2、通信协议上的细微差异

GD在连续发送数据的时候每两个字节之间会有一个Bit的Idle,而STM32没有,如下图为GD的发送波形:
在这里插入图片描述
GD的串口在发送的时候停止位只有1/2两种停止位模式。STM32有0.5/1/1.5/2四种停止位模式。
GD 和STM32 USART的这两个差异对通信基本没有影响,只是GD的通信时间会加长一点。

结语

其实串口是一种比较简单的通信设备了,在嵌入式开发设计中使用的相当多,比如:交互调试命令行、信息打印输出、在线升级、和外围设备通信等等的。使用都大同小异吧,没什么很复杂的计数难点,用起来也稳定。

大家可以关注我的微信公众号**“嵌入式之入坑笔记”**哦,不定期分享嵌入式的开发心得和技术。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式之入坑笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值