Universal Serial Bus

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:

USB versi 1

USB versi 1 dirilis Januari 1996.

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 mencapai 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).

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.