Difference between revisions of "USB"

From Ilianko
Line 14: Line 14:
  
 
*Управлението на USB системата се извършва единствено от хоста, към който е включен  root [[речник#Х|hub]]-a (основния хъб).
 
*Управлението на USB системата се извършва единствено от хоста, към който е включен  root [[речник#Х|hub]]-a (основния хъб).
[[Image:architecture.png|thumb|600px|Топология на USB]]
+
 
 +
*Данните се предават на пакети разположени в логически канали ('''pipes''').
 +
 
 +
*Едно физическо устройство може е много функционално (принтер+скенер, камера+микрофон). Има два вида свързване на многофункионалните устройства:
 +
*#Устройствoто има вграден хъб и всяка функция се адресира поотделно.
 +
*#
  
  
*Данните се предават на пакети разположени в логически канали ('''pipes''').
 
*Едно физическо устройство може да изпълнява няколко функции. Тези устройства имат вграден хъб и всяка функция се адресира поотделно (принтер+скенер, камера+микрофон).
 
 
*Mогат да се адресират до 127 функции и хъба.  
 
*Mогат да се адресират до 127 функции и хъба.  
 
*Между еднo устройство и хоста могат да бъдат създадени няколко канала, които се идентифицират с адрес на крайната точка ('''endpoint''' - както номер на порт при IP адресацията) фиг.2.
 
*Между еднo устройство и хоста могат да бъдат създадени няколко канала, които се идентифицират с адрес на крайната точка ('''endpoint''' - както номер на порт при IP адресацията) фиг.2.

Revision as of 08:44, 5 November 2012

Предназначение

Проектира се с цел да замени различни бавни интерфейси за предаване на данни, като паралелен, сериен, PS/2 с обща шина, към която могат да се включват всички тези устройства ползващи споменатите интерфейси.

Основни предимства:

  • Автоматичнo конфигуриране (Plug and Play);
  • Динамична инициализация (hot plug);
  • Поддръжка на различни скорости и типове данни.
  • 127 адреса за устройства.

USB управление на данните

Дизайнът на USB архитектурата е асиметричен с топология тип звезда и е изграден от три части: един хост, връзки, устройства от тип хъбове и от тип функции (host, interconnects, devices - hubs and functions).

Схема на свързване
  • Управлението на USB системата се извършва единствено от хоста, към който е включен root hub-a (основния хъб).
  • Данните се предават на пакети разположени в логически канали (pipes).
  • Едно физическо устройство може е много функционално (принтер+скенер, камера+микрофон). Има два вида свързване на многофункионалните устройства:
    1. Устройствoто има вграден хъб и всяка функция се адресира поотделно.


  • Mогат да се адресират до 127 функции и хъба.
  • Между еднo устройство и хоста могат да бъдат създадени няколко канала, които се идентифицират с адрес на крайната точка (endpoint - както номер на порт при IP адресацията) фиг.2.
фиг. 2. Логически канали

USB Скорости

Според скоростта устройствата се разделят на следните класове:

  • High speed 480Mb/s v2
  • Full speed 12Mb/s v1
  • Low speed 1.5Mb/s v1
  • Super Speed 5Gb/s v3


Според своето предназначение устройсвата се разделята на следните класове:

USB оранизация: класове устройства

USB устройствата се програмират, така че да отговарят на един от класовете

Основни класове

  • HID: Human Interface Device
    • мишка, клавиатура, джойстик ...
  • CDC: Communication Device Class
    • модеми Ethernet, ISDN ...
  • MSC: Mass storege class
    • флаш памети, твърди дискове ...

Устройствата попадащи в точно определен клас, могат да се управляват от операционната система без да има нужда от допълнително инсталиране на драйвер


Class Usage Description Examples, or exception
00h Device Unspecified 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), USB DFU (Direct Firmware update)
FFh Both Vendor-specific Indicates that a device needs vendor specific drivers


Задача


Хъбовете осигуряват допълнителни точки за свързване. В едно мулти функционално устройство има вграден хъб и различни функции. Особен режим на работа е когато в един хъб има включени устройства опериращи с различна скорост.

Разделяне на потока от данни

Логически канали (pipes)

Поток на данните: INPUT: от устройство към хост (компютър) OUTPUT: от хост към устройство

Типове логически канали

  • За управление - двупосочен
    • Контролен (control)
  • Поток от данни - еднопосочни канали
    • постоянен (isochronous) - канал с гарантирана скорост за предаване в реално време (видео, звук). Възможна загуба на данни, защото няма проверки за грешки. Поради гарантираната скорост се резервира честотна лента и броят на тези канали е ограничен от капацитета на usb контролера.
    • Прекъсваем (interrupt) - канал гарантиращ малко времезакъснение (мишки, клавиатури)
    • Обемен (bulk) - Канал за предаване на голям обем от данни (файлове), използващ всичкия останал капацитет на USB връзката, без загуби на данни (но няма гарантирана скорост).
Bus 006 Device 009: ID 046d:c018 Logitech, Inc. Optical Wheel Mouse
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x046d Logitech, Inc.
  idProduct          0xc018 Optical Wheel Mouse
  bcdDevice           43.01
  iManufacturer           1 Logitech
  iProduct                2 USB Optical Mouse
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      52
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0005  1x 5 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)

физически канали

Връзки

Връзките осигуряват свързаността между устройствата и хостта. Топологията на USB свързването е тип звезда. Максималния брой нива на свързване е 7. Root хъба е първо ниво. Едно мулти функционално устройство не би молгло да се свърже в ниво 7.

Топология

Проводници и захранване на USB

USB <= 2

  • 4 проводника
  • Два проводника за захранване +/- 5V
    • Няма проводник за тактова честота
    • Предаването е асинхронно
  • Останалите два проводника са за предаване на данни
    • Обикновено се използва диференциално предаване
  • Възможно захранване до 100mA
  • При конфигуриране до 500mA

File:UsbConnectors.jpg

USB <= 3

Основни понятия

USB системата се състои от три части:

  • USB хост - контролер който изцяло управлява връзката между устройствата и компютъра
  • USB Устройства
    • Функции
    • Хъбове
  • USB връзки - осъществяват


Функции

Всички функции разбират USB протокола и изпълняват стандартните операции (конфигуриране, reset и др.) и описват своите възможности на USB хоста. Според скоростта има четири класа функции


Хъбове

Връзки

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 изходящи крайни адреси - пренос на данни от хоста към устройството

Стъпки на свързване

  • Attached
...
  • Powered - подаване на захранване към устройството
  • Default - Устройството се захранва и се достъпва на адрес 0, след като отговори му се изпраща адрес
  • Address - Устройството е получило адрес от хост контролера по стандартния конфигурационен канал (Zero endpoint), който винаги е достъпен, независимо дали има конфигуриран адрес или не.
  • Configured - Хост контролера е получил възможните конфигурации на устройството и е избрал една.
  • Suspended - Ако няма трафик на данни за повече от 1 милисекунда. Режим на ниска консумация. Устройството излиза от този режим след наличие на активност по шината за данни.

USB1, USB2, USB3, USB On-The-Go, Wireless USB

Литература

Официална документация: http://www.usb.org http://www.usb.org/developers/docs/usb_20_040908.zip (виж глава 9) http://wiki.osdev.org/Universal_Serial_Bus http://www.faculty.iu-bremen.de/birk/lectures/PC101-2003/14usb/FINAL%20VERSION/

Building I/0 Devices Second Edition.

Хост контролер спецификация:

Направи си сам Интерактивен манипулатор (USB HID device)

Linux & USB