波特率误差分析

时间:2022-06-06 23:32:28

http://wenku.baidu.com/link?url=m4Ebs8GM7JOc0jgVICY7joMDT_fhmqAzjV8lQgj40Qkul9Y-JDne-d6wFipxUxFGNbJsp4pR2OHyBVKobk60bhyETDF1qNAmE7uP-U2IvsG


1.串行通讯误差要求
实践表明,当波特率的相对误差小于4.5%时,不会影响数据的正确接收,一般要保证传输的可靠性,要求误差不大于2.5%。


2.误差来源


按照本文原理设置波特率,则误差来源有四,


2      定时器T2启动延迟和停止点的滞后造成的误差△T1;


2      定时器计数本身有一个机器周期的误差△T2=±1;


2      计算X16 定时常数由于8bit单片机计算产生的误差 △X16’;


2      晶体振荡器本身频率的误差


由(E)知道,△X16 = △X16’ +(△T1+△T2)*3/8。


3.误差分析计算


    波特率(实际)=fosc/{32 x [65536-( X16±△X16)]}……………………………..(F)


    波特率相对误差=(波特率(实际) -波特率(理论) )/波特率(理论) x 100%


             1


波特率相对误差=( ----------------------------------- - 1) x 100%………….(G)


     1±△X16 /( 65536- X16)


    由(G)知道,         X16的值越大,则波特率相对误差越大。


                  X16的值越小,则波特率相对误差越小。



关于波特率误差在什么范围内能正常通信的问题

http://blog.sina.com.cn/s/blog_6035432c0100l7ey.html

一般在设波特率是,有时不是很精确,如要求2400bps但2368bps也能通信,但到底是什么范围能通信上,什么范围不能呢?

 

1.这个误差没有关系,只要一个字节(10或11bit)累计误差小于半bit时间即可。因为在发现stop位时一个字节同步接收完成,下一个字节的起始位会重新开始同步。

 

2.就是说把误差控制在5%以内就可以了

 

3.一般控制在2%以内,还要看你的硬件设计情况,不过对于9600BIT的低速率是比较容易的。

 

异步通信而言,
1把原理交待清楚了;2指的是通信双方的合计允许误差3则是考虑了对方的误差,给出一般的设计原则。

 

是异步的,只要能传一个后面就没问题。

因为每一个字节传输完成后都会重新同步上

 

异步的波特率误差不会产生累积效应的