Анализ DSI протокола MIPI [легко понять]
Анализ DSI протокола MIPI [легко понять]

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

В этой статье в основном представлен протокол 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

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose