USB: erinevus redaktsioonide vahel

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
31. rida: 31. rida:
 
* host controlleri ülesandeks on usb seadmete nimekirja koostamine, seadmete avastamine ja unustamine, adresserimine, nö liikluse ruutimine jms
 
* host controlleri ülesandeks on usb seadmete nimekirja koostamine, seadmete avastamine ja unustamine, adresserimine, nö liikluse ruutimine jms
   
====Storage====
+
====storage====
   
 
TODO
 
TODO

Redaktsioon: 21. september 2025, kell 10:47

Sissejuhatus

TODO

Tööpõhimõte

Väited

  • USB host interface controller tegeleb transpordiga (mitte translationiga nagu nt achi kontroller, mis tõlgib achi protokolli käigult sata protokolliks)
  • USB device controller
  • USB composite device (nt Yubikey)

Klassid

  • andmesalvestus (storage) - MSC (Mass Storage Class)
  • serial port dongle - ACM (Abstract Control Model)
  • klaviatuur, hiir - HID (Human Interface Device Class)
  • wired network - NCM (Network Control Model)
  • wifi network - WCC (Wireless Controller Class)
  • bluetooth network - WCC (Wireless Controller Class)
  • smart card - CCID (Chip Card Interface Class)
  • webcam - UVC (Video Class)

Kusjuures CDC on ülemklass, mille alla kuuluvad WCC, NCM ja ACM. CDC alla otse ei kuulu seadmeid.

Üldiselt toimub CPU ja seadme vaheline suhtlemine kahe kihiliselt

  • cpu ja 'host controller interface' vahel toimub hci protokolli abil suhtlemine
  • cpu ja 'device controller interface' vahel toimub spetsiifilise protokolli abil suhtlemine (nt usb-storage puhul msc)
  • hci protokolli sisse on kapseldatud msc protokolli liiklus
  • host controlleri ülesandeks on usb seadmete nimekirja koostamine, seadmete avastamine ja unustamine, adresserimine, nö liikluse ruutimine jms

storage

TODO

klaviatuur ja hiir

TODO

wired network

TODO

wifi network

Väited

  • tavaliselt ei realiseerita wifi seadet usb seadmena kuna wifi kasutab suhteliselt suurt kiirust, nt läptop integreeritud wifi seade on pigem pcie seade
  • wifi kasutusjuhule on iseloomulik, et liikluse krüptimine toimub allpool ethernet kihti (erinevalt wired võrgust kus on kombeks kasutada nt ipsec protokolli kus toimub krüptimine ülevalpoolt ethernet kihti, nt esp/ah protokollidega)
  • wifi võrgu puhul ei ole usb universaalne mõtlmine realiseeritud sellise põhimõttekindlusega nagu nt webcam puhul - st device kontrolleriga tegelevad pigem spetsiifilised draiverid

bluetooth network

Väited

  • tavaliselt realiseeritakse bluetooth seade wifi seadmena kuna bluetooth kasutab suhteliselt väikest kiirust, nt läptop puhul
root@ubu2110:~# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 6: Dev 2, If 0, Class=Vendor Specific Class, Driver=, 12M
    |__ Port 7: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 7: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 8: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 8: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
...

kus

  • dev 3 ja if 0 - control plane
  • dev 3 ja if 1 - data plane

smart card

TODO

webcam

TODO

root@ubu2110:~# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 6: Dev 2, If 0, Class=Vendor Specific Class, Driver=, 12M
    |__ Port 7: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 7: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 8: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 8: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
...

kus

  • dev 4 ja if 0 - control plane
  • dev 4 ja if 1 - data plane

serial dongle

TODO

Misc

Peale arvutis usb osakonna nö väljalülitamist

root@ubu2110:~# lsusb -t
root@ubu2110:~# usb-devices
root@ubu2110:~# lsmod | grep usb
root@ubu2110:~#

Tagasi laadimine, nt

root@ubu2110:~# modprobe xhci_pci
root@ubu2110:~# lsmod | grep usb
usbnet                 53248  1 cdc_ether
usbhid                 65536  0
btusb                  61440  0
btrtl                  24576  1 btusb
hid                   151552  2 usbhid,hid_generic
mii                    16384  2 usbnet,r8152
btbcm                  24576  1 btusb
btintel                40960  1 btusb
bluetooth             671744  43 btrtl,btintel,btbcm,bnep,btusb,rfcomm

root@ubu2110:~# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 2: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 480M
    |__ Port 4: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 6: Dev 4, If 0, Class=Vendor Specific Class, Driver=, 12M
    |__ Port 7: Dev 5, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 7: Dev 5, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 8: Dev 6, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 8: Dev 6, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 9: Dev 7, If 0, Class=Chip/SmartCard, Driver=usbfs, 12M

root@ubu2110:~# usb-devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh=16
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=05.15
S:  Manufacturer=Linux 5.15.0-140-generic xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:00:14.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  2
P:  Vendor=0bda ProdID=8152 Rev=20.00
S:  Manufacturer=Realtek
S:  Product=USB 10/100 LAN
S:  SerialNumber=00E04C31A33D
C:  #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=00 Driver=r8152
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=83(I) Atr=03(Int.) MxPS=   2 Ivl=16ms

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 8
D:  Ver= 3.00 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev=05.15
S:  Manufacturer=Linux 5.15.0-140-generic xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:00:14.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

Kasulikud lisamaterjalid

  • TODO