版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
使用PCAM和DisplayPort添加IP內(nèi)核展示FPGA處理圖像的能力
使用UltrascaR高效實現(xiàn)具有圖像處理1P核的圖像處理流水線系統(tǒng)。
本項目用到的品臺
硬件組件
DigilentGenesysZUXI(FPGA平臺)DigilentPCAM5XI(MI型攝像
頭)
軟件組件
AMD-XilinxVivado設(shè)計套件
介紹
從簡單的嵌入式視覺到自動駕駛汽車和無人機,圖像處理是許多應(yīng)用的核心。
XilinxMPSoC具有內(nèi)置的DisplayPort(DP)功能,并在可緬卷邏輯10中
支持M1P1DPhy,從這兩方面看,這是一個出色的嵌入式視覺平臺。
同時使用人工智能和機器學(xué)習功能使我們能夠創(chuàng)建一個復(fù)雜的嵌入式視覺處理
系統(tǒng)。
在這個項目中,我們將探索使用PCAM(FMC擴展板)和DisplayPort建立
和運行圖像處理。然后,我們可以添加圖像處理IP內(nèi)核以進一步展示FPGA的
處理圖像的能力。
可編程邏輯設(shè)計(PL端設(shè)計)
在我們的設(shè)計中,我們將包括以下IP
ZynqMPSoCProcessingSystem-啟用DisplayPort、12c和GPIOEMIO
MIPICSI2RXSubSystem-從PCAM接收MTP:CSI2流。
SensorDemosaic-將RAW像素格式轉(zhuǎn)換為RGB像素格式。
GammaLUT-gamma圖像校正
VDMA-將映像寫入PS中的DDR內(nèi)存
VideoTimingGenerator-生成輸出視頻時序
AXIStoVideoOut-從AXT流轉(zhuǎn)換為視頻流
ClockWizards-用于生成視頻像素時鐘和MIP:CSI2參考時鐘
除了IP,我們還需要考慮時鐘架構(gòu),對于這個解決方案,我們設(shè)計了以下時鐘
樹:
AXI時鐘-150MHz-這為AXIStream和AX:lite接口提供時鐘
DPHY參考時鐘-200MHz-由ClockWizards生成
PixelClock-74.25Mhz-用于1280x72060FPS-由ClockWizards生
成
完成的框圖應(yīng)如下所示,內(nèi)核配置如下所示。
則
Mi
為了控制和配置PCAM5(FMC-MIPI擴展板),我們使用I2C和GPIO,GPIO
信號用于啟用PCAM5并為其供電。而I2C用于配置PCAM5本身。
我們可以使用EMTOGPTO將處理器GPTO擴展到可編程邏輯。雖然T2C由PS
IICO提供,但是我們需要在應(yīng)用程序軟件中配置器啟用。
ZynqAux33V)33V
URraScale*dedicatedpowerPMUpowecrails
PL
(PCMaster)
Zynq------------------SODIMM
URraScale*
PS
(RCMaster)----------------12cButVef
PlatformMCU
(PCMaster)
J36PC
header
要啟用MPSoC中的顯示端口,我們需要在1/0配置頁面下配置DisplayPort
外設(shè)。硬件上使用了Bank505的MGT。
VCC0V85PSMGTRAVCC
BankS05
[電?PC吆U5B3O_CIK_JP
P$_MGTREFCIKOP_5OS
dPGEUSB301ClEcM
PS_MGTREFCLK0N_5O5「
SAT/CCIK_CIP~
PSMGTREFCIK1P505TP85SATA-CIK-C-N
PS_M6TREFCIIUN_5O5
86DI$PUWqK_JP
F>$_MGTReKL?P_S05
PS_MGTREFCIK2N25O5TP?7DISPLAY二CIK:C:N
USB30_tlKES
PS.MGTREFCIK3P_5OSUSB30_CLK-C-N
PSMGTREFCLK3N505
25PCI6PETSATAOAP
PS_MGTRTXPO_5O5
PSJMGTRTXNOZSOSE26PCIEPETSATAOAN
立3USB30TXP1DIFF90
PS_MGTRTXP1505
)24USB30TXN1DIFF90
P$_MGTRTXN1_5O5
;25DPTXLANE1P
PS_MGTRTXP2_50S
:26DPTXLANE1N
P$[MGTRTXN21505
“3OPTXLANEOP
PS_MGTRTXP3_505
DPTXLANEON
PS~MGTRTXN3_5O5
PCI£_PER_SATAO_B_P
PS_MGTRRXPO_5O5PCEPER[SATAO1B[N
PS_MGTRRXN0_S05
USB30_RX_P
PS_MGTRRXP1_5O5USB30-RX-N
PS_MGTRRXN1_5OS
PS_MGTRRXP2_505
PS_MGTRRXN2_5O5
PS_MGTRRXP3_5OS
PS_MGTRRXN3_505
IC59OGND
我們還需要配置通過EMIO連接到PL的輔助引腳。這意味著我們需要以不同
于PS中的MTO的方式處理它們,輔助輸出使能引腳低電平有效,因此我們需
要在使用EMIO時對信號使用反相器。
?Re-custom?z?IP
ZynqUltraScale*MPSoC(3.3)
ODocutnenution0PresetsIPLocation
P?9?NavigatorI/OConfiguration
(SwitchToAdvancedMedeMIOVolt>9eSUndard
BdnkO|MQ025]G4nld|MIO2651)Bank2(MIO5277|Bank3(OedKated)
PSUlgScKBlockDesign
LVCMOSnVIVCMOS187LVCMOS18▼LVCMO$?v
I/OConfigurabon
ClockConfiguration
DORConfiguration
PS-PtCofWigutationPenpheralSignalI/OTypeD
G£M
bPCIe
JO$phyPod
DPAUXEMIOv
>laneSelectionDualHigherv
「SATA
RHefenceClocks
配置好DisplayPort后,我們就可以啟用PL的實時視頻輸入。這在PS-PL
配置下可用。
?Re-customizeIP
ZynqUltraScale*MPSoC(3.3)
ODocumenubon0PrceUIPlocation
P*g?NavigatorPS-PlConfiguration
*Q5e
SwKchToAdvancedMode
SeatchQ-________________________________I
PSBlockDeugn
NameSelect
I/OConfigufition
**General
dockConligufMion>Interruplt
>FabncResetEnable0
DDAConfi9Ufat>on
>AddreuFr*gm<ntMion
PS-PLConftguratJon
?Others
UseLPO.DMA0v
UseFPO.DMA0v
UseRTC0v
UwEventRRJ0v
UwProcEventBut0v
LiveAudio0v
liveVideo1p
EnableDORRefresh
>G(MO
I
最后配置是設(shè)置GPIO以提供一個1位的EMIO,這樣我們就可以打開和關(guān)閉
PCAM5o
?Re-customizeIP
ZynqUltraScale*MPSoC(3.3)
ODocumentation0PresetsIPLocation
P,g*NavigatorI/OConfiguration
FlSwitchToAdvanMIOVoltageStandard
BankO|MIO0:25]Bankl[MIO26:51]Bank?(MIO5277]Bank3(Dedkated)
PSUltraScale*Block
LVCMOS33vLVCMOS18、LVCMOS187LVCMOS33v
I/OConfiguration
ClockConfiguration?Q子等
DDRConfigurationSearchQ-
PS-PLConfigurationPeripheralI/OSignalI/OTypeDrrveStrengthfrr
>UART
,GPIO
JGPIOEMIO1V
>'GPIOOMIOMIO?V
>VGPIO1MIOMIO.V
□GPIO2MIO
>ProcessingUnit
HighSpeed
Sensor將通過12c進行配置,最后通過兩個MIPI通道以280Mbps的數(shù)據(jù)
速率輸出10位RAW視頻。
因此,我們需要配置MIPICSI-2RX子系統(tǒng)
.IP
MIPICSI-2RxSubsystem(4.0)
ODocum?nUtNXt用loubon
CompocwntN?nwRMpi.cW.n.subfytt.O
ShafWlB9icIHaAnifniMnl|A(^lkattontxampliOMffn
Sv^tyvtvmOption*
^■dFofnvMSAW10vStvMiD^teUrm2
[bubleAXIIK(CCD
Sindud*VideoFormx也如(VFBj
9SupportCSISpecV2.0
[SupportVCXFMtur*
OPHVOpt>om
l?wRjte乎(1012601
D-PMYReqnterintedacc
CSI2Opttom
Imbeddvdnonunag9mu*<M?
。Uw*Denned&Styp*1
Un?BuffefDepth2048v
TDATAWidth32
TDESTWdth4
TUSfRWrtkhM
VFBOption(
MowedVCAlvPn?hR?fClock1v
BoughtPbcem*wUbleBK*ground36runningonthedm9nC*KUC2*6Change>enot?Mow?d
由于我們只有一個MIPI接口,我們將配置M1P:內(nèi)核以包含所有共享邏輯。
如果我們在同一個bank上有多個MIPI接口,則下一個MIPI接口將被配置
為使用示例設(shè)計中的共享邏輯。
?MeflonwtIP
MIPICSI-2RxSubsystem(4.0)
OOocumtnuuonIPloc^bon
Show<M>MpomComponentHamvnwpt.cW/x.tubfyst.O
ShM?d109kc
ShMMlLAflC
Meet*4w<ht<tWMMCM?ndPU”■included
mthecor*"telfortnth*?wnptedetiQe
?Includ*SKwvdlog*tncorv
inckidtL09Ktndtugn
Sh?r?dLogicOv??vww
Include$h*?d109cm<or?
?forUMHwhow?MacompM*ungtosciutoon
-ForUM?SwhoWMHoneco??withSMredLo9xtodmremulbplecof?ivMhoutSharedLog?
BackgroundU?krunningonthed*wgnCustorwutMX)ch??9*1Knot?llow?d
MIPI接口的最終設(shè)置是為MIPI通道和時鐘選擇10bank和引腳分配。正如
我們在這里定義的那樣,我們不需要將它們添加到定義引腳位置的XDC文件
中。
.R?-cuswm*zeIP
MIPICSI2RxSubsystem(4.0)
ODocum?<nM?on*LouMn
ShowdMbkdpomComponentM*?nem?M,cfi2.ni.wbsys<.0
Locf.IUUIUORUxpHnAtugnmenttton?-MY0G??」
HP10&N*1"~]
NANWMn10cKnN?m?
ClwhLMWClIO.L1F.T0l.N0.DeC.M
UMOfl?_12P_TOI_N2.W
0?UF2K).l此T0LJM/D15P.H
Non*None
D?UUMINon*None
Mi9t)r?(onwnendHtoMQueneaIOmowd?<MH??*C*MIPIDFHYPG2O2
Boughi(PbcemewatUbtetKitgroundCMMrunning8ZdestQnCuuomaxion<h<?9e$Menotflowed
創(chuàng)建可用圖像的下一步是轉(zhuǎn)換原始圖像,其中包含有關(guān)每個像素一個顏色通道
的信息。
在包含紅色、綠色和藍色元素的圖像中,這稱為去拜耳化,由Sensor
DemosaicIP塊實現(xiàn)。
對于我們的應(yīng)用程序,PCAM5將以以下格式輸出像素BGBG/GRGR
綠色是紅色和藍色的兩倍,因為我們的眼睛對綠色更敏感,如果可見光譜位于
中間,則綠色比位于兩端的紅色和藍色更敏感。
.RecustomizeIP
SensorDemosaic(1.0)
ODocumentationIPlocation
CShowdisabledportsComponentNamev_demowk_0
SamplesperClock1
MaximumDataWidth10
MaximumNumberofColumns2048
MaximumNumberofRows1024
InterpohtionMethodFringeTolerantlnterpolat?on
vHorizontalZipperArtifactRemoval
Backgroundtaskrunningonthedesign.Customizationchangesarenotallowed
處理的下一步是實現(xiàn)Gamma校正IP內(nèi)核
.Re-customizeIP
GammaLUT(1.0)
ODocumentationIPLocation
OShowdisabledportsComponentNamev_gamma」ut_O
SamplesperClock1
MaximumDataWidth10
MaximumNumberofColumns204fi)
MaximumNumberofRows1024
?BE
—"d一
9Apnt.n
OK
最后一個階段是插入一個VDMA,這將使視頻數(shù)據(jù)能夠從PSDDR寫入到內(nèi)存
中。
,RecmtomaeIP
AXIVideoDirectMemoryAccess(6.3)
ODocumenUbonIPUxMion
CShowdt$abledpomComponentN*neaw.vdma.O
BMKAdv,n<r<*
AddretiWidth(3264)31Gbrts
Fr?meBuffets1v
ErubteWriteChannel,<?(rubleReadCtunnd
|***°]MemoryMapDataWidth64vMemoryM4P0?3M
WriteBuntStf*64vReadBuntS?e
SlreamDauWidth(Auto)22YStfe?nDouWidth
LMWBufferDepth204svUneBuHefDepth
Configuringth*IPwithMe-mingwidthwhichhnotapow?rof2
rewlHinngnificAntincr??s?inretourcM
Backgroundta$krunrungonthedesignCustomizationchangesar*notaHowed
為了向顯示端口提供輸出視頻的時序,我們在發(fā)生器模式下使用VTCo
?Rt-cuftonwztIP
VideoTimingController(6.1)
Compon?n<Namev.tc.0
O*U<t匕UwrMionD-iuJt.v,,--,■.t.:■.iyn>>■?
-mcludeAXMUH
Cloclud*INTCIHU*1M?
[Ms心“Vbd?oSupport
CSynchionueG??W*MFXIOCM?<UM<MIO
M*KCtocksUne40%*Ma>Une$Pe?Frame096
Ff*nwSyncs1▼
.(rubtoGenerMionfrubleDrt?cl(on
<?*??**ationOption*(>????.tivn
JVe?tK4lBlankGe?v*f4t>on
JHottxonuiBUnkGene?4tion
,VtftiulSyncGeneration
J'HonJE.SyncJwrgon
.Actr?*?VideoGenerMion
ActiwChfomaGcnerMion
BKfcgroundta$krunningonZdesignCuitonuxonch4n9einot'Bowed
最后階段是AXIS到視頻輸出IP,這將采用視頻時序控制器、時序信號和AXI
視頻流來創(chuàng)建具有正確時序的輸出視頻。
?Re*cus!omizeIP
AXI4-StreamtoVideoOut(4.0)
ODocumentationIPLocation
ShowdisabledportsComponentNamev_ax?4s_v?d_out_0
PixelsPecClock1
[s]VideoFormatRGB
AXI4SVideoInputComponentWidth10
NativeVideoOutputComponentWidth12
FIFODepth4096
ClockMode
Common?)Independent
TimingMode
?)Slave()Master
HysteresisLevel12
Backgroundtaskrunningonthedesign.Customizationchangesaterotallowed
其輸出將連接到顯示端口視頻實時輸入。
這需要一點思考,實時視頻輸入具有36位視頻輸入,像素的每個元素為12
位。我們正在使用每個元素10位,這使其整體為30位。
通過填充LSB,到視頻輸出的AXIS流將按比例放大輸出塊,從每像素30位
到每像素36位。
確保AXIS到VideoOutTP內(nèi)核輸出的顏色通道與DisplayPort實時視頻輸
入正確對齊。最簡單的方法是在AXIStream中使用AXIS子集轉(zhuǎn)換28根據(jù)需
要切換顏色通道C
為了幫助調(diào)試和理解設(shè)計,我還在設(shè)計中包含了幾個集成邏輯分析儀。
隨著設(shè)計的完成,我們現(xiàn)在可以構(gòu)建硬件設(shè)計并使用SDK實現(xiàn)軟件應(yīng)用程序。
軟件開發(fā)
完成硬件設(shè)計后,下一步是編寫將在可編程邏輯中配置TP的軟件。此配置將
允許他們通過視頻,可以顯示在DisplayPort監(jiān)視器上。
因此,我們的應(yīng)用軟件將執(zhí)行以下步驟
配置GPI0并啟用PCAM5電遮
將VideoMode1280x720設(shè)置為60FPS并配置VTC
3)配置VDMA幀大小和內(nèi)存存儲
自已置ScnsoDcmosaic
配置伽瑪校正
使用12c鏈路配置PCAM5
啟用從VDMA讀取和寫入幀緩沖區(qū)
設(shè)置顯示端口
就像我們處理其他項目一樣,我們需要導(dǎo)入硬件規(guī)范、創(chuàng)建應(yīng)用程序和BSP.
為了能夠在顯示端口上使用實時視頻源,我們需要首先更新BSP設(shè)置并重新生
成它。
在BSP設(shè)置中將avbuf更改為dppsu并等待BSP重新生成。
BoardSupportPackageSettings
ControlvarkxissettingsofyourBoardSupponPackage
*Overview
standaloneDrivers
ydrivers
Thetablebelowlistsallthecomponentsfoundinyourhardwaresystem.Youcanmodit
p$u.cortexa53,0
assignedforeachcomponentIfyoudonotwanttoassignadrivertoacomponentofj
none'.
ComponentComponentTypeDriverDr-
psu.ddrjctnpul.dgpsu.<Mrjtmpu1.cfggenenc2.0
pw.ddr_xmpui.cfgp$u.ddrj(mpu2.cFggeneric2.0
p$u_ddrjEpu3_dgp肛ddrjmpu3.dggeneric2.0
psu.ddrjcmpu4.cfg?."idrjcfnpu4.ctggenetic2.0
p$u.ddrjcmpu5.cf0pM.ddrjanpu5.dggeneric2.0
psu.ddrjDpju.ddrcddrcpsu1.1
avbufv22
psu.dpdmapsu.dpdmanone1.1
avbuf2.0
dpp$u
pw.fpdopvpsu.fpd.opv2.0
generic
2.0
generic2.0
generic2.0
generic2.0
zdma1.6
zdma1.6
ME*ia
正確配置BSP后,我們可以創(chuàng)建應(yīng)用程序代碼。BSP將提供使用PL中的IP
塊所需的所有API函數(shù)。
主要應(yīng)用如下
#include
#include"platform.h〃
ttinclude〃xil_printf.h〃
ttinclude,zxvtc.h"
#include〃vgamodes.h〃
ttinclude〃xvtpg.h"
#include"xvidc.h〃
#include"xavbuf.h"
#include〃xavbuf_c:k.h〃
ttinclude"xvidc.h〃
#include^xdpdma^ideo_examp1e.h〃
#include"xiicps.h"
ttinclude"i2c.h〃
#include"xaxivdma.h〃
#include"xaxivdmai.h〃
itinclude"xgpiops.h〃
ttinclude^xvdemosaic.h〃
ttinclude^xvgammalut.h〃
ttinclude"math.h〃
XVtcVtclnst;
XVtc_Config*vtc_config;
XV_tpgtpg;
XVtpgConfig*tpgconfig;
XlicPsiic_cam;
XAxiVdmavdma;
XAxiVdmaDmeiSetupvdmaDMA;
XAxiVdma_Config*vdmaConfig;
XGpioPsgp_cam;
VideoModevideo;
XVdemosaiccfa;
XVgamma_1utgammainst;
u8ScndBuffer[10];
u8RecvBuffer[10];
u16geimina_reg[1024];
#defineDEMO_MAX_FRAME(720*1280)
ftdefineDEMOSTRIDE(1280*2)
^defineDISPLAY_NUM_FRAMES3
#defineIlC_camXPAR_XIICPS_O__DEVICE_ID
#definecamgpioXPARXGPIOPS0DEVICETD
#defineCAM_ID0x78
#defineIIC_CAM_ADDR0x3c
#defineIIC_SCLK_RATE100000
并defineMUX_ADDR0x70
voiddetect_camera;);
intInitial_setting_l(u32*cfg_ini
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 老總違背協(xié)議書
- 職業(yè)聯(lián)賽合同協(xié)議
- 職工運輸合同范本
- 聯(lián)合申請協(xié)議書
- 聯(lián)營公司合同范本
- 聘任臨時工協(xié)議書
- 聘用合同賠償協(xié)議
- 金融貿(mào)易協(xié)議書
- 個人返利協(xié)議書
- 保密2025年商業(yè)機密保護協(xié)議
- GB/T 17876-2010包裝容器塑料防盜瓶蓋
- GB/T 17196-2017連接器件連接銅導(dǎo)線用的扁形快速連接端頭安全要求
- GA/T 1567-2019城市道路交通隔離欄設(shè)置指南
- 最全《中國中鐵集團有限公司工程項目管理手冊》
- 連接器設(shè)計手冊要點
- 藥品注冊審評CDE組織機構(gòu)人員信息
- 營口水土保持規(guī)劃
- 魯迅《故鄉(xiāng)》優(yōu)秀PPT課件.ppt
- 魯迅《雪》ppt課件
- 管道(溝槽)開挖支護方案
- 瑞士法國和俄羅斯的著名風機制造廠生產(chǎn)情況
評論
0/150
提交評論