Системы реального времени
Real-Time Networking
Цели урока
- Понять принципы TSN: синхронизация времени и Time-Aware Shaper
- Разобраться в CAN bus арбитраже и применении SocketCAN в Linux
- Познакомиться с AVB/CBS для медиа-приложений
- Выбирать правильный протокол детерминированной сети под задачу
Промышленный робот потерял синхронизацию с сервоприводами из-за сетевого джиттера в 2 мс - и дорогостоящая деталь была испорчена. Детерминированные сети решают именно эту проблему: гарантия доставки пакета в нужный момент, а не «когда-нибудь скоро».
- **Tesla:** CAN FD + Automotive Ethernet в каждом автомобиле для связи ECU и камер
- **BMW iDrive:** AVB для 20+ аудиоканалов по одному Ethernet кабелю
- **Siemens SINUMERIK:** TSN для sub-millisecond управления ЧПУ-станками
- **Glastonbury, Coachella:** Dante (AVB) для распределения 512 аудиоканалов по концертной площадке
TSN: Time-Sensitive Networking
Обычный Ethernet - best-effort: пакеты конкурируют за среду, задержки непредсказуемы. **Time-Sensitive Networking (TSN)** - набор стандартов IEEE 802.1, добавляющих детерминизм к Ethernet. Не новый протокол, а расширение существующей инфраструктуры.
Основа TSN - синхронизация времени между узлами (IEEE 802.1AS, gPTP) с точностью < 1 мкс. Все коммутаторы и конечные устройства разделяют единое время - это позволяет планировать передачу пакетов с наносекундной точностью.
TSN требует поддержки в аппаратуре: сетевые карты и коммутаторы должны уметь аппаратно применять расписание. Intel i210/i225, NXP LS1028A, Microchip LAN9662 - примеры TSN-совместимых чипов. Программный TSN без hardware timestamping даёт значительно худший результат.
Что является основой для работы Time-Aware Shaper (TAS) в TSN?
CAN bus: протокол и арбитраж
**Controller Area Network (CAN)** разработан Bosch в 1983 году для автомобильной электроники. Десятки лет спустя он остаётся стандартом де-факто в автомобилях, промышленной автоматизации и медицинских устройствах - за надёжность, детерминизм и отказоустойчивость.
Ключевая особенность CAN - **арбитраж без коллизий**. Все узлы одновременно начинают передачу, но побеждает тот, у кого ID с меньшим числом (доминантные биты вытесняют рецессивные). Проигравший мгновенно останавливается и ждёт. Результат: детерминированный приоритет без центрального арбитра.
CAN FD (Flexible Data-rate, 2012) расширяет CAN: данные до 64 байт вместо 8, скорость до 8 Мбит/с в data-phase. CAN XL (2023) идёт ещё дальше: до 2048 байт и 20 Мбит/с. Но базовый CAN 2.0 (500 кбит/с) по-прежнему доминирует в автомобилях.
Как CAN bus разрешает конфликты при одновременной передаче нескольких узлов?
Ethernet AVB для медиа
**Audio Video Bridging (AVB)** - предшественник TSN, разработанный для гарантированной передачи аудио и видео по Ethernet. Стандарт IEEE 802.1BA использует Credit-Based Shaper (CBS) для резервирования полосы пропускания для потоков реального времени.
AVB широко используется в профессиональном аудио (Dante, AES67, Milan) и в автомобилях (BMW, Mercedes используют AVB для мультимедиа-шин). TSN - его преемник с более строгими гарантиями для промышленности.
**Milan** (2020) - профиль поверх AVB/TSN, созданный консорциумом pro-audio компаний (AVID, Focusrite и другие). Стандартизирует AVB для живых концертов: гарантированная latency < 2 мс при 250+ аудиоканалов по одной сети.
Credit-Based Shaper в AVB резервирует полосу для потоков. Что происходит, когда у потока заканчиваются кредиты?
Детерминированные сети: сравнение подходов
Существует несколько подходов к детерминированным сетям, каждый со своим trade-off между сложностью, latency и совместимостью с существующей инфраструктурой.
| Протокол | Latency | Bandwidth | Применение | Совместимость |
|---|---|---|---|---|
| CAN 2.0 | < 1 мс | 1 Мбит/с | Авто ECU, промышленность | Нет (спец. кабель) |
| CAN FD | < 1 мс | 8 Мбит/с | Авто CAN FD | CAN 2.0 (частично) |
| Ethernet AVB | < 2 мс | до 100 Мбит | Профи-аудио, авто медиа | Обычный Ethernet |
| TSN | < 100 мкс | до 10 Гбит | Промышленность, авто | Обычный Ethernet |
| PROFINET RT | < 1 мс | 100 Мбит | Siemens PLC сети | Ethernet (спец. стек) |
| EtherCAT | < 100 мкс | 100 Мбит | Servo drives | Ethernet (мастер/слейв) |
Выбор протокола определяется требованиями к latency, объёмом данных и экосистемой. CAN незаменим для коротких сообщений с жёстким RT-требованием и отказоустойчивостью. TSN - когда нужна полоса Ethernet плюс детерминизм.
Для управления роботом-манипулятором с 6 сервоприводами, цикл управления 1 мс, стандартный Ethernet кабель - оптимальный выбор:
Детерминированные сети
- TSN = обычный Ethernet + gPTP синхронизация + Time-Aware Shaper, latency < 100 мкс
- CAN bus: non-destructive арбитраж по ID, 1 Мбит/с, незаменим в автомобилях
- AVB/CBS: резервирование полосы кредитами, latency < 2 мс, стандарт для pro-audio
- Выбор: CAN для коротких RT-сообщений, TSN для высокой полосы + детерминизм, AVB для медиа
- Linux: SocketCAN для CAN, tc taprio для TSN, ptp4l для синхронизации
Связанные темы
Детерминированные сети работают в связке с RT-операционными системами.
- Real-Time Linux — ОС-основа для TSN-эндпоинтов
- Планировщик реального времени — Управление задачами на RT-конечных устройствах
- Промышленные протоколы — PROFINET, EtherCAT в контексте
Вопросы для размышления
- Почему TSN требует аппаратной поддержки в сетевых картах, а не просто программного стека?
- CAN существует 40 лет и всё ещё доминирует в автомобилях - какие его свойства обеспечивают такое долголетие?
- Как gPTP синхронизация с точностью 1 мкс достигается по обычному Ethernet без GPS?