USB вопрос о протоколе HID

Я реализую USB на PIC 18F2550 использование универсального интерфейса HID. Я настроил конфигурацию профиля HID, чтобы иметь единственное 64-байтовое сообщение для обоих вводов и выводов.

Теперь это является в основном рабочим. Устройство регистрируется хорошо в окнах. Я могу найти его в своей программе на ПК и могу отправить и получить данные к нему. Проблема - это, хотя - обменивается сообщениями от ПК до PIC, являются усеченными к размеру буфера конечной точки EP0.

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

Предположите, что входной буфер EP0 составляет 8 байтов. Это - мое понимание, что конец ПК отправит управляющий пакет, который составляет 8 байтов. Там длина в байтах данных для следования. И затем это отправит последовательность 8-байтовых пакетов данных, и конец PIC должен подтвердить каждого.

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

Прежде чем я пойду, ища больше часов в коде, кто-либо может подтвердить, что это в основном корректно? Это, если размер буфера EP0 составляет 8 байтов затем ПК, должно знать это из-за поля конфигурации, которое я упомянул выше, и отправьте несколько пакетов данных?

Если я заставляю мой получать буфер на PIC 64 байта затем, я получаю 64 байта сообщения, которое достаточно для моих потребностей, но мне не нравится не понимать, почему это не работает с маленькими буферами, и однажды мне, вероятно, будут нужны они так или иначе.

Любой совет или информация приветствовались бы.

5
задан jcoder 29 April 2010 в 16:27
поделиться