1、前言
PCIE(PCI Express)采用了目前業(yè)內(nèi)流行的點對點串行連接,比起 PCI 以及更早期的計算機總線的共享并行架構,每個設備都有自己的專用連接,不需要向整個總線請求帶寬,而且可以把數(shù)據(jù)傳輸率提高到一個很高的頻率,達到 PCI 所不能提供的高帶寬,是目前各行業(yè)高速接口的優(yōu)先選擇方向,具有很高的實用價值和學習價值;
本設計使用Xilinx官方的XDMA方案搭建基于Xilinx系列FPGA的PCIE通信平臺,該方案只適用于Xilinx系列FPGA,一并提供了XDMA的安裝驅動和QT上位機源代碼,省去了使用XDMA繁瑣的驅動尋找和上位機軟件開發(fā)的不知所措,并以搭建好vivado工程,省去了不知道如何使用XDMA的尷尬,使得PCIE的使用變得簡單易上手,而不用關心其復雜的PCIE協(xié)議;由于我的開發(fā)板只支持PCIE X8,所以提供的代碼是PCIE X8架構,若需要PCIE X1、 X2、 X8、 X16、 X32的朋友,可自行修改本工程,也可關注我,我會實時發(fā)布新的工程。
本工程實現(xiàn)基礎的PCIE測速試驗上進行了修改,利用開發(fā)板自帶的HDMI輸入接口,實時采集HDMI輸入視頻,緩存DDR3后,一路經(jīng)HDMI輸出芯片輸出顯示器,另一路經(jīng)XDMA,通過PCIE發(fā)送給QT上位機顯示程序顯示;達到HDMI采集視頻環(huán)出和PCIE輸出到電腦端顯示的同步操作,屬于FPGA圖像采集領域的高端項目。。。
本文詳細描述了基于XDMA搭建PCIE的HDMI視頻采集設計方案,工程代碼可綜合編譯上板調(diào)試,可直接項目移植,適用于在校學生、研究生項目開發(fā),也適用于在職工程師做項目開發(fā),可應用于醫(yī)療、軍工等行業(yè)的高速接口和圖像傳輸領域;
提供完整的、跑通的工程源碼和技術支持;
工程源碼和技術支持的獲取方式放在了文章末尾,請耐心看到最后;
免責聲明
本工程及其源碼即有自己寫的一部分,也有網(wǎng)絡公開渠道獲取的一部分(包括CSDN、Xilinx官網(wǎng)、Altera官網(wǎng)等等),若大佬們覺得有所冒犯,請私信批評教育;基于此,本工程及其源碼僅限于讀者或粉絲個人學習和研究,禁止用于商業(yè)用途,若由于讀者或粉絲自身原因用于商業(yè)用途所導致的法律問題,與本博客及博主無關,請謹慎使用。。。
2、我已有的PCIE方案
我的主頁有PCIE通信專欄,既有基于RIFFA實現(xiàn)的PCIE方案,也有基于XDMA實現(xiàn)的PCIE方案;既有簡單的數(shù)據(jù)交互、測速,也有應用級別的圖像采集傳輸,以下是專欄地址:
點擊直接前往
3、PCIE理論
這部分可自行百度或csdn或知乎學習理論知識,其實用了XDMA,已經(jīng)不太需要直到PCIE復雜的協(xié)議和理論了。。。
4、總體設計思路和方案
總體設計思路和方案如下:
PCIe 通信例程由三部分組成:FPGA 端程序、PCIe 卡驅動、PCIe 上位機測試程序:
FPGA 端工程:負責建立與 PCIe 通信需具備的 FPGA 框架,PCIe 通信協(xié)議的構建;
PCIe 驅動:負責上位機測試程序與 PCIe 卡的數(shù)據(jù)交換;
PCIe 上位機測試程序:此處時PCIe 顯示;
視頻輸入:筆記本模擬HDMI視頻輸入源;
HDMI解碼,使用silicon9134芯片完成HDMI解碼,silicon9134需要i2c配置才能使用,關于silicon9134的i2c配置使用,請參考我之前寫的文章:點擊直接前往
圖像緩存:使用AXI4總線實現(xiàn)了圖像讀寫DDR3,此處做了3幀緩存;
輸出1:VGA時序生成HDMI視頻,使用silicon9011芯片完成HDMI編碼收輸出顯示器;
輸出2:PCIE X8;
QT測速上位機:提供源代碼和可執(zhí)行程序,發(fā)開版本為QT5.6.2;
5、vivado工程詳解
開發(fā)板FPGA型號:Xilinx–xc7k325tffg900-2;
開發(fā)環(huán)境:Vivado2019.1;
輸入:HDMI;
輸出:PCIE X8;
應用:QT上位機顯示試驗;
工程BD如下:
綜合后的工程代碼架構如下:
綜合編譯完成后的FPGA資源消耗和功耗預估如下:
6、驅動安裝
提供提供Win系統(tǒng)驅動,目錄如下:
驅動安裝參考前面的測速試驗:點擊直接前往
7、QT上位機軟件
QT顯示上位機:提供源代碼和可執(zhí)行程序,發(fā)開版本為QT5.6.2;位置如下:
8、工程移植說明
vivado版本不一致處理
1:如果你的vivado版本與本工程vivado版本一致,則直接打開工程;
2:如果你的vivado版本低于本工程vivado版本,則需要打開工程后,點擊文件–>另存為;但此方法并不保險,最保險的方法是將你的vivado版本升級到本工程vivado的版本或者更高版本;
3:如果你的vivado版本高于本工程vivado版本,解決如下:
打開工程后會發(fā)現(xiàn)IP都被鎖住了,如下:
此時需要升級IP,操作如下:
FPGA型號不一致處理
如果你的FPGA型號與我的不一致,則需要更改FPGA型號,操作如下:
更改FPGA型號后還需要升級IP,升級IP的方法前面已經(jīng)講述了;
其他注意事項
1:由于每個板子的DDR不一定完全一樣,所以MIG IP需要根據(jù)你自己的原理圖進行配置,甚至可以直接刪掉我這里原工程的MIG并重新添加IP,重新配置;
2:根據(jù)你自己的原理圖修改引腳約束,在xdc文件中修改即可;
3:純FPGA移植到Zynq需要在工程中添加zynq軟核;
9、上板調(diào)試驗證
開啟上位機測程序進行 PCIe 顯示測試,打開下圖的顯示軟件 pcie2screen,軟件在如下位置,實驗結果如下:
打開上位機以后可以看到軟件暫停播放:
點擊中間的按鈕,開始播放 HDMI 輸入視頻源的視頻:文章來源:http://www.zghlxwxcb.cn/news/detail-444636.html
10、福利:工程代碼的獲取
福利:工程代碼的獲取
代碼太大,無法郵箱發(fā)送,以某度網(wǎng)盤鏈接方式發(fā)送,
資料獲取方式:私,或者文章末尾的V名片。
網(wǎng)盤資料如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-444636.html
到了這里,關于FPGA基于XDMA實現(xiàn)PCIE X8的HDMI視頻采集 提供工程源碼和QT上位機程序和技術支持的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!