立创社区LOGO

论坛首页 > 交流专区 > 技术交流 > 串口的波特率最大偏差多少,就失效?
 返回列表
查看: 30210
回复: 11
串口的波特率最大偏差多少,就失效?
立创商城工程部
【官方工作人员】
113
主题
1325
回复
发表于2017-10-12 18:01:16 | 只看该作者
1# 电梯直达


这2个商品是否能互换? “

“你们卖的IC是否是正品?

我的产品以前用到的这个IC一直很正常,最近这批功能失效,请帮忙分析。。


立创商城的在线技术客服人员,每天就是这样,都很忙的。。

每天都可以接到来自天南地北、五湖四海的用户各色各样的咨询或投诉。


最近接触到2个类似的问题,都是由于单片机内部的RC时钟引起的误差而导致的产品失效,比如 Uart串口通信(常温不可以通信,温度高才行)、Watchdog看门狗复位失灵等等。

考虑到之前,常听到不少网友疑惑类似这样的问题串口波特率的最大偏差多少,对方就不能接收了或出错了?


其实这个问题,可以简单成这样的数学逻辑,先看下最常见的10位串口的输出时序( 1个起始位 + 8个数据位  + 1个停止位 )

以上图中,绿色箭头是采样时间点。

关于这个采样点,不同的IC芯片或许有些不同,但多数是是以16倍的目标波特率,"等时”进行采样N个点,N个点一样就认为该位的电平采样值是对的,而且多数是采样位的中点。


具体来说,串口波特率的最大偏差多少,对方就不能接收了或出错了呢?

实际上,可以简单认为是这样:



如上图所示,我们要确保实际波特率对应的 t0 ~ t9 时区段,都分别落在对方波特率的采样点的范围内

即:

第1个位的采样点应该落在这个区间: [ 0~ t0  ]

第2个位的采样点应该落在这个区间: [ t0~ t1 ]

第3个位的采样点应该落在这个区间: [ t1~ t2]

以此类推。。。。


为此,今天大概花费了一点点时间,做了一个简单的程序演示,输入正常的波特率,就可以推算出最大或最小的波特率的数值,还有偏差率。

从多个常见的波特率推送来看,最大偏差一般在5% 以内都可以正常通信。

但考虑到不同芯片的采样点的方式有所不同,以及一帧的串口位不同(数据位越长,累计的偏差会更多),这个值还得具体分析,建议大家确保波特率控制在2%以内最好。


看看这个视频演示

http://v.youku.com/v_show/id_XMzA4MDg4ODc1Ng==.html?firsttime=4&qq-pf-to=pcqq.c2c#paction


对应的代码片段:

void CTestBaudDlg::OnButton2() 
{
// TODO: Add your control notification handler code here

float Ibit[10]; //------ 存储时间波特率的时间点
float Sbit[10]; //------ 存储标准波特率的采样点

float  sBaud=115200.0;
float  iBaud=115200.0;
unsigned char n,i;

CString str;


UpdateData(true);
float k = (float)atof(m_EDIT1.GetBuffer(0)); //---- 取得标准波特率的值

iBaud = k;
sBaud = k;

str.Format("最初的 iBaud = %f", iBaud);
m_EDIT1.Format(str);

//------------------- 标准采用的时间点, 每个Bit对应的时间点
for(n=0;n<10;n++)
{
        Sbit[n]= (2*n+1)/(2*sBaud);
}

while(1)
{

//------------------- 计算实际输入的波特率,每个Bit对应的时间段
for(n=0;n<10;n++)
{
        Ibit[n]= (n+1)/iBaud;
}

//-------------------------- 判断
i = 0;
if( Sbit[0] <= Ibit[0]) i++;
for(n=1;n<=9;n++)
{
       if((Sbit[n] >= Ibit[n-1]) && (Sbit[n] <= Ibit[n]) )i++;
}
    
if(i !=10)break;

iBaud +=1;  //---- 扫描方式,模拟波特率的变动

  }

str.Format("最后的 iBaud = %f", iBaud-1);
m_EDIT2.Format(str);

str.Format("rate=%f",((iBaud-sBaud-1)*100)/sBaud); //---- 最大偏差率
 m_EDIT3 = str + "%";

UpdateData(false); //--- 更新和输出结果

}




  串口 波特率 偏差
回复 收藏 举报
好大的风
3
主题
64
回复
发表于2017-10-12 23:23:37   |  只看该作者
2#

刚才测试了CH340C,无需外部晶振,在921600速率下传输几百KB的数据,非常稳定可靠。

之前我一直用进口原装的CP2104,,怀疑国产芯片的水平,现在看来,国产芯片也是非常强大了。

回复 举报
ChessWorld
36
主题
820
回复
发表于2017-10-13 09:23:29   |  只看该作者
3#
好大的风 发表于2017-10-12 23:23:37  2# 刚才测试了CH340C,无需外部晶振,在921600速率下传输几百KB的数据,非常稳定可靠。之前我一直用进口原装的CP2...

波特率 921600 也相当于 92KB,传输几百KB的数据,也就是几秒左右。 

CH340我很少用,不知道性能如何,你最好尝试连续传输几个小时看看。

回复 举报
香喷喷的猪
0
主题
12
回复
发表于2017-10-16 10:46:25   |  只看该作者
4#
误差必须少于5%。当串口抖动的时候,CH芯片和某些低端的串口卡,兼容性稍差。可能和采样的算法有关系。
回复 举报
香喷喷的猪
0
主题
12
回复
发表于2017-10-16 10:51:13   |  只看该作者
5#
起始位+数据+停止位 ,共十位,至少4倍频才能正确采集,那么一个数据包至少采集40次,如果按照采集4次,有连续三个电平稳定确定为0或者1,频率误差就不能超过两个采集间隔。也就是大约正负5%。实际情况跟采样方式有关系,也可能会更加严格。
回复 举报
我爱游戏机
0
主题
2
回复
发表于2017-10-20 05:35:30   |  只看该作者
6#
分析 的 透彻,学习了
回复 举报
薛定谔的cat
5
主题
29
回复
发表于2017-10-25 16:18:03   |  只看该作者
7#
CH340G已经用了将近50K,最近换了CH340C,都没有问题,大家完全可以放心,都是921600的跑的 妥妥的
回复 举报
菜头电子
41
主题
315
回复
发表于2017-11-05 19:13:31   |  只看该作者
8#
厉害,我有些都是9600
回复 举报
MY360
0
主题
2
回复
发表于2017-12-04 09:49:53   |  只看该作者
9#
还是相信FT232
回复 举报
power
0
主题
49
回复
发表于2017-12-19 14:37:07   |  只看该作者
10#

USB转串口,无非三个部分:1. 串口收发  2. USB协议处理 3. PC驱动。

第一部分,我自己用FPGA都写过,简单得不能再简单,用了几年了,没有出过问题。

第二部分,做了这么多年,该踩的坑应该都踩了吧?

第三部分,看似很简单,但是总是容易有兼容性问题,不知道为什么。


功能上就这三点。但是像ESD之类的问题还是要考虑,还有就是可能芯片本身没有问题,设计本身太省料导致稳定性有问题,很多人也会归到芯片头上。

我觉得这个领域,国产芯片应该慢慢可以相信了。

回复 举报
伟伟
10
主题
58
回复
发表于2017-12-19 15:12:59   |  只看该作者
11#
CH340 使用内部振荡器要能在-20-85度范围内还能正常工作你试试?!
STD12NF06LT4,3V就可以完全控制导通的12A N-MOS管。http://club.szlcsc.com/article/details_1796_1.html
回复 举报
凌青檀18
0
主题
1
回复
发表于2020-05-08 20:32:56   |  只看该作者
12#

那段代码怎么用呀


回复 举报
 返回列表

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部

聚圣源企业理财昶是什么意思如何起名国画山水起名睿字起名不好小公狗起名字灵蛇爱起名网站 生辰八字起名字一一姓黄的女孩名字属牛起名北宋生活顾问2元店起名森奈奈子五行属火的字女孩起名不负众望石墓阵怎么走大江大河2剧情大结局个人消费贷款lol日服起名最终幻想12国际版测试起名的吉凶何姓起名俞恩傅廷远免费阅读小说笔画8绘制的字起名亚克力浴缸免费起名字的网站的名旅馆起名给酒起名字男孩起名李昊什么东成西就粤语极黑的布伦希尔德淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化