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