0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

串口USART的分析

汽车电子技术 来源:嵌入式之入坑笔记 作者:嵌入式之入坑笔记 2023-02-10 10:51 次阅读

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、GD32STM32 的 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的通信时间会加长一点。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 收发器
    +关注

    关注

    10

    文章

    2968

    浏览量

    104776
  • 通信设备
    +关注

    关注

    3

    文章

    287

    浏览量

    31758
  • 嵌入式开发
    +关注

    关注

    18

    文章

    977

    浏览量

    46958
  • USART
    +关注

    关注

    1

    文章

    186

    浏览量

    30413
收藏 人收藏

    评论

    相关推荐

    怎样去分析USART串口配置的相关代码呢

    USART是指什么?怎样去分析USART串口配置的相关代码呢?
    发表于 12-06 07:30

    USART串口通信

    printf函数到串口,使用中断方式接收数据,使用USART1,USB TO UART接口。 3-USART1接发 演示使用缓冲区接收数据,并对数据进行简单的命令分析,使用
    发表于 12-12 19:17 8次下载
    <b class='flag-5'>USART</b>—<b class='flag-5'>串口</b>通信

    STM32的USART串口通讯程序

    STM32的USART串口通讯程序一、了解串口通信及准备工作1.串口通信简介2.STM32 的 USART 简介二、
    发表于 11-18 18:51 10次下载
    STM32的<b class='flag-5'>USART</b><b class='flag-5'>串口</b>通讯程序

    STM32笔记之USART串口通信

    关于STM32学习分享第五章 USART串口通信文章目录关于STM32学习分享前言二、代码1.usart.c2.usart.h3.stm32f10x_it.c4.main.c总结前言开始!开始
    发表于 11-21 18:21 13次下载
    STM32笔记之<b class='flag-5'>USART</b><b class='flag-5'>串口</b>通信

    【STM32F4】五、串口通信2——软件部分(以USART为例)

    目录一、什么是USART1. USART简介2. STM32F4中的USART2.1 USART的发送/接收引脚2.2 USART转为USB
    发表于 11-26 12:36 9次下载
    【STM32F4】五、<b class='flag-5'>串口</b>通信2——软件部分(以<b class='flag-5'>USART</b>为例)

    STM32CubeMX完成USART串口通信

    STM32CubeMX完成USART串口通信
    发表于 12-06 20:36 24次下载
    STM32CubeMX完成<b class='flag-5'>USART</b><b class='flag-5'>串口</b>通信

    完成STM32的USART串口通讯程序

    机(win10)连续发送“hello windows!”。win10采用“串口助手”工具接收。4)使用Keil的软件仿真逻辑分析仪功能观察串口输出波形。USART介绍通用同步异步收发器
    发表于 12-07 11:06 10次下载
    完成STM32的<b class='flag-5'>USART</b><b class='flag-5'>串口</b>通讯程序

    16 . USART 串口通信实验

    USART 串口通信实验我们知道STM32F1 内部含有非常多的通信接口,我们就来学习下USART 串口通信。要实现的功能是:STM32F1 通过U
    发表于 12-20 19:22 20次下载
    16 . <b class='flag-5'>USART</b> <b class='flag-5'>串口</b>通信实验

    STM32下的USART串口通信程序

    STM32的USART串口通信实践
    发表于 12-24 18:42 12次下载
    STM32下的<b class='flag-5'>USART</b><b class='flag-5'>串口</b>通信程序

    STM32的USART串口通讯程序

    STM32的USART串口通讯程序一、了解串口通信及准备工作1.串口通信简介2.STM32 的 USART 简介二、
    发表于 12-24 18:44 12次下载
    STM32的<b class='flag-5'>USART</b><b class='flag-5'>串口</b>通讯程序

    STM32与串口Usart)的通俗介绍与使用(例子:串口控制小灯)

    STM32与串口Usart)的通俗介绍与使用(例子:串口控制小灯)一、说明写本文目的是从 对串口知识了解不清或刚接触的朋友 的角度出发,帮助此类朋友了解掌握
    发表于 12-24 18:52 5次下载
    STM32与<b class='flag-5'>串口</b>(<b class='flag-5'>Usart</b>)的通俗介绍与使用(例子:<b class='flag-5'>串口</b>控制小灯)

    USART的使用

    USART1_Init(115200); //串口初始化(参数是波特率)/* 发送方法1 */ USART_SendData(USART1 , 0x55); //发送单个数值 whil
    发表于 12-28 19:00 10次下载
    <b class='flag-5'>USART</b>的使用

    使用STM32G4 ----串口发送数据USART_TX的使用

    一.引脚的配置串口对应的引脚PA10 ---------- USART1_RX 串口一接收引脚 用于接收数据PA9 ---------- USART1_TX
    发表于 12-28 19:24 12次下载
    使用STM32G4 ----<b class='flag-5'>串口</b>发送数据<b class='flag-5'>USART</b>_TX的使用

    【STM32学习】(6)串口1的使用(USART1)

    单片机串口是必须要学习的,而且很重要,在数据传输已经程序调试中都很重要。本博客先学习一下USART1 串口其实串口不是每一个IO都可作为串口
    发表于 12-28 19:27 10次下载
    【STM32学习】(6)<b class='flag-5'>串口</b>1的使用(<b class='flag-5'>USART</b>1)

    USART串口通信总结

    第五章usart串口通信USART:(UniversalSynchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行接收/发送器USART
    发表于 01-14 10:31 7次下载
    <b class='flag-5'>USART</b><b class='flag-5'>串口</b>通信总结