电路笔记(通信):UART Universal Asynchronous Receiver/Transmitter+电缆信号完整性改善

UART协议概述

  • URAT(Universal Asynchronous Receiver/Transmitter)协议用于在两个设备之间进行数据传输。UART协议因其简单性和广泛应用而成为串行通信的一个基本选择,适合各种数据传输需求的应用。
异步传输
  • 定义: UART是一种异步串行通信协议,这意味着数据在传输过程中不依赖于时钟信号,而是通过约定的波特率(baud rate)来同步数据传输。
  • 定义: 波特率是指每秒传输的比特数。常见的波特率有9600、19200、38400、115200等等。
数据帧结构
  • 帧格式: UART数据传输是以数据帧为单位的。一个典型的数据帧包括以下几个部分:
1 Bits 5-9 Bits 0-1 Bits 1-2Bits(还有0.5、1.5)
起始位 数据位 奇偶校验位 停止位
  • 起始位(Start Bit): 一个低电平信号,用于表示数据传输的开始。
  • 数据位(Data Bits): 实际传输的数据,通常为5到9位。
  • 奇偶校验位(Parity Bit): 可选的位,用于错误检测。可以是偶校验、奇校验或无校验。
  • 停止位(Stop Bit): 一个或多个高电平信号,用于标识数据传输的结束。
  • 示例: 如果数据位为8位、没有奇偶校验位,且使用1个停止位,则一个完整的数据帧会包括:1个起始位 + 8个数据位 + 1个停止位。

Layer 1 数据帧 位4 位5 位6 位1 位2 位3 位0 位7 启动位 停止位 位1 位2 位0 启动位 位5 位6 位7 停止位

  • UART中不同校验方法(其中奇偶校验可通过异或实现):
校验方法 描述 校验位数量 用途
NONE 不使用任何校验位 0 数据传输不进行错误检查
EVEN 校验位使数据的1位总数为偶数 1 检测偶数个错误位
ODD 校验位使数据的1位总数为奇数 1 检测奇数个错误位
SPACE 校验位始终为0 1 主要用于某些特定的通信协议
MARK 校验位始终为1 1 主要用于某些特定的通信协议
通信流程
  • 发送: 发送方将数据帧按照上述格式发送到接收方。每个数据位是串行传输的,意味着一位接一位地传输。

  • 接收: 接收方接收数据帧并解析数据位。起始位和停止位帮助接收方确定数据的边界和正确性。

  • UART连接示意图

    • 下面是一个简化的图示,展示了两个MCU通过UART进行通讯的连接方式

      复制代码
        +-------------------+                  +-------------------+
        |      MCU1         |                  |      MCU2         |
        |                   |                  |                   |
        |                   TX  ------------> RX                   |  
        |                   RX  <------------ TX                   |  
        |                   GND ------------- GND                  |  
        |                   |                  |                   |
        +-------------------+                  +-------------------+
优缺点
  • 优点:

    • 简单: UART协议实现简单,易于理解和使用。
    • 无需额外时钟线: 通过波特率匹配进行同步,不需要额外的时钟信号线。
    • 广泛支持: 许多设备和微控制器都支持UART。
  • 缺点:

    • 同步问题: 由于没有共享的时钟信号,波特率不匹配可能导致数据传输错误。
    • 距离限制: UART适用于短距离通信,长距离传输可能需要额外的信号增强或转换器。
    • 无内建错误校正: UART协议本身不提供数据校正功能(虽然奇偶校验可以提供基本的错误检测)。
同步和流控
  • 尽管异步串口通信不依赖于时钟信号来同步数据传输,但在实际应用中,常用一些流控机制来避免数据丢失或接收溢出。例如:
  • 软件流控 (XON/XOFF):通过发送特定的控制字符来暂停或恢复数据传输。
  • 硬件流控 (RTS/CTS):使用额外的信号线来控制数据流。

常见UART实现方式

Layer 1 起始位 数据位 终止位 RS232 RS485 TTL

TTL Serial

  • TTL Serial 是基于逻辑电平的串口通信协议。它使用0V(逻辑低,0v-0.4v)和+5V(或+3.3V,2.4v-5v)表示数据的0和1,通常用于嵌入式系统和微控制器的串行通信。
  • 使用 TTL 电平的串行通信通常成本较低。许多微控制器和外围设备支持 TTL Serial。
  • TTL 电平信号适用于短距离通信,长距离传输可能需要转换。正常情况下,通讯距离:TTL < RS232 < 485。

RS-232

RS-485

改善信号的完整性

均衡:

  • 均衡是对信号进行调整,以补偿电缆引入的失真。电缆会导致频率依赖性损耗,即高频信号比低频信号衰减得更多。均衡通过在特定频率上增加增益来补偿这些损失,从而使整个信号的频率响应尽可能平坦。
  • 固定均衡(Fixed Equalization): 使用预定义的设置根据已知的电缆特性调整频率增益。
  • 自适应均衡(Adaptive Equalization): 实时动态调整均衡设置,以应对电缆条件和信号失真的变化,从而补偿不同的失真情况。

预失真:(Pre-Distortion,或称为强调)

  • 预失真是在信号传输之前对信号进行修改,以抵消电缆失真带来的影响。预失真的主要形式有两种:

  • 预加重(Pre-Emphasis): 在信号传输前增加高频信号的增益。由于高频信号在电缆中衰减更多,增加高频的幅度可以确保这些频率在接收时有合适的水平。

  • 去加重(De-Emphasis):减少低频信号的幅度。接收端设计为应用均衡滤波器来补偿低频损失时,通常使用此方法。

相关推荐
DKPT1 小时前
Java设计模式之行为型模式(责任链模式)介绍与说明
java·笔记·学习·观察者模式·设计模式
崔高杰1 小时前
微调性能赶不上提示工程怎么办?Can Gradient Descent Simulate Prompting?——论文阅读笔记
论文阅读·人工智能·笔记·语言模型
KhalilRuan2 小时前
Unity Demo——3D平台跳跃游戏笔记
笔记·游戏·unity·游戏引擎
IPdodo全球网络服务2 小时前
什么是IP关联?跨境卖家如何有效避免IP关联?
网络·网络协议·tcp/ip
南棱笑笑生2 小时前
20250711荣品RD-RK3588开发板在Android13下的开机自启动的配置步骤
网络
MUTA️3 小时前
《MAE: Masked Autoencoders Are Scalable Vision Learners》论文精读笔记
人工智能·笔记·深度学习·transformer
知北游天4 小时前
Linux:多线程---同步&&生产者消费者模型
java·linux·网络
EasyCVR4 小时前
EasyCVR视频汇聚平台国标接入设备TCP主动播放失败排查指南
网络·tcp/ip·音视频
使一颗心免于哀伤4 小时前
《设计模式之禅》笔记摘录 - 6.原型模式
笔记·设计模式
刘孬孬沉迷学习4 小时前
5G标准学习笔记15 --CSI-RS测量
网络·笔记·学习·5g·信息与通信·信号处理