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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java事务总述_什么是先总述后详述

    java事务总述_什么是先总述后详述java事务总述一、java事务概述1.1、java事务简述1、简介事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列SQL操作,这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行。如果任何一个SQL操作失败,那么整个操作就都失败,所有操作都会回滚到操作前状态,或者是上一个节点。2、java事务和数据库事务的关联实际上,一个Java应用系统,如果要操作数据库,则通过JDBC来实现的。增加、修改、删除都是通过相应方法间接来实现的,事务的控制也相应转移到Java程序代码中。因

    2022年8月31日
    4
  • linux网络重启失败「建议收藏」

    linux网络重启失败「建议收藏」问题:网络重启失败如下:[root@localhost~]#systemctlrestartnetworkJobfornetwork.servicefailedbecausethecontrolprocessexitedwitherrorcode.See”systemctlstatusnetwork.service”and”journalctl…

    2022年10月21日
    2
  • idea mac 常用快捷键[通俗易懂]

    #IDEAMacOS全局查找快捷键shift+Command+F#全局类名称搜索shift+shift(没有发生变化)#移动代码行方式一:shift+command+⬆️或者⬇️方式二:shift+option+⬆️或者⬇️#光标在代码中间,将光标移动到行尾并且自动添加行尾结束符号;shift+command+return(这里不会进行换行操作,eclipse上面会进行换行操作)#代码美化o…

    2022年4月15日
    226
  • C++11 decltype 的用法

    C++11 decltype 的用法文章目录decltype的意义decltype的用法1.推导规则2.举例说明3.模版案例更多细节问题C++14取消decltype其他decltype的意义参考博客:C++11新标准:decltype关键字有时我们希望从表达式的类型推断出要定义的变量类型,但是不想用该表达式的值初始化变量(如果要初始化就用auto了)。为了满足这一需求,C++11新标准引入了decl…

    2025年9月6日
    4
  • mac安装homebrew教程_mac安装homebrew失败

    mac安装homebrew教程_mac安装homebrew失败Homebrew是一款MacOS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。一、Homebrew安装与卸载安装$/bin/bash-c”$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install.sh)”安装报错这个,试试连接梯子:curl:(7)Failedt.

    2025年7月10日
    1
  • console.writeline的功能(writeline用法)

    输入cw,然后按两次tab效果图

    2022年4月16日
    58

发表回复

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

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