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

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

3天内不再提示

串口通讯波特率出现误差的因素

GReq_mcu168 来源:嵌入式技术开发 作者:嵌入式技术开发 2022-07-03 17:40 次阅读

串口通讯(UART)是一种异步通讯,收发双方需要按照约定的波特率进行通讯。当波特率出现误差时,会导致通讯出错。那导致波特率出现误差的因素都有哪些呢,今天就来分析一下。

1.分频误差

首先,波特率是根据系统时钟分频产生的,而系统时钟和波特率可能不是整数倍的关系,所以分频时也会产生误差。但是目前大部分MCU的系统时钟比较高,一般都在几十MHz,远远大于串口通讯波特率,所以这个误差影响很小。假设MCU时钟为48MHz,波特率为115200,48MHz/115200=416.67,按照417分频,实际波特率为48M/417=115108,误差为(115200-115108)/115200,约为0.08%,这个误差很小,对串口通讯没什么影响。 但是,当系统时钟较低,或者波特率较高时,也就是两者相差倍率较小时,这个误差就不可忽视。 对于一些较早的51内核的MCU,由于运行频率低,采用非整数的晶振(比如11.0592M等)就是为了使用常见波特率时(比如9600、115200),分频的误差尽量小。

2.时钟误差

其次,波特率的主要误差还是取决于系统时钟的误差。那串口通讯对时钟误差的要求有多高呢? 先看串口通讯时序图:

58946374-f39f-11ec-ba43-dac502259ad0.jpg

串口通讯由起始位、数据位、校验位、停止位组成。以常见的8N1为例,即1位起始位,8位数据位,无校验,1位停止位。也就是说传输一个字节需要10bits。每一个字节都有一个起始位做同步,所以误差只会在一个字节内累计。 不难看出,在最后一个位采样时,误差最大,允许极限误差为0.5位。按照每个字节10位计算,最大允许误差为±0.5/10=±0.05,即±5%。考虑到串口通讯涉及收发两端,两端都可能存在误差,所以,每端的误差最好控制在±2.5%以内。 当数据位、校验位等较多时,要求的时钟误差就更高一些。考虑到上面所说的分频误差,一般来说,当时钟误差小于±2%时,串口通信是比较可靠的。

原文标题:UART波特率对时钟精度的要求有多高?

文章出处:【微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

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

    关注

    22

    文章

    1227

    浏览量

    101160
  • 串口通讯
    +关注

    关注

    1

    文章

    258

    浏览量

    24848
  • 波特率
    +关注

    关注

    2

    文章

    294

    浏览量

    34060
  • 误差
    +关注

    关注

    0

    文章

    50

    浏览量

    14358

原文标题:UART波特率对时钟精度的要求有多高?

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32单片机的串口波特率计算方法

    不管是什么单片机,在使用串口通信的时候,有一个非常重要的参数:波特率。什么是波特率波特率就是每秒传送的字节数。双方在传输数据的过程中,波特率
    的头像 发表于 01-05 09:59 2.8w次阅读
    STM32单片机的<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>计算方法

    STM32串口波特率大小计算案例

    波特率的计算 STM32下的波特率串口外设时钟息息相关,USART 1的时钟来源于APB2,USART 2-5的时钟来源于APB1。在STM32中,有个波特率寄存器USART_BRR
    的头像 发表于 10-23 14:19 8192次阅读
    STM32<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>大小计算案例

    什么是串口波特率串口波特率的分类及应用详解

    什么是串口波特率串口波特率是指串口通信系统中传输数据的速率。在UART串口通信中,数据以位(bi
    的头像 发表于 08-08 10:09 5751次阅读
    什么是<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>?<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>的分类及应用详解

    串口波特率计算工具下载

    串口波特率计算工具
    发表于 03-11 09:38 179次下载

    晶振的最大波特率及其误差介绍

    晶振的最大波特率及其误差介绍 用11.0592M和22.1184M,这样在通讯的时候误差最小。Crystal(MHz) MaxBaudRate Error1.000000   300
    发表于 08-12 00:45 3895次阅读

    串口通讯实际的波特率测量

    平时使用串口打印出现乱码的绝大部分原因是串口波特率没对。那么我们怎么测量实际的波特率呢?在这之前,顺便一起回顾一下
    的头像 发表于 04-04 17:27 7082次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>通讯</b>实际的<b class='flag-5'>波特率</b>测量

    串口波特率计算详解

    STM32下波特率计算详解波特率的计算    STM32下的波特率串口外设时钟息息相关,USART 1的时钟来源于APB2,USART 2-5的时钟来源于APB1。在STM32中,有
    发表于 12-05 09:06 22次下载
    <b class='flag-5'>串口</b><b class='flag-5'>波特率</b>计算详解

    串口波特率误差产生的原因

    UART全称Universal Asynchronous Receiver/Transmitter,通用异步收发器,是一种非常常见的异步收发协议,在嵌入式领域应用十分广泛。收发双方按照约定好通讯波特率进行配置,如果波特率不匹配会
    的头像 发表于 04-13 16:20 5657次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>波特率</b><b class='flag-5'>误差</b>产生的原因

    波特率是什么?波特率设计

    从宏观理解,波特率表征了串口的传输速度。
    的头像 发表于 06-05 15:19 2.5w次阅读
    <b class='flag-5'>波特率</b>是什么?<b class='flag-5'>波特率</b>设计

    什么是波特率?为什么要设置波特率

    欢迎来到东用知识小课堂!一、什么是波特率波特率(BaudRate)单位bps是用于衡量串口通信速度的单位,它表示每秒钟发送的比特数。如果一个串口
    的头像 发表于 04-08 00:00 6649次阅读
    什么是<b class='flag-5'>波特率</b>?为什么要设置<b class='flag-5'>波特率</b>?

    串口传输速率低于波特率怎么办 串口通信的波特率如何设置

    如果串口传输速率低于波特率,您可以尝试以下方法来解决问题:   1. 检查硬件连接:确保串口连接正确且牢固。检查连接线是否完好,确保没有松动或断开的接触。   2. 检查波特率设置
    的头像 发表于 09-08 16:23 5966次阅读

    什么是串口波特率串口通信为什么要设置波特率

    在电子设备的世界中,数据是通过各种方式进行传输的。其中,串口通信是一种常见的数据传输方式,它以其简单、可靠和广泛的特性,成为了电子设备间通信的重要手段。而在串口通信中,有一个非常重要的参数——波特率
    的头像 发表于 11-03 08:21 4759次阅读
    什么是<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>?<b class='flag-5'>串口</b>通信为什么要设置<b class='flag-5'>波特率</b>?

    什么是串口波特率串口通信为什么要设置波特率

    什么是串口波特率串口通信为什么要设置波特率波特率与比特的关系 如何选择
    的头像 发表于 01-22 16:10 1954次阅读

    如何使用示波器测量串口波特率

    在通信和电子测量领域,串口波特率是一个至关重要的参数,它决定了数据在串行通信线上的传输速率。使用示波器来测量串口波特率是一种常见且有效的方法,尤其是在没有专业
    的头像 发表于 05-27 16:25 4394次阅读

    串口通信中的波特率你真的了解吗?差距竟如此重要!

    波特率串口通信中的作用在串口通信中,波特率起着至关重要的作用。因为在传输数据时,发送方和接收方需要以相同的波特率进行通信。如果两端的
    的头像 发表于 08-27 11:46 1146次阅读
    <b class='flag-5'>串口</b>通信中的<b class='flag-5'>波特率</b>你真的了解吗?差距竟如此重要!