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


相关推荐

  • html弹性盒子布局,div+css3弹性盒子(flex box)布局「建议收藏」

    html弹性盒子布局,div+css3弹性盒子(flex box)布局「建议收藏」一、CSS3弹性盒子(FlexBox)弹性盒子是CSS3的一种新布局模式。CSS3弹性盒(FlexibleBox或flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。首先要明白几个概念:主轴:Flex容器的主轴主要用来配置Flex项目,默…

    2025年6月20日
    7
  • matlab编写一个求和循环函数_matlab累加求和

    matlab编写一个求和循环函数_matlab累加求和matlab求和的出错symsum是符号运算,要先用syms定义符号变量用法详见docsymsummatlab求和.符号运算通过符号运算把这个式子拆开什么意思呢?sum(sum(B.*W))即可运算出再问:亲的回答非常好,但是你回答的里面w只有一个,我想变成W11,W12,W13…..这样加起来的一个式子。还有如何一次matlab中for循环如何改为sum求和sum(u1(1:N-1))再问…

    2022年10月7日
    3
  • Celery 框架学习笔记

    Celery 框架学习笔记在学习Celery之前,我先简单的去了解了一下什么是生产者消费者模式。生产者消费者模式在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是

    2022年8月4日
    7
  • com组件与dll的区别_组件对象模型

    com组件与dll的区别_组件对象模型这阵子在想一个需要利用com组件的小程序怎么做,突然想起上次去面试的时候考官问过autocad开发时为什么要利用com,而不采用一般的dll呢?   到google上查了一下,许多人也问了一样的问题:)   用com来写程序要比普通的dll麻烦一些,但是带来的好处也大很多,尤其是在开发像autocad这样大型软件的时候,需要跨区域来协同工作。 “学习COM,首先要知道COM的目的是什么,它

    2025年8月9日
    3
  • Java数据结构与算法(10) – ch05链表实现队列(Link Queue)

    Java数据结构与算法(10) – ch05链表实现队列(Link Queue)

    2021年9月2日
    70
  • android系统签名及修改

    android系统签名及修改系统签名文件目录:build/make/target/product/security主要签名文件media.pk8media.x509.pemnetworkstack.pk8networkstack.x509.pemplatform.pk8platform.x509.pemreleasekey.pk8releasekey.x509.pemshared.pk8shared.x509.pemtestkey.pk8testkey.x509.p…

    2022年6月21日
    166

发表回复

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

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