Лучшее из возможного!

Размер шрифта:  Aa Aa Aa Aa Aa



USB анализатор

Принципиальная схема USB анализатора

Описание опубликовано в журнале «Радио» № 9 за 2009 г., стр.27...29 Анализатор USB

Наряду с простотой использования для конечного пользователя, реализация протокола USB достаточно сложна для программистов и разработчиков периферийных USB устройств. Для отладки обычно используются программные USB анализаторы, например, USB-Monitor. Однако, отследить обмен данными между USB хост контроллером и USB устройством на уровне пакетов программными средствами невозможно, т.к. каждый пакет содержит много служебной информации, которая добавляется на аппаратном уровне как на стороне хост контроллера, так и на стороне устройства.

Программно можно отследить, что передается, но нельзя увидеть, как это делается. А для разработчика USB устройства это может быть очень важно, особенно при программной реализации USB протокола на контроллерах, не имеющих аппаратной универсальной последовательной шины USB.

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

Восполнить этот пробел призван предлагаемый USB анализатор. Это простой и дешевый USB гаджет, который легко изготовить своими руками. Он подключается к шине параллельно отлаживаемому USB устройству и записывает для последующего анализу любую активность на шине. Для работы не требуется никаких дополнительных драйверов, USB анализатор может работать с любой операционной системой, в которой есть поддержка USB.

Принципиальная схема USB анализатора показана на рисунке. Его основа - контроллер ATMEGA8515. Он работает с внешним ОЗУ типа UM61256 объемом 32 кбайт. Микросхемы подобного типа широко использовались в материнских платах старых компьютеров. 32 кбайт обычно достаточно для отслеживания процесса нумерации любого USB устройства, но на плате предусмотрена возможность установки ОЗУ на 128 кбайт типа UT621024 в «широком» корпусе DIP32. Управляющая программа контроллера написана на ассемблере.

Порядок работы с устройством следующий. Вначале необходимо запустить на компьютере какую-либо терминальную программу, например, мой любимый Tera Term Pro 2.3. В настройках программы нужно выбрать COM порт, к которому подключен COM разъем анализатора. Параметры порта должны быть установлены такие: скорость 115200 бод, режим 8N1. Анализатор прекрасно работает и через USB COM адаптер.

Теперь нужно подключить вилку USB анализатора к свободному USB порту компьютера. Устройство никак себя не проявляет, поэтому компьютер не обнаружит этого подключения. В терминальной программе выведется на экран сообщение о готовности анализатора к работе, а на нем засветится светодиод. Теперь можно подключить кабель отлаживаемого устройства к розетке анализатора. При этом оно определится компьютером и начнется процедура нумерации. В терминальной программе будет выводиться на экран все, что происходит на шине USB. Эту информацию можно сохранить в файл для последующего анализа...


PDF Подробное описание
ZIP Плата в Sprint Layout 4.0, схема в Orcad 9.1 и схема подключения ОЗУ 128 кб
ZIP Прошивка и исходный текст программы контроллера на ассемблере