Александр Сыров, alexandr.syrov@eltech.spb.ru
Даян Хафизов
Использование 32-х разрядного микроконтроллера ATSAME54 и микросхемы LAN9252 для построения промышленных устройств с передачей данных по Ethercat
Часто бывает, что в техническом задании прописаны серьезные требования к системам автоматизации в реальном времени. При этом, должна быть обеспечена простота монтажа и обслуживания на производстве. В таком случае, стоит обратить внимание на интерфейс EtherCAT (Ethernet для контроля и автоматизации управления). Компания ЭЛТЕХ предлагает рассмотреть решение от компании Microchip Technology в виде связки микроконтроллера SAM E54 с EtherCAT-контроллером LAN9252.
Для задач в реальном времени необходима достаточно высокая производительность и невысокая стоимость оборудования. Использование стандарта EtherCAT в данном случае выглядит весьма привлекательным. Рассмотрим связку микроконтроллера SAM E54 и EtherCAT-контроллера LAN9252 от компании Microchip более подробно.
Все разработки начинаются с технического и выбора элементной базы, которая сможет потянуть выполнение поставленных задач.
Начнем с микроконтроллера.
В 2019 году компания Microchip представила свои новые микроконтроллеры SAMD5/E5x на базе ядра Cortex-M4F от компании ARM. Благодаря наличию большого количества интерфейсов и высокой производительности эти микроконтроллеры успешно внедряются во многие ниши промышленной автоматизации.
Сочетание ядра Cortex-M4F с тактовой частотой до 120 МГц и модуля вычислений с плавающей запятой позволяет снизить нагрузку на контроллер при работе приложений с интенсивной нагрузкой и сохранить низкий уровень энергопотребления. Микроконтроллеры серии SAM E54 могут иметь два блока встроенной Flash-памяти с коррекцией ошибок (ECC) объемом до 1 МБ, позволяющей производить обновление прошивки микроконтроллера без прерывания работы системы. Дополнительно, микроконтроллеры семейств SAM D5x и SAM E5x могут иметь до 256 КБ встроенной памяти SRAM с ECC, необходимой для работы критически важных приложений, таких как медицинские или серверные системы.
Микроконтроллеры SAM E54 имеют большое количество встроенных интерфейсов, а также оборудованы интерфейсом QSPI с функцией Execute In Place. Это позволяет использовать высокопроизводительную Flash-память с последовательным интерфейсом вместо памяти с параллельным интерфейсом, даже и том в случае, если необходима внешняя память с высокой скоростью работы. Также микроконтроллеры пSAM E54 имеют встроенный Secure Digital Host Controller (SDHC), Peripheral Touch Controller (PTC) и лучшие в своем классе характеристики по энергопотреблению, что делает их подходящими для создания мобильных устройств. .
Наличие порта CAN FD, встроенного контроллера 10/100Mbps Ethernet MAC с поддержкой протокола точного времени IEEE 1588 v2, мощное производительное ядро Cortex-M4F и широкая периферия позволяют микроконтроллерам SAME54 быть надежным выбором для устройств промышленной автоматизации и систем реального времени.
Для быстрого освоения и начала разработки, компания Microchip предлагает отладочную плату SAM E54 Xplained Pro с микроконтроллером ATSAME54P20A (рис.1).


Рис. 1 Внешний вид отладочной платы SAM E54 Xplained Pro
У микроконтроллера ATSAME54P20A один порт 10/100 Mbps Ethernet с интерфейсом RMII, и он с поддержкой протокола точного времени IEEE 1588 v2, что может быть использовано для работы с EtherCAT. ATSAME54P20A подключен к PHY-трансиверу KSZ8091RNACA, который соединен с разъемом RJ45.
Промышленный Ethernet в реальном времени.
Сети Ethernet широко распространились в качестве стандарта передачи данных в области IT-технологий. Благодаря большой пропускной способности и поддержке различных физических сред передачи данных (определенных в стандартах IEEE 802.3 и IEEE 802.11) стало возможным массовое применение. А его повсеместное применение сделало доступным по цене стандартное сетевое оборудование.
EtherCAT (Ethernet for Control and Automation Technology) – это стандарт промышленных сетей, разработанный компаний Beckhoff. Он относится к семейству Industrial Ethernet и технологиям используемым для распределенного управления в режиме реального времени. Основное внимание при разработке стандарта EtherCAT уделялось короткому времени цикла (менее 100 мкс), низкому джиттеру (дрожанию связи) для точной синхронизации (менее 1 мкс) и низкой стоимости оборудования.
Передача данных в сетях EtherCAT происходит следующим образом (рис.2): ведущее устройство (мастер) EtherCAT передает Ethernet кадр, содержащий данные для всех узлов сети. Каждый узел на лету считывает адресованную ему информацию и вставляет во фрейм ответные данные. Этот кадр проходит поочередно через все узлы. Пройдя последний узел магистрали, кадр возвращается обратно. Кадр задерживается только на время задержки распространения через устройство. Узлы обрабатывают содержащуюся в кадре информацию по мере его прохождения в одном направлении.

Рис.2 Организация передачи кадра в EtherCAT
По сути, топология сети EtherCAT всегда образует логическое кольцо. Даже ответвления магистрали, которые можно подключать к специально разработанным для этой цели узлам, на самом деле добавляют двунаправленные соединения, по которым суммарный фрейм проходит вперед и назад по ответвляющейся линии.
Мастер EtherCAT - единственный узел в сети, которому разрешено активно отправлять кадр EtherCAT. Все остальные узлы просто пересылают кадры вниз по течению. Эта концепция предотвращает непредсказуемые задержки и гарантирует работоспособность в реальном времени.
Мастер использует стандартный Ethernet MAC (Media Access Controller) без дополнительного коммуникационного контроллера. Это позволяет реализовать его на любой аппаратной платформе с доступным портом Ethernet, независимо от того, какая используется операционная система реального времени или другое программное обеспечение. В качестве мастера EtherCAT может быть использован промышленный компьютер, базовый модуль ПЛК или одноплатный компьютер.
Ведомые устройства EtherCAT используют Slave-контроллер для аппаратной обработки кадров «на лету», что делает производительность сети предсказуемой и независимой от реализации отдельного ведомого устройства.
EtherCAT решает три основных проблемы Ethernet:
1. Максимизация пропускной способности. Один пакет может содержать данные для нескольких подчиненных узлов, что приводит к увеличению пропускной способности полезной информации.
2. Уменьшение времени при передаче пакета от одного подчиненного узла к другому в ввиду отсутствия задержки на обработку пакета по стеку протоколов TCP/IP
3. Отсутствие задержки на коммутацию пакетов в промежуточных свитчах
Рис. 3 Протокол EtherCAT внутри стандартного кадра Ethernet IEEE 802.3
Протокол EtherCAT встраивается в стандартный кадр Ethernet (рис.3). Кадр определяется с помощью идентификатора 0x88A4 в поле EtherType (Ethernet header). Во время запуска ведущее устройство настраивает и строит карту данных для ведомых устройств. С каждым ведомым устройством можно обмениваться различными объемами данных (от одного бита до нескольких килобайт данных). Кадр EtherCAT содержит одну или несколько дейтаграмм. Поскольку дейтаграммы полностью содержат всю информацию, связанную с доступом к данным, ведущее устройство может решить, когда и к каким данным обращаться.
После проверки конфигурации сети мастер сети может назначить каждому узлу фиксированный адрес узла и обмениваться данными с узлом через этот адрес. Это обеспечивает целевой доступ к устройствам, даже когда топология сети изменяется во время работы (например, при горячем подключении устройств).
EtherCAT поддерживает почти любую топологию: "линия", "дерево" или "звезда". Однако, внутреннее устройство сети всё равно будет кольцевое за счёт использования полнодуплексного Ethernet в качестве нижнего уровня (каждая посланная дейтаграмма будет последовательно проходить через все подключенные устройства). Особенно практичной для проводного монтажа устройств является их последовательное соединение. Конечно, также может быть использована и классическая Ethernet-топология типа "звезда". Гибкие и недорогие стандартные кабели-перемычки Ethernet могут соединять устройства по Ethernet (100Base-TX). Что обеспечивает максимальную гибкость при кабельном монтаже. Ethernet имеет ограничение на длину кабеля между двумя пользователями до 100 м. Для каждого устройства можно индивидуально выбираться вариант соединения. Количество узлов в сети может доходить до 65535 (2 байта на адрес).
Синхронизация в сетях EtherCAT занимает особое место. Точная синхронизация крайне важна в случаях, когда пространственно-распределенный процесс требует одновременных действий. Например, при движении сервоприводов, которые должны одновременно выполнять скоординированные движения. В EtherCAT используется так называемый метод - распределённых часов. Распределенные синхронизированные часы имеют высокую степень устойчивости от задержек, связанных с перебоями в коммуникации. В случае с EtherCAT обмен данными полностью реализован на аппаратном уровне. Так как линия связи использует структуру логического кольца, ведущие часы могут определить смещение задержки во времени для ведомых часов просто и точно, и наоборот, ведомые – определить задержку относительно ведущих. То есть мастер запускает процесс синхронизации, отправив широковещательно всем ведомым устройствам определённый адрес. После получения этого сообщения, все ведомые устройства будут фиксировать значение их внутренних часов дважды, один раз при получении сообщения и один раз, когда сообщение возвращается. Мастер может читать все зафиксированные значения и вычислить задержки для каждого ведомого устройства. Этот процесс можно повторять столько раз, сколько необходимо для уменьшения дрожания и для вычисления средних выходных значений. Задержки рассчитываются для каждого ведомого устройства в зависимости от их положения в ведомом кольце и загружаются в регистр сдвига. Распределенные часы корректируются на основе значения этой задержки, что позволяет обеспечить синхронизацию времени по всей сети с джиттером менее 1 мкс (т.е. точность синхронизации между slave-ами менее 1 мкс). Данный метод реализует протокол точного времени по стандарту IEEE 1588 v2 для EtherCAT.
Благодаря имеющимся преимуществам широкое применение сети EtherCAT получили в системах управления приводами, системах контроля высокого давления, промышленных логических контроллерах, роботах для процессов автоматизации производств (например, управление координатными осями станков с ЧПУ) и проч.
Ведомые устройства могут быть реализованы с помощью микросхемы slave-контроллера LAN9252. Она включает в себя 2/3-портовый slave-контроллер EtherCAT с 4 КБ двухпортовой памяти (DPRAM), 4 регистра синхронизации SyncManager, 3 модуля управления памятью шины (FMMU) и 64-разрядные распределенные часы. LAN9252 поддерживает 4 интерфейса для обмена данными - SPI/ SQI, HBI и 16-битные DIO. Т.е. к LAN9252 можно подключить 2 устройства в EtherCAT (внутри уже есть 2 PHY), а также, поскольку есть еще и MII интерфейс, можно добавить внешний PHY (например, KSZ8081) и подключить еще 1 ведомое устройство EtherCAT (рис. 4)
Рис. 4 Схема подключения LAN9252
Для демонстрации конфигурации сети Ethercat, состоящей из компьютера и устройства Ethercat на базе микроконтроллера ATSAME54P20A и микросхемы LAN9252, нам понадобятся отладочная плата EVB LAN9252-PICtail (рис.5), SAM E54 Xplained Pro и Starter Kit I/O expansion board (рис 6.)
Рис. 5 Внешний вид отладочной платы EVB-LAN9252-PICtail
Рис. 6 Внешний вид отладочной платы Starter Kit I/O expansion board
Подключим отладочные платы EVB-LAN9252-PICtail и SAM E54 Xplained Pro по SPI (таблица 1), используя Starter Kit I/O expansion board. Также необходимо соединить цепь GND на обеих платах. Соответственно, все настройки LAN9252 будут через SPI.
Book design is the art of incorporating the content, style, format, design, and sequence of the various components of a book into a coherent whole. In the words of Jan Tschichold, "methods and rules upon which it is impossible to improve, have been developed over centuries. To produce perfect books, these rules have to be brought back to life and applied."
Front matter, or preliminaries, is the first section of a book, and is usually the smallest section in terms of the number of pages. Each page is counted, but no folio or page number is expressed, or printed, on either display pages or blank pages.
Таблица 1. Соединение отладочных плат SAM E54 Xplained Pro и EVB-LAN9252-PICtail
Теперь настроим сеть EtherCAT на 2 устройства: 1 мастер и 1 ведомый.
Настроим мастера сети:
1. Установим на компьютер TwinCAT драйвер и настроим его в качестве мастера сети. Скачиваем и устанавливаем с сайта https://www.beckhoff.com/ TwinCAT 3.1 для Windows (доступен после регистрации на сайте).
2. После успешной установки в правом нижнем углу появится значок TwinCAT. После нажатия значка появится всплывающее окно. Выберите TwinCAT XAE (VS XXXX), как показано на следующем рисунке 7.
Рис. 7 Окно TwinCAT менеджера
3. В окне проекта TwinCAT выбираем пункт how RealTime Ethernet Compatible Devices - Показать устройства, совместимые с RealTime Ethernet (рис.8)
Рис.8 Меню проекта TwinCAT
4. Выберите сетевой адаптер, а затем установите драйвер TwinCAT (рис.9).
Рис. 9 Установка драйвера TwinCAT для сетевого адаптера компьютера
5. После успешной установки драйвер совместим с мастером TwinCAT (рис. 10). Теперь сетевой адаптер перемещен в раздел Installed and ready to use devices (realtime capable).
Рис. 10 Таблица сетевых адаптеров после установки драйвера TwinCAT
6. 1. Откроем свойства сетевого адаптера нажав «View network status and tasks» и «Change adapter settings» на панели управления (рис. 11).
Рис. 11 Настройка Ethernet адаптера
7. Выбираем драйвер TwinCAT. Правой кнопкой мыши нажимаем на Local Area Connection (рис. 12)
Рис. 12 Список сетевых адаптеров
1. и затем выберите Properties из контекстного меню. Откроется окно свойств подключения по локальной сети (рис. 13).
Рис. 13 Меню свойств локальной сети
8. Выбираем TwinCAT Ethernet Protocol и нажимаем ОК.
Настроим ведомого.
Для начала запрограммируем микроконтроллер SAME54, используя исполнительный файл в папке Binaries из архива SDK. Скачиваем с сайта www.microchip.com файл LAN9252-SAME54-SDK-Vx.x.zip (Vx.x - номер версии SDK). Открываем Atmel Studio 7 и переходим Tools > Device Programming. В окне Device Programming в разделе Tool выбираем параметр EDBG, микроконтроллер ATSAME54P20A и интерфейс программирования SWD и нажимаем Apply (рис. 14).
Далее переходим на вкладку Memories и выбираем нужный hex-файл прошивки и нажимаем Program.

Рис. 14 Окно программирования микроконтроллера в Atmel Studio 7
Теперь настроим саму LAN9252. Конфигурируем плату EVB-LAN9252-PICtail с помощью переключателей в режиме SPI. В архиве c SDK в папке ESI Files есть файл ESI, который можно загрузить в EEPROM LAN9252-PICtail с помощью утилиты TwinCAT.
Предварительно нужно скопировать файл «SAME54 EtherCAT Slave.xml» в папку C:\TwinCAT\3.1\Config\Io\EtherCAT. Просканируем сеть EtherCAT. Подключаем нулевой порт LAN9252-PICtail к мастеру (компьютеру) с помощью кабеля RJ45 Ethernet и включаем питание на плате. Мастер должен быть в режиме настройки (Config mode) для этого перезапустим TwinCAT (рис. 15).
Рис. 15 Перезапуск TwinCAT в режиме настройки
Сканируем ведомые устройства EtherCAT, щелкнув правой кнопкой мыши Devices, затем выбираем Scan, как показано на следующем рисунке 16.
Рис. 16 Сканирование EtherCAT устройств сети
В результате сканирования появится окно со списком устройств (рис. 17).
Рис. 17 Список устройств сети EtherCAT после сканирования
После успешного сканирования активируется светодиод Link/Act на нулевом порту и появится новое устройство Device 2 (EtherCAT) в окне TwinCAT (рис. 18).
Рис. 18 Окно утилиты TwinCAT после сканирования сети
Выбираем Device 2 (EtherCAT). В окне проекта TwinCAT выбираем вкладку Online. Нажимаем правой кнопкой мыши на устройство LAN9252 и выбираем «EEPROM Update...» в меню (рис. 19).
Рис. 19 Настройка LAN9252 для обновления EEPROM
После выбора EEPROM Update будет отображено окно записи EEPROM (рис. 20). Выберите соответствующую конфигурацию EEPROM, а затем нажмите OK, чтобы начать программирование EEPROM.
Рис. 20 Диалоговое окно записи EEPROM
Если операция программирования закончилась успешно, то устройство переходит в режим "OP" (Operational - режим синхронного обмена данными) (рис. 21).
Рис 21. Ведомое устройство в режиме "OP"
В результате мы получаем сеть EtherCAT, в которой 2 устройства. Компьютер выступает в качестве мастера сети. И связка SAME54+LAN9252 - ведомое устройство.


Список используемой литературы:
  1. https://www.ethercat.org/
  2. https://www.microchip.com/
  3. https://www.beckhoff.com/
  4. SAM D5x/E5x Family DataSheet Revision E - 06/2019
  5. SAM E54 Xplained Pro User's Guide
  6. LAN9252-SAME54 EtherCAT Application Quick Start Guide