Научная статья на тему 'ГРАФИЧЕСКАЯ БИБЛИОТЕКА STEMWIN ДЛЯ STM32F429/439'

ГРАФИЧЕСКАЯ БИБЛИОТЕКА STEMWIN ДЛЯ STM32F429/439 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
251
99
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ГРАФИЧЕСКАЯ БИБЛИОТЕКА STEMWIN ДЛЯ STM32F429/439»

Максим ДЕРжАНСКИИ

Графическая библиотека

StemWin для STM32F429/439

Визуальная информация наиболее эффективна для восприятия и принятия решений практически в любом виде деятельности. Именно поэтому дисплеи значительно увеличивают действенность всех приложений, в которых принятие решений и контроль осуществляется человеком. Это:

• воздушные приложения (военная, гражданская авиация);

• судовые приложения (морские и речные);

• мобильные и стационарные наземные приложения (пульты управления автоматизированного производства, система «умный дом», охранные системы, медицинское оборудование, музыкальные системы, торговое оборудование и многое другое). Также согласно новым тенденциям появляется все больше современных разработок, от которых требуются расширенные возможности по визуализации, отображению и созданию НМ1-интерфейсов. Тем самым компании повышают свою конкурентоспособность на рынке.

О микроконтроллерах STM32F4 и их графических возможностях написано уже много статей [1-4], сделано немало презентаций, проведены семинары. Но, на наш взгляд, недостаточно информации о программном обеспечении. Поэтому в данной статье мы расскажем о новой линейке STM32F429/439 (на рис. 1 выделена красным цветом), после чего рассмотрим графическую библиотеку, благодаря которой реализуются все графические возможности этих микроконтроллеров.

Описание новой линейки STM32F429/439

Микроконтроллеры STM32F429/439 обладают самым широким набором периферии и максимальной производительностью по сравнению с другими контроллерами семейства.

Отличия от линеек STM32F4x9: • Высокопроизводительное ядро ARM

Cortex-M4. (Частота работы — 180 МГц.

Достигает производительности 210 DMIPS.)

• Объем Flash-памяти: до 2 Мбайт.

• Объем ОЗУ: 256 кбайт.

• Интегрированный контроллер TFT/LCD-дисплеев.

• Графический ускоритель DMA2D (ChromART).

• Аудиоинтерфейс SAI (Serial Audio Interface).

• Контроллер внешней памяти FMC (Flexible memory controller) с поддержкой SDRAM. Но главная особенность этой линейки —

это наличие интегрированного контроллера TFT/LCD-дисплеев и графического ускорителя Chrom-ART. Их мы рассмотрим более детально.

Интегрированный контроллер TFT-LCD Следует отметить, что по сравнению с более ранними контроллерами STM32 в этом контроллере сняты существенные ограничения. Он обеспечивает 24-битный RGB-интерфейс и сигналы взаимодействия непосредственно с TFT/LCD-панелями с разрешением 640x480 (480 линий по 640 пикселей).

Общая периферия

Г

Ядро Cortex-M4 (DSP + FPU)

До 2xUSB 2.0 OTG

FS/HS

SDIO

USART, SPI, l2C l2S + audio PLL 16/32-бит таймеры

До 3* 12-бит АЦП (0,41 мкс)

Напряжение питания от 1,7* до 3,6 В

STM32F429/439

180 МГц 512 Кбайт-2 Мбайт FLASH 256 Кбайт SRAM Аппаратные CRYPTO" HASH™ Генератор случайных чисел 2* 12-бит ЦАП Ethernet IEEE 1588 2xCAN Интерфейс камеры Контроллер SDRAM FMC Serial audio Interface (SAI) Графический ускоритель Chrom-ART TFT-LCD-контроллер

STM32F427/437

180 МГц 1-2 Мбайт FLASH 256 Кбайт SRAM Аппаратные CRYPTO" HASH™ Генератор случайных чисел 2« 12-бит ЦАП Ethernet IEEE 1588 2*CAN Интерфейс камеры Контроллер SDRAM FMC Serial audio Interface (SAI) ChromART Accelerator

+

STM32F407/417

168 МГц Аппаратные

512 кбайт- CRYPTO" 2* Ethernet

1 Мбайт HASH™ 12-бит IEEE 1588 Интерфейс

FLASH Генератор ЦАП камеры

192 Кбайт случайных 2*CAN

SRAM чисел

STM32F405/415

Q

Примечание:

* 1,7 В в определенных корпусах ** Аппаратный модуль CRYPTO/HASH только в STM32F415/417/F437/439

STM32F401

84 МГц Эффективность по питанию:

128 кбайт - 512 кбайт • Режим Run до 140 мкА/МГц

FLASH • Режим Stop до 11 мкА

64 Кбайт SRAM Наличие малых корпусов до 3*3 мм

Рис. 1. Линейка микроконтроллеров STM32F4

1041

компоненты

микроконтроллеры

Особенности:

• гибкая система параметров отображения экранных слоев;

• гибкий инструментарий обработки изображения;

• гибкая система настроек и инструментов для конфигурации глобальных параметров дисплея и параметров слоев;

• два экранных слоя с буферами FIFO (64x32 бит);

• до восьми форматов цвета на каждый слой, включая ARGB8888, RGB888, RGB565, ARGB1555, ARGB4444, L8, AL44 и AL88;

• два вектора прерывания, четыре типа событий прерывания;

• таблица цветов Color Look-Up Table (CLUT): с поддержкой до 256 24-битных цветов на каждый слой.

Графический ускоритель Chrom-ART (DMA2D)

Его основная задача — освобождение процессора и контроллера от выполнения некоторых операций по обработке изображения (перемещение группы битов (образа) из одного места экрана в другое, преобразование формата данных). Есть специализированный DMA для работы с изображениями. Ускоритель является мастером на шине AHB и работает с различными форматами данных. К его особенностям можно отнести:

• поддержку различных форматов цвета пикселей;

• поддержку двух источников изображений (возможность a-смешивания);

• использование таблицы цветов CLUT с программируемым размером;

• наличие внутреннего таймера (контроль пропускной способности АНВ);

• использование четырех типов обмена (регистр-память, память-память, память-память с преобразованием формата цвета, память-память со смешиванием и с преобразованием формата цвета);

• прерывания по событиям (ошибка конфигурации, завершение обмена (либо ошибка) с CLUT, достижение заданной позиции при передаче, завершение (либо ошибка) передачи данных).

DMA2D осуществляет заливку исходного изображения или его частей заданным цветом, а также копирование изображения или его части в заданную область (возможно с преобразованием формата цвета пикселей). Он смешивает изображения или его части с различными форматами цветов пикселей с помещением в заданную область конечного изображения (с дополнительным преобразованием формата цвета пикселей). Есть возможность использования внешней памяти различных типов, что дает дополнительную гибкость при построении графических приложений.

Так как все графические возможности STM32F4 реализуются с помощью графической библиотеки, далее опишем непосред-

ственно саму графическую библиотеку, доступный инструментарий и работу с ней.

Графическая библиотека STemWin

средственно рабочее окно GUШшlder и (или) имеющиеся навыки программирования. Поэтому при ее рассмотрении будут приведены примеры кода команд.

Это профессиональная библиотека emWin от SEGGER. Компания STMicroelectronics получила на нее лицензию у SEGGER. Для пользователей STM32 эта библиотека бесплатна, и последнюю актуальную версию всегда можно скачать с официального сайта компании STMicroelectronics.

STemWin позволяет строить графические приложения на базе любого контроллера STM32 и любого дисплея (TFT или LCD, с различными типами контроллеров). Она реализует все аппаратные преимущества STM32 и имеет все самые необходимые средства и инструменты (например, симулятор, дизайнер приложений и т. п.).

STemWin является комплексным решением и поддерживает графические форматы JPG, GIF, что позволяет декодировать растровый формат хранения графической информации (PNG). Эта библиотека имеет множество вид-жетов (флажки, кнопки и др.), сервер VNC (показ дистанционно локального дисплея), профессиональный инструмент для простого создания диалоговых окон (GUIBuilder), конвертер шрифта и многое другое.

Графическая библиотека STemWin рассчитана только на линейку STM32. Для работы с библиотекой можно использовать непо-

М

Приложение

Библиотека виджетов

Менеджер окон

Визуализация (рендеринг) основного графического интерфейса пользователя

Запоминающее устройство

Виртуальный вычислительный сервер сети

Драйвер дисплея

FlexColor ■ LIN

Конфигурация LCD

Конфигурация графического интерфейса пользователя

Слой аппаратных абстракций

Рис. 2. Реализация STemWin

в

STemWin_Library_V1.0.0

_htmrec Libraries

STemWinLibrary520d

- Corvflg

- Documentation

- inc

- Lib

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

- OS

- Software__у

IB- STM32F1 Ox_ETH_Driver Щ- STM32F1 Ox_StdPeriph_Driver l+H STM32F2x7_ETH_Driver ф-| STM32F2xx_StdPeriph_Driver ф-l STM32F30x_StdPeriph_Driver à~| STM32F37x_StdPeriph_Driver l±H STM32F4x7_ETH_Driver ф~- STM32F4xx_StdPeriph_Driver Й-- STM32L1 xx_StdPeriph_Driver

Project - Binaries

STM32100B_EVAL

ф~- STM32100E_EVAL

ÉH STM3210B_E VAL

l+H STM3210C_EVAL

[+H STM3210E_EVAL

Й-- STM322xG_EVAL

IB- STM32303C_EVAL

ф~- STM32373C_EVAL

l+H STM324xG_EVAL

l+H STM32L152_EVAL

ф-j STM32L152D_EVAL

B--

STM32_EVAL

Й-

Third_Party

Стандартные и расширенные библиотеки

STemWin графическая библиотека:

Config: глобальный конфигурационный файл+шаблоны

GUIConf и LCDConf файлы

Documentation: документация

EMWIN Пользователь и справочное руководство

Inc: файлы заголовков компонентов STemWin

Lib: библиотеки в двоичном формате, скомпилированные для ядер

СМЗ и СМ4 (с и без поддержки OS)

OS: библиотека интерфейса с RTOS

Software: приложение для ПК

Binaries folder:

содержит все проекты в формате «.hex»

Примеры реализации

STM32_EVAL:

стандартный драйвер аппаратной оценки Third_Party: другие драйверы:

- LwlP drivers

- FreeRTOS drivers

Рис. 3. Дерево проекта STemWin

2. Двунаправленный текст. Автоматически поддерживается. Достаточно одного включения командой GUI_UC_EnableBIDI ().

3. Альфа-смешивание. Метод, сочетающий альфа-канал с другими слоями в изображении, чтобы создать видимость полупрозрачности (рис. 5). Можно включить автоматическое альфа-смешивание с помощью команды GUI_EnaЫeAlpha ((). Также можно установить уровень значения альфа, чтобы определить, сколько пикселей должно быть видно и сколько фона должно быть показано через них (команда GUI_SetUserAlpha ()).

Рис. 4. Структура примеров STemWin

На рис. 2 и 3 показаны реализация STemWin и дерево проекта с общим описанием.

Дерево проекта содержит в себе два субпроекта (рис. 4):

• операционная система реального времени (RTOS) на основе примеров;

• пример Standalone.

Использование графической библиотеки STemWin

Библиотека состоит из двух частей:

• конфигурация GUI;

• конфигурация LCD/TFT. Конфигурация GUI охватывает всю конфигурацию цветов, шрифтов и доступной памяти. Конфигурация LCD/TFT больше зависит от оборудования и дает возможность пользователю определить физический размер и драйвер дисплея и процедуры преобразования цветов, которые будут использоваться.

При установке нового контроллера LCD/TFT-дисплея должны быть созданы два файла конфигурации, в дополнение к уже существующим файлам конфигурации ОС: GUIConf_stm32xxx_eval.c и LCDConf_ stm32xxx_eval.c.

Для инициализации внутренних структур и переменных данных STemWin необходимо использовать GUI_Init (). Такой вид инициализации показан на примере простой программы Hello world:

void Main(void) { int xPos, yPos; GUI_Init();

xPos = LCD_GetXSize() / 2; yPos = LCD_GetYSize() / 3; GULSetFont(GUI_FONT_COMIC24B_ASCn); GUI_DispStringHCenterAt("Hello world!", xPos, yPos);

while(1);

}

Основные возможности графической библиотеки:

1. Отображение файлов. STemWin поддерживает BMP, JPEG, GIF и PNG форматы файлов. Библиотека включает в себя API-интерфейсы для каждого из этих форматов изображений.

Рис. 5. Эффект альфа-смешивания

4. Спрайты и курсоры. Спрайт — графический объект, свободно перемещающийся по экрану (команда GUI_SPRITE_ CreateAnim ()). Спрайт показан поверх другого изображения на экране (рис. 6). Его можно удалить в любое время без потери содержимого экрана. Возможна также анимация с использованием нескольких изображений. STemWin включает в себя общесистемные курсоры (рис. 7), которые также могут быть анимированы с помо-

Рис. 6. Спрайт

* * *

- ++

Рис. 7. Общесистемные курсоры

щью команды GUI_CURSOR_SetAnim (). Курсор не виден, пока не сделан вызов. Чтобы показать его, нужна команда GUI_ CURSOR_Show (), чтобы снова скрыть — GUI_CURSOR_Hide ().

5. Память. Команда вызова — GUI_ MEMDEV_Create (). Проверка — GUI_MEMDEV_Select (). Все операции рисования выполняются в памяти. Окончательный результат отображается на экране только тогда, когда все операции были закончены (вызов командой GUI_MEMDEV_CopyToLCD ()). Можно использовать память для:

- предотвращения мерцающего эффекта (прямой рисунок на дисплее);

- распаковки образцов;

- вращения (команда GUI_MEMDEV_ Rotate ()) и масштабирования (рис. 8);

- оконной анимации;

- эффектов прозрачности.

Для увеличения объема памяти рекомендуется использовать внешнюю память, если она доступна.

6. Можно сглаживать и разглаживать кривые и диагональные линии, не смешивая их с фоном. Это делается путем добавления промежуточных цветов между объектом и фоном. STemWin поддерживает сглаживание:

- текста;

- дуги — команда GUI_AA_DrawArc ();

- круга — команда GUI_AA_FillCircle ();

- линий — команда GUI_AA_DrawLine ();

- многоугольников — (команды GUI_ AA_DrawPolyOutline () и GUI_AA_ FillPolygon ()).

7. Диспетчер окон включает в себя:

- Систему управления иерархической структурой окон. Каждый слой имеет свое собственное окно. Каждое окно может иметь свое иерархическое дерево дочерних окон.

- Функцию возврата.

- Библиотеку виджетов (рис. 9).

Рис. 9. Библиотека виджетов

1061 компоненты микроконтроллеры

Работа всех виджетов основана на функциях диспетчера окон. После того как виджет создан, он точно так же, как и любое другое окно, должен правильно отображаться (прорисовывается каждый раз, когда это необходимо). Создать виджет можно с помощью одной строки кода.

- Прямое: <Widget> _CreateEx () — создание без пользовательских данных; <Widget> _Createuser () — создание с пользовательскими данными.

- Косвенное: создание диалогового окна и структуры GUI_WIDGET_CREATE_ INFO, которая содержит указатель на косвенные подпрограммы создания (<Widget> jCreatelndirect ()).

8. VNC-сервер. Virtual Network Computing (VNC) — система удаленного доступа к рабочему столу компьютера. Сервер VNC используется для подключения к ПК через TCP/IP. Он позволяет просматривать содержимое LCD-дисплея на удаленном мониторе ПК и управлять ПК. (Можно использовать мышь и клавиатуру для управления удаленным ПК.)

9. Шрифты. Все наиболее распространенные шрифты включены в библиотеку STemWin в качестве стандартного пакета шрифтов. Также поддерживаются другие форматы (SIF, XBF, TTF).

10. GUIBuilder. Используя GUIBuilder (рис. 10), можно легко создавать диалоговые окна без написания исходного кода. Можно разместить виджеты (или изме-

нить их размеры) путем обычного перетаскивания. Дополнительные свойства могут быть добавлены с помощью контекстного меню. GUIBuilder самостоятельно создает диалоговый код, который может использоваться как самостоятельно, так и быть интегрированным в другой проект.

Заключение

Сегодня мало иметь хорошее решение с аппаратной стороны, нужно также предоставить пользователю качественное программное обеспечение, которое значительно упростит работу с микроконтроллером и даст дополнительные возможности.

Графическая библиотека STemWin реализует все аппаратные преимущества STM32F4 с TFT-контроллером. Она включает в себя

все самые необходимые средства и инструменты, что позволяет строить графические приложения на базе любого контроллера STM32 и дисплея (TFT или LCD, с различными типами контроллеров).

Компания STMicroelectronics постоянно развивает свое семейство микроконтроллеров STM32 и программное обеспечение к нему в соответствии со всеми тенденциями рынка, повышая свою конкурентоспособность. Думаем, что знакомство с новой линейкой STM32F429/439 и детальное описание графической библиотеки послужат доказательством этому. ■

Литература

1. Курниц А. Программная эмуляция EEPROM в микроконтроллерах семейства STM32F40x/ STM32F41x // Компоненты и технологии. 2013.

№ 8.

2. Гавриков В. 32 бита за полдоллара // Новости электроники. 2013. № 8.

3. Гавриков В. Мастера графики: новое поколение STM32F4 с поддержкой контроллера TFT // Новости электроники. 2013. № 8.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4. Бородулин А. STM8 и STM32 — объединенное пространство 8- и 32-разрядных микроконтроллеров // Компоненты и технологии. 2009. № 10.

5. AN4323: Getting started with STemWin Library // http://www.st.com/st-web-ui/static/active/en/ resource/technical/document/application_note/ DM00089670.pdf

6. www.st.com

7. www.segger.com

i Надоели баннеры? Вы всегда можете отключить рекламу.