fpga preko usb uvodna automatika rs
fpga preko usb uvodna automatika rsInženjeri su za vreme proteklih nekoliko decnija nastojali da smanje veličinu elektronskih sistema i da istovremeno povećaju fleksibilnost. Sa pojavom reprogramibilne FPGA logike, sistemi su postali jefiniji i mogli su da se nadograde u letu. U ovom članku je dat prikaz kako da se konfiguriše FPGA sistem preko USB-a sa ciljem implementacije fleksibilnosti in-field nadogradnji.

 
 Field Programmable Gate Arrays (FPGA) je jednostavni programabilni logički blok sa masivnom fabrikom električno programabilnih interkonekcija koje su postavljene izmeñu logičkih blokova. FPGA sistemi su uvedeni kako bi implementovali celokupnu funkcionalnost sistema na jednom čipu i omogućili fleksibilnost reprogramiranja. Danas, FPGA sistemi pokrivaju široko tržište primena kao što su automobilske, industrijske, medicinske, umrežavanje potrošačke elektronike, bezbednost, računarstvo viskoih preformansi, video i slike, digitalna obrada signala, itd.
 
 FPGA sistemi rade u dva režima: konfiguracionom režimu i korisnički režim. Sa uključivanjem napajanja, FPGA ulazi u konfiguracioni režim za programiranje. Konfigurisanje FPGA sistema znači slanje niza bitova ‘0’ i ‘1’ u ureñaj kroz specijalne pinove. Jednom kada je FPGA konfigurisan, on se prebacuje u korisnički režim kako bi izvršavao programiranu logičku funkciju.

 Većina FPGA ureñaja koristi SRAM kako bi uskladištio konfiguracione podatke. Pošto je SRAM konfiguracija koja zavisi od prisustva napona, podaci konfiguracija treba da budu skinuti u SRAM po uključenju napona. Ove konfiguracije mogu takoñe biti automatski učitane iz memorije koja ne zavisi od prisustva napona kao što su PROM, SPI Flash, ili eksterni procesorski čip. Mikroprocesori, mikrokontroleri i digitalni procesori signala mogu takoñe da skinu konfiguracione podatke u SRAM FPGA-a. Pored ovih metoda, konfiguracija takoñe može da bude skinuta preko najpopularnijeg JTAG interfejsa, USB interfejsa, itd.

 Konfiguracija FPGA sistema može da bude izvrešena ili postavljajući FPGA u master režim ili u slave režim. U master režimu, FPGA generiše konfiguracioni časovnik i kontroliše konfiguraciju podataka. U ovom režimu FPGA uopšteno skida konfiguracioni niz bitova iz memorija kao što su SPI, Flash, i PROM. Kada se koristi SPI Flash, FPGA deluje kao SPI master i konfiguracija se preuzima iz SPI Flash&a, dok postoji slučaj kada se konfiguracija skida iz PROM&a. Svi ovi slučajevi su prikazani na Slici 1.

fpga konfiguracija u master rezimu ispravka automatike rs

 
Slika 1. FPGA konfiguracija u master režimu
 
 U slave režimu, FPGA može da bude konfigurisan korišćenjem eksternih inteligentnih ureñaja kao što su  mikrokontroleri, mikroprocesori, digitalni procesori signala, itd. ili korišćenjem JTAG ili USB interfejsa. Tri najčešće korišćene metode pametnih uređaja koriste konfiguraciju učitavanja podataka i mogu biti u sinhroninom serijskom, SPI slave i paralelnom režimu. Sinhroni serijski režim je ilustrovan na Slici 2.

FPGA konfiguracija u slave rezimu ispravka automatika rs

 
Slika 2. FPGA konfiguracija u slave režimu
 
 Obično dve linije – podaci i časovnik – se koriste za skidanje konfiguracije u ovoj metodi. U krajnjoj liniji konfiguracionog časovnika, konfiguracioni bitovi podataka se smenjuju u FPGA sistemu.

fpga konfiguracija u slave rezimu spi ispravka automatika rs

 
Slika 3. FPGA konfiguracija u slave režimu – SPI 
 
 Na Slici 3 FPGA deluje kao SPI slave i eksterni mikroprocesor, mikrokontroler ili procesor digitalnih signala.

 Većina FPGA sistema ima opciju 8/16/32-bitne selekcije kada su konfiguracioni podaci poslati paralelno. Ovaj metod je dat na Slici 4 i to je najbrži režim za učitavanje konfiguracionih podataka.

fpga konfiguracija u slave rezimu paralelni ispravka automatika rs

Slika 4. FPGA konfiguracija u slave režimu – paralelni režim

 JTAG interfejs je 4/ 5 pinski serijski interfejs. Pet pinova su TDI (Test Data In), TDO (Test Data Out), TCK (Test Clock), TMS (Test Mode Select) i TRST (Test Reset). TRST pin je opcioni. JTAG je obično koristi za hardversko debagovanje i sken testiranje granica. Ovaj interfejs takoñe može da bude korišćen za konfiguraciono programiranje. Slika 5 pokazuje konfiguraciono signalno mapiranje korišćenjem JTAG interfejsa.

fpga konfiguracija u slave rezimu jtag ispravka automatika rs

Slika 5. FPGA konfiguracija u slave režimu – JTAG režim

 USB interfejs velike brzine može da bude integrisan u rešenje koje se zasniva na FPGA tehnologiji na sledeće načine:

  • USB protokol se slaže intelektualno vlasništvo (IP) sa eksternim primopredajnikom: U ovoj metodi, SIE IP je implementovan sa FPGA sistemom ili ASIC&om i korišćen zajedno sa eksternim primopredajnikom. Ovaj metod nudi prednost koju hardver zahteva, a koja je minimalna. Meñutim, razvoj USB Stack IP&a će potrošiti dragoceno vreme kao i inženjerske resurse. S druge strane, korišćenje IP-a treće stranke može da košta. Implemantacija protokola višeg nivoa i funkcija aplikacije takoñe uzima značajnu količinu FPGA resursa.
  • USB Bridge IC sa integrisanim SIE i primopredajnikom: Ova tehnika spaja eksterni serijski interfejs, baš kao i primopredajnik na FPGA. Menadžment protokola signalnog nivoa ne može više da bude upravljan sa FPGA sistemom. Ovde postoje neke uštede u smislu FPGA resursa. Meñutim, implemantacija USB protokola višeg nivoa se još uvek radi pomoću FPGA tehnologije. U ovom slučaju, odluka treba da se donese posle analize troškova zahtevanog eksternog hardvera u poreñenju sa količinom FPGA resursa koji bi bili sačuvani.
  • Kontroler + FPGA: Ovaj metod povezuje FPGA ili ASIC na inteligentan USB kontroler koji bi trebao da se brine o svim nivoima menadžmenta USB protokola. Kontroleri mogu da ponude fleksibilnost konfigurisanog broja krajnjih tačaka, FIFO veličinu i mogu čak da sadrže mikrokontroler koji upravlja menadžmentom visokog nivoa USB protokola. Takvi periferni kontroleri takoñe poseduju sposobnost da upravljaju nekim funkcijama na nivou aplikacije, tako oslobañajući FPGA ili ASIC od potrebe da ih izvrše.
 Sledi finalna metoda, koja može da ponudi dodatne sposobnosti u konfigurisanju FPGA sistema preko USB interfejsa. Ova konfiguracija može da bude izvedena u serijskoj ili paralelnoj vezi za prenos podataka od strane FPGA sistema. Jednom kada se FPGA programira, USB kontroler može da se vrati na svoju podrazumevanu funkcionalnost implementujući jednostavan interfejs podataka sa računarom domaćinom.

 Mnogi USB kontroleri koji su dostupni na tržištu sadrže programabilni CPU na sebi koji može da izvršava neke funkcije na nivou aplikacije i pored toga što može da implementuje menadžment nivoa USB protokola. Sa ciljem da se učita konfiguracioni paket bitova u FPGA, USB kontroler će morati da generiše neophodne konfiguracione signale. Postoji višestruki metodi konfiguracije koji su u stanju da programiraju svaki FPGA ureñaj i svaki od njih može da bude izabran od strane USB kontrolera kako bi se učitao konfiguracioni tok bitova.

 U slučaju aplikacija gde ljudska intervencija nije uvek pogodna (na primer, sateliti i podmornice), ovaj metod rekonfiguracije će se pokazati korisnim pošto ne zahteva inženjera na terenu da rešava dati problem. Za napredne aplikacje zasnovane na FPGA tehnologiji zahteva se USB veza velike brzine i samo konfigurisanje FPGA sistema preko USB-a eliminiše potrebu za posvećenim konfiguracionim čipom (na primer, PROM ili procesor) za FPGA.

 Po uključivanju ili prijemu komandi iz USB domaćina, USB kontroler bi trebao da inicijalizira samog sebe u stanje u kojem on čeka paket bitova da dođe od domaćina kroz endpoint podataka. Po prijemu toka bitova sa ispravnim potpisom, USB kontroler će zatim da nastavi da restartuje FPGA i generiše konfiguracioni talasno oblik kako bi ga učitao sa paketom bitova. Jednom kada je konfiguracija uspela, USB kontroler bi trebao da se vrati na režim podataka poznat kao „cevovod“. Konfiguracija FPGA sistema koja radi preko USB kontrolera je data na Slici 6.

konfiguracija fpga preko usb ispravka automatika rs

 
Slika 6. Konfiguracija FPGA sistema preko USB-a

 Danas postoje čipovi USB kontrolera velike brzine koji su u stanju da izvrše više zadataka koji se zahtevaju od njih sa ciljem da bi se konfigurisao FPGA preko USB-a. Taj čip sadrži GPIF kontrolerski blok koji može da generiše talasnu formu koja spaja kontroler sa eksternim ACIS-om, mikrokontrolerima ili FPGA ureñajima. Komande prodavca su poslate iz središta da inicijalizuju GPIF kontroler bilo da su firmware nadogradnje potrebne ili ne kada se uređaj napaja. Jednom kada kontroler uñe u konfiguracioni režim i GPIF kontroler je inicijalizovan, domaćin može da počne da šalje konfiguracioni tok bitova kroz OUT endpoit. Kada je konfiguracija uspela, domaćin može da pošalje drugi USB komandu kako bi se kontroler vratio u prenosni režim.

 Dopuštajući reprogramiranje preko USB-a, postojeći FPGA sistemi mogu da umanje cenu sistema tako što eliminišu potrebu za dodatnim programiranjem i konfigurisanjem FPGA uređaja.

POSTAVI ODGOVOR

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.