Есть простейшее HID-устройство. Обмен только через Control Endpoit, размер 8 байт (сделано на SAM7).
Никакого другого обмена через Interrupt, Bulk нет.
В софте данные передаются HidD_SetOutputReport и принимаются HidD_GetInputReport. Это под Windows XP SP2.
В итоге после OUT транзакции следует непонятная IN, а после IN следовательно OUT.
Даже если просто слать данные без приема за транзакциями OUT всегда следует IN (а за IN - OUT).
Хочется от них избавиться, поскольку уменьшают пропускную способность шины, а то и без них 4000 байт/секунду максимум получается (учитывая SETUP).
HID-репорт и сами транзакции на рисунке для наглядности:
Нажмите для просмотра прикрепленного файла
PS: Посмотрел - эти пустые транзакции есть везде, включая дескрипторы и т.п. Взял готовое USB-устройство - там тоже самое.