Anda di halaman 1dari 26

BAB I

Parallel Port

Diagram Pin Parallel Port


Ada dua macam konektor parallel port, yaitu 36 pin dan 25 pin Konektor 36
pin dikenal dengan nama Centronics dan konektor 25 pin dikenal dengan DB25. Layaknya komponen dalam untaian elektronika, parallel port dilabuhkan
dengan konektor betina dan jantan. Di komputer, konektor parallel port yang
terpasang adalah DB-25 betina, sehingga kabel penghubung keluar adalah
DB-25 jantan. Dari 25 pin konektor DB-25 tersebut, hanya 17 pin yang
digunakan untuk saluran pembawa informasi dan yang berfungsi sebagai
ground 8 pin. Ketujuh belas saluran informasi itu terdiri dari 3 bagian, yakni
data 8 bit; status 5 bit; dan control 4 bit. Bit control dan status berfungsi dalam
Jabat Tangan dalam proses penulisan data ke parallel port.
Sinyal Parallel Port
Deskripsi singkat dari sinyal-sinyal pada parallel port (standar) adalah sebagai berikut
:
Nama Sinyal
nSTROBE

Deskripsi Sinyal SPP


: Set pulsa rendah 0,5 det ik untuk menyatakan data di D7 : D0
adalah valid.

Data 0

: Least significant data (LSB)

Data 1

: Data bit 1

Data 2

: Data bit 2

Data 3

: Data bit 3

Data 4

: Data bit 4

Data 5

: Data bit 5

Data 6

: Data bit 6

Data 7

: Most significant data (MSB)

nACK

: Pulsa rendah = 5 det ik menunjukkan data sudah diterima;


IRQ

BUSY

: Bernilai tinggi jika printer sibuk/offline

PaperEnd

: Bernilai tinggi jika printer kehabisan kertas

Select

: Bernilai tinggi jika printer on-line

nAutoFeed

: Jika diset rendah, printer akan pindah baris setiap menemui


karakter carriage return

nError

: Bernilai rendah jika printer error

nInit

: Pulsa rendah = 50 det ik untuk inisialisasi atau me-reset printer

nSelectIn

: Bernilai tinggi jika printer dipilih (oleh komputer)

Ground

: Ground

Dalam paralel port terdapat 17 jalur data ( =17 bit ). Karena komputer
memiliki 8 bit per alamat maka dibutuhkan 3 alamat fisik untuk setiap alamat parallel
port: data ( 8 bit ), status ( 5 bit ) dan control ( 4 bit ). Alamat fisik yang digunakan
untuk keperluan ini disebut juga dengan register, sehingga dikenal register tersebut
berurutan, yakni jika alamat awal parallel port adalah 0378H, maka alamat 0378H ini
untuk register data, 0379H untuk status, dan 037AH untuk control. Alamat demikian
ini biasanya disebut offset, yakni jarak dari alamat awal.
Dari hal tersebut jelas bahwa register status hanya memakai 5 bit dari 8 bit
yang ada, dan register control hanya menggunakan 4 bit dari 8 bit. Sedang register
data memakai seluruh dari 8 bit yang ada.
Register status digunakan untuk mengecek status printer manakala komputer
akan mengeluarkan data melalui parallel port. Pada mulanya register control dalah
Write Only, karena digunakan untuk mengirimkan sinyal pemberitahuan ke printer

seperti inisial, auto linefeed, dsb. Namun demikian register control ini dapat juga
digunakan sebagai input ( Read ). Bit ke 5 dari register control, yakni Enable bidireksional (dua arah) digunakan pada port printer komputer ( mulai ) IBM PS/2 dan
sesudahnya, di mana jalur data pada port printer ( register data ) bisa berfungsi dua
arah : input / output. Jika bit Enable Bi-direksional ini bernilai 1 (tinggi), maka jalur
data akan dapat berfungsi sebagai input. Namun jika tidak diperlukan untuk
berkomunikasi dua arah, maka akan lebih baik bila mengeset bit ini ( bit 5 ) ke rendah
( = 0 ) daripada membiarkannya tetap dalam kondisi default
DB-25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18-25

CENTRONICS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
32
31
36
19-30

IN/OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT

IN
IN
IN
IN
OUT
IN
OUT
OUT

Tabel 1.2: Fungsi pin konektor DB-25 dan Centronic

Bi directional port
IBM menambahkan fasilitas baru pada parallel port-nya, yaitu dengan
kemampuan untuk berkomunikasi dua-arah. Ini melihat fakta bahwa komunikasi duaarah melalui parallel-port sudah mulai diperlukan.
Pada paraller port yang tidak dua arah, tidak terdapat 244 di dalamnya. Jadi
hanya menggunakan 74LS374 yang output Enable-nya secara permanen di-set rendah
sehingga data hanya bisa ditransfer satu arah, output saja. Jika kita membaca data dari
register data parallel port, maka data tersebut berasal dari 374 yang juga
dihubungkan ke pin data. Dengan meng-overdrive 374, maka bisa kita dapatkan
parallel port yang dua-arah (atau justru hanya input saja, jika kita mengisinya dengan
output latch).
Parallel port dua-arah menggunakan bit ke 5 dari register control untuk
dihubungkan dengan Output-Enable (nOE) dari 374, sehingga jika bit 5 ini kita set
tinggi ( =1 ) maka 374 tidak akan bekerja, dan data dari luar komputer. Pada saat
parallel port ini kita set seperti ini, maka data yang kita tuliskan ke register data
parallel port tidak akan sampai ke pin DB-25, karena 374 tidak menghantarkannya.
Nibble Mode
Nibble mode membaca 8 bit dengan menggunakan parallel port tanpa
mengubahnya ke dalam modus balik, artinya tanpa memerlukan pengesetan bit ke 5
dari register control. Mode ini diperkenalkan oleh Hawlett Packard sebelum IBM
memperkenalkan parallel port yang bidireksional.
IRQ pada Parallel Port
IRQ (Interrupt ReQuest) pada parallel port dapat di-dissable atau enable
melalui bit 4 control register, Enable IRQ Via Ack Line. Jika di-enable maka interupsi
akan muncul pada setiap transisi naik pada nAck, IRQ muncul pada transisi tinggi ke
rendah.

Enhanced Parallel Port


EPP sudah mengikuti standart IEEE 1284. Hal yang utama yang patut
diperhatikan dalam EPP adalah bahwa EPP mampu men-transfer data sebesar 500
kBps hingga mendekati 2 MBps dan juga bahwa jalur data dapat berfungsi dua arah,
input maupun output.
Protokol EPP mempunyai 4 macam siklus transfer data yang berbeda, yakni :
1.

Siklus Baca Data ( Data Read )

2.

Siklus Baca Alamat ( Address Read )

3.

Siklus Tulis Data ( Data Write )

4.

Siklus Tulis Alamat ( Address Write

Adapun deskripsi dari sinyal EPP tersebut diatas adalah sebagai berikut :
Sinyal EPP
nWrite

Deskripsi Sinyal EPP


: Active rendah menunjukkan sedang adanya sebuah
operasi tulis dalam siklus baca.

nData

: Active rendah. Menunjukkan sedang memproses


Data_Read atau Data_Write.

nAddrStb

: Active rendah. Menunjukkan sedang memproses


Address_Read atau Address_Write.

nReset

: Active rendah. Me-reset peripheral.

nIntr

: Peripheral Interrupt. Pemicu interrupt ke host.

nWait

: Sinyal handshake. Jika rendah maka bisa memulai


suatu siklus (menyisipkan sinyal strobe), jika tinggi
maka akan mengakhiri siklus.

AD[8:1]

: 8 jalur data dua arah. Untuk transfer data.

User defined

: Belum

didefinisikan,

fungsi

diserahkan

pada

didefinisikan,

fungsi

diserahkan

pada

pemakai.
User defined

: Belum
pemakai.

User defined

: Belum

didefinisikan,

fungsi

diserahkan

pada

pemakai.
EPP digunakan secara luas untuk peralatan yang sifatnya non-printer, seperti
CD-ROM External, Tape Drive, Hard Drive, dll.
Register pada EPP tersusun dari 8 byte alamat di memory (offset), sehingga terdapat
lebih banyak register pada EPP jika dibandingkan dengan SPP. EPP TimeOut Bit ini
merupakan anjing penjaga yang otomatis akan time-out setelah 10 det ik (sedikit
lebih lama sinyal dari nWait yang 5 det ik ). Hal ini karena mode EPP sangat
bergantung pada pewaktuan (timing) bus ISA.
Extended Capability Port, ECP
Dalam berkomunikasi, protokol ECP mempunyai 2 siklus; baik dalam arah
maju maupun balik:
1. Siklus Data.
2. Siklus Command (perintah).
Siklus Command terbagi 2: Run-Length Count dan Channel Address. Ini
ditentukan oleh bit 7 dari register data (MSB). Jika bit 7 = 0 maka D0:6 adalah RunLength Count; digunakan dengan skema kompresi data. Jika bit 7 ini maka D0:6
adalah Channel Address.
Nama
HostClk

Deskripsi Sinyal pada modus ECP


: Jika rendah menunjukkan ada data valid di host. Jika sinyal
hilang, sisi + pulsa clock digunakan untuk mentransfer data
dalam arah balik menuju host.

HostAck

: Dalam arah maju: menunjukkan Coomand (jika rendah)


atau Data (jika tinggi). Digunakan bersama dengan
PeriphClk untuk mentransfer data dalam arah balik.

1284Active

: Bernilai tinggi jika host dalam mode transfer 1284.

NreverseRequest : Bernilai rendah menunjukkan arah data membalik.


PeriphClk

: Jika rendah menunjukkan ada data valid dipiranti luar. Jika


sinyal hilang, sisi + pulsa clock digunakan untuk
mentransfer data dalam arah balik menuju host.

PeriphAck

: Dalam arah balik; menunjukkan Command (jika rendah)


atau Data (jika tinggi). Digunakan bersama dengan
PeriphClk untuk mentransfer data dalam arah maju.

nAckReverse

: Jika rendah, piranti menyatakan permintaan Reverse.

X-flag

: Extensibility flag.

nPeriphRequest : Di-set

rendah

oleh

peripheral

jika

memungkinkan

pembalikan arah data.


Data [8:1]

: Untuk transfer data antara peripheral dan host.

Jabat Tangan ECP


ECP mempunyai 2 siklus : siklus perintah dan siklus data.
Siklus Data Balik ECP
Host mengeset nReverseRequest rendah untuk meminta saluran balik.
Siklus Data Maju ECP
Siklus Perintah Maju ECP
Siklus Command Balik ECP
Host mengeset nReverseRequest rendah untuk meminta saluran balik.
Perbedaan utama dari tangan di EPP dengan ECP adalah bahwa ECP mampu
mengirim data di sembarang waktu dengan sembarang arah (baik maju atau balik).
Namun untuk hal ini diperlukan pensinyalan tambahan, seperti tampak pada siklus
balik, baik pada siklus Data maupun Command.
Kalau dibandingkan dengan jabat tangan di SPP yang hanya 5 langkah, bisa
jadi ECP akan lebih lambat. Namun karena jabat tangan di ECP dilakukan oleh

hardware, maka tidak di perlukan CPU untuk memproses software jabat tangan dan
transfer data di ECP. Hasilnya, ECP jadi lebih cepat dibandingkan SPP.
Run Length Encoding (RLE) & Channel Addessing
Protokol ECP menggunakan Run Length Encoding (RLE) sehingga
memungkinkan kompresi data secara real time yang akan meningkatkan
perbandingan kompresi hingga 64 : 1.
Interface Software dan Register ECP
Model register pada port ECP hampir sama dengan SPP (3 register awal ECP
bahkan sama persis dengan SPP), namun ada perbaikan penting pada desain bus ISA.
Juga bit 5 Control Port (Enable Bi-Di), di ECP bit ini menunjukkan arah transfer yang
sedang dilakukan ECP, dan berpengaruh pada bit FIFO Full dan FIFO Empty di
register ECP.
Register ECP dapat digunakan untuk mengenali apakah port ECP terpasang di
komputer. Deteksi secara software dapat dilakukan dengan mencoba mengakses
register ECP dengan menambah 0x402 H ke alamat base dari port LPT.
Spesifikasi ECP dari Microsoft mendefinisikan juga interface register umum
untk ISA yang didasarkan pada adhapter 1284 dengan ECP. Spesifikasi ini juga
mendefinisikan mode operasi yang bisa dipilih melalui Extended Control Register
(Offset base + 0x402H).
Mode Operasi
Pemilihan mode operasi ditentukan melalui 3 bit MSB dari Extended Control
Register ECP. FIFO Test Mode dapat digunakan untuk mengetahui buffer FIFO,
misalnya untuk memastikan ia bekerja dengan baik. Untuk mengetahui kapasitas
buffer FIFO, gunakan bit register FIFO Full / FIFO Empty di Extended Control
Register. Biasanya buffer ini 16 byte.

Register Konfigurasi A ECP (cnfgA)


Register konfigurasi A adalah satu dari 2 register konfigurasi yang memiliki
ECP. Kedua register konfigurasi ini hanya dapat diakses jika Port ECP adalah di
Configurasi Mode. CnfgA dapat diakses pada alamat base + 400H.
Register Konfigurasi B ECP (cnfg B)
Register ini hanya dapat diakses jika port ECP adalah di Configuration Mode.
Pada mode ini CnfgB dapat diakses pada alamat base + 401H. register Konfigurasi B
(cnfgB) merupakan kombinasi yang bisa diakses untuk baca / tulis.
Setup BIOS
BIOS (Basic Input Output Systems) komputer generasi sekarang sudah
mendukung banyak modus parallel port. Beberapa jenis parallel port yang berbeda
juga dapat dikombinasikan dalam satu modus. Berikut ini pilihannya :

Printer Mode (disebut juga Default atau Normal Mode)

Standard & Bi-directional (SPP) Mode

EPP and SPP Mode

ECP Mode

ECP and EPP Mode


Printer Mode hanya mendukung transmisi satu arah. Standard & Bi-

directional (SPP) Mode adalah mode dua-arah.


EPP and SPP Mode adalah kombinasi dari Enhanced Parallel Port (EPP) dan
SPP. Keuntungannya, semua register yang dimiliki kedua mode parallel port tersebut
bisa diakses. EPP versi 1.7 belum memiliki bit timeout, yang bermasalah pada Data
and Address Strobe untuk memulai siklus wait state yang tidak termonitor. Bit
timeout ini baru dimiliki oleh EPP versi 1.9.

Akhiran
Dari berbagai jenis parallel port di atas, ada kesamaan dan tentunya banyak
perbedaan. Kesamaannya adalah karena semua mengacu kepada standar parallel port
(SPP) sebagai standar karena alasan kompatibilitas. Perbedaan yang sangat nyata,
mode EPP dan ECP sudah menerapkan IEEE 1284.

Tutorial Output TTL


Aplikasi parallel port : totem pole dan open circuit. Dalam Totem pole,
dua transistor dirangkai bertingkat. Ke-2 transistor ini (Q1 dan Q2) bekerja
identik pada penguat push-pull. Jika satu transistor terhubung, maka yang lain
tidak menghubung. Jadi, logika 1 (+5V) diperoleh jika Q1 terhubung sehingga
+5 Volt mengalir melaluinya ke output. Dan logika 0 (0 volt) diperoleh jika
Q2 terhubung sehingga output juga terhubung ke ground menghasilkan logika
0. Jika suatu saat output totem-pole berada pada keadaan rendah (atau tinggi)
dan piranti luar yang dihubungkan kepadanya memaksa bernilai tinggi (atau
rendah), jelas hal ini membahayakan kedua transistor pembentuk totem-pole
ini.
Jenis yang lain, Open Kolektor, hanya ada satu transistor dari pin output ke
ground. Logika 0 berarti transistor terhubung terhubung ke ground. Logika 1
berarti transistor tidak terhubung, menghasilkan keadaan mengambang. Pada
keadaan apapun, logika 0 atau 1. Hubungan luar yang memaksa ke keadaan
yang

berlawanan

dengan

keadaan

open-kolektor

tidak

akan

pernah

membahayakan transistor. Karenanya, Transistor open kolektor ini, beberapa


output-nya (jika ada) dapat langsung disatukan tanpa menimbulkan efek yang
membahayakan.
Dari susunan seri transistor totem-pole, ada modifikasi yang dikenal sebagai
output tri-state; yakni jika kedua transistor totem-pole tidak ada yang
terhubung. Dalam kondisi ini piranti luar bisa leluasa mengatur dengan aman,
bahkan tanpa resistor pull-up.

BAB V
Universal Serial Bus
Sekilas Tentang USB
USB mendukung plug n play dengan load dan unload driver yang dinamis.
Pemakaian tinggal menghubungkan piranti USB ke dalam bus, host (komputer) akan
mendeteksi kehadiran piranti ini, mengeceknya dan memasang driver yang
diperlukan. User tidak perlu khawatir akan terminasi, seting IRQ dan alamat port,
atau reboot komputer. Jika telaj selesai menggunakan piranti USB tersebut, tinggal
cabut saja dari host tanpa terlebih dahulu mematikan komputer, yang secara otomatis
akan mendeteksi ketidak-hadiran piranti USB ini, dan kemudian akan meng-unload
driver-nya. Proses ini dilakukan melalui kombinasi PID/VID (Product ID/Vendor ID).
VID disediakan oleh forum pemakai USB (USB Implement Forum), dan PID dibuat
oleh pembuat perangkat keras.
Konektor USB
Ada dua macam konektor USB : konektor A untuk hubungan ke atas (menuju
host) dan konektor B untuk hubungan ke bawah (terhubung ke piranti USB).
USB Function
USB function maksudnya adalah peralatan USB yang memiliki kemampuan
khusus seperti : printer, scanner, modem, dll.
Pipes
Pipe adalah hubungan secara logika antara host dan endpoint. Pipe ini
memiliki beberapa parameter antara lain berapa besar bandwith yang dialokasikan

untuknya, jenis transfer apa yang digunakan (apakah control, bulk, atau interupsi),
serta arah dari data yang mengalir padanya berikut ukuran maksimum paket (atau
ukuran buffer).
Pada USB didefinisikan 2 macam pipe, yaitu :

Stream Pipe yang tidak memiliki format yakni pemakai dapat mengirim
sembarang jenis data dan menerima data melalui ujung USB. Stream pipe ini bisa
di control baik oleh host maupun klien.

Message Type yang formatnya sudah tertentu, dan hanya dapat di control oleh
host. Dapat mentransfer data dalam dua arah, namun hanya mendukung jenis
transfer control.

Karakteristik Elektris USB


Rentang tegangan kerja sinyal USB adalah 0,3 Volt hingga 3,6 Volt (pada
beban 1,5 k . Pada USB berkecepatan tinggi (480 Mbit/s) digunakan sumber arus
tetap 17,78 mA untuk mengurangi noise. Karena data dikirim serial, maka piranti
USB

harus

mampu

menangani

gelombang

kontinyu,

gelombang

tersebut

dihubungkan langsung ke pin data USB dari sebuah sumber tegangan dengan
impedansi output 39 .
Untuk koneksi USB yang kecepatan penuh 12 MHz digunakan kabel twistedpair terlindung dengan impedansi 90 15 % dan delay maksimumnya 26 ns.
Sedang impedansi pada drivernya harus antara 28 hingga 44 .
Jika diukur, arus yang masuk atau keluar piranti USB V1.1 tidak boleh
melebihi 10,71 VOH mA. Tagangan logika yang dimasukkan ke D+ dan D- tidak
boleh melebihi 0,3 VOH untuk logika rendah dan juga harus turun sebesar 0,7 VOH
untuk logika tinggi.

Karena ada piranti USB yang berkomunikasi pada kecepatan rendah 1,5 MHz, maka
kombinasi kabel dan piranti USB harus mengandung kapasitansi tunggal dengan nilai
200 pF hingga 450 pF di pin D+ dan D-. Perambatan delay pada kabel kecepatan
rendah harus kurang dari 18 ns.
Deteksi Kecepatan Piranti USB
Piranti USB kecepatan tinggi dan rendah dibedakan oleh posisi resistor pullup di ujung kabel downstream sebagai berikut :
Piranti full-speed diterminalkan dengan resistor pull-up terhubung di D+.
Piranti low-speed diterminalkan dengan resistor pull-up terhubung di D-.
Terminator pull-down di port down-stream adalah 15 k 5 % terhubung ke
ground.
Sinyal Penyambungan dan Pemutusan
Kondisi tak-terhubungnya suatu piranti USB dari port akan dideteksi jika host
atau hub tidak mendrive header (di jalur data) selama lebih dari 2,5 det ik . Jika
sebuah piranti dihubungkan, maka hub akan mendeteksi bahwa salah satu jalur
datanya tertarik hingga besar dari ambang VIH selama lebih dari 2,5 det ik . Hub
kemudian bisa (option) mendeteksi kecepatan piranti yang baru terhubung ini dengan
men-sampel keadaan bus segera sebelum men-drive SE0 untuk mereset piranti. Jika
diinginkan, hub dapat membuat bus mengambang sesudah meresetnya dan
menjalankan evaluasi bus sesudah 2,5 det ik tersebut.
Untuk mengirimkan paket data, USB menerapkan enkode data NRZI (Non
Return to Zero Invert). Dalam NRZI ini, logika 1 berarti tidak ada perubahan level
tegangan dan logika "0 ditunjukkan dengan adanya perubahan level tegangan.
Beberapa literatur menyebutnya dengan NRZS (S=Space).
Paket data dikirimkan ke bus USB berurutan dari bit yang berbobot paling
rendah (LSB, Least Significant Bit), diikuti LSB berikutnya, dan terakhir adalah bit
yang berbobot paling tinggi (MSB, Most Signficant Bit).

Penyisipan Bit
Penyisipan bit digunakan untuk memastikan kesempurnaan transisi sinyal.
Tujuannya agar penerima mendapat transisi data (logika) setidaknya sekali setiap 7
bit; untuk kepastian clock control dan data. Penyisipan bit dimulai dengan Sync
pattern dan seterusnya hingga akhir transmisi. Data 1 diakhir Sync Pattern
dianggap sebagai sebuah awal logika 1. Jika logika 1 ditemukan sebanyak 7 kali
berurutan maka dinyatakan ada error penyisipan bit dan data yang diterima akan
diabaikan.
Protokol USB
Setiap transaksi data dalam USB terdiri dari :

Token Packet, header mendefinisikan apa yang harus mengikutinya.

Data Packet (Optional), berisi isi data yang ditransfer.

Status Packet, digunakan untuk cek transaksi data dan sekaligus berarti koreksi
kesalahan jika ada.

Sikronisasi (Sync Pattern)


Pola sikronisasi ini adalah sinyal NRZI yang ekivalen dengan 8 buah logika
nol yang didahului sebuah logika satu. Sikronisasi ini dikodekan berurutan agar
diperoleh kerapatan bit data yang maksimum pada bus USB. Juga untuk menyamakan
data yang masuk dengan pulsa clock lokal. 2 bit terakhir dari sikronisasi, dan secara
otomatis menjadi awal dari PID (Packet I Dentifier).
PID
Digunakan dalam proses jabat tangan; sebagai kode yang membedakan
informasi yang dibawanya. PID terdiri dari 8 bit yang terpisah menjadi 2 bagian, 4 bit
paket data dan 4 bit untuk pengecekan.

LSB
PID0

MSB
PID1

PID2 PID3 NPID0


nPID1 NPID2
Tabel 5.1 Format packet Identifier

NPID3

Tabel 5.2 Jenis PID


Jenis PID
Token

Nama
OUT

PID[3:0]
0001B

Penjelasan
Alamat + nomor endpoint di transaksi host

IN

1001B

function
Alamat + nomor endpoint di transaksi

SOF
SETUP

0101B
1101B

function host
Tanda Start-of-Frame dan nomor frame
Alamat + nomor endpoint di transaksi hostfungsi untuk SETUP agar dapat mengontrol

Data

0011B
1011B
0010B

jalur
Paket Data PID genap
Paket Data PID ganjil
Receiver menerima

1010B

kesalahan
Rx tidak dapat menerima data atau Tx tidak

STALL

1110B

dapat mengirim data


Endpoint halt atau

PRE

1100B

permintaan pengaturan saluran.


Pembuka Host-issu. Memungkinkan

DATA0
DATA1
ACK

Jabat
tangan

NAK

Khusus

paket

data

tidak

tanpa

mendukung
bus

digunakan pada kecepatan rendah.


Field: alamat, endpoint, nomor frame, data
Field alamat function (ADDR) menunjukkan kegunaan suatu piranti USB,
yakni melalui alamat tersebut, apakah sebagai sumber atau tujuan dari paket data;
bergantung pada PID-nya. Dengan 7 bit maka akan didapat 128 alamat, seperti pada
tabel dibawah ini.
LSB

MSB

Addr0

Addr1

Addr2
Addr3
Addr4
Tabel 5.3 Field ADDR

Addr5

Addr6

Field endpoint ditetapkan hanya untuk PID token IN, SETUP, dan OUT. Semua
piranti harus mendukung control saluran default (alamat endpoint nol).
CRC (Cyclic Redundancy Check)
Untuk melindungi field non-PID di paket token dan data, digunakan CRC. CRC
dihitung dan disisipkan di field yang bersesuaian di bagian transmitter, sebelum
dilakukan penyisipan bit. Sebaliknya, CRC didekodekan oleh penerima sesudah
sisispan bit dihilangkan. Untuk penghitungan dan pengecekan CRC, register
geser di bagian pembangkit dan penyeleksi (pengecek), CRC diisi dengan
logika 1. Kesalahan CRC ditemui jika sisa penghitungan di akhir penerimaan
paket tidak sama dengan pola.
CRC Token dan Data
Pada paket token, 5 bit CRC ditambahkan kepada token tersebut dan ini sudah
mencakup field ADDR dan ENDP di token IN, SETUP, dan OUT, dan juga di token
SOF. Polinomialnya adalah :
G(x)=X5+X2+1
Dengan algorithma CRC seperti diatas maka polinomial persamaan ini sesuai
dengan pola bit biner 00101B. Jika semua bit diterima tanpa error, maka ke-5 bit sisa
di receiver adalah 01100B. Untuk bagian data, digunakan CRC 16-bit dengan
polinomial :
G(x)=X16+X15++X2+1
Pola

bit

biner

yang

menyajikan

polinomial

di

atas

adalah

1000000000000101B. dan jika semua bit diterima tanpa error maka ke-16 bit sisa
adalah 100000000000110B.

Format Paket
Dari semua frame di atas, tarsmisi melalui bus USB dilakukan dengan
menyusun frame berurutan sesuai keperluan. Sebuah token terdiri dari PID yang
menunjukkan tipe paket apakah IN, OUT, atau SETUP; field ADDR dan ENDP.
Paket token ditentukan oleh host.
Snyc

PID

ADDR
ENDP
CRC5
Tabel 5.4 Format Packet Token

EOP

Frame SOF dikeluarkan oleh host rata-rata sekali setiap 1mdet 0,0005 mdet.
Paket SOF terdiri dari sebuah PID yang menunjukkan jenis paket diikuti oleh field
nomor frame 11 bit sebagaimana pada tabel dibawah ini.
8 bit
Snyc

11 bit

PID

5 bit

Nomor-Frame
CRC5
Tabel 5.5 Paket SOF

EOP

Token SOF hanya untuk transaksi token yang mendistribusikan tanda SOF
dan menghubungkan nomor frame pada interval waktu yang tepat di awal tiap frame.
Pada paket data ada tiga field; sebuah PID, field data berisi data (dalam byte) dari nol
hingga 1023 dan CRC 16 bit seperti pada tabel dibawah.
8 bit
Sync

PID

0-1023 byte

16 bit

Data
CRC16
Tabel 5.6 Format Field Data

EOP

Ada dua jenis paket data yang dapat dibedakan dari PID-nya : DATA0 dan
DATA1. PID diperlukan untuk sikronisasi. Ada juaga untuk jabat tangan yang hanya
terdiri dari sebuah PID. Paket ini digunakan untuk melaporkan status transaksi dan
dapat mengembalikan nilai yang menunjukkan kesuksesan atau kegagalan
penerimaan data, penerimaan atau penolakan perintah, control aliran, dam kondisi
untuk halt (terkunci).
Sync

PID
Tabel 5.7 Format jabat tangan

Ada tiga jenis paket jabat tangan :

CRC16

ACK, menunjukkan paket data diterima tanpa ada error pada data, CRC, dan PID.
NAK, berarti function tidak menerima data dari host (jika OUT) atau bahwa
function tidak mempunyai data untuk ditransmisikan ke host (jika IN).
STALL, dihasilkan oleh function jika ada token IN sesudah fase data dari
transaksi OUT.
Jabat tangan STALL digunakan dalam dua kondisi yang berbeda; (1) fungsional stall
jika fasilitas halt yang di hubungankan dengan endpoint di-set aktif, dan (2) protokol
stall yang mengontrol saluran secara unik.
Respon Jabat Tangan
Ada beberapa kemungkinan respon jabat tangan yang akan diperoleh dalam
suatu transaksi yang dijalankan :
Respon piranti atas transaksi IN
Token error
diterima
Ya

Tabel 5.8
Function Tx
Function dapat
Endpoint
Sembarang

Aksi Token

meng- irim data


Sembarang

Tidak ada

Tidak

Set

Sembarang

respon
Muncul jabat

Tidak

Tidak di-set

Tidak

tangan STALL
Muncul jabat

Tidak

Tidak di-set

Ya

tangan NAK
Muncul paket
data

Respon host atas transaksi IN


Paket data diterima
error
Ya

Tabel 5.9
Function dapat mengirim
data
Tidak ada

Tidak

Tidak

Jabat tangan oleh


host
Hapus/buang data,
tidak ada respon
Hapus/buang data,

Tidak

Ya

tidak ada respon


Data diterima, Muncul
ACK

Respon Piranti atas transaksi OUT


Paket data
diterima
error

Fitur Halt
Receiver

Tabel 5.10
Urutan bit
benar

Ya
Tidak
Tidak
Tidak
Tidak

Tidak ada
Set
Tidak di-set
Tidak di-set
Tidak di-set

Tidak ada
Tidak ada
Tidak
Ya
Ya

Function
dapat
menerima
data
Tidak ada
Tidak ada
Tidak ada
Ya
Tidak

Jabat
tangan oleh
function
Tidak ada
STALL
ACK
ACK
NAK

Respon piranti atas transaksi SETUP


SETUP mendefinisikan jenis transaksi data host ke piranti agar host dapat
menginisialisasi sikronisasi piranti tersebut. Jika token SETUP diterima oleh suatu
piranti maka piranti tersebut harus menerima data yang mengikutinya.
Format Transaksi
Ada empat macam jenis transaksi pada endpoint, control, interupsi, isokronus,
dan bulk.
Control Transfer
Kebanyakan digunakan untuk operasi perintah dan status. Transfer control
hanya terdiri dua fase, setup dan status. Diantara keduanya bisa (option) terdapat fase
data. Dalam fase setup digunakan transaksi SETUP untuk mengirim informasi ke
endpoint yang dikehendaki. Transaksi SETUP identik dengan OUT, namun lebih
disarankan untuk menggunakan SETUP dari pada OUT PID.SETUP selalu
menggunakan DATA0 PID untuk field data di transaksi SETUP. Function yang

menerima SETUP harus menerima datanya dan merespon dengan jabat tangan ACK.
Jika data tidak benar, buang data tersebut dan jabat tangan tidak dikeluarkan.
Idle
Token

SETUP

Data
DATA0

Jabat tangan

ACK
Idle

Host

Function

Gambar 5.1 Transaksi SETUP Control


Jika

semua

data

telah

dikirimkan

ke

host,

piranti

USB

harus

menginformasikan bahwa fase data sudah usai dengan mengembalikan paket yang
lebih pendek dari variabel MaxPacketSize. Sedang jika data yang ada merupakan
kelipatan bulat dari wMaxPacketSize, maka function akan mengembalikan paket
dengan panjang 0 (nol) untuk menunjukkan berakhirnya fase data.
Jika tidak diterima jabat tangan ACK dalam transaksi IN, endpoint dan host
sepakat bahwa transaksi tidak sukses. Jika ACK didapati di akhir IN dari fase data,
maka harus menggunakan mekanisme transaksi alternatif yang lain. Jika host dapat
menerima data IN yang terakhir, ia akan mengirim ACK. Jika piranti USB tidak
menerima ACK di akhir fase data, piranti akan menganggap awal fase status sebagai
pernyataan bahwa host sudah menerima data. Jika sebuah ACK diterima tidak
lengkap, host tidak akan maju ke fase status dan mengulang data terakhir.

Interupt Transfer
Cara kerjanya identik dengan sebuah penanganan Interupt Request di
mikrocontroller. Jika sebuah piranti USB memerlukan perhatian host, ia harus
menunggu hingga host mem-poolnya sebelum piranti tersebut bisa menggunakan
bus untuk dapat menyelesaikan keperluannya.
Isochronous Transfer
Transaksi isokronus muncul kontinyu dan periodik. Umumnya berisi informasi
yang peka akan waktu seperti aliran video dan audio. Pada transfer mode ini,
data mengalir antara end-point dan host secara real-time dan tidak ada koreksi
kesalahan (error correction). Transaksi isokronus (ISO) hanya memiliki fase
tekon dan data, tanpa jabat tangan.
Bulk Transfer
Transaksi bulk mempunyai kemampuan menjamin transfer data yang bebas
kesalahan antara host dan function. Bulk menggunakan tiga fase transaksi yang
terdiri dari paket token, data, dan jabat tangan.
Transfer bulk hanya dapat dilakukan pada piranti USB berkecepatan penuh dan
kecepatan tinggi. Pada USB kecepatan penuh, transfer dilakukan dengan
ukuran paket sepanjang 8, 16, 32 atau 64 byte. Pada USB kecepatan tinggi
panjang paket dapat mencapai 512 byte.

Transfer bulk ini menggunakan sisa bandwith yang tak-teralokasi sesudah


semua jenis transfer teralokasi. Jika bus USB sedang sibuk melayani transfer
isokronus dan/atau interupsi, maka bandwith transfer bulk secara otomatis akan
diturunkan. Karenanya transfer bulk hanya cocok untuk transfer data yang tidak
peka akan waktu namun lebih mengutamakan kualitas transfer data; misal
printer, scanner, dsb.
Transaksi pada Kecepatan Rendah
Semua paket yang dikirimkan ke piranti kecepatan rendah memerlukan
preambul yang terdiri dari SYNC diikuti dengan PRE PID, di mana keduanya
dikirimkan dengan kecepatan penuh. Hanya hub saja yang menerima PRE PID;
sedang semua piranti USB mengabaikannya. Sesudah preambul ini, host harus
menunggu setidaknya 4 bit sinyal kecepatan penuh agar hub dapat menyelesaikan
pengulangan setup di port yang terhubung dengan piranti berkecepatan rendah.
Komunikasi pada kecepatan rendah mengikuti peraturan sebagai berikut :
1. Piranti yang menggunakan kecepatan rendah diidentifikasi selama proses
penyambungan, dan port hub dimana piranti tersebut terpasang dikenali sebagai
kecepatan rendah.
2. Semua paket diawali dengan preambul (dikirim dengan kecepatan penuh) yang
akan mengaktifkan buffer output di semua port yang berkecepatan rendah yang
terhubung dengan hub.
3. Buffer output tersebut akan dinon-aktifkan jika diterima EOP, dan akan tetap
tidak diaktifkan hingga didapati sinyal preambul kembali.
4. Hubungan ke host tidak terpengaruh oleh kecepatan port hub ini: rendah atau
cepat.
Pensinyalan pada komunikasi kecepatan rendah diakhiri oleh EOP. Pada
kecepatan ada pembatasan dalam hal :
1. Data dibatasi (maksimum) delapan byte.

2. Hanya mendukung jenis transfer control dan interupsi.


3. Paket SOF tidak diterima oleh piranti berkecepatan rendah.
USB Descriptor
Pada umumnya USB deskriptor terdiri dari :
Device Descriptor, mencakup informasi seperti versi USB yang digunakan oleh
piranti tersebut, identitas produk dan pembuatnya (untuk me-load driver yang
sesuai), dan sejumlah kemungkinan konfigurasi piranti tersebut.
Configurasi Descriptor, berisi informasi daya yang digunakan (apakah piranti
tersebut memiliki catu daya sendiri atau harus dicatu oleh bus), dan informasi
tentang banyaknya interface yang dimilikinya.
Interface Descriptor. Dapat dilihat sebagai header atau pengelompokan endpoint
ke dalam kelompok fungsional yang akan menjalankan fitur tunggal yang sama.
Misalnya sebuah piranti memiliki 3 kemampuan : printer, scanner, dan fax.
Endpoint Descriptor, digunakan untuk menspesifikasikan jenis transfer, arah
transfer, interval pooling (pada interupt transfer) dan ukuran paket data
maksimum.
String Descriptor. Sifatnya opsional, berisi informasi yang dapat dibaca
langsung oleh manusia.
Enumerasi
Enumerasi adalah proses penentuan piranti USB apa yang baru saja terhubung
ke host serta parameter apa yang diperlukannya (seperti konsumsi daya, nomor dan
jenis endpoint tersebut, kelas produk, dsb).
Pada sistem operasi. MS-Windows, proses enumerasi dilakukan sebagai berikut :
1. Host atau hub mendeteksi terhubungnya suatu piranti USB melalui resistor pullup di jalur data.
2. Host me-reset piranti baru hingga keadaannya ada pada default.

3. Host mencari 64 byte awal dari device descriptor.


4. Sesudah menerima 8 byte awal dari device descriptor, Windows akan segera
mereset bus.
5. Host memunculkan perintah Set Address hingga piranti baru berada pada keadaan
teralamati (sedang diakses).
6. Baca 18 byte device descriptor berikutnya.
7. Baca 9 byte configuration descriptor untuk mengetahui ukurannya.
8. Baca 255 byte configuration descriptor.
9. Baca string descriptor, jika ada.
Panduan NRZ
Dari pengembangan sinyal NRZ ini diperoleh 3 macam :
1. NRZ-L (NRZ-Level)
Logika 1 = level tegangan tinggi (misal 5 volt)
Logika 0 = level tegangan rendah (misal 0 volt)
2. NRZ-M (NRZ-Mark)
Logika 1 = transisi level tegangan di awal interval bit
Logika 0 = tidak ada transisi level tegangan
3. NRZ-S (NRZ-Space)
Logika 1 = tidak ada transisi level tegangan
Logika 0 = transisi level tegangan di awal interval bit
Panduan CRC
Mekanisme pengecekan kesalahan dengan CRC (murni) adalah sebagai
berikut : Untuk sebuah paket data sepanjang k-bit, maka transmiter akan
mengeluarkan n-bit urutan yang disebut dengan frame check sequence (FCS)
sehingga panjang paket data menjadi k+n bit.
Yang terlibat dalam CRC ini antara lain :

Aritmatika Modulo 2

Polinomial

Shift-register dan gerbang exclusive-or

Hendaknya MSB dan LSB bilangan pembagi ini (dalam biner) bernilai 1. Juga, pilih
bilangan pembagi ini 1 bit lebih dari FCS.

Anda mungkin juga menyukai