用三只IC建立一個(gè)數(shù)字PLL
本設(shè)計(jì)思想中的簡(jiǎn)單電路給出了一個(gè)傳統(tǒng)模擬鎖相環(huán)的基礎(chǔ)特性,但電路中除了基準(zhǔn)振蕩器以外,沒(méi)有其它的模擬元件。雖然其它可用的數(shù)字PLL,包括那些采用加/減計(jì)數(shù)器的數(shù)字PLL,但本文這個(gè)更簡(jiǎn)單也更靈活。
此電路最早在30多年前用作時(shí)鐘再生器,用于磁記錄中自帶時(shí)鐘碼(如曼徹斯特碼或雙相碼)的數(shù)據(jù)分隔器。很快人們就明白了它有很多其它應(yīng)用。該電路亦可以作為伺服控制器的基礎(chǔ),用于磁帶驅(qū)動(dòng)器的走帶輪電機(jī)/轉(zhuǎn)速計(jì)。LSI磁盤(pán)/磁帶控制芯片同時(shí)包括了數(shù)據(jù)分隔器和走帶輪伺服控制器,其優(yōu)點(diǎn)是沒(méi)有模擬電路,不需要調(diào)節(jié)。由于它很早以前就已用于批量的產(chǎn)品中,因此今天已沒(méi)有專利問(wèn)題,可以免費(fèi)使用。
圖1中的例子只使用了三只IC,可快速制作出原型電路,解釋也很簡(jiǎn)單。74161計(jì)數(shù)器輸出與預(yù)置輸入端之間的連接,構(gòu)成了一個(gè)實(shí)現(xiàn)查詢表的基本ROM(表1)。16XREF應(yīng)是一個(gè)方波,或至少不是一個(gè)窄脈沖,因?yàn)楸仨毧紤]在上升沿和下降沿以及設(shè)置時(shí)間出現(xiàn)的情況。INPUT脈沖必須足夠長(zhǎng),以滿足為7474 D觸發(fā)器所挑選邏輯系列器件對(duì)時(shí)鐘脈沖寬度的要求。
圖1 計(jì)數(shù)器裝入自己的數(shù)據(jù)輸入,從而產(chǎn)生一個(gè)鎖定到輸入信號(hào)的輸出。
在原型測(cè)試時(shí),使INPUT大約為16XREF頻率的1/16,當(dāng)緩慢改變INPUT頻率時(shí),查看輸出。使用一臺(tái)能夠精細(xì)調(diào)節(jié)INPUT的信號(hào)發(fā)生器,測(cè)量1/16 XREF源的略偏上和偏下處的鎖定范圍。抖動(dòng)等于16XREF的時(shí)鐘周期,但當(dāng)INPUT變化為±20%或更多時(shí),輸出會(huì)保持鎖定住INPUT。當(dāng)頻率互相接近時(shí),可以臨時(shí)斷開(kāi)計(jì)數(shù)器的Pin 9,觀察輸出滑過(guò)INPUT。重新連接Pin 9可證明鎖定動(dòng)作。當(dāng)INPUT是16XREF的精確1/16時(shí),輸出為方波,當(dāng)高于或低于中心頻率時(shí),輸出會(huì)成為長(zhǎng)方形。
表1 最小計(jì)數(shù)器預(yù)置
運(yùn)行時(shí),計(jì)數(shù)器連續(xù)計(jì)數(shù),但I(xiàn)NPUT信號(hào)的每個(gè)上升沿都會(huì)在計(jì)數(shù)器產(chǎn)生一個(gè)預(yù)置脈沖。從表1的計(jì)數(shù)與預(yù)置值,可以推測(cè)出,每當(dāng)計(jì)數(shù)器得到一個(gè)預(yù)置脈沖,計(jì)數(shù)就會(huì)更接近于7或8。如果它已經(jīng)是7或8,則就會(huì)保持不變。伺服循環(huán)誤差信號(hào)是在預(yù)置信號(hào)到達(dá)的時(shí)刻,計(jì)數(shù)器當(dāng)前狀態(tài)與7或8之間的差。這個(gè)簡(jiǎn)單例子使用了計(jì)數(shù)值,將用于預(yù)置的誤差信號(hào)減半。
如果INPUT信號(hào)是基準(zhǔn)的精確1/16,但起始的相位差180°,則第一個(gè)預(yù)置脈沖可能在計(jì)數(shù)器為15時(shí)出現(xiàn)。于是,計(jì)數(shù)器預(yù)置為11,從這里恢復(fù)計(jì)數(shù)。在下一個(gè)預(yù)置脈沖時(shí),計(jì)數(shù)器為10,預(yù)置到9。接下來(lái)的預(yù)置脈沖出現(xiàn)在計(jì)數(shù)為8時(shí),并預(yù)置到8。然后會(huì)預(yù)置到7;當(dāng)計(jì)數(shù)器為6下一個(gè)預(yù)置脈沖到來(lái)時(shí),它再次預(yù)置為7,現(xiàn)在就同步了。預(yù)置脈沖恰于計(jì)數(shù)器的最高有效位從0變1時(shí)到來(lái),這也是INPUT信號(hào)正在做的動(dòng)作。
如果INPUT信號(hào)略慢于基準(zhǔn)的1/16,則當(dāng)計(jì)數(shù)器計(jì)到超過(guò)8時(shí)(如到12),預(yù)置脈沖到來(lái)。它將預(yù)置值設(shè)為10。但由于INPUT信號(hào)太慢,當(dāng)下個(gè)預(yù)置脈沖到來(lái)時(shí),計(jì)數(shù)器再次回到12。電路仍然鎖定,但MSB會(huì)延長(zhǎng)以適配于較慢的INPUT信號(hào)。對(duì)于快于1/16基準(zhǔn)的INPUT信號(hào),相同過(guò)程維持著鎖定,但MSB信號(hào)的周期縮小,以維持鎖定。
如果INPUT過(guò)慢,計(jì)數(shù)器超過(guò)了15并返回到0,或在預(yù)置發(fā)生以前就超出,則發(fā)生失鎖情況。如果在下一個(gè)預(yù)置脈沖到來(lái)以前,計(jì)數(shù)器甚至不能計(jì)數(shù)到0,也很可能會(huì)失鎖。電路可以鎖定在16X基準(zhǔn)的倍數(shù)或約數(shù)上。
可以對(duì)鎖定特性作一些調(diào)整,增加更多的計(jì)數(shù)器位,在計(jì)數(shù)器輸出端與預(yù)置的輸入端之間放一個(gè)ROM,減少抖動(dòng)(圖2和圖3)。例如,使用一只PROM,可以將誤差除以3或4,增加鎖定區(qū)間。另外,還可以用一只PROM,將誤差信號(hào)減1或減2,而不是將誤差除以2。這種方法可明顯收窄鎖定區(qū)間。PROM的多余輸出線(不用于計(jì)數(shù)器預(yù)置)還可以用于其它功能。
由于計(jì)數(shù)器的預(yù)置脈沖出現(xiàn)于有誤差信號(hào)的那個(gè)時(shí)刻,因此可以在PROM里寫(xiě)更多的位,鎖存供其它應(yīng)用使用的錯(cuò)誤條件,如指示一個(gè)未鎖存的狀態(tài),或指示INPUT頻率相對(duì)于基準(zhǔn)信號(hào)的高、低或正中。這種方法用于電機(jī)控制器時(shí),可以指出電機(jī)的負(fù)載是輕、中等還是重。對(duì)于其它應(yīng)用,可以編寫(xiě)第二個(gè)并行PROM,將采樣送給一個(gè)DAC而生成一個(gè)正弦波,或?yàn)橐粋€(gè)電源轉(zhuǎn)換器生成一個(gè)準(zhǔn)正弦波。
圖2 兩個(gè)計(jì)數(shù)器和一個(gè)PROM增強(qiáng)了鎖定功能的多用性。
作為走帶輪電機(jī)伺服控制器時(shí),轉(zhuǎn)速計(jì)是給PLL的INPUT,而電機(jī)速度鎖定到晶體的基準(zhǔn)頻率。PROM的一個(gè)輸出位(針對(duì)電機(jī)PWM信號(hào)作了修正)使伺服控制更好地控制占空比。預(yù)置的MSB為0,迫使系統(tǒng)在鎖定情況下,工作在下半地址空間內(nèi)。這種方案空出了PROM的最高輸出線,使之成為電機(jī)控制信號(hào)。
圖3 用示波器中上方軌跡的輸入信號(hào)作觸發(fā),可以在示波器的下面軌跡看到被鎖定的輸出信號(hào)抖動(dòng)。
使用一個(gè)8 bit計(jì)數(shù)器和一個(gè)256×8-bit PROM,可提供很多空間和選項(xiàng),以優(yōu)化電機(jī)在各種變化負(fù)載狀況下的性能。對(duì)PROM最高線的編程決定了在計(jì)數(shù)器周期中,電機(jī)PWM信號(hào)開(kāi)和關(guān)的位置。如果電機(jī)負(fù)載大,則它會(huì)降速,使計(jì)數(shù)器計(jì)數(shù)更長(zhǎng),較大于預(yù)置發(fā)生前。當(dāng)計(jì)數(shù)器計(jì)數(shù)較高時(shí),電機(jī)位保持有效的時(shí)間更久,增加了PWM信號(hào)的占空比,對(duì)重載作出補(bǔ)償。伺服的中點(diǎn)是63/64,將鎖定操作保持在下半地址空間內(nèi)。因此,上半地址空間只用于電機(jī)起動(dòng)時(shí),所以,每當(dāng)計(jì)數(shù)器是在這個(gè)高數(shù)時(shí),就將PROM的電機(jī)PWM位寫(xiě)為“on”,可以提供額外的起動(dòng)轉(zhuǎn)矩。
寫(xiě)入ROM還可以控制鎖定區(qū)間,或回路增益,以適配于負(fù)載的變化;還可以修改占空比以配合電機(jī)的轉(zhuǎn)矩特性;并且還可以控制起動(dòng)轉(zhuǎn)矩。