陳 燕
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
隨著數據設備種類增加,精度提高,數據傳輸容量隨之急劇增加,高速數據傳輸就是把各種數據組合成大容量數據組進行傳輸。
在數據發送端需要對數據進行幀格式化處理,在數據接收端利用幀同步捕獲技術恢復原始數據。由于數據速率遠高于芯片處理能力,為了保證同步時間,必須采用并行處理。對數據傳輸中的幀結構進行了分析,論述了幀同步關鍵技術,針對高速數據傳輸的特點,給出了基于FPGA實現的快速幀同步設計方法,并對性能進行了分析和測試。
數據傳輸的速率為300 Mbps,幀結構采用CCSDS建議,幀長為1 024,其中幀定位碼為4字節長1ACFFC1D,1 020字節為RS(255,239)編碼交織后的傳輸數據,d為信息字節,c為校驗字節,由于交織深度為4,每幀傳輸4組,共 4×255字節,幀結構圖如圖1所示。

圖1 幀結構框圖
幀結構為集中連續插入幀同步碼組,設備完成4組RS編碼后,每一組交替輸出1字節,實現交織深度為4的交織。然后在每幀的開頭加入特殊碼組1ACFFC1D作為幀頭定位碼,定位碼長32 bit,在設備接收端通過該特殊碼組建立同步,確定RS碼的譯碼分組,并最終完成譯碼恢復數據。
由于交織深度是4,所以采用4個RS編碼塊同時并行處理,原始數據分為4組,每組為239字節,分別進行RS(255,239)編碼,編碼完成后,每組數據前239字節為原始信息數據,后16字節為RS校驗字節,輸出數據流順序為第1組的第1字節然后跟著第2組第1字,輸出完后面幾組的第1字節,再輸出從第1組開始的第2字節,直至完成第4組第256字節的數據。
由于幀頭為4字節,每組完成編碼后的字節為255字節,4組共1 020字節,因此幀長為1 024字節。在幀同步碼確定、幀長確定的情況下,幀同步的性能有:幀同步時間、假同步概率、同步保持時間。在接收端為了保證同步性能,需要對同步進行設計。在此主要討論高速幀同步的實現及性能分析。
在設備接收端為了正確恢復數據,必須保持幀同步,幀同步指把接收端的幀狀態調整到與發送端幀狀態具有正確的關系,并保持這種正確關系的過程。
設計的關鍵技術有搜索電路設計、校核電路設計和同步保持設計,其狀態圖如圖2所示。

圖2 幀同步過程狀態機
設備在失步期間,采用預置啟動搜捕,接收設備時序發生器被置在搜索態,接收碼流逐比特進入同步檢測電路,一旦其中的32位信碼與規定的同步字1ACFFC1D相同,就立即輸出控制信號,啟動狀態機進入校核態。經過一個檢驗周期的時間,如果未檢測到正確的同步碼,則重復上述過程。
為了防止信號中出現虛假同步,找到第1組同步碼后跳過1幀長度必須再次確認幀同步碼。若連續經過M幀同步碼確認均同步正確,則系統立即轉入同步狀態;否則存在假同步;返回搜索態。由首次搜索到幀同步碼到進入同步態的M幀時間叫后方保護時間。
幀同步處于同步狀態時,若連續N幀幀同步碼正確則仍保持在同步狀態。考慮到接收數據流的幀同步碼可能受外界干擾而存在誤碼,在同步狀態中只有連續N幀丟失同步碼,才進入失步狀態,并返回搜索態。其中N幀的時間叫前方保護時間。由于有前方保護時間,在接收過程中雖然出現了某一幀同步碼字有誤碼,但系統并不會立即進入失步狀態。由此可減少因誤碼而進入失步狀態的可能性。
以上論述了幀同步的關鍵技術,但當數據速率高達300Mps時,碼流逐比特的速率遠遠高于比較累加器的速率,而且芯片也無法承受300 Mbps的連續處理,因此必須采用并行處理,降低芯片的運行速度。
為了實現高速數據的同步搜索,有2種方法可采用:①采用足夠深的緩存,延時處理,依靠緩存的時間來實現判斷。但這種方式處理起來比較耗資源,同時固定時延較長;②介紹一種在FPGA中采用實時并行同步比較的方法,在FPGA硬件資源開銷中只增加 2*(N-1)*Dl個FPGA的基本單元(CLB),N為并行路數,Dl為幀碼長度。
同步相關檢測判決器[3]并行路數可根據速率設置,以并行路數4為例,串行數據流同時進入4個移位判決電路,每路相差一個時鐘節拍,每隔4個節拍進行一次相關判決,一旦4路中有一路產生檢測峰,表明已搜索到一個同步幀頭,可啟動進入幀同步的校核狀態。這樣判決速率為數據速率的四分之一,如速率更高,可增加并行路數,這樣只需要增加并行判決電路即可完成。并行同步搜索實現框圖如圖3所示。

圖3 并行同步字搜索框圖
從圖中可見,只有延時器及N位移位器電路工作于輸入的高速時鐘,由于FPGA觸發器翻轉速率極快,可適應較高頻率,這部分通過局部布局布線實現高速工作,其他電路均可工作在比較低的速率,速率根據并行路數而定,低鐘可利用FPGA內部時鐘除法電路實現,降速工作使FPGA的工作穩定性得到提高。
考核同步性能的主要指標有,平均同步捕獲時間,假同步概率,同步保持時間。
平均同步捕獲時間與幀長、數據速率、校核次數有關。在幀長L=1 024 byte,數據速率v=300 Mbps,幀長時TL=L/v=27.3 μ s,校驗次數α=3次時,根據平均確認同步時間公式Tw=(α-1/2)T[2]L(忽略虛漏概率),計算得平均同步時間為68.2 μ s。
除此之外,在有噪聲信道上傳輸數據時,為了避免假同步 ,采用幀同步校驗的方法,即連續在幀同步碼位上核實,校驗次數與出現假幀同步的概率為:

式中,為校核次數α為時假幀定位概率;α為校核次數;r為幀同步字的長度。可見,采用幀同步校核比加長幀定位更有效[2]。
幀同步電路的平均同步時間也是重要的指標,在有噪聲信道傳輸數據時,如果不采取保護,幀定位碼一旦有誤就立即失步,失步概率為pl≈r×pe,它與幀頻fL相乘就是每秒中平均發生失步的次數,乘積的倒數也就是2次失步之間的平均時間間隔:

若保護幀數為β,平均失步間隔為[2]:

同步字長r=32,幀長時TL=27.3 μ s(幀長/傳輸速率),Pe=10-3,不采取保護,Tf=853 μ s,采取保護取 β=6,Tf≈8.06小時,若Pe=10-6,不采取保護時,Tf=853 ms,采取保護 β=3,Tf≈634年,所以在實際系統中采取幀保護,即使信號誤碼率較大時也能使設備有較長的同步保持時間。
在實際系統中,對同步時間及同步持續時間進行了測試,采用在發送幀中插入幀記數值,發送端開始發送時把幀記數值置為0,接收端同步建立后記錄數據,從接收到的第一幀數據的記數字節讀取記數值,同步時間Tw=Nc×Lf×8/v,(幀長時TL=Lf×8/v),Tw為同步時間,Nc同步建立后接收到第一幀數據的幀記數值,Lf為幀長,幀長以字節為單位,每字節8 bit,v為數據速率。在Pe=10-3時,測得記數值分別為2,3,2,2,2,3,2,2,4,2,平均同步時間=((2+3+2+2+2+2+3+2+2+4+2)/10)*TL=70.99 μ s,測試是在有噪信道下測試,由于存在虛警概率,測得的數據與根據公式[2]忽略虛漏警計算得到數據相比,同步時間稍長。
在信號Pe=10-6時用誤碼儀測試同步保持時間,最長連續測試時間為96 h,均未出現失步。測試數據與分析計算數據相近。因此采用并行同步處理,幀同步信能不惡化。
在FPGA上采用并行處理的代價是資源的增加,因此在高速幀同步電路設計中采用局部并行處理,在增加資源和降低速率之間取得均衡,這樣,可降低高速電路時序調整的難度,提高芯片工作穩定性,有利于FPGA綜合實現。以上所用幀同步電路已應用于某項目中。
[1]蘇鵬沖,李維忠.高級在軌系統(AOS)幀同步信號發送器的設計與實現[J].福建電腦,2006(4):171-172.
[2]孫 玉.數字復接技術[M].北京:人民郵電出版社,1983.
[3]胡 莉,張力偉,周希元.幀同步檢測技術的研究進展[J].無線電工程,2009,39(2):12-15.