МАРСОХОД

Open Source Hardware Project

Демонстрация работы USB хоста для платы Марсоход3bis

Компьютерный хаос на столе

В предыдущей статье я рассказывал, как делал USB хост, как симулировал его с помощью тестбенча. Сейчас я встроил его уже в реальный проект квартуса. Сделал интеграцию verilog модуля usb11ctrl.v в свой проект USBTerm для среды Altera Quartus.

Это фото показывает весь ужас разработки USB11 хоста на плате Марсоход3bis.

  • сама плата Марсоход3bis подключена к ноутбуку кабелем USB2 для скоростной передачи данных в плату (отрисовка изображений на экране и команды в USB11 хост) и передачи данных из платы в ноутбук (результат исполнения USB команд на шине);
  • так же, к плате подсоединен программатор MBFTDI для программирования ПЛИС и отладки проектов в среде Quartus SignalTap;
  • к плате, через разъем HDMI, подключен монитор (на самом деле телевизор) для отображения изображений переданных из ноутбука в плату;
  • на плату Марсоход3bis установлен шилд разъемов для подключения USB мыши и (в будущем) клавиатуры;
  • для контроля и отладки контроллера USB используется аппаратный USB анализатор - устройство подслушивающее весь USB трафик и показывающей его на ноутбуке; подключается по третьему кабелю USB к ноутбуку.

 На ноутбуке приходится использовать сразу три среды для разработки:

Microsoft Visual Studio

Во-первых, конечно, среда MS Visual Studio. Здесь я пишу тестовую программу usb_mouse_poll, которая будет опрашивать USB хост в плате Марсоход3bis.

altera signaltap

Во-вторых, конечно, отладчик ПЛИС проектов Altera SignalTap. Вот здесь выше видно захваченные в ходе отладки пакеты USB.

ellisys visual usb usbtracker

В-третьих, конечно, программное обеспечение USB анализатора Ellisys Visual USB. Вот они - мои USB пакеты на шине! Без USB анализатора сделать что-то было бы довольно трудно..

Ну и вот результат на видео демонстрации:

 

Программа usb_mouse_poll опрашивает USB хост платы Марсоход3bis. Как только USB мышь подключена, программа программирует мышь: делает сброс на шине, активизирует ее, делает чтение первых 8-ми байт Device Descriptor, назначает адрес SetAddress() и выбирает конфигурацию SetConfiguration(), затем читает из мыши состояния кнопок и движение по осям X и Y. Передает события от мыши на декстоп ноутбука.

Значительная часть работы связанная с USB в принципе выполнена. Теперь, можно сконцентрироваться на разработке именно ПО тонкого коиента. По моей задумке терминал USBTerm будет подключаться к виртуальной машине VMWare и отобразать ее состояние как второе рабочее место к персональному компьютеру.

Все исходники проекта, включая исходники для Quartus и Visual Studio - на github https://github.com/marsohod4you/UsbHwThinClient4Vm

 

Комментарии  

0 #1 alman 25.02.2016 11:24
Колоссальную работу проделали, но вот что бросается в глаза - в Вашем коде нет описания. Файлы проекта, заимствованные с opencores, имеют заголовок с описанием исходника, авторства и лицензии, а в Вашем коде этого нет.

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

Добавить комментарий


Защитный код
Обновить


GitHub YouTube Twitter
Вы здесь: Начало Проект графического терминала USBTerm Демонстрация работы USB хоста для платы Марсоход3bis