文 豐,雷武偉,劉東海
(中北大學 電子測試技術國家重點實驗室,太原 030051)
在某遠距離測試任務中,需要使用數據采集編碼器采集多路高速數字量信號,并將這些信號實時地回傳給地面測試臺進行數據監測與處理。由于此任務測試環境特殊,測試員不可近距離測試,因此需要將數據在遠距離情況下高速地回傳給地面測試臺進行數據處理。
基于此任務中使用的電纜網所處環境較為惡劣,周圍電磁干擾大,本設計在數據回傳中選用了CYPRESS公司提出的HOTLink高速串行點對點通信協議,該通信協議采用了PECL電平標準,在協議定義的物理層內容中,用戶還可根據需求定義應用層與鏈路層的協議[1],使用方便靈活且可靠性高;而在邏輯中加入了一種具有糾錯能力的BCH編解碼方案,可極大地提高數據傳輸的可靠性。
系統的總體設計框圖如圖1所示,由數據采集編碼器、地面測試臺及上位機三部分組成。數據采集編碼器采集外部高速數字量信號,并將信號數據通過FPGA編幀打包后由HOTLink數據發送模塊發送給地面測試臺;地面測試臺接收到數據后通過PCI9054轉發給上位機,數據將在上位機上實時顯示;上位機通過地面測試臺向數據采集編碼器下發一系列指令使其進行相應的動作,指令采用RS-485數據形式收發。

圖1 系統總體設計框圖
根據測試任務,本設計采用200 m的同軸電纜SFF-50-5連接數據采集編碼器與地面測試臺,數據采集編碼器以330 Mbit/s的碼率向地面測試臺發送HOTLink數據,并進行大量的實驗模擬測試任務的現場條件,通過測試臺回讀數據的正確性來驗證此方案的可行性與可靠性。
HOTLink發送芯片CY7B923與接收芯片CY7B933是由CYPRESS公司設計,用于高速點對點串行通信[2],其內部自帶8B/10B編解碼功能,由于8B/10B編碼具有直流平衡、轉換密度高等優點[3],因此被大量的應用于高速數據傳輸中,而CY7B923/933也因其具有高可靠性、低功耗、外圍電路結構簡單等優點[4],被廣泛地應用于高速遠距離串行通信的場合當中。本設計中CY7B923以及其外圍電路位于數據采集編碼器中,主要負責將FPGA打包編幀后的數據進行編碼并通過同軸電纜發送至地面測試臺,而CY7B933以及其外圍電路位于地面測試臺板卡中,主要負責接收數據采集編碼器發來的數據并解碼后轉發給FPGA進行后續處理。
CY7B923內部結構如圖2所示,其工作原理為:FPGA控制使能端ENA和ENN的電平以實現時鐘上升沿寫入數據[5];數據寫入后由編碼器進行8B/10B編碼,并在SC/D電平的控制下將輸入數據編碼為數據碼或控制碼;時鐘發生器通過內部的PLL鎖相環將CKW時鐘十倍頻后用于驅動移位寄存器;移位寄存器負責將編碼器輸出的數據轉化為串行數據流,并分為3個通道同時輸出,FOTO可關閉OUTA±和OUTB±通道輸出[6];自檢邏輯用于通信系統的自檢功能。

圖2 CY7B923內部結構框圖
圖3為CY7B923發送電路圖,FPGA輸出的8位并行數據通過控制信號由CY7B923編碼為串行HOTLink數據;MODE管腳接地表示CY7B923編碼方式為8B/10B方式;FIFO接地使數據僅在OUTA±通道輸出,將5 V直接接到OUTB±和OUTC±上以降低芯片功耗[7];負載電阻R42和R43連接至GND用于為HOTLink數據輸出驅動提供負載電流;C34為去耦電容,用于消除電源耦合;TC1-1T為RF變壓器,采用了1∶1的數字隔離變壓方式,可以將信號的直流部分濾掉,只保留差分信號用于傳輸[8],更加有效地抑制共模干擾,增加信號的傳輸距離;SMDA05LCC為低電容TVS陣列,不僅可以吸收可能造成器件損壞的脈沖,而且能夠避免數據受到不必要的噪聲影響;SMA-KF3為HOTLink長線傳輸所用的連接器。
CY7B933內部結構如圖4所示,其工作原理為:串行差分輸入數據流在A/B端口控制下從INA±或者INB±輸入,SYNC時鐘模塊通過內部PLL鎖相環完成時鐘的同步功能;在時鐘同步下,移位寄存器將輸入的串行數據流按字節傳送至解碼寄存器并按位傳送至成幀器[6];成幀器通過查詢輸入位數據流中定義字節邊界的特殊字符從而準確的進行數據組幀;解碼寄存器接收到移位寄存器的數據后傳送給解碼器并一直保持數據直至數據被輸出寄存器鎖存;解碼器根據8B/10B解碼表將數據轉化為原始數據;輸出寄存器保存輸出數據并利用CKR同步輸出數據。

圖3 CY7B923發送電路圖
圖5為CY7B933接收電路圖。HOTLink數據經過200 m同軸電纜傳輸后由連接器SMA-KF3輸入,經過TC1-1T和SMDA05LCC的處理后送至HOTLink數據接收芯片CY7B933;R47和R48為阻抗匹配電阻,其阻值為SFF-50-5同軸電纜特性阻抗的一半,由于25 Ω電阻不是標準阻值電阻,此處選取24.9 Ω電阻代替;R46和R49組成一個分壓器,為輸入的HOTLink信號提供直流偏置以滿足其電平需求[7];同時R46與C43組成一個RC濾波器濾除輸入的高噪聲信號;R45為上拉電阻,由于本設計數據選擇INA±通道輸入,故將A/B引腳上拉至5 V。
在本任務HOTLink信號高速遠距離傳輸中,數據傳輸的可靠性是判斷設計成功與否的最重要的標準[9],本次設計的主控芯片采用了Xilinx公司的6系FPGA——XC6SLX150_3FGG484I。本設計中硬件電路部分選用的CY7B923/933芯片,具有將數據進行8B/10B編解碼功能,而傳統的8B/10B編碼后的數據在傳輸環境惡劣且傳輸速率高的情況下會很大程度地增加數據誤碼率[10]。BCH碼是具有糾錯能力的循環碼,可以隨機地糾正多個錯誤,相較于其他編解碼方式因其編解碼手續簡單、延時小以及實時性高而被廣泛地應用于通信領域中[11],本設計結合了8B/10B編解碼的直流平衡和BCH編解碼的隨機糾錯的優點,在數據傳至CY7B923芯片之前進行BCH編碼,可有效地降低數據傳輸的誤碼率,極大地增強了其可靠性。

圖5 CY7B933接收電路圖
本方案中將輸入的8 bit數據分為高4 bit和低4 bit數據,先后將高4 bit和低4 bit數據送入(7,4)BCH編碼模塊中編碼,(7,4)BCH碼碼長為7 bit,包含4 bit信息位和3 bit校驗位[12]。4個信息位構成的信息多項式為:
i(x)=i0+i1x+i2x2+i3x3
(1)
在伽羅華域GF(23)上其最小多項式可表示為:
g(x)=x3+x+1
(2)
假設BCH編碼后其系統碼為:
c(x)=i(x)x3+q(i(x)x3)g(x)
(3)
式(3)中,q(i(x)x3)g(x)表示i(x)x3除以g(x)后的余數多項式。因而校驗多項式可表示為:
r(x)=x3i(x)modg(x)=r0+r1x+r2x2
(4)
將式(4)代入式(3),可得編碼后系統碼多項式為:
c(x)=x3i(x)+r(x)=x3i(x)+x3i(x)modg(x)
(5)
按照此方法得到的系統碼中,將4 bit信息左移3 bit,然后除以g(x),即可得到3 bit余項,即為3 bit校驗位。由于BCH碼為循環碼,因此其編碼電路可由如圖6所示編碼電路圖中的線性串行移位寄存器所實現。

圖6 (7,4)BCH編碼電路圖
4 bit信息位依次進入BCH編碼電路后,經過3個時鐘周期延遲,依次輸出3 bit校驗位,并在最后一位補0,以保證發出的信號為8 bit信號。(7,4)BCH編碼流程如圖7所示。

圖7 (7,4)BCH編碼流程框圖
BCH編碼結束后將8bit數據通過FPGA的I/O口輸出至CY7B923的D0~D7端口,隨后進行8B/10B編碼并發出。
FPGA接收到CY7B933解碼后的8 bit碼,然后進行(7,4)BCH譯碼,譯碼過程主要分為以下步驟:
步驟1求接收到的BCH碼余式,將3.1節式(2)中g(x)作為除式,產生余式定義為“部分校正子”[13];
步驟2根據式(5)中部分校正子構造錯誤位置方程,該方程式的根即為錯誤位置;
步驟3求解錯誤位置方程式的根并進行糾錯。
定義部分校正子為S(x),接收到的BCH碼多項式為R(x),錯誤圖樣多項式為E(x),譯碼后多項式為C(x)[14],則有如下關系式:
R(x)=C(x)+E(x)
(6)
C(x)modg(x)=0
(7)
S(x)=R(x)modg(x)=E(x)modg(x)
(8)
部分校正子可以采用如圖8所示譯碼電路圖中的除法電路計算得到,然后根據部分校正子所構造的錯誤位置方程的根進行糾錯。

圖8 (7,4)BCH譯碼電路圖
8 bit碼去掉末位0之后從高位到低位依次進入BCH譯碼電路,經過3個時鐘周期延遲,依次輸出3 bit校驗碼,并根據如表1所示的校驗碼與錯誤信息編碼對應關系表進行誤碼糾正。
為了驗證本次設計的可靠性,采用數據采集編碼器、地面測試臺與上位機共同搭建的測試系統。地面測試臺與數據采集編碼器之間的數據傳輸采用了200 m的同軸電纜作為傳輸介質。測試中將數據采集編碼器與同軸電纜放置于60 ℃高溫環境并向同軸電纜中注入脈沖激勵作為干擾用于模擬任務環境,采用的數據幀結構如圖9所示,其中“96 14 6F 14 6F”為數據幀包頭,“00 00 00 00~00 00 00 09”為包計數,數據為00~59的遞增數。

表1 校驗碼與錯誤信息編碼對應關系

圖9 數據幀結構
通過FPGA程序控制HOTLink串行數據的傳輸速率,進行如下誤碼率的測試,不同傳輸速率的情況下各測試50次,每次測試數據為8 GB,測試結果見表2。

表2 測試結果
根據測試結果可知,硬件電路可以保證以40 Mbit/s的傳輸速率在200 m的同軸電纜中無誤碼傳輸,但隨著傳輸速率的增加,誤碼率會越來越大,遠不及測試任務要求。但在FPGA程序中加入BCH編解碼后,可以有效地降低數據誤碼率,從而滿足任務對于以330 Mbit/s傳輸速率在200 m的遠距離傳輸的要求。
本文針對任務要求以及測試環境,在硬件上設計了CY7B923和CY7B933的外圍電路,在邏輯設計中增加了可糾錯的BCH碼優化方案,極大地增強了傳輸鏈路的可靠性。通過大量的測試實驗,驗證了本設計中HOTLink數據在60 ℃高溫且有脈沖激勵干擾情況下可以實現330 Mbit/s傳輸速率在200 m的同軸電纜上無誤碼傳輸,滿足測試任務要求。