36PZ - D. Měření USB

Vypracovali: Bedřich Lacina, Ondřej Kašpar, Petr Šitych, Jaroslav Nušl
Datum: 20. 4. 2004
Cvičení: Středa 11:00


Obsah

  1. Zadání
  2. Teoretický úvod
  3. Naměřené hodnoty
  4. Informační zdroje

ZADÁNÍ

 D. Universal Serial Bus

Cílem této úlohy je prostudovat mechanismus práce USB a napsat program, který bude přijímat data z této sběrnice.

Práce bude probíhat pod OS GNU Linux

 a) zprovoznit SW pro přístup na sběrnici

 b) přečíst údaje o jednotlivých zařízeních

 c) identifikovat obsah přijímaných datových paketů


 

PŘÍPRAVA

Pro realizaci úlohy je potřeba operační systém Linux KNOPIX, knihovnu usblib která je ke stažení zde: libusb-0.1.8.tar.gz
a testovací program pro vypsání připojených zařízení na USB testlibusb.c

Při bootování je potřeba odpojit zařízení, se kterým budeme komunikovat jinak by si linux převzal ovladače zařízení a nešlo
by s ním pracovat.

ÚKOLY

– zprovoznit knihovnu libusb a přiložený příklad (v distribuci KnoppiX je již obsažena)
– sepsat jaká zařízení od jakých výrobců jsou v systému (vendor, product)
– sepsat seznam zařízení, počet jejich možných sestavení, rozhraní a koncových bodů
– jaké jsou maximální proudové odběry zařízení a v jakém jsou přenosovém režimu
– jaké třídy rozhraní / zařízení jsou v systému
– napsat program, který přijme data z vybraného zařízení a zobrazí je na obrazovku
– určit jaký význam mají jednotlivé byte v doručeném datovém balíčku (tzn. který byte např.u myši signalizuje stisknutá tlačítka, který pohyb vertikálně a horizontálně atd.)
– zkuste si představit, jak asi by se asi dal napsat ovladač daného zařízení


 

VÝSLEDKY PRÁCE

Nalezená zařízení připojená v systému:  (3x Hub)

0458 KYE Systems Corp. (Mouse Systems) 
    0001 Mouse

0471 Philips 
    0311 PCVC740K ToUcam Pro [pwc]

04f2 Chicony Electronics Co., Ltd  
    0110 KU-2971 Keyboard

Program pro vypsání všech USB zařízení je testlibusb.c a jeho výstup je out.txt
Výstup linuxovského příkazu pro výstup všech sběrnic: outb.txt
Seznam USB ID: usb.ids

Program přijímající data ze zařízení  testlibusb.c

Data jsme četli ze zařízení č. 0485/001 (KEY Mouse)

Přečtená data: 00000001 FFFFFFFF 

Prvních 8 bitů obsahuje stavy tlačítek, směr X (kladný nebo záporný), směr Y, přetečení X, přetečení Y (myš se posunula více než 255 pulzů v 1/40 sekundy). Další dva bajty obsahují relativní hodnoty pohybu X a Y - změnu počtu pulzů které byly detekovány od doby kdy byl poslán poslední paket.


ZÁVĚR 

    Při práci v laboratoři jsme splnili všechny body zadání. Při práci s USB jsme s pomocí podkladů dostupných k úloze neměli žádné vetší problémy. U posledního bodu zadání byl nejvíce nápomocen Bedřich Lacina, který se dobře orientoval v programovacím prostředí C++.

 


4. Informační zdroje

 

Zpět na obsah