Difference between revisions of "USB"
Line 173: | Line 173: | ||
| [[Webcam]], [[Image scanner|scanner]] | | [[Webcam]], [[Image scanner|scanner]] | ||
|- | |- | ||
− | | | + | | 07 |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| Interface | | Interface | ||
| [[Computer printer|Printer]] | | [[Computer printer|Printer]] |
Revision as of 13:53, 27 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 със обща шина, към която могат да се включват всички тези устройства.
USB управление на данните
Дизайнът на USB архитектурата е асиметричен с топология тип звезда и е изграден от три части: един хост, връзки, устройства - хъбове и функции (host, interconnects, devices - hubs and functions).
Управлението на USB системата се извършва единствено от хоста. Данните се предават на пакети разположени в логически канали (pipes). Едно физическо устройство може да изълнява няколко функци, всяка функция се адресира поотделно, Mогат да се адресират до 127 функции и хъба. Между една функция и хоста могат да бъдат създадени няколко канала, които се идентифицират с адрес на крайната точка (endpoint - като номер на порт при IP адресацията) фиг.X.
USB устройства
USB устройствата могат да бъдат разделени на хъбове и функции. Когато едно устройство е многофункционално (принтер+скенер, камера+микрофон) то в себеси съдържа хъб и контролера вижда няколко различни функции.
Според скоростта устройствата се разделят на следните класове:
- High speed 480Mb/s v2
- Full speed 12Mb/s v1
- Low speed 1.5Mb/s v2
- Super Speed 5Gb/s v3
Според своето предназначение устройсвата се разделята на следните класове:
Class | Usage | Description | Examples, or exception |
---|---|---|---|
00h | Device | Unspecified<ref>Use class information in the interface descriptors. This base class is defined to be used in device descriptors to indicate that class information should be determined from the Interface Descriptors in the device.</ref> | Device class is unspecified, interface descriptors are used to determine needed drivers |
01h | Interface | Audio | Speaker, microphone, sound card, MIDI |
02h | Both | Communications and CDC Control | Modem, Ethernet adapter, Wi-Fi adapter |
03h | Interface | Human interface device (HID) | Keyboard, mouse, joystick |
05h | Interface | Physical Interface Device (PID) | Force feedback joystick |
06h | Interface | Image | Webcam, scanner |
07 | Interface | Printer | Laser printer, inkjet printer, CNC machine |
08h | Interface | Mass storage | USB flash drive, memory card reader, digital audio player, digital camera, external drive |
09h | Device | USB hub | Full bandwidth hub |
0Ah | Interface | CDC-Data | Used together with class 02h: communications and CDC control |
0Bh | Interface | Smart Card | USB smart card reader |
0Dh | Interface | Content security | Fingerprint reader |
0Eh | Interface | Video | Webcam |
0Fh | Interface | Personal Healthcare | Pulse monitor (watch) |
DCh | Both | Diagnostic Device | USB compliance testing device |
E0h | Interface | Wireless Controller | Bluetooth adapter, Microsoft RNDIS |
EFh | Both | Miscellaneous | ActiveSync device |
FEh | Interface | Application-specific | IrDA Bridge, Test & Measurement Class (USBTMC),<ref>Universal Serial Bus Test and Measurement Class Specification (USBTMC), Revision 1.0, April 14, 2003, USB Implementers Forum, Inc.</ref> USB DFU (Direct Firmware update)<ref>Template:Cite web</ref> |
FFh | Both | Vendor-specific | Indicates that a device needs vendor specific drivers |
Проводници и захранване на USB
USB <= 2
- 4 проводника
- Два проводника за захранване +/- 5V
- Няма проводник за тактова честота
- Предаването е асинхронно
- Останалите два проводника са за предаване на данни
- Обикновено се използва диференциално предаване
- Възможно захранване до 100mA
- При конфигуриране до 500mA
USB <= 3
Основни понятия
USB системата се състои от три части:
- USB хост - контролер който изцяло управлява връзката между устройствата и компютъра
- USB Устройства
- Функции
- Хъбове
- USB връзки - осъществяват
Функции
Всички функции разбират USB протокола и изпълняват стандартните операции (конфигуриране, reset и др.) и описват своите възможности на USB хоста. Според скоростта има четири класа функции
Хъбове
Хъбовете осигуряват допълнителни точки за свързване. В едно мулти функционално устройство има вграден хъб и различни функции. Особен режим на работа е когато в един хъб има включени устройства опериращи с различна скорост.
Връзки
Връзките осигуряват свързаността между устройствата и хостта. Топологията на USB свързването е тип звезда. Максималния брой нива на свързване е 7. Root хъба е първо ниво. Едно мулти функционално устройство не би молгло да се свърже в ниво 7.
USB Host
Eдна USB система има само един USB хост. Хостът съдържа контролер и root хъб. Root хъба може да има един илиняколко извода/порта.
USB оранизация: класове устройства
USB устройствата се програмират, така че да отговарят на един от класовете
Основни класове
- HID: Human Interface Device
- мишка, клавиатура, джойстик ...
- CDC: Communication Device Class
- модеми Ethernet, ISDN ...
- MSC: Mass storege class
- флаш памети, твърди дискове ...
Устройствата попадащи в точно определен клас, могат да се управляват от операционната система без да има нужда от допълнително инсталиране на драйвер
USB управление на данните
Основи на USB протокол
Устройства не комуникират директно чрез прекъсвания с компютъра. Компютъра избира с кой да комуникира посредством хост контролер. Хост контролера изпозлва хардуерни прекъсвания.
Хост контролера периодично запитва всяко устройство и проверява дали то иска да комуникира с компютъра.
- Запитването може да е веднъж на всеки (микро) интервал или за HID устройства би могло да е на всеки 10 интервала (100KHz)
- Обикновено пакета за запитване е с размер 20 бита (4 PacketID + 7 device address + 4 end point address + 5 bit CRC)
- USB устройство не може да започне предаване на данни без да е запитано от хост контролера
- Пакети предназначени и изпратени за устройство съдържат адрес на устройството и краен адрес (endpoint,pipe)
- 126 са възможните адреси, които могат да бъдат дадени от един хост контролер
- Адресът на устройство означава определено устройство свързано към хоста
- крайният адрес определя логическия канал на данни между устройството и хоста
Конфигурация и крайни адреси (endpoints)
Всяко устройство може да има различни конфигурации
- само една конфигурация може да е активна в даден момент
Всяка конфигурация има краен адрес за управление и съвкупност от интерфейси
- Всеки интерфейс има набор от крайни адреси за вход и изход
- Интерфейсите работят последователно в споделена средапаралелно
Всяка конфигурация на устройство има набор от крайни адреси:
- IN входящи крайни адреси - пренос на данни от устройството към хоста
- OUT изходящи крайни адреси - пренос на данни от хоста към устройството
13
Endpoint
types (LDD3, p. 329-‐330)
• Control,
Interrupt, Bulk, Isochronous
• Control
– Used
to allow access to different parts of the USB device
– Used
for configuring device, retrieving info about device,
sending
commands to device, retrieving status reports
– Every
USB device has a control endpoint “endpoint 0”, used to
configure
device at inser6on 6me
– “transfers
guaranteed by the USB protocol to always have
enough
reserved bandwidth to make it through to the
device”
(p. 329)
• Interrupt
– These
endpoints transfer small amounts of data at a fixed rate
every
6me the USB host asks the device for data; primary
transport
method for USB keyboards and mice
– Also,
guaranteed to make it through
14
Endpoint
types -‐ 2
• Bulk
– Transfer
large amounts of data
– Used
for devices that need to transfer data with no data
loss
– Transfers
not guaranteed to make it through the bus in a
specific
amount of 6me
• Isochronous
– Also
transfer large amounts of data, but data not
guaranteed
to make it through
– Used
with devices that can handle data loss
– E.g.,
audio and video devices
15
Endpoint
Transfer Types
• Devices
can request a fixed bandwidth for data transfers (p.
327,
LDD3)
– Transfer
types are specified for each endpoint
• Interrupt
transfer type does not mean hardware interrupts
• Interrupt
and control transfers: Always guaranteed to make it
through
on 6me
http://wiki.osdev.org/Universal_Serial_Bus
http://www.faculty.iu-bremen.de/birk/lectures/PC101-2003/14usb/FINAL%20VERSION/
[1]