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