上篇文章我們講了時鐘信號的幾個重要參數(shù),今天我們簡單講一下在設計中最常用到的幾種時鐘信號產(chǎn)生的方法,由于篇幅限制,我們不對具體的原理進行講述,有興趣的朋友可以在網(wǎng)上搜索相應的文章進行深入了解,另外對于簡單的555、8038等振蕩電路,以及復雜的通信中用到的時鐘產(chǎn)生電路也不涉及。
石英晶體和石英晶振
毫無疑問,這是每個硬件工程師接觸的最頻繁的兩種器件,幾乎每個工程師的器件柜里都應該有的器件,只要你用處理器,無論是8位的8051還是32位的ARM器件,總有至少兩個兩個管腳等著你放一顆晶體(下圖左側(cè)的器件)和倆幾十pF的電容,這樣MCU的心臟才能跳動起來,也才能夠在時鐘脈沖(像人身體的脈搏)的驅(qū)動下去執(zhí)行一條條的指令。
石英晶體(Crystal)和晶振(crystal oscillator)
大家要注意的是左側(cè)的叫晶體(Crystal,也有人叫無源晶振,只有2個對稱的管腳),里面的核心是一片薄薄的、具有壓電效應的石英(比較便宜,且機械結(jié)構(gòu)比較可靠)片,該石英片的厚度決定了振蕩器的振蕩頻率,因此其厚度不可能無限制的薄,也就意味著石英晶體的振蕩頻率不可能無限制的高,一般在市場上很難買到30MHz以上的晶體,雖然有的公司能夠提供到66MHz的晶體,但價格會非常的貴,因為要切割出如此高頻率對應的薄石英片的成本會更高(良率比較低)。
但,你卻很容易買到右側(cè)的80MHz、100MHz的晶振(Crystal Oscillator,有人叫有源晶振,有4個管腳 - 電源、地、輸出、輸出使能或空),為何?因為有源晶振本質(zhì)上是個內(nèi)部封裝了石英晶體、振蕩電路、輸出電平調(diào)節(jié)電路的模塊,其振蕩電路可以振蕩在晶體的3x、5x乃至7x的諧波上,也被稱為“泛音振蕩器”,并能夠滿足你需要的電平。
用晶體+反相器構(gòu)成的振蕩器電路
石英晶體/晶振相比LC、RC、RLC振蕩電路具有非常高的Q值,也就是非常高的精度和頻率穩(wěn)定度。我們小時候家里墻上掛的表(以及帶的手表)都是機械的,校準后跑幾天能差出好幾分鐘去,后來有了“石英鐘(以及石英表)”,跑一年依然誤差在一分鐘以內(nèi),當時覺得非常神奇。原因就是石英的精準度和穩(wěn)定度非常之高,當然有的石英表買回來就不準,你可以直接扔掉,原因就是它用的晶振振蕩電路的時鐘頻點偏移了,也就永遠調(diào)整不回來了。
下圖是最常見的MCU的時鐘電路。
MCU、FPGA等數(shù)字器件振蕩電路的典型工作方式
有的低功耗MCU器件除了正常工作需要的比較高的時鐘外,還有一個很低頻率的時鐘電路(比如下圖中用于實時時鐘的32.768KHz),能夠在系統(tǒng)休眠(主時鐘驅(qū)動的電路不工作)的情況下保持局部電路的工作。
具有兩個晶振時鐘的MCU
如果你電路板上有多個需要時鐘的數(shù)字器件,有時候可以共享一個時鐘源,例如MCU器件可以外部通過直接連接的晶體產(chǎn)生內(nèi)部時鐘,也可以將外部已經(jīng)工作的時鐘信號輸入到X1(有的器件叫OSC1),在X2管腳上可以測量到反相的時鐘輸出,這個信號也可以用于其它器件的時鐘源,前提是該時鐘的頻率滿足其它器件的要求。
MCU可以使用無源的晶體也可以使用有源的晶振或其它外部時鐘源
就如同電阻、電容一樣,晶體、晶振也有各種不同但相對常用的一些頻率的器件,比如用于實時時鐘(通過分頻)的32.768KHz、異步串行通信的11.0592MHz、用于USB的12MHz等。雖然很多系統(tǒng)對時鐘的精確頻率并沒有要求,但選用的時候還是要根據(jù)系統(tǒng)中要支持的功能,尤其是一些外設來選擇一個最合適的頻率點,當然也要能夠以正常的價格購買得到。
非精準時鐘需求的RC振蕩器
晶體、晶振具有高Q值和高輸出能力,適用于抖動必須極低的應用,可以實現(xiàn)100飛秒的相位噪聲(在傳統(tǒng)的12kHz至20MHz帶寬內(nèi)測量),但其缺點就是它像電感一樣不能夠集成在器件的內(nèi)部,在今天強調(diào)系統(tǒng)成本要低、PCB板上空間趨于越來越緊湊的情況下,器件內(nèi)部集成非晶振的振蕩電路在某些應用場景下就非常有意義。比如有的MCU、數(shù)字通信器件通常內(nèi)置了RC相移振蕩器用于非精密要求的時鐘產(chǎn)生,生成的時鐘頻率取決于內(nèi)部集成的R、C值,這種振蕩器具有大約1%的精度而且抖動比較高,適用于轉(zhuǎn)換時序不重要的應用,例如為MCU計時和驅(qū)動簡單的七段LCD,也可以用于實現(xiàn)高達幾Mbps、時序容差達到幾百ns的UART通信、低速/全速的USB數(shù)據(jù)通信等。
CP2102內(nèi)部有48MHz振蕩器,不需要外接時鐘產(chǎn)生電路
近幾年還有一種替代石英晶體振蕩器的器件 - MEMS(微機電)振蕩器被廣泛使用,它可以在擴展溫度下工作,頻率非常穩(wěn)定,具有極高的可靠性,抗沖擊和振動,體積也可以做的非常小,接近1平方毫米。由于其結(jié)構(gòu)的不同,MEMS時鐘可以在出廠的時候通過編程生成不同頻率的器件,相對于晶振要靈活多了。MEMS振蕩器具有高Q值,輸出較低至500飛秒的相位噪聲,它被廣泛用于網(wǎng)絡設備中。
MEMS振蕩器內(nèi)部構(gòu)成
SiTime就是一家以生產(chǎn)MEMS時鐘器件為主的高科技公司
用PLL+晶振產(chǎn)生更高頻率的時鐘信號
石英晶體、晶振能夠產(chǎn)生的頻率比較低(能到100MHz已經(jīng)不錯了),而且頻率很固定,如果在系統(tǒng)中需要非常高的頻率(今天我們通信中常用的5.8GHz、CPU常用的1.8GHz是如何實現(xiàn)的?)而且在滿足信號精度、穩(wěn)定性的情況下,頻率還可以非常方便地調(diào)節(jié),如何才能實現(xiàn)?-- 鎖相環(huán)PLL。
下圖是PLL的方框圖,細節(jié)不講,有興趣的自己去補,在這里只是告訴大家,PLL是基于一個外部的晶振時鐘,能夠先對晶振進行整數(shù)倍R分頻處理,作為PLL內(nèi)部的基準時鐘,內(nèi)部的環(huán)路可以對這個基準時鐘進行N倍的倍頻,因此可以得到外接晶振頻率F的N/R倍的頻率。
鎖相環(huán)PLL的工作原理框圖
PLL不僅被廣泛用在通信系統(tǒng)中產(chǎn)生方便調(diào)節(jié)的不同頻點的高頻率本振信號(LO),還被廣泛用在處理器、FPGA、通信器件中用于生成器件內(nèi)部的高速時鐘。
DDS生成任意頻率的時鐘信號
如果你不需要非常高的頻率,要求頻率靈活可調(diào),而且調(diào)節(jié)精度需要非常的高(比如數(shù)字收音機中),如何實現(xiàn)實現(xiàn)?有一種方法叫DDS(直接數(shù)字合成)可以來幫到你,它的優(yōu)點就是只要你有一個主時鐘,就可以產(chǎn)生任意頻率點的時鐘信號,而且頻率點可以非常高精度地調(diào)節(jié)。
DDS工作原理框圖
ADI公司(www.analog.com)有一系列的DDS芯片滿足不同頻率段的要求,如經(jīng)典的AD9850(125MHz主時鐘)、AD9832(25MHz主時鐘)等等;如果你板子上有FPGA,也可以通過FPGA的邏輯來自己實現(xiàn)。再配合FPGA內(nèi)部的PLL(小腳丫FPGA用的器件可以工作在內(nèi)部400MHz主時鐘)就可以實現(xiàn)更高頻任意頻率時鐘的產(chǎn)生了。(我們春節(jié)后會在摩爾吧上線一個專門講述通過DDS生成任意信號的在線課程,敬請大家關(guān)注)
下圖是目前的FPGA器件常用的時鐘產(chǎn)生方式,外部提供低速的晶振時鐘(如果是全局時鐘,需要連接到指定的幾根管腳上),內(nèi)部的PLL就可以通過配置參數(shù)得到不同頻率的高頻率時鐘。
FPGA內(nèi)部高頻率時鐘的生成
通過可編程邏輯實現(xiàn)整數(shù)倍分頻
在可編程邏輯/FPGA中會用到各種頻率的時鐘,而這些時鐘都來自一個祖宗 - 主時鐘,如何通過簡單的邏輯得到不同頻率的時鐘信號,并且滿足需要的相位關(guān)系是FPGA學習者必須要掌握的一項基本技能。在我們小腳丫FPGA的公眾號文章中有專門的介紹并附有Verilog的源代碼,可以自己去查閱。也可以點擊左下角的閱讀原文,到小腳丫FPGA的Wiki系統(tǒng)中去查找。
Enjoy!
-
處理器
+關(guān)注
關(guān)注
68文章
19375瀏覽量
230441 -
ARM
+關(guān)注
關(guān)注
134文章
9119瀏覽量
368217 -
石英晶體
+關(guān)注
關(guān)注
0文章
171瀏覽量
38591
原文標題:電子產(chǎn)品的心臟-時鐘—— 時鐘信號的產(chǎn)生
文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論