Maciej G.

Maciej G. Projektant /
Programista, Famor
S.A.

Temat: Implementacja układu w tech. FPGA versus MCU

Witam,

chciałbym poznać waszej zdanie na temat wad i zalet implementacji układów w technologii FPGA porównując to do implementacji tego samego układu z wykorzystaniem mikro-kontrolera. Powiedzmy weźmy tu pod uwagę szeroko stosowaną rodzinę MCU STM32 (+ płytki rozszerzające funkcjonalność STM32).

Zdaję sobie oczywiście sprawę z faktu, że w implementacji FPGA można użyć "software CPU" + dedykowana logika.

Głównie interesuje mnie to porównanie w odniesieniu do układów automatyki (lecz nie chciałbym, aby to porównanie ograniczało się tylko do takich układów).

Pytam się ponieważ od doświadczonego konstruktora układów elektronicznych usłyszałem opinię, iż układy FPGA nie naddają się do zastosowań w automatyce przemysłowej. Czy podzielacie taki pogląd - jeśli tak to dlaczego?

Pozdrawiam
Jakub Tyburski

Jakub Tyburski Asystent dydaktyczny
- Wojskowa Akademia
Techniczna w War...

Temat: Implementacja układu w tech. FPGA versus MCU

FPGA się nie nadaje do układów automatyki - to jakim cudem za granicą rozpisują się o ich użyciu choćby tu: http://www.ecerg.com/iesres/data/Course_Florin_Birlean... czy tu: http://ieeexplore.ieee.org/document/6843603/ czy nawet tu: https://www.researchgate.net/publication/4173960_FPGA_I.... Niech się ten konstruktor trochę zastanowi nad tym co gada. FPGA czy w ogóle układy programowalne w końcu z założenia mają być do tworzenia jakichkolwiek układów cyfrowych wszelkiego zastosowania (w tym do sterowania czymkolwiek, choć z pewnym wyjątkiem o czym dalej).

Co do zalet implementacji w FPGA: na pewno nikt ci nie narzuca odgórnych rozwiązań, tylko sam sobie tworzysz cokolwiek jak ci wygodnie (czyli tworzysz układ dedykowany w praktyce). Z tego wynika szybkość tworzenia (nie tracisz czasu na czytanie manuali i innych dokumentów żeby poznać to jak kto sobie pewne rozwiązania wymyślił tak jak w mikroprocesorach). Ponadto zaleta taka, że taki układ możesz w każdej chwili gruntownie przebudować czy rozbudować i to dosłownie
pod względem struktury (mikroprocesor to wiadome, że to już gotowy układ i jego struktury nie zmienisz - co najwyżej możesz zmieniać wartości w rejestrach takiego układu i tylko manipulować instrukcjami, żeby przyspieszyć jego działanie - tylko to też wymaga czasu i poznania takiego układu i znów tracisz masę czasu na zapoznawanie się z działaniem układu). Do tego jeszcze możesz manipulować łatwiej opóźnieniami w FPGA niż w mikroprocesorze (w mikroprocesorze wszystko stałe to i ścieżek nie zmienisz, żeby zejść na czasach propagacji - w FPGA starczy pin planner, przeniesienie elementów i masz już zaoszczędzone piko czy nanosekundy). A i pewnych rzeczy po prostu na mikroprocesorze nie zrobisz (np: precyzyjnej linii opóźniającej o danej rozdzielczości do zastosowań metrologicznych czy w ogóle wszystkiego co związane jest z metrologią czasu w układach cyfrowych, a co ma zastosowanie w przypadku telekomunikacji i synchronizacji przesyłanych sygnałów - tu potrzebna pikosekundowa precyzja, której mikroprocesor ci nie zapewni). Oczywiście też w przypadku FPGA uniezależniasz się od myślenia instrukcjami, które ślesz do mikroprocesora (po prostu - coś nie pasuje, albo instrukcja za długo się wykonuje to w FPGA samemu se piszesz tak jak ci pasi, żeby też działało to wszystko w miarę szybko).

Wady: w zasadzie to są głównie związane z tym, że o ile w mikroprocesorze pewien problem rozwiążesz w paru linijkach w języku C to w FPGA ten sam problem zabierze ci więcej linijek czy to w VHDL-u czy Verilogu czy SystemVerilogu (np: taki odczyt danych z karty SD bazując na systemie plików FAT32 - w mikroprocesorach masz biblioteki, parę linijek i masz załatwiony odczyt, w FPGA natomiast pisać musisz maszynę stanów i myśleć sprzętowo, a nie programistycznie). Inna wada: do takich STM32 czy innych mikroprocesorów od razu ci dają bajery typu przetworniki, układy szyfrujące czy do obsługi SPI, które są od razu w nich (w FPGA już tak nie ma - stąd montaż komponentów podłączonych do układów, które jednak krocie kosztują i stąd płytki z FPGA są droższe niż te z mikroprocesorami, a tym samym implementacja robi się droższa). Ewentualnie problemem może być to, że FPGA obsługują sygnały do jakiegoś wybranego pułapu częstotliwości (np: Cyclone II, którego mam do dzisią obsłuży ci sygnały max. do 450 MHz, a więc nie ma mowy o budowie na tym procesora, który będzie ci działał z taktowaniem 1 GHz - więc i tu wszystkiego nie zbudujesz jednak, podczas gdy są mikroprocesory, które mogą na takim taktowaniu działać) oraz to, że ciężej jest tu robić optymalizację energii, żeby układ był możliwie energooszczędny (łatwiej to paradoksalnie robić w przypadku mikroprocesorów).

I tyle :)
Jakub Tyburski

Jakub Tyburski Asystent dydaktyczny
- Wojskowa Akademia
Techniczna w War...

Temat: Implementacja układu w tech. FPGA versus MCU

Generalnie oprócz tego co powiedziałem idzie znaleźć takich porównań co do zalet czy wad tak jak np tu: https://www.researchgate.net/post/What_are_the_advantag... czy tu: https://electronics.stackexchange.com/questions/4382/fp... czy też tu: https://www.xilinx.com/support/documentation/white_pape.... Tak więc literatury znajdziesz w guglach bez problemu odnośnie problemu, który postawiłeś :) Ja swoje zalety i wady przytoczyłem w oparciu o swoje dotychczasowe doświadczenie :) Niech to znalazłem uzupełni to co powiedziałem :)Ten post został edytowany przez Autora dnia 08.10.17 o godzinie 13:54
Maciej G.

Maciej G. Projektant /
Programista, Famor
S.A.

Temat: Implementacja układu w tech. FPGA versus MCU

Jakub T.:
FPGA się nie nadaje do układów automatyki - to jakim cudem za granicą rozpisują się o ich użyciu choćby tu ...

Wiem, że teza była dość prowokacyjnie postawiona ;) , ale z taką opinią spotkałem się naprawdę.

Wśród konstruktorów automatyki "starej daty" królują niepodzielnie sterowniki PLC, a każde inne rozwiązanie jest według nich nieoptymalne. Jedyne co do mnie przemawia na korzyść sterowników PLC to fakt iż większość z nich posiada certyfikaty, czy to dla branży urządzeń morskich (oraz wielu innych instytucji certyfikujących). Dla mikro-kontrolerów i układów programowalnych jest ciężej z certyfikatami (jeśli się mylę wyprowadź mnie z błędu).
Drugą zaletą jest wysoki poziom sygnałów (np. 24V) i stąd odporność na zakłócenia.

Ja dostrzegam zalety implementacji układów automatyki opartych na układach programowalnych, ale wielu praktykujących automatyków byłoby trudno przekonać do ich zalet.

Pozdrawiam.
Jakub Tyburski

Jakub Tyburski Asystent dydaktyczny
- Wojskowa Akademia
Techniczna w War...

Temat: Implementacja układu w tech. FPGA versus MCU

Aż tak sie boja, ze straca prace jakby weszly FPGA, ze nie toleruja innych rozwiazan? Natomiast co do certyfikatów - nie powiedziałbym, że ciężej - tu jest przykład od Altery, że i z FPGA da się zyskać stosowny certyfikat: https://www.altera.com/solutions/industry/industrial/ap.... Podobnie jest z mikroprocesorami - mój kolega, który do niedawna pracował, tam gdzie ja obecnie a co ma firmę obecnie swoją robi linię montażową opartą o mikroprocesory i też nie ma problemu ze zdobywaniem stosownych certyfikatów, żeby taką linię dla fabryki zbudować. Inny kolega (tym razem ze studiów) też nie ma z tym problemów - u niego mikrokontrolery używają do celów medycznych i też muszą mieć pewne certyfikaty, aby to zostało dopuszczone - i to też im wychodzi bez problemów. To odnośnie certyfikatów. A co do zakłóceń - to i do takich rzeczy czy FPGA czy mikrokontrolery można użyć - kwestia jedynie solidnego zabezpieczenia (typu ekranowane przewody, zadbanie o filtrowanie zasilania, diody, żeby jakieś indukcje nie zaserwowały chwilowych wzrostów prądów, dobre uziemienia, umieszczanie w opakowaniach redukujących wpływ pola EM itp.). Poza tym takie magistrale jak CAN czy One Wire właśnie pierwotnie zostały pomyślane do użycia w warunkach wysokich zakłóceń (czy też RS484 z pętlą prądową, która też się do takich rzeczy nadaje). Tak więc no chcąc nie chcąc nie ma przeciwskazań do używania czy FPGA czy mikrokontrolerów zamiast sterowników PLC (kwestia tylko solidnego zabezpieczenia układów czyli lekka wiedza elektroniczna i pozałatwiane). I tyle :)



Wyślij zaproszenie do