來鵬飛李 良徐晟陽鄒林均
(無錫中微愛芯電子有限公司,江蘇無錫 214072)
通用串行總線(USB)作為一種成熟使用的計(jì)算機(jī)串行通信接口標(biāo)準(zhǔn),具有熱插拔、即插即用、數(shù)據(jù)傳輸可靠、擴(kuò)展方便的優(yōu)點(diǎn),被廣泛用于各種嵌入式系統(tǒng)中。
USB 總線是一根4 線電纜,包括2 根差分?jǐn)?shù)據(jù)(D+/D-)傳輸信號(hào)線,另外2 根為電源和地線,用于為USB 設(shè)備提供電源。USB 總線沒有專門的時(shí)鐘信號(hào)用于同步主機(jī)和設(shè)備之間的數(shù)據(jù)交互??偩€的同步信息包含在數(shù)據(jù)包的同步字段,通過同步字段可以使主機(jī)和設(shè)備內(nèi)的鎖相環(huán)同步。為了保證通信可靠正確的進(jìn)行,從機(jī)的數(shù)據(jù)同步時(shí)鐘頻率必須嚴(yán)格跟隨主機(jī)數(shù)據(jù)比特信息的時(shí)序。
設(shè)計(jì)了應(yīng)用于USB 音頻外設(shè)的同步時(shí)鐘產(chǎn)生系統(tǒng),輸入?yún)⒖紩r(shí)鐘采用小數(shù)分頻的方式動(dòng)態(tài)跟隨主機(jī)傳輸速率的變化,確保參考時(shí)鐘的精度,電荷泵鎖相環(huán)(CPPLL)采用頻率倍增的方式產(chǎn)生頻率和相位高度跟隨參考時(shí)鐘變化的系統(tǒng)時(shí)鐘,確保與主機(jī)數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
本設(shè)計(jì)所涉及的USB 音頻設(shè)備的時(shí)鐘由內(nèi)部PLL 頻率倍增產(chǎn)生,不需要外接晶振。參考時(shí)鐘由壓控環(huán)形振蕩器(VCO)時(shí)鐘進(jìn)行高精度小數(shù)分頻產(chǎn)生,小數(shù)分頻系數(shù)根據(jù)USB 主機(jī)數(shù)據(jù)包的幀頻變化動(dòng)態(tài)調(diào)整[1]。PLL1 倍頻時(shí)鐘分頻后產(chǎn)生系統(tǒng)時(shí)鐘,并作為音頻AD、DA 模塊PLL 的參考時(shí)鐘,確保音頻數(shù)據(jù)實(shí)時(shí)傳輸?shù)目煽啃?。同步時(shí)鐘系統(tǒng)的結(jié)構(gòu)如圖1 所示。
圖1 同步時(shí)鐘系統(tǒng)拓?fù)浣Y(jié)構(gòu)
首先主機(jī)發(fā)送幀起始(SOF)[2-4]包,通過USB總線數(shù)據(jù)信號(hào)傳輸至音頻設(shè)備,周期為1 ms。設(shè)備對SOF 包解碼[5]計(jì)數(shù)每8 ms 產(chǎn)生一次使能信號(hào),該信號(hào)控制PLL1 頻率的調(diào)整,具體原理如下文。
系統(tǒng)上電后,音頻設(shè)備內(nèi)的RF 壓控振蕩器(VCO)首先產(chǎn)生不穩(wěn)定的高頻(640 MHz)時(shí)鐘信號(hào),該時(shí)鐘經(jīng)過小數(shù)分頻后再800 分頻作為PLL1鑒相/鑒頻器(PFD)的輸入?yún)⒖紩r(shí)鐘。參考時(shí)鐘在上電默認(rèn)分頻系數(shù)下,由于射頻時(shí)鐘的偏差,可能會(huì)偏離目標(biāo)值。此時(shí)PLL1 根據(jù)參考時(shí)鐘倍頻后分頻輸出系統(tǒng)時(shí)鐘CLK1,CLK1 是USB 通信和系統(tǒng)控制的主時(shí)鐘,PLL1 分頻系數(shù)調(diào)整模塊內(nèi)的計(jì)數(shù)器以CLK1 進(jìn)行計(jì)數(shù),在SOF 包產(chǎn)生8 ms/次的使能信號(hào)時(shí)判斷計(jì)數(shù)值是否等于96 000。如果相等,則分頻系數(shù)不需調(diào)整;如果計(jì)數(shù)值偏大,說明CLK1 頻率偏快,需要增大分頻系數(shù);如果計(jì)數(shù)值偏小,說明CLK1頻率偏慢,需要減小分頻系數(shù)。分頻系數(shù)每8 ms 調(diào)整一次,由于PLL 的相位/頻率跟隨特性,經(jīng)過若干次調(diào)整,PLL1 的頻率和相位完成與主機(jī)PLL 的同步。
小數(shù)分頻系數(shù)根據(jù)CLK1 的頻率動(dòng)態(tài)調(diào)整,如表1 所示。分頻率在2.03~2.97 分頻之間調(diào)節(jié),共750 級(jí)步進(jìn),步長0.001 25,確保參考時(shí)鐘頻率為0.3 MHz,誤差范圍±0.05%,滿足USB 全速傳輸時(shí)的時(shí)序要求,如表2 所示。
表1 CLK1 頻率與小數(shù)分頻系數(shù)的關(guān)系
表2 USB 全速傳輸信號(hào)的時(shí)序信息[6]
PLL2/PLL3 分頻產(chǎn)生音頻設(shè)備AD 和DA 模塊的工作時(shí)鐘。為了確保音頻數(shù)據(jù)實(shí)時(shí)傳輸時(shí)較低的誤碼率,其數(shù)據(jù)產(chǎn)生時(shí)鐘必須與總線比特速率匹配,有必要設(shè)計(jì)PLL 產(chǎn)生與系統(tǒng)時(shí)鐘同步的工作時(shí)鐘。
PLL2/PLL3 以CLK1 作為輸入?yún)⒖紩r(shí)鐘,根據(jù)RAM 數(shù)據(jù)讀寫量動(dòng)態(tài)調(diào)節(jié)所產(chǎn)生的時(shí)鐘的小數(shù)分頻系數(shù),小數(shù)分頻后的時(shí)鐘送入PFD,確保CLK2/CLK3 的相位/頻率跟隨CLK1,實(shí)現(xiàn)音頻數(shù)據(jù)和總線比特速率的同步。
如圖1 所示,設(shè)備以CLK1 讀取RAM 中的AD數(shù)據(jù),并記錄讀取的字節(jié)數(shù),以該字節(jié)數(shù)為基準(zhǔn),與1 ms 內(nèi)的寫入RAM 字節(jié)數(shù)作比較,若讀寫量一致,則認(rèn)為此時(shí)的CLK2 頻率不需要調(diào)整;若讀寫量不一致,則控制PLL2 中的分頻器做出調(diào)整,改變分頻系數(shù),使得讀寫量接近。
同理,設(shè)備以CLK2 將主機(jī)傳輸?shù)腄A 數(shù)據(jù)寫入RAM 中,并記錄寫入的字節(jié)數(shù),以該字節(jié)數(shù)為基準(zhǔn),與1 ms 內(nèi)的讀出RAM 字節(jié)數(shù)作比較,若讀寫量一致,則認(rèn)為此時(shí)的CLK3 頻率不需要調(diào)整;若讀寫量不一致,則控制PLL3 中的分頻器做出調(diào)整,改變分頻系數(shù),使得讀寫量接近。
表3 CLK2/3 頻率與小數(shù)分頻系數(shù)的關(guān)系
同步時(shí)鐘系統(tǒng)電路結(jié)構(gòu)如圖2 所示。模擬模塊包括產(chǎn)生射頻時(shí)鐘RF_CLK 的RF_VCO 電路,產(chǎn)生系統(tǒng)時(shí)鐘CLK1 的CPPLL1,產(chǎn)生AD 工作時(shí)鐘CLK2 的CPPLL2 以及DA 工作時(shí)鐘的CPPLL3。數(shù)字模塊包括分別產(chǎn)PLL1/2/3 小數(shù)分頻系數(shù)的PLL1/2/3_ADJ 模塊。
圖2 同步時(shí)鐘系統(tǒng)電路結(jié)構(gòu)
RF 環(huán)形VCO 電路結(jié)構(gòu)如圖3 所示,M1~M4 采用背靠背交叉正反饋連接構(gòu)成PMOS 和NMOS 互耦對?;ヱ顚Τ省柏?fù)阻”特性,與LC 振蕩回路并聯(lián)構(gòu)成負(fù)跨導(dǎo)振蕩器[7]。采用CMOS 互耦對可以減小電流消耗并降低振蕩幅度。通過設(shè)置MOS 管寬長比來調(diào)整總負(fù)阻值,使gmn=gmp=(1.25~1.5)/Rp,確保振蕩其可以起振。LC 振蕩回路由虛地串聯(lián)的電容(包括MOS 電容)、電感和并聯(lián)互耦對并聯(lián)組成,振蕩頻率為
MOS 電容一端接VREF控制電壓,另一端接X、Y節(jié)點(diǎn),通過改變VREF大小,可以調(diào)整MOS 電容容值[8],從而改變振蕩頻率。
環(huán)形振蕩采用正反饋技術(shù)來調(diào)節(jié)延遲單元的延遲時(shí)間,如圖3 所示。LC 振蕩器的差分輸出信號(hào)VX、VY控制延遲單元尾電流。M10 和M11 組成的交互式耦合對產(chǎn)生負(fù)阻-2/gm,阻值由偏置電流IN控制,調(diào)節(jié)負(fù)電阻的大小可以改變延遲時(shí)間。差分對尾電流IP與IN互補(bǔ),保證環(huán)形振蕩具有常數(shù)振幅。整個(gè)環(huán)形振蕩器的周期為4TD,TD=1/fLC,所以最終RF 振蕩器的頻率640 MHz。
圖3 RF 環(huán)形VCO 電路結(jié)構(gòu)
CPPLL1 的電路結(jié)構(gòu)如圖4 所示。射頻時(shí)鐘RF_CLK 經(jīng)小數(shù)分頻器及整數(shù)(800)后作為PFD 的輸入?yún)⒖紩r(shí)鐘REF_CLK。VCO 本振時(shí)鐘分頻后(VCO_DIV)與REF_CLK 通過PFD 對比相位及頻率,產(chǎn)生電荷泵開關(guān)信號(hào)UP/DOWN,控制電荷泵對CP充放電,從而改變VCO 控制電壓VCONT,使VCO產(chǎn)生與參考時(shí)鐘頻率和相位保持確定的關(guān)系的系統(tǒng)時(shí)鐘CLK1[9]。
圖4 PLL1 電路結(jié)構(gòu)
2.2.1 PFD 電路設(shè)計(jì)
PFD 能檢測周期性信號(hào)相位差以及頻率差,電路結(jié)構(gòu)如圖5 所示,由2 個(gè)邊沿觸發(fā)、帶置位端的D觸發(fā)器以及具有較大門級(jí)延時(shí)的與門組成。
圖5 PFD 電路結(jié)構(gòu)
輸出信號(hào)UP 和DOWN 與2 輸入信號(hào)的相位差和兩者的頻率差有關(guān),如圖5 所示。如果REF_CLK上升沿在VCO_DIV 之前則UP 拉高,電荷泵充電;VCO_DIV 上升沿在REF_CLK 之前則DOWN 拉高,電荷泵放電。
如果器件節(jié)點(diǎn)寄生電容較大,當(dāng)輸入信號(hào)相位差較小時(shí),則UP/DOW 脈沖信號(hào)時(shí)間較短,可能無法打開電荷泵開關(guān),導(dǎo)致PFD 存在相位死區(qū),使VCO 的輸出在過零點(diǎn)產(chǎn)生“抖動(dòng)”(jitter)。為了消除死區(qū),在與門產(chǎn)生的置位信號(hào)加上一定的延時(shí),延時(shí)保證在鎖定狀態(tài)附近(Δφ≈0)時(shí),UP/DOWN 信號(hào)寬度足夠開啟電荷泵開關(guān),從而完成對極小相位差的識(shí)別。
當(dāng)相位鎖定后,UP/DOWN 脈沖寬度小于異或門的延時(shí)濾波時(shí)間,最終LOCK_L 輸出低電平,標(biāo)志時(shí)鐘穩(wěn)定,系統(tǒng)可以正常工作;當(dāng)系統(tǒng)時(shí)鐘受到干擾,頻率/相位不能跟隨總線比特率變化時(shí),LOCK_L 產(chǎn)生高電平時(shí)鐘信號(hào),系統(tǒng)復(fù)位。
2.2.2 CP 電路設(shè)計(jì)
CP 電路能夠根據(jù)PFD 輸出信號(hào)啟動(dòng)電荷泵控制電容CP的充放電,從而改變VCO 的控制電壓VCONT,迫使VCO 輸出頻率和相位改變,如圖6 所示,由CMOS 傳輸門組成充放電開關(guān),分別有PMOS 電流源及NMOS 電流漏提供CP充放電電流。
圖6 CP 電路結(jié)構(gòu)
當(dāng)UP 信號(hào)為高時(shí),說明REF_CLK 頻率/相位快于VCO_DIV,開關(guān)SP導(dǎo)通,CP上電荷積累,VCONT電壓升高,從而使VCO 頻率加快,相位提前,當(dāng)PFD輸入信號(hào)頻率相等,相位差為零時(shí),電荷泵停止充電,環(huán)路保持鎖定;當(dāng)DOWN 信號(hào)為高時(shí),VCONT電壓及VCO 調(diào)整過程與以上過程相反。
為了保證反饋系統(tǒng)的穩(wěn)定性[10],在環(huán)路濾波電容中增加了調(diào)零電阻RP,同時(shí)為了減小VCONT電壓的紋波對輸出時(shí)鐘相位的影響,增加了穩(wěn)壓電容CL,抑制VCONT電壓的跳動(dòng)。
由于電流源/漏的漏端寄生電容存在,當(dāng)相位鎖定時(shí)如果VCONT電壓偏離VDD/2 較大,則在開關(guān)SP/SN同時(shí)導(dǎo)通時(shí),“電荷共享效應(yīng)”會(huì)導(dǎo)致VCONT電壓跳動(dòng)。為此,在開關(guān)斷開時(shí),通過電壓跟隨器將VX/VY電壓固定為VCONT,這樣開關(guān)導(dǎo)通時(shí)便不會(huì)出現(xiàn)電荷共享效應(yīng)[11]。
2.2.3 VCO 電路設(shè)計(jì)
VCO 電路為恒電流源型的環(huán)形振蕩器,通過改變電流源電流的大小改變振蕩頻率,如所示,其輸出頻率是電荷泵輸出電壓VCONT的函數(shù)[12]:
f0為VCONT=0 時(shí)的截距,其大小與固定偏置電流ID確定,KVCO表示頻率增益或靈敏度(單位為Hz/V)。頻率調(diào)整范圍為f2-f1,如圖8 所示。
圖7 VCO 電路結(jié)構(gòu)
圖8 VCO 頻率變化示意圖
PLL2/PLL3 電路結(jié)構(gòu)與PLL1 類似,如圖9 所示,不同在于其參考時(shí)鐘為PLL1 產(chǎn)生的CLK1,VCO 產(chǎn)生的分頻反饋信號(hào)VCO_DIV 的分頻系數(shù)為小數(shù)分頻,系數(shù)值根據(jù)RAM 讀寫字節(jié)量進(jìn)行動(dòng)態(tài)調(diào)整,以使PLL2/3 的VCO 時(shí)鐘輸出與CLK1 匹配,確保音頻數(shù)據(jù)與主機(jī)比特速率同步。
圖9 PLL2/3 電路結(jié)構(gòu)
所設(shè)計(jì)的同步時(shí)鐘電路采用0.153 μm CMOS工藝流片,模擬模塊版圖概貌如所圖10 所示。
圖10 同步時(shí)鐘電路模擬模塊版圖概貌
同步時(shí)鐘系統(tǒng)中關(guān)鍵參數(shù)的仿真結(jié)果如表4所示。
表4 CPPLL 電路中關(guān)鍵參數(shù)仿真結(jié)果
模擬模塊中關(guān)鍵信號(hào)的仿真波形如圖11、圖12所示。
圖11 CPPLL1 電路仿真波形
圖12 CPPLL1 電路仿真波形
流片測試結(jié)果表明USB 音頻設(shè)備在內(nèi)部同步時(shí)鐘的驅(qū)動(dòng)下精確的與主機(jī)通信握手,USB 總線差分信號(hào)測試結(jié)果如圖13 所示。
圖13 USB 差分信號(hào)
PLL1~PLL3 的時(shí)鐘信號(hào)分頻后的測試結(jié)果如圖14 所示,各個(gè)PLL 時(shí)鐘能夠精確跟隨12 MHz 參考時(shí)鐘。
當(dāng)調(diào)整參考時(shí)鐘頻率由12 MHz 到13 MHz 時(shí),CLK1 跟隨參考時(shí)鐘頻率變化,當(dāng)兩者相位/頻率相同時(shí),鎖定信號(hào)LOCK_L 變?yōu)榈碗娖?,鎖定時(shí)間實(shí)測為25.8 μs,如圖15 所示。
圖14 PLL 時(shí)鐘分頻信號(hào)
圖15 PLL1 鎖定信號(hào)
從USB 音頻設(shè)備系統(tǒng)的角度,研究了如何確保設(shè)備與主機(jī)通信可靠地進(jìn)行,也使設(shè)備內(nèi)部時(shí)鐘與總線比特?cái)?shù)據(jù)實(shí)現(xiàn)精確的同步。所設(shè)計(jì)時(shí)鐘系統(tǒng)以總線數(shù)據(jù)幀起始包(SOF)作為同步信號(hào),來動(dòng)態(tài)調(diào)整CPPLL 參考時(shí)鐘的小數(shù)分頻系數(shù),多位調(diào)節(jié)系數(shù)保證了系統(tǒng)時(shí)鐘的精度,同時(shí)為了改善PLL 的相位噪聲及抖動(dòng)問題,分別采取了增加PLL 傳輸函數(shù)零點(diǎn)和消除電荷共享的措施。
仿真及流片實(shí)測結(jié)果表明,所設(shè)計(jì)的時(shí)鐘系統(tǒng)的精度及跟蹤范圍完全可以滿足USB 傳輸?shù)臅r(shí)序要求,USB 音頻設(shè)備在內(nèi)部時(shí)鐘系統(tǒng)的驅(qū)動(dòng)下,可以與主機(jī)可靠地通信。