Известно немало преимуществ использования микроконтроллеров во встраиваемых графических системах над микропроцессорными приложениями. Несомненно, без микропроцессорной архитектуры не обойтись при реализации систем с графическим пользовательским интерфейсом (GUI) определенного уровня, но во многих приложениях задача по эффективному управлению этим интерфейсом отлично решается и без дополнительных затрат и усилий. Наиболее значительное преимущество использования стандартных микроконтроллеров, возможно, заключается в уровне интеграции. Речь идет о выборе размеров энергозависимой памяти SRAM и энергонезависимой флэш-памяти, определенного ядра и тактовой частоты, о коммуникационных интерфейсах, портах ввода/вывода и аналоговой периферии.
Кроме того, на рынке предлагается широчайший ряд устройств, которые подходят для большинства встраиваемых систем. Однако если во встраиваемом приложении требуется реализовать графический пользовательский интерфейс с микроконтроллерным управлением, проблемы обеспечения простоты, необходимого пространства и экономии расходов решаются не по мановению волшебной палочки. В таких случаях разработчики встраиваемых приложений решают вопрос о том, в какой мере микроконтроллер сможет отвечать потребностям приложения, или выбирают более дорогостоящий и сложный микропроцессор.
Вопрос №1. Как реализовать управление графикой?
Как правило, встраиваемая графическая система выполняет три функции: визуализацию, управление и хранение. Первая из них отвечает за построение изображения и управление им. Для ее реализации в проектах начального уровня применяется центральный процессор микроконтроллера. В проектах более высокого уровня применяются специализированные микроконтроллеры, оснащенные графическими процессорами, которые облегчают задачу построения изображений, создавая, например, линии и прямоугольники, а также обеспечивая их заливку цветом, перемещение и наложение фигур.
Управляющая функция отвечает за перемещение изображения по экрану. Она реализуется с помощью блока прямого доступа к памяти (DMA) по внешнему параллельному порту микроконтроллера или с привлечением специализированного графического контроллера. Он добавляет такие функции как накладка и вращение, позволяя расширить графические возможности приложения. Наконец, функция хранения используется для отображения требуемой информации. Мы рассмотрим подробнее именно эту функцию.
Вопрос №2. Где хранить данные проекта по реализации GUI?
Объем широко распространенной интегральной SRAM для большинства современных микроконтроллеров составляет 512 Кбайт. Этого объема достаточно для управления статичными графическими пользовательскими интерфейсами, которым требуется только один буфер изображения, или для управления GUI с небольшими экранами и восемью битами на пиксел для представления составляющих цвета. Однако рыночный спрос конечных пользователей свидетельствует о том, что им требуются встраиваемые в устройства интерфейсы, которыми оснащены смартфоны.
Кроме того, компаниям требуются GUI, которые позволяют успешно продвигать их продукцию, в точности представляя фирменную символику. Современный графический интерфейс высокого качества позволяет использовать несколько буферов изображения, функцию наложения слоев и большую глубину цвета, которая особенно востребована для создания фотореалистичных изображений или для точной передачи цвета торговой марки (см. рис. 1).
Рис. 1. Примеры реализации графического интерфейса пользователя: а) растяжение изображения ~12 Мбайт; б) изображение кофеварки ~3 Мбайт
На рисунке 1 приведены два примера реализации графического интерфейса пользователя со многими упомянутыми выше функциями. На фото слева показано фотореалистичное искажение изображения, для которого программа использует около 12 Мбайт энергонезависимой памяти. На рисунке справа представлено изображение кофеварки с небольшими графическими пиктограммами, несколькими наложенными слоями и движущимися объектами. В этом случае для работы программы требуется около 3 Мбайт памяти.
Вопрос №3. Нужна ли внешняя память для хранения GUI?
Итак, для использования стандартного МК высокого класса требуется около 512 Кбайт встроенной SRAM. Очевидно, что в двух приведенных выше примерах потребности приложений в высокоскоростной встроенной памяти превышают возможности почти любого МК на рынке. В результате возникает необходимость в использовании внешней памяти для МК. Такая память должна иметь высокую плотность и производительность, а также быть очень доступной. В качестве внешней памяти для МК можно, например, использовать асинхронную SRAM. Объем этой памяти составляет 8 Мбайт, она проста в разработке, ее адресные линии не мультиплексированы, а выводы подходят для использования с внешними параллельными портами многих микроконтроллеров. Однако объема 8 Мбайт не всегда достаточно для ресурсоемких графических приложений. Стоимость этой памяти часто превышает стоимость самого микроконтроллера. Кроме того, она занимает сравнительно большое место на печатной плате.
Многие микроконтроллеры, предлагаемые на современном рынке, оснащены SDRAM-интерфейсом, который используется в т.ч. для хранения графических данных. Объем внешней памяти SDRAM составляет 8–16 Мбайт. Эта память экономически намного более эффективна, чем внешняя SRAM. Как уже упоминалось, объем 8 Мбайт – нижнее предельное значение, т.к. для приложений с графическими интерфейсами требуется гораздо больше памяти. При использовании SDRAM необходимо учитывать место, занимаемое ею на печатной плате. Поскольку рабочая частота шин достигает 120 МГц, следует принимать во внимание особые требования к расчету схемы. Например, в некоторых приложениях используются шестислойные печатные платы, на верхней и нижней поверхностях которых установлены SDRAM-устройства. Это значит, что использование высокопроизводительной внешней памяти может увеличить число слоев печатной платы на несколько сотен рублей, а также перечень расходуемых материалов.
Производительность – еще один вопрос, который следует рассмотреть, выбирая SDRAM. При использовании типовых 100-МГц 16-бит шин максимальная скорость передачи данных согласно расчету равна 200 Мбайт/с. Пропускная способность дисплея WVGA с разрешением 800×480, частотой обновления 60 МГц и глубиной цвета 16 бит на пиксел должна составлять 46 Мбайт/с. Однако производительность системы, в которой для обработки изображения используется ЦП или графический процессор, а также функция наложения слоев, что уже стало нормой для встраиваемых графических микроконтроллеров, во многих случаях превосходит производительность SDRAM. Другими словами, применение SDRAM является сдерживающим фактором в случаях графических систем высокого класса. Поскольку высок рыночный спрос на тот ряд функций, которыми оснащены смартфоны и планшеты, потребность в повышении производительности приложений постоянно растет. Для удовлетворения этого спроса необходимы более производительные системы с большим объемом памяти.
Вопрос №4. Нужна ли собственная память для приложений с GUI?
Объем памяти DDR2 SDRAM достигает 128 Мбайт. Кроме того, это запоминающее устройство обладает большей производительностью, чем SDRAM. Тактовая частота интерфейса DDR2 как минимум в два раза превышает аналогичный показатель SDRAM. Поскольку у DDR2 скорость передачи данных в каждом цикле в два раза выше, эта технология обеспечивает, по крайней мере, в четыре раза более высокую производительность, чем SDRAM.
Одной из главных проблем, связанных с памятью DDR2, является использование ее производительности в полной мере. Поскольку начальная рабочая частота шинного интерфейса составляет 200 МГц, а в каждой половине цикла передаются данные, требования к DDR2 по обеспечению целостности сигнала и отделения проводников с данными от остальной части платы жестче, чем к SDRAM. При проектировании приложений с DDR2 следует учитывать жесткие допуски к опорному напряжению, напряжению питания и нагрузки, а также к соответствующей развязке, ширине проводников, расстоянию между ними и трассировке.
Поскольку встраиваемых графических систем становится больше и они усложняются, продолжает расти спрос на большие размеры памяти и высокую пропускную способность DDR2. Если всего несколько лет тому назад во встраиваемых системах применялись микроконтроллеры с максимальной частотой 150 МГц, то теперь требуются в два раза более производительные МК с интерфейсами памяти, которая соответствует собственной тактовой частоте этих микроконтроллеров. Большинство производителей МК обеспечивает помощь разного рода в реализации проектов с использованием выпускаемых ими изделий.
Но разве не было бы лучше иметь доступ к высокопроизводительной памяти большого объема в высокоскоростных МК с поддержкой графических функций, чтобы не переплачивать за использование многослойных печатных плат и не прилагать дополнительные усилия для проектирования шины DDR2, работающей на частоте больше 200 МГц?
PIC32MZ DA от Microchip является одним из нескольких микроконтроллеров на рынке с интерфейсом и памятью DDR2. Это семейство МК смягчает требования к внешней памяти за счет интегрированной в кристалл графической памяти. Данный микроконтроллер оснащен 32-Мбайт памятью DDR2 DRAM, исключая потребность во внешнем запоминающем устройстве (см. рис. 2).
Рис. 2. Структурная схема микроконтроллера PIC32MZ DA
Кроме того, в состав этого МК входит трехслойный графический контроллер и высокопроизводительный графический процессор, благодаря чему обеспечивается высокий уровень интеграции и производительность МК с графическими функциями.
Выводы
Потребность в привлекательных графических пользовательских интерфейсах, оснащенных широким рядом функций, будет неуклонно расти. Мы кратко обсудили в каждом отдельном случае преимущества и недостатки несколько известных технологий памяти, которая применяется, чтобы обойти ограничений микроконтроллерной архитектуры. Таким образом, у разработчиков имеется немало возможностей по реализации графических интерфейсов пользователя, которые востребованы на рынке.