Projektowanie

Architektura koprocesora: architektura systemu wbudowanego do szybkiego prototypowania

Architektura koprocesorowa jest dobrze znana z wydajności i przepustowości przetwarzania i daje projektantom systemów wbudowanych zarówno możliwości poprawy kosztów rozwoju, jak i skracają czas wprowadzenia produktu na rynek.

Uwaga ze strony autora: architektura koprocesorowa jest dobrze znana z wydajności i przepustowości przetwarzania cyfrowego, jednak daje projektantom systemów wbudowanych również możliwości wdrażania strategii zarządzania projektami, które poprawiają zarówno koszty rozwoju, jak i czas wprowadzenia produktu na rynek. Niniejszy artykuł, skoncentrowany w szczególności na połączeniu dyskretnego mikrokontrolera (MCU) i dyskretnej bezpośrednio programowalnej macierzy bramek (FPGA), pokazuje przydatność tej architektury do sprawnego i iteracyjnego procesu projektowania. Wykorzystując zbadane źródła, wnioski empiryczne i analizy przypadków, zbadano korzyści płynące z tej architektury i przedstawiono przykładowe zastosowania. Po przeczytaniu tego artykułu projektanci systemów wbudowanych będą lepiej rozmieć, kiedy i jak wdrażać tę wszechstronną architekturę sprzętową.

Wprowadzenie

Projektant systemów wbudowanych znajduje się na styku ograniczeń projektowych, oczekiwań dotyczących parametrów działania, harmonogramu i budżetu. Nawet sprzeczności w modnych słowach i zwrotach związanych z nowoczesnym zarządzaniem projektami jeszcze bardziej podkreślają niepewny charakter tej roli: „szybka porażka”; „zachowaj zwinność”; „przygotuj to na przyszłość” i „przełam schematy!”. Akrobatyka związana z próbą spełnienia tych oczekiwań może być dokuczliwa, a jednak zostały one wypowiedziane i nadal są wzmacniane na całym rynku. Potrzebne jest podejście projektowe, które umożliwia wdrożenie ewolucyjnego procesu iteracyjnego, i tak jak w przypadku większości systemów wbudowanych, zaczyna się od architektury sprzętowej.

Architektura koprocesorowa, czyli architektura sprzętowa znana z łączenia mocnych stron zarówno technologii jednostek mikrokontrolerów (MCU), jak i bezpośrednio programowalnych macierzy bramek (FPGA), może zaoferować projektantom systemów wbudowanych proces zdolny do spełnienia nawet najbardziej wyśrubowanych wymagań, a jednocześnie pozwalający na elastyczność niezbędną do sprostania zarówno znanym, jak i nieznanym wyzwaniom. Mając do dyspozycji sprzęt zdolny do iteracyjnej adaptacji, projektant może zademonstrować postęp, realizować krytyczne etapy i w pełni wykorzystać proces szybkiego prototypowania.

W ramach tego procesu istnieją kluczowe etapy projektu, z których każdy ma swoją własną, unikalną wartość dodaną w działaniach rozwojowych. W całym artykule będą one określane następującymi terminami: etap cyfrowego przetwarzania sygnałów przez mikrokontroler, etap zarządzania systemem przez mikrokontroler oraz etap wdrażania produktu.

W podsumowaniu tego artykułu zostanie wykazane, że elastyczna architektura sprzętowa może być lepiej dostosowana do projektowania nowoczesnych systemów wbudowanych niż bardziej sztywne podejście. Co więcej, takie podejście może skutkować poprawą zarówno kosztów projektu, jak i czasu wprowadzenia na rynek. Do obrony tego punktu widzenia posłuży argumentacja, przykłady i analizy przypadków. Po zwróceniu uwagi na wartość każdego etapu w ramach elastyczności projektowania zapewnianej przez omawianą architekturę, staje się jasne, że adaptacyjna architektura sprzętowa jest potężnym czynnikiem napędzającym rozwój systemów wbudowanych.

Wykorzystanie mocnych stron architektury koprocesorowej: elastyczność projektowania i wysokowydajne przetwarzanie

Częstym zastosowaniem projektów z macierzami FPGA są bezpośrednie interfejsy z szybkimi przetwornikami analogowo-cyfrowymi (ADC). Sygnał jest digitalizowany, wczytywany do macierzy FPGA, a następnie na ten sygnał nakładane są algorytmy cyfrowego procesora sygnałowego (DSP). Na końcu macierz FPGA podejmuje decyzje na podstawie wyników.

Takie zastosowanie będzie służyło jako przykład w całym artykule. Ponadto na ilustracji 1 przedstawiono ogólną architekturę koprocesora, w której mikrokontroler MCU i macierz FPGA są połączone poprzez interfejs pamięci zewnętrznej mikrokontrolera MCU. Bezpośrednio programowalna macierz bramek (FPGA) jest traktowana jako zewnętrzna statyczna pamięci o dostępie swobodnym (SRAM). Sygnały wracają z macierzy FPGA do mikrokontrolera MCU i służą jako linie przerwań sprzętowych oraz wskaźniki stanu. Dzięki temu macierz FPGA może sygnalizować mikrokontrolerowi MCU stany krytyczne, takie jak gotowość konwersji analogowo-cyfrowej (ADC), wystąpienie błędu lub innego istotnego zdarzenia.

Schemat typowego koprocesora

Ilustracja 1: Schemat typowego koprocesora (MCU + FPGA). (Źródło ilustracji: CEPD)

Mocne strony podejścia opartego na koprocesorze są prawdopodobnie najlepiej widoczne w wynikach każdego z wyżej wymienionych etapów. Wartość ocenia się nie tylko poprzez wyszczególnienie osiągnięć zadania lub etapu, lecz także poprzez ocenę możliwości, na jakie pozwalają te osiągnięcia. Odpowiedzi na poniższe pytania pomagają w ocenie ogólnej wartości wyników danego etapu:

  • Czy postępy innych członków zespołu mogą teraz przyspieszyć, ponieważ usunięte zostały zależności i wąskie gardła projektu?
  • W jaki sposób osiągnięcia tego etapu umożliwiają dalsze prowadzenie projektu równoległymi ścieżkami?

Etap cyfrowego przetwarzania sygnałów za pomocą mikrokontrolera

Schemat architektury - cyfrowe przetwarzanie sygnałów za pomocą mikrokontrolera

Ilustracja 2: Architektura - cyfrowe przetwarzanie sygnałów za pomocą mikrokontrolera. (Źródło ilustracji: CEPD)

Pierwszy etap rozwoju, na który pozwala ta architektura sprzętowa, umieszcza mikrokontroler MCU na pierwszym planie. Przy tym wszystkim prace rozwojowe nad mikrokontrolerem MCU i oprogramowaniem wykonywalnym są mniej zasobożerne i czasochłonne niż prace nad bezpośrednio programowalną macierzą bramek (FPGA) i językiem opisu sprzętu (HDL). Dzięki temu, rozpoczynając opracowywanie produktu z mikrokontrolerem MCU jako głównym procesorem, można szybciej wdrażać, testować i zatwierdzać algorytmy. Pozwala to na wykrywanie błędów algorytmicznych i logicznych na wczesnym etapie procesu projektowania, a także na przetestowanie i walidację znacznych części łańcucha sygnałowego.

Bezpośrednio programowalna macierz bramek (FPGA) na tym początkowym etapie służy jako szybki interfejs do zbierania danych. Jego zadaniem jest niezawodne przesyłanie danych z szybkiego przetwornika analogowo-cyfrowego (ADC), powiadamianie mikrokontrolera MCU o dostępności danych i prezentowanie tych danych na zewnętrznym interfejsie pamięci mikrokontrolera MCU. Chociaż rola ta nie obejmuje implementacji procesów cyfrowego procesora sygnałowego (DSP) opartych na języku opisu sprzętu (HDL) ani innych algorytmów, jest ona jednak bardzo ważna.

Opracowanie macierzy FPGA przeprowadzone w tej fazie stanowi podstawę ostatecznego sukcesu produktu zarówno w ramach prac rozwojowych, jak i po wprowadzeniu go na rynek. Skupiając się tylko na interfejsie niskiego poziomu, można poświęcić odpowiednią ilość czasu na testowanie istotnych operacji. Dopiero wtedy, gdy macierz FPGA niezawodnie i pewnie wypełnia tę rolę interfejsu, można pewnie zakończyć ten etap.

Kluczowe rezultaty tego początkowego etapu obejmują następujące korzyści:

  1. Przetestowanie i zweryfikowanie pełnej ścieżki sygnałowej - wszystkich wzmocnień, tłumień i konwersji.
  2. Redukcja czasu i wysiłku związanego z opracowaniem projektu dzięki wstępnej implementacji algorytmów w oprogramowaniu (C/C++). Ma to znaczną wartość dla kierownictwa i innych zainteresowanych stron, które muszą przekonać się o wykonalności tego projektu przed zatwierdzeniem przyszłych faz projektowania.
  3. Możliwość bezpośredniego przeniesienia wniosków wyciągniętych z implementacji algorytmów w C/C++ na implementacje w języku opisu sprzętu (HDL) dzięki zastosowaniu narzędzi software-to-HDL, takich jak np. Xilinx HLS.
Strona: 1/4
Następna