Universal Serial Bus
Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Konektor USB (Tipe A dan B)
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 di
tukar atau ditambah ke sistem tanpa perlu me
reboot 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:
- 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.
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[1]
| Kaki |
Fungsi |
|
1 |
VBUS (4.75–5.25 V) |
|
2 |
D− |
|
3 |
D+ |
|
4 |
GND |
|
Shell |
Shield |
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:
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 |
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.
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)
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.
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.