Orodha ya maudhui:
- Hatua ya 1: Vifaa
- Hatua ya 2: OUTPUT - Sehemu ya 1 ya Mdhibiti wa VGA
- Hatua ya 3: OUTPUT - Sehemu ya Mdhibiti wa VGA
- Hatua ya 4: OUTPUT - Kidhibiti cha HDMI Sehemu ya 1
- Hatua ya 5: OUTPUT - Mdhibiti wa HDMI Sehemu ya 2
- Hatua ya 6: Kuonyesha Picha Kutoka kwa RAM
- Hatua ya 7: PATO - SDK END
Video: Mfumo wa Uboreshaji wa Picha ya Zynq: Hatua 7
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:53
Kama unavyoweza kutengeneza kutoka kwa kichwa, lengo la mradi huu ni kutengeneza Mfumo wa Uboreshaji wa Picha ukitumia ZYNQ ApSOC. Hasa haswa, tunataka kujenga mfumo ambao unaweza kuondoa ukungu kutoka kwa picha au video. Mfumo huu utachukua hali mbaya data ya kuona kama pembejeo, itasindika kwa kutumia mbinu za kukuza picha na kisha kutoa matokeo.
Mradi ulijengwa na kujaribiwa kwenye Bodi ya Digilent Zybo lakini vifaa vingine vya ZYNQ vinapaswa kufanya kazi pia.
Tutagawanya mradi huu katika sehemu 3:
1) INPUT = Picha ya Kuingiza kupitia Ethernet kutoka Kompyuta / Kamera
2) UTARATIBU = Mchakato Picha
3) OUTPUT = Pato la Picha kupitia kiolesura cha HDMI
Kwa mtindo wa kupinga sana tutaanza na sehemu ya mradi (hii itatupa uwezekano bora wa utatuzi njiani) endelea na pembejeo na kumaliza na sehemu ya usindikaji.
Hatua ya 1: Vifaa
Ili kukamilisha mradi huu utahitaji:
HARDWARE
- Bodi yoyote ya ZYNQ iliyo na HDMI na Ethernet inapaswa kufanya kazi / ninatumia Digilent Zybo
- USB A kwa kebo ndogo ya USB B
- kebo ya HDMI
- kebo ya Ethernet
- Onyesha na pembejeo ya HDMI
SOFTWARE
- Xilinx Vivado
- Xilinx SDK
Hatua ya 2: OUTPUT - Sehemu ya 1 ya Mdhibiti wa VGA
Tutatoa data yetu ya kuona kwa kutumia bandari ya HDMI iliyopo kwenye bodi. Bandari ya HDMI imeunganishwa na PL (Programmable Logic = FPGA) upande wa ZYNQ na tutahitaji kubuni mtawala katika VHDL kwa hiyo. Ikiwa umewahi kubuni mtawala wa VGA utapata hii sawa. Wakati wa HDMI na VGA ni sawa, kwa kweli unaweza kujenga juu ya mtawala wa VGA ili kupata mtawala wa HDMI.
Kwa uelewa mzuri wa kile kinachotokea kweli tutabuni kwanza mtawala wa VGA
Tunataka kuonyesha kwa azimio la 1920x1080.
Mdhibiti wa VGA anajibika kupeleka data ya pikseli (katika muundo wa RGB) mtawaliwa, pikseli kwa pikseli kwenye onyesho. Nje ya eneo halisi la eneo la maonyesho la 1920x1080 pia kuna maeneo "ya mpaka", ambayo ni: ukumbi wa mbele, ukumbi wa nyuma na kurudi tena. Ukubwa katika saizi za maeneo haya ni ya kawaida na maalum kwa kila azimio. Maeneo haya hayaonekani kwenye skrini lakini ni ya lazima na rangi ya saizi katika eneo hili lazima iwe nyeusi. Swali halali litakuwa ni kwanini maeneo haya ya ziada yanahitajika. Swali hili linakataa kusudi la kufundisha lakini ikiwa unataka kujua nitakuhimiza ufanye utafiti zaidi mkondoni.
Hii ni video nzuri inayoelezea kiolesura cha VGA
Kwa upande wetu tunataka kuonyesha kwenye azimio la 1920 * 1080, na hizi ni nyakati:
Eneo la Ulalo la Usawa = saizi 1920
Ukumbi wa Fron Usawa = saizi 88
Ukumbi wa Nyuma ya Usawa = saizi 148
Retrace Horizontal = saizi 44
Eneo la Uonyesho wima = saizi 1080
Ukumbi wa Mbele wa Wima = saizi 4
Ukumbi wa Nyuma wima = saizi 36
Wima Retrace = saizi 5
(Hapa unaweza kupata nyakati za maazimio mengine
Kwa hivyo azimio letu halisi litakuwa 2200 x 1125. Tunataka fps 60 (fremu kwa sekunde) kwa hivyo saa yetu ya pikseli itakuwa 60 * 2200 * 1125 = 148.5 MHz. Kwenye Bodi ya Zybo saa 125 Mhz hutolewa. Tutatumia IP ya MMCM kutoa Saa ya Pixel 148.5 MHz tunahitaji.
Hatua ya 3: OUTPUT - Sehemu ya Mdhibiti wa VGA
Na usuli wa kinadharia kutoka kwa hatua ya awali unapaswa kuwa na uwezo wa kubuni unamiliki mtawala wa VGA. Nitakupa mradi wa Vivado ambao hufanya hivyo lakini ninakushauri angalau ujaribu kuifanya wewe mwenyewe kwanza.
Bandari nyingi za VGA hazikupi bits 8 kwa kila kituo cha rangi kwa pikseli (angalia picha hapo juu) kwa hivyo utahitaji kubadilisha muundo na idadi ya pini kwa kila rangi ambayo Bodi hutoa (hii sio shida kwa HDMI ingawa).
Ubuni utachora skrini nzima bluu, isipokuwa pikseli ya juu kushoto ambayo itakuwa nyekundu. Ikumbukwe kwamba mradi huu hutumia vizuizi kwa Bodi ya ZYBO. Kwa hivyo ikiwa unataka kuendesha mradi huu kwenye Bodi nyingine unapaswa kusasisha faili ya vizuizi na kubadilisha idadi ya pini kwa kila rangi.
Angalia kielelezo nr. 2. Kumbuka kwamba wakati Mdhibiti wetu wa VGA anatoa bits 5/6 kwa kila rangi, bits hizo hubadilishwa kuwa ishara moja ya analog kwa kila kituo cha rangi (Nyekundu, Kijani na Bluu) kabla ya kupitia kebo.
Hatua ya 4: OUTPUT - Kidhibiti cha HDMI Sehemu ya 1
Sasa kwa kuwa tunajua jinsi mtawala wa VGA anavyofanya kazi na tuna muundo wa kufanya kazi tunaweza kuendelea na mtawala wa HDMI. Kidhibiti cha HDMI kwa kweli kitatumia nambari yote tuliyoibuni katika mtawala wa VGA. HDMI na VGA hutumia nyakati sawa na ishara sawa. Tofauti inaonekana kwenye pini za ouput.
Wakati VGA inatumia waya mmoja kwa kila rangi na inapitisha ishara ya analog kuikabili, HDMI inasambaza data hiyo kwa njia ya dijiti mara 1 kwa kila rangi na hutumia ishara tofauti. Ishara tofauti inamaanisha kuwa kwa kila kitu HDMI ina pini 2 na moja kinyume cha nyingine. Kwa hivyo ikiwa tunataka kusambaza ishara '1' tutasambaza '1' kwenye waya na '1' imekataliwa kwenye waya mwingine. Hii inahakikisha uadilifu wa ishara na unaweza kusoma zaidi juu yake hapa https://goo.gl/6CPCzB. Tunayo moja ya njia hizi kwa kila rangi, NYEKUNDU, KIJANI na BLUE na moja ya saa. Kwa sababu ya maalum ya kutofautisha kuashiria ishara tunazotuma kupitia hdmi lazima iwe na usawa wa DC ambayo inamaanisha kuwa idadi ya 1 na 0 lazima iwe sawa sawa katika dirisha fulani la wakati. Ili kufanikisha hili tutatumia usimbuaji 8b / 10b. Unaweza kujifunza mengi juu ya jinsi ishara tofauti na usimbuaji wa 8b / 10b hufanya kazi kutoka kwa ufafanuzi wa DVI hapa https://goo.gl/hhh8Ge (DVI na HDMI hutumia ishara sawa za video).
Hatua ya 5: OUTPUT - Mdhibiti wa HDMI Sehemu ya 2
Nadharia ya kutosha, lets kupata mradi wetu. Wakati katika Kidhibiti cha VGA tuliondoka na saa ya 148.5 MHz, hapa itabidi tupe mara 10 mara hiyo kwa sababu tunataka kusambaza biti 8 kwa kila rangi na kutumia usimbuaji wa 8b / 10b ambao unatafsiriwa kwa bits 10 kwa kila pikseli na 10 * 148.5MHz = 1485MHz. Huo ni mzunguko mkubwa ambao hauwezi kupatikana kwenye Bodi ya Zybo. Kwa bahati nzuri tulipata ujanja mdogo juu ya mikono yetu. Tunaweza kudhibiti 5 * 148.5MHz = 742.5MHz na tutatumia OSERDES (serializer) IP kusambaza data kwenye ukingo wa kupanda na kushuka kwa saa ya 742.5Mhz, kwa hivyo tutapata data iliyoambukizwa kwa 1485MHz. Vivado itatupa maonyo ya wakati na kila wakati unaweza kwenda kwa azimio la chini na saa ndogo, lakini kwa kuwa inafanya kazi, hatujali kwa sasa (maonyo yanahusiana na ukweli kwamba vidhibiti vya saa havifanyi rasmi masafa ya msaada juu kuliko 464MHz).
Kwa hivyo tunachohitaji kufanya ni kusimba data kutoka kwa pato la Mdhibiti wa VGA katika fomati ya 8b / 10b na kisha kuijenga kama ilivyoonyeshwa hapo juu. Tutahitaji pia kuongeza MMCM nyingine kwenye mradi wa kutengeneza saa ya 742.5MHz kwa ujanibishaji.
Niliambatanisha kurusha faili za vhdl kwa kisimbuzi na serializer. Lazima kwanza usimbishe njia za RGB na kisha uzifanye serial.
Mfano wa idhaa nyekundu:
TMDS_encoder_RED: TMDS_encoder
ramani ya bandari (clk148, red_channel_8bits, c_red, video_on, encoded_red_10bits);
Serialiser_RED: Serialiser10_1
ramani ya bandari (clk148, clk742, encoded_red_10bits, reset, red_serial_1bit);
Uingizaji wa "c" kwenye TMDS_encoder ni "00" ya nyekundu na kijani na "vsync & hsync" ya bluu (hii ni sehemu ya vipimo vya DVI
Hatua ya 6: Kuonyesha Picha Kutoka kwa RAM
Kusudi la mtawala wa HDMI ni kuonyesha picha zilizosindika. Sasa, pamoja na mtawala kutekelezwa na tayari kwenda tunapaswa kufikiria juu ya kulisha mtawala huyu na data. Kwa kuzingatia kuwa mchakato mwingi wa kukuza picha utafanyika katika PS (Processing System = Processor ARM) na picha zitakazopatikana zitakaa kwenye DDR RAM. Kwa hivyo tunahitaji njia ya kupata data kutoka kwa RAM kwenda kwa kidhibiti cha HDMI.
Ili kukamilisha hii utahitaji IPs 3:
1) VDMA (Ufikiaji wa Kumbukumbu ya Moja kwa Moja ya Video)
2) VTC (Mdhibiti wa muda wa Video)
3) Tiririka kwa Video Out (tutaiita S2VO kuanzia sasa)
S2VO itatoa ishara ya RGB 24BIT kwa pato na ishara zinazohitajika za HSYNC na VSYNC. Kwa hivyo tunaweza kuondoka sehemu hiyo ya mtawala wa HDMI nje.
Unapaswa kuongeza IP hizi kwenye muundo wako, uzisanidi na ufanye unganisho sahihi.
Mwishowe unapaswa kupata kitu kinachofanana na skimu hapo juu.
Hatua ya 7: PATO - SDK END
Pamoja na vifaa vyote vilivyowekwa na tayari kwenda lazima sasa tujenge programu kwenye PS. Tutasafirisha vifaa na mtiririko mdogo na kuzindua SDK.
1) Faili -> Hamisha -> Hamisha Vifaa -> Angalia Jumuisha Bitstream na Bonyeza sawa
2) Faili -> Anzisha SDK
Katika SDK tengeneza mradi mpya wa programu.
3) Faili -> Mpya -> Mradi wa Maombi
4) Chagua jina la mradi wako na ubonyeze Ifuatayo
5) Chagua kiolezo cha "Hello World" na bonyeza Finish
Programu katika SDK itahitaji kupanga VDMA. Kuna kazi kadhaa za kawaida kutumika ili kufanikisha hii (nitaingia kwenye maelezo wakati nina wakati).
Ili kujaribu muundo wetu tutatumia SDK Rejesha (Zana za Xilinx -> Dampo / Rejesha) kuweka picha kwenye kumbukumbu ya DDR RAM na kuionyesha kwa kutumia Kidhibiti chetu cha HDMI. Unaweza kupakia picha mahali popote unayotaka (isipokuwa sehemu ndogo zilizozuiliwa mwanzoni mwa kumbukumbu). Kwa mfano wetu tulichagua anwani 16777216 na saizi ya faili 8294400 = 1920 * 1080 * 4 (vituo 4 = RGB + alpha).
Inafanya kazi !
Itaendelea
Ilipendekeza:
Kusikia Uboreshaji wa Chumba cha Mlango wa Ulioharibika: Hatua 7 (na Picha)
Kusikia Usumbufu wa Chumba cha Mlango wa Mlango: Tatizo: baba yangu amesajiliwa kama kiziwi na mama yangu anasikia na kwa sababu ya hii mara nyingi hupata shida kusikia kengele ya mlango. Hili linaweza kuwa tatizo lililoteseka na wengine wengi pia.Walinunua kengele ya mwangaza inayowaka kuwasaidia na t
Pulse Oximeter na Uboreshaji Ulioboreshwa Sana: Hatua 6 (na Picha)
Pulse Oximeter na Uboreshaji Ulioboreshwa Sana: Ikiwa ulimtembelea daktari hivi karibuni, kuna uwezekano kwamba ishara zako muhimu za msingi zilichunguzwa na muuguzi. Uzito, urefu, shinikizo la damu, pamoja na kiwango cha moyo (HR) na kueneza kwa oksijeni katika damu ya pembeni (SpO2). Labda, mbili za mwisho zilipatikana kutoka
Uboreshaji wa Kubadilisha USB: Hatua 5 (na Picha)
Uboreshaji wa Kubadilisha USB: Nyumbani ninatumia kompyuta mbili zilizounganishwa pamoja kwa mfuatiliaji mmoja, kibodi moja na panya moja kupitia swichi ya KVM. Kwenye dawati nina pia printa, ambayo ninashiriki kati ya kompyuta zote mbili. Kwa bahati mbaya swichi ya KVM haitumii kuzidisha kwa USB na
Jinsi ya Kuunganisha vizuri na Kuweka Mfumo wa Rafu ndogo ya HiFi (Mfumo wa Sauti): Hatua 8 (na Picha)
Jinsi ya Kuunganisha Vizuri na Kuweka Mfumo wa Rafu ya Mini HiFi (Mfumo wa Sauti): Mimi ni mtu ambaye anafurahiya kujifunza juu ya uhandisi wa umeme. Mimi ni shule ya upili katika Shule ya Ann Richards ya Viongozi wa Wanawake Vijana. Ninafanya hii kufundisha kusaidia mtu yeyote ambaye anataka kufurahiya muziki wao kutoka kwa Mini LG HiFi Shelf Syste
Uboreshaji wa bei rahisi ya Picha zilizochapishwa: Hatua 4 (na Picha)
Uboreshaji wa bei rahisi ya Picha zilizochapishwa: Wachapishaji wa bei rahisi hufanya kazi yake vizuri sana, lakini picha zilizochapishwa ni nyeti sana: matone yoyote ya maji yanawaharibu. Karatasi ya "picha" ya kuchapisha picha ni ghali sana. Karatasi ya kawaida hutoa matokeo ya kawaida. Nilitumia karatasi ya kawaida ya 75g A4 kwa thi