晶振、時鐘信號、鎖相環、分頻器

http://blog.csdn.net/konga/article/details/8582526

驅動數字電路運轉是的時鐘信號,時序電路都需要一個外部時鐘信號來驅動,完成計時,同步,計數,時序控制等各種功能。象CPU也是用時序信號驅動來完成各種運算的,而且象ARM帶的模塊絕大部分與時序都有關,因此理解時鐘信號對於底層編程非常重要。

一.時鐘信號的源頭---------晶振
----------------------------------------------------------------------------

   數字電路的時鐘信號的來源是哪裏呢?主流的設計方案是使用晶振這種外部器件來產生穩定的電流波形。這是性效比最高一個方案,晶振是一塊水晶加一些電路的小器材,但是它只需要輸入很小的電流就是持續穩定出時鐘波形。

  這是因爲水晶有一個奇特的特性,如果給他通電,他就會產生機械振盪,反之,如果給他機械力,他又會產生電,這種特性叫機電效,。這稱爲壓電效應。

  更奇妙的是如在極板間所加的是交變電壓,就會產生機械變形振動,同時機械變形振動又會產生交變電場。一般來說,這種機械振動的振幅是比較小的,其振動頻率則是很穩定的。但當外加交變電壓的頻率與晶片的固有頻率(決定於晶片的尺寸)相等時,機械振動的幅度將急劇增加,這種現象稱爲壓電諧振,因此石英晶體又稱爲石英晶體諧振器。 其特點是頻率穩定度很高。石英錶就是使用這個原理制而成.


  晶片會產一個穩定的波形,只要持續的供電,這種電能->機械能->電能轉換會讓波形不斷生成. 在要求得到高穩定頻率的電路中,必須使用石英晶體振盪電路。石英晶體具有高品質因數,振盪電路採用了恆溫、 穩壓等方式以後,振盪頻率穩定度可以達到 10^(-9)至 10^(-11)。廣泛應用在通訊、時鐘、手錶、計算機……需要高穩定信號的場合 .

    數字電路中重要器件晶振就是使用這一原理製作而成. 晶振是石英晶體諧振器和石英體時鐘振盪器的統稱。不過由於在消費類電子產品中,諧振器用的更多,所以一般的概念把晶振就等同於諧振器理解了。後者就是通常所指鍾振。

它是一種機電器件,是用電損耗很小的石英晶體經精密切割磨削並鍍上電極焊上引線做成。

  晶振在數字電路的作用就是供一個基準時間.數字電路都是按時序的進行工作的,  在某個時刻專門完成特定的任務,因此幾乎每個電路都有會接收外部時鐘信號的管腳.如果這個時鐘信號發生混亂.整個電路就工作不正常了.    在一個整體設備裏,如開發板,或 PC 主板.所有電路通常共享一個晶振. 便於各部分保持同步。有些通訊系統的基頻和射頻使用不同的晶振,而通過電子調整頻率的方法保持同步。

二.系統主頻--------內部時鐘頻率
--------------------------------------------------------------
  一般晶振稱爲外部時鐘頻率,它需要把信號引入數字電路給CPU和其它模塊使用,侷限於材料的物理特性一般的晶振的頻率並不是太高,如S3C2440/S3C6410上的晶振的頻率一般是12MHz/20MHz,而對的應的CPU的需要使用時鐘信號高達400MHz/600MHz,或者更高.這個時候,需要把較低外部時鐘信號增加頻率到CPU可以接受的頻率。這稱爲倍頻. S3C6410 的主頻 最高可到667Mhz.

鎖相環電路

   倍頻的功能是由一種特殊電路---鎖相環電路來完成的。 鎖相環電路(Phase-Locked Loop,縮寫 PLL)  , PLL基本上是一個閉環的反饋控制系統,它可以使 PLL 的輸出可以與一個參考信號保持固定的相位關係。PLL 在電路的作用之一是起到倍頻的作用.即可以輸出系統時鐘的固定倍數頻率.

   因爲在ARM CPU啓動後,最開始必須做的事情是配置倍頻的比率。這樣當輸入外部時鐘頻率一定的情況下,按照倍頻的比例,就可以得到CPU的頻率,用不同頻率運行,這在嵌入式CPU的,一個系統出於不同目的可能會以不同頻率運行,低頻運算速度慢但是省電,高頻速度快但能耗大。

  但是CPU本身是有一個設計最高頻率的,如果強行配置成高於設計頻率的速度運行,就是人們稱的超頻。有可能帶加速CPU老化,運行時散熱增加的問題。

   一般爲了保險,軟件開發都都會配成產商給幾種標準頻率。

三.設備頻率
----------------------------------------  

   在SOC的CPU上,除了CPU內核以外,在一個物理芯片上,還有一些其它模塊,以S3C6410爲例,它帶了I2C,UART,USB HOST等多個模塊,這一些模塊通過AHB總線與CPU內核相連.這一些模塊同樣需要時鐘信號來驅動。

   但是ARM的主頻信號相對這一些模塊來說,頻率顯得過高。這個時候象S3C2440中內核會提供兩種較低頻率的時鐘信號。 HCLK和PCLK兩種時鐘信號給設備使用。

divider 分頻器

   但是對一些低頻模塊,PCLK的頻率仍然顯得過高,這時需要模塊自己使用分頻器(divider)來把頻率進一步降低。降到多少值一般取決於軟件的需求,因此各個模塊的分頻參數一般都是可以調整的。因此初始化相關模塊時,軟件做一件重要事件就是設置分頻參數。

Prescaler 預分頻因子

  在有一些模塊,如果需要編程來設定分頻的比率,通常是用Prescaler即預分頻因子這個參數來設定分頻後的值,假設輸入頻率是Fin,分頻後輸出的頻率是Fout,而三者有如下關係

     Fout = Fin /(Prescaler + 1 )

在某一些模塊裏,分頻後的頻率仍然是太高,可能需要再次分頻,這時分頻的參數一般稱爲divider value.這樣公式變成

     Fout = Fin /(Prescaler + 1 )/divider

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章