微控制器时钟源有多重要?

Mark Harris
|  已创建:October 26, 2021  |  已更新:June 25, 2023
微控制器时钟源有多重要

微控制器依赖于其时钟源。处理器、总线和外围设备均使用时钟来同步其操作。时钟决定了处理器执行指令的速度,因此它是性能的基础。但是时钟源有多重要呢?微控制器中的时钟频率是多少?它的精度有多重要?简单来说,这取决于……微控制器在做什么及其接口。

需要考虑两个因素:时钟的速度,它决定了事情发生的速度;时钟的准确性,它决定了每个时钟滴答之间周期的一致性以及时钟速度如何随时间变化。

为什么时钟源很重要

微控制器的中央处理器可以被认为是执行特定功能的同步逻辑块链。如果系统微控制器时钟运行得太慢,则处理时间会更长。如果时钟运行得太快,则可能没有足够的时间在下一组开始之前完成所需的操作——处理器与从动态内存到接口引脚等一系列不同的元件模块连接。时钟速度的任何重大错误都会对内部微控制器操作产生不可预测的后果。

数据采样

微控制器时钟信号将控制任何模数操作的转换速率。时钟的速度将决定对模拟信号进行采样的最大速率;时钟的精度将决定采样率的准确性。假设您每秒记录两次带有时间戳的样本。在该情况下,时钟频率出现1%的误差(在内部振荡器中并不少见)很快就会消除样本时间戳与挂钟上显示的时间之间的任何相关性。如果时钟源有1%的恒定偏移,您的样本时间戳每天将超过14分钟。

波形生成

至于数据采样,微控制器时钟信号将控制任何数模操作的转换速率。时钟的速度将决定模拟信号所能产生的最大频率。时钟的准确性将决定生成波形的准确性。

异步串行通信

微控制器时钟信号的一个关键应用是管理异步通信(其中时钟信号决定输入数据流何时被采样)以及传出数据流的波形(一旦接收到起始位,就每个数据位之间发生转换的时间而言)。

在异步通信中,发射器和接收器依赖于具有相同的时钟速度,以编码和解码数据流。但这些时钟不需要同步;它们只需要有足够相等的时钟频率。这是因为接收器在检测到信号线上的第一个边缘时开始处理传入的数据流。然后它需要在数据流的持续时间内保持正确的时钟速度,以便在正确的时间对数据位进行采样。所需精度将取决于必须对数据进行采样的窗口。每个数据位都可能具有其信号的上升沿和下降沿,其中数据的值是不确定的,当数据有效并且可以被采样时,就会在边缘之间留下周期。

此采样期将取决于通信链路的类型和长度。长传输长度和高电容电缆会增加上升和下降时间。噪声的存在也会增加信号稳定所需的时间。

它还将取决于时钟速度和消息格式。对于短数据流,精度要求可能非常宽松,因为每次接收到新数据流时采样时钟都会重置。然而,对于具有长数据流的高速串行通信,所需的精度可能会变得更加精确。例如,CAN总线协议使其对系统时钟偏移非常敏感,以至于使用任何非晶体时钟信号源都可能出现问题。

以UART器件为例,我们可以看出绝对时钟速率并不重要,因为UART接收器会在每一帧开始时自行同步。该问题简化了传输和接收UART时钟之间可以容忍的差异。

时钟源选项

在为任何特定微控制器选择时钟源时,通常有几个不同的选项可供选择。具体选项将取决于您将使用的微控制器时钟的品牌和型号,因此我们将在这里讨论所有标准选项。

不同选项的主要区别在于其准确性、成本和元件计数。使用所有良好微控制器都包含的内部时钟源将是最便宜和最不复杂的选择,但通常也最不准确。使用外部时钟源将提高精度,但代价是需要将额外的元件添加到电路板并增加设计的复杂性。

选择哪个选项将取决于您需要什么样的性能以及您在电路板空间和预算方面的限制。由于总是有多个替代选项可以为任何给定的微控制器生成时钟信号,因此请研究您的特定器件的数据表。这通常会提供一些重要信息,说明您可以使用什么类型的时钟源以及如何最好地实现。

内部振荡器

微控制器通常带有一个内部电阻电容振荡器,以产生一个基本的时钟信号和一个锁相环,提供频率乘法功能。使用内部振荡器的问题是它们的精度明显低于频率稳定性较差的外部振荡器。根据定义,微控制器芯片内部不是放置任何RC电路的理想位置。这源于RC电路对高温的依赖以及固有的宽元件容差。通常,具有良好热管理的微控制器可以提供精度在1%到5%范围内的时钟信号。这对于一些较慢的异步通信总线和管理低频模拟信号处理来说可能已经足够好了。尽管如此,在大多数典型应用中,还是过于不准确。

可能值得一提的是,通过使用锁相环,可以用更准确的外部时钟信号校正内部时钟信号,以提高内部振荡器的性能。然而,如果外部时钟信号可用,那么使用它而不是内部时钟是有意义的,除非微控制器有任何特定的限制而无法使用。

外部振荡器

微控制器的时钟源有两种主要类型:机械谐振器,包括晶体和陶瓷谐振器,以及无源RC振荡器。

振荡器的最基本形式是RC电路,它仿效内部振荡器电路,但使用精度值更高的元件,并使用热管理技术将元件与微控制器时钟和电路的任何其他热元件产生的热量隔离开来。虽然这可以将精度提高至少一个数量级,但它是迄今为止外部振荡器精度最差的选择,并且对于相对相似的成本和封装尺寸,有更好的解决方案可用。RC电路生成的时钟也会受到电源电平波动的影响,并且容易受到电气干扰,从而限制了它们在大多数典型应用中的实用性。

晶体振荡器是最常见的外部振荡器,需要精确的时钟信号。石英晶体和支持电路提供出色的稳定性和精度。典型的低成本晶体振荡器的精度可以优于百分之一的百万分之一——除最具时间敏感性的应用以外,可满足所有应用的要求。但是,石英晶体可能会受到环境因素的影响,需要额外的保护。石英晶体的支持电路还可能导致高阻抗输出,需要额外的阻抗匹配才能与电路的其余部分集成。如果预算允许,使用现成的晶体振荡器模块而不是离散元件可以降低对环境影响的敏感性,并使电路板设计更加简单。它们通常提供低阻抗方波输出,从而简化了与电路设计其余部分的集成,其精度与使用离散晶体非常相似。

另一种选择是基于IC谐振器电路的硅振荡器,该电路易于实现,精度约为0.05%。比外部RC电路略好,但远不及晶体振荡器。然而,硅振荡器比晶体振荡器更坚固可靠,非常适合器件可能受到严重机械振动的操作环境。

最后,可以使用陶瓷谐振器,其精度不如晶体振荡器,但比硅振荡器更精确。它们基于压电式陶瓷材料,使用谐振机械振动来生成时钟信号。其主要优点是采用简单的集成封装,比晶体振荡器及其支持元件占用空间更小。然而,与晶体振荡器一样,它们对环境因素很敏感,包括温度、湿度、振动和电气干扰。

选择外部振荡器时,功耗可能是一个重要的决定性因素。离散振荡器电路的功耗主要由反馈放大器的电源电流及其电容值决定。一个典型的晶体振荡器电路会消耗数十毫安电流。陶瓷谐振器电路所需的负载电容值通常比晶体振荡器所需的更大,因此功耗更高。硅振荡器的功耗主要与工作频率成正比。尽管如此,它们仍然有多种选择,从消耗数mA的低功率器件到消耗数十mA的标准器件。

结论

总而言之,您需要为微控制器使用的时钟信号类型主要取决于其嵌入的器件性质及其操作环境。与高速异步通信总线和高频模拟信号的接口将推动对精确时钟信号的需求。假设器件需要在恶劣的环境中运行,无论是温度范围宽、电磁干扰高还是机械振动,都可能会限制可用的选择。如果微控制器时钟没有这种时间敏感型或环境挑战型要求,则可采用更便宜的解决方案。

如需了解更多,请浏览我们的产品页面以获取更深入的功能描述或致电Altium专家

关于作者

关于作者

马克·哈里斯(Mark Harris)是一名工程师,在电子行业拥有超过12年的丰富经验,涉及从航空航天和国防合同到小型产品初创公司,业余发烧友以及两者之间的所有事务。在移居英国之前,Mark曾受雇于加拿大最大的研究机构之一;每天都接触与电子、机械和软件相关的不同项目或挑战。他还为Altium Designer发布了最广泛的元件开源数据库,名为Celestial数据库。Mark对开源软硬件以及此类项目面临的日常挑战所需的创新型问题解决方案有浓厚兴趣。电子会让人充满激情;看着产品一步步从构想变为现实并开始与世界互动,可以说其乐无穷。 您可以通过以下方式直接与

Mark联系:mark@originalcircuit.com

相关资源

返回主页
Thank you, you are now subscribed to updates.