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