打印

关于单片机的时钟及复位电路的问题

[复制链接]
5584|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
StanWu|  楼主 | 2013-1-15 15:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dirtwillfly| | 2013-1-15 15:21 | 只看该作者
在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。

单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。

使用特权

评论回复
板凳
StanWu|  楼主 | 2013-1-15 15:39 | 只看该作者
dirtwillfly 发表于 2013-1-15 15:21
在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和 ...

多谢斑竹的解答,不过我仍然不明白的是:
晶振频率的大小为什么会决定了单片机系统工作的快慢呢,也就是为什么单片机的快慢会由晶振频率来决定呢,这个是如何实现的呢?它又是如何成为系统的标准定时时钟的呢?

为什么RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,CPU就可以响应并将系统复位呢?

使用特权

评论回复
地板
nevermore008| | 2013-1-15 16:24 | 只看该作者
StanWu 发表于 2013-1-15 15:39
多谢斑竹的解答,不过我仍然不明白的是:
晶振频率的大小为什么会决定了单片机系统工作的快慢呢,也就是 ...

单片机要执行指令,比如一条指令用一个时钟周期,晶振就是时钟源

使用特权

评论回复
5
dirtwillfly| | 2013-1-15 16:58 | 只看该作者
dirtwillfly 发表于 2013-1-15 15:21
在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和 ...

这个问题比较复杂。估计得从硬件上才能研究明白。你可以研究在FPGA的软核,应该就能弄明白怎么实现的。:L

复位系统也是这样的,有些单片机就是低电平复位,和内部硬件电路有关系。

使用特权

评论回复
6
ymii| | 2013-1-15 17:35 | 只看该作者
原因它们都时序逻辑电路,打接起来的。如果你要问什么是时序电路,哪么就看数字电子基础。

使用特权

评论回复
7
NE5532| | 2013-1-15 19:58 | 只看该作者
时钟就是你的心跳,复位就是你生下来不哭,护士姐姐揍你屁股,把你打到“初始状态”:P

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
yanzitaol + 1 很给力!
8
lark100| | 2013-1-15 22:35 | 只看该作者
LS的比喻生动啊!

使用特权

评论回复
9
长生子| | 2013-1-15 22:51 | 只看该作者
跟表差不多,秒针一圈60秒,分针走一个。可能有很多的分针,有的10秒动一下,有的20秒动一下,

使用特权

评论回复
10
oldda| | 2013-1-16 12:19 | 只看该作者
路过学习!

使用特权

评论回复
11
ddddd6666| | 2013-1-16 12:26 | 只看该作者
把晶振看着人的心脏,即可。

使用特权

评论回复
12
1638574407| | 2013-1-16 12:33 | 只看该作者
学习了啊               

使用特权

评论回复
13
jlass| | 2013-1-16 14:02 | 只看该作者
NE5532 发表于 2013-1-15 19:58
时钟就是你的心跳,复位就是你生下来不哭,护士姐姐揍你屁股,把你打到“初始状态” ...

这个比喻不错。
一顿狂K把你打回婴儿期

使用特权

评论回复
14
StanWu|  楼主 | 2013-1-16 15:01 | 只看该作者
NE5532 发表于 2013-1-15 19:58
时钟就是你的心跳,复位就是你生下来不哭,护士姐姐揍你屁股,把你打到“初始状态” ...

我上午有回过帖子的,可不知道怎么消失了,现在我重新请教一下:

时钟是如何成为“心跳”的,这个功能是如何实现的呢?

复位又是如何“打到初始状态”的,是什么原理呢?

请通俗的讲讲。

使用特权

评论回复
15
江枫渔火| | 2013-1-16 15:26 | 只看该作者
       数字电路是触发器驱动的。要深入了解这个问题,需要重温 数字电路基础。
    时钟信号是提供触发信号的,每一个时钟脉冲的上下边沿都能将数字电路的状态刷新一次。如果单片机在运行时,突然时钟停止了,则单片机里的所有状态都停在此处,但时钟恢复时,单片机又能接着运行。(这只是理论上。现实因为时钟启动和停止都不是瞬间的,而且有的有保护性复位,因而会有不同,时钟丢失后或许会直接复位重来。)
    给触发器一个脉冲,它就会翻转状态。大多数时序逻辑器件都是基于触发器工作的。而一个完整的如单片机一样的复杂的数字逻辑系统,每一个触发器翻转也关系到很多其他状态的翻转。于是,说时钟是单片机的心脏就很形象。因为,时钟的一个接一个的脉冲信号,才能促使单片机改变状态。
    如果脉冲的频率很高,则说明此信号来的很快,因而单片机状态改变的也就更快。因而可以说单片机的运行速度很快。
单片机的频率受制造工艺决定,有限的工艺水平、过高的频率会使信号传递过程中错误的几率增大,直到错乱,于是就不可能正常的运行。同时,高频率的功耗会更高。这是因为数字电路通常在稳态时功耗较低,而翻转时会较大功耗。假设单片机频率为1HZ,那它工作时,每秒才翻转一次。而100HZ,每秒就要翻转100次,显然功耗会增加n多~

     数字电路一接通电源时,很多状态是随机的,于是会需要复位电路。除了单片机有复位,有的液晶模块也有,SPI FLASH芯片也有。它们具体执行的方式未必一样,但功能都是一样的,就是让电路(或说芯片、模块)的状态清除,设置为起始状态。比如把控制寄存器的值设置为默认值,把内存中的乱七八糟的数据都清空。目的是让数字电路处于一个已知的,可控的状态。
   打个比方:你想去开电脑(假设没有外在信息表明电脑是开机中还是关机中),但是你都不知道电脑是不是已经开了还是没开(状态未知),如果此时你按开关,也许是关机也许是开机。但如果你把电脑电源线一拔(复位到初始状态),你就能确定电脑的状态是关机的。就如经过复位后的数字电路。而此时你去按电脑开关,那肯定是开机。
   具体到单片机的复位,在数字电路级别的分析就算了,从编程的角度看,复位就是强制单片机立即从复位向量处开始执行代码。几乎所有的CPU中,复位都是不可屏蔽的中断。触发复位就无条件使程序从复位处理入口开始执行。通常也是整个程序的入口位置。

使用特权

评论回复
16
refee| | 2013-1-16 16:01 | 只看该作者
嗯 学习中……

使用特权

评论回复
17
NE5532| | 2013-1-16 19:15 | 只看该作者
你可以理解为单片机是照着曲谱(程序)唱歌,时钟就是拍子,没有拍子就没有歌了。至于打回初始状态是因为不知道你唱到哪里了,只有从头开始才能保证不走调。

使用特权

评论回复
18
yifeidengdai| | 2013-1-18 08:53 | 只看该作者
学习了  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我就笑笑,不说话!

17

主题

236

帖子

1

粉丝