崔 晶
(天津現(xiàn)代職業(yè)技術(shù)學(xué)院,天津300350)
高速串行傳輸技術(shù)被越來越多的通信設(shè)備采用.高速數(shù)據(jù)傳輸對時鐘的要求很高,而能滿足高速傳輸需求的各種專業(yè)芯片不僅價格昂貴,而且功能單一,靈活性低,不能滿足用戶多樣化的需求[1].不同線路輸入的時鐘經(jīng)過長距離傳輸,信號質(zhì)量劣化程度不同,經(jīng)過FPGA的SerDes(串并轉(zhuǎn)換)恢復(fù)出來的線路時鐘質(zhì)量不同.除此外,SDH通信系統(tǒng)接入的輸入信號線路數(shù)量不定,時鐘芯片需要對不確定數(shù)量的線路時鐘進行保持跟蹤.雖然有相應(yīng)的專用芯片來達到上述的目的,但是針對不同數(shù)量的線路時鐘,導(dǎo)致專用芯片的靈活性有所欠缺,且成本較高,如達拉斯公司的DS3100時鐘芯片,輸入的時鐘數(shù)量最多只有 6路;IDT公司的82V3399芯片,輸入的時鐘數(shù)量最多只用8路[2].本研究的目的就是要解決上述技術(shù)中存在的問題,使用FPGA對SDH中使用的時鐘進行處理,完成時鐘芯片功能.
系統(tǒng)硬件主要由2部分構(gòu)成:
1)19.44 M 溫補時鐘:主要對 FPGA提供19.44M高精度低抖動時鐘信號.
2)FPGA:主要完成時鐘的輸入和輸出,最終完成整個時鐘芯片功能.
硬件及主要信號線連接示意圖如圖1所示.
圖1 硬件及主要信號線連接示意圖
FPGA設(shè)計中的主要功能模塊如圖2所示.
FPGA通過外部管腳和CPU連接,CPU通過提取各路 SDH信號的時鐘質(zhì)量開銷符號 S1控制FPGA從各輸入時鐘選擇1路作為19.44M線路時鐘,選擇器由FPGA內(nèi)部查找表完成.
CK模塊將19.44M線路時鐘和19.44M輸出時鐘分別分頻為8K的時鐘,為PD(Phase Detect,鑒相模塊)模塊提供鑒相輸入信號.在本設(shè)計中,分頻功能由FPGA自帶的鎖相環(huán)實現(xiàn).Virtex-6系列 FPGA自帶的鎖相環(huán)輸入和輸出范圍均為10~700MHz,接受抖動范圍為0-10 UI[3],可以實現(xiàn)倍頻、分頻、移相等功能,輸出時鐘和輸入時鐘同相,且具有時鐘鎖定指示信號.
圖2 FPGA內(nèi)部功能模塊示意圖
PD模塊對線路時鐘和輸出時鐘進行鑒相,將指示線路時鐘超前輸出時鐘的超前鑒相信號和指示線路鐘時落后輸出時鐘的滯后鑒相信號輸出給LF(Low Pass,低通模塊)模塊.有限狀態(tài)機狀態(tài)轉(zhuǎn)移圖如圖3所示.
圖3 PD模塊有限狀態(tài)機狀態(tài)轉(zhuǎn)移圖
如圖3所示,每個狀態(tài)的輸入由同一時刻采集的8K線路時鐘和8K輸出時鐘狀態(tài)組成.在空閑狀態(tài),當(dāng)采集到輸入為10時,表示采集到8K線路時鐘高電平,8K輸出時鐘低電平,線路時鐘超前輸出時鐘,進入超前狀態(tài),并輸出超前鑒相信號;當(dāng)采集到輸入為01時,表示采集到8K線路時鐘低電平,8K輸出時鐘高電平,線路時鐘滯后輸出時鐘,進入滯后狀態(tài),并輸出滯后鑒相信號,其它輸入保持空閑狀態(tài);在處于超前或滯后狀態(tài)時,當(dāng)輸入為00時,表示采集到8K線路時鐘低電平,8K輸出時鐘低電平,進入空閑狀態(tài),當(dāng)輸入為 11時,表示采集到8K線路時鐘高電平,8K輸出時鐘高電平,進入暫停狀態(tài);在暫停狀態(tài),當(dāng)輸入為01時,表示表示采集到8K線路時鐘低電平,8K輸出時鐘高電平,線路時鐘超前輸出時鐘,跳轉(zhuǎn)到超前狀態(tài);當(dāng)輸入為10時,表示采集到8K線路時鐘高電平,8K輸出時鐘低電平,線路時鐘滯后輸出時鐘,跳轉(zhuǎn)到滯后狀態(tài).
低通模塊是低通濾波器.為了防止時鐘抖動帶給PD模塊錯誤的鑒相結(jié)果,LF模塊對PD模塊的輸出進行低通濾波,濾除高頻分量后輸出正確的選擇結(jié)果.在本設(shè)計中,低通模塊主要由兩個10比特位寬的計數(shù)器組成,分別命名為超前計數(shù)器和滯后計數(shù)器.計數(shù)器閾值為1023.每次PD模塊發(fā)出超前鑒相信號,則超前計數(shù)器加 1,當(dāng) PD模塊發(fā)出滯后鑒相信號,則滯后計數(shù)器加 1.當(dāng)超前計數(shù)器記滿1023后,則復(fù)位超前計數(shù)器,并同時向DCO模塊(Digital Control,數(shù)字控制)發(fā)出超前控制信號;當(dāng)滯后計數(shù)器記滿1023后,則復(fù)位滯后計數(shù)器,并同時向DCO模塊發(fā)出滯后控制信號.
狀態(tài)機采用格雷碼編碼,具體編碼實現(xiàn)采用賽靈思公司推薦的硬線邏輯語言編碼約束,詳細(xì)代碼如下:
DCO模塊控制本地時鐘移相追蹤線路時鐘相位.把 LF模塊輸入的超前鑒相和滯后鑒相每22秒加權(quán)平均進行統(tǒng)計,24小時的統(tǒng)計結(jié)果存儲在FPGA的塊RAM中.在輸入時鐘丟失時,F(xiàn)PGA從塊RAM中順序讀出統(tǒng)計值,使輸出時鐘追蹤線路時鐘過去24小時的相位變化[4].DCO模塊中的移相控制電路圖如圖4所示,DCO模塊通過FPGA內(nèi)部的多路復(fù)用器對155.52M的本地時鐘移相.每個多路復(fù)用器提供π/14個弧度相移.因為FPGA內(nèi)部布線延時的不精確,所以本設(shè)計利用ISE自帶的FPGA Editor手動擺放14個多路選擇器在各自查找表中的位置及每個查找表在FPGA內(nèi)部的位置,將抖動控制在0.4ns以內(nèi)[5],從而達到精確相移的目的.
模擬鎖相環(huán)調(diào)用FPGA自帶的模擬鎖相環(huán),通過本地高精度的 19.44M 晶振,生成各子模塊需要的311.04M和155.52M高速時鐘.
經(jīng)過系統(tǒng)聯(lián)合調(diào)試,基于FPGA的時鐘芯片設(shè)計技術(shù),時鐘抖動控制在 0.4ns內(nèi),超過 GR-253-CORE (OC-192) 和ITU-T G.813 (STM-64)的關(guān)于時鐘精度要求.為SDH業(yè)務(wù)板卡提供工作時鐘960 h,工作正常,板卡沒有出現(xiàn)誤碼、丟包現(xiàn)象,達到SDH設(shè)備應(yīng)用的預(yù)期目標(biāo).
圖4 DCO模塊移相控制電路圖
[1] 韋樂平.光同步數(shù)字傳送網(wǎng)[M].北京:人民郵電出版社,1998:65-69.
[2] 史國偉,王峰,陳明.一種基于SDH光線傳輸系統(tǒng)設(shè)備時鐘的數(shù)字式鎖相環(huán)[J].電子技術(shù)應(yīng)用,2000(10):70-72.
[3] ITU-T Rec. Timing characteristics of SDH equipment slave clocks (SEC), G.813[S]. 2003:83-86.
[4] ITU-T Rec. Physical/electrical characteristics of digital interface, G.703[S]. 1993:35-39.
[5] ITU-T Rec. Characteristics of SDH equipment functional clocks. G.783[S]. 2003:42-46.