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

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

3天内不再提示

确定UART通信的时钟精度要求

星星科技指导员 来源:TI 作者:TI 2023-03-30 11:18 次阅读

本应用笔记讨论了UART中常用串行异步通信协议的时序要求。本文介绍如何确定异步链路两端UART时钟源的容差。

背景

RS-232规范可以追溯到1962年,当时它由电子工业联盟(EIA)首次发布。该规范随着时间的推移而变化,纳入了更高的数据速率,并缩小了电信行业协会 (TIA)、国际电信联盟 (ITU) 和国际标准组织 (ISO) 要求之间的兼容性差距。RS-232规范的当前版本是EIA/TIA-232-F,于1997年<>月发布。

RS-232受益于1970年代后期MSI IC的可用性,MSI IC具有以合理成本处理规范的复杂性。这些IC是通用异步接收发送器(UART)。许多大规模集成(LSI)IC(包括微控制器)现在都包含该功能。

通常情况下,UART的可用性促使业界以非RS-232的方式使用RS-232串行协议。常见示例包括RS-485传输、光隔离传输和使用单端物理层(即0至3.3V而不是±5V或±10V)的传输。本文介绍串行接口的一般时序方面,而不是握手或物理层的应用细微差别。因此,应用笔记适用于所有通用UART应用。

UART定时

典型的UART帧如图1所示。它包括一个起始位、8个数据位和一个停止位。在RS-232应用中也可以使用其他变体。例如,数据包可以是 5、6 或 7 位长,可以有 2 个 STOP 位,或者可以在数据包和 STOP 位之间插入一个奇偶校验位以进行基本错误检测。图1显示了UART的发射数据(TXD)或接收数据(RXD)引脚上的信令。RS-232总线驱动器反相和电平转换,因此逻辑1是总线上的负电压,逻辑0是正电压。

pYYBAGQk_36AV1LsAAAN1UwaGjw195.gif

图1.典型的 UART 数据框。

当两个UART通信时,发射器和接收器都知道信令速度。接收方不知道何时发送数据包(没有接收方时钟);因此,该协议被称为“异步”。接收器电路相应地比发射器电路复杂。发射器只需以定义的比特率输出一帧数据。相反,接收器必须识别帧的开始以同步自身,从而确定比特流的最佳数据采样点。

图2显示了UART接收器将自身同步到接收帧的常用方法。接收UART使用的时钟是数据速率的16倍。新帧由/START位开头的下降沿识别。当信号从高电平有效STOP位或总线空闲状态发生变化时,就会发生这种情况。接收UART在此下降沿上重置其计数器,预期中间START位在8个时钟周期后出现,并预计此后每个后续位的中点每16个时钟周期出现一次。START位通常在位时间中间采样,以检查电平是否仍然很低,并确保检测到的下降沿是起始位,而不是噪声尖峰。另一个改进是对 START 位进行三次采样(时钟计数为 7、8 和 9,共 16 次),而不是仅在中间位位置采样(8 次中的时钟计数为 16)。

poYBAGQk_3-AWCqhAAAUbUIu1eg617.gif

图2.UART接收帧同步和数据采样点。

定时精度

接收UART时钟必须有多准确才能正确接收数据?由于绝对时钟速率对于准确接收并不重要,因此更好的问题是询问发射和接收UART时钟的差异有多大。首先要理解的是,由于UART接收器将自身同步到每一帧的开头,因此我们只关心一帧期间的准确数据采样。除了帧的 STOP 位之外,不会累积任何误差,这简化了分析,因为我们只需要在最坏情况下考虑一帧。

我们什么时候会因为发射-接收时钟不匹配而出现时序错误?我们的目标是在中点对每个位进行采样(图 2)。如果我们过早或过晚采样半个位周期,我们将在位转换处采样并出现问题(图 3)。

pYYBAGQk_4CARS2uAAANp0bPcJM356.gif

图3.UART接收采样范围。

实际上,我们无法可靠地在接近位转移点的地方采样。造成这种情况的主要原因是传输上升和下降时间有限(通常很慢)。如果使用电容过大的电缆,这些时间会变得更慢。长总线会产生高衰减,从而降低噪声容限,并使在位电平建立时采样变得更加重要。

很难定量评估比特周期内最坏情况下可接受的采样范围。EIA/TIA-232-F确实规定了传输的4%比特周期最大压摆时间,但这对于192kbps的长运行很难实现。但出于本应用笔记的目的,我们定义两个数据路径场景。考虑一个“令人讨厌”的情况,它只能在中间50%的位时间内可靠地采样(图4)。这可能相当于长时间的电容式RS-232运行。“正常”场景可以在中间75%的位时间内采样(图5)。这相当于设备机箱内相对良性的总线(例如具有缓冲CMOS逻辑电平的米长总线或RS-485差分对)。

pYYBAGQlB4SAVOP2AAAfYv1C9Eo958.png

图4.UART“讨厌的链接”在50%的位时间内可靠地采样。

pYYBAGQk_4KAJQ_IAAAKnSVoToA607.gif

图5.UART“正常链路”在75%的位时间内可靠地采样。

对于图 4 和图 5,我们可以确定,对于恶劣场景和正常场景,误差预算分别是最佳位中心采样点的 ±25% 和 ±37.5%。此错误相当于 4x UART 接收时钟的 ±6 或 ±16 个周期。此预算中要包括的另一个错误是检测到START位下降沿时的同步错误。UART很可能在检测到START位后,从其16倍时钟的下一个上升沿开始。由于 16x 时钟和接收到的数据流是异步的,因此 START 位的下降沿可能发生在 16x 时钟上升沿之后。或者,下降沿可能发生在时钟上升沿之前,但没有足够的设置时间来使用它。这意味着UART在同步点内置了±1位错误。因此,我们的误差预算从 ±4 或 ±6 个时钟周期减少到 ±3 或 ±5 个周期。

我们假设短期时钟误差(本质上是抖动)非常小,因此我们只考虑中期和长期误差。这些错误指向发送 UART 中的不匹配,并接收在帧期间一致的 UART 时序。由于时序在START位的下降沿同步,因此最坏情况下的时序误差将出现在最后一个数据采样点,即STOP位1。STOP 位的最佳采样点是其位中心,计算公式为:

(每位 16 个内部时钟周期)×(1 个起始位 + 8 个数据位 + 16/9 个停止位)= (5) × (152.<>) = <> UART 接收时钟,位于 START 位的原始下降沿之后。

现在我们可以以百分比形式计算允许的误差。对于正常情况,时钟失配误差可能为 ±5/152 = ±3.3%。对于“讨厌”的情况,它可以是 ±3/152 = ±2%。如前所述,尽管问题会在链路的接收端出现,但时钟不匹配实际上是发送和接收UART之间共享的容差问题。因此,假设两个UART都尝试以完全相同的比特率(波特)进行通信,则允许的误差可以在两个UART之间以任何比例共享。

在同时设计链路两端的系统中,利用允许的误差预算很有帮助。这部分是因为两端的公差是已知的,部分是因为可以进行权衡和节省成本。通常,链路两端的时钟源可以使用精度为±0.5%且在整个温度和寿命范围内漂移为±0.5%的标准低成本陶瓷谐振器。这符合前面讨论的2%的“讨厌”情况。如果系统使用主控制器(通常是微控制器或PC)和标准100ppm晶体振荡器作为UART时钟源,则链路误差可以减少大约一半。小心为内部UART合成波特频率的微控制器。根据微控制器时钟的选择,波特率可能不精确。如果可以确定错误,则可以轻松地将其包含在链路错误预算中。

对 STOP 位进行采样可能看起来很奇怪,但事实确实如此。如果检测到 STOP 位为低电平而不是预期的高电平,则 UART 通常会报告帧错误。

审核编辑:郭婷

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

    关注

    0

    文章

    342

    浏览量

    49488
  • uart
    +关注

    关注

    22

    文章

    1159

    浏览量

    99991
  • 发送器
    +关注

    关注

    1

    文章

    237

    浏览量

    26577
收藏 人收藏

    评论

    相关推荐

    uart通信的详细讲解

    UART(UniversalAsynchronousReceiver/Transmitter,通用异步收发器)是一种常用的串行通信协议,广泛应用于单片机或各种嵌入式设备之间的通信。本文将详细介绍
    的头像 发表于 09-22 08:22 1734次阅读
    <b class='flag-5'>uart</b><b class='flag-5'>通信</b>的详细讲解

    在PSoC4000的UART Bootloader中不能将引导加载程序时钟资源设置为extCLK吗?

    的 CY8C4024AZI-S403 设备。 为了提高 UART 通信时钟精度,系统时钟使用 extCLK 运行。 收到来自
    发表于 01-22 06:52

    基于DS3231的高精度时钟接口设计

    和晶体的实时时钟芯片,因此该方案对那些对计时精度要求极高的应用具有一定的借鉴意义。【关键词】:DS;;IC总线;;实时时钟;;接口;;通信
    发表于 04-24 09:01

    MM32 UART中断通信

    and Transmitter)通用异步收发器(异步串行通信口)是MCU的一个重要的数字接口,市面上很多的传感器、通信模块等外围器件都采用了UART接口,同时工程师在软件开发调试过程中UAR
    发表于 10-12 10:14

    【原创】STM32 UART通信深入探讨

    的实现最为简单,通信的双方不需要严格的时钟配合,只需要设定好波特率就可以了。所谓不需要严格的时钟同步,也就是说通信的双方可以使用各自的时钟
    发表于 07-15 11:13

    AD7606 SPI通信时钟极性和时钟相位要求是什么?

    AD7606的关于SPI通信时钟极性和时钟相位要求是什么? 我的主控芯片采用SPI有AD7606通信,我在数据手册中好像没有看到专门关于S
    发表于 12-01 06:56

    时钟精度要求确定的异步通信-Determining Cloc

    asynchronous communications protocol implemented in UARTs, and shows how to determine the tolerance for the UART clock source at both ends of an
    发表于 04-24 16:19 1367次阅读
    <b class='flag-5'>时钟</b><b class='flag-5'>精度</b><b class='flag-5'>要求</b><b class='flag-5'>确定</b>的异步<b class='flag-5'>通信</b>-Determining Cloc

    niosii的UART串口通信

    niosii的UART串口通信niosii的UART串口通信
    发表于 04-06 17:03 0次下载

    C51的UART 串口通信

    C51的UART 串口通信
    发表于 11-29 12:21 9次下载
    C51的<b class='flag-5'>UART</b> 串口<b class='flag-5'>通信</b>

    UART串口通信

    一、通信特点异步、串行、全双工一般描述某种通信的特点为: 同步/异步 , 串行/并行 , 半双工/全双工同步:要求一个芯片控制另一芯片的时序,一般,两者之间至少采用一个总线连接以控制时钟
    发表于 12-03 12:36 4次下载
    <b class='flag-5'>UART</b>串口<b class='flag-5'>通信</b>

    UART串行通信模式

    UART串行通信模式基础,收发,中断
    发表于 01-14 10:17 7次下载
    <b class='flag-5'>UART</b>串行<b class='flag-5'>通信</b>模式

    I2C与SPI及其UART通信协议之间的区别

    UART和后面两者最大的区别在于后面两者是同步的,要有统一的时钟线,而UART不需要,接线方便,但收发双方都需要配置相同的波特率,即设备要有自己的时钟源;I2C协议中是有地址规则的,因
    的头像 发表于 07-27 17:16 2163次阅读
    I2C与SPI及其<b class='flag-5'>UART</b><b class='flag-5'>通信</b>协议之间的区别

    UART 通信协议的时钟精度要求

    发表于 11-18 23:45 0次下载
    <b class='flag-5'>UART</b> <b class='flag-5'>通信</b>协议的<b class='flag-5'>时钟</b><b class='flag-5'>精度</b><b class='flag-5'>要求</b>

    【世说知识】一文搞懂UART通信协议

    。在双向通信中,我们使用两根导线来进行连续的串行数据传输。根据应用和系统要求,串行通信需要的电路和导线较少,可降低实现成本。本文将UART用作硬件
    的头像 发表于 02-02 10:46 1092次阅读
    【世说知识】一文搞懂<b class='flag-5'>UART</b><b class='flag-5'>通信</b>协议

    网络时钟同步有哪些要求?如何在5G网络中测试时间与时钟同步?

    实现数据的正确传输和协调。 网络时钟同步的要求主要包括以下几个方面: 1. 精度要求:根据不同的应用场景和需求,对网络时钟同步的
    的头像 发表于 01-16 16:03 376次阅读