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.
Pra-rilis:
·
USB 0.7: dirilis November 1994.
·
USB 0.8: dirilis Desember 1994.
·
USB 0.9: dirilis April 1995
·
USB 0.99: dirilis Agustus 1995
·
USB 1.0 Release Candidate: dirilis November
1995.
USB versi 1 dirilis Januari 1996.
USB Ayat 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.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).
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):
Kaki
|
Fungsi
|
|
|
1
|
V BUS (4,75-5,25
V)
|
|
2
|
D-
|
|
3
|
D +
|
|
4
|
|
|
Tempurung
|
Data di bus USB
disalurkan dengan cara mendahulukan Least Significant Bit(LSB).
Paket-paket USB terdiri dari data-data berikut ini:
·
Sinkronkan
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:
Kelompok
|
Nilai PID
|
Packet Identity
|
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
|
Jabatan
|
0010
|
Handshake ACK
|
Jabatan
|
1010
|
NAK Handshake
|
Jabatan
|
1110
|
WARUNG Handshake
|
Jabatan
|
0110
|
Nyet (No
Response Yet)
|
Khusus
|
1100
|
Mukadimah
|
Khusus
|
1100
|
ERR
|
Khusus
|
1000
|
Membagi
|
Khusus
|
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 terhubung. Alamat
0 tidak sah, peralatan yang belum terdaftar harus merespon paket yang dikirim
ke alamat 0.
·
ENDP (titik End)
Titik akhir dari field yang terdiri dari
4 bit, menjadikan 16 kemungkinan titik akhir. Low speed devices, hanya
dapat memiliki 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
memiliki 5 bit CRC ketika paket data memiliki 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.
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 memiliki banyak macam bentuk, dari microcontroller
berbasis 8051 yang memiliki 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