文 豐,雷武偉,劉東海
(中北大學(xué) 電子測試技術(shù)國家重點實驗室,太原 030051)
在某遠距離測試任務(wù)中,需要使用數(shù)據(jù)采集編碼器采集多路高速數(shù)字量信號,并將這些信號實時地回傳給地面測試臺進行數(shù)據(jù)監(jiān)測與處理。由于此任務(wù)測試環(huán)境特殊,測試員不可近距離測試,因此需要將數(shù)據(jù)在遠距離情況下高速地回傳給地面測試臺進行數(shù)據(jù)處理。
基于此任務(wù)中使用的電纜網(wǎng)所處環(huán)境較為惡劣,周圍電磁干擾大,本設(shè)計在數(shù)據(jù)回傳中選用了CYPRESS公司提出的HOTLink高速串行點對點通信協(xié)議,該通信協(xié)議采用了PECL電平標(biāo)準,在協(xié)議定義的物理層內(nèi)容中,用戶還可根據(jù)需求定義應(yīng)用層與鏈路層的協(xié)議[1],使用方便靈活且可靠性高;而在邏輯中加入了一種具有糾錯能力的BCH編解碼方案,可極大地提高數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
系統(tǒng)的總體設(shè)計框圖如圖1所示,由數(shù)據(jù)采集編碼器、地面測試臺及上位機三部分組成。數(shù)據(jù)采集編碼器采集外部高速數(shù)字量信號,并將信號數(shù)據(jù)通過FPGA編幀打包后由HOTLink數(shù)據(jù)發(fā)送模塊發(fā)送給地面測試臺;地面測試臺接收到數(shù)據(jù)后通過PCI9054轉(zhuǎn)發(fā)給上位機,數(shù)據(jù)將在上位機上實時顯示;上位機通過地面測試臺向數(shù)據(jù)采集編碼器下發(fā)一系列指令使其進行相應(yīng)的動作,指令采用RS-485數(shù)據(jù)形式收發(fā)。
圖1 系統(tǒng)總體設(shè)計框圖
根據(jù)測試任務(wù),本設(shè)計采用200 m的同軸電纜SFF-50-5連接數(shù)據(jù)采集編碼器與地面測試臺,數(shù)據(jù)采集編碼器以330 Mbit/s的碼率向地面測試臺發(fā)送HOTLink數(shù)據(jù),并進行大量的實驗?zāi)M測試任務(wù)的現(xiàn)場條件,通過測試臺回讀數(shù)據(jù)的正確性來驗證此方案的可行性與可靠性。
HOTLink發(fā)送芯片CY7B923與接收芯片CY7B933是由CYPRESS公司設(shè)計,用于高速點對點串行通信[2],其內(nèi)部自帶8B/10B編解碼功能,由于8B/10B編碼具有直流平衡、轉(zhuǎn)換密度高等優(yōu)點[3],因此被大量的應(yīng)用于高速數(shù)據(jù)傳輸中,而CY7B923/933也因其具有高可靠性、低功耗、外圍電路結(jié)構(gòu)簡單等優(yōu)點[4],被廣泛地應(yīng)用于高速遠距離串行通信的場合當(dāng)中。本設(shè)計中CY7B923以及其外圍電路位于數(shù)據(jù)采集編碼器中,主要負責(zé)將FPGA打包編幀后的數(shù)據(jù)進行編碼并通過同軸電纜發(fā)送至地面測試臺,而CY7B933以及其外圍電路位于地面測試臺板卡中,主要負責(zé)接收數(shù)據(jù)采集編碼器發(fā)來的數(shù)據(jù)并解碼后轉(zhuǎn)發(fā)給FPGA進行后續(xù)處理。
CY7B923內(nèi)部結(jié)構(gòu)如圖2所示,其工作原理為:FPGA控制使能端ENA和ENN的電平以實現(xiàn)時鐘上升沿寫入數(shù)據(jù)[5];數(shù)據(jù)寫入后由編碼器進行8B/10B編碼,并在SC/D電平的控制下將輸入數(shù)據(jù)編碼為數(shù)據(jù)碼或控制碼;時鐘發(fā)生器通過內(nèi)部的PLL鎖相環(huán)將CKW時鐘十倍頻后用于驅(qū)動移位寄存器;移位寄存器負責(zé)將編碼器輸出的數(shù)據(jù)轉(zhuǎn)化為串行數(shù)據(jù)流,并分為3個通道同時輸出,F(xiàn)OTO可關(guān)閉OUTA±和OUTB±通道輸出[6];自檢邏輯用于通信系統(tǒng)的自檢功能。
圖2 CY7B923內(nèi)部結(jié)構(gòu)框圖
圖3為CY7B923發(fā)送電路圖,F(xiàn)PGA輸出的8位并行數(shù)據(jù)通過控制信號由CY7B923編碼為串行HOTLink數(shù)據(jù);MODE管腳接地表示CY7B923編碼方式為8B/10B方式;FIFO接地使數(shù)據(jù)僅在OUTA±通道輸出,將5 V直接接到OUTB±和OUTC±上以降低芯片功耗[7];負載電阻R42和R43連接至GND用于為HOTLink數(shù)據(jù)輸出驅(qū)動提供負載電流;C34為去耦電容,用于消除電源耦合;TC1-1T為RF變壓器,采用了1∶1的數(shù)字隔離變壓方式,可以將信號的直流部分濾掉,只保留差分信號用于傳輸[8],更加有效地抑制共模干擾,增加信號的傳輸距離;SMDA05LCC為低電容TVS陣列,不僅可以吸收可能造成器件損壞的脈沖,而且能夠避免數(shù)據(jù)受到不必要的噪聲影響;SMA-KF3為HOTLink長線傳輸所用的連接器。
CY7B933內(nèi)部結(jié)構(gòu)如圖4所示,其工作原理為:串行差分輸入數(shù)據(jù)流在A/B端口控制下從INA±或者INB±輸入,SYNC時鐘模塊通過內(nèi)部PLL鎖相環(huán)完成時鐘的同步功能;在時鐘同步下,移位寄存器將輸入的串行數(shù)據(jù)流按字節(jié)傳送至解碼寄存器并按位傳送至成幀器[6];成幀器通過查詢輸入位數(shù)據(jù)流中定義字節(jié)邊界的特殊字符從而準確的進行數(shù)據(jù)組幀;解碼寄存器接收到移位寄存器的數(shù)據(jù)后傳送給解碼器并一直保持數(shù)據(jù)直至數(shù)據(jù)被輸出寄存器鎖存;解碼器根據(jù)8B/10B解碼表將數(shù)據(jù)轉(zhuǎn)化為原始數(shù)據(jù);輸出寄存器保存輸出數(shù)據(jù)并利用CKR同步輸出數(shù)據(jù)。
圖3 CY7B923發(fā)送電路圖
圖5為CY7B933接收電路圖。HOTLink數(shù)據(jù)經(jīng)過200 m同軸電纜傳輸后由連接器SMA-KF3輸入,經(jīng)過TC1-1T和SMDA05LCC的處理后送至HOTLink數(shù)據(jù)接收芯片CY7B933;R47和R48為阻抗匹配電阻,其阻值為SFF-50-5同軸電纜特性阻抗的一半,由于25 Ω電阻不是標(biāo)準阻值電阻,此處選取24.9 Ω電阻代替;R46和R49組成一個分壓器,為輸入的HOTLink信號提供直流偏置以滿足其電平需求[7];同時R46與C43組成一個RC濾波器濾除輸入的高噪聲信號;R45為上拉電阻,由于本設(shè)計數(shù)據(jù)選擇INA±通道輸入,故將A/B引腳上拉至5 V。
在本任務(wù)HOTLink信號高速遠距離傳輸中,數(shù)據(jù)傳輸?shù)目煽啃允桥袛嘣O(shè)計成功與否的最重要的標(biāo)準[9],本次設(shè)計的主控芯片采用了Xilinx公司的6系FPGA——XC6SLX150_3FGG484I。本設(shè)計中硬件電路部分選用的CY7B923/933芯片,具有將數(shù)據(jù)進行8B/10B編解碼功能,而傳統(tǒng)的8B/10B編碼后的數(shù)據(jù)在傳輸環(huán)境惡劣且傳輸速率高的情況下會很大程度地增加數(shù)據(jù)誤碼率[10]。BCH碼是具有糾錯能力的循環(huán)碼,可以隨機地糾正多個錯誤,相較于其他編解碼方式因其編解碼手續(xù)簡單、延時小以及實時性高而被廣泛地應(yīng)用于通信領(lǐng)域中[11],本設(shè)計結(jié)合了8B/10B編解碼的直流平衡和BCH編解碼的隨機糾錯的優(yōu)點,在數(shù)據(jù)傳至CY7B923芯片之前進行BCH編碼,可有效地降低數(shù)據(jù)傳輸?shù)恼`碼率,極大地增強了其可靠性。
圖5 CY7B933接收電路圖
本方案中將輸入的8 bit數(shù)據(jù)分為高4 bit和低4 bit數(shù)據(jù),先后將高4 bit和低4 bit數(shù)據(jù)送入(7,4)BCH編碼模塊中編碼,(7,4)BCH碼碼長為7 bit,包含4 bit信息位和3 bit校驗位[12]。4個信息位構(gòu)成的信息多項式為:
i(x)=i0+i1x+i2x2+i3x3
(1)
在伽羅華域GF(23)上其最小多項式可表示為:
g(x)=x3+x+1
(2)
假設(shè)BCH編碼后其系統(tǒng)碼為:
c(x)=i(x)x3+q(i(x)x3)g(x)
(3)
式(3)中,q(i(x)x3)g(x)表示i(x)x3除以g(x)后的余數(shù)多項式。因而校驗多項式可表示為:
r(x)=x3i(x)modg(x)=r0+r1x+r2x2
(4)
將式(4)代入式(3),可得編碼后系統(tǒng)碼多項式為:
c(x)=x3i(x)+r(x)=x3i(x)+x3i(x)modg(x)
(5)
按照此方法得到的系統(tǒng)碼中,將4 bit信息左移3 bit,然后除以g(x),即可得到3 bit余項,即為3 bit校驗位。由于BCH碼為循環(huán)碼,因此其編碼電路可由如圖6所示編碼電路圖中的線性串行移位寄存器所實現(xiàn)。
圖6 (7,4)BCH編碼電路圖
4 bit信息位依次進入BCH編碼電路后,經(jīng)過3個時鐘周期延遲,依次輸出3 bit校驗位,并在最后一位補0,以保證發(fā)出的信號為8 bit信號。(7,4)BCH編碼流程如圖7所示。
圖7 (7,4)BCH編碼流程框圖
BCH編碼結(jié)束后將8bit數(shù)據(jù)通過FPGA的I/O口輸出至CY7B923的D0~D7端口,隨后進行8B/10B編碼并發(fā)出。
FPGA接收到CY7B933解碼后的8 bit碼,然后進行(7,4)BCH譯碼,譯碼過程主要分為以下步驟:
步驟1求接收到的BCH碼余式,將3.1節(jié)式(2)中g(shù)(x)作為除式,產(chǎn)生余式定義為“部分校正子”[13];
步驟2根據(jù)式(5)中部分校正子構(gòu)造錯誤位置方程,該方程式的根即為錯誤位置;
步驟3求解錯誤位置方程式的根并進行糾錯。
定義部分校正子為S(x),接收到的BCH碼多項式為R(x),錯誤圖樣多項式為E(x),譯碼后多項式為C(x)[14],則有如下關(guān)系式:
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所示譯碼電路圖中的除法電路計算得到,然后根據(jù)部分校正子所構(gòu)造的錯誤位置方程的根進行糾錯。
圖8 (7,4)BCH譯碼電路圖
8 bit碼去掉末位0之后從高位到低位依次進入BCH譯碼電路,經(jīng)過3個時鐘周期延遲,依次輸出3 bit校驗碼,并根據(jù)如表1所示的校驗碼與錯誤信息編碼對應(yīng)關(guān)系表進行誤碼糾正。
為了驗證本次設(shè)計的可靠性,采用數(shù)據(jù)采集編碼器、地面測試臺與上位機共同搭建的測試系統(tǒng)。地面測試臺與數(shù)據(jù)采集編碼器之間的數(shù)據(jù)傳輸采用了200 m的同軸電纜作為傳輸介質(zhì)。測試中將數(shù)據(jù)采集編碼器與同軸電纜放置于60 ℃高溫環(huán)境并向同軸電纜中注入脈沖激勵作為干擾用于模擬任務(wù)環(huán)境,采用的數(shù)據(jù)幀結(jié)構(gòu)如圖9所示,其中“96 14 6F 14 6F”為數(shù)據(jù)幀包頭,“00 00 00 00~00 00 00 09”為包計數(shù),數(shù)據(jù)為00~59的遞增數(shù)。
表1 校驗碼與錯誤信息編碼對應(yīng)關(guān)系
圖9 數(shù)據(jù)幀結(jié)構(gòu)
通過FPGA程序控制HOTLink串行數(shù)據(jù)的傳輸速率,進行如下誤碼率的測試,不同傳輸速率的情況下各測試50次,每次測試數(shù)據(jù)為8 GB,測試結(jié)果見表2。
表2 測試結(jié)果
根據(jù)測試結(jié)果可知,硬件電路可以保證以40 Mbit/s的傳輸速率在200 m的同軸電纜中無誤碼傳輸,但隨著傳輸速率的增加,誤碼率會越來越大,遠不及測試任務(wù)要求。但在FPGA程序中加入BCH編解碼后,可以有效地降低數(shù)據(jù)誤碼率,從而滿足任務(wù)對于以330 Mbit/s傳輸速率在200 m的遠距離傳輸?shù)囊蟆?/p>
本文針對任務(wù)要求以及測試環(huán)境,在硬件上設(shè)計了CY7B923和CY7B933的外圍電路,在邏輯設(shè)計中增加了可糾錯的BCH碼優(yōu)化方案,極大地增強了傳輸鏈路的可靠性。通過大量的測試實驗,驗證了本設(shè)計中HOTLink數(shù)據(jù)在60 ℃高溫且有脈沖激勵干擾情況下可以實現(xiàn)330 Mbit/s傳輸速率在200 m的同軸電纜上無誤碼傳輸,滿足測試任務(wù)要求。