購物網(wǎng)站建設(shè)思維導(dǎo)圖百度app官方正式版
目錄
- 1、前言
- 2、我已有的PCIE方案
- 3、PCIE理論
- 4、總體設(shè)計(jì)思路和方案
- 5、vivado工程詳解
- 6、驅(qū)動(dòng)安裝
- 7、QT上位機(jī)軟件
- 8、上板調(diào)試驗(yàn)證
- 9、福利:工程代碼的獲取
1、前言
PCIE(PCI Express)采用了目前業(yè)內(nèi)流行的點(diǎn)對點(diǎn)串行連接,比起 PCI 以及更早期的計(jì)算機(jī)總線的共享并行架構(gòu),每個(gè)設(shè)備都有自己的專用連接,不需要向整個(gè)總線請求帶寬,而且可以把數(shù)據(jù)傳輸率提高到一個(gè)很高的頻率,達(dá)到 PCI 所不能提供的高帶寬,是目前各行業(yè)高速接口的優(yōu)先選擇方向,具有很高的實(shí)用價(jià)值和學(xué)習(xí)價(jià)值;
本設(shè)計(jì)使用Xilinx官方的XDMA方案搭建基于Xilinx系列FPGA的PCIE通信平臺(tái),該方案只適用于Xilinx系列FPGA,一并提供了XDMA的安裝驅(qū)動(dòng)和QT上位機(jī)源代碼,省去了使用XDMA繁瑣的驅(qū)動(dòng)尋找和上位機(jī)軟件開發(fā)的不知所措,并以搭建好vivado工程,省去了不知道如何使用XDMA的尷尬,使得PCIE的使用變得簡單易上手,而不用關(guān)心其復(fù)雜的PCIE協(xié)議;由于我的開發(fā)板只支持PCIE X8,所以提供的代碼是PCIE X8架構(gòu),若需要PCIE X1、 X2、 X8、 X16、 X32的朋友,可自行修改本工程,也可關(guān)注我,我會(huì)實(shí)時(shí)發(fā)布新的工程。
本工程實(shí)現(xiàn)基礎(chǔ)的PCIE的HDMI視頻采集上進(jìn)行了反向修改,利用開發(fā)板自帶的HDMI輸出接口,實(shí)時(shí)利用QT上位機(jī)抓取當(dāng)前電腦的桌面圖片,然后發(fā)送PCIE,PCIE再發(fā)送給FPGA,FPGA將收到的圖像進(jìn)行緩存,然后通過HDMI輸出視頻;
本文詳細(xì)描述了基于XDMA搭建PCIE的HDMI視頻輸出設(shè)計(jì)方案,工程代碼可綜合編譯上板調(diào)試,可直接項(xiàng)目移植,適用于在校學(xué)生、研究生項(xiàng)目開發(fā),也適用于在職工程師做項(xiàng)目開發(fā),可應(yīng)用于醫(yī)療、軍工等行業(yè)的高速接口和圖像傳輸領(lǐng)域;
提供完整的、跑通的工程源碼和技術(shù)支持;
工程源碼和技術(shù)支持的獲取方式放在了文章末尾,請耐心看到最后;
2、我已有的PCIE方案
我的主頁有PCIE通信專欄,既有基于RIFFA實(shí)現(xiàn)的PCIE方案,也有基于XDMA實(shí)現(xiàn)的PCIE方案;既有簡單的數(shù)據(jù)交互、測速,也有應(yīng)用級別的圖像采集傳輸,以下是專欄地址:
點(diǎn)擊直接前往
3、PCIE理論
這部分可自行百度或csdn或知乎學(xué)習(xí)理論知識(shí),其實(shí)用了XDMA,已經(jīng)不太需要直到PCIE復(fù)雜的協(xié)議和理論了。。。
4、總體設(shè)計(jì)思路和方案
總體設(shè)計(jì)思路和方案如下:
PCIe 通信例程由三部分組成:FPGA 端程序、PCIe 卡驅(qū)動(dòng)、PCIe 上位機(jī)測試程序:
FPGA 端工程:負(fù)責(zé)建立與 PCIe 通信需具備的 FPGA 框架,PCIe 通信協(xié)議的構(gòu)建;
PCIe 驅(qū)動(dòng):負(fù)責(zé)上位機(jī)測試程序與 PCIe 卡的數(shù)據(jù)交換;
PCIe 上位機(jī)測試程序:此處時(shí)PCIe 采集;
視頻輸入1:電腦主機(jī)模擬HDMI視頻輸入源,由QT上位機(jī)采集視頻;
HDMI輸出,使用silicon9134芯片完成HDMI編碼,silicon9011需要i2c配置才能使用,關(guān)于silicon9011的i2c配置使用,請參考我之前寫的文章:點(diǎn)擊直接前往
視頻輸入2:HDMI輸入,這里的HDMI輸入僅緩存到了DDR3,并未讀出送顯示器顯示,如果項(xiàng)目需要,可以在這里加上一個(gè)HDMI輸出顯示用以環(huán)出輸入的HDMI視頻;
圖像緩存:使用AXI4總線實(shí)現(xiàn)了圖像讀寫DDR3,此處做了3幀緩存;
輸出:HDMI;
QT測速上位機(jī):提供源代碼和可執(zhí)行程序,發(fā)開版本為QT5.6.2;
5、vivado工程詳解
開發(fā)板FPGA型號(hào):Xilinx–xc7k325tffg900-2;
開發(fā)環(huán)境:Vivado2019.1;
輸入:PCIE X8;
輸出:HDMI;
應(yīng)用:QT上位機(jī)采集試驗(yàn);
工程BD如下:
綜合后的工程代碼架構(gòu)如下:
綜合編譯完成后的FPGA資源消耗和功耗預(yù)估如下:
6、驅(qū)動(dòng)安裝
提供提供Win系統(tǒng)驅(qū)動(dòng),目錄如下:
驅(qū)動(dòng)安裝參考前面的測速試驗(yàn):點(diǎn)擊直接前往
7、QT上位機(jī)軟件
QT顯示上位機(jī):提供源代碼和可執(zhí)行程序,發(fā)開版本為QT5.6.2;位置如下:
8、上板調(diào)試驗(yàn)證
開啟上位機(jī)測程序進(jìn)行 PCIe 顯示測試,打開下圖的顯示軟件 pcie2screen,軟件在如下位置,實(shí)驗(yàn)結(jié)果如下:
打開上位機(jī)以后點(diǎn)擊開始屏幕映射,會(huì)把當(dāng)前電腦屏幕抓取,然后通過 PCIe 傳輸?shù)?DDR3 中,通過連續(xù)不斷的抓取,可以形成連續(xù)的視頻:
HDMI輸出的PCIE采集的電腦主機(jī)桌面圖像;
9、福利:工程代碼的獲取
福利:工程代碼的獲取
代碼太大,無法郵箱發(fā)送,以某度網(wǎng)盤鏈接方式發(fā)送,
資料獲取方式:私,或者文章末尾的V名片。
網(wǎng)盤資料如下: