[POLICZ OCZKA ;-)] FinBoard Analog Devices: procesory DSP z rodziny Blackfin w aplikacjach wideo
Niewielu konstruktorów zna z własnej praktyki realne możliwości mikroprocesorów DSP, co sprzyja tworzeniu mitów. Prezentowany w artykule zestaw o nazwie FinBoard ułatwi i przyspieszy poznanie możliwości jednego z procesorów należącego do rodziny Blackfin, w aplikacji demonstrującej zaawansowaną obróbkę obrazu.
Większość konstruktorów zapytanych o producentów mikroprocesorów dla aplikacji DSP odpowie zapewne: „Analog Devices” lub „Texas Instruments”. Tak też wygląda rzeczywistość rynkowa: tylko te dwie firmy oferują dojrzałe, kompleksowe rozwiązania DSP. W artykule chcemy zwrócić uwagę Czytelników na oferowane przez Analog Devices mikroprocesory z rodziny Blackfin, które są szczególnie interesujące dla konstruktorów nie mających doświadczeń z aplikacjami DSP. Tworząc je na układach z rodziny Blackfin mogą podczas pisania aplikacji stosować klasyczne podejście „mikrokontrolerowe”, co minimalizuje ryzyko przymusu radykalnej zmiany zawodowych przyzwyczajeń.
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. Rodzina mikroprocesorów Blackfin składa się 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. Zestawienie podstawowych cech i parametrów układów Blackfin ADSP-BF60x znajduje się w tabeli 1.
Tab. 1. Zestawienie bloków peryferyjnych wbudowanych w mikroprocesory Blackfin ADSP-BF60x
Blok peryferyjny |
ADSP-BF606 |
ADSP-BF607 |
ADSP-BF608 |
ADSP-BF609 |
Liczniki up/down/rotary |
1 |
|||
Timery-liczniki PWM |
8 |
|||
3-fazowe timery-liczniki PWM |
4 pary |
|||
SPORT/SPI/TWI |
3/2/2 |
|||
USB-OTG |
1 |
|||
PPI |
3 |
|||
RSI |
1 |
|||
CAN |
1 |
|||
UART |
2 |
|||
ACM |
1 |
|||
Link Port |
4 |
|||
Ethernet MAC |
2 |
|||
PIXC |
– |
– |
1 |
1 |
PVP |
– |
– |
VGA |
HD |
GPIO |
112 |
|||
Liczba rdzeni |
2 x Blackfin |
|||
Częstotliwość taktowania |
400 MHz |
500 MHz |
500 MHz |
500 MHz |
Pojemność cache L1 |
128 kB (po 64 kB na rdzeń) |
296 kB (po 148 kB/rdzeń) |
296 kB (po 148 kB/rdzeń) |
296 kB (po 148 kB/rdzeń) |
Pojemność cache L2 |
128 kB (po 64 kB na rdzeń) |
256 kB (po 128 kB/rdzeń) |
256 kB (po 128 kB/rdzeń) |
256 kB (po 128 kB/rdzeń) |
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.