1. Общая характеристика проекта
Разработана система EtherCAT-slave-устройства на базе микросхемы LAN9252 с использованием открытого стека SOES. Устройство выполняет функции robot/motion-контроллера для дельта-робота с тремя осями и поддержкой профиля EtherCAT CiA 402, включая режимы PP (Profile Position), PV (Profile Velocity), TQ (Torque) и CSP (Cyclic Synchronous Position)/CSV (Cyclic Synchronous Velocity)/CST (Cyclic Synchronous Torque). Решение интегрируется в стандартные EtherCAT сети и совместимо с промышленными ПЛК и системами управления, включая TwinCAT. Есть возможность подключения внешнего контроллера движения (motion controller).
Аппаратная платформа проекта: Xilinx Zynq-7020 (двухъядерный ARM Cortex-A9 + программируемая логика FPGA), что обеспечивает сочетание производительности и гибкости при реализации контуров управления в жестком реальном времени.
2. Системная архитектура
Система построена на гетерогенной архитектуре с разделением задач по уровням реального времени:
EtherCAT‑slave реализован на базе микросхемы LAN9252. Используется стек SOES с поддержкой SyncManager и механизма Distributed Clocks для синхронизации с EtherCAT‑мастером. Обмен с LAN9252 реализуется через SPI интерфейс.
3. Контуры управления и алгоритмы
4. Программное обеспечение системы
Программное обеспечение разделено по уровням реального времени.
RTOS ThreadX
RTLinux (PetaLinux)
5. Силовая электроника и приводная часть
6. Коммуникации и интерфейсы
Поддерживаются следующие интерфейсы и протоколы: EtherCAT (slave), профиль CiA 402; обмен PDO/SDO; RPMsg между Linux и RTOS; IPC на стороне Linux; HTTP/HTTPS для web‑доступа; Ethernet (OPC UA) для подключения к сети предприятия; интерфейсы энкодеров (A/B/Z, дифференциальные линии на стороне PL-FPGA).
7. Тестирование и верификация
8. Результаты и преимущества решения
9. Аппаратная платформа
В проекте используется аппаратная платформа: Xilinx Zynq‑7020 (SoC: ARM + FPGA); LAN9252 — EtherCAT‑slave контроллер; силовая плата на три оси (три PMSM двигателя) с GaN‑ключами TP65H035G4QS и PFC (totem-pole).