Как я могу определить, есть ли активность данных на флэш-накопителе USB с моей собственной схемой?

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

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

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

3 ответа

Решение

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам