文獻(xiàn)標(biāo)識碼: B
文章編號: 0258-7998(2013)12-0037-04
如今隨著有源相控陣?yán)走_(dá)技術(shù)的不斷發(fā)展,雷達(dá)信號所需要實時處理的數(shù)據(jù)量也在迅猛的增大,這就使得數(shù)據(jù)流的高速傳輸面臨著較大的挑戰(zhàn)[1]。以往系統(tǒng)多采用并行方式傳輸高速的數(shù)據(jù)流,這種方式實現(xiàn)起來相對簡單,但是當(dāng)數(shù)據(jù)率超過1 Gb/s時,信號的同步管理變得十分困難,同時接口的數(shù)據(jù)對齊問題也影響著與外部設(shè)備的有效通信。為了解決這一難題,高速串行I/O技術(shù)應(yīng)運而生。串行傳輸所需的引腳數(shù)少,降低了背板開發(fā)的要求,印制電路板的制作更加簡單,同時可以滿足遠(yuǎn)距離高速通信可靠性的要求,被各行各業(yè)運用在通信系統(tǒng)的設(shè)計中[2]。
為了適應(yīng)串行技術(shù)發(fā)展的趨勢,Xilinx公司也推出了內(nèi)嵌高速串行收發(fā)器Rocket I/O的FPGA產(chǎn)品,并在此基礎(chǔ)上開發(fā)了Aurora協(xié)議。Aurora協(xié)議是一款可自由使用相對較簡便的點對點鏈路層協(xié)議。其設(shè)計目的是使其他高層協(xié)議可以很簡單地運行在Aurora之上[3]。其中Aurora IP核支持與光纖的無縫連接,傳輸過程中抗電磁干擾能力強(qiáng),集成度高,具有很強(qiáng)的靈活性。
1 Aurora IP核的實現(xiàn)
Rocket I/O是內(nèi)嵌在FPGA中的一款高速串行收發(fā)器,支持多種通信協(xié)議標(biāo)準(zhǔn),如Aurora、PCI Express、光纖通道、千兆以太網(wǎng)等[4]。該收發(fā)器提供單工或全雙工的數(shù)據(jù)傳輸模式。每個Rocket I/O支持622 Mb/s~3.125 Gb/s的數(shù)據(jù)傳輸速率,并且利用通道綁定功能可以實現(xiàn)更高的數(shù)據(jù)傳輸速率。收發(fā)器模塊物理媒質(zhì)適配層(PMA)集成了串行/解串器(SERDES)、時鐘和數(shù)據(jù)恢復(fù)電路(CDR)、電流模式邏輯(CML)、預(yù)加重/均衡電路等,物理編碼子層(PCS)集成了8 bit/10 bit編解碼電路、循環(huán)冗余校驗(CRC)、相位調(diào)整FIFO、彈性緩沖器、PRBS產(chǎn)生和檢測等[5]。這些集成的模塊可用于補(bǔ)償信號的高額損耗,減小時鐘的偏差和內(nèi)部噪聲對接收性能的影響,從而提高信號的質(zhì)量。
Aurora協(xié)議是一款高帶寬、低成本、可擴(kuò)展、框架簡潔、適合點對點串行數(shù)據(jù)傳輸?shù)膮f(xié)議。該協(xié)議支持專用的上層協(xié)議或符合工業(yè)標(biāo)準(zhǔn)的協(xié)議(例如以太網(wǎng)、TCP/IP),提供了透明接口的串行互連協(xié)議,其允許數(shù)據(jù)進(jìn)行任何分組封裝,可以使芯片間的數(shù)據(jù)傳輸在一個較高的水平而不需要改變已有的通信系統(tǒng)或計算機(jī)系統(tǒng)[6]。Aurora協(xié)議可以配置每個通路中的Rocket I/O工作在全雙工或半雙工的模式下,其鏈路結(jié)構(gòu)圖如圖1所示。
Aurora IP核是Xilinx公司在Aurora協(xié)議和高速串行收發(fā)器Rocket基礎(chǔ)上研發(fā)出來的硬核。該核嵌入在Rocket I/O模塊中,提供了簡單的用戶接口,極大地方便了信號的可操作性。通過IP核用戶界面可以改變Rocket I/O中復(fù)雜的控制結(jié)構(gòu)。Aurora IP核主要包括本地流控制、用戶流控制、用戶數(shù)據(jù)接口、時鐘輸入與時鐘修正模塊、高速串行收發(fā)模塊和狀態(tài)信息控制模塊[7-8]。
本系統(tǒng)所用Aurora IP核為全雙工模式,通道的線速度為2 Gb/s,輸入?yún)⒖紩r鐘為125 MHz,用戶時鐘100 MHz,發(fā)送和接收位寬都為16 bit,采用流控的數(shù)據(jù)傳輸模式。由于發(fā)送數(shù)據(jù)經(jīng)過Rocket I/O進(jìn)行了8 bit/10 bit編碼,故而通道串行線性速率為1.6 Gb/s。IP核封裝圖如圖2所示。
其中IP核設(shè)計的參考時鐘需要選擇高精度的差分時鐘,這里選用3.3 V供電的貼片差分時鐘,經(jīng)過IBUFG一級緩沖直接連接到GTX的參考時鐘輸入端,而不能使用經(jīng)過DCM分頻/倍頻而來的時鐘。因為由DCM引出來的時鐘抖動較大,Rocket I/O在數(shù)據(jù)傳輸時相當(dāng)不穩(wěn)定,會造成數(shù)據(jù)丟失。
由于Aurora IP核具有時鐘補(bǔ)償功能,在數(shù)據(jù)接口寬度為2 B的情況下,每5 000個user_clk就需要6個user_clk的時鐘補(bǔ)償,一旦啟用時鐘補(bǔ)償功能,數(shù)據(jù)流將不能進(jìn)入Rocket I/O,所以在Aurora IP 核收發(fā)器的兩端需要加上一個16 KB的FIFO為數(shù)據(jù)緩沖做準(zhǔn)備,以避免IP核在進(jìn)行時鐘補(bǔ)償時的數(shù)據(jù)丟失,同時可以用來匹配AD采樣信號數(shù)據(jù)時鐘和用戶時鐘user_clk的不一致。解決方案程序如下:
process(USER_CLK)
begin
if USER_CLK'event and USER_CLK='1' then
count_16bit<=count_16bit+1;
if count_16bit>0 and count_16bit<=2 then
DO_CC<='1'; else DO_CC<='0'; end if;
end if;
end process;
IP核封裝程序如下:
My_Aurora_AXI4_2Gbps is
Port (
GTX_CLK_125MHz : in std_logic; -- MUST
be 125 MHz
TXP ,TXN : out std_logic; --2 Gbps
RXP ,RXN : in std_logic; --2 Gbps
local_clk : in std_logic; -- <=200 MHz
reset : in std_logic;
S_AURORA_TX_TDATA : in std_logic_vector
(15 downto 0);
S_AURORA_TX_TVALID: in std_logic;
S_AURORA_TX_TREADY: out std_logic;
M_AURORA_RX_TDATA : out std_logic_vector
(15 downto 0);
M_AURORA_RX_TVALID: out std_logic;
ERROR : out std_logic;
CHANNEL_UP: out std_logic
);
Aurora IP核功能實現(xiàn)ChipScope圖如圖3所示。
2 測試系統(tǒng)結(jié)構(gòu)
該系統(tǒng)主要由FPGA、ADS5400模/數(shù)轉(zhuǎn)換器以及AD9516時鐘生成模塊、SPF光纖收發(fā)模塊、電源模塊等功能模塊組成。首先高頻信號經(jīng)由ADS5400模/數(shù)轉(zhuǎn)換器采樣,送入并存儲到FPGA的FIFO中。然后經(jīng)過一系列的邏輯控制,高頻數(shù)字信號進(jìn)入Aurora IP核中,經(jīng)過Rocket I/O進(jìn)入SPF光纖模塊將電信號轉(zhuǎn)換成光信號,通過光纖進(jìn)行有效的傳輸。系統(tǒng)總體框圖如圖4所示。
2.1 超高速A/D轉(zhuǎn)換與系統(tǒng)時鐘的實現(xiàn)
在系統(tǒng)發(fā)送端采用的是12 bit分辨率及1 GS/s采樣率的ADS5400模/數(shù)轉(zhuǎn)換器。ADS5400中可調(diào)節(jié)的精細(xì)增益、失調(diào)和相位可以大幅度地簡化兩個ADC的交錯,這樣就簡化了I/Q接收機(jī)中兩個ADC的平衡問題。ADS5400同時有著較好的信噪比,這使其在較高的中頻條件下能夠完成模/數(shù)轉(zhuǎn)換,極大地提高雷達(dá)信號處理的速度。
ADS5400的輸入時鐘(也就是采樣頻率)由專用的時鐘芯片產(chǎn)生,其寫配置接口遵循SPI總線接口,采用125 MHz時鐘頻率經(jīng)由FPGA向其中寫入配置,其中時鐘必須是獨立的外部時鐘且不能和Rocket I/O共用同一時鐘,以防止芯片不能正常工作。此模塊ADS5400輸出采用雙端口模式,clkout被2分頻,使用內(nèi)部參考時鐘。
在本系統(tǒng)中,AD9516的輸入時鐘是由外部晶振產(chǎn)生的高精度差分時鐘,頻率為200 MHz,使用內(nèi)部VCO,內(nèi)部壓控振蕩器的頻率為2 GHz。經(jīng)過分頻器在LVPECL端和LVDS端分別產(chǎn)生100 MHz的時鐘信號。其中LVPECL端產(chǎn)生的時鐘作為ADS5400的輸入時鐘,LVDS端產(chǎn)生的時鐘作為FPGA的信號時鐘,以便對信號在FPGA中進(jìn)行進(jìn)一步的處理,以滿足信號的同源問題,時鐘信號具有較大的靈活性。
2.2 性能測試
在本系統(tǒng)中采用了Rocket I/O進(jìn)行光纖通信,為了測試系統(tǒng)的通信性能,Rocket I/O采用了全雙工、流控制的工作模式,其數(shù)據(jù)傳輸速率為2 Gb/s。由于GTX內(nèi)部采用了8 bit/10 bit編碼,因而實際上傳輸?shù)挠行?shù)據(jù)率為1.6 Gb/s。在SFP光纖收發(fā)模塊發(fā)送器發(fā)送數(shù)據(jù)的同時,接收器立刻接收數(shù)據(jù)。本設(shè)計中選擇Finisar公司的FTLF8519P2xTL光電轉(zhuǎn)換模塊。主要測試步驟為:(1)給FPGA 處理板上電,向ADS5400和AD9516寫配置之后分別產(chǎn)生100 MHz的采樣信號和100 MHz FPGA時鐘信號;(2)信號發(fā)生器產(chǎn)生10 MHz的正弦波連接到ADS5400模/數(shù)轉(zhuǎn)換器;(3)ADS5400把模擬信號轉(zhuǎn)換成數(shù)字信號;(4)將轉(zhuǎn)換完成的數(shù)字信號寫入FPGA的FIFO中;(5)FPGA 將FIFO中的數(shù)據(jù)通過Aurora IP核經(jīng)由光纖模塊發(fā)送出去,同時光纖模塊接收剛剛發(fā)送的數(shù)據(jù),并將數(shù)據(jù)傳入FPGA的FIFO中;(6)運用ChipScope觀測發(fā)送和接收到的數(shù)據(jù),比較數(shù)據(jù)傳輸是否正確。
經(jīng)過長時間的測試,ChipScope抓取的發(fā)送和接收數(shù)據(jù)一致,這表明本系統(tǒng)的光纖通信模塊能夠正常地工作,完成了預(yù)期的設(shè)計。在硬件實現(xiàn)上的10 MHz ChipScope圖如圖5所示。
本文首先介紹了Rocket I/O在雷達(dá)信號處理中的應(yīng)用,可以極大地提高通信卡之間的通信速率;然后描述了Rocket I/O功能和Aurora核實現(xiàn)高速通信的具體實現(xiàn)過程。整個系統(tǒng)主要實現(xiàn)了對超高速AD采樣信號的高速光纖傳輸,數(shù)據(jù)傳輸速率達(dá)到了2 Gb/s,并且解決了不同通信卡進(jìn)行數(shù)據(jù)傳輸Aurora時鐘補(bǔ)償時的數(shù)據(jù)丟失問題。同時,Aurora核自身有著通道擴(kuò)展的功能,可以進(jìn)一步提高數(shù)據(jù)的傳輸速率,并且可以在實際情況中根據(jù)不同的信號頻率動態(tài)地調(diào)整采樣頻率。由于系統(tǒng)的可編程性,不需要對系統(tǒng)的結(jié)構(gòu)進(jìn)行大的調(diào)整,只需對具體功能進(jìn)行有效實現(xiàn),提高了系統(tǒng)的靈活性。
參考文獻(xiàn)
[1] 李江濤.RocketIO高速串行傳輸原理與實現(xiàn)[J].雷達(dá)與對抗,2004(3):48-50.
[2] SAVAGE S.Implementing high-speed serial and custom digital protocols thru FPGA technology and graphical programming techniques[C].Baltimore,2007 IEEE Autotestcon,2007:214-223.
[3] 林振華.基于PCI-X和RocketIO的高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計[J].現(xiàn)代雷達(dá),2011,33(6):49-52.
[4] Xilinx.Aurora protocol specification[Z].2007.
[5] Xilinx.Virtex_6 FPGA GTX transceivers user guide UG366(v2.6)[Z].2011.
[6] 楊雷,龍哲仁,盧繼華,等.LVDS高速并口通信協(xié)議設(shè)計[J].電子技術(shù)應(yīng)用,2013,39(3):119-122.
[7] Zhou Dexiang,Zheng Liping.Study of Aurora IP nuclear communication module based on FPGA[C].2011 IEEE 3rd International Conference on ICCSN,2011:581-583.
[8] Xilinx.LogiCORE IP Aurora 8B/10B V7.1 user guide UG766[Z].2011.