历史上的今天
返回首页

历史上的今天

今天是:2025年04月16日(星期三)

正在发生

2019年04月16日 | 单片机时钟的解析

2019-04-16 来源:eefocus

时钟周期

       时钟周期也称为振荡周期,定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。


       在一个时钟周期内,CPU仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,工作速度就越快。


       8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。


机器周期

       计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。8051系列单片机的一个机器周期由6个S周期(状态周期)组成。 一个S周期=2个节拍(P),所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。


       例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒;


指令周期

    执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。


CPU 周期信号、节拍周期信号、节拍脉冲信号三者之间的关系是什么?


      一小块石英晶体加电后产生压电反应,在固定频率振动,产生出电压按照固定周期变化的脉冲信号。这个高频率的信号通向分频器(frequency divider),转化为比较低频的信号。



 以上图为例,分频器分出来的信号有四个频率。题目中所说 CPU周期信号、节拍周期信号、节拍脉冲信号本质上都是时钟脉冲的不同分频,主要区别在于用途上。


     通常来说,CPU 周期信号最“慢”,它决定 CPU 所处的状态。CPU 执行一条指令的周期叫做指令周期(instruction cycle),指令周期可以划分为 fetch、decode、和 execute 三个部分,所以也叫 fetch-decode-execute cycle。假设上图与 QD 频率相同的信号有三个,QD1、QD2、QD3,它们分别依次处于高电位,那么就可以用它们来控制 CPU 处于 fetch、decode、还是 execute 状态,这就是 CPU 周期信号。


     节拍周期信号是控制信号,调整电路的功能。比如,现在 CPU 处于 fetch 状态,仍旧以上图为例,假设 QC 这个比 QD “快”的信号有 QC1、QC2、QC3……QCi 个,分别对应电路的不同功能(比如,应该将从内存中取来的数字作为指令解释,还是送给寄存器存起来),谁处于高电位,CPU 就能执行谁决定的功能。


      节拍脉冲信号则是触发信号,决定电路的实际工作起点。以上图的 QB 为例,假设 QD1 决定 CPU 处于 fetch 阶段,QC1 决定 CPU 的功能是去内存取一个数字,那么 QB 的上升沿会触发整个电路切实地执行这个功能。


      可以这样类比:


      某诊所周一二三门诊,周四五看复诊病人,周六日不办公


——对应三个 CPU 周期


      诊所星期一二三 8:00 开始门诊,12:00 午休,13:00 继续门诊,17:00 关门


——对应节拍周期


      某个病人星期二 9:00 去看了病


——对应脉冲信号


    (注意上面的说法极度简化,实际的实现要复杂很多,比如振动源不一定是石英,每个 CPU 周期未必等长,CPU 也并不是在某一时刻只能处于单独一种周期状态里(详见 pipelining),乃至周期层级也未必就是三层等等。)

推荐阅读

史海拾趣

Foxboro I C T Inc公司的发展小趣事

在电子行业,尤其是工业自动化与控制领域,Foxboro I C T Inc(现为施耐德电气旗下的一部分,通常简称为Foxboro)的发展充满了创新与挑战。以下是五个与Foxboro在电子行业里发展起来相关的故事,每个故事均基于事实进行描述:

1. Foxboro的起源与早期创新

Foxboro的历史可以追溯到1908年,在美国马萨诸塞州的福克斯伯勒,E.H.和B.B.兄弟联手开设了商店,并逐渐发展成为一家专注于工业控制自动化的公司。1920年代,Foxboro推出了其第一款Model 10 Stabilog比例加复位控制器,这标志着公司在工业自动化领域的初步探索。此后,Foxboro持续在控制技术上取得突破,如1950年代发布的全尺寸图形面板仪表和首款磁流量计,这些创新为公司在工业控制领域奠定了坚实的基础。(参考来源:Foxboro官网及相关历史资料)

2. 分布式控制系统的先驱

进入1970年代,Foxboro推出了SPEC 200系统,这是全球第一款真正的分布式控制系统(DCS)。该系统通过分散控制、集中管理的理念,极大地提高了工业生产的效率和可靠性。SPEC 200系统的成功推出,不仅巩固了Foxboro在工业自动化领域的领先地位,也推动了整个行业向更加智能化、自动化方向发展。(参考来源:知乎专栏及相关行业报告)

3. 进入中国市场,引领自动化发展

1983年,在中美贸易合作的大背景下,Foxboro与中国上海仪电控股(集团)公司共同投资成立了上海福克斯波罗有限公司(即Foxboro中国)。作为最早的中美合资企业之一,Foxboro中国迅速将最新技术和产品引入中国,推动了中国过程自动化行业的蓬勃发展。在成立初期,Foxboro中国就完成了最新技术和产品向中国本土的转移,所生产的成套系统装置广泛应用于石油、化工、电力等多个行业。(参考来源:国际能源网及相关报道)

4. ISO 9001国际质量认证的历史性突破

1991年12月,Foxboro中国成为中国首个获得ISO 9001国际质量合格证书的企业。这一历史性突破不仅标志着Foxboro中国在质量管理上达到了国际先进水平,也为中国仪表行业乃至整个工业领域树立了标杆。此后,Foxboro中国积极分享其质量管理经验,帮助众多中国企业取得国际质量体系认证,推动了整个行业的质量提升。(参考来源:知乎专栏及相关历史资料)

5. 数字化时代的转型与升级

2014年,Foxboro被施耐德电气收购后,融入了施耐德电气的一体化能源管理与过程自动化解决方案。在此背景下,Foxboro推出了新一代EcoStruxure Foxboro DCS过程自动化系统。该系统融合了Foxboro I/A Series控制系统的可靠性和施耐德电气的数字化能力,为企业客户提供了一站式的平台服务。EcoStruxure Foxboro DCS的推出,标志着Foxboro在数字化时代迈出了重要一步,也为公司在全球工业自动化领域的持续发展注入了新的动力。(参考来源:施耐德电气官网及相关产品介绍)

GHI Electronics公司的发展小趣事

为了满足不同客户的多样化需求,GHI Electronics不断拓展其产品线。除了传统的电子元件和模块外,公司还开始涉足智能家居、物联网等新兴领域。通过不断引入新技术、新产品,GHI Electronics成功实现了从单一产品向多元化产品线的转变。这种转变不仅丰富了公司的产品线结构,也提高了公司的综合竞争力。

EMS GmbH公司的发展小趣事

EMS GmbH公司自创立之初,就专注于汽车转换器注塑件(微动开关)的研发和生产。公司投入大量资源进行技术创新,逐步积累起了一系列核心专利技术。这些技术不仅涵盖了汽车转换器注塑件生产的所有关键技术,还获得了多个国际品质管理组织机构及主流整车厂的双重、三重认证。这些专利技术的积累,使EMS GmbH公司在汽车转换器注塑件领域确立了行业领先地位。

成都成电硅海公司的发展小趣事

成都成电硅海公司自2009年成立以来,就以其独特的技术创新能力在电子行业中崭露头角。公司创始人李德全深谙半导体行业的技术趋势,带领团队攻克了一个又一个技术难题。在成立初期,公司就成功研发出一款高性能的硅基材料,这一创新不仅打破了国外企业的技术垄断,还为公司赢得了市场的初步认可。

Acmelux Taiwan Inc公司的发展小趣事

Acmelux Taiwan Inc公司深知人才是企业发展的根本。因此,公司高度重视人才培养和团队建设。通过设立完善的培训体系、提供广阔的发展平台以及实施激励机制,Acmelux吸引了大批优秀人才的加入。这些人才在公司的发展过程中发挥了重要作用,为公司创造了巨大的价值。同时,公司还注重团队建设,通过定期的团建活动、培训等方式,增强员工的凝聚力和向心力,为公司的发展提供了有力的保障。

Anaren公司的发展小趣事

Acmelux Taiwan Inc公司自成立以来,一直致力于电子技术的研发与创新。早期,公司凭借一款具有独特功能的半导体产品,成功打破了市场的固有格局,赢得了众多客户的青睐。随着技术的不断迭代,Acmelux逐渐在芯片设计、封装测试等领域取得了突破,成为行业内的技术领军者。公司通过持续的研发投入,不仅巩固了现有市场地位,还积极拓展新的应用领域,为公司的长远发展奠定了坚实基础。

问答坊 | AI 解惑

有在吴江华冠通讯工作的朋友吗?

请问这里有在吴江华冠工作的朋友吗? 有问题想请教, 谢谢!…

查看全部问答>

S3c610 Codec移植的工作经验总结[bootloader级]

1. S3C6410与WM9713的I2S,AC97,PCM相比较: 1.I2S,AC97,PCM是不同的,各是各的,三者时序不同,要双方通信,必须要是 同一种时序,要么均是I2S,要么均是AC97,要么均是PCM 2.S3C6410的I2S,AC97,PCM复用同一组Pin脚,但同一时间只能用一种类型 ...…

查看全部问答>

不同时钟域的数据传输问题

单片机读写CPLD的时钟、SDRAM的时钟、还有像素时钟都是不同的 ,这个问题怎么处理?…

查看全部问答>

关于mini2440 mmu

前几天拿到一个mini2440,板子很精致。400M的主频,在跑uCos2的时候,发现速度很慢,可是却不知道为什么。怀疑是cache没有利用起来,可是我对于MMU也不是很明白,有没有点建议? void MMU_Init(void) {     int i,j;     / ...…

查看全部问答>

中九破解

1231111111111111111111111111111111…

查看全部问答>

C#在wince下的双缓冲如何实现?

用GDI绘图,非常闪砾,想用双缓冲实现,可发现网上搜到的双缓冲例子中用到的类,在wince下都没有,请问有人做过双缓冲绘图吗?如何实现,希望可以给出关键代码,谢谢…

查看全部问答>

Altera的EPCS是否存在校验码

对于FPGA芯片,在上电的时候从EPCS内加载配置文件的信息,我想知道数据从EPCS传输到FPGA的过程中,是否存在冗余校验,就像422,485等通信过程中存在的校验。或者,我想为FPGA的*.pof文件内是否存有数据的冗余校验信息。谢谢…

查看全部问答>

FirmwareLib的应用及C++工程建立过程杂谈

Firmware Lib的应用及C++工程建立过程杂谈Firmware Lib下在地址:http://www.st.com/stonline/products/support/micro/files/um0427.zipFirmware Lib用户手册下载地址:http://www.st.com/stonline/products/literature/um/134 ...…

查看全部问答>

【求助】timer_a如何设置进入定时器溢出中断

在增计数模式下设置了: CCR0 = 0x0fff; TACTL = TASSEL1 + MC1 + TAIE CCTL0 = CCIE; GIE 也置位了, 在TAR计数到0xffff时不能进中断!…

查看全部问答>