资讯动态

Linux系统时钟: 一、硬件上的基本概念

发布时间:2026/10/22 1:33:15 来源:尧图企业网站定制
s3c6410的时钟系统硬件图图1: s3c6410 PLL 输出框图图1-1: ARM核和AXI/AHB/APB总线时钟框图(DIV_ARM和DIV_HCLK等为内部分频器)图1-2: 以MFC模块时钟为例说明EPLL的时钟框图几个s3c 6410时钟的专有概念:EXTCLK(外部时钟)和XTIpll(外部晶振): s3c6410的时钟源(clock source)可以选择外部时钟源或外部晶振,由硬件引脚决定.CLK_SRC[x]: CLK_SRC寄存器的bit值,用于作为MUX的选择(MUX多选一的时钟选择器)标记APLL/MPLL/EPLL: s3c6410有3个PLL, APLL用于ARM核的时钟;MPLL是系统时钟,用于AXI/AHB/APB总线的操作;EPLL用于其他特定外设的操作;普遍的时钟系统中的概念不要被s3c6410中特别的一些概念迷惑到,如APLL\MPLL\EPLL等,本质是APLL/MPLL/EPLL是从物理组成的角度描述的s3c6410时钟系统中的物理架构;从更普遍性的逻辑概念上,时钟系统是PLL\MUX\GATE等一些列组件的组合,如下图2: 时钟系统中的普遍性组件时钟系统中概念解释时钟的种类:Fix Rate:固定频率的时钟源,频率不可调整,如有源/无源晶振Fix Factor:固定因子时钟,通过固定数学公式计算出输出频率(如 Fout (m k/65536) * Fin / (p * 2^s) ),其值在初始化确定后,运行过程不变更;通常用于需要精准控制频率的场景(如 GPU, ARM核心频率),在硬件电路中通常基于PLL(锁相环)设计.Divider:分频器时钟,通过动态调整分频系数实现频率调节(如 Fout Fin / N ),可以在运行时动态调整N进行频率调节;通常用于降频的场景(如外设)Mux:多路时钟选择,可切换不同输入源. 可用于低功耗场景等Gate:控制时钟开关的门电路Composite:复合时钟,由多种子时钟构成的时钟时钟树的概念:从硬件的角度看时钟树就是硬件系统中时钟系统的组件如上面说的各种时钟以及时钟之间的关系比如某些时钟是其他时钟的输入和真正使用这些时钟的设备如IIC、SPI等我们只要理解这个概念就行因为从描yi述的角度有各种描述可以描述时钟树这个概念。用根节点、中间节点、叶子节点来表述时钟树根节点无源时钟/有源时钟中间节点:就是上面说的各种类型的时钟(当然,你可以说应该除去无源时钟/有源时钟,但是我们只是利用这个概念对时钟系统进行理解,无需如此严谨)叶子节点:就是使用时钟的设备,如IIC/Codec等(图2中没有体现出叶子节点的概念)从如何理解时钟系统内部关系本身来说,我喜欢根节点\中间节点\叶子结点这种概念来描述时钟树,因为它体现了在中间节点中,有parents(上级节点,输入)和child(下级节点,输出)的关系用生产者(Provider)、消费者(Consumer)来描述时钟树:Provider: 就是各种时钟Consumer:就是使用时钟的外部器件从如何使用时钟系统的角度上看,Provider和Consumer模型是时钟系统的一种黑盒理解,Linux内核中,从整体时钟Framwork(CCF: Linux Common Clock Framework)来看,就是采用的Provider/Consumer架构,CCF中提供了基础的API和数据结构,贯穿了了Provider和Consumer的关联关系.后续就将从Linux内核的软件角度讲解内核对时钟系统的管理和使用.参考:https://blog.csdn.net/mcudoc/article/details/8696822/https://zhuanlan.zhihu.com/p/574985654https://baijiahao.baidu.com/s?id1833399332773514530wfrspiderforpchttps://www.cnblogs.com/arnoldlu/p/10307827.html

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑