W sercu GP2X (1)

grzywacz

2006-09-10 22:06:24 Edytuj

Słowo wstępu

GP2X to niszowa konsolka do zastosowań wszelkich (przez producenta określana jako "personal entertainment player"), działająca pod kontrolą Linuksa. Mimo tego, że została wyprodukowana przez GamePark Holdings, nieznaną u nas firmę z Korei Południowej, zamknięty w czarnej obudowie sprzęt jest dość ciekawy, a jego wykorzystanie może być interesującym wyzwaniem dla każdego zapalonego programisty. W kolejnych wpisach postaram się rzucić nieco więcej światła na poszczególne jej elementy.

MMSP2

Głównym układem konsoli jest MP2520F, będący częścią platformy MMSP2. Jest to układ typu SoC, czyli, mówiąc bardzo potocznie, kupa składającej się na komputer elektroniki zintegrowanej w ramach jednej kości. W jego skład wchodzą dwa 32-bitowe procesory ARM 920T i 940T (artykuł w Wikipedii wart przeczytania), kontroler pamięci, kontroler przerwań, procesor video, postprocesor video, procesor graficzny (2D), procesor obrazu, układ dźwiękowy zgodny z AC97, kontroler obrazu oraz zestaw różnorodnych komponentów wejścia/wyjścia (USB, kontroler pamięci Flash oraz SD/MMC, UART, I2C). Oprócz tego realizuje funkcje DMA, zegarów czasu rzeczywistego oraz zarządania energią. Co ciekawe, konsola nie posiada zasilanej pamięci CMOS, przez co nie jest w stanie pamiętać ustawionego czasu (zegary resetowane są przy każdym uruchomieniu).

Komunikacja

Poszczególne komponenty komunikują się między sobą oraz z urządzeniami zewnętrznymi przy pomocy 4 niezależnych szyn danych, przy czym dostęp do pamięci możliwy jest tylko przy pomocy jednej z nich (dzielonej przez oba procesory oraz kontroler DMA). Oprócz tego możliwa jest bezpośrednia, potokowa komunikacja między postprocesorem video a kontrolerem obrazu, dzięki czemu zdekodowany obraz w formacie YUV może być od razu wyświetlany i opcjonalnie poddany dodatkowemu przetwarzaniu, umożliwiającemu takie operacje jak deblocking, deringing, skalowanie, konwersje przestrzeni kolorów oraz dithering (realizowane sprzętowo). Podobne połączenie funkcjonuje między procesorem obrazu (mogącym przetwarzać obraz z kamer - tu niewykorzystywane) a postprocesorem video. Nie trzeba dodawać, że takie rozwiązanie znacznie odciąża pamięć.

Procesor 2D

Producent firmuje tę część MMSP2 jako zdolną do akcelerowania operacji GDI oraz Direct2D w Windows CE. Użytkowników GP2X, która pracuje pod kontrolą Linuksa to rzecz jasna nie interesuje. Oczywiście nie wyklucza to użycia go do zwiększenia wydajności operacji graficznych. Część możliwości dostępna jest w łatwy sposób dzięki implementacji sprzętowo akcelerowanych funkcji w bibliotece SDL (blitting, double buffernig, ...). Inne wymagają od programisty bezpośredniej interakcji ze sprzętem.

Procesor video

Układ ten zdolny jest do sprzętowego dekodowania filmów zakodowanych zgodnie z MPEG4, DivX 3.11/4/5 lub MJPEG. Oprócz tego zapewnia część z dostępnych funkcji obróbki obrazu (m.in. deblocking i deringing). Maksymalne parametry dekodowanego obrazu to rozdzielczość 720x480 przy 30 klatkach na sekundę (przetestowałem, działa jak złoto :)).

Postprocesor video

Ten element MMSP2 umożliwia dalszą obróbkę obrazu video, w tym skalowanie, obroty, kontrolę nasycania, kontrastu, jasności, gammy, dithering, alpha blending, color keying oraz konwersje przestrzeni kolorów. Pomniejszanie obrazu przydaje się, gdy chcemy wyświetlić film w niskiej (320x240) rozdzielczości ubsługiwanej przez wbudowany ekran LCD, powiększanie zaś, gdy chcemy skorzystać z wyjścia S-Video i wyświetlić obraz z konsoli na telewizorze.

Kontroler obrazu

Maksymalna obsługiwana rozdzielczość wyświetlanego obrazu to 1024x768, choć w GP2X wykorzystać można tylko 320x240. Obsługiwane są wszystkie typowe głębie kolorów RGB (8-24 bity) oraz kilka bardziej egzotycznych.

Wejście/wyjście

MMSP2 daje spory wybór interfejsów we./wyj., z czego nie wszystkie daje się w pełni wykorzystać w GP2X. Kontroler hosta USB umożliwia podłączenie zewnętrznych urządzeń takich jak np. mata do DDRa ;-), ale niezasilany port w konsolce wymaga do tego użycia dodatkowego huba. GP2X może działać też jako zwykłe urządzenie USB (sieć, dostęp do karty SD w trybie usb storage). Kontroler UART umożliwia skorzystanie z 4 portów szeregowych, ale potrzebna jest do tego specjalna płytka rozszerzająca dla developerów, podłączana do portu Ext(ension). Opcjonalnie można pobawić się lutownicą, jak w opisie dodawania odbiornika GPS

Podsumowanie

W powyższym zestawieniu pominąłem dokładniejsze opisy modułów DMA, I2C, zarządzania energią, zegarów oraz watchdoga, jako że nie są one specjalnie interesujące z punktu widzenia użytkownika konsoli. O układzie dźwiękowym mogę niestety powiedzieć tylko tyle, że działa. Szczegółowe informacje na temat budowy układu MMSP2 można znaleźć na stronie producenta, w opisie chipsetu oraz pełnym manualu. W następnej części przyjrzę się nieco dokładniej obu procesorom konsolki i postaram się przedstawić ich zalety, wady oraz sposoby radzenia sobie z tymi ostatnimi.

Notka dodana do: gp2x .

Komentowana 0 raz(y)

Zostaw komentarz

Wymagane

Dozwolone tagi XHTML:
<a> <b> <i> <u> <tt> <code> <pre> <blockquote> <ul> <ol> <li> <acronym>

Link do trackbackowania  |  Śledź tę notkę (RSS)

Kategorie

Blogroll  |  Edytuj

Linki  |  Edytuj

Feeds