晶振频率、脉冲、时钟周期与机器周期的关系

发布时间:2024-07-18 阅读次数:3111

上次我们聊到了晶振的占空比,即一个周期内高电平持续时间占整个周期时间的比例。本文将进一步说明晶振频率、时钟脉冲、时钟周期和机器周期之间的关系,并以12MHz晶振为例进行计算。


结论:晶振频率决定时钟周期;时钟周期是时钟信号完成一次完整循环所需的时间;机器周期则由处理器架构决定,并不总是固定等于12个时钟周期。


晶振频率和时钟脉冲

晶振频率是指晶体振荡器每秒产生的周期数,单位为Hz(赫兹)。晶振的主要作用是为MCU、FPGA、通信芯片及其他数字电路提供稳定的时钟基准,使各功能模块按照统一节拍同步工作。


例如:12MHz = 12 × 10⁶Hz = 每秒12,000,000个时钟周期


对于数字方波时钟,一个完整周期通常包含一次上升沿和一次下降沿。日常表达中常把一个完整周期称为一个“时钟脉冲”,但在严格的时序分析中,应以时钟边沿和完整周期进行描述,避免混淆。时钟抖动会使上升沿或下降沿的实际出现时间偏离理想位置,从而影响采样、同步和数据传输的时序裕量。抖动通常可分为确定性抖动和随机抖动:确定性抖动往往与可识别的干扰、串扰或电源噪声有关;随机抖动则具有随机分布特征。更多内容可参考《低相位噪声低抖动晶振》。


时钟周期和晶振频率的关系

时钟周期(Clock Period)是时钟信号完成一次完整循环所需的时间,通常用T表示;频率用f表示。两者互为倒数:

T = 1 ÷ f

f = 1 ÷ T


若时钟频率为12MHz:

T = 1 ÷ (12 × 10⁶)秒

T ≈ 83.33ns


也可以写为:

T = 1 ÷ 12μs ≈ 0.0833μs


因此,12MHz时钟的一个完整时钟周期约为83.33ns。在占空比接近50%的理想方波中,高电平时间和低电平时间各约为41.67ns。

晶振频率     时钟周期       
12MHz83.33ns
24MHz41.67ns
48MHz20.83ns
100MHz10ns


什么是机器周期?

机器周期(Machine Cycle)是处理器执行基本操作所需的时钟单位。它常用于描述CPU访问存储器、读取指令或执行某些基本动作所需的时间。机器周期与时钟周期的关系取决于处理器内核架构,不能认为所有单片机都采用“1个机器周期等于12个时钟周期”的规则。


传统8051单片机

对于传统12T 8051内核:

1个机器周期 = 12个时钟周期

若使用12MHz晶振:

时钟周期 = 1 ÷ 12MHz ≈ 83.33ns

机器周期 = 12 × 83.33ns = 1μs

若某条指令需要2个机器周期,则理论执行时间约为2μs。但实际延时还需计算指令类型、循环次数、中断、编译器优化和系统时钟分频设置。


现代MCU的内核架构差异很大。计算机器周期和指令执行时间时,必须查看具体芯片的数据手册或参考手册,确认其内核时钟、总线时钟和指令周期规则。


时钟周期、机器周期与指令周期的区别

名称               含义     是否由晶振频率直接决定
时钟周期时钟信号完成一次完整循环所需的时间        
机器周期CPU完成一个基本操作所需的时间单位间接受影响,取决于内核架构               
指令周期CPU执行一条指令所需的时间取决于指令类型和处理器架构


一条指令可能需要一个机器周期,也可能需要多个机器周期;某些现代处理器还可能通过流水线在不同阶段并行处理多条指令。因此,不能简单地将“访问一次ROM”或“执行一条指令”等同于固定的一个机器周期。


常见问题

12MHz晶振每秒产生多少个时钟周期?12MHz表示每秒产生12,000,000个完整时钟周期。


12MHz晶振的一个周期是1/12微秒吗?是。1/12微秒约等于0.0833微秒,也就是83.33纳秒。


所有单片机中一个机器周期都是12个时钟周期吗?不是。12个时钟周期对应传统12T 8051内核。不同MCU或不同内核的机器周期定义和时钟架构可能完全不同。


晶振频率越高,程序运行越快吗?一般情况下,提高CPU实际工作频率可以缩短时钟周期,提高处理速度。但实际性能还取决于内核架构、Flash等待周期、总线速度、存储器性能、软件算法和外设配置。

  • 上一篇:晶振 DLD 参数是什么?什么因素影响DLD值?
  • 下一篇:晶振占空比是什么?定义、计算方法与时钟信号影响