uart通讯协议

  uart通讯协议属于串口通讯,可以将uart通讯协议分为物理层协议层来进行理解,下面对uart的相关内容做一个简单的介绍

1.uart的基本概念

  UART是一种双向、串行、异步的通信总线,仅用一根数据接收线和一根数据发送线就能实现全双工通信。典型的串口通信使用3根线完成,分别是:发送线(TX)、接收线(RX)和地线(GND)物理层,通信时必须将双方的TX和RX交叉连接并且GND相连才可正常通信,如下图所示:

 

 

2.uart特性

  UART 不使用时钟信号来同步发送器和接收器设备,而是以异步方式传输数据。发送器根据其时钟信号生成的位流取代了时钟信号,接收器使用其内部时钟信号对输入数据进行采样。同步点是通过两个设备的相同波特率(UART和大多数串行通信一样,发送和接收设备需要将波特率)来管理的。
  如果波特率协议层不同,发送和接收数据的时序可能会受影响,导致数据处理过程出现不一致。允许的波特率差异最大值为10%,超过此值,位的时序就会脱节。

3.uart帧协议协议层

  在uart中,传输模式为数据包形式。数据包由1位起始位、5到9位数据帧、1位奇偶校验位和1到2位停止位组成。如下图所示

3.1、起始位

  当不传输数据时, UART 数据传输线通常保持高电压电平。若要开始数据传输,发送UART 会将传输线从高电平拉到低电平并保持1 个时钟周期;当接收 UART 检测到高到低电压跃迁时,便开始以波特率对应的频率读取数据帧中的位

3.2、数据位
  数据帧包含所传输的实际数据。如果使用奇偶校验位,数据帧长度可以是5 位到 8 位。如果不使用奇偶校验位,数据帧长度可以是9 位。在大多数情况下,数据以最低有效位优先方式发送

 3.3、奇偶校验位
  奇偶性描述数字是偶数还是奇数。通过奇偶校验位,接收 UART判断传输期间是否有数据发生改变。电磁辐射、不一致的波特率或长距离数据传输都可能改变数据位。校验位可以配置成 1 位偶校验或 1 位奇校验或无校验位。
  接收UART 读取数据帧后,将统计数值为 1 的位,检查总数是偶数还是奇数。如果奇偶校验位为0 (偶数奇偶校验),则数据帧中的1或逻辑高位总计应为偶数。如果奇偶校验位为 1 (奇数奇偶校验),则数据帧中的1 或逻辑高位总计应为奇数。当奇偶校验位与数据匹配时,UART 认为传输未出错。但是,如果奇偶校验位为0 ,而总和为奇数,或者奇偶校验位为 1 ,而总和为偶数,则UART 认为数据帧中的位已改变

 3.4、停止位

  为了表示数据包结束,发送 UART 将数据传输线从低电压驱动到高电压并保持1 到 2 位时间

4.uart通信步骤

  读取数据总线→将数据整合成uart协议所规定的数据帧格式→发送整合数据→验证以及解析整合数据

5.实现uart

  5.1、软件实现
  5.2、硬件实现

    用于实现uart通讯协议的硬件模块被称为uart控制器,uart控制器的作用就是将并行数据整合成uart协议所规定的数据形式,而不需要从软件上去实现uart。uart控制器常常被称为uart,即Universal  Asynchronous Receiver/Transmitter,通用异步收发器,此时uart为一种用于实现uart的硬件设备,而非表示uart通讯协议,这点需要进行区分

    现在绝对大多数芯片都在内部集成了uart控制器,因此芯片GPIO口接收和发送的数据格式均满足uart通讯协议

文章参考:

UART:了解通用异步接收器/发送器的硬件通信协议

串口通信(UART)介绍

如有侵权,请联系删除

 

  

    

 

 

 

 

 

 

posted @ 2025-06-24 00:43  叉叉星  阅读(125)  评论(0)    收藏  举报