基于cPCI總線的高速數(shù)據(jù)光纖傳輸系統(tǒng)的實現(xiàn)
介紹一種基于cPCI總線的點到點高速數(shù)據(jù)光纖傳輸系統(tǒng),提出了用現(xiàn)場可編程大規(guī)模集成邏輯器件取代分立元件完成接口卡設(shè)計及力求達到更高的傳輸速率的思想,并實際設(shè)計實現(xiàn)了這種想法。
著重介紹了系統(tǒng)的硬件結(jié)構(gòu)設(shè)計和軟件功能實現(xiàn),給出了選用的主要芯片的型號。實驗證明該系統(tǒng)工作穩(wěn)定,達到了設(shè)計指標要求。
1.引言
高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計的關(guān)鍵是主機接口卡的設(shè)計與實現(xiàn)。傳統(tǒng)的做法是采用分立元件,由若干個模塊構(gòu)成。大多數(shù)的設(shè)計都類似于如下結(jié)構(gòu)[1]:接口的主要功能模塊包括光電信號轉(zhuǎn)換接口(O/E和E/O)、串行化和解串行化模塊(TX和RX)、數(shù)據(jù)緩存F I F O 、c PCI 控制器和可編程邏輯模塊(FPGA或CPLD)或DSP。各模塊中O/E和E/O 實現(xiàn)光纖通道串行光信號和串行電信號之間的相互轉(zhuǎn)換。
TX和RX 實現(xiàn)將串行電信號和并行電信號的相互轉(zhuǎn)換功能。F I F O 主要實現(xiàn)光纖通道和cPCI 之間信號的緩沖。cPCI 控制器實現(xiàn)FIFO 輸出的信號與32 位標準cPCI 信號的轉(zhuǎn)換。FPGA或CPLD負責(zé)各模塊之間的時序協(xié)調(diào)和傳輸控制。分析以上方案可見,各模塊功能都是由分立芯片完成的。這樣各芯片間的互連勢必會影響傳輸速率,也將使PCB板的布局布線變得復(fù)雜,使傳輸延時增大,進一步降低傳輸速率。而隨著FPGA(Field Programmable Gate Array)技術(shù)的不斷發(fā)展,其容量、功能、可靠性以及響應(yīng)速度都在不斷的提高。用一片F(xiàn)PGA完全可以實現(xiàn)計算機與光纖通道之間的數(shù)據(jù)傳輸與處理。鑒于此,本論文的設(shè)計將用一片F(xiàn)PGA來實現(xiàn)串行信號與并行信號的相互轉(zhuǎn)換、數(shù)據(jù)緩沖以及時序協(xié)調(diào)和傳輸控制等以前用分立元件實現(xiàn)的功能。
2.系統(tǒng)原理及實現(xiàn)
本系統(tǒng)由兩臺PC機、兩塊接口卡及一根光纖組成。系統(tǒng)設(shè)計關(guān)鍵是基于cPCI總線的接口卡。接口卡采用標準的3U板設(shè)計,由總線控制器芯片、可編程邏輯控制器、光電轉(zhuǎn)換驅(qū)動器等組成。其結(jié)構(gòu)框圖如下圖所示。
圖1 系統(tǒng)原理圖
本系統(tǒng)設(shè)計的目的是應(yīng)用于雷達數(shù)據(jù)的傳輸,主要解決點對點的數(shù)據(jù)傳輸問題。為了高速、可靠的傳輸雷達信號,決定采用光纖作為傳輸媒介,充分利用光纖傳輸損耗小、抗干擾能力強、傳輸速率高等優(yōu)點。其工作流程是這樣的:發(fā)送端PC機通過cPCI接口將要發(fā)送的數(shù)據(jù)送入FPGA,F(xiàn)PGA對數(shù)據(jù)信號進行驅(qū)動并實現(xiàn)數(shù)據(jù)緩沖、并串轉(zhuǎn)換等所必需的信號處理過程后形成串行信號,串行電信號經(jīng)電光轉(zhuǎn)換器轉(zhuǎn)換成串行光信號送入光纖進行傳輸。在接收端,經(jīng)光電轉(zhuǎn)換器將光信號轉(zhuǎn)換成串行電信號送入FPGA,F(xiàn)PGA對數(shù)據(jù)信號進行驅(qū)動并實現(xiàn)串并轉(zhuǎn)換、數(shù)據(jù)緩沖等所必需的信號處理過程,然后通過cPCI接口進入PC機進行存儲以待分析處理。設(shè)計主要分為硬件設(shè)計和軟件設(shè)計兩部分。
一、硬件設(shè)計部分
籠統(tǒng)來說,本設(shè)計主要是要完成主機接口的實現(xiàn)。主機接口是實現(xiàn)高速數(shù)據(jù)傳輸和數(shù)據(jù)存儲的一個關(guān)鍵環(huán)節(jié)。主要完成高速數(shù)據(jù)流的信號轉(zhuǎn)換,實現(xiàn)數(shù)據(jù)在主機上的存儲,同時減少CPU對存儲過程的干預(yù)。CompactPCI簡稱cPCI,是國際PICMG協(xié)會于1994年提出來的一種總線接口標準。
它的出現(xiàn)解決了多年來電信系統(tǒng)工程師與設(shè)備制造商面臨的棘手問題:將VME密集堅固的封裝和大型設(shè)備的極佳冷卻效果以及PC廉價的易采用具有最新處理能力的芯片結(jié)合在一起,既保證99.999%的高可靠度,又降低硬件和軟件的開發(fā)成本。因此希望通過cPCI總線利用DMA方式完成數(shù)據(jù)的傳輸與存儲。由圖1知,接口的主要功能模塊包括電光(光電)信號轉(zhuǎn)換模塊、可編成邏輯模塊FPGA和cPCI總線接口模塊。
接口各模塊中,O/E和E/O實現(xiàn)光信號與電信號的相互轉(zhuǎn)換。FPGA實現(xiàn)幾乎所有的信號處理工作,比如實現(xiàn)數(shù)據(jù)的串行、并行轉(zhuǎn)換與最終通過光纖進行數(shù)據(jù)傳輸;實現(xiàn)FIFO功能進行信號緩沖,在高速數(shù)據(jù)傳輸中緩存是很重要的,它協(xié)調(diào)了數(shù)據(jù)發(fā)送端和接收端之間的數(shù)據(jù)傳輸速度,防止由于數(shù)據(jù)流速度的波動導(dǎo)致傳輸?shù)氖?;實現(xiàn)各模塊之間的時序協(xié)調(diào)和傳輸控制等。cPCI總線接口卡實現(xiàn)FPGA輸出的信號與32位標準cPCI信號的轉(zhuǎn)換,通過DMA方式實現(xiàn)cPCI總線到主機的數(shù)據(jù)存儲。主要的研究與設(shè)計重點在cPCI總線接口模塊、可編程邏輯模塊FPGA和光電轉(zhuǎn)換模塊。
(1)cPCI總線接口模塊
目前,cPCI總線接口的設(shè)計與PCI接口的設(shè)計一樣,一般采用兩種方案,即可編程邏輯器件和專用總線接口器件??删幊踢壿嬈骷歉鶕?jù)PCI協(xié)議在FPGA或CPLD中實現(xiàn)PCI總線接口控制器,但是由于PCI協(xié)議的復(fù)雜性,使得開發(fā)難度大,周期長,而且很難在短期內(nèi)達到系統(tǒng)穩(wěn)定,這種方法比較適合于大批量生產(chǎn)的情況。
對于一般的開發(fā)者來說,大都采用現(xiàn)成的PCI接口器件。這類專用接口器件具有較低的成本和通用性,能夠優(yōu)化數(shù)據(jù)傳輸,提供配置空間,具備用于猝發(fā)傳輸功能的片內(nèi)FIFO等,是一種省時省力的方案。這類專用芯片有很多,如PLX公司的PCI總線目標接口器件PCI9052、PCI9054,PCI9056,AMCC公司的S5933等。由于cPCI總線的時鐘頻率是66MHz,數(shù)據(jù)寬度為32位,故本設(shè)計中選用PLX公司的專業(yè)總線接口芯片PCI9056作為總線接口控制器,它符合PCI2.2規(guī)范,是32位、66MHz的PCI總線主控I/O加速器,適用于通用的32位、66MHz的局部總線設(shè)計,局部總線猝發(fā)速度可達264MB/s,支持DMA通道,F(xiàn)IFO緩沖區(qū)大,是一款性價比比較高的芯片。它的本地總線可為三種模式:M模式,C模式和J模式,可利用模式選擇引腳加以選擇。本設(shè)計選用C模式,即32位的地址/數(shù)據(jù)總線非復(fù)用。
(2)可編程邏輯模塊FPGA。
FPGA選用了altera公司Stratix GX系列的EP1SGX10CF672[2]。Stratix GX器件系列是Altera第二代基于收發(fā)器的FPGA系列,為需要高達3.125Gbps數(shù)據(jù)率的應(yīng)用提供了一條低風(fēng)險的實現(xiàn)方式。Stratix GX千兆位收發(fā)器功能塊是嵌入式收發(fā)器功能塊,它具有四個全雙工通道,使用時鐘數(shù)據(jù)恢復(fù)(CDR),傳輸速率高達3.125Gbps。每個通道具有實現(xiàn)數(shù)據(jù)恢復(fù)/傳送、串行/解串、解碼/編碼和同步處理等不同階段的專用電路。同可編程邏輯結(jié)構(gòu)的無縫接口確保了可靠的數(shù)據(jù)傳輸、最大數(shù)據(jù)吞吐量和簡化的時序分析。它兼容光纖通道、串行Rapid I/O等接口協(xié)議,集成8b/10b編解碼器。本次設(shè)計主要使用了其8b/10b編解碼模塊及光纖通道協(xié)議。另外,這款芯片內(nèi)部含有PLL,且其內(nèi)部FIFO緩沖區(qū)比較大。正是由于該系列芯片功能、容量以及響應(yīng)速度的大幅度提升,使得一片芯片完成多個分立芯片的功能成為可能,進而提高系統(tǒng)的數(shù)據(jù)傳輸速率。
(3)光電轉(zhuǎn)換模塊
光電轉(zhuǎn)換驅(qū)動器選用了Infineon公司的V23818-M305-L57。這款芯片數(shù)據(jù)速率高達2.215GBd,兼容光纖通道協(xié)議,具有良好的EMI性能。由于該芯片差分輸出信號的電平是PECL或LVPECL的,而后面FPGA的高速串行收發(fā)器的差分接收信號電平是PCML的,兩種接口標準的共模電壓不同,所以要采用AC耦合電路來完成兩種電平的轉(zhuǎn)換。耦合電容的選擇既不能太大也不能太小。如果太大,將嚴重減緩信號的傳輸速度,且由于充放電時間過長,對快速變化信號的響應(yīng)將變得很壞;如果太小,將改變線路的阻抗特性,增大衰減。綜合考慮這兩種要求,耦合電容的容值在0.01μF比較適當。外部DC偏置電路可以省去,因為Stratix GX器件的高速收發(fā)器輸入管腳內(nèi)置的有DC偏置電路,所以所需要的共模電壓會在器件內(nèi)部產(chǎn)生。
二、軟件設(shè)計部分
接口卡的軟件設(shè)計主要包括兩個部分,一個是FPGA控制程序的編寫,一個是板卡驅(qū)動程序的編寫。以下本文主要就接收端FPGA控制程序的編寫加以詳細論述。正如前面所述,F(xiàn)PGA主要完成時序協(xié)調(diào)和傳輸控制,以及數(shù)據(jù)流的串并轉(zhuǎn)換和緩存。整個系統(tǒng)的控制采用有限狀態(tài)機[3]。
其狀態(tài)轉(zhuǎn)換圖如下:
圖2 接收狀態(tài)轉(zhuǎn)換圖
狀態(tài)機的狀態(tài)轉(zhuǎn)換以及各個狀態(tài)下信號的處理完全依據(jù)PCI9056的Local端到PCI端的DMA傳輸時序圖。其時序圖如下圖所示:
轉(zhuǎn)換流程分為3個狀態(tài):idle ,prel,dma_read。idle為空閑狀態(tài),上電復(fù)位后首先進入此狀態(tài),在此期間總線無任何操作,只是不斷檢測ADS#信號,一旦檢測到這個信號有效,就進入下一個狀態(tài)。prel是一過渡狀態(tài)。根據(jù)PCI9056的DMA傳輸時序圖可知,每次一個新的總線接入有效(即ADS#有效)后的第一個數(shù)據(jù)會持續(xù)兩個時鐘周期(其后的數(shù)據(jù)持續(xù)一個時鐘周期),其中,第一個時鐘周期并不采集數(shù)據(jù),而只是使從設(shè)備準備好信號(即READY#)有效,第二個時鐘周期才開始采集第一個數(shù)據(jù)。
所以,此過渡狀態(tài)主要是使READY#信號在采集數(shù)據(jù)前一個周期有效。dma_read狀態(tài)期間執(zhí)行從局部總線到cPCI總線的DMA操作,在每次時鐘的上升沿采集數(shù)據(jù),直到突發(fā)長度內(nèi)的最后一個數(shù)據(jù),BLAST#信號有效,下一個時鐘周期,狀態(tài)機又回到空閑狀態(tài),等待下一次傳輸?shù)拈_始。對數(shù)據(jù)的處理是按照數(shù)據(jù)的流向逐步完成的[4][5]。
首先經(jīng)過OE轉(zhuǎn)換的串行數(shù)據(jù)進入FPGA,經(jīng)由FPGA內(nèi)部的串行高速收發(fā)通道完成解碼及第一步的串并轉(zhuǎn)換,這時由1bit串行數(shù)據(jù)變?yōu)?bits并行數(shù)據(jù);其次由于cPCI局部總線數(shù)據(jù)線寬度為32位,所以第二步的串并轉(zhuǎn)換要完成8bits數(shù)據(jù)到32bits數(shù)據(jù)的轉(zhuǎn)換。其過程是,用4個8bits的D觸發(fā)器來連續(xù)鎖存輸入的8bits的數(shù)據(jù),再用一個32bits的D觸發(fā)器來同時鎖存4個8bits的數(shù)據(jù)以形成32bits寬的數(shù)據(jù)輸出;最后為了對數(shù)據(jù)進行緩沖,完成數(shù)據(jù)速率的轉(zhuǎn)換,將數(shù)據(jù)存入一32位寬異步FIFO。該異步FIFO的寫時鐘是從串行數(shù)據(jù)提取出的隨路時鐘,讀時鐘是與總線控制器PCI9056的局部時鐘同頻的由板上提供的外部66M時鐘。
3.總結(jié)
本文作者的創(chuàng)新點在于用一塊高性能FPGA取代了傳統(tǒng)上采用分立元件設(shè)計高速傳輸系統(tǒng)的方法,從而簡化了電路設(shè)計,減少了元器件間的互連,不但節(jié)省了板卡的面積,而且極大的提高了傳輸速率。該課題基于實驗室承擔(dān)的項目,主要用于雷達數(shù)據(jù)的傳輸。設(shè)計指標要求采樣點數(shù)為16384,脈沖重復(fù)頻率(PRF)6K以上?;诖酥笜艘蟛⑿袛?shù)據(jù)采樣時鐘頻率應(yīng)不低于50MHz,這樣傳輸速率理論上可以高達200MB/s以上。實驗證明該系統(tǒng)的軟硬件設(shè)計是成功的。該點到點高速光纖數(shù)據(jù)傳輸系統(tǒng)不但適用于雷達數(shù)據(jù)的傳輸,同時在高速數(shù)據(jù)采集、遠程控制等方面也具有廣闊的應(yīng)用前景。
參考文獻:
1. 宋克柱,王硯方,“適用作遠程實時數(shù)據(jù)采集平臺的光纖通訊系統(tǒng)”, 數(shù)據(jù)采集與處理,第16卷第2期2001年6月
2. sgx_handbook
3. 楊進,魏軼偉,何寧,熊劍平,賈惠波,“基于光纖通道的高速數(shù)據(jù)傳輸系統(tǒng)主機接口設(shè)計”,計算機工程與應(yīng)用,2002年第22期
4. GE ZHOU,YIMO ZHANG, WEI LIU, “Optical Fiber Interconnection for the Scalable Parallel Computing System”, PROCEEDINGS OF THE IEEE,VOL.88,NO.6,JUNE 2000
5.劉小俊,宋仲康,“基于VHDL語言的全雙工異步接收發(fā)送器電路設(shè)計”,《微計算機信息》(測控自動化),2005年第21卷第1期
本文來源:微計算機信息 作者:王明芳 鄧云凱 趙肖東