一文看懂,为何需要时钟?以及时钟树的基本结构

1.为什么需要时钟?

时钟是为时序电路提供时钟信号的。我们各个嵌入式系统都离不开一个时钟。为什么需要时钟呢?我们从一个例子来说明。

如图所示的电路,输入信号A和B通过逻辑门来决定着 异或门输出信号Q。
在这里插入图片描述
1.当A=1,B=1时,Q=0
2.在1的前提下,当B从1变为0时,由于B作为异或门的直接输入,异或门的这个输入(图中红色箭头所示)会立马感受到0,而异或门的另一个输入(图中绿色箭头所示)因为要经过逻辑门与门的运算,需要过一小段时间,才会由1变化为0,就导致异或门的输出Q产生如下变化:
在这里插入图片描述
在这里插入图片描述
如何消除这种变化呢?可以在异或门的输出端放置一个边沿触发器,如图所示,只有当CLK端的输入从0变化为1时,数据端S的的输入才会影响 边缘触发器的输出Q。这样就可以把传播时延导致的变化消除。而CLK这个输入就是我们所说的时钟信号。
在这里插入图片描述

2.STM32有哪些时钟?

下面我们以STM32 40X为例,讲一下STM32 40X的时钟系统。

嵌入式常见的时钟源:高速外部时钟(HSE)、低速外部时钟(LSE)、高速内部时钟(HSI)和低速内部时钟(LSI):

HSE:High speed external 高速外部时钟
HSI: High speed internal 高速内部时钟
LSE: Low Speed external 低速外部时钟
LSI: Low Speed Internal 低速内部时钟

下面这两个时钟树图看哪一个都可以。

其中,LSE为低速外部时钟,HSE为高速外部时钟,它们的时钟源可以是晶振。再往PLL时钟看去,可以看到PLL时钟的时钟源是高速内部时钟HSI和高速外部时钟HSE。往系统时钟看去,PLL时钟,高速内部时钟HSI,高速外部时钟HSE都可以作为系统时钟SYSCLK的时钟源。而系统时钟SYSCLK又经过AHB预分频变为HCLK,HCLK再分别经过APB1和APB2预分频分别变为PCLK1和PCLK2. 需要注意它们的分频因子。

在这里插入图片描述
其中:
AHB:Advanced High-performance Bus 即高性能总线,使用的时钟 HCLK 是系统时钟SYSCLK经过AHB预分频器 分频之后得到。
APB: 高级外设总线(Advanced Peripheral Bus),分为APB1和APB2。
APB1: low speed APB 低速外围总线, 使用的时钟HCLK1 是 HCLK经过 低速APB1预分频器 分频之后得到。
APB2: high speed APB 高速外围总线, 使用的时钟HCLK2 是 HCLK经过 高速APB2预分频器 分频之后得到。
ASB :Advanced System Bus 系统总线 ASB是AHB的一种替代方案。
PPB: Private Peripheral Bus 专用外设总线
在这里插入图片描述

为什么要搞分频呢?
1.要知道,时钟频率越高,时钟周期越小,即单位时间内执行的指令越多(关于时钟周期,机器周期,指令周期,请参见一文搞懂指令周期,机器周期和时钟周期)。
2.一个功能庞大的系统,需要的时钟模块就越多。不同的时钟模块提供不同的时钟频率。一个高时钟可以通过分频提供更小的不同的时钟选择。
3.时钟频率越高,相应功耗越大。有些功能,完全不需要那么高的时钟频率,比如看门狗时钟(关于时钟频率和时钟精度请参见)。时钟树在设计时,不同的模块提供不同的时钟选择,STM32有很多外设,可以用时钟来作为这些外设的功能开关,服务于低功耗设计。

引用

1.为什么CPU需要时钟
2.STM32第三章-系统时钟配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

同志啊为人民服务!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值