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.
Konektor USB ( TIpe A dan Tipe B) |
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.
Konektor USB Tipe A |
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
1.0 yang diperkenalkan pada tahun 1996. Hal itu dimaksudkan untuk menggantikan
banyak konektor di bagian belakang PC, serta perangkat lunak untuk
menyederhanakan konfigurasi perangkat komunikasi. Asli spesifikasi USB 1.0
memiliki kecepatan transfer data dari 12 Mbit / s.
USB
diciptakan oleh kelompok inti yang terdiri dari perusahaan yang terdiri dari
Compaq, Digital, IBM, Intel, Northern Telecom, dan Microsoft. Intel
menghasilkan UHCI host controller dan tumpukan perangkat lunak terbuka;
Microsoft memproduksi perangkat lunak USB stack untuk Windows dan turut menulis
pengendali host yang OHCI spesifikasi dengan National Semiconductor dan Compaq;
Philips diproduksi awal USB-Audio; dan diproduksi TI yang paling banyak
digunakan hub chip . Salah satu co-penemu USB adalah Ajay Bhatt, yang kemudian
diberikan kredit di Intel iklan televisi.
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 2.0
telah distandardisasi oleh USB-IF pada akhir 2001. Hewlett-Packard, Intel,
Lucent Technologies (sekarang Alcatel-Lucent mengikuti jalannya merger dengan
Nokia pada tahun 2006), Microsoft, NEC, dan Philips bersama-sama memimpin
inisiatif untuk mengembangkan kecepatan transfer data yang lebih tinggi
daripada 1,0
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:
Sumber:
0 komentar:
Posting Komentar