Układy FPGA w automatyce – nowe możliwości i zastosowania

Narzędzia do projektowania i programowania aplikacji na układach FPGA są coraz bardziej popularne i dostępne wśród inżynierów, pozwalając im na opracowywanie i szybkie wdrażanie systemów opartych na tych właśnie układach w coraz większej liczbie aplikacji.
Podstawowym elementem budowy układów FPGA jest matryca z bramkami logicznymi z możliwością rekonfigurowania połączeń między nimi, które po zaprogramowaniu tworzą w układzie sprzętowe odwzorowanie opracowanego algorytmu lub funkcji. Dostępne na rynku coraz bardziej zaawansowane funkcjonalnie narzędzia programistyczne pozwalają projektantom na tworzenie nowych, wbudowanych systemów sterowania, których podstawą są właśnie układy programowalne FPGA. W przeciwieństwie do popularnych w aplikacjach sterowania procesorów i mikrokontrolerów, układy te korzystają z dedykowanego do współpracy z nimi sprzętu i nie mają w sobie systemu operacyjnego. Ponadto w układach FPGA ścieżki realizacji poszczególnych zadań-procesów przebiegają równolegle i w związku z tym różne procesy nie muszą „konkurować” o pierwszeństwo wykorzystania tych samych zasobów procesora. Możliwości rekonfiguracyjne połączeń w strukturach logicznych układów FPGA zapewniają ich programistom niemalże nieograniczoną elastyczność i swobodę organizacji projektowanych aplikacji. – W przeciwieństwie do popularnych płytek z obwodami drukowanymi, w których montuje się zwykle scalone układy logiczne o stałej strukturze, zaprojektowanej już przez ich producenta, w systemach opartych na układach FPGA projektant i integrator ma możliwość rekonfiguracji logiki w dowolnym momencie, nawet po zainstalowaniu już i uruchomieniu całego systemu – stwierdza Christian Fritz z firmy National Instruments.
Z punktu widzenia aplikacji produkcyjnych i systemów automatyki przemysłowej, układy FPGA doskonale nadają się do zastosowań w robotyce i sterowaniu maszynami, układach obsługi wentylatorów, pomp, kompresorów i taśmociągów. Często stosuje się je również jako element ułatwiający rekonfigurację funkcjonalności modułów we/wy. – Na przykład jakiś moduł cyfrowych wejść może być wykorzystywany tylko do odczytu stanów PRAWDA/FAŁSZ na każdej z linii. Jednocześnie jednak ten sam moduł może być w dowolnej chwili przekonfigurowany tak, byumożliwiać już prostą obróbkę sygnałów wchodzących: pomiar szerokości impulsów, realizacja filtrów cyfrowych czy nawet pomiar pozycji lub prędkości obrotowej z enkoderów cyfrowych – wyjaśnia dalej Fritz.
W opinii Jamesa Bonanno z firmy Atlantix Engineering, specjalizującej się w projektach aplikacji dla układów FPGA, inżynierowie i projektanci systemów cyfrowych mogą bardzo łatwo i szybko dopasować aplikację FPGA do konkretnego algorytmu sterowania, zamiast dopasowywać ten sam algorytm do możliwości i funkcjonalności oferowanych przez np. procesory czy mikrokontrolery. W efekcie unika się możliwych komplikacji i opóźnień w funkcjonowaniu systemu, na skutek zadziałania obecnych w procesorach układów obsługi przerwań czy priorytetów zadań, jak to często ma miejsce w aplikacjach z procesorami sygnałowymi czy klasycznymi mikroprocesorami. Dlatego też układy FPGA to bardzo atrakcyjna alternatywa w realizacji nowoczesnych, skomplikowanych funkcjonalnie układów sterowania.
Większość systemów wykorzystywanych w aplikacjach sterowania napędów i energoelektronice wymaga bardzo szybkiego i precyzyjnego przetwarzania sygnałów, działania w reżimie tzw. czasu rzeczywistego. – Na przykład pętla sprzężenia zwrotnego reagująca w czasie 10 µs (częstotliwość 100 kHz), w zależności od koncepcji działania obsługiwanego algorytmu sterowania, może okazać się zbyt wolna dla poprawnego przetworzenia wszystkich sygnałów z i do urządzeń peryferyjnych, a w rezultacie nie zapewniać realizację funkcji czasu rzeczywistego – przyznaje James Bonanno.
– W układach FPGA implementacja jest dopasowana do algorytmu lub też innymi słowy urządzenia peryferyjne mogą być dzięki nim dopasowane do proponowanego algorytmu. Dotyczy to w szczególności szybkich przetworników analog/cyfra, interfejsów cyfrowych, enkoderów i innych czujników o szybkozmiennych sygnałach – dodaje. Do opinii Jamesa Bonanno przyłącza się również cytowany wcześniej Christian Fritz, który potwierdza, że układy FPGA to doskonałe narzędzie do zastosowań w zaawansowanych aplikacjach systemów sterowania. – Zaawansowane funkcjonalnie systemy automatyki, jak chociażby algorytmy sterowania wektorowego, wymagają ciągłego i szybkiego przeliczania sygnałów, przy częstotliwościach rzędu 10 i 100 kHz. W tego typu aplikacjach równolegle z realizacją samego algorytmu sterowania konieczna jest obsługa dodatkowych modułów funkcjonalnych, np. modulacji szerokości impulsów PWM funkcjonujących niejako obok głównego algorytmu. W takich sytuacjach układy FPGA są doskonałym rozwiązaniem, gdyż zapewniają obsługę algorytmów z pętlami sprzężeń zwrotnych o częstotliwościach sygnałów do kilkuset kHz, przy jednoczesnym zagwarantowaniu równoczesności realizacji kilku zadań algorytmu lub przetwarzania sygnałów – wyjaśnia Christian Fritz.
Nowe propozycje dostawców producentów FPGA
Na rynku układów programowalnych FPGA wiodącą rolę odgrywa obecnie trzech dostawców – Xilinx, Altera i Lattice Semiconductor. Coraz bogatsza jest również oferta programów i narzędzi służących do projektowania i wdrażania aplikacji dla układów FPGA, niejednokrotnie specjalizowanych pod konkretne potrzeby integratorów. Na przykład pakiet Xilinx Targeted Design Platform zawiera podstawowe elementy niezbędne w przygotowaniu bazujących na skaldach FPGA przemysłowych aplikacji wizualizacyjnych. – Dzięki takim narzędziom projektowym proces tworzenia koncepcji systemu oraz jego wdrażania ulega znacznemu uproszczeniu i skróceniu – stwierdza Christian Fritz. – Pomiędzy dostępnymi aktualnie na rynku pakietami narzędziowymi dla układów FPGA istnieje daleko posunięta kompatybilność, pozwalająca na generowanie wyrafinowanych algorytmów, co z kolei poszerza spektrum sterowanych cyfrowo aplikacji, w jakich możliwe jest zastosowanie programowalnych układów logicznych – dodaje.
Z kolei firma Atlantix opracowała narzędzie HyperKinetix dedykowane do aplikacji napędowych, ułatwiające opracowywanie aplikacji z układami FPGA dla cyfrowych sterowników napędów. W pakiecie znaleźć można gotowe szablony funkcji obsługujących serwonapędy, umożliwiających korektę współczynnika mocy oraz wielokanałowe przetwarzanie sygnałów z wielu urządzeń przemysłowych. Jeszcze innym rozwiązaniem są moduły integracyjne FPGA Opal Kelly, pozwalające projektantom aplikacji na oszczędność czasu, pieniędzy i nakładu prac związanych z zapewnieniem niezawodności przy opracowywaniu aplikacji wymagających współpracy układów FPGA z modułami wyposażonymi w procesory lub działającymi na bazie przemysłowych komputerów PC. – Mamy pełną świadomość problemów, z jakimi borykają się współcześni inżynierowie-automatycy, i dlatego właśnie dostarczamy im narzędzia rozwiązujące wiele z nich, związanych zwykle z integracją między platformami sprzętuPC i FPGA.
Dzięki temu zespoły projektowe mogą skupić swą uwagę przede wszystkim na realizacji zamierzonych funkcjonalności, bez konieczności szczegółowego zagłębiania się w kwestie np. interfejsów itp. – wyjaśnia prezes Opal Kelly, Jake Janovetz. Moduł Opal Kelly FPGA USB 2.0 zawiera firmowy FrontPanel SDK, przyspieszający znacznie prace nad opracowaniem modułów USB z układami FPGA dzięki zastosowaniu trzech elementów: Front Panel Software API pomocny przy tworzeniu aplikacji; bibliotekę sterowników do komunikacji z wykorzystaniem interfejsu USB oraz wbudowane moduły HDL – elementy języka komunikacji ze sprzętem zewnętrznym, usprawniające komunikację między modułami użytkownika a architekturą komputera PC. Narzędzia te zostały już wielokrotnie wykorzystane i sprawdzone przy budowie aplikacji dla sprzętu domowego użytku, w zastosowaniach militarnych i cywilnych oraz rozwiązaniach prototypowych. – Moduły integracyjne Opal Kelly rozwiązują problemy komunikacyjne pojawiające się w fazie projektowania i implementacji modułów bazujących na układach FPGA, współpracujących z komputerami PC.
Bez naszych modułów inżynierowie musieliby w tworzonych aplikacjach dodatkowo opracowywać, implementować i testować oprogramowanie do komputera PC wraz ze sterownikami, oprogramowanie firmowe do mikrokontrolera z interfejsem USB oraz komunikację między układem FPGA a interfejsem USB. Nasze moduły pozwalają w praktyce na wyeliminowanie tych działań i skupienie się na zasadniczych kwestiach funkcjonalnych projektowanej aplikacji – stwierdza Jake Janovetz.
Oferta firmy National Instruments obejmuje bibliotekę NI LabView FPGA, umożliwiającą programowanie układów FPGA z poziomu środowiska pakietu LabView. Dedykowana jest ona do obsługi rekonfigurowalnego modułu we/wy RIO, produkowanego przez wspomnianą firmę.
– Środowisko LabView bardzo dobrze sprawdza się przy konfigurowaniu aplikacji do układów programowalnych FPGA, ze względu na możliwość graficznej wizualizacji ścieżek realizacji zadań, pokazując ich współbieżność. Dodatkowo za pośrednictwem serwisu IPNet, dostępnego na stronach firmy, możliwe jest pobranie wielu gotowych szablonów i funkcji algorytmicznych dla szybszej realizacji zamierzonego algorytmu sterowania – wyjaśnia reprezentujący firmę NI Christian Fritz.
W opinii Jake’a Janovetza narzędzia Opal Kelly są w zasadzie otwarte pod kątem technologii FPGA, jednak w ich specyfikacjach zawiera się stwierdzenie, iż dedykowane jest ich użycie z układami firmy Xilinx ze względu na ich znaczną popularność na rynku. Obszary różnic pomiędzy układami FPGA trzech wspomnianych wcześniej firm sukcesywnie się zawężają, wraz z pojawianiem się kolejnych generacji narzędzi programowych i samegosprzętu, niosącego zwykle nowe funkcjonalności dostępne dla użytkowników. Pamiętać jednak należy, że oznacza to również coraz większą złożoność każdej generacji układów.
FPGA, procesory, mikrokontrolery…
Pod koniec ubiegłego roku pojawiła się informacja o podjęciu współpracy przez firmę Xilinx i ARM Holdings, ukierunkowanej na opracowanie zasad współpracy procesorów rodziny ARM i układów FPGA Xilinx. Firma Xilinx właśnie otrzymała licencję na procesory ARM Cortex IP, z możliwością wykorzystania ich bibliotek i wbudowanych układów pamięci. Jednocześnie obie firmy zadeklarowały podjęcie wspólnych prac, mających na celu zdefiniowanie architektury nowej generacji technologii AMBA (protokół komunikacji między modułami oferowanymi przez firmę ARM), która umożliwi i zoptymalizuje współpracę z układami FPGA. Firma ARM ma w ofercie liczną grupę procesorów już zoptymalizowanych do współpracy z tego typu układami, pochodzącymi od różnych producentów: Altera, Xilinx czy Actel.
Również pod koniec ubiegłego roku firma Altera otrzymała licencję na korzystanie z architektury MIPS32 procesorów firmy MIPS Technologies, konkurentafirmy ARM. Fakt ten oznacza wejście architektury procesorów MIPS w świat aplikacji układów FPGA i pozwala firmie Altera zapewnić swoim klientom większe i nowe możliwości funkcjonalne w zakresie komunikacji sieciowej oraz aplikacji multimedialnych. – Wraz z tymi możliwościami zwiększa się złożoność układów FPGA, co z kolei nakłada nowe wymagania na narzędzia projektowe i programistyczne – podkreśla Jake Janovetz. – Jednak nowe funkcje układów wraz z niespotykaną elastycznością algorytmów i możliwością współpracy z zaawansowanymi technologicznie mikrokontrolerami, to cechy, które już nieodwracalnie zmieniają spojrzenie na technologię programowalnych układów logicznych, na spektrum ich możliwych zastosowań w praktyce – dodaje.
Wydaje się zatem, że układy FPGA dopiero szykują ekspansję rynkową, a ze względu na oferowaną przez nie elastyczność należy się spodziewać w najbliższych latach wzrostu ich popularności w wielu aplikacjach, nie tylko automatyki przemysłowej.
Artykuł pod redakcją dr. inż. Andrzeja Ożadowicza – AGH Kraków