diff --git a/README.md b/README.md index ec201d3..131b8e5 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,10 @@ pluto-link/ └── docs/ ├── BENCHMARK.md # методика и результаты замеров CPU ├── CI.md # два runner'а, что тестируется, нюансы - └── NOTES.md # FDD, регуляторика, известные грабли + ├── COMPARISON.md # сравнение с коммерческими MANET-радио (Silvus, Sinosun) + ├── NOTES.md # FDD, регуляторика, известные грабли + └── USAGE.md # руководство пользователя pluto-link + ``` ## 4. Среда разработки и сборка diff --git a/docs/COMPARISON.md b/docs/COMPARISON.md new file mode 100644 index 0000000..31ad304 --- /dev/null +++ b/docs/COMPARISON.md @@ -0,0 +1,144 @@ +# COMPARISON.md — pluto-link vs коммерческие MANET-радио (Silvus SC4200EP, Sinosun MIMOMesh) + +Дата: 2026-07-15. Сравнение измеренных характеристик pluto-link (README.md, +BENCHMARK.md) с публичными данными двух коммерческих COFDM-радио. Данные +pluto-link — из фактических прогонов на плате (§12 README, docs/BENCHMARK.md). +Данные конкурентов — маркетинговые материалы вендоров, без независимой +верификации. + +Источники: +- Silvus Technologies, StreamCaster 4200 Enhanced Plus: + https://silvustechnologies.com/products/streamcaster-4200-enhanced-plus/ +- Sinosun, Data Radio MIMOMesh (multiple handheld series): + https://www.sinosunmesh.com/quality-43320224-data-radio-mimomesh-wireless-mesh-data-link-multiple-handheld-series + +## 1. Почему именно эти два продукта + +Sinosun MIMOMesh построен на **AD936x + Zynq (7Z020/7Z030/7Z035/7Z100)** — +той же паре чипов, что и Pluto+ (README §1: Zynq-7020, AD9361). По сути это +серийное изделие на буквально той же платформе, что и наш прототип, только +модем вынесен из ARM в программируемую логику (PL) того же Zynq. Silvus — +не совпадает по платформе, но того же класса (тактический MANET COFDM) и +задаёт верхнюю планку рынка. + +## 2. Сводная таблица + +| Параметр | pluto-link (измерено) | Sinosun MIMOMesh | Silvus SC4200EP | +|---|---|---|---| +| Платформа | AD9361 + Zynq-7020, **PHY на ARM Cortex-A9** (liquid-dsp, софт) | AD936x + Zynq 7Z020…7Z100, **PHY в FPGA (PL)** | проприетарная, не раскрыта | +| Waveform | OFDM M=64/CP=16, **QPSK фиксированная** | TD-COFDM, адаптивная BPSK…1024QAM | MN-MIMO COFDM, адаптивная | +| Полоса | 1.5 МГц (rate 1.92 MSPS — потолок ARM-синхронизатора, README §2) | 1.25–80 МГц | 1.25–20 МГц | +| Goodput | **~120 КБ/с ≈ 0.96 Мбит/с** (`-p 3000`, §12.6); ~95 КБ/с лосслесс с group-FEC (`-p 4000`, §12.7) | 1–70 Мбит/с @20 МГц … до 350 Мбит/с @80 МГц | не публикуется | +| MIMO | SISO (софт); AD9361 физически 2R2T, канал не задействован | 2×2, space-time coding + TX/RX beamforming | 2×2, eigen-beamforming | +| Топология | точка-точка, **симплекс** | MANET, 256+ узлов, multi-hop | MANET, до 559 узлов | +| Дуплекс | нет (FDD 868/915 — roadmap §10 п.7) | TDD | TDD, single-frequency | +| Надёжность/FEC | RS(255,223) внутрикадрово + **group-FEC 16+2** (эрейжер, GF(256), overhead 12.5%), измеренный PER 0.26–0.36%, 10 МБ соук байт-в-байт (§12.7) | адаптивная модуляция под канал (заявлено) | адаптивная модуляция под канал (заявлено) | +| ARQ | нет — закрыто частично group-FEC без обратного канала; полный ARQ на дуплексе (§10 п.7, техдолг #6) | есть (MAC-уровень) | есть (MAC-уровень) | +| Латентность | не нормируется отдельно; эфир кадра 5.33 мс + пауза TX 3–4 мс (§12.6/12.7) | ~6 мс/хоп (заявлено) | ~7 мс/хоп (заявлено) | +| TX-мощность | AD9361 без внешнего УМ, рабочая точка gain −20 дБ (единицы мВт на разъёме, §12.4) | 2×2 / 4×2 / 5×2 Вт | до 10 Вт (20 Вт эфф. с beamforming) | +| Диапазон | 915 МГц (тест); AD9361 tunable 70 МГц–6 ГГц, но без фильтров/УМ под конкретный банд | заказные банды 225 МГц – 5.85 ГГц | dual-band, конкретные частоты не раскрыты | +| Шифрование | нет; в заголовке кадра зарезервирован байт флагов, формат допускает AEAD +16 Б/кадр (README §10 п.6, техдолг-примечание) | AES-128/256, DES, опционально SM4/SNOW3G/ZUC | AES-256, FIPS 140-3 Level 2 | +| Сертификация | нет (прототип ОКР «R-Link») | не указана в источнике | Blue UAS, NDAA/DoD cybersecurity | +| Цена | ~$200–250 за плату (2 шт. для линка) | $3450–4050/шт. | не публикуется (класс рынка — от $10k+) | + +## 3. Где pluto-link уже сопоставим + +- Работающий COFDM-линк на том же трансивере (AD9361), что и Sinosun. +- Все характеристики — **измеренные**, а не заявленные: PER, EVM, throughput, + предел CPU сняты прогонами на плате (docs/BENCHMARK.md, README §12), а не + взяты из datasheet. +- **Групповой стирающий FEC 16+2 без обратного канала** (README §10 п.6, + §12.7) — у обоих конкурентов эквивалентный слой не описан в публичных + материалах; они полагаются на ARQ поверх MAC, что требует дуплекса. + У pluto-link это единственный механизм, спасающий целостность на симплексе. +- Подтверждённый лосслесс: 10 МБ байт-в-байт на `-p 4000` (§12.7) — не + демо-цифра, а воспроизводимый соук-тест. +- GF(256)-кодек самопроверен формальным тестом (`make gftest`, + 774 400 кейсов, 0 ошибок) — уровень верификации, обычно не публикуемый + вендорами вообще. +- Цена железа на 1–2 порядка ниже при сопоставимом чипсете. + +## 4. Разрыв и его причина + +Главная развилка — **PHY на ARM (софт) vs PHY в FPGA**. Наши же измерения +это объясняют: синхронизатор liquid на Cortex-A9 тянет **1.65 Msps на +сплошном потоке** — это 0.86× от целевых 1.92 MSPS (BENCHMARK.md, +«пересмотр 14-07», README §12.5), то есть одно ядро 667 МГц — это и есть +потолок пропускной способности порядка ~1.5 Мбит/с. У Sinosun тот же +Zynq-7020 выдаёт 70 Мбит/с при 20 МГц полосы, потому что модем реализован +в программируемой логике, а ARM в их изделии занят только управлением и +MAC — ровно то разделение труда, которое мы не можем себе позволить без +переноса PHY в PL. + +Второй разрыв — RF-обвязка: у нас голый AD9361 без внешнего усилителя +мощности, фильтров под конкретный диапазон и диплексера для полного +дуплекса; у конкурентов это Вт-класса УМ + LNA + TDD-свитчинг. + +Третий — MAC/сетевой уровень: TDD-слоттинг, mesh-маршрутизация на 250+ +узлов, ARQ. У pluto-link это точка-точка без MAC вообще. + +## 5. Горизонт 1 — потолок Pluto+ как есть (без нового железа) + +Софтовые шаги в рамках текущего roadmap (README §10): + +- **п.7 FDD 868/915 + ARQ** — закрывает «молчаливые дыры» техдолга #6, + даёт двусторонность. В сочетании с уже реализованным group-FEC получается + гибрид (стирающий FEC + ARQ по обратному каналу), которого по отдельности + ни у одного конкурента в описании нет — у них это либо ARQ, либо ничего. +- **п.8 UDP-туннель + web-настройка** — паритет по «IP-прозрачности» с + Ethernet-мостом конкурентов. +- **п.9 видео raw UDP ≤1472 Б** — тот же сценарий использования, что у + конкурентов декларируется как основной (потоковое видео). +- **Адаптивная модуляция QPSK↔16QAM** по телеметрии EVM/RSSI, которая уже + снимается (§12.4) — дешёвый шаг к «auto link adaptation» уровня + конкурентов; перед внедрением обязателен прогон `ofdm_bench` (правило + CLAUDE.md №6/README §5.6, PHY-параметры меняются). +- **M=32/CP=8** — единственный обнаруженный резерв поднять предел + синхронизатора выше 1.65 Msps (BENCHMARK.md, «неисследованные резервы»); + требует нового бенчмарка перед принятием. +- **2R2T Pluto+**: второй RX/TX-канал AD9361 физически присутствует и не + используется. Реалистичная цель на ARM — RX-diversity (не полноценный + 2×2 MIMO с пространственным мультиплексированием — MRC/STC на ARM в + реальном времени, скорее всего, не влезает в оставшийся бюджет CPU; + требует отдельного ofdm_bench-прогона, прежде чем закладывать в план). +- AEAD-резерв под шифрование уже заложен в формате кадра (byte 11) — + реализация зависит от требования ОКР. + +**Честный потолок горизонта 1**: порядок ~1.5 Мбит/с, точка-точка (2 узла), +симплекс/FDD-полудуплекс, TX-мощность в единицах мВт без внешнего УМ. +Mesh на ARM-PHY недостижим — нет свободного CPU одновременно на +многопоточный синхронизатор и MAC-маршрутизацию. + +## 6. Горизонт 2 — что нужно для класса Sinosun ($3.5–4k/шт.) + +- **Перенос модема в PL Zynq** (HLS или RTL OFDM-модем) — главный и самый + трудоёмкий шаг; именно это меняет потолок с 1.92 MSPS/ARM на 20–80 МГц + полосы. По объёму разработки это ядро того, что стоит за продуктом + Sinosun — не спринт, а отдельная многомесячная инженерная программа. +- **RF-тракт**: усилитель мощности 2–10 Вт, LNA, фильтры под целевой + диапазон, TDD-переключение приём/передача. +- **MIMO 2×2**: пространственное кодирование/beamforming в FPGA (на ARM + нереалистично при текущем бюджете CPU). +- **MAC-уровень**: TDD-слоттинг, mesh-маршрутизация, multi-hop, ARQ — + сетевой стек, которого у pluto-link сейчас нет вообще (точка-точка). +- **Регуляторика/сертификация**: диапазоны 868/915 в нашем регионе уже + выявленное ограничение (docs/NOTES.md — 868 SRD, 915 не свободен в ETSI); + для заказных вендорских бандов (как у Sinosun) нужен отдельный частотный + допуск. + +**Позиционирование**: pluto-link на этом этапе — верифицированный прототип +waveform-а, формата кадра и FEC-стека (group-FEC 16+2, CRC-поверх-RS) с +воспроизводимой методикой измерений. Путь к изделию уровня Sinosun — это +миграция PHY с ARM на FPGA того же Zynq с сохранением формата кадра и +group-FEC слоя, а не переписывание протокола с нуля. + +## 7. Приоритеты (рекомендация) + +1. Завершить **§10 п.7** (FDD + ARQ) — даёт максимальный прирост надёжности + при чисто софтовых изменениях, закрывает последний открытый техдолг (#6). +2. Адаптивная модуляция (QPSK↔16QAM) — измеримый шаг к паритету по + «auto link adaptation» с минимальными изменениями кода. +3. **§10 п.8** (UDP-туннель) — переводит pluto-link из «демо передачи файла» + в «сетевой линк», ближе к тому, как позиционируются оба конкурента. +4. Решение о горизонте 2 (перенос PHY в FPGA) принимать по факту завершения + пп. 7–9 roadmap — раньше данных для оценки трудоёмкости недостаточно.