波特率的计算方式

波特率的计算方式 微机原理中波特率怎么计算?

波特率计算公式大全?

微机原理中波特率怎么计算?

在串行通信中,收发双方对发送或接收的数据速率要有一定的约定, 我们通过软件对MCS- 51串行口编程可约定四种工作方式。其中,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率决定。

串行口的四种工作方式对应着三种波特率。由于输人的移位时钟的来源不同,所以,各种方式的波特率计算公式也不同。

1、方式0的波特率

方式时,移位时钟脉冲由56 (即第6个状态周期,第12个节拍)给出,即每个机器周期产生一个移位时钟,发送或接收一-位数据。所以,波特率为振荡频率的十二分之一, 并不受PCON寄存器中SIMOD的影响,即:方式0的波特率=fosc/12

2、方式2的波特率

串行口方式2波特率的产生与方式0不同,即输入时钏源的频率不同,控制接收与发送的移位时钟由振荡频率Foec的第二节拍P2 (即]

Foec/2)给出,所以,方式2波特率取决于PCON中smOD位的值,当SMOD=0时 ,波特率为Foec的六十四分之- -若sMOD=1,则波特率为Foec的三十二分之一,即:方式2的波特率=2smod/64*Foeco

3、方式1和方式8的波特率

方式1和方式3的移位时钟脉冲由定时器r1的溢出率决定,故波特宰由定时器T1的溢出率与sMOD值同时决定,即:方式1和方式3的波特率=2SMOD/32 -T1溢出率。

其中,溢出率取决于计数速率和定时器的预置值。计数速率与TMOD寄存器中c/T的状态有关。当c/T=0时,计数速率=fosc/2当C/T=1时,计数速率取决于外部输入时钟频率。

串行异步通信的波特率公式?

在信息传输通道中,携带数据信息的信号单元叫作码元(因为串口是1bit进行传输的,所以其码元就代表一个二进制数),每秒通过信号传输的码元数称为码元的传输速率,简称“波特率”,常用符号“Baud”表示,其单位为“波特每秒”(Bps)。串口常见的波特率有4800、9600、115 200等,此处我们选用9600的波特率进行讲解。

通信信道每秒传输的信息量称为位传输速率,简称“比特率”,其单位为“每秒比特数”(bps)。比特率可由波特率计算得出,公式为

比特率=波特率×单个调制状态对应的二进制位数

如果使用的是9600的波特率,其串口的比特率为

9600Bps×1bit = 9600bps

由计算得串口发送或者接收1bit数据的时间为一个波特,即1/9600s,如果用50MHz(周期为20ns)的系统时钟来计数,需要计数的个数为cnt = (1s×10**9)ns/9600bit)ns/20ns ≈ 5208个系统时钟周期,即每位数据之间的间隔要在50MHz的时钟频率下计数5208次。

上位机通过串口发送8bit数据时,会自动在发8bit有效数据前发一个波特时间的起始位,也会自动在发完8bit有效数据后发一个停止位。同理,串口助手接收上位机发送的数据前,必须检测到一个波特时间的起始位才能开始接收数据,接收完8bit的数据后,再接收一个波特时间的停止位。