请教有关51单片机波特率发生器T1的问题

[复制链接]
6117|12
 楼主| 心静自然凉 发表于 2010-4-11 19:00 | 显示全部楼层 |阅读模式
RT,晚生看书看到串行口这章,只看懂了T1溢出率计算原理,可还是对串行口工作方式1和3的波特率计算公式=(1/16)·(T1溢出率)(SMOD=1)有些不明白:
为何T1溢出率要经过16分频才作为串行发送或接受的移位时钟呢?
 楼主| 心静自然凉 发表于 2010-4-12 12:20 | 显示全部楼层
liuzenglong 发表于 2010-4-12 13:02 | 显示全部楼层
jiabin1024 发表于 2010-4-12 16:06 | 显示全部楼层
由51单片机内部硬件决定的
 楼主| 心静自然凉 发表于 2010-4-14 12:08 | 显示全部楼层
谢谢LS的回答,晚生愚钝,还是不理解...
jiabin1024 发表于 2010-4-14 16:39 | 显示全部楼层
楼主看了附件你就明白了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
jiabin1024 发表于 2010-4-14 16:40 | 显示全部楼层
我也是搞这个不久哈,大家共同进步!
 楼主| 心静自然凉 发表于 2010-4-15 21:27 | 显示全部楼层
还是很感谢楼上的朋友
不过我问的是16分频的原因
 楼主| 心静自然凉 发表于 2010-4-25 21:24 | 显示全部楼层
冷漠 发表于 2010-4-26 09:13 | 显示全部楼层
看一下异步通信的原理就知道了:接收方在移位进入的每一位数据的中间点进行采样,对于16分频的接收时钟来说,就是采样第8个时钟开始处的数据,默认那一点的数据为正确接收值。(实际上是在7、8、9时钟采样3次,3中取2。)
    那么考虑接收数据传输中的相位偏移,或者发送、接收双方时钟的偏差,接收方时钟从第9个到第16个可以允许超前/滞后7个时钟偏移(这也是接收一个字节11位最大允许时钟偏移误差。之后接收新的字节,偏差重新同步定位。)
    如果没有接收时钟高于传输比特率,也就没有了这种时钟允许偏移,也就是要求接收方时钟与发送方时钟完全同步(同频或共用时钟),并且相位偏移只允许1/2个时钟(粗分)(16分频时是7个,32分频时15个,——精度细分。)当然现在的晶振频率精度是容易做到的,但是传输中造成的相位偏移就没办法克服了。
    由此,产生了高级数据传输通信技术——同步传输。其中有:如若接收方是16分频,也就是说接收方接收时钟大于数据传输比特率16倍,那么在一帧数据开始接收之前(发送方发送同步比特域)接收方就有16次机会修正自己与发送方时钟同步;如若是32分频,接收方就有32次机会修正自己与发送方时钟同步。——分频越高同步越精确。
     如若有心研究这类问题,找一本计算机通信技术的书看看即可,(内容要有锁相环之类的)推荐一本:

《微型计算机数据传输基础与实践》——RS232C/高级规程/远程技术
           【日】宫崎诚一著      陆玉库,于翼译   人邮出版社

评分

参与人数 1威望 +1 收起 理由
心静自然凉 + 1

查看全部评分

 楼主| 心静自然凉 发表于 2010-4-26 17:48 | 显示全部楼层
谢谢!
cxm446749608 发表于 2010-4-26 19:25 | 显示全部楼层
同学习
playjian 发表于 2010-4-26 21:40 | 显示全部楼层
我菜鸟一个 这不是内部硬件结构决定的么 我们要做的不就是计算好波特率以后调用相应的模块就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

1146

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部