Universal Serial Bus (USB) adalah standar bus serial
untuk perangkat penghubung, biasanya kepada computer 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 dan pemindai gambar, kamera digital, printer, hard disk,
dan komponen networking. USB kini telah menjadi standar bagi peralatan
multimedia seperti pemindai gambar dan kamera digital.
1.
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)
2.
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.
·
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.
3.
Perangcangan
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 12C 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