一、什么是时钟?SoC为什么需要时钟?
(1)时钟是同步工作系统的同步节拍。
(2)SoC内部有很多器件,譬如CPU、串口、DRAM控制器、GPIO等内部外设,这些东西要彼此协同工作,需要一个同步的时钟系统来指挥。这个就是我们SoC的时钟系统。
注:时钟系统目的:产生同步信号,给gpio等串口使用
二、时钟一般如何获得
(1)SoC的时钟获得一般有:
* 外部直接输入时钟信号,SoC有个引脚用来输入外部时钟信号,用的很少(一般用在多个系统协同工作)。
* 外部晶振+内部时钟发生器产生时钟,大部分低频单片机都是这么工作的。
* 外部晶振+内部时钟发生器+内部PLL产生高频时钟+内部分频器分频得到各种频率的时钟(因为不同器件有不同的需求),s5pv210属于这种。
注:
1). 晶振就是一个晶体振荡器。在振荡器中采用一个特殊的元件——石英晶体,可以产生高度稳定的信号,这种采用石英晶体的振荡器称为晶体振荡器。
2). 内部PLL:PLL(Phase Locked Loop): 锁相环是一种反馈电路,其作用是使得电路上的时钟和某一外部时钟的相位同步。
具体地,PLL为锁相回路或锁相环,用来统一整合时钟信号,使高频器件正常工作,如内存的存取资料等。PLL用于振荡器中的反馈技术。 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。一般的晶振由于工艺与成本原因,做不到很高的频率,而在需要高频应用时,由相应的器件VCO,实现转成高频,但并不稳定,故利用锁相环路就可以实现稳定且高频的时钟信号。
如,把外部晶振只有24MHz的升频成1.2GHz等。
(2)S5PV210属于第三种。为什么这么设计?
第一问:为什么不用外部高频晶振产生高频信号直接给CPU?
主要是因为芯片外部电路不适宜使用高频率,因为传导辐射比较难控制;高频率的晶振太贵了。
第二问:为什么要内部先高频然后再分频?
主要因为SoC内部有很多部件都需要时钟,而且各自需要的时钟频率不同,没法统一供应。因此设计思路是PLL后先得到一个最高的频率(1GHz、1.2GHz),然后各外设都有自己的分频器再来分频得到自己想要的频率。
三、时钟和系统性能的关系、超频、稳定性
(1)一般SoC时钟频率都是可以人为编程控制的,频率的高低对系统性能有很大影响。
(2)S5PV210建议工作频率800MHz〜1.2GHz,一般我们都设置到1GHz主频(即:主要频率,即CPU的频率,也是最高的频率)。如果你设置到1.2GHz就叫超频。超频的时候系统性能会提升,但是发热也会增大,因此会影响系统稳定性。
四、时钟和外设编程的关联
(1)每个外设工作都需要一定频率的时钟,这些时钟都是由时钟系统提供的。时钟系统可以编程控制工作模式,因此我们程序员可以为每个外设指定时钟来源、时钟分频系数、从而指定这个外设的工作时钟。
如:时间来源是100MHz,分频系数是2,即二分频后得到50MHz
五、时钟和功耗控制的关系
(1)SoC中各种设备工作时,时钟频率越高其功耗越大,发热越大,越容易不稳定,需要外部的散热条件越苛刻。
(2)SoC内部有很多外设,这些外设不用的时候最好关掉(不关掉会一定程度浪费电,这些电不会无缘无故消失,会用来发热,那么设备就会发烫),开关外设不是通过开关,而是通过时钟。也就是说我们给某个外设断掉时钟,这个外设就不工作了。