Bus Beruntut Semesta
(USB) (bahasa
Inggris: Universal Serial Bus) adalah standar bus serial untuk perangkat penghubung, biasanya kepada komputer namun juga digunakan di peralatan lainnya seperti konsol
permainan, ponsel dan PDA.Sistem USB mempunyai desain yang asimetris, yang terdiri dari pengontrol host dan beberapa peralatan terhubung yang berbentuk pohon dengan menggunakan peralatan hub yang khusus.Desain
USB ditujukan untuk menghilangkan perlunya penambahan expansion card ke ISA komputer atau bus PCI, dan memperbaiki kemampuan plug-and-play (pasang-dan-mainkan) dengan memperbolehkan
peralatan-peralatan ditukar atau ditambah ke sistem tanpa perlu mereboot komputer. Ketika USB dipasang, ia langsung dikenal sistem
komputer dan memroses device
driver yang diperlukan untuk
menjalankannya.
USB
dapat menghubungkan peralatan tambahan komputer seperti mouse, keyboard,
pemindai gambar, kamera
digital, printer, hard disk,
dan komponen networking.
USB kini telah menjadi standar bagi peralatan multimedia seperti pemindai gambar dan kamera digital.Versi terbaru (hingga Januari 2005)
USB adalah versi 2.0. Perbedaan paling mencolok antara versi baru dan lama
adalah kecepatan transfer yang jauh meningkat. Kecepatan transfer data USB
dibagi menjadi tiga, antara lain:
- High speed data dengan
frekuensi clock 480.00Mb/s dan tolerasi pensinyalan data pada ± 500ppm.
- Full speed data dengan
frekuensi clock 12.000Mb/s dan tolerasi pensinyalan data pada ±0.25% atau
2,500ppm.
- Low speed data dengan frekuensi clock 1.50Mb/s dan
tolerasi pensinyalan data pada ±1.5% atau 15,000ppm.
USB
adalah host-centric bus di mana host/terminal induk memulai semua trnsaksi.
Paket pertama/penanda (token) awal dihasilkan oleh host untuk menjelaskan
apakah paket yang mengikutinya akan dibaca atau ditulis dan apa tujuan dari
perangkat dan titik akhir. Paket berikutnya adalah data paket yang diikuti oleh
handshaking packet yang melaporkan apakah data atau penanda sudah
diterima dengan baik atau pun titik akhir gagal menerima data dengan baik.
Setiap proses transaksi pada USB
terdiri atas:
- Paket token/sinyal penanda (Header yang menjelaskan
data yang mengikutinya)
- Pilihan paket data (termasuk tingkat muatan) dan
- Status paket (untuk acknowledge/pemberitahuan hasil
transaksi dan untuk koreksi kesalahan)
Data di bus USB disalurkan dengan
cara mendahulukan Least Significant Bit(LSB). Paket-paket USB terdiri dari data-data berikut ini:
- Sync
Semua
paket harus diawali dengan data sync. Sync adalah data 8 bit untuk low dan full
speed atau data 32 bit untuk high speed yang digunakan untuk mensinkronkan
clock dari penerima dengan pemancar. Dua bit terakhir mengindikasikan dimana
data PID dimulai.
- PID (Packet Identity/Identitas paket)
Adalah field untuk menandakan tipe
dari paket yang sedang dikirim. Tabel dibawah ini menunjukkan nilai-nilai PID:
Group
|
Nilai PID
|
Identitas Paket
|
Token
|
0001
|
OUT Token
|
Token
|
1001
|
IN Token
|
Token
|
0101
|
SOF Token
|
Token
|
1101
|
SETUP Token
|
Data
|
0011
|
DATA0
|
Data
|
1011
|
DATA1
|
Data
|
0111
|
DATA2
|
Data
|
1111
|
MDATA
|
Handshake
|
0010
|
ACK Handshake
|
Handshake
|
1010
|
NAK Handshake
|
Handshake
|
1110
|
STALL Handshake
|
Handshake
|
0110
|
NYET (No Response Yet)
|
Special
|
1100
|
PREamble
|
Special
|
1100
|
ERR
|
Special
|
1000
|
Split
|
Special
|
0100
|
Ping
|
Ada
4 bit PID data, supaya yakin diterima dengan benar, 4 bit di komplementasikan
dan diulang, menjadikan 8 bit data PID. Hasil dari pengaturan tersebut adalah
sebagai berikut.
PID0
|
PID1
|
PID2
|
PID3
|
nPID0
|
nPID1
|
nPID2
|
nPID3
|
- ADDR (address)
Bagian
alamat dari peralatan dimana paket digunakan. Dengan lebar 7 bit, 127 peralatan
dapat disambungkan. Alamat 0 tidak sah, peralatan yang belum terdaftar harus
merespon paket yang dikirim ke alamat 0.
- ENDP (End point)
Titik
akhir dari field yang terdiri dari 4 bit, menjadikan 16 kemungkinan titik
akhir. Low speed devices, hanya dapat mempunyai 2 tambahan end point pada
puncak dari pipe default. (maksimal 4 endpoints)
- CRC
Cyclic Redundancy Check dijalankan pada data di dalam paket yang dikirim. Semua
penanda (token) paket mempunyai sebuah 5 bit CRC ketika paket data mempunyai
sebuah 16 bit CRC.
- EOP (End of packet)
Akhir dari paket yang disinyalkan
dengan satu angka akhir 0 (Single Ended Zero/SEO) untuk kira-kira 2 kali bit
diikuti oleh sebuah J 1 kali.
Data yang dikirim dalam bus USB
adalah salah satu dari 4 bentuk, yaitu control, interrupt, bulk, atau isochronous.
Perancangan
peralatan yang menggunakan USB
Untuk
membuat suatu peralatan yang dapat berkomunikasi dengan protokol USB tidak
perlu harus mengetahui secara rinci protokol USB. Bahkan kadang tidak perlu
pengetahuan tentang USB protokol sama sekali. Pengetahuan tentang USB protokol
hanya diperlukan untuk mengetahui spesifikasi yang dibutuhkan untuk alat kita.
Pada kenyataannya untuk mengimplemetasikan USB protokol di FPGA ataupun perangkat bantu lain sangat tidak efisien dan
banyak waktu terbuang untuk merancangnya. Menggunakan kontroler USB sangat lebih dianjurkan dalam membuat alat yang dapat
berkomunikasi melalui protokol ini. Kontroler USB mempunyai banyak macam
bentuk, dari microcontroller berbasis 8051 yang mempunyai input output USB
secara langsung sampai pengubah protocol dari serial seperti I2C
bus ke USB.
USB
controller biasanya dijual dengan disertai berbagai fasilitas yang mempermudah
pengembangan alat, diantaranya manual yang lengkap, driver untuk windows XP,
contoh code aplikasi untuk mengakses USB, contoh code untuk USB controller, dan
skema rangkaian elektronikanya.
Dalam
sisi pengembangan software aplikasi dalam personal computer, komunikasi antar
hardware di dalam perangkat keras USB tidak terlalu diperhatikan karena Windows
ataupun sistem operasi lain yang akan mengurusnya. Pengembang perangkat lunak
hanya memberikan data yang akan dikirim ke alat USB di buffer penyimpan dan
membaca data dari alat USB dari buffer pembaca. Untuk driver pun kadang-kadang
Windows sudah menyediakannya, kecuali untuk peralatan yang mempunyai
spesifikasi khusus kita harus membuatnya sendiri.