0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

我猜你还不会UART!不信你点进来看看

FPGA之家 来源:小麦大叔 作者:小麦大叔 2021-06-01 11:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1 UART发展历史1.1 早期的串行通讯设备早期的电报机器使用长度可变的脉冲信号进行数据传输,比如摩斯电码;

970a7114-c238-11eb-9e57-12bb97331649.png

摩斯电码

后来电传打印机(teleprinters )普遍使用5、6、7或8个数据位来表示各种字符编码,最终成为计算机外围设备。电传打字机( teletypewriter 简称 tty)成为小型计算机十分出色的通用I/O设备。

Teletypewritter

由于历史的发展原因,早期在Unix终端是一个名字为ASR33的电传打字机,而电传打字机的英文单词为Teletype(或Teletypewritter),缩写为tty。因此,终端设备也被称为tty设备。这就是TTY这个名称的来源。

1.2 早期的芯片级UARTDEC(Digital Equipment Corporation)公司的Gordon Bell 为该公司的PDP系列计算机设计了第一个UART,不过体积庞大,UART的线路占据了整个电路板;

后来DEC将串行线路单元的设计浓缩为早期的UART单芯片,以方便自己使用。

DEC是美国一家计算机公司;

西部数据(Western Digital)公司在1971年左右将其开发为第一个广泛可用的UART单芯片 WD1402A。这是中型集成电路的早期产品。

Western Digital是美国计算机硬盘驱动器制造商和数据存储公司。

1.3 现代UART的发展2000年代开始,大多数IBM或者相关的计算机都删除了其外部RS232的COM端口,将其替换为带宽性能更加出色的USB端口;

对于仍然需要RS-232串行COM端口的用户,现在通常使用外部USB转UART转换器,常见的有CH340,Silicon Labs 210x的驱动程序,现在很多处理器和芯片都内置了UART。

2 预备知识通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称为UART),在UART通信中,两个UART直接通信。

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

这里只需要两条线RX/TX即可在两个UART之间传输数据。具体如下图所示;

97372e48-c238-11eb-9e57-12bb97331649.png

3 协议层UART传输的数据被封装成数据包。每个数据包包含1个起始位,5~9个数据位(取决于UART的具体设置),一个可选的奇偶校验位以及1个或2个停止位,具体如下图所示;

97433314-c238-11eb-9e57-12bb97331649.png

协议格式

起始位UART数据传输线通常在不传输数据时保持在高电平。

为了开始数据传输,发送端UART在一个时钟周期内将传输线从高电平拉低到低电平。

当接收端UART检测到高电压到低电压转换时,它开始以波特率的频率读取数据位中的每一位数据。

数据数据位包含正在传输的实际数据。如果使用奇偶校验位,则可以是5位,最多8位。如果不使用奇偶校验位,则数据帧的长度可以为9位。

在大多数情况下,数据首先以低有效位发送。

校验位在串口通信中一种简单的检错方式。

有四种检错方式:偶校验、奇校验、高校验和低校验。当然没有校验位也是可以的。

对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。

举个例子,如果数据是011,则满足;

偶校验,校验位为0,保证逻辑高的位数是偶数个。

奇校验,校验位为1,这样就有3个逻辑高位。

具体如下图所示;

976882c2-c238-11eb-9e57-12bb97331649.png

奇校验和偶校验

高位和低位不是真正的检查数据,而是强行将校验位设置为逻辑高或者逻辑低。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

停止位发送端UART将数据传输线从低电压驱动到高电压至少持续两位数据的时间宽度来表示整个数据包的传输已经结束。

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

波特率波特率是串口数据的传输速度,即Bit/s,常见的波特率有:9600,19200,38400,57600,115200,当然还有很多波特率,不再一一给出;

假设目前UART的配置为,1个起始位,8个数据位,0个校验位,1个停止位,那么9600的波特率,可以计算出每一位数据的时间宽度为:

那么传输一个字节(也就是10 bit 数据)需要的时间为 1.04 毫秒。

下面用串口抓取了UART的TX上的信号,其中一位数据的时间宽度为26微秒,具体如下图所示;

983f9460-c238-11eb-9e57-12bb97331649.jpg

则可以简单计算得到;

因此波特率大概为 38400;

下表是各个波特率下数据位时间宽度;

o4YBAGC1pSmAQyeXAAAnV8xR1vQ153.png

4 传输过程发送端UART从数据总线转换并行数据:

984a9e5a-c238-11eb-9e57-12bb97331649.png

发送端UART将起始位,奇偶校验位和停止位添加到数据包中:

98758890-c238-11eb-9e57-12bb97331649.png

整个数据包从发送端UART串行发送到接收端UART;接收端UART按照预先配置好的波特率对数据线进行采样:

987f037a-c238-11eb-9e57-12bb97331649.png

接收端UART解析接收的数据,丢弃数据包中的起始位,奇偶校验位和停止位:

988aeb72-c238-11eb-9e57-12bb97331649.png

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

9895a7c4-c238-11eb-9e57-12bb97331649.png

5 物理层UART、RS232、RS485在串口通信中,主要区别是电平的不同,其中UART通常使用TTL电平,下面介绍这几个存在的差异;

TTL

TTL全名是晶体管-晶体管逻辑集成电路(Transistor-Transistor Logic

输入高电平最小2V,输出高电平最小2.4V,典型值3.4V;

输入低电平最大0.8V,输出低电平最大0.4V,典型值0.2V。

RS232

RS232 逻辑1电平(MARK)=-3V~-15V,逻辑0电平(SPACE)=+3~+15V;

同样的,对于传输数据0x55,即二进制的01010101,RS232和TTL的区别如下;

989e2980-c238-11eb-9e57-12bb97331649.png

RS485

RS485是差分信号进行串行传输;

逻辑1以两线间的电压差为+(2~6)V表示;

逻辑“0”以两线间的电压差为-(2~6)V表示;

在工业通信中,使用RS485比较多,因为RS485是差分信号,可以抑制共模干扰,因此在恶劣的环境中拥有很好的抗干扰性,比较稳定;

6 优缺点没有任何通信协议是完美的,以下是UART的一些利弊,可帮助您确定它们是否适合您的项目需求:

优点

通信只需要两条数据线;

无需时钟信号;

有奇偶校验位,方便通信的差错检查;

只需要接收端和发送端设置好数据包结构,即可稳定通信;

缺点

数据帧最大支持9位数据;

不支持多主机或多从机的主从系统;

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 集成电路
    +关注

    关注

    5446

    文章

    12470

    浏览量

    372723
  • 电平
    +关注

    关注

    5

    文章

    370

    浏览量

    41257
  • 晶体管
    +关注

    关注

    78

    文章

    10264

    浏览量

    146329
  • uart
    +关注

    关注

    22

    文章

    1304

    浏览量

    106123
  • 数据包
    +关注

    关注

    0

    文章

    269

    浏览量

    25425

原文标题:我打赌!你还不会UART!不信,你看看~

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    网络接口:数字世界的“门铃”,了解多少?

    的翻译官,它在计算机和网络之间搭建桥梁,将计算机内部的数据“翻译”成网络能理解的语言,反之亦然。 常见的网络接口类型 网络接口种类繁多,让我们来看看几种最常见的: RJ-45接口:这是我们最常
    发表于 11-26 18:53

    【社区之星】欧小龙——保护的好奇心:它是所有创造力的源泉

    的时候会看重些什么呢?应届生和有两、三年左右工作经验人有什么侧重点呢? @ouxiaolong: 从的经历来看,一个项目通常不是按部就班地完成的,需要灵光一闪的瞬间,抓住脑海里蹦出的小火花
    发表于 11-26 16:31

    termux调试python数字游戏

    ;) print(f\"已想到1-100之间的数字,有{max_attempts}次机会\\n\") while attempts < max_attempts
    发表于 08-29 17:15

    做连接器的这几年,越来越不在乎“成就感”了

    是Ken,德索工厂的一名工程师。不写鸡汤,也不玩套路,只想让知道: 在这条被忽视的连接器赛道上,还有人默默在做一件事:让每一个连接,都稳一、实在一
    的头像 发表于 08-07 16:38 424次阅读
    做连接器的这几年,<b class='flag-5'>我</b>越来越不在乎“成就感”了

    想搞定控制器连接?耐达讯Modbus转Profinet这招知道吗?

    这个难题的“通关秘籍”!它就像一个神奇的“转换器魔法师”,能将Modbus设备的数据无缝转换为Profinet控制器能识别的语言,实现两者的完美连接。 咱来看看张工的经历。他在一个智能工厂项目里
    发表于 07-25 15:41

    【选型】常见的遥控开关控制协议,看看哪种适合

    遥控开关,是一种通过无线信号非接触式远程控制电路通断的装置,今天我们一起聊一聊常见的无线信号类别,看看哪种更适合?1.红外遥控红外型遥控,本质上就是通过红外线来传递开关信息,其实此类控制方式在我们
    的头像 发表于 07-17 19:34 1122次阅读
    【选型】常见的遥控开关控制协议,<b class='flag-5'>看看</b>哪种适合<b class='flag-5'>你</b>?

    所以做出来了吗

    所以做出来了吗,求
    发表于 06-16 01:43

    放大的信号,点亮的世界——运算放大器大揭秘

    嘿,电子迷们!今天,我们要聊一个超级厉害的小玩意儿——运算放大器(Op-Amp)!听起来是不是有点高大上?别担心,保证让轻松搞懂它,还能让觉得它超酷!1什么是运算放大器想象一下,有一个超
    的头像 发表于 06-13 20:06 662次阅读
    放大<b class='flag-5'>你</b>的信号,点亮<b class='flag-5'>你</b>的世界——运算放大器大揭秘

    默默无闻的是否想创业

    心有余而力不足,故特发此信。 不管你是电子领域的大佬,还是初出学堂的小白,只要你在电子方面有足够的自信,不甘默默无闻,三一线了此一生,请联系微电同号15286651822;如果现在身价百万
    发表于 06-08 12:21

    机械工程师的九个段位,现在处于哪一层?

    、材料、表面处理、工艺技术要求了。虽然这些信息都是自己标上去的,但具体实际能不能做还不太清楚。不管怎么说,总算能画出像样的图纸了。 3、毕业新手 图纸终于能拿去车间加工了,虽然经常闹笑话:要么精度
    发表于 05-28 13:47

    为什么拿着《规范》,却不会“设计”?

    硬件规范很多,但是很多朋友拿着《规范》仍然不会进行设计。 1、不知道先后关系,规范之间优先级搞不清。 规范是 “碎片化结论”,设计是 “系统化决策”规范常以 “条款” 形式存在(如 “信号线
    发表于 04-28 16:21

    开关电源环路稳定性分析——观察法找零极点

    极点的形式:从上面的求解过程来看,是相当的复杂,而且这还是II型的补偿,换成III型的补偿,这个求解的过程会更复杂!不信看下面这个III型的补偿器,求解出的传递函数这是人家整理好的表达式,可以直接
    发表于 04-19 13:31

    不知道的COB封装测试方法,快来看看推拉力测试机的应用!

    ,COB封装的可靠性直接决定了产品的使用寿命和性能表现。为了确保COB封装的质量,推拉力测试成为不可或缺的环节。本文科准测控小编将详细介绍如何利用Alpha W260推拉力测试机进行COB封装的推拉力测试,以及测试过程中需要注意的关键。 什么是COB封装工艺? COB封装
    的头像 发表于 04-03 10:42 1241次阅读
    <b class='flag-5'>你</b>不知道的COB封装测试方法,快<b class='flag-5'>来看看</b>推拉力测试机的应用!

    USB转UART芯片大全:从经典到创新,总有一款适合

    USB转UART芯片大全:从经典到创新,总有一款适合
    的头像 发表于 02-19 14:04 3388次阅读

    为什么的设备还不够“听话”?

    语音+电机控制方案让控制更智能!为什么的设备还不够“听话”?传统家电和家居设备往往需要手动操作,而语音+电机控制方案,正是打破这一局限的钥匙:语音指令:一句话操控设备,无需动手,彻底解放双手。电机
    的头像 发表于 02-14 18:01 581次阅读
    为什么<b class='flag-5'>你</b>的设备<b class='flag-5'>还不</b>够“听话”?