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

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

3天内不再提示

什么是UART,UART协议的三条信号线

要长高 来源:知芯情报局 作者:Leo 2022-06-21 15:49 次阅读

UART简介

UART全称universal asynchronous receiver transmitter,翻译过来就是通用异步收发器(一般也很少有人这么叫啦)。UART的应用场景非常广泛,比如上位机与下位机之间的通信,各种外接模块,比如GPS和蓝牙模块等等。UART作为串行通信,利用一条传输线将数据按bit进行顺序传送,特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。

物理层

在物理层上,UART协议只有三条信号线:TX,RX和GND。看到这儿看官您就要问了,为什么没有时钟线?对,UART协议就是这么任性,不需要时钟线,那么它是怎么通信的呢?下面的协议层章节会做详细的介绍。

pYYBAGKxd7OAK5UvAAAm56c01gI873.png

UART使用标准的TTL/CMOS逻辑电平(0~5V,0~3.3V,0~2.5V或0~1.8V)来表示数据,1表示高电平,0表示低电平。为了提高抗干扰能力、提高传输的距离,通常也会TTL/CMOS逻辑电平转换为RS-232逻辑电平,3~15V表示0,-3~-15V表示1。

举个例子,对于传输数据0x55,即二进制的01010101,RS232和TTL的区别如下;

poYBAGKxd7mAKkowAAETVNSjpMM603.png

协议层

波特率

协议层上,首先来介绍一下波特率的概念。波特率可以被理解为一个设备在单位时间内发送(或接收)了多少码元的数据,它是对符号传输速率的一种度量,表示单位时间内传输符号的个数(传符号率)。说白了,波特率是串口数据的传输速度,即Bit/s,常见的波特率有:9600,19200,38400,57600,115200。假设目前UART的配置为,1个起始位,8个数据位,0个校验位,1个停止位,那么9600的波特率,可以计算出每一位数据的时间宽度为104us,那么传输一个数据包(也就是10 bit 数据)需要的时间为 1.04 毫秒。

poYBAGKxd7-AHO0qAAAUYVu3yYU826.png

数据包格式

介绍完了波特率,再来介绍一下数据包的格式。UART传输的数据被封装成数据包,每个数据包包含1个起始位,5~8个数据位(取决于UART的具体设置),一个可选的奇偶校验位以及1个或2个停止位,具体如下图所示:

poYBAGKxd8SAQXanAAAkg5dDJ1k024.png

起始位:UART数据传输线在空闲状态时时保持高电平。当master先发出一个逻辑”0”的信号时,表示传输数据的开始。

数据位:可以选择的值有5,6,7,8这四个值,可以传输这么多个值为0或者1的bit位。这个参数最好为8,因为如果此值为其他的值时当你传输的是ASCII值时一般解析肯定会出问题。理由很简单,一个ASCII字符值为8位,如果一帧的数据位为7,那么还有一位就是不确定的值,这样就会出错。

校验位:在串口通信中一种简单的检错方式。有下面四种检错方式:偶校验、奇校验、高校验和低校验。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用1bit确保传输的数据有偶个或者奇个逻辑高位。

举个例子,如果数据是011,假如为偶校验,则校验位为0,保证逻辑高的位数是偶数个。假如为奇校验,校验位为1,保证逻辑高的位数是奇数个。

pYYBAGKxd8qAf_O2AAAlEyPTR5I688.png

停止位:发送端UART将数据传输线从低电压驱动到高电压至少持续两位数据的时间宽度来表示整个数据包的传输已经结束。由于数据是在传输线上定时的,不同设备之间的时钟存在偏差,误差的积累有可能会造成数据位的传输错误。因此停止位不仅仅是表示传输的结束,并且提供校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容错性越好,但是数据传输率同时也越慢。

优缺点

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

优点:

通信只需要两条数据线;

无需时钟信号;

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

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

缺点:

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

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

参考文献:https://blog.csdn.net/u010632165/article/小麦大叔

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

    关注

    22

    文章

    1158

    浏览量

    99952
  • 波特率
    +关注

    关注

    2

    文章

    280

    浏览量

    33758
  • 异步收发器
    +关注

    关注

    0

    文章

    36

    浏览量

    10794
收藏 人收藏

    评论

    相关推荐

    最详细的UART通讯协议分析在这里

    UART协议,将并行输入信号转换成串行输出信号。因为UART简单实用的特性,其已经成为一种使用非常广泛的通讯
    的头像 发表于 09-04 16:13 6455次阅读
    最详细的<b class='flag-5'>UART</b>通讯<b class='flag-5'>协议</b>分析在这里

    SPI、I2C、UART种串行总线协议的区别

    Receiver Transmitter:通用异步收发器)第二,区别在电气信号线上:SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现
    发表于 11-02 09:48

    UART串口通讯协议是什么

    UART串口通讯协议解析概述接口通信协议概述通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的
    发表于 07-29 08:07

    I2C协议UART协议的区别在哪

    总线的寻址模式二、I2C总线器件的扩展1、扩展电路2、E2PROM(1)向E2PROM写数据流程(2)从E2PROM读数据流程、实例一、I2C总线I2C总线是两线式串行总线,有两根双向信号线。一根
    发表于 12-08 07:58

    通用异步收发UART有何作用

    通用异步收发UART用来传输穿行数据,以全双工方式传输,最精简的连线方式只有三条线:TxD用于发送数据,RxD用于接收数据,Gnd为地线为双方提供参考电平。 UART采用标准的TTL/
    发表于 12-16 08:29

    UART协议总结和归纳

    最近将以前写的东西整理总结了下,会陆续加载到自己博客中,学有疏,常有漏,只有不断地总结和归纳,才能有进一步的飞跃。1 UART协议介绍(1)UART使用的是 异步,串行通信,全双工通信异步通信以
    发表于 12-16 07:36

    UART I.MX6U串口简介

    接口指的是数据一个一个的顺序传输,通信线路简单。UART 全称是 Universal Asynchronous Receiver/Trasmitter,全双工异步串行收发器。通过 UART 接口与外界相连最少只需要三条
    发表于 12-16 06:47

    基于NiosⅡ的UART设计与实现

    设计了一种基于NiosⅡ的UART系统,采用软硬件协作设计的思想调用了UART核并通过编译相关软件驱动的方式实现RS232协议的通信。首先介绍了UART
    发表于 09-25 14:21 45次下载
    基于NiosⅡ的<b class='flag-5'>UART</b>设计与实现

    基于FPGA芯片的UART接口电路设计

    基本的UART通信只需要两条信号线(RXD,TXD)就可以完成数据的相互通信,接收与发送是全双工形式,其中TXD是UART发送端,RXD是UART接收端。
    发表于 08-22 14:57 1845次阅读
    基于FPGA芯片的<b class='flag-5'>UART</b>接口电路设计

    基于UART接口功能的实现设计

    UART(UniversalAnynchrONousReceiverTransmitter,通用异步接收发送器)是广泛应用的串行数据传输协议之一,其应用范围遍及计算机外设、工控自动化等场合。虽然
    发表于 08-30 15:05 1420次阅读
    基于<b class='flag-5'>UART</b>接口功能的实现设计

    通用异步收发器UART串口协议简介

    作为异步串行通信协议的一种,工作原理是将传输数据的每个二进制位一位接一位地传输。在UART通信协议信号线上的状态为高电平时代表1,信号线
    发表于 06-15 17:34 1333次阅读

    基于STM32之UART串口通信协议(一)详解

    一、前言1、简介  写的这篇博客,是为了简单讲解一下UART通信协议,以及UART能够实现的一些功能,还有有关使用STM32CubeMX来配置芯片的一些操作,在后面我会以我使用的STM32F429
    发表于 11-30 14:36 22次下载
    基于STM32之<b class='flag-5'>UART</b>串口通信<b class='flag-5'>协议</b>(一)详解

    Uart协议介绍

    文章目录前言一、Uart协议(即串口)的基本概念二、Uart配置基本属性1.波特率2.起始位3.数据位4.奇偶校验位5.停止位6.空闲位7.传输方向总结前言通用的硬件接口协议很多,我们
    发表于 01-17 12:56 13次下载
    <b class='flag-5'>Uart</b><b class='flag-5'>协议</b>介绍

    UART协议简介及优缺点说明

    最近几天,有不少粉丝问我,局哥,什么时候可以写一篇关于UART协议的文章啊?网上的太繁杂,想偷个懒,你直接给介绍总结一下吧。那么今天就介绍一下UART协议,后面也会抽时间介绍一些其他的
    的头像 发表于 07-03 15:12 5955次阅读

    UART协议是干啥的

    UART协议是电子传输中一种常见的信号协议,通常只需要三根信号线就可以完成数据的收发,分别是TX,RX,GND。
    的头像 发表于 11-06 10:08 1087次阅读
    <b class='flag-5'>UART</b><b class='flag-5'>协议</b>是干啥的