USB HID

Feb 21, 2004 0 Replies

Witam



Jakis czas juz czytam sobie rózne materialy dotyczace HID USB, jednak nadal mam pewne watpliwosci:



  1. 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?
  2. 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)?
  3. 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).
  4. Czy wieksza liczba endpointów moze byc wykorzystana do zwielokrotnienia transferu? (przy 2 endpointach 16 bajtów na 10s, itd.)
  5. 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?
  6. 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



Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required