Difference between revisions of "USB"

From Ilianko
Line 1: Line 1:
 
USB
 
USB
  
== Литература ==
 
Официална документация:
 
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.
 
 
 
 
Хост контролер спецификация:
 
*http://www.intel.com/technology/usb/ehcispec.htm
 
 
 
Направи си сам Интерактивен манипулатор (USB
 
HID device)
 
 
 
*http://www.create.ucsb.edu/%7Edano/CUI/
 
 
 
•  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
 
  
 
== Предназначение ==
 
== Предназначение ==
Line 600: Line 489:
 
http://www.faculty.iu-bremen.de/birk/lectures/PC101-2003/14usb/FINAL%20VERSION/
 
http://www.faculty.iu-bremen.de/birk/lectures/PC101-2003/14usb/FINAL%20VERSION/
 
[http://lwn.net/images/pdf/LDD3/ch13.pdf|LDD3]
 
[http://lwn.net/images/pdf/LDD3/ch13.pdf|LDD3]
 +
== Литература ==
 +
Официална документация:
 +
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.
 +
 
 +
 +
Хост контролер спецификация:
 +
*http://www.intel.com/technology/usb/ehcispec.htm
 +
 
 +
Направи си сам Интерактивен манипулатор (USB
 +
HID device)
 +
 
 +
*http://www.create.ucsb.edu/%7Edano/CUI/
 +
 
 +
•  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
 +
 
 +
http://www.cprince.com/courses/cs5631/lectures/USB

Revision as of 21:45, 29 January 2012

USB


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

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

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

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

Схема на свързване

Управлението на USB системата се извършва единствено от хоста. Данните се предават на пакети разположени в логически канали (pipes). Едно физическо устройство може да изълнява няколко функци, всяка функция се адресира поотделно, Mогат да се адресират до 127 функции и хъба. Между една функция и хоста могат да бъдат създадени няколко канала, които се идентифицират с адрес на крайната точка (endpoint - като номер на порт при IP адресацията) фиг.X.

фиг. 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 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


Задача


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

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

Връзки

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


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]

Литература

Официална документация: 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	
 

http://www.cprince.com/courses/cs5631/lectures/USB