1、晶振簡介
晶振,全稱是石英晶體振盪器,是一種高精度和高穩定度的振盪器。有一些電子設備需要頻率高度穩定的交流信號,而LC振盪器穩定性較差,頻率容易漂移(即產生的交流信號頻率容易變化)。在振盪器中采用一個特殊的元件——石英晶體,可以產生高度穩定的信號,這種采用石英晶體的振盪器稱為晶體振盪器。
晶振具有壓電效應,即在晶片兩極外加電壓后晶體會產生變形,反過來如外力使晶片變形,則兩極上金屬片又會產生電壓。如果給晶片加上適當的交變電壓,晶片就會產生諧振(諧振頻率與石英斜面傾角等有關系,且頻率一定)。晶振利用一種能把電能和機械能相互轉化的晶體,在共振的狀態下工作可以提供穩定、精確的單頻振盪。在通常工作條件下,普通的晶振頻率絕對精度可達百萬分之五十。利用該特性,晶振可以提供較穩定的脈沖,廣泛應用於微芯片的時鍾電路里。晶片多為石英半導體材料,外殼用金屬封裝。
晶振主要是由晶體和外圍元器件構成的。下圖為晶振的實物外形和內部結構及電路圖形符號和等效電路。
2、晶振的使用
晶振常與主板、南橋、聲卡等電路連接使用。晶振可比喻為各板卡的“心跳”發生器,如果主卡的“心跳”出現問題,必定會使其他各電路出現故障。通過一定的外接電路來,可以生成頻率和峰值穩定的正弦波。
以單片機為例:
首先,單片機能正常工作的必要條件之一就是時鍾電路,所以單片機就很需要晶振。單片機在運行的時候,需要一個脈沖信號,做為自己執行指令的觸發信號,可以簡單的想象為:單片機收到一個脈沖,就執行一次或多次指令。
單片機工作時,是一條一條地從ROM中取指令,然后一步一步地執行。單片機訪問一次存儲器的時間,稱之為一個機器周期,這是一個時間基准。—個機器周期包括12個時鍾周期。如果一個單片機選擇了12兆赫茲晶振,它的時鍾周期是1/12us,它的一個機器周期是12×(1/12)us,也就是1us。
MCS—51單片機的所有指令中,有一些完成得比較快,只要一個機器周期就行了,有一些完成得比較饅,得要2個機器周期,還有兩條指令要4個機器周期才行。為了衡量指令執行時間的長短,又引入一個新的概念:指令周期。所謂指令周期就是指執行一條指令的時間。例如,當需要計算DJNZ指令完成所需要的時間時,首先必須要知道晶振的頻率,設所用晶振為12兆赫茲,則一個機器周期就是1us。而DJNZ指令是雙周期指令,所以執行一次要2us。如果該指令需要執行500次,正好1000us,也就是1ms。
機器周期不僅對於指令執打有着重要的意義,而且機器周期也是單片機定時器和計數器的時間基准。例如一個單片機選擇了12兆赫茲晶振,那么當定時器的數值加1時,實際經過的時間就是1us,這就是單片機的定時原理。
晶振是給單片機提供工作信號脈沖的。這個脈沖就是單片機的工作速度。比如12兆晶振。單片機工作速度就是每秒12兆。單片機內部也有晶振。接外部晶振可以或得更穩定的頻率.
晶振好比單片機的心臟,如果沒有心臟起跳,單片機無法工作,晶振值越大,單片機運行速度越快,有時並不是速度越快越好,對於電子電路而言,速度夠用就是最好,速度越快越容易受干擾,可靠性越差。
3、三種周期和分頻
(1)時鍾周期、指令周期、機器周期
時鍾周期/振盪周期:時鍾周期又叫做振盪周期、節拍周期,定義為時鍾晶振頻率的倒數。時鍾周期是計算機中最基本的、最小的時間單位。在一個時鍾周期內,CPU僅完成一個最基本的動作。例如晶振為12M,則時鍾周期為1/12us。又可以被定義為節拍。
指令周期:指令周期是指取出並完成一條指令所需的時間,一般由若干個機器周期組成,分為單周期指令,雙周期指令和多周期指令。對於一些簡單的的單字節指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執行,不再需要其它的機器周期。對於一些比較復雜的指令,例如轉移指令、乘法指令,則需要兩個或者兩個以上的機器周期。
機器周期:在計算機中,為了便於管理,常把一條指令的執行過程划分為若干個階段,每一階段完成一項工作。例如,取指令、存儲器讀、存儲器寫等,這每一項工作稱為一個基本操作。完成一個基本操作所需要的時間稱為機器周期。一般情況下,一個機器周期由若干個S周期(狀態周期)組成。比如,取值周期,取數周期。在80C51內部,機器周期一般包括於6個狀態周期,12個時鍾周期。例如24M的晶振,機器周期為12/24M秒。
(2)時鍾分頻
時鍾分頻最簡單的方法就是用計數器,原理是這樣的:原來的多個脈沖產生一個新脈沖,這樣頻率就比原來的減少了,比如八進制,就是八分頻,十進制,就是十分頻。
4、CPU 周期信號、節拍周期信號、節拍脈沖信號三者之間的關系
一小塊石英晶體加電后產生壓電反應,在固定頻率振動,產生出電壓按照固定周期變化的脈沖信號。這個高頻率的信號通向分頻器(frequency divider),轉化為比較低頻的信號。
以上圖為例,分頻器分出來的信號有四個頻率。 CPU周期信號、節拍周期信號、節拍脈沖信號本質上都是時鍾脈沖的不同分頻,主要區別在於用途上。
通常來說,CPU 周期信號最“慢”,它決定 CPU 所處的狀態。CPU 執行一條指令的周期叫做指令周期(instruction cycle),指令周期可以划分為 fetch、decode、和 execute 三個部分,所以也叫 fetch-decode-execute cycle。假設上圖與 QD 頻率相同的信號有三個,QD1、QD2、QD3,它們分別依次處於高電位,那么就可以用它們來控制 CPU 處於 fetch、decode、還是 execute 狀態,這就是 CPU 周期信號。
節拍周期信號是控制信號,調整電路的功能。比如,現在 CPU 處於 fetch 狀態,仍舊以上圖為例,假設 QC 這個比 QD “快”的信號有 QC1、QC2、QC3……QCi 個,分別對應電路的不同功能(比如,應該將從內存中取來的數字作為指令解釋,還是送給寄存器存起來),誰處於高電位,CPU 就能執行誰決定的功能。
節拍脈沖信號則是觸發信號,決定電路的實際工作起點。以上圖的 QB 為例,假設 QD1 決定 CPU 處於 fetch 階段,QC1 決定 CPU 的功能是去內存取一個數字,那么 QB 的上升沿會觸發整個電路切實地執行這個功能。