2015-10-06 8 views
3

В настоящее время я работаю над проектом для своего университетского курса. Я проектирую устройство, которое будет промежуточным интерфейсом между компьютером и USB-флеш-накопителем, то есть данные переходят с компьютера -> мое устройство -> USB-накопитель.Как я могу определить, есть ли активность данных на USB-накопителе с моей собственной схемой?

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

Я провел некоторое исследование в Интернете о том, как работает USB, но я не могу найти хороший способ сделать это. Я говорил с преподавателем в университете. По-видимому, это «очень легко», но я действительно не знаю, как это сделать. Может ли кто-нибудь предложить некоторые идеи? Огромное спасибо.

ответ

0

Вы пытаетесь сделать анализатор протокола как catc http://teledynelecroy.com/protocolanalyzer/protocolstandard.aspx?standardid=4 Это устройство, которое походит на человека в середине для любой сети.

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

Если нет необходимости в анализе протокола USB, у вас может быть устройство, которое будет анализировать более медленные шины, такие как uart, spi I2c и т. Д. Вы можете проверить производителей хобби, таких как sparkfun для таких устройств отслеживания. Удачи вам в ваших усилиях

1

Ваш наставник не совсем прав.
У шины USB всегда есть активность, даже если данные не переданы.

Внимательно прочитайте спецификацию USB (http://www.usb.org/developers/docs/), особенно раздел «Уровень протокола». Некоторые основы, которые вы можете прочитать в статье «USB в двух словах».
Исследуйте автобус с осциллографом.
Также вы можете использовать программные анализаторы, такие как http://desowin.org/usbpcap/ или http://freeusbanalyzer.com/, для изучения данных на шине.

Я думаю, будет достаточно, чтобы захватить все пакеты на шине с помощью внешнего микроконтроллера, измерить их продолжительность и отсортировать отходы SOF-пакетов и ценных пакетов данных.

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

3

В этом случае самый простой способ заключается в использовании дополнительный мягкий, который может войти протокол USB, а также микроконтроллер, как USBlyzer (http://www.usblyzer.com/) или захвата данных USB (http://www.eltima.com/products/usb-capture/)

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