文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.183275
中文引用格式: 李金,,焦新泉,,劉東海,等. 基于CPCI總線和LVDS的高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)[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.
0 引言
隨著科學(xué)技術(shù)的迅猛發(fā)展,,越來(lái)越大的數(shù)據(jù)傳輸量和越來(lái)越高的數(shù)據(jù)傳輸速率成為信號(hào)處理系統(tǒng)亟待解決的問(wèn)題,。因而,開發(fā)一種能夠?qū)崟r(shí)處理大量高速數(shù)據(jù),,同時(shí)兼具穩(wěn)定性和通用性的新總線成為整個(gè)數(shù)據(jù)鏈技術(shù)中迫切需要解決的瓶頸之一,。CPCI (緊湊外圍設(shè)備互聯(lián)總線)結(jié)合了PCI總線的電氣特性和歐式卡的機(jī)械標(biāo)準(zhǔn),可提供132 MB/s的峰值帶寬[1],,同時(shí)CPCI構(gòu)架開放,,性能優(yōu)良,在可靠性,、兼容性和機(jī)械性能等方面均有優(yōu)勢(shì),。 因此,CPCI總線已成為當(dāng)今應(yīng)用最廣泛的工業(yè)計(jì)算機(jī)總線,,基于CPCI總線的工業(yè)控制計(jì)算機(jī)已經(jīng)成為解決大量高速數(shù)據(jù)處理的一個(gè)新方向,。
基于某測(cè)試任務(wù),本文詳細(xì)闡述了通過(guò)CPCI總線接口和LVDS接口接收和傳輸測(cè)試數(shù)據(jù),,在保證可靠性的前期下,,提高了地面設(shè)備接收和處理數(shù)據(jù)的速度。測(cè)試結(jié)果表明,,此方法可行可靠,,圓滿完成了測(cè)試任務(wù)。
1 總體設(shè)計(jì)
本設(shè)計(jì)的主要工作是對(duì)外接CPCI設(shè)備進(jìn)行命令下發(fā)、狀態(tài)檢測(cè)及數(shù)據(jù)接收操作,。其主要工作流程是:由上位機(jī)下發(fā)命令字控制整個(gè)系統(tǒng)的正常運(yùn)行,,主控芯片XC3S400通過(guò)PCI9054橋接從背板總線接收主機(jī)卡發(fā)出的命令字,完成邏輯控制,;通過(guò)RS422接口與外接設(shè)備進(jìn)行通信,,控制外接設(shè)備進(jìn)入相應(yīng)的工作狀態(tài)以及接收其相應(yīng)的狀態(tài)返回;通過(guò)LVDS接口接收外接設(shè)備的高速數(shù)據(jù),,將數(shù)據(jù)寫入FPGA的FIFO后,,由PCI9054通過(guò)DMA控制器將接收的數(shù)據(jù)回傳至主機(jī)卡??傮w設(shè)計(jì)框圖如圖1所示,。
整個(gè)設(shè)計(jì)以FPGA為控制核心,充分利用其強(qiáng)大的可編程能力[2],,能夠靈活控制總線傳輸速率等多個(gè)指標(biāo),,在增加系統(tǒng)通用性的同時(shí),也充分發(fā)揮了CPCI總線高速傳輸?shù)膬?yōu)勢(shì),。
2 RS422接口設(shè)計(jì)
RS422接口用來(lái)下發(fā)命令字和接收狀態(tài)字,,由于信號(hào)碼率較低,為625 kb/s,,因此設(shè)計(jì)中主要考慮傳輸?shù)姆€(wěn)定性和可靠性,。本設(shè)計(jì)針對(duì)此問(wèn)題首先選擇了抗干擾性強(qiáng)的差分對(duì)信號(hào)傳輸數(shù)字量,同時(shí)對(duì)信號(hào)采取隔離措施,,以防止前后級(jí)設(shè)備之間的互相干擾,。接口電路示意圖如圖2所示。
該接口電路選用ADI公司的磁隔離全雙工收發(fā)器ADM2682E,,無(wú)需外接DC/DC隔離模塊,。但是輸入輸出的供電引腳需要電源旁路,噪聲抑制需要一個(gè)低電感高頻電容,,紋波抑制需要一個(gè)大容量電容,。為了抑制噪聲和降低紋波,至少需要并聯(lián)兩個(gè)電容,,其中容值較小的電容靠近器件擺放,。因此,在器件的VCC與GND1,,VISOIN,、VISOOUT與GND2之間均要加去耦電容。
差分輸入端R2將差分輸入正端上拉至VISO,,R4將差分輸入負(fù)端接地,,這樣做的好處是可以防止因?yàn)椴罘中盘?hào)長(zhǎng)距離傳輸造成的信號(hào)削弱,,阻值均選擇1 kΩ;因?yàn)閿?shù)據(jù)傳輸電纜為特性阻抗為100 Ω的第五類屏蔽雙絞線,,R3的作用是可以減少信號(hào)的反射和衰減,,提高數(shù)據(jù)傳輸?shù)目煽啃?,阻值選為120 Ω,。
3 LVDS接口設(shè)計(jì)
3.1 硬件接口
LVDS技術(shù)采用低壓擺幅和和低電流驅(qū)動(dòng)輸出,具有很強(qiáng)的抗干擾性[2-4],。TI公司的DS92LV1023和DS92LV1224分別是高速串行差分?jǐn)?shù)據(jù)流串化器和解串器,。
在系統(tǒng)上電后,DS92LV1023和DS92LV1224將所有輸出引腳置為三態(tài)后,,啟動(dòng)鎖相環(huán)跟蹤并鎖定本地的全局時(shí)鐘,。LVDS串化器連續(xù)給數(shù)據(jù)接收端的解串器發(fā)送同步信號(hào),當(dāng)解串器鎖相環(huán)成功鎖定同步時(shí)鐘后,,LVDS接口將串行數(shù)據(jù)送出,。同理,LVDS解串器也需要與發(fā)送端同步后才能接收數(shù)據(jù),。若在數(shù)據(jù)傳輸?shù)倪^(guò)程中解串器鎖相環(huán)失鎖,,時(shí)鐘紊亂,則LOCK信號(hào)會(huì)置高電平以通知串化器進(jìn)行再同步的操作,。
為了延長(zhǎng)LVDS數(shù)據(jù)的傳輸距離,,在發(fā)送端和接收端分別增加了電纜驅(qū)動(dòng)器和電纜均衡器,以此來(lái)增強(qiáng)差分信號(hào)的驅(qū)動(dòng)和補(bǔ)償能力,。驅(qū)動(dòng)器CLC001AJE的傳輸速率最高可達(dá)622 Mb/s,,通過(guò)配置外圍電阻將DS92LV1023輸出的低壓差分信號(hào)壓差從200 mV提升至0.9 V~1.1 V,有效增強(qiáng)了信號(hào)的驅(qū)動(dòng)能力,。在信號(hào)的接收端,,信號(hào)經(jīng)過(guò)屏蔽雙絞線傳輸,衰減后很容易造成碼間串?dāng)_,,均衡器CLC014AJE可針對(duì)帶寬50 Mb/s~650 Mb/s的信號(hào)進(jìn)行補(bǔ)償,。恢復(fù)信號(hào)強(qiáng)度后,,再通過(guò)DS92LV1224將串行數(shù)據(jù)解串[5],。LVDS數(shù)據(jù)發(fā)送、數(shù)據(jù)接收電路分別如圖3,、圖4所示,。
3.2 軟件邏輯設(shè)計(jì)
LVDS邏輯控制示意圖如圖5所示,控制模塊由FPGA內(nèi)部的FIFO完成數(shù)據(jù)的緩存,。上電后,,LVDS發(fā)送模塊向外部發(fā)送同步信號(hào)Sync,F(xiàn)IFO空標(biāo)志信號(hào)Prog_empty為0時(shí),F(xiàn)IFO讀使能信號(hào)FIFO_rden_reg置1,,將FIFO中的數(shù)據(jù)讀出,,然后向外部接口發(fā)送,線上空閑時(shí)發(fā)送無(wú)效數(shù)據(jù)[6-7],。
LVDS接收模塊在時(shí)鐘Rclk的上升沿,,對(duì)從被測(cè)設(shè)備接收到的數(shù)據(jù)進(jìn)行糾錯(cuò);在時(shí)鐘Rclk的下降沿,,判斷若接收到的數(shù)據(jù)為有效數(shù),,則內(nèi)部的數(shù)據(jù)有效信號(hào)置1,將有效數(shù)據(jù)發(fā)送給FIFO,,通過(guò)主控制模塊上傳至CPCI總線,。
4 CPCI總線接口實(shí)現(xiàn)
目前,CPCI總線接口的實(shí)現(xiàn)主要有2種方法:(1)使用可編程邏輯器件自行設(shè)計(jì),;(2)使用專用的協(xié)議轉(zhuǎn)換芯片,,將CPCI總線轉(zhuǎn)換為用戶自定義的本地總線[8]。第二種傻瓜式的實(shí)現(xiàn)方法雖然不如第一種方法靈活,,但勝在省時(shí)省力,,簡(jiǎn)單易用,開發(fā)周期短,,因此應(yīng)用較為廣泛,。
4.1 PCI9054工作模式
本設(shè)計(jì)采用PLX公司的PCI9054協(xié)議轉(zhuǎn)換芯片,其本地工作模式采用邏輯控制簡(jiǎn)單,、開發(fā)難度較低的C模式,,該模式下PCI9054芯片內(nèi)部的地址線和數(shù)據(jù)線相互獨(dú)立,用戶可以自行定義需要的本地時(shí)序,,實(shí)現(xiàn)CPCI接口的通信功能,。CPCI接口與本地總線之間的數(shù)據(jù)傳輸有3種方式:PCI Initiator模式、PCI Target和DMA模式,。PCI Target模式是CPCI主設(shè)備通過(guò)PCI9054發(fā)起對(duì)本地總線上資源的訪問(wèn),;DMA模式即PCI9054通過(guò)控制CPCI和本地兩條總線來(lái)實(shí)現(xiàn)數(shù)據(jù)的突發(fā)傳輸。本設(shè)計(jì)主要工作是命令字的下發(fā)和數(shù)據(jù)的上傳,,考慮操作的簡(jiǎn)易度,,對(duì)于命令字的下發(fā)采用Target模式下的單周期訪問(wèn)模式,對(duì)于數(shù)據(jù)的上傳采用DMA模式突發(fā)傳輸[9],。
PCI9054與CPCI總線的連接是通過(guò)CPCI連接器J1實(shí)現(xiàn)的,,即PCI9054的CPCI信號(hào)通過(guò)串接10 Ω匹配電阻與J1的相應(yīng)信號(hào)引腳連接,串接10 Ω電阻是為了減少總線分支因?yàn)檩^大的背板阻抗對(duì)總線產(chǎn)生的瞬態(tài)干擾,,保證信號(hào)傳輸?shù)臏?zhǔn)確性,。PCI9054的本地時(shí)鐘由外部有源晶振提供,,且與FPGA端的時(shí)鐘同步。在FPGA內(nèi)部劃分一塊FIFO作為數(shù)據(jù)緩存,,利用其雙口操作的特性實(shí)現(xiàn)數(shù)據(jù)的跨時(shí)鐘域傳輸,,同時(shí)也方便了本地時(shí)序的設(shè)計(jì)。
4.2 CPCI本地總線接口實(shí)現(xiàn)
CPCI本地總線接口是本設(shè)計(jì)的核心所在,。整個(gè)CPCI接口的設(shè)計(jì)思路是:主控芯片F(xiàn)PGA通過(guò)橋接PCI9054與CPCI總線交互,,由其內(nèi)部邏輯自定義本地總線的工作時(shí)序?qū)崿F(xiàn)對(duì)總線的狀態(tài)控制,同時(shí)產(chǎn)生片內(nèi)讀寫及地址信號(hào)完成單周期讀寫和突發(fā)傳輸?shù)墓δ?。在FPGA內(nèi)部劃分一塊FIFO作為數(shù)據(jù)緩存來(lái)實(shí)現(xiàn)數(shù)據(jù)突發(fā)讀取,,由其半滿信號(hào)作為上位機(jī)的讀取標(biāo)志?;谶@種設(shè)計(jì)思路,為了保證通信的可靠性,,本文設(shè)計(jì)了類似握手協(xié)議的通信方式,,具體操作如圖6所示。
系統(tǒng)上電復(fù)位后狀態(tài)機(jī)在S0狀態(tài)循環(huán)等待,。當(dāng)上位機(jī)下發(fā)指令時(shí),,CPCI總線將Lhold信號(hào)拉高來(lái)申請(qǐng)本地總線,本地總線將Lholda信號(hào)拉高作為應(yīng)答信號(hào)將總線控制權(quán)交給PCI9054,。然后CPCI總線將Ads#拉低,,開啟新的總線傳輸,將命令字寫入約定好的地址LA0,。FPGA在檢測(cè)到Ads#有效后離開S0進(jìn)入S1狀態(tài),。判斷Blast#為低,進(jìn)入單周期傳輸模式,,判斷LW/R#為低,,執(zhí)行Target讀操作,即從CPCI總線接收上位機(jī)下發(fā)的命令字,,然后拉高Ready#和Blast#表示單周期讀操作結(jié)束,。接著狀態(tài)機(jī)返回S0繼續(xù)檢測(cè)Ads#信號(hào)。根據(jù)協(xié)議,,F(xiàn)PGA會(huì)接著執(zhí)行一次單周期Target寫操作,,將收到的命令字向上位機(jī)返回,由上位機(jī)對(duì)比兩次命令字,,結(jié)果一致表明命令下發(fā)成功,,否則重新發(fā)送。這種增加反饋確認(rèn)程序的命令下發(fā)模式有效保證了命令發(fā)送的準(zhǔn)確性,。
當(dāng)下發(fā)的命令字要求上傳數(shù)據(jù)時(shí),,F(xiàn)PGA將內(nèi)部FIFO緩存的半滿標(biāo)志根據(jù)協(xié)議寫入固定地址,,上位機(jī)每間隔一定個(gè)CLK會(huì)自動(dòng)執(zhí)行一次單周期讀操作,讀取該地址的標(biāo)示內(nèi)容,,若標(biāo)示有效,,則狀態(tài)機(jī)進(jìn)入DMA突發(fā)傳輸模式時(shí),結(jié)束后返回S0狀態(tài),,繼續(xù)讀取半滿標(biāo)示,,直到命令結(jié)束。
這種結(jié)合PCI Target單周期模式讀寫指令和DMA突發(fā)模式傳輸數(shù)據(jù)的傳輸模式,,既在節(jié)省CPU資源的同時(shí)保證了命令的準(zhǔn)確下發(fā)和反饋,,也有效發(fā)揮了CPCI總線的高速傳輸數(shù)據(jù)的優(yōu)勢(shì)[10]。
5 仿真與試驗(yàn)結(jié)果分析
調(diào)試使用ISE配套的ChipScope Pro軟件實(shí)時(shí)分析本地總線操作時(shí)序,,圖7為單周期讀操作時(shí)序,。在上位機(jī)下發(fā)上傳數(shù)據(jù)的指令42H后,CPCI總線每400個(gè)CLK自動(dòng)執(zhí)行一次單周期讀操作,,判斷地址0x3000內(nèi)的數(shù)據(jù)標(biāo)示是否為AA,,如果是,說(shuō)明緩存已準(zhǔn)備好有效數(shù)據(jù),,上位機(jī)可以突發(fā)取數(shù),。經(jīng)過(guò)390個(gè)CLK后,上位機(jī)開始突發(fā)取數(shù),,圖8為突發(fā)取數(shù)操作時(shí)序,,上位機(jī)從地址0x0020~0x1820取走FPGA寫入的2K數(shù)據(jù),每次突發(fā)4 B,。實(shí)際工作時(shí)序與CPCI本地接口的理論時(shí)序一致,。圖9是上位機(jī)解包后的原始數(shù)據(jù),其中包標(biāo)示用于區(qū)分模擬量和數(shù)字量,,包計(jì)數(shù)用于鑒定丟包,。整個(gè)數(shù)據(jù)文件幀結(jié)構(gòu)完整,包計(jì)數(shù)連續(xù),,沒有丟數(shù)現(xiàn)象,,進(jìn)一步證明了本設(shè)計(jì)中CPCI接口與本地接口銜接合理,方案可行,。
6 結(jié)論
本設(shè)計(jì)以PCI9054和FPGA控制器為核心,,以LVDS為數(shù)據(jù)傳輸接口,從軟硬件兩個(gè)方面介紹了CPCI總線和本地總線的交互設(shè)計(jì),,通過(guò)協(xié)議轉(zhuǎn)換芯片簡(jiǎn)化了整個(gè)設(shè)計(jì),,完成了數(shù)據(jù)傳輸卡與上位機(jī)之間的通信。測(cè)試結(jié)果表明,,本設(shè)計(jì)方案可行,、可靠,,同時(shí)也可以為PCI、PXI平臺(tái)的設(shè)計(jì)提供參考價(jià)值,。
參考文獻(xiàn)
[1] 金海平.基于FPGA及CPCI總線的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),,2013.
[2] 李北國(guó),楊圣龍,,李輝景.基于FPGA的LVDS高可靠性傳輸優(yōu)化設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2018,44(8):78-81,,85.
[3] 趙陽(yáng)剛,,郭濤,黃玉崗.基于FPGA和LVDS的彈載數(shù)據(jù)回讀系統(tǒng)設(shè)計(jì)[J].電子器件,,2017,,40(1):113-117.
[4] 郭虎峰,陳香香,,李楠.基于LVDS總線和8b/10 b編碼技術(shù)的高速遠(yuǎn)距離傳輸設(shè)計(jì)[J].自動(dòng)化與儀表,,2015,30(5):32-36.
[5] 任勇峰,,彭巧君,劉占峰.基于FPGA的CPCI高速讀數(shù)接口設(shè)計(jì)[J].電子器件,,2015,,38(1):148-151.
[6] 郭柳柳,儲(chǔ)成君,,甄國(guó)涌,,等.基于PXI總線高速數(shù)據(jù)傳輸卡的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2014,,22(6):1899-1901.
[7] 魏麗玲,,朱平,石永亮.基于FPGA的圖像采集與存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2015,,41(11):67-69,73.
[8] PLX Technology.PCI 9054 Data Book.Version 2.1[Z].2000.
[9] 李昕龍,,劉亞斌,,周強(qiáng).基于PXI/CPCI總線的LVDS數(shù)據(jù)收發(fā)模塊設(shè)計(jì)[J].微計(jì)算機(jī)信息,2012,,28(9):105-106,,273.
[10] 王曉君,宇文英,,羅躍東.基于FPGA的CPCI和LVDS接口技術(shù)及應(yīng)用[J].半導(dǎo)體技術(shù),,2007,,32(3):248-251.
作者信息:
李 金,焦新泉,,劉東海,,王淑琴
(中北大學(xué) 電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,山西 太原030051)