登录/注册

uart串口通信协议

更多

好的,我们来用中文详细解释一下 UART (Universal Asynchronous Receiver/Transmitter) 串口通信协议

核心概念:它是一种常用的、简单的、低成本的、异步的串行通信协议。

可以把它拆解开来理解:

  1. 串行 (Serial):

    • 数据是一位一位(比特,bit)地进行传输的。
    • 只需要两根信号线(通常):一根用于发送数据 (Tx - Transmit),一根用于接收数据 (Rx - Receive)。(如果包含硬件流控,会有额外的 RTS/CTS 线)。
    • 相对于并行通信(同时传输多个位,需要更多线),串行通信节省了硬件资源和布线复杂度,尤其适合远距离或资源受限的场合(如单片机)。
  2. 异步 (Asynchronous):

    • 这是 UART 最关键的特性之一。
    • 通信双方(发送方和接收方)没有共享的时钟信号(不像 SPI 或 I2C 有专门的时钟线 SCLK)。
    • 双方需要各自独立设置并约定好一个相同的通信速率,这个速率称为波特率 (Baud Rate)(单位:bps,每秒传输的比特数,例如 9600bps, 115200bps)。接收方依靠这个预定义的波特率和数据帧格式来同步并正确地采样每一位数据。
    • 数据传输是离散的、不定时的数据包(帧),而不是连续不断的比特流。帧之间有空闲状态 (Idle State) 分隔。
  3. 通信方式:全双工 (Full Duplex)

    • 发送 (Tx) 和接收 (Rx) 使用独立的线路。
    • 通信双方可以同时发送数据和接收数据(只要它们各自的收发引脚连接正确)。
  4. 数据帧格式 (Frame Structure): UART 传输的数据被打包成一个个标准的“数据帧”。一个典型的 UART 帧包含以下部分(按传输顺序):

    • 起始位 (Start Bit)
      • 1 位,逻辑低电平 (0)
      • 标志着一个数据帧的开始,通知接收方“后面要开始传数据了”。
    • 数据位 (Data Bits)
      • 通常是 5, 6, 7 或 8 位(最常见的是 8 位)。
      • 包含实际要传输的数据内容。
      • 传输顺序是从最低有效位 (LSB - Least Significant Bit) 开始。
    • 校验位 (Parity Bit)
      • 可选1 位(或无)。
      • 用于简单的错误检测(奇偶校验)。
      • 奇校验 (Odd Parity):数据位 + 校验位中 1 的总个数为奇数。
      • 偶校验 (Even Parity):数据位 + 校验位中 1 的总个数为偶数。
      • 无校验 (None):不传输校验位。(最常见)。
    • 停止位 (Stop Bit(s))
      • 1 位、1.5 位 或 2 位(最常见的是 1 位)。
      • 逻辑高电平 (1)
      • 标志着一个数据帧的结束。
      • 确保接收方有足够时间处理当前帧并为接收下一帧做准备,同时将线路拉回空闲状态(高电平)。

    帧示例 (8-N-1): 最常见配置:8位数据,无校验,1位停止位。

    空闲态(高) -> 起始位(低) -> D0(LSB) -> D1 -> D2 -> D3 -> D4 -> D5 -> D6 -> D7(MSB) -> 停止位(高) -> ...下一帧或空闲...
  5. 关键参数配置: 通信双方必须严格一致地配置以下参数才能成功通信:

    • 波特率 (Baud Rate):决定每秒传输多少位(包括起始位、数据位、校验位、停止位)。常见值:1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 等。必须完全相同!
    • 数据位 (Data Bits):5, 6, 7, 8。必须相同!
    • 校验位 (Parity):无 (None),奇 (Odd),偶 (Even)。必须相同!
    • 停止位 (Stop Bits):1, 1.5, 2。必须相同!
  6. 电平标准:

    • 原始 UART 协议本身只定义了逻辑电平(0 和 1)以及帧格式。
    • 实际应用中,这些逻辑 01 需要转换成物理电压电平才能在导线中传输:
      • TTL/CMOS UART (最常见于单片机、模块间通信):
        • 逻辑 0:接近 0V (如 0V - 0.8V)。
        • 逻辑 1:接近芯片供电电压 Vcc (如 3.3V, 5V)。
        • 特点: 电压低(易受干扰),传输距离短(通常 < 1米),接口电平与芯片供电相关。
      • RS-232 (经典串口 / COM口):
        • 逻辑 0+3V ~ +15V(称为 SpaceON)。
        • 逻辑 1-3V ~ -15V(称为 MarkOFF)。
        • 特点: 电压高(抗干扰能力强),传输距离较长(几十米),需要专门的 RS-232 电平转换芯片(如 MAX232)。
      • RS-422 / RS-485:
        • 使用差分信号(两条线传输互补信号)。
        • 抗干扰能力极强,传输距离远(可达千米),支持总线拓扑(多设备)。常用于工业环境。也需要专门的转换芯片。
  7. 优点:

    • 简单: 协议简单,易于理解和实现。
    • 低成本: 硬件电路简单,资源占用少(尤其软件模拟 UART)。
    • 通用: 应用极其广泛,是微控制器、模块(蓝牙/WiFi/GPS)、传感器、调试接口(Console)的标配。
    • 全双工: 可同时收发。
  8. 缺点:

    • 没有时钟同步: 依赖精确的波特率匹配,时钟偏差会导致采样错误。
    • 没有寻址机制: 点对点通信(两个设备间)。
    • 没有冲突检测: 多点通信(如 RS-485)需要软件层面处理冲突。
    • 没有硬件错误纠正: 仅依赖可选的低效奇偶校验(或无校验)。
    • 距离/速率限制: 原始 TTL UART 距离短;高波特率下长距离传输不稳定(容易出错)。
    • 帧格式固定开销: 起始位、停止位增加了冗余(例如 8-N-1 帧中,10 位传输中只有 8 位是有效数据,开销 20%)。
  9. 典型应用场景:

    • 微控制器 (MCU) 与电脑通信(通过 USB-TTL 转换器)。
    • 微控制器 (MCU) 与蓝牙/WiFi/GPS/GPRS/GSM 模块通信。
    • 微控制器 (MCU) 与各种传感器、显示器(如早期 LCD)通信。
    • 设备调试信息输出(Console)。
    • 老旧的计算机外设(通过 RS-232 COM 口)。
    • 工业控制系统现场设备通信(通过 RS-422/RS-485)。

总结:

UART 是一种串行、异步、基于预定义帧格式(起始位+数据位+校验位+停止位) 的通信协议。它只需要两根数据线(Tx, Rx),实现简单且成本低,是嵌入式系统和设备间通信的基石。成功通信的关键在于通信双方必须严格一致地配置波特率、数据位长度、校验方式和停止位长度。实际传输时需要根据应用场景选择合适的电平标准(TTL, RS-232, RS-485 等)。

你可以把它想象成两个人用摩尔斯电码(约定好的波特率代表敲击速度)在一条线上轮流说话(全双工),每句话以一个特定的“开始敲击”(起始位)开头,以一个特定的“结束敲击”(停止位)结束,并且双方都要知道一句话有几个字母(数据位),以及要不要检查一下字母有没有敲错(校验位)。

常见串口通信协议 如何设置串口参数

串口通信是一种常见的通信方式,广泛应用于计算机、嵌入式系统和各种电子设备之间。串口

2024-12-27 09:51:55

串口通信协议解析 串口通信应用实例

串口通信协议解析 串口通信协议是指规定了数据包的内容,内容包含了起始位、

2024-11-21 17:03:24

简单认识UART通信协议

UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)通信协议是一种常见的串行通信协议

2024-07-25 18:07:32

基于STM32之UART串口通信协议(一)详解

开发板来举例讲解(其他STM32系列芯片大多数都可以按照这些步骤来操作的),如有不足请多多指教。2、UART简介  嵌入式开发中,UART串口

资料下载 李艳 2021-11-30 14:36:06

单片机:Modbus 通信协议介绍

文章目录Modbus 通信协议介绍Modbus 协议特点RTU 协议帧数据Modbus

资料下载 佚名 2021-11-13 20:51:05

通信协议及接口技术汇总综述

通信协议及接口技术汇总综述

资料下载 佚名 2021-06-16 10:31:31

STM32的几种串口通信协议资料下载

电子发烧友网为你提供STM32的几种串口通信协议资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。

资料下载 佚名 2021-04-21 08:46:28

STM8学习之在串口通信中定义通信协议

STM8学习之在串口通信中定义通信协议

资料下载 佚名 2021-03-16 15:39:05

简单认识UART串行通信协议

在电子通信领域,UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)是一种非常常见的串行通信

2024-05-27 16:09:53

UART串口通信协议是什么?

UART (Universal Asynchronous Receiver/Transmitter) 是一种通信接口协议,用于实现

2024-03-19 17:26:10

讨论使用UART通信协议的基本原则

UART,即通用异步接收器/发送器,是最常用的设备间通信协议之一,正确配置后,UART可以配合许多不同类型的涉及发送和接收串行数据的串行

2023-02-01 17:54:37

串口通信协议的相关资料分享

目录一、串口通信协议1、UART简介2、 UART

2022-02-22 07:16:22

UART通信协议的相关资料推荐

开发板来举例讲解(其他STM32系列芯片大多数都可以按照这些步骤来操作的),如有不足请多多指教。2、UART简介  嵌入式开发中,UART串口

2022-01-25 06:40:09

UART串口通信协议的相关资料分享

#今天也是咸鱼的一天~UART是一个很基础的串口通信协议,有人打趣说只要有单片机的地方,就一定有

2022-01-18 09:42:42

通用异步收发传输器UART串口通信协议有哪些特性呢

什么是通用异步收发传输器UART呢?通用异步收发传输器UART串口通信协议

2021-11-01 07:03:10
7天热门专题 换一换
相关标签