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