逄錦昊,蘇 濤,楊 濤,熊梓成
(西安電子科技大學(xué)雷達(dá)信號處理國家重點(diǎn)實(shí)驗室,西安710071)
PANGJinhao,SU Tao*,YANGTao,XIONGZicheng
(National Laboratory of Radar Signal Processing,Xidian University,Xi’an 710071,China)
串行數(shù)據(jù)傳輸技術(shù)具有傳輸速度快,抗干擾能力強(qiáng)的優(yōu)點(diǎn),廣泛應(yīng)用于雷達(dá),航空航天和其他測控領(lǐng)域[1-4]。隨著 FPGA 技術(shù)的發(fā)展,出現(xiàn)一種多路串行數(shù)據(jù)同步傳輸方式[2],具有速度高、鏈路數(shù)量少和設(shè)計復(fù)雜度低的優(yōu)點(diǎn)。這種方式的關(guān)鍵是測量和調(diào)整同步時延,文獻(xiàn)[2]借助FPGA的SelectIO資源測量同步時延,要求傳輸數(shù)據(jù)已知,量程是FPGA能夠?qū)崿F(xiàn)數(shù)據(jù)的最大延遲值。在實(shí)際應(yīng)用中,存在傳輸數(shù)據(jù)需處理才能得知以及超出量程的問題。為了滿足更為復(fù)雜的測量需求,本系統(tǒng)采用Xilinx公司的Virtex6系列XC6VLX240T FPGA,通過輸入輸出延遲單元(IODELAYE)延遲數(shù)據(jù)和混合模式時鐘管理器(MMCM)移相采樣時鐘,擴(kuò)大了測量范圍,實(shí)現(xiàn)多路高速數(shù)據(jù)傳輸同步時延的高精度測量。
多路串行數(shù)據(jù)同步傳輸時序圖如圖1所示,在數(shù)據(jù)鏈路的發(fā)送端和接收端使用同源的數(shù)據(jù)傳輸時鐘Clk,采用一個幀同步信號Frame標(biāo)志每幀串行數(shù)據(jù)的起始位,同步傳輸多路高速數(shù)據(jù)Data。由于存在PCB走線不等長等多種因素,多路數(shù)據(jù)的穩(wěn)定期并不能完全對齊,出現(xiàn)同步時延問題。接收端只有一個采樣時鐘,同步時延較大時,采樣時刻可能是某路數(shù)據(jù)的不穩(wěn)定期,造成誤采樣,使數(shù)據(jù)傳輸出錯,例如圖中的Datan路數(shù)據(jù)。解決上述問題的關(guān)鍵是在接收端測量和調(diào)整數(shù)據(jù)的同步時延,保證數(shù)據(jù)正確傳輸。

圖1 多路串行數(shù)據(jù)同步傳輸時序圖
時延測量系統(tǒng)框圖如圖2所示。系統(tǒng)主要由FPGA、USB芯片和計算機(jī)組成。系統(tǒng)工作時,在FPGA中產(chǎn)生數(shù)據(jù)傳輸時鐘Clk和幀同步信號Frame,對多路串行數(shù)據(jù)Data進(jìn)行采樣、串并轉(zhuǎn)換和串位調(diào)整,將調(diào)整串位后的數(shù)據(jù)存儲后通過USB芯片傳送到計算機(jī)。由計算機(jī)處理采樣數(shù)據(jù),計算和顯示同步時延。本文設(shè)定的數(shù)據(jù)傳輸時鐘為133.3 MHz,幀同步信號為 260.4 kHz。

圖2 時延測量系統(tǒng)框圖
采樣點(diǎn)位置移動示意圖如圖3(a)所示,單路數(shù)據(jù)的起始采樣點(diǎn)在位置0,IO延遲模塊通過IODELAYE對串行數(shù)據(jù)進(jìn)行延遲實(shí)現(xiàn)采樣點(diǎn)位置左移,左移的間隔是其一階延遲值S ns,數(shù)目是最大延遲階J,達(dá)到J后,采樣點(diǎn)回到位置0。移相模塊使用MMCM對數(shù)據(jù)傳輸時鐘移相P ns,由于存在移相精度誤差,P近似且小于JS,采樣點(diǎn)到達(dá)位置1,依次重復(fù)上述采樣點(diǎn)位置左移和移相的操作,使采樣范圍覆蓋一個數(shù)據(jù)傳輸周期T的間隔,移相的次數(shù)K取大于T/P的最小正整數(shù)。一個采樣點(diǎn)位置可由到達(dá)該位置時經(jīng)過的左移次數(shù)a和移相次數(shù)b確定,a的取值范圍是0~J,b的取值范圍是0~K,測量的流程圖如4所示,在完成一次采樣點(diǎn)位置的移動后,采樣轉(zhuǎn)換模塊使用移相時鐘采樣延遲后的數(shù)據(jù),得到該采樣點(diǎn)位置的數(shù)據(jù),采樣持續(xù)多個時鐘周期,采樣轉(zhuǎn)換模塊對數(shù)據(jù)解串,調(diào)整串位,將調(diào)整串位后的數(shù)據(jù)存儲后批量傳輸?shù)接嬎銠C(jī)。計算機(jī)通過對調(diào)整串位后的數(shù)據(jù)進(jìn)行分析處理,判斷采樣點(diǎn)位置的傳輸是否穩(wěn)定,記錄傳輸不穩(wěn)定的采樣點(diǎn)位置,傳輸不穩(wěn)定的采樣點(diǎn)位置在不穩(wěn)定期,如圖3(b)所示,當(dāng)找到兩個不穩(wěn)定期時,取前一個不穩(wěn)定期,根據(jù)不穩(wěn)定期中點(diǎn)的左移次數(shù)a和相移次數(shù)b,計算數(shù)據(jù)傳輸時鐘上升沿和不穩(wěn)定期中點(diǎn)的時延,稱之為同步時延,當(dāng)b=0時,計算公式如下:

圖3 采樣點(diǎn)位置移動與同步時延示意圖

圖4 單路數(shù)據(jù)同步時延測量的流程圖

其中S是一階延遲值,O是可編程延遲單元傳播延遲。
當(dāng)b>0時,計算公式如下:

其中T是數(shù)據(jù)傳輸周期,S是一階延遲值,P是時鐘相移時間間隔,O是可編程延遲單元傳播延遲。重復(fù)上述測量單路數(shù)據(jù)同步時延的操作,完成多路數(shù)據(jù)同步時延的測量。
XC6VLX240T的可編程引腳都集成了IODELAYE,其內(nèi)含可變延時線,分32階,每階可使串行數(shù)據(jù)延遲0.078 ns,串行數(shù)據(jù)延遲示意圖如圖5所示。延遲控制器(IODELAY_CTRL)用于保證延遲的精度,需為其提供1個200 MHz的參考時鐘[5],只需在頂層例化一次,ISE編譯器將自動為每個時鐘區(qū)域添加一個IODELAY_CTRL。

圖5 串行數(shù)據(jù)延遲示意圖
串行數(shù)據(jù)延遲仿真圖如圖6所示,IODELAYE工作在VAR_LOADABLE模式[5],傳播延遲(0階延遲)是0.144 ns,Value顯示設(shè)置的延遲階。圖中延遲階由1遞增到2,通過ISim兩個光標(biāo)測量輸入數(shù)據(jù)Data和延遲數(shù)據(jù)DataDelay之間的1階延遲是0.222 ns,與理論值相符。

圖6 串行數(shù)據(jù)延遲仿真圖
XC6VLX240T具有12個功能強(qiáng)大的MMCM,每個時鐘管理器可輸出7路不同頻率和相位的時鐘,同時具有多種分頻形式滿足不同的時鐘需要,系統(tǒng)采用小數(shù)分頻產(chǎn)生高精度的數(shù)據(jù)傳輸時鐘,通過2路分頻計數(shù)器級聯(lián)產(chǎn)生低頻的幀同步信號。現(xiàn)主要討論MMCM動態(tài)移相功能,相位移動按步長計算[6],步長公式為:
Step=1/(56×FClk×M/D) (3)其中FClk為輸入?yún)⒖紩r鐘的頻率,M為倍頻因子,D為分頻因子。本文使用的參考時鐘為數(shù)據(jù)傳輸時鐘,M 為8,D 為1,得到步長 Step 為 0.0167 ns。根據(jù)上文計算JS為2.418 ns,由于存在移相精度誤差,相移間隔P取近似且小于2.418 ns的值,相移一次需144個步長,相移間隔為2.413 ns。采樣時鐘相移示意圖如圖7所示。

圖7 采樣時鐘相移示意圖

圖8 采樣時鐘相移仿真圖
相移仿真圖如圖8所示,MMCM增加一個步長所用的時間是13個Clk周期,通過每隔13個Clk時鐘周期將PSEN拉高一次,使步長加1,PSDONE信號變高標(biāo)志操作完成[6]。在完成相移后,通過ISim兩個光標(biāo)測量參考時鐘Clk和相移時鐘Clk-Shift之間的延遲是2.413 ns,與理論值相符。
采樣轉(zhuǎn)換和串位調(diào)整結(jié)構(gòu)圖如圖9所示,采樣轉(zhuǎn)換模塊在檢測到幀同步信號的上升沿后,使用ISERDES(串并轉(zhuǎn)換器)完成數(shù)據(jù)的采樣和解串,將數(shù)據(jù)解串為8 bit并行數(shù)據(jù),數(shù)據(jù)時鐘是移相時鐘的8分頻時鐘[5]。為了便于數(shù)據(jù)處理,從每幀的第1個串行數(shù)據(jù)開始將8 bit并行數(shù)據(jù)對齊,當(dāng)數(shù)據(jù)沒有對齊時,通過串位調(diào)整對其進(jìn)行重組,例如,發(fā)送并行8 bit數(shù)據(jù) A[7:0],B[7:0],C[7:0],…解串時可能按{A[2:7],B[0:1]},{B[2:7],C[0:1]},…恢復(fù)數(shù)據(jù),從而產(chǎn)生2個串位[7-9]。如圖9所示,為正確恢復(fù)數(shù)據(jù),使用2個寄存器將串位數(shù)據(jù)緩存一個數(shù)據(jù)時鐘周期,實(shí)現(xiàn)數(shù)據(jù)的對齊。

圖9 采樣轉(zhuǎn)換和串位調(diào)整結(jié)構(gòu)圖
由于USB芯片是批量傳輸數(shù)據(jù)[10],在調(diào)整完串位后,將一路數(shù)據(jù)存儲到RAM。在接到計算機(jī)的上傳數(shù)據(jù)指令后,USB模塊將RAM里的數(shù)據(jù)傳輸?shù)接嬎銠C(jī)。
相比于FPGA,計算機(jī)軟件處理數(shù)據(jù)更為靈活,計算機(jī)軟件采用VC和MATLAB混合編程的方法,VC程序作為前端界面,通過調(diào)用MATLAB引擎,與后臺MATLAB連接,實(shí)現(xiàn)動態(tài)通信[11]。VC簡明的界面顯示和快捷的編程設(shè)計與MATLAB強(qiáng)大的計算和圖形顯示功能融為一體,縮短了程序開發(fā)周期,提高了編程效率,適用于數(shù)據(jù)內(nèi)容復(fù)雜和實(shí)時性要求不高的場合。
計算機(jī)軟件接收數(shù)據(jù)后,根據(jù)已定協(xié)議,通過VC數(shù)據(jù)拼接恢復(fù)數(shù)據(jù),再使用VC調(diào)用MATLAB的函數(shù)庫處理數(shù)據(jù)。當(dāng)傳輸?shù)臄?shù)據(jù)已知時,將每個恢復(fù)數(shù)據(jù)和已知數(shù)據(jù)進(jìn)行對比,若出現(xiàn)對比結(jié)果不同的情況則在該采樣點(diǎn)位置傳輸不穩(wěn)定,記錄所有傳輸不穩(wěn)定的采樣點(diǎn)位置。當(dāng)傳輸?shù)臄?shù)據(jù)為波形數(shù)據(jù)時,波形的頻率f、信噪比已知,首先對數(shù)據(jù)進(jìn)行FFT運(yùn)算,根據(jù)FFT的結(jié)果,取頻點(diǎn)f及其兩旁適當(dāng)頻點(diǎn)對應(yīng)的幅值,求均方根值作為信號有效值,其余頻點(diǎn)對應(yīng)幅值的均方根值作為噪聲的有效值,計算信噪比[12],計算公式如下:

其中Asignal是信號的有效值,Anoise是噪聲的有效值。將求得的信噪比和已知的信噪比進(jìn)行對比,若對比結(jié)果相差δ,則在該采樣點(diǎn)位置傳輸不穩(wěn)定,記錄所有傳輸不穩(wěn)定的采樣點(diǎn)位置,其中δ根據(jù)具體的應(yīng)用環(huán)境確定,例如在本文試驗測試環(huán)境下通過大量試驗數(shù)據(jù)分析確定δ為1 dB。
現(xiàn)對一個AD采集系統(tǒng)輸出的多路串行數(shù)據(jù)同步時延進(jìn)行測量,數(shù)據(jù)傳輸時鐘為133.3 MHz,幀同步信號為260.4 kHz,每路數(shù)據(jù)均為正弦波下變頻后的數(shù)據(jù),頻率為1 MHz,信噪比為25 dB,I/Q兩路數(shù)據(jù)位寬均為16 bit。系統(tǒng)對每路數(shù)據(jù)進(jìn)行采樣,采樣時鐘經(jīng)過4次相移,每次相移后數(shù)據(jù)遍歷31階延遲,共有124個采樣點(diǎn)位置,在每個采樣點(diǎn)位置采樣得到132個I/Q兩路數(shù)據(jù)。計算機(jī)對每個采樣點(diǎn)位置的數(shù)據(jù)做FFT,當(dāng)采樣點(diǎn)位置在穩(wěn)定期時,頻譜很明晰,如圖10(a)所示,由式(4)計算信噪比均在24 dB以上;當(dāng)采樣點(diǎn)位置在不穩(wěn)定期時,頻譜的噪聲很大,如圖10(b)所示,信噪比均在21 dB以下。

圖10 采樣點(diǎn)在不同時期的數(shù)據(jù)傳輸?shù)念l譜圖
系統(tǒng)通過對一組測量結(jié)果求平均值保證測量的精度。為了進(jìn)一步檢驗系統(tǒng)測量時延的精度,在完成單路第1組測量后,在該路的發(fā)送端利用IODELAYE對輸出數(shù)據(jù)的延遲進(jìn)行調(diào)整,增加數(shù)據(jù)的時延,通過第2組測量調(diào)整后的時延,得到測量的誤差,實(shí)驗結(jié)果如表1所示。由實(shí)驗結(jié)果誤差分析可知,系統(tǒng)測量的誤差小于0.20 ns,能夠滿足高精度的測量需求。

表1 實(shí)驗結(jié)果表
本文設(shè)計了一種多路高速數(shù)據(jù)傳輸同步時延測量系統(tǒng),基于Xilinx公司的Virtex系列FPGA芯片XC6VLX240T進(jìn)行測試分析。利用IODELAYE模塊,系統(tǒng)時延測量分辨率可達(dá)0.078 ns,通過和MMCM資源結(jié)合,測量范圍可覆蓋一個數(shù)據(jù)傳輸周期的間隔。測試分析中,采用正弦波信號驗證本文系統(tǒng)的性能,實(shí)測測量誤差小于0.2 ns,能夠精確實(shí)現(xiàn)同步時延的測量。
[1] 張小軍,廖風(fēng)強(qiáng),王錄濤,等.多通道高速串行LVDS信號解串器設(shè)計[J].電子測量技術(shù),2013,36(4):63-67.
[2] 武榮偉,蘇濤,翁春蕾.基于FPGA的高速數(shù)據(jù)傳輸方案設(shè)計與實(shí)現(xiàn)[J].重慶郵電大學(xué)學(xué)報(自然科學(xué)版),2010,22(2):205-208.
[3] Zhang Huixin,He Qi,Liu Suhua,et al.The Design for LVDSHigh-Speed Data Acquisition and Transmission System Basedon FPGA[C]//Robin Baldwin,Jennifer Stout,eds.Communication Software and Networks(ICCSN).Piscataway:IEEE,2011:383 -386.
[4] 何航峰,鄭步生.一種DSP高可靠快速數(shù)據(jù)傳輸方法的研究[J].電子器件,2014,37(1):157-161.
[5] XILINX.Virtex-6 FPGA SelectIO Resources[J/OL].http://www.xilinx.com/products/virtex6,2010 -8 -16/2014 -4 -20.
[6] XILINX.Virtex-6 FPGA Clocking Resources[J/OL].http://www.xilinx.com/products/virtex6,2011 -1 -17/2014 -4 -20.
[7] 徐文波,田耘.Xilinx FPGA開發(fā)實(shí)用教程[M].2版.北京:清華大學(xué)出版社,2012:219-240.
[8] 隆志遠(yuǎn),陳仁文,朱莉婭.一種基于FPGA的旋轉(zhuǎn)機(jī)械非接觸雙向紅外信號傳輸系統(tǒng)的實(shí)現(xiàn)[J].傳感技術(shù)學(xué)報,2011,24(4):559-563.
[9] Wang Hai,Zhou Wei,Li Zhiqi,et al.A Time and Frequency Measurement Method Based Ondelay-Chain Technique[C]//Aaron Partridge,eds.Frequency Control Symposium.Piscataway:IEEE,2008:484 -486.
[10]趙林,孟令君,于磊,等.基于CY7C68013A的USB2.0高速接口設(shè)計[J].電子技術(shù)應(yīng)用,2014,40(1):131-133.
[11]穆以東,趙嶺.VC++與MATLAB混合編程方法研究[J].測控技術(shù),2013,32(9):111 -116.
[12]李玉峰,韓曉紅,劉洋,等.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)與性能分析[J].電子器件,2012,35(6):709-712.