社区导航

 
查看: 1070|回复: 26

[讨论] 为什么在单片机串口通信时,经常选用11.0592MHz的晶体?

  [复制链接]

6741

TA的帖子

4933

TA的资源

博客管理员

Rank: 6Rank: 6

资源大师勋章

发表于 2018-5-24 16:29:41 | 显示全部楼层 |阅读模式
本帖最后由 tiankai001 于 2018-5-25 09:50 编辑

为什么在单片机串口通信时,经常选用11.0592MHz的晶体?

01.jpg 02.jpg


关于这个问题,其实我们要思考的有很多,例如:为什么波特率要定义为9600,115200等这些值,如果定义为1000,10000岂不是更方便计算?
下面这个朋友说的很有道理,值得我们深思。
回复即可查看,

游客,如果您要查看本帖隐藏内容请回复

此帖出自单片机论坛


回复

使用道具 举报

5

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2018-5-24 16:56:07 来自手机 | 显示全部楼层
因为对其整数分频后可以得到4800,9600,57600等常用波特率。

点评

其实仔细分析波特率一系列值的规律,就可发现,波特率一般都是2倍的关系  详情 回复 发表于 2018-5-25 10:15


回复

使用道具 举报

3307

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-5-24 16:57:35 | 显示全部楼层
传统51最大工作频率是12M,小于此数值最整的数就是这个,串口可以最高工作在115200

点评

51单片机晶振频率和实际工作频率是12倍的关系  详情 回复 发表于 2018-5-25 10:18


回复

使用道具 举报

1729

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2018-5-24 17:01:52 | 显示全部楼层
就是为了分频得到常见的波特率

点评

是为了得到准确的波特率,对于51来说,是让定时器的值能够是整数  详情 回复 发表于 2018-5-25 10:19


回复

使用道具 举报

1万

TA的帖子

0

TA的资源

maychang

Rank: 6Rank: 6

发表于 2018-5-24 17:08:59 | 显示全部楼层
为了分频后得到准确的常用波特率。

点评

不是分频  详情 回复 发表于 2018-5-25 10:19


回复

使用道具 举报

1万

TA的帖子

15

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-5-24 19:52:42 | 显示全部楼层
为了波特率准确
http://shop34182318.taobao.com/


回复

使用道具 举报

4182

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2018-5-25 09:35:53 | 显示全部楼层
这个一方面是为了有一个精确的指令周期(我记得是),另一方面,是为了串口,定时器等能实现精确定时和准确的串口波特率

点评

为了让定时器的值是整数,这样更准确  详情 回复 发表于 2018-5-25 10:20


回复

使用道具 举报

6741

TA的帖子

4933

TA的资源

博客管理员

Rank: 6Rank: 6

资源大师勋章

 楼主| 发表于 2018-5-25 10:15:08 | 显示全部楼层
zhangzengwen 发表于 2018-5-24 16:56
因为对其整数分频后可以得到4800,9600,57600等常用波特率。

其实仔细分析波特率一系列值的规律,就可发现,波特率一般都是2倍的关系


回复

使用道具 举报

6741

TA的帖子

4933

TA的资源

博客管理员

Rank: 6Rank: 6

资源大师勋章

 楼主| 发表于 2018-5-25 10:18:04 | 显示全部楼层
huo_hu 发表于 2018-5-24 16:57
传统51最大工作频率是12M,小于此数值最整的数就是这个,串口可以最高工作在115200

51单片机晶振频率和实际工作频率是12倍的关系

点评

回答这个题必须提下传统51最高工作频率12M,否则应该扣分 如果没有这个前提 11059200/2*3=16588800也是可行的,现在51早就没这个限制了,很多设计还在用这个也很无耐.  详情 回复 发表于 2018-5-25 19:50


回复

使用道具 举报

6741

TA的帖子

4933

TA的资源

博客管理员

Rank: 6Rank: 6

资源大师勋章

 楼主| 发表于 2018-5-25 10:19:29 | 显示全部楼层
bobde163 发表于 2018-5-24 17:01
就是为了分频得到常见的波特率

是为了得到准确的波特率,对于51来说,是让定时器的值能够是整数


回复

使用道具 举报

6741

TA的帖子

4933

TA的资源

博客管理员

Rank: 6Rank: 6

资源大师勋章

 楼主| 发表于 2018-5-25 10:19:44 | 显示全部楼层
maychang 发表于 2018-5-24 17:08
为了分频后得到准确的常用波特率。

不是分频


回复

使用道具 举报

6741

TA的帖子

4933

TA的资源

博客管理员

Rank: 6Rank: 6

资源大师勋章

 楼主| 发表于 2018-5-25 10:20:15 | 显示全部楼层
huaiqiao 发表于 2018-5-25 09:35
这个一方面是为了有一个精确的指令周期(我记得是),另一方面,是为了串口,定时器等能实现精确定时和准确的 ...

为了让定时器的值是整数,这样更准确

点评

很早之前搞51的时候,看过这方面的资料。现在有点忘却了。  详情 回复 发表于 2018-5-25 13:28


回复

使用道具 举报

46

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-5-25 11:08:56 | 显示全部楼层
回复一下,看一下吧


回复

使用道具 举报

5

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2018-5-25 11:12:03 | 显示全部楼层
限于单片机的工作频率,以2的指数来选的


回复

使用道具 举报

3

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2018-5-25 13:17:08 | 显示全部楼层
看下楼主留言


回复

使用道具 举报

4182

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2018-5-25 13:28:41 | 显示全部楼层
tiankai001 发表于 2018-5-25 10:20
为了让定时器的值是整数,这样更准确

很早之前搞51的时候,看过这方面的资料。现在有点忘却了。



回复

使用道具 举报

134

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-5-25 14:10:00 | 显示全部楼层
看看为什么。


回复

使用道具 举报

3307

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-5-25 19:50:03 | 显示全部楼层
tiankai001 发表于 2018-5-25 10:18
51单片机晶振频率和实际工作频率是12倍的关系

回答这个题必须提下传统51最高工作频率12M,否则应该扣分

如果没有这个前提 11059200/2*3=16588800也是可行的,现在51早就没这个限制了,很多设计还在用这个也很无耐.


回复

使用道具 举报

235

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-5-29 08:20:31 | 显示全部楼层
本帖最后由 shipeng 于 2018-5-29 08:31 编辑

我只知道32.768KHz正好是二进制的0b01000000 00000000,这样判断1秒的计数周期就会很方便,只要判断bit14是否非零就可以了,不过波特率似乎又和这个无关。


回复

使用道具 举报

1万

TA的帖子

146

TA的资源

版主

Rank: 6Rank: 6

技术导师勋章

发表于 2018-5-29 13:08:41 | 显示全部楼层
本质上,这是个“次序”问题。
电报发明后,信息的远距离快速传递成为可能。但是,电报报文的传递需要收发双方同时操作,如果发送者想发报而接受者不在呢?那自然没法传递信息了。怎么解决?于是有人发明了自动电报机,因为其输出是通过打字机实现的,信息则通过电信号传输,所以这样的电报机被称为“电传打字机”或“电传机”。后来,电话普及,通过电话线路做电传比电报专用线路的成本低多了,再加上电子技术的大力发展,利用调制解调器通过电话线做电传在技术上已经成熟。不过,各个厂家的电传机速度不尽相同,厂家则尽力提高自己产品的传输速度,为便于交互,于是电传机的传输速率被统一。开始电传机的速率指标是每分钟多少字符,使用Modem的电子式电传机则采用波特率来表达,于是就有了50、75、100等取整的数值。在技术进步的推动下,300bps成为当年高端电传机的标志并长期使用。电传机有个机械打印的速度瓶颈,所以300bps足够用了。
因为电传机的大量使用,促进了Modem的发展,300bps可以被轻松突破。为了规范,在1970年,美国电子工业协会联合业内几家骨干厂商颁布了波特率标准,以300bps为起点,以2的幂作为级差倍数,于是就有了300、600、1200、2400、4800、9600等等看似奇怪的数值。之所以要用2的幂,因为在数字电路中2分频是最容易的。
MCS51为什么要用11.0592MHz这样的主频,这当然是波特率精度要求的结果,跟51的波特率发生器由主频12分频有关,但本质上是为了凑当年的那个主流高端电传机的300bps及由它带来的波特率标准。
上传了一些书籍资料,也许有你想要的:http://download.eeworld.com.cn/user/chunyang


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-12-16 04:13 , Processed in 0.523203 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表