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

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

3天内不再提示

115200的波特率,为啥实际速度只有11KB/s?

达泰电子 来源:达泰电子 作者:达泰电子 2025-09-10 11:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

波特率≠真实速度!

这几个概念确实容易混淆,但它们描述的是通信过程中不同层面的速率指标。让我们一起来理清楚它们的区别和联系↓

主要区别解析

比特率 (Bit Rate):

指每秒传输的二进制比特数量。

单位为 bps (Bits Per Second)。常用单位包括 Kbps、Mbps、Gbps。

比特率越高,每秒传输的原始数据量就越大。

核心:衡量原始信息(比特)传输的速率。

波特率 (Baud Rate):

指每秒传输的信号码元 (Symbol) 数量。

单位为 波特 (Baud)。

一个码元是携带数据信息的基本信号单元(例如,特定的电压电平、相位或频率状态)。

波特率反映的是物理层信号状态变化的速率。

关键点: 一个码元可以携带一个或多个比特的信息(取决于调制技术)。波特率 ≠ 比特率。

传输速率 (Transmission Rate / Data Rate):

这是一个通用术语,通常指比特率,即每秒传输的有效信息比特数。

在更精确的上下文中,它也可以指考虑了通信协议开销(如帧头、校验码、确认信号等)后,用户实际可用的有效数据吞吐量。这个值通常低于原始的比特率。

通信速度 (Communication Speed):

这是一个非常宽泛且口语化的术语,泛指数据传输的快慢。其具体含义高度依赖上下文:可能指波特率 (例如,“RS-232 接口的通信速度设置为 9600 Baud”)。通常指比特率 (例如,“以太网的通信速度是 100 Mbps”)。

有时指用户感知到的有效传输速率 (例如,“下载文件时的通信速度是 10 MB/s”)。

在特定接口规范中,也可能指其时钟频率 (例如,“I²C 标准模式通信速度为 100 kHz” 指的是时钟频率,其比特率低于此值)。

比如在以下方案中无线通讯终端的通信速度在50mS,这里指的就是有效传输速率 。

以我们常用的I²C场景为例,速率400KHz;比特率I²C的比特率是400K,因为I²C的每个周期指传输一个数据(在SCL稳定期间读取SDA上的数据);波特率I²C由属于NRZ编码,1符号=1比特,所以比特率=波特率,I²C的波特率=400K;传输速度I²C的数据包为:1个起始位 + 7位地址 + 1位读写标志 + 1位ACK + 8位数据 + 1位ACK + 停止位(不占位)=19位,也就是19位中只有8为数据位,所以速率:8/19*400K=168Kbit/s(约21KB/s);通信速度I²C的的CLK频率是400K,这个就是I²C的通信速度。

再以常用的串口波特率115200为例:

波特率 (Baud Rate):

波特率设置为 115200 Baud,表示信号每秒变化 115200 次,即每秒传输 115200 个码元 (Symbol)。

比特率 (Bit Rate):

在标准的异步串行通信(如UART)中,通常采用 NRZ (Non-Return-to-Zero) 编码。在这种编码下,一个码元代表一个比特 (1 Symbol = 1 bit)。

因此,波特率115200 Baud 等同于比特率 115200 bps (Bits Per Second)。

有效数据传输速率 (Effective Data Rate / Throughput):

帧结构变为:起始位 (1) + 数据位 (8) + 奇偶校验位 (1) + 停止位 (1) = 11个比特位。

有效数据传输速率:115200 bps / 11 bits/byte = 10472.73 Bytes/s ≈ 10472.73 / 1024 ≈ 10.23 KB/s。

原始比特率 / 每字节总比特数 = 115200 bps / 10 bits/byte = 11520 Bytes/s。

换算为KB/s (1 KB = 1024 Bytes):11520 Bytes/s / 1024 ≈ 11.25 KB/s。

1个起始位 (Start bit) + 8个数据位 (Data bits) + 1个停止位 (Stop bit) = 10个比特位。

实际的有效数据吞吐量需要考虑帧结构带来的协议开销。以一个典型的无校验数据帧为例:

其中,只有8个数据位承载有效信息。因此,传输一个字节(8位有效数据)需要消耗10个比特的传输时间。

有效数据传输速率计算:

如果启用奇偶校验位 (Parity bit):

帧结构变为:起始位 (1) + 数据位 (8) + 奇偶校验位 (1) + 停止位 (1) = 11个比特位。

有效数据传输速率:115200 bps / 11 bits/byte = 10472.73 Bytes/s ≈ 10472.73 / 1024 ≈ 10.23 KB/s。

(波特率: 想象成卡车在高速公路上进出收费站的频率。每个符号携带的比特数: 想象成每辆卡车装载的货物箱数。

比特率: 就是每秒通过收费站的总货物箱数(车次/秒 × 箱数/车次 = 箱数/秒)。这就是“传输速率”的核心。

通信速度: 货物最终送到你仓库的速度。这受到收费站效率(协议开销)、交通状况(网络拥塞)、仓库卸货速度(接收端处理能力)等影响,可能比收费站放行的总箱数(比特率)要慢一些。)

总结与关键点

波特率是物理信号变化的速率 (Symbol Rate)。

在NRZ编码的串口通信中,波特率 = 比特率 (bps)。

用户实际可用的数据传输速率 (有效吞吐量) 远低于波特率/比特率,必须根据具体的帧格式(起始位、数据位、校验位、停止位的数量)来计算。

上述计算仅讨论了二进制数据(每个数据位代表0或1)在无额外编码(如Manchester)和理想信道(无错误、无流控延迟)下的理论最大值。 实际应用中,还需考虑以下因素:

1.协议开销: 更复杂的协议(如Modbus RTU over UART)会添加地址、功能码、CRC校验等额外字段,进一步降低有效吞吐量。

2.流控机制: RTS/CTS 或 XON/XOFF 流控引入的握手延迟。

3.错误重传: 数据出错导致的重复传输。

4.系统延迟: 发送端和接收端硬件、软件处理数据引入的缓冲和调度延迟。

5.编码方式: 如果使用了非NRZ编码(如曼彻斯特编码),则一个码元可能仅代表0.5个比特,波特率与比特率的关系将发生变化。

审核编辑 黄宇

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

    关注

    2

    文章

    319

    浏览量

    35445
  • 比特率
    +关注

    关注

    1

    文章

    33

    浏览量

    10987
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请问支持小数波特率接收数据的意义在哪儿?

    我看芯源支持小数波特率,话说,支持小数波特率接收数据的意义在哪儿?是通讯更有精度吗?
    发表于 12-02 07:17

    UART波特率计算及UART收发回显实验

    决定串口波特率的寄存器有BRR(Bite Rate Rigister),SEMR(Serial Extended Mode Rigister)和MDDR(Modulation Duty
    的头像 发表于 10-17 09:51 2400次阅读
    UART<b class='flag-5'>波特率</b>计算及UART收发回显实验

    串口波特率设置1200用不了是怎么回事?

    mcu:stm32f407zg 调试时,设置波特率为1200,而串口输出为乱码,电脑设置波特率19200来接收mcu的数据,却能接收正确; (我以前没有用RTT时,用stm32f103rct6
    发表于 09-23 07:19

    请问如何使用低功耗 UART (LP UART) 波特率补偿?

    如何使用低功耗 UART (LP UART) 波特率补偿?
    发表于 08-21 07:05

    波特率是什么

    波特率是串行通信中的一个核心参数,用于描述数据在传输线路上的传输速率。以下从定义、单位、与比特的关系、实际应用及设置注意事项等方面进行详细说明: 一、定义与本质 波特率(Baud R
    的头像 发表于 07-22 11:11 5826次阅读

    可编程电源的通信波特率应如何设置?

    115200bps),并通过测试验证最佳参数。以下是具体设置方法与注意事项:一、波特率设置的核心原则 设备兼容性优先 查阅手册:确认电源支持的波特率范围(如Keysight N6700系列
    发表于 07-07 15:01

    基于瑞萨64位MPU RZ/G2L的uboot串口多波特率支持介绍

    本文主要介绍基于瑞萨64位MPU RZ/G2L,讨论uboot下非常规波特率115200的支持方法,用于解决客户对uboot下特殊波特率的需求,供客户参考。
    的头像 发表于 07-04 15:54 2773次阅读
    基于瑞萨64位MPU RZ/G2L的uboot串口多<b class='flag-5'>波特率</b>支持介绍

    Embedded Coder Support Package是否支持CAN唤醒和波特率配置?

    Embedded Coder Support Package 是否支持 CAN 唤醒和波特率配置?
    发表于 04-09 06:25

    STM32U575串口接收+GPDMA波特率不匹配怎么解决?

    我用CubeMX配置的串口+GPDMA接收,115200波特率正常能用, 然后如果波特率设置错误为9600,再改回来115200,接收就不能用了,调试好像时DMA出错了,然后启用HAL
    发表于 03-07 07:59

    CAN总线十万个为什么 | CAN自定义波特率有什么用?

    导读CAN总线通信中,波特率一致并不总能保证通信顺畅。本文将揭秘自定义波特率的原理和应用,探讨如何通过优化采样点和提高容忍度解决通信问题,助力工程师提升通信稳定性。通常情况下,CAN总线通信只需确保
    的头像 发表于 02-07 11:36 1105次阅读
    CAN总线十万个为什么 | CAN自定义<b class='flag-5'>波特率</b>有什么用?

    异步串行接口有哪些,异步串行接口为何需要波特率

    在现代电子通信领域,异步串行接口作为数据交换的一种基本方式,广泛应用于各种嵌入式系统、计算机设备以及远程通信网络中。本文将深入探讨异步串行接口的主要类型,并解析为何波特率在异步串行通信中扮演着至关重要的角色。
    的头像 发表于 01-29 14:47 1589次阅读

    AN-891: ADuC703x系列LIN波特率计算

    电子发烧友网站提供《AN-891: ADuC703x系列LIN波特率计算.pdf》资料免费下载
    发表于 01-14 15:53 0次下载
    AN-891: ADuC703x系列LIN<b class='flag-5'>波特率</b>计算

    请问MSC1210串口UART1如何设置波特率

    如题,MSC1210的手册上面有提到,UART0的波特率可以进行选择,可选择为T1的溢出作为波特率的设置,但是UART1的波特率如何设置?是和UART0的波特率一样吗?还是需要其他
    发表于 01-02 08:27

    RS232接口速度与距离的关系

    (如RTS、CTS、DTR、DSR等)。RS-232接口是单向的,即一个设备发送数据,另一个设备接收数据。 速度波特率波特率是指每秒钟传输的符号数,它是衡量RS-232接口速度
    的头像 发表于 12-18 18:16 2732次阅读

    RS232通信的波特率设置说明

    RS232通信的波特率设置是确保数据正确传输的关键参数之一。以下是对RS232通信波特率设置的说明: 一、波特率的概念 波特率是指每秒传输的比特数(bps),是衡量数据传输
    的头像 发表于 12-10 16:26 6432次阅读