Analog Devices Blackfin - potęga DSP dla każdego
| TechnikaJednym z silnych elementów oferty firmy Analog Devices są procesory DSP z rodziny Blackfin. Są one szczególnie interesujące dla konstruktorów niemających większych doświadczeń z aplikacjami DSP - tworząc je, mogą bazować na klasycznym podejściu "mikrokontrolerowym".
Mikroprocesory DSP tworzące rodzinę o nazwie Blackfin należą do najnowszej generacji układów tego typu w ofercie Analog Devices. Producent opracował je z myślą o stosowaniu w aplikacjach audio i wideo, cyfrowych sterownikach silników i konwerterów energii elektrycznej, a także systemach sterująco-regulacyjnych. Składa się ona z 45 typów układów, wyposażonych w jeden lub dwa rdzenie, które są przystosowane do taktowania sygnałami zegarowymi o częstotliwości od 350 do 600 MHz.
Lista instrukcji obsługiwanych przez rdzenie mikroprocesorów Blackfin jest poszerzona w stosunku do listy instrukcji obsługiwanych przez klasyczne mikroprocesory RISC i to właśnie te instrukcje (SIMD) nadają DSP-owy charakter układom z rodziny Blackfin. Przykładowo, z myślą o obróbce obrazów, zaimplementowano specjalne instrukcje arytmetyczne przyspieszające m.in. obliczanie przekształcenia DCT (Discrete Cosine Transform), które jest bazowym obliczeniem używanym przez algorytmy kompresji obrazów, zarówno statycznych (JPEG), jak i dynamicznych (MPEG2 i MPEG4). Innymi przykładami rozszerzeń DSP zastosowanymi w mikroprocesorach Blackfin są: sprzętowa obsługa instrukcji mnożenia modulo 232, instrukcji uśredniania danych 8-bitowych czy instrukcje porównywania wektorów.
Inżynierowie firmy Analog Devices podczas opracowywania budowy rdzeni Blackfin wykorzystali doświadczenia Intela, dzięki czemu w prezentowanych mikroprocesorach wyraźnie widać podobieństwa do mikroprocesorów bazujących na intelowskiej MSA (Micro Signal Architecture). Rdzenie Blackfin mają architekturę von Neumanna, co w dużym skrócie oznacza, że dane aplikacji i program są przechowywane w tej samej pamięci, operują na słowach danych i instrukcjach o długości 32 bitów.
Zintegrowane przy rdzeniu bloki MAC (Multiply and ACcumulate) są przystosowane do wykonywania obliczeń na słowach 16-bitowych, a współpracujące z nimi rejestry ALU mają długość 40 bitów każdy. Niektóre wersje mikroprocesorów Blackfin zostały wyposażone w inne ALU i nieco inaczej skonfigurowane bloki MAC, co wiąże się z ich określonym przez producenta zorientowaniem aplikacyjnym.
Stosowanie mikroprocesorów Blackfin w "dużych" aplikacjach, bazujących na oprogramowaniu działającym pod opieką systemów operacyjnych, umożliwia wbudowany w nie blok MPU (Memory Protection Unit) lub - w niektórych typach - MMU (Memory Management Unit), które obsługują m.in. translację adresów, co pozwala na wirtualizację dostępu do pamięci przydzielonej poszczególnym zadaniom wykonywanym quasi-równolegle przez system operacyjny.
W zależności od wymogów systemu i aplikacji, funkcję pamięci systemowej prezentowanych mikroprocesorów może spełniać zewnętrzny SRAM via kontroler SMC (Static Memory Controller) lub DMC (Dynamic Memory Controller), który jest przystosowany do obsługi standardowych pamięci SDRAM-DDR2 oraz SDRAM-LPDDR. Obydwa interfejsy zewnętrznych pamięci mają 16-bitowe porty danych.
Wszystkie mikroprocesory z prezentowanej rodziny wyposażono w podstawowe peryferie komunikacyjne, jak interfejsy UART, SPI, I²C, a także natywne opracowania Analog Devices - interfejsy: SPORT (Synchronous serial PORT - dupleksowy port cyfrowego audio) oraz PPI (Parallel Port Interface). W zależności od typu mikroprocesora liczba wbudowanych interfejsów komunikacyjnych zmienia się, podobnie jak pojemność wewnętrznych pamięci cache oraz buforów L1. Przykładową specyfikację bloków peryferyjnych wbudowanych w mikroprocesory ADSP-BF60x przedstawiono w tabeli 1.
Wszystkie wymienione w tabeli mikroprocesory są dwurdzeniowe, dwa najsilniejsze modele (ADSP-BF608/609) wyposażono w wyspecjalizowane bloki wspomagające obróbkę i analizę sygnałów wideo:
- PIXC (Pixel Compositor) - koprocesor graficzny realizujący różne operacje na jednym lub dwóch strumieniach danych obrazu, m.in. nakładanie obrazów na siebie z regulowanym współczynnikiem przeźroczystości, konwersję przestrzeni kolorów, powiększanie fragmentów obrazu itp.,
- PVP (Pipelined Vision Processor) - koprocesor obliczeniowy przystosowany do obróbki i analizy obrazów monochromatycznych, wyposażony w mechanizmy wspomagające rachunki falkowe. Składa się z 8 torów funkcjonalnych, za pomocą których można skalować obraz, tworzyć jego histogram, wykrywać i śledzić obiekty itp.
- Obydwa bloki mogą się komunikować z otoczeniem mikroprocesorów przez interfejsy PPI, komunikację wewnątrz mikrokontrolera zapewnia kanał DMA. Schemat blokowy mikroprocesorów ADSP-BF60x pokazano na rysunku 1.
Intensywne działania marketingowe prowadzone przez dostawców podzespołów elektronicznych coraz częściej wzbudzają nieufność konstruktorów co do prawdziwej, osiąganej w realnej aplikacji, wydajności mikroprocesorów, zwłaszcza że w tak skomplikowanych rozwiązaniach jak Blackfin zależy ona od wielu czynników, w tym bibliotek programowych.
Wyposażenie zestawu FinBoard:
|
DSP: drogo i trudno?DSP większości konstruktorów kojarzy się z trudnościami i wysokimi kosztami. Mikroprocesory Blackfin i ich otoczenie zaprzeczają tej teorii:
|
Linux dla BlackfinAnalog Devices prowadzi specjalną stronę w domenie uclinux.org, na której udostępnia dystrybucje tego systemu operacyjnego dla mikroprocesorów Blackfin, środowiska programistyczne, poradniki, dokumentacje oraz przykładowe programy. Szczegóły są dostępne pod adresem http://blackfin.uclinux.org. |
Żeby uprościć i przyspieszyć ocenę przydatności swoich rozwiązań dla aplikacji wideo, firmy Analog Devices oraz Avnet przygotowały tani zestaw ewaluacyjny z mikroprocesorem ADSP-BF609 o nazwie FinBoard. Jego wygląd pokazano na fotografii 2. Jak widać, wyposażono go w kamerę z sensorem CCD 720p, interfejs Ethernet, wyjście HDMI oraz 128 MB pamięci SDRAM-DDR2. Schemat blokowy zestawu zamieszczono na rysunku 3, wymienione na nim zostały wszystkie elementy tworzące otoczenie mikroprocesora Blackfin.
Ważnym elementem zestawu Fin-Board jest przykładowa aplikacja, która pokazuje możliwości zarówno samego mikroprocesora, jak i bibliotek programowych wykorzystanych do obróbki obrazu. Przykładowa aplikacja umożliwia zliczanie oczek wyrzuconych kostek, wykorzystano w niej mechanizm sprzętowego wykrywania krawędzi (realizuje to zadanie blok PVP) i zliczania wykrytych oczek, za co odpowiada oprogramowanie wykonywane przez rdzenie Blackfin.
W skład wyposażenia zestawu wchodzi m.in. 12-miesięczna licencja na oprogramowanie CrossCore Embedded Studio, które jest kompletnym środowiskiem programistycznym dla mikroprocesorów Blackfine (oraz SHARC), dzięki czemu każdy użytkownik zestawu FinBoard może samodzielnie tworzyć i testować własne aplikacje, a także modyfikować domyślną aplikację testową oraz inne aplikacje demonstracyjne, udostępnione na stronie www.finboard.org/design.
Warto zwrócić uwagę, że CrossCore Embedded Studio bazuje na Eclipse IDE, co jest kolejnym atutem oferty Analog Devices: coraz większa liczba popularnych środowisk programistycznych dla mikrokontrolerów także wykorzystuje Eclipse, co pozwala programistom dobierać platformy sprzętowe do wymogów aplikacji bez konieczności zmiany przyzwyczajeń.
Cechy i możliwości prezentowanych w artykule mikroprocesorów tworzą z nich atrakcyjną platformę dla zaawansowanych aplikacji bazujących na obróbce i analizie sygnału wideo. Ich atutami są także niewielki pobór mocy, mało wyrafinowane i przez to tanie otoczenie sprzętowe, a także wspomniane wcześniej podobieństwo modelu programistycznego do standardowych mikroprocesorów i wielu mikrokontrolerów: naprawdę każdy może spróbować, zwłaszcza że cena zestawu FinBoard jest niezwykle atrakcyjna.
Dodatkowe materiały na temat mikroprocesorów Blackfin i narzędzia dla nich są dostępne pod adresami: |
Piotr Zbysiński