Universal
Serial Bus (USB) 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 komponennetworking. USB kini telah menjadi
standar bagi peralatan multimedia seperti pemindai gambar
dan kamera digital.
Standard USB telah berevolusi
kebeberapa versi:
·
USB
0.7: dirilis November 1994.
·
USB
0.8: dirilis December 1994.
·
USB
0.9: dirilis April 1995.
·
USB
0.99: dirilis August 1995.
·
USB
1.0 Release Candidate: dirilis November 1995.
USB versi 1
USB versi 1 dirilis Januari 1996.
USB versi 2]
USB versi 2.0 dirilis April 2000. Perbedaan
paling mencolok dengan versi sebelumnya, yaitu pada versi 2.0 adalah kecepatan
transfer yang jauh meningkat. Kecepatan transfer data USB dibagi menjadi tiga,
antara lain:
·
Super
speed data dengan frekuensi clock 4,800.00Mb/s
·
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 versi 3
USB versi 3.0 dirilis November 2008.
Beberapa perubahan telah diimplementasikan di USB 3.0 seiring dengan
peningkatan penggunaan perangkat eksternal dan kebutuhan kecepatan lebih
tinggi. Kecepatan transfer data USB 3.0 sekitar 3.2 Gbps (400 MB/s), dan secara
teori dapat mencapat 4.8 Gbps. Kecepatan ini 6 sampai 10x lebih cepat dari
maksimal kecepatan USB 2.0. USB 3.0 mengenalkan teknologi transfer data dua
arah (full duplex), sehingga dapat membaca dan menulis data secara bersamaan
(simultan). USB 2.0 dan sebelumnya belum mendukung teknologi bi-directional
ini. Tegangan listrik diturunkan dari 4.4V menjadi 4V, kemudian arus juga
ditingkatkan (menjadi 150mA), sehingga selain lebih hemat energi, sebuah port
USB 3.0 dapat digunakan 4-6 perangkat. Power managemen lebih baik dibanding USB
2.0, sehingga mendukung idle, sleep dan suspend. Ujung USB 3.0 akan sama dengan
USB 2.0 (standard), tetapi kabel didalamnya akan lebih banyak, ada tambahan 4
jalur kabel dibanding USB 2.0 (total ada 9 jalur kabel).
Protokol USB
Persinyalan USB
USB adalah host-centric bus di mana
host/terminal induk memulai semua transaksi. 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)
Nomor kaki (dilihat pada
soket):
Paket data umum USB
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.
0 komentar:
Posting Komentar