Universal Serial Bus

thumb|Konéktor USB (Tipe A jeung B)
thumb|Colokan USB Séri “A”

**Universal Serial Bus** (**USB**) nyaéta standar beus sérial kana parangkat antarbeungeut. Barétona dirancang pikeun komputer-komputer saperti PC jeung Apple Macintosh, tapi lantaran popularitasna, kiwari USB geus ilahar dipaké dina video game console, PDA, telepon sélulér; malah keur parangkat saperti televisi jeung parabotan home stereo (contona, pamuter MP3), jeung parangkat mémori nu portabel.

Spéktrum radio anu dumasar kana impléméntasi USB katelahna Wireless USB.

## Sawangan 
Sistim USB mibanda rancangan anu asimétris, ngawengku ranté *host controller* jeung **multiple daisy-chained device**. USB hub tambahan bisa diasupkeun dina éta ranté, nu ngidinan ayana percabangan nu ngawangun struktur tangkal *(tree structure)* nepikeun ka lima tingkat percabangan dina unggal kontrolerna. Unggal *USB host* meunang miboga sababaraha *host controller* sarta unggal *host controller* bisa nyadiakeun hiji términal USB atawa leuwih. Nepikeun ka 127 parangkat, kaasup parangkat beusna, bisa disambungkeun kana hiji *host controller*.

Parangkat-parangkat USB silisambung sacara séri ngaliwatan *hub*. Diperlukeun sahenteuna hiji *hub* anu katelah *root hub*, anu biasana ngahiji jeung *host controller*. Aya ogé hub-hub anu dipaké babarengan, disebutna *sharing hub*, anu ngidinan leuwih ti hiji komputer ngaksés kana périferal anu sarua, boh ku cara aksés nu siligenti antara PC sacara otomatis atawa sacara manual. Hub nu dipaké babarengan ieu kawentar pisan dina pamakéan di kantor-kantor, utamana kantor leutik. Pikeun ngurangan perluna hub USB, komputer ayeuna mah USB port-na loba, umumna aya genep. Komputer déstop nu pangmodérenna miboga nepi ka satengahna términal USB dina panél hareupna, sawaréhna di panél tukang. Nu di hareup ieu dipaké pikeun konéksi parangkat portabel samentara.

USB dirancang keur ngahubungkeun périperal tanpa perlu nyolokkeun kartu ékspansi kana beus ISA, EISA, atawa PCI-na komputer, sarta pikeun ningkatkeun kamampuan plug-and-play ku jalan nga-hot-swap parangkat (disambungkeun atawa dipegatkeun hubungannana tanpa maéhan power atawa rebooting komputer). Nalika hiji parangkat munggaran dihubungkeun, *host* bakal ngitung (nyebutan hiji-hiji) sarta ngaku parangkat éta, sarta ngaluarkeun driver parangkat nu diperlukeun. 

USB bisa ngahubungkeun périperal saperti mouse, keyboard, gamepad jeung joystick, scanner, kaméra digital, printer, panyimpen éksternal, komponén jaringan, jeung sajabana. Keur sababaraha parangkat saperti scanner jeung kaméra digital, USB geus jadi métode konéksi standar. USB ogé digunakeun sacara lega keur ngahubungkeun printer nu teu boga hubungan ka jaringan, ngaganti port paralél nu loba dipigunakeun; USB ngabasajankeun hubungan sababaraha printer kana hiji komputer. Nepi ka taun 2004 aya 1 miliar parangkat USB di dunya. Dina 2005, ukur périperal kelas lega nu henteu bisa ngagunakeun USB, alatan perlu *data rate* nu leuwih luhur tibatan nu bisa disadiakueun ku USB, nyaéta display jeung monitor, sarta komponén vidéo kualitas luhur.

### Standarisasi 
Rancangan USB distandarisasi ku USB Implementers Forum (USB-IF), hiji badan standar isndustri mangrupa gabungan pausahaan-pausahaan mapan dina widang isndustri komputer jeung éléktronik. Anggotana kaasup di antarana Apple Computer, Hewlett-Packard, NEC, Microsoft, Intel, jeung Agere.

Dina taun 2006, spésifikasi USB nepikeun ka vérsi 2.0 (kalayan révisi). Hewlett-Packard, Intel, Lucent, Microsoft, NEC, jeung Philips babarengan ngamimitian inisiatif keur ngawangun rarata transfer data nu leuwih luhur tibatan spésifikasi 1.1 Spésifikasi USB 2.0 dikaluarkeun dina bulan April 2000 sarta distandarisasi ku USB-IF din aahir 2001. Kaluaran saméméhna nu kacatet nyaéta spésifikasi 0.9, 1.0, jeung 1.1. Parangkat nu ngagunakeun vérsi standar USB mana waé ogé, bisa dipaké dina parangkat nu dirancang dina spésifikasi saméméhna (disebut: kasaluyuan ka tukang, basa Inggris:backwards compatibility).

Colokan jeung wadah (stéker jeung stop kontak) keur USB nu leuwih leutik, disebut **Mini-A** jeung **Mini-B**, ogé aya, nu ditetepkeun ku **On-The-Go Supplement to the USB 2.0 Specification**. Dina 2 Agustus 2006, spésifikasi ieu nepi ka révisi 1.2.

## Detil téhnis 
USB ngahubungkeun sababaraha parangkat ka *host controller* ngaliwatan ranté *hub*. Dina istilah USB, parangkat dirujuk minangka fungsi (*function*), sabab dina tiori, anu ku urang dipikawanoh minangka parangkat sabenerna bisa jadi tempat sababaraha fungsi, saperti router anu bisa jadi mangrupa pamaca Secure Digital Card dina waktu nu sarua. *Hub-hub* mangrupa parangkat nu boga guna husus nu henteu sacara resmi dianggap fungsi. Nu sok aya waé téh, hiji hub minangka *root hub*, nu dipasang langsung kana *host controller*.

Alat/fungsi (jeung hub) ieu boga *pipa* (kanal logis) nyambung nu mangrupa sambungan ti kadali *host* kana hiji entitas logis dina alat nu disebut *titik tungtung* *(endpoint)*. Pipah ieu sarua jeung aliran bita *(byte stream)* kawas dina jalur pipa *(pipeline)* bogana Unix, nu mana istilah *endpoint* ogé (istilah nu goreng) dipaké keur ngamaksudkeun kana sakabéh pipa, sok sanajan dina dokumentasi USB standar oge.

Titik tungtung ieu (sarta pipa nu patuturutna) dinomeran 0-15 dina unggal arahna, antukna hiji alat/fungsi bisa boga tepikeun ka 32 pipah aktip, 16 ka jero jeung 16 ka luar. (arah *OUT* bisa dihartikeun *kaluar tina host controller* sarta arah *IN* hartina *asup kana host controller*.)

Unggal titik tungtung bisa nransfer data ukur saarah, boh ka jero atawa ka luareun alat/fungsi, antukna unggal pipa mangrupa pipa saarah. Titik tungtung 0 disadiakeun keur manajemen beus dua arah sarta jadina aya 32 titik tungtung — sakabéh alat USB kudu nerapkeun titik tungtung 0, antukna pasti ukur aya pipa asup jeung kaluar nu dinomeran 0 dina alat nu siga kumaha waé oge.

Dina pipah ieu, data dikirimkeun mangupa paket nu panjangna rupa-rupa. Unggal pipah boga hiji panjang paket makimum, ilaharna 2^n bita, antukna paket USB bakal mindeng ngandung hiji hal anu runtuyanana 8, 16, 32, 64, 128, 256, 512 atawa 1024 bita.

Pipah éta dibagi ogé jadi opat kategori nu béda-béda dumasar kana *tipe transferna*:

* *transfer kadali* - ilaharna dipaké keur parentah pondok tur basajan kana pakakas, katut tanggepan statusna, nu dipaké contona ku pipah kadali beus nomer 0
* *tranfer isokron* - dina sababaraha *guaranteed speed* (mindeng tapi teu perlu sagancang-gancangna) tapi kalayan rugi data nu mungkin *(possible data loss)*, contona audio jeung vidéo wanci nyata
* *transfer interupsi* - pakakas nu merlukeun tanggepan nu gancangna kajamin *(bounded latency)*, conton pakakas panunjuk *(pointing device)* jeung *keyboard*
* *transfer nu gedé (bulk transfer)* - transfer sporadis nu gedé maké rubak pita nu aya nu nyesa (tapi tanpa jaminan kana rubak pita atawa *latency*), contona transfer koropak *(file transfer)*.

Nalika hiji pakakas (fungsi) atawa *hub* dicolokkeun kana host controller ngaliwatan hub naon waé dina beus, harita ogé dibéré 7 alamat bit nu unik dina beus ku host controller.

Kelas alat nu sering dipaké (dikelompokkeun dumasar ID kelas nu didaptarkeun) nyaéta:

; 0x00 : Reserved value - used in the device descriptor to signify that the interface descriptor holds the device class identifier for éach interface.
; 0x01 : USB audio device class, sound card-like devices.
; 0x03 : USB human interface device class ("HID"), keyboards, mice, etc.
; 0x06 : Still image capture device class, identical to the Picture Transfer Protocol as used across USB
; 0x07 : USB printer device class, printer-like devices.
; 0x08 : USB mass storage device class used for flash drives, portable hard drives, memory card réaders, digital cameras, digital audio players etc. This device class presents the device as a block device (almost always used to store a file system).
; 0x09 : Hub USB.
; 0x0A : USB communications device class used for modems, network cards, ISDN connections, Fax.
; 0x0E : USB video device class, webcam-like devices, motion image capture devices.
; 0xE0 : Wireless controllers, for example Bluetooth dongles.
; 0xFF : Custom device class - used to establish that a device or interface does not support any standard device class and requires custom drivers.

### Pasinyalan USB 
#### Pasinyalan USB 
Nomer suku (ditempo dina sokét):

180px

## Tempo Ogé 
* U3 (keur ngajalankeun aplikasi Microsoft Windows tina USB flash drive)
* USB Flash Drive
* Hub USB
* Forum Pamaké USB
* USB streaming

Keur beus lianna, tempo:
* ACCESS.bus
* FireWire (katelah ogé IEEE 1394, atawa I.link)
* PCMCIA
* Peripheral Component Interconnect (PCI)
* Kabel sérial (keur RS-232)
* Wi-Fi

## Tumbu Luar 
* Home of USB Implementers Forum, Inc., including the USB 2.0 specification
* All About USB - a Complete Guide to the Universal Serial Bus
* USB Central for developers of USB devices and hosts
* USB keur DOS 
* UHCI keur DOS
* Linux USB Project, containing much technical information and documentation
* Linux USB device overview , which contains much more comprehensive information than the Linux USB Project
* USB Networking Introduction 
* Linux usbmount .
* USB in a NutShell  - a primer for developers
* Universal Host Controller Interface (UHCI) 
* USB vs FireWire speed comparison
* Embedded USB Stack (Embedded USB-MSD and USB-Bulk Stack for any RTOS)
* Pinouts for some devices with USB connector or interface 
* Pinout USB
* USB-Hub.org - independent reviews on USB devices.