提出了一種通過(guò)FPGA實(shí)現(xiàn)PCI-Express(簡(jiǎn)稱PCIE)接口卡的方法,對(duì)LVDS信號(hào)以及PCIE接口技術(shù)進(jìn)行了充分的研究,設(shè)計(jì)未采用FPGA自帶的PCIE硬核,而是根據(jù)PCIE總線橋接芯片對(duì)接口時(shí)序直接控制,最大程度優(yōu)化接口邏輯,提高接口傳輸速率和穩(wěn)定性;試驗(yàn)中LVDS器件接收LVDS總線上大小為513(列)*512(行)*8(位)的漸變圖像,像素時(shí)鐘為15MHz,幀頻率為10幀/s,并傳輸?shù)紽PGA控制部分,F(xiàn)PGA控制部分向PCIE接口發(fā)送中斷并完成圖像數(shù)據(jù)上傳;文中詳細(xì)討論了不同模塊的實(shí)現(xiàn)原理,完成了實(shí)際測(cè)試和分析,測(cè)試結(jié)果表明該設(shè)計(jì)性能穩(wěn)定,可以實(shí)現(xiàn)PCIE接口卡高速數(shù)據(jù)通信。
隨著電子技術(shù)的飛速發(fā)展,微處理器、存儲(chǔ)器技術(shù)的不斷革新,傳統(tǒng)的并行總線PCI逐漸成為系統(tǒng)整體性能的瓶頸。新一代的PCIE總線是最新的總線接口標(biāo)準(zhǔn),它變革了PCI總線并行傳輸?shù)膫鬏斈J?,采用高速串行雙通道傳輸,克服了PCI總線傳輸速率以及傳輸帶寬的固有缺陷,從本質(zhì)上把接口的傳輸速率、穩(wěn)定性提升到了一個(gè)新的臺(tái)階。本文提出了一種基于LVDS傳輸模式的PCIE接口卡設(shè)計(jì),主控單元采用現(xiàn)場(chǎng)可編程門(mén)陣列FPGA完成,F(xiàn)PGA內(nèi)部豐富靈活的設(shè)計(jì)資源和高效快速的設(shè)計(jì)流程足以完成接口設(shè)計(jì)工作,最大程度地提升了系統(tǒng)的可靠性。
1 、LVDS傳輸和PCIE總線
LVDS傳輸是一種低壓差分的傳輸模式,是一種串行傳輸,可以點(diǎn)對(duì)點(diǎn)傳輸,也可以一點(diǎn)對(duì)多點(diǎn)傳輸,具有傳輸速率快、抗干擾能力強(qiáng)和傳輸距離遠(yuǎn)等優(yōu)點(diǎn),廣泛應(yīng)用于高速數(shù)據(jù)的長(zhǎng)距離傳輸。傳輸線多采用雙絞線,由于信號(hào)路徑的對(duì)稱性,使其對(duì)共模噪聲具有良好的抗干擾性能。
PCIE總線是取代PCI總線的新一代I/O標(biāo)準(zhǔn),無(wú)論是傳輸速率、傳輸帶寬還是穩(wěn)定性都是PCI總線無(wú)法比擬的。與PCI總線的并行傳輸模式不同,PCIE是一種基于SERDES技術(shù)的串行通信技術(shù),數(shù)據(jù)傳輸由兩對(duì)LVDS線對(duì)組成,一對(duì)負(fù)責(zé)接收,一對(duì)負(fù)責(zé)發(fā)送,采用點(diǎn)對(duì)點(diǎn)雙通道高帶寬傳輸,接口可以為每個(gè)設(shè)備分配獨(dú)享的通道資源,充分保障所有連接設(shè)備的通道帶寬,提高每個(gè)設(shè)備的通道傳輸率。最新的PCIE3.0其比特率可達(dá)8GT/s,同時(shí)包含發(fā)射器和接收器均衡、時(shí)鐘數(shù)據(jù)恢復(fù)等一系列重要的新功能,用以改善數(shù)據(jù)傳輸和數(shù)據(jù)保護(hù)性能。
2 、系統(tǒng)總體框架
構(gòu)成PCIE接口卡設(shè)計(jì)方案主要包括LVDS差分傳輸技術(shù)、FPGA硬件邏輯設(shè)計(jì)和PCIE接口技術(shù)。本設(shè)計(jì)是基于FPGA的PCIE接口卡設(shè)計(jì),系統(tǒng)結(jié)構(gòu)如圖1所示,主要包含三部分:LVDS接口部分、以FPGA為核心的邏輯設(shè)計(jì)部分和橋接器件構(gòu)成的PCIE接口控制部分。系統(tǒng)以FPGA為核心,通過(guò)LVDS接收器和發(fā)送器與LVDS總線相連,構(gòu)成一個(gè)LVDS雙向傳輸通道,同時(shí)利用PCIE橋接芯片PXE8112與PICE總線通信,實(shí)現(xiàn)LVDS總線與PCIE總線間的數(shù)據(jù)通信。本設(shè)計(jì)的主要功能是通過(guò)LVDS接收器接收LVDS總線上的圖像數(shù)據(jù),圖像數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)緩存后進(jìn)行幀編碼,然后以整幀的形式存儲(chǔ)到FPGA內(nèi)部的RAM1中,并向PCIE總線發(fā)送中斷請(qǐng)求,要求上傳數(shù)據(jù);或者根據(jù)上位機(jī)的下傳操作,F(xiàn)P-GA系統(tǒng)接收PCIE總線下傳的圖像數(shù)據(jù)或命令,進(jìn)行幀解碼后以整幀的形式存儲(chǔ)到RAM2中,再經(jīng)過(guò)數(shù)據(jù)緩存通過(guò)LVDS發(fā)送器輸出到LVDS總線,實(shí)現(xiàn)LVDS總線與PCIE總線的雙向通信。
3 、FPGA邏輯設(shè)計(jì)部分
可編程邏輯器件FPGA是一種方便快捷、高效穩(wěn)定的嵌入式系統(tǒng)解決方案,以硬件描述語(yǔ)言完成電路設(shè)計(jì),經(jīng)過(guò)簡(jiǎn)單的綜合與布局,快速燒制硬件電路,即可進(jìn)行測(cè)試或開(kāi)發(fā),是現(xiàn)行電子設(shè)計(jì)的主流技術(shù),其豐富的邏輯資源足以完成任何接口時(shí)序的邏輯控制。本設(shè)計(jì)所用的FPGA為Altera公司生產(chǎn)的Cyclone II系列的EP2C20F484I8N,采用硬件描述語(yǔ)言直接與PCIE橋接器件進(jìn)行接口設(shè)計(jì),代碼設(shè)計(jì)精簡(jiǎn),省去了不必要的中轉(zhuǎn)等待周期,最大程度優(yōu)化了接口卡的性能。FPGA邏輯設(shè)計(jì)部分包括主控單元、幀編/解碼控制器、內(nèi)部RAM和PCIE控制器。數(shù)據(jù)緩存部分用來(lái)緩存LVDS與FPGA間的數(shù)據(jù)傳輸,采用FPGA的IP核FIFO實(shí)現(xiàn),兩個(gè)內(nèi)部RAM分別用來(lái)存儲(chǔ)上傳和下傳的編/解碼后的整幀圖像,幀編碼控制器用來(lái)給每幀圖像添加特定的幀信息量,幀解碼控制器則根據(jù)幀信息量解出原始圖像,PCIE控制器用來(lái)控制PEX8112接口時(shí)序,進(jìn)行PCIE總線與LVDS總線間圖像和命令的通信。
當(dāng)LVDS總線上傳圖像時(shí),首先會(huì)向FPGA主控單元發(fā)送傳輸請(qǐng)求信號(hào),主控單元會(huì)根據(jù)FPGA運(yùn)行狀態(tài)返回一個(gè)接收或者拒絕的命令,發(fā)送接收命令后,F(xiàn)PGA開(kāi)始準(zhǔn)備接收?qǐng)D像數(shù)據(jù),直到滿一幀后進(jìn)行編幀存儲(chǔ),并向PCIE接口發(fā)送中斷信號(hào)請(qǐng)求上傳,上傳完成后結(jié)束該流程,流程圖如圖2所示。
4、 高速通信接口
LVDS差分接口采用MAX9247作為發(fā)送器,采用MAX9218作為接收器,完成圖像數(shù)據(jù)的雙向傳輸。MAX9247和MAX9218均為3.3V供電的LVDS接口芯片,芯片包含一路18位的圖像數(shù)據(jù)傳輸通道和一路9位的命令傳輸通道,通過(guò)DE_IN管腳切換,圖像通道最大轉(zhuǎn)換速率630 Mbps。PCIE接口芯片采用PLX公司生產(chǎn)的PEX8112,PEX8112是一款PCIE接口的橋接芯片,利用PEX8112可以方便的將FP-GA、DSP等邏輯電路升級(jí)為PCIE接口,簡(jiǎn)化復(fù)雜的PCIE接口設(shè)計(jì)。PEX8112內(nèi)部集成了單通道、全雙工2.5 Gbps的PCIE端口,并提供完整的本地總線到PCIE接口,包括地址轉(zhuǎn)換、包生產(chǎn)與解碼、信號(hào)中斷支持及并串轉(zhuǎn)換等。
5 橋接電路通信
PCIE橋接器件PEX8112是FPGA系統(tǒng)與PCIE接口通信的橋梁,它負(fù)責(zé)圖像數(shù)據(jù)和命令的雙向通信。為提高PCIE接口傳輸速度和穩(wěn)定性,可編程邏輯器件程序設(shè)計(jì)避免了不必要的等待周期,消除了因干擾等因素引起的接口沖突響應(yīng)。當(dāng)主設(shè)備(上位機(jī))進(jìn)行讀操作時(shí),F(xiàn)RAME#為低表示讀操作開(kāi)始進(jìn)行,同時(shí)主設(shè)備下發(fā)讀操作命令和地址,第二個(gè)周期為轉(zhuǎn)換周期,主設(shè)備將總線的控制權(quán)交給從設(shè)備(FPGA系統(tǒng)),同時(shí)IRDY#(主設(shè)備準(zhǔn)備好信號(hào))信號(hào)置為有效,從第三個(gè)周期開(kāi)始進(jìn)行數(shù)據(jù)上傳,從設(shè)備將DEVSEL#(從設(shè)備被選擇信號(hào))置為有效,每當(dāng)TRDY#(從設(shè)備準(zhǔn)備好信號(hào))和IRDY#同時(shí)有效都意味著數(shù)據(jù)總線上存在著一個(gè)有效數(shù)據(jù),TRDY#和IRDY#不同時(shí)有效視為等待周期,當(dāng)FRAME#無(wú)效表示正在傳輸最后一個(gè)有效數(shù)據(jù),讀操作接口時(shí)序示意圖如圖3所示。
在寫(xiě)操作過(guò)程中,由于主設(shè)備無(wú)需對(duì)總線控制權(quán)進(jìn)行轉(zhuǎn)讓,所以沒(méi)有轉(zhuǎn)換周期,當(dāng)FRAME#有效后數(shù)據(jù)總線傳完地址后直接傳輸有效數(shù)據(jù),IRDY#或TRDY#無(wú)效視為插入等待周期,F(xiàn)RAME#無(wú)效表示正在傳輸最后一個(gè)有效數(shù)據(jù),寫(xiě)操作接口時(shí)序示意圖如圖4所示。
6 、系統(tǒng)調(diào)試結(jié)果
圖5為在讀操作過(guò)程中SignalTapII邏輯分析儀對(duì)LVDS總線的波形采集圖,輸入圖像為513(列)*512(行)*8(位)的漸變圖像,像素時(shí)鐘為15MHz,vsyn為幀同步,高電平有效,data為8位圖像數(shù)據(jù),每?jī)蓚€(gè)像素點(diǎn)數(shù)值遞增1。圖6為上位機(jī)接收到的漸變圖像,如圖可見(jiàn),圖像大小為513(列)*512(行),每行圖像由左及右逐漸變亮(漸變圖像),與LVDS總線上的圖像數(shù)據(jù)相符。上位機(jī)共接收到24幀漸變圖像,每幀漸變圖像均無(wú)異常。
7 、結(jié)論
本文提出了一種基于FPGA可編程邏輯器件的PCIE接口卡設(shè)計(jì)方案,在圖像傳輸中采用LVDS高速差分傳輸接口作為圖像數(shù)據(jù)通道,通過(guò)PCIE橋接器件保證了圖像數(shù)據(jù)與PCIE總線的無(wú)縫傳輸,程序在設(shè)計(jì)過(guò)程中優(yōu)化了時(shí)序邏輯,刪除了不必要的等待周期,使整個(gè)系統(tǒng)的性能和穩(wěn)定性得到了最大的提升,系統(tǒng)在數(shù)據(jù)采集、圖像傳輸中有著廣泛的應(yīng)用前景。
責(zé)任編輯:gt
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603382 -
PCIe
+關(guān)注
關(guān)注
15文章
1239瀏覽量
82653 -
可編程邏輯
+關(guān)注
關(guān)注
7文章
515瀏覽量
44086
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論