Universal Serial Bus (USB)
Konektor USB
(Tipe A dan B)
Konektor USB Tipe
A
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 komponen networking. USB kini telah menjadi standar
bagi peralatan multimedia seperti pemindai gambar
dan kamera digital.
Sejarah versi
Standard USB telah berevolusi kebeberapa versi:
Pre-rilis
- 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):
Penetapan kaki
|
||
Kaki
|
Fungsi
|
|
1
|
VBUS (4.75–5.25 V)
|
|
2
|
D−
|
|
3
|
D+
|
|
4
|
||
Shell
|
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.
Sumber : http://id.wikipedia.org/wiki/Universal_Serial_Bus
Kelebihan
dan kekurangan USB
Kelebihan
USB:
1.
Kecepatan
yang lebih tinggi
Pada
USB versi 1.1 (versi USB yang masih banyak digunakan) 64 byte paket tersebut
dapat ditransfer dengan kecepatan hingga 12 Mbps(mega bit per second) atau 100
kali lebih cepat dari serial port dan 6 kali lebih cepat dari port paralel.
Pada versi USB yang lebih baru, yaitu USB versi 2.0, kecepatannya telah
meningkat hingga 480 Mbps, menjadikan USB versi 2.0 dapat digunakan oleh
peralatan yang membutuhkan bandwith tinggi.
2.
Fleksibel dalam penggunaan
Sebuah
bus USB dapat dikoneksikan dengan sejumlah USB devais, baik langsung melalui
port USB pada CPU atau melalui alat yang disebut hub USB. Selanjutnya sebuah
hub USB dapat dihubungkan kembali dengan hub USB baru membentuk rantai hub USB
dan devais USB.
Kekurangan
USB:
Jumlah 127 devais USB
sepertinya sulit untuk dibuktikan. Masalah yang sering menjadi kendala utama
adalah masalah konsumsi listrik.
Sumber : http://id.wikipedia.org/wiki/Universal_Serial_Bus
Universal Serial Bus (USB)