TouchGFX, czyli nowoczesne GUI na tanim mikrokontrolerze

| Prezentacje firmowe Artykuły

Smartfony, tablety i inne konsumenckie urządzenia mobilne nie tylko zmieniły nasz świat w płaszczyźnie technicznej, ale też wyznaczyły nowe standardy w zakresie interfejsu użytkownika. Wystarczy porównać grafikę wyświetlaną przez smartfony, a tym co pokazują na ekranach liczne urządzenia specjalistyczne, aby zrozumieć, że interfejs użytkownika, a dokładniej jakość grafiki i intuicyjna konstrukcja logiczna nierzadko bardzo się różnią.

TouchGFX, czyli nowoczesne GUI na tanim mikrokontrolerze

Rys. 1. Przykłady interfejsu użytkownika zbudowanego w oparciu o TouchGFX

Te pierwsze zaskakują czytelnością, dopracowaniem szczegółów, logiczną strukturą działań, te drugie najczęściej topornością kształtów elementów, nieestetyczną kolorystyką, a nierzadko też niejasną i nieoczywistą konstrukcją menu. Powodów takich różnic jest wiele, m.in. brak wiedzy, czasu, umiejętności z zakresu wzornictwa i grafiki, a także to, że często interfejs użytkownika projektuje ten sam inżynier, który koduje algorytm i projektuje układ.

W dzisiejszym świecie techniki obowiązuje specjalizacja, stąd coraz częściej chcąc uzyskać dobry efekt, trzeba odeprzeć pokusę zrobienia wszystkiego we własnym zakresie i skorzystać z doświadczenia i kompetencji innych.

Jest to istotne zwłaszcza, gdy mikrokontroler w aplikacji użytkownika ma ograniczone zasoby pamięci i wydajności, bo w takim przypadku uzyskanie wysokorozdzielczej szczegółowej grafiki i szybkiej reakcji na polecenia nie jest proste.

Takie problemy w sposób rewolucyjnie prosty można rozwiązać za pomocą oprogramowania TouchGFX firmy Draupner Graphic, które pozwala na uzyskanie wysokiej jakości grafiki na taniej platformie sprzętowej (np. STM32). Może ono wykorzystywać między innymi możliwości zawartego w MCU akceleratora Chrom-ART do superwydajnego renderowania grafiki oraz obsługuje kontroler wyświetlacza LCD-TFT i ekran dotykowy do realizacji interfejsu użytkownika o unikalnym smartfonowym wyglądzie i sposobie korzystania.

TouchGFX obsługuje dwuwymiarowe transfery DMA, co umożliwia bardzo wydajne tworzenie map bitowych i odciążenie CPU. Wsparcie sprzętowe alpha-blendingu i renderingu tekstowego zapewnia bardzo małe obciążenie MCU nawet na najbardziej skomplikowanych ekranach.

Platforma TouchGFX uwalnia też projektanta aplikacji od wysiłku związanego z koniecznością zapewnienia czułego i responsywnego interfejsu dotykowego. Ponownie warto zauważyć, że na sprzęcie o ograniczonej wydajności zapewnienie szybko działającego GUI, które nie "zastanawia się" przez dłuższą chwilę zanim zareaguje na polecenie ani też nie wymaga kilkukrotnego pukania palcem w ekran, nie jest banalne. TouchGFX jest dopracowany w takich szczegółach.

Możliwości TouchGFX

TouchGFX działający na STM32F4 zapewniają wysokowydajną platformę GUI z dużym zapasem mocy obliczeniowej do działania aplikacji sterującej. Od strony graficznej realizowane są funkcje, takie jak przeźroczystość, przekształcanie formatu obrazu w locie i alpha-blending, czcionki z wygładzaniem krawędzi i kerningiem, gesty dotykowe i animacje oraz przejścia między pełnymi ekranami. Grafika tworzona jest z użyciem zaawansowanych algorytmów renderujących zapewniających automatyczne usuwanie niewidocznych powierzchni i dostosowane techniki inwalidacji minimalizującej liczbę używanych pikseli przy tworzeniu obrazu.

TouchGFX działa na ekranach LCDTFT o przekątnej do 10" we wszystkich popularnych rozdzielczościach: QVGA - 320×240 (często 3,5"), WQVGA 480×272 (typ. 4,3"), WVGA 800×480 (ok. 7") i WSVGA 1024×600 (10"). Oprogramowanie ukierunkowane jest na działanie na mikrokontrolerach z rodziny Cortex M z kontrolerem TFT, ale w praktyce można stosować na każdym MCU.

Obciążenie procesora wymagane dla realizacji funkcji TouchGFX zwykle wynosi mniej niż 15%, przy zajętości wewnętrznej RAM 10-35 KB i zewnętrznej RAM 50 KB - 3 MB (w zależności od dostępnej pamięci RAM w mikrokontrolerze i od rozdzielczości ekranu oraz liczby buforów ramki). Platforma wymaga też 20 KB (środowisko) 10-100 KB (aplikacja) w wewnętrznej Flash i 1-8 MB na grafikę oraz tekst w wewnętrznej lub zewnętrznej pamięci Flash.

Aplikacje testowe

Rys. 2. Aplikacja testowa na płytce STM32F429I EVAL

Dla inżynierów zainteresowanych przetestowaniem możliwości TouchGFX dostępne są aplikacje demo dostępne między innymi na płytkach STM32F429I EVAL i STM32F429I Discovery Kit. Pierwsza wersja bazuje na mikrokontrolerze STM32F429, Cortex M4, taktowanym 180 MHz. Obsługa GUI zabiera 5-20% mocy procesora przy ekranie dotykowym 4,3" 480×272 i 25 ramkach na sekundę. Zajętość RAM wew.: 26 KB = 20 KB na środowisko/aplikację i stos 6 KB. Zajętość wew. Flash: 155 KB (15 KB środowisko, 110 KB aplikacja, 30 KB czcionki) oraz RAM zew.: 783 KB (bufory ramki) i Flash zew.: 12 MB (obrazy).

Aplikacja testowa dla Discovery Kit bazuje na tym samym MCU i ekranie dotykowym 2,4" 320×240 pikseli zapewniając min. 25 fps. Zajętość pamięci: RAM wew.: 26 KB, Flash wew.: 75 KB + 1,9 MB, RAM zew.: 326 KB (bufory ramki).

Modele licencjonowania

Atutem TouchGFX jest elastyczny system licencjonowania stosowany przez producenta uwzględniający potrzeby firm działających w różnej skali. Dodatkowo do celów projektowych i testowych prekompilowana biblioteka TouchGFX Core, narzędzia dla programistów, aplikacje demonstracyjne, szablony, kod źródłowy i dokumentacja udostępniane są bezpłatnie.

Przykładowe ceny licencji dla produkcji realizowanej w ograniczonej skali (maks. 3000 jednostek rocznie) zaczynają się już od 3 tys. euro. Zamawiający może wykupić za opłatą wsparcie techniczne producenta i opcję konserwacji (maintenance).

Masters sp. z o.o.
www.masters.com.pl