关于波特率与字节传输速率计算

波特率基本概念

  波特率即每秒发生硬件触发上升沿或下降沿的次数。

        用 9600 波特率来举例,就是最高每秒可以检测到 9600 个电平变化(上升沿/下降沿),也可以说最大每秒可以接收 9600 位数据,bit ,也就是二进制数(0/1),每个电平发生跳变的时钟周期为:1/9600 s.

传输字节数计算方法

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

波特率115200 = 115200 (位/秒)

如果没有校验位,就应该除以 10,得到的是每秒字节数:
波特率115200 = 115200 (位/秒) = 11520 (字节/秒) 

再除以 1024,就是每秒 KB 数:
波特率115200 = 115200 (位/秒) = 11.25 (KB/秒) 

有校验位

上边的例子是没有校验位的情况,如果加上校验位,则前置条件为:1 个起始位,8 个数据位,1个校验位,1 个停止位。

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

如果有一位奇偶校验位,就应该除以 11,得到的是每秒字节数。

最后:
波特率115200 = 115200 (位/秒) = 10.27 (KB/秒)

你可能感兴趣的:(C51,STM32,单片机,嵌入式硬件)