全站数据
8 4 2 0 5 8 1

串行通信波特率由什么决定

spark的学习部落... | 简单学习,快乐成才!         
问题更新日期:2024-10-12 05:34:25

问题描述

串行通信波特率由什么决定急求答案,帮忙回答下
精选答案
最佳答案

串行通信中,当规定了传输速率以后,波特率的设置与系统使用的振荡频率有着很重要的作用,可直接影响通信的成功与失败。当双机约定了传输速率为9600 b/s时,若系统振荡频率为12 MHz或6 MHz,PC机的波特率为9 600 b/s,而单片机实际的波特率大于(或小于)9 600 b/s.则波特率误差为8.5%。也就是说,若PC机以101.17 μs的时间发送一位数据,则单片机以96 μs的时间接收一位数据。在接收一帧数据的过程中,由于误差的累积,则产生了错码。

我们知道,在单片机的串行接收方式(1、2、3)中,CPU以16倍波特率的采样速率不断对接收数据(RxD)采样,一旦检测到由1到0的负跳变,16分频计数器立刻复位,使之满度翻转的时刻恰好与输入位的边沿对准。

16分频计数器把每个接收位的时间分为16份,在中间三位即7、8、9状态时,位检测器对RxD端的值采样,并以3取2的表决方式,确定所接收的数据位。这3个状态,理论上对应于每一位的中间段,若发送端与接收端的传输速率不一致,就会发生采样偏移。这种传输速率的误差在允许范围内不致产生错位或漏码;但当误差超出允许范围时,便会发生错位,使接收的某数据重复接收,因而产生接收数据错。