UART和USART的区别(UART vs USART)[通俗易懂]

UART和USART的区别(UART vs USART)[通俗易懂]很多工程师都知道UART和USART都是一样的,没有区别。但实际上,两者彼此不同,并且具有不同的属性。这就是我在这里写一篇文章UARTvsUSART的原因。但在研究UART和USART(UART与USART)之间的主要区别之前,我想先解释一下什么是异步和同步通信。异步串行传输:在异步通信中,发送方和接收方之间没有公共时钟。它广泛用于面向字节的传输,这意味着它一次可以发送1个字节或字符。与同步相比,异步通信速度较慢,并且还具有启动和停止位的开销。在异步通信中…

大家好,又见面了,我是你们的朋友全栈君。

UART和USART的区别(UART vs USART)[通俗易懂]

很多工程师都知道UART和USART都是一样的,没有区别。但实际上,两者彼此不同,并且具有不同的属性。 

这就是我在这里写一篇文章UART vs USART的原因。但在研究 UART 和 USART(UART 与 USART)之间的主要区别之前,我想先解释一下什么是异步和同步通信。

异步串行传输:

        在异步通信中,发送方和接收方之间没有公共时钟。它广泛用于面向字节的传输,这意味着它一次可以发送 1 个字节或字符。与同步相比,异步通信速度较慢,并且还具有启动和停止位的开销。在异步通信中,每一帧都用开始和停止位进行包装。让我们看看异步通信的帧结构。

异步通信中的帧结构:      

START 位:  每帧以一个 START 位开始,并且始终为低电平。
数据位数据包:数据位可以是 5 到 9 位数据包。通常我们使用 8 位数据包,总是在 START 位之后发送。
STOP 位:可以是一位或两位。它在数据位包之后发送以指示帧的结束。停止位始终为逻辑高。

在异步串行通信帧中,第一个 START 位后跟数据字节和最后一个 STOP 位形成一个 10 位帧。有时最后一位也用作奇偶校验位。

同步串行传输:

        在同步通信中,时钟由发送方和接收方共享。我们可以在其中传输一个数据块,并且对于该数据块只有一个开始和停止位。这是同步通信开销较小的原因。

UART和USART之间的区别(UART与USART)

UART    USART

全称是Universal Asynchronous Receiver/Transmitter。

全称是Universal Synchronous Asynchronous Receiver/Transmitter。

没有与数据相关的输入时钟信号,因此接收器需要在开始接收之前知道发送器的波特率。

其中接收器不需要知道发送器的波特率。它来源于主控提供的时钟信号和数据线。

其中只需要数据线。

其中需要数据线和时钟线。

数据是按字符或逐字节传输的。

同步数据以块的形式传输。

UART 在微控制器内部生成其数据时钟,并通过使用起始位转换将该时钟与数据流同步。

在这种模式下,发送外设将生成一个时钟,接收外设可以从数据流中恢复,而无需提前知道波特率。

由于与 USART 相比,UART 中的起始位和停止位数据传输速率的开销较低。

使用外部时钟使 USART 的数据速率远高于标准 UART 的数据速率。

UART 很简单,仅提供其基本格式的几个选项,例如停止位的数量以及偶数或奇数奇偶校验。

USART 更复杂,可以生成与许多不同标准协议相对应的形式的数据,例如 IrDA、LIN、智能卡、RS-485 接口的驱动程序启用和 Modbus,仅举几例。

它不能像 USART 那样工作。

USART 可以像 UART 一样工作。

UART和USART的区别(UART vs USART)[通俗易懂]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144332.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JavaScript和Java的区别[通俗易懂]

    JavaScript和Java的区别[通俗易懂]  虽然JavaScript中有Java,但他们之间的关系就如同印度和印度尼西亚一样——没有什么关系。只是JavaScript中的某些语法和Java类似而已。出身不同  Java和JavaScript是由不同公司发布的不同的产品,Java是由Sun公司发布编程语言,而JavaScript是由Netscape公司发布的脚本语言。变量不同1.变量定义时的区别  定义变量时Java和JavaScript有区别。Java是强类型的语言,它要求每个变量必须在定义时明确指出这个变量是什么类型的;而JavaS

    2022年7月9日
    26
  • Ubuntu安装Python3.6并切换到3.6版本「建议收藏」

    Ubuntu安装Python3.6并切换到3.6版本「建议收藏」在此记录我在Ubuntu16.04系统上安装Python3.6并从Python2.7版本切换到3.6版本的过程。

    2022年6月23日
    29
  • C++11新特性之nullptr

    C++11新特性之nullptrC 11 新特性之 nullptr

    2025年7月12日
    4
  • SSL之CA证书颁发机构安装图文详解[通俗易懂]

    SSL之CA证书颁发机构安装图文详解[通俗易懂]上一节我们说到,在验证公钥安全性时,是在CA机构颁发的包含用户的公钥及其身份信息的数字证书,数字证书由权威机构——CA签发。这个CA权威机构可以是自己的服务器也可以是国际公认的CA权威机构。下面我就来

    2022年8月5日
    6
  • 一次xxoo提权[通俗易懂]

    一次xxoo提权[通俗易懂]数据库root权限。然并卵。看了一下phpinfo得知是mysql5.0的然后想要通过udf之类的提权一波,结果一执行sql语句就被狗拦截了。然而数据库这条路是GG了OS名称:MicrosoftWindowsServer2008R2Enterprise修补程序:安装了1个修补程序。然后各种e…

    2022年7月17日
    20
  • minicom的使用

    minicom的使用一、安装sudoapt-getinstallminicom二、配置运行$sudominicom-s便进入了minicom的配置界面,使用上下键选择Serialportsetup,回车。此时光标在“changewhichsetting”后面停留,它的上面有如下菜单:Serialportsetup[Enter]±————————-…

    2022年4月30日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号