SPICI03Аппаратное обеспечение системы
Система состоит из четырёх различных пластин:
Таблицы EVAL-ADIN1100 имеют ADIN1200 -T/100BASE-T-PHY, которые используются в сочетании с ADIN1100 10BASE-T1L PHY, которые могут преобразования сообщений из одного физического стандарта в другой. Он может быть настроен на различные рабочие модели. Проект использует стандартную модель 15 (медиатор). Панель EVAL-ADIN1100 также интегрирована в микроконтроллер для базовой конфигурации и чтения диагностической информации, необходимой для выполнения преобразования медиума. Но он не может взаимодействовать с посланными и получаемыми сообщениями; Панель полностью прозрачна для связи.
EVAL-ADIN1110 является ядром дистанционного управления приборами. ADIN1110 10BASE-T1L MAC-PHY через 10BASE-T1L link получа Дан, и через SPI интерфейс передач Дан до бортов Cortex ® — м4 микроконтроллер для обработк. Пластина также предоставляет разъём, совместимый с Arduino Uno, который может быть использован для установки расширенных пластин для добавления большего числа функSPICI03ций.
TMC5160 расширенная пластина (tmc5160) — разработчик, разработанный на основе картона Arduino. Одна расширенная пластина поддерживает до двух TMC5160 SilentStepStick, и несколько расширенных пластин могут быть сложены вместе, чтобы увеличить максимальное количество управляемых электростанций. Все драйверы делятся одними и теми же часам SPI и сигналами данных, но линии отображения остаются независимыми. Эта конфигурация поддерживает две модели связи: микроконтроллеры могут взаимодействовать с отдельными контроллерами — например, с параметрами движения конфигурации, если каждая линия отображения является эффективной. Вместо этого, все выбранные драйверы получают одинакSPICI03овые команды одновременно, если одновременно поместить в действие несколько разделов. Последняя модель используется в основном для синхронизации движения. Пластина также предоставляет дополнительную входную ёмкость для уменьшения максимума тока во время запуска двигателя и сглаживания кривой тока в течение обычного рабочего времени. Он позволяет использовать PoDL для питания всей системы с двумя электродвигателями NEMA17 (по умолчанию, максимальная мощность передачи 24 в час составляет 12 вт). Пластина также поддерживает использование винтов для упрощения соединения с шаговым двигателем, что облегчает доступ к выводе фазы из контроллера.
Две панели EVAL-ADIN11X0EBZ используются для добавления функции PoDL в систему, одна из которых используется для конвертеров средств информации, а другая для EVAL-ADIN1110EBZ. Пластина является плагиновым модулем, который может быть установлен в разъёме MDI-прототипа панели оценки, и может быть настроен так, чтобы обеспечить и получать энергию через кабель данных.
Программный код доступен для скачивания: использование ethernet 10Base-T1L для дистанционного управления движением.
Для того чтобы сохранить легкий количественный код и эффективно сократить расходы на коммуникацию, стандартные протоколы связи не были реализованы выше уровня передачи данных. Все сообщения обмениваются полями, действительными загрузками кадров ethernet, которые заранее определены в фиксированном формате. Данные были организованы в 46 байт сегмента данных, состоящий из двух байтов фиксированного заголовка газеты и 44 байта поля данных. Заголовок газеты: поле 8 — битного устройства для определения того, как обработать полученные данные; И поле ID-кода 8 — значного устройства, которое может быть выбрано через идентификатор, если существует несколько идентичных устройств.
Интерфейс мейнфрейма написан на Python для обеспечения совместимости с Windows и Linux. Ethernet коммуникация управляется через модуль Scapy, который позволяет создавать, отправлять, получать и управлять пакетами данных на каждом уровне стека (включая канал передачи данных ethernet). Каждый инструмент, определенный в протоколе, имеет соответствующий класс, включая атрибуты, которые используются для хранения данных, которые должны быть обменены, и набор методов, которые могут быть использованы для модификации этих свойств без прямого редактирования переменных. Например, если вы хотите изменить направление движения в режиме скорости управления движением, вы можете использовать уже определенный метод «setDirectionCW» () и «setDirectionCCW» без необходимости вручную присвоения значения 0 или 1 для обозначения знака направления. Каждый класс также включает в себя метод «packSegment()», который упаковывается в байт и возвращает сегменты данных, которые соответствуют контролируемым устройствам в соответствии с предварительным определением рассматриваемых устройств.
Прошивки пишутся на языке C с использованием среды ChibiOS, которая включает в себя такие инструменты, как операционная система реального времени (RTOS), абстрактный слой оборудования (HAL), внешний драйер, который позволяет легко передавать код между похожими микроконтроллеры. Проект основан на трех модулях самоопределения:
ADIN1110 — драйверы, используемые для поддержки обмена данными с ADIN1110 через интерфейс SPI. Она включает в себя низкоуровневые функции связи, которые используются для чтения и записи данных из регистра устройства, а также высшие функции для передачи и получения кадров ethernet. Он также включает функции, которые используются для установления связи между передатчиками 10BASE-T1L. Уведомление о Том, что новые кадры будут прочитаны при прерывании, с тем чтобы минимизировать задержки.
TMC5160 реализовал всю функцию, необходимую для управления TMC5160, настроенный на функционирование в режиме полного функционального управления движением. Он реализовал два режима управления постоянной скоростью и позицией, которые позволили гладкое и точное расположение с помощью шести рамп. Коммуникация с несколькими спортивными контроллерами реализируется с помощью одной шины SPI и нескольких независимых линий отборного кино. Он также предоставляет набор функций и определения типов для упрощения синхронизации движения.
Devices.c — интерфейс между данными, полученными в сети T1L, и физическим устройством, подключенным к контроллеру. Он включает в себя аналогичные структурные тела, определяемые в интерфейсе хоста, и функции, которые обновляют структурные тела каждый раз, когда они получают новые кадры с эффективными данными на ленте. Этот модуль также используется для определения того, какие операции выполняются при каждом обновлении структур, например, какой физический контроллер движения связан с командами, полученными по адресу конкретного устройства.