侧边栏壁纸
博主头像
沙漠渔

把過去的累積,善用到當下

  • 累计撰写 490 篇文章
  • 累计创建 295 个标签
  • 累计收到 960 条评论
标签搜索

目 录CONTENT

文章目录

串口波特率决定传输一个字节要多久

沙漠渔
2022-05-12 / 2 评论 / 1 点赞 / 252 阅读 / 2,617 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-05-12,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

今天调试设备时,虚拟设备连接串口波特率9600,未考虑到串口传输速度的问题,将长报文发送之后只等待100毫秒立即发送下一个长报文,导致硬监控、对端设备均无法正常识别到正确的报文,于是沟通将延时调整至500毫秒,验证无问题,之后查资料确认了一下,发现确实是等待时间太短导致串口异常,那么串口波特率与实际数据传输速度是什么关系呢?

Baud

“波特”(Baud)本身已是速率,所以不需要写成 Baud Rate(Rate是赘字)。单位“波特”本身就已经是代表每秒的调制数,以“波特每秒”为单位是一种常见的错误,但是在一般中文口语化的沟通上还是常以“波特率”来描述“波特”(Baud)。

波特率可以被理解为一个设备在一秒钟内发送(或接收)了多少码元的数据,它是对符号传输速率的一种度量,表示单位时间内传输符号的个数(传符号率)。通过不同的调制方法可以在一个符号上负载多个比特信息。在计算机网络通信中,比特率指单片机或计算机在串口通信时的速率,指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数模拟线路信号的速率,以波形每秒的振荡数来衡量。如果数据不压缩,波特率等于每秒钟传输的数据位数,如果数据进行了压缩,那么每秒钟传输的数据位数通常大于调制速率,使得交换使用波特和比特/秒偶尔会产生错误。

波特率9600 指的是每秒可以传输9600个二进制位,也就是9600/8个英文字母的数据量,也就是1200个字节,大约1.2KB。

在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是传输通道频宽的指标。 

波特率,可以通俗的理解为一个设备在一秒钟内发送(或接收)了多少码元的数据。它是对符号传输速率的一种度量,1波特即指每秒传输1个码元符号(通过不同的调制方式,可以在一个码元符号上负载多个bit位信息)。

它是对信号传输速率的一种度量,通常以“波特”(baud)为单位。波特率有时候会同比特率混淆,实际上后者是对信息传输速率(传信率)的度量。

波特率可以被理解为单位时间内传输码元符号的个数(传符号率),通过不同的调制方法可以在一个码元上负载多个比特信息。

波特率一般指的是调制解调器的通讯速度。波特率是指线路状态更改的次数。只有每个信号符合所传输数据的一位时,才等于每秒位数。

为了在彼此之间通讯,调制解调器必须使用相同的波特率进行操作。如果将调制解调器的波特率设置为高于其他的调制解调器的波特率,则较快的调制解调器通常要改变其波特率以匹配速度较慢的调制解调器。

传输一个字节要多久

波特率是9600,使用10位异步通信,则每秒可传960个字节,每个字节(字符)1.04毫秒。

传输字节数计算方法

用实际使用中,最常用的串口通讯协议举例,注意前置条件为:1 个起始位,8 个数据位,0 个校验位,1 个停止位,也就是我们常说的:8,N,1;8 个数据位,一个停止位,无校验位。

这个条件分析一下就是,如果我要传输一个字节(8 位)的数据,则我应该在总线上产生 10 个电平变换,也就是串行总线上,需要 10 位,才能发送 1 个字节数据。

1 秒可以发送 9600 位,那么用 9600/10 ,就是1秒可以发送 960 个字节数据,则每发送一个字节需要的时间就是:1/960 ~= 0.00104166…s ~= 1.0416667 ms。

此时就可以得出一个结论,在 9600 波特率下,大概 1ms 发送 1 个字节的数据。

比特率 波特率 数据传输速率区别

比特率

比特率(bit rate)又称传信率、信息传输速率(简称信息速率,information rate)。其定义是:通信线路(或系统)单位时间(每秒)内传输的信息量,即每秒能传输的二进制位数,其单位是比特/秒(bit/s或b/s,英文缩略语为bps)。

在二进制系统中,信息速率(比特率)与信号速率(波特率)相等,例如,当系统以每秒50个二进制符号传输时,信息速率为50bit/s,信号速率也为50Bd(波特)。在无调制的情况下,比特率等于波特率;采用调相技术时,比特率不等于波特率。通信系统的发送设备和接收设备必须在相同的波特率下工作,否则会出现帧同步错误。

波特率

波特率(Baud rate)又称传码率、码元传输速率(简称码元速率)其定义是:通信线路(或系统)单位时间(每秒)内传输的码元(脉冲)个数;或者表示信号调制过程中,单位时间内调制信号波形的变换次数,通常用RB表示,单位是波特(Bd或Baud,前者规范)。如果每秒传输1个码元就称为1Bd;如果1码元的时间长短为200ms,则每秒可传输5个码元,那么码元速率(波特率)就是5Bd。

波特率(码元速率)并没有限定是何种进制的码元,所以给出波特率时必须说明这个码元的进制。对于M进制码元,比特率(信息速率)Rb与波特率(码元速率)RB的关系式为

Rb=RB·lbM

式中:lbM=log2M,表示M的以2为底的对数。显然,对于二进制码元,由于lb2=1,所以Rb=RB,即波特率与比特率在数值上相等,但单位不同,也即二者代表的意义不同。

例如,波特率为600Bd,则在二进制时,比特率也为600bit/s;在四进制时,由于lb4=2,所以比特率为1200bit/s。可见,在一个码元中可以传送多个比特。

数据传输率

数据传输率(data transfer rate)又称数据传输速率、数据传送率。其定义是:通信线路(或系统)单位时间(每秒)内传输的字符个数;或者单位时间(每秒)内传输的码组(字块)数或比特数。其单位是字符/秒;或者码组/秒、比特/秒(可见,当数据传输率用“bit/s”作单位时,即等于比特率)。

例如,在某计算机异步串行通信系统中,数据传输率为960字符/s,每个字符包括1个起始位、8个数据位、1个停止位,则对应的比特率为10×960位/s=9600位/s=9600bit/s;因为是二进制编码,所以对应的波特率也为9600Bd。

1
广告 广告

评论区