在 UART 通信中,错误检测是保证数据可靠性的关键环节。以下是常见的错误检测方法,涵盖硬件机制、软件扩展及系统设计策略:

一、UART 硬件内置的错误检测机制

UART 控制器通常集成基础错误检测功能,可在数据接收时实时监测以下错误:

1. 奇偶校验错误(Parity Error)
  • 原理:发送端在数据位后添加 1 位奇偶校验位(奇校验 / 偶校验),接收端根据数据位计算校验位并与接收的校验位对比。
  • 检测方式:若计算值与接收值不一致,触发奇偶校验错误标志(如 UART 的 PE 标志)。
  • 局限性:仅能检测奇数个比特错误,无法检测偶数个错误或突发错误。
2. 帧错误(Frame Error)
  • 原理:接收端在数据位之后未检测到预期的停止位(逻辑 1),认为帧格式错误。
  • 检测方式:接收完数据位后,若采样到停止位为 0(或非约定电平),触发帧错误标志(FE)。
  • 常见原因:波特率不匹配、信号干扰、数据位 / 停止位配置错误。
3. 溢出错误(Overrun Error)
  • 原理:接收缓冲区(如 FIFO)已满,新数据到达时未及时读取,导致数据丢失。
  • 检测方式:接收控制器检测到新数据覆盖未读取的旧数据时,触发溢出错误标志(OE)。
  • 解决:通过中断或 DMA 及时读取数据,避免缓冲区溢出。

二、软件扩展的错误检测方法

硬件机制之外,可通过软件协议层设计增强错误检测能力:

1. 校验和(Checksum)或 CRC(循环冗余校验)
  • 校验和:发送端计算数据字节的累加和(或异或和),接收端重新计算并对比。
    • 例:发送数据帧为 [起始符][数据1][数据2]...[数据n][校验和],接收端验证校验和是否匹配。
  • CRC 校验:采用多项式算法生成校验码(如 CRC-8、CRC-16),检测能力强于简单校验和,可识别突发错误。
  • 优势:能检测多比特错误,适用于噪声较大的环境。
2. 超时检测(Timeout)
  • 原理:设定接收数据的时间间隔阈值(如字符间超时、帧间超时)。
  • 应用场景
    • 字符间超时:若接收完一个字符后,超过波特率对应的位周期未收到下一个字符,判定通信中断。
    • 帧间超时:检测到起始位后,若未在规定时间内接收完整帧,触发错误。
  • 实现:通过定时器或实时系统(RTOS)的延时函数实现。
3. 数据帧结构校验
  • 帧同步标志:在数据帧中添加固定起始符(如 0x55)和结束符(如 0xAA),接收端验证帧边界是否正确。
  • 长度校验:发送端包含数据长度字段,接收端检查实际接收字节数是否与长度字段一致。
  • 状态字校验:在协议中定义合法的控制字或命令字,过滤非法数据。

三、物理层与硬件设计优化

错误检测需结合物理层设计减少错误发生概率:

1. 信号质量优化
  • 差分传输:使用 RS-485 等差分接口替代单端信号(如 UART-TTL),抑制共模噪声(适用于长距离通信)。
  • 阻抗匹配:传输线阻抗匹配(如终端电阻),减少信号反射。
  • 滤波与隔离:添加 RC 滤波电路、磁珠抑制高频噪声,或使用光耦隔离收发端,避免地环路干扰。
2. 波特率匹配
  • 确保收发双方波特率一致(误差需小于 5%),可通过硬件晶振校准或软件自适应波特率检测(如自动波特率协商)。

四、错误处理与恢复策略

检测到错误后需采取恢复措施,避免通信中断:

1. 错误标志捕获
  • 实时读取 UART 控制器的错误标志(PE/FE/OE),通过中断或轮询方式触发错误处理函数。
2. 重传机制
  • 接收端发现错误(如校验和失败)时,发送 NACK(否定应答),请求发送端重传数据帧。
  • 结合超时机制,若多次重传失败,判定通信链路故障并触发复位。
3. 冗余数据传输
  • 对关键数据重复发送(如连续发送两次相同帧),接收端对比两次接收结果是否一致。

五、典型应用示例

以嵌入式系统为例,错误检测流程可设计为:

  1. 接收数据时,先检测硬件错误标志(PE/FE/OE),若触发则丢弃当前字符。
  2. 组装完整数据帧后,验证帧同步标志和长度字段。
  3. 计算校验和或 CRC,与帧中校验字段对比。
  4. 若所有检测通过,处理数据;否则,发送重传请求或记录错误日志。

总结

UART 错误检测需结合硬件底层机制(奇偶校验、帧错误检测)、软件协议层设计(校验和 / CRC、超时检测)及物理层优化(信号质量、抗干扰)。根据应用场景(如短距离低速通信 vs 长距离工业控制)选择合适的检测方法,关键数据需叠加多种检测手段(如 CRC + 重传),平衡实时性与可靠性。

编辑

分享

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐