Easy TFT — дисплейные модули компании Easttop Display
Введение
Малоформатные TFT ЖК-дисплейные модули с диагональю от 2 до 7 дюймов сейчас применяются в конструкциях портативных электронных приборов, устройствах мобильной связи, медиаплеерах и операторских панелях промышленной автоматики. Современные TFT ЖК-панели имеют оптимальные параметры и обеспечивают более комфортный интерфейс пользователя. В последнее время их цена уменьшилась, и они стали доступны для широкого использования в малосерийных электронных приборах. Однако при их применении пользователь сталкивается с необходимостью разработки программно-аппаратного интерфейса с TFT ЖК-дисплеем. Затраты на разработку и реализацию такого интерфейса могут оказаться большими вследствие сложности и дороговизны как аппаратной, так и программной части.
Китайская компания Easttop Display Co. Ltd и ее продукция еще не так хорошо известны на российском рынке. Разработанная этой компанией архитектура малоформатных TFT ЖК-модулей со встроенным контроллером HMI значительно облегчает работу с такими модулями. Чтобы по достоинству оценить преимущества предлагаемой концепции Easy TFT, рассмотрим типовую архитектуру современных TFT ЖК-модулей с форматами от 240×320 до 480×800 пикселей. Дисплеи этих форматов находят широкое применение не только в портативных приборах с батарейным питанием, но и в приборах и системах промышленной автоматики.
О компании Easttop Display Co. LtdКитайская компания Easttop Display Co. Ltd. зарегистрирована в Гонконге. Ее сборочное производство ЖК-модулей расположено в городах Shenzhen и Dongguan, Китай. Компания имеет 10-летний опыт проектирования и производства символьных, графических, а также малоформатных TFT ЖК-дисплеев. От американских инвесторов Easttop Display получила современный парк новейшего технологического оборудования. Производительность сборочного оборудования — до 1,5 млн ЖКИ-модулей различных типов в месяц. В России официальным эксклюзивным дистрибьютором продукции Easttop Display является компания «Чип Селект» (www.chipselect.ru). Вся необходимая информация по использованию дисплейных модулей Easy TFT серии M7, а также демонстрационные наборы предоставляются компанией «Чип Селект». В настоящий момент на складе компании имеются образцы модулей серии M7-M, а в ближайшее время будут доступны для заказа дисплейные модули серии M7-H с сенсорными экранами. |
Архитектура современных малоформатных TFT ЖК-дисплеев
В современных TFT ЖК-дисплеях малого формата (до 480RGB×864), как правило, используются однокристальные драйверы-контроллеры со встроенным дисплейным ОЗУ, которые обеспечивают поддержку некоторых простейших графических функций (рис. 1).
В основном многие дисплеи этого формата построены на микросхемах драйверов-контроллеров таких компаний, как Samsung, Himax и Solomon Systech. В структуре всех однокристальных TFT драйверов-контроллеров есть драйверы строк и столбцов, формирователи напряжений и контроллер развертки, графическая дисплейная память на кадр изображения, стек режимных регистров и командный процессор с последовательным управляющим интерфейсом (обычно SPI или I2C). Для загрузки изображения в GRAM в контроллере-драйвере можно использовать несколько типов интерфейсов на выбор: обычные — параллельный 24-разрядный RGB-интерфейс или последовательный, а также современные интерфейсы типа MIPI и MDDI, работающие в пакетном режиме и обеспечивающие высокую скорость передачи данных.
Наличие дисплейного ОЗУ и автоматической развертки позволяет значительно разгрузить хост-контроллер от необходимости управления регенерацией изображения. Поддержка простых графических функций также обеспечивает уменьшение трафика со стороны хост-контроллера. В модулях серии М7 Easy TFT используются TFT ЖК-дисплеи, имеющие современную архитектуру на основе однокристальных драйверов-контроллеров со встроенной графической памятью.
Структура и программирование однокристальных драйверов-контроллеров TFT ЖК-дисплеев
Серия драйверов-контроллеров S6D0xxx компании Samsung применяется во многих малоформатных TFT ЖК-дисплеях различных производителей. Драйвер поддерживает дисплеи с диагоналями до 4,3″ и разрешением до 360×480 RGB-пикселей. Контроллер-драйвер Himax HX8369-A имеет встроенную GRAM еще большего объема — 9 953 280 бит (480×864×24 бит) и поддерживает следующие форматы дисплеев: 480RGB×864, 480RGB×854, 480RGB×800, 480RGB×640, 480RGB×720 и 360RGB×640.
Благодаря встроенной памяти во всех драйверах есть такие функции, как вертикальный скроллинг, зеркальный поворот изображения, переворот изображения и другие, напрямую связанные с адресацией памяти. Для дисплеев все большее применение находит пакетный протокол передачи совмещенных данных — команд управления и графики. На рис. 2 показана структура и сигнальные шины однокристального драйвера-контроллера.
Микросхема контроллера-драйвера Sam-sung S6D05A0 имеет свой командный процессор, который обеспечивает поддержку и доступ к регистрам управления, а также к графической памяти. Для управления ресурсами дисплея используется около 200 команд!
Объем описания типового драйвера-контроллера — порядка 300–400 страниц. Поэтому для освоения программирования дисплейного контроллера-драйвера может потребоваться значительное время.
Наличие «посредника» — HMI-контроллера — упрощает задачу использования дисплейного модуля за счет того, что работу с набором команд производит сам HMI-контроллер. Пользователь оперирует только ограниченным и универсальным набором команд, не связанным с конкретным типом драйвера-контроллера.
Современные драйверы малоформатных TFT ЖК-дисплеев очень быстро прогрессируют: расширяются их функциональные возможности, увеличивается быстродействие. Может случиться и так, что на следующий год в модели дисплея, применяемого пользователем, будет использован уже другой драйвер-контроллер с лучшей производительностью, но не совместимый с предыдущим типом драйвера. Тогда разработчик будет вынужден полностью переписать ПО дисплейного интерфейса, что занимает время. Применение промежуточного контроллера снимает эту проблему. Концепция Easy TFT позволяет значительно облегчить труд разработчика и программиста, работающих с этими дисплеями.
Архитектура дисплейного модуля Easy TFT
Дисплейная система Easy TFT состоит из двух компонентов: самого TFT ЖК-дисплея и интерфейсного конвертора — контроллера HMI. Функции контроллера HMI обеспечиваютcя на аппаратном и программном уровне. Основная цель использования HMI-контроллера — упрощение работы с малоформатными TFT ЖК-дисплеями.
Предложенная дисплейная система интерфейса ввода/вывода не является в полном объеме HMI, как заявлено производителем, и не обеспечивает все функции GUI (Graphical User Interface). HMI — проблемно ориентированный графический интерфейс ввода/вывода (рис. 3), это среда для операторских панелей управления или терминалов систем промышленной автоматики. Графический интерфейс пользователя — это система средств для взаимодействия пользователя с устройством, основанная на представлении всех доступных пользователю системных объектов и функций в виде графических компонентов экрана (окон, кнопок, полос прокрутки и т. п.). Однако для простоты описания будем в дальнейшем использовать в статье обозначение, данное производителем, — HMI.
На аппаратном уровне контроллер HMI обеспечивает:
- формирование питающих напряжений для ЖК-дисплея из одного источника питания 5 В;
- правильный порядок подачи напряжений для ЖК-дисплея;
- конвертацию командного HMI последовательного интерфейса в интерфейс с параллельной шиной дисплейного драйвера-контроллера;
- поддержку интерфейса сканирования встроенной клавиатуры (только для серии H);
- поддержку интерфейса сенсорной панели (только для серии H);
- библиотеку пользовательских графических объектов.
Программный уровень HMI обеспечивает:
- командный двусторонний протокол с хостом;
- инициализацию режимных регистров дисплея, доступных по внутреннему последовательному управляющему интерфейсу;
- преобразование входящих команд HMI в поток команд дисплейного интерфейса;
- встроенный знакогенератор с несколькими языками и форматами;
- реализацию простейших графических объектов (линии, прямоугольники, окружности и т. п.);
- работу с окнами на экране;
- масштабирование объектов;
- формирование и передачу кодов клавиатуры и тачскрина в хост-контроллер.
Что в итоге получает пользователь, применяя Easy TFT? Плюсы — он избавлен от необходимости знать аппаратную структуру дисплейного контроллера-драйвера конкретного ЖК-дисплея, для чего потребуется проработать описание объемом несколько сот страниц, а также длительная работа с пошаговой отработкой программных модулей драйвера. В системе Easy TFT драйвер дисплея реализует производитель. Последовательный интерфейс с проколом команд уменьшает нагрузку на хост-контроллер. При смене типа ЖК-панели среда обеспечивает неизменность управляющего интерфейса. Адаптацию проводит изготовитель Easy TFT, гарантируя преемственность разработанного софта и независимость от смены аппаратной реализации дисплея. Естественно, что разработчики заинтересованы в снижении стоимости готового устройства, но для многих практическая реализация сложного графического интерфейса пользователя становится трудной задачей, так как требует много усилий и времени для создания собственной библиотеки или покупки готовых программных продуктов сторонних фирм.
Минусы — дисплейная система Easy TFT уникальна. Пользователь при модификации своих изделий будет вынужден ориентироваться только на Easy TFT.
Серия модулей Easy TFT M7 со встроенным HMI-контроллером
Основные характеристики модулей Easy TFT M7 (рис. 4, табл. 1):
- Управление по последовательному UART-интерфейсу (ТТЛ-уровни).
- Загрузка библиотеки пользовательских изображений через встроенный USB-интерфейс во встроенную флэш-память (объемом от 2 до 128 Mбайт).
- Легкое программирование через командный протокол.
- Светодиодная низкопрофильная подсветка.
- Один источник напряжения питания: 5 В.
- Ток потребления: 100–500 мА (определяется потреблением модуля светодиодной подсветки).
- Рабочий температурный диапазон: –20…+70 °C.
- Температура хранения: –30…+80 °C.
- Цветовая палитра: 65 тыс. цветов.
Таблица 1. Основные параметры модулей TFT ЖК-дисплеев серии М7
Тип | Разрешение | Диагональ, размер экрана, мм | Размер модуля, мм | Наличие порта клавиатуры и тачскрина |
Серия М7-М | ||||
M7-M230A1 | 320×240 | 2,3″ (46,7×35,6) | 66,7×55,6 | Нет |
M7-M240A1 | 320×240 | 2,4″ (48,9×36,7) | 68,9×56,7 | Нет |
M7-M280A1 | 320×240 | 2,8″ (57,6×43,2) | 77,6×63,2 | Нет |
M7-M300A1 | 400×240 | 3″ (64,8×38,9) | 84,8×58,9 | Нет |
M7-M350A1 | 480×320 | 3,5″ (73,4×48,9) | 93,4×68,9 | Нет |
M7-M700A1 | 800×480 | 7″ (154,4×93,4) | 180,4×107 | Нет |
Серия М7-Н | ||||
M7-H350A1 | 320×240 | 3,5″ (73×55) | 93×70 | Есть |
M7-H430A1 | 480×272 | 4,3″ (95×53,3) | 121,9×74,7 | Есть |
M7-H500A1 | 640×480 | 5″ (101,6×76,2) | 134,1×93,5 | Есть |
M7-H560A1 | 640×480 | 5,6″ (112,9×84,7) | 144,8×110,2 | Есть |
M7-H700A1 | 800×480 | 7″ (152,4×91,4) | 190×112 | Есть |
Дисплеи малого формата с диагональю от 2,3″ до 3,5″ не имеют встроенного интерфейса с клавиатурой и тачскрином. Модули этой серии имеют в названии индекс «М». Модули с большей диагональю от 3,5″ и до 7″ с индексом «Н» имеют встроенный порт для сканирования клавиатуры и тачскрина. Потребление модулей в основном определяется потреблением модуля светодиодной подсветки. В моделях меньшего формата потребление 100–150 мА, у большего — 150–500 мА.
На плате контроллера имеется три порта:
- порт дуплексного UART с сигналами ТТЛ-уровней для интерфейса с хост-контроллером;
- порт подключения внешней матричной клавиатуры и тачскрина (только для серии М7-Н);
- порт USB для загрузки файла архива библиотеки изображений.
Питание поступает на плату через порт USB (5 В) или через порт UART (табл. 2).
Таблица 2. Назначение сигналов интерфейсного разъема модуля M7-M230A1
Номер контакта | Cимвол | Назначение сигнала |
1 | Vсс | Питание вход (5 В) |
2 | Busy | Сигнал «Приемник занят» |
3 | TXD | Вход приемника |
4 | RXD | Выход передатчика |
5 | VSS | «Земля» |
Реализация HMI-протокола в модулях М7
Для интерфейса с хост-контроллером используется последовательный асинхронный интерфейс с небольшой скоростью обмена, достаточной для поддержки командного интерфейса. В сторону контроллера HMI передаются макрокоманды управления выводом изображения (рис. 5), а в сторону хоста (при необходимости) — данные сканирования клавиатуры или тачскрина.
Управляющий протокол HMI реализован через полнодуплексный асинхронный последовательный порт (UART) с уровнями ТТЛ, формат посылок — 8n1, 1 стартовый бит, 8 бит данных и 1 стоповый бит.
Набор команд
Команды, передаваемые из хост-контроллера, позволяют управлять включением и выключением дисплея, включать/отключать подсветку, а также реализовать поддержку простейших графических функций, например вывод точек, отрезков, прямоугольников, полигонов, построение окружностей, дуг, эллипсов, смещение и прокрутку изображения, вывод картинок, управление графикой окна, управление цветом символов и фона. Также обеспечивается и поддержка вывода текста через встроенный табличный знакогенератор. В сторону же хоста из HMI-контроллера через интерфейс RS-232 передаются коды сканирования клавиатуры или сенсорной панели.
Встроенный знакогенератор
В настоящий момент в знакогенераторе HMI-контроллера имеется библиотека английских символов формата 16×16, 32×32, 12×12 и 24×24, а также библиотека китайских иероглифов. Библиотека знакогенератора может быть модифицирована производителем в соответствии с требованиями заказчика.
Формат командного фрейма
Каждая команда передается кадром данных (фреймом) HMI, состоящим из 4 составляющих: заголовка, начала кадра (фиксированный код 0xAA), кода команды, блока данных (до 256 байт) и символа конца фрейма (табл. 3).
Таблица 3. Формат фрейма HMI
Номер блока в фрейме | 1 | 2 | 3 | 4 |
Пример фрейма | 0xAA | 0x70 | 0x01 | 0xCC 0x33 0xC3 0x3C |
Название | Заголовок (начало кадра) всегда 0хAA | Коды команд |
Данные до 250 байт |
Конец фрейма |
Для проверки наличия связи используется команда handshake с кодом 00. Команду посылает хост-контроллер. Фрейм проверки связи: АА 00 СС 33 С3 3С.
Ответ модуля — OK_V3.1. В слове ответа передается номер версии ПО, зашитый в контроллере HMI. Пример HMI-фрейма для вывода на экран картинки из библиотеки, размещенной во флэш-памяти:
< заголовок> <CMD> <PICNUM> <метка конца фрейма> |
Здесь <CMD> — код команды 0x70, загрузка файла изображения; <PICNUM> — номер картинки.
Пример фрейма: AA (заголовок) 70 (код команды) 02 (номер картинки) CC 33 C3 3C (метка конца фрейма). На экран дисплея будет выведено изображение 002.bmp из библиотечного архива. Распаковку архива производит сам контроллер.
Есть и другая команда вывода изображения со смещением относительно верхнего левого угла экрана. В этом случае подается команда, в коде которой содержится номер картинки, а также указываются координаты верхнего левого угла изображения на экране дисплея (в пикселях). Например, PRINT n, X, Y.
Библиотека графических объектов
Объем памяти программы среднего контроллера в настоящее время около 64 кбайт. Очевидно, что этого объема хватит максимум для хранения только одного изображения небольшого экрана. Наличие флэш-памяти объемом от 2 до 128 Мбайт на плате контролера HMI позволяет хранить уже десятки изображений. Применение сжатия дает возможность хранить несколько сот картинок для хранения заставок, пиктограмм меню, нестандартных символов, шрифтов и картинок анимации. Использование готовых изображений обеспечивает программисту дополнительные возможности для создания комфортного графического интерфейса.
Подготовка и запись файлов для архива графической библиотеки
Все выбранные графические файлы должны иметь формат .bmp, а для вывода в полном объеме — разрешение, соответствующее разрешению экрана дисплея, например 240×320 для модуля М7-230А1. Исходные изображения в другом формате (например, .jpg, .tif, .gif) должны быть конвертированы с помощью любой программы-просмотровщика — конвертора в формат .bmp c соответствующим разрешением.
Далее следует изменить наименования всех файлов картинок, используя в названии только цифры, начиная с 000.bmp. Например, 000.bmp, 001.bmp … 020.bmp. Диапазон допустимых номеров: от 000 до 999. Группы файлов, используемые для анимации, а также специальные пользовательские шрифты и набор мнемоник меню должны для удобства пользования иметь последовательную нумерацию. Например, для анимации используется 6 картинок, для них выбраны последовательные номера 000.bmp, 001.bmp, 002.bmp, 003.bmp, 004.bmp, 005.bmp. То же правило относится и к библиотеке изображений нестандартных пользовательских шрифтов. Например, в массиве изображений цифр большого формата 0–9 они должны быть расположены последовательно и иметь адекватную нумерацию. На рис. 6 показан пример реализации указанного правила:
Рис. 6. Пример массива изображений, подготовленных в нужном формате, для создания библиотечного архива (следует обратить внимание — допускается использовать картинки различного формата и ориентации (ландшафтной или портретной))
- Переписать подготовленные файлы в папку BMP_FILE. Папка должна находиться в той же директории, что и конвертирующая в формат .bin программа и командный файл MakeDAT.bat.
- Запустить командный файл MakeDAT.bat (рис. 7).
После исполнения командного файла в папке BMP_DATA (рис. 8) будут созданы три файла: BMP_DATA.BIN, TABLE.BIN и BmpDataBin.h.
BMP_DATA.bin — это файл, содержащий архив данных всех картинок в формате для записи во флэш-память. Для кодирования изображений в файл BMP_DATA.bin используется внутренний нестандартный формат со сжатием данных. TABLE.bin — служебный индексный файл картинок. Эти два файла и должны быть скопированы во флэш-память модуля.
В файле BmpDataBin.h находится служебная информация с серийными номерами файлов, а также информация о формате картинок (разрешение по Х и Y). Копировать этот служебный файл во флэш-память модуля не нужно.
Следует учесть, что конвертор принимает картинки как меньшего, так и большего, чем размер экранного поля, изображения. И в любом случае будет создан библиотечный архив картинок. Однако при выводе изображений большего формата будет автоматически происходить обрезка исходного изображения под размеры экранного поля (снизу и справа).
Загрузка изображений из компьютера во флэш-память
Питание при загрузке изображений на плату подается через USB-разъем. При этом не требуется установка дополнительного драйвера или ПО. Содержимое флэш-памяти доступно точно так же, как и для обычной флэшки. Модуль будет виден как диск Х (на компьютере будет выводиться символ Х:). Переписываем архив BMP_DATA.bin и индексный файл TABLE.bin. При изменении содержимого библиотеки следует провести новую процедуру создания архива и индексного регистра и переписать во флэш-память.
Вывод изображений из архива библиотеки
Формат команды вывода картинки на экран со смещением:
PIC n1 n2 n3 |
Здесь n1 — номер картинки в архиве; n2 — координата Х верхнего левого угла изображения на экране; n3 — координата Y верхнего левого угла изображения на экране.
Можно и не указывать координаты (n1 и n2) смещения картинки на экране. В этом случае автоматически используется нулевое смещение с координатами верхнего левого угла (0,0).
Вывод изображения с обрезкой под рамку пользователя
Формат команды:
CUT n1 n2 n3 n4 n5 n6 n7 |
Здесь n1 — номер картинки в архиве; n2 — координата Х верхнего левого угла изображения на экране (смещение); n3 — координата Y верхнего левого угла изображения на экране (смещение); n4 и n5 — размер исходной картинки (координаты нижнего правого угла, например, 320×400); n5 и n6 — координаты рамки обрезки исходного изображения (правый угол выводимого на экран изображения).
Анимация изображения
Для анимации используется несколько изображений, которые выводятся на экран последовательно.
Формат команды начала вывода анимации:
MOT n1 n2 n3 n4 n5 |
Здесь n1 — координата Х верхнего левого угла изображения на экране; n2 — координата Y верхнего левого угла изображения на экране; n3 и n4 — номера первой и последней картинки анимации; n5 — временной интервал в мс следования картинок в анимации.
Команда отмена режима анимации:
MOFF (без параметров) |
Прекращается вывод изображений.
Включение тестового режима просмотра (Browse) всех картинок библиотеки
Формат команды:
All (без параметров) |
После подачи команды на экран дисплея будут последовательно (с заданным программно интервалом времени) выводиться все картинки из библиотечного архива, начиная с младшего и кончая старшим номером.
Параметры флэш-памяти и быстродействие графики
В модулях Easy TFT устанавливаются микросхемы флэш-памяти W25Q SpiFlash компании Winbond с последовательным интерфейсом. В этой серии используется Dual/Quad Serial Peripheral Interface (SPI) с частотой тактирования до 104 МГц. Объем памяти этой серии — от 1 до 128 Mбит.
Например, в модуле M7-M240A1 устанавливается микросхема W25Q16BV, имеющая объем 16 Mбит. В микросхеме возможны три режима организации шины данных: обычный режим с одноразрядной шиной данных, с двумя шинами данных (Dual) и с четырьмя шинами данных (Quad). При использовании режимов Dual/Quad (это определяется командой интерфейса) скорость передачи данных значительно возрастает, что эквивалентно работе обычной шины SPI на частотах 208 и 416 МГц. Использование быстрого доступа к флэш-памяти в режиме считывания позволяет очень быстро загружать изображение из библиотеки в графическое ОЗУ контроллера дисплея, например в режиме анимации, когда необходима быстрая загрузка нескольких последовательных изображений. При этом не требуется торможение развертки дисплея.
Демонстрационные наборы Easy TFT
Функционирование любого модуля серии M7 легко проверить. Для этого даже не требуется приобретать демонабор. Все TFT-дисплеи серии M (диагональ ≤3,5″) при подключении питания сразу начинают демонстрировать поочередно тестовые картинки, зашитые во флэш-память.
Демонстрационный же набор позволяет продемонстрировать работу HMI-интерфейса, то есть проверить выполнение команд из набора HMI. Для этого используется дополнительная плата, на которой установлен контроллер-транслятор и трансивер интерфейса RS-232 (рис. 9). Питание 5 В для платы подается через USB-интерфейс компьютера.
Для демонстрации работы HMI-протокола следует подключить плату интерфейсного контроллера к дисплейному модулю и стандартным кабелем RS-232 соединить с COM-портом компьютера. Управление можно осуществить через любую программу терминального порта, типа TeraTerm. Производитель предоставляет и свою тестовую программу для поддержки терминального режима. На рис. 10 показано экранное окно терминальной программы, разработанной для демонстрации протокола Easy TFT.
В режимных окнах выбирается порт, устанавливается скорость и формат посылки. В окне входного буфера видим содержимое фреймов, полученных от модуля. В буфере передатчика задаем команды управления HMI.
Заключение
Использование встроенного командного HMI-протокола, а также простота и удобство программирования — преимущества модулей Easy TFT серии М7 компании Easttop Display. Применение моделей М7 позволяет сократить сроки разработки программно-аппаратного интерфейса c дисплеем и обеспечит более комфортный интерфейс пользователя. Модули серии М7-Н с интерфейсом сенсорной панели и клавиатурным интерфейсом ориентированы на использование в операторских панелях, используемых в секторе промышленной автоматики.