Kamis, 30 September 2010

Universal Serial Bus (USB)


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 ISAkomputer 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 mousekeyboardpemindai gambar,kamera digitalprinterhard 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:
  • 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.


Universal Serial Bus (USB) adalah satu set spesifikasi konektivitas yang dikembangkan oleh Intel bekerjasama dengan para pemimpin industri. USB memungkinkan kecepatan tinggi, koneksi mudah peripheral untuk PC. Ketika terpasang, mengkonfigurasi semuanya secara otomatis. USB adalah interkoneksi paling sukses dalam sejarah komputasi personal dan telah bermigrasi ke elektronik konsumen (CE) dan produk mobile.


Memberikan standar industri, USB awalnya dirilis pada tahun 1995 sebesar 12 Mbps. Hari ini, USB beroperasi pada 480 Mbps dan ditemukan di lebih dari enam miliar PC, elektronik konsumen (CE), dan perangkat mobile dengan tingkat lari dari 2 milyar produk USB yang dikirim ke pasar yang berkembang setiap tahun. Selain kinerja tinggi dan mana-mana, USB menikmati pengakuan konsumen merek yang kuat dan reputasi untuk kemudahan penggunaan.


USB di masa depan

Kemajuan berikutnya dalam teknologi di mana-mana adalah SuperSpeed USB (USB 3.0) yang akan memberikan lebih dari 10x ditargetkan kecepatan saat ini Hi-Speed USB koneksi. Teknologi target PC sync cepat-dan-pergi transfer aplikasi, untuk memenuhi tuntutan segmen mobile CE dan berfokus pada konten kepadatan tinggi digital dan media.
USB 3.0 akan menciptakan sebuah standar mundur-kompatibel dengan kemudahan yang sama-penggunaan-dan plug and play kemampuan teknologi USB sebelumnya. Penargetan lebih meningkatkan kinerja 10x pada kecepatan data 5Gbps, teknologi akan menarik dari arsitektur yang sama kabel USB. Selain itu, spesifikasi USB 3.0 akan dioptimalkan untuk daya rendah dan efisiensi protokol ditingkatkan.






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)



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:
GroupNilai PIDIdentitas Paket
Token0001OUT Token
Token1001IN Token
Token0101SOF Token
Token1101SETUP Token
Data0011DATA0
Data1011DATA1
Data0111DATA2
Data1111MDATA
Handshake0010ACK Handshake
Handshake1010NAK Handshake
Handshake1110STALL Handshake
Handshake0110NYET (No Response Yet)
Special1100PREamble
Special1100ERR
Special1000Split
Special0100Ping
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.
PID0PID1PID2PID3nPID0nPID1nPID2nPID3
  • 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 didalam 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 didalam 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.





















Tidak ada komentar:

Posting Komentar

Entri Populer