Arsitektur USB 2.0
Desain Arsitektur USB
2.0 mempunyai topologi yang asimetris, yang terdiri dari sebuah host, memiliki
banyak port USB downstream, dan beberapa perangkat periperal yang terhubung
dalam deretan topologi star. USB hub tambahan dapat dimasukkan dalam dereten
topologi tersebut, yang memungkinkan membentuk percabangan dalam sebuah
struktur tree hingga mencapai lima tingkat deretan. Sebuah host USB dapat
mengimplementasikan beberapa host controller, dan masing-masing host controller
dapat memberikan servis kepada satu atau lebih port USB. Host controller
tersebut mampu memberikan servis hingga mencapai lebih dari 127 perangkat,
termasuk perangkat hub jika ada.
Perangkat USB
terhubung dalam seri melalui hub. Sebuah hub dikenal sebagai root hub yang
dibentuk ke dalam host controller. Sebuah perangkat physical USB dapat terdiri
dari beberapa logical sub-device yang disebut sebagai device functions. Sebuah
perangkat tunggal dapat menyediakan beberapa fungsi, misalnya, webcam (fungsi
perangkat video) dengan built-in microphone (fungsi perangkat audio). Jenis
perangkat semacam ini disebut sebagai perangkat komposit. Sebuah alternatif
untuk hal ini adalah dengan menggabungkan perangkat di mana setiap logical
device diberikan sebuah alamat yang berbeda oleh host kemudian dihubungkan ke
built-in hub yang terhubung pada kawat USB secara fisik.
Perangkat komunikasi
USB didasarkan pada pipe (logical channels). Pipe adalah sambungan dari host
controller pada sebuah logical entity, yang ditemukan pada perangkat, dan
disebut sebagai endpoint. Karena pipe berhubungan secara satu ke satu pada
endpoint, sehingga ketentuannya pipe kadang-kadang digunakan secara bergantian.
Sebuah perangkat USB dapat memiliki hingga 32 endpoint, meskipun perangkat USB
jarang memiliki banyak endpoint. Endpoint dibuat ke dalam perangkat USB oleh
produsen sehingga bersifat permanen, sementara pipe dapat dibuka dan ditutup
sesui proses yang dibutuhkan.
Ada dua jenis pipe
yang ada, yaitu stream pipe dan message pipe. Sebuah message pipe bersifat
bidirectional dan digunakan untuk kontrol transfer. Message pipe biasanya
digunakan untuk proses singkat, perintah sederhana pada perangkat, dan status
respon, misalnya digunakan oleh bus untuk mengontrol pipe nomor 0. Sedangkan
stream pipe adalah pipe yang bersifat unidirectional dan terhubung ke
unidirectional endpoint yang mentransfer data menggunakan tiga bentuk
pengiriman yaitu isochronous, interrupt, atau bulk transfer:
o
isochronous transfer: menjamin data rate tetapi dengan kemungkinan kehilangan
data (misalnya, audio atau video realtime).
o
interrupt transfer: perangkat yang membutuhkan jaminan respon cepat
(dibatasi latency) (misalnya, perangkat menunjuk dan keyboard).
o
bulk transfer: transfer secara besar-besaran menggunakan semua bandwidth yang
tersedia, tetapi dengan tidak ada jaminan pada bandwidth atau latency
(misalnya, transfer file).
Sebuah endpoint dari pipe dialamatkan pada sebuah tuple (device_address,
endpoint_number) sebagaimana ditetapkan dalam paket TOKEN bahwa host melakukan
proses pengiriman ketika ingin memulai sesi transfer data. Jika arah transfer
data dari host ke endpoint, paket OUT (spesialisasi dari paket TOKEN) memiliki
alamat perangkat yang diinginkan dan nomor endpoint dikirim oleh host. Jika
arah transfer data dari perangkat ke host, host mengirimkan paket IN. Apabila
endpoint tujuan adalah endpoint unidirectional yang tidak sesuai dengan paket
TOKEN karena design yang berbeda dari produsen (misalnya, arah ditunjuk IN
sementara paket TOKEN adalah paket OUT), maka paket TOKEN akan diabaikan. Jika
transfer diterima, maka data transaksi dapat dimulai. Sebuah endpoint
bi-directional, dapat menerima baik IN dan OUT paket.
Endpoint dikelompokkan ke dalam interface dan masing-masing interface
terkait dengan single device function. Kecuali endpoint nol, yang digunakan
untuk konfigurasi perangkat dan yang tidak terkait dengan interface apapun.
Sebuah fungsi perangkat tunggal yang terdiri dari interface yang dikendalikan
secara independent disebut composite device. Sebuah composite device hanya
memiliki alamat perangkat tunggal karena host hanya memberikan alamat perangkat
ke fungsi.
Ketika sebuah perangkat pertama kali USB terhubung ke host USB, proses pencacahan perangkat USB dimulai. Pencacahan dimulai dengan mengirimkan sinyal reset ke perangkat USB. Data rate perangkat USB ditentukan selama sinyal reset. Setelah reset, informasi perangkat USB dibaca oleh host dan perangkat diberi sebuah alamat unik yang terdiri dari 7 bit. Jika perangkat ini didukung oleh host, driver perangkat yang diperlukan untuk berkomunikasi dengan perangkat tersebut dimuat dan perangkat diatur konfigurasinya.
Ketika sebuah perangkat pertama kali USB terhubung ke host USB, proses pencacahan perangkat USB dimulai. Pencacahan dimulai dengan mengirimkan sinyal reset ke perangkat USB. Data rate perangkat USB ditentukan selama sinyal reset. Setelah reset, informasi perangkat USB dibaca oleh host dan perangkat diberi sebuah alamat unik yang terdiri dari 7 bit. Jika perangkat ini didukung oleh host, driver perangkat yang diperlukan untuk berkomunikasi dengan perangkat tersebut dimuat dan perangkat diatur konfigurasinya.
Host controller
mengarahkan arus lalu lintas ke perangkat, sehingga tidak ada perangkat USB
dapat mentransfer data pada bus tanpa permintaan eksplisit dari host
controller. Pada USB 2.0, host controller memilih bus untuk lalu lintas,
biasanya dengan cara round-robin.
High-speed USB
2.0 hub berisi perangkat yang disebut transaction translators yang mengkonversi
antara high-speed USB 2.0 bus dengan full dan low speed buses.
Ketika High-speed USB 2.0 hub terhubung ke High-speed USB 2.0 host
atau hub, maka akan beroperasi dalam mode high speed. Hub USB kemudian akan
menggunakan baik satu transaction translator per port untuk membuat sebuah
full/ low speed bus yang diarahkan ke semua perangkat kecepatan full dan low
speed device pada hub, atau akan menggunakan satu transaction translator per
port untuk membuat isolated full / low speed bus per port pada hub.
Sumber : Berbagai Sumber
No comments:
Write komentar