Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
В этой статье в основном представлен протокол MIPI DSI с четырех аспектов.
1. Введение в протокол MIPI и введение в DSI.
2. Введение в D-PHY (физический уровень) протокола DSI.
3. Введение в DSI (уровень интерфейса передачи) протокола DSI.
4. Знакомство с DCS (DisplayCommandSet) (набором команд) протокола DSI.
MIPI(Интерфейс процессора мобильной промышленности)даMobile Industry Processor Interfaceаббревиатура。MIPI(Интерфейс процессора мобильной промышленность) — это открытый стандарт для процессоров мобильных приложений, инициированный MIPI Alliance.
Завершенные и запланированные характеристики следующие:
Двумя наиболее часто используемыми стандартами являются csi (камера) и dsi (diaplay). Здесь мы в основном представляем стандарт dsi (используемый на ЖК-дисплеях интеллектуальных устройств).
Введение в спецификацию MIPI DSI Альянса MIPI (функции DSI разделены на три уровня, как показано на рисунке ниже)
• DCS: DCS — это стандартизированный набор команд для модулей отображения командного режима.
• DSI: определяет высокоскоростной последовательный интерфейс между процессором и модулем дисплея.
• D-PHY: предоставляет определения физического уровня для DSI и CSI.
2. Физическая многоуровневая структура DSI
DSI физически разделен на четыре уровня, соответствующие спецификациям D-PHY, DSI и DCS, следующим образом: • PHY определяет среду передачи, схемы ввода/вывода, а также механизмы синхронизации и сигналов. • Уровень управления полосами: отправляет и собирает потоки данных на каждую полосу. • Уровень протокола низкого уровня: определяет, как формировать кадр, анализировать, обнаруживать ошибки и т. д. • Уровень приложения: описывает высокоуровневый поток данных кодирования и анализа, а также настраивает и передает его с помощью инструкций DCS.
Уровень D-PHY
D-PHY описывает синхронный, высокоскоростной, маломощный и недорогой физический уровень. Скорости передачи/приема ведущего и ведомого устройств могут быть асимметричными, а асимметричная конструкция значительно снижает сложность канала.
D-PHY обеспечивает синхронное соединение между ведущим и подчиненным устройствами. Конфигурация D-PHY состоит из набора тактовых каналов и одного или нескольких наборов каналов данных. Тактовый сигнал является однонаправленным. Сигнал данных является однонаправленным или двунаправленным в зависимости от выбранного режима.
Анализ D-PHY разделен на две части — физический анализ и функциональный анализ.
1. Физический анализ D-PHY
Левая половина — это входной канал, включающий сигналы синхронизации, данных и управления, которые преобразуются в правую посредством логики для вывода соответствующей конфигурации.
Правая половина-это выходной канал, включая функцию HS, функцию LP, обнаружение LP-CD.
HS используется для передачи/получения данных на высокой скорости.
LP используется для передачи/получения данных с низким энергопотреблением.
LP-CD — это детектор конфликтов с низким энергопотреблением, который определяет изменение статуса передачи (для двунаправленной передачи данных).
На следующем рисунке показана схема подключения между D-PHY и контроллером верхнего уровня:
Внешний блок синхронизации обеспечивает синхронизацию и PHY-адаптер для управления адаптацией (конфигурация каждой полосы).
2. Функциональный анализ D-PHY
Существует два основных метода связи: двусторонняя связь (отправка инструкций и получение), односторонняя связь (отправка данных).
Включая три режима рабочего состояния: высокоскоростной режим, режим запроса на поворот, режим выхода с низким энергопотреблением.
Высокоскоростной режим — режим высокоскоростной передачи данных.
Запрос на выполнение работ - режим управления
Выход с низким энергопотреблением — обеспечивает состояние выхода, которое может переходить в три состояния: LPDT (передача данных с низким энергопотреблением), ULPS (режим сверхнизкого энергопотребления, отсутствие передачи) и триггер сброса.
Режим сигнала низкой мощности (для управления): 10 МГц (макс.)
Режим высокоскоростного сигнала (для высокоскоростной передачи данных): 80 Мбит/с ~ 1 Гбит/с/полоса
LP :0-1.2V
ВС: 100-300 м В (обычно 200 м В)
Режим выхода — это специальная операция канала передачи данных в состоянии LP. Благодаря этому состоянию он переходит в три состояния: LPDT, ULPS и триггер сброса.
High-Speedmode request LP-11—>LP01—>LP00—>SOTкод(11100001)
Turnaround request LP-11—>LP10—>LP00—> LP10—> LP00 (процесс передачи) LP-00—>LP10—>LP11(процесс получения)
Escapemode request LP-11—>LP10—>LP00—> LP01—> LP00—>SOTкод(в соответствии сSOTкод Разные в разных режимах)
Конкретные состояния преобразования следующие:
Полная конфигурация уровня D-PHY, конфигурация следующая: •Одна или несколько линий передачи данных • Двунаправленная или односторонняя передача данных.
• Поддерживаемые типы получения данных (обычно только первая линия 0 может получать данные).
• Поддерживать ли режим выхода • Передача данных – 8-битные необработанные данные (по умолчанию)/с использованием символов в кодировке 8b9b.
Введение в DSI (уровень протокола)
DSI определяет интерфейс между главным процессором и периферийными устройствами (ЖК-дисплеем). Он определяет формат пикселей и набор инструкций на основе стандартов DPI, DBI и DCS.
На рисунке ниже показан упрощенный интерфейс DSI. DSI-совместимый стандартный интерфейс DBI и DPI. Он отправляет пиксели или команды на периферийное устройство и может считывать статус или информацию о пикселях.
Передача DSI имеет два режима: командный и видео.
Командный режим в основном отправляет команды и данные на периферийные устройства (двусторонняя передача) для двусторонней связи с периферийными устройствами.
Видеорежим означает передачу данных от главного процессора к периферийным устройствам в виде потоковой передачи пикселей в реальном времени, что является односторонней передачей. Vedio использует режим передачи HS в D-PHY.
Если DSI имеет несколько каналов, в командном режиме канал данных 0 должен быть двунаправленным; другие каналы данных должны быть однонаправленными. В режиме видео канал данных 0 может быть двунаправленным, а другие каналы данных должны быть односторонними. Основная передача с низким энергопотреблением использует только полосу 0, а периферийные устройства могут использовать только режим низкого энергопотребления при приеме данных на полосу 0. Поскольку передача HS представляет собой произвольное число, а не целое число, кратное количеству полос, EOT отправляется для завершения одного цикла (байта). (Примечание: EOT требуется в конце каждой группы передач по полосе), эффект показан ниже.
Статус инициализации DSI, как показано на рисунке:
Ведущему устройству требуется некоторое время для включения питания (T-POR), затем поддержания LP-11 (состояние TX-Stop), затем инициализации ведущего устройства (T-INIT_SLAVE), а затем следует период инициализации ведомого устройства. время (T-INTERNAL_DELAY). Во время инициализации ведущего и ведомого устройств D-PHY должен оставаться в состоянии LP-11. Следовательно, время инициализации (INTER_MASTER) должно быть больше суммы времени инициализации ведущего/подчиненного устройства.
Когда DSI настроен на несколько линий данных, процесс передачи примерно следующий (на рисунке показана ситуация с 4 полосами данных):
Передача DSI может быть отдельной передачей или унифицированной передачей. Ниже описан процесс передачи DSI:
Короткий пакет (длиной 4 байта) – установка команды или настройка параметров или передача сигнала синхронизации, составленный следующим образом.
Идентификация (DI) – 1 байт, данные кадра – 2 байта, обнаружение ошибок (ECC) 1 байт
Длинный пакет — длинный пакет использует 2 байта для определения длины данных, максимальное количество передаваемых данных — 65535, а состав следующий.
Заголовок кадра (4 байта):
Идентификация (DI) 1 байт (тип передачи данных и количество полос)
Количество данных - 2 байта
Обнаружение ошибок (ECC) 1 байт
Данные кадра 0-65525 неопределенные данные
Конец кадра: контрольная сумма (2 байта).
Следовательно, длина длинного пакета равна - заголовок кадра (4) + данные (0-65535) + хвост кадра (2) = 6-65541 байт.
Идентификация данных (DI) состоит из 8 байт, два старших бита определяют количество полос данных, а последние шесть битов определяют тип исполнения (см. Приложение 1).
Введение в DCS (DisplayCommandSet) (набор инструкций)
DCS поддерживает следующие состояния периферийных устройств:
В обычном режиме модуль дисплея отображает все данные изображения.
В частичном режиме модуль дисплея отображает частичные данные изображения.
В режиме ожидания модуль дисплея отображает изображения, используя ограниченное количество цветов.
В спящем режиме модуль дисплея не отображает никаких данных изображения. Интерфейс дисплея останется включенным, сохраняя данные в памяти кадра и регистрах. Остальные функциональные блоки переведены в режим пониженного энергопотребления.
Прочее: Гамма-кривая: компенсация гамма-коррекции в оттенках серого.
Настройки команд DCS: DCS разделена на две функциональные области: набор команд пользователя и набор команд производителя. Каждая команда представляет собой 8-битный код от 00h до AFH.
Все операции реализуются набором команд DCS (см. Приложение 2).
Приложение 1
Data Type,hex DataType,binary Description Packet Size
0x01 000001 SyncEvent, V Sync Start Short
0x11 010001 SyncEvent, V Sync End Short
0x21 100001 SyncEvent, H Sync Start Short
0x31 110001 SyncEvent, H Sync End Short
0x08 001000 Endof Transmission packet (EoTp) Short
0x02 000010 ColorMode (CM) Off Command Short
0x12 010010 ColorMode (CM) On Command Short
0x22 100010 ShutDown Peripheral Command Short
0x32 110010 TurnOn Peripheral Command Short
0x03 000011 GenericShort WRITE, no parameters Short
0x13 010011 GenericShort WRITE, 1 parameter Short
0x23 100011 GenericShort WRITE, 2 parameters Short
0x04 000100 GenericREAD, no parameters Short
0x14 010100 GenericREAD, 1 parameter Short
0x24 100100 GenericREAD, 2 parameters Short
0x05 000101 DCSShort WRITE, no parameters Short
0x15 010101 DCSShort WRITE, 1 parameter Short
0x06 000110 DCSREAD, no parameters Short
0x37 110111 SetMaximum Return Packet Size Short
0x09 001001 NullPacket, no data Long
0x19 011001 BlankingPacket, no data Long
0x29 101001 GenericLong Write Long
0x39 111001 DCSLong Write/write_LUT Command Packet Long
0x0C 001100 LooselyPacked Pixel Stream, 20-bit YCbCr, 4:2:2 Format Long
0x1C 011100 PackedPixel Stream, 24-bit YCbCr, 4:2:2 Format Long
0x2C 101100 PackedPixel Stream, 16-bit YCbCr, 4:2:2 Format Long
0x0D 001101 PackedPixel Stream, 30-bit RGB, 10-10-10 Format Long
0x1D 011101 PackedPixel Stream, 36-bit RGB, 12-12-12 Format Long
0x3D 111101 PackedPixel Stream, 12-bit YCbCr, 4:2:0 Format Long
0x0E 001110 PackedPixel Stream, 16-bit RGB, 5-6-5 Format Long
0x1E 011110 PackedPixel Stream, 18-bit RGB, 6-6-6 Format Long
0x2E 101110 LooselyPacked Pixel Stream, 18-bit RGB, 6-6-6 Format Long
0x3E 111110 PackedPixel Stream, 24-bit RGB, 8-8-8 Format Long
Приложение 2
Command Hex Code Description
enter_idle_mode 39h уменьшить глубину цвета
enter_invert_mode 21h цвет изображения инвертируется
enter_normal_mode 13h показать все картинки
enter_partial_mode 12h отображает частичные изображения
enter_sleep_mode 10h не отображает сон
exit_idle_mode 38h
exit_invert_mode 20h
exit_sleep_mode 11h
get_address_mode 0Bh Получить команду (получить данные)
get_blue_channel 08h Get blueкомпозиция<Пиксель (0, 0)>
get_diagnostic_result 0Fh Получить результаты обнаружения периферийных устройств
get_display_mode 0Dh Получить текущий режим отображения
get_green_channel 07h Get greenкомпозиция<Пиксель (0, 0)>
get_pixel_format 0Ch Получить текущий режим пикселей (режим палитры)
get_power_mode 0Ah Получить режим питания
get_red_channel 06h Get redкомпозиция<Пиксель (0, 0)>
get_scanline 45h Get the current scanline.
get_signal_mode 0Eh Получить режим отображения
nop 00h NoOperation
read_DDB_continue A8h Считать информацию DDB из указанного места.
read_DDB_start A1h Считать информацию DDB с начальной позиции.
read_memory_continue 3Eh Чтение данных изображения с периферийного устройства (указанное место)
read_memory_start 2Eh Чтение данных изображения с периферийных устройств (начало)
set_address_mode 36h Команда установки
set_column_address 2Ah Установить диапазон строк
set_display_off 28h не отображается выкл.
set_display_on 29-часовой дисплей
set_gamma_curve 26h Установить параметры гамма-кривой
set_page_address 2Bh Установить диапазон страниц
set_partial_columns 31h Установить частичные строки и столбцы
set_partial_rows 30h
set_pixel_format 3Ah Установить формат пикселей
soft_reset 01h SoftwareReset
Издатель: Full stack программист и руководитель стека, укажите источник для перепечатки: https://javaforall.cn/139785.html Исходная ссылка: https://javaforall.cn