Назад

Patchcore

Прототип или MVP
Технологии информационной безопасности
Технологии сенсорики
TechNet
AeroNet
Технолог
Транспор
Ленинградская область
Балтийский государственный технический университет ВОЕНМЕХ им. Д.Ф. Устинова
Цифровой профиль команды

Описание проекта

Patchcore

Компактная плата на ПЛИС с несколькими детерминированными ядрами ввода-вывода и аппаратными примитивами протоколов. Нестандартные интерфейсы подключаются как готовые переносимые модули, а не реализуются вручную на GPIO, — вместо фиксированного набора периферии, который навязывают стандартные микроконтроллеры.

Технические характеристики

• Одноплатный модуль компактного форм-фактора 20 × 30 мм.

• Вычислительная часть реализована на ПЛИС и состоит из нескольких небольших ядер (ориентир — от 4 до 8, уточняется выбором ПЛИС). Каждое ядро обслуживает собственный интерфейс независимо от остальных.

• Ядра работают без прерываний и операционной системы: каждая инструкция выполняется за фиксированное число тактов, поэтому тайминги сигналов воспроизводимы.

• В конфигурацию ПЛИС входит набор аппаратных примитивов: сдвиговые движки, генерация и захват сигналов с точностью до такта, метки времени фронтов, вычисление CRC, FIFO, кодирование Manchester и NRZ. Ядра соединяют эти примитивы программой.

• Собственная система команд (ISA), ориентированная на ввод-вывод: установка состояния выводов с ожиданием заданного числа тактов, ожидание фронта с меткой времени, операции с битовыми полями, циклы без накладных расходов.

• GPIO-выводы, логика которых определяется пользовательской программой, а не жёстко зашитыми аппаратными блоками периферии. Нагрузочная способность и подтяжки настраиваются; уровни напряжения могут различаться по банкам выводов (при поддержке выбранной ПЛИС).

• Каталог модулей протоколов: UART (включая инвертированный и SBUS), SPI, I²C, 1-Wire, DShot, PPM, квадратурные энкодеры, SSI/BiSS, WS2812. Каждый модуль — пакет с манифестом (выводы, тактовая частота, параметры), тестами и описанием.

• Язык описания протоколов (PDL): пользователь задаёт формат кадра и тайминги, а инструмент генерирует код для ядра или конфигурацию примитивов.

• Собственный открытый тулчейн: ассемблер, компилятор и тактово-точный симулятор для ПК. Один и тот же код даёт одинаковый результат в симуляторе и на плате.

• Встроенный логический анализатор: ПЛИС записывает состояние выводов в буфер и передаёт его по USB с декодированием протоколов.

• Программы ядер загружаются по USB без пересинтеза ПЛИС; пересинтез нужен только при изменении набора аппаратных примитивов. Конфигурация ПЛИС и копия программы хранятся в энергонезависимом ПЗУ на плате.

• Аппаратная кнопка переключения источника загрузки (boot select) между USB и ПЗУ.

• Питание осуществляется через интерфейс USB.

• Открытые исходные коды HDL, тулчейна и каталога модулей.

Проблема, которую решает проект

Разработчики встраиваемых систем регулярно сталкиваются с протоколами, которых нет в периферии стандартного микроконтроллера: нестандартные датчики, энкодеры, проприетарные линии связи. Набор интерфейсов (число UART, SPI, I²C и т. д.) заранее определён производителем чипа, поэтому при нетипичной задаче разработчик вынужден искать обходной путь.

У существующих обходных путей есть недостатки. Программная эмуляция на GPIO нестабильна по таймингам и загружает процессор. Программируемые блоки ввода-вывода (например, PIO в RP2040) ограничены по памяти программ и средствам отладки. Плата на ПЛИС даёт полную свободу, но требует знания HDL и повторного синтеза после каждого изменения. Решение, написанное под один проект, плохо переносится в другой.

Проект превращает этот вынужденный «костыль» в осознанную архитектуру продукта: несколько детерминированных ядер ввода-вывода, аппаратные примитивы для операций с жёсткими таймингами и библиотека переносимых протестированных модулей протоколов. Протокол описывается один раз, проверяется в симуляторе и на встроенном логическом анализаторе, затем загружается на плату по USB.

Проект не конкурирует с микроконтроллерами по тактовой частоте и цене и не предназначен для скоростных интерфейсов (USB, Ethernet, SDIO). Его преимущества — число независимых ядер, аппаратные примитивы, настраиваемая электрика выводов и наблюдаемость, то есть возможность увидеть и воспроизвести тайминги


Примеры применения платы

Мост для нестандартных датчиков БПЛА. Подключается между полётным контроллером и датчиком (дальномер, сенсор оптического потока, специализированная полезная нагрузка), протокол которого не поддерживается интерфейсами контроллера. Плата реализует нужный протокол с точными таймингами, согласует уровни напряжения и передаёт данные в стандартном виде (UART, SPI или I²C). Компактность платы важна для размещения в тесном корпусе малого БПЛА.

Прототипирование нестандартных интерфейсов. Когда задаче нужен протокол или число интерфейсов, не предусмотренные стандартным микроконтроллером, разработчик берёт модуль из каталога или описывает кадр и тайминги на языке описания протоколов, затем отлаживает результат в симуляторе и на встроенном логическом анализаторе — без разработки отдельной платы под конкретный протокол.

Контроллер нестандартной периферии в робототехнике. Несколько энкодеров (в том числе SSI/BiSS) и драйверов с проприетарным протоколом обслуживаются параллельно независимыми ядрами, которые не влияют друг на друга по таймингам. Основному контроллеру данные передаются в стандартном виде.

Имитация устройства при тестировании прошивок. Плата воспроизводит протокол датчика или исполнительного устройства с заданными таймингами, в том числе с отклонениями и ошибками кадра. Это позволяет проверять поведение основной прошивки без реального устройства.

Сравнение с существующими решениями

Решение

Описание

Отличие от проекта

Raspberry Pi Pico (RP2040/RP2350)

Недорогой микроконтроллер (21 × 51 мм) с программируемыми блоками ввода-вывода (PIO).

PIO — самый близкий по смыслу аналог, но число автоматов фиксировано (8 в RP2040), память программ составляет 32 инструкции на блок, арифметических инструкций нет, возможности отладки ограничены. В проекте — несколько ядер с аппаратными примитивами (CRC, метки времени), встроенный логический анализатор и каталог модулей.

Pico выигрывает в цене и зрелости экосистемы; проект ориентирован на задачи, где возможностей PIO не хватает.

Parallax Propeller, XMOS xCORE

Микроконтроллеры с несколькими детерминированными ядрами и без фиксированной периферии. Во втором поколении Propeller добавлены аппаратные умные выводы (smart pins).

Принцип близок. В проекте набор аппаратных примитивов можно менять на уровне конфигурации ПЛИС, а протоколы оформлены как переносимые тестируемые модули с языком описания, симулятором и встроенным анализатором.

NXP FlexIO, TI PRU

Программируемая периферия внутри микроконтроллера или SoC: сдвиговые регистры и таймеры (FlexIO), отдельные ядра реального времени (PRU).

Решения привязаны к конкретным чипам, а состав и число блоков определяет производитель. В проекте набор примитивов и число ядер можно изменять, а модули переносимы между проектами.

TinyFPGA BX, iCEBreaker, Fomu

Компактные платы на ПЛИС с открытым тулчейном (Yosys/nextpnr).

Позволяют реализовать любую периферию на HDL, но каждое изменение требует знания HDL и повторного синтеза. В проекте программы загружаются по USB без пересинтеза, а типовые протоколы доступны как готовые модули.

Glasgow Interface Explorer, Bus Pirate

Инструменты с программно-определяемым вводом-выводом для работы с нестандартными протоколами; популярны у исследователей аппаратной безопасности.

Близки по гибкости, но позиционируются как инструменты анализа, подключаемые к ПК. Проект — встраиваемый модуль, который остаётся в устройстве, а встроенный анализатор нужен для отладки.


Пульс

Пока еще в пульсе нет записей

Достижения

Подал заявку в акселератор ПУТП 2026
Участник акселератора ПУТП 2026

Команда

Наставники

Трекеры

Эксперты

Кураторы по ТН

Контакты

Экспертная система