Домой Железо Новый Espressif ESP32-S31: микроконтроллер с возможностями одноплатного ПК

Новый Espressif ESP32-S31: микроконтроллер с возможностями одноплатного ПК

Компания Espressif представила ESP32-S31 — мощный микроконтроллер с поддержкой Linux, гигабитным Ethernet и продвинутой архитектурой RISC-V.

1
0

Новый Espressif ESP32-S31: микроконтроллер с возможностями одноплатного ПК

Компания Espressif представила новую модель в линейке ESP32 — ESP32-S31. Устройство оснащено гигабитным Ethernet-контроллером, USB 2.0 High-Speed хост-контроллером, интерфейсом SD-карт с двумя слотами и входом для камеры. Подобный набор периферии характерен скорее для Linux-совместимых одноплатных компьютеров (SBC), нежели для типичных микроконтроллеров, которые обычно ограничиваются парой ядер, небольшим объемом RAM, GPIO и поддержкой Wi-Fi.

Запуск блокировщика рекламы на микроконтроллере ESP32

Сетевые возможности и периферия

Главная особенность ESP32-S31 — сетевые возможности. Чип получил MAC-контроллер 1000 Мбит/с, что стало значительным шагом вперед по сравнению со 100-мегабитным интерфейсом ESP32-P4. Для подключения используется разъем 8P8C (RJ45) и PHY-уровень, задействующий интерфейс RGMII, который и обеспечивает работу на гигабитной скорости (в отличие от стандартного RMII).

Контроллер USB 2.0 High-Speed OTG поддерживает работу в режиме хоста и способен обеспечить питание до 500 мА через разъем Type-A. Также присутствуют:

  • SDIO-хост с двумя слотами;
  • DVP-интерфейс камеры (от 8 до 16 бит);
  • Параллельный LCD-контроллер (поддержка до 24-битного RGB, I8080 и MOTO6800);
  • Два I2S-контроллера с аппаратной синхронизацией Bluetooth-аудио;
  • Четырнадцать каналов емкостного сенсора;
  • CAN FD контроллер;
  • Четыре модуля MCPWM.

Архитектура и вычислительные мощности

Вычислительное ядро состоит из двух 32-битных RISC-V ядер с частотой до 320 МГц, каждое из которых оснащено модулем операций с плавающей запятой (FPU), а одно из них дополнительно имеет 128-битный SIMD-тракт данных. Также имеется отдельное 40-МГц ядро для задач с низким энергопотреблением. Для каждого ядра предусмотрено 32 КБ кэша инструкций L1, а общий кэш данных составляет 64 КБ.

Подсистема памяти включает поддержку до 64 МБ PSRAM (8-битный DDR-интерфейс, 250 МГц) и до 256 МБ флеш-памяти. В отличие от ESP32-S3, где интерфейсы PSRAM и флеш были общими, в S31 они разделены, что обеспечивает значительный прирост производительности.

Новый Espressif ESP32-S31: микроконтроллер с возможностями одноплатного ПК — иллюстрация 2 к материалу
Источник: Espressif

Реальный MMU и поддержка Linux

В ESP32-S31 реализован полноценный блок управления памятью (MMU), что существенно отличает его от предыдущих «MMU» в чипах Espressif (ранее это были лишь блоки отображения внешней памяти в адресное пространство). В документации S31 указано наличие «двухуровневой табличной трансляции адресов Sv32» и реализация привилегированных режимов Machine, Supervisor и User. Именно наличие всех трех режимов позволяет запускать ядро ОС в режиме супервизора, что является фундаментом для работы систем на базе RISC-V Linux.

В августе Espressif опубликовала Linux BSP (Board Support Package) на базе Buildroot и U-Boot, включающий ядро, дерево устройств и корневую файловую систему. Несмотря на то, что производитель пока не рекомендует решение для промышленного применения, сообщество активно ведет разработку: уже зафиксированы запуски Linux 6.18 в режиме супервизора с рабочими драйверами и Linux 7.1 с выводом консоли на 800×480 LCD-панель.

Ограничения памяти

Несмотря на возможности, ESP32-S31 остается микроконтроллером. На чипе размещено 512 КБ SRAM, а объем встроенной PSRAM ограничен вариантами 16 МБ или 32 МБ. Максимально возможный объем памяти составляет 64 МБ, при этом DRAM-контроллер отсутствует. В сравнении с такими конкурентами, как Milk-V Duo S с 512 МБ RAM, это выглядит как слабое место. Именно поэтому существующие сборки Linux выполняют ядро непосредственно из флеш-памяти, стараясь не расходовать ограниченный ресурс PSRAM.

Новый Espressif ESP32-S31: микроконтроллер с возможностями одноплатного ПК — иллюстрация 3 к материалу

Возможности и аппаратные ограничения S31

В конфигурации устройства отсутствует графический процессор (GPU) или нейронный процессор (NPU). Хотя чип ESP32-P4 поддерживает кодирование видео и интерфейсы MIPI, в модели S31 эти возможности были принесены в жертву ради интеграции дополнительных радиомодулей. Несмотря на наличие JPEG-кодека, ускорителя для обработки 2D-пикселей и 2D-DMA, этих ресурсов недостаточно для полноценного отображения рабочего стола Linux.

Тактовая частота в 320 МГц вызывает вопросы относительно работы гигабитного сетевого контроллера (NIC). При такой частоте на один Ethernet-кадр максимального размера приходится около 3900 циклов процессора, а на кадр минимального размера — около 215 циклов. Учитывая теоретический предел пропускной способности PSRAM в 500 МБ/с, достижение реальных гигабитных скоростей при пакетной передаче данных возможно, однако скептически стоит относиться к возможности насыщения канала при передаче множества мелких пакетов.

Новый Espressif ESP32-S31: микроконтроллер с возможностями одноплатного ПК — иллюстрация 4 к материалу

Беспроводные интерфейсы и энергопотребление

Наличие встроенного стека беспроводной связи является важным преимуществом, так как сопоставимые по цене одноплатные компьютеры (SBC) часто лишены этой возможности. Плата оснащена Wi-Fi 6 (2,4 ГГц), Bluetooth 5.4 с поддержкой режимов LE и Classic BR/EDR, а также радиомодулем 802.15.4 для работы с протоколами Thread и Zigbee, дополняющими гигабитный MAC-интерфейс. Поддержка стандарта Matter реализована через Wi-Fi и Thread. Наличие Bluetooth Classic в ESP32 можно считать необычным решением, однако это гарантирует совместимость с устаревшим аудиооборудованием.

Энергопотребление устройства остается на низком уровне даже при активной работе радиомодулей. В режиме приема Wi-Fi потребление составляет от 110 до 117 мА в зависимости от настроек, а пиковые показатели при передаче достигают 265 мА (стандарт 802.11b, 15 дБм). При работе обоих ядер в режиме modem-sleep на частоте 320 МГц потребление составляет 91 мА с выключенными тактовыми сигналами периферии и 147 мА с включенными. Таким образом, плата демонстрирует показатели микроконтроллера при наличии набора периферии, характерного для SBC.

Вопросы нейминга и документации

Название «S31» вызывает определенную путаницу, так как индекс «S3» намекает на ревизию серии S3, хотя по факту устройство практически не имеет к ней отношения. Espressif определяет серию S как «высокопроизводительные SoC с широким функционалом», не привязывая название к наборам инструкций. Основное различие между линейками C и S заключалось в использовании ядер RISC-V и Xtensa LX7 соответственно. Йерун Домбург, менеджер по техническому маркетингу Espressif, в комментариях на Hackaday отметил, что архитектура процессора никогда не была частью системы именования. Он также уточнил, что ядро S31 заимствовано у P4, что обеспечивает почти двукратный прирост производительности по сравнению с S3.

Новый Espressif ESP32-S31: микроконтроллер с возможностями одноплатного ПК — иллюстрация 5 к материалу

На текущий момент техническая документация S31 остается неактуальной: даташит версии 0.5 содержит водяной знак «PRELIMINARY». В документе есть неточности, например, максимальная частота PSRAM указана как 80 МГц, что противоречит официально заявленным Espressif 250 МГц. Подобная небрежность в документации типична для Espressif на ранних этапах жизненного цикла новых продуктов.

Перспективы Linux на ESP32-S31

На данный момент запуск Linux на S31 остается скорее экспериментальной задачей. Хотя S31 технически не является одноплатным компьютером, это первый ESP32, который по своим периферийным возможностям, пропускной способности и модели привилегий процессора максимально приближен к современным SBC. Разрыв между микроконтроллерами с качественным вводом-выводом и полноценными SBC в последние годы сокращается, и хотя 16 МБ PSRAM недостаточно для работы десктопной среды, запуск терминала Linux на этой платформе уже возможен, что является первым шагом в этом направлении.

Новый Espressif ESP32-S31: микроконтроллер с возможностями одноплатного ПК — иллюстрация 6 к материалу

Дополнительные технические подробности о работе периферии

Интересной деталью реализации беспроводного блока является поддержка Bluetooth Classic. Хотя этот протокол постепенно уходит из современных встраиваемых систем в пользу Bluetooth Low Energy, его наличие в ESP32-S31 существенно расширяет возможности взаимодействия с устаревшей периферией. В частности, это обеспечивает бесшовную совместимость с аудиооборудованием прошлых поколений, что для чипа с мультимедийными возможностями является важным преимуществом.

В части мультимедийной обработки, помимо упомянутого JPEG-кодека, чип располагает 2D-ускорителем обработки пикселей и 2D-DMA. Эти аппаратные блоки призваны компенсировать отсутствие полноценного графического процессора, позволяя разгрузить RISC-V ядра при выполнении операций с выводом изображения на дисплей.

Нюансы внутренней архитектуры кэширования

Организация памяти в ESP32-S31 получила существенное обновление, направленное на повышение эффективности работы ядер. Каждое из двух 32-битных RISC-V ядер обладает выделенным кэшем инструкций (L1 I-cache) объемом 32 КБ. При этом они используют общий кэш данных (D-cache) объемом 64 КБ. Такая конфигурация кэш-памяти в сочетании с 128-битным SIMD-трактом на одном из ядер позволяет эффективно выполнять задачи, требующие интенсивных математических вычислений, что критично для работы с современными программными стеками.

Новый Espressif ESP32-S31: микроконтроллер с возможностями одноплатного ПК — иллюстрация 7 к материалу

Уточнение по статусу документации и жизненному циклу

Стоит отметить, что даже такой серьезный шаг в сторону SBC-архитектуры сопровождается определенными рабочими моментами, типичными для стадии пре-релиза чипа. Несмотря на подробное описание в текущем даташите (версия 0.5), статус «PRELIMINARY» подчеркивает, что некоторые характеристики находятся на стадии уточнения. Так, противоречие между спецификацией PSRAM в 80 МГц в тексте документа и официально заявленными производителем 250 МГц на практике означает, что разработчикам стоит проявлять осторожность при выборе частотных параметров шины памяти до выхода финальной версии спецификации.

Тем не менее, сам факт появления такой архитектуры, поддерживающей полноценные привилегированные режимы (Machine, Supervisor и User), переводит ESP32-S31 в категорию устройств, на которых действительно можно запускать полноценные ядра операционных систем с изоляцией процессов и таблицами страниц. Это значительно меняет правила игры для инженеров, привыкших к более простым микроконтроллерным задачам, превращая разработку на этой платформе в своеобразный «мостик» между традиционным embedded-программированием и миром настольных Linux-систем.