在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用ALINX VD100開發(fā)板實現(xiàn)圖像處理

ALINX ? 來源:ALINX ? 2025-05-12 09:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本篇文章來自 FPGA 大神、Ardiuvo & Hackster.IO 知名博主 Adam Taylor。在這里感謝 Adam Taylor 對 ALINX 產(chǎn)品的關(guān)注與測試。為了讓文章更易閱讀,我們在原文的基礎(chǔ)上作了一些靈活的調(diào)整,包括對一些專業(yè)名詞進(jìn)行了補充解釋,便于初學(xué)者快速理解。原文鏈接已貼在文章底部,點擊"閱讀原文"即可跳轉(zhuǎn)。歡迎大家在評論區(qū)友好互動。

最近,我在辦公室里搞了一塊ALINX VD100

fab5d25a-24de-11f0-9310-92fbcf53809c.png

這是一塊基于AMD Versal Edge AI平臺的開發(fā)板,功能特別強大,可以用來做圖像處理、人工智能等各種高階應(yīng)用。

為了方便隨時開發(fā),我把它連到了公司局域網(wǎng),遠(yuǎn)程就能連接,由此開始了我的折騰之旅。

這次,我最想探索的是:怎么在這塊板子上跑圖像處理的應(yīng)用。

VD100不僅帶了兩個 MIPI 攝像頭接口,還能直接連上LCD屏幕,基本滿足了圖像應(yīng)用開發(fā)的需求。

第一步:讓屏幕先亮起來!

搞攝像頭太復(fù)雜,我決定先從屏幕入手——先通過測試圖案生成器(Test Pattern Generator)驗證 LCD 屏幕圖像顯示鏈路的有效性。

ALINX VD100開發(fā)板支持的 LCD 屏幕,分辨率是1280×720(WXGA 標(biāo)準(zhǔn))


數(shù)據(jù)傳輸采用的是VESA 標(biāo)準(zhǔn)的 LVDS 接口。

這里稍微解釋一下:

LVDS(低壓差分信號)是一種高速又抗干擾的數(shù)據(jù)傳輸方式,特別適合屏幕傳輸高速畫面。

VESA 和 JEIDA 是常見的兩種 LVDS 傳輸標(biāo)準(zhǔn),咱們用的是 VESA。VESA 更國際通用,JEIDA 常見于日本廠商。

在 VESA 標(biāo)準(zhǔn)下使用 RG888 格式時,屏幕的每一幀圖像數(shù)據(jù)和控制信號(如同步信號 hsync、vsync)會被打包進(jìn) 4 條數(shù)據(jù)通道里,同時還有第 5 條通道專門傳時鐘(Clock),方便接收端正確還原數(shù)據(jù)。

faef468e-24de-11f0-9310-92fbcf53809c.png

每次時鐘跳動時,每條數(shù)據(jù)通道都會同步傳7 位數(shù)據(jù)。

聽起來有點復(fù)雜?簡單說就是:用 4+1 條小路,高速搬運屏幕畫面。

開發(fā)流程:搭建系統(tǒng)設(shè)計

為了讓板子順利傳屏幕數(shù)據(jù),我們需要在 Vivado(AMD/Xilinx 的開發(fā)工具)里做一套設(shè)計,包括:

CIPS
→ 配置 VD100 平臺上的 V100 SoM。

NOC
→ 配置 DDRMC,并開兩條 MAXI 輸出,提供數(shù)據(jù)存取支持。

視頻測試圖生成器 (Video Test Pattern Generator, TPG)
→ 通過 AXI Lite 總線連接到 NOC,生成標(biāo)準(zhǔn)圖像(比如彩條、棋盤格)。

視頻時序生成器 (Video Timing Controller, VTC)
→ 通過 AXI Lite 總線連接到 NOC,生成 LCD 顯示需要的同步信號(如 hsync、vsync)。

AXI4-Stream to Video Out
→ 與上述兩個生成器相連,把測試圖和時序信息組織成并行視頻流(RGB888格式)。

LCD_LVDS IP核
→ 把并行視頻信號轉(zhuǎn)成符合 LVDS 規(guī)范的數(shù)據(jù)流。

Advanced IO Wizard
→ 負(fù)責(zé)真正的串行化操作,把數(shù)據(jù)以 LVDS 標(biāo)準(zhǔn)發(fā)出去(包括 4 路數(shù)據(jù)+ 1 路時鐘)。

最終 LCD 屏幕接收到 LVDS 信號并顯示圖像。

這套設(shè)計(可以在我的 GitHub 上找到)如下所示:

fb0de472-24de-11f0-9310-92fbcf53809c.png

通過這個系統(tǒng),我們可以使用 CIPS 內(nèi)置的處理器來控制測試圖案,從而驗證各顏色通道是否正常。

設(shè)置和驅(qū)動 LCD 顯示器的 CIPS 端代碼也非常簡單,如下所示:

#include
#include"platform.h"
#include"xil_printf.h"
#include"xvtc.h"
#include"xparameters.h"
#include"xv_tpg.h"
#include"xvidc.h"
#include"vga.h"


XV_tpg   tpg;
XVtc   VtcInst;
VideoMode  video;
XVtc_Config *vtc_config ;


intmain()
{
  XVtc_SourceSelect SourceSelect;
  XVtc_Timing vtcTiming;
  u32 height,width,status;
 init_platform();


 print("Setting up Timing

");
  vtc_config =XVtc_LookupConfig(XPAR_XVTC_0_BASEADDR);    
 XVtc_CfgInitialize(&VtcInst,vtc_config ,XPAR_XVTC_0_BASEADDR);


 print("Setting up Video

");
  video = VMODE_1280x720 ;
 vtcTiming.HActiveVideo = video.width; 
 vtcTiming.HFrontPorch = video.hps - video.width; 
 vtcTiming.HSyncWidth = video.hpe - video.hps;  
 vtcTiming.HBackPorch = video.hmax - video.hpe +1; 
 vtcTiming.HSyncPolarity = video.hpol; 
 vtcTiming.VActiveVideo = video.height; 
 vtcTiming.V0FrontPorch = video.vps - video.height; 
 vtcTiming.V0SyncWidth = video.vpe - video.vps; 
 vtcTiming.V0BackPorch = video.vmax - video.vpe +1;; 
 vtcTiming.V1FrontPorch = video.vps - video.height; 
 vtcTiming.V1SyncWidth = video.vpe - video.vps; 
 vtcTiming.V1BackPorch = video.vmax - video.vpe +1;
 vtcTiming.VSyncPolarity = video.vpol; 
 vtcTiming.Interlaced =0;


 print("Setting up TPG

");


  XV_tpg_Initialize(&tpg,XPAR_XV_TPG_0_BASEADDR );
   status =XV_tpg_IsIdle(&tpg);
  XV_tpg_Set_height(&tpg, (u32) video.height);
XV_tpg_Set_width(&tpg, (u32) video.width);
 height =XV_tpg_Get_height(&tpg);
 width =XV_tpg_Get_width(&tpg);
XV_tpg_Set_colorFormat(&tpg,XVIDC_CSF_RGB);
  XV_tpg_Set_bckgndId(&tpg,XTPG_BKGND_TARTAN_COLOR_BARS);
XV_tpg_Set_maskId(&tpg,0x0);
XV_tpg_Set_motionSpeed(&tpg,0x4);
  XV_tpg_EnableAutoRestart(&tpg);
XV_tpg_Start(&tpg);


 print("Setting up Source

");


memset((void*)&SourceSelect,0,sizeof(XVtc_SourceSelect));
 SourceSelect.VBlankPolSrc =1;
 SourceSelect.VSyncPolSrc =1;
 SourceSelect.HBlankPolSrc =1;
 SourceSelect.HSyncPolSrc =1;
 SourceSelect.ActiveVideoPolSrc =1;
 SourceSelect.ActiveChromaPolSrc=1;
 SourceSelect.VChromaSrc =1;
 SourceSelect.VActiveSrc =1;
 SourceSelect.VBackPorchSrc =1;
 SourceSelect.VSyncSrc =1;
 SourceSelect.VFrontPorchSrc =1;
 SourceSelect.VTotalSrc =1;
 SourceSelect.HActiveSrc =1;
 SourceSelect.HBackPorchSrc =1;
 SourceSelect.HSyncSrc =1;
 SourceSelect.HFrontPorchSrc =1;
 SourceSelect.HTotalSrc =1;


 print("Run Timing Gen

");  


XVtc_SetGeneratorTiming(&VtcInst, &vtcTiming);
XVtc_SetSource(&VtcInst, &SourceSelect);
XVtc_EnableGenerator(&VtcInst);
 XVtc_RegUpdateEnable(&VtcInst);
XVtc_Enable(&VtcInst);


while(1){


  };


 cleanup_platform();
return0;
}

LCD_LVDS 這個模塊,我是直接從 ALINX 的 GitHub 倉庫上下載的。

下載好后,把它加到 Vivado 里面,就能像拼積木一樣拖進(jìn)設(shè)計里。

LCD_LVDS 下載鏈接:https://github.com/alinxalinx/VD100_2023.2/tree/master/Demo/course_s1

寫好所有程序后,我們讓開發(fā)板運行,屏幕上果然顯示出了測試圖案,色彩鮮明,說明各個顏色通道都正常了。開發(fā)板和屏幕之間的溝通,算是正式打通了!

fb3178ba-24de-11f0-9310-92fbcf53809c.png

fb6b2da8-24de-11f0-9310-92fbcf53809c.png

不過,這里面有個很有意思的事情。

Advanced IO Wizard 這個模塊,默認(rèn)是按 8 位一組來打包數(shù)據(jù)發(fā)出去的。

而我們的 VESA LVDS 傳輸,要求 7 位一組。這咋辦?

我用到了一個叫做 Gearbox 的小模塊,把 7 位數(shù)據(jù)轉(zhuǎn)換成 4 位數(shù)據(jù)輸出。

然后,用 Advanced IO Wizard 把 4 位數(shù)據(jù)高速串行發(fā)出去。

這樣就實現(xiàn)了 7 位序列化,雖然中間多了一步變換,但整體還是很高效的。

不過,其實只要手動配置一下,Advanced IO Wizard 也是可以支持直接 7 位打包發(fā)送的,只是這次參考了 AMD 的官方應(yīng)用筆記(參考代碼叫 tx_piso_7to1),所以先用了 Gearbox 的方式。

未來有機會的話,我想試著優(yōu)化一下,直接用 7 位串行模式,把系統(tǒng)做得更簡潔高效!

接下來要做的

現(xiàn)在圖像輸出環(huán)節(jié)已經(jīng)搞定了,接下來就是更刺激的前端部分:

通過 MIPI 接口接入攝像頭,把真實拍到的圖像,實時顯示到屏幕上。

真正的圖像處理任務(wù),馬上就要開始啦!

(未完待續(xù))

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22012

    瀏覽量

    616661
  • amd
    amd
    +關(guān)注

    關(guān)注

    25

    文章

    5577

    瀏覽量

    136153
  • 圖像處理
    +關(guān)注

    關(guān)注

    27

    文章

    1326

    瀏覽量

    57886
  • lvds
    +關(guān)注

    關(guān)注

    2

    文章

    1122

    瀏覽量

    67305
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5624

    瀏覽量

    103647

原文標(biāo)題:【實戰(zhàn)筆記】FPGA 大神 Adam Taylor 使用 ALINX VD100(AMD Versal系列)開發(fā)平臺實現(xiàn)圖像處理

文章出處:【微信號:ALINX,微信公眾號:ALINX】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    FPGA 大神 Adam Taylor 使用 ALINX VD100(AMD Versal系列)開發(fā)平臺實現(xiàn)圖像處理

    本篇文章來自 FPGA 大神、Ardiuvo XVtc VtcInst;VideoMode video;XVtc_Config *vtc_config ;int main(){ XVtc_SourceSelect SourceSelect; XVtc_Timing vtcTiming; u32 height,width,status; init_platform(); print("Setting up Timingnr"); vtc_config = XVtc_LookupConfig(XPAR_XVTC_0_BASEADDR); XVtc_CfgInitialize( print("Setting up Videonr"); video = VMODE_1280x720 ;vtcTiming.HActiveVideo = video.width;vtcTiming.HFrontPorch = video.hps - video.width;vtcTiming.HSyncWidth = video.hpe - video.hps;vtcTiming.HBackPorch = video.hmax - video.hpe + 1;vtcTiming.HSyncPolarity = video.hpol;vtcTiming.VActiveVideo
    的頭像 發(fā)表于 05-16 09:46 ?1868次閱讀
    FPGA 大神 Adam Taylor 使用 <b class='flag-5'>ALINX</b> <b class='flag-5'>VD100</b>(AMD Versal系列)<b class='flag-5'>開發(fā)</b>平臺<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b>

    如何用51開發(fā)板實現(xiàn)藍(lán)牙小車的設(shè)計

    如何用51開發(fā)板實現(xiàn)藍(lán)牙小車的設(shè)計
    發(fā)表于 01-18 06:58

    51開發(fā)板實現(xiàn)計算器

    51開發(fā)板實現(xiàn)計算器,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-23 16:06 ?13次下載

    DSP開發(fā)板實驗程序

    DSP開發(fā)板實驗程序
    發(fā)表于 02-08 02:27 ?5次下載

    STM32F103ZET6開發(fā)板實現(xiàn)俄羅斯方塊小游戲

    使用STM32F103ZET6開發(fā)板實現(xiàn)俄羅斯方塊小游戲。
    發(fā)表于 12-19 15:27 ?40次下載

    使用51單片機開發(fā)板實現(xiàn)LED點陣顯示數(shù)字0的程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機開發(fā)板實現(xiàn)LED點陣顯示數(shù)字0的程序免費下載。
    發(fā)表于 10-31 08:00 ?2次下載
    使用51單片機<b class='flag-5'>開發(fā)板實現(xiàn)</b>LED點陣顯示數(shù)字0的程序免費下載

    使用STM32開發(fā)板實現(xiàn)俄羅斯方塊游戲的工程文件和源代碼免費下載

    本文檔的主要主要內(nèi)容詳細(xì)介紹的是使用STM32單片機開發(fā)板實現(xiàn)俄羅斯方塊游戲的工程文件和源代碼免費下載
    發(fā)表于 12-02 08:00 ?21次下載
    使用STM32<b class='flag-5'>開發(fā)板實現(xiàn)</b>俄羅斯方塊游戲的工程文件和源代碼免費下載

    使用單片機開發(fā)板實現(xiàn)LED流水和定時器的程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機開發(fā)板實現(xiàn)LED流水和定時器的程序免費下載。
    發(fā)表于 06-10 17:15 ?2次下載
    使用單片機<b class='flag-5'>開發(fā)板實現(xiàn)</b>LED流水和定時器的程序免費下載

    ALINX紫光同創(chuàng)國產(chǎn)FPGA開發(fā)板PGL22G發(fā)布

    ALINX聯(lián)合紫光同創(chuàng)共同推出的logos系列PGL22G開發(fā)板正式發(fā)布了,這款板卡是利用核心板+擴(kuò)展板的方式設(shè)計,充分利用了芯片有效資源幫助工程師進(jìn)行前期的芯片功能驗證,芯片支持DDR3,有用
    的頭像 發(fā)表于 04-08 10:53 ?1.5w次閱讀
    <b class='flag-5'>ALINX</b>紫光同創(chuàng)國產(chǎn)FPGA<b class='flag-5'>開發(fā)板</b>PGL22G發(fā)布

    STM32實例——基于STM32開發(fā)板實現(xiàn)傳感數(shù)據(jù)采集-DHT11溫濕度采集

    STM32實例——基于STM32開發(fā)板實現(xiàn)傳感數(shù)據(jù)采集-DHT11溫濕度采集
    發(fā)表于 12-05 20:06 ?93次下載
    STM32實例——基于STM32<b class='flag-5'>開發(fā)板實現(xiàn)</b>傳感數(shù)據(jù)采集-DHT11溫濕度采集

    迅為RK3568開發(fā)板實現(xiàn)的NVR/XVR方案

    迅為RK3568開發(fā)板實現(xiàn)的NVR/XVR方案
    的頭像 發(fā)表于 06-14 18:00 ?1896次閱讀
    迅為RK3568<b class='flag-5'>開發(fā)板實現(xiàn)</b>的NVR/XVR方案

    ALINX FPGA+GPU異架構(gòu)視頻圖像處理開發(fā)平臺介紹

    Alinx 最新發(fā)布的新品 Z19-M 是一款創(chuàng)新的 FPGA+GPU 異構(gòu)架構(gòu)視頻圖像處理開發(fā)平臺,它結(jié)合了 AMD Zynq UltraScale+ MPSoC(FPGA)與 NV
    的頭像 發(fā)表于 08-29 14:43 ?2046次閱讀

    基于ALINX開發(fā)板Z19-P實現(xiàn)WIFI無線通信功能

    本教程基于 ALINX 開發(fā)板 Z19-P , 實現(xiàn) WIFI 無線通信的功能,WIFI 模塊使用 USB WIFIrtl8188cu。
    的頭像 發(fā)表于 11-11 10:44 ?756次閱讀
    基于<b class='flag-5'>ALINX</b><b class='flag-5'>開發(fā)板</b>Z19-P<b class='flag-5'>實現(xiàn)</b>WIFI無線通信功能

    基于RV1126開發(fā)板實現(xiàn)人員檢測方案

    在RV1126開發(fā)板實現(xiàn)人員檢測:在圖像中找出人。 方案設(shè)計邏輯流程圖,方案代碼分為分為兩個業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,算法代碼負(fù)責(zé)人員檢測功能。
    的頭像 發(fā)表于 04-18 17:14 ?220次閱讀
    基于RV1126<b class='flag-5'>開發(fā)板實現(xiàn)</b>人員檢測方案

    基于RV1126開發(fā)板實現(xiàn)人臉識別方案

    在RV1126開發(fā)板實現(xiàn)人臉識別:在圖像中找出人臉,并與數(shù)據(jù)庫進(jìn)行比對,得出該人臉對應(yīng)的身份信息。 方案設(shè)計邏輯流程圖,方案代碼分為分為三個業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,算法代碼負(fù)責(zé)人臉識別功能,按鍵監(jiān)聽負(fù)
    的頭像 發(fā)表于 04-18 16:55 ?83次閱讀
    基于RV1126<b class='flag-5'>開發(fā)板實現(xiàn)</b>人臉識別方案
    主站蜘蛛池模板: www三级| 国产午夜精品一区二区 | 真实的国产乱xxxx在线 | 美女国产在线观看免费观看 | 黄视频国产 | 69日本xxxxhd | 国产综合第一页在线视频 | 视频在线一区 | 久久98精品久久久久久婷婷 | 天天搞天天搞 | 国产午夜视频在永久在线观看 | 天堂网2018 | 黄色片网站大全 | 欧美成人福利 | 天天做天天爱天天爽 | 日本高清视频色www在线观看 | 在线视频一区二区三区 | 女人张开腿双腿让男人桶 | 狠狠色噜噜狠狠狠狠888奇米 | 日日干天天干 | 小雪被撑暴黑人黑人与亚洲女人 | 色多多www| 午夜在线观看视频 | 免费任我爽橹视频在线观看 | 九九热精品在线 | 欧美三页| 男女性高爱潮免费的国产 | 91啦中文在线观看 | www四虎 | 直接观看黄网站免费视频 | 国产久视频 | 日韩美女三级 | 123456成年免费视频 | 国产叼嘿视频网站在线观看 | 久久精品久 | 色婷婷六月| 天天做天天爱天天影视综合 | 天天干天天色天天干 | 伊人久久成人爱综合网 | xxxx性欧美极品另类 | 美女被免网站在线视频 |