《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于CPCI總線和LVDS的高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計
基于CPCI總線和LVDS的高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計
2019年電子技術(shù)應(yīng)用第4期
李 金,焦新泉,劉東海,王淑琴
中北大學 電子測試技術(shù)國家重點實驗室,山西 太原030051
摘要: 為了實時準確地接收處理大容量的高速數(shù)據(jù),在深入研究CPCI總線的基礎(chǔ)上,提出了一種基于CPCI總線和LVDS的高速數(shù)據(jù)傳輸系統(tǒng)的實現(xiàn)方法。以PCI9054為橋接器件,F(xiàn)PGA為微控制器,設(shè)計了將PCI Target單周期模式讀寫指令和DMA突發(fā)模式傳輸數(shù)據(jù)相結(jié)合的傳輸模式,在保證數(shù)據(jù)可靠傳輸?shù)耐瑫r,提高了數(shù)據(jù)的傳輸速度。經(jīng)實踐測試,該設(shè)計工作穩(wěn)定,傳輸準確,成功地完成了預(yù)期傳輸任務(wù)。
中圖分類號: TN919;TP274
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.183275
中文引用格式: 李金,焦新泉,劉東海,等. 基于CPCI總線和LVDS的高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計[J].電子技術(shù)應(yīng)用,2019,45(4):60-63,68.
英文引用格式: Li Jin,Jiao Xinquan,Liu Donghai,et al. Design of high speed data transmission system based on CPCI Bus and LVDS[J]. Application of Electronic Technique,2019,45(4):60-63,68.
Design of high speed data transmission system based on CPCI Bus and LVDS
Li Jin,Jiao Xinquan,Liu Donghai,Wang Shuqin
National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China
Abstract: In order to accurately receive and process large-capacity high-speed data in real time,based on the in-depth study of CPCI Bus,a high-speed data transmission system based on CPCI Bus and LVDS is proposed. PCI9054 is used as the bridge device and FPGA is the microcontroller. The transmission mode combining PCI Target single-cycle mode read/write instruction and DMA burst mode transmission data is designed to improve the data transmission speed while ensuring reliable data transmission.After practice testing,the design work is stable,the transmission is accurate,and the expected transmission task is successfully completed.
Key words : CPCI Bus;LVDS;FPGA;data transmission;PCI9054

0 引言

    隨著科學技術(shù)的迅猛發(fā)展,越來越大的數(shù)據(jù)傳輸量和越來越高的數(shù)據(jù)傳輸速率成為信號處理系統(tǒng)亟待解決的問題。因而,開發(fā)一種能夠?qū)崟r處理大量高速數(shù)據(jù),同時兼具穩(wěn)定性和通用性的新總線成為整個數(shù)據(jù)鏈技術(shù)中迫切需要解決的瓶頸之一。CPCI (緊湊外圍設(shè)備互聯(lián)總線)結(jié)合了PCI總線的電氣特性和歐式卡的機械標準,可提供132 MB/s的峰值帶寬[1],同時CPCI構(gòu)架開放,性能優(yōu)良,在可靠性、兼容性和機械性能等方面均有優(yōu)勢。 因此,CPCI總線已成為當今應(yīng)用最廣泛的工業(yè)計算機總線,基于CPCI總線的工業(yè)控制計算機已經(jīng)成為解決大量高速數(shù)據(jù)處理的一個新方向。

    基于某測試任務(wù),本文詳細闡述了通過CPCI總線接口和LVDS接口接收和傳輸測試數(shù)據(jù),在保證可靠性的前期下,提高了地面設(shè)備接收和處理數(shù)據(jù)的速度。測試結(jié)果表明,此方法可行可靠,圓滿完成了測試任務(wù)。

1 總體設(shè)計

    本設(shè)計的主要工作是對外接CPCI設(shè)備進行命令下發(fā)、狀態(tài)檢測及數(shù)據(jù)接收操作。其主要工作流程是:由上位機下發(fā)命令字控制整個系統(tǒng)的正常運行,主控芯片XC3S400通過PCI9054橋接從背板總線接收主機卡發(fā)出的命令字,完成邏輯控制;通過RS422接口與外接設(shè)備進行通信,控制外接設(shè)備進入相應(yīng)的工作狀態(tài)以及接收其相應(yīng)的狀態(tài)返回;通過LVDS接口接收外接設(shè)備的高速數(shù)據(jù),將數(shù)據(jù)寫入FPGA的FIFO后,由PCI9054通過DMA控制器將接收的數(shù)據(jù)回傳至主機卡??傮w設(shè)計框圖如圖1所示。

ck1-t1.gif

    整個設(shè)計以FPGA為控制核心,充分利用其強大的可編程能力[2],能夠靈活控制總線傳輸速率等多個指標,在增加系統(tǒng)通用性的同時,也充分發(fā)揮了CPCI總線高速傳輸?shù)膬?yōu)勢。

2 RS422接口設(shè)計

    RS422接口用來下發(fā)命令字和接收狀態(tài)字,由于信號碼率較低,為625 kb/s,因此設(shè)計中主要考慮傳輸?shù)姆€(wěn)定性和可靠性。本設(shè)計針對此問題首先選擇了抗干擾性強的差分對信號傳輸數(shù)字量,同時對信號采取隔離措施,以防止前后級設(shè)備之間的互相干擾。接口電路示意圖如圖2所示。

ck1-t2.gif

    該接口電路選用ADI公司的磁隔離全雙工收發(fā)器ADM2682E,無需外接DC/DC隔離模塊。但是輸入輸出的供電引腳需要電源旁路,噪聲抑制需要一個低電感高頻電容,紋波抑制需要一個大容量電容。為了抑制噪聲和降低紋波,至少需要并聯(lián)兩個電容,其中容值較小的電容靠近器件擺放。因此,在器件的VCC與GND1,VISOIN、VISOOUT與GND2之間均要加去耦電容。

    差分輸入端R2將差分輸入正端上拉至VISO,R4將差分輸入負端接地,這樣做的好處是可以防止因為差分信號長距離傳輸造成的信號削弱,阻值均選擇1 kΩ;因為數(shù)據(jù)傳輸電纜為特性阻抗為100 Ω的第五類屏蔽雙絞線,R3的作用是可以減少信號的反射和衰減,提高數(shù)據(jù)傳輸?shù)目煽啃?,阻值選為120 Ω。

3 LVDS接口設(shè)計

3.1 硬件接口

    LVDS技術(shù)采用低壓擺幅和和低電流驅(qū)動輸出,具有很強的抗干擾性[2-4]。TI公司的DS92LV1023和DS92LV1224分別是高速串行差分數(shù)據(jù)流串化器和解串器。

    在系統(tǒng)上電后,DS92LV1023和DS92LV1224將所有輸出引腳置為三態(tài)后,啟動鎖相環(huán)跟蹤并鎖定本地的全局時鐘。LVDS串化器連續(xù)給數(shù)據(jù)接收端的解串器發(fā)送同步信號,當解串器鎖相環(huán)成功鎖定同步時鐘后,LVDS接口將串行數(shù)據(jù)送出。同理,LVDS解串器也需要與發(fā)送端同步后才能接收數(shù)據(jù)。若在數(shù)據(jù)傳輸?shù)倪^程中解串器鎖相環(huán)失鎖,時鐘紊亂,則LOCK信號會置高電平以通知串化器進行再同步的操作。

    為了延長LVDS數(shù)據(jù)的傳輸距離,在發(fā)送端和接收端分別增加了電纜驅(qū)動器和電纜均衡器,以此來增強差分信號的驅(qū)動和補償能力。驅(qū)動器CLC001AJE的傳輸速率最高可達622 Mb/s,通過配置外圍電阻將DS92LV1023輸出的低壓差分信號壓差從200 mV提升至0.9 V~1.1 V,有效增強了信號的驅(qū)動能力。在信號的接收端,信號經(jīng)過屏蔽雙絞線傳輸,衰減后很容易造成碼間串擾,均衡器CLC014AJE可針對帶寬50 Mb/s~650 Mb/s的信號進行補償。恢復信號強度后,再通過DS92LV1224將串行數(shù)據(jù)解串[5]。LVDS數(shù)據(jù)發(fā)送、數(shù)據(jù)接收電路分別如圖3、圖4所示。

ck1-t3.gif

ck1-t4.gif

3.2 軟件邏輯設(shè)計

    LVDS邏輯控制示意圖如圖5所示,控制模塊由FPGA內(nèi)部的FIFO完成數(shù)據(jù)的緩存。上電后,LVDS發(fā)送模塊向外部發(fā)送同步信號Sync,F(xiàn)IFO空標志信號Prog_empty為0時,F(xiàn)IFO讀使能信號FIFO_rden_reg置1,將FIFO中的數(shù)據(jù)讀出,然后向外部接口發(fā)送,線上空閑時發(fā)送無效數(shù)據(jù)[6-7]。

ck1-t5.gif

    LVDS接收模塊在時鐘Rclk的上升沿,對從被測設(shè)備接收到的數(shù)據(jù)進行糾錯;在時鐘Rclk的下降沿,判斷若接收到的數(shù)據(jù)為有效數(shù),則內(nèi)部的數(shù)據(jù)有效信號置1,將有效數(shù)據(jù)發(fā)送給FIFO,通過主控制模塊上傳至CPCI總線。

4 CPCI總線接口實現(xiàn)

    目前,CPCI總線接口的實現(xiàn)主要有2種方法:(1)使用可編程邏輯器件自行設(shè)計;(2)使用專用的協(xié)議轉(zhuǎn)換芯片,將CPCI總線轉(zhuǎn)換為用戶自定義的本地總線[8]。第二種傻瓜式的實現(xiàn)方法雖然不如第一種方法靈活,但勝在省時省力,簡單易用,開發(fā)周期短,因此應(yīng)用較為廣泛。

4.1 PCI9054工作模式

    本設(shè)計采用PLX公司的PCI9054協(xié)議轉(zhuǎn)換芯片,其本地工作模式采用邏輯控制簡單、開發(fā)難度較低的C模式,該模式下PCI9054芯片內(nèi)部的地址線和數(shù)據(jù)線相互獨立,用戶可以自行定義需要的本地時序,實現(xiàn)CPCI接口的通信功能。CPCI接口與本地總線之間的數(shù)據(jù)傳輸有3種方式:PCI Initiator模式、PCI Target和DMA模式。PCI Target模式是CPCI主設(shè)備通過PCI9054發(fā)起對本地總線上資源的訪問;DMA模式即PCI9054通過控制CPCI和本地兩條總線來實現(xiàn)數(shù)據(jù)的突發(fā)傳輸。本設(shè)計主要工作是命令字的下發(fā)和數(shù)據(jù)的上傳,考慮操作的簡易度,對于命令字的下發(fā)采用Target模式下的單周期訪問模式,對于數(shù)據(jù)的上傳采用DMA模式突發(fā)傳輸[9]。

    PCI9054與CPCI總線的連接是通過CPCI連接器J1實現(xiàn)的,即PCI9054的CPCI信號通過串接10 Ω匹配電阻與J1的相應(yīng)信號引腳連接,串接10 Ω電阻是為了減少總線分支因為較大的背板阻抗對總線產(chǎn)生的瞬態(tài)干擾,保證信號傳輸?shù)臏蚀_性。PCI9054的本地時鐘由外部有源晶振提供,且與FPGA端的時鐘同步。在FPGA內(nèi)部劃分一塊FIFO作為數(shù)據(jù)緩存,利用其雙口操作的特性實現(xiàn)數(shù)據(jù)的跨時鐘域傳輸,同時也方便了本地時序的設(shè)計。

4.2 CPCI本地總線接口實現(xiàn)

    CPCI本地總線接口是本設(shè)計的核心所在。整個CPCI接口的設(shè)計思路是:主控芯片F(xiàn)PGA通過橋接PCI9054與CPCI總線交互,由其內(nèi)部邏輯自定義本地總線的工作時序?qū)崿F(xiàn)對總線的狀態(tài)控制,同時產(chǎn)生片內(nèi)讀寫及地址信號完成單周期讀寫和突發(fā)傳輸?shù)墓δ堋T贔PGA內(nèi)部劃分一塊FIFO作為數(shù)據(jù)緩存來實現(xiàn)數(shù)據(jù)突發(fā)讀取,由其半滿信號作為上位機的讀取標志?;谶@種設(shè)計思路,為了保證通信的可靠性,本文設(shè)計了類似握手協(xié)議的通信方式,具體操作如圖6所示。

ck1-t6.gif

    系統(tǒng)上電復位后狀態(tài)機在S0狀態(tài)循環(huán)等待。當上位機下發(fā)指令時,CPCI總線將Lhold信號拉高來申請本地總線,本地總線將Lholda信號拉高作為應(yīng)答信號將總線控制權(quán)交給PCI9054。然后CPCI總線將Ads#拉低,開啟新的總線傳輸,將命令字寫入約定好的地址LA0。FPGA在檢測到Ads#有效后離開S0進入S1狀態(tài)。判斷Blast#為低,進入單周期傳輸模式,判斷LW/R#為低,執(zhí)行Target讀操作,即從CPCI總線接收上位機下發(fā)的命令字,然后拉高Ready#和Blast#表示單周期讀操作結(jié)束。接著狀態(tài)機返回S0繼續(xù)檢測Ads#信號。根據(jù)協(xié)議,F(xiàn)PGA會接著執(zhí)行一次單周期Target寫操作,將收到的命令字向上位機返回,由上位機對比兩次命令字,結(jié)果一致表明命令下發(fā)成功,否則重新發(fā)送。這種增加反饋確認程序的命令下發(fā)模式有效保證了命令發(fā)送的準確性。

    當下發(fā)的命令字要求上傳數(shù)據(jù)時,F(xiàn)PGA將內(nèi)部FIFO緩存的半滿標志根據(jù)協(xié)議寫入固定地址,上位機每間隔一定個CLK會自動執(zhí)行一次單周期讀操作,讀取該地址的標示內(nèi)容,若標示有效,則狀態(tài)機進入DMA突發(fā)傳輸模式時,結(jié)束后返回S0狀態(tài),繼續(xù)讀取半滿標示,直到命令結(jié)束。

    這種結(jié)合PCI Target單周期模式讀寫指令和DMA突發(fā)模式傳輸數(shù)據(jù)的傳輸模式,既在節(jié)省CPU資源的同時保證了命令的準確下發(fā)和反饋,也有效發(fā)揮了CPCI總線的高速傳輸數(shù)據(jù)的優(yōu)勢[10]。

5 仿真與試驗結(jié)果分析

    調(diào)試使用ISE配套的ChipScope Pro軟件實時分析本地總線操作時序,圖7為單周期讀操作時序。在上位機下發(fā)上傳數(shù)據(jù)的指令42H后,CPCI總線每400個CLK自動執(zhí)行一次單周期讀操作,判斷地址0x3000內(nèi)的數(shù)據(jù)標示是否為AA,如果是,說明緩存已準備好有效數(shù)據(jù),上位機可以突發(fā)取數(shù)。經(jīng)過390個CLK后,上位機開始突發(fā)取數(shù),圖8為突發(fā)取數(shù)操作時序,上位機從地址0x0020~0x1820取走FPGA寫入的2K數(shù)據(jù),每次突發(fā)4 B。實際工作時序與CPCI本地接口的理論時序一致。圖9是上位機解包后的原始數(shù)據(jù),其中包標示用于區(qū)分模擬量和數(shù)字量,包計數(shù)用于鑒定丟包。整個數(shù)據(jù)文件幀結(jié)構(gòu)完整,包計數(shù)連續(xù),沒有丟數(shù)現(xiàn)象,進一步證明了本設(shè)計中CPCI接口與本地接口銜接合理,方案可行。

ck1-t7.gif

ck1-t8.gif

ck1-t9.gif

6 結(jié)論

    本設(shè)計以PCI9054和FPGA控制器為核心,以LVDS為數(shù)據(jù)傳輸接口,從軟硬件兩個方面介紹了CPCI總線和本地總線的交互設(shè)計,通過協(xié)議轉(zhuǎn)換芯片簡化了整個設(shè)計,完成了數(shù)據(jù)傳輸卡與上位機之間的通信。測試結(jié)果表明,本設(shè)計方案可行、可靠,同時也可以為PCI、PXI平臺的設(shè)計提供參考價值。

參考文獻

[1] 金海平.基于FPGA及CPCI總線的數(shù)據(jù)采集系統(tǒng)設(shè)計[D].長沙:國防科學技術(shù)大學,2013.

[2] 李北國,楊圣龍,李輝景.基于FPGA的LVDS高可靠性傳輸優(yōu)化設(shè)計[J].電子技術(shù)應(yīng)用,2018,44(8):78-81,85.

[3] 趙陽剛,郭濤,黃玉崗.基于FPGA和LVDS的彈載數(shù)據(jù)回讀系統(tǒng)設(shè)計[J].電子器件,2017,40(1):113-117.

[4] 郭虎峰,陳香香,李楠.基于LVDS總線和8b/10 b編碼技術(shù)的高速遠距離傳輸設(shè)計[J].自動化與儀表,2015,30(5):32-36.

[5] 任勇峰,彭巧君,劉占峰.基于FPGA的CPCI高速讀數(shù)接口設(shè)計[J].電子器件,2015,38(1):148-151.

[6] 郭柳柳,儲成君,甄國涌,等.基于PXI總線高速數(shù)據(jù)傳輸卡的設(shè)計[J].計算機測量與控制,2014,22(6):1899-1901.

[7] 魏麗玲,朱平,石永亮.基于FPGA的圖像采集與存儲系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2015,41(11):67-69,73.

[8] PLX Technology.PCI 9054 Data Book.Version 2.1[Z].2000.

[9] 李昕龍,劉亞斌,周強.基于PXI/CPCI總線的LVDS數(shù)據(jù)收發(fā)模塊設(shè)計[J].微計算機信息,2012,28(9):105-106,273.

[10] 王曉君,宇文英,羅躍東.基于FPGA的CPCI和LVDS接口技術(shù)及應(yīng)用[J].半導體技術(shù),2007,32(3):248-251.



作者信息:

李  金,焦新泉,劉東海,王淑琴

(中北大學 電子測試技術(shù)國家重點實驗室,山西 太原030051)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。