目录

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:了解通用异步接收器-发送器的硬件通信协议

一文搞懂UART通信协议相关推荐

  1. 【总线】一文看懂 UART 通信协议

    目录 UART 通信简介 UART工作原理 起始位 数据帧 奇偶校验位 停止位 UART 传输的步骤 UART的优缺点 优点 缺点 UART 通信简介 UART即通用异步收发器,是一种通用的串行.异步 ...

  2. 一文搞懂I2S通信总线

    目录 1.物理特性 2.常见的I2S数据格式 2.1.I2S Philips标准 2.2.左对齐(MSB)标准 2.3.右对齐(LSB)标准 之前我们讲过I2C通信总线,本篇博文将讲一讲I2C的变种: ...

  3. 【通信协议】一文搞懂SPI

    SPI总线简介 SPI(Serial Peripheral Interface)是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线. 接口定义 SPI接口共有4 ...

  4. 一文搞懂RNN(循环神经网络)

    基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ...

  5. 一文搞懂 Python 的 import 机制

    一.前言 希望能够让读者一文搞懂 Python 的 import 机制 1.什么是 import 机制? 通常来讲,在一段 Python 代码中去执行引用另一个模块中的代码,就需要使用 Python ...

  6. python语言语句快的标记是什么_一文搞懂Python程序语句

    原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...

  7. 一文搞懂 Java 线程中断

    转载自   一文搞懂 Java 线程中断 在之前的一文<如何"优雅"地终止一个线程>中详细说明了 stop 终止线程的坏处及如何优雅地终止线程,那么还有别的可以终止线程 ...

  8. 一文搞懂HMM(隐马尔可夫模型)-Viterbi algorithm

    ***一文搞懂HMM(隐马尔可夫模型)*** 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度.熵越大,系统越无序,意味着系统结构和运动的不确定和无规则:反之,,熵越小,系统越有序, ...

  9. 一文搞懂如何使用Node.js进行TCP网络通信

    摘要: 网络是通信互联的基础,Node.js提供了net.http.dgram等模块,分别用来实现TCP.HTTP.UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录. 本文分享自 ...

最新文章

  1. win2012服务器硬盘分区,Windows Server 2008/2012更改磁盘分区大小教程
  2. 傲游5里保存的网址,在傲游4不能同步?外加几句吐槽
  3. 对象引用未保存的瞬态实例-在刷新之前保存瞬态实例
  4. 小波的秘密5_多分辨率分析和连续小波变换2
  5. 关于反射的完整 练习
  6. python完全支持面向对象编程_python面向对象编程----009
  7. “嘿,我们又见面了!”
  8. ASP.NET的内置对象介绍
  9. [转载] Java static关键字详解
  10. 类模板使用示例(二)类模板整体特化
  11. FFmpeg获取H264文件的帧率
  12. HTML基本语法总结
  13. c语言数组的地址传递,c语言函数传递数组_c语言函数数组地址传递没有输出
  14. 结构方程模型-中介效应检验(Amos)
  15. 微信扫二维码挪车小程序开发制作功能
  16. kali安装网卡驱动
  17. 交住房公积金的好处及作用
  18. 在虚幻引擎4中播放视频文件超详细教程
  19. Win10物理机的VMnet8和VMnet1黄色感叹号
  20. 铜陵新松工业机器人项目_首期投资约12亿元 新松机器人(苏州)未来科技城项目在苏州相城开工奠基...

热门文章

  1. erp5开源制造业erp销售订单流程
  2. 序列检测器(三段式状态机)
  3. 交通灯的PLC控制设计
  4. 浮躁的社会,心静者胜出
  5. 运输公司对用户计算运输费用。
  6. TextBox 事件
  7. Ubuntu 16 安装 python 依赖出现 error: command 'i686-linux-gnu-gcc' failed with exit status 1
  8. PimaIndiansdiabetes.csv R语言作业
  9. matlab矩阵转置中.'和'的不同
  10. python jsonrpc调用_如何使用python向JSONRPC请求数据