崔 晶
(天津現代職業技術學院 天津 300350)
隨著通信及計算機技術的發展,對大量數據進行高速和實時傳輸的需求越來越多,傳統的并行傳輸技術已經不能滿足現代通信的需求。因此,高速串行傳輸技術被越來越多的通信設備所采用。高速數據傳輸對包括芯片接口和電路板走線等硬件的要求很高,能滿足高速傳輸需求的專用集成電路不僅價格昂貴,而且功能單一,靈活性較低,不能滿足用戶多樣化的需求。[1]特別是在SDH通信領域,需要對系統中的高速信號分拆、復用、解復用,并且對各種開銷進行處理和維護。雖然有相應的專用芯片進行數據處理,但這加大了PCB設計的難度,增加了產品成本,一定程度上降低了靈活性。
本文介紹的技術可以使用 FPGA對 STM-64的高速信號進行處理,完成STM-64的幀同步傳輸為下一級進行各種處理,旨在解決上述技術中存在的問題。
系統硬件主要由3大部分構成:
① 10,G光模塊:主要將速率為 10,G的光信號轉換為速率為 10,G的電信號,電信號的電平規范為LVDS,電信號輸入解復用芯片;②解復用芯片:主要完成對速率為 10,G的高速電信號的串并變換,將串行信號轉換為16路并行速率為622,Mbps的信號,從數據中恢復出頻率為 622,MHz的同步時鐘,數據與時鐘一起送入 FPGA;③FPGA:主要完成 16路速率為 622,Mbps并行信號的接收,并完成 STM-64信號的幀同步。最終輸出幀同步狀態指示信號以及幀頭脈沖信號,完成整個STM-64幀同步的過程。
硬件及主要信號連接情況如圖1所示:
本設計中使用的10,G光模塊是Openext公司的單向收10,G光模塊,解復用芯片是VITESSE公司的VSC8479芯片,FPGA 是 Xilinx公司的XC6,VLX240T。
FPGA設計中的主要功能模塊如圖2所示:

圖2 FPGA內部功能模塊示意圖Fig.2 FPGA built-in function modules
如圖2所示,系統主要由3個模塊組成:Receive模塊、Rxd_sft模塊以及 Frame_head模塊。Receive模塊接收解復用芯片發送的速率為 622,M 的時鐘信號和16路數據信號后,分接速率為155,M的同步時鐘信號和 64路數據信號,傳輸給 Rxd_sft模塊。Rxd_sft模塊對 64路數據信號進行錯位調整后傳輸給Frame_head模塊。Frame_head模塊對數據進行幀頭搜尋,將指示幀同步狀態信號、幀頭脈沖以及正位的64,bit STM-64信號傳輸出去。
1.2.1 Receive模塊設計
Receive模塊將速率為622,M的時鐘信號和16路數據信號,分接為速率為 155,M 的同步時鐘信號和64路數據信號,需要調用 FPGA 自帶的ISERDESE1、IODELAY 完成。ISERDESE1可以將1路輸入信號輸出為原信號的四分之一頻率。IODELAY可以為輸入信號提供延時,每個單位延時可以為精確的 78,ps,最多 32個單位 2.5,ns時延。Receive模塊的連接見圖3。
如圖3所示,利用FPGA的ISERDESE1對輸入的622,M數據和時鐘進行四分頻,利用IODELAY對輸入時鐘進行延遲。總線對齊模塊控制 IODELAY延遲。

圖3 Receive模塊連接圖Fig.3 Connection diagram of Receive Module
因為解復用芯片和FPGA之間連線PCB布線已經做到了差分線等長,而且解復用芯片 VSC8479的輸出時鐘的下降沿與輸出數據采樣窗的中心對齊,所以總線對齊模塊需要找到VSC8479輸出時鐘的下降沿,即可穩定采樣VSC8479輸出的622,M高速數據。
如圖 4所示,總線對齊模塊在首次采樣后根據ISERDESE1輸出的Q[3∶0]進入3種不同狀態。

圖4 總線對齊模塊流程圖Fig.4 Flow diagram of bus aligning module
①如果 Q[3∶0]為全 1,則總線對齊模塊控制IODELAY增加 1個單位延時,8個周期后采樣Q[3∶0]。如果 Q[3∶0]為全 0,則成功找到時鐘下降沿,完成總線對齊過程;如果 Q[3∶0]非全 0,則返回增加延時狀態,控制IODELAY增加1個單位延時,8個周期后再根據 Q[3∶0]做判斷,直到采樣 Q[3∶0]為全0成功找到時鐘下降沿為止。②如果Q[3∶0]為全0,則總線對齊模塊控制IODELAY增加1個單位延時,8個周期后采樣Q[3∶0]。如果Q[3∶0]為全1,則成功找到時鐘上升沿;如果Q[3∶0]非全1,則返回增加延時狀態,控制 IODELAY增加 1個單位延時,8個周期后再根據 Q[3∶0]做出判斷,直到找到時鐘上升沿為止。當找到時鐘上升沿時,總線對齊模塊控制 IODELAY增加 1個單位延時,8個周期后采樣Q[3∶0]。如果 Q[3∶0]為全 0,則成功找到時鐘下降沿,完成總線對齊過程;如果 Q[3∶0]非全 0,則返回增加延時狀態,控制 IODELAY增加 1個單位延時,8個周期后再根據Q[3∶0]做判斷,直到采樣Q[3∶0]為全0成功找到時鐘下降沿為止,完成整個總線對齊過程。③如果 Q[3∶0]非全 0或 1,則采樣進入非穩定狀態。總線對齊模塊控制IODELAY增加1個單位延時,8個周期后采樣 Q[3∶0],直到 Q[3∶0]為全 0或全1,進入第1或第2種狀態轉移。
1.2.2 Rxd_sft模塊設計
在高速串行通信中,沒有專門用來標示幀頭的定位脈沖,所以解串出來的并行數據一般都是比特錯位的字節,需要對收到的數據進行整型。Rxd_sft模塊實現的就是這個功能。[2]
Rxd_sft模塊通過一塊容量為 128,bit的移位寄存器(以 64,bit為最小移動單位)緩存 155,M 時鐘連續 2個周期傳輸的數據。先到達時鐘周期的數據按比特進行錯位,組成新的 64,bit數據。新的 64,bit數據送入 Frame_head模塊進行幀頭搜尋。STM-64的10,G數據通過16路622,M信號傳輸過來,因此比特錯位有 16種情況,如圖 5所示。如果在第一種比特錯位的情況下 Frame_head模塊的幀同步信號為無效,則意味著無法檢測到幀頭指示字節,就會按第2種比特錯位情況輸出 64,bit的數據。以此類推,直到檢測到幀同步字節為止。

圖5 移位寄存器比特錯位調整示意圖Fig.5 Adjustment of bit dislocation in shifting register
1.2.3 Frame_head模塊設計
Frame_head模塊用來對幀頭進行判斷,輸出幀頭定位脈沖以及信號的幀同步狀態。模塊采用有限狀態機完成上述功能,幀同步狀態按照標準分為失步狀態、準校核狀態、校核狀態、同步狀態、保護狀態 5個狀態。[3]狀態轉移如圖6所示。

圖6 有限狀態機狀態轉移圖Fig.6 State transmission diagram of FSM
如圖 6所示,狀態機進入失步狀態,當在失步狀態檢測到 SDH中的 A1(F6)字節,則進入準校核狀態;準校核狀態下,如果檢測到A1字節,則停留在本狀態,如果檢測到 A2(28)字節,則進入校核狀態,如果檢測到非 A1或 A2字節,則進入失步狀態;校核狀態下,如果在1幀時間(0.125,μs)后再次檢測到A1和A2字節,則進入同步狀態,否則進入失步狀態。同步狀態下,每間隔 1幀時間如果可以繼續檢測到 A1和 A2字節,則停留在同步狀態;否則進入保護狀態。保護狀態下,如果連續 4幀時間沒有檢測到 A1和 A2字節,則進入失步狀態。如果 4幀時間以內有1次到3次檢測到 A1和A2字節,則停留在保護轉臺。如果連續 4幀時間均檢測到 A1和 A2字節,則重新進入同步狀態。
Rxd_sft模塊在進入同步狀態時輸出幀同步信號為高電平,在每次檢測到 A1和 A2字節時輸出一個時鐘周期寬度的脈沖作為幀頭指示。
經過系統聯合調試,基于FPGA的STM-64幀同步技術可以找到 SDH中 STM-64信號的幀頭,符合ITU-T Rec G.703以及 ITU-T RecG.783標準。
[1] 韋樂平. 光同步數字傳送網[M]. 北京:人民郵電出版社,1998.
[2] ITU-T Rec.Timing characteristics of SDH equipment slave clocks(SEC)[S]. G. 813,2003:83-86.
[3] ITU-T Rec.Physical/electrical characteristics of digital interface[S]. G. 703,1993:35-39.