
Когда слышишь про ROCKCHIP SOM, многие сразу думают про дешёвые планшеты или ТВ-приставки. Это, конечно, истоки, но сейчас всё иначе. В контексте периферийного интеллекта — это уже серьёзная платформа для встраивания, и с ней связано куча нюансов, которые в даташитах не напишут. Скажем, та же ООО Шэньчжэнь Энтаймс Технолоджи (их сайт — nnntimes.ru) делает на них ставку не просто так. Они как раз занимаются развёртыванием 'железа' для AI на периферии, от AR-очков до промроботов. И вот тут начинается самое интересное: выбор конкретного SOM — это не про гигагерцы, а про экосистему, тепловые режимы в закрытом корпусе и доступность драйверов для конкретных нейросетевых акселераторов. Частая ошибка — брать самый мощный чип, а потом месяцами отлаживать прерывания на низком уровне.
Помню, лет пять назад активно лез в проекты на RK3288. Модуль казался панацеей: CPU, GPU, память — всё на одной плате. Но на практике, при интеграции в промышленный шлюз, вылезали проблемы с долгосрочной доступностью компонентов и, что важнее, с поддержкой Linux-ядром. Производитель мог выпустить обновление для eval-платы, а для нашего кастомного носителя — тишина. Приходилось самим портировать, тратить время. Сейчас, глядя на линейку, вижу, что ROCKCHIP сильно вырос в этом плане. Особенно с приходом RK3566/RK3568 и флагманского RK3588. Документация стала структурированнее, появились долгосрочные ветки ядра (например, для Android Things или Yocto). Но это не значит, что всё гладко.
Вот конкретный кейс, связанный с ООО Шэньчжэнь Энтаймс Технолоджи. Они разрабатывали центральный контроллер для умной камеры наблюдения с аналитикой на краю. Изначально рассматривали SOM на RK3399, но упёрлись в вопросы энергопотребления и тепловыделения в герметичном уличном корпусе. Да, у чипа был хороший NPU, но его реальная производительность в условиях высоких температур летом и необходимости круглосуточной работы оказалась под вопросом. Пришлось пересматривать архитектуру, возможно, даже разносить функции на разные платы. Это типичная ситуация: спецификации на бумаге и реальная работа в продукте — разные вещи.
Поэтому сейчас при выборе SOM я сначала смотрю не на пиковую производительность NPU (тераопсы — это маркетинг), а на наличие реальных примеров инференса от Rockchip (например, rknn-toolkit2) для нужных моделей — YOLO, MobileNet. И, конечно, на наличие готовых thermal design guidelines от вендора модуля. Многие локальные производители SOM в Китае их просто копируют с референсного дизайна, не проводя своих глубоких тестов. А это риск.
Допустим, модуль выбран. RK3588 SOM, 8GB LPDDR4, 32GB eMMC. Кажется, можно сразу начинать разработку софта. Но нет. Первое, с чем сталкиваешься — это design-in поддержка от поставщика модуля. Хороший поставщик (как, судя по описанию, Энтаймс Технолоджи) предоставляет не только сам модуль, но и reference design базовой несущей платы (carrier board), схемы разводки питания, рекомендации по PCB-слоям для высокоскоростных линий (PCIe, HDMI 2.1). Плохой — пришлёт даташит и образ прошивки, а дальше разбирайтесь сами.
Особенно критичен интерфейс питания. У Rockchip сложная система PMIC (Power Management IC), и малейшая ошибка в последовательности включения (power sequence) может привести к тому, что модуль либо не запустится, либо будет нестабильно работать. Был случай, когда из-за неправильно подобранного DC-DC преобразователя на несущей плате модуль 'зависал' при резком скачке нагрузки от нейроускорителя. Отлаживали неделю, пока не нашли проблему в пульсациях по ядру VDD_GPU.
Второй момент — отладка. На многих SOM'ах UART-консоль выведена, а вот интерфейс для JTAG-отладки ядра — нет. Это усложняет жизнь при глубокой работе с драйверами или при портировании реального времени (например, патчей PREEMPT_RT). Приходится либо выводить контакты самостоятельно (если позволяет layout), либо отлаживаться вслепую, через логи. Для продуктов, где нужна сертификация функциональной безопасности (например, в медоборудовании или автопилотировании дронов), это может стать серьёзным ограничением.
Здесь история с Rockchip напоминает американские горки. Раньше основная поддержка была через Android, с полузакрытыми исходниками для мультимедиа и GPU. Для встраиваемых Linux-систем это создавало проблемы. Сейчас ситуация улучшилась: есть официальный репозиторий на GitHub с ядром и U-Boot, активно развивается сообщество вокруг проектов вроде Armbian. Но для промышленного продукта этого мало. Нужны гарантии обновлений безопасности, исправления уязвимостей.
Компании, которые делают ставку на SOM как на основу для своих продуктов (как ООО Шэньчжэнь Энтаймс Технолоджи в своих центральных контроллерах), часто вынуждены поддерживать свой собственный форк ядра, backporting патчи из upstream. Это требует значительных ресурсов. Плюс драйверы для специфичных интерфейсов, которые могут быть на несущей плате — например, для специализированных промышленных шин (CAN FD, EtherCAT) или камерных интерфейсов MIPI-CSI, которых на самом модуле может быть недостаточно.
Очень важен вопрос bootloader'а. U-Boot от Rockchip часто сильно заточен под их конкретную линейку и может иметь ограниченную поддержку загрузки с альтернативных устройств (например, с SPI-NOR для критичных приложений). При разработке продукта, где нужна высокая надёжность загрузки, иногда приходится переписывать или значительно модифицировать код инициализации (SPL). Это глубокая, низкоуровневая работа, и не каждый инженер в команде на это способен.
Расскажу про один практический проект, не связанный напрямую с Энтаймс, но показательный. Разрабатывался шлюз для агрегации данных с датчиков на складе с локальной аналитикой (распознавание лиц сотрудников, подсчёт паллет). Выбрали ROCKCHIP SOM на RK3568 — баланс цены, производительности NPU (около 1 TOPS) и энергопотребления. Задача казалась стандартной.
Проблемы начались на этапе одновременной работы с несколькими камерами. Два интерфейса MIPI-CSI на модуле использовали, но драйверы из 'стандартного' SDK не оптимально работали с разрешением выше 1080p на двух потоках одновременно — были артефакты и пропуски кадров. Пришлось лезть в код драйвера камеры (v4l2) и ISP (Image Signal Processor) от Rockchip, который, мягко говоря, не блещет документированностью. Потратили около трёх недель на оптимизацию буферизации и настройку pipeline'а обработки изображения перед подачей в нейросеть.
Ещё один нюанс — работа NPU. Инструментарий rknn-toolkit позволяет сконвертировать модель, но её реальная скорость на целевой платформе может сильно отличаться от заявленной. Пришлось экспериментировать с квантованием (quantization) модели, подбирать оптимальный batch size. Иногда проще было выполнить часть вычислений на CPU (через OpenCL) из-за ограничений драйвера NPU. Это типичная инженерная работа: постоянный trade-off между точностью, скоростью и использованием ресурсов.
Смотря на дорожную карту Rockchip и текущие предложения, видно, что они плотно заняли нишу 'достаточно мощного и относительно доступного' решения для периферийного AI. Их SOM — хороший компромисс для массовых продуктов, где нельзя ставить дорогие решения от Nvidia (Jetson) или специализированные ASIC. Особенно в сегментах, которые указаны в деятельности Энтаймс Технолоджи — роботы, медицинское оборудование, безопасность. Там часто важна не абсолютная производительность, а соотношение цена/энергоэффективность и возможность кастомизации.
Однако есть и риски. Сильная зависимость от одного производителя чипов. Конкуренция (например, со стороны Amlogic или новых игроков вроде Sophgo с их RISC-V архитектурой) растёт. Плюс, для действительно критичных применений (автомобиль, авионика) требуется более высокий уровень сертификации и гарантий поставок, чем может предложить большинство вендоров SOM на Rockchip. Здесь пока лидируют традиционные игроки вроде NXP или TI.
В итоге, работа с ROCKCHIP SOM — это не про 'взял и заработало'. Это про глубокое погружение в экосистему, готовность к отладке на низком уровне и постоянному поиску компромиссов. Но для тех, кто прошёл этот путь (как, вероятно, команда в nnntimes.ru), это открывает возможность создавать конкурентоспособные продукты для рынка периферийных вычислений без заоблачных бюджетов. Главное — чётко понимать ограничения платформы с самого начала и не вестись на сухие цифры из спецификаций.