博客作者:Mark Harris
微控制器依赖于其时钟源。处理器、总线和外围设备都使用时钟来同步它们的操作。时钟决定了处理器执行指令的速度,因此它对性能至关重要。但是,时钟源到底有多重要?微控制器中的时钟频率是什么?它的精度有多重要?简单来说,这取决于……微控制器正在执行的任务及其接口。
需要考虑的两个要素是:时钟的速度,它决定了事情发生的快慢;以及时钟的准确度,它决定了每个时钟周期之间的一致性,以及时钟随时间可能发生的变化。
为什么时钟源很重要
微控制器的中央处理器可以被认为是执行特定功能的同步逻辑块链。如果系统微控制器时钟运行得太慢,则处理时间会更长。如果时钟运行得太快,则可能没有足够的时间在下一组开始之前完成所需的操作——处理器与从动态内存到接口引脚等一系列不同的元件模块连接。时钟速度的任何显著误差都会对微控制器内部操作产生不可预测的后果。
数据采样
微控制器时钟信号将控制任何模数操作的转换速率。时钟的速度将决定对模拟信号进行采样的最大速率;时钟的精度将决定采样率的准确性。假设您每秒记录两次带有时间戳的样本。在该情况下,时钟频率出现1%的误差(在内部振荡器中并不少见)很快就会消除样本时间戳与挂钟上显示的时间之间的任何关联。如果时钟源有1%的恒定偏移,您的样本时间戳每天将误差超过14分钟。
波形生成
在数据采样方面,微控制器的时钟信号将控制任何数模操作的转换速率。时钟的速度将决定可以为模拟信号生成的最大频率。时钟的准确性将决定生成波形的准确性。
异步串行通信
微控制器时钟信号的一个关键应用是管理异步通信,其中时钟信号决定何时对输入数据流进行采样,一旦接收到起始位,并确定输出数据流中每个数据位之间的转换时间波形。
在异步通信中,发射器和接收器依赖于相同的时钟速度来编码和解码数据流。但这些时钟不需要同步;它们只需要有足够的相等时钟频率。这是因为接收器在检测到信号线上的第一个边缘时开始处理传入的数据流。然后它需要在数据流的持续时间内保持正确的时钟速度,以便在正确的时间对数据位进行采样。所需精度将取决于必须对数据进行采样的窗口。每个数据位都可能具有其信号的上升沿和下降沿,其中数据的值是不确定的,当数据有效并且可以被采样时,就会在边缘之间留下周期。
这个采样周期将取决于通信链路的类型和长度。长传输距离和高电容电缆会增加上升和下降时间。噪声的存在也可能增加信号稳定所需的时间。
它还将取决于时钟速度和消息格式。对于短数据流,精度要求可能相对宽松,因为每次接收到新数据流时采样时钟都会重置。然而,对于具有长数据流的高速串行通信,所需的精度可能会变得更加精确。例如,CAN总线协议使其对系统时钟偏移非常敏感,以至于使用任何非晶体时钟信号源都可能存在问题。
以UART设备为例,我们可以看到绝对时钟速率并不重要,因为UART接收器会在每一帧开始时自行同步。该问题简化了可以容忍的发送和接收UART时钟之间的差异。
时钟源选项
在为特定微控制器选择时钟源时,通常有几个不同的选项可供选择。具体选项将取决于您将使用的微控制器时钟的品牌和型号,因此我们将在这里讨论所有标准选项。
这些不同的选项主要通过其准确性、成本和元件数量来区分。使用所有优质微控制器都包含的内部时钟源将是最便宜且最简单的选项,但通常也最不准确。使用外部时钟源将提高精度,但代价是需要将额外的元件添加到电路板并增加设计的复杂性。
选择哪个选项将取决于您需要什么样的性能以及您在电路板空间和预算方面的限制。由于为任何给定微控制器生成时钟信号总是有几个备选方案,因此请研究您的特定器件的数据手册。这通常会提供一些有关您可以使用哪些类型的时钟源以及如何最好地实现它们的有用信息。
内部振荡器
微控制器通常带有一个内部电阻电容振荡器,以产生一个基本的时钟信号和一个锁相环以提供频率倍增功能。然而,使用内部振荡器的问题是它们的精度远低于频率稳定性较差的外部振荡器。微控制器芯片内部的任何RC电路都不是理想的位置,这是由于RC电路对高温的依赖性和元件公差固有的较大范围。通常,具有良好热管理的微控制器可以提供精度在1%到5%范围内的时钟信号。这对于一些较慢的异步通信总线和管理低频模拟信号处理来说可能已经足够好了。尽管如此,在大多数典型应用中,这仍然不够准确。
可能值得一提的是,通过使用锁相环,可以用更准确的外部时钟信号校正内部时钟信号,以提高内部振荡器的性能。然而,如果外部时钟信号可用,那么使用它而不是内部时钟更有意义,除非微控制器有任何特定的约束条件会阻止这样做。
外部振荡器
微控制器的时钟源有两种主要类型:机械谐振器,包括晶体和陶瓷谐振器,以及无源RC振荡器。
振荡器的最基本形式是RC电路,它仿效内部振荡器电路,但使用精度值更高的元件,并使用热管理技术将元件与微控制器时钟和电路的任何其他热元件产生的热量隔离开来。虽然这可以将精度提高至少一个数量级,但对于外部振荡器来说,这仍然是最不准确的选择,并且对于相对相似的成本和封装尺寸,还有更好的解决方案可供选择。RC电路生成的时钟也会受到电源电平波动的影响,并且容易受到电气干扰,从而限制了它们在大多数典型应用中的实用性。
晶体振荡器是最常见的外部振荡器,需要精确的时钟信号。石英晶体和支持电路提供了出色的稳定性和精度。典型的低成本晶体振荡器的精度可以优于百万分之一,除最具时间敏感性的应用以外,可满足所有应用的要求。但是,石英晶体可能会受到环境因素的影响,需要额外的保护。石英晶体的支持电路也可能导致高阻抗输出,需要与电路的其余部分进行额外的阻抗匹配。如果预算允许,使用现成的晶体振荡器模块而不是离散元件可以降低对环境影响的敏感性,并使电路板设计更加简单。它们通常提供低阻抗方波输出,从而简化了与电路设计其余部分的集成,其精度与使用离散晶体非常相似。
另一种选择是基于IC谐振器电路的硅振荡器,它易于实现,精度约为0.05%。比外部RC电路略好,但远不及晶体振荡器。然而,硅振荡器比晶体振荡器更坚固可靠,非常适合器件可能受到严重机械振动的操作环境。
最后,还有陶瓷谐振器可供选择,其精度虽然不如晶体振荡器,但比硅振荡器更精确。它们基于压电式陶瓷材料,使用谐振机械振动来生成时钟信号。其主要优势在于采用简单的集成封装,比晶体振荡器及其支持元件占用空间更小。然而,与晶体振荡器一样,它们对环境因素很敏感,包括温度、湿度、振动和电气干扰。
在选择外部振荡器时,功耗可能是一个重要的决定性因素。离散振荡器电路的功耗主要由反馈放大器的电源电流及其电容值决定。一个典型的晶体振荡器电路会消耗数十毫安电流。陶瓷谐振器电路通常需要比晶体振荡器更大的负载电容值,因此需要更多的功率。硅振荡器的功耗主要与工作频率成正比。不过,它们有多种选项可供选择,从消耗几毫安电流的低功耗设备到消耗数十毫安的标准设备。
结论
总而言之,您需要为微控制器使用的时钟信号类型主要取决于其嵌入的器件性质及其操作环境。与高速异步通信总线和高频模拟信号的接口将需要精确的时钟信号。假设器件需要在恶劣的环境中运行,无论是在广泛的温度范围内,还是在高电磁干扰水平下,或是受到机械振动的影响,这都可能限制可选方案。对于没有如此时间敏感或环境挑战性的微控制器时钟,可以采用更便宜的解决方案。
来源:Altium
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。