wersja mobilna
Online: 480 Sobota, 2016.12.03

Technika

Analog Devices Blackfin - potęga DSP dla każdego

czwartek, 09 stycznia 2014 14:29

Jednym 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".

Rys. 1. Schemat blokowy mikroprocesorów Blackfin BF60x

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.

Tabela 1. Zestawienie bloków peryferyjnych wbudowanych w mikroprocesory Blackfin ADSP-BF60x

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.

Rdzeń Blackfin vs ARM

Rozwiązania zastosowane w rdzeniach Blackfin umożliwiają uzyskanie dużej wydajności przy zachowaniu niewielkiego poboru mocy, co wykazały aplikacje testowe EEMBC (Embedded Microprocessor Benchmark Consortium), za pomocą których porównano wydajności wybranych implementacji rdzeni ARM926E-J i ARM1136JF z Blackfin. Przedstawione poniżej w tabeli zestawienie wyników testów zaczerpnięto ze strony www.eembc.org.

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.

Fot. 2. Wygląd płytki drukowanej zestawu FinBoard z kamerą CCD i mikroprocesorem ADSP-BF609

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:
  • płytka zestawu z mikroprocesorem Blackfin BF609
  • debugger JTAG Analog Devices ICE-100B
  • karta 2 GB microSD
  • zasilacz sieciowy 5 V, kable HDMI i USB
  • trójnóg fotograficzny ze śrubą mocującą do płytki FinBoard
  • pięć kostek do gry
  • dwie 6-mesięczne licencje na pakiet CrossCore Embedded Studio
  • dokumentacja i programy przykładowe (częściowo do pobrania ze strony http://www.finboard.org)
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:

  • cena najtańszego układu z rodziny Blackfin - BF592 - wynosi (dla 1000 szt.) zaledwie 1,99 USD,
  • doskonale wyposażony zestaw ewaluacyjny FinBoard jest dostępny w cenie od 199 USD,
  • środowisko programistyczne bazuje na popularnym IDE Eclipse.
Linux dla Blackfin

Analog 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.

Rys. 3. Schemat blokowy zestawu FinBoard

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:
www.analog.com/cces - pakiet CrossCore Embedded Studio
www.finboard.org/design - przykładowe programy dla zestawu FinBoard
www.analog.com/BF-VAT - oprogramowanie do obróbki i analizy obrazu Vision Analytics Toolbox

Piotr Zbysiński