一文搞懂uart通信协议

不脱发的程序猿 不脱发的程序猿     2022-12-02     583

关键词:

目录

1、UART简介

2、UART特性

3、UART协议帧

3.1、起始位

3.2、数据位

3.3、奇偶校验位

3.4、停止位

4、UART通信步骤


1、UART简介

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

2、UART特性

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

总结了关于UART必须了解的几点:

导线数量3根(TX、RX和GND)
速度1200、2400、4800、9600、19200、38400、57600、115200等
传输方式全双工异步
最大主机数量1
最大从机数量1

3、UART协议帧

UART中,传输模式为数据包形式。数据包由起始位、数据帧、奇偶校验位和停止位组成。

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通信步骤

第1步:数据从数据总线到发送器。

第2步:发送 UART 将起始位、奇偶校验位和停止位添加到数据帧。

第3步:从起始位到结束位,整个数据包以串行方式从发送器送至接收 接收 UART 以预配置的波特率对数据线进行采样。

第4步:接收 丢弃数据帧中的起始位、奇偶校验位和停止位。

第5步:接收 将串行数据转换回并行数据,并将其传输到接收端的数据总线。


拓展学习:

1、一文搞懂SPI通信协议

2、一文搞懂I2C总线通信

3、 一文看懂Modbus协议

4、 一文搞懂PID控制算法 

5、一文搞懂TCP的三次握手和四次挥手 

6、一文搞懂图像二值化算法 

7、 一文搞懂步进电机特性、原理及驱动器设计 

8、 一文搞懂三级管和场效应管驱动电路设计及使用 

9、ADI期刊-UART:了解通用异步接收器-发送器的硬件通信协议 

一文搞懂rpc原理(代码片段)

RPC原理解析什么是RPCRPC(RemoteProcedureCallProtocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP/IP或UDP,为通信程序之间携带信... 查看详情

一文搞懂物联网modbus通讯协议(代码片段)

简介: 一般来说,常见的物联网通讯协议众多,如蓝牙、Zigbee、WiFi、ModBus、PROFINET、EtherCAT、蜂窝等。而在众多的物联网通讯协议中,Modbus是当前非常流行的一种通讯协议。它一种串行通信协议,是Modicon公司... 查看详情

一文搞懂spi通信协议(代码片段)

目录1、简介2、通信原理3、通信特性3.1、设备选择3.2、设备时钟3.2.1、时钟速率3.2.2、时钟极性3.2.3、时钟相位3.3、四种模式4、多从机模式5、SPI优缺点1、简介SPI是串行外设接口(SerialPeripheralInterface)的缩写,是美国... 查看详情

一文搞懂spi通信协议(代码片段)

目录1、简介2、通信原理3、通信特性3.1、设备选择3.2、设备时钟3.2.1、时钟速率3.2.2、时钟极性3.2.3、时钟相位3.3、四种模式4、多从机模式5、SPI优缺点1、简介SPI是串行外设接口(SerialPeripheralInterface)的缩写,是美国... 查看详情

一文搞懂spi通信协议(代码片段)

目录1、简介2、通信原理3、通信特性3.1、设备选择3.2、设备时钟3.2.1、时钟速率3.2.2、时钟极性3.2.3、时钟相位3.3、四种模式4、多从机模式5、SPI优缺点1、简介SPI是串行外设接口(SerialPeripheralInterface)的缩写,是美国... 查看详情

一文搞懂canfd总线协议帧格式

...束5、CANFD的改进6、如何从传统的CAN升级到CANFD假期更新了一文搞懂CAN总线协议帧格式,CANFD总线协议怎能错过? 查看详情

一文搞懂canfd总线协议帧格式

...束5、CANFD的改进6、如何从传统的CAN升级到CANFD假期更新了一文搞懂CAN总线协议帧格式,CANFD总线协议怎能错过? 查看详情

一文搞懂如何使用node.js进行tcp网络通信

...TCP通信部份进行实践记录。本文分享自华为云社区​​《一文搞懂如何使用Node.js进行TCP网络通信》​​,作者:lwq1228。1、构建TCP服务器1.1、使用Node.js创建TCP服务器为了使用Node.js创 查看详情

一文搞懂rpc的基本原理和层次架构(代码片段)

本文来自srpc作者李颖欣,在此基础上略做改动。只要涉及到网络通信,必然涉及到网络协议,应用层也是一样。在应用层最标准和常用的就是HTTP协议。但在很多性能要求较高的场景各大企业内部也会自定义的RPC协议... 查看详情

一文搞懂如何使用node.js进行tcp网络通信(代码片段)

....js的TCP通信部份进行实践记录。本文分享自华为云社区《一文搞懂如何使用Node.js进行TCP网络通信》,作者:lwq1228。1、构建TCP服务器1.1、使用 查看详情

一文搞懂i2s通信总线

目录1、物理特性2、常见的I2S数据格式2.1、I2SPhilips标准2.2、左对齐(MSB)标准2.3、右对齐(LSB)标准之前我们讲过I2C通信总线,本篇博文将讲一讲I2C的变种:I2S总线。I2C和I2S都是由Philips公司(2006年迁... 查看详情

一文搞懂i2s通信总线

目录1、物理特性2、常见的I2S数据格式2.1、I2SPhilips标准2.2、左对齐(MSB)标准2.3、右对齐(LSB)标准之前我们讲过I2C通信总线,本篇博文将讲一讲I2C的变种:I2S总线。I2C和I2S都是由Philips公司(2006年迁... 查看详情

一文搞懂web端登录过程(代码片段)

一文搞懂web端登录过程无状态HTTP协议session和cookiecookie(存放在客户的浏览器上)session(存放在服务器端)session和cookie的区别token登录过程token验证在了解登陆过程的原理前,应该先弄清楚几个概念无状态HTTP... 查看详情

一文搞懂can总线协议帧格式

目录1、数据帧1.1、帧起始1.2、仲裁段1.2.1、标准数据帧1.2.2、扩展数据帧1.3、控制段1.4、数据段1.5、CRC段1.6、ACK段1.7、帧结束2、标准数据帧和扩展数据帧2.1、标准数据帧2.2、扩展数据帧2.3、标准数据帧和扩展数据帧的特性3、遥... 查看详情

一文搞懂can总线协议帧格式

目录1、数据帧1.1、帧起始1.2、仲裁段1.2.1、标准数据帧1.2.2、扩展数据帧1.3、控制段1.4、数据段1.5、CRC段1.6、ACK段1.7、帧结束2、标准数据帧和扩展数据帧2.1、标准数据帧2.2、扩展数据帧2.3、标准数据帧和扩展数据帧的特性3、遥... 查看详情

一文搞懂can总线协议帧格式

目录1、数据帧1.1、帧起始1.2、仲裁段1.2.1、标准数据帧1.2.2、扩展数据帧1.3、控制段1.4、数据段1.5、CRC段1.6、ACK段1.7、帧结束2、标准数据帧和扩展数据帧2.1、标准数据帧2.2、扩展数据帧2.3、标准数据帧和扩展数据帧的特性3、遥... 查看详情

一文搞懂i2c总线通信(代码片段)

目录1、简介2、物理特性3、通讯时序3.1、开始和停止条件3.2、地址传送3.3、数据传送3.4、总线应答3.5、总线仲裁4、工作过程4.1、单个主设备连接多个从机4.2、多个主设备连接多个从机 本来不打算写这篇文章,因为网上关于I... 查看详情

一文搞懂can和canfd总线协议

目录1、CAN数据帧1.1、帧起始1.2、仲裁段1.2.1、标准数据帧1.2.2、扩展数据帧1.3、控制段1.4、数据段1.5、CRC段1.6、ACK段1.7、帧结束2、CAN标准数据帧和扩展数据帧2.1、标准数据帧2.2、扩展数据帧2.3、标准数据帧和扩展数据帧的特性3... 查看详情