【STM32】串口通信基础知识

通信基础知识

  • 串行与并行
    根据数据传输的方式,通信可分为串行通信与并行通信

    串行通信:一次只能传输一个数据位的数据,如同单车道的公路

    并行通信:一次可以传输多个数据位的数据,如同多车道的公路

在这里插入图片描述 特性对比

在这里插入图片描述

  • 传输方向
    根据串行通信数据传输的方向,可将串行通信方式分为:单工、半双工、全双工

    单工:数据传输仅能沿着一个方向,不能反向传输

    半双工:数据传输可以沿着两个方向,但不能同时发送,即发送与接收是有先后顺序的

    全双工:数据传输可以沿着两个方向,且可以同时发送

    半双工双方共用一条线路实现双向通信,而全双工利用两条线路,一条发数据、一条收数据。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 同步与异步
    同步通信:收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调、同步数据,通信中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样

    异步通信:不使用时钟信号进行数据同步,直接在数据信号中穿插一些同步用的信号位,或者把主体数据打包,以数据帧的格式传输数据。需要双方约定数据的传输速率(波特率),以便更好地同步。

    数据同步就是双方需要知道什么时候开始发数据了、什么时候数据发送结束了,否则会接收到无效数据。
    在这里插入图片描述

串口通信

USART Universal Synchronous Asynchronous Receiver Transmitter 通用同步异步收发器,可以灵活地与外部设备进行全双工数据交换。UART与USART的区别是它只有异步通信,没有同步通信。

USART是STM32上基于串口协议来实现与外部通信的一个外设,因为串口通信协议简单、便捷,所以大多数产品中都支持串口通信,通过串口通信可以实现PC与STM32的交互,在调试与开发中有非常重要的作用。

串口通讯就是一种常用的串行通讯方式

串口通讯可分层为物理层和协议层。物理层规定通信协议中具有机械、电子功能的特性,确保原始数据在物理媒介的传播;协议层规定通讯逻辑,统一数据打包、解包标准。

  • 物理层
    串口通讯物理层主要标准是RS-232,其规定了信号的用途、通讯接口及信号的电平标准,通讯结构如下
    在这里插入图片描述
    DB9接口
    在这里插入图片描述
    不同标准的电平
    在这里插入图片描述
    控制器用TTL电平,如果要用其它标准进行控制器间的通信,需要接电平转换芯片,将TTL电平转换为其它标准电平。

    TTL电平传输距离较短,一般通讯距离大于40cm时传输数据就会受到干扰。

  • 协议层
    协议层中规定了数据包的内容,由起始位、主体数据、校验位以及停止位组成,通信双方的数据包格式要约定一致才能正常收发数据

  1. 波特率
    波特率是每秒传输的码元个数。由于异步通信中没有时钟信号,所以接收双方要约定好波特率。常见的波特率有4800、9600、115200等
  2. 起始和停止信号
    数据包的首尾是分别是起始位和停止位,起始信号由一个逻辑0的数据位表示,停止位可由0.5、1、1.5、2个逻辑1的数据位表示,双方需约定一致
  3. 有效数据
    有效数据规定了主体数据的长度,一般为8或9位
  4. 数据校验
    在有效数据之后,有一个可选的数据校验位。由于数据通信容易受到外部干扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。校验方法有奇校验(odd)、偶校验(even)、0校验(space)、1校验(mark)以及无(noparity)。
  • 功能引脚
    TX:发送数据输出引脚。

    RX:接收数据输入引脚。

    SW_RX:数据接收引脚,只用于单线和智能卡模式,属于内部引脚,没有具体外部引脚。

    nRTS:请求以发送(Request To Send),n 表示低电平有效。如果使能 RTS 流控制,当USART接收器准备好接收新数据时就会将 nRTS 变成低电平;当接收寄存器已满时, nRTS 将被设置为高电平。该引脚只适用于硬件流控制。

    nCTS:清除以发送(Clear To Send),n 表示低电平有效。如果使能 CTS 流控制,发送器在发送下一帧数据之前会检测 nCTS 引脚,如果为低电平,表示可以发送数据,如果为高电平则在发送完当前数据帧之后停止发送。该引脚只适用于硬件流控制。

    SCLK:发送器时钟输出引脚。这个引脚仅适用于同步模式。

    在这里插入图片描述

    USART有五个引脚;UART只有异步通信,只有两个引脚。

    串口引脚接法: TX接RX,RX接TX

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

RobotFreak

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

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

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

打赏作者

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

抵扣说明:

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

余额充值