Назад в библиотеку

Эмуляция периферийных устройств для удаленного доступа к FPGA-комплексам

Авторы: Азаров А.Б., Зубков Д.А., Константинов В.С., Зинченко Ю.Е., Коваль А.В.
Источник: ИУСМКМ – 2017 http://iuskm.donntu.ru/electronic/iusmkm2017.pdf

Аннотация

Азаров А.Б., Зубков Д.А. Константинов В.С., Зинченко Ю.Е., Коваль А.В. Эмуляция периферийных устройств для удаленного доступа к FPGAкомплексам. Описаны методы организации дистанционного доступа периферийных устройств к отладочному FPGA-стенду, методы организации передачи, ввода и вывода информации. Также рассмотрена схема взаимодействия пользователя с FPGA-лабораторией и проблемы многопользовательского управления комплексом в целом.

Ключевые слова: дистанционный доступ, FPGA-комплекс, Webинтерфейс, эмуляторы периферийных устройств, СОМ-порт, Websocket.

Введение

Одним из важных навыков, получаемых студентами на специальностях, связанных с компьютерной инженерией, являются навыки работы c вычислительными устройствами типа FPGA.

FPGA (Field Programmable Gate Arrays) широко применяются для моделирования микроэлектронных устройств и их детального исследования и отладки [1-4].

Для работы с FPGA необходима инфраструктура. К сожалению, существует ряд проблем, которые мешают студентам получать необходимый опыт в данной области. Главная проблема это высокая стоимость отладочных стендов. Платы являются достаточно дорогими и часто выходят новые, более функциональные и быстродействующие платы, поэтому лаборатории учебных заведений не могут обеспечить каждого студента доступом к платам в учебные часы. Также существует проблема с доставкой стендов в наш регион. Решением данной проблемы является создание удаленного доступа к FPGA лаборатории (FPGAстендам) при помощи технологии Интернет. Данный ресурс поможет обеспечить студентам доступ к FPGA-стендам и будет способствовать их более углубленному изучению.

Данная статья посвящена описанию решения проблемы доступа к периферийным устройствам ввода/вывода а также кнопочным переключателям в условиях дистанционного доступа.

Постановка задачи

Вопрос обеспечения дистанционного доступа к FPGA-комплексам неоднократно поднимался в различных работах [5-7]. Авторы данных работ добились некоторого успеха в этой области, однако нигде даже не обсуждался вопрос имитации периферийных устройств, которые могут подключаться к FPGA-комплексам. Результаты ограничивались загрузкой прошивки в FPGA и в некоторых случаях управлением внешними переключателями. Попытки удаленного использования периферии предпринимались студентами ДонНТУ [8,9], но серьезных результатов достигнуто не было.

Данная статья описывает решение проблемы эмуляции периферийных устройств, а также использования LСD-монитора для обеспечения управления FPGA-комплексом в процессе тестирования проектов, ориентированных на реализацию на FPGA.

На данный момент пользователи, при помощи среды разработки Xilinx ISE Design Studio могут создавать «системы на кристалле (СнК)», добавляя в них периферийные устройства. Далее программа загружается в FPGA и отлаживается при помощи подключения реальных физических устройств непосредственно в лаборатории. В ядре СнК в FPGA-комплексах компании Xilinx располагаются стандартное IP-ядро микропроцессора Microblaze или микроконтроллера Picoblaze. Целью работы является возможность погружать, отлаживать и выполнять FPGA-проекты как удаленно, так и непосредственно на FPGA-комплексе, без внесения изменений в программный код проекта удаленного разработчика.

Организация удаленного доступа

Структуру системы удаленного доступа к FPGA-комплексу можно представить в виде совокупности трех основных частей: клиентская, серверная и собственно FPGA- комплекс. Структурна системы представлена на рисунке 1.

Рисунок 1 Структура системы удаленного доступа к FPGA-комплексу

Процесс управления платой организован при помощи Web-интерфейса. Клиентская (визуальная) часть создается при помощи технологий HTML, CSS и JavaScript. Она состоит из главной страницы, которая должна презентовать виртуальную FPGA-лабораторию, регистрации пользователей и самого кабинета виртуальной лаборатории. Доступ к виртуальному кабинету могут иметь только зарегистрированные пользователи с особыми статусом, которыми может наделить только администратор сайта. Интерфейс кабинета является максимально простым и легким для понимания. Все запросы к серверной части в виртуальном кабинете должны производиться без перезагрузки страницы, это возможно реализовать при помощи технологии AJAX (Asynchronous Javascript and XML). Также для работы с комплексом необходима видеотрансляция, которая будет отображать все изменения на комплексе в реальном времени.

В личном кабинете также присутствует простейший файловый менеджер, необходимый для удобной загрузки файлов на сервер. В нем также представлены все ранее загруженные файлы с возможностью их повторной загрузки в FPGA.

Лаборатория является многопользовательским ресурсом, однако обеспечение одновременного доступа к одному комплексу нескольких пользователей невозможно. Для того, чтобы во время работы с платой другие пользователи не могли загружать в нее свои проекты, необходимо обеспечивать контроль над сессией. В случае занятости комплекса, сервер запрещает к ней доступ для других пользователей до ее освобождения. Также при продолжительном бездействии пользователя плата освобождается автоматически.

Для организации удаленного управления и отладки подключена к серверу через COM-порт, USB-jtag для программирования стенда, также присутствует видеокамера, для отображения состояния стенда в реальном времени. Через интерфейс СОМ-порта производится обмен данными. Загрузка прошивки на плату организована с помощью batch-скрипта, который запускается по запросу пользователя. На FPGA-стенде все операции ввода/вывода должны перенаправляться на порт RS232. Для этого необходимо разработать эмуляторы периферийных устройств, которые должны принимать данные с порта RS232 и перенаправлять их на шину process local bus (PLB), а также ответ с шины передавать в порт RS232.

Эмуляция периферийного устройства

Эмуляция периферийных устройств должна обеспечивать постоянную связь пользователя с программным кодом, находящимся в плате. Исходя из этого, эмуляция периферии должна быть задействована во всех уровнях структуры виртуальной лаборатории. (см. рис. 2).

Рисунок 2 – Жизненный цикл одного действия эмулятора периферийного устройства

При эмуляции устройства ввода, из данных, которые вводит пользователь (нажатие клавиши или изменение положения мыши), необходимо сформировать пакеты данных, аналогичные тем, которые посылает физическое устройство. Данные пакеты погружаются в информационную часть пакетa, структура которого представлена на рисунке 3. Эти пакеты посредством Websocket передаются на сервер. Сервер отправляет полученный пакет через COM-порт на стенд. Встроенный коммутатор, анализируя код устройства, определяет от какого устройства пришел пакет и отправляет его на соответствующий модуль эмулятора. Пользовательский код, находящийся в устройстве, принимает данные от модуля имитатора, как от физического устройства. Данные обрабатываются пользовательским кодом, который находится в стенде, и эмулятор формирует выходной пакет, структура которого аналогична входному пакету. Через СОМпорт пакет передается обратно клиенту через сервер, где уже javascript-сценарий для конкретного периферийного устройства должен принять решения о последующих действиях.

Рисунок 3 – Структура входного/выходного пакета

Также, одной из особенностей использования периферийных устройств является их инициализация. При прохождении инициализации устройство последовательно посылает и принимает серии байтов, для того, чтобы оно было идентифицировано и были определены его параметры.

Заключение

В данной статье была в общем рассмотрена технология дистанционного доступа к FPGA-комплексам и имитация периферийных устройств. В частности для написания статьи в качестве периферийных устройств рассматривались клавиатура и мышь. В качестве направления дальнейшей работы можно рассмотреть дополнительно имитацию других устройств. Результаты работы будут использованы при проектировании системы дистанционного доступа к FPGA-комплексам лаборатории ДонНТУ, а также могут использоваться при выполнении лабораторных работ, НИРС, дипломном проектировании и при выполнении магистерских работ

Список литературы

  1. Зинченко Ю., Калашников В., Хайдук С. и др. FPGA-технологии проектирования и диагностика компьютерных систем / Сборник научных трудов VI Межд. научн.-практ. конф. «Современные информационные технологии и ИТ-образование». - Москва: МГУ, 2011. - Т. 1. 787 С. 422-429
  2. Зинченко Ю., Дяченко O. и др. Новые технологии проектирования в ДонГТУ /Межд. науч.-техн. конф. ?Новые информационные технологии в САПР и АСУ?. Киев.- 2001.- С 15-19.
  3. Волошин Д.Н., Зинченко Ю.Е. Разработка системы реального времени на базе Xilinx XC3S500E Spartan-3E FPGA // Сб. тр. VII межд. науч.-техн. конф. студентов, аспирантов и молодых ученых «Информатика и компьютерные технологии», 22-23 ноября 2011 г., Донецк: ДонНТУ. – 2011. Т. 1. – с. 44-47.
  4. Rusen J., Kolberg S. Online FPGA laboratory for interactive digital design //International Conference on Engineering Education 2004 (ICEE2004). – 2004. – С. 16-21.
  5. A Remote FPGA Laboratory for Digital Design Students. Авторы: Joao Soares, Jorge Lobo. Режим доступа: http://ap.isr.uc.pt/archive/jlobo-REC2011.PDF
  6. Лаборатория Электронных Средств Обучения (ЛЭСО) СибГУТИ. Интернет ресурс. Режим доступа: http://www.labfor.ru/online/fpga
  7. Зинченко Ю.Е., Зинченко Т.А., Асланов И.Г. Виртуальная FPGAлаборатория с дистанционным доступом // III Всеукр. школа-семинар молодых ученых и студентов Современные компьютерные информационные технологии (АСИТ?2013). – Тернополь: ТНЕУ, 2013
  8. Беседа Д.Г., Зинченко Ю.Е. Разработка метода эмуляции работы FPGAплаты с клавиатурой через порт PS/2 // Сб. тр. V Всеукр. науч.-техн. конф. студентов, аспирантов и молодых ученых «Информационные управляющие системы и компьютерный мониторинг (ИУС КМ-2014)». – Донецк: ДонНТУ, 2014 - т.1 - С. 157-162