UART协议

article/2025/9/17 12:10:35

UART协议

简介

UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是设备间进行异步通信的关键模块。UART负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式;通信双方只要采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,仅用两根信号线(Rx 和Tx)就可以完成通信过程,因此也称为异步串行通信

串行通信

串行通信是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。

发送端的UART将来自控制设备(如CPU)的并行数据转换为串行数据,以串行方式将其发送到接收端的UART,然后由接收端的UART将串行数据转换为并行数据以用于接收设备的正常处理。

异步通信

异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的

数据传输速率

数据的传输速率用波特率表示,即每秒钟传输的的二进制位数。每秒传输的字符数乘以位数即为波特率。只要传输的信号是二进制的,波特率与比特率的概念就是相同的

波特率和比特率的区别

  • 波特率就是每秒传输多少符号

  • 比特率就是每秒传输多少比特。

    二进制一个符号所含信息量为1比特,因此二进制下波特率=比特率。 计算机处理的都是二进制数,在这个环境下波特率和比特率都一样。

数据传输格式

image-20220413212442190

  • 起始位:先发出一个逻辑”0”信号,表示传输字符的开始。UART数据传输线通常在不传输数据时保持在高电平

  • 数据位:可以是5~8位逻辑”0”或”1”。如ASCII码(7位),扩展BCD码(8位)大多数情况下采用小端传输

  • 校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)

  • 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容错性越好,但是数据传输率同时也越慢

  • 空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。

  • 异步通信是按字符传输的,接收设备在收到起始信号之后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。下一个字符起始位的到来又使同步重新校准。

小端传输:符合人的思维 低位存储在低地址 如0x0100 0001(A) 小端传输后看到的波形为 1000 0010

大端传输:符合直观视觉 地位数据存储在高位地址 如0x0100 0001(A) 大端传输后看到的波形仍为 0100 0001

RS-232(全双工,电平信号)

简介

RS-232是一种串行物理接口标准。RS-232是对电气特性以及物理特性的规定,只作用于数据的传输通路上,它并不内含对数据的处理方式。很多人经常把RS-232、RS-422、RS-485 误称为通讯协议,这是很不应该的,其实它们仅是关于UART通讯的一个机械和电气接口标准(顶多是网络协议中的物理层面)。

RS-232采取不平衡传输方式,即所谓单端通讯。由于其发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。

IBM的PC 机将RS-232 简化成了DB-9 连接器,从而成为今天的事实标准。而工业控制的RS-232 口一般只使用RXD(2)、TXD(3)、GND(5) 三条线。

image-20220413234605018

而现在开发板都选择TTL的UART,或者直接UART转USB做在开发板上。

嵌入式里面说的串口,一般是指UART口, 但是我们经常搞不清楚它和COM口的区别, 以及RS232, TTL等关系, 实际上UART,COM指的物理接口形式(硬件), 而TTL、RS-232是指的电平标准(电信号),其中UART通常使用TTL电平。

TTL(晶体管-晶体管逻辑集成电路 全双工):

市面上很多“USB转TTL”模块,实际上是“USB转TTL电平的串口”模块。这种信号0对应0V,1对应3.3V或者5V。与单片机、SOC的IO电平兼容。不过实际也不一定是TTL电平,因为现在大部分数字逻辑都是CMOS工艺做的,只是沿用了TTL的说法。我们进行串口通信的时候从单片机直接出来的基本是都是 TTL 电平。

  • 输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出高电平是3.5V,输出低电平是0.2V。
  • 最小输入高电平和低电平:输入高电平>=2.0V,输入低电平<=0.8V,噪声容限是0.4V。

UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V),高电平为1(3.3V或以上)。

优点和不足

优点:

  • 通信只需要两条数据线
  • 无需时钟信号
  • 有奇偶校验位,方便通信的差错检查
  • 只需要接收端和发送端设置好数据包结构,即可稳定通信

缺点:

  • 接口的信号电平值较高,易损坏接口电路芯片,又因为232电平与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接,比如对同样的信号0x0101 0101来分别看RS232和TTL的波形电平,显然RS232的电平较高。

    image-20220414111827964

  • 传输速率较低,现在由于采用了新的UART芯片,波特率达到115.2Kbps

  • 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱

  • 传输距离有限,数据帧最大支持9位数据

  • RS-232 只容许一对一的通信,没有考虑构成串行总线

RS-485/ RS-422标准

RS422(全双工)

RS-422 的电气性能与RS-485完全一样。主要的区别在于:RS-422 有4 根信号线:两根发送、两根接收。由于RS-422 的收与发是分开的所以可以同时收和发(全双工),也正因为全双工要求收发要有单独的信道,所以RS-422适用于两个站之间通信,星型网、环网,不可用于总线网。由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Slave),从设备之间不能通信,所以RS-422支持点对多的双向通信。

RS485(半双工,差分信号)

RS-232接口可以实现点对点的通信方式,但这种方式不能实现联网功能。为了解决这个问题,新的标准RS-485产生了。

RS-485的数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。RS-485 只有2 根信号线,所以只能工作在半双工模式,常用于总线网。

RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进,无论四线还是二线连接方式总线上可多接到32个设备。

  • 差分信号:一对大小相等而极性相反的对称信号,差分信号用于传输有用的信号。在差分信号传输过程中会遇到外部干扰信号,但是,由于两根差分信号线始终在一起,因此干扰信号一般都会同时作用在两根信号线上,形成叠加在两根信号线上大小相等相位也相同的共模信号,因此差分传输的信号对外部干扰具备很强的抗干扰能力。

  • 共模信号:共模信号是作用于差分信号线上的一对大小相等极性也相同的信号,共模信号往往来自于外部干扰。

RS-485的电气特性:

  • 逻辑“1”以两线间的电压差为+(2-6)V表示;逻辑“0”以两线间的电压差为-(2-6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。
  • RS-485的数据最高传输速率为10Mbps,但是由于RS-485 常常要与PC 机的RS-232 口通信,所以实际上一般最高115.2Kbps。又由于太高的速率会使RS-485 传输距离减小,所以往往为9600bps 左右或以下
  • RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好
  • 在100Kb/S的传输速率下,才可以达到最大的通信距离1219M。
  • RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点
  • 因为RS-485的远距离、多节点(32个)以及传输线成本低的特性,使得EIA RS-485成为工业应用中数据传输的首选标准

RS485接口为什么要接地

RS-485收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常工作,当发送驱动器A向接收器B发送数据时,发送驱动器A的输出共模电压为VOS,由于两个系统具有各自独立的接地系统,存在着地电位差VGPD。那么,接收器输入端的共模电压VCM就会达到VCM=VOS+VGPD。虽然RS-485标准规定VOS≤3V,但VGPD可能会有很大幅度(十几伏甚至数十伏),并可能伴有强干扰信号,致使接收器共模输入VCM超出正常范围,并在传输线路上产生干扰电流,因此,必须有一条低阻的信号地。一条低阻的信号地将两个接口的工作地连接起来,使共模干扰电压VGPD被短路

影响485总线通信速度和通信可靠性的三个因素

  • 通信电缆中的信号反射

    有两种信号因素导致信号反射:阻抗不连续和阻抗不匹配。阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射,如图所示。这种信号反射的原理,与光从一种媒质进入另一种媒质要引起反射是相似的。消除这种反射的方法,就必须在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端可跨接一个同样大小的终端电阻

    image-20220414101656963

  • 在通讯电缆中的信号衰减

    一条传输电缆可以把它看出由分布电容、分布电感和电阻联合组成的等效电路。信号的损失主要是由于电缆的分布电容和分布电感组成的LC低通滤波器

    image-20220414102105717

  • 在通信电缆中的纯阻负载

RS232与RS485对比

  • 抗干扰性:RS485 接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。RS232 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰

  • 传输距离:RS485 接口的最大传输距离标准值为 1200 米(9600bps 时),实际上可达 3000 米。RS232 传输距离有限,最大传输距离标准值为 50 米,实际上也只能用在 15 米左右

  • 通信能力:RS-485 接口在总线上是允许连接多达128个收发器,用户可以利用单一的 RS-485 接口方便地建立起设备网络。RS-232只允许一对一通信

  • 传输速率:RS-232传输速率较低,在异步传输时,波特率为 20Kbps。RS-485 的数据最高传输速率为 10Mbps

  • 信号线:RS485 接口组成的半双工网络,一般只需二根信号线。RS-232 口一般只使用 RXD、TXD、GND 三条线

电平信号:电平信号的传输线中有一个参考电平线(一般是GND),然后信号线上的信号值是由信号线电平和参考电平线的电压差决定。

差分信号:传输线中没有参考电平线,所有都是信号线,然后1和0的表达靠信号线之间的电压差。

电平信号的2根通信线之间的电平差异容易受到干扰,传输容易失败;差分信号不容易受到干扰,因此传输质量比较稳定。现代通信一般都使用差分信号,在相同根数的通信线下,差分信号比电平信号要快,因为差分信号抗干扰能力强,因此1个发送周期更短。

在电平信号下,”1根参考电平线+1根信号线“可以传递1位二进制;”1根参考电平线+2根信号线“可以同时发送2位二进制;如果想同时发送8位二进制就需要9根线,在差分信号下,2根线(彼此差分)可以同时发送1位二进制;如果需要同时发送8位二进制就需要16根线。

RS422与RS485对比

RS-485的电气性能与RS-422完全一样。主要的区别在于:

  • RS-422 有4 根信号线:两根发送(Y、Z)、两根接收(A、B)。由于RS-422 的收与发是分开的所以可以同时收和发(全双工)
  • RS-485 只有两根数据线:发送和接收都是A 和B。由于RS-485 的收与发是共用两根线,所以不能同时收和发(半双工)

串口的工作原理

串行的数据,如何转并行

移位寄存器原理

image-20220414142256399

image-20220414142355942

大致的意思是:

初始状态: 设A3A2A1A0= 1011

然后Q3的输出,是在每个时钟节拍,按照这个先后顺序,把A3A2A1A0串行的输出出去。(小端)

其实利用的就是D触发器的特性。

如果我们使用8位的移位寄存器,就可以利用8个clk的时间,发一组8bit的数据通过一根导线传输出去.


http://chatgpt.dhexx.cn/article/te9JPkBA.shtml

相关文章

【云域网络社区】云域网络社区APP

【软件名称】云域社区 【功能介绍】资源分享&#xff0c;游戏交流交友 【下载地址】http://sss.shmmec.com/apk.apk 图片

怎么划分领域、子域、核心域、通用域和支撑域

怎么划分领域、子域、核心域、通用域和支撑域 如何理解领域和子域&#xff1f;什么是领域什么是子域怎么划分领域和子域如何理解核心域、通用域和支撑域&#xff1f;为什么要划分核心域、通用域和支撑域 总结 DDD 的知识体系提出了很多的名词&#xff0c;像&#xff1a;领域、子…

网络安全-域服务器(二)

域服务器&#xff1a; 域服务器&#xff08;一&#xff09;&#xff1a;网络安全-域&#xff08;一&#xff09;_IT之一小佬的博客-CSDN博客域服务器&#xff08;二&#xff09;&#xff1a;网络安全-域服务器&#xff08;二&#xff09;_IT之一小佬的博客-CSDN博客 域 11.O…

网课管理系统

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 3. 功能简介 用户中心 1.1用户注册&#xff1a;用户需要注册才能登陆进入web 1.2用户登录&#xff1a;通过判断匹配来进…

如何搭建域服务器

实验名称&#xff1a;如何搭建域服务器 实验环境&#xff1a;wind2003*2 实验过程&#xff1a; 由于Windows Server 2003在默认的安装过程中DNS是不被安装的&#xff0c;所以我们需要手动去添加&#xff0c; 添加方法如下:“开始—设置—控制面板—添加删除程序”&#xff…

搭建域环境(win)

目录 常见域环境是用&#xff1a;win2012 win7 win2003 本blog环境&#xff1a;Windows Server 2012 R2 and Win2008 1.Window Server 2012 R2 服务器配置 1&#xff09;变更计算机名DC&#xff08;用于存储活动目录数据库的计算机&#xff09; 2&#xff09;设置服务器…

网络教学管理系统

1、项目介绍 网络教学管理系统拥有三种角色 管理员&#xff1a;专业管理、班级管理、学生教师管理、公告管理、留言板管理、学习资料管理、教学视频管理、试题管理等 教师&#xff1a;系统留言、发布作业等 学生&#xff1a;可以查看作业视频、登录注册、下载作业资料等 2、…

域控-笔记二(域权限,域组,域管理,Kerberso 协议)

文章目录 一. 域环境搭建1.1 添加AD功能1.2 安装1.3 部署 二. 如何加入域2.1 加入域2.2 域中主机登录2.3 退出域2.4 添加域用户 三. 域权限3.1 A-G-DL-P策略3.2 组几个比较重要的域本地组几个比较重要的全局组、通用组的权限 四. 域管理4.1 域用户账户的管理4.2 组的管理4.3 组…

中职网络搭建 域用户密码设置

中职网络搭建 密码设置 域密码策略&#xff1a; 进入域控制器组策略&#xff08;组策略管理&#xff09; 计算机配置–Windows设置–安全设置–账户策略–密码策略 “密码必须符合复杂性要求”&#xff1a;密码设置必须要有数字、大写字母、小写字母、字符&#xff0c;四种中…

第一讲 数域

1. 引入 数是数学的一个最基本概念, 回顾一下我们曾经学习过的数的发展过程: (1) 代数性质: 关于数的加, 减, 乘 , 除等运算的性质称为数的代数性质. (2) 数集: 数的集合简称数集. 常见的数集: 复试C; 实数R;有理数Q等等. 它们有一个共同的性质就是对加减乘除运算封闭. 2. 数…

域控知识与安全02:初始访问

初始访问 前言信息收集1.Nmap命令参数使用方法 2.Metasploit命令参数使用方法 3.地址解析协议命令参数使用方法 4.ICMP5.Nbtscan命令参数使用方法 6.telnet使用方法 暴力破解1.Hydra命令参数使用方法 2.Hashcat常用参数使用方法 总结系列相关内容 前言 攻击者首先通过初始访问入…

1. 跨域学习

1. 跨域学习 1.1 什么是跨域 出于浏览器的同源策略限制。同源策略&#xff08;Sameoriginpolicy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能&#xff0c;如果缺少了同源策略&#xff0c;则浏览器的正常功能可能都会受到影响。可以说Web是构建在同…

域的基础概念

初具规模的办公网络通常以Windows域的形式进行管理&#xff0c;域在内网渗透中的地位举足轻重&#xff0c;本文主要介绍域的基础概念&#xff0c;为后续域渗透的介绍做铺垫 部分内容参考文章&#xff1a;https://blog.csdn.net/wulantian/article/details/42418231 文章目录 1.…

域&#xff0c;Domain。 计算机域是一个有安全边界的计算机集合&#xff0c;在同一个域中的计算机彼此之间已经建立了信任关系&#xff0c;在域内访问其他机器&#xff0c;不再需要被访问机器的许可。 1.一台计算机在内网环境中有两种工作模式&#xff1a; 工作组&#xff1a;默…

域环境的搭建(单域、父子域、域树)

准备材料&#xff1a;虚拟机 Windows server 2012 r2 两台、Windows 10 一台**&#xff08;关闭所有防火墙&#xff09;** 实验一&#xff1a;单域的搭建 前提&#xff1a;将网络链接模式改为仅主机模式&#xff0c;并手动配置IP地址。 1.打开一台干净的Windows server 2012 …

网安基础:教你如何搭建单域,父子域,域树。

单域 1.实验准备&#xff1a;一台干净的windows sever虚拟机&#xff0c;一台win10客户端虚拟机。 2.虚拟机配置&#xff1a;设置仅主机模式&#xff0c;静态ip&#xff0c;关闭防火墙&#xff0c;两台机器设置的静态ip要在同一网段上 3.实验过程&#xff1a; 打开服务器管理器…

搭建域环境

1.搭建域环境 什么是域&#xff1f; Windows域为网络管理员提供了一种方法来管理大量的pc机&#xff0c;并从一个地方控制它们。一个或多个服务器(称为域控制器)控制域及其上的计算机。 域通常由在同一本地网络上的计算机组成。但是&#xff0c;连接到某个域的计算机可以通过VP…

二叉树的前序-中序-后序遍历

在牛客网刷到了二叉树的遍历&#xff0c;二叉树的遍历分为前序遍历&#xff0c;前序遍历也有先序遍历之称&#xff0c;还有中序遍历&#xff0c;以及后序遍历&#xff0c;这么多种遍历&#xff0c;遍历的方式不一样而已&#xff0c;前序遍历是先遍历根然后左节点然后是右节点&a…

【LeetCode】根据序列构造二叉树 (前序中序)(中序后序)

目录 105. 从前序与中序遍历序列构造二叉树 1.题目要求&#xff1a; 2.思路分析&#xff1a; 3.代码展示&#xff1a; 106. 从中序与后序遍历序列构造二叉树 1.题目要求&#xff1a; 2思路分析&#xff1a; 3.代码展示 105. 从前序与中序遍历序列构造二叉树 1.题目要求…

二叉树的前序,中序,后序和层序遍历

二叉树的前序&#xff0c;中序&#xff0c;后序和层序遍历 一. 二叉树的简易构建 由于二叉树的增删查改意义不大&#xff0c;所以我们直接手动建立二叉树。建立简易二叉树之前&#xff0c;我们先定义一个二叉树中的节点结构体类型&#xff08;包含节点值&#xff0c;节点左指…