Witam
Jakis czas juz czytam sobie rózne materialy dotyczace HID USB, jednak nadal mam pewne watpliwosci:
- Dlaczego przy low-speed mozna wysylac tylko 800 bajtów na sekunde? Rozumiem, ze jest ograniczenie 8 bajtów na raport na ramke, ale dlaczego te raporty wysylane sa co 10ms? W koncu przy full-speed raporty wysylane sa juz normalnie co 1ms. Innymi slowy, dlaczego przy interrupt dla low-speed minimalny okres to 10ms?
- Czy (przy low-speed) jezeli nie wykorzystam 8 bajtów w danym raporcie, to pozostale sa tracone pod wzgledem czasowym? Inaczej mówiac, czy wysylanie 8 bajtów trwa tyle samo, co 1 bajtu (czyli nie oplaca sie kompresowac z dokladnoscia wieksza niz 8)?
- Dlaczego HID (interrupt) jest tak wolny? Nawet jesli doliczyc 19 bajtów overhead na transakcje, to i tak gdzies ginie ok. 225 bajtów mozliwych do wyslania przy low-speed (1.5Mb/s).
- Czy wieksza liczba endpointów moze byc wykorzystana do zwielokrotnienia transferu? (przy 2 endpointach 16 bajtów na 10s, itd.)
- Czy dobrze rozumiem, ze tymi 8 bajtami na raport nie musze dzielic sie (przy wlasnym formacie) z zadnymi polami ID, itp. smieciami z usage tables?
- Czy znacie jakis ciekawy kod (raczej pod Win - poza Igorem) pozwalajacy w wiekszym stopniu wykorzystac te 1.5Mb? Swoja droga to ciekawe, ze nie ma (lub ja nie znam) prostych bibliotek do USB. Czy do postawowej funkcjonalnosci nie wystarczylyby funkcje numerowania i wysylania/odbierania ciagów bajtów? Jedyne, co znam, to DDK, które miejscami przypomina sen chorego programisty :-)
SM