Difference between revisions of "USB"
Line 120: | Line 120: | ||
== USB управление на данните == | == USB управление на данните == | ||
[[Image:usbEndPoint.png|right|frame|фиг. X. Логически канали]] | [[Image:usbEndPoint.png|right|frame|фиг. X. Логически канали]] | ||
− | Дизайнът на USB архитектурата е асиметричен с топология тип звезда и се състои се от три озновни части:''' ''един хост, връзки, | + | Дизайнът на USB архитектурата е асиметричен с топология тип звезда и се състои се от три озновни части:''' ''един хост, връзки, функции'' ''' (host, interconnects, functions). |
− | Управлението на USB системата се извършва единствено от хоста. Данните се предават на пакети разположени в логически канали ('''pipes'''). Между | + | Управлението на USB системата се извършва единствено от хоста. Данните се предават на пакети разположени в логически канали ('''pipes'''). Едно физическо устройство може да изълнява няколко функци, всяка функция се адресира по отделно, могат да се адресират до 127 функции. Между една функция и хоста могат да бъдат създадени няколко канала, които се идентифицират с адрес на крайната точка ('''endpoint''' - като номер на порт при IP адресацията) фиг.X. |
+ | |||
+ | === USB устройства === | ||
== Проводници и захранване на USB == | == Проводници и захранване на USB == |
Revision as of 12:51, 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 със обща шина, към която могат да се включват всички тези устройства.[1]
USB управление на данните
Дизайнът на USB архитектурата е асиметричен с топология тип звезда и се състои се от три озновни части: един хост, връзки, функции (host, interconnects, functions).
Управлението на USB системата се извършва единствено от хоста. Данните се предават на пакети разположени в логически канали (pipes). Едно физическо устройство може да изълнява няколко функци, всяка функция се адресира по отделно, могат да се адресират до 127 функции. Между една функция и хоста могат да бъдат създадени няколко канала, които се идентифицират с адрес на крайната точка (endpoint - като номер на порт при IP адресацията) фиг.X.
USB устройства
Проводници и захранване на USB
USB <= 2
- 4 проводника
- Два проводника за захранване +/- 5V
- Няма проводник за тактова честота
- Предаването е асинхронно
- Останалите два проводника са за предаване на данни
- Обикновено се използва диференциално предаване
- Възможно захранване до 100mA
- При конфигуриране до 500mA
USB <= 3
Основни понятия
USB системата се състои от три части:
- USB хост - контролер който изцяло управлява връзката между устройствата и компютъра
- USB Устройства
- Функции
- Хъбове
- USB връзки - осъществяват
Функции
Всички функции разбират USB протокола и изпълняват стандартните операции (конфигуриране, reset и др.) и описват своите възможности на USB хоста. Според скоростта има четири класа функции
- High speed 480Mb/s v2
- Full speed 12Mb/s v1
- Low speed 1.5Mb/s v2
- Super Speed 5Gb/s v3
Хъбове
Хъбовете осигуряват допълнителни точки за свързване. В едно мулти функционално устройство има вграден хъб и различни функции. Особен режим на работа е когато в един хъб има включени устройства опериращи с различна скорост.
Връзки
Връзките осигуряват свързаността между устройствата и хостта. Топологията на 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/