Difference between revisions of "USB"
Line 154: | Line 154: | ||
Хост контролера периодично запитва всяко устройство и проверява дали то иска да комуникира с компютъра. | Хост контролера периодично запитва всяко устройство и проверява дали то иска да комуникира с компютъра. | ||
− | *Запитването се може да е веднъж на (микро) | + | *Запитването се може да е веднъж на (микро) интервал за HID устройства би могло да е на всеки 10 интервала (100KHz) |
− | * | + | *Обикновено пакета за запитване е с размер 20 бита (4 PacketID + 7 device address + 4 end point address + 5 bit CRC) |
+ | |||
http://wiki.osdev.org/Universal_Serial_Bus | http://wiki.osdev.org/Universal_Serial_Bus | ||
+ | http://www.faculty.iu-bremen.de/birk/lectures/PC101-2003/14usb/FINAL%20VERSION/ |
Revision as of 17:58, 25 January 2012
USB
Contents
Литература
Официална документация: http://www.usb.org
http://www.usb.org/developers/docs/usb_20_040908.zip (виж глава 9)
Hyde,
J. (2001). USB Design by Example: A Prac6cal Guide to
Building
I/O Devices. Second Edi6on.
Хост контролер спецификация:
Направи си сам Интерактивен манипулатор (USB
HID device)
• Microchip
(h8p://www.microchip.com)
– pic18f4550
microcontroller, pickit2 programmer, C compiler and
MPLAB
IDE
– PICDEM
development board (no hardware programmer needed;
bootloader
enables flashing microcontroller firmware through USB)
Linux & USB
• Host
sobware on Linux
– h8p://libusb.wiki.sourceforge.net/
– h8p://libhid.alioth.debian.org/
• My
notes
– h8p://www.cprince.com/PubRes/Hardware/LinuxUSB/
• Linux
Device Driver book
– h8p://lwn.net/Kernel/LDD3/
(freely available)
– Chapter
13 is on USB
• Linux
device driver kit
– h8p://kernel.org/pub/linux/kernel/people/gregkh/ddk/
• usbmouse.c
& hid-‐core.c Linux device drivers
– h8p://www.cprince.com/courses/cs5631/lectures/USB
Предназначение
Проектира се с цел да замени различни бавни шини за предаване на данни, като паралелна, серийна, PS/2 със обша шина, към която могат да се включват всички тези устройства.[1]
Проводници и захранване на USB
USB <= 2
- 4 проводника
- Два проводника за захранване +/- 5V
- Няма проводник за тактова честота
- Предаването е асинхронно
- Останалите два проводника са за предаване на данни
- Обикновено се използва диференциално предаване
- Възможно захранване до 100mA
- При конфигуриране до 500mA
USB <= 3
USB оранизация: класове устройства
USB устройствата се програмират, така че да отговарят на един от класовете
Основни класове
- HID: Human Interface Device
- мишка, клавиатура, джойстик ...
- CDC: Communication Device Class
- модеми Ethernet, ISDN ...
- MSC: Mass storege class
- флаш памети, твърди дискове ...
Устройствата попадащи в точно определен клас, могат да се управляват от операционната система без да има нужда от допълнително инсталиране на драйвер
Основи на USB протокол
Устройства не комуникират директно чрез прекъсвания с компютъра. Компютъра избира с кой да комуникира посредством хост контролер. Хост контролера изпозлва хардуерни прекъсвания.
Хост контролера периодично запитва всяко устройство и проверява дали то иска да комуникира с компютъра.
- Запитването се може да е веднъж на (микро) интервал за HID устройства би могло да е на всеки 10 интервала (100KHz)
- Обикновено пакета за запитване е с размер 20 бита (4 PacketID + 7 device address + 4 end point address + 5 bit CRC)
http://wiki.osdev.org/Universal_Serial_Bus
http://www.faculty.iu-bremen.de/birk/lectures/PC101-2003/14usb/FINAL%20VERSION/